@marimo-team/islands 0.16.4 → 0.17.0

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 (589) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CCjhPKMy.js → ConnectedDataExplorerComponent-DJEUH6Bb.js} +78 -100
  2. package/dist/{_baseIsEqual-oN7pRNcM.js → _baseIsEqual-CN4oFUZ4.js} +20 -20
  3. package/dist/{_basePickBy-CYvzhRjy.js → _basePickBy-CzSvE_-f.js} +3 -3
  4. package/dist/{_baseProperty-DGUdIBuu.js → _baseProperty-DbbUiyUD.js} +5 -5
  5. package/dist/{_baseUniq-B5gfSl8S.js → _baseUniq-DwoC-LVO.js} +4 -4
  6. package/dist/any-language-editor-CEXn1vFs.js +156 -0
  7. package/dist/apl-DuVfHsPc.js +4 -0
  8. package/dist/architecture-O4VJ6CD3-lp-opOaL.js +21 -0
  9. package/dist/{architectureDiagram-W76B3OCA-DkEhipkW.js → architectureDiagram-W76B3OCA-CoBORy6u.js} +34 -34
  10. package/dist/asciiarmor-qIVWsi4F.js +4 -0
  11. package/dist/asn1-BjPqARr7.js +4 -0
  12. package/dist/assets/__vite-browser-external-lX-sn9m2.js +1 -0
  13. package/dist/assets/worker-vPn7gxWj.js +54 -0
  14. package/dist/{blockDiagram-QIGZ2CNN-DZOqLMYa.js → blockDiagram-QIGZ2CNN-0yzoLIar.js} +75 -86
  15. package/dist/brainfuck-DPGTVfkE.js +4 -0
  16. package/dist/{button-CEcjneWG.js → button-DcnBVpVa.js} +11 -14
  17. package/dist/{c4Diagram-FPNF74CW-DVaR7c9q.js → c4Diagram-FPNF74CW-CKsIA_DD.js} +27 -51
  18. package/dist/{channel-Uh0KpgGW.js → channel-3LVvQZcD.js} +1 -1
  19. package/dist/{check-BK9zDfQk.js → check-D7ifz5op.js} +1 -1
  20. package/dist/{chunk-3AY6CYHV-Dk2R2-S1.js → chunk-3AY6CYHV-B2C-aVc3.js} +35 -35
  21. package/dist/{chunk-4BX2VUAB-CqO6zUIz.js → chunk-4BX2VUAB-DEd4VI9L.js} +1 -1
  22. package/dist/{chunk-4KMFLZZN-CloTfTwP.js → chunk-4KMFLZZN-DnvP3O4K.js} +216 -325
  23. package/dist/{chunk-55IACEB6-I0rmqTua.js → chunk-55IACEB6-BcCzwOOl.js} +1 -1
  24. package/dist/{chunk-6OXUPJBA-BuROSTmo.js → chunk-6OXUPJBA-eNAAfJ3Q.js} +7 -7
  25. package/dist/{chunk-7GE3RBXV-B1-tsIPP.js → chunk-7GE3RBXV-CSAeQvLz.js} +1 -1
  26. package/dist/{chunk-ABZYJK2D-CLlso8tj.js → chunk-ABZYJK2D-CZcb_1iM.js} +16 -20
  27. package/dist/{chunk-BN7GFLIU-Db2-FjLn.js → chunk-BN7GFLIU-pBc5O5Rh.js} +1 -1
  28. package/dist/{chunk-CVBHYZKI-BONeiloK.js → chunk-CVBHYZKI-CivHZg9P.js} +3 -3
  29. package/dist/{chunk-CXMOBAN2-U9GJSP1d.js → chunk-CXMOBAN2-Dd0E6qb0.js} +46 -54
  30. package/dist/chunk-EXTU4WIE-GQ2ZWfJo.js +10 -0
  31. package/dist/{chunk-FMBD7UC4-DyV3BR_I.js → chunk-FMBD7UC4-C6YcisV6.js} +1 -1
  32. package/dist/{chunk-JA3XYJ7Z-C9A1076P.js → chunk-JA3XYJ7Z-DYeQaT57.js} +21 -25
  33. package/dist/{chunk-JEIROHC2-BGnFkSVq.js → chunk-JEIROHC2-B-EZMP4V.js} +1 -1
  34. package/dist/{chunk-K7UQS3LO-033LOsjK.js → chunk-K7UQS3LO-DENzlS-M.js} +7 -7
  35. package/dist/{chunk-KMC2YHZD-DT4Sq4Ld.js → chunk-KMC2YHZD-SckhHdEh.js} +1 -1
  36. package/dist/{chunk-QN33PNHL-gs44MZla.js → chunk-QN33PNHL-Cjq5b604.js} +2 -2
  37. package/dist/{chunk-QYVHNE3D-B8BO1AnT.js → chunk-QYVHNE3D-CNUuivie.js} +3 -4
  38. package/dist/{chunk-QZHKN3VN-CeN_GkU6.js → chunk-QZHKN3VN-DugEU_bA.js} +1 -1
  39. package/dist/chunk-S3R3BYOJ-itCT6Vif.js +380 -0
  40. package/dist/{chunk-T44TD3VJ-BwzD6YE0.js → chunk-T44TD3VJ-BLdfTX8J.js} +1 -1
  41. package/dist/{chunk-TVAH2DTR-Bi6jpQJQ.js → chunk-TVAH2DTR-BOnwF9d8.js} +7 -8
  42. package/dist/{chunk-TZMSLE5B-D8klz2H_.js → chunk-TZMSLE5B-DGs66AlL.js} +4 -5
  43. package/dist/{chunk-WFRQ32O7-CzSwSlN0.js → chunk-WFRQ32O7-CPsipkmJ.js} +1 -1
  44. package/dist/{chunk-WFWHJNB7-DN_cavM6.js → chunk-WFWHJNB7-Cmed18Pk.js} +1 -1
  45. package/dist/{chunk-XRWGC2XP-Bb5eGNM2.js → chunk-XRWGC2XP-DH5GDaY8.js} +1 -1
  46. package/dist/{chunk-ZPAFE4SF-S5UYNb0V.js → chunk-ZPAFE4SF-DPDwaqZm.js} +22 -22
  47. package/dist/classDiagram-KNZD7YFC-azuS_99k.js +39 -0
  48. package/dist/classDiagram-v2-RKCZMP56-CQpyQQOR.js +39 -0
  49. package/dist/{click-outside-container-DE4e7p1p.js → click-outside-container-CL_FkgGY.js} +7 -12
  50. package/dist/{clike-CxAz4p9E.js → clike-DYfRWWXk.js} +1 -1
  51. package/dist/{clike-Cg_DBrJ0.js → clike-bzZTreP4.js} +1 -1
  52. package/dist/clojure-ATksAecl.js +4 -0
  53. package/dist/{clone-Dk4FkKH0.js → clone-Msbhmn2a.js} +1 -1
  54. package/dist/cmake-CWylaz2C.js +4 -0
  55. package/dist/cobol-BiLLCZIQ.js +4 -0
  56. package/dist/coffeescript-Ca4jipi8.js +4 -0
  57. package/dist/commonlisp-BwFjyEC7.js +4 -0
  58. package/dist/{constants-Cjd_3kwd.js → constants-BCOEQoEQ.js} +3 -3
  59. package/dist/{copy-C5RFg7ok.js → copy-BkZ8PkBM.js} +6 -2
  60. package/dist/{cose-bilkent-S5V4N54A-B3iOTGu5.js → cose-bilkent-S5V4N54A-BZnbwyVD.js} +20 -20
  61. package/dist/crystal-BhUsQHbh.js +4 -0
  62. package/dist/css-Cf4wlIyV.js +5 -0
  63. package/dist/cypher-Dj8Hzgxa.js +4 -0
  64. package/dist/{cytoscape.esm-DTDV0Nbj.js → cytoscape.esm-BTpRoPd2.js} +586 -661
  65. package/dist/d-DZI7tbTy.js +4 -0
  66. package/dist/{dagre-5GWH7T2D-KM4Z11yT.js → dagre-5GWH7T2D-BGaiSZZO.js} +32 -37
  67. package/dist/{dagre-B0u1urxE.js → dagre-pyfDIOWJ.js} +57 -76
  68. package/dist/data-grid-overlay-editor-867aBz0Y.js +133 -0
  69. package/dist/{diagram-N5W7TBWH-CtO7az4G.js → diagram-N5W7TBWH-CzLE0jZB.js} +35 -51
  70. package/dist/diagram-QEK2KX5R-AGS60xEZ.js +245 -0
  71. package/dist/{diagram-S2PKOQOG-CiXElLNQ.js → diagram-S2PKOQOG-BxRoG6yW.js} +28 -28
  72. package/dist/diff-WQISUHG5.js +4 -0
  73. package/dist/{dist-CdE2C2In.js → dist-2Ne-33Xy.js} +15 -20
  74. package/dist/{dist-DKFaZRVk.js → dist-B0YD1aXi.js} +2 -2
  75. package/dist/{dist-DBhzmFyH.js → dist-B1Dv8Sdk.js} +3 -3
  76. package/dist/{dist-CGIZPq3J.js → dist-BFkr6kAQ.js} +2 -2
  77. package/dist/{dist-DL_ci7Yc.js → dist-BL2DSY0P.js} +1 -1
  78. package/dist/dist-BawZu0ix.js +10 -0
  79. package/dist/{dist-Bar1QnNM.js → dist-BhVFggab.js} +3 -3
  80. package/dist/{textile-Cy55fYGC.js → dist-BiOF7987.js} +4 -2
  81. package/dist/{dist-BQmQQqFH.js → dist-BpzZrRd6.js} +1 -1
  82. package/dist/{dist-CxD5E6Sh.js → dist-C7zhQ7K0.js} +24 -22
  83. package/dist/{dist-BqgkUnEN.js → dist-CBhnQKQ4.js} +3 -3
  84. package/dist/{dist-Dzk1C8l5.js → dist-CId4IPXu.js} +10 -13
  85. package/dist/{dist-CUnh_3Ii.js → dist-CYhQCVru.js} +2 -2
  86. package/dist/{dist-BBlFk9ki.js → dist-CZq5-ZyD.js} +1 -1
  87. package/dist/{dist-elblfNXO.js → dist-Cacac5HV.js} +2 -2
  88. package/dist/{dist-CChOkSUg.js → dist-CfQHSIQC.js} +3 -3
  89. package/dist/{dist-JCAky9ND.js → dist-CkvGMBAS.js} +17 -22
  90. package/dist/dist-Cs3McXEj.js +6 -0
  91. package/dist/{dist-o7fhJC7U.js → dist-CvyfRaIr.js} +3 -3
  92. package/dist/{dist-CZfRM7pE.js → dist-D-3fICwh.js} +2 -2
  93. package/dist/dist-D3aaithT.js +6 -0
  94. package/dist/{dist-CutXTm8t.js → dist-DBhEu3-F.js} +1 -1
  95. package/dist/dist-DELcMSpJ.js +6 -0
  96. package/dist/{dist-C7ASiFxI.js → dist-DMxl6Qbu.js} +273 -263
  97. package/dist/{dist-CLvpViod.js → dist-DS6nuHYK.js} +2 -3
  98. package/dist/dist-Dgts3WXd.js +6 -0
  99. package/dist/{dist--I6Htnlv.js → dist-DlHkZUnY.js} +5 -5
  100. package/dist/dist-Doiq_KIP.js +15 -0
  101. package/dist/dist-DtpUiDG_.js +6 -0
  102. package/dist/{dist-DzOpMdwb.js → dist-NUdHX0XE.js} +4 -4
  103. package/dist/{dist-C3WYsf4K.js → dist-PGgOcwbF.js} +4 -10
  104. package/dist/{dist-DNnYAdRE.js → dist-RdxOJbBw.js} +2 -2
  105. package/dist/{dist-BEvIw5Nh.js → dist-RwqAqkpG.js} +1 -1
  106. package/dist/dist-ZjnJq_jD.js +10 -0
  107. package/dist/{dist-CbRkrKrP.js → dist-biZ846D9.js} +5 -5
  108. package/dist/{dist-DW9er3Zq.js → dist-d5NxvX2s.js} +44 -23
  109. package/dist/{dist-C3QUag__.js → dist-ivwkJchV.js} +3 -3
  110. package/dist/dist-mof3iuBu.js +12 -0
  111. package/dist/{dist-Cib4sGDA.js → dist-reo2kYlN.js} +2 -2
  112. package/dist/{dist-BZBitvuL.js → dist-wHVprCkn.js} +1 -1
  113. package/dist/{dist-C5zMs_n5.js → dist-y8uoXYaE.js} +3 -3
  114. package/dist/{dist-DPF5TTUg.js → dist-z_iuDES7.js} +126 -115
  115. package/dist/{dockerfile-Dum_1b-5.js → dockerfile-sZMPcXVY.js} +1 -1
  116. package/dist/dtd-B2M8dhfC.js +4 -0
  117. package/dist/dylan-CU3Vt8SC.js +4 -0
  118. package/dist/ecl-B8ESAVq4.js +4 -0
  119. package/dist/eiffel-DDfMIKeA.js +4 -0
  120. package/dist/elm-Bj6rj8jf.js +4 -0
  121. package/dist/{erDiagram-AWTI2OKA-ZTIl9iQO.js → erDiagram-AWTI2OKA-CTxzb-U8.js} +20 -20
  122. package/dist/erlang-BxyshZUq.js +4 -0
  123. package/dist/{error-banner-OQIGTqFR.js → error-banner-npbEfanI.js} +13 -13
  124. package/dist/{esm-DxFkg7a6.js → esm-BdiY4QsX.js} +1528 -1492
  125. package/dist/{esm-d0g2RsOH.js → esm-CAWW9sum.js} +6 -8
  126. package/dist/{esm-1_Mp6VD2.js → esm-YY5zh7KV.js} +324 -395
  127. package/dist/{esm-BO9n_s6u.js → esm-svAVli9f.js} +5 -5
  128. package/dist/{factor-CdgiDGiu.js → factor-CRFTmP_a.js} +1 -1
  129. package/dist/factor-CYk6XT8r.js +5 -0
  130. package/dist/{flowDiagram-PVAE7QVJ-DsbofOzu.js → flowDiagram-PVAE7QVJ-Dck2hiJe.js} +22 -22
  131. package/dist/{formats-D5C6JAJf.js → formats-BnqXUb1V.js} +13 -17
  132. package/dist/forth-fcoJkd-f.js +4 -0
  133. package/dist/fortran-IxZHu4wc.js +4 -0
  134. package/dist/{fullscreen-D1yTiBlu.js → fullscreen-blsKUrtN.js} +741 -744
  135. package/dist/{ganttDiagram-OWAHRB6G-FnCH1Yj3.js → ganttDiagram-OWAHRB6G-AWzfzpup.js} +9 -9
  136. package/dist/gas-B8rmKcim.js +4 -0
  137. package/dist/gherkin-BTm-jIdJ.js +4 -0
  138. package/dist/gitGraph-ZV4HHKMB-DFg_OLQb.js +21 -0
  139. package/dist/{gitGraphDiagram-NY62KEGX-B0wvMNqU.js → gitGraphDiagram-NY62KEGX-GyNboWSV.js} +31 -34
  140. package/dist/{glide-data-editor-CYfKmSNp.js → glide-data-editor-DHuN8kQ8.js} +1701 -1771
  141. package/dist/{graphlib-BGmr7CYF.js → graphlib-hb3zmtVD.js} +5 -5
  142. package/dist/groovy-01kRHFMD.js +4 -0
  143. package/dist/haskell-B3PhE05w.js +4 -0
  144. package/dist/haxe-DEoAm8oA.js +5 -0
  145. package/dist/{hotkeys-yFrUwyJK.js → hotkeys-Ct2T3e9O.js} +4 -7
  146. package/dist/idl-DsDJU9cV.js +4 -0
  147. package/dist/info-63CPKGFF-D3DZmDBa.js +21 -0
  148. package/dist/infoDiagram-STP46IZ2-ec08vi_U.js +44 -0
  149. package/dist/{isArrayLikeObject-DiDsNamC.js → isArrayLikeObject-BlvK28do.js} +3 -5
  150. package/dist/{isEmpty-BBG-u1GM.js → isEmpty--odfYjh1.js} +2 -2
  151. package/dist/{isSymbol-BxF-_8BA.js → isSymbol-Cb1f2HgO.js} +1 -1
  152. package/dist/{javascript-Dfq1qI35.js → javascript-BfCTmOnk.js} +2 -2
  153. package/dist/javascript-gwczVhuU.js +5 -0
  154. package/dist/jinja2-AkZRdFk3.js +4 -0
  155. package/dist/{journeyDiagram-BIP6EPQ6-B3PotfAW.js → journeyDiagram-BIP6EPQ6-TmXYCUbT.js} +23 -24
  156. package/dist/julia-_s6qe3bf.js +4 -0
  157. package/dist/{kanban-definition-6OIFK2YF-BTrQZ3LN.js → kanban-definition-6OIFK2YF-B6ozleHo.js} +15 -15
  158. package/dist/{katex-dN__NFdn.js → katex-mPzRsXEy.js} +1 -1
  159. package/dist/{katex-BE4xflfm.js → katex-mkWmhPUh.js} +149 -173
  160. package/dist/{label-BinTsX-u.js → label-VVRKZmrP.js} +21 -24
  161. package/dist/{linear-DyTdUIqX.js → linear-iebAbJVD.js} +1 -1
  162. package/dist/livescript-CwPHQdv5.js +4 -0
  163. package/dist/{loader-Dijti3y4.js → loader-CM0VALo9.js} +19 -26
  164. package/dist/lua-s7nRxkCP.js +4 -0
  165. package/dist/main.js +8234 -8633
  166. package/dist/{marked.esm-3RjvXPoO.js → marked.esm-DJM8la36.js} +5 -5
  167. package/dist/mathematica-Ci36yd1q.js +4 -0
  168. package/dist/mbox-DbOYMNCO.js +4 -0
  169. package/dist/{memoize-Dq87l1O_.js → memoize-DYoRBSLn.js} +1 -1
  170. package/dist/{merge-BPDCIm8P.js → merge-BjuR6j_w.js} +1 -1
  171. package/dist/{mermaid-BlJDcO4M.js → mermaid-YPPMBmhk.js} +58 -76
  172. package/dist/{mermaid-parser.core-CSFx6MQ7.js → mermaid-parser.core-BLkyTSZj.js} +8 -8
  173. package/dist/{mhchem-DZ68WS0G.js → mhchem-Dw7wvXtr.js} +1 -1
  174. package/dist/{min-BzhKOmZo.js → min-B_i2ahn4.js} +7 -7
  175. package/dist/{mindmap-definition-Q6HEUPPD-9hhnrO1k.js → mindmap-definition-Q6HEUPPD-F6-JnXwq.js} +17 -17
  176. package/dist/mirc-VmNe8AwF.js +4 -0
  177. package/dist/mllike-BdD7SJEa.js +6 -0
  178. package/dist/modelica-BA4VqzC3.js +4 -0
  179. package/dist/mscgen-DF-5WHJm.js +6 -0
  180. package/dist/mumps-c_Uia_QN.js +4 -0
  181. package/dist/{node-sql-parser-13oju30e.js → node-sql-parser-BqKV-TpL.js} +14343 -14351
  182. package/dist/{now-DVBcRCoE.js → now-CwRqw0nS.js} +1 -1
  183. package/dist/nsis-BAANGODV.js +5 -0
  184. package/dist/{nsis-BW6_XagK.js → nsis-BWJEeUyS.js} +1 -1
  185. package/dist/ntriples-Bslqh2Ki.js +4 -0
  186. package/dist/{number-overlay-editor-D1YdiOrm.js → number-overlay-editor-CeyruAX4.js} +17 -23
  187. package/dist/octave-DYn5ltia.js +4 -0
  188. package/dist/oz-B_N-StZq.js +4 -0
  189. package/dist/packet-HUATNLJX-CkqjFdAv.js +21 -0
  190. package/dist/pascal-DU4CtAUu.js +4 -0
  191. package/dist/perl-Bae6k32u.js +4 -0
  192. package/dist/pie-WTHONI2E-D0rWwX5P.js +21 -0
  193. package/dist/{pieDiagram-ADFJNKIX-CSBC0ZgF.js → pieDiagram-ADFJNKIX-C5dSQVCn.js} +28 -28
  194. package/dist/pig-DSIxUEgX.js +4 -0
  195. package/dist/powershell-31lcPgIF.js +4 -0
  196. package/dist/powershell-BZx53Ujw.js +236 -0
  197. package/dist/properties-lmYbntDG.js +4 -0
  198. package/dist/protobuf-BTYoCEpV.js +4 -0
  199. package/dist/pug-DMFM7zzO.js +5 -0
  200. package/dist/{pug-Bmups_z0.js → pug-PJh82u1M.js} +1 -1
  201. package/dist/puppet-B0ub07d-.js +4 -0
  202. package/dist/python-C4jT87Nt.js +5 -0
  203. package/dist/{q-BzWcnVri.js → q-CMoUHJ5Q.js} +3 -2
  204. package/dist/q-YbPYlqRI.js +4 -0
  205. package/dist/{quadrantDiagram-LMRXKWRM-h7nHf8xG.js → quadrantDiagram-LMRXKWRM-DlahxNiy.js} +7 -7
  206. package/dist/r-OfNu6HAI.js +4 -0
  207. package/dist/radar-NJJJXTRR-Bxqv4O5a.js +21 -0
  208. package/dist/{range-CgK0-PEw.js → range-DxfkexCE.js} +3 -3
  209. package/dist/{react-plotly-BZakcxdv.js → react-plotly-D_IAfR8f.js} +4364 -4705
  210. package/dist/{requirementDiagram-4UW4RH46-BGEurQYq.js → requirementDiagram-4UW4RH46-DTkinyvU.js} +17 -17
  211. package/dist/rpm-D_3b5peD.js +5 -0
  212. package/dist/ruby-CehsJy_T.js +4 -0
  213. package/dist/{sankeyDiagram-GR3RE2ED-CxeJ_jfl.js → sankeyDiagram-GR3RE2ED-CsLnEnnq.js} +3 -3
  214. package/dist/sas-DwQHzPoF.js +4 -0
  215. package/dist/scheme-B6ArxiQu.js +4 -0
  216. package/dist/{sequenceDiagram-C3RYC4MD-CbFxwyr_.js → sequenceDiagram-C3RYC4MD-BdEOR6SC.js} +20 -30
  217. package/dist/shell-AHmQgDfc.js +4 -0
  218. package/dist/sieve-CgodKOcx.js +4 -0
  219. package/dist/{simple-mode-Cgyya8F-.js → simple-mode-BP3Jd4vf.js} +1 -1
  220. package/dist/{slides-component-BEyG25AH.js → slides-component-2bbal1YJ.js} +24 -46
  221. package/dist/smalltalk-BeFzDkbo.js +4 -0
  222. package/dist/sparql-BWxq-Lnx.js +4 -0
  223. package/dist/{src-BNNJRxz3.js → src-DZkaBUmt.js} +6 -6
  224. package/dist/{stateDiagram-KXAO66HF-A61bMf29.js → stateDiagram-KXAO66HF-DQLH2jhP.js} +39 -41
  225. package/dist/stateDiagram-v2-UMBNRL4Z-D9v8fKjF.js +38 -0
  226. package/dist/stex-Dvaq0qsm.js +5 -0
  227. package/dist/style.css +1 -1
  228. package/dist/stylus-Ge0ofWlZ.js +4 -0
  229. package/dist/swift-CjQfbVxV.js +4 -0
  230. package/dist/tcl-CAGDF11K.js +4 -0
  231. package/dist/textile-CrXreJtf.js +4 -0
  232. package/dist/{time-D3tzCqJ6.js → time-CFkXkVrt.js} +1 -1
  233. package/dist/{timeline-definition-XQNQX7LJ-BwdsB7CR.js → timeline-definition-XQNQX7LJ-bToVq14i.js} +4 -5
  234. package/dist/{timer-D3Zlu9ow.js → timer-CzOhIJuk.js} +2 -2
  235. package/dist/{toNumber-efKT08hh.js → toNumber-EFF1Z9T1.js} +2 -2
  236. package/dist/{toString-BvCd3yJc.js → toString-C2mCkasT.js} +2 -2
  237. package/dist/toml-AdLXKwEi.js +4 -0
  238. package/dist/{toml-CIUkU1CP.js → toml-eSl4PUAH.js} +6 -2
  239. package/dist/treemap-75Q7IDZK-Da9Jv6a_.js +21 -0
  240. package/dist/troff-C-LaM2ex.js +4 -0
  241. package/dist/ttcn-DTclUi6T.js +4 -0
  242. package/dist/ttcn-cfg-BtBPbmLX.js +4 -0
  243. package/dist/turtle-BODDDg5O.js +4 -0
  244. package/dist/{types-Dcb1hf55.js → types-CRXV0KD5.js} +385 -252
  245. package/dist/{useAsyncData-DAtPzJzP.js → useAsyncData-uMVTsDI9.js} +1 -1
  246. package/dist/{useDateFormatter-CiUlIu7v.js → useDateFormatter-Dcz7jstn.js} +6 -6
  247. package/dist/{useTheme-CmsvrO5o.js → useTheme-NbEx-ZNV.js} +14 -10
  248. package/dist/vb-Cb1HQHii.js +4 -0
  249. package/dist/vbscript-CpXOP4wZ.js +4 -0
  250. package/dist/{vega-component-B3LA6qbm.js → vega-component-hegVmfuS.js} +21 -21
  251. package/dist/{vega-loader.browser.module-Bi3ttvdj.js → vega-loader.browser.module-DcW8jnKp.js} +1 -2
  252. package/dist/velocity-Dz0rBQIk.js +4 -0
  253. package/dist/verilog-6Di9aLKw.js +4 -0
  254. package/dist/vhdl-BRNesXYc.js +4 -0
  255. package/dist/webidl-BpRNYIYn.js +4 -0
  256. package/dist/xquery-DXWcJ7b6.js +4 -0
  257. package/dist/{xychartDiagram-6GGTOJPD-BJRRi5HC.js → xychartDiagram-6GGTOJPD-C7Bhm_yt.js} +12 -13
  258. package/dist/yacas-DbSARPz4.js +4 -0
  259. package/dist/z80-DzslPj_l.js +4 -0
  260. package/dist/{zod-UPQf9SGn.js → zod-ChY6miG5.js} +71 -81
  261. package/package.json +12 -12
  262. package/src/__mocks__/requests.ts +2 -0
  263. package/src/__tests__/chat-history.test.ts +123 -0
  264. package/src/components/app-config/ai-config.tsx +23 -0
  265. package/src/components/app-config/mcp-config.tsx +42 -2
  266. package/src/components/app-config/user-config-form.tsx +29 -49
  267. package/src/components/chat/acp/__tests__/context-utils.test.ts +1 -1
  268. package/src/components/chat/acp/agent-panel.tsx +1 -1
  269. package/src/components/chat/acp/blocks.tsx +46 -53
  270. package/src/components/chat/acp/common.tsx +1 -1
  271. package/src/components/chat/acp/context-utils.ts +1 -1
  272. package/src/components/chat/acp/session-tabs.tsx +1 -1
  273. package/src/components/chat/chat-history-popover.tsx +125 -0
  274. package/src/components/chat/chat-history-utils.ts +69 -0
  275. package/src/components/chat/chat-panel.tsx +9 -57
  276. package/src/components/chat/chat-utils.ts +11 -4
  277. package/src/components/data-table/__tests__/header-items.test.tsx +117 -0
  278. package/src/components/data-table/column-header.tsx +4 -2
  279. package/src/components/data-table/columns.tsx +2 -1
  280. package/src/components/data-table/data-table.tsx +7 -2
  281. package/src/components/data-table/header-items.tsx +63 -10
  282. package/src/components/dependency-graph/custom-node.tsx +11 -11
  283. package/src/components/dependency-graph/elements.ts +9 -4
  284. package/src/components/dependency-graph/panels.tsx +6 -4
  285. package/src/components/editor/Output.tsx +6 -1
  286. package/src/components/editor/__tests__/data-attributes.test.tsx +1 -1
  287. package/src/components/editor/actions/useNotebookActions.tsx +2 -4
  288. package/src/components/editor/ai/__tests__/completion-utils.test.ts +23 -31
  289. package/src/components/editor/ai/ai-completion-editor.tsx +135 -5
  290. package/src/components/editor/ai/completion-handlers.tsx +106 -22
  291. package/src/components/editor/cell/CreateCellButton.tsx +14 -2
  292. package/src/components/editor/cell/code/cell-editor.tsx +6 -0
  293. package/src/components/editor/chrome/panels/cache-panel.tsx +216 -0
  294. package/src/components/editor/chrome/panels/empty-state.tsx +3 -1
  295. package/src/components/editor/chrome/types.ts +66 -22
  296. package/src/components/editor/chrome/wrapper/app-chrome.tsx +2 -0
  297. package/src/components/editor/database/schemas.ts +2 -10
  298. package/src/components/editor/errors/auto-fix.tsx +138 -32
  299. package/src/components/editor/errors/fix-mode.ts +15 -0
  300. package/src/components/editor/navigation/__tests__/clipboard.test.ts +0 -5
  301. package/src/components/editor/navigation/clipboard.ts +2 -1
  302. package/src/components/editor/{Cell.tsx → notebook-cell.tsx} +25 -8
  303. package/src/components/editor/output/ConsoleOutput.tsx +27 -33
  304. package/src/components/editor/output/JsonOutput.tsx +9 -0
  305. package/src/components/editor/output/MarimoErrorOutput.tsx +4 -34
  306. package/src/components/editor/output/MarimoTracebackOutput.tsx +10 -7
  307. package/src/components/editor/output/__tests__/json-output.test.ts +43 -0
  308. package/src/components/editor/package-alert.tsx +3 -0
  309. package/src/components/editor/renderers/{CellArray.tsx → cell-array.tsx} +1 -1
  310. package/src/components/forms/__tests__/form-utils.test.ts +6 -4
  311. package/src/components/icons/copy-icon.tsx +11 -5
  312. package/src/components/mcp/hooks.ts +48 -0
  313. package/src/components/mcp/mcp-status-indicator.tsx +144 -0
  314. package/src/components/shortcuts/renderShortcut.tsx +3 -1
  315. package/src/components/ui/button.tsx +2 -0
  316. package/src/components/ui/confirmation-button.tsx +85 -0
  317. package/src/components/ui/number-field.tsx +4 -1
  318. package/src/components/ui/switch.tsx +2 -0
  319. package/src/core/ai/context/providers/__tests__/__snapshots__/tables.test.ts.snap +13 -19
  320. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +0 -1
  321. package/src/core/ai/context/providers/__tests__/datasource.test.ts +14 -7
  322. package/src/core/ai/context/providers/__tests__/error.test.ts +24 -15
  323. package/src/core/ai/context/providers/cell-output.ts +5 -5
  324. package/src/core/ai/context/providers/common.ts +13 -4
  325. package/src/core/ai/context/providers/datasource.ts +56 -21
  326. package/src/core/ai/context/providers/error.ts +3 -4
  327. package/src/core/ai/context/providers/file.ts +2 -2
  328. package/src/core/ai/context/providers/tables.ts +36 -8
  329. package/src/core/ai/context/providers/variable.ts +2 -3
  330. package/src/core/ai/state.ts +6 -3
  331. package/src/core/ai/tools/__tests__/registry.test.ts +33 -8
  332. package/src/core/ai/tools/base.ts +81 -1
  333. package/src/core/ai/tools/registry.ts +36 -10
  334. package/src/core/ai/tools/sample-tool.ts +44 -8
  335. package/src/core/cache/requests.ts +5 -0
  336. package/src/core/cells/__tests__/cells.test.ts +6 -6
  337. package/src/core/cells/cells.ts +13 -14
  338. package/src/core/cells/scrollCellIntoView.ts +1 -1
  339. package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +2 -0
  340. package/src/core/codemirror/__tests__/replace-editor-content.test.ts +336 -0
  341. package/src/core/codemirror/__tests__/setup.test.ts +1 -0
  342. package/src/core/codemirror/cm.ts +3 -2
  343. package/src/core/codemirror/find-replace/navigate.ts +2 -2
  344. package/src/core/codemirror/format.ts +2 -9
  345. package/src/core/codemirror/language/__tests__/sql.test.ts +24 -6
  346. package/src/core/codemirror/language/languages/python.ts +1 -3
  347. package/src/core/codemirror/language/languages/sql/sql.ts +23 -13
  348. package/src/core/codemirror/language/panel/panel.tsx +1 -6
  349. package/src/core/codemirror/language/utils.ts +3 -8
  350. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +21 -14
  351. package/src/core/codemirror/lsp/federated-lsp.ts +20 -9
  352. package/src/core/codemirror/lsp/notebook-lsp.ts +35 -29
  353. package/src/core/codemirror/lsp/types.ts +0 -13
  354. package/src/core/codemirror/replace-editor-content.ts +87 -0
  355. package/src/core/config/__tests__/config-schema.test.ts +5 -0
  356. package/src/core/config/config-schema.ts +10 -0
  357. package/src/core/config/feature-flag.tsx +2 -6
  358. package/src/core/edit-app.tsx +1 -1
  359. package/src/core/errors/__tests__/errors.test.ts +1 -0
  360. package/src/core/errors/errors.ts +20 -6
  361. package/src/core/islands/bridge.ts +2 -0
  362. package/src/core/islands/main.ts +4 -0
  363. package/src/core/kernel/messages.ts +1 -0
  364. package/src/core/network/CachingRequestRegistry.ts +2 -2
  365. package/src/core/network/requests-network.ts +14 -0
  366. package/src/core/network/requests-static.ts +2 -0
  367. package/src/core/network/requests-toasting.ts +2 -0
  368. package/src/core/network/types.ts +5 -0
  369. package/src/core/saving/save-component.tsx +43 -36
  370. package/src/core/wasm/bridge.ts +2 -0
  371. package/src/core/websocket/useMarimoWebSocket.tsx +8 -0
  372. package/src/css/app/codemirror-completions.css +1 -1
  373. package/src/custom.d.ts +2 -0
  374. package/src/plugins/core/registerReactComponent.tsx +5 -1
  375. package/src/plugins/impl/DataTablePlugin.tsx +19 -19
  376. package/src/plugins/impl/__tests__/DateTimePickerPlugin.test.tsx +32 -0
  377. package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
  378. package/src/plugins/impl/chat/chat-ui.tsx +17 -2
  379. package/src/plugins/impl/chat/types.ts +1 -1
  380. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +7 -2
  381. package/src/plugins/impl/plotly/__tests__/parse-from-template.test.ts +17 -0
  382. package/src/plugins/impl/plotly/parse-from-template.ts +2 -1
  383. package/src/stories/cell.stories.tsx +1 -1
  384. package/src/stories/layout/vertical/one-column.stories.tsx +1 -1
  385. package/src/utils/__tests__/formatting.test.ts +107 -0
  386. package/src/utils/__tests__/json-parser.test.ts +13 -0
  387. package/src/utils/copy.ts +6 -0
  388. package/src/utils/formatting.ts +51 -0
  389. package/src/utils/json/json-parser.ts +28 -3
  390. package/src/utils/numbers.ts +24 -1
  391. package/dist/any-language-editor-CVFQlioK.js +0 -156
  392. package/dist/apl-ChlaBfxB.js +0 -4
  393. package/dist/architecture-O4VJ6CD3-BVeaxUcM.js +0 -21
  394. package/dist/asciiarmor-CcJmm3l_.js +0 -4
  395. package/dist/asn1-ThRYxoBE.js +0 -4
  396. package/dist/assets/__vite-browser-external-BeNtI_tJ.js +0 -1
  397. package/dist/assets/worker-DnuXpGWN.js +0 -54
  398. package/dist/brainfuck-CEM0JgDn.js +0 -4
  399. package/dist/chunk-EXTU4WIE-DECT9AAK.js +0 -14
  400. package/dist/chunk-S3R3BYOJ-DMQ1yeyq.js +0 -386
  401. package/dist/classDiagram-KNZD7YFC-BG53O6Jt.js +0 -39
  402. package/dist/classDiagram-v2-RKCZMP56-BmKILsGU.js +0 -39
  403. package/dist/clojure-B7RHyE9t.js +0 -4
  404. package/dist/cmake-TeTMP4I5.js +0 -4
  405. package/dist/cobol-DI-mxUER.js +0 -4
  406. package/dist/coffeescript-DHUFLqWp.js +0 -4
  407. package/dist/commonlisp-SLiUrh1m.js +0 -4
  408. package/dist/crystal-B4fY1ZfJ.js +0 -4
  409. package/dist/css-Bdoq3TzK.js +0 -5
  410. package/dist/cypher-CBU182fp.js +0 -4
  411. package/dist/d-D8myDZeH.js +0 -4
  412. package/dist/data-grid-overlay-editor-qNmJk2x0.js +0 -135
  413. package/dist/diagram-QEK2KX5R-fu8Noi3H.js +0 -245
  414. package/dist/diff-DJF_UB7H.js +0 -4
  415. package/dist/dist-52-_pKoy.js +0 -6
  416. package/dist/dist-6DOMStFn.js +0 -6
  417. package/dist/dist-B334aW7p.js +0 -10
  418. package/dist/dist-BOI9lUz-.js +0 -12
  419. package/dist/dist-C06uhBzF.js +0 -6
  420. package/dist/dist-CGkpguCB.js +0 -6
  421. package/dist/dist-CrApzUED.js +0 -6
  422. package/dist/dist-Dp2GLdCl.js +0 -14
  423. package/dist/dist-WHFsbMDr.js +0 -6
  424. package/dist/dist-hyKcTPG9.js +0 -10
  425. package/dist/dtd-DY8q65lC.js +0 -4
  426. package/dist/dylan-CBLcjWCi.js +0 -4
  427. package/dist/ecl-BSXPNfOw.js +0 -4
  428. package/dist/eiffel-BJf0PQX-.js +0 -4
  429. package/dist/elm-DWQwPCZS.js +0 -4
  430. package/dist/erlang-BWBaGZ5e.js +0 -4
  431. package/dist/factor-DT1-MBPl.js +0 -5
  432. package/dist/forth-D9GDt3FB.js +0 -4
  433. package/dist/fortran-DHkRhDWw.js +0 -4
  434. package/dist/gas-7lQEOM0H.js +0 -4
  435. package/dist/gherkin-BLLyroYi.js +0 -4
  436. package/dist/gitGraph-ZV4HHKMB-z2v_cInC.js +0 -21
  437. package/dist/groovy-C-wabwj0.js +0 -4
  438. package/dist/haskell-DaxVQ_d1.js +0 -4
  439. package/dist/haxe-C2yLoC7h.js +0 -5
  440. package/dist/idl-DQBP8i7k.js +0 -4
  441. package/dist/info-63CPKGFF-GS4w6pCB.js +0 -21
  442. package/dist/infoDiagram-STP46IZ2-DE9YYPFg.js +0 -44
  443. package/dist/javascript-DRwFV9r5.js +0 -5
  444. package/dist/jinja2-CNoIpVmN.js +0 -4
  445. package/dist/julia-DXDf-GhP.js +0 -4
  446. package/dist/livescript-S2uhJQx7.js +0 -4
  447. package/dist/lua-Bvgs0y2G.js +0 -4
  448. package/dist/mathematica-D2zqfwIg.js +0 -4
  449. package/dist/mbox-SBcPaDuZ.js +0 -4
  450. package/dist/mirc-hkQc7sVF.js +0 -4
  451. package/dist/mllike-DRWPBlr9.js +0 -6
  452. package/dist/modelica-CO2ROGlP.js +0 -4
  453. package/dist/mscgen-BpX61bO6.js +0 -6
  454. package/dist/mumps-BCnFeIn6.js +0 -4
  455. package/dist/nsis-BaTOxlD1.js +0 -5
  456. package/dist/ntriples-zEo5BWjr.js +0 -4
  457. package/dist/octave-BE0RnCM9.js +0 -4
  458. package/dist/oz-C4_2Ttul.js +0 -4
  459. package/dist/packet-HUATNLJX-CjHqJIqk.js +0 -21
  460. package/dist/pascal-Q3jJucpw.js +0 -4
  461. package/dist/perl-DkXZIWHF.js +0 -4
  462. package/dist/pie-WTHONI2E-D67gLWtR.js +0 -21
  463. package/dist/pig-DCgEHdsu.js +0 -4
  464. package/dist/powershell-3rK_nRRJ.js +0 -236
  465. package/dist/powershell-Eo2-7MoM.js +0 -4
  466. package/dist/properties-C0IOX8WR.js +0 -4
  467. package/dist/protobuf--lGQUSRO.js +0 -4
  468. package/dist/pug-Cf8AQHMJ.js +0 -5
  469. package/dist/puppet-D7Z3dTJn.js +0 -4
  470. package/dist/python-FHIx_i8Y.js +0 -5
  471. package/dist/q-B7UA1feM.js +0 -4
  472. package/dist/r-Cc9R2A7N.js +0 -4
  473. package/dist/radar-NJJJXTRR-C-AZP_Te.js +0 -21
  474. package/dist/rpm-vhJNlrQ6.js +0 -5
  475. package/dist/ruby-CVluPY0M.js +0 -4
  476. package/dist/sas-A8DL8oy3.js +0 -4
  477. package/dist/scheme-6xHHcSXC.js +0 -4
  478. package/dist/shell-DHN-e5rf.js +0 -4
  479. package/dist/sieve-BuQwLY02.js +0 -4
  480. package/dist/smalltalk-BA4HPg2H.js +0 -4
  481. package/dist/sparql-Bf4yCuy3.js +0 -4
  482. package/dist/stateDiagram-v2-UMBNRL4Z-C_0FUzzk.js +0 -38
  483. package/dist/stex-D-I1cYeE.js +0 -5
  484. package/dist/stylus-BMeped2l.js +0 -4
  485. package/dist/swift-lwEdlZoC.js +0 -4
  486. package/dist/tcl-B03ipeqv.js +0 -4
  487. package/dist/toml-BLgrVtfu.js +0 -4
  488. package/dist/treemap-75Q7IDZK-DTvwfpWt.js +0 -21
  489. package/dist/troff-g6EjN2O2.js +0 -4
  490. package/dist/ttcn-Dzvba8jK.js +0 -4
  491. package/dist/ttcn-cfg-CadG0p1K.js +0 -4
  492. package/dist/turtle-DkXAMWo9.js +0 -4
  493. package/dist/vb-C5dCiel8.js +0 -4
  494. package/dist/vbscript-I4bDEQln.js +0 -4
  495. package/dist/velocity-mt0fDwFH.js +0 -4
  496. package/dist/verilog-Dxq3KJkc.js +0 -4
  497. package/dist/vhdl-Km0QUlV-.js +0 -4
  498. package/dist/webidl-B3lJ2MRL.js +0 -4
  499. package/dist/xquery-CcIxNPEe.js +0 -4
  500. package/dist/yacas-oMa-f-tN.js +0 -4
  501. package/dist/z80-D03Nvn6l.js +0 -4
  502. /package/dist/{apl-DZqo8Elt.js → apl-CEHentF4.js} +0 -0
  503. /package/dist/{asciiarmor-DTzHAIeX.js → asciiarmor-DURYiCS0.js} +0 -0
  504. /package/dist/{asn1-DrAXKsZH.js → asn1-ETAiEoXY.js} +0 -0
  505. /package/dist/{asterisk-oF4U3h48.js → asterisk-DTpbbXPb.js} +0 -0
  506. /package/dist/{brainfuck-BYgLey30.js → brainfuck-BWQep-SA.js} +0 -0
  507. /package/dist/{clojure-Bs2M3OUY.js → clojure-BzFapDkA.js} +0 -0
  508. /package/dist/{cmake-DpI8vxJN.js → cmake-DvlbIC8x.js} +0 -0
  509. /package/dist/{cobol-BQyrWo72.js → cobol-BrEI4cPR.js} +0 -0
  510. /package/dist/{coffeescript-9ke9UHmw.js → coffeescript-B6cvu8mO.js} +0 -0
  511. /package/dist/{common-keywords-BzgeAvH1.js → common-keywords-WqQm7W8t.js} +0 -0
  512. /package/dist/{commonlisp-DghUdrUH.js → commonlisp-BIT8PQqi.js} +0 -0
  513. /package/dist/{crystal-DEf_SInh.js → crystal-B_UcPArT.js} +0 -0
  514. /package/dist/{css-BzTU9lNO.js → css-dHbnt_zl.js} +0 -0
  515. /package/dist/{cypher-a2v0c11S.js → cypher-Dh3FOpL7.js} +0 -0
  516. /package/dist/{d-SAswny-M.js → d-CQD1IHee.js} +0 -0
  517. /package/dist/{diff-OJ-xLXcG.js → diff-CpF_IDx0.js} +0 -0
  518. /package/dist/{dtd-BsUf-rer.js → dtd-DYoNpy6c.js} +0 -0
  519. /package/dist/{duckdb-keywords-B0NOra5o.js → duckdb-keywords-CdIsl9L0.js} +0 -0
  520. /package/dist/{dylan-C0ZYngjn.js → dylan-Bc_2G1E-.js} +0 -0
  521. /package/dist/{ebnf-DF1xx0b_.js → ebnf-jGVT_YpN.js} +0 -0
  522. /package/dist/{ecl-Bsuvoouq.js → ecl-UIU-P-Ar.js} +0 -0
  523. /package/dist/{eiffel-DgfSpLi-.js → eiffel-C90Oyuix.js} +0 -0
  524. /package/dist/{elm-GNxDj-5E.js → elm-B9fWSySj.js} +0 -0
  525. /package/dist/{erlang-Ds3uY1kL.js → erlang-Ccff0UAn.js} +0 -0
  526. /package/dist/{fcl-CqBgSioc.js → fcl-CGR8NxAg.js} +0 -0
  527. /package/dist/{forth-JCaLysGk.js → forth-U1ROGcBY.js} +0 -0
  528. /package/dist/{fortran-Dc2AoKAl.js → fortran-3nOkjDmc.js} +0 -0
  529. /package/dist/{gas-Q4Uz82YW.js → gas-B_4H5FzV.js} +0 -0
  530. /package/dist/{gherkin-Dpxe49sQ.js → gherkin-B0eru5Uz.js} +0 -0
  531. /package/dist/{groovy-D8mTRCu6.js → groovy-dqjtZUVf.js} +0 -0
  532. /package/dist/{haskell-2_8cC4wY.js → haskell-DFzCCQzo.js} +0 -0
  533. /package/dist/{haxe-Bl9zkZlz.js → haxe-Da8Pj5RT.js} +0 -0
  534. /package/dist/{http-DKCqY6yS.js → http-1HACL_9s.js} +0 -0
  535. /package/dist/{idl-Dn-HNfGW.js → idl-D3NXs5iM.js} +0 -0
  536. /package/dist/{jinja2-JjFiAGKk.js → jinja2-gBHAxUdF.js} +0 -0
  537. /package/dist/{julia-R5wne8eu.js → julia-bG-6nJ-_.js} +0 -0
  538. /package/dist/{livescript-DSwokrYj.js → livescript-BlsRC8UJ.js} +0 -0
  539. /package/dist/{lua-CgXfrp2-.js → lua-BbDC0_5w.js} +0 -0
  540. /package/dist/{mathematica-BVli92MR.js → mathematica-YZTe3-PF.js} +0 -0
  541. /package/dist/{mbox-CMFlocdS.js → mbox-CY5idp08.js} +0 -0
  542. /package/dist/{mirc-BkW04Zpc.js → mirc-CbQuFZKk.js} +0 -0
  543. /package/dist/{mllike-DEjvHvNV.js → mllike-DsbHMX-5.js} +0 -0
  544. /package/dist/{modelica-CxDn-oje.js → modelica-CQuvsOQk.js} +0 -0
  545. /package/dist/{mscgen-D78wmE-w.js → mscgen-LIpBP9VR.js} +0 -0
  546. /package/dist/{mumps-Bi0IvPOV.js → mumps-Ct5NXoaG.js} +0 -0
  547. /package/dist/{nginx-DErPZFhX.js → nginx-Dvc62C8z.js} +0 -0
  548. /package/dist/{ntriples-Btyp6wRL.js → ntriples-jVkxWUuv.js} +0 -0
  549. /package/dist/{octave-CZA6-2F8.js → octave-jGOImUB0.js} +0 -0
  550. /package/dist/{oz-Bm6LSNfE.js → oz-Y0FKDMS2.js} +0 -0
  551. /package/dist/{pascal-B4J6a9BH.js → pascal-BaLtPWWB.js} +0 -0
  552. /package/dist/{perl-CzVqxS08.js → perl-CjfE0JLo.js} +0 -0
  553. /package/dist/{pig-Clh03cnn.js → pig-DE4epV99.js} +0 -0
  554. /package/dist/{properties-D7ch1Wyb.js → properties-CLyCG5C-.js} +0 -0
  555. /package/dist/{protobuf-DrkdrMPK.js → protobuf-BjBBs_V4.js} +0 -0
  556. /package/dist/{puppet-BtZG8zdO.js → puppet-ZImLuomA.js} +0 -0
  557. /package/dist/{python-B6FKOVIv.js → python-C9YN71pR.js} +0 -0
  558. /package/dist/{r-Dnvo5-96.js → r-DILmKWWW.js} +0 -0
  559. /package/dist/{rpm-B1DrgfnX.js → rpm-fpIsm1Kr.js} +0 -0
  560. /package/dist/{ruby-CelfUg17.js → ruby-BuiQI41h.js} +0 -0
  561. /package/dist/{sas-DfSQFMWG.js → sas-C76sJ1zF.js} +0 -0
  562. /package/dist/{scheme-BplhaWuO.js → scheme-DHjM-txv.js} +0 -0
  563. /package/dist/{shell-DqU5OS2c.js → shell--7NmGJ9p.js} +0 -0
  564. /package/dist/{sieve-BE4_IyGa.js → sieve-DaPvBv1M.js} +0 -0
  565. /package/dist/{smalltalk-B_WPL8Nx.js → smalltalk-KPvwrjCs.js} +0 -0
  566. /package/dist/{solr-DlJFg7H5.js → solr-PvZUtEDb.js} +0 -0
  567. /package/dist/{sparql-7XIlcOgW.js → sparql-CXSUIQer.js} +0 -0
  568. /package/dist/{spreadsheet-BdZSVwVp.js → spreadsheet-DPJdGPkx.js} +0 -0
  569. /package/dist/{sql-CCrq7lfJ.js → sql-Dp4ZLSIa.js} +0 -0
  570. /package/dist/{stex-BiFc8QAu.js → stex-CeXW4zzk.js} +0 -0
  571. /package/dist/{stylus-DlSH9xpH.js → stylus-BXcmrg9w.js} +0 -0
  572. /package/dist/{swift-e3tMTZgJ.js → swift-DD8I7hKP.js} +0 -0
  573. /package/dist/{tcl-DfZMC20G.js → tcl-B9Lp4GtA.js} +0 -0
  574. /package/dist/{textile-DaSeca5U.js → textile-qdiY0teq.js} +0 -0
  575. /package/dist/{tiddlywiki-dfoiz8pS.js → tiddlywiki-t32lkubq.js} +0 -0
  576. /package/dist/{tiki-yJbQzhma.js → tiki-B0qKrSMl.js} +0 -0
  577. /package/dist/{troff-FN_FrCXR.js → troff-105XJOEu.js} +0 -0
  578. /package/dist/{ttcn-7_i4HlyB.js → ttcn-1_BxDcM8.js} +0 -0
  579. /package/dist/{ttcn-cfg-B46AlBUV.js → ttcn-cfg-Cn_XgXiw.js} +0 -0
  580. /package/dist/{turtle-QQfeFveR.js → turtle-BI6LyfEu.js} +0 -0
  581. /package/dist/{vb-DToPVnLa.js → vb-BecoBfmr.js} +0 -0
  582. /package/dist/{vbscript-CtsNaTz4.js → vbscript-De-zpA4i.js} +0 -0
  583. /package/dist/{velocity-CAoNe6ns.js → velocity-DhlYJTrD.js} +0 -0
  584. /package/dist/{verilog-DrDOMiJq.js → verilog-BDZgxDOW.js} +0 -0
  585. /package/dist/{vhdl-DnO0OEPh.js → vhdl-CV0OKTbp.js} +0 -0
  586. /package/dist/{webidl-Or6d1ZfA.js → webidl-BOM1Fs0O.js} +0 -0
  587. /package/dist/{xquery-CEp_Mcpr.js → xquery-CltP_CGh.js} +0 -0
  588. /package/dist/{yacas-DgnYrSlp.js → yacas-Dch4E2Dg.js} +0 -0
  589. /package/dist/{z80-DlG_kyeB.js → z80-B5Yly27o.js} +0 -0
@@ -5,7 +5,7 @@ import { type Atom, atom, useAtom, useAtomValue } from "jotai";
5
5
  import { atomFamily, selectAtom, splitAtom } from "jotai/utils";
6
6
  import { isEqual, zip } from "lodash-es";
7
7
  import { createRef, type ReducerWithoutAction } from "react";
8
- import type { CellHandle } from "@/components/editor/Cell";
8
+ import type { CellHandle } from "@/components/editor/notebook-cell";
9
9
  import {
10
10
  type CellColumnId,
11
11
  type CellIndex,
@@ -1324,21 +1324,19 @@ const {
1324
1324
  cellRuntime: newCellRuntime,
1325
1325
  };
1326
1326
  },
1327
- upsertSetupCell: (state, action: { code: string }) => {
1328
- const { code } = action;
1327
+ addSetupCellIfDoesntExist: (state, action: { code?: string }) => {
1328
+ let { code } = action;
1329
+ if (code == null) {
1330
+ code = "# Initialization code that runs before all other cells";
1331
+ }
1329
1332
 
1330
1333
  // First check if setup cell already exists
1331
1334
  if (SETUP_CELL_ID in state.cellData) {
1332
- // Update existing setup cell
1333
- return updateCellData({
1334
- state,
1335
- cellId: SETUP_CELL_ID,
1336
- cellReducer: (cell) => ({
1337
- ...cell,
1338
- code,
1339
- edited: code.trim() !== cell.lastCodeRun?.trim(),
1340
- }),
1341
- });
1335
+ // Just focus on the existing setup cell
1336
+ return {
1337
+ ...state,
1338
+ scrollKey: SETUP_CELL_ID,
1339
+ };
1342
1340
  }
1343
1341
 
1344
1342
  return {
@@ -1365,6 +1363,7 @@ const {
1365
1363
  ...state.cellHandles,
1366
1364
  [SETUP_CELL_ID]: createRef(),
1367
1365
  },
1366
+ scrollKey: SETUP_CELL_ID,
1368
1367
  };
1369
1368
  },
1370
1369
  });
@@ -1616,7 +1615,7 @@ export const columnIdsAtom = atom((get) =>
1616
1615
  get(notebookAtom).cellIds.getColumnIds(),
1617
1616
  );
1618
1617
 
1619
- const cellDataAtom = atomFamily((cellId: CellId) =>
1618
+ export const cellDataAtom = atomFamily((cellId: CellId) =>
1620
1619
  atom((get) => get(notebookAtom).cellData[cellId]),
1621
1620
  );
1622
1621
  const cellRuntimeAtom = atomFamily((cellId: CellId) =>
@@ -1,10 +1,10 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
  import type { RefObject } from "react";
3
- import type { CellHandle } from "@/components/editor/Cell";
4
3
  import {
5
4
  isAnyCellFocused,
6
5
  tryFocus,
7
6
  } from "@/components/editor/navigation/focus-utils";
7
+ import type { CellHandle } from "@/components/editor/notebook-cell";
8
8
  import { retryWithTimeout } from "@/utils/timeout";
9
9
  import { Logger } from "../../utils/Logger";
10
10
  import { goToVariableDefinition } from "../codemirror/go-to-definition/commands";
@@ -45,6 +45,7 @@ exports[`snapshot all duplicate keymaps > default keymaps 2`] = `
45
45
  },
46
46
  {
47
47
  "key": "Backspace",
48
+ "preventDefault": true,
48
49
  "run": "deleteCharBackward",
49
50
  "shift": "deleteCharBackward",
50
51
  },
@@ -153,6 +154,7 @@ exports[`snapshot all duplicate keymaps > vim keymaps 2`] = `
153
154
  },
154
155
  {
155
156
  "key": "Backspace",
157
+ "preventDefault": true,
156
158
  "run": "deleteCharBackward",
157
159
  "shift": "deleteCharBackward",
158
160
  },
@@ -0,0 +1,336 @@
1
+ /* Copyright 2024 Marimo. All rights reserved. */
2
+
3
+ import { EditorState } from "@codemirror/state";
4
+ import { EditorView } from "@codemirror/view";
5
+ import { describe, expect, it, vi } from "vitest";
6
+ import { replaceEditorContent } from "../replace-editor-content";
7
+
8
+ describe("replaceEditorContent", () => {
9
+ it("should replace content when editor doesn't have focus", () => {
10
+ const view = new EditorView({
11
+ state: EditorState.create({
12
+ doc: "original content",
13
+ }),
14
+ });
15
+
16
+ // Editor doesn't have focus by default
17
+ expect(view.hasFocus).toBe(false);
18
+
19
+ replaceEditorContent(view, "new content");
20
+
21
+ expect(view.state.doc.toString()).toBe("new content");
22
+ // Cursor position is not preserved when not focused
23
+ expect(view.state.selection.main.head).toBe(0);
24
+
25
+ view.destroy();
26
+ });
27
+
28
+ it("should preserve cursor position when editor has focus (same line)", () => {
29
+ const view = new EditorView({
30
+ state: EditorState.create({
31
+ doc: "Hello World",
32
+ selection: { anchor: 6 }, // Position after "Hello "
33
+ }),
34
+ });
35
+
36
+ // Mock hasFocus to return true
37
+ Object.defineProperty(view, "hasFocus", {
38
+ get: () => true,
39
+ configurable: true,
40
+ });
41
+
42
+ expect(view.hasFocus).toBe(true);
43
+
44
+ // Replace with similar length content on same line
45
+ replaceEditorContent(view, "Goodbye Everyone");
46
+
47
+ expect(view.state.doc.toString()).toBe("Goodbye Everyone");
48
+
49
+ // Cursor should stay at the same column (6) since it's still within the line
50
+ const newCursorPos = view.state.selection.main.head;
51
+ expect(newCursorPos).toBe(6);
52
+
53
+ view.destroy();
54
+ });
55
+
56
+ it("should preserve cursor at beginning when focused", () => {
57
+ const view = new EditorView({
58
+ state: EditorState.create({
59
+ doc: "Hello World",
60
+ selection: { anchor: 0 }, // At beginning
61
+ }),
62
+ });
63
+
64
+ Object.defineProperty(view, "hasFocus", {
65
+ get: () => true,
66
+ configurable: true,
67
+ });
68
+
69
+ replaceEditorContent(view, "Goodbye Everyone");
70
+
71
+ expect(view.state.doc.toString()).toBe("Goodbye Everyone");
72
+ // Cursor should stay at beginning
73
+ expect(view.state.selection.main.head).toBe(0);
74
+
75
+ view.destroy();
76
+ });
77
+
78
+ it("should clamp cursor when line shrinks", () => {
79
+ const view = new EditorView({
80
+ state: EditorState.create({
81
+ doc: "Hello World",
82
+ selection: { anchor: 11 }, // At end (column 11)
83
+ }),
84
+ });
85
+
86
+ Object.defineProperty(view, "hasFocus", {
87
+ get: () => true,
88
+ configurable: true,
89
+ });
90
+
91
+ // Replace with shorter content
92
+ replaceEditorContent(view, "Goodbye");
93
+
94
+ expect(view.state.doc.toString()).toBe("Goodbye");
95
+ // Cursor should be clamped to end of line since column 11 > line length (7)
96
+ expect(view.state.selection.main.head).toBe(7);
97
+
98
+ view.destroy();
99
+ });
100
+
101
+ it("should handle empty document", () => {
102
+ const view = new EditorView({
103
+ state: EditorState.create({
104
+ doc: "",
105
+ }),
106
+ });
107
+
108
+ Object.defineProperty(view, "hasFocus", {
109
+ get: () => true,
110
+ configurable: true,
111
+ });
112
+
113
+ replaceEditorContent(view, "new content");
114
+
115
+ expect(view.state.doc.toString()).toBe("new content");
116
+ expect(view.state.selection.main.head).toBe(0);
117
+
118
+ view.destroy();
119
+ });
120
+
121
+ it("should do nothing when content is the same", () => {
122
+ const view = new EditorView({
123
+ state: EditorState.create({
124
+ doc: "same content",
125
+ selection: { anchor: 5 },
126
+ }),
127
+ });
128
+
129
+ const dispatchSpy = vi.spyOn(view, "dispatch");
130
+
131
+ replaceEditorContent(view, "same content");
132
+
133
+ // No dispatch should have been called
134
+ expect(dispatchSpy).not.toHaveBeenCalled();
135
+ expect(view.state.doc.toString()).toBe("same content");
136
+ expect(view.state.selection.main.head).toBe(5);
137
+
138
+ view.destroy();
139
+ });
140
+
141
+ it("should handle cursor in middle of focused document", () => {
142
+ const view = new EditorView({
143
+ state: EditorState.create({
144
+ doc: "The quick brown fox jumps",
145
+ selection: { anchor: 10 }, // After "The quick " (column 10)
146
+ }),
147
+ });
148
+
149
+ Object.defineProperty(view, "hasFocus", {
150
+ get: () => true,
151
+ configurable: true,
152
+ });
153
+
154
+ // Replace with longer content
155
+ replaceEditorContent(view, "The extremely quick brown fox jumps over");
156
+
157
+ expect(view.state.doc.toString()).toBe(
158
+ "The extremely quick brown fox jumps over",
159
+ );
160
+
161
+ // Cursor should stay at same column (10) on same line
162
+ const newCursorPos = view.state.selection.main.head;
163
+ expect(newCursorPos).toBe(10);
164
+
165
+ view.destroy();
166
+ });
167
+
168
+ it("should respect preserveCursor=false when focused", () => {
169
+ const view = new EditorView({
170
+ state: EditorState.create({
171
+ doc: "Hello World",
172
+ selection: { anchor: 6 },
173
+ }),
174
+ });
175
+
176
+ Object.defineProperty(view, "hasFocus", {
177
+ get: () => true,
178
+ configurable: true,
179
+ });
180
+
181
+ replaceEditorContent(view, "Goodbye Everyone", { preserveCursor: false });
182
+
183
+ expect(view.state.doc.toString()).toBe("Goodbye Everyone");
184
+ // When preserveCursor is false, cursor is not explicitly set
185
+ // so it defaults to 0
186
+ expect(view.state.selection.main.head).toBe(0);
187
+
188
+ view.destroy();
189
+ });
190
+
191
+ it("should handle newlines and multiline content", () => {
192
+ const view = new EditorView({
193
+ state: EditorState.create({
194
+ doc: "Line 1\nLine 2\nLine 3",
195
+ // Cursor at position 10: "Line 1\nLi|ne 2\nLine 3"
196
+ // Line 2, column 2 (after "Li")
197
+ selection: { anchor: 10 },
198
+ }),
199
+ });
200
+
201
+ Object.defineProperty(view, "hasFocus", {
202
+ get: () => true,
203
+ configurable: true,
204
+ });
205
+
206
+ replaceEditorContent(view, "Line 1\nLine 2 updated\nLine 3\nLine 4");
207
+
208
+ expect(view.state.doc.toString()).toBe(
209
+ "Line 1\nLine 2 updated\nLine 3\nLine 4",
210
+ );
211
+
212
+ // Cursor should stay on line 2 at column 2 (after "Li")
213
+ // "Line 1\nLi|ne 2 updated\nLine 3\nLine 4"
214
+ const newCursorPos = view.state.selection.main.head;
215
+ expect(newCursorPos).toBe(10); // Same position, line 2 column 2
216
+
217
+ view.destroy();
218
+ });
219
+
220
+ it("should move cursor up when line is deleted", () => {
221
+ const view = new EditorView({
222
+ state: EditorState.create({
223
+ doc: "Line 1\nLine 2\nLine 3",
224
+ selection: { anchor: 14 }, // Line 3, start of line
225
+ }),
226
+ });
227
+
228
+ Object.defineProperty(view, "hasFocus", {
229
+ get: () => true,
230
+ configurable: true,
231
+ });
232
+
233
+ // Replace with only 2 lines (line 3 is deleted)
234
+ replaceEditorContent(view, "Line 1\nLine 2");
235
+
236
+ expect(view.state.doc.toString()).toBe("Line 1\nLine 2");
237
+
238
+ // Cursor should move to end of last available line
239
+ const newCursorPos = view.state.selection.main.head;
240
+ expect(newCursorPos).toBe(13); // End of "Line 1\nLine 2"
241
+
242
+ view.destroy();
243
+ });
244
+
245
+ it("should stay at end of line when new line is added", () => {
246
+ const view = new EditorView({
247
+ state: EditorState.create({
248
+ doc: "Hello World",
249
+ selection: { anchor: 11 }, // At end (column 11)
250
+ }),
251
+ });
252
+
253
+ Object.defineProperty(view, "hasFocus", {
254
+ get: () => true,
255
+ configurable: true,
256
+ });
257
+
258
+ replaceEditorContent(view, "Hello World\nSome new line");
259
+
260
+ expect(view.state.doc.toString()).toBe("Hello World\nSome new line");
261
+ const newCursorPos = view.state.selection.main.head;
262
+ expect(newCursorPos).toBe(11);
263
+
264
+ view.destroy();
265
+ });
266
+
267
+ it("should preserve cursor on same line with column clamping", () => {
268
+ const view = new EditorView({
269
+ state: EditorState.create({
270
+ doc: "def function_with_long_name():",
271
+ selection: { anchor: 25 }, // Near end of line
272
+ }),
273
+ });
274
+
275
+ Object.defineProperty(view, "hasFocus", {
276
+ get: () => true,
277
+ configurable: true,
278
+ });
279
+
280
+ // Replace with shorter line
281
+ replaceEditorContent(view, "def fn():");
282
+
283
+ expect(view.state.doc.toString()).toBe("def fn():");
284
+
285
+ // Cursor should be clamped to end of shorter line
286
+ const newCursorPos = view.state.selection.main.head;
287
+ expect(newCursorPos).toBe(9); // End of "def fn():"
288
+
289
+ view.destroy();
290
+ });
291
+
292
+ it("should handle selection range (collapses to head position)", () => {
293
+ const view = new EditorView({
294
+ state: EditorState.create({
295
+ doc: "Hello World",
296
+ selection: { anchor: 0, head: 5 }, // "Hello" selected
297
+ }),
298
+ });
299
+
300
+ Object.defineProperty(view, "hasFocus", {
301
+ get: () => true,
302
+ configurable: true,
303
+ });
304
+
305
+ replaceEditorContent(view, "Goodbye Everyone");
306
+
307
+ expect(view.state.doc.toString()).toBe("Goodbye Everyone");
308
+ // Selection head (5) is preserved as cursor position
309
+ expect(view.state.selection.main.head).toBe(5);
310
+ expect(view.state.selection.main.anchor).toBe(5);
311
+
312
+ view.destroy();
313
+ });
314
+
315
+ it("should handle replacing with empty string", () => {
316
+ const view = new EditorView({
317
+ state: EditorState.create({
318
+ doc: "Some content to clear",
319
+ selection: { anchor: 10 },
320
+ }),
321
+ });
322
+
323
+ Object.defineProperty(view, "hasFocus", {
324
+ get: () => true,
325
+ configurable: true,
326
+ });
327
+
328
+ replaceEditorContent(view, "");
329
+
330
+ expect(view.state.doc.toString()).toBe("");
331
+ // Cursor should be at position 0 (only valid position in empty doc)
332
+ expect(view.state.selection.main.head).toBe(0);
333
+
334
+ view.destroy();
335
+ });
336
+ });
@@ -67,6 +67,7 @@ function getOpts() {
67
67
  hotkeys: new OverridingHotkeyProvider({}),
68
68
  theme: "light",
69
69
  displayConfig: { reference_highlighting: false },
70
+ inlineAiTooltip: false,
70
71
  } as const;
71
72
  }
72
73
 
@@ -46,7 +46,6 @@ import type {
46
46
  KeymapConfig,
47
47
  LSPConfig,
48
48
  } from "../config/config-schema";
49
- import { getFeatureFlag } from "../config/feature-flag";
50
49
  import type { HotkeyProvider } from "../hotkeys/hotkeys";
51
50
  import { store } from "../state/jotai";
52
51
  import { requestEditCompletion } from "./ai/request";
@@ -83,6 +82,7 @@ export interface CodeMirrorSetupOpts {
83
82
  lspConfig: LSPConfig;
84
83
  diagnosticsConfig: DiagnosticsConfig;
85
84
  displayConfig: Pick<DisplayConfig, "reference_highlighting">;
85
+ inlineAiTooltip: boolean;
86
86
  }
87
87
 
88
88
  function getPlaceholderType(opts: CodeMirrorSetupOpts) {
@@ -104,6 +104,7 @@ export const setupCodeMirror = (opts: CodeMirrorSetupOpts): Extension[] => {
104
104
  lspConfig,
105
105
  diagnosticsConfig,
106
106
  displayConfig,
107
+ inlineAiTooltip,
107
108
  } = opts;
108
109
  const placeholderType = getPlaceholderType(opts);
109
110
 
@@ -128,7 +129,7 @@ export const setupCodeMirror = (opts: CodeMirrorSetupOpts): Extension[] => {
128
129
  goToDefinitionBundle(),
129
130
  diagnosticsConfig?.enabled ? lintGutter() : [],
130
131
  // AI edit inline
131
- enableAI && getFeatureFlag("inline_ai_tooltip")
132
+ enableAI && inlineAiTooltip
132
133
  ? [
133
134
  aiExtension({
134
135
  prompt: (req) => {
@@ -4,6 +4,7 @@ import { SearchQuery } from "@codemirror/search";
4
4
  import { EditorSelection } from "@codemirror/state";
5
5
  import { EditorView } from "@codemirror/view";
6
6
  import { getAllEditorViews } from "@/core/cells/cells";
7
+ import { replaceEditorContent } from "@/core/codemirror/replace-editor-content";
7
8
  import { store } from "@/core/state/jotai";
8
9
  import { asQueryCreator, type QueryType } from "./query";
9
10
  import { findReplaceAtom } from "./state";
@@ -127,8 +128,7 @@ export const replaceAll = searchCommand(({ query }) => {
127
128
 
128
129
  const prevDoc = view.state.doc.toString();
129
130
  undoHandlers.push(() => {
130
- view.dispatch({
131
- changes: [{ from: 0, to: view.state.doc.length, insert: prevDoc }],
131
+ replaceEditorContent(view, prevDoc, {
132
132
  userEvent: "input.replace.all",
133
133
  });
134
134
  });
@@ -17,6 +17,7 @@ import {
17
17
  getEditorCodeAsPython,
18
18
  updateEditorCodeFromPython,
19
19
  } from "./language/utils";
20
+ import { replaceEditorContent } from "./replace-editor-content";
20
21
 
21
22
  export const formattingChangeEffect = StateEffect.define<boolean>();
22
23
 
@@ -106,15 +107,7 @@ export async function formatSQL(editor: EditorView) {
106
107
  });
107
108
 
108
109
  // Update editor with formatted SQL
109
- const doc = editor.state.doc;
110
-
111
- // Noop if the code is the same
112
- if (doc.toString() === formattedSQL) {
113
- return;
114
- }
115
-
116
- editor.dispatch({
117
- changes: { from: 0, to: doc.length, insert: formattedSQL },
110
+ replaceEditorContent(editor, formattedSQL, {
118
111
  effects: [formattingChangeEffect.of(true)],
119
112
  });
120
113
  }
@@ -8,6 +8,12 @@ import { PostgreSQL } from "@codemirror/lang-sql";
8
8
  import { EditorState, type Extension } from "@codemirror/state";
9
9
  import { DuckDBDialect } from "@marimo-team/codemirror-sql/dialects";
10
10
  import { afterEach, beforeEach, describe, expect, it } from "vitest";
11
+ import type { CellId } from "@/core/cells/ids";
12
+ import type {
13
+ CompletionConfig,
14
+ DiagnosticsConfig,
15
+ LSPConfig,
16
+ } from "@/core/config/config-schema";
11
17
  import type { DataSourceConnection } from "@/core/datasets/data-source-connections";
12
18
  import {
13
19
  dataSourceConnectionsAtom,
@@ -16,7 +22,9 @@ import {
16
22
  import { type ConnectionName, DUCKDB_ENGINE } from "@/core/datasets/engines";
17
23
  import { datasetsAtom } from "@/core/datasets/state";
18
24
  import type { DatasetsState } from "@/core/datasets/types";
25
+ import type { HotkeyProvider } from "@/core/hotkeys/hotkeys";
19
26
  import { store } from "@/core/state/jotai";
27
+ import type { PlaceholderType } from "../../config/types";
20
28
  import { TestSQLCompletionStore } from "../languages/sql/completion-store";
21
29
  import {
22
30
  SQLLanguageAdapter,
@@ -28,6 +36,16 @@ const adapter = new SQLLanguageAdapter();
28
36
 
29
37
  const TEST_ENGINE = "test_engine" as ConnectionName;
30
38
 
39
+ const TEST_EXTENSION_ARGS = [
40
+ {} as CellId,
41
+ {} as CompletionConfig,
42
+ {} as HotkeyProvider,
43
+ {} as PlaceholderType,
44
+ {} as LSPConfig & {
45
+ diagnostics: DiagnosticsConfig;
46
+ },
47
+ ] as const;
48
+
31
49
  describe("SQLLanguageAdapter", () => {
32
50
  describe("defaultMetadata", () => {
33
51
  it("should be set", () => {
@@ -1716,7 +1734,7 @@ describe("tablesCompletionSource", () => {
1716
1734
  const ctx = createCompletionContext(state, 14);
1717
1735
 
1718
1736
  const adapter = new SQLLanguageAdapter();
1719
- const extensions = adapter.getExtension();
1737
+ const extensions = adapter.getExtension(...TEST_EXTENSION_ARGS);
1720
1738
  const completion = getCompletion(extensions);
1721
1739
 
1722
1740
  expect(completion).toBeDefined();
@@ -1779,7 +1797,7 @@ describe("tablesCompletionSource", () => {
1779
1797
  const ctx = createCompletionContext(state, 15, "u", 14);
1780
1798
 
1781
1799
  const adapter = new SQLLanguageAdapter();
1782
- const extensions = adapter.getExtension();
1800
+ const extensions = adapter.getExtension(...TEST_EXTENSION_ARGS);
1783
1801
  const completion = getCompletion(extensions);
1784
1802
 
1785
1803
  expect(completion).toBeDefined();
@@ -1810,7 +1828,7 @@ describe("tablesCompletionSource", () => {
1810
1828
  const ctx = createCompletionContext(state, 15, "d", 14);
1811
1829
 
1812
1830
  const adapter = new SQLLanguageAdapter();
1813
- const extensions = adapter.getExtension();
1831
+ const extensions = adapter.getExtension(...TEST_EXTENSION_ARGS);
1814
1832
  const completion = getCompletion(extensions);
1815
1833
 
1816
1834
  expect(completion).toBeDefined();
@@ -1843,7 +1861,7 @@ describe("tablesCompletionSource", () => {
1843
1861
  const ctx = createCompletionContext(state, 3, "SEL", 0);
1844
1862
 
1845
1863
  const adapter = new SQLLanguageAdapter();
1846
- const extensions = adapter.getExtension();
1864
+ const extensions = adapter.getExtension(...TEST_EXTENSION_ARGS);
1847
1865
  const completion = getCompletion(extensions);
1848
1866
 
1849
1867
  expect(completion).toBeDefined();
@@ -1874,7 +1892,7 @@ describe("tablesCompletionSource", () => {
1874
1892
  const ctx = createCompletionContext(state, 14, ".n", 12);
1875
1893
 
1876
1894
  const adapter = new SQLLanguageAdapter();
1877
- const extensions = adapter.getExtension();
1895
+ const extensions = adapter.getExtension(...TEST_EXTENSION_ARGS);
1878
1896
  const completion = getCompletion(extensions);
1879
1897
 
1880
1898
  expect(completion).toBeDefined();
@@ -1906,7 +1924,7 @@ describe("tablesCompletionSource", () => {
1906
1924
  describe("variableCompletionSource", () => {
1907
1925
  it("should be included in extension overrides", () => {
1908
1926
  const adapter = new SQLLanguageAdapter();
1909
- const extensions = adapter.getExtension();
1927
+ const extensions = adapter.getExtension(...TEST_EXTENSION_ARGS);
1910
1928
  const completion = getCompletion(extensions);
1911
1929
 
1912
1930
  expect(completion).toBeDefined();
@@ -128,7 +128,6 @@ const pylspClient = once((lspConfig: LSPConfig) => {
128
128
  return new NotebookLanguageServerClient(
129
129
  new LanguageServerClient({
130
130
  ...lspClientOpts,
131
- autoClose: false,
132
131
  }),
133
132
  settings,
134
133
  );
@@ -146,7 +145,6 @@ const tyLspClient = once((_: LSPConfig) => {
146
145
  return new NotebookLanguageServerClient(
147
146
  new LanguageServerClient({
148
147
  ...lspClientOpts,
149
- autoClose: false,
150
148
  getWorkspaceConfiguration: (_) => [{ disableLanguageServices: true }],
151
149
  }),
152
150
  {},
@@ -165,7 +163,6 @@ const pyrightClient = once((_: LSPConfig) => {
165
163
  return new NotebookLanguageServerClient(
166
164
  new LanguageServerClient({
167
165
  ...lspClientOpts,
168
- autoClose: false,
169
166
  }),
170
167
  {},
171
168
  );
@@ -242,6 +239,7 @@ export class PythonLanguageAdapter implements LanguageAdapter<{}> {
242
239
  client: client as unknown as LanguageServerClient,
243
240
  languageId: "python",
244
241
  allowHTMLContent: true,
242
+ useSnippetOnCompletion: false,
245
243
  hoverConfig: hoverOptions,
246
244
  completionConfig: autocompleteOptions,
247
245
  // Default to false