@marimo-team/islands 0.21.2-dev9 → 0.21.2-dev90

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 (666) hide show
  1. package/dist/{Combination-BBPQRrDo.js → Combination-B_FmEi05.js} +3 -3
  2. package/dist/{ConnectedDataExplorerComponent-D0GoOd_c.js → ConnectedDataExplorerComponent-CLLlotD4.js} +30 -29
  3. package/dist/{ImageComparisonComponent-BYQfAfSR.js → ImageComparisonComponent-BC00mJmw.js} +1 -1
  4. package/dist/{Plot-DfUav0o0.js → Plot-B1ahrLui.js} +1 -1
  5. package/dist/{_baseIsEqual-CvgsjYoW.js → _baseIsEqual-QWfxbVqg.js} +1 -1
  6. package/dist/_basePickBy-Do49cXgl.js +34 -0
  7. package/dist/{_baseUniq-BUFhl85h.js → _baseUniq-vFmWNipH.js} +1 -1
  8. package/dist/{any-language-editor-DlsjUw_l.js → any-language-editor-CSvBdMtG.js} +22 -21
  9. package/dist/apl-e1B5LPEL.js +4 -0
  10. package/dist/{arc-DXxE-tFl.js → arc-CHF8PiiF.js} +2 -2
  11. package/dist/architecture-7HQA4BMR-KeUc82D1.js +6 -0
  12. package/dist/{architectureDiagram-VXUJARFQ-Df0FNeBR.js → architectureDiagram-VXUJARFQ-CIl7H_7A.js} +19 -19
  13. package/dist/asciiarmor-B-gwgesP.js +4 -0
  14. package/dist/asn1-DF2ckRB4.js +4 -0
  15. package/dist/{blockDiagram-VD42YOAC-DszWqlLz.js → blockDiagram-VD42YOAC-Bxg4bo7H.js} +14 -14
  16. package/dist/brainfuck-4G-7_gq_.js +4 -0
  17. package/dist/{button-BKkuUpZh.js → button-B1ZgJ7Cc.js} +2 -2
  18. package/dist/{c4Diagram-YG6GDRKO-Dyj8LoUX.js → c4Diagram-YG6GDRKO-k4TEDUb8.js} +6 -6
  19. package/dist/capabilities-DAGZLwa6.js +36 -0
  20. package/dist/{channel-CUFaIkTh.js → channel-CCR8wXOx.js} +1 -1
  21. package/dist/chat-ui-CN_DUtLR.js +7710 -0
  22. package/dist/{check-Diwc5emq.js → check-B2OoWw2h.js} +1 -1
  23. package/dist/{chunk-4BX2VUAB-CwMMQLZ_.js → chunk-4BX2VUAB-BwfrWBqN.js} +1 -1
  24. package/dist/{chunk-4F5CHEZ2-CRwwZ2ED.js → chunk-4F5CHEZ2-BigWQaTs.js} +1 -1
  25. package/dist/{chunk-55IACEB6-Dj8CzJvE.js → chunk-55IACEB6-D8THf2mi.js} +1 -1
  26. package/dist/{chunk-5FQGJX7Z-BkzUmppO.js → chunk-5FQGJX7Z-Cz2QbNIw.js} +1504 -2846
  27. package/dist/{chunk-ABZYJK2D-7QYXAAhe.js → chunk-ABZYJK2D-NPoevJcI.js} +3 -3
  28. package/dist/{chunk-ATLVNIR6-pmHPAPSd.js → chunk-ATLVNIR6-DAhC1FCG.js} +2 -2
  29. package/dist/{chunk-B2363JML-BuBMltZc.js → chunk-B2363JML-DOYwB798.js} +1 -1
  30. package/dist/{chunk-B4BG7PRW-Dbta9cTX.js → chunk-B4BG7PRW-BDmytgmO.js} +7 -7
  31. package/dist/{chunk-CVBHYZKI-D8iwHsLF.js → chunk-CVBHYZKI-B6xhgaBd.js} +1 -1
  32. package/dist/{chunk-DI55MBZ5-DyKB35wC.js → chunk-DI55MBZ5-C6iNEV8U.js} +6 -6
  33. package/dist/{chunk-EXTU4WIE-BRFl4iNd.js → chunk-EXTU4WIE-BtA6WdD4.js} +2 -2
  34. package/dist/{chunk-FMBD7UC4-XTL4xAvH.js → chunk-FMBD7UC4-CHdus51S.js} +1 -1
  35. package/dist/{chunk-FRFDVMJY-Bk2LD5Te.js → chunk-FRFDVMJY-Bo7Hv3UF.js} +1 -1
  36. package/dist/{chunk-HN2XXSSU-CzO5Phf0.js → chunk-HN2XXSSU-2Vfbq-kU.js} +1 -1
  37. package/dist/{chunk-JA3XYJ7Z-BkrY9SdL.js → chunk-JA3XYJ7Z-BeXqAsc9.js} +3 -3
  38. package/dist/{chunk-JZLCHNYA-Bk_Lil-q.js → chunk-JZLCHNYA-ibE7xTEx.js} +6 -6
  39. package/dist/{chunk-MI3HLSF2-DvCKDmpi.js → chunk-MI3HLSF2-Do0-KRc0.js} +1 -1
  40. package/dist/{chunk-N4CR4FBY-f5n6meOd.js → chunk-N4CR4FBY-CHAcubAf.js} +7 -7
  41. package/dist/{chunk-PL6DKKU2-DiFkzMfM.js → chunk-PL6DKKU2-D3wYz-iW.js} +1 -1
  42. package/dist/{chunk-QN33PNHL-CXfJywHv.js → chunk-QN33PNHL-CDWJY_kT.js} +2 -2
  43. package/dist/{chunk-QXUST7PY-D7-26sj3.js → chunk-QXUST7PY-CV37xRZd.js} +10 -10
  44. package/dist/{chunk-QZHKN3VN-CYbwZKgJ.js → chunk-QZHKN3VN-B_Mdb8GC.js} +1 -1
  45. package/dist/{chunk-S3R3BYOJ-BRT9vd1R.js → chunk-S3R3BYOJ-CGlk8NH-.js} +6 -6
  46. package/dist/{chunk-SJTYNZTY-BvVkbShU.js → chunk-SJTYNZTY-Bauwp2-p.js} +1 -1
  47. package/dist/{chunk-TCCFYFTB-DqxhgXG0.js → chunk-TCCFYFTB-C5_FjmXA.js} +15 -14
  48. package/dist/{chunk-TQ3KTPDO-CPkEruAA.js → chunk-TQ3KTPDO-TjHW8xfv.js} +1 -1
  49. package/dist/{chunk-TZMSLE5B-DSfBOnzx.js → chunk-TZMSLE5B-DfY6C3FB.js} +3 -3
  50. package/dist/{chunk-UMXZTB3W-C4ypIY3V.js → chunk-UMXZTB3W-DdRiIIOF.js} +1 -1
  51. package/dist/classDiagram-2ON5EDUG-DbWOiPgs.js +30 -0
  52. package/dist/classDiagram-v2-WZHVMYZB-COnXBrRA.js +30 -0
  53. package/dist/{clike-CLJYUAWw.js → clike-7lgyEYRk.js} +1 -1
  54. package/dist/clojure-CUybM11R.js +4 -0
  55. package/dist/{clone-CEQ-pda1.js → clone-BM9_Wkaf.js} +1 -1
  56. package/dist/cmake-BPjGcuDL.js +4 -0
  57. package/dist/cobol-BETk_nb6.js +4 -0
  58. package/dist/{code-block-37QAKDTI-DV_ZyoUh.js → code-block-37QAKDTI-DW3JC11U.js} +2 -2
  59. package/dist/coffeescript-CManZxXL.js +4 -0
  60. package/dist/commonlisp-DWkn7GW8.js +4 -0
  61. package/dist/{constants-CytQ_3LM.js → constants-LmeAawHa.js} +3 -3
  62. package/dist/{copy-DIK6DiIA.js → copy-B7XqFjF_.js} +14 -4
  63. package/dist/{cose-bilkent-S5V4N54A-BCDTZDay.js → cose-bilkent-S5V4N54A-DXHZkJKX.js} +2 -2
  64. package/dist/crystal-CCbg5EUH.js +4 -0
  65. package/dist/css-By8eo-XS.js +4 -0
  66. package/dist/cypher-DwfHg3nP.js +4 -0
  67. package/dist/d-Brs1wNbw.js +4 -0
  68. package/dist/{dagre-6UL2VRFP-DGEbtmgU.js → dagre-6UL2VRFP-B8UW0fXE.js} +16 -16
  69. package/dist/{dagre-BVnNvbvD.js → dagre-B3-rUlCT.js} +14 -14
  70. package/dist/{data-grid-overlay-editor-BD0BFHzy.js → data-grid-overlay-editor-CpL5Zajy.js} +3 -3
  71. package/dist/{diagram-PSM6KHXK-CG_usglE.js → diagram-PSM6KHXK-DGD-j1bM.js} +22 -22
  72. package/dist/{diagram-QEK2KX5R-CtGFEwzJ.js → diagram-QEK2KX5R-DgsT6ZW4.js} +17 -17
  73. package/dist/{diagram-S2PKOQOG-ClKAGmbv.js → diagram-S2PKOQOG-CDh5Ij8z.js} +17 -17
  74. package/dist/diff-DJIRmJ1g.js +4 -0
  75. package/dist/{dist-DodLQWPg.js → dist--MUqhsBh.js} +1 -1
  76. package/dist/{dist-CAKwXCWI.js → dist-8-jPFKws.js} +2 -2
  77. package/dist/{dist-i-ud9aCA.js → dist-B6ZvKwIz.js} +1 -1
  78. package/dist/{dist-BGZ7TWS9.js → dist-B771Ewvn.js} +3 -3
  79. package/dist/dist-BK8Ch8me.js +5 -0
  80. package/dist/dist-BPlAe3w3.js +6 -0
  81. package/dist/dist-BQnLGf1A.js +8 -0
  82. package/dist/dist-BZRBnAnM.js +5 -0
  83. package/dist/{dist-D4gcY469.js → dist-Bc-mOFlk.js} +2 -2
  84. package/dist/{dist-BUrWeMEP.js → dist-Bg1YGq2b.js} +1 -1
  85. package/dist/{dist-C0Rnbr-_.js → dist-BiNtCiQ9.js} +4 -4
  86. package/dist/{dist-B9EjSb9T.js → dist-BjYGwQ65.js} +1 -1
  87. package/dist/dist-BmTKj-5m.js +5 -0
  88. package/dist/{dist-D_-CGmlh.js → dist-BsyHyGqX.js} +2 -2
  89. package/dist/dist-C1UyhB0b.js +5 -0
  90. package/dist/dist-C1uqqTuH.js +5 -0
  91. package/dist/dist-CCeSY9xv.js +5 -0
  92. package/dist/{dist-DEj2X26M.js → dist-CEmSeYaL.js} +2 -2
  93. package/dist/{dist-CDHl2i1x.js → dist-CJEfzjG5.js} +4 -4
  94. package/dist/dist-CMWhb0s1.js +5 -0
  95. package/dist/{dist-BSfYc7vq.js → dist-CXsGjNbR.js} +2 -2
  96. package/dist/{dist-CseYuPtL.js → dist-CpNdP46s.js} +2 -2
  97. package/dist/{dist-CPlGUbk-.js → dist-CsToCMcA.js} +2 -2
  98. package/dist/dist-CwEBZkrQ.js +550 -0
  99. package/dist/{dist-DERtJN02.js → dist-CwP9oyR8.js} +2 -2
  100. package/dist/{dist-C4K7pumm.js → dist-D2nC1On3.js} +2 -2
  101. package/dist/{dist-BFxYppVR.js → dist-DEmPLkH9.js} +4 -4
  102. package/dist/{dist-lNe4i1Nm.js → dist-DKr1M-ru.js} +1 -1
  103. package/dist/{dist-D5NMgbbv.js → dist-DNSJBJI7.js} +2 -2
  104. package/dist/{dist-HoZO6brh.js → dist-DSSPn3fP.js} +2 -2
  105. package/dist/dist-DYoFz28E.js +8 -0
  106. package/dist/dist-DeSnQwvL.js +6 -0
  107. package/dist/{dist-COpDrwi-.js → dist-Dl9_0tkc.js} +1 -1
  108. package/dist/{dist-Bq5eYK43.js → dist-DlacJSaE.js} +2 -2
  109. package/dist/{dist-RNGn_-uD.js → dist-DoO66t8e.js} +1 -1
  110. package/dist/{dist-Bq9zYwJs.js → dist-DqT0O-4m.js} +5 -5
  111. package/dist/{dist-CSEWGuDq.js → dist-DqweMfpO.js} +1 -1
  112. package/dist/{dist-gc9KgJuA.js → dist-DvjVNme1.js} +1 -1
  113. package/dist/{dist-DOoqn-VL.js → dist-N1lm7LVK.js} +71 -37
  114. package/dist/{dist-Cl5iM8xL.js → dist-QxBlbqgj.js} +3 -3
  115. package/dist/{dist-Ux6dL_VB.js → dist-TuFHGVp2.js} +1 -1
  116. package/dist/dist-e8VqCQ_P.js +5 -0
  117. package/dist/{dist-DUretbKK.js → dist-fRW2mZtS.js} +2 -2
  118. package/dist/dist-kGaha3sX.js +8 -0
  119. package/dist/{dist-BpMlUdNO.js → dist-mpvRA2Bc.js} +3 -3
  120. package/dist/dist-wQD8nhf9.js +8 -0
  121. package/dist/{dockerfile-BxhYdLHL.js → dockerfile-DG6A2DdH.js} +1 -1
  122. package/dist/dtd-Dyiazv4N.js +4 -0
  123. package/dist/dylan-D8Fcw7NA.js +4 -0
  124. package/dist/ecl-CjKp8Vii.js +4 -0
  125. package/dist/eiffel-K9ViOX5r.js +4 -0
  126. package/dist/elm-B5NVtRco.js +4 -0
  127. package/dist/{erDiagram-Q2GNP2WA-DPMseVVp.js → erDiagram-Q2GNP2WA-CGK0SUdu.js} +15 -15
  128. package/dist/erlang-BnLzgk7R.js +4 -0
  129. package/dist/{error-banner-Dmi5ujan.js → error-banner-D-KBGvBj.js} +3 -3
  130. package/dist/esm-B_4hpmV_.js +1587 -0
  131. package/dist/esm-Bcbo0Yvz.js +2805 -0
  132. package/dist/{factor-Png_OsVt.js → factor-Bq2mGIHt.js} +1 -1
  133. package/dist/factor-C7f9Jz5R.js +4 -0
  134. package/dist/{flowDiagram-NV44I4VS-BpAIFwW7.js → flowDiagram-NV44I4VS-PjhviPI_.js} +17 -17
  135. package/dist/forth-rGM8jLao.js +4 -0
  136. package/dist/fortran-B3acSe0i.js +4 -0
  137. package/dist/{ganttDiagram-JELNMOA3-DXYghZ9C.js → ganttDiagram-JELNMOA3-CUVtQqgT.js} +10 -10
  138. package/dist/gas-Bb1Vmv_N.js +4 -0
  139. package/dist/gherkin-C9Lyidgd.js +4 -0
  140. package/dist/{gitGraph-G5XIXVHT-ChHUSAop.js → gitGraph-G5XIXVHT-B6b-Z3mr.js} +3 -3
  141. package/dist/{gitGraphDiagram-V2S2FVAM-CBL-7g3_.js → gitGraphDiagram-V2S2FVAM-CNdrlK1I.js} +17 -17
  142. package/dist/{glide-data-editor-pZyd9UJ_.js → glide-data-editor-DQEuWuu_.js} +94 -93
  143. package/dist/{graphlib-D18eZCT4.js → graphlib-CIQjMxKw.js} +6 -6
  144. package/dist/groovy-DQk6XcGH.js +4 -0
  145. package/dist/{hasIn-B9AbGLj3.js → hasIn-eLCPDloT.js} +5 -5
  146. package/dist/haskell-mV0Vw9gv.js +4 -0
  147. package/dist/haxe-DqxN89zH.js +5 -0
  148. package/dist/idl-ya8W561J.js +4 -0
  149. package/dist/{info-VBDWY6EO-CwyXEo8E.js → info-VBDWY6EO-DfFl0Z8H.js} +3 -3
  150. package/dist/infoDiagram-HS3SLOUP-DGimKb9k.js +30 -0
  151. package/dist/{types-CGc7peZV.js → input-B8CM-AuM.js} +208 -405
  152. package/dist/{isEmpty-C-xMag79.js → isEmpty-CI9akcsL.js} +2 -2
  153. package/dist/{isString-D-vNYDBA.js → isString-xiQUcgm4.js} +1 -1
  154. package/dist/{isSymbol-Dyt2NSnN.js → isSymbol-DFp8040B.js} +1 -1
  155. package/dist/javascript-CgqgptVu.js +4 -0
  156. package/dist/{journeyDiagram-XKPGCS4Q-D5BIjS4N.js → journeyDiagram-XKPGCS4Q-CyoESVVb.js} +7 -7
  157. package/dist/julia-CFQ-HusI.js +4 -0
  158. package/dist/{kanban-definition-3W4ZIXB7-DhDkqxFB.js → kanban-definition-3W4ZIXB7-Doc2YV80.js} +12 -12
  159. package/dist/{katex-pyO_klYC.js → katex-qPqrBHZ8.js} +1 -1
  160. package/dist/{label-BbpGrh4j.js → label-e5-84vsp.js} +10 -10
  161. package/dist/{line-C1k1rG3Z.js → line-BWRi3U3S.js} +3 -3
  162. package/dist/{linear-DIp6l9sg.js → linear-DZ8_CGCd.js} +4 -4
  163. package/dist/livescript-D__3TmDo.js +4 -0
  164. package/dist/{loader-CABJs6GU.js → loader-C51Irhxm.js} +3 -3
  165. package/dist/lua-Bytcgj_W.js +4 -0
  166. package/dist/main.js +35443 -70505
  167. package/dist/mathematica-DJhvVKvl.js +4 -0
  168. package/dist/mbox-IGHPCjfR.js +4 -0
  169. package/dist/{memoize-Cs8aS5RW.js → memoize-zYM53m8l.js} +1 -1
  170. package/dist/{merge-NuyC7LN7.js → merge-CqBPpP0q.js} +1 -1
  171. package/dist/mermaid-4DMBBIKO-DQdI9xDR.js +6 -0
  172. package/dist/{mermaid-CrKqsE2j.js → mermaid-CzWpf81s.js} +50 -50
  173. package/dist/{mermaid-parser.core-OkWZ8nr-.js → mermaid-parser.core-CrrqF1ZZ.js} +8 -8
  174. package/dist/{mhchem-DckvwtV8.js → mhchem-BwoRNwg_.js} +1 -1
  175. package/dist/micromark-factory-space-DQCQsiYz.js +1341 -0
  176. package/dist/{min-ECVRnCdn.js → min-IJGSWMpU.js} +8 -8
  177. package/dist/{mindmap-definition-VGOIOE7T-BxQi78Vl.js → mindmap-definition-VGOIOE7T-L2ybicpO.js} +14 -14
  178. package/dist/mirc-tcwvVugm.js +4 -0
  179. package/dist/mllike-Dx91i62r.js +6 -0
  180. package/dist/modelica-_SRt-yU5.js +4 -0
  181. package/dist/mscgen-GZrGS9gt.js +6 -0
  182. package/dist/mumps-Cv3ygyod.js +4 -0
  183. package/dist/{now-BC2mX0ZT.js → now-CnuN5fN5.js} +1 -1
  184. package/dist/nsis-BU7GeGbI.js +4 -0
  185. package/dist/{nsis-BrAITej_.js → nsis-i9_sgigf.js} +1 -1
  186. package/dist/ntriples-CL-FCYXb.js +4 -0
  187. package/dist/{number-overlay-editor-CQrncFlP.js → number-overlay-editor-D2Y0RpcH.js} +1 -1
  188. package/dist/octave-Dc6_3DIu.js +4 -0
  189. package/dist/{once-BqS42WgZ.js → once-DjP4Kbhy.js} +1 -1
  190. package/dist/{ordinal-Dcvf4J1m.js → ordinal-B4zYMadD.js} +1 -1
  191. package/dist/oz-DpUAJCXf.js +4 -0
  192. package/dist/{packet-DYOGHKS2-C62XQjZh.js → packet-DYOGHKS2-DIf3Dotq.js} +3 -3
  193. package/dist/pascal-B17mncXs.js +4 -0
  194. package/dist/perl-BTpK97q9.js +4 -0
  195. package/dist/{pie-VRWISCQL-nfAKQJw3.js → pie-VRWISCQL-Dj_gvPcD.js} +3 -3
  196. package/dist/{pieDiagram-ADFJNKIX-DfSJXUHa.js → pieDiagram-ADFJNKIX-x5w7q6Yp.js} +22 -22
  197. package/dist/pig-CFb638Ap.js +4 -0
  198. package/dist/powershell-Cxo-_2A5.js +4 -0
  199. package/dist/{precisionRound-BAc-kQ3q.js → precisionRound-C-DW449D.js} +1 -1
  200. package/dist/process-output-BfgNdve9.js +28024 -0
  201. package/dist/properties-BPgT1xTB.js +4 -0
  202. package/dist/protobuf-BgHBaIIK.js +4 -0
  203. package/dist/pug-25-oS0SG.js +4 -0
  204. package/dist/{pug-CH-17az-.js → pug-BhE2JRSg.js} +1 -1
  205. package/dist/puppet-DarIr20S.js +4 -0
  206. package/dist/python-BqmOsBsi.js +4 -0
  207. package/dist/q-D3QJCTup.js +4 -0
  208. package/dist/{quadrantDiagram-AYHSOK5B-CAcVWXc-.js → quadrantDiagram-AYHSOK5B-D5j_5qG_.js} +5 -5
  209. package/dist/r-Cz_yBX4z.js +4 -0
  210. package/dist/{radar-ZZBFDIW7-lopS8_4j.js → radar-ZZBFDIW7-DXDVq3gi.js} +3 -3
  211. package/dist/{range-BKaWvVUE.js → range-DffmqG6L.js} +4 -3
  212. package/dist/{react-vega-C6kwcd86.js → react-vega-BBUxfZoV.js} +19 -19
  213. package/dist/react-vega-Cs3lfDw8.js +9 -0
  214. package/dist/{reduce-CqQo8ppc.js → reduce-CGwzfrDo.js} +5 -5
  215. package/dist/{requirementDiagram-UZGBJVZJ-BU7dwzFM.js → requirementDiagram-UZGBJVZJ-3SoJH6yP.js} +14 -14
  216. package/dist/rpm-DGOtYwAI.js +5 -0
  217. package/dist/ruby-DBZu4rPc.js +4 -0
  218. package/dist/{sankeyDiagram-TZEHDZUN-BVJnR4_b.js → sankeyDiagram-TZEHDZUN-fGkFNe5q.js} +5 -5
  219. package/dist/sas-Dd1D9qTq.js +4 -0
  220. package/dist/scheme-BmDjvTHX.js +4 -0
  221. package/dist/{sequenceDiagram-WL72ISMW-CQcFQTwX.js → sequenceDiagram-WL72ISMW-BE2uTn_d.js} +8 -8
  222. package/dist/shell-BL8zFSaj.js +4 -0
  223. package/dist/sieve-BAx2WqUP.js +4 -0
  224. package/dist/{slides-component-GkilRW21.js → slides-component-Cjo6LzW9.js} +3 -3
  225. package/dist/smalltalk-CYRzF7VV.js +4 -0
  226. package/dist/sparql-YWaDRO4A.js +4 -0
  227. package/dist/{spec-Bfvf9Hre.js → spec-UGFYIDJb.js} +12 -422
  228. package/dist/{src-CHUphWwL.js → src-BY0BGg6V.js} +1 -1
  229. package/dist/{stateDiagram-FKZM4ZOC-Dx9AIGDe.js → stateDiagram-FKZM4ZOC-Dmk9IAOx.js} +19 -19
  230. package/dist/stateDiagram-v2-4FDKWEC3-BGF0BvU6.js +29 -0
  231. package/dist/{step-BbmiiQdf.js → step-DGAGWg3y.js} +1 -1
  232. package/dist/stex-BvZqVamL.js +4 -0
  233. package/dist/style.css +1 -1
  234. package/dist/stylus-lYsyLFc1.js +4 -0
  235. package/dist/swift-ClQz9z1n.js +4 -0
  236. package/dist/tcl-B3jhsfqY.js +4 -0
  237. package/dist/textile-Cb1Dw7Aq.js +4 -0
  238. package/dist/{time-DFFVNc1Q.js → time-C_pvjzP0.js} +4 -4
  239. package/dist/{timeline-definition-IT6M3QCI-D8B3p7ID.js → timeline-definition-IT6M3QCI-CvB4yGrN.js} +4 -4
  240. package/dist/toDate-COI3hP-5.js +637 -0
  241. package/dist/toInteger-BUeg_O0F.js +15 -0
  242. package/dist/{toNumber-CbZ70FdN.js → toNumber-xFPoy1OI.js} +2 -2
  243. package/dist/{toString-DbIAWQpF.js → toString-CtXX84W6.js} +2 -2
  244. package/dist/toml-nHZhetdO.js +4 -0
  245. package/dist/{tooltip-CKG75XQa.js → tooltip-DnI4CwIS.js} +4 -4
  246. package/dist/{treemap-GDKQZRPO-CkR-5ai2.js → treemap-GDKQZRPO-CIG6WH-x.js} +3 -3
  247. package/dist/troff-DuJAGWKH.js +4 -0
  248. package/dist/ttcn-BxrcwP21.js +4 -0
  249. package/dist/ttcn-cfg-BAg_9dcc.js +4 -0
  250. package/dist/turtle-zCq949as.js +4 -0
  251. package/dist/types-BqLAaq-i.js +209 -0
  252. package/dist/{uniq-H2E5nMLq.js → uniq-CCKqEs7T.js} +1 -1
  253. package/dist/{useAsyncData-CEjJxwFB.js → useAsyncData-BtHYXgXF.js} +2 -2
  254. package/dist/useDeepCompareMemoize-9dXEtK7u.js +124 -0
  255. package/dist/useIframeCapabilities-CzVvBDe8.js +13 -0
  256. package/dist/useLifecycle-Be1LUuEg.js +427 -0
  257. package/dist/{useTheme-CPybHVFN.js → useTheme-5GTtjXjy.js} +4 -4
  258. package/dist/vb-De5hElus.js +4 -0
  259. package/dist/vbscript-Cypcpv4F.js +4 -0
  260. package/dist/{vega-component-CuPTCRp5.js → vega-component-BQNW4qnB.js} +198 -197
  261. package/dist/{vega-loader.browser-CQ-lnUkI.js → vega-loader.browser-DnqN5nbz.js} +3 -3
  262. package/dist/velocity-Di7l-yhe.js +4 -0
  263. package/dist/verilog-Bzi-S3g2.js +4 -0
  264. package/dist/vhdl-B0ZZITaW.js +4 -0
  265. package/dist/webidl-0sviiRcN.js +4 -0
  266. package/dist/xquery-B4qMVWaB.js +4 -0
  267. package/dist/{xychartDiagram-PRI3JC2R-XO8FiQjU.js → xychartDiagram-PRI3JC2R-BbEInSqY.js} +13 -13
  268. package/dist/yacas-Jt25Fuv8.js +4 -0
  269. package/dist/z80-CrcbYzmp.js +4 -0
  270. package/package.json +4 -3
  271. package/src/__mocks__/notebook.ts +9 -9
  272. package/src/__mocks__/requests.ts +2 -1
  273. package/src/__tests__/branded.ts +20 -0
  274. package/src/__tests__/setup.ts +15 -0
  275. package/src/components/app-config/__tests__/get-dirty-values.test.ts +1 -1
  276. package/src/components/app-config/get-dirty-values.ts +100 -0
  277. package/src/components/app-config/user-config-form.tsx +6 -101
  278. package/src/components/chat/chat-utils.ts +7 -8
  279. package/src/components/data-table/TableActions.tsx +8 -2
  280. package/src/components/data-table/__tests__/columns.test.tsx +138 -0
  281. package/src/components/data-table/__tests__/data-table.test.tsx +63 -0
  282. package/src/components/data-table/__tests__/utils.test.ts +138 -1
  283. package/src/components/data-table/charts/__tests__/storage.test.ts +7 -7
  284. package/src/components/data-table/columns.tsx +44 -4
  285. package/src/components/data-table/context-menu.tsx +9 -5
  286. package/src/components/data-table/data-table.tsx +13 -31
  287. package/src/components/data-table/filters.ts +1 -0
  288. package/src/components/data-table/hooks/use-scroll-container-height.ts +97 -0
  289. package/src/components/data-table/range-focus/__tests__/atoms.test.ts +8 -2
  290. package/src/components/data-table/range-focus/__tests__/test-utils.ts +2 -0
  291. package/src/components/data-table/range-focus/__tests__/use-cell-range-selection.test.ts +119 -0
  292. package/src/components/data-table/range-focus/__tests__/utils.test.ts +82 -8
  293. package/src/components/data-table/range-focus/atoms.ts +2 -2
  294. package/src/components/data-table/range-focus/use-cell-range-selection.ts +19 -0
  295. package/src/components/data-table/range-focus/utils.ts +50 -12
  296. package/src/components/data-table/renderers.tsx +103 -46
  297. package/src/components/data-table/types.ts +21 -0
  298. package/src/components/data-table/utils.ts +87 -0
  299. package/src/components/datasources/datasources.tsx +45 -0
  300. package/src/components/editor/__tests__/data-attributes.test.tsx +8 -8
  301. package/src/components/editor/ai/__tests__/completion-utils.test.ts +15 -15
  302. package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +2 -2
  303. package/src/components/editor/connections/storage/as-code.ts +2 -2
  304. package/src/components/editor/file-tree/file-explorer.tsx +16 -2
  305. package/src/components/editor/file-tree/file-viewer.tsx +17 -3
  306. package/src/components/editor/navigation/__tests__/clipboard.test.ts +2 -2
  307. package/src/components/editor/navigation/__tests__/selection.test.ts +7 -6
  308. package/src/components/editor/navigation/__tests__/state.test.ts +8 -7
  309. package/src/components/editor/output/MarimoErrorOutput.tsx +7 -7
  310. package/src/components/editor/output/__tests__/traceback.test.tsx +4 -4
  311. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +4 -4
  312. package/src/components/editor/package-alert.tsx +1 -1
  313. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +8 -1
  314. package/src/components/markdown/markdown-renderer.tsx +18 -2
  315. package/src/components/storage/storage-file-viewer.tsx +35 -1
  316. package/src/components/storage/storage-inspector.tsx +9 -4
  317. package/src/components/storage/storage-snippets.ts +3 -3
  318. package/src/components/tracing/tracing.tsx +3 -1
  319. package/src/components/ui/range-slider.tsx +108 -1
  320. package/src/core/ai/__tests__/staged-cells.test.ts +9 -8
  321. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +31 -31
  322. package/src/core/ai/context/providers/__tests__/datasource.test.ts +3 -3
  323. package/src/core/ai/context/providers/__tests__/tables.test.ts +3 -2
  324. package/src/core/ai/context/providers/__tests__/variable.test.ts +84 -63
  325. package/src/core/ai/staged-cells.ts +6 -0
  326. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +10 -9
  327. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +6 -6
  328. package/src/core/ai/tools/edit-notebook-tool.ts +3 -3
  329. package/src/core/cells/__tests__/add-missing-import.test.ts +3 -3
  330. package/src/core/cells/__tests__/apply-transaction.test.ts +279 -0
  331. package/src/core/cells/__tests__/cells.test.ts +198 -135
  332. package/src/core/cells/__tests__/document-changes.test.ts +572 -0
  333. package/src/core/cells/__tests__/document-roundtrip.test.ts +376 -0
  334. package/src/core/cells/__tests__/focus.test.ts +5 -4
  335. package/src/core/cells/__tests__/logs.test.ts +13 -12
  336. package/src/core/cells/__tests__/pending-delete-service.test.tsx +3 -3
  337. package/src/core/cells/__tests__/runs.test.ts +29 -24
  338. package/src/core/cells/__tests__/scrollCellIntoView.test.ts +8 -7
  339. package/src/core/cells/__tests__/session.test.ts +23 -22
  340. package/src/core/cells/cells.ts +35 -8
  341. package/src/core/cells/document-changes.ts +644 -0
  342. package/src/core/cells/ids.ts +5 -5
  343. package/src/core/cells/logs.ts +2 -2
  344. package/src/core/cells/runs.ts +6 -8
  345. package/src/core/codemirror/__tests__/format.test.ts +34 -36
  346. package/src/core/codemirror/__tests__/setup.test.ts +2 -2
  347. package/src/core/codemirror/cells/__tests__/extensions.test.ts +114 -0
  348. package/src/core/codemirror/cells/__tests__/traceback-decorations.test.ts +33 -32
  349. package/src/core/codemirror/cells/extensions.ts +66 -23
  350. package/src/core/codemirror/completion/__tests__/keymap.test.ts +15 -35
  351. package/src/core/codemirror/completion/keymap.ts +14 -4
  352. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +12 -13
  353. package/src/core/codemirror/language/__tests__/utils.test.ts +3 -3
  354. package/src/core/codemirror/language/embedded/__tests__/embedded-python.test.ts +7 -8
  355. package/src/core/codemirror/language/languages/python.ts +4 -0
  356. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +4 -3
  357. package/src/core/codemirror/lsp/notebook-lsp.ts +28 -2
  358. package/src/core/codemirror/reactive-references/__tests__/analyzer.test.ts +7 -6
  359. package/src/core/codemirror/reactive-references/analyzer.ts +2 -2
  360. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +52 -0
  361. package/src/core/codemirror/rtc/loro/sync.ts +1 -0
  362. package/src/core/datasets/__tests__/data-source.test.ts +93 -7
  363. package/src/core/datasets/data-source-connections.ts +44 -0
  364. package/src/core/datasets/request-registry.ts +13 -0
  365. package/src/core/datasets/state.ts +1 -1
  366. package/src/core/edit-app.tsx +0 -5
  367. package/src/core/errors/__tests__/errors.test.ts +2 -1
  368. package/src/core/export/__tests__/hooks.test.ts +37 -36
  369. package/src/core/islands/bridge.ts +2 -1
  370. package/src/core/islands/main.ts +5 -9
  371. package/src/core/kernel/__tests__/handlers.test.ts +5 -4
  372. package/src/core/kernel/handlers.ts +7 -4
  373. package/src/core/kernel/messages.ts +2 -0
  374. package/src/core/network/DeferredRequestRegistry.ts +2 -2
  375. package/src/core/network/__tests__/CachingRequestRegistry.test.ts +9 -10
  376. package/src/core/network/__tests__/DeferredRequestRegistry.test.ts +4 -6
  377. package/src/core/network/requests-lazy.ts +2 -1
  378. package/src/core/network/requests-network.ts +10 -2
  379. package/src/core/network/requests-static.ts +2 -1
  380. package/src/core/network/requests-toasting.tsx +2 -1
  381. package/src/core/network/types.ts +7 -2
  382. package/src/core/static/__tests__/virtual-file-tracker.test.ts +8 -8
  383. package/src/core/static/virtual-file-tracker.ts +1 -1
  384. package/src/core/storage/__tests__/state.test.ts +31 -21
  385. package/src/core/storage/state.ts +1 -1
  386. package/src/core/variables/__tests__/state.test.ts +6 -6
  387. package/src/core/variables/types.ts +2 -2
  388. package/src/core/wasm/__tests__/state.test.ts +8 -8
  389. package/src/core/wasm/bridge.ts +11 -1
  390. package/src/core/websocket/useMarimoKernelConnection.tsx +33 -26
  391. package/src/css/app/fonts.css +6 -6
  392. package/src/css/md-tooltip.css +4 -39
  393. package/src/css/md.css +10 -0
  394. package/src/fonts/Fira_Mono/FiraMono-Bold.woff2 +0 -0
  395. package/src/fonts/Fira_Mono/FiraMono-Medium.woff2 +0 -0
  396. package/src/fonts/Fira_Mono/FiraMono-Regular.woff2 +0 -0
  397. package/src/fonts/Lora/Lora-VariableFont_wght.woff2 +0 -0
  398. package/src/fonts/PT_Sans/PTSans-Bold.woff2 +0 -0
  399. package/src/fonts/PT_Sans/PTSans-Regular.woff2 +0 -0
  400. package/src/plugins/core/RenderHTML.tsx +17 -0
  401. package/src/plugins/core/__test__/RenderHTML.test.ts +45 -0
  402. package/src/plugins/core/sanitize-html.ts +25 -18
  403. package/src/plugins/impl/DataTablePlugin.tsx +50 -2
  404. package/src/plugins/impl/SliderPlugin.tsx +1 -3
  405. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +120 -0
  406. package/src/plugins/impl/anywidget/model.ts +1 -2
  407. package/src/plugins/impl/chat/ChatPlugin.tsx +6 -3
  408. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +5 -2
  409. package/src/stories/cell.stories.tsx +8 -8
  410. package/src/stories/layout/vertical/one-column.stories.tsx +9 -8
  411. package/src/stories/log-viewer.stories.tsx +8 -8
  412. package/src/stories/variables.stories.tsx +2 -2
  413. package/src/utils/__tests__/createReducer.test.ts +2 -1
  414. package/src/utils/__tests__/download.test.tsx +21 -20
  415. package/src/utils/copy.ts +18 -5
  416. package/src/utils/createReducer.ts +46 -26
  417. package/src/utils/download.ts +4 -3
  418. package/src/utils/html-to-image.ts +6 -0
  419. package/src/utils/json/base64.ts +3 -3
  420. package/src/utils/traceback.ts +5 -3
  421. package/dist/_basePickBy-pTDW2_2A.js +0 -47
  422. package/dist/apl-lHFVoxx7.js +0 -4
  423. package/dist/architecture-7HQA4BMR-BmtmhGMc.js +0 -6
  424. package/dist/asciiarmor-DqCdZUHI.js +0 -4
  425. package/dist/asn1-DEcwtw-q.js +0 -4
  426. package/dist/brainfuck-Bro9Oz5x.js +0 -4
  427. package/dist/classDiagram-2ON5EDUG-DphiMW3Y.js +0 -30
  428. package/dist/classDiagram-v2-WZHVMYZB-BH1x5h4a.js +0 -30
  429. package/dist/clojure-B2uhdQPa.js +0 -4
  430. package/dist/cmake-B9WXyQcc.js +0 -4
  431. package/dist/cobol-CPD3EJfO.js +0 -4
  432. package/dist/coffeescript-KD9TnEnS.js +0 -4
  433. package/dist/commonlisp-DNEULz_Q.js +0 -4
  434. package/dist/crystal-DVPNgAPQ.js +0 -4
  435. package/dist/css-fq3a1AH1.js +0 -4
  436. package/dist/cypher-Dtzq0BP7.js +0 -4
  437. package/dist/d-DcZudIhJ.js +0 -4
  438. package/dist/diff-D9BPDC3o.js +0 -4
  439. package/dist/dist-B4MxkKHf.js +0 -8
  440. package/dist/dist-BYghZv6b.js +0 -5
  441. package/dist/dist-Be-uQhz5.js +0 -6
  442. package/dist/dist-CB_xf0ju.js +0 -5
  443. package/dist/dist-CK0qFAbF.js +0 -8
  444. package/dist/dist-CYEk-qrr.js +0 -8
  445. package/dist/dist-CmKoWpMk.js +0 -5
  446. package/dist/dist-D1nf4IQl.js +0 -5
  447. package/dist/dist-Df3AcKpt.js +0 -6
  448. package/dist/dist-DgaFHt_I.js +0 -5
  449. package/dist/dist-Dk10C3ui.js +0 -5
  450. package/dist/dist-DtyPVMHR.js +0 -5
  451. package/dist/dist-ko7WnHAO.js +0 -5
  452. package/dist/dist-of7gLRFK.js +0 -8
  453. package/dist/dtd-FhG-tVom.js +0 -4
  454. package/dist/dylan-HWpZOBPw.js +0 -4
  455. package/dist/ecl-B_rcje1I.js +0 -4
  456. package/dist/eiffel-oqHyHs6f.js +0 -4
  457. package/dist/elm-B62RQEds.js +0 -4
  458. package/dist/erlang-CjRjjA-B.js +0 -4
  459. package/dist/esm-BLobyqMs.js +0 -4387
  460. package/dist/factor-CGH_TnIV.js +0 -4
  461. package/dist/forth-5N06oHNp.js +0 -4
  462. package/dist/fortran-wZ-sNg3h.js +0 -4
  463. package/dist/gas-3H4_FaS8.js +0 -4
  464. package/dist/gherkin-PEA2uy50.js +0 -4
  465. package/dist/groovy-DZzbvCP1.js +0 -4
  466. package/dist/haskell-CExLTzho.js +0 -4
  467. package/dist/haxe-f3pVb8qU.js +0 -5
  468. package/dist/idl-BbWlJ0gk.js +0 -4
  469. package/dist/infoDiagram-HS3SLOUP-BXGbfBss.js +0 -30
  470. package/dist/javascript-eMOhp6Aq.js +0 -4
  471. package/dist/julia-C6w3Rvqb.js +0 -4
  472. package/dist/livescript-ChQl9lD-.js +0 -4
  473. package/dist/lua-CiDvI96j.js +0 -4
  474. package/dist/mathematica-ClVO4k7N.js +0 -4
  475. package/dist/mbox-BEI7DeUg.js +0 -4
  476. package/dist/mermaid-4DMBBIKO-PVrJfEpX.js +0 -6
  477. package/dist/mirc-DwidJ3iH.js +0 -4
  478. package/dist/mllike-Dspdy0xJ.js +0 -6
  479. package/dist/modelica-CIUejP-L.js +0 -4
  480. package/dist/mscgen-BWXU4Omp.js +0 -6
  481. package/dist/mumps-PHFFoPk5.js +0 -4
  482. package/dist/nsis-B7xooKLf.js +0 -4
  483. package/dist/ntriples-DnOgtCzG.js +0 -4
  484. package/dist/octave-Cn5kH_QT.js +0 -4
  485. package/dist/oz-DR-sROpu.js +0 -4
  486. package/dist/pascal-CPKK1zcS.js +0 -4
  487. package/dist/perl-D7FuFdyd.js +0 -4
  488. package/dist/pig-CEXnOAnI.js +0 -4
  489. package/dist/powershell-BKvWab7q.js +0 -4
  490. package/dist/properties-7jnK_vYx.js +0 -4
  491. package/dist/protobuf-4rslMjEN.js +0 -4
  492. package/dist/pug-BVwdEv4r.js +0 -4
  493. package/dist/puppet-iSHg_1Z2.js +0 -4
  494. package/dist/python-tK3wUCn0.js +0 -4
  495. package/dist/q-DP_Dcoox.js +0 -4
  496. package/dist/r-C32wHLYu.js +0 -4
  497. package/dist/react-vega-CFUuchds.js +0 -9
  498. package/dist/rpm-BbDBUfs9.js +0 -5
  499. package/dist/ruby-COfWUiIr.js +0 -4
  500. package/dist/sas-y_Hue2-X.js +0 -4
  501. package/dist/scheme-7jTCqHw8.js +0 -4
  502. package/dist/shell-DAqJWXDk.js +0 -4
  503. package/dist/sieve-EaqnbCO3.js +0 -4
  504. package/dist/smalltalk-DL03YKLJ.js +0 -4
  505. package/dist/sparql-DTA-tQ_q.js +0 -4
  506. package/dist/stateDiagram-v2-4FDKWEC3-BIeUs-Ed.js +0 -29
  507. package/dist/stex-KfRnSHzF.js +0 -4
  508. package/dist/stylus-CfjeFry_.js +0 -4
  509. package/dist/swift-Dl0RRDbH.js +0 -4
  510. package/dist/tcl-wv9O7fLZ.js +0 -4
  511. package/dist/textile-DzMRCBcV.js +0 -4
  512. package/dist/toml-CyIWqgbe.js +0 -4
  513. package/dist/troff-_huin_CY.js +0 -4
  514. package/dist/ttcn-BEiJuYYc.js +0 -4
  515. package/dist/ttcn-cfg-DB6Ksh67.js +0 -4
  516. package/dist/turtle-DzhzGEum.js +0 -4
  517. package/dist/useDeepCompareMemoize-BWUwfh37.js +0 -755
  518. package/dist/useIframeCapabilities-OQaMKgZl.js +0 -46
  519. package/dist/vb-CngKZQHu.js +0 -4
  520. package/dist/vbscript-BV_8nbeM.js +0 -4
  521. package/dist/velocity-IqE7qYKE.js +0 -4
  522. package/dist/verilog-xtyaWTnc.js +0 -4
  523. package/dist/vhdl-BaqXCtf3.js +0 -4
  524. package/dist/webidl-BDB8PTTO.js +0 -4
  525. package/dist/xquery-BIC-qj9Z.js +0 -4
  526. package/dist/yacas-ifv5tftd.js +0 -4
  527. package/dist/z80-B8zOMVNt.js +0 -4
  528. package/src/core/cells/effects.ts +0 -42
  529. package/src/fonts/Fira_Mono/FiraMono-Bold.ttf +0 -0
  530. package/src/fonts/Fira_Mono/FiraMono-Medium.ttf +0 -0
  531. package/src/fonts/Fira_Mono/FiraMono-Regular.ttf +0 -0
  532. package/src/fonts/Lora/Lora-Italic-VariableFont_wght.ttf +0 -0
  533. package/src/fonts/Lora/Lora-VariableFont_wght.ttf +0 -0
  534. package/src/fonts/Lora/static/Lora-Bold.ttf +0 -0
  535. package/src/fonts/Lora/static/Lora-BoldItalic.ttf +0 -0
  536. package/src/fonts/Lora/static/Lora-Italic.ttf +0 -0
  537. package/src/fonts/Lora/static/Lora-Medium.ttf +0 -0
  538. package/src/fonts/Lora/static/Lora-MediumItalic.ttf +0 -0
  539. package/src/fonts/Lora/static/Lora-Regular.ttf +0 -0
  540. package/src/fonts/Lora/static/Lora-SemiBold.ttf +0 -0
  541. package/src/fonts/Lora/static/Lora-SemiBoldItalic.ttf +0 -0
  542. package/src/fonts/PT_Sans/PTSans-Bold.ttf +0 -0
  543. package/src/fonts/PT_Sans/PTSans-BoldItalic.ttf +0 -0
  544. package/src/fonts/PT_Sans/PTSans-Italic.ttf +0 -0
  545. package/src/fonts/PT_Sans/PTSans-Regular.ttf +0 -0
  546. /package/dist/{_arrayReduce-BfFy684W.js → _arrayReduce-6BJAuN54.js} +0 -0
  547. /package/dist/{_baseSlice-BrVixxuc.js → _baseSlice-bwIVgwNq.js} +0 -0
  548. /package/dist/{_hasUnicode-C32WqUu7.js → _hasUnicode-DOFcQHhs.js} +0 -0
  549. /package/dist/{apl-DRxKiEot.js → apl-99A7dLQe.js} +0 -0
  550. /package/dist/{array-D-nrDupM.js → array-B-MVxRIF.js} +0 -0
  551. /package/dist/{asciiarmor-C8HoXFIm.js → asciiarmor-DLEhpFDx.js} +0 -0
  552. /package/dist/{asn1-9Bo0DYT-.js → asn1-CMrcTsT4.js} +0 -0
  553. /package/dist/{asterisk-BsiuGzWq.js → asterisk-BUZwqih-.js} +0 -0
  554. /package/dist/{brainfuck-Db8njC-p.js → brainfuck-ChPt5yBe.js} +0 -0
  555. /package/dist/{chunk-DR5Q36YT-D4q96vNV.js → chunk-DR5Q36YT-CP69aZS_.js} +0 -0
  556. /package/dist/{click-outside-container-CKfwEZqH.js → click-outside-container-DB_bTXRG.js} +0 -0
  557. /package/dist/{clike-CFhUNtI5.js → clike-CE0fXfM_.js} +0 -0
  558. /package/dist/{clojure-CX7oovsp.js → clojure-QkBEMU-g.js} +0 -0
  559. /package/dist/{clsx-D2KVTYnW.js → clsx-yW_RAw0K.js} +0 -0
  560. /package/dist/{cmake-C29AR2kk.js → cmake-CU1jX7Mo.js} +0 -0
  561. /package/dist/{cobol-CNkuRW9i.js → cobol-DMOKzzky.js} +0 -0
  562. /package/dist/{coffeescript-BJAbfGam.js → coffeescript-DjnjLyfk.js} +0 -0
  563. /package/dist/{colors-6nB_pSln.js → colors-Cn2p_FA3.js} +0 -0
  564. /package/dist/{common-keywords-BAkLFdud.js → common-keywords-hbLeU7VU.js} +0 -0
  565. /package/dist/{commonlisp-BTNhj2l9.js → commonlisp-CYd9iOSe.js} +0 -0
  566. /package/dist/{crystal-CZc0nIm9.js → crystal-Dy55yoYG.js} +0 -0
  567. /package/dist/{css-L2-0OTXc.js → css-CNU8w3HJ.js} +0 -0
  568. /package/dist/{cypher-Dnc6MXl0.js → cypher-q47DGzK7.js} +0 -0
  569. /package/dist/{cytoscape.esm-BXzSsA6N.js → cytoscape.esm-WbbDoCfu.js} +0 -0
  570. /package/dist/{d-C6X9iIga.js → d-jEkaLvxX.js} +0 -0
  571. /package/dist/{defaultLocale-CfQ4kBaV.js → defaultLocale-Dr6Bz4JK.js} +0 -0
  572. /package/dist/{defaultLocale-Bklbu-Tp.js → defaultLocale-I3_GfJ4U.js} +0 -0
  573. /package/dist/{diff-ZzKinYqY.js → diff-vb2-unFN.js} +0 -0
  574. /package/dist/{dist-Bymy0kEH.js → dist-C89sHDXk.js} +0 -0
  575. /package/dist/{dtd-CytEpkAo.js → dtd-C9kR-bXa.js} +0 -0
  576. /package/dist/{duckdb-keywords-C1WxmSfG.js → duckdb-keywords-CZ_ZTscu.js} +0 -0
  577. /package/dist/{dylan-CZByFBEQ.js → dylan-BLckrK-V.js} +0 -0
  578. /package/dist/{ebnf-BF2FOt-m.js → ebnf-WEXPLEWb.js} +0 -0
  579. /package/dist/{ecl-Cp7L1F5B.js → ecl-CEsf6XVg.js} +0 -0
  580. /package/dist/{eiffel-C66yjnFL.js → eiffel-2KGZNzx6.js} +0 -0
  581. /package/dist/{elm-DtHo-73e.js → elm-D2s3K5wF.js} +0 -0
  582. /package/dist/{emotion-is-prop-valid.esm-DtW2o230.js → emotion-is-prop-valid.esm-CflmeIys.js} +0 -0
  583. /package/dist/{erlang-C_sj44mF.js → erlang-0PMFOndk.js} +0 -0
  584. /package/dist/{esm-BWftfC-A.js → esm-Bb_hbWan.js} +0 -0
  585. /package/dist/{fcl-BhLcvRo_.js → fcl-B_Gv5Jfx.js} +0 -0
  586. /package/dist/{forth-CIDHh56T.js → forth-DG89iUsu.js} +0 -0
  587. /package/dist/{fortran-BQrDVXRU.js → fortran-ytKsAVvu.js} +0 -0
  588. /package/dist/{gas-D4HQPB0Q.js → gas-Cg2Fm0N2.js} +0 -0
  589. /package/dist/{gherkin-UB2gJHdT.js → gherkin-B87FEnZ-.js} +0 -0
  590. /package/dist/{groovy-DVz6jkOx.js → groovy-Dcs08AWD.js} +0 -0
  591. /package/dist/{haskell-CpUdAPCz.js → haskell-cwkOuhx6.js} +0 -0
  592. /package/dist/{haxe-DCV5_cqD.js → haxe-DWEo4q10.js} +0 -0
  593. /package/dist/{http-C_TDb8VX.js → http-Dc2fv19V.js} +0 -0
  594. /package/dist/{idl-D7WCIgHw.js → idl-WWQwDcRV.js} +0 -0
  595. /package/dist/{init-Ci8VD8ZH.js → init-D-g0ONX1.js} +0 -0
  596. /package/dist/{invariant-D9QLJ4SZ.js → invariant-Ctm_8TNZ.js} +0 -0
  597. /package/dist/{isArrayLikeObject-BrYl-ETg.js → isArrayLikeObject-C-hFPChh.js} +0 -0
  598. /package/dist/{javascript-B2Rn0Lmd.js → javascript-BeR74dxD.js} +0 -0
  599. /package/dist/{jsx-runtime-CTBg5pdT.js → jsx-runtime-9hcJiI23.js} +0 -0
  600. /package/dist/{julia-ApprtEaw.js → julia-UlvCUYGL.js} +0 -0
  601. /package/dist/{katex-Bk_FvVSR.js → katex-B7pMJpE0.js} +0 -0
  602. /package/dist/{livescript-BMLIlM7C.js → livescript-GPmFcmYV.js} +0 -0
  603. /package/dist/{lua-DdDaW3tC.js → lua-DYoT_0zM.js} +0 -0
  604. /package/dist/{main-Tj_-QTyF.js → main-sxFlUO_N.js} +0 -0
  605. /package/dist/{math-HUZifhTs.js → math-BYK36kWZ.js} +0 -0
  606. /package/dist/{mathematica-PnNN7c2Z.js → mathematica-DSFIQlbG.js} +0 -0
  607. /package/dist/{mbox-B84OtHBK.js → mbox-ej8lFMdL.js} +0 -0
  608. /package/dist/{mirc-BVWXJxIq.js → mirc-CAdIdvHQ.js} +0 -0
  609. /package/dist/{mllike-BawXWupH.js → mllike-CjTB1lHF.js} +0 -0
  610. /package/dist/{modelica-C8-X4Hf_.js → modelica-BB68FYMa.js} +0 -0
  611. /package/dist/{mscgen-BOM6dDj8.js → mscgen-BkbzgGGI.js} +0 -0
  612. /package/dist/{mumps-DQOY8n05.js → mumps-Cu-28E9F.js} +0 -0
  613. /package/dist/{nginx-DkMgA__9.js → nginx-ComVAAGN.js} +0 -0
  614. /package/dist/{node-sql-parser-D53LM_7b.js → node-sql-parser-DNGGJ-Rw.js} +0 -0
  615. /package/dist/{ntriples-DU8VrXdW.js → ntriples-D9cQiZxZ.js} +0 -0
  616. /package/dist/{octave-BzTIBsQ8.js → octave-BvtAnPX0.js} +0 -0
  617. /package/dist/{oz-DKFcZsoi.js → oz-COaVHk2E.js} +0 -0
  618. /package/dist/{pascal-DHBZ15pT.js → pascal-BFpqVD2x.js} +0 -0
  619. /package/dist/{path-BVI7RNUv.js → path-Du6n3sOU.js} +0 -0
  620. /package/dist/{perl-75NMI3w0.js → perl-DaiORxHP.js} +0 -0
  621. /package/dist/{pig-B-HY1fo_.js → pig-DFzRhmsF.js} +0 -0
  622. /package/dist/{powershell-DEH22U53.js → powershell-BG2LQNKN.js} +0 -0
  623. /package/dist/{properties-B1MzBoJC.js → properties-CqJJR5QY.js} +0 -0
  624. /package/dist/{protobuf-Dr14KV0p.js → protobuf-WwDYV1yY.js} +0 -0
  625. /package/dist/{puppet-C4z38l7v.js → puppet-QNY3w_uN.js} +0 -0
  626. /package/dist/{purify.es-DGenX2XH.js → purify.es-Co_dANLh.js} +0 -0
  627. /package/dist/{python-D2L7Nknt.js → python-4QrQ3Ugi.js} +0 -0
  628. /package/dist/{q-PxipHfgS.js → q-DhwXuxE2.js} +0 -0
  629. /package/dist/{r-CEMMu_Tf.js → r-Df-nkR25.js} +0 -0
  630. /package/dist/{range-BToS7LsA.js → range-Bn3no95s.js} +0 -0
  631. /package/dist/{react-dom-CqtLRVZP.js → react-dom-BKwCWYPW.js} +0 -0
  632. /package/dist/{rpm-D3xyahkR.js → rpm-Cokue07s.js} +0 -0
  633. /package/dist/{ruby-DwEkwdiu.js → ruby-DrYcL3qF.js} +0 -0
  634. /package/dist/{sas-L1W0BRft.js → sas-CoiPirA5.js} +0 -0
  635. /package/dist/{scheme-CTybTrX0.js → scheme-CwFLjzHv.js} +0 -0
  636. /package/dist/{shell-BSx3LZnu.js → shell-BFV-R24I.js} +0 -0
  637. /package/dist/{sieve-BjUfbv-6.js → sieve-CxwXF5T9.js} +0 -0
  638. /package/dist/{simple-mode-IPZGFbI6.js → simple-mode-DTaJtKPt.js} +0 -0
  639. /package/dist/{smalltalk-BlzuYrMv.js → smalltalk-QivVOCtX.js} +0 -0
  640. /package/dist/{solr-Cj_9RM4d.js → solr-DTkyqJ-Z.js} +0 -0
  641. /package/dist/{sparql-BXKjQ0cK.js → sparql-nKsFk8j7.js} +0 -0
  642. /package/dist/{spreadsheet-CifI10GO.js → spreadsheet-CER0raqY.js} +0 -0
  643. /package/dist/{sql-B0bFyY1c.js → sql-ByOoEONQ.js} +0 -0
  644. /package/dist/{stex-BIsgBmK4.js → stex-7yEw16Ww.js} +0 -0
  645. /package/dist/{stylus-CqrLLVnG.js → stylus-BLKQAycn.js} +0 -0
  646. /package/dist/{swift-DIqvj3_G.js → swift-CJoKqiKj.js} +0 -0
  647. /package/dist/{tcl-B8bOIGVK.js → tcl-YTeYFNUc.js} +0 -0
  648. /package/dist/{textile-DZsjavD_.js → textile-C6rKQqMQ.js} +0 -0
  649. /package/dist/{tiddlywiki-BbGdvEjx.js → tiddlywiki-Cr9xyOY1.js} +0 -0
  650. /package/dist/{tiki-BYesmRDo.js → tiki-D5JONyfZ.js} +0 -0
  651. /package/dist/{timer-CPsmIOdm.js → timer-D7JVdX9U.js} +0 -0
  652. /package/dist/{toml-Uc7m08nl.js → toml-DxlPGbRy.js} +0 -0
  653. /package/dist/{treemap-DMn4tIJ7.js → treemap-qFGzn7xk.js} +0 -0
  654. /package/dist/{troff-GEl5wcXR.js → troff-DFCfH7Ku.js} +0 -0
  655. /package/dist/{ttcn-pr4FDOLT.js → ttcn-DAW-ERVP.js} +0 -0
  656. /package/dist/{ttcn-cfg-dZQ_fWTH.js → ttcn-cfg-CpJ8b7EN.js} +0 -0
  657. /package/dist/{turtle-TPRDOknA.js → turtle-BneV2f8L.js} +0 -0
  658. /package/dist/{vb-BJUAeTYr.js → vb-D973Vxxh.js} +0 -0
  659. /package/dist/{vbscript-CcJ6Z3ic.js → vbscript-Dckaq3YO.js} +0 -0
  660. /package/dist/{velocity-pq4ZMzU3.js → velocity-DKty-GUC.js} +0 -0
  661. /package/dist/{verilog-timMNjHt.js → verilog-aNaK_biA.js} +0 -0
  662. /package/dist/{vhdl-DYFbVKNm.js → vhdl-CQuehnQy.js} +0 -0
  663. /package/dist/{webidl-pue9oqnb.js → webidl-Bhg8vaMr.js} +0 -0
  664. /package/dist/{xquery-DeItGynK.js → xquery-D2q16GaM.js} +0 -0
  665. /package/dist/{yacas-By2Qrjba.js → yacas-DHGOHnNa.js} +0 -0
  666. /package/dist/{z80-C7iLsyPC.js → z80-BPhTmO22.js} +0 -0
@@ -1,6 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
3
  import { beforeEach, describe, expect, it } from "vitest";
4
+ import { cellId } from "@/__tests__/branded";
4
5
  import type { CellMessage } from "@/core/kernel/messages";
5
6
  import { invariant } from "@/utils/invariant";
6
7
  import {
@@ -22,13 +23,13 @@ describe("RunsState Reducer", () => {
22
23
  let state: RunsState;
23
24
 
24
25
  const runId = "run1" as RunId;
25
- const cellId = "cell1";
26
+ const testCellId = cellId("cell1");
26
27
  const timestamp = Date.now();
27
28
  const code = "print('Hello World')";
28
29
 
29
30
  const cellNotification: CellMessage = {
30
31
  run_id: runId,
31
- cell_id: cellId,
32
+ cell_id: testCellId,
32
33
  timestamp,
33
34
  status: "queued",
34
35
  };
@@ -61,9 +62,9 @@ describe("RunsState Reducer", () => {
61
62
  runStartTime: timestamp,
62
63
  cellRuns: new Map([
63
64
  [
64
- cellId,
65
+ testCellId,
65
66
  {
66
- cellId,
67
+ cellId: testCellId,
67
68
  code: code.slice(0, MAX_CODE_LENGTH),
68
69
  elapsedTime: 0,
69
70
  startTime: timestamp,
@@ -98,7 +99,7 @@ describe("RunsState Reducer", () => {
98
99
  payload: {
99
100
  cellNotification: {
100
101
  run_id: runId2,
101
- cell_id: "cell2",
102
+ cell_id: cellId("cell2"),
102
103
  timestamp,
103
104
  status: "queued",
104
105
  },
@@ -124,7 +125,7 @@ describe("RunsState Reducer", () => {
124
125
  payload: {
125
126
  cellNotification: {
126
127
  run_id: runId,
127
- cell_id: cellId,
128
+ cell_id: testCellId,
128
129
  timestamp: timestamp + 1000,
129
130
  status: "running",
130
131
  },
@@ -145,9 +146,9 @@ describe("RunsState Reducer", () => {
145
146
  payload: {
146
147
  cellNotification: {
147
148
  run_id: runId,
148
- cell_id: cellId,
149
+ cell_id: testCellId,
149
150
  timestamp: runStartTimestamp + 5000,
150
- status: "success",
151
+ status: "idle",
151
152
  },
152
153
  code: "console.log('Hello World');",
153
154
  },
@@ -171,8 +172,8 @@ describe("RunsState Reducer", () => {
171
172
  type: "addCellNotification",
172
173
  payload: {
173
174
  cellNotification: {
174
- run_id: `run${i}`,
175
- cell_id: `cell${i}`,
175
+ run_id: `run${i}` as RunId,
176
+ cell_id: cellId(`cell${i}`),
176
177
  timestamp: timestamp,
177
178
  status: "queued",
178
179
  },
@@ -198,7 +199,7 @@ describe("RunsState Reducer", () => {
198
199
  payload: {
199
200
  cellNotification: {
200
201
  run_id: runId,
201
- cell_id: cellId,
202
+ cell_id: testCellId,
202
203
  timestamp,
203
204
  status: "queued",
204
205
  },
@@ -220,12 +221,13 @@ describe("RunsState Reducer", () => {
220
221
  payload: {
221
222
  cellNotification: {
222
223
  run_id: runId,
223
- cell_id: cellId,
224
+ cell_id: testCellId,
224
225
  timestamp: errorTimestamp,
225
226
  status: "running",
226
227
  output: {
227
228
  channel: "stderr",
228
- text: "Error occurred",
229
+ data: "Error occurred",
230
+ mimetype: "text/plain",
229
231
  },
230
232
  },
231
233
  code: "console.log('Hello World');",
@@ -248,12 +250,13 @@ describe("RunsState Reducer", () => {
248
250
  payload: {
249
251
  cellNotification: {
250
252
  run_id: runId,
251
- cell_id: cellId,
253
+ cell_id: testCellId,
252
254
  timestamp: errorTimestamp,
253
255
  status: "running",
254
256
  output: {
255
257
  channel: "marimo-error",
256
- text: "Error occurred",
258
+ data: "Error occurred",
259
+ mimetype: "text/plain",
257
260
  },
258
261
  },
259
262
  code: "console.log('Hello World');",
@@ -273,10 +276,12 @@ describe("RunsState Reducer", () => {
273
276
  payload: {
274
277
  cellNotification: {
275
278
  run_id: runId,
276
- cell_id: cellId,
279
+ cell_id: testCellId,
277
280
  timestamp,
278
281
  output: {
279
282
  channel: "marimo-error",
283
+ data: "",
284
+ mimetype: "text/plain",
280
285
  },
281
286
  },
282
287
  code: "console.log('Hello World');",
@@ -288,7 +293,7 @@ describe("RunsState Reducer", () => {
288
293
  payload: {
289
294
  cellNotification: {
290
295
  run_id: runId,
291
- cell_id: cellId,
296
+ cell_id: testCellId,
292
297
  timestamp: timestamp + 2000,
293
298
  status: "running", // shouldn't happen
294
299
  },
@@ -312,7 +317,7 @@ describe("RunsState Reducer", () => {
312
317
  payload: {
313
318
  cellNotification: {
314
319
  run_id: runId2,
315
- cell_id: "cell2",
320
+ cell_id: cellId("cell2"),
316
321
  timestamp: timestamp + 1000,
317
322
  status: "queued",
318
323
  },
@@ -325,7 +330,7 @@ describe("RunsState Reducer", () => {
325
330
  payload: {
326
331
  cellNotification: {
327
332
  run_id: runId3,
328
- cell_id: "cell3",
333
+ cell_id: cellId("cell3"),
329
334
  timestamp: timestamp + 2000,
330
335
  status: "queued",
331
336
  },
@@ -345,7 +350,7 @@ describe("RunsState Reducer", () => {
345
350
  payload: {
346
351
  cellNotification: {
347
352
  run_id: runId,
348
- cell_id: "cell2",
353
+ cell_id: cellId("cell2"),
349
354
  timestamp: timestamp + 1000,
350
355
  status: "queued",
351
356
  },
@@ -367,7 +372,7 @@ describe("RunsState Reducer", () => {
367
372
  payload: {
368
373
  cellNotification: {
369
374
  run_id: runId,
370
- cell_id: cellId,
375
+ cell_id: testCellId,
371
376
  timestamp: timestamp + 1000,
372
377
  status: "running",
373
378
  },
@@ -386,7 +391,7 @@ describe("RunsState Reducer", () => {
386
391
  payload: {
387
392
  cellNotification: {
388
393
  run_id: runId,
389
- cell_id: cellId,
394
+ cell_id: testCellId,
390
395
  timestamp,
391
396
  status: "queued",
392
397
  },
@@ -405,7 +410,7 @@ describe("RunsState Reducer", () => {
405
410
  payload: {
406
411
  cellNotification: {
407
412
  run_id: runId,
408
- cell_id: cellId,
413
+ cell_id: testCellId,
409
414
  timestamp,
410
415
  status: "queued",
411
416
  },
@@ -419,7 +424,7 @@ describe("RunsState Reducer", () => {
419
424
  payload: {
420
425
  cellNotification: {
421
426
  run_id: runId,
422
- cell_id: "cell2",
427
+ cell_id: cellId("cell2"),
423
428
  timestamp: timestamp + 1000,
424
429
  status: "queued",
425
430
  },
@@ -1,7 +1,8 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
3
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
4
- import { type CellId, HTMLCellId } from "@/core/cells/ids";
4
+ import { cellId } from "@/__tests__/branded";
5
+ import { HTMLCellId } from "@/core/cells/ids";
5
6
  import { Logger } from "@/utils/Logger";
6
7
 
7
8
  // Mock the getCellEditorView function
@@ -20,12 +21,12 @@ vi.mock("@/core/codemirror/extensions", () => ({
20
21
  const { scrollCellIntoView } = await import("@/core/cells/scrollCellIntoView");
21
22
 
22
23
  describe("scrollCellIntoView", () => {
23
- const cellId = "test-cell-id" as CellId;
24
+ const cid = cellId("test-cell-id");
24
25
  let cellElement: HTMLElement;
25
26
 
26
27
  beforeEach(() => {
27
28
  cellElement = document.createElement("div");
28
- cellElement.id = HTMLCellId.create(cellId);
29
+ cellElement.id = HTMLCellId.create(cid);
29
30
  cellElement.scrollIntoView = vi.fn();
30
31
  document.body.append(cellElement);
31
32
 
@@ -42,7 +43,7 @@ describe("scrollCellIntoView", () => {
42
43
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
44
  mockGetCellEditorView.mockReturnValue(mockEditor as any);
44
45
 
45
- scrollCellIntoView(cellId);
46
+ scrollCellIntoView(cid);
46
47
 
47
48
  expect(mockScrollActiveLineIntoView).toHaveBeenCalledWith(mockEditor, {
48
49
  behavior: "instant",
@@ -51,7 +52,7 @@ describe("scrollCellIntoView", () => {
51
52
  });
52
53
 
53
54
  it("should scroll cell element when editor is not focused", () => {
54
- scrollCellIntoView(cellId);
55
+ scrollCellIntoView(cid);
55
56
 
56
57
  expect(mockScrollActiveLineIntoView).not.toHaveBeenCalled();
57
58
  expect(cellElement.scrollIntoView).toHaveBeenCalledWith({
@@ -64,10 +65,10 @@ describe("scrollCellIntoView", () => {
64
65
  const warnSpy = vi.spyOn(Logger, "warn").mockImplementation(vi.fn());
65
66
  cellElement.remove();
66
67
 
67
- scrollCellIntoView(cellId);
68
+ scrollCellIntoView(cid);
68
69
 
69
70
  expect(warnSpy).toHaveBeenCalledWith(
70
- `[CellFocusManager] scrollCellIntoView: element not found: ${cellId}`,
71
+ `[CellFocusManager] scrollCellIntoView: element not found: ${cid}`,
71
72
  );
72
73
  warnSpy.mockRestore();
73
74
  });
@@ -4,11 +4,12 @@ import type * as api from "@marimo-team/marimo-api";
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  import { beforeEach, describe, expect, it, vi } from "vitest";
6
6
  import { Mocks } from "@/__mocks__/common";
7
+ import { cellId } from "@/__tests__/branded";
7
8
  import { parseOutline } from "@/core/dom/outline";
8
9
  import { MultiColumn, visibleForTesting } from "@/utils/id-tree";
9
10
  import { invariant } from "@/utils/invariant";
10
11
  import { Logger } from "@/utils/Logger";
11
- import { type CellId, SETUP_CELL_ID } from "../ids";
12
+ import { SETUP_CELL_ID } from "../ids";
12
13
  import { notebookStateFromSession } from "../session";
13
14
 
14
15
  // Mock dependencies
@@ -22,7 +23,7 @@ type SessionCell = api.Session["NotebookSessionV1"]["cells"][0];
22
23
  type NotebookCell = api.Notebook["NotebookV1"]["cells"][0];
23
24
 
24
25
  // Test constants
25
- const CELL_1 = "cell-1" as CellId;
26
+ const CELL_1 = cellId("cell-1");
26
27
 
27
28
  describe("notebookStateFromSession", () => {
28
29
  beforeEach(() => {
@@ -671,9 +672,9 @@ describe("notebookStateFromSession", () => {
671
672
  );
672
673
  // Should have correct code and output for each cell
673
674
  for (const code of ["a", "b", "c", "d", "e", "f"]) {
674
- const cellId = `cell-${code}` as CellId;
675
- expect(result.cellData[cellId].code).toBe(code);
676
- expect(result.cellRuntime[cellId].output).toEqual({
675
+ const cid = cellId(`cell-${code}`);
676
+ expect(result.cellData[cid].code).toBe(code);
677
+ expect(result.cellRuntime[cid].output).toEqual({
677
678
  channel: "output",
678
679
  data: `${code.toUpperCase()}!`,
679
680
  mimetype: "text/plain",
@@ -751,26 +752,26 @@ describe("notebookStateFromSession", () => {
751
752
  );
752
753
 
753
754
  // Should have correct code for each cell
754
- expect(result.cellData["cell-a" as CellId].code).toBe("a");
755
- expect(result.cellData["cell-c" as CellId].code).toBe("c");
756
- expect(result.cellData["cell-z" as CellId].code).toBe("z");
757
- expect(result.cellData["cell-e" as CellId].code).toBe("e");
758
- expect(result.cellData["cell-g" as CellId].code).toBe("g");
755
+ expect(result.cellData[cellId("cell-a")].code).toBe("a");
756
+ expect(result.cellData[cellId("cell-c")].code).toBe("c");
757
+ expect(result.cellData[cellId("cell-z")].code).toBe("z");
758
+ expect(result.cellData[cellId("cell-e")].code).toBe("e");
759
+ expect(result.cellData[cellId("cell-g")].code).toBe("g");
759
760
 
760
761
  // Should have session outputs for matching cells (a, c, e)
761
- expect(result.cellRuntime["cell-a" as CellId].output).toEqual({
762
+ expect(result.cellRuntime[cellId("cell-a")].output).toEqual({
762
763
  channel: "output",
763
764
  data: "A!",
764
765
  mimetype: "text/plain",
765
766
  timestamp: 0,
766
767
  });
767
- expect(result.cellRuntime["cell-c" as CellId].output).toEqual({
768
+ expect(result.cellRuntime[cellId("cell-c")].output).toEqual({
768
769
  channel: "output",
769
770
  data: "C!",
770
771
  mimetype: "text/plain",
771
772
  timestamp: 0,
772
773
  });
773
- expect(result.cellRuntime["cell-e" as CellId].output).toEqual({
774
+ expect(result.cellRuntime[cellId("cell-e")].output).toEqual({
774
775
  channel: "output",
775
776
  data: "E!",
776
777
  mimetype: "text/plain",
@@ -778,8 +779,8 @@ describe("notebookStateFromSession", () => {
778
779
  });
779
780
 
780
781
  // Should have no output for new cells (z, g) - they get stub session cells
781
- expect(result.cellRuntime["cell-z" as CellId].output).toBeNull();
782
- expect(result.cellRuntime["cell-g" as CellId].output).toBeNull();
782
+ expect(result.cellRuntime[cellId("cell-z")].output).toBeNull();
783
+ expect(result.cellRuntime[cellId("cell-g")].output).toBeNull();
783
784
 
784
785
  // Should log warning about different cells
785
786
  expect(Logger.warn).toHaveBeenCalledWith(
@@ -875,18 +876,18 @@ describe("notebookStateFromSession", () => {
875
876
  );
876
877
 
877
878
  // Should have correct code from notebook
878
- expect(result.cellData["cell-1" as CellId].code).toBe("1 / 0");
879
- expect(result.cellData["cell-2" as CellId].code).toBe('mo.md("Hello")');
880
- expect(result.cellData["cell-3" as CellId].code).toBe(
879
+ expect(result.cellData[cellId("cell-1")].code).toBe("1 / 0");
880
+ expect(result.cellData[cellId("cell-2")].code).toBe('mo.md("Hello")');
881
+ expect(result.cellData[cellId("cell-3")].code).toBe(
881
882
  "x = mo.ui.slider(0, 10)",
882
883
  );
883
884
 
884
885
  // cell-1: No matching session cell (hash is null), gets stub session cell
885
- expect(result.cellRuntime["cell-1" as CellId].output).toBeNull();
886
- expect(result.cellRuntime["cell-1" as CellId].consoleOutputs).toEqual([]);
886
+ expect(result.cellRuntime[cellId("cell-1")].output).toBeNull();
887
+ expect(result.cellRuntime[cellId("cell-1")].consoleOutputs).toEqual([]);
887
888
 
888
889
  // cell-2: Matches session cell-1 by hash (moMd), gets its output
889
- expect(result.cellRuntime["cell-2" as CellId].output).toEqual({
890
+ expect(result.cellRuntime[cellId("cell-2")].output).toEqual({
890
891
  channel: "output",
891
892
  data: "Welcome to marimo!",
892
893
  mimetype: "text/markdown",
@@ -894,7 +895,7 @@ describe("notebookStateFromSession", () => {
894
895
  });
895
896
 
896
897
  // cell-3: Matches session cell-2 by hash (slider), gets its output
897
- expect(result.cellRuntime["cell-3" as CellId].output).toEqual({
898
+ expect(result.cellRuntime[cellId("cell-3")].output).toEqual({
898
899
  channel: "output",
899
900
  data: "",
900
901
  mimetype: "text/plain",
@@ -29,6 +29,7 @@ import type { CellConfig } from "../network/types";
29
29
  import { isRtcEnabled } from "../rtc/state";
30
30
  import { createDeepEqualAtom, store } from "../state/jotai";
31
31
  import { prepareCellForExecution, transitionCell } from "./cell";
32
+ import { documentTransactionMiddleware } from "./document-changes";
32
33
  import { CellId, SCRATCH_CELL_ID, SETUP_CELL_ID } from "./ids";
33
34
  import { type CellLog, getCellLogsForMessage } from "./logs";
34
35
  import {
@@ -174,6 +175,7 @@ export interface CreateNewCellAction {
174
175
  */
175
176
  const {
176
177
  reducer,
178
+ addMiddleware,
177
179
  createActions,
178
180
  useActions,
179
181
  valueAtom: notebookAtom,
@@ -245,9 +247,10 @@ const {
245
247
  [newCellId]: createRef(),
246
248
  },
247
249
  scrollKey: autoFocus ? newCellId : null,
248
- untouchedNewCells: hideCode
249
- ? new Set([...state.untouchedNewCells, newCellId])
250
- : state.untouchedNewCells,
250
+ untouchedNewCells:
251
+ hideCode && !code
252
+ ? new Set([...state.untouchedNewCells, newCellId])
253
+ : state.untouchedNewCells,
251
254
  };
252
255
  },
253
256
  moveCell: (
@@ -587,7 +590,9 @@ const {
587
590
  const serializedEditorState = editorView?.state.toJSON({
588
591
  history: historyField,
589
592
  });
590
- serializedEditorState.doc = state.cellData[cellId].code;
593
+ if (serializedEditorState) {
594
+ serializedEditorState.doc = state.cellData[cellId].code;
595
+ }
591
596
 
592
597
  // release the granular atom(s) created for this cell
593
598
  releaseCellAtoms(cellId);
@@ -755,14 +760,29 @@ const {
755
760
  });
756
761
  },
757
762
  handleCellMessage: (state, message: CellMessage) => {
758
- const cellId = message.cell_id as CellId;
759
- const nextState = updateCellRuntimeState({
763
+ const cellId = message.cell_id;
764
+ let nextState = updateCellRuntimeState({
760
765
  state,
761
766
  cellId,
762
767
  cellReducer: (cell) => {
763
768
  return transitionCell(cell, message);
764
769
  },
765
770
  });
771
+ // When a cell is queued for execution, snapshot the current code
772
+ // as lastCodeRun. This clears staleness for cells executed by the
773
+ // kernel (e.g. via code_mode). If the user edits during execution,
774
+ // code !== lastCodeRun keeps the cell stale.
775
+ if (message.status === "queued") {
776
+ nextState = updateCellData({
777
+ state: nextState,
778
+ cellId,
779
+ cellReducer: (cell) => ({
780
+ ...cell,
781
+ lastCodeRun: cell.code.trim(),
782
+ edited: false,
783
+ }),
784
+ });
785
+ }
766
786
  return {
767
787
  ...nextState,
768
788
  cellLogs: [...nextState.cellLogs, ...getCellLogsForMessage(message)],
@@ -1405,6 +1425,11 @@ const {
1405
1425
  },
1406
1426
  });
1407
1427
 
1428
+ // We apply the middleware here (rather than inline in createReducerAndAtoms)
1429
+ // so that the document transaction middleware can import CellActions and
1430
+ // strictly type the dispatched actions without creating a circular dependency.
1431
+ addMiddleware(documentTransactionMiddleware);
1432
+
1408
1433
  function isCellCodeHidden(state: NotebookState, cellId: CellId): boolean {
1409
1434
  return (
1410
1435
  Boolean(state.cellData[cellId].config.hide_code) &&
@@ -1789,8 +1814,10 @@ export function createTracebackInfoAtom(
1789
1814
  * Use this hook to dispatch cell actions. This hook will not cause a re-render
1790
1815
  * when cells change.
1791
1816
  */
1792
- export function useCellActions(): CellActions {
1793
- return useActions();
1817
+ export function useCellActions(
1818
+ options: { skipMiddleware?: boolean } = {},
1819
+ ): CellActions {
1820
+ return useActions(options);
1794
1821
  }
1795
1822
 
1796
1823
  /**