@marimo-team/islands 0.17.2 → 0.17.3

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 (580) hide show
  1. package/dist/{Combination-De9yoNY5.js → Combination-DrSsMSEB.js} +860 -816
  2. package/dist/{ConnectedDataExplorerComponent-DuvpJOKp.js → ConnectedDataExplorerComponent-DY9cADKc.js} +2282 -2232
  3. package/dist/{ImageComparisonComponent--etUl2pp.js → ImageComparisonComponent-CJvR7Qzp.js} +3 -2
  4. package/dist/{_baseIsEqual-BFlyFUxC.js → _baseIsEqual-DbBiwJP8.js} +1 -1
  5. package/dist/{_basePickBy-gCCvtjgp.js → _basePickBy-ChFDiIEt.js} +3 -3
  6. package/dist/{_baseProperty-BuqBC0Ie.js → _baseProperty-Bf09f9Ee.js} +5 -5
  7. package/dist/_baseUniq-D5kohCWB.js +59 -0
  8. package/dist/any-language-editor-Bs2c1bKU.js +156 -0
  9. package/dist/apl-Bp8pgLcx.js +4 -0
  10. package/dist/{arc-C_O2hc-b.js → arc-DM-UhhIs.js} +2 -2
  11. package/dist/architecture-O4VJ6CD3-SVEfQWDz.js +24 -0
  12. package/dist/{architectureDiagram-W76B3OCA-CrK99pJi.js → architectureDiagram-W76B3OCA-GKSiVAlH.js} +41 -38
  13. package/dist/asciiarmor-IoNSjDv9.js +4 -0
  14. package/dist/asn1-B1GnbkOF.js +4 -0
  15. package/dist/{blockDiagram-QIGZ2CNN-BJOEyO6w.js → blockDiagram-QIGZ2CNN-wX8KWoV2.js} +30 -29
  16. package/dist/brainfuck-TRxEs4B5.js +4 -0
  17. package/dist/{button-ADXOb_gX.js → button-B8zS4Mtw.js} +5 -4
  18. package/dist/{c4Diagram-FPNF74CW-7Pz_X9wF.js → c4Diagram-FPNF74CW-Ns4C9pNn.js} +12 -12
  19. package/dist/{channel-X-wRUxX6.js → channel-Dgla_oqe.js} +1 -1
  20. package/dist/{check-COlaG7Ss.js → check-BZnPxXnd.js} +1 -1
  21. package/dist/{chunk-3AY6CYHV-BQH2fFpA.js → chunk-3AY6CYHV-HfZ-8MFM.js} +10 -10
  22. package/dist/{chunk-4BX2VUAB-D-QtDCKM.js → chunk-4BX2VUAB-CV5cUTmw.js} +1 -1
  23. package/dist/{chunk-4KMFLZZN-BirZvvJS.js → chunk-4KMFLZZN-Cbgb64pE.js} +17 -18
  24. package/dist/{chunk-55IACEB6-DjtPYZKs.js → chunk-55IACEB6--aEkhs1O.js} +1 -1
  25. package/dist/{chunk-6OXUPJBA-CTnnqlzw.js → chunk-6OXUPJBA-DQZp24uZ.js} +7 -7
  26. package/dist/{chunk-7GE3RBXV-CT47hCrL.js → chunk-7GE3RBXV-D0K_8mbM.js} +1 -1
  27. package/dist/{chunk-ABZYJK2D-B6ZsU6SR.js → chunk-ABZYJK2D-BwKkjFgF.js} +3 -3
  28. package/dist/{chunk-BN7GFLIU-DYWEsrG4.js → chunk-BN7GFLIU-93ktvOI2.js} +1 -1
  29. package/dist/{chunk-CVBHYZKI-BuzDGXz0.js → chunk-CVBHYZKI-tTpx9vm_.js} +1 -1
  30. package/dist/{chunk-CXMOBAN2-Bas2S5w1.js → chunk-CXMOBAN2-CagHnxl1.js} +6 -6
  31. package/dist/{chunk-EXTU4WIE-DXwNSukz.js → chunk-EXTU4WIE-Ve2vgn5X.js} +2 -2
  32. package/dist/{chunk-FMBD7UC4-CYKEpuPr.js → chunk-FMBD7UC4-CCvcIQpJ.js} +1 -1
  33. package/dist/{chunk-JA3XYJ7Z-DcxfkcDC.js → chunk-JA3XYJ7Z-CrQC4eYr.js} +4 -4
  34. package/dist/{chunk-JEIROHC2-C01ZIcIG.js → chunk-JEIROHC2-tuJLHPKk.js} +1 -1
  35. package/dist/{chunk-K7UQS3LO-CmbT97MV.js → chunk-K7UQS3LO-BzsTVREe.js} +7 -7
  36. package/dist/{chunk-KMC2YHZD-D64m-1E1.js → chunk-KMC2YHZD-CdKOlVi0.js} +1 -1
  37. package/dist/{chunk-QN33PNHL-DjB0j8Dr.js → chunk-QN33PNHL-CbdYySGk.js} +2 -2
  38. package/dist/{chunk-QYVHNE3D-VA4W4oxG.js → chunk-QYVHNE3D-BDj4udRH.js} +2 -2
  39. package/dist/{chunk-QZHKN3VN-KT0fl3Em.js → chunk-QZHKN3VN-E6VBm6ir.js} +1 -1
  40. package/dist/{chunk-S3R3BYOJ-C5zmcMvn.js → chunk-S3R3BYOJ-DuumGJ4u.js} +6 -6
  41. package/dist/{chunk-T44TD3VJ-BMOgu-Hk.js → chunk-T44TD3VJ-Bc-UhG4i.js} +1 -1
  42. package/dist/{chunk-TVAH2DTR-eKm8SKnH.js → chunk-TVAH2DTR-s8skdWqT.js} +6 -6
  43. package/dist/{chunk-TZMSLE5B-CQxFRiI2.js → chunk-TZMSLE5B-CUfRRoFb.js} +3 -3
  44. package/dist/{chunk-WFRQ32O7-Dg51o277.js → chunk-WFRQ32O7-BquRwCCj.js} +1 -1
  45. package/dist/{chunk-WFWHJNB7-DVLO98ge.js → chunk-WFWHJNB7-CHl0gCzu.js} +1 -1
  46. package/dist/{chunk-XRWGC2XP-UNFKdWQh.js → chunk-XRWGC2XP-CoSEoOcO.js} +1 -1
  47. package/dist/{chunk-ZPAFE4SF-DbCSwfLK.js → chunk-ZPAFE4SF-Bf1fn8cY.js} +1 -1
  48. package/dist/classDiagram-KNZD7YFC-ONLi1fgN.js +40 -0
  49. package/dist/classDiagram-v2-RKCZMP56-Ceij_i8m.js +40 -0
  50. package/dist/{clike-CytFO-kN.js → clike-Cbszc5XU.js} +1 -1
  51. package/dist/clojure-BNTL3o8Z.js +4 -0
  52. package/dist/{clone-CCgVUJ6x.js → clone-DE59DFkY.js} +1 -1
  53. package/dist/cmake-Bp6uEjiS.js +4 -0
  54. package/dist/cobol-CtS_R__A.js +4 -0
  55. package/dist/coffeescript-D5u5aYAu.js +4 -0
  56. package/dist/commonlisp-BvLWy9eh.js +4 -0
  57. package/dist/compiler-runtime-5MdCVm0X.js +13 -0
  58. package/dist/{constants-BaCMVd12.js → constants-BlvmN57i.js} +3 -3
  59. package/dist/{copy-GNcK40wy.js → copy-bxQOKABs.js} +2 -2
  60. package/dist/{cose-bilkent-S5V4N54A-BnvuJG6Y.js → cose-bilkent-S5V4N54A-DZE8LVzQ.js} +3 -3
  61. package/dist/crystal-CaTWnt-Z.js +4 -0
  62. package/dist/css-BMUPibQH.js +5 -0
  63. package/dist/cypher-PopjPg_G.js +4 -0
  64. package/dist/d-Ds7bO8W5.js +4 -0
  65. package/dist/{dagre-5GWH7T2D-rn7tZYaQ.js → dagre-5GWH7T2D-g2ShbPGy.js} +39 -37
  66. package/dist/{dagre-Bghq6VKO.js → dagre-TBn9HZB0.js} +14 -13
  67. package/dist/{data-grid-overlay-editor-B4_Caieu.js → data-grid-overlay-editor-BuhjNOgs.js} +4 -4
  68. package/dist/{diagram-N5W7TBWH-lbF94o-g.js → diagram-N5W7TBWH-BYhyeV0B.js} +44 -41
  69. package/dist/{diagram-QEK2KX5R-CKBhSzsO.js → diagram-QEK2KX5R-CiuUIBpl.js} +38 -35
  70. package/dist/{diagram-S2PKOQOG-161_1f53.js → diagram-S2PKOQOG-D0Z2Q5P-.js} +38 -35
  71. package/dist/diff-C_xR-pxD.js +4 -0
  72. package/dist/{dist-BSyYM1Gi.js → dist-7CqcJssH.js} +6 -6
  73. package/dist/{dist-C9-uHBqC.js → dist-8v4BI_h_.js} +1 -1
  74. package/dist/{dist-71jYYbWP.js → dist-B3CNaJau.js} +2 -2
  75. package/dist/dist-B9JCXzyv.js +6 -0
  76. package/dist/{dist-DzJem5xc.js → dist-BMhv6XDi.js} +1 -1
  77. package/dist/{dist-CWh5ZwcC.js → dist-BYS0EtbC.js} +2 -2
  78. package/dist/{dist-BaPjLM6s.js → dist-BgsDu-bU.js} +1 -1
  79. package/dist/{dist-CNAkUyxv.js → dist-BxmsyHv5.js} +1 -1
  80. package/dist/{dist-CWqB4bg8.js → dist-C02gS--y.js} +3 -3
  81. package/dist/{dist-C76MUPD3.js → dist-C5Iu9a3-.js} +2 -2
  82. package/dist/{dist-DxESp2-T.js → dist-C5Ns3q-m.js} +3 -3
  83. package/dist/dist-C6QrJGYr.js +10 -0
  84. package/dist/{dist-BAqp4Vtl.js → dist-CBu8cgzz.js} +8 -4
  85. package/dist/dist-CFZ32udY.js +6 -0
  86. package/dist/{dist-DaTVdKJa.js → dist-CXimnGhI.js} +2 -2
  87. package/dist/{dist-CtOeHDJp.js → dist-CawOxmKh.js} +5 -5
  88. package/dist/dist-CmgxQNWN.js +10 -0
  89. package/dist/dist-Cr6Cu8sC.js +6 -0
  90. package/dist/{dist-BBhmkni2.js → dist-CxRajUZ6.js} +1 -1
  91. package/dist/{dist-CPNnKuPh.js → dist-D08oiinq.js} +12 -10
  92. package/dist/{dist-BNRdMfJH.js → dist-D4LUTYHc.js} +2 -2
  93. package/dist/{dist-C2IEc8og.js → dist-DGKjHTv9.js} +5 -5
  94. package/dist/{dist-4dtbqf8A.js → dist-DGnWQOnS.js} +3 -3
  95. package/dist/{dist-BqdQPWpQ.js → dist-DSDOMDNR.js} +2 -2
  96. package/dist/{dist-_4cudra1.js → dist-DTNqkRGE.js} +3 -3
  97. package/dist/{dist-28HYzERB.js → dist-D_GkrgWD.js} +2 -2
  98. package/dist/{dist-Cw0F6l-7.js → dist-DbHWFmjZ.js} +1 -1
  99. package/dist/{dist-B_wjJqqS.js → dist-Dh7gw0Ay.js} +2 -2
  100. package/dist/{dist-B8Pbw5ln.js → dist-DiO9ni9a.js} +2 -2
  101. package/dist/{dist-BYHiiJB-.js → dist-DlSZED-1.js} +2 -2
  102. package/dist/{dist-Da046MhT.js → dist-DvsjKDQ4.js} +1 -1
  103. package/dist/{dist-O0zVziwn.js → dist-DzKKEoge.js} +3 -3
  104. package/dist/{dist-CwZcC4om.js → dist-HKzG1oF6.js} +1 -1
  105. package/dist/{dist-CJb8EiFO.js → dist-K_AqLCfS.js} +3 -3
  106. package/dist/dist-NxHLuq7w.js +6 -0
  107. package/dist/dist-S2JcqPPB.js +12 -0
  108. package/dist/{dist-CNvMOZu9.js → dist-XkGsOiy0.js} +2 -2
  109. package/dist/{dist-Drf3cyIW.js → dist-_tHnp24J.js} +3 -3
  110. package/dist/{dist-xLN9qCAp.js → dist-eSnWVS11.js} +3 -3
  111. package/dist/dist-hcPlrsR9.js +6 -0
  112. package/dist/{dist-DlK420ke.js → dist-owpR56zn.js} +1 -1
  113. package/dist/dist-poXa8G8m.js +6 -0
  114. package/dist/{dist-CTIyD_KU.js → dist-qGpLTiEi.js} +3 -3
  115. package/dist/{dockerfile-Cmlcqk35.js → dockerfile-CWWeWT3z.js} +1 -1
  116. package/dist/dtd-CGRYzaHQ.js +4 -0
  117. package/dist/dylan-Ctfki5HL.js +4 -0
  118. package/dist/ecl--gmEivzz.js +4 -0
  119. package/dist/eiffel-o31DRAP-.js +4 -0
  120. package/dist/elm-Dqa6TVIh.js +4 -0
  121. package/dist/{erDiagram-AWTI2OKA-BU7Qig7n.js → erDiagram-AWTI2OKA-BeadFjpg.js} +25 -25
  122. package/dist/erlang-BtVO_vQG.js +4 -0
  123. package/dist/error-banner-B7LmpmGT.js +1013 -0
  124. package/dist/{esm-Oo8OvZ6m.js → esm-CQIOyi5v.js} +579 -564
  125. package/dist/{factor-BZnBK3CG.js → factor-7tQNNEWF.js} +1 -1
  126. package/dist/factor-CNLvRc__.js +5 -0
  127. package/dist/{flowDiagram-PVAE7QVJ-JKJebWeY.js → flowDiagram-PVAE7QVJ-GgklUvqn.js} +27 -27
  128. package/dist/{formats-DOEuF6TR.js → formats-kyFd0DPJ.js} +23 -22
  129. package/dist/forth-Bp2zDfH-.js +4 -0
  130. package/dist/fortran-B3A-KieX.js +4 -0
  131. package/dist/{ganttDiagram-OWAHRB6G-BvWRfg05.js → ganttDiagram-OWAHRB6G-D5wYR6WK.js} +17 -17
  132. package/dist/gas-_Xt_kGOG.js +4 -0
  133. package/dist/gherkin-DzZpg8Ls.js +4 -0
  134. package/dist/gitGraph-ZV4HHKMB-DFGD7PPm.js +24 -0
  135. package/dist/{gitGraphDiagram-NY62KEGX-VEJJBf5L.js → gitGraphDiagram-NY62KEGX-DCwA-g9b.js} +38 -35
  136. package/dist/{glide-data-editor-Bne10icG.js → glide-data-editor-1bUl_mRe.js} +515 -515
  137. package/dist/graphlib-R11f1son.js +228 -0
  138. package/dist/groovy-BtD10jRQ.js +4 -0
  139. package/dist/haskell-C-JVWnIV.js +4 -0
  140. package/dist/haxe-Del5TcJQ.js +5 -0
  141. package/dist/idl-BLlRatde.js +4 -0
  142. package/dist/info-63CPKGFF-eZyiEu_4.js +24 -0
  143. package/dist/infoDiagram-STP46IZ2-CUr2vZlE.js +48 -0
  144. package/dist/{isEmpty-Do_v2sls.js → isEmpty-CIFmGKJN.js} +2 -2
  145. package/dist/isString-BsphYkXQ.js +9 -0
  146. package/dist/{isSymbol-CtkA8Y0a.js → isSymbol-BnxbuvDK.js} +1 -1
  147. package/dist/javascript-Bm7QL4E3.js +5 -0
  148. package/dist/jinja2-BxbImxq2.js +4 -0
  149. package/dist/{journeyDiagram-BIP6EPQ6-CsgEQgxh.js → journeyDiagram-BIP6EPQ6-DtjQC_m1.js} +10 -10
  150. package/dist/jsx-runtime-CvL6gNI-.js +22 -0
  151. package/dist/julia-DV1Vz9mw.js +4 -0
  152. package/dist/{kanban-definition-6OIFK2YF-Bi8Ete2P.js → kanban-definition-6OIFK2YF-U3q5gvb8.js} +19 -19
  153. package/dist/{katex-C-g3rKKt.js → katex-BWgzyQrl.js} +1 -1
  154. package/dist/{label-BiVIU_wb.js → label-Wr-xTlW7.js} +463 -453
  155. package/dist/{line-B7-GoF1m.js → line-C7OvOvNm.js} +3 -3
  156. package/dist/{linear-DeGGALuc.js → linear-CgANSWNu.js} +4 -4
  157. package/dist/livescript-9UMSMMrl.js +4 -0
  158. package/dist/{loader-BBqwtZWj.js → loader-Dj9XWZTh.js} +164 -4
  159. package/dist/lua-Bcbc7wWe.js +4 -0
  160. package/dist/main.js +40719 -41544
  161. package/dist/mathematica-DG4QUwYU.js +4 -0
  162. package/dist/mbox--auqAoPc.js +4 -0
  163. package/dist/{memoize-D7eDkf3R.js → memoize-XkDn33QI.js} +1 -1
  164. package/dist/{merge-C_6cGM6o.js → merge-dMlizkC5.js} +1 -1
  165. package/dist/{mermaid-BmtvsZ2m.js → mermaid-DIjoC4T4.js} +67 -66
  166. package/dist/{mermaid-parser.core-geyG_6o0.js → mermaid-parser.core-B433qyUL.js} +8 -8
  167. package/dist/{mhchem-OhAaJ0fA.js → mhchem-1x4KnXMF.js} +1 -1
  168. package/dist/min-WjLsUjBa.js +89 -0
  169. package/dist/{mindmap-definition-Q6HEUPPD-B-wmX1oG.js → mindmap-definition-Q6HEUPPD-LFgV4R8y.js} +24 -24
  170. package/dist/mirc-9dVcMicH.js +4 -0
  171. package/dist/mllike-Di9N4E3Q.js +6 -0
  172. package/dist/modelica-S3adENkL.js +4 -0
  173. package/dist/mscgen-DAG0zH4w.js +6 -0
  174. package/dist/mumps-afzuy08D.js +4 -0
  175. package/dist/{now-DumxsrcX.js → now-8WTe-KKa.js} +1 -1
  176. package/dist/nsis-Bzwy0lPH.js +5 -0
  177. package/dist/{nsis-D4bLR_Y1.js → nsis-CFb2Zrib.js} +1 -1
  178. package/dist/ntriples-D9oM8s3v.js +4 -0
  179. package/dist/{number-overlay-editor-D6r-48ka.js → number-overlay-editor-DYjnpjXo.js} +2 -2
  180. package/dist/octave-BMLCk2qM.js +4 -0
  181. package/dist/{once-3OSMKEsL.js → once-rI5AYku5.js} +1 -1
  182. package/dist/{ordinal-DpEbSVPc.js → ordinal-pQYxWJYN.js} +1 -1
  183. package/dist/oz-CX5JTWTK.js +4 -0
  184. package/dist/packet-HUATNLJX-BvWMmF9U.js +24 -0
  185. package/dist/pascal-BeZmsfFX.js +4 -0
  186. package/dist/perl-CZ_HryPN.js +4 -0
  187. package/dist/pie-WTHONI2E-BCXZJKz0.js +24 -0
  188. package/dist/{pieDiagram-ADFJNKIX-C3GvPNUL.js → pieDiagram-ADFJNKIX-CsZmho0o.js} +43 -40
  189. package/dist/pig-OPEEOu6V.js +4 -0
  190. package/dist/powershell-DyR-5LnA.js +4 -0
  191. package/dist/{precisionRound-7YYJq2rW.js → precisionRound-DMLkFNYv.js} +1 -1
  192. package/dist/properties-Cl4tecfb.js +4 -0
  193. package/dist/protobuf-B8X247vV.js +4 -0
  194. package/dist/pug-Kmpa-Pbv.js +5 -0
  195. package/dist/{pug-Dv3gE36O.js → pug-ZDYeT34w.js} +1 -1
  196. package/dist/puppet-Pl07qkSO.js +4 -0
  197. package/dist/python-DQgTXBpp.js +5 -0
  198. package/dist/q-D7uiP00h.js +4 -0
  199. package/dist/{quadrantDiagram-LMRXKWRM-DPXwGNVa.js → quadrantDiagram-LMRXKWRM-CY6GTOgM.js} +8 -8
  200. package/dist/r-DbUoToEd.js +4 -0
  201. package/dist/radar-NJJJXTRR-8kjOeCwx.js +24 -0
  202. package/dist/{range-CIbLpsrs.js → range-CTMc_Qhu.js} +3 -3
  203. package/dist/{react-plotly-DYyvxcRD.js → react-plotly-Cs07wkly.js} +2 -2
  204. package/dist/react-vega-B9eMrRW1.js +32035 -0
  205. package/dist/react-vega-DM3e8kar.js +25 -0
  206. package/dist/reduce-C-jV7KRY.js +268 -0
  207. package/dist/{requirementDiagram-4UW4RH46-Cs3Hqnm0.js → requirementDiagram-4UW4RH46-CfLWneBF.js} +24 -24
  208. package/dist/rpm-BjQFZZ1e.js +5 -0
  209. package/dist/ruby-BXpop5ZX.js +4 -0
  210. package/dist/{sankeyDiagram-GR3RE2ED-Be1d_Xf7.js → sankeyDiagram-GR3RE2ED-Dkxfzm6f.js} +7 -7
  211. package/dist/sas-CzFr9Hlz.js +4 -0
  212. package/dist/scheme-C6QRPvcm.js +4 -0
  213. package/dist/{sequenceDiagram-C3RYC4MD-lbtovKTa.js → sequenceDiagram-C3RYC4MD-hSi31Kfa.js} +14 -14
  214. package/dist/shell-Bs7FrcsL.js +4 -0
  215. package/dist/sieve-D39XRya9.js +4 -0
  216. package/dist/{slides-component-BoeQU7-s.js → slides-component-Ct11erUn.js} +9 -8
  217. package/dist/smalltalk-CdAwDOFE.js +4 -0
  218. package/dist/sparql-DsDWhEhN.js +4 -0
  219. package/dist/spec-rqRnkIf4.js +1256 -0
  220. package/dist/{src-BTqT1mA1.js → src-CKr0QbVy.js} +1 -1
  221. package/dist/{stateDiagram-KXAO66HF-BmbR-Rol.js → stateDiagram-KXAO66HF-DJsLA_DN.js} +42 -40
  222. package/dist/stateDiagram-v2-UMBNRL4Z-D-p_ngHt.js +39 -0
  223. package/dist/{step-2RJrMSSG.js → step-BsM8YHun.js} +1 -1
  224. package/dist/stex-DvqvBdH8.js +5 -0
  225. package/dist/style.css +1 -1
  226. package/dist/stylus-DxzxWmvV.js +4 -0
  227. package/dist/swift-DTC4Wg4z.js +4 -0
  228. package/dist/tcl-DantlS-i.js +4 -0
  229. package/dist/textile-pOphaahD.js +4 -0
  230. package/dist/{time-BB30r1tK.js → time-U9NHhrDC.js} +4 -4
  231. package/dist/{timeline-definition-XQNQX7LJ-1mv5caPW.js → timeline-definition-XQNQX7LJ-rojWjX6M.js} +7 -7
  232. package/dist/{toNumber-D3Ystr3y.js → toNumber-CUG0Hyhp.js} +2 -2
  233. package/dist/{toString-CbuxCRDG.js → toString-CT4n1k2E.js} +2 -2
  234. package/dist/toml-hgYsPM5p.js +4 -0
  235. package/dist/treemap-75Q7IDZK-Do1WIR9v.js +24 -0
  236. package/dist/troff-BwevrEUZ.js +4 -0
  237. package/dist/{dtd-RplB6hDg.js → ttcn-C5gJcxta.js} +2 -2
  238. package/dist/ttcn-cfg-CPKlfqST.js +4 -0
  239. package/dist/turtle-EH0lMhMf.js +4 -0
  240. package/dist/{types-BPohCsA7.js → types-Bt7p5SYB.js} +1028 -1038
  241. package/dist/uniq-DgSyegN3.js +8 -0
  242. package/dist/{useAsyncData-DHBqeb9a.js → useAsyncData-Dp2V69OV.js} +3 -3
  243. package/dist/{useIframeCapabilities-BEvvwlwt.js → useIframeCapabilities-B9u0SmJ4.js} +2 -2
  244. package/dist/{useTheme-CnMbo-iq.js → useTheme-D7vlj42b.js} +4 -4
  245. package/dist/vb-DNk7gts-.js +4 -0
  246. package/dist/vbscript-znK_5PUS.js +4 -0
  247. package/dist/vega-component-C58Jk3ub.js +633 -0
  248. package/dist/{vega-loader.browser.module-CFMtdrNw.js → vega-loader.browser-BK7-IO9k.js} +91 -99
  249. package/dist/velocity-DmPhlhdp.js +4 -0
  250. package/dist/verilog-CePnwf4S.js +4 -0
  251. package/dist/vhdl-Ckdh8uiO.js +4 -0
  252. package/dist/webidl-8N8qbzRd.js +4 -0
  253. package/dist/xquery-Cocyk-z0.js +4 -0
  254. package/dist/{xychartDiagram-6GGTOJPD-njc-naaw.js → xychartDiagram-6GGTOJPD-CiC1eONZ.js} +23 -23
  255. package/dist/yacas-CPmShRg-.js +4 -0
  256. package/dist/z80-B500UaFh.js +4 -0
  257. package/package.json +12 -9
  258. package/src/components/ai/ai-provider-icon.tsx +2 -1
  259. package/src/components/app-config/constants.ts +25 -1
  260. package/src/components/charts/lazy.tsx +7 -0
  261. package/src/components/charts/tooltip.ts +5 -0
  262. package/src/components/charts/types.ts +8 -0
  263. package/src/components/chat/acp/__tests__/state.test.ts +0 -13
  264. package/src/components/chat/acp/agent-panel.tsx +7 -1
  265. package/src/components/chat/acp/agent-selector.tsx +5 -0
  266. package/src/components/chat/acp/blocks.tsx +51 -8
  267. package/src/components/chat/acp/state.ts +8 -2
  268. package/src/components/chat/acp/thread.tsx +10 -3
  269. package/src/components/chat/chat-panel.tsx +7 -1
  270. package/src/components/data-table/__tests__/__snapshots__/chart-spec-model.test.ts.snap +473 -184
  271. package/src/components/data-table/__tests__/chart-spec-model.test.ts +32 -28
  272. package/src/components/data-table/charts/__tests__/__snapshots__/spec-snapshot.test.ts.snap +1 -1
  273. package/src/components/data-table/charts/__tests__/altair-generator.test.ts +162 -0
  274. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +1 -1
  275. package/src/components/data-table/charts/__tests__/spec.test.ts +145 -6
  276. package/src/components/data-table/charts/chart-spec/altair-generator.ts +6 -1
  277. package/src/components/data-table/charts/chart-spec/encodings.ts +11 -7
  278. package/src/components/data-table/charts/chart-spec/spec.ts +9 -8
  279. package/src/components/data-table/charts/chart-spec/tooltips.ts +4 -3
  280. package/src/components/data-table/charts/chart-spec/types.ts +1 -1
  281. package/src/components/data-table/charts/chart-spec/utils.ts +23 -0
  282. package/src/components/data-table/charts/components/form-fields.tsx +2 -2
  283. package/src/components/data-table/charts/constants.ts +7 -3
  284. package/src/components/data-table/charts/lazy-chart.tsx +15 -11
  285. package/src/components/data-table/charts/types.ts +6 -14
  286. package/src/components/data-table/column-summary/chart-spec-model.tsx +112 -269
  287. package/src/components/data-table/column-summary/column-summary.tsx +12 -12
  288. package/src/components/data-table/column-summary/legacy-chart-spec.ts +78 -2
  289. package/src/components/data-table/column-summary/utils.ts +1 -1
  290. package/src/components/datasources/__tests__/utils.test.ts +339 -138
  291. package/src/components/datasources/column-preview.tsx +9 -9
  292. package/src/components/datasources/datasources.tsx +4 -0
  293. package/src/components/datasources/utils.ts +94 -4
  294. package/src/components/editor/Output.tsx +9 -6
  295. package/src/components/editor/ai/ai-completion-editor.tsx +2 -2
  296. package/src/components/editor/code/readonly-diff.tsx +4 -0
  297. package/src/components/editor/output/ConsoleOutput.tsx +14 -11
  298. package/src/components/editor/renderers/slides-layout/types.ts +1 -1
  299. package/src/components/tracing/tracing-spec.ts +2 -2
  300. package/src/components/tracing/tracing.test.tsx +1 -1
  301. package/src/components/tracing/tracing.tsx +57 -74
  302. package/src/components/tracing/utils.ts +22 -0
  303. package/src/components/ui/query-param-preserving-link.tsx +48 -0
  304. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +12 -1
  305. package/src/core/ai/context/providers/cell-output.ts +2 -8
  306. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +1 -1
  307. package/src/core/ai/tools/edit-notebook-tool.ts +15 -7
  308. package/src/core/ai/tools/run-cells-tool.ts +60 -26
  309. package/src/core/cells/ids.ts +1 -1
  310. package/src/core/codemirror/language/__tests__/extension.test.ts +6 -12
  311. package/src/core/codemirror/language/__tests__/markdown.test.ts +23 -36
  312. package/src/core/codemirror/language/languages/python.ts +40 -6
  313. package/src/core/codemirror/language/languages/sql/completion-store.ts +2 -2
  314. package/src/core/codemirror/language/languages/sql/sql.ts +14 -0
  315. package/src/core/codemirror/language/languages/sql/utils.ts +54 -3
  316. package/src/core/codemirror/lsp/notebook-lsp.ts +52 -4
  317. package/src/core/codemirror/lsp/transports.ts +3 -0
  318. package/src/core/datasets/__tests__/data-source.test.ts +6 -0
  319. package/src/core/datasets/data-source-connections.ts +1 -0
  320. package/src/core/dom/__tests__/outline.test.ts +43 -0
  321. package/src/core/dom/outline.ts +1 -1
  322. package/src/core/islands/main.ts +2 -0
  323. package/src/core/lsp/__tests__/transport.test.ts +57 -0
  324. package/src/core/lsp/transport.ts +16 -0
  325. package/src/plugins/core/RenderHTML.tsx +26 -0
  326. package/src/plugins/core/sanitize.ts +8 -1
  327. package/src/plugins/impl/DataTablePlugin.tsx +21 -27
  328. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +26 -22
  329. package/src/plugins/impl/data-explorer/functions/function.ts +1 -2
  330. package/src/plugins/impl/data-explorer/functions/types.ts +65 -14
  331. package/src/plugins/impl/data-explorer/queries/queries.ts +9 -9
  332. package/src/plugins/impl/data-explorer/queries/types.ts +23 -5
  333. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +2 -1
  334. package/src/plugins/impl/vega/__tests__/__snapshots__/make-selectable.test.ts.snap +2309 -0
  335. package/src/plugins/impl/vega/__tests__/encodings.test.ts +93 -0
  336. package/src/plugins/impl/vega/__tests__/make-selectable.test.ts +621 -0
  337. package/src/plugins/impl/vega/__tests__/params.test.ts +121 -1
  338. package/src/plugins/impl/vega/encodings.ts +16 -2
  339. package/src/plugins/impl/vega/make-selectable.ts +339 -10
  340. package/src/plugins/impl/vega/params.ts +76 -14
  341. package/src/plugins/impl/vega/types.ts +32 -13
  342. package/src/plugins/impl/vega/vega-component.tsx +74 -26
  343. package/src/plugins/impl/vega/vega.css +1 -0
  344. package/src/stories/__fixtures__/vega.ts +1 -1
  345. package/src/utils/arrays.ts +16 -0
  346. package/dist/_baseUniq-CKN9mEDq.js +0 -324
  347. package/dist/any-language-editor-Du2Q_6IK.js +0 -156
  348. package/dist/apl-CUm2DGqh.js +0 -4
  349. package/dist/architecture-O4VJ6CD3-PFw3eFBY.js +0 -21
  350. package/dist/asciiarmor-lqJ78U01.js +0 -4
  351. package/dist/asn1-CjwpSTlW.js +0 -4
  352. package/dist/brainfuck-ClvDI1dq.js +0 -4
  353. package/dist/classDiagram-KNZD7YFC-HUFFxNdk.js +0 -40
  354. package/dist/classDiagram-v2-RKCZMP56-Dw7Acmuf.js +0 -40
  355. package/dist/clojure-8GefCgPe.js +0 -4
  356. package/dist/cmake-yAhT9H0F.js +0 -4
  357. package/dist/cobol-BmltueOY.js +0 -4
  358. package/dist/coffeescript-C7KEQBcH.js +0 -4
  359. package/dist/commonlisp-CNbiJRU-.js +0 -4
  360. package/dist/crystal-OdjZZ8bc.js +0 -4
  361. package/dist/css-DhTxMmL_.js +0 -5
  362. package/dist/cypher-CgN8E3YI.js +0 -4
  363. package/dist/d-g41sJcBC.js +0 -4
  364. package/dist/diff-ViRYYhhg.js +0 -4
  365. package/dist/dist-BfJO8Bm9.js +0 -12
  366. package/dist/dist-CLuF3AtO.js +0 -6
  367. package/dist/dist-CU04U4NL.js +0 -10
  368. package/dist/dist-DNUT6b47.js +0 -6
  369. package/dist/dist-DbAb2sY7.js +0 -6
  370. package/dist/dist-DiDFQ2Rk.js +0 -6
  371. package/dist/dist-SNAyAOJ-.js +0 -6
  372. package/dist/dist-cbW5xJNV.js +0 -6
  373. package/dist/dist-h8eGLSbK.js +0 -10
  374. package/dist/dylan-BX8KJufP.js +0 -4
  375. package/dist/ecl-CWtLaNMH.js +0 -4
  376. package/dist/eiffel-C-mlZPMn.js +0 -4
  377. package/dist/elm-CWp06vcb.js +0 -4
  378. package/dist/erlang-pfp22AZM.js +0 -4
  379. package/dist/error-banner-BAWlXn49.js +0 -1012
  380. package/dist/esm-B2pocBPL.js +0 -26
  381. package/dist/esm-YVnxJqkD.js +0 -33066
  382. package/dist/factor-CEn53jua.js +0 -5
  383. package/dist/forth-CL8vu_y8.js +0 -4
  384. package/dist/fortran-DsmXkYtE.js +0 -4
  385. package/dist/gas-mYt9Rtlx.js +0 -4
  386. package/dist/gherkin-DHNCKBNj.js +0 -4
  387. package/dist/gitGraph-ZV4HHKMB-Cpd6k0O8.js +0 -21
  388. package/dist/graphlib-DRS8CrjA.js +0 -227
  389. package/dist/groovy-DzRtOS5a.js +0 -4
  390. package/dist/haskell-Bl9iT_Mp.js +0 -4
  391. package/dist/haxe-DqA0ED6k.js +0 -5
  392. package/dist/idl-WU2hil4i.js +0 -4
  393. package/dist/info-63CPKGFF-CG-xzUJo.js +0 -21
  394. package/dist/infoDiagram-STP46IZ2-zoRBGoup.js +0 -45
  395. package/dist/javascript-QY2BGJeV.js +0 -5
  396. package/dist/jinja2-Czleq7Sk.js +0 -4
  397. package/dist/jsx-runtime-DZyWJV5b.js +0 -31
  398. package/dist/julia-Dru3Qi0y.js +0 -4
  399. package/dist/livescript-Dxqi_HLT.js +0 -4
  400. package/dist/lua-ByH1cUQZ.js +0 -4
  401. package/dist/mathematica-CWJIFuES.js +0 -4
  402. package/dist/mbox-qhPIGaUI.js +0 -4
  403. package/dist/min-Dwa_NbP6.js +0 -93
  404. package/dist/mirc-yYcXhXBY.js +0 -4
  405. package/dist/mllike-BfT_Nl9x.js +0 -6
  406. package/dist/modelica-lVDtz1Rm.js +0 -4
  407. package/dist/mscgen-DvwdD1QJ.js +0 -6
  408. package/dist/mumps-BiY3GwKd.js +0 -4
  409. package/dist/nsis-Dk18Sq_4.js +0 -5
  410. package/dist/ntriples-Cj-8VqKF.js +0 -4
  411. package/dist/octave-BgFAaYjU.js +0 -4
  412. package/dist/oz-IsEG1I1m.js +0 -4
  413. package/dist/packet-HUATNLJX-Cafuo3IG.js +0 -21
  414. package/dist/pascal-BVf7FtIE.js +0 -4
  415. package/dist/perl-BM0-y4mZ.js +0 -4
  416. package/dist/pie-WTHONI2E-BE0pHBwB.js +0 -21
  417. package/dist/pig-CLBjzQmc.js +0 -4
  418. package/dist/powershell-B_qvE33J.js +0 -4
  419. package/dist/properties-CUTpsH2y.js +0 -4
  420. package/dist/protobuf-DqCP8a-0.js +0 -4
  421. package/dist/pug-BvexKkw4.js +0 -5
  422. package/dist/puppet-CoIi0R3f.js +0 -4
  423. package/dist/python-C-11-YMh.js +0 -5
  424. package/dist/q-CCVgEip7.js +0 -4
  425. package/dist/r-CIdR0Sfs.js +0 -4
  426. package/dist/radar-NJJJXTRR-0adgjw0u.js +0 -21
  427. package/dist/rpm-Dwvm039g.js +0 -5
  428. package/dist/ruby-DpTnO5gb.js +0 -4
  429. package/dist/sas-CK9boxgv.js +0 -4
  430. package/dist/scheme-Y1aYL-Qq.js +0 -4
  431. package/dist/shell-D3eXGsHd.js +0 -4
  432. package/dist/sieve-BdwSFdWJ.js +0 -4
  433. package/dist/smalltalk-BTYJquCm.js +0 -4
  434. package/dist/sparql-CYF0g4Cc.js +0 -4
  435. package/dist/stateDiagram-v2-UMBNRL4Z-DdJ7qVWc.js +0 -39
  436. package/dist/stex-CyWhoWHt.js +0 -5
  437. package/dist/stylus-BBiKaI2h.js +0 -4
  438. package/dist/swift-COb15qFR.js +0 -4
  439. package/dist/tcl-Jik1LXu9.js +0 -4
  440. package/dist/textile-BFHPD3wr.js +0 -4
  441. package/dist/toml-Brp9fBXs.js +0 -4
  442. package/dist/treemap-75Q7IDZK-CyBT8_Wh.js +0 -21
  443. package/dist/troff-CcZRW4vg.js +0 -4
  444. package/dist/tslib.es6-3ZL768sZ.js +0 -49
  445. package/dist/ttcn-Bz_6ifRd.js +0 -4
  446. package/dist/ttcn-cfg-v-yi2rKc.js +0 -4
  447. package/dist/turtle-CDOsZYhB.js +0 -4
  448. package/dist/useDateFormatter-BkbjKw83.js +0 -543
  449. package/dist/vb-CL7fRwRw.js +0 -4
  450. package/dist/vbscript-CR2xfxpw.js +0 -4
  451. package/dist/vega-component-BfFcXZxw.js +0 -465
  452. package/dist/velocity-CfuZoxPt.js +0 -4
  453. package/dist/verilog-CySTkzw_.js +0 -4
  454. package/dist/vhdl-Dvcd8KHW.js +0 -4
  455. package/dist/webidl-tbJt7sKk.js +0 -4
  456. package/dist/xquery-DJQVztyc.js +0 -4
  457. package/dist/yacas-BbgBReEH.js +0 -4
  458. package/dist/z80-DPyb8VGz.js +0 -4
  459. /package/dist/{_arrayReduce-Cd9xQjbl.js → _arrayReduce-CmsTTAw1.js} +0 -0
  460. /package/dist/{_baseSlice-CE9WsQZm.js → _baseSlice-CAnpEJwx.js} +0 -0
  461. /package/dist/{_hasUnicode-DkEebvtD.js → _hasUnicode-CbmCTPAa.js} +0 -0
  462. /package/dist/{apl-aGhy11IM.js → apl-Css595_H.js} +0 -0
  463. /package/dist/{array-DYSXIreg.js → array-D3smvOQ_.js} +0 -0
  464. /package/dist/{asciiarmor-DJKJ3Gkn.js → asciiarmor-BTCuJwxh.js} +0 -0
  465. /package/dist/{asn1-C6f5IeNs.js → asn1-DXjhS5QI.js} +0 -0
  466. /package/dist/{asterisk-DB1poX9_.js → asterisk-5HlmsIaw.js} +0 -0
  467. /package/dist/{brainfuck-Ch9vjun0.js → brainfuck--WlEc-iG.js} +0 -0
  468. /package/dist/{chunk-57QY23SG-BpXU7ph4.js → chunk-57QY23SG-D7ymhFFp.js} +0 -0
  469. /package/dist/{click-outside-container-2BH589Bq.js → click-outside-container-DSVM9sZw.js} +0 -0
  470. /package/dist/{clike-Bc2PZzZQ.js → clike-DDIJB_R8.js} +0 -0
  471. /package/dist/{clojure-B_lpr3zt.js → clojure-Z-GPBZyY.js} +0 -0
  472. /package/dist/{cmake-DaocNF4I.js → cmake-DncBqspt.js} +0 -0
  473. /package/dist/{cobol-suTPtt7c.js → cobol-DqUe0gl7.js} +0 -0
  474. /package/dist/{coffeescript-CPLIvtqJ.js → coffeescript-CH5_OO0H.js} +0 -0
  475. /package/dist/{colors-BXlG8Lmz.js → colors-DQmMCNWX.js} +0 -0
  476. /package/dist/{common-keywords-Bhll7O3b.js → common-keywords-CAEsQSF5.js} +0 -0
  477. /package/dist/{commonlisp-BqM3qFK7.js → commonlisp-UmhR9BfE.js} +0 -0
  478. /package/dist/{crystal-AsSFu4ke.js → crystal-5Sqf7MXt.js} +0 -0
  479. /package/dist/{css-Df7Sdeyh.js → css-bDybSxwf.js} +0 -0
  480. /package/dist/{cypher-CaVKL6Gu.js → cypher-PIeAFhrd.js} +0 -0
  481. /package/dist/{cytoscape.esm-BFEMljQI.js → cytoscape.esm-DclyBJ4D.js} +0 -0
  482. /package/dist/{d-DCGWK7NQ.js → d-Bd8EVRQt.js} +0 -0
  483. /package/dist/{defaultLocale-Cto8YOmX.js → defaultLocale-BPzjWfXP.js} +0 -0
  484. /package/dist/{defaultLocale-CYgZlqDF.js → defaultLocale-Om7Wxg5c.js} +0 -0
  485. /package/dist/{diff-CsxOM4Tr.js → diff-CAQdgtD6.js} +0 -0
  486. /package/dist/{dtd-Dwr0Jmks.js → dtd-eKW3pZj_.js} +0 -0
  487. /package/dist/{duckdb-keywords-7wAWf848.js → duckdb-keywords-BC3kWZZM.js} +0 -0
  488. /package/dist/{dylan-A7-ZBSey.js → dylan-CIO7R9Tr.js} +0 -0
  489. /package/dist/{ebnf-9_SaGDUz.js → ebnf-Pr4a9I6n.js} +0 -0
  490. /package/dist/{ecl-BzJVIQDc.js → ecl-BqYW-aOJ.js} +0 -0
  491. /package/dist/{eiffel-CO9eC_Op.js → eiffel-BOKM91eM.js} +0 -0
  492. /package/dist/{elm-CVAWj8SB.js → elm-3sobs3PV.js} +0 -0
  493. /package/dist/{emotion-is-prop-valid.esm-C3Yi5GQt.js → emotion-is-prop-valid.esm-Cm1uulbm.js} +0 -0
  494. /package/dist/{erlang-DWbZP546.js → erlang-C5EBzhP1.js} +0 -0
  495. /package/dist/{esm-AtKNNGYO.js → esm-CopBBL2y.js} +0 -0
  496. /package/dist/{fcl-CM9t2iay.js → fcl-Brh8s8q_.js} +0 -0
  497. /package/dist/{forth-BTYqUuu3.js → forth-DneRHr4K.js} +0 -0
  498. /package/dist/{fortran-DgAjHcCq.js → fortran-DsdmZbwQ.js} +0 -0
  499. /package/dist/{gas-BjDSWPZd.js → gas-DaoJ65Z9.js} +0 -0
  500. /package/dist/{gherkin-ClRqqpKv.js → gherkin-DUP_UlW-.js} +0 -0
  501. /package/dist/{groovy-BzNjnc8x.js → groovy-Rvyan8yX.js} +0 -0
  502. /package/dist/{haskell-DLdk34Jq.js → haskell-DIvpY54L.js} +0 -0
  503. /package/dist/{haxe-l6gaY_IS.js → haxe-Da_5bBNs.js} +0 -0
  504. /package/dist/{http-6Qg7z_h2.js → http-CMvcwl3E.js} +0 -0
  505. /package/dist/{idl-hlWT4D26.js → idl-DvL3aO0N.js} +0 -0
  506. /package/dist/{init-tZ42Torz.js → init-BNp5RczD.js} +0 -0
  507. /package/dist/{invariant-D3JoRb4I.js → invariant-Cl2wkkjN.js} +0 -0
  508. /package/dist/{isArrayLikeObject-DU5MCuQM.js → isArrayLikeObject-1qkWxZbL.js} +0 -0
  509. /package/dist/{javascript-DGukg1sB.js → javascript-DoyAP8vn.js} +0 -0
  510. /package/dist/{jinja2-DI5k_Er3.js → jinja2-Veqp7mFj.js} +0 -0
  511. /package/dist/{julia-BvDZDiIT.js → julia-Gi684CX7.js} +0 -0
  512. /package/dist/{katex-DgfMWJY9.js → katex-U6RPAuWM.js} +0 -0
  513. /package/dist/{livescript-2YMQfkfI.js → livescript-BKj_Zhvo.js} +0 -0
  514. /package/dist/{lua-DIUrQRfA.js → lua-CDA7hreG.js} +0 -0
  515. /package/dist/{main-BMTpe7M0.js → main-63eIj2Yx.js} +0 -0
  516. /package/dist/{marked.esm-DkVwEwtO.js → marked.esm-DE8HU3tw.js} +0 -0
  517. /package/dist/{math-qsHyz2Eo.js → math-C2iLT5gz.js} +0 -0
  518. /package/dist/{mathematica-Dqmg_BwL.js → mathematica-GWfSHReY.js} +0 -0
  519. /package/dist/{mbox-Cng-P-F1.js → mbox-Dwsrc4Ak.js} +0 -0
  520. /package/dist/{mirc-CNDqOVhQ.js → mirc-B2JE5ype.js} +0 -0
  521. /package/dist/{mllike-C1n2UDyX.js → mllike-BkBh4PFX.js} +0 -0
  522. /package/dist/{modelica-QqQC2pFj.js → modelica-C0hNlKgR.js} +0 -0
  523. /package/dist/{mscgen-C3fl8uhp.js → mscgen-DWWpdZnb.js} +0 -0
  524. /package/dist/{mumps-BeCUbMej.js → mumps-CMePAlSe.js} +0 -0
  525. /package/dist/{nginx-ejv7DsBz.js → nginx-GurZbX0E.js} +0 -0
  526. /package/dist/{node-sql-parser-CoPWN4hn.js → node-sql-parser-IKID_dZE.js} +0 -0
  527. /package/dist/{ntriples-CUgUpcma.js → ntriples-BnE6tX0Y.js} +0 -0
  528. /package/dist/{octave-BD652tGl.js → octave-Dfu3PmNP.js} +0 -0
  529. /package/dist/{oz-DrRsFa0K.js → oz-DqNpAjpZ.js} +0 -0
  530. /package/dist/{pascal-hpcx9sVn.js → pascal-GP_8jbNL.js} +0 -0
  531. /package/dist/{path-Bbv2tLY1.js → path-BeMi_1Je.js} +0 -0
  532. /package/dist/{perl-DW8XHeFc.js → perl-DUDEqQOD.js} +0 -0
  533. /package/dist/{pig-Cv7Nxbfo.js → pig-Csr4LnKs.js} +0 -0
  534. /package/dist/{powershell-Dr7WZMDU.js → powershell-Cw4tDKZx.js} +0 -0
  535. /package/dist/{prop-types-Bd16OEUP.js → prop-types-CzOfzj9N.js} +0 -0
  536. /package/dist/{properties-D-qJDXAM.js → properties-CUhUGfHR.js} +0 -0
  537. /package/dist/{protobuf-B48QZbd3.js → protobuf-CPZe957V.js} +0 -0
  538. /package/dist/{puppet-15JDyiY2.js → puppet-BP1AOwo6.js} +0 -0
  539. /package/dist/{purify.es-CrfFzTyi.js → purify.es-CDFkadZl.js} +0 -0
  540. /package/dist/{python-DWkQA94h.js → python-BMcMimC3.js} +0 -0
  541. /package/dist/{q-BzRpKgfd.js → q-BNfSHUci.js} +0 -0
  542. /package/dist/{r-dcNRe_Q8.js → r-DiJzLRZc.js} +0 -0
  543. /package/dist/{range-CQvYp_qE.js → range-sX2tw-Jz.js} +0 -0
  544. /package/dist/{react-dom-CpBooCbY.js → react-dom-BTjywDxo.js} +0 -0
  545. /package/dist/{rpm-Djl3Dsf1.js → rpm-CywAxCKo.js} +0 -0
  546. /package/dist/{ruby-Dd2CZTip.js → ruby-B0a4mSSU.js} +0 -0
  547. /package/dist/{sas-DYF5_Iqu.js → sas-DTh30wZQ.js} +0 -0
  548. /package/dist/{scheme-YtWcji1H.js → scheme-CsOlAIFf.js} +0 -0
  549. /package/dist/{shell-C3uC3Y0Z.js → shell-7w75P-tg.js} +0 -0
  550. /package/dist/{sieve-DHB17sQG.js → sieve-BphUEMa4.js} +0 -0
  551. /package/dist/{simple-mode-BMmwP_vI.js → simple-mode-BcThS5Pa.js} +0 -0
  552. /package/dist/{smalltalk-Y5v1Np3H.js → smalltalk-CHwdNey_.js} +0 -0
  553. /package/dist/{solr-DvRJLlRD.js → solr-CuWbYJLt.js} +0 -0
  554. /package/dist/{sparql-BEt3GJwM.js → sparql-BtwCqUvT.js} +0 -0
  555. /package/dist/{spreadsheet-Dp4B9_rc.js → spreadsheet-C1JzeuKn.js} +0 -0
  556. /package/dist/{sql-DBsUs8nQ.js → sql-wv_2DQzf.js} +0 -0
  557. /package/dist/{stex-C6-x52ei.js → stex-BmcrV7cx.js} +0 -0
  558. /package/dist/{stylus-DroA8via.js → stylus-SVJ7TGPh.js} +0 -0
  559. /package/dist/{swift-DR0x1ESK.js → swift-f7KaABxm.js} +0 -0
  560. /package/dist/{tcl-BeuTFc_c.js → tcl-CbTFkeHJ.js} +0 -0
  561. /package/dist/{textile-C0ikhHN3.js → textile-CFn6QLRy.js} +0 -0
  562. /package/dist/{tiddlywiki-C_2Nvsgu.js → tiddlywiki-DBhMcdVM.js} +0 -0
  563. /package/dist/{tiki-CKQlhmQQ.js → tiki-CqcXr_YN.js} +0 -0
  564. /package/dist/{timer-CcUhugb0.js → timer-ly0jlpkr.js} +0 -0
  565. /package/dist/{toml-BqNUJWRI.js → toml-YgDIoI1n.js} +0 -0
  566. /package/dist/{treemap-BYLUKIzA.js → treemap-D5sUCpbF.js} +0 -0
  567. /package/dist/{troff-DkK0f2ZH.js → troff-CIp_4RXg.js} +0 -0
  568. /package/dist/{ttcn-Bf8vrg-_.js → ttcn-Yn_uOBYK.js} +0 -0
  569. /package/dist/{ttcn-cfg-DjCKzd95.js → ttcn-cfg-BVum2rmM.js} +0 -0
  570. /package/dist/{turtle-SSc84S9m.js → turtle-BeWx-YoQ.js} +0 -0
  571. /package/dist/{vb-CQ6DC3cL.js → vb-DKEmSA_2.js} +0 -0
  572. /package/dist/{vbscript-Dw0gFssg.js → vbscript-BPsxuP0n.js} +0 -0
  573. /package/dist/{velocity-BvJQyBmj.js → velocity-ycm1NvlO.js} +0 -0
  574. /package/dist/{verilog-CKGAvQjj.js → verilog-ogjm0Ytr.js} +0 -0
  575. /package/dist/{vhdl-B40_x6fM.js → vhdl-BvjyOM9y.js} +0 -0
  576. /package/dist/{webidl-Bi9hczCv.js → webidl-QdwcTYEu.js} +0 -0
  577. /package/dist/{xquery-DwWUXvP3.js → xquery-BErHIIc-.js} +0 -0
  578. /package/dist/{yacas-ClUs0mmH.js → yacas-BBBJNs0h.js} +0 -0
  579. /package/dist/{z80-DPC4UGzR.js → z80-nG9RRukG.js} +0 -0
  580. /package/dist/{zod-mAEs2ITo.js → zod-0AbTN3Cg.js} +0 -0
@@ -10,10 +10,12 @@ import { getRuntimeManager } from "../../runtime/config";
10
10
  * before connecting to the LSP server.
11
11
  *
12
12
  * @param serverName - The name of the LSP server.
13
+ * @param onReconnect - Optional callback to call after reconnection (e.g., to resync documents).
13
14
  * @returns The transport.
14
15
  */
15
16
  export function createTransport(
16
17
  serverName: "pylsp" | "basedpyright" | "copilot" | "ty",
18
+ onReconnect?: () => Promise<void>,
17
19
  ) {
18
20
  const runtimeManager = getRuntimeManager();
19
21
  return new ReconnectingWebSocketTransport({
@@ -21,5 +23,6 @@ export function createTransport(
21
23
  waitForConnection: async () => {
22
24
  await waitForConnectionOpen();
23
25
  },
26
+ onReconnect,
24
27
  });
25
28
  }
@@ -270,6 +270,7 @@ describe("add table list", () => {
270
270
  engine: "conn1" as ConnectionName,
271
271
  database: "db1",
272
272
  schema: "public",
273
+ dialect: "sqlite",
273
274
  });
274
275
 
275
276
  const conn1 = newState.connectionsMap.get("conn1" as ConnectionName);
@@ -283,6 +284,7 @@ describe("add table list", () => {
283
284
  engine: "conn1" as ConnectionName,
284
285
  database: "db1",
285
286
  schema: "public",
287
+ dialect: "sqlite",
286
288
  };
287
289
 
288
290
  const tableList: DataTable[] = [
@@ -344,6 +346,7 @@ describe("add table list", () => {
344
346
  engine: "conn1" as ConnectionName,
345
347
  database: "db1",
346
348
  schema: "non_existent",
349
+ dialect: "sqlite",
347
350
  });
348
351
 
349
352
  const conn1 = newState.connectionsMap.get("conn1" as ConnectionName);
@@ -407,6 +410,7 @@ describe("add table", () => {
407
410
  engine: "conn1" as ConnectionName,
408
411
  database: "db1",
409
412
  schema: "public",
413
+ dialect: "sqlite",
410
414
  });
411
415
 
412
416
  const conn1 = newState.connectionsMap.get("conn1" as ConnectionName);
@@ -420,6 +424,7 @@ describe("add table", () => {
420
424
  engine: "conn1" as ConnectionName,
421
425
  database: "db1",
422
426
  schema: "public",
427
+ dialect: "sqlite",
423
428
  };
424
429
 
425
430
  const table: DataTable = {
@@ -476,6 +481,7 @@ describe("add table", () => {
476
481
  engine: "conn1" as ConnectionName,
477
482
  database: "db1",
478
483
  schema: "non_existent",
484
+ dialect: "sqlite",
479
485
  });
480
486
 
481
487
  const conn1 = newState.connectionsMap.get("conn1" as ConnectionName);
@@ -47,6 +47,7 @@ export interface SQLTableContext {
47
47
  engine: string;
48
48
  database: string;
49
49
  schema: string;
50
+ dialect: string;
50
51
  defaultSchema?: string | null;
51
52
  defaultDatabase?: string | null;
52
53
  }
@@ -137,6 +137,49 @@ describe("parseOutline", () => {
137
137
  `);
138
138
  });
139
139
 
140
+ it("can parse markdown outline", () => {
141
+ const markdown = `
142
+ <span class="markdown">
143
+ <h1 id="introduction">Introduction</h1>
144
+ <h2 id="getting-started">Getting Started</h2>
145
+ <h3 id="installation">Installation</h3>
146
+ </span>
147
+ `;
148
+ const outline = parseOutline({
149
+ mimetype: "text/markdown",
150
+ timestamp: 0,
151
+ channel: "output",
152
+ data: markdown,
153
+ });
154
+ expect(outline).toMatchInlineSnapshot(`
155
+ {
156
+ "items": [
157
+ {
158
+ "by": {
159
+ "id": "introduction",
160
+ },
161
+ "level": 1,
162
+ "name": "Introduction",
163
+ },
164
+ {
165
+ "by": {
166
+ "id": "getting-started",
167
+ },
168
+ "level": 2,
169
+ "name": "Getting Started",
170
+ },
171
+ {
172
+ "by": {
173
+ "id": "installation",
174
+ },
175
+ "level": 3,
176
+ "name": "Installation",
177
+ },
178
+ ],
179
+ }
180
+ `);
181
+ });
182
+
140
183
  it("can handle non-html outline", () => {
141
184
  const html = "foo";
142
185
  const outline = parseOutline({
@@ -68,7 +68,7 @@ export function parseOutline(output: OutputMessage | null): Outline | null {
68
68
  return null;
69
69
  }
70
70
 
71
- if (output.mimetype !== "text/html") {
71
+ if (output.mimetype !== "text/html" && output.mimetype !== "text/markdown") {
72
72
  return null;
73
73
  }
74
74
 
@@ -36,6 +36,7 @@ import {
36
36
  } from "../kernel/handlers";
37
37
  import { queryParamHandlers } from "../kernel/queryParamHandlers";
38
38
  import { RuntimeState } from "../kernel/RuntimeState";
39
+ import { initialModeAtom } from "../mode";
39
40
  import type { RequestId } from "../network/DeferredRequestRegistry";
40
41
  import { requestClientAtom } from "../network/requests";
41
42
  import { store } from "../state/jotai";
@@ -57,6 +58,7 @@ import { dismissIslandsLoadingToast, toastIslandsLoading } from "./toast";
57
58
  export async function initialize() {
58
59
  // Setup networking
59
60
  store.set(requestClientAtom, IslandsPyodideBridge.INSTANCE);
61
+ store.set(initialModeAtom, "read");
60
62
 
61
63
  // This will display all the static HTML content.
62
64
  initializePlugins();
@@ -230,4 +230,61 @@ describe("ReconnectingWebSocketTransport", () => {
230
230
 
231
231
  expect(WebSocketTransport).toHaveBeenCalledTimes(1);
232
232
  });
233
+
234
+ it("should call onReconnect callback after reconnection", async () => {
235
+ const getWsUrl = vi.fn(() => mockWsUrl);
236
+ const onReconnect = vi.fn().mockResolvedValue(undefined);
237
+ const transport = new ReconnectingWebSocketTransport({
238
+ getWsUrl,
239
+ onReconnect,
240
+ });
241
+
242
+ // First connection - callback should not be called
243
+ await transport.connect();
244
+ expect(onReconnect).not.toHaveBeenCalled();
245
+
246
+ // Simulate connection loss
247
+ mockConnection.readyState = WebSocket.CLOSED;
248
+
249
+ // Reconnect - callback should be called this time
250
+ const data: any = { method: "test", params: [] };
251
+ await transport.sendData(data, 5000);
252
+
253
+ expect(onReconnect).toHaveBeenCalledTimes(1);
254
+ });
255
+
256
+ it("should not call onReconnect callback on first connection", async () => {
257
+ const getWsUrl = vi.fn(() => mockWsUrl);
258
+ const onReconnect = vi.fn().mockResolvedValue(undefined);
259
+ const transport = new ReconnectingWebSocketTransport({
260
+ getWsUrl,
261
+ onReconnect,
262
+ });
263
+
264
+ await transport.connect();
265
+
266
+ expect(onReconnect).not.toHaveBeenCalled();
267
+ });
268
+
269
+ it("should handle onReconnect callback errors gracefully", async () => {
270
+ const getWsUrl = vi.fn(() => mockWsUrl);
271
+ const reconnectError = new Error("Reconnect callback failed");
272
+ const onReconnect = vi.fn().mockRejectedValue(reconnectError);
273
+ const transport = new ReconnectingWebSocketTransport({
274
+ getWsUrl,
275
+ onReconnect,
276
+ });
277
+
278
+ // First connection
279
+ await transport.connect();
280
+
281
+ // Simulate connection loss
282
+ mockConnection.readyState = WebSocket.CLOSED;
283
+
284
+ // Reconnect - should propagate the error from onReconnect
285
+ const data: any = { method: "test", params: [] };
286
+ await expect(transport.sendData(data, 5000)).rejects.toThrow(
287
+ "Reconnect callback failed",
288
+ );
289
+ });
233
290
  });
@@ -15,6 +15,12 @@ export interface ReconnectingWebSocketTransportOptions {
15
15
  * This is useful for ensuring dependencies (like the runtime) are ready.
16
16
  */
17
17
  waitForConnection?: () => Promise<void>;
18
+
19
+ /**
20
+ * Optional callback that is called after a successful reconnection.
21
+ * This allows the LSP client to re-synchronize state (e.g., re-send document open notifications).
22
+ */
23
+ onReconnect?: () => Promise<void>;
18
24
  }
19
25
 
20
26
  /**
@@ -26,6 +32,7 @@ export class ReconnectingWebSocketTransport extends Transport {
26
32
  private readonly options: ReconnectingWebSocketTransportOptions;
27
33
  private connectionPromise: Promise<void> | undefined;
28
34
  private isClosed = false;
35
+ private hasConnectedBefore = false;
29
36
 
30
37
  constructor(options: ReconnectingWebSocketTransportOptions) {
31
38
  super();
@@ -98,6 +105,15 @@ export class ReconnectingWebSocketTransport extends Transport {
98
105
  // Connect the delegate
99
106
  await delegate.connect();
100
107
  Logger.log("WebSocket transport connected successfully");
108
+
109
+ // If this is a reconnection, call the onReconnect callback
110
+ const isReconnection = this.hasConnectedBefore;
111
+ this.hasConnectedBefore = true;
112
+
113
+ if (isReconnection && this.options.onReconnect) {
114
+ Logger.log("Calling onReconnect callback to re-synchronize state");
115
+ await this.options.onReconnect();
116
+ }
101
117
  } catch (error) {
102
118
  Logger.error("WebSocket transport connection failed", error);
103
119
  // Clear the delegate on failure so we create a new one on retry
@@ -13,6 +13,7 @@ import React, {
13
13
  useRef,
14
14
  } from "react";
15
15
  import { CopyClipboardIcon } from "@/components/icons/copy-icon";
16
+ import { QueryParamPreservingLink } from "@/components/ui/query-param-preserving-link";
16
17
  import { sanitizeHtml, useSanitizeHtml } from "./sanitize";
17
18
 
18
19
  type ReplacementFn = NonNullable<HTMLReactParserOptions["replace"]>;
@@ -106,6 +107,30 @@ const replaceSrcScripts = (domNode: DOMNode): JSX.Element | undefined => {
106
107
  }
107
108
  };
108
109
 
110
+ const preserveQueryParamsInAnchorLinks: TransformFn = (
111
+ reactNode: ReactNode,
112
+ domNode: DOMNode,
113
+ ): JSX.Element | undefined => {
114
+ if (domNode instanceof Element && domNode.name === "a") {
115
+ const href = domNode.attribs.href;
116
+ // Only handle anchor links (starting with #)
117
+ if (href?.startsWith("#") && !href.startsWith("#code/")) {
118
+ // Get the children from the parsed React node
119
+ let children: ReactNode = null;
120
+ if (isValidElement(reactNode) && "props" in reactNode) {
121
+ const props = reactNode.props as { children?: ReactNode };
122
+ children = props.children;
123
+ }
124
+
125
+ return (
126
+ <QueryParamPreservingLink href={href} {...domNode.attribs}>
127
+ {children}
128
+ </QueryParamPreservingLink>
129
+ );
130
+ }
131
+ }
132
+ };
133
+
109
134
  // Add copy button to codehilite blocks
110
135
  const addCopyButtonToCodehilite: TransformFn = (
111
136
  reactNode: ReactNode,
@@ -198,6 +223,7 @@ function parseHtml({
198
223
 
199
224
  const transformFunctions: TransformFn[] = [
200
225
  addCopyButtonToCodehilite,
226
+ preserveQueryParamsInAnchorLinks,
201
227
  removeWrappingBodyTags,
202
228
  removeWrappingHtmlTags,
203
229
  ];
@@ -18,7 +18,14 @@ const sanitizeHtmlAtom = atom<boolean>((get) => {
18
18
  return false;
19
19
  }
20
20
 
21
- const isInAppMode = getInitialAppMode() === "read";
21
+ let isInAppMode = true;
22
+ try {
23
+ isInAppMode = getInitialAppMode() === "read";
24
+ } catch {
25
+ // If it fails to get the initial app mode, we default to sanitizing.
26
+ return true;
27
+ }
28
+
22
29
  // Apps need to run javascript and load external resources.
23
30
  if (isInAppMode) {
24
31
  return false;
@@ -57,7 +57,6 @@ import { Alert, AlertTitle } from "@/components/ui/alert";
57
57
  import { Button } from "@/components/ui/button";
58
58
  import { DelayMount } from "@/components/utils/delay-mount";
59
59
  import { type CellId, findCellId } from "@/core/cells/ids";
60
- import { getFeatureFlag } from "@/core/config/feature-flag";
61
60
  import { slotsController } from "@/core/slots/slots";
62
61
  import { store } from "@/core/state/jotai";
63
62
  import { isStaticNotebook } from "@/core/static/static-state";
@@ -85,15 +84,12 @@ import {
85
84
  type CsvURL = string;
86
85
  export type TableData<T> = T[] | CsvURL;
87
86
 
88
- interface ColumnSummariesArgs {
89
- precompute: boolean;
90
- }
91
-
92
87
  interface ColumnSummaries<T = unknown> {
93
88
  data: TableData<T> | null | undefined;
94
89
  stats: Record<ColumnName, ColumnHeaderStats>;
95
90
  bin_values: Record<ColumnName, BinValues>;
96
91
  value_counts: Record<ColumnName, ValueCounts>;
92
+ show_charts: boolean;
97
93
  is_disabled?: boolean;
98
94
  }
99
95
 
@@ -198,9 +194,7 @@ interface Data<T> {
198
194
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
199
195
  type DataTableFunctions = {
200
196
  download_as: DownloadAsArgs;
201
- get_column_summaries: <T>(
202
- opts: ColumnSummariesArgs,
203
- ) => Promise<ColumnSummaries<T>>;
197
+ get_column_summaries: <T>(opts: {}) => Promise<ColumnSummaries<T>>;
204
198
  search: <T>(req: {
205
199
  sort?: {
206
200
  by: string;
@@ -281,19 +275,16 @@ export const DataTablePlugin = createPlugin<S>("marimo-table")
281
275
  )
282
276
  .withFunctions<DataTableFunctions>({
283
277
  download_as: DownloadAsSchema,
284
- get_column_summaries: rpc
285
- .input(z.object({ precompute: z.boolean() }))
286
- .output(
287
- z.object({
288
- data: z
289
- .union([z.string(), z.array(z.object({}).passthrough())])
290
- .nullable(),
291
- stats: z.record(z.string(), columnStats),
292
- bin_values: z.record(z.string(), binValues),
293
- value_counts: z.record(z.string(), valueCounts),
294
- is_disabled: z.boolean().optional(),
295
- }),
296
- ),
278
+ get_column_summaries: rpc.input(z.looseObject({})).output(
279
+ z.object({
280
+ data: z.union([z.string(), z.array(z.looseObject({}))]).nullable(),
281
+ stats: z.record(z.string(), columnStats),
282
+ bin_values: z.record(z.string(), binValues),
283
+ value_counts: z.record(z.string(), valueCounts),
284
+ show_charts: z.boolean(),
285
+ is_disabled: z.boolean().optional(),
286
+ }),
287
+ ),
297
288
  search: rpc
298
289
  .input(
299
290
  z.object({
@@ -598,8 +589,6 @@ export const LoadingDataTableComponent = memo(
598
589
  );
599
590
  }, [data?.totalRows]);
600
591
 
601
- const precompute = getFeatureFlag("performant_table_charts");
602
-
603
592
  // Column summaries
604
593
  const { data: columnSummaries, error: columnSummariesError } = useAsyncData<
605
594
  ColumnSummaries<T>
@@ -607,9 +596,15 @@ export const LoadingDataTableComponent = memo(
607
596
  // TODO: props.get_column_summaries is always true,
608
597
  // so we are unable to detect if the function is registered
609
598
  if (props.totalRows === 0 || !props.showColumnSummaries) {
610
- return { data: null, stats: {}, bin_values: {}, value_counts: {} };
599
+ return {
600
+ data: null,
601
+ stats: {},
602
+ bin_values: {},
603
+ value_counts: {},
604
+ show_charts: false,
605
+ };
611
606
  }
612
- return props.get_column_summaries({ precompute });
607
+ return props.get_column_summaries({});
613
608
  }, [
614
609
  props.get_column_summaries,
615
610
  props.showColumnSummaries,
@@ -778,8 +773,7 @@ const DataTableComponent = ({
778
773
  columnSummaries.bin_values,
779
774
  columnSummaries.value_counts,
780
775
  {
781
- includeCharts: Boolean(columnSummaries.data),
782
- usePreComputedValues: getFeatureFlag("performant_table_charts"),
776
+ includeCharts: columnSummaries.show_charts,
783
777
  },
784
778
  );
785
779
  }, [fieldTypes, columnSummaries]);
@@ -4,14 +4,15 @@ import * as cql from "compassql/build/src";
4
4
  import { createStore, Provider, useAtomValue } from "jotai";
5
5
  import { ListFilterIcon } from "lucide-react";
6
6
  import React, { type JSX, useMemo } from "react";
7
- import { VegaLite } from "react-vega";
8
- import type { VegaLiteProps } from "react-vega/lib/VegaLite";
7
+ import { VegaEmbed, type VegaEmbedProps } from "react-vega";
8
+ import { tooltipHandler } from "@/components/charts/tooltip";
9
+ import { augmentSpecWithData } from "@/components/data-table/charts/chart-spec/spec";
9
10
  import { Badge } from "@/components/ui/badge";
10
11
  import { Button } from "@/components/ui/button";
11
12
  import { Tooltip } from "@/components/ui/tooltip";
12
13
  import { useAsyncData } from "@/hooks/useAsyncData";
13
14
  import { useOnMount } from "@/hooks/useLifecycle";
14
- import { useTheme } from "@/theme/useTheme";
15
+ import { type ResolvedTheme, useTheme } from "@/theme/useTheme";
15
16
  import { Objects } from "@/utils/objects";
16
17
  import { ErrorBanner } from "../common/error-banner";
17
18
  import { vegaLoadData } from "../vega/loader";
@@ -69,14 +70,20 @@ interface DataTableProps extends DataExplorerData {
69
70
  setValue: (value: DataExplorerState) => void;
70
71
  }
71
72
 
72
- const ACTIONS: VegaLiteProps["actions"] = {
73
- export: { svg: true, png: true },
74
- source: false,
75
- compiled: false,
76
- editor: false,
77
- };
78
-
79
- const PADDING = { left: 20, right: 20, top: 20, bottom: 20 };
73
+ function chartOptions(theme: ResolvedTheme): VegaEmbedProps["options"] {
74
+ return {
75
+ padding: { left: 20, right: 20, top: 20, bottom: 20 },
76
+ actions: {
77
+ export: { svg: true, png: true },
78
+ source: false,
79
+ compiled: false,
80
+ editor: false,
81
+ },
82
+ theme: theme === "dark" ? "dark" : undefined,
83
+ tooltip: tooltipHandler.call,
84
+ renderer: "canvas",
85
+ };
86
+ }
80
87
 
81
88
  export default ConnectedDataExplorerComponent;
82
89
 
@@ -128,15 +135,14 @@ export const DataExplorerComponent = ({
128
135
  return <ColumnSummary schema={schema} />;
129
136
  }
130
137
 
138
+ const spec = mainPlot.spec;
139
+ const responsiveSpec = makeResponsive(spec);
140
+ // TODO: We can optimize by updating the data dynamically. https://github.com/vega/react-vega?tab=readme-ov-file#recipes
141
+ const augmentedSpec = augmentSpecWithData(responsiveSpec, chartData);
142
+
131
143
  return (
132
144
  <div className="flex overflow-y-auto justify-center items-center flex-1 w-[90%]">
133
- <VegaLite
134
- data={{ source: chartData }}
135
- padding={PADDING}
136
- actions={ACTIONS}
137
- spec={makeResponsive(mainPlot.spec)}
138
- theme={theme === "dark" ? "dark" : undefined}
139
- />
145
+ <VegaEmbed spec={augmentedSpec} options={chartOptions(theme)} />
140
146
  </div>
141
147
  );
142
148
  };
@@ -205,12 +211,10 @@ export const DataExplorerComponent = ({
205
211
  </Tooltip>
206
212
  }
207
213
  >
208
- <VegaLite
209
- data={{ source: chartData }}
214
+ <VegaEmbed
215
+ options={chartOptions(theme)}
210
216
  key={idx}
211
- actions={false}
212
217
  spec={plot.spec}
213
- theme={theme === "dark" ? "dark" : undefined}
214
218
  />
215
219
  </HorizontalCarouselItem>
216
220
  ))}
@@ -1,8 +1,7 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
  /* eslint-disable @typescript-eslint/no-base-to-string */
3
3
  import type { FieldQuery } from "compassql/build/src/query/encoding";
4
- import { isAggregateOp } from "vega-lite/build/src/aggregate";
5
- import type { FieldFunction, TimeUnitOp } from "./types";
4
+ import { type FieldFunction, isAggregateOp, type TimeUnitOp } from "./types";
6
5
 
7
6
  // This code is adapted and simplified from https://github.com/vega/voyager
8
7
 
@@ -1,19 +1,70 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
+ import { isString } from "lodash-es";
4
+ import type {
5
+ ArgmaxDef,
6
+ ArgminDef,
7
+ } from "vega-lite/types_unstable/aggregate.d.ts";
8
+ import type { isAggregateOp as isAggregateOpVega } from "vega-lite/types_unstable/aggregate.js";
9
+ import type { AggregateOp } from "vega-typings";
10
+
11
+ // Vega doesn't expose the constant, so we define all here
12
+ const AGGREGATE_OPS: readonly AggregateOp[] = [
13
+ "argmax",
14
+ "argmin",
15
+ "average",
16
+ "count",
17
+ "distinct",
18
+ "exponential",
19
+ "exponentialb",
20
+ "product",
21
+ "max",
22
+ "mean",
23
+ "median",
24
+ "min",
25
+ "missing",
26
+ "q1",
27
+ "q3",
28
+ "ci0",
29
+ "ci1",
30
+ "stderr",
31
+ "stdev",
32
+ "stdevp",
33
+ "sum",
34
+ "valid",
35
+ "values",
36
+ "variance",
37
+ "variancep",
38
+ ] as const;
39
+
3
40
  // Subset of aggregate operations that we support
4
- type AggregateOp =
5
- | "average"
6
- | "count"
7
- | "distinct"
8
- | "max"
9
- | "mean"
10
- | "median"
11
- | "min"
12
- | "q1"
13
- | "q3"
14
- | "stderr"
15
- | "stdev"
16
- | "sum";
41
+ const SUPPORTED_AGGREGATE_OPS: readonly AggregateOp[] = [
42
+ "average",
43
+ "count",
44
+ "distinct",
45
+ "max",
46
+ "mean",
47
+ "median",
48
+ "min",
49
+ "q1",
50
+ "q3",
51
+ "stderr",
52
+ "stdev",
53
+ "sum",
54
+ ];
55
+ type SupportedAggregateOp = (typeof SUPPORTED_AGGREGATE_OPS)[number];
56
+
57
+ // We implement our own isAggregateOp because
58
+ // The vega-lite types_unstable import path fails in Vite (module resolution issue)
59
+ export const isAggregateOp: typeof isAggregateOpVega = (
60
+ a: string | ArgminDef | ArgmaxDef,
61
+ ): a is AggregateOp => {
62
+ if (!isString(a)) {
63
+ return false;
64
+ }
65
+
66
+ return AGGREGATE_OPS.includes(a as AggregateOp);
67
+ };
17
68
 
18
69
  // Subset of time units that we support
19
70
  export type TimeUnitOp =
@@ -29,4 +80,4 @@ export type TimeUnitOp =
29
80
  | "yearmonthdate"
30
81
  | "monthdate";
31
82
 
32
- export type FieldFunction = AggregateOp | "bin" | TimeUnitOp;
83
+ export type FieldFunction = SupportedAggregateOp | "bin" | TimeUnitOp;
@@ -11,8 +11,7 @@ import type { SpecQuery } from "compassql/build/src/query/spec";
11
11
  import { getTopResultTreeItem, isResultTree } from "compassql/build/src/result";
12
12
  import type { Schema } from "compassql/build/src/schema";
13
13
  import { contains } from "vega-lite";
14
- import { NONPOSITION_SCALE_CHANNELS } from "vega-lite/build/src/channel";
15
- import type { NamedData } from "vega-lite/build/src/data";
14
+ import type { NamedData } from "vega-lite/types_unstable/data.js";
16
15
  import { type EncodingChannel, fromFieldQuery } from "../encoding";
17
16
  import { toSpecQuery } from "../spec";
18
17
  import type { ChartSpec } from "../state/types";
@@ -21,13 +20,14 @@ import {
21
20
  addQuantitativeField,
22
21
  addTemporalField,
23
22
  } from "./field-suggestion";
24
- import type {
25
- PlotFieldInfo,
26
- QueryCreator,
27
- Result,
28
- ResultingCharts,
29
- ResultPlot,
30
- TopLevelFacetedUnitSpec,
23
+ import {
24
+ NONPOSITION_SCALE_CHANNELS,
25
+ type PlotFieldInfo,
26
+ type QueryCreator,
27
+ type Result,
28
+ type ResultingCharts,
29
+ type ResultPlot,
30
+ type TopLevelFacetedUnitSpec,
31
31
  } from "./types";
32
32
  import { hasWildcards, isQueryEmpty } from "./utils";
33
33