@marimo-team/islands 0.25.2-dev0 → 0.25.2-dev100

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 (366) hide show
  1. package/dist/{ConnectedDataExplorerComponent-C2d9ysUI.js → ConnectedDataExplorerComponent-BZmqc_F0.js} +11 -11
  2. package/dist/{ErrorBoundary-2usl042r.js → ErrorBoundary-Dcb6Zg4M.js} +8 -8
  3. package/dist/{abnfDiagram-VCTEODGH-AFhOQTt8.js → abnfDiagram-VCTEODGH-C_Lmaa2j.js} +3 -3
  4. package/dist/{any-language-editor-CycIVIeP.js → any-language-editor-BFzqhOBR.js} +5 -5
  5. package/dist/{apl-BYaaig9_.js → apl-GEW9-ZP1.js} +1 -1
  6. package/dist/{architectureDiagram-5GKGNRK7-BngksAAQ.js → architectureDiagram-5GKGNRK7-BKMataHB.js} +5 -5
  7. package/dist/{asciiarmor-GKQFJXQG.js → asciiarmor-BWNxzkG7.js} +1 -1
  8. package/dist/{asn1-BsSb7HP5.js → asn1-Bcn2QutK.js} +1 -1
  9. package/dist/assets/__vite-browser-external-BqAtzd2P.js +1 -0
  10. package/dist/assets/{worker-D7hWi02M.js → worker-Bf8dt6S-.js} +5 -5
  11. package/dist/{asterisk-B3I8SNb5.js → asterisk-lE36-hJK.js} +1 -1
  12. package/dist/{blockDiagram-I7D4REHJ-CvBmppdy.js → blockDiagram-I7D4REHJ-BeHOjyDk.js} +9 -9
  13. package/dist/{brainfuck-DXjk3bQe.js → brainfuck-BQCYDheZ.js} +1 -1
  14. package/dist/{button-DdXAm8iz.js → button-BtsM2UqM.js} +312 -283
  15. package/dist/{c4Diagram-7LVT6UL2-EceL4_jH.js → c4Diagram-7LVT6UL2-Bao10t_O.js} +7 -7
  16. package/dist/{capabilities-B3ce_GNu.js → capabilities-A5jrzjCJ.js} +1 -1
  17. package/dist/{cells-Cv93oav_.js → cells-DZi0ioak.js} +4330 -4313
  18. package/dist/{channel-z7HZXHwv.js → channel-BxCkvUgE.js} +1 -1
  19. package/dist/{chat-ui-fVyVOhYN.js → chat-ui-CwOWzoSO.js} +46 -46
  20. package/dist/{check-B7cIK6gb.js → check-CNP79M3A.js} +1 -1
  21. package/dist/{chunk-4HAMMTFA-BPTTOOC5.js → chunk-4HAMMTFA-CH7Gpamd.js} +5 -5
  22. package/dist/{chunk-75Z2AOVW-C4AOleKf.js → chunk-75Z2AOVW-AI7CvgKn.js} +1 -1
  23. package/dist/{chunk-DU6HZSFF-1TwWR6gh.js → chunk-DU6HZSFF-BSvuTkX4.js} +1 -1
  24. package/dist/{chunk-F27PBJKO-DMI1PBe4.js → chunk-F27PBJKO-CLshwT9T.js} +1 -1
  25. package/dist/{chunk-GMAD6QVW-vStrMz2P.js → chunk-GMAD6QVW-wnHcn-lH.js} +3 -3
  26. package/dist/{chunk-GVQU2GXP-2HwWgs4u.js → chunk-GVQU2GXP-7O2p8hut.js} +2 -2
  27. package/dist/{chunk-IMKFNOWR-UOVZuZVn.js → chunk-IMKFNOWR-Bu0Vh_Yi.js} +6 -6
  28. package/dist/{chunk-L3NEJ4N5-RhC7i0I2.js → chunk-L3NEJ4N5-B9_Alrxb.js} +5 -5
  29. package/dist/{chunk-OSK3NFVY-CZV09N-U.js → chunk-OSK3NFVY-PeQPH2fD.js} +6 -6
  30. package/dist/{chunk-P2QGCYS3-0TAWai9C.js → chunk-P2QGCYS3-D9twiFuU.js} +1 -1
  31. package/dist/{chunk-POPQ4Y6H-Cc3_56GX.js → chunk-POPQ4Y6H-BUiNs18s.js} +1 -1
  32. package/dist/{chunk-PWAF6VOD-lNxB9k8z.js → chunk-PWAF6VOD-D8S9NPCy.js} +1 -1
  33. package/dist/{chunk-SHT3W25Y-CrEPyWy1.js → chunk-SHT3W25Y-B2dyNZ31.js} +8 -8
  34. package/dist/{chunk-SVP7TREG-uIyyySp6.js → chunk-SVP7TREG-D7UPvB10.js} +2 -2
  35. package/dist/{chunk-TICWLB2K-DdXM3eg6.js → chunk-TICWLB2K-BNaGoadd.js} +6 -6
  36. package/dist/classDiagram-ZZMXUADV-Bbo2n384.js +30 -0
  37. package/dist/classDiagram-v2-VYDZK3BY-xR8cGP0r.js +30 -0
  38. package/dist/{clike-E2lFbGVj.js → clike-CxK9W55Z.js} +1 -1
  39. package/dist/{clojure-Dn_K4RlK.js → clojure-Dzcvwpxk.js} +1 -1
  40. package/dist/{cmake-DpN2Top5.js → cmake-DYr-71zp.js} +1 -1
  41. package/dist/{cobol-Chf22-GM.js → cobol-DC3g37Kq.js} +1 -1
  42. package/dist/{code-visibility-rUDTB2Ce.js → code-visibility-DTB0i3UU.js} +6 -6
  43. package/dist/{coffeescript-BVe1OiD9.js → coffeescript-C-eFwH5N.js} +1 -1
  44. package/dist/{common-BVErJKjc.js → common-CaVEr6tY.js} +11801 -11503
  45. package/dist/{commonlisp-DxoBG7fU.js → commonlisp-CyaNXrJR.js} +1 -1
  46. package/dist/{copy-icon-CLdENY__.js → copy-icon-BY7jgcaV.js} +3 -3
  47. package/dist/{crystal-DCM3yc4r.js → crystal-ih5ax5tQ.js} +1 -1
  48. package/dist/{css-DkZ9mMyI.js → css-CN_wP7_R.js} +1 -1
  49. package/dist/{cynefinDiagram-5FMLGOSQ-zknaAsGy.js → cynefinDiagram-5FMLGOSQ-CCDn4Z9e.js} +3 -3
  50. package/dist/{cypher-Drw_8U5I.js → cypher-CqGRcmZo.js} +1 -1
  51. package/dist/{d-CsVGcKMF.js → d-Cj0sOW2z.js} +1 -1
  52. package/dist/{dagre-GXQ25YYZ-BhMOoMGJ.js → dagre-GXQ25YYZ-BJiUO_SV.js} +10 -10
  53. package/dist/{data-grid-overlay-editor-7ANmo9c-.js → data-grid-overlay-editor-BzTuqI2T.js} +1 -1
  54. package/dist/{diagram-S7CK7UJ4-V5-Z-EDY.js → diagram-S7CK7UJ4-BZfxFNRR.js} +4 -4
  55. package/dist/{diagram-UQ7AKVKN-qw8AjDal.js → diagram-UQ7AKVKN-1xcsiIMg.js} +3 -3
  56. package/dist/{diagram-VSXAHHWV-CR7BJygZ.js → diagram-VSXAHHWV-DPAWJ9Nw.js} +2 -2
  57. package/dist/{diagram-VX7I27RA-DfuqFb1E.js → diagram-VX7I27RA-DmRsnHYY.js} +5 -5
  58. package/dist/{diagram-Z3DM3KII-DpWwlYZB.js → diagram-Z3DM3KII--b49ryKx.js} +3 -3
  59. package/dist/{dialog-CgNq6y9-.js → dialog-CmExhUDI.js} +26 -26
  60. package/dist/{diff-CBikYCUF.js → diff-B_hUkiat.js} +1 -1
  61. package/dist/{dist-Df0wKI0F.js → dist-BK4Oj99o.js} +1 -1
  62. package/dist/{dist-BVGtK7Ht.js → dist-BLfKmR-l.js} +1 -1
  63. package/dist/{dist-B8D7McG3.js → dist-BMQf5zIS.js} +46 -46
  64. package/dist/{dist-C2KzV-vf.js → dist-BorMD-uX.js} +2 -2
  65. package/dist/{dist-Cs2FijYk.js → dist-BuaRHxOc.js} +2 -2
  66. package/dist/{dist-DPcEtqmG.js → dist-Bvs24R_E.js} +47 -47
  67. package/dist/{dist-lA1Cttkb.js → dist-C8fAKSH1.js} +41 -41
  68. package/dist/{dist-DszxuxS1.js → dist-CLdpGQVr.js} +2 -2
  69. package/dist/{dist-CO1AwwG_.js → dist-CN8zI-XC.js} +209 -209
  70. package/dist/{dist-D1PpnuZB.js → dist-CN_BeG2I.js} +1 -1
  71. package/dist/{dist-CPGxfVGX.js → dist-CSJ0MDRw.js} +1 -1
  72. package/dist/{dist-Cm3iAFMD.js → dist-CSbh1PNP.js} +3 -3
  73. package/dist/{dist-9x1ZRe-e.js → dist-Cg7gzw-a.js} +2 -2
  74. package/dist/{dist-B1vYLK28.js → dist-CkTTIdBe.js} +345 -345
  75. package/dist/{dist-BRxfaJgs.js → dist-CrSP_H1M.js} +296 -296
  76. package/dist/{dist-C2wDlYdD.js → dist-D-wwqlzJ.js} +2 -2
  77. package/dist/{dist-BtKIs9N-.js → dist-D6d86eNJ.js} +1 -1
  78. package/dist/{dist-DHOTQar0.js → dist-DBtSl3sf.js} +1 -1
  79. package/dist/{dist-KzZ7WELx.js → dist-DiDibOYr.js} +120 -120
  80. package/dist/{dist-Kxgjxakw.js → dist-DoE4XJBC.js} +1277 -1222
  81. package/dist/{dist-BHCHt1NI.js → dist-F8Ep36rk.js} +1 -1
  82. package/dist/{dist-C8xMLVYi.js → dist-OR1OnN-y.js} +44 -44
  83. package/dist/{dist-1HDa70oE.js → dist-PXYI_yuP.js} +3 -3
  84. package/dist/{dist-CMh_W4y4.js → dist-diIx5qJW.js} +2 -2
  85. package/dist/{dockerfile-DJnSntVB.js → dockerfile-D0VKN500.js} +2 -2
  86. package/dist/dropdown-menu-Cz4TdOJh.js +4678 -0
  87. package/dist/{dtd-BHa4v0Bn.js → dtd-B8FGSWWe.js} +1 -1
  88. package/dist/{dylan-BypL2Zz8.js → dylan-DbIBYIrw.js} +1 -1
  89. package/dist/{ebnf-5guncNu-.js → ebnf-D-YbYLdk.js} +1 -1
  90. package/dist/{ebnfDiagram-PWID7BFC-C20OnNMZ.js → ebnfDiagram-PWID7BFC-rSwVyh4y.js} +3 -3
  91. package/dist/{ecl-iRcVIKYZ.js → ecl-DBmkdWAd.js} +1 -1
  92. package/dist/{eiffel-BEqF9aU4.js → eiffel-CcWSDDzK.js} +1 -1
  93. package/dist/{elm-DYcfNE9c.js → elm-MC-b8a6C.js} +1 -1
  94. package/dist/{erDiagram-RLTQ6QDP-DBXLWO9v.js → erDiagram-RLTQ6QDP-Bfd3iAoC.js} +12 -12
  95. package/dist/{erlang-BtAuIoF0.js → erlang-AdO1-xtV.js} +1 -1
  96. package/dist/error-banner-D30nA9nE.js +362 -0
  97. package/dist/{error-entries-DLl0XqoW.js → error-entries-BovkFYNy.js} +2 -2
  98. package/dist/{esm-BElI3qKH.js → esm-D2gTsXEV.js} +579 -579
  99. package/dist/{esm-h8f7-1CJ.js → esm-DAVrGVKP.js} +378 -372
  100. package/dist/{factor-3nzOwLuN.js → factor-Ys-13HOP.js} +2 -2
  101. package/dist/{fcl-C90TGnJJ.js → fcl-DnwditDr.js} +1 -1
  102. package/dist/{feedback-button-K1inEVfd.js → feedback-button-CHGz2EXX.js} +10 -10
  103. package/dist/flowDiagram-HODETNUW-D7IBKS12.js +16 -0
  104. package/dist/{formats-Cl_67ghI.js → formats-DhhbdyAH.js} +3 -3
  105. package/dist/{forth-DEaRrLUi.js → forth-DiMuIXFe.js} +1 -1
  106. package/dist/{fortran-Bv6JRUjY.js → fortran-hkrF2eM4.js} +1 -1
  107. package/dist/{ganttDiagram-EL5Y4UJY-cRRaDt88.js → ganttDiagram-EL5Y4UJY-B4m_YsKa.js} +2 -2
  108. package/dist/{gas-JNerWj3-.js → gas-DlhqN9k8.js} +1 -1
  109. package/dist/{gherkin-CSrl-H70.js → gherkin-0SlhEZ3t.js} +1 -1
  110. package/dist/{gitGraphDiagram-WWUBYQGX-Pox5k9-Y.js → gitGraphDiagram-WWUBYQGX-QRBbvWXh.js} +2 -2
  111. package/dist/{glide-data-editor-D2fDO5aG.js → glide-data-editor-WxMsJlmb.js} +11 -11
  112. package/dist/{glide-utils-B3rUT5PI.js → glide-utils-BVJ4fkxX.js} +3 -3
  113. package/dist/{globals-NylFP0CX.js → globals-BROokniw.js} +3 -3
  114. package/dist/{groovy-X7euO_vE.js → groovy-YhcTMyvX.js} +1 -1
  115. package/dist/{haskell-C48Z70Az.js → haskell-CodLxrtT.js} +1 -1
  116. package/dist/{haxe-CAUWMmwR.js → haxe-CiRWNFkH.js} +1 -1
  117. package/dist/{html-to-image-CmkwfNkf.js → html-to-image-Cn1_16-x.js} +543 -565
  118. package/dist/{http-BrSBnhDH.js → http-Bh6HhdNR.js} +1 -1
  119. package/dist/{idl-BXuPleZv.js → idl-DZgBq75I.js} +1 -1
  120. package/dist/{infoDiagram-27XIBGKW-ntpxMfrq.js → infoDiagram-27XIBGKW-DVQFYvhg.js} +2 -2
  121. package/dist/{ishikawaDiagram-5VMMS53U-BllIlHE5.js → ishikawaDiagram-5VMMS53U-viPND-nm.js} +3 -3
  122. package/dist/{javascript-B4EPWJf_.js → javascript-BfNytHiM.js} +1 -1
  123. package/dist/{journeyDiagram-3NMN7TZE-EPJDPlt0.js → journeyDiagram-3NMN7TZE-BeeJdJo3.js} +2 -2
  124. package/dist/{julia-ke9Kh8b7.js → julia--tLIAG7q.js} +1 -1
  125. package/dist/{kanban-definition-UXKFOSKX-GYtNMjtS.js → kanban-definition-UXKFOSKX-Dcl_ECO9.js} +9 -9
  126. package/dist/{label-BslhXqL6.js → label-DQO1jFjf.js} +96 -93
  127. package/dist/{livescript-Ce4uqGAC.js → livescript-CVPfYnY_.js} +1 -1
  128. package/dist/{loader-DEZSzvma.js → loader-Cm-ATtou.js} +1 -1
  129. package/dist/{lua-D6fti_Jk.js → lua-4Fa-T-qq.js} +1 -1
  130. package/dist/main.js +6966 -6827
  131. package/dist/{mathematica-DcEpZ3Vj.js → mathematica-CtYAy6GG.js} +1 -1
  132. package/dist/{mbox-DFBbOu0X.js → mbox-D0w9Ah1C.js} +1 -1
  133. package/dist/{mermaid-Dnzoxjt1.js → mermaid-BfhcnSj-.js} +54 -54
  134. package/dist/{mindmap-definition-YA3MSWOX-Cth76xgH.js → mindmap-definition-YA3MSWOX-BdxxhF-5.js} +11 -11
  135. package/dist/{mirc-CqeibO3N.js → mirc-De9aSAZM.js} +1 -1
  136. package/dist/{mllike-D54QZYTP.js → mllike-BbugeaY_.js} +1 -1
  137. package/dist/{modelica-DuML2-8V.js → modelica-BjJwWw1F.js} +1 -1
  138. package/dist/{mscgen-CJmKwp3b.js → mscgen-DwiRH5ma.js} +1 -1
  139. package/dist/{mumps-DaVgFtkd.js → mumps--plbDM9o.js} +1 -1
  140. package/dist/{nginx-BXN1rqI0.js → nginx-C4Df7REc.js} +1 -1
  141. package/dist/{nsis-CMfRqf0V.js → nsis-fiiOqLc3.js} +7 -7
  142. package/dist/{ntriples-BiOGlMDR.js → ntriples-jV77I4k8.js} +1 -1
  143. package/dist/{number-overlay-editor-B4XyCoMu.js → number-overlay-editor-DCj0MZgn.js} +1 -1
  144. package/dist/{octave-CgVnzxKk.js → octave-Cztd01tF.js} +1 -1
  145. package/dist/{oz-B2mky97X.js → oz-Bl8o3BDl.js} +1 -1
  146. package/dist/{pascal-BoZhBf6s.js → pascal-BO5JqysR.js} +1 -1
  147. package/dist/{pegDiagram-XKGWAZYB-Cu4uOXii.js → pegDiagram-XKGWAZYB-Du5p2s0w.js} +3 -3
  148. package/dist/{perl-DjzMqXtt.js → perl-Drlh9s6m.js} +1 -1
  149. package/dist/{pieDiagram-E7YTZNPT-Bh3eDa9s.js → pieDiagram-E7YTZNPT-DJg-SOIq.js} +3 -3
  150. package/dist/{pig-B2mB-01d.js → pig-BWGR8wZw.js} +1 -1
  151. package/dist/{powershell-D0zT88Aj.js → powershell-DT99xlz_.js} +1 -1
  152. package/dist/{process-output-CYN5E-iO.js → process-output-CUG57KRp.js} +4 -4
  153. package/dist/{properties-3_5qCgOj.js → properties-Q-rkxld0.js} +1 -1
  154. package/dist/{protobuf-Dgoxfi1H.js → protobuf-DKyWZbs7.js} +1 -1
  155. package/dist/{pug-CNRdd8oG.js → pug-42ZJUbEC.js} +2 -2
  156. package/dist/{puppet-DzILxZfz.js → puppet-B4UozHhh.js} +1 -1
  157. package/dist/purify.es-DMv5zIkJ.js +866 -0
  158. package/dist/{python-AfVdMn_l.js → python-DREjAV__.js} +1 -1
  159. package/dist/{q-C6p-CGWh.js → q-Bi63IpBO.js} +1 -1
  160. package/dist/{quadrantDiagram-AXDQQJYC--kqzFC3w.js → quadrantDiagram-AXDQQJYC-keLfFx9f.js} +1 -1
  161. package/dist/{r-CzKF1D2X.js → r-DSwXWKMR.js} +1 -1
  162. package/dist/{railroadDiagram-O6MQD6OU-DG-M6Rnc.js → railroadDiagram-O6MQD6OU-C0ojm-6_.js} +3 -3
  163. package/dist/{requirementDiagram-BXWQKSXE-DCwsThh0.js → requirementDiagram-BXWQKSXE-CNwNBmI3.js} +11 -11
  164. package/dist/{reveal-component-Dtm5GH3p.js → reveal-component-CSY54dq4.js} +10 -10
  165. package/dist/{rpm-Bx7FkjTO.js → rpm-DPb1DeKM.js} +1 -1
  166. package/dist/{ruby-BMzgq2bf.js → ruby-U7fZA4DP.js} +2 -2
  167. package/dist/{sankeyDiagram-P5KCCOFB-BdzhT0BM.js → sankeyDiagram-P5KCCOFB-Bh4EsJox.js} +1 -1
  168. package/dist/{sas-ClGVnK3F.js → sas-CLk1JpTn.js} +1 -1
  169. package/dist/{scheme-C0MXqXep.js → scheme-CT-2k2Tl.js} +1 -1
  170. package/dist/select-Bs-nmvm6.js +1344 -0
  171. package/dist/{sequenceDiagram-WJ2MYXX4-CbXB1_PU.js → sequenceDiagram-WJ2MYXX4-DQaW5qBG.js} +4 -4
  172. package/dist/{shell-CiQZv6oG.js → shell-BLO7fcsk.js} +1 -1
  173. package/dist/{sieve-BiIMePvV.js → sieve-nG3C7WNH.js} +1 -1
  174. package/dist/{simple-mode-8ETW2RS6.js → simple-mode-C683Q7or.js} +1 -1
  175. package/dist/{smalltalk-9-llftyG.js → smalltalk-BROcZybA.js} +1 -1
  176. package/dist/{solr-CxCKEuwq.js → solr-mVltHNc5.js} +1 -1
  177. package/dist/{sparql-BRmy7pzx.js → sparql-Cv1Ksr4v.js} +1 -1
  178. package/dist/{spec-DQBRQSba.js → spec-DVsoMvYT.js} +116 -135
  179. package/dist/{spreadsheet-UCNUIGsn.js → spreadsheet-BwTnp5K_.js} +1 -1
  180. package/dist/{sql-D0hSGZ-H.js → sql-CjLt0122.js} +1 -1
  181. package/dist/{stateDiagram-D77RDMKH-A-Zf3Sb2.js → stateDiagram-D77RDMKH-BDa515QC.js} +13 -13
  182. package/dist/stateDiagram-v2-MP3YSRHH-ChNddepZ.js +30 -0
  183. package/dist/{stex-UeT_Aofp.js → stex-Btf3omL8.js} +1 -1
  184. package/dist/style.css +1 -1
  185. package/dist/{stylus-Fi4waA2H.js → stylus-Dt4VvLXL.js} +1 -1
  186. package/dist/{swift-NqPyaBye.js → swift-DHsn_CVI.js} +1 -1
  187. package/dist/{swimlanes-42K2YHIH-B_pMf0J4.js → swimlanes-42K2YHIH-M4IdGi8J.js} +10 -10
  188. package/dist/swimlanesDiagram-VR7AAH4N-FUSwmzEp.js +30 -0
  189. package/dist/{swiper-component-IOUowglM.js → swiper-component-CpN-hewZ.js} +2 -2
  190. package/dist/{tcl-B4f0xfmM.js → tcl-CV0OLBOl.js} +1 -1
  191. package/dist/{textile-CnNbnPTe.js → textile-D320oKVM.js} +1 -1
  192. package/dist/{tiddlywiki-CSGSOg38.js → tiddlywiki-BVVNvfy4.js} +1 -1
  193. package/dist/{tiki-9F02WBA6.js → tiki-BF2aDPlB.js} +1 -1
  194. package/dist/{timeline-definition-24CTP7MA-DTXFjTTM.js → timeline-definition-24CTP7MA-DH-kvakg.js} +3 -3
  195. package/dist/{toDate-C67bxMWn.js → toDate-vEi5kTfY.js} +4 -5
  196. package/dist/{toast-DvY70eFX.js → toast-DfEpJedt.js} +157 -161
  197. package/dist/{toml-AesZ6RBt.js → toml-CaUN7UHo.js} +1 -1
  198. package/dist/{tooltip-qB8NlSqV.js → tooltip-CuNWg2ay.js} +543 -579
  199. package/dist/{troff-DlfvveK1.js → troff-DQUFcClZ.js} +1 -1
  200. package/dist/{ttcn--YVSkGs_.js → ttcn-CQL1duJS.js} +1 -1
  201. package/dist/{ttcn-cfg-Bb1Knl_J.js → ttcn-cfg-BMmEFJPu.js} +1 -1
  202. package/dist/{turtle-DC24v1bz.js → turtle-C3esgsRr.js} +1 -1
  203. package/dist/{use-restore-focus-D5D9xEjZ.js → use-restore-focus-kmgwrL8q.js} +1833 -1625
  204. package/dist/{useAsyncData-BD6AStMt.js → useAsyncData-rkAlR_vh.js} +1 -1
  205. package/dist/{useDateFormatter-BXQGu86d.js → useDateFormatter-C-tz65rD.js} +52 -31
  206. package/dist/{useDeepCompareMemoize-D_HNdyvI.js → useDeepCompareMemoize-BlHFBj5_.js} +1 -1
  207. package/dist/{useIframeCapabilities-CVtNkI3Y.js → useIframeCapabilities-C1Bt04Iz.js} +1 -1
  208. package/dist/{useLifecycle-DPgiiwwU.js → useLifecycle-B68iY077.js} +3 -3
  209. package/dist/{useTheme-DzXmYZ5V.js → useTheme-BwSgeAFb.js} +2 -2
  210. package/dist/{vb-Dpc8vhvF.js → vb-RK1eDXRl.js} +1 -1
  211. package/dist/{vbscript-B-Y1XnZe.js → vbscript-BCOeM0de.js} +1 -1
  212. package/dist/{vega-component-tFOzgarw.js → vega-component-C-bPttRN.js} +9 -9
  213. package/dist/{velocity-DHMu9kc-.js → velocity-CZKOFbOI.js} +1 -1
  214. package/dist/{vennDiagram-4TSXK5OY-BPHjZo0R.js → vennDiagram-4TSXK5OY-d5g7XeiI.js} +3 -3
  215. package/dist/{verilog-DhiEaoUl.js → verilog-DqQTzVn8.js} +1 -1
  216. package/dist/{vhdl-D4X23YKO.js → vhdl-vQr2bfmi.js} +1 -1
  217. package/dist/{wardleyDiagram-VM6X3IG4-6fTLYBuD.js → wardleyDiagram-VM6X3IG4-BfX3bSzR.js} +3 -3
  218. package/dist/{webidl-SyzNxWpJ.js → webidl-DzX7N40e.js} +1 -1
  219. package/dist/{xquery-BC2R4Hk6.js → xquery-Cw_Q_hGR.js} +1 -1
  220. package/dist/{xychartDiagram-S5SC5T6Z-BYjwjrzE.js → xychartDiagram-S5SC5T6Z-C1QsLZg7.js} +5 -5
  221. package/dist/{yacas-DLNXPMmH.js → yacas-DiC4jJBE.js} +1 -1
  222. package/dist/{z80-CDXWHOO6.js → z80-CUOQDEJO.js} +1 -1
  223. package/package.json +24 -23
  224. package/src/__tests__/mount.test.ts +6 -6
  225. package/src/components/chat/__tests__/chat-history-popover.test.tsx +157 -0
  226. package/src/components/chat/chat-history-popover.tsx +98 -17
  227. package/src/components/chat/chat-panel.tsx +29 -0
  228. package/src/components/chat/tool-call/__tests__/tool-result.test.tsx +56 -0
  229. package/src/components/chat/tool-call/tool-result.tsx +3 -3
  230. package/src/components/data-table/TableTopBar.tsx +4 -0
  231. package/src/components/data-table/__tests__/export-actions.test.tsx +1111 -14
  232. package/src/components/data-table/__tests__/pagination.test.tsx +85 -1
  233. package/src/components/data-table/__tests__/schemas.test.ts +57 -0
  234. package/src/components/data-table/charts/__tests__/schemas.test.ts +25 -0
  235. package/src/components/data-table/charts/__tests__/slider-field.test.tsx +54 -0
  236. package/src/components/data-table/charts/__tests__/spec.test.ts +26 -23
  237. package/src/components/data-table/charts/components/form-fields.tsx +3 -1
  238. package/src/components/data-table/charts/constants.ts +11 -10
  239. package/src/components/data-table/charts/types.ts +1 -0
  240. package/src/components/data-table/data-table.tsx +3 -0
  241. package/src/components/data-table/export-actions.tsx +365 -81
  242. package/src/components/data-table/pagination.tsx +16 -2
  243. package/src/components/data-table/range-focus/__tests__/atoms.test.ts +11 -11
  244. package/src/components/data-table/schemas.ts +90 -14
  245. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +32 -46
  246. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +29 -40
  247. package/src/components/editor/actions/__tests__/useSetOutputsExpanded.test.ts +42 -0
  248. package/src/components/editor/actions/pair-with-agent-commands.ts +3 -4
  249. package/src/components/editor/actions/pair-with-agent-modal.tsx +4 -7
  250. package/src/components/editor/actions/useNotebookActions.tsx +20 -0
  251. package/src/components/editor/actions/useRestartKernel.tsx +2 -2
  252. package/src/components/editor/actions/useSetOutputsExpanded.ts +67 -0
  253. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +224 -17
  254. package/src/components/editor/alerts/connection-details.tsx +61 -0
  255. package/src/components/editor/alerts/connection-notice.tsx +46 -53
  256. package/src/components/editor/alerts/startup-progress.tsx +73 -129
  257. package/src/components/editor/app-container.tsx +2 -2
  258. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +2 -2
  259. package/src/components/editor/cell/CreateCellButton.tsx +2 -2
  260. package/src/components/editor/cell/DeleteButton.tsx +2 -2
  261. package/src/components/editor/cell/RunButton.tsx +3 -3
  262. package/src/components/editor/cell/StopButton.tsx +2 -2
  263. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +4 -4
  264. package/src/components/editor/chrome/components/feedback-button.tsx +3 -3
  265. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +8 -8
  266. package/src/components/editor/chrome/panels/__tests__/{sandbox-details.test.tsx → runtime-details.test.tsx} +94 -22
  267. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +4 -4
  268. package/src/components/editor/chrome/panels/packages-panel.tsx +8 -29
  269. package/src/components/editor/chrome/panels/{sandbox-details-state.ts → runtime-details-state.ts} +1 -1
  270. package/src/components/editor/chrome/panels/{sandbox-panel.tsx → runtime-panel.tsx} +38 -66
  271. package/src/components/editor/chrome/panels/runtime-status-toggle.tsx +56 -0
  272. package/src/components/editor/chrome/panels/sandbox-controller.tsx +2 -2
  273. package/src/components/editor/chrome/wrapper/app-chrome.tsx +3 -3
  274. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +2 -2
  275. package/src/components/editor/controls/Controls.tsx +3 -3
  276. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +2 -2
  277. package/src/components/editor/header/__tests__/status.test.tsx +4 -4
  278. package/src/components/editor/header/app-header.tsx +2 -2
  279. package/src/components/editor/header/status.tsx +3 -3
  280. package/src/components/editor/navigation/__tests__/navigation.test.ts +8 -8
  281. package/src/components/tracing/tracing.test.tsx +30 -30
  282. package/src/components/ui/__tests__/slider.test.tsx +37 -0
  283. package/src/components/ui/progress-stages.tsx +114 -0
  284. package/src/components/ui/slider.tsx +2 -0
  285. package/src/core/ai/__tests__/state.test.ts +120 -0
  286. package/src/core/ai/state.ts +36 -10
  287. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +106 -5
  288. package/src/core/codemirror/lsp/notebook-lsp.ts +16 -2
  289. package/src/core/codemirror/readonly/__tests__/extension.test.ts +6 -6
  290. package/src/core/codemirror/readonly/extension.ts +2 -2
  291. package/src/core/config/pair.ts +0 -1
  292. package/src/core/datasets/__tests__/data-source-discovery.test.ts +2 -2
  293. package/src/core/edit-app.tsx +21 -1
  294. package/src/core/export/hooks.ts +2 -2
  295. package/src/core/hotkeys/hotkeys.ts +12 -0
  296. package/src/core/islands/bootstrap.ts +1 -0
  297. package/src/core/kernel/session.ts +9 -0
  298. package/src/core/network/__tests__/connection.test.ts +3 -3
  299. package/src/core/network/connection-notice.ts +5 -5
  300. package/src/core/network/connection.ts +9 -9
  301. package/src/core/network/requests-lazy.ts +2 -2
  302. package/src/core/packages/__tests__/useSandboxController.test.tsx +2 -2
  303. package/src/core/packages/useSandboxController.ts +6 -6
  304. package/src/core/runtime/__tests__/adapter.test.ts +6 -6
  305. package/src/core/runtime/adapter.ts +7 -7
  306. package/src/core/runtime/config.ts +2 -2
  307. package/src/core/saving/filename.ts +2 -2
  308. package/src/core/saving/save-component.tsx +5 -5
  309. package/src/core/saving/useAutoSave.ts +2 -2
  310. package/src/core/wasm/__tests__/bootstrap.test.ts +33 -1
  311. package/src/core/wasm/worker/bootstrap.ts +22 -3
  312. package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +30 -25
  313. package/src/core/websocket/__tests__/useMarimoKernelConnection.test.ts +5 -5
  314. package/src/core/websocket/connection-utils.ts +21 -21
  315. package/src/core/websocket/types.ts +8 -9
  316. package/src/core/websocket/useMarimoKernelConnection.tsx +33 -22
  317. package/src/css/katex-css.test.ts +166 -0
  318. package/src/css/katex.min.css +169 -168
  319. package/src/mount.tsx +2 -2
  320. package/src/plugins/core/__test__/registerReactComponent.test.ts +55 -0
  321. package/src/plugins/core/registerReactComponent.tsx +3 -1
  322. package/src/plugins/impl/CheckboxPlugin.tsx +1 -1
  323. package/src/plugins/impl/DataTablePlugin.tsx +23 -2
  324. package/src/plugins/impl/DatePickerPlugin.tsx +5 -3
  325. package/src/plugins/impl/DateRangePlugin.tsx +5 -3
  326. package/src/plugins/impl/DateTimePickerPlugin.tsx +5 -3
  327. package/src/plugins/impl/DropdownPlugin.tsx +1 -1
  328. package/src/plugins/impl/FileBrowserPlugin.tsx +45 -15
  329. package/src/plugins/impl/MultiselectPlugin.tsx +1 -1
  330. package/src/plugins/impl/NumberPlugin.tsx +1 -1
  331. package/src/plugins/impl/RadioPlugin.tsx +5 -1
  332. package/src/plugins/impl/RangeSliderPlugin.tsx +1 -1
  333. package/src/plugins/impl/SearchableSelect.tsx +1 -1
  334. package/src/plugins/impl/SliderPlugin.tsx +5 -1
  335. package/src/plugins/impl/SwitchPlugin.tsx +6 -1
  336. package/src/plugins/impl/TextAreaPlugin.tsx +23 -4
  337. package/src/plugins/impl/TextInputPlugin.tsx +10 -2
  338. package/src/plugins/impl/__test__/slider-labels.test.tsx +136 -0
  339. package/src/plugins/impl/__test__/text-labels.test.tsx +141 -0
  340. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +65 -8
  341. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +85 -2
  342. package/src/plugins/impl/__tests__/widget-labels.test.tsx +122 -0
  343. package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
  344. package/src/plugins/impl/common/labeled.tsx +9 -3
  345. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +15 -3
  346. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +0 -22
  347. package/src/stories/cell.stories.tsx +2 -2
  348. package/src/stories/dataframe.stories.tsx +7 -0
  349. package/src/stories/layout/vertical/one-column.stories.tsx +5 -5
  350. package/src/stories/progress-stages.stories.tsx +62 -0
  351. package/src/stories/runtime-existing.stories.tsx +44 -0
  352. package/src/stories/runtime-maintenance.stories.tsx +40 -0
  353. package/src/stories/runtime-pixi.stories.tsx +28 -0
  354. package/src/stories/{sandbox.stories.tsx → runtime-story.tsx} +191 -152
  355. package/src/stories/runtime-uv.stories.tsx +56 -0
  356. package/dist/assets/__vite-browser-external-C9iR87Zl.js +0 -1
  357. package/dist/classDiagram-ZZMXUADV-BiATbBE4.js +0 -30
  358. package/dist/classDiagram-v2-VYDZK3BY-JnH97GYw.js +0 -30
  359. package/dist/dropdown-menu-CZy06LAq.js +0 -4502
  360. package/dist/error-banner-B94dcDmP.js +0 -391
  361. package/dist/flowDiagram-HODETNUW-DL52nMkt.js +0 -16
  362. package/dist/purify.es-DgKyQviY.js +0 -805
  363. package/dist/select-C6plhmZr.js +0 -970
  364. package/dist/stateDiagram-v2-MP3YSRHH-D9YMnUGx.js +0 -30
  365. package/dist/swimlanesDiagram-VR7AAH4N-Ctgy-yGP.js +0 -30
  366. package/src/components/editor/chrome/panels/sandbox-toggle.tsx +0 -52
@@ -60,7 +60,11 @@ import {
60
60
  handleRemoveUIElements,
61
61
  } from "../kernel/handlers";
62
62
  import { queryParamHandlers } from "../kernel/queryParamHandlers";
63
- import type { SessionId } from "../kernel/session";
63
+ import {
64
+ type SessionId,
65
+ type StableSessionId,
66
+ stableSessionIdAtom,
67
+ } from "../kernel/session";
64
68
  import { initialRunCompletedAtom, kernelStateAtom } from "../kernel/state";
65
69
  import { type LayoutState, useLayoutActions } from "../layout/state";
66
70
  import { kioskModeAtom } from "../mode";
@@ -80,7 +84,7 @@ import { isWasm } from "../wasm/utils";
80
84
  import {
81
85
  type ConnectionStatus,
82
86
  WebSocketClosedReason,
83
- WebSocketState,
87
+ ConnectionState,
84
88
  } from "./types";
85
89
 
86
90
  const SUPPORTS_LAZY_KERNELS = true;
@@ -112,7 +116,7 @@ export function classifyCloseEvent(event: { reason?: string }): CloseDecision {
112
116
  return {
113
117
  kind: "gave-up",
114
118
  status: {
115
- state: WebSocketState.CLOSED,
119
+ state: ConnectionState.CLOSED,
116
120
  code: WebSocketClosedReason.KERNEL_DISCONNECTED,
117
121
  reason: "kernel not found",
118
122
  },
@@ -124,7 +128,7 @@ export function classifyCloseEvent(event: { reason?: string }): CloseDecision {
124
128
  return {
125
129
  kind: "terminal",
126
130
  status: {
127
- state: WebSocketState.CLOSED,
131
+ state: ConnectionState.CLOSED,
128
132
  code: WebSocketClosedReason.KERNEL_DISCONNECTED,
129
133
  reason: "kernel not found",
130
134
  },
@@ -134,7 +138,7 @@ export function classifyCloseEvent(event: { reason?: string }): CloseDecision {
134
138
  return {
135
139
  kind: "terminal",
136
140
  status: {
137
- state: WebSocketState.CLOSED,
141
+ state: ConnectionState.CLOSED,
138
142
  code: WebSocketClosedReason.KERNEL_DISCONNECTED,
139
143
  reason: "not authorized",
140
144
  },
@@ -144,7 +148,7 @@ export function classifyCloseEvent(event: { reason?: string }): CloseDecision {
144
148
  return {
145
149
  kind: "terminal",
146
150
  status: {
147
- state: WebSocketState.CLOSED,
151
+ state: ConnectionState.CLOSED,
148
152
  code: WebSocketClosedReason.KERNEL_DISCONNECTED,
149
153
  reason: "kiosk mode is not available for this session",
150
154
  },
@@ -154,7 +158,7 @@ export function classifyCloseEvent(event: { reason?: string }): CloseDecision {
154
158
  return {
155
159
  kind: "terminal",
156
160
  status: {
157
- state: WebSocketState.CLOSED,
161
+ state: ConnectionState.CLOSED,
158
162
  code: WebSocketClosedReason.KERNEL_STARTUP_ERROR,
159
163
  reason: "Failed to start kernel sandbox",
160
164
  },
@@ -171,7 +175,7 @@ export function classifyCloseEvent(event: { reason?: string }): CloseDecision {
171
175
 
172
176
  return {
173
177
  kind: "retry",
174
- status: { state: WebSocketState.CONNECTING },
178
+ status: { state: ConnectionState.CONNECTING },
175
179
  };
176
180
  }
177
181
 
@@ -231,6 +235,7 @@ export function useMarimoKernelConnection(opts: {
231
235
  addStartupLog,
232
236
  } = useAlertActions();
233
237
  const setKioskMode = useSetAtom(kioskModeAtom);
238
+ const setStableSessionId = useSetAtom(stableSessionIdAtom);
234
239
  const setCapabilities = useSetAtom(capabilitiesAtom);
235
240
  const runtimeManager = useRuntimeManager();
236
241
  const transportType = useAtomValue(connectionTransportTypeAtom);
@@ -251,17 +256,17 @@ export function useMarimoKernelConnection(opts: {
251
256
  const { phase } = msg.data;
252
257
  updateStartupProgress(msg.data);
253
258
  setConnection((previous) =>
254
- previous.state === WebSocketState.OPEN ||
255
- (previous.state === WebSocketState.CONNECTING &&
259
+ previous.state === ConnectionState.OPEN ||
260
+ (previous.state === ConnectionState.CONNECTING &&
256
261
  previous.phase === phase)
257
262
  ? previous
258
- : { state: WebSocketState.CONNECTING, phase },
263
+ : { state: ConnectionState.CONNECTING, phase },
259
264
  );
260
265
  return;
261
266
  }
262
267
  case "kernel-ready": {
263
268
  setKernelStartupError(null);
264
- setConnection({ state: WebSocketState.OPEN });
269
+ setConnection({ state: ConnectionState.OPEN });
265
270
  setInitialRunCompleted(
266
271
  Boolean(msg.data.resumed || msg.data.auto_instantiated),
267
272
  );
@@ -284,6 +289,10 @@ export function useMarimoKernelConnection(opts: {
284
289
  invalidateDataSourceDiscovery();
285
290
  }
286
291
  setKioskMode(msg.data.kiosk);
292
+ setStableSessionId(
293
+ (msg.data.stable_session_id as StableSessionId | null | undefined) ??
294
+ null,
295
+ );
287
296
  // A freshly started kernel has no breakpoints of its own; re-push
288
297
  // the client's set so they still apply, and clear the stale
289
298
  // highlighted line from the previous kernel instance.
@@ -295,6 +304,8 @@ export function useMarimoKernelConnection(opts: {
295
304
  case "completed-run":
296
305
  setInitialRunCompleted(true);
297
306
  return;
307
+ case "execution":
308
+ return;
298
309
  case "interrupted":
299
310
  return;
300
311
 
@@ -470,7 +481,7 @@ export function useMarimoKernelConnection(opts: {
470
481
 
471
482
  case "reconnected":
472
483
  setKernelStartupError(null);
473
- setConnection({ state: WebSocketState.OPEN });
484
+ setConnection({ state: ConnectionState.OPEN });
474
485
  return;
475
486
 
476
487
  case "focus-cell":
@@ -515,12 +526,12 @@ export function useMarimoKernelConnection(opts: {
515
526
  }
516
527
  shouldTryReconnecting.current = true;
517
528
  setKernelStartupError(null);
518
- setConnection({ state: WebSocketState.CONNECTING });
529
+ setConnection({ state: ConnectionState.CONNECTING });
519
530
  const healthy = await runtimeManager.reconcileFromHealth();
520
531
  if (!healthy) {
521
532
  shouldTryReconnecting.current = false;
522
533
  setConnection({
523
- state: WebSocketState.CLOSED,
534
+ state: ConnectionState.CLOSED,
524
535
  code: WebSocketClosedReason.KERNEL_DISCONNECTED,
525
536
  reason: "kernel not found",
526
537
  });
@@ -596,17 +607,17 @@ export function useMarimoKernelConnection(opts: {
596
607
  setConnection((previous) => {
597
608
  const status = decision.status;
598
609
  if (
599
- status.state === WebSocketState.CLOSED &&
610
+ status.state === ConnectionState.CLOSED &&
600
611
  status.code === WebSocketClosedReason.KERNEL_STARTUP_ERROR &&
601
- (previous.state === WebSocketState.CONNECTING ||
602
- previous.state === WebSocketState.CLOSED)
612
+ (previous.state === ConnectionState.CONNECTING ||
613
+ previous.state === ConnectionState.CLOSED)
603
614
  ) {
604
615
  return { ...status, phase: previous.phase };
605
616
  }
606
617
  if (
607
- status.state === WebSocketState.CONNECTING &&
608
- (previous.state === WebSocketState.OPEN ||
609
- (previous.state === WebSocketState.CONNECTING &&
618
+ status.state === ConnectionState.CONNECTING &&
619
+ (previous.state === ConnectionState.OPEN ||
620
+ (previous.state === ConnectionState.CONNECTING &&
610
621
  previous.phase === "reconnecting"))
611
622
  ) {
612
623
  return { ...status, phase: "reconnecting" };
@@ -631,7 +642,7 @@ export function useMarimoKernelConnection(opts: {
631
642
  onError: (e) => {
632
643
  Logger.warn("WebSocket error", e);
633
644
  setConnection({
634
- state: WebSocketState.CLOSED,
645
+ state: ConnectionState.CLOSED,
635
646
  code: WebSocketClosedReason.KERNEL_DISCONNECTED,
636
647
  reason: "kernel not found",
637
648
  });
@@ -0,0 +1,166 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import { readFile } from "node:fs/promises";
4
+ import postcss from "postcss";
5
+ import { beforeAll, describe, expect, it } from "vitest";
6
+ import {
7
+ checkKatexCss,
8
+ generateKatexCss,
9
+ readUpstreamCss,
10
+ stylesheetPath,
11
+ } from "../../scripts/katex-css";
12
+
13
+ let upstream: string;
14
+ let generated: string;
15
+
16
+ beforeAll(async () => {
17
+ upstream = await readUpstreamCss();
18
+ generated = await generateKatexCss(upstream);
19
+ });
20
+
21
+ describe("copied KaTeX stylesheet", () => {
22
+ it("matches the installed package with only documented marimo overrides", async () => {
23
+ await expect(
24
+ checkKatexCss(upstream, await readFile(stylesheetPath, "utf8")),
25
+ ).resolves.toBeUndefined();
26
+ });
27
+
28
+ it.each(["added", "removed", "changed"])(
29
+ "detects %s upstream rule without a version change",
30
+ async (change) => {
31
+ const root = postcss.parse(upstream);
32
+ if (change === "added") {
33
+ root.append(
34
+ postcss.parse(
35
+ ".katex .reflectbox { display: inline-block; transform: scaleX(-1); }",
36
+ ),
37
+ );
38
+ } else {
39
+ root.walkRules(".katex .mspace", (rule) => {
40
+ if (change === "removed") {
41
+ rule.remove();
42
+ } else {
43
+ rule.append(postcss.decl({ prop: "color", value: "red" }));
44
+ }
45
+ });
46
+ }
47
+ await expect(checkKatexCss(root.toString(), generated)).rejects.toThrow(
48
+ "pnpm sync-katex-css",
49
+ );
50
+ const regenerated = await generateKatexCss(root.toString());
51
+ await checkKatexCss(root.toString(), regenerated);
52
+ },
53
+ );
54
+
55
+ it.each(["added", "removed", "changed"])(
56
+ "detects %s local rule",
57
+ async (change) => {
58
+ const root = postcss.parse(generated);
59
+ if (change === "added") {
60
+ root.append(postcss.parse(".katex .unexpected { display: none; }"));
61
+ } else {
62
+ root.walkRules(".katex .mspace", (rule) => {
63
+ if (change === "removed") {
64
+ rule.remove();
65
+ } else {
66
+ rule.append(postcss.decl({ prop: "color", value: "red" }));
67
+ }
68
+ });
69
+ }
70
+ await expect(checkKatexCss(upstream, root.toString())).rejects.toThrow(
71
+ "pnpm sync-katex-css",
72
+ );
73
+ },
74
+ );
75
+
76
+ it("preserves math sizing, tag alignment, and equation counters without bundling font faces", () => {
77
+ const root = postcss.parse(generated);
78
+ const declarations = (selector: string) => {
79
+ const values: Record<string, string> = {};
80
+ root.walkRules(selector, (rule) => {
81
+ rule.walkDecls((decl) => {
82
+ values[decl.prop] = decl.value;
83
+ });
84
+ });
85
+ return values;
86
+ };
87
+ expect(declarations(".katex")).toEqual({
88
+ "font-family": '"KaTeX_Main", "Times New Roman", serif',
89
+ "font-size": "110%",
90
+ "font-style": "normal",
91
+ "line-height": "inherit",
92
+ position: "relative",
93
+ "text-indent": "0",
94
+ "text-rendering": "auto",
95
+ });
96
+ expect(
97
+ declarations(".katex-display > .katex > .katex-html > .katex-tag"),
98
+ ).toEqual({ position: "absolute", right: "0", "text-align": "right" });
99
+ expect(declarations("body,\n.katex-display")).toEqual({
100
+ "counter-reset": "katexEqnNo mmlEqnNo",
101
+ });
102
+ expect(declarations(".katex .angl")["border-right"]).toBe("0.049em solid");
103
+ const fontFaces: postcss.AtRule[] = [];
104
+ root.walkAtRules("font-face", (rule) => {
105
+ fontFaces.push(rule);
106
+ });
107
+ expect(fontFaces).toEqual([]);
108
+ });
109
+
110
+ it.each(["root", "media"])(
111
+ "preserves SVG rule order and %s scope when upstream adds a competing rule",
112
+ async (scope) => {
113
+ const root = postcss.parse(upstream);
114
+ const svgRules: postcss.Rule[] = [];
115
+ root.walkRules(".katex svg", (rule) => {
116
+ svgRules.push(rule);
117
+ });
118
+ const secondSvg = svgRules[1];
119
+ secondSvg.before(postcss.parse(".katex :is(svg) { stroke-width: 3; }"));
120
+ if (scope === "media") {
121
+ const media = postcss.atRule({ name: "media", params: "print" });
122
+ secondSvg.before(media);
123
+ media.append(secondSvg);
124
+ }
125
+
126
+ const svgCascade = (css: string) => {
127
+ const rules: {
128
+ selector: string;
129
+ scope: string;
130
+ strokeWidth: string | undefined;
131
+ }[] = [];
132
+ postcss.parse(css).walkRules((rule) => {
133
+ if (
134
+ rule.selector !== ".katex svg" &&
135
+ rule.selector !== ".katex :is(svg)"
136
+ ) {
137
+ return;
138
+ }
139
+ let strokeWidth: string | undefined;
140
+ rule.walkDecls("stroke-width", (decl) => {
141
+ strokeWidth = decl.value;
142
+ });
143
+ const parent = rule.parent;
144
+ rules.push({
145
+ selector: rule.selector,
146
+ scope:
147
+ parent?.type === "atrule"
148
+ ? `${parent.name} ${parent.params}`
149
+ : "root",
150
+ strokeWidth,
151
+ });
152
+ });
153
+ return rules;
154
+ };
155
+ const regenerated = await generateKatexCss(root.toString());
156
+ expect(svgCascade(regenerated)).toEqual(svgCascade(root.toString()));
157
+ await checkKatexCss(root.toString(), regenerated);
158
+ },
159
+ );
160
+
161
+ it("requires review when an overridden upstream declaration changes", async () => {
162
+ await expect(
163
+ generateKatexCss(upstream.replace("line-height:1.2", "line-height:1.3")),
164
+ ).rejects.toThrow("review overrides");
165
+ });
166
+ });