@marimo-team/islands 0.20.1 → 0.20.3-dev76

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 (565) hide show
  1. package/dist/{ConnectedDataExplorerComponent-BMiGWK57.js → ConnectedDataExplorerComponent-DUS-zJoR.js} +12 -12
  2. package/dist/{_baseIsEqual-DN5YkPnl.js → _baseIsEqual-5cAxzk6f.js} +42 -41
  3. package/dist/_basePickBy-3JVb5wYm.js +47 -0
  4. package/dist/{_baseProperty-6juuyX7Z.js → _baseProperty-D1nWkRMz.js} +12 -12
  5. package/dist/_baseSlice-BrVixxuc.js +10 -0
  6. package/dist/{_baseUniq-BlF21ach.js → _baseUniq-DSSiFuIJ.js} +10 -6
  7. package/dist/{any-language-editor-1OMbohwD.js → any-language-editor-BL9o7y0_.js} +31 -30
  8. package/dist/apl-lHFVoxx7.js +4 -0
  9. package/dist/{arc-9nABupDE.js → arc-DXxE-tFl.js} +2 -2
  10. package/dist/architecture-7HQA4BMR-BxkNpYRp.js +6 -0
  11. package/dist/{architectureDiagram-VXUJARFQ-DhN0C3Xf.js → architectureDiagram-VXUJARFQ-DrJeyFHq.js} +19 -19
  12. package/dist/asciiarmor-DqCdZUHI.js +4 -0
  13. package/dist/asn1-DEcwtw-q.js +4 -0
  14. package/dist/{blockDiagram-VD42YOAC-DrBkIcbV.js → blockDiagram-VD42YOAC-BJrP6qKc.js} +53 -53
  15. package/dist/brainfuck-Bro9Oz5x.js +4 -0
  16. package/dist/{c4Diagram-YG6GDRKO-pWt4zmu0.js → c4Diagram-YG6GDRKO-Bo4gytQ5.js} +6 -6
  17. package/dist/{channel-C56Jz8EL.js → channel-IWLGkaBE.js} +1 -1
  18. package/dist/{chunk-4BX2VUAB-WmXmzRBr.js → chunk-4BX2VUAB-CwMMQLZ_.js} +1 -1
  19. package/dist/{chunk-S6J4BHB3-zfWjyfUg.js → chunk-4F5CHEZ2-CxKDFd-t.js} +2 -2
  20. package/dist/{chunk-55IACEB6-irYMvHJu.js → chunk-55IACEB6-Dj8CzJvE.js} +1 -1
  21. package/dist/{chunk-5FQGJX7Z-pOElJy8t.js → chunk-5FQGJX7Z-BkzUmppO.js} +2 -2
  22. package/dist/{chunk-ABZYJK2D-BwNsaa1P.js → chunk-ABZYJK2D-CRwanrkd.js} +3 -3
  23. package/dist/{chunk-ATLVNIR6-DtFMAawc.js → chunk-ATLVNIR6-CMMCMvOK.js} +2 -2
  24. package/dist/{chunk-FWNWRKHM-DmrwhAQr.js → chunk-B2363JML-e_W7KW1D.js} +2 -2
  25. package/dist/{chunk-B4BG7PRW-lfWcLlzS.js → chunk-B4BG7PRW-BNsHrGHG.js} +7 -7
  26. package/dist/{chunk-CVBHYZKI-Bb2XMuXJ.js → chunk-CVBHYZKI-D8iwHsLF.js} +1 -1
  27. package/dist/{chunk-DI55MBZ5-RhhAimfG.js → chunk-DI55MBZ5-DQeYbfMV.js} +6 -6
  28. package/dist/{chunk-XAJISQIX-CZ8Bi1-x.js → chunk-DR5Q36YT-D4q96vNV.js} +2 -2
  29. package/dist/{chunk-EXTU4WIE-Bmo660a9.js → chunk-EXTU4WIE-CV_DQeaX.js} +2 -2
  30. package/dist/{chunk-FMBD7UC4-C0DZU_4q.js → chunk-FMBD7UC4-XTL4xAvH.js} +1 -1
  31. package/dist/{chunk-LBM3YZW2-BkxsqkNK.js → chunk-FRFDVMJY-C7q09nvl.js} +2 -2
  32. package/dist/{chunk-HN2XXSSU-BsB4dtgF.js → chunk-HN2XXSSU-CzO5Phf0.js} +1 -1
  33. package/dist/{chunk-JA3XYJ7Z-n8UTzfok.js → chunk-JA3XYJ7Z-Cmt--e0q.js} +3 -3
  34. package/dist/{chunk-JZLCHNYA-ChKqHUdB.js → chunk-JZLCHNYA-CkyMJnI9.js} +6 -6
  35. package/dist/{chunk-MI3HLSF2-DeDZS-tQ.js → chunk-MI3HLSF2-DvCKDmpi.js} +1 -1
  36. package/dist/{chunk-N4CR4FBY-BxOHGL3P.js → chunk-N4CR4FBY-BJfHtJbD.js} +7 -7
  37. package/dist/{chunk-T53DSG4Q-Bewz1tiU.js → chunk-PL6DKKU2-ChKBqnoD.js} +2 -2
  38. package/dist/{chunk-QN33PNHL-Dda-55xY.js → chunk-QN33PNHL-WOLIPUAJ.js} +2 -2
  39. package/dist/{chunk-QXUST7PY-ClIEpoCT.js → chunk-QXUST7PY-DYuD50pU.js} +10 -10
  40. package/dist/{chunk-QZHKN3VN-Diy_Cdek.js → chunk-QZHKN3VN-CYbwZKgJ.js} +1 -1
  41. package/dist/{chunk-S3R3BYOJ-C_1SJcWo.js → chunk-S3R3BYOJ-CsnX6RKs.js} +8 -8
  42. package/dist/{chunk-76Q3JFCE-CQ6a2yGJ.js → chunk-SJTYNZTY-j6_1s5om.js} +2 -2
  43. package/dist/{chunk-FPAJGGOC-quWdfNUB.js → chunk-TCCFYFTB-DdLCbCTn.js} +3995 -3985
  44. package/dist/{chunk-LHMN2FUI-CgYPnxfN.js → chunk-TQ3KTPDO-CGsUIC73.js} +2 -2
  45. package/dist/{chunk-TZMSLE5B-XW3duOft.js → chunk-TZMSLE5B-B3eYTGCw.js} +3 -3
  46. package/dist/{chunk-O7ZBX7Z2-CdpLwOP0.js → chunk-UMXZTB3W--LdAK3Bv.js} +2 -2
  47. package/dist/classDiagram-2ON5EDUG-C7C-oefv.js +30 -0
  48. package/dist/classDiagram-v2-WZHVMYZB-UTw37Gg8.js +30 -0
  49. package/dist/{clike-B90WKs4D.js → clike-CLJYUAWw.js} +1 -1
  50. package/dist/clojure-B2uhdQPa.js +4 -0
  51. package/dist/{clone-V9hndNcj.js → clone-BJrS4PdE.js} +1 -1
  52. package/dist/cmake-B9WXyQcc.js +4 -0
  53. package/dist/cobol-CPD3EJfO.js +4 -0
  54. package/dist/{code-block-37QAKDTI-zh5AeoJo.js → code-block-37QAKDTI-DV_ZyoUh.js} +1 -1
  55. package/dist/coffeescript-KD9TnEnS.js +4 -0
  56. package/dist/commonlisp-DNEULz_Q.js +4 -0
  57. package/dist/{constants-BGRTDzdW.js → constants-D1Tbg_6B.js} +3 -2
  58. package/dist/{cose-bilkent-S5V4N54A-BK1nIR2J.js → cose-bilkent-S5V4N54A-BCDTZDay.js} +2 -2
  59. package/dist/crystal-DVPNgAPQ.js +4 -0
  60. package/dist/css-fq3a1AH1.js +4 -0
  61. package/dist/cypher-Dtzq0BP7.js +4 -0
  62. package/dist/d-DcZudIhJ.js +4 -0
  63. package/dist/{dagre-6UL2VRFP-BArPH353.js → dagre-6UL2VRFP-BgsUhJrV.js} +88 -87
  64. package/dist/{dagre-Dcgyn_Uy.js → dagre-CyZCGfV_.js} +41 -84
  65. package/dist/{data-grid-overlay-editor-BVFT970w.js → data-grid-overlay-editor-BD0BFHzy.js} +2 -2
  66. package/dist/{diagram-PSM6KHXK-B1xAkr9y.js → diagram-PSM6KHXK-BIUUOfKo.js} +22 -22
  67. package/dist/{diagram-QEK2KX5R-CaoqwzPb.js → diagram-QEK2KX5R-BFjolZQv.js} +17 -17
  68. package/dist/{diagram-S2PKOQOG-NXCsFLvR.js → diagram-S2PKOQOG-4jfkWoZw.js} +17 -17
  69. package/dist/diff-D9BPDC3o.js +4 -0
  70. package/dist/{dist-IlWGXVjO.js → dist-7ZF--V_D.js} +2 -2
  71. package/dist/dist-BAeGo2rp.js +5 -0
  72. package/dist/{dist-Ey9hP8-j.js → dist-BBcqvpvP.js} +1 -1
  73. package/dist/{dist-DpAbrLuF.js → dist-BFL9TlzD.js} +5 -5
  74. package/dist/{dist-CD7uLx0M.js → dist-BLThQiU4.js} +2 -2
  75. package/dist/{dist-CoZ8kKKW.js → dist-BT6_J2eq.js} +1 -1
  76. package/dist/{dist-C_9IMrtt.js → dist-BTQbjEKU.js} +1 -1
  77. package/dist/dist-BqwCMSEa.js +5 -0
  78. package/dist/{dist-CUOuFgHt.js → dist-BuapEdlD.js} +113 -58
  79. package/dist/dist-Bum8FwTO.js +6 -0
  80. package/dist/{dist-LNp8svLl.js → dist-BwQHkjA9.js} +4 -4
  81. package/dist/dist-C0YiOwt_.js +5 -0
  82. package/dist/dist-C2uPv4iU.js +5 -0
  83. package/dist/{dist-Dmr_nXF6.js → dist-C4XMUaob.js} +2 -2
  84. package/dist/dist-C5hOLsJN.js +8 -0
  85. package/dist/{dist-a6Obzr07.js → dist-C6z8U-ms.js} +2 -2
  86. package/dist/dist-C9NIAKMs.js +8 -0
  87. package/dist/{dist-EZFqUJhh.js → dist-CB6qhQ8K.js} +1 -1
  88. package/dist/dist-CCrzTtvk.js +5 -0
  89. package/dist/dist-CFS9i1rS.js +8 -0
  90. package/dist/{dist-CMOy93xY.js → dist-CFToYDWO.js} +2 -2
  91. package/dist/{dist-DF_77D2B.js → dist-COpDrwi-.js} +1 -1
  92. package/dist/{dist-D8EhXZ4S.js → dist-CYo3w-nC.js} +3 -3
  93. package/dist/{dist-Dv2Phbh5.js → dist-Cb3cLT39.js} +2 -2
  94. package/dist/{dist-DOLQQtWK.js → dist-Ch_JuCvc.js} +3 -3
  95. package/dist/{dist-Cb3iqED3.js → dist-Cqpjy6bK.js} +1 -1
  96. package/dist/{dist-BswsDM4k.js → dist-CsqiXw7J.js} +2 -2
  97. package/dist/{dist-BoagoQQw.js → dist-CwtEWuFb.js} +2 -2
  98. package/dist/dist-CyHZuhPH.js +5 -0
  99. package/dist/dist-CzcjWdIk.js +6 -0
  100. package/dist/{dist-BUEi7EKT.js → dist-D0f6Yrrb.js} +1 -1
  101. package/dist/{dist-C5QB1NtD.js → dist-D7ZGWV_9.js} +3 -3
  102. package/dist/{dist-CrAYcS_4.js → dist-DEFZ7dnD.js} +2 -2
  103. package/dist/{dist-DrC0QKFK.js → dist-DMS81OrU.js} +1 -1
  104. package/dist/{dist-iyBCcLRa.js → dist-DUxS2paD.js} +2 -2
  105. package/dist/dist-DaYyUSNC.js +5 -0
  106. package/dist/{dist-W6TdeACj.js → dist-De9X_Des.js} +1 -1
  107. package/dist/dist-DpDcJYNh.js +8 -0
  108. package/dist/{dist-bz6WguLy.js → dist-I8MQW60_.js} +2 -2
  109. package/dist/{dist-BGzkWRSl.js → dist-IW_ARJ3S.js} +4 -4
  110. package/dist/{dist-xCB683Dh.js → dist-Qjf6pcqK.js} +2 -2
  111. package/dist/{dist-B_i29Q6L.js → dist-UYm1IE5s.js} +2 -2
  112. package/dist/dist-U_BfxcPn.js +5 -0
  113. package/dist/{dist-iDeoXzdN.js → dist-ovDpXuSB.js} +1 -1
  114. package/dist/{dockerfile-D1Q_4uCN.js → dockerfile-BxhYdLHL.js} +1 -1
  115. package/dist/dtd-FhG-tVom.js +4 -0
  116. package/dist/dylan-HWpZOBPw.js +4 -0
  117. package/dist/ecl-B_rcje1I.js +4 -0
  118. package/dist/eiffel-oqHyHs6f.js +4 -0
  119. package/dist/elm-B62RQEds.js +4 -0
  120. package/dist/{erDiagram-Q2GNP2WA-DWCa11g5.js → erDiagram-Q2GNP2WA-Cq5Bz5lG.js} +15 -15
  121. package/dist/erlang-CjRjjA-B.js +4 -0
  122. package/dist/{esm-DZSk8vt3.js → esm-BxMbHo0y.js} +107 -107
  123. package/dist/factor-CGH_TnIV.js +4 -0
  124. package/dist/{factor--4HHM8Rw.js → factor-Png_OsVt.js} +1 -1
  125. package/dist/{flowDiagram-NV44I4VS-BQ5PQs4L.js → flowDiagram-NV44I4VS-6WPJVFl7.js} +17 -17
  126. package/dist/forth-5N06oHNp.js +4 -0
  127. package/dist/fortran-wZ-sNg3h.js +4 -0
  128. package/dist/{ganttDiagram-JELNMOA3-NTOuNWeT.js → ganttDiagram-JELNMOA3-AfDhh9CI.js} +10 -10
  129. package/dist/gas-3H4_FaS8.js +4 -0
  130. package/dist/gherkin-PEA2uy50.js +4 -0
  131. package/dist/{gitGraph-F6HP7TQM-DfRNsaDw.js → gitGraph-G5XIXVHT-C0o6gecv.js} +3 -3
  132. package/dist/{gitGraphDiagram-NY62KEGX-CYke62Ot.js → gitGraphDiagram-V2S2FVAM-BRSwuj0Q.js} +17 -17
  133. package/dist/{glide-data-editor-DttqGjrT.js → glide-data-editor-ByPNTNVG.js} +7 -7
  134. package/dist/graphlib-DZnBMcsX.js +228 -0
  135. package/dist/groovy-DZzbvCP1.js +4 -0
  136. package/dist/haskell-CExLTzho.js +4 -0
  137. package/dist/haxe-f3pVb8qU.js +5 -0
  138. package/dist/idl-BbWlJ0gk.js +4 -0
  139. package/dist/{info-NVLQJR56-CUaoPtis.js → info-VBDWY6EO-Bzsods6X.js} +3 -3
  140. package/dist/infoDiagram-HS3SLOUP-Cmxo6jKx.js +30 -0
  141. package/dist/{_baseFor-B69PDbIz.js → isArrayLikeObject-Btu-i6_P.js} +216 -44
  142. package/dist/{isEmpty-6z2uv6gM.js → isEmpty-CZvUtYFp.js} +2 -2
  143. package/dist/{isString-D6abkXrl.js → isString-CBr7TEb7.js} +1 -1
  144. package/dist/{isSymbol-hk7foJ70.js → isSymbol-BuQsMXhk.js} +1 -1
  145. package/dist/javascript-eMOhp6Aq.js +4 -0
  146. package/dist/{journeyDiagram-XKPGCS4Q-ahXD97kr.js → journeyDiagram-XKPGCS4Q-CKYr8cSR.js} +7 -7
  147. package/dist/julia-C6w3Rvqb.js +4 -0
  148. package/dist/{kanban-definition-3W4ZIXB7-CiTIpnhy.js → kanban-definition-3W4ZIXB7-DVvAZzQD.js} +12 -12
  149. package/dist/{katex-DaGuLbVh.js → katex-pyO_klYC.js} +1 -1
  150. package/dist/{label-Cc5tEavt.js → label-CV0KYhtH.js} +4 -10
  151. package/dist/{line-Bc27KE1D.js → line-C1k1rG3Z.js} +3 -3
  152. package/dist/{linear-Bnc6E9kA.js → linear-DIp6l9sg.js} +4 -4
  153. package/dist/livescript-ChQl9lD-.js +4 -0
  154. package/dist/{loader-Cob3XFOw.js → loader-eJCvvApN.js} +2 -2
  155. package/dist/lua-CiDvI96j.js +4 -0
  156. package/dist/main-Tj_-QTyF.js +4321 -0
  157. package/dist/main.js +2025 -5032
  158. package/dist/mathematica-ClVO4k7N.js +4 -0
  159. package/dist/mbox-BEI7DeUg.js +4 -0
  160. package/dist/{memoize-Ckyqzyu_.js → memoize-P1T1IGb9.js} +1 -1
  161. package/dist/merge-CGQkMGzr.js +51 -0
  162. package/dist/{mermaid-4DMBBIKO-BmJdHPwx.js → mermaid-4DMBBIKO-PVrJfEpX.js} +1 -1
  163. package/dist/{mermaid-B5xl_2hx.js → mermaid-COOB_abB.js} +46 -46
  164. package/dist/{mermaid-parser.core-BXj7Il0J.js → mermaid-parser.core-Cd-wu4tE.js} +8 -8
  165. package/dist/{mhchem-B_tiMbKF.js → mhchem-DckvwtV8.js} +1 -1
  166. package/dist/min-CMDDtXJP.js +89 -0
  167. package/dist/{mindmap-definition-VGOIOE7T-Mni766A_.js → mindmap-definition-VGOIOE7T-1ExmnvYy.js} +14 -14
  168. package/dist/mirc-DwidJ3iH.js +4 -0
  169. package/dist/mllike-Dspdy0xJ.js +6 -0
  170. package/dist/modelica-CIUejP-L.js +4 -0
  171. package/dist/mscgen-BWXU4Omp.js +6 -0
  172. package/dist/mumps-PHFFoPk5.js +4 -0
  173. package/dist/now-BxlRp0OQ.js +7 -0
  174. package/dist/nsis-B7xooKLf.js +4 -0
  175. package/dist/{nsis-B6EN9LWI.js → nsis-BrAITej_.js} +1 -1
  176. package/dist/ntriples-DnOgtCzG.js +4 -0
  177. package/dist/{number-overlay-editor-DKVJgXpp.js → number-overlay-editor-CQrncFlP.js} +1 -1
  178. package/dist/octave-Cn5kH_QT.js +4 -0
  179. package/dist/{once-C9dA9qgQ.js → once-BqS42WgZ.js} +1 -1
  180. package/dist/{ordinal-DLLbwLkP.js → ordinal-Dcvf4J1m.js} +1 -1
  181. package/dist/oz-DR-sROpu.js +4 -0
  182. package/dist/{packet-BFZMPI3H-DHtQCusE.js → packet-DYOGHKS2-Bf1CvFco.js} +3 -3
  183. package/dist/pascal-CPKK1zcS.js +4 -0
  184. package/dist/perl-D7FuFdyd.js +4 -0
  185. package/dist/{pie-7BOR55EZ-2sVLYbpR.js → pie-VRWISCQL-LY_wbqji.js} +3 -3
  186. package/dist/{pieDiagram-ADFJNKIX-PbXpgT8_.js → pieDiagram-ADFJNKIX-CJlIsdsU.js} +22 -22
  187. package/dist/pig-CEXnOAnI.js +4 -0
  188. package/dist/powershell-BKvWab7q.js +4 -0
  189. package/dist/{precisionRound-Duzbr5ur.js → precisionRound-BAc-kQ3q.js} +1 -1
  190. package/dist/properties-7jnK_vYx.js +4 -0
  191. package/dist/protobuf-4rslMjEN.js +4 -0
  192. package/dist/pug-BVwdEv4r.js +4 -0
  193. package/dist/{pug-xrm7jQ2R.js → pug-CH-17az-.js} +1 -1
  194. package/dist/puppet-iSHg_1Z2.js +4 -0
  195. package/dist/python-tK3wUCn0.js +4 -0
  196. package/dist/q-DP_Dcoox.js +4 -0
  197. package/dist/{quadrantDiagram-AYHSOK5B-BtXGnx8i.js → quadrantDiagram-AYHSOK5B-BU78RiaH.js} +5 -5
  198. package/dist/r-C32wHLYu.js +4 -0
  199. package/dist/{radar-NHE76QYJ-Be0pEUux.js → radar-ZZBFDIW7-Ro3iXZCk.js} +3 -3
  200. package/dist/range-Dh0_-r8P.js +30 -0
  201. package/dist/{react-vega-CCNu2JE0.js → react-vega-C6kwcd86.js} +18 -18
  202. package/dist/react-vega-CFUuchds.js +9 -0
  203. package/dist/reduce-BXFHs7IQ.js +268 -0
  204. package/dist/{requirementDiagram-UZGBJVZJ-DxzXQRgq.js → requirementDiagram-UZGBJVZJ-DACHtrFr.js} +14 -14
  205. package/dist/rpm-BbDBUfs9.js +5 -0
  206. package/dist/ruby-COfWUiIr.js +4 -0
  207. package/dist/{sankeyDiagram-TZEHDZUN-D-I7dJ0_.js → sankeyDiagram-TZEHDZUN-Bzg7_UWs.js} +5 -5
  208. package/dist/sas-y_Hue2-X.js +4 -0
  209. package/dist/scheme-7jTCqHw8.js +4 -0
  210. package/dist/{sequenceDiagram-WL72ISMW-VDme2ljw.js → sequenceDiagram-WL72ISMW-agybEe9J.js} +8 -8
  211. package/dist/shell-DAqJWXDk.js +4 -0
  212. package/dist/sieve-EaqnbCO3.js +4 -0
  213. package/dist/slides-component-B0yK5GXP.js +3057 -0
  214. package/dist/smalltalk-DL03YKLJ.js +4 -0
  215. package/dist/sparql-DTA-tQ_q.js +4 -0
  216. package/dist/{spec-GwhMEXwK.js → spec-Dq_reDGM.js} +4 -4
  217. package/dist/{src-jICM_d2B.js → src-CHUphWwL.js} +1 -1
  218. package/dist/{stateDiagram-FKZM4ZOC-g3GI1EcK.js → stateDiagram-FKZM4ZOC-DehQAt8g.js} +19 -19
  219. package/dist/stateDiagram-v2-4FDKWEC3-8VzeREl9.js +29 -0
  220. package/dist/{step-BqVgkWtk.js → step-BbmiiQdf.js} +1 -1
  221. package/dist/stex-KfRnSHzF.js +4 -0
  222. package/dist/style.css +1 -1
  223. package/dist/stylus-CfjeFry_.js +4 -0
  224. package/dist/swift-Dl0RRDbH.js +4 -0
  225. package/dist/tcl-wv9O7fLZ.js +4 -0
  226. package/dist/textile-DzMRCBcV.js +4 -0
  227. package/dist/{time-CrYsYnQU.js → time-DFFVNc1Q.js} +4 -4
  228. package/dist/{timeline-definition-IT6M3QCI-bhvLlX_b.js → timeline-definition-IT6M3QCI-CdCfdaCF.js} +4 -4
  229. package/dist/toNumber-By7s5JC_.js +28 -0
  230. package/dist/{toString-BwTJvlyD.js → toString-Ckpb50uw.js} +8 -8
  231. package/dist/toml-CyIWqgbe.js +4 -0
  232. package/dist/{treemap-KMMF4GRG-Ba9ifjpG.js → treemap-GDKQZRPO-DRxfDG65.js} +3 -3
  233. package/dist/troff-_huin_CY.js +4 -0
  234. package/dist/ttcn-BEiJuYYc.js +4 -0
  235. package/dist/ttcn-cfg-DB6Ksh67.js +4 -0
  236. package/dist/turtle-DzhzGEum.js +4 -0
  237. package/dist/{types-Dsh6yC4B.js → types-BwnzGcE4.js} +31 -32
  238. package/dist/uniq-cCc07Q8K.js +8 -0
  239. package/dist/{useAsyncData-BPpyKjTJ.js → useAsyncData-B4hMFGnF.js} +2 -2
  240. package/dist/{useDeepCompareMemoize-C8Ms87P-.js → useDeepCompareMemoize-DuPhOXzr.js} +3 -3
  241. package/dist/{useIframeCapabilities-C7z8VrZ1.js → useIframeCapabilities-CAt6D2EI.js} +1 -1
  242. package/dist/{useTheme-Cq-gIssy.js → useTheme-BNYQnvu-.js} +2 -2
  243. package/dist/vb-CngKZQHu.js +4 -0
  244. package/dist/vbscript-BV_8nbeM.js +4 -0
  245. package/dist/{vega-component-B5sxdjMq.js → vega-component-DouPy8AI.js} +12 -15
  246. package/dist/{vega-loader.browser-DqHiiBeQ.js → vega-loader.browser-CQ-lnUkI.js} +3 -3
  247. package/dist/velocity-IqE7qYKE.js +4 -0
  248. package/dist/verilog-xtyaWTnc.js +4 -0
  249. package/dist/vhdl-BaqXCtf3.js +4 -0
  250. package/dist/webidl-BDB8PTTO.js +4 -0
  251. package/dist/xquery-BIC-qj9Z.js +4 -0
  252. package/dist/{xychartDiagram-PRI3JC2R-CFxuifYY.js → xychartDiagram-PRI3JC2R-rEm_SIsC.js} +13 -13
  253. package/dist/yacas-ifv5tftd.js +4 -0
  254. package/dist/z80-B8zOMVNt.js +4 -0
  255. package/package.json +11 -11
  256. package/src/__mocks__/requests.ts +2 -0
  257. package/src/components/app-config/ai-config.tsx +1 -1
  258. package/src/components/app-config/user-config-form.tsx +27 -0
  259. package/src/components/data-table/__tests__/pagination.test.tsx +16 -24
  260. package/src/components/data-table/charts/lazy-chart.tsx +1 -1
  261. package/src/components/data-table/data-table.tsx +20 -18
  262. package/src/components/data-table/pagination.tsx +138 -56
  263. package/src/components/data-table/range-focus/__tests__/cell-selection-stats.test.tsx +365 -0
  264. package/src/components/data-table/range-focus/__tests__/test-utils.ts +77 -0
  265. package/src/components/data-table/range-focus/__tests__/utils.test.ts +205 -65
  266. package/src/components/data-table/range-focus/cell-selection-stats.tsx +79 -0
  267. package/src/components/data-table/range-focus/utils.ts +69 -7
  268. package/src/components/data-table/types.ts +4 -0
  269. package/src/components/databases/engine-variable.tsx +2 -1
  270. package/src/components/databases/icons/google-cloud-storage.svg +38 -0
  271. package/src/components/datasources/components.tsx +6 -2
  272. package/src/components/dependency-graph/minimap-content.tsx +3 -5
  273. package/src/components/dependency-graph/utils/__tests__/cell-preview.test.ts +143 -0
  274. package/src/components/dependency-graph/utils/cell-preview.ts +46 -0
  275. package/src/components/editor/Output.tsx +3 -28
  276. package/src/components/editor/cell/cell-actions.tsx +6 -5
  277. package/src/components/editor/cell/cell-context-menu.tsx +11 -7
  278. package/src/components/editor/chrome/panels/components.tsx +88 -0
  279. package/src/components/editor/chrome/panels/file-explorer-panel.tsx +120 -7
  280. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +27 -15
  281. package/src/components/editor/chrome/panels/session-panel.tsx +24 -35
  282. package/src/components/editor/file-tree/__tests__/requesting-tree.test.ts +17 -1
  283. package/src/components/editor/file-tree/file-explorer.tsx +38 -6
  284. package/src/components/editor/file-tree/file-header.tsx +61 -0
  285. package/src/components/editor/file-tree/file-viewer.tsx +88 -167
  286. package/src/components/editor/file-tree/renderers.tsx +142 -21
  287. package/src/components/editor/file-tree/requesting-tree.tsx +6 -2
  288. package/src/components/editor/output/console/ConsoleOutput.tsx +34 -2
  289. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +13 -0
  290. package/src/components/icons/marimo-icons.tsx +173 -0
  291. package/src/components/markdown/markdown-renderer.tsx +3 -20
  292. package/src/components/pages/run-page.tsx +2 -2
  293. package/src/components/storage/components.tsx +86 -0
  294. package/src/components/storage/storage-file-viewer.tsx +225 -0
  295. package/src/components/storage/storage-inspector.tsx +610 -0
  296. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +79 -0
  297. package/src/core/ai/tools/edit-notebook-tool.ts +5 -0
  298. package/src/core/cells/__tests__/cells.test.ts +30 -0
  299. package/src/core/cells/cells.ts +6 -1
  300. package/src/core/cells/outline.ts +7 -1
  301. package/src/core/cells/outputs.ts +20 -8
  302. package/src/core/codemirror/language/languages/sql/sql.ts +76 -62
  303. package/src/core/codemirror/language/panel/sql.tsx +3 -3
  304. package/src/core/codemirror/lsp/__tests__/normalize-markdown-math.test.ts +123 -0
  305. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +196 -0
  306. package/src/core/codemirror/lsp/normalize-markdown-math.ts +381 -0
  307. package/src/core/codemirror/lsp/notebook-lsp.ts +59 -3
  308. package/src/core/config/feature-flag.tsx +2 -0
  309. package/src/core/dom/__tests__/outline.test.ts +48 -0
  310. package/src/core/dom/outline.ts +13 -2
  311. package/src/core/islands/bridge.ts +2 -0
  312. package/src/core/islands/main.ts +2 -0
  313. package/src/core/network/requests-lazy.ts +2 -0
  314. package/src/core/network/requests-network.ts +16 -0
  315. package/src/core/network/requests-static.ts +2 -0
  316. package/src/core/network/requests-toasting.tsx +2 -0
  317. package/src/core/network/types.ts +6 -0
  318. package/src/core/storage/__tests__/state.test.ts +345 -0
  319. package/src/core/storage/__tests__/types.test.ts +83 -0
  320. package/src/core/storage/__tests__/useStorageEntries.test.tsx +187 -0
  321. package/src/core/storage/request-registry.ts +36 -0
  322. package/src/core/storage/state.ts +132 -0
  323. package/src/core/storage/types.ts +57 -0
  324. package/src/core/wasm/bridge.ts +2 -0
  325. package/src/core/websocket/useMarimoKernelConnection.tsx +19 -1
  326. package/src/hooks/__tests__/useNonce.test.tsx +127 -0
  327. package/src/hooks/__tests__/useOverflowDetection.test.tsx +127 -0
  328. package/src/hooks/useNonce.ts +6 -5
  329. package/src/hooks/useOverflowDetection.ts +36 -0
  330. package/src/plugins/impl/MatrixPlugin.tsx +5 -2
  331. package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +1 -1
  332. package/src/plugins/impl/code/any-language-editor.tsx +14 -3
  333. package/src/plugins/impl/matplotlib/__tests__/matplotlib-renderer.test.ts +37 -2
  334. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +13 -1
  335. package/src/utils/__tests__/filenames.test.ts +54 -1
  336. package/src/utils/filenames.ts +42 -0
  337. package/dist/apl-C1bki_dE.js +0 -4
  338. package/dist/architecture-U656AL7Q-Jd2CvPgJ.js +0 -6
  339. package/dist/asciiarmor-BdlkCCRr.js +0 -4
  340. package/dist/asn1-CvE30hox.js +0 -4
  341. package/dist/brainfuck-BalwWy1a.js +0 -4
  342. package/dist/classDiagram-2ON5EDUG-CUJlS_eo.js +0 -30
  343. package/dist/classDiagram-v2-WZHVMYZB-BhSPpbkE.js +0 -30
  344. package/dist/clojure-CUC2I1hM.js +0 -4
  345. package/dist/cmake-8PcMxXnB.js +0 -4
  346. package/dist/cobol-DkkkDz5v.js +0 -4
  347. package/dist/coffeescript-CCupxOZf.js +0 -4
  348. package/dist/commonlisp-DhUfGX6b.js +0 -4
  349. package/dist/crystal-DSaw6rFQ.js +0 -4
  350. package/dist/css-D4QDewkG.js +0 -4
  351. package/dist/cypher-CrYVqw_F.js +0 -4
  352. package/dist/d-Cr3H3pPx.js +0 -4
  353. package/dist/diff-ODiZJGls.js +0 -4
  354. package/dist/dist-BA-HK7pI.js +0 -5
  355. package/dist/dist-BD5GU948.js +0 -5
  356. package/dist/dist-BIYmAsND.js +0 -5
  357. package/dist/dist-BcKTJXJi.js +0 -5
  358. package/dist/dist-BgnrtcWg.js +0 -8
  359. package/dist/dist-C1njTlBq.js +0 -5
  360. package/dist/dist-CSKHwJYH.js +0 -5
  361. package/dist/dist-CSKKyiIq.js +0 -5
  362. package/dist/dist-CrQ_pOuK.js +0 -6
  363. package/dist/dist-Cskx1daf.js +0 -5
  364. package/dist/dist-D4i0Ef34.js +0 -8
  365. package/dist/dist-DOcn61TX.js +0 -8
  366. package/dist/dist-DwMejAPB.js +0 -6
  367. package/dist/dist-DzSe1wby.js +0 -8
  368. package/dist/dtd-C-t2Rk7F.js +0 -4
  369. package/dist/dylan-B4ctBLGp.js +0 -4
  370. package/dist/ecl-DqWfymni.js +0 -4
  371. package/dist/eiffel-DjBKKAr7.js +0 -4
  372. package/dist/elm--fxeC0FV.js +0 -4
  373. package/dist/erlang-CaKXCX6H.js +0 -4
  374. package/dist/factor-DlLO5EFS.js +0 -4
  375. package/dist/flatten-CWZjF1fc.js +0 -8
  376. package/dist/forth-rOO6LVj_.js +0 -4
  377. package/dist/fortran-CUg15VGR.js +0 -4
  378. package/dist/gas-BMRJspiW.js +0 -4
  379. package/dist/gherkin-DRxzijZU.js +0 -4
  380. package/dist/graphlib-CwMnCnQ9.js +0 -362
  381. package/dist/groovy-BmrQ8pUP.js +0 -4
  382. package/dist/haskell-BuaYfKOz.js +0 -4
  383. package/dist/haxe-DcH9eA0a.js +0 -5
  384. package/dist/idl-DGlcm4Ls.js +0 -4
  385. package/dist/infoDiagram-WHAUD3N6-B42WjAPh.js +0 -30
  386. package/dist/javascript-CeTk7rzr.js +0 -4
  387. package/dist/julia-BoP_q1gm.js +0 -4
  388. package/dist/livescript-B7IMN-ba.js +0 -4
  389. package/dist/lua-q1InavKb.js +0 -4
  390. package/dist/main-DmxVpB19.js +0 -1089
  391. package/dist/mathematica-DvR8-_EI.js +0 -4
  392. package/dist/mbox-7h5MNBS_.js +0 -4
  393. package/dist/merge-Db4Uulx4.js +0 -222
  394. package/dist/min-ypdVXicC.js +0 -38
  395. package/dist/mirc-D-XM8A5c.js +0 -4
  396. package/dist/mllike-BQGkkbmf.js +0 -6
  397. package/dist/modelica-D_yRj_WU.js +0 -4
  398. package/dist/mscgen-B-rltAjp.js +0 -6
  399. package/dist/mumps-2kh8TU2b.js +0 -4
  400. package/dist/now-Dwu5ou19.js +0 -31
  401. package/dist/nsis-CtusEqwb.js +0 -4
  402. package/dist/ntriples-BdAXw6zV.js +0 -4
  403. package/dist/octave-CsNFmVp5.js +0 -4
  404. package/dist/oz-odIXCrKd.js +0 -4
  405. package/dist/pascal-B9Mfk3Fo.js +0 -4
  406. package/dist/perl-C48inLcz.js +0 -4
  407. package/dist/pig-uwRtAssU.js +0 -4
  408. package/dist/powershell-CXqlca-i.js +0 -4
  409. package/dist/properties-D6Zu1rpK.js +0 -4
  410. package/dist/protobuf-BlNNWZaR.js +0 -4
  411. package/dist/pug-DytcK7bv.js +0 -4
  412. package/dist/puppet-lJ8Ok3iY.js +0 -4
  413. package/dist/python-cMaF7kUp.js +0 -4
  414. package/dist/q-Dgt2HYQh.js +0 -4
  415. package/dist/r-Bm4S4awf.js +0 -4
  416. package/dist/range-D9jxVFd_.js +0 -67
  417. package/dist/react-vega-1ub36dPZ.js +0 -9
  418. package/dist/reduce-C6NEPj6s.js +0 -133
  419. package/dist/rpm-_8LbzMVc.js +0 -5
  420. package/dist/ruby-Cr8IJ5VZ.js +0 -4
  421. package/dist/sas-CFcSfo2_.js +0 -4
  422. package/dist/scheme-N4XRoKgc.js +0 -4
  423. package/dist/shell-B4L7f_ds.js +0 -4
  424. package/dist/sieve-UI6J3Gm0.js +0 -4
  425. package/dist/slides-component-ql7-5GDI.js +0 -3048
  426. package/dist/smalltalk-BuaPZAZU.js +0 -4
  427. package/dist/sparql-1rKrq463.js +0 -4
  428. package/dist/stateDiagram-v2-4FDKWEC3-7i6jBXe6.js +0 -29
  429. package/dist/stex-D2rme5UG.js +0 -4
  430. package/dist/stylus-DvSovJEP.js +0 -4
  431. package/dist/swift-D-_E7Yyb.js +0 -4
  432. package/dist/tcl-Di5sAVHN.js +0 -4
  433. package/dist/textile-Benwt66z.js +0 -4
  434. package/dist/toml-CeOvPOkY.js +0 -4
  435. package/dist/troff-DJN9hfgu.js +0 -4
  436. package/dist/ttcn-DQW2Psjf.js +0 -4
  437. package/dist/ttcn-cfg-zFG_MNpg.js +0 -4
  438. package/dist/turtle-DHRyNlSc.js +0 -4
  439. package/dist/vb-CXWH9DD-.js +0 -4
  440. package/dist/vbscript-qr8qVck5.js +0 -4
  441. package/dist/velocity-C_9pUJRx.js +0 -4
  442. package/dist/verilog-DxBstgBa.js +0 -4
  443. package/dist/vhdl-odUxAbE6.js +0 -4
  444. package/dist/webidl-Dfn5Rku4.js +0 -4
  445. package/dist/xquery-CrJs6SXr.js +0 -4
  446. package/dist/yacas-B-uDDLZe.js +0 -4
  447. package/dist/z80-51gxgAXE.js +0 -4
  448. /package/dist/{ImageComparisonComponent-CRbA-1eg.js → ImageComparisonComponent-BYQfAfSR.js} +0 -0
  449. /package/dist/{Plot-C9vQQj4X.js → Plot-DfUav0o0.js} +0 -0
  450. /package/dist/{_arrayReduce-REKcIEj3.js → _arrayReduce-BfFy684W.js} +0 -0
  451. /package/dist/{_hasUnicode-DrSAc5A5.js → _hasUnicode-C32WqUu7.js} +0 -0
  452. /package/dist/{apl-Oc3bL26_.js → apl-DRxKiEot.js} +0 -0
  453. /package/dist/{array-CEIRxyh3.js → array-D-nrDupM.js} +0 -0
  454. /package/dist/{asciiarmor-DTbPh2VI.js → asciiarmor-C8HoXFIm.js} +0 -0
  455. /package/dist/{asn1-CGhwu1Ri.js → asn1-9Bo0DYT-.js} +0 -0
  456. /package/dist/{asterisk-Crp-Pien.js → asterisk-BsiuGzWq.js} +0 -0
  457. /package/dist/{brainfuck-CA0L8lRq.js → brainfuck-Db8njC-p.js} +0 -0
  458. /package/dist/{click-outside-container-C_k38vlR.js → click-outside-container-CKfwEZqH.js} +0 -0
  459. /package/dist/{clike-CEtUBPHD.js → clike-CFhUNtI5.js} +0 -0
  460. /package/dist/{clojure-BszjvdGo.js → clojure-CX7oovsp.js} +0 -0
  461. /package/dist/{cmake-B2Gvps8b.js → cmake-C29AR2kk.js} +0 -0
  462. /package/dist/{cobol-DuMch8nn.js → cobol-CNkuRW9i.js} +0 -0
  463. /package/dist/{coffeescript-L9aKXVsJ.js → coffeescript-BJAbfGam.js} +0 -0
  464. /package/dist/{colors-DR_aHfmQ.js → colors-6nB_pSln.js} +0 -0
  465. /package/dist/{common-keywords-NhoiR-2S.js → common-keywords-BAkLFdud.js} +0 -0
  466. /package/dist/{commonlisp-CrtdssxB.js → commonlisp-BTNhj2l9.js} +0 -0
  467. /package/dist/{crystal-vvNY0LpY.js → crystal-CZc0nIm9.js} +0 -0
  468. /package/dist/{css-B1GdzqT1.js → css-L2-0OTXc.js} +0 -0
  469. /package/dist/{cypher-BtZvV7bW.js → cypher-Dnc6MXl0.js} +0 -0
  470. /package/dist/{cytoscape.esm-CgJFiP_E.js → cytoscape.esm-BXzSsA6N.js} +0 -0
  471. /package/dist/{d-B0UN3V-Z.js → d-C6X9iIga.js} +0 -0
  472. /package/dist/{defaultLocale-DjFHq3Xk.js → defaultLocale-Bklbu-Tp.js} +0 -0
  473. /package/dist/{defaultLocale-B_A76Zpk.js → defaultLocale-CfQ4kBaV.js} +0 -0
  474. /package/dist/{diff-DOpgjj1W.js → diff-ZzKinYqY.js} +0 -0
  475. /package/dist/{dist-BYznkC5E.js → dist-Bymy0kEH.js} +0 -0
  476. /package/dist/{dtd-Ctnjxrle.js → dtd-CytEpkAo.js} +0 -0
  477. /package/dist/{duckdb-keywords-BnNtuiVz.js → duckdb-keywords-C1WxmSfG.js} +0 -0
  478. /package/dist/{dylan-DFXkoaZy.js → dylan-CZByFBEQ.js} +0 -0
  479. /package/dist/{ebnf-CFKHGc8c.js → ebnf-BF2FOt-m.js} +0 -0
  480. /package/dist/{ecl-C1NExZip.js → ecl-Cp7L1F5B.js} +0 -0
  481. /package/dist/{eiffel-uXVGgleg.js → eiffel-C66yjnFL.js} +0 -0
  482. /package/dist/{elm-CBOFnnib.js → elm-DtHo-73e.js} +0 -0
  483. /package/dist/{emotion-is-prop-valid.esm--WpIBtj8.js → emotion-is-prop-valid.esm-DtW2o230.js} +0 -0
  484. /package/dist/{erlang-DMnrT8XK.js → erlang-C_sj44mF.js} +0 -0
  485. /package/dist/{error-banner-vCG-EbUQ.js → error-banner-D0tXnwl4.js} +0 -0
  486. /package/dist/{esm-0_ieXYNc.js → esm-BWftfC-A.js} +0 -0
  487. /package/dist/{fcl-DPZwieM9.js → fcl-BhLcvRo_.js} +0 -0
  488. /package/dist/{forth-DDpxS4nw.js → forth-CIDHh56T.js} +0 -0
  489. /package/dist/{fortran-B6uYqQMz.js → fortran-BQrDVXRU.js} +0 -0
  490. /package/dist/{gas-BKnWzuFz.js → gas-D4HQPB0Q.js} +0 -0
  491. /package/dist/{gherkin-pBt0wT4X.js → gherkin-UB2gJHdT.js} +0 -0
  492. /package/dist/{groovy-DKsn4ppB.js → groovy-DVz6jkOx.js} +0 -0
  493. /package/dist/{haskell-BJVBJQcy.js → haskell-CpUdAPCz.js} +0 -0
  494. /package/dist/{haxe-rLN5UZU5.js → haxe-DCV5_cqD.js} +0 -0
  495. /package/dist/{http-AQJFxSug.js → http-C_TDb8VX.js} +0 -0
  496. /package/dist/{idl-B4mwMAo-.js → idl-D7WCIgHw.js} +0 -0
  497. /package/dist/{init-TaqZJsBY.js → init-Ci8VD8ZH.js} +0 -0
  498. /package/dist/{invariant-D-K49MfV.js → invariant-D9QLJ4SZ.js} +0 -0
  499. /package/dist/{javascript-Hf2NLNC0.js → javascript-B2Rn0Lmd.js} +0 -0
  500. /package/dist/{julia-GGpx21YN.js → julia-ApprtEaw.js} +0 -0
  501. /package/dist/{katex-Ba7xZPrx.js → katex-Bk_FvVSR.js} +0 -0
  502. /package/dist/{livescript-CSvXMspZ.js → livescript-BMLIlM7C.js} +0 -0
  503. /package/dist/{lua-CVMR5LMW.js → lua-DdDaW3tC.js} +0 -0
  504. /package/dist/{math-CTnb-N1W.js → math-HUZifhTs.js} +0 -0
  505. /package/dist/{mathematica-JENNt-p4.js → mathematica-PnNN7c2Z.js} +0 -0
  506. /package/dist/{mbox-mzifoc8E.js → mbox-B84OtHBK.js} +0 -0
  507. /package/dist/{mirc-BXoiItvN.js → mirc-BVWXJxIq.js} +0 -0
  508. /package/dist/{mllike-H-KR9OuH.js → mllike-BawXWupH.js} +0 -0
  509. /package/dist/{modelica-B6Hm3mMl.js → modelica-C8-X4Hf_.js} +0 -0
  510. /package/dist/{mscgen-D8TF_Hei.js → mscgen-BOM6dDj8.js} +0 -0
  511. /package/dist/{mumps-CD-kNPt4.js → mumps-DQOY8n05.js} +0 -0
  512. /package/dist/{nginx-hpek_Tnq.js → nginx-DkMgA__9.js} +0 -0
  513. /package/dist/{node-sql-parser-ChQUJk8A.js → node-sql-parser-D53LM_7b.js} +0 -0
  514. /package/dist/{ntriples-DgnpxU40.js → ntriples-DU8VrXdW.js} +0 -0
  515. /package/dist/{octave-CkobqyVm.js → octave-BzTIBsQ8.js} +0 -0
  516. /package/dist/{oz-ChDLd9tS.js → oz-DKFcZsoi.js} +0 -0
  517. /package/dist/{pascal-CvlkwK7E.js → pascal-DHBZ15pT.js} +0 -0
  518. /package/dist/{path-7gr7eZmp.js → path-BVI7RNUv.js} +0 -0
  519. /package/dist/{perl-BNEFTNbM.js → perl-75NMI3w0.js} +0 -0
  520. /package/dist/{pig-Cd1DMS7P.js → pig-B-HY1fo_.js} +0 -0
  521. /package/dist/{powershell-CPxA0zpc.js → powershell-DEH22U53.js} +0 -0
  522. /package/dist/{properties-BaFBm-Xa.js → properties-B1MzBoJC.js} +0 -0
  523. /package/dist/{protobuf-BQV_-X0H.js → protobuf-Dr14KV0p.js} +0 -0
  524. /package/dist/{puppet-LXLST0mx.js → puppet-C4z38l7v.js} +0 -0
  525. /package/dist/{purify.es-D4vaFt5N.js → purify.es-CyOIw8ru.js} +0 -0
  526. /package/dist/{python-DLjLzX4k.js → python-D2L7Nknt.js} +0 -0
  527. /package/dist/{q-DswTX1Y9.js → q-PxipHfgS.js} +0 -0
  528. /package/dist/{r-CO7NpMwE.js → r-CEMMu_Tf.js} +0 -0
  529. /package/dist/{range-DwpxnYuB.js → range-BToS7LsA.js} +0 -0
  530. /package/dist/{rpm-BlmEDT6r.js → rpm-D3xyahkR.js} +0 -0
  531. /package/dist/{ruby-BTPKgeZZ.js → ruby-DwEkwdiu.js} +0 -0
  532. /package/dist/{sas-DTDTiNO8.js → sas-L1W0BRft.js} +0 -0
  533. /package/dist/{scheme-UzAAg4GJ.js → scheme-CTybTrX0.js} +0 -0
  534. /package/dist/{shell-DQ0hQCsB.js → shell-BSx3LZnu.js} +0 -0
  535. /package/dist/{sieve-BVyYIx9u.js → sieve-BjUfbv-6.js} +0 -0
  536. /package/dist/{simple-mode-Dryu-fC9.js → simple-mode-IPZGFbI6.js} +0 -0
  537. /package/dist/{smalltalk-DAdMAHTu.js → smalltalk-BlzuYrMv.js} +0 -0
  538. /package/dist/{solr-BSTJW269.js → solr-Cj_9RM4d.js} +0 -0
  539. /package/dist/{sparql-Bi7quYgw.js → sparql-BXKjQ0cK.js} +0 -0
  540. /package/dist/{spreadsheet-CiBky1_y.js → spreadsheet-CifI10GO.js} +0 -0
  541. /package/dist/{sql-BXZovj-z.js → sql-B0bFyY1c.js} +0 -0
  542. /package/dist/{stex-DIvyJfNO.js → stex-BIsgBmK4.js} +0 -0
  543. /package/dist/{stylus-jhpzcQ6Y.js → stylus-CqrLLVnG.js} +0 -0
  544. /package/dist/{swift-BrO8qThZ.js → swift-DIqvj3_G.js} +0 -0
  545. /package/dist/{tcl-s5QI5gv3.js → tcl-B8bOIGVK.js} +0 -0
  546. /package/dist/{textile-ClhvJrxM.js → textile-DZsjavD_.js} +0 -0
  547. /package/dist/{tiddlywiki-DLTDKQCh.js → tiddlywiki-BbGdvEjx.js} +0 -0
  548. /package/dist/{tiki-tw_kBvbp.js → tiki-BYesmRDo.js} +0 -0
  549. /package/dist/{timer-DV8t68ti.js → timer-CPsmIOdm.js} +0 -0
  550. /package/dist/{toml-TFa3EJQE.js → toml-Uc7m08nl.js} +0 -0
  551. /package/dist/{treemap-CQJ0bIDy.js → treemap-DMn4tIJ7.js} +0 -0
  552. /package/dist/{troff-SqLg0heF.js → troff-GEl5wcXR.js} +0 -0
  553. /package/dist/{ttcn-cfg-Dopc-iwE.js → ttcn-cfg-dZQ_fWTH.js} +0 -0
  554. /package/dist/{ttcn-Cfrap7HJ.js → ttcn-pr4FDOLT.js} +0 -0
  555. /package/dist/{turtle-Dt52DvVH.js → turtle-TPRDOknA.js} +0 -0
  556. /package/dist/{vb-D1pAvfDe.js → vb-BJUAeTYr.js} +0 -0
  557. /package/dist/{vbscript-DZ7RBxn5.js → vbscript-CcJ6Z3ic.js} +0 -0
  558. /package/dist/{velocity-Csau7eZy.js → velocity-pq4ZMzU3.js} +0 -0
  559. /package/dist/{verilog-gXlZACs5.js → verilog-timMNjHt.js} +0 -0
  560. /package/dist/{vhdl-NaUWbI1B.js → vhdl-DYFbVKNm.js} +0 -0
  561. /package/dist/{webidl-BJmPjW01.js → webidl-pue9oqnb.js} +0 -0
  562. /package/dist/{xquery-CJIPsC0g.js → xquery-DeItGynK.js} +0 -0
  563. /package/dist/{yacas-8f2Vjiiz.js → yacas-By2Qrjba.js} +0 -0
  564. /package/dist/{z80-s5Xk2hCP.js → z80-C7iLsyPC.js} +0 -0
  565. /package/src/components/editor/file-tree/__tests__/{file-expolorer.test.ts → file-explorer.test.ts} +0 -0
@@ -1,66 +1,20 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
- import type { Cell, Column, Row, Table } from "@tanstack/react-table";
4
- import { describe, expect, it, vi } from "vitest";
3
+ import { describe, expect, it } from "vitest";
5
4
  import { SELECT_COLUMN_ID } from "../../types";
6
- import type { SelectedCell } from "../atoms";
7
- import { getCellsBetween, getCellValues } from "../utils";
8
-
9
- function createMockCell(id: string, value: unknown): Cell<unknown, unknown> {
10
- return {
11
- id,
12
- getValue: () => value,
13
- column: {} as Column<unknown>,
14
- row: {} as Row<unknown>,
15
- getContext: vi.fn(),
16
- renderValue: vi.fn(),
17
- } as unknown as Cell<unknown, unknown>;
18
- }
19
-
20
- function createMockColumn(id: string): Column<unknown> {
21
- return {
22
- id: id,
23
- getIndex: () => Number.parseInt(id, 10),
24
- } as unknown as Column<unknown>;
25
- }
26
-
27
- function createMockRow(
28
- id: string,
29
- cells: Cell<unknown, unknown>[],
30
- ): Row<unknown> {
31
- return {
32
- id,
33
- index: Number.parseInt(id, 10),
34
- getAllCells: () => cells,
35
- original: {},
36
- depth: 0,
37
- subRows: [],
38
- getVisibleCells: vi.fn(),
39
- getValue: vi.fn(),
40
- getUniqueValues: vi.fn(),
41
- renderValue: vi.fn(),
42
- } as unknown as Row<unknown>;
43
- }
44
-
45
- function createMockTable(
46
- rows: Row<unknown>[],
47
- columns: Column<unknown>[],
48
- ): Table<unknown> {
49
- return {
50
- getRow: (id: string) => rows.find((row) => row.id === id),
51
- getRowModel: () => ({ rows }),
52
- getColumn: (columnId: string) => columns.find((col) => col.id === columnId),
53
- getAllColumns: () => columns,
54
- } as unknown as Table<unknown>;
55
- }
56
-
57
- function createSelectedCell(rowId: string, columnId: string): SelectedCell {
58
- return {
59
- rowId,
60
- columnId,
61
- cellId: `${rowId}_${columnId}`,
62
- };
63
- }
5
+ import {
6
+ countDataCellsInSelection,
7
+ getCellsBetween,
8
+ getCellValues,
9
+ getNumericValuesFromSelectedCells,
10
+ } from "../utils";
11
+ import {
12
+ createMockCell,
13
+ createMockColumn,
14
+ createMockRow,
15
+ createMockTable,
16
+ createSelectedCell,
17
+ } from "./test-utils";
64
18
 
65
19
  describe("getCellValues", () => {
66
20
  it("should return empty string for empty selection", () => {
@@ -108,24 +62,25 @@ describe("getCellValues", () => {
108
62
  expect(result).toBe("row1\nrow2");
109
63
  });
110
64
 
111
- it("should handle missing cells gracefully", () => {
65
+ it("should handle missing rows gracefully", () => {
112
66
  const cell = createMockCell("0_0", "test");
113
67
  const row = createMockRow("0", [cell]);
114
68
  const table = createMockTable([row], []);
115
69
 
116
- const result = getCellValues(table, new Set(["0_0", "0_999", "999_0"]));
70
+ // Row "999" doesn't exist and is skipped
71
+ const result = getCellValues(table, new Set(["0_0", "999_0"]));
117
72
  expect(result).toBe("test");
118
73
  });
119
74
 
120
- it("should handle missing cells in existing rows", () => {
75
+ it("should include undefined for missing columns on existing rows", () => {
121
76
  const cell1 = createMockCell("0_0", "test1");
122
77
  const cell2 = createMockCell("0_1", "test2");
123
78
  const row = createMockRow("0", [cell1, cell2]);
124
79
  const table = createMockTable([row], []);
125
80
 
126
- // Should only return values for cells that exist
81
+ // Column "999" doesn't exist but row.getValue() returns undefined
127
82
  const result = getCellValues(table, new Set(["0_0", "0_1", "0_999"]));
128
- expect(result).toBe("test1\ttest2");
83
+ expect(result).toBe("test1\ttest2\tundefined");
129
84
  });
130
85
 
131
86
  it("should handle complex data types", () => {
@@ -314,3 +269,188 @@ describe("getCellsBetween", () => {
314
269
  expect(result).toEqual([]);
315
270
  });
316
271
  });
272
+
273
+ describe("getNumericValuesFromSelectedCells", () => {
274
+ it("should return empty array for empty selection", () => {
275
+ const mockTable = createMockTable([], []);
276
+ const result = getNumericValuesFromSelectedCells(mockTable, new Set());
277
+ expect(result).toEqual([]);
278
+ });
279
+
280
+ it("should ignore select checkbox in tables", () => {
281
+ const cell = createMockCell(`row_${SELECT_COLUMN_ID}`, 10);
282
+ const row = createMockRow("0", [cell]);
283
+ const table = createMockTable([row], []);
284
+ const result = getNumericValuesFromSelectedCells(
285
+ table,
286
+ new Set([`row_${SELECT_COLUMN_ID}`]),
287
+ );
288
+ expect(result).toEqual([]);
289
+ });
290
+
291
+ it("should extract numeric values from number cells", () => {
292
+ const cell1 = createMockCell("0_0", 10);
293
+ const cell2 = createMockCell("0_1", 20);
294
+ const row = createMockRow("0", [cell1, cell2]);
295
+ const table = createMockTable([row], []);
296
+ const result = getNumericValuesFromSelectedCells(
297
+ table,
298
+ new Set(["0_0", "0_1"]),
299
+ );
300
+ expect(result).toEqual([10, 20]);
301
+ });
302
+
303
+ it("should parse string numbers to numeric values", () => {
304
+ const cell1 = createMockCell("0_0", "42");
305
+ const cell2 = createMockCell("0_1", "3.14");
306
+ const row = createMockRow("0", [cell1, cell2]);
307
+ const table = createMockTable([row], []);
308
+ const result = getNumericValuesFromSelectedCells(
309
+ table,
310
+ new Set(["0_0", "0_1"]),
311
+ );
312
+ expect(result).toEqual([42, 3.14]);
313
+ });
314
+
315
+ it("should skip non-numeric values", () => {
316
+ const cell1 = createMockCell("0_0", 10);
317
+ const cell2 = createMockCell("0_1", "abc");
318
+ const cell3 = createMockCell("0_2", undefined);
319
+ const row = createMockRow("0", [cell1, cell2, cell3]);
320
+ const table = createMockTable([row], []);
321
+ const result = getNumericValuesFromSelectedCells(
322
+ table,
323
+ new Set(["0_0", "0_1", "0_2"]),
324
+ );
325
+ expect(result).toEqual([10]);
326
+ });
327
+
328
+ it("should skip NaN and Infinity", () => {
329
+ const cell1 = createMockCell("0_0", 5);
330
+ const cell2 = createMockCell("0_1", Number.NaN);
331
+ const cell3 = createMockCell("0_2", Infinity);
332
+ const row = createMockRow("0", [cell1, cell2, cell3]);
333
+ const table = createMockTable([row], []);
334
+ const result = getNumericValuesFromSelectedCells(
335
+ table,
336
+ new Set(["0_0", "0_1", "0_2"]),
337
+ );
338
+ expect(result).toEqual([5]);
339
+ });
340
+
341
+ it("should skip booleans (not treat as 1 or 0)", () => {
342
+ const cell1 = createMockCell("0_0", 10);
343
+ const cell2 = createMockCell("0_1", true);
344
+ const cell3 = createMockCell("0_2", false);
345
+ const row = createMockRow("0", [cell1, cell2, cell3]);
346
+ const table = createMockTable([row], []);
347
+ const result = getNumericValuesFromSelectedCells(
348
+ table,
349
+ new Set(["0_0", "0_1", "0_2"]),
350
+ );
351
+ expect(result).toEqual([10]);
352
+ });
353
+
354
+ it("should skip null and empty string (not treat as 0)", () => {
355
+ const cell1 = createMockCell("0_0", 10);
356
+ const cell2 = createMockCell("0_1", null);
357
+ const cell3 = createMockCell("0_2", "");
358
+ const row = createMockRow("0", [cell1, cell2, cell3]);
359
+ const table = createMockTable([row], []);
360
+ const result = getNumericValuesFromSelectedCells(
361
+ table,
362
+ new Set(["0_0", "0_1", "0_2"]),
363
+ );
364
+ expect(result).toEqual([10]);
365
+ });
366
+
367
+ it("should include string '0' as numeric zero", () => {
368
+ const cell1 = createMockCell("0_0", "0");
369
+ const cell2 = createMockCell("0_1", 0);
370
+ const row = createMockRow("0", [cell1, cell2]);
371
+ const table = createMockTable([row], []);
372
+ const result = getNumericValuesFromSelectedCells(
373
+ table,
374
+ new Set(["0_0", "0_1"]),
375
+ );
376
+ expect(result).toEqual([0, 0]);
377
+ });
378
+
379
+ it("should skip -Infinity", () => {
380
+ const cell1 = createMockCell("0_0", 5);
381
+ const cell2 = createMockCell("0_1", -Infinity);
382
+ const row = createMockRow("0", [cell1, cell2]);
383
+ const table = createMockTable([row], []);
384
+ const result = getNumericValuesFromSelectedCells(
385
+ table,
386
+ new Set(["0_0", "0_1"]),
387
+ );
388
+ expect(result).toEqual([5]);
389
+ });
390
+
391
+ it("should skip objects", () => {
392
+ const cell1 = createMockCell("0_0", 5);
393
+ const cell2 = createMockCell("0_1", { x: 1 });
394
+ const cell3 = createMockCell("0_2", [1, 2]);
395
+ const row = createMockRow("0", [cell1, cell2, cell3]);
396
+ const table = createMockTable([row], []);
397
+ const result = getNumericValuesFromSelectedCells(
398
+ table,
399
+ new Set(["0_0", "0_1", "0_2"]),
400
+ );
401
+ expect(result).toEqual([5]);
402
+ });
403
+
404
+ it("should handle missing cells gracefully", () => {
405
+ const cell = createMockCell("0_0", 100);
406
+ const row = createMockRow("0", [cell]);
407
+ const table = createMockTable([row], []);
408
+ const result = getNumericValuesFromSelectedCells(
409
+ table,
410
+ new Set(["0_0", "0_999", "999_0"]),
411
+ );
412
+ expect(result).toEqual([100]);
413
+ });
414
+
415
+ it("should return multiple numeric cells across rows", () => {
416
+ const row1 = createMockRow("0", [
417
+ createMockCell("0_0", 1),
418
+ createMockCell("0_1", 2),
419
+ ]);
420
+ const row2 = createMockRow("1", [
421
+ createMockCell("1_0", 3),
422
+ createMockCell("1_1", 4),
423
+ ]);
424
+ const table = createMockTable([row1, row2], []);
425
+ const result = getNumericValuesFromSelectedCells(
426
+ table,
427
+ new Set(["0_0", "0_1", "1_0", "1_1"]),
428
+ );
429
+ expect(result).toEqual([1, 2, 3, 4]);
430
+ });
431
+ });
432
+
433
+ describe("countDataCellsInSelection", () => {
434
+ it("should return 0 for empty selection", () => {
435
+ expect(countDataCellsInSelection(new Set())).toBe(0);
436
+ });
437
+
438
+ it("should count only non-checkbox cells", () => {
439
+ expect(countDataCellsInSelection(new Set(["0_0", "0_1", "1_0"]))).toBe(3);
440
+ });
441
+
442
+ it("should exclude select checkbox column cells", () => {
443
+ const selectCellId = `0_${SELECT_COLUMN_ID}`;
444
+ expect(
445
+ countDataCellsInSelection(new Set([selectCellId, "0_0", "0_1"])),
446
+ ).toBe(2);
447
+ });
448
+
449
+ it("should return 0 when only checkbox cells are selected", () => {
450
+ const selectCellId1 = `0_${SELECT_COLUMN_ID}`;
451
+ const selectCellId2 = `1_${SELECT_COLUMN_ID}`;
452
+ expect(
453
+ countDataCellsInSelection(new Set([selectCellId1, selectCellId2])),
454
+ ).toBe(0);
455
+ });
456
+ });
@@ -0,0 +1,79 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import type { Table } from "@tanstack/react-table";
4
+ import { useAtomValue } from "jotai";
5
+ import { cn } from "@/utils/cn";
6
+ import { selectedCellsAtom } from "./atoms";
7
+ import {
8
+ countDataCellsInSelection,
9
+ getNumericValuesFromSelectedCells,
10
+ } from "./utils";
11
+
12
+ /**
13
+ * Displays summary stats (Count, Sum, Average) for the current cell selection.
14
+ * Renders only when 2+ data cells are selected (checkbox column excluded).
15
+ * Count excludes the checkbox column; Sum and Average are shown only when
16
+ * the selection contains at least one numeric value.
17
+ */
18
+ export const CellSelectionStats = <TData,>({
19
+ table,
20
+ className,
21
+ }: {
22
+ table: Table<TData>;
23
+ className?: string;
24
+ }) => {
25
+ const selectedCells = useAtomValue(selectedCellsAtom);
26
+ const dataCellCount = countDataCellsInSelection(selectedCells);
27
+
28
+ if (dataCellCount < 2) {
29
+ return null;
30
+ }
31
+
32
+ const numericValues = getNumericValuesFromSelectedCells(table, selectedCells);
33
+
34
+ return (
35
+ <div
36
+ className={cn(
37
+ "flex items-center justify-end gap-3 text-xs text-muted-foreground shrink-0",
38
+ className,
39
+ )}
40
+ >
41
+ <CountStat count={dataCellCount} />
42
+ <SumStat numericValues={numericValues} />
43
+ <AverageStat numericValues={numericValues} />
44
+ </div>
45
+ );
46
+ };
47
+
48
+ const StatSpan = (statName: string, statValue: number) => {
49
+ return (
50
+ <span>
51
+ {statName}: {statValue}
52
+ </span>
53
+ );
54
+ };
55
+
56
+ const CountStat = ({ count }: { count: number }) => {
57
+ return StatSpan("Count", count);
58
+ };
59
+
60
+ const SumStat = ({ numericValues }: { numericValues: number[] }) => {
61
+ if (numericValues.length === 0) {
62
+ return null;
63
+ }
64
+
65
+ const sum = numericValues.reduce((acc, n) => acc + n, 0);
66
+ const sumRounded = Number(sum.toFixed(8));
67
+ return StatSpan("Sum", sumRounded);
68
+ };
69
+
70
+ const AverageStat = ({ numericValues }: { numericValues: number[] }) => {
71
+ if (numericValues.length === 0) {
72
+ return null;
73
+ }
74
+
75
+ const average =
76
+ numericValues.reduce((acc, n) => acc + n, 0) / numericValues.length;
77
+ const averageRounded = Number(average.toFixed(8));
78
+ return StatSpan("Average", averageRounded);
79
+ };
@@ -20,19 +20,15 @@ export function getCellValues<TData>(
20
20
  continue;
21
21
  }
22
22
 
23
- const [rowId] = cellId.split("_"); // CellId is rowId_columnId
23
+ const { rowId, columnId } = getRowAndColumnId(cellId);
24
24
  const row = table.getRow(rowId);
25
25
  if (!row) {
26
26
  continue;
27
27
  }
28
28
 
29
- const tableCell = row.getAllCells().find((c) => c.id === cellId);
30
- if (!tableCell) {
31
- continue;
32
- }
33
-
29
+ const cellValue = row.getValue(columnId);
34
30
  const values = rowValues.get(rowId) ?? [];
35
- values.push(stringifyUnknownValue({ value: tableCell.getValue() }));
31
+ values.push(stringifyUnknownValue({ value: cellValue }));
36
32
  rowValues.set(rowId, values);
37
33
  }
38
34
 
@@ -43,6 +39,65 @@ export function getTabSeparatedValues(values: string[][]) {
43
39
  return values.map((row) => row.join("\t")).join("\n");
44
40
  }
45
41
 
42
+ /**
43
+ * Count selected cells excluding the select checkbox column.
44
+ */
45
+ export function countDataCellsInSelection(
46
+ selectedCellIds: Set<string>,
47
+ ): number {
48
+ let count = 0;
49
+ for (const cellId of selectedCellIds) {
50
+ if (!cellId.includes(SELECT_COLUMN_ID)) {
51
+ count += 1;
52
+ }
53
+ }
54
+ return count;
55
+ }
56
+
57
+ /**
58
+ * Extract numeric values from the selected cells. Only finite numbers and
59
+ * non-empty numeric strings (e.g. "42", "3.14", "0") are included. Skips select
60
+ * checkbox column, missing cells, and all other types (boolean, null, etc.).
61
+ */
62
+ export function getNumericValuesFromSelectedCells<TData>(
63
+ table: Table<TData>,
64
+ selectedCellIds: Set<string>,
65
+ ): number[] {
66
+ const numericValues: number[] = [];
67
+ for (const cellId of selectedCellIds) {
68
+ if (cellId.includes(SELECT_COLUMN_ID)) {
69
+ continue;
70
+ }
71
+ const { rowId, columnId } = getRowAndColumnId(cellId);
72
+ const row = table.getRow(rowId);
73
+ if (!row) {
74
+ continue;
75
+ }
76
+
77
+ const value = row.getValue(columnId);
78
+
79
+ // Only accept numbers and strings
80
+ // Skip booleans, null, etc.
81
+ let num: number;
82
+ if (typeof value === "number") {
83
+ num = value;
84
+ } else if (typeof value === "string") {
85
+ if (value.trim() === "") {
86
+ continue;
87
+ }
88
+ num = Number(value);
89
+ } else {
90
+ continue;
91
+ }
92
+
93
+ // Skip NaN and Infinity
94
+ if (Number.isFinite(num)) {
95
+ numericValues.push(num);
96
+ }
97
+ }
98
+ return numericValues;
99
+ }
100
+
46
101
  /**
47
102
  * Get the cell ids between two cells.
48
103
  */
@@ -103,3 +158,10 @@ export function getCellsBetween<TData>(
103
158
  function getCellId(rowId: string, columnId: string) {
104
159
  return `${rowId}_${columnId}`;
105
160
  }
161
+
162
+ function getRowAndColumnId(cellId: string) {
163
+ const sepIdx = cellId.indexOf("_");
164
+ const rowId = cellId.slice(0, sepIdx);
165
+ const columnId = cellId.slice(sepIdx + 1);
166
+ return { rowId, columnId };
167
+ }
@@ -80,3 +80,7 @@ export function extractTimezone(dtype: string | undefined): string | undefined {
80
80
  const match = /^datetime(?:64)?\[[^,]+,([^,]+)]$/.exec(dtype);
81
81
  return match?.[1]?.trim();
82
82
  }
83
+
84
+ export type PageRange =
85
+ | { type: "page"; page: number }
86
+ | { type: "ellipsis"; key: string };
@@ -16,7 +16,8 @@ export const EngineVariable: React.FC<Props> = ({
16
16
  variableName,
17
17
  className,
18
18
  }) => {
19
- const onClick = () => {
19
+ const onClick = (e: React.MouseEvent<HTMLButtonElement>) => {
20
+ e.stopPropagation();
20
21
  const cellId = findCellId(variableName);
21
22
  if (!cellId) {
22
23
  return;
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="standard_product_icon" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 512 512">
3
+ <!-- Generator: Adobe Illustrator 29.1.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 142) -->
4
+ <defs>
5
+ <style>
6
+ .st0 {
7
+ fill: none;
8
+ }
9
+
10
+ .st1 {
11
+ fill: #4285f4;
12
+ }
13
+
14
+ .st2 {
15
+ fill: #34a853;
16
+ }
17
+
18
+ .st3 {
19
+ fill: #fbbc04;
20
+ }
21
+
22
+ .st4 {
23
+ fill: #ea4335;
24
+ }
25
+ </style>
26
+ </defs>
27
+ <g id="bounding_box">
28
+ <rect class="st0" width="512" height="512"/>
29
+ </g>
30
+ <g id="art">
31
+ <path class="st2" d="M442,277.9H70c-8.8,0-16,7.2-16,16v148.1c0,8.8,7.2,16,16,16h107.2c1.5.5,3.1.7,4.8.7s3.3-.3,4.8-.7h255.2c8.8,0,16-7.2,16-16v-148.1c0-8.8-7.2-16-16-16ZM86,309.9h80v116.1h-80v-116.1ZM426,425.9h-228v-116.1h228v116.1Z"/>
32
+ <path class="st3" d="M442,54H70c-8.8,0-16,7.2-16,16v148.8c0,8.8,7.2,16,16,16h372c8.8,0,16-7.2,16-16V70c0-8.8-7.2-16-16-16ZM86,86h80v116.8h-80v-116.8ZM426,202.8h-228v-116.8h228v116.8Z"/>
33
+ <path class="st4" d="M442,234.8h-16V86H54v-16c0-8.8,7.2-16,16-16h372c8.8,0,16,7.2,16,16v148.8c0,8.8-7.2,16-16,16Z"/>
34
+ <path class="st1" d="M442,457.9h-16v-148.1H54v-16c0-8.8,7.2-16,16-16h372c8.8,0,16,7.2,16,16v148.1c0,8.8-7.2,16-16,16Z"/>
35
+ <circle class="st4" cx="349" cy="144.4" r="37"/>
36
+ <circle class="st1" cx="349" cy="367.9" r="37"/>
37
+ </g>
38
+ </svg>
@@ -1,6 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
 
3
3
  import { ChevronRightIcon, LoaderCircle, XIcon } from "lucide-react";
4
+ import type { CSSProperties } from "react";
4
5
  import type { DataType } from "@/core/kernel/messages";
5
6
  import { cn } from "@/utils/cn";
6
7
  import { DATA_TYPE_ICON, getDataTypeColor } from "../datasets/icons";
@@ -42,16 +43,19 @@ export const EmptyState: React.FC<{ content: string; className?: string }> = ({
42
43
 
43
44
  export const ErrorState: React.FC<{
44
45
  error: Error;
46
+ style?: CSSProperties;
45
47
  className?: string;
46
- }> = ({ error, className }) => {
48
+ showIcon?: boolean;
49
+ }> = ({ error, style, className, showIcon = true }) => {
47
50
  return (
48
51
  <div
49
52
  className={cn(
50
53
  "text-sm bg-red-50 dark:bg-red-900 text-red-600 dark:text-red-50 flex items-center gap-2 p-2 h-8",
51
54
  className,
52
55
  )}
56
+ style={style}
53
57
  >
54
- <XIcon className="h-4 w-4 mt-0.5" />
58
+ {showIcon && <XIcon className="h-4 w-4 mt-0.5" />}
55
59
  {error.message}
56
60
  </div>
57
61
  );
@@ -17,6 +17,7 @@ import { cellFocusAtom, useCellFocusActions } from "@/core/cells/focus";
17
17
  import type { CellId } from "@/core/cells/ids";
18
18
  import { useVariables } from "@/core/variables/state";
19
19
  import { cn } from "@/utils/cn";
20
+ import { extractCellPreview } from "./utils/cell-preview";
20
21
 
21
22
  interface MinimapCellProps {
22
23
  cellId: CellId;
@@ -45,6 +46,7 @@ const MinimapCell: React.FC<MinimapCellProps> = (props) => {
45
46
  }
46
47
 
47
48
  const isSelected = selectedCell?.id === cell.id;
49
+ const preview = extractCellPreview(cell.code);
48
50
  const circleRadius = isNonReferenceableCell(cell.graph) ? 1.5 : 3;
49
51
 
50
52
  const handleClick = () => {
@@ -90,7 +92,7 @@ const MinimapCell: React.FC<MinimapCellProps> = (props) => {
90
92
  <VariablesList cell={cell} selectedCell={selectedCell} />
91
93
  ) : (
92
94
  <span className="overflow-hidden text-ellipsis whitespace-nowrap max-w-full">
93
- {codePreview(cell.code) ?? <span className="italic">empty</span>}
95
+ {preview.text ?? <span className="italic">empty</span>}
94
96
  </span>
95
97
  )}
96
98
  </div>
@@ -123,10 +125,6 @@ const MinimapCell: React.FC<MinimapCellProps> = (props) => {
123
125
  );
124
126
  };
125
127
 
126
- function codePreview(code: string): string | undefined {
127
- return code.split("\n")[0].trim() || undefined;
128
- }
129
-
130
128
  const VariablesList: React.FC<{
131
129
  cell: { id: CellId; graph: CellGraph };
132
130
  selectedCell?: { id: CellId; graph: CellGraph };