@marimo-team/islands 0.21.2-dev8 → 0.21.2-dev80

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 (664) 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-BBegsg-m.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-Dbn0M4Oo.js +7295 -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-DEj2X26M.js → dist-1-E4bC9V.js} +2 -2
  76. package/dist/{dist-RNGn_-uD.js → dist-APyhcmvq.js} +1 -1
  77. package/dist/{dist-i-ud9aCA.js → dist-B5thW2rT.js} +1 -1
  78. package/dist/{dist-BpMlUdNO.js → dist-BFe8Nc_2.js} +3 -3
  79. package/dist/dist-BHGf2Zey.js +5 -0
  80. package/dist/dist-BImOGJZM.js +5 -0
  81. package/dist/{dist-lNe4i1Nm.js → dist-BJvk9DSp.js} +1 -1
  82. package/dist/{dist-DUretbKK.js → dist-BLrc9iNb.js} +2 -2
  83. package/dist/{dist-CSEWGuDq.js → dist-BYr4a-wE.js} +1 -1
  84. package/dist/dist-BbJfmCHJ.js +5 -0
  85. package/dist/{dist-C0Rnbr-_.js → dist-BiNtCiQ9.js} +4 -4
  86. package/dist/{dist-D4gcY469.js → dist-BrJQDkv_.js} +2 -2
  87. package/dist/dist-C0v-nFs_.js +8 -0
  88. package/dist/{dist-C4K7pumm.js → dist-C16JG-Ok.js} +2 -2
  89. package/dist/dist-C8N7114Z.js +5 -0
  90. package/dist/dist-C9TDg2aq.js +8 -0
  91. package/dist/{dist-gc9KgJuA.js → dist-CGH6Jw-c.js} +1 -1
  92. package/dist/{dist-BSfYc7vq.js → dist-CKVkWFcB.js} +2 -2
  93. package/dist/dist-CN4RKgNR.js +5 -0
  94. package/dist/{dist-DodLQWPg.js → dist-CQ3XmGIH.js} +1 -1
  95. package/dist/{dist-BGZ7TWS9.js → dist-CSiTW5NO.js} +3 -3
  96. package/dist/dist-CVOkf_3P.js +6 -0
  97. package/dist/{dist-CAKwXCWI.js → dist-CYuoqvce.js} +2 -2
  98. package/dist/dist-Cbkga3s5.js +5 -0
  99. package/dist/{dist-Ux6dL_VB.js → dist-Cm4SOB1A.js} +1 -1
  100. package/dist/dist-CwEBZkrQ.js +550 -0
  101. package/dist/{dist-D_-CGmlh.js → dist-CxczluAk.js} +2 -2
  102. package/dist/dist-D6YTv0Kj.js +5 -0
  103. package/dist/{dist-Bq5eYK43.js → dist-D75XqRaT.js} +2 -2
  104. package/dist/dist-D9vawryf.js +8 -0
  105. package/dist/{dist-CseYuPtL.js → dist-DFBjYgbq.js} +2 -2
  106. package/dist/{dist-Bq9zYwJs.js → dist-DUg5n_x5.js} +5 -5
  107. package/dist/dist-DasJgTvL.js +6 -0
  108. package/dist/{dist-D5NMgbbv.js → dist-DbyoYfBn.js} +2 -2
  109. package/dist/{dist-CPlGUbk-.js → dist-Dd9vDQtp.js} +2 -2
  110. package/dist/{dist-Cl5iM8xL.js → dist-Dk13KZ54.js} +3 -3
  111. package/dist/{dist-COpDrwi-.js → dist-Dl9_0tkc.js} +1 -1
  112. package/dist/dist-Ui51qXMz.js +8 -0
  113. package/dist/{dist-BFxYppVR.js → dist-XYBhoeSX.js} +4 -4
  114. package/dist/{dist-DERtJN02.js → dist-Y9GfSR6_.js} +2 -2
  115. package/dist/{dist-B9EjSb9T.js → dist-aW74oyUt.js} +1 -1
  116. package/dist/dist-d2msfN-B.js +5 -0
  117. package/dist/{dist-BUrWeMEP.js → dist-iM9VwH8Z.js} +1 -1
  118. package/dist/{dist-HoZO6brh.js → dist-uR-o9IVx.js} +2 -2
  119. package/dist/{dist-CDHl2i1x.js → dist-zGOEySUQ.js} +4 -4
  120. package/dist/{dockerfile-BxhYdLHL.js → dockerfile-DG6A2DdH.js} +1 -1
  121. package/dist/dtd-Dyiazv4N.js +4 -0
  122. package/dist/dylan-D8Fcw7NA.js +4 -0
  123. package/dist/ecl-CjKp8Vii.js +4 -0
  124. package/dist/eiffel-K9ViOX5r.js +4 -0
  125. package/dist/elm-B5NVtRco.js +4 -0
  126. package/dist/{erDiagram-Q2GNP2WA-DPMseVVp.js → erDiagram-Q2GNP2WA-CGK0SUdu.js} +15 -15
  127. package/dist/erlang-BnLzgk7R.js +4 -0
  128. package/dist/{error-banner-Dmi5ujan.js → error-banner-D-KBGvBj.js} +3 -3
  129. package/dist/esm-CCD9xN05.js +1587 -0
  130. package/dist/esm-CxoKu9RN.js +2805 -0
  131. package/dist/{factor-Png_OsVt.js → factor-Bq2mGIHt.js} +1 -1
  132. package/dist/factor-C7f9Jz5R.js +4 -0
  133. package/dist/{flowDiagram-NV44I4VS-BpAIFwW7.js → flowDiagram-NV44I4VS-PjhviPI_.js} +17 -17
  134. package/dist/forth-rGM8jLao.js +4 -0
  135. package/dist/fortran-B3acSe0i.js +4 -0
  136. package/dist/{ganttDiagram-JELNMOA3-DXYghZ9C.js → ganttDiagram-JELNMOA3-CUVtQqgT.js} +10 -10
  137. package/dist/gas-Bb1Vmv_N.js +4 -0
  138. package/dist/gherkin-C9Lyidgd.js +4 -0
  139. package/dist/{gitGraph-G5XIXVHT-ChHUSAop.js → gitGraph-G5XIXVHT-B6b-Z3mr.js} +3 -3
  140. package/dist/{gitGraphDiagram-V2S2FVAM-CBL-7g3_.js → gitGraphDiagram-V2S2FVAM-CNdrlK1I.js} +17 -17
  141. package/dist/{glide-data-editor-pZyd9UJ_.js → glide-data-editor-DQEuWuu_.js} +94 -93
  142. package/dist/{graphlib-D18eZCT4.js → graphlib-CIQjMxKw.js} +6 -6
  143. package/dist/groovy-DQk6XcGH.js +4 -0
  144. package/dist/{hasIn-B9AbGLj3.js → hasIn-eLCPDloT.js} +5 -5
  145. package/dist/haskell-mV0Vw9gv.js +4 -0
  146. package/dist/haxe-DqxN89zH.js +5 -0
  147. package/dist/idl-ya8W561J.js +4 -0
  148. package/dist/{info-VBDWY6EO-CwyXEo8E.js → info-VBDWY6EO-DfFl0Z8H.js} +3 -3
  149. package/dist/infoDiagram-HS3SLOUP-DGimKb9k.js +30 -0
  150. package/dist/{types-CGc7peZV.js → input-B8CM-AuM.js} +208 -405
  151. package/dist/{isEmpty-C-xMag79.js → isEmpty-CI9akcsL.js} +2 -2
  152. package/dist/{isString-D-vNYDBA.js → isString-xiQUcgm4.js} +1 -1
  153. package/dist/{isSymbol-Dyt2NSnN.js → isSymbol-DFp8040B.js} +1 -1
  154. package/dist/javascript-CgqgptVu.js +4 -0
  155. package/dist/{journeyDiagram-XKPGCS4Q-D5BIjS4N.js → journeyDiagram-XKPGCS4Q-CyoESVVb.js} +7 -7
  156. package/dist/julia-CFQ-HusI.js +4 -0
  157. package/dist/{kanban-definition-3W4ZIXB7-DhDkqxFB.js → kanban-definition-3W4ZIXB7-Doc2YV80.js} +12 -12
  158. package/dist/{katex-pyO_klYC.js → katex-qPqrBHZ8.js} +1 -1
  159. package/dist/{label-BbpGrh4j.js → label-e5-84vsp.js} +10 -10
  160. package/dist/{line-C1k1rG3Z.js → line-BWRi3U3S.js} +3 -3
  161. package/dist/{linear-DIp6l9sg.js → linear-DZ8_CGCd.js} +4 -4
  162. package/dist/livescript-D__3TmDo.js +4 -0
  163. package/dist/{loader-CABJs6GU.js → loader-C51Irhxm.js} +3 -3
  164. package/dist/lua-Bytcgj_W.js +4 -0
  165. package/dist/main.js +35383 -70488
  166. package/dist/mathematica-DJhvVKvl.js +4 -0
  167. package/dist/mbox-IGHPCjfR.js +4 -0
  168. package/dist/{memoize-Cs8aS5RW.js → memoize-zYM53m8l.js} +1 -1
  169. package/dist/{merge-NuyC7LN7.js → merge-CqBPpP0q.js} +1 -1
  170. package/dist/mermaid-4DMBBIKO-DQdI9xDR.js +6 -0
  171. package/dist/{mermaid-CrKqsE2j.js → mermaid-CzWpf81s.js} +50 -50
  172. package/dist/{mermaid-parser.core-OkWZ8nr-.js → mermaid-parser.core-CrrqF1ZZ.js} +8 -8
  173. package/dist/{mhchem-DckvwtV8.js → mhchem-BwoRNwg_.js} +1 -1
  174. package/dist/micromark-factory-space-DQCQsiYz.js +1341 -0
  175. package/dist/{min-ECVRnCdn.js → min-IJGSWMpU.js} +8 -8
  176. package/dist/{mindmap-definition-VGOIOE7T-BxQi78Vl.js → mindmap-definition-VGOIOE7T-L2ybicpO.js} +14 -14
  177. package/dist/mirc-tcwvVugm.js +4 -0
  178. package/dist/mllike-Dx91i62r.js +6 -0
  179. package/dist/modelica-_SRt-yU5.js +4 -0
  180. package/dist/mscgen-GZrGS9gt.js +6 -0
  181. package/dist/mumps-Cv3ygyod.js +4 -0
  182. package/dist/{now-BC2mX0ZT.js → now-CnuN5fN5.js} +1 -1
  183. package/dist/nsis-BU7GeGbI.js +4 -0
  184. package/dist/{nsis-BrAITej_.js → nsis-i9_sgigf.js} +1 -1
  185. package/dist/ntriples-CL-FCYXb.js +4 -0
  186. package/dist/{number-overlay-editor-CQrncFlP.js → number-overlay-editor-D2Y0RpcH.js} +1 -1
  187. package/dist/octave-Dc6_3DIu.js +4 -0
  188. package/dist/{once-BqS42WgZ.js → once-DjP4Kbhy.js} +1 -1
  189. package/dist/{ordinal-Dcvf4J1m.js → ordinal-B4zYMadD.js} +1 -1
  190. package/dist/oz-DpUAJCXf.js +4 -0
  191. package/dist/{packet-DYOGHKS2-C62XQjZh.js → packet-DYOGHKS2-DIf3Dotq.js} +3 -3
  192. package/dist/pascal-B17mncXs.js +4 -0
  193. package/dist/perl-BTpK97q9.js +4 -0
  194. package/dist/{pie-VRWISCQL-nfAKQJw3.js → pie-VRWISCQL-Dj_gvPcD.js} +3 -3
  195. package/dist/{pieDiagram-ADFJNKIX-DfSJXUHa.js → pieDiagram-ADFJNKIX-x5w7q6Yp.js} +22 -22
  196. package/dist/pig-CFb638Ap.js +4 -0
  197. package/dist/powershell-Cxo-_2A5.js +4 -0
  198. package/dist/{precisionRound-BAc-kQ3q.js → precisionRound-C-DW449D.js} +1 -1
  199. package/dist/process-output-BD2HO0W_.js +28024 -0
  200. package/dist/properties-BPgT1xTB.js +4 -0
  201. package/dist/protobuf-BgHBaIIK.js +4 -0
  202. package/dist/pug-25-oS0SG.js +4 -0
  203. package/dist/{pug-CH-17az-.js → pug-BhE2JRSg.js} +1 -1
  204. package/dist/puppet-DarIr20S.js +4 -0
  205. package/dist/python-BqmOsBsi.js +4 -0
  206. package/dist/q-D3QJCTup.js +4 -0
  207. package/dist/{quadrantDiagram-AYHSOK5B-CAcVWXc-.js → quadrantDiagram-AYHSOK5B-D5j_5qG_.js} +5 -5
  208. package/dist/r-Cz_yBX4z.js +4 -0
  209. package/dist/{radar-ZZBFDIW7-lopS8_4j.js → radar-ZZBFDIW7-DXDVq3gi.js} +3 -3
  210. package/dist/{range-BKaWvVUE.js → range-DffmqG6L.js} +4 -3
  211. package/dist/{react-vega-C6kwcd86.js → react-vega-BBUxfZoV.js} +19 -19
  212. package/dist/react-vega-Cs3lfDw8.js +9 -0
  213. package/dist/{reduce-CqQo8ppc.js → reduce-CGwzfrDo.js} +5 -5
  214. package/dist/{requirementDiagram-UZGBJVZJ-BU7dwzFM.js → requirementDiagram-UZGBJVZJ-3SoJH6yP.js} +14 -14
  215. package/dist/rpm-DGOtYwAI.js +5 -0
  216. package/dist/ruby-DBZu4rPc.js +4 -0
  217. package/dist/{sankeyDiagram-TZEHDZUN-BVJnR4_b.js → sankeyDiagram-TZEHDZUN-fGkFNe5q.js} +5 -5
  218. package/dist/sas-Dd1D9qTq.js +4 -0
  219. package/dist/scheme-BmDjvTHX.js +4 -0
  220. package/dist/{sequenceDiagram-WL72ISMW-CQcFQTwX.js → sequenceDiagram-WL72ISMW-BE2uTn_d.js} +8 -8
  221. package/dist/shell-BL8zFSaj.js +4 -0
  222. package/dist/sieve-BAx2WqUP.js +4 -0
  223. package/dist/{slides-component-GkilRW21.js → slides-component-Cjo6LzW9.js} +3 -3
  224. package/dist/smalltalk-CYRzF7VV.js +4 -0
  225. package/dist/sparql-YWaDRO4A.js +4 -0
  226. package/dist/{spec-Bfvf9Hre.js → spec-UGFYIDJb.js} +12 -422
  227. package/dist/{src-CHUphWwL.js → src-BY0BGg6V.js} +1 -1
  228. package/dist/{stateDiagram-FKZM4ZOC-Dx9AIGDe.js → stateDiagram-FKZM4ZOC-Dmk9IAOx.js} +19 -19
  229. package/dist/stateDiagram-v2-4FDKWEC3-BGF0BvU6.js +29 -0
  230. package/dist/{step-BbmiiQdf.js → step-DGAGWg3y.js} +1 -1
  231. package/dist/stex-BvZqVamL.js +4 -0
  232. package/dist/style.css +1 -1
  233. package/dist/stylus-lYsyLFc1.js +4 -0
  234. package/dist/swift-ClQz9z1n.js +4 -0
  235. package/dist/tcl-B3jhsfqY.js +4 -0
  236. package/dist/textile-Cb1Dw7Aq.js +4 -0
  237. package/dist/{time-DFFVNc1Q.js → time-C_pvjzP0.js} +4 -4
  238. package/dist/{timeline-definition-IT6M3QCI-D8B3p7ID.js → timeline-definition-IT6M3QCI-CvB4yGrN.js} +4 -4
  239. package/dist/toDate-COI3hP-5.js +637 -0
  240. package/dist/toInteger-BUeg_O0F.js +15 -0
  241. package/dist/{toNumber-CbZ70FdN.js → toNumber-xFPoy1OI.js} +2 -2
  242. package/dist/{toString-DbIAWQpF.js → toString-CtXX84W6.js} +2 -2
  243. package/dist/toml-nHZhetdO.js +4 -0
  244. package/dist/{tooltip-CKG75XQa.js → tooltip-DnI4CwIS.js} +4 -4
  245. package/dist/{treemap-GDKQZRPO-CkR-5ai2.js → treemap-GDKQZRPO-CIG6WH-x.js} +3 -3
  246. package/dist/troff-DuJAGWKH.js +4 -0
  247. package/dist/ttcn-BxrcwP21.js +4 -0
  248. package/dist/ttcn-cfg-BAg_9dcc.js +4 -0
  249. package/dist/turtle-zCq949as.js +4 -0
  250. package/dist/types-BqLAaq-i.js +209 -0
  251. package/dist/{uniq-H2E5nMLq.js → uniq-CCKqEs7T.js} +1 -1
  252. package/dist/{useAsyncData-CEjJxwFB.js → useAsyncData-BtHYXgXF.js} +2 -2
  253. package/dist/useDeepCompareMemoize-9dXEtK7u.js +124 -0
  254. package/dist/useIframeCapabilities-CzVvBDe8.js +13 -0
  255. package/dist/useLifecycle-Be1LUuEg.js +427 -0
  256. package/dist/{useTheme-CPybHVFN.js → useTheme-5GTtjXjy.js} +4 -4
  257. package/dist/vb-De5hElus.js +4 -0
  258. package/dist/vbscript-Cypcpv4F.js +4 -0
  259. package/dist/{vega-component-CuPTCRp5.js → vega-component-BQNW4qnB.js} +198 -197
  260. package/dist/{vega-loader.browser-CQ-lnUkI.js → vega-loader.browser-DnqN5nbz.js} +3 -3
  261. package/dist/velocity-Di7l-yhe.js +4 -0
  262. package/dist/verilog-Bzi-S3g2.js +4 -0
  263. package/dist/vhdl-B0ZZITaW.js +4 -0
  264. package/dist/webidl-0sviiRcN.js +4 -0
  265. package/dist/xquery-B4qMVWaB.js +4 -0
  266. package/dist/{xychartDiagram-PRI3JC2R-XO8FiQjU.js → xychartDiagram-PRI3JC2R-BbEInSqY.js} +13 -13
  267. package/dist/yacas-Jt25Fuv8.js +4 -0
  268. package/dist/z80-CrcbYzmp.js +4 -0
  269. package/package.json +2 -1
  270. package/src/__mocks__/notebook.ts +9 -9
  271. package/src/__mocks__/requests.ts +2 -1
  272. package/src/__tests__/branded.ts +20 -0
  273. package/src/__tests__/setup.ts +15 -0
  274. package/src/components/app-config/__tests__/get-dirty-values.test.ts +1 -1
  275. package/src/components/app-config/get-dirty-values.ts +100 -0
  276. package/src/components/app-config/user-config-form.tsx +6 -101
  277. package/src/components/data-table/TableActions.tsx +8 -2
  278. package/src/components/data-table/__tests__/columns.test.tsx +138 -0
  279. package/src/components/data-table/__tests__/data-table.test.tsx +63 -0
  280. package/src/components/data-table/__tests__/utils.test.ts +138 -1
  281. package/src/components/data-table/charts/__tests__/storage.test.ts +7 -7
  282. package/src/components/data-table/columns.tsx +44 -4
  283. package/src/components/data-table/context-menu.tsx +9 -5
  284. package/src/components/data-table/data-table.tsx +13 -31
  285. package/src/components/data-table/filters.ts +1 -0
  286. package/src/components/data-table/hooks/use-scroll-container-height.ts +97 -0
  287. package/src/components/data-table/range-focus/__tests__/atoms.test.ts +8 -2
  288. package/src/components/data-table/range-focus/__tests__/test-utils.ts +2 -0
  289. package/src/components/data-table/range-focus/__tests__/use-cell-range-selection.test.ts +119 -0
  290. package/src/components/data-table/range-focus/__tests__/utils.test.ts +82 -8
  291. package/src/components/data-table/range-focus/atoms.ts +2 -2
  292. package/src/components/data-table/range-focus/use-cell-range-selection.ts +19 -0
  293. package/src/components/data-table/range-focus/utils.ts +50 -12
  294. package/src/components/data-table/renderers.tsx +103 -46
  295. package/src/components/data-table/types.ts +21 -0
  296. package/src/components/data-table/utils.ts +87 -0
  297. package/src/components/datasources/datasources.tsx +45 -0
  298. package/src/components/editor/__tests__/data-attributes.test.tsx +8 -8
  299. package/src/components/editor/ai/__tests__/completion-utils.test.ts +15 -15
  300. package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +2 -2
  301. package/src/components/editor/connections/storage/as-code.ts +2 -2
  302. package/src/components/editor/file-tree/file-explorer.tsx +16 -2
  303. package/src/components/editor/file-tree/file-viewer.tsx +17 -3
  304. package/src/components/editor/navigation/__tests__/clipboard.test.ts +2 -2
  305. package/src/components/editor/navigation/__tests__/selection.test.ts +7 -6
  306. package/src/components/editor/navigation/__tests__/state.test.ts +8 -7
  307. package/src/components/editor/output/MarimoErrorOutput.tsx +7 -7
  308. package/src/components/editor/output/__tests__/traceback.test.tsx +4 -4
  309. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +4 -4
  310. package/src/components/editor/package-alert.tsx +1 -1
  311. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +8 -1
  312. package/src/components/markdown/markdown-renderer.tsx +18 -2
  313. package/src/components/storage/storage-file-viewer.tsx +35 -1
  314. package/src/components/storage/storage-inspector.tsx +9 -4
  315. package/src/components/storage/storage-snippets.ts +3 -3
  316. package/src/components/tracing/tracing.tsx +3 -1
  317. package/src/components/ui/range-slider.tsx +108 -1
  318. package/src/core/ai/__tests__/staged-cells.test.ts +9 -8
  319. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +31 -31
  320. package/src/core/ai/context/providers/__tests__/datasource.test.ts +3 -3
  321. package/src/core/ai/context/providers/__tests__/tables.test.ts +3 -2
  322. package/src/core/ai/context/providers/__tests__/variable.test.ts +84 -63
  323. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +10 -9
  324. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +6 -6
  325. package/src/core/ai/tools/edit-notebook-tool.ts +3 -3
  326. package/src/core/cells/__tests__/add-missing-import.test.ts +3 -3
  327. package/src/core/cells/__tests__/apply-transaction.test.ts +279 -0
  328. package/src/core/cells/__tests__/cells.test.ts +198 -135
  329. package/src/core/cells/__tests__/document-changes.test.ts +572 -0
  330. package/src/core/cells/__tests__/document-roundtrip.test.ts +376 -0
  331. package/src/core/cells/__tests__/focus.test.ts +5 -4
  332. package/src/core/cells/__tests__/logs.test.ts +13 -12
  333. package/src/core/cells/__tests__/pending-delete-service.test.tsx +3 -3
  334. package/src/core/cells/__tests__/runs.test.ts +29 -24
  335. package/src/core/cells/__tests__/scrollCellIntoView.test.ts +8 -7
  336. package/src/core/cells/__tests__/session.test.ts +23 -22
  337. package/src/core/cells/cells.ts +31 -5
  338. package/src/core/cells/document-changes.ts +644 -0
  339. package/src/core/cells/ids.ts +5 -5
  340. package/src/core/cells/logs.ts +2 -2
  341. package/src/core/cells/runs.ts +6 -8
  342. package/src/core/codemirror/__tests__/format.test.ts +34 -36
  343. package/src/core/codemirror/__tests__/setup.test.ts +2 -2
  344. package/src/core/codemirror/cells/__tests__/extensions.test.ts +114 -0
  345. package/src/core/codemirror/cells/__tests__/traceback-decorations.test.ts +33 -32
  346. package/src/core/codemirror/cells/extensions.ts +66 -23
  347. package/src/core/codemirror/completion/__tests__/keymap.test.ts +15 -35
  348. package/src/core/codemirror/completion/keymap.ts +14 -4
  349. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +12 -13
  350. package/src/core/codemirror/language/__tests__/utils.test.ts +3 -3
  351. package/src/core/codemirror/language/embedded/__tests__/embedded-python.test.ts +7 -8
  352. package/src/core/codemirror/language/languages/python.ts +4 -0
  353. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +4 -3
  354. package/src/core/codemirror/lsp/notebook-lsp.ts +28 -2
  355. package/src/core/codemirror/reactive-references/__tests__/analyzer.test.ts +7 -6
  356. package/src/core/codemirror/reactive-references/analyzer.ts +2 -2
  357. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +52 -0
  358. package/src/core/codemirror/rtc/loro/sync.ts +1 -0
  359. package/src/core/datasets/__tests__/data-source.test.ts +93 -7
  360. package/src/core/datasets/data-source-connections.ts +44 -0
  361. package/src/core/datasets/request-registry.ts +13 -0
  362. package/src/core/datasets/state.ts +1 -1
  363. package/src/core/edit-app.tsx +0 -5
  364. package/src/core/errors/__tests__/errors.test.ts +2 -1
  365. package/src/core/export/__tests__/hooks.test.ts +37 -36
  366. package/src/core/islands/bridge.ts +2 -1
  367. package/src/core/islands/main.ts +5 -9
  368. package/src/core/kernel/__tests__/handlers.test.ts +5 -4
  369. package/src/core/kernel/handlers.ts +7 -4
  370. package/src/core/kernel/messages.ts +2 -0
  371. package/src/core/network/DeferredRequestRegistry.ts +2 -2
  372. package/src/core/network/__tests__/CachingRequestRegistry.test.ts +9 -10
  373. package/src/core/network/__tests__/DeferredRequestRegistry.test.ts +4 -6
  374. package/src/core/network/requests-lazy.ts +2 -1
  375. package/src/core/network/requests-network.ts +10 -2
  376. package/src/core/network/requests-static.ts +2 -1
  377. package/src/core/network/requests-toasting.tsx +2 -1
  378. package/src/core/network/types.ts +7 -2
  379. package/src/core/static/__tests__/virtual-file-tracker.test.ts +8 -8
  380. package/src/core/static/virtual-file-tracker.ts +1 -1
  381. package/src/core/storage/__tests__/state.test.ts +31 -21
  382. package/src/core/storage/state.ts +1 -1
  383. package/src/core/variables/__tests__/state.test.ts +6 -6
  384. package/src/core/variables/types.ts +2 -2
  385. package/src/core/wasm/__tests__/state.test.ts +8 -8
  386. package/src/core/wasm/bridge.ts +11 -1
  387. package/src/core/websocket/useMarimoKernelConnection.tsx +33 -26
  388. package/src/css/app/fonts.css +6 -6
  389. package/src/css/md-tooltip.css +4 -39
  390. package/src/css/md.css +10 -0
  391. package/src/fonts/Fira_Mono/FiraMono-Bold.woff2 +0 -0
  392. package/src/fonts/Fira_Mono/FiraMono-Medium.woff2 +0 -0
  393. package/src/fonts/Fira_Mono/FiraMono-Regular.woff2 +0 -0
  394. package/src/fonts/Lora/Lora-VariableFont_wght.woff2 +0 -0
  395. package/src/fonts/PT_Sans/PTSans-Bold.woff2 +0 -0
  396. package/src/fonts/PT_Sans/PTSans-Regular.woff2 +0 -0
  397. package/src/plugins/core/RenderHTML.tsx +17 -0
  398. package/src/plugins/core/__test__/RenderHTML.test.ts +45 -0
  399. package/src/plugins/core/sanitize-html.ts +25 -18
  400. package/src/plugins/impl/DataTablePlugin.tsx +50 -2
  401. package/src/plugins/impl/SliderPlugin.tsx +1 -3
  402. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +120 -0
  403. package/src/plugins/impl/anywidget/model.ts +1 -2
  404. package/src/plugins/impl/chat/ChatPlugin.tsx +6 -3
  405. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +5 -2
  406. package/src/stories/cell.stories.tsx +8 -8
  407. package/src/stories/layout/vertical/one-column.stories.tsx +9 -8
  408. package/src/stories/log-viewer.stories.tsx +8 -8
  409. package/src/stories/variables.stories.tsx +2 -2
  410. package/src/utils/__tests__/createReducer.test.ts +2 -1
  411. package/src/utils/__tests__/download.test.tsx +21 -20
  412. package/src/utils/copy.ts +18 -5
  413. package/src/utils/createReducer.ts +46 -26
  414. package/src/utils/download.ts +4 -3
  415. package/src/utils/html-to-image.ts +6 -0
  416. package/src/utils/json/base64.ts +3 -3
  417. package/src/utils/traceback.ts +5 -3
  418. package/dist/_basePickBy-pTDW2_2A.js +0 -47
  419. package/dist/apl-lHFVoxx7.js +0 -4
  420. package/dist/architecture-7HQA4BMR-BmtmhGMc.js +0 -6
  421. package/dist/asciiarmor-DqCdZUHI.js +0 -4
  422. package/dist/asn1-DEcwtw-q.js +0 -4
  423. package/dist/brainfuck-Bro9Oz5x.js +0 -4
  424. package/dist/classDiagram-2ON5EDUG-DphiMW3Y.js +0 -30
  425. package/dist/classDiagram-v2-WZHVMYZB-BH1x5h4a.js +0 -30
  426. package/dist/clojure-B2uhdQPa.js +0 -4
  427. package/dist/cmake-B9WXyQcc.js +0 -4
  428. package/dist/cobol-CPD3EJfO.js +0 -4
  429. package/dist/coffeescript-KD9TnEnS.js +0 -4
  430. package/dist/commonlisp-DNEULz_Q.js +0 -4
  431. package/dist/crystal-DVPNgAPQ.js +0 -4
  432. package/dist/css-fq3a1AH1.js +0 -4
  433. package/dist/cypher-Dtzq0BP7.js +0 -4
  434. package/dist/d-DcZudIhJ.js +0 -4
  435. package/dist/diff-D9BPDC3o.js +0 -4
  436. package/dist/dist-B4MxkKHf.js +0 -8
  437. package/dist/dist-BYghZv6b.js +0 -5
  438. package/dist/dist-Be-uQhz5.js +0 -6
  439. package/dist/dist-CB_xf0ju.js +0 -5
  440. package/dist/dist-CK0qFAbF.js +0 -8
  441. package/dist/dist-CYEk-qrr.js +0 -8
  442. package/dist/dist-CmKoWpMk.js +0 -5
  443. package/dist/dist-D1nf4IQl.js +0 -5
  444. package/dist/dist-Df3AcKpt.js +0 -6
  445. package/dist/dist-DgaFHt_I.js +0 -5
  446. package/dist/dist-Dk10C3ui.js +0 -5
  447. package/dist/dist-DtyPVMHR.js +0 -5
  448. package/dist/dist-ko7WnHAO.js +0 -5
  449. package/dist/dist-of7gLRFK.js +0 -8
  450. package/dist/dtd-FhG-tVom.js +0 -4
  451. package/dist/dylan-HWpZOBPw.js +0 -4
  452. package/dist/ecl-B_rcje1I.js +0 -4
  453. package/dist/eiffel-oqHyHs6f.js +0 -4
  454. package/dist/elm-B62RQEds.js +0 -4
  455. package/dist/erlang-CjRjjA-B.js +0 -4
  456. package/dist/esm-BLobyqMs.js +0 -4387
  457. package/dist/factor-CGH_TnIV.js +0 -4
  458. package/dist/forth-5N06oHNp.js +0 -4
  459. package/dist/fortran-wZ-sNg3h.js +0 -4
  460. package/dist/gas-3H4_FaS8.js +0 -4
  461. package/dist/gherkin-PEA2uy50.js +0 -4
  462. package/dist/groovy-DZzbvCP1.js +0 -4
  463. package/dist/haskell-CExLTzho.js +0 -4
  464. package/dist/haxe-f3pVb8qU.js +0 -5
  465. package/dist/idl-BbWlJ0gk.js +0 -4
  466. package/dist/infoDiagram-HS3SLOUP-BXGbfBss.js +0 -30
  467. package/dist/javascript-eMOhp6Aq.js +0 -4
  468. package/dist/julia-C6w3Rvqb.js +0 -4
  469. package/dist/livescript-ChQl9lD-.js +0 -4
  470. package/dist/lua-CiDvI96j.js +0 -4
  471. package/dist/mathematica-ClVO4k7N.js +0 -4
  472. package/dist/mbox-BEI7DeUg.js +0 -4
  473. package/dist/mermaid-4DMBBIKO-PVrJfEpX.js +0 -6
  474. package/dist/mirc-DwidJ3iH.js +0 -4
  475. package/dist/mllike-Dspdy0xJ.js +0 -6
  476. package/dist/modelica-CIUejP-L.js +0 -4
  477. package/dist/mscgen-BWXU4Omp.js +0 -6
  478. package/dist/mumps-PHFFoPk5.js +0 -4
  479. package/dist/nsis-B7xooKLf.js +0 -4
  480. package/dist/ntriples-DnOgtCzG.js +0 -4
  481. package/dist/octave-Cn5kH_QT.js +0 -4
  482. package/dist/oz-DR-sROpu.js +0 -4
  483. package/dist/pascal-CPKK1zcS.js +0 -4
  484. package/dist/perl-D7FuFdyd.js +0 -4
  485. package/dist/pig-CEXnOAnI.js +0 -4
  486. package/dist/powershell-BKvWab7q.js +0 -4
  487. package/dist/properties-7jnK_vYx.js +0 -4
  488. package/dist/protobuf-4rslMjEN.js +0 -4
  489. package/dist/pug-BVwdEv4r.js +0 -4
  490. package/dist/puppet-iSHg_1Z2.js +0 -4
  491. package/dist/python-tK3wUCn0.js +0 -4
  492. package/dist/q-DP_Dcoox.js +0 -4
  493. package/dist/r-C32wHLYu.js +0 -4
  494. package/dist/react-vega-CFUuchds.js +0 -9
  495. package/dist/rpm-BbDBUfs9.js +0 -5
  496. package/dist/ruby-COfWUiIr.js +0 -4
  497. package/dist/sas-y_Hue2-X.js +0 -4
  498. package/dist/scheme-7jTCqHw8.js +0 -4
  499. package/dist/shell-DAqJWXDk.js +0 -4
  500. package/dist/sieve-EaqnbCO3.js +0 -4
  501. package/dist/smalltalk-DL03YKLJ.js +0 -4
  502. package/dist/sparql-DTA-tQ_q.js +0 -4
  503. package/dist/stateDiagram-v2-4FDKWEC3-BIeUs-Ed.js +0 -29
  504. package/dist/stex-KfRnSHzF.js +0 -4
  505. package/dist/stylus-CfjeFry_.js +0 -4
  506. package/dist/swift-Dl0RRDbH.js +0 -4
  507. package/dist/tcl-wv9O7fLZ.js +0 -4
  508. package/dist/textile-DzMRCBcV.js +0 -4
  509. package/dist/toml-CyIWqgbe.js +0 -4
  510. package/dist/troff-_huin_CY.js +0 -4
  511. package/dist/ttcn-BEiJuYYc.js +0 -4
  512. package/dist/ttcn-cfg-DB6Ksh67.js +0 -4
  513. package/dist/turtle-DzhzGEum.js +0 -4
  514. package/dist/useDeepCompareMemoize-BWUwfh37.js +0 -755
  515. package/dist/useIframeCapabilities-OQaMKgZl.js +0 -46
  516. package/dist/vb-CngKZQHu.js +0 -4
  517. package/dist/vbscript-BV_8nbeM.js +0 -4
  518. package/dist/velocity-IqE7qYKE.js +0 -4
  519. package/dist/verilog-xtyaWTnc.js +0 -4
  520. package/dist/vhdl-BaqXCtf3.js +0 -4
  521. package/dist/webidl-BDB8PTTO.js +0 -4
  522. package/dist/xquery-BIC-qj9Z.js +0 -4
  523. package/dist/yacas-ifv5tftd.js +0 -4
  524. package/dist/z80-B8zOMVNt.js +0 -4
  525. package/src/core/cells/effects.ts +0 -42
  526. package/src/fonts/Fira_Mono/FiraMono-Bold.ttf +0 -0
  527. package/src/fonts/Fira_Mono/FiraMono-Medium.ttf +0 -0
  528. package/src/fonts/Fira_Mono/FiraMono-Regular.ttf +0 -0
  529. package/src/fonts/Lora/Lora-Italic-VariableFont_wght.ttf +0 -0
  530. package/src/fonts/Lora/Lora-VariableFont_wght.ttf +0 -0
  531. package/src/fonts/Lora/static/Lora-Bold.ttf +0 -0
  532. package/src/fonts/Lora/static/Lora-BoldItalic.ttf +0 -0
  533. package/src/fonts/Lora/static/Lora-Italic.ttf +0 -0
  534. package/src/fonts/Lora/static/Lora-Medium.ttf +0 -0
  535. package/src/fonts/Lora/static/Lora-MediumItalic.ttf +0 -0
  536. package/src/fonts/Lora/static/Lora-Regular.ttf +0 -0
  537. package/src/fonts/Lora/static/Lora-SemiBold.ttf +0 -0
  538. package/src/fonts/Lora/static/Lora-SemiBoldItalic.ttf +0 -0
  539. package/src/fonts/PT_Sans/PTSans-Bold.ttf +0 -0
  540. package/src/fonts/PT_Sans/PTSans-BoldItalic.ttf +0 -0
  541. package/src/fonts/PT_Sans/PTSans-Italic.ttf +0 -0
  542. package/src/fonts/PT_Sans/PTSans-Regular.ttf +0 -0
  543. /package/dist/{_arrayReduce-BfFy684W.js → _arrayReduce-6BJAuN54.js} +0 -0
  544. /package/dist/{_baseSlice-BrVixxuc.js → _baseSlice-bwIVgwNq.js} +0 -0
  545. /package/dist/{_hasUnicode-C32WqUu7.js → _hasUnicode-DOFcQHhs.js} +0 -0
  546. /package/dist/{apl-DRxKiEot.js → apl-99A7dLQe.js} +0 -0
  547. /package/dist/{array-D-nrDupM.js → array-B-MVxRIF.js} +0 -0
  548. /package/dist/{asciiarmor-C8HoXFIm.js → asciiarmor-DLEhpFDx.js} +0 -0
  549. /package/dist/{asn1-9Bo0DYT-.js → asn1-CMrcTsT4.js} +0 -0
  550. /package/dist/{asterisk-BsiuGzWq.js → asterisk-BUZwqih-.js} +0 -0
  551. /package/dist/{brainfuck-Db8njC-p.js → brainfuck-ChPt5yBe.js} +0 -0
  552. /package/dist/{chunk-DR5Q36YT-D4q96vNV.js → chunk-DR5Q36YT-CP69aZS_.js} +0 -0
  553. /package/dist/{click-outside-container-CKfwEZqH.js → click-outside-container-DB_bTXRG.js} +0 -0
  554. /package/dist/{clike-CFhUNtI5.js → clike-CE0fXfM_.js} +0 -0
  555. /package/dist/{clojure-CX7oovsp.js → clojure-QkBEMU-g.js} +0 -0
  556. /package/dist/{clsx-D2KVTYnW.js → clsx-yW_RAw0K.js} +0 -0
  557. /package/dist/{cmake-C29AR2kk.js → cmake-CU1jX7Mo.js} +0 -0
  558. /package/dist/{cobol-CNkuRW9i.js → cobol-DMOKzzky.js} +0 -0
  559. /package/dist/{coffeescript-BJAbfGam.js → coffeescript-DjnjLyfk.js} +0 -0
  560. /package/dist/{colors-6nB_pSln.js → colors-Cn2p_FA3.js} +0 -0
  561. /package/dist/{common-keywords-BAkLFdud.js → common-keywords-hbLeU7VU.js} +0 -0
  562. /package/dist/{commonlisp-BTNhj2l9.js → commonlisp-CYd9iOSe.js} +0 -0
  563. /package/dist/{crystal-CZc0nIm9.js → crystal-Dy55yoYG.js} +0 -0
  564. /package/dist/{css-L2-0OTXc.js → css-CNU8w3HJ.js} +0 -0
  565. /package/dist/{cypher-Dnc6MXl0.js → cypher-q47DGzK7.js} +0 -0
  566. /package/dist/{cytoscape.esm-BXzSsA6N.js → cytoscape.esm-WbbDoCfu.js} +0 -0
  567. /package/dist/{d-C6X9iIga.js → d-jEkaLvxX.js} +0 -0
  568. /package/dist/{defaultLocale-CfQ4kBaV.js → defaultLocale-Dr6Bz4JK.js} +0 -0
  569. /package/dist/{defaultLocale-Bklbu-Tp.js → defaultLocale-I3_GfJ4U.js} +0 -0
  570. /package/dist/{diff-ZzKinYqY.js → diff-vb2-unFN.js} +0 -0
  571. /package/dist/{dist-DOoqn-VL.js → dist-C4EV3aDt.js} +0 -0
  572. /package/dist/{dist-Bymy0kEH.js → dist-C89sHDXk.js} +0 -0
  573. /package/dist/{dtd-CytEpkAo.js → dtd-C9kR-bXa.js} +0 -0
  574. /package/dist/{duckdb-keywords-C1WxmSfG.js → duckdb-keywords-CZ_ZTscu.js} +0 -0
  575. /package/dist/{dylan-CZByFBEQ.js → dylan-BLckrK-V.js} +0 -0
  576. /package/dist/{ebnf-BF2FOt-m.js → ebnf-WEXPLEWb.js} +0 -0
  577. /package/dist/{ecl-Cp7L1F5B.js → ecl-CEsf6XVg.js} +0 -0
  578. /package/dist/{eiffel-C66yjnFL.js → eiffel-2KGZNzx6.js} +0 -0
  579. /package/dist/{elm-DtHo-73e.js → elm-D2s3K5wF.js} +0 -0
  580. /package/dist/{emotion-is-prop-valid.esm-DtW2o230.js → emotion-is-prop-valid.esm-CflmeIys.js} +0 -0
  581. /package/dist/{erlang-C_sj44mF.js → erlang-0PMFOndk.js} +0 -0
  582. /package/dist/{esm-BWftfC-A.js → esm-Bb_hbWan.js} +0 -0
  583. /package/dist/{fcl-BhLcvRo_.js → fcl-B_Gv5Jfx.js} +0 -0
  584. /package/dist/{forth-CIDHh56T.js → forth-DG89iUsu.js} +0 -0
  585. /package/dist/{fortran-BQrDVXRU.js → fortran-ytKsAVvu.js} +0 -0
  586. /package/dist/{gas-D4HQPB0Q.js → gas-Cg2Fm0N2.js} +0 -0
  587. /package/dist/{gherkin-UB2gJHdT.js → gherkin-B87FEnZ-.js} +0 -0
  588. /package/dist/{groovy-DVz6jkOx.js → groovy-Dcs08AWD.js} +0 -0
  589. /package/dist/{haskell-CpUdAPCz.js → haskell-cwkOuhx6.js} +0 -0
  590. /package/dist/{haxe-DCV5_cqD.js → haxe-DWEo4q10.js} +0 -0
  591. /package/dist/{http-C_TDb8VX.js → http-Dc2fv19V.js} +0 -0
  592. /package/dist/{idl-D7WCIgHw.js → idl-WWQwDcRV.js} +0 -0
  593. /package/dist/{init-Ci8VD8ZH.js → init-D-g0ONX1.js} +0 -0
  594. /package/dist/{invariant-D9QLJ4SZ.js → invariant-Ctm_8TNZ.js} +0 -0
  595. /package/dist/{isArrayLikeObject-BrYl-ETg.js → isArrayLikeObject-C-hFPChh.js} +0 -0
  596. /package/dist/{javascript-B2Rn0Lmd.js → javascript-BeR74dxD.js} +0 -0
  597. /package/dist/{jsx-runtime-CTBg5pdT.js → jsx-runtime-9hcJiI23.js} +0 -0
  598. /package/dist/{julia-ApprtEaw.js → julia-UlvCUYGL.js} +0 -0
  599. /package/dist/{katex-Bk_FvVSR.js → katex-B7pMJpE0.js} +0 -0
  600. /package/dist/{livescript-BMLIlM7C.js → livescript-GPmFcmYV.js} +0 -0
  601. /package/dist/{lua-DdDaW3tC.js → lua-DYoT_0zM.js} +0 -0
  602. /package/dist/{main-Tj_-QTyF.js → main-sxFlUO_N.js} +0 -0
  603. /package/dist/{math-HUZifhTs.js → math-BYK36kWZ.js} +0 -0
  604. /package/dist/{mathematica-PnNN7c2Z.js → mathematica-DSFIQlbG.js} +0 -0
  605. /package/dist/{mbox-B84OtHBK.js → mbox-ej8lFMdL.js} +0 -0
  606. /package/dist/{mirc-BVWXJxIq.js → mirc-CAdIdvHQ.js} +0 -0
  607. /package/dist/{mllike-BawXWupH.js → mllike-CjTB1lHF.js} +0 -0
  608. /package/dist/{modelica-C8-X4Hf_.js → modelica-BB68FYMa.js} +0 -0
  609. /package/dist/{mscgen-BOM6dDj8.js → mscgen-BkbzgGGI.js} +0 -0
  610. /package/dist/{mumps-DQOY8n05.js → mumps-Cu-28E9F.js} +0 -0
  611. /package/dist/{nginx-DkMgA__9.js → nginx-ComVAAGN.js} +0 -0
  612. /package/dist/{node-sql-parser-D53LM_7b.js → node-sql-parser-DNGGJ-Rw.js} +0 -0
  613. /package/dist/{ntriples-DU8VrXdW.js → ntriples-D9cQiZxZ.js} +0 -0
  614. /package/dist/{octave-BzTIBsQ8.js → octave-BvtAnPX0.js} +0 -0
  615. /package/dist/{oz-DKFcZsoi.js → oz-COaVHk2E.js} +0 -0
  616. /package/dist/{pascal-DHBZ15pT.js → pascal-BFpqVD2x.js} +0 -0
  617. /package/dist/{path-BVI7RNUv.js → path-Du6n3sOU.js} +0 -0
  618. /package/dist/{perl-75NMI3w0.js → perl-DaiORxHP.js} +0 -0
  619. /package/dist/{pig-B-HY1fo_.js → pig-DFzRhmsF.js} +0 -0
  620. /package/dist/{powershell-DEH22U53.js → powershell-BG2LQNKN.js} +0 -0
  621. /package/dist/{properties-B1MzBoJC.js → properties-CqJJR5QY.js} +0 -0
  622. /package/dist/{protobuf-Dr14KV0p.js → protobuf-WwDYV1yY.js} +0 -0
  623. /package/dist/{puppet-C4z38l7v.js → puppet-QNY3w_uN.js} +0 -0
  624. /package/dist/{purify.es-DGenX2XH.js → purify.es-Co_dANLh.js} +0 -0
  625. /package/dist/{python-D2L7Nknt.js → python-4QrQ3Ugi.js} +0 -0
  626. /package/dist/{q-PxipHfgS.js → q-DhwXuxE2.js} +0 -0
  627. /package/dist/{r-CEMMu_Tf.js → r-Df-nkR25.js} +0 -0
  628. /package/dist/{range-BToS7LsA.js → range-Bn3no95s.js} +0 -0
  629. /package/dist/{react-dom-CqtLRVZP.js → react-dom-BKwCWYPW.js} +0 -0
  630. /package/dist/{rpm-D3xyahkR.js → rpm-Cokue07s.js} +0 -0
  631. /package/dist/{ruby-DwEkwdiu.js → ruby-DrYcL3qF.js} +0 -0
  632. /package/dist/{sas-L1W0BRft.js → sas-CoiPirA5.js} +0 -0
  633. /package/dist/{scheme-CTybTrX0.js → scheme-CwFLjzHv.js} +0 -0
  634. /package/dist/{shell-BSx3LZnu.js → shell-BFV-R24I.js} +0 -0
  635. /package/dist/{sieve-BjUfbv-6.js → sieve-CxwXF5T9.js} +0 -0
  636. /package/dist/{simple-mode-IPZGFbI6.js → simple-mode-DTaJtKPt.js} +0 -0
  637. /package/dist/{smalltalk-BlzuYrMv.js → smalltalk-QivVOCtX.js} +0 -0
  638. /package/dist/{solr-Cj_9RM4d.js → solr-DTkyqJ-Z.js} +0 -0
  639. /package/dist/{sparql-BXKjQ0cK.js → sparql-nKsFk8j7.js} +0 -0
  640. /package/dist/{spreadsheet-CifI10GO.js → spreadsheet-CER0raqY.js} +0 -0
  641. /package/dist/{sql-B0bFyY1c.js → sql-ByOoEONQ.js} +0 -0
  642. /package/dist/{stex-BIsgBmK4.js → stex-7yEw16Ww.js} +0 -0
  643. /package/dist/{stylus-CqrLLVnG.js → stylus-BLKQAycn.js} +0 -0
  644. /package/dist/{swift-DIqvj3_G.js → swift-CJoKqiKj.js} +0 -0
  645. /package/dist/{tcl-B8bOIGVK.js → tcl-YTeYFNUc.js} +0 -0
  646. /package/dist/{textile-DZsjavD_.js → textile-C6rKQqMQ.js} +0 -0
  647. /package/dist/{tiddlywiki-BbGdvEjx.js → tiddlywiki-Cr9xyOY1.js} +0 -0
  648. /package/dist/{tiki-BYesmRDo.js → tiki-D5JONyfZ.js} +0 -0
  649. /package/dist/{timer-CPsmIOdm.js → timer-D7JVdX9U.js} +0 -0
  650. /package/dist/{toml-Uc7m08nl.js → toml-DxlPGbRy.js} +0 -0
  651. /package/dist/{treemap-DMn4tIJ7.js → treemap-qFGzn7xk.js} +0 -0
  652. /package/dist/{troff-GEl5wcXR.js → troff-DFCfH7Ku.js} +0 -0
  653. /package/dist/{ttcn-pr4FDOLT.js → ttcn-DAW-ERVP.js} +0 -0
  654. /package/dist/{ttcn-cfg-dZQ_fWTH.js → ttcn-cfg-CpJ8b7EN.js} +0 -0
  655. /package/dist/{turtle-TPRDOknA.js → turtle-BneV2f8L.js} +0 -0
  656. /package/dist/{vb-BJUAeTYr.js → vb-D973Vxxh.js} +0 -0
  657. /package/dist/{vbscript-CcJ6Z3ic.js → vbscript-Dckaq3YO.js} +0 -0
  658. /package/dist/{velocity-pq4ZMzU3.js → velocity-DKty-GUC.js} +0 -0
  659. /package/dist/{verilog-timMNjHt.js → verilog-aNaK_biA.js} +0 -0
  660. /package/dist/{vhdl-DYFbVKNm.js → vhdl-CQuehnQy.js} +0 -0
  661. /package/dist/{webidl-pue9oqnb.js → webidl-Bhg8vaMr.js} +0 -0
  662. /package/dist/{xquery-DeItGynK.js → xquery-D2q16GaM.js} +0 -0
  663. /package/dist/{yacas-By2Qrjba.js → yacas-DHGOHnNa.js} +0 -0
  664. /package/dist/{z80-C7iLsyPC.js → z80-BPhTmO22.js} +0 -0
@@ -5,8 +5,12 @@ import { useRef } from "react";
5
5
  import { useErrorBoundary } from "react-error-boundary";
6
6
  import { toast } from "@/components/ui/use-toast";
7
7
  import { getNotebook, useCellActions } from "@/core/cells/cells";
8
+ import { applyTransactionChanges } from "@/core/cells/document-changes";
8
9
  import { AUTOCOMPLETER } from "@/core/codemirror/completion/Autocompleter";
9
- import type { NotificationPayload } from "@/core/kernel/messages";
10
+ import type {
11
+ NotificationMessageData,
12
+ NotificationPayload,
13
+ } from "@/core/kernel/messages";
10
14
  import { useConnectionTransport } from "@/core/websocket/useWebSocket";
11
15
  import { renderHTML } from "@/plugins/core/RenderHTML";
12
16
  import {
@@ -24,7 +28,7 @@ import { Logger } from "@/utils/Logger";
24
28
  import { reloadSafe } from "@/utils/reload-safe";
25
29
  import { useAlertActions } from "../alerts/state";
26
30
  import { cacheInfoAtom } from "../cache/requests";
27
- import { type CellId, SCRATCH_CELL_ID, type UIElementId } from "../cells/ids";
31
+ import { SCRATCH_CELL_ID } from "../cells/ids";
28
32
  import { useRunsActions } from "../cells/runs";
29
33
  import { focusAndScrollCellOutputIntoView } from "../cells/scrollCellIntoView";
30
34
  import type { CellData } from "../cells/types";
@@ -33,6 +37,7 @@ import { useSetAppConfig } from "../config/config";
33
37
  import { useDataSourceActions } from "../datasets/data-source-connections";
34
38
  import type { ConnectionName } from "../datasets/engines";
35
39
  import {
40
+ PreviewSQLSchemaList,
36
41
  PreviewSQLTable,
37
42
  PreviewSQLTableList,
38
43
  ValidateSQL,
@@ -92,7 +97,18 @@ export function useMarimoKernelConnection(opts: {
92
97
  const { autoInstantiate, sessionId, setCells } = opts;
93
98
  const { showBoundary } = useErrorBoundary();
94
99
 
95
- const { handleCellMessage, setCellCodes, setCellIds } = useCellActions();
100
+ const { handleCellMessage } = useCellActions();
101
+ const actionsWithoutMiddleware = useCellActions({ skipMiddleware: true });
102
+
103
+ const handleDocumentTransaction = (
104
+ transaction: NotificationMessageData<"notebook-document-transaction">["transaction"],
105
+ ) => {
106
+ applyTransactionChanges(
107
+ transaction.changes,
108
+ actionsWithoutMiddleware,
109
+ () => getNotebook().cellIds.inOrderIds,
110
+ );
111
+ };
96
112
  const { addCellNotification } = useRunsActions();
97
113
  const setKernelState = useSetAtom(kernelStateAtom);
98
114
  const setAppConfig = useSetAppConfig();
@@ -153,7 +169,7 @@ export function useMarimoKernelConnection(opts: {
153
169
  if (uiElement) {
154
170
  const buffers = safeExtractSetUIElementMessageBuffers(msg.data);
155
171
  UI_ELEMENT_REGISTRY.broadcastMessage(
156
- uiElement as UIElementId,
172
+ uiElement,
157
173
  msg.data.message,
158
174
  buffers,
159
175
  );
@@ -173,14 +189,11 @@ export function useMarimoKernelConnection(opts: {
173
189
  AUTOCOMPLETER.resolve(msg.data.completion_id as RequestId, msg.data);
174
190
  return;
175
191
  case "function-call-result":
176
- FUNCTIONS_REGISTRY.resolve(
177
- msg.data.function_call_id as RequestId,
178
- msg.data,
179
- );
192
+ FUNCTIONS_REGISTRY.resolve(msg.data.function_call_id, msg.data);
180
193
  return;
181
194
  case "cell-op": {
182
195
  handleCellNotificationeration(msg.data, handleCellMessage);
183
- const cellData = getNotebook().cellData[msg.data.cell_id as CellId];
196
+ const cellData = getNotebook().cellData[msg.data.cell_id];
184
197
  if (!cellData) {
185
198
  return;
186
199
  }
@@ -195,8 +208,8 @@ export function useMarimoKernelConnection(opts: {
195
208
  setVariables(
196
209
  msg.data.variables.map((v) => ({
197
210
  name: v.name as VariableName,
198
- declaredBy: v.declared_by as CellId[],
199
- usedBy: v.used_by as CellId[],
211
+ declaredBy: v.declared_by,
212
+ usedBy: v.used_by,
200
213
  })),
201
214
  );
202
215
  filterDatasetsFromVariables(
@@ -271,16 +284,19 @@ export function useMarimoKernelConnection(opts: {
271
284
  addColumnPreview(msg.data);
272
285
  return;
273
286
  case "sql-table-preview":
274
- PreviewSQLTable.resolve(msg.data.request_id as RequestId, msg.data);
287
+ PreviewSQLTable.resolve(msg.data.request_id, msg.data);
275
288
  return;
276
289
  case "sql-table-list-preview":
277
- PreviewSQLTableList.resolve(msg.data.request_id as RequestId, msg.data);
290
+ PreviewSQLTableList.resolve(msg.data.request_id, msg.data);
291
+ return;
292
+ case "sql-schema-list-preview":
293
+ PreviewSQLSchemaList.resolve(msg.data.request_id, msg.data);
278
294
  return;
279
295
  case "validate-sql-result":
280
296
  ValidateSQL.resolve(msg.data.request_id as RequestId, msg.data);
281
297
  return;
282
298
  case "secret-keys-result":
283
- SECRETS_REGISTRY.resolve(msg.data.request_id as RequestId, msg.data);
299
+ SECRETS_REGISTRY.resolve(msg.data.request_id, msg.data);
284
300
  return;
285
301
  case "cache-info":
286
302
  setCacheInfo(msg.data);
@@ -310,19 +326,10 @@ export function useMarimoKernelConnection(opts: {
310
326
  return;
311
327
 
312
328
  case "focus-cell":
313
- focusAndScrollCellOutputIntoView(msg.data.cell_id as CellId);
314
- return;
315
- case "update-cell-codes":
316
- setCellCodes({
317
- codes: msg.data.codes,
318
- ids: msg.data.cell_ids as CellId[],
319
- codeIsStale: msg.data.code_is_stale,
320
- names: msg.data.names,
321
- configs: msg.data.configs,
322
- });
329
+ focusAndScrollCellOutputIntoView(msg.data.cell_id);
323
330
  return;
324
- case "update-cell-ids":
325
- setCellIds({ cellIds: msg.data.cell_ids as CellId[] });
331
+ case "notebook-document-transaction":
332
+ handleDocumentTransaction(msg.data.transaction);
326
333
  return;
327
334
  default:
328
335
  logNever(msg.data);
@@ -6,7 +6,7 @@ see frontend/src/core/static/download-html.ts */
6
6
  font-style: normal;
7
7
  font-weight: 400;
8
8
  font-display: block;
9
- src: url("../../fonts/Lora/Lora-VariableFont_wght.ttf") format("truetype");
9
+ src: url("../../fonts/Lora/Lora-VariableFont_wght.woff2") format("woff2");
10
10
  }
11
11
 
12
12
  @font-face {
@@ -14,7 +14,7 @@ see frontend/src/core/static/download-html.ts */
14
14
  font-style: normal;
15
15
  font-weight: 400;
16
16
  font-display: block;
17
- src: url("../../fonts/PT_Sans/PTSans-Regular.ttf") format("truetype");
17
+ src: url("../../fonts/PT_Sans/PTSans-Regular.woff2") format("woff2");
18
18
  }
19
19
 
20
20
  @font-face {
@@ -22,7 +22,7 @@ see frontend/src/core/static/download-html.ts */
22
22
  font-style: normal;
23
23
  font-weight: 700;
24
24
  font-display: block;
25
- src: url("../../fonts/PT_Sans/PTSans-Bold.ttf") format("truetype");
25
+ src: url("../../fonts/PT_Sans/PTSans-Bold.woff2") format("woff2");
26
26
  }
27
27
 
28
28
  @font-face {
@@ -30,7 +30,7 @@ see frontend/src/core/static/download-html.ts */
30
30
  font-style: normal;
31
31
  font-weight: 400;
32
32
  font-display: block;
33
- src: url("../../fonts/Fira_Mono/FiraMono-Regular.ttf") format("truetype");
33
+ src: url("../../fonts/Fira_Mono/FiraMono-Regular.woff2") format("woff2");
34
34
  }
35
35
 
36
36
  @font-face {
@@ -38,7 +38,7 @@ see frontend/src/core/static/download-html.ts */
38
38
  font-style: normal;
39
39
  font-weight: 500;
40
40
  font-display: block;
41
- src: url("../../fonts/Fira_Mono/FiraMono-Medium.ttf") format("truetype");
41
+ src: url("../../fonts/Fira_Mono/FiraMono-Medium.woff2") format("woff2");
42
42
  }
43
43
 
44
44
  @font-face {
@@ -46,5 +46,5 @@ see frontend/src/core/static/download-html.ts */
46
46
  font-style: normal;
47
47
  font-weight: 700;
48
48
  font-display: block;
49
- src: url("../../fonts/Fira_Mono/FiraMono-Bold.ttf") format("truetype");
49
+ src: url("../../fonts/Fira_Mono/FiraMono-Bold.woff2") format("woff2");
50
50
  }
@@ -3,50 +3,15 @@
3
3
  /*
4
4
  This allows you to create a basic tooltip using the data-tooltip attribute
5
5
  e.g. <span data-tooltip="Hello, World!">Hover me</span>
6
+
7
+ The tooltip content is rendered via the React Tooltip component (Radix UI portal),
8
+ which prevents clipping inside containers with overflow:hidden.
9
+ See: RenderHTML.tsx -> wrapTooltipTargets
6
10
  */
7
11
 
8
12
  .markdown {
9
13
  [data-tooltip] {
10
- position: relative;
11
14
  cursor: pointer;
12
15
  text-decoration: underline dotted;
13
16
  }
14
-
15
- [data-tooltip]::before,
16
- [data-tooltip]::after {
17
- visibility: hidden;
18
- opacity: 0;
19
- pointer-events: none;
20
- transition: all 0.2s ease;
21
- position: absolute;
22
- z-index: 1000;
23
- left: 50%;
24
- transform: translateX(-50%);
25
- }
26
-
27
- [data-tooltip]::before {
28
- content: attr(data-tooltip);
29
- bottom: calc(100% + 10px);
30
- padding: 5px 10px;
31
- width: max-content;
32
- max-width: 300px;
33
- border-radius: 6px;
34
- background-color: ;
35
- text-align: center;
36
- line-height: 1.4;
37
- white-space: pre-wrap;
38
-
39
- @apply bg-background text-foreground shadow-md border text-base;
40
- }
41
-
42
- [data-tooltip]:hover::before,
43
- [data-tooltip]:hover::after {
44
- visibility: visible;
45
- opacity: 1;
46
- }
47
-
48
- [data-tooltip]:hover::before {
49
- /* stylelint-disable-next-line unit-allowed-list */
50
- transform: translateX(-50%) translateY(10px);
51
- }
52
17
  }
package/src/css/md.css CHANGED
@@ -12,6 +12,16 @@
12
12
  margin-block-end: 0;
13
13
  }
14
14
 
15
+ .markdown ul li,
16
+ .markdown ol li {
17
+ margin-block: 0;
18
+ }
19
+
20
+ /* Restore browser default bullet cycling that Tailwind Typography overrides */
21
+ .markdown ul ul {
22
+ list-style-type: revert;
23
+ }
24
+
15
25
  .markdown h1 {
16
26
  text-align: start;
17
27
  }
@@ -14,6 +14,7 @@ import React, {
14
14
  } from "react";
15
15
  import { CopyClipboardIcon } from "@/components/icons/copy-icon";
16
16
  import { QueryParamPreservingLink } from "@/components/ui/query-param-preserving-link";
17
+ import { Tooltip } from "@/components/ui/tooltip";
17
18
  import { DocHoverTarget } from "@/core/documentation/DocHoverTarget";
18
19
  import { sanitizeHtml, useSanitizeHtml } from "./sanitize";
19
20
 
@@ -160,6 +161,21 @@ const wrapDocHoverTargets: TransformFn = (
160
161
  }
161
162
  };
162
163
 
164
+ // Wrap elements with data-tooltip attribute in a Tooltip component.
165
+ // This renders the tooltip in a portal (top layer), fixing clipping inside
166
+ // containers with overflow:hidden (e.g. grid cells).
167
+ const wrapTooltipTargets: TransformFn = (
168
+ reactNode: ReactNode,
169
+ domNode: DOMNode,
170
+ ): JSX.Element | undefined => {
171
+ if (domNode instanceof Element && domNode.attribs?.["data-tooltip"]) {
172
+ const tooltipContent = domNode.attribs["data-tooltip"];
173
+ return (
174
+ <Tooltip content={tooltipContent}>{reactNode as JSX.Element}</Tooltip>
175
+ );
176
+ }
177
+ };
178
+
163
179
  const CopyableCode = ({ children }: { children: ReactNode }) => {
164
180
  const ref = useRef<HTMLDivElement>(null);
165
181
  return (
@@ -239,6 +255,7 @@ function parseHtml({
239
255
  addCopyButtonToCodehilite,
240
256
  preserveQueryParamsInAnchorLinks,
241
257
  wrapDocHoverTargets,
258
+ wrapTooltipTargets,
242
259
  removeWrappingBodyTags,
243
260
  removeWrappingHtmlTags,
244
261
  ];
@@ -197,6 +197,51 @@ describe("parseHtml", () => {
197
197
  });
198
198
  });
199
199
 
200
+ describe("wrapTooltipTargets", () => {
201
+ test("data-tooltip wraps element in Tooltip component", () => {
202
+ const html = '<span data-tooltip="Hello world">Hover me</span>';
203
+ expect(parseHtml({ html })).toMatchInlineSnapshot(`
204
+ <Tooltip
205
+ content="Hello world"
206
+ >
207
+ <span
208
+ data-tooltip="Hello world"
209
+ >
210
+ Hover me
211
+ </span>
212
+ </Tooltip>
213
+ `);
214
+ });
215
+
216
+ test("element without data-tooltip is not wrapped", () => {
217
+ const html = "<span>No tooltip</span>";
218
+ expect(parseHtml({ html })).toMatchInlineSnapshot(`
219
+ <span>
220
+ No tooltip
221
+ </span>
222
+ `);
223
+ });
224
+
225
+ test("data-tooltip on nested element wraps only that element", () => {
226
+ const html = '<p>Outer <span data-tooltip="tip">inner</span> text</p>';
227
+ expect(parseHtml({ html })).toMatchInlineSnapshot(`
228
+ <p>
229
+ Outer
230
+ <Tooltip
231
+ content="tip"
232
+ >
233
+ <span
234
+ data-tooltip="tip"
235
+ >
236
+ inner
237
+ </span>
238
+ </Tooltip>
239
+ text
240
+ </p>
241
+ `);
242
+ });
243
+ });
244
+
200
245
  describe("parseHtml with < nad >", () => {
201
246
  const html =
202
247
  'thread <unnamed> panicked at "assertion failed: `(left == right)`"';
@@ -2,28 +2,35 @@
2
2
  import DOMPurify, { type Config } from "dompurify";
3
3
 
4
4
  // preserve target=_blank https://github.com/cure53/DOMPurify/issues/317#issuecomment-912474068
5
- const TEMPORARY_ATTRIBUTE = "data-temp-href-target";
6
- DOMPurify.addHook("beforeSanitizeAttributes", (node) => {
7
- if (node.tagName === "A") {
8
- if (!node.hasAttribute("target")) {
9
- node.setAttribute("target", "_self");
10
- }
5
+ // Guard for non-browser environments (e.g. Node.js in the marimo-lsp extension)
6
+ // where `document` is not available.
7
+ if (typeof document !== "undefined") {
8
+ const TEMPORARY_ATTRIBUTE = "data-temp-href-target";
9
+ DOMPurify.addHook("beforeSanitizeAttributes", (node) => {
10
+ if (node.tagName === "A") {
11
+ if (!node.hasAttribute("target")) {
12
+ node.setAttribute("target", "_self");
13
+ }
11
14
 
12
- if (node.hasAttribute("target")) {
13
- node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute("target") || "");
15
+ if (node.hasAttribute("target")) {
16
+ node.setAttribute(
17
+ TEMPORARY_ATTRIBUTE,
18
+ node.getAttribute("target") || "",
19
+ );
20
+ }
14
21
  }
15
- }
16
- });
22
+ });
17
23
 
18
- DOMPurify.addHook("afterSanitizeAttributes", (node) => {
19
- if (node.tagName === "A" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {
20
- node.setAttribute("target", node.getAttribute(TEMPORARY_ATTRIBUTE) || "");
21
- node.removeAttribute(TEMPORARY_ATTRIBUTE);
22
- if (node.getAttribute("target") === "_blank") {
23
- node.setAttribute("rel", "noopener noreferrer");
24
+ DOMPurify.addHook("afterSanitizeAttributes", (node) => {
25
+ if (node.tagName === "A" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {
26
+ node.setAttribute("target", node.getAttribute(TEMPORARY_ATTRIBUTE) || "");
27
+ node.removeAttribute(TEMPORARY_ATTRIBUTE);
28
+ if (node.getAttribute("target") === "_blank") {
29
+ node.setAttribute("rel", "noopener noreferrer");
30
+ }
24
31
  }
25
- }
26
- });
32
+ });
33
+ }
27
34
 
28
35
  /**
29
36
  * This removes script tags, form tags, iframe tags, and other potentially dangerous tags
@@ -53,6 +53,7 @@ import {
53
53
  } from "@/components/data-table/types";
54
54
  import {
55
55
  getPageIndexForRow,
56
+ loadTableAndRawData,
56
57
  loadTableData,
57
58
  } from "@/components/data-table/utils";
58
59
  import { ErrorBoundary } from "@/components/editor/boundary/ErrorBoundary";
@@ -174,6 +175,7 @@ const valueCounts: z.ZodType<ValueCounts> = z.array(
174
175
  interface Data<T> {
175
176
  label: string | null;
176
177
  data: TableData<T>;
178
+ rawData?: TableData<T> | null;
177
179
  totalRows: number | TooManyRows;
178
180
  pagination: boolean;
179
181
  pageSize: number;
@@ -221,6 +223,7 @@ type DataTableFunctions = {
221
223
  total_rows: number | TooManyRows;
222
224
  cell_styles?: CellStyleState | null;
223
225
  cell_hover_texts?: Record<string, Record<string, string | null>> | null;
226
+ raw_data?: TableData<T> | null;
224
227
  }>;
225
228
  get_data_url?: GetDataUrl;
226
229
  get_row_ids?: GetRowIds;
@@ -243,6 +246,7 @@ export const DataTablePlugin = createPlugin<S>("marimo-table")
243
246
  ]),
244
247
  label: z.string().nullable(),
245
248
  data: z.union([z.string(), z.array(z.object({}).passthrough())]),
249
+ rawData: z.union([z.string(), z.array(z.looseObject({}))]).nullish(),
246
250
  totalRows: z.union([z.number(), z.literal(TOO_MANY_ROWS)]),
247
251
  pagination: z.boolean().default(false),
248
252
  pageSize: z.number().default(10),
@@ -327,6 +331,7 @@ export const DataTablePlugin = createPlugin<S>("marimo-table")
327
331
  )
328
332
  .nullable(),
329
333
  cell_hover_texts: cellHoverTextSchema.nullable(),
334
+ raw_data: z.union([z.string(), z.array(z.looseObject({}))]).nullish(),
330
335
  }),
331
336
  ),
332
337
  get_row_ids: rpc.input(z.object({}).passthrough()).output(
@@ -529,17 +534,23 @@ export const LoadingDataTableComponent = memo(
529
534
  // Data loading
530
535
  const { data, error, isPending, isFetching } = useAsyncData<{
531
536
  rows: T[];
537
+ rawRows?: T[];
532
538
  totalRows: number | TooManyRows;
533
539
  cellStyles: CellStyleState | undefined | null;
534
540
  cellHoverTexts?: Record<string, Record<string, string | null>> | null;
535
541
  }>(async () => {
536
542
  // If there is no data, return an empty array
537
543
  if (props.totalRows === 0) {
538
- return { rows: Arrays.EMPTY, totalRows: 0, cellStyles: {} };
544
+ return {
545
+ rows: Arrays.EMPTY,
546
+ totalRows: 0,
547
+ cellStyles: {},
548
+ };
539
549
  }
540
550
 
541
551
  // Table data is a url string or an array of objects
542
552
  let tableData = props.data;
553
+ let rawTableData: TableData<T> | undefined | null = props.rawData;
543
554
  let totalRows = props.totalRows;
544
555
  let cellStyles = props.cellStyles;
545
556
  let cellHoverTexts = props.cellHoverTexts;
@@ -587,13 +598,19 @@ export const LoadingDataTableComponent = memo(
587
598
  } else {
588
599
  const searchResults = await searchResultsPromise;
589
600
  tableData = searchResults.data;
601
+ rawTableData = searchResults.raw_data;
590
602
  totalRows = searchResults.total_rows;
591
603
  cellStyles = searchResults.cell_styles || {};
592
604
  cellHoverTexts = searchResults.cell_hover_texts || {};
593
605
  }
594
- tableData = await loadTableData(tableData);
606
+ const [data, rawData] = await loadTableAndRawData(
607
+ tableData,
608
+ rawTableData,
609
+ );
610
+ tableData = data;
595
611
  return {
596
612
  rows: tableData,
613
+ rawRows: rawData,
597
614
  totalRows: totalRows,
598
615
  cellStyles,
599
616
  cellHoverTexts,
@@ -715,6 +732,7 @@ export const LoadingDataTableComponent = memo(
715
732
  <DataTableComponent
716
733
  {...props}
717
734
  data={data?.rows ?? Arrays.EMPTY}
735
+ rawData={data?.rawRows}
718
736
  columnSummaries={columnSummaries}
719
737
  sorting={sorting}
720
738
  setSorting={setSorting}
@@ -766,6 +784,7 @@ LoadingDataTableComponent.displayName = "LoadingDataTableComponent";
766
784
  const DataTableComponent = ({
767
785
  label,
768
786
  data,
787
+ rawData,
769
788
  totalRows,
770
789
  maxColumns,
771
790
  pagination,
@@ -814,6 +833,7 @@ const DataTableComponent = ({
814
833
  }: DataTableProps<unknown> &
815
834
  DataTableSearchProps & {
816
835
  data: unknown[];
836
+ rawData?: unknown[];
817
837
  columnSummaries?: ColumnSummaries;
818
838
  getRow: (rowIdx: number) => Promise<GetRowResult>;
819
839
  }): JSX.Element => {
@@ -854,10 +874,35 @@ const DataTableComponent = ({
854
874
  return memoizedUnclampedFieldTypes.slice(0, maxColumns);
855
875
  }, [maxColumns, memoizedUnclampedFieldTypes]);
856
876
 
877
+ // Compute max fractional digits per numeric column for consistent formatting.
878
+ const computedFractionDigits = useMemo(() => {
879
+ const result: Record<string, number> = {};
880
+ if (data && data.length > 0) {
881
+ for (const [colName, types] of memoizedClampedFieldTypes) {
882
+ if (types[0] === "number") {
883
+ let maxDecimals = 0;
884
+ for (const row of data) {
885
+ const val = (row as Record<string, unknown>)[colName];
886
+ if (typeof val === "number" && Number.isFinite(val)) {
887
+ const str = String(val);
888
+ const dotIdx = str.indexOf(".");
889
+ if (dotIdx !== -1) {
890
+ maxDecimals = Math.max(maxDecimals, str.length - dotIdx - 1);
891
+ }
892
+ }
893
+ }
894
+ result[colName] = maxDecimals;
895
+ }
896
+ }
897
+ }
898
+ return result;
899
+ }, [data, memoizedClampedFieldTypes]);
900
+
857
901
  const memoizedRowHeaders = useDeepCompareMemoize(rowHeaders);
858
902
  const memoizedTextJustifyColumns = useDeepCompareMemoize(textJustifyColumns);
859
903
  const memoizedWrappedColumns = useDeepCompareMemoize(wrappedColumns);
860
904
  const memoizedChartSpecModel = useDeepCompareMemoize(chartSpecModel);
905
+ const fractionDigitsByColumn = useDeepCompareMemoize(computedFractionDigits);
861
906
  const shownColumns = memoizedClampedFieldTypes.length;
862
907
 
863
908
  // If the field types are not set, we don't show them
@@ -878,6 +923,7 @@ const DataTableComponent = ({
878
923
  // Only show data types if they are explicitly set
879
924
  showDataTypes: showDataTypes,
880
925
  calculateTopKRows: calculate_top_k_rows,
926
+ fractionDigitsByColumn: fractionDigitsByColumn,
881
927
  }),
882
928
  [
883
929
  selection,
@@ -889,6 +935,7 @@ const DataTableComponent = ({
889
935
  memoizedWrappedColumns,
890
936
  headerTooltip,
891
937
  calculate_top_k_rows,
938
+ fractionDigitsByColumn,
892
939
  ],
893
940
  );
894
941
 
@@ -1015,6 +1062,7 @@ const DataTableComponent = ({
1015
1062
  <Labeled label={label} align="top" fullWidth={true}>
1016
1063
  <DataTable
1017
1064
  data={data}
1065
+ rawData={rawData}
1018
1066
  columns={columns}
1019
1067
  className={className}
1020
1068
  maxHeight={maxHeight}
@@ -152,9 +152,7 @@ const SliderComponent = ({
152
152
  nextValue = Number(start);
153
153
  }
154
154
  setInternalValue(nextValue);
155
- if (!debounce) {
156
- setValue(nextValue);
157
- }
155
+ setValue(nextValue);
158
156
  }}
159
157
  minValue={start}
160
158
  maxValue={stop}