@marimo-team/islands 0.17.2 → 0.17.4

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 (582) 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 +40727 -41561
  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/css/md.css +6 -0
  326. package/src/plugins/core/RenderHTML.tsx +26 -0
  327. package/src/plugins/core/__test__/sanitize.test.ts +27 -0
  328. package/src/plugins/core/sanitize.ts +9 -2
  329. package/src/plugins/impl/DataTablePlugin.tsx +21 -27
  330. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +26 -22
  331. package/src/plugins/impl/data-explorer/functions/function.ts +1 -2
  332. package/src/plugins/impl/data-explorer/functions/types.ts +65 -14
  333. package/src/plugins/impl/data-explorer/queries/queries.ts +9 -9
  334. package/src/plugins/impl/data-explorer/queries/types.ts +23 -5
  335. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +2 -1
  336. package/src/plugins/impl/vega/__tests__/__snapshots__/make-selectable.test.ts.snap +2309 -0
  337. package/src/plugins/impl/vega/__tests__/encodings.test.ts +93 -0
  338. package/src/plugins/impl/vega/__tests__/make-selectable.test.ts +621 -0
  339. package/src/plugins/impl/vega/__tests__/params.test.ts +121 -1
  340. package/src/plugins/impl/vega/encodings.ts +16 -2
  341. package/src/plugins/impl/vega/make-selectable.ts +339 -10
  342. package/src/plugins/impl/vega/params.ts +76 -14
  343. package/src/plugins/impl/vega/types.ts +32 -13
  344. package/src/plugins/impl/vega/vega-component.tsx +74 -26
  345. package/src/plugins/impl/vega/vega.css +1 -0
  346. package/src/stories/__fixtures__/vega.ts +1 -1
  347. package/src/utils/arrays.ts +16 -0
  348. package/dist/_baseUniq-CKN9mEDq.js +0 -324
  349. package/dist/any-language-editor-Du2Q_6IK.js +0 -156
  350. package/dist/apl-CUm2DGqh.js +0 -4
  351. package/dist/architecture-O4VJ6CD3-PFw3eFBY.js +0 -21
  352. package/dist/asciiarmor-lqJ78U01.js +0 -4
  353. package/dist/asn1-CjwpSTlW.js +0 -4
  354. package/dist/brainfuck-ClvDI1dq.js +0 -4
  355. package/dist/classDiagram-KNZD7YFC-HUFFxNdk.js +0 -40
  356. package/dist/classDiagram-v2-RKCZMP56-Dw7Acmuf.js +0 -40
  357. package/dist/clojure-8GefCgPe.js +0 -4
  358. package/dist/cmake-yAhT9H0F.js +0 -4
  359. package/dist/cobol-BmltueOY.js +0 -4
  360. package/dist/coffeescript-C7KEQBcH.js +0 -4
  361. package/dist/commonlisp-CNbiJRU-.js +0 -4
  362. package/dist/crystal-OdjZZ8bc.js +0 -4
  363. package/dist/css-DhTxMmL_.js +0 -5
  364. package/dist/cypher-CgN8E3YI.js +0 -4
  365. package/dist/d-g41sJcBC.js +0 -4
  366. package/dist/diff-ViRYYhhg.js +0 -4
  367. package/dist/dist-BfJO8Bm9.js +0 -12
  368. package/dist/dist-CLuF3AtO.js +0 -6
  369. package/dist/dist-CU04U4NL.js +0 -10
  370. package/dist/dist-DNUT6b47.js +0 -6
  371. package/dist/dist-DbAb2sY7.js +0 -6
  372. package/dist/dist-DiDFQ2Rk.js +0 -6
  373. package/dist/dist-SNAyAOJ-.js +0 -6
  374. package/dist/dist-cbW5xJNV.js +0 -6
  375. package/dist/dist-h8eGLSbK.js +0 -10
  376. package/dist/dylan-BX8KJufP.js +0 -4
  377. package/dist/ecl-CWtLaNMH.js +0 -4
  378. package/dist/eiffel-C-mlZPMn.js +0 -4
  379. package/dist/elm-CWp06vcb.js +0 -4
  380. package/dist/erlang-pfp22AZM.js +0 -4
  381. package/dist/error-banner-BAWlXn49.js +0 -1012
  382. package/dist/esm-B2pocBPL.js +0 -26
  383. package/dist/esm-YVnxJqkD.js +0 -33066
  384. package/dist/factor-CEn53jua.js +0 -5
  385. package/dist/forth-CL8vu_y8.js +0 -4
  386. package/dist/fortran-DsmXkYtE.js +0 -4
  387. package/dist/gas-mYt9Rtlx.js +0 -4
  388. package/dist/gherkin-DHNCKBNj.js +0 -4
  389. package/dist/gitGraph-ZV4HHKMB-Cpd6k0O8.js +0 -21
  390. package/dist/graphlib-DRS8CrjA.js +0 -227
  391. package/dist/groovy-DzRtOS5a.js +0 -4
  392. package/dist/haskell-Bl9iT_Mp.js +0 -4
  393. package/dist/haxe-DqA0ED6k.js +0 -5
  394. package/dist/idl-WU2hil4i.js +0 -4
  395. package/dist/info-63CPKGFF-CG-xzUJo.js +0 -21
  396. package/dist/infoDiagram-STP46IZ2-zoRBGoup.js +0 -45
  397. package/dist/javascript-QY2BGJeV.js +0 -5
  398. package/dist/jinja2-Czleq7Sk.js +0 -4
  399. package/dist/jsx-runtime-DZyWJV5b.js +0 -31
  400. package/dist/julia-Dru3Qi0y.js +0 -4
  401. package/dist/livescript-Dxqi_HLT.js +0 -4
  402. package/dist/lua-ByH1cUQZ.js +0 -4
  403. package/dist/mathematica-CWJIFuES.js +0 -4
  404. package/dist/mbox-qhPIGaUI.js +0 -4
  405. package/dist/min-Dwa_NbP6.js +0 -93
  406. package/dist/mirc-yYcXhXBY.js +0 -4
  407. package/dist/mllike-BfT_Nl9x.js +0 -6
  408. package/dist/modelica-lVDtz1Rm.js +0 -4
  409. package/dist/mscgen-DvwdD1QJ.js +0 -6
  410. package/dist/mumps-BiY3GwKd.js +0 -4
  411. package/dist/nsis-Dk18Sq_4.js +0 -5
  412. package/dist/ntriples-Cj-8VqKF.js +0 -4
  413. package/dist/octave-BgFAaYjU.js +0 -4
  414. package/dist/oz-IsEG1I1m.js +0 -4
  415. package/dist/packet-HUATNLJX-Cafuo3IG.js +0 -21
  416. package/dist/pascal-BVf7FtIE.js +0 -4
  417. package/dist/perl-BM0-y4mZ.js +0 -4
  418. package/dist/pie-WTHONI2E-BE0pHBwB.js +0 -21
  419. package/dist/pig-CLBjzQmc.js +0 -4
  420. package/dist/powershell-B_qvE33J.js +0 -4
  421. package/dist/properties-CUTpsH2y.js +0 -4
  422. package/dist/protobuf-DqCP8a-0.js +0 -4
  423. package/dist/pug-BvexKkw4.js +0 -5
  424. package/dist/puppet-CoIi0R3f.js +0 -4
  425. package/dist/python-C-11-YMh.js +0 -5
  426. package/dist/q-CCVgEip7.js +0 -4
  427. package/dist/r-CIdR0Sfs.js +0 -4
  428. package/dist/radar-NJJJXTRR-0adgjw0u.js +0 -21
  429. package/dist/rpm-Dwvm039g.js +0 -5
  430. package/dist/ruby-DpTnO5gb.js +0 -4
  431. package/dist/sas-CK9boxgv.js +0 -4
  432. package/dist/scheme-Y1aYL-Qq.js +0 -4
  433. package/dist/shell-D3eXGsHd.js +0 -4
  434. package/dist/sieve-BdwSFdWJ.js +0 -4
  435. package/dist/smalltalk-BTYJquCm.js +0 -4
  436. package/dist/sparql-CYF0g4Cc.js +0 -4
  437. package/dist/stateDiagram-v2-UMBNRL4Z-DdJ7qVWc.js +0 -39
  438. package/dist/stex-CyWhoWHt.js +0 -5
  439. package/dist/stylus-BBiKaI2h.js +0 -4
  440. package/dist/swift-COb15qFR.js +0 -4
  441. package/dist/tcl-Jik1LXu9.js +0 -4
  442. package/dist/textile-BFHPD3wr.js +0 -4
  443. package/dist/toml-Brp9fBXs.js +0 -4
  444. package/dist/treemap-75Q7IDZK-CyBT8_Wh.js +0 -21
  445. package/dist/troff-CcZRW4vg.js +0 -4
  446. package/dist/tslib.es6-3ZL768sZ.js +0 -49
  447. package/dist/ttcn-Bz_6ifRd.js +0 -4
  448. package/dist/ttcn-cfg-v-yi2rKc.js +0 -4
  449. package/dist/turtle-CDOsZYhB.js +0 -4
  450. package/dist/useDateFormatter-BkbjKw83.js +0 -543
  451. package/dist/vb-CL7fRwRw.js +0 -4
  452. package/dist/vbscript-CR2xfxpw.js +0 -4
  453. package/dist/vega-component-BfFcXZxw.js +0 -465
  454. package/dist/velocity-CfuZoxPt.js +0 -4
  455. package/dist/verilog-CySTkzw_.js +0 -4
  456. package/dist/vhdl-Dvcd8KHW.js +0 -4
  457. package/dist/webidl-tbJt7sKk.js +0 -4
  458. package/dist/xquery-DJQVztyc.js +0 -4
  459. package/dist/yacas-BbgBReEH.js +0 -4
  460. package/dist/z80-DPyb8VGz.js +0 -4
  461. /package/dist/{_arrayReduce-Cd9xQjbl.js → _arrayReduce-CmsTTAw1.js} +0 -0
  462. /package/dist/{_baseSlice-CE9WsQZm.js → _baseSlice-CAnpEJwx.js} +0 -0
  463. /package/dist/{_hasUnicode-DkEebvtD.js → _hasUnicode-CbmCTPAa.js} +0 -0
  464. /package/dist/{apl-aGhy11IM.js → apl-Css595_H.js} +0 -0
  465. /package/dist/{array-DYSXIreg.js → array-D3smvOQ_.js} +0 -0
  466. /package/dist/{asciiarmor-DJKJ3Gkn.js → asciiarmor-BTCuJwxh.js} +0 -0
  467. /package/dist/{asn1-C6f5IeNs.js → asn1-DXjhS5QI.js} +0 -0
  468. /package/dist/{asterisk-DB1poX9_.js → asterisk-5HlmsIaw.js} +0 -0
  469. /package/dist/{brainfuck-Ch9vjun0.js → brainfuck--WlEc-iG.js} +0 -0
  470. /package/dist/{chunk-57QY23SG-BpXU7ph4.js → chunk-57QY23SG-D7ymhFFp.js} +0 -0
  471. /package/dist/{click-outside-container-2BH589Bq.js → click-outside-container-DSVM9sZw.js} +0 -0
  472. /package/dist/{clike-Bc2PZzZQ.js → clike-DDIJB_R8.js} +0 -0
  473. /package/dist/{clojure-B_lpr3zt.js → clojure-Z-GPBZyY.js} +0 -0
  474. /package/dist/{cmake-DaocNF4I.js → cmake-DncBqspt.js} +0 -0
  475. /package/dist/{cobol-suTPtt7c.js → cobol-DqUe0gl7.js} +0 -0
  476. /package/dist/{coffeescript-CPLIvtqJ.js → coffeescript-CH5_OO0H.js} +0 -0
  477. /package/dist/{colors-BXlG8Lmz.js → colors-DQmMCNWX.js} +0 -0
  478. /package/dist/{common-keywords-Bhll7O3b.js → common-keywords-CAEsQSF5.js} +0 -0
  479. /package/dist/{commonlisp-BqM3qFK7.js → commonlisp-UmhR9BfE.js} +0 -0
  480. /package/dist/{crystal-AsSFu4ke.js → crystal-5Sqf7MXt.js} +0 -0
  481. /package/dist/{css-Df7Sdeyh.js → css-bDybSxwf.js} +0 -0
  482. /package/dist/{cypher-CaVKL6Gu.js → cypher-PIeAFhrd.js} +0 -0
  483. /package/dist/{cytoscape.esm-BFEMljQI.js → cytoscape.esm-DclyBJ4D.js} +0 -0
  484. /package/dist/{d-DCGWK7NQ.js → d-Bd8EVRQt.js} +0 -0
  485. /package/dist/{defaultLocale-Cto8YOmX.js → defaultLocale-BPzjWfXP.js} +0 -0
  486. /package/dist/{defaultLocale-CYgZlqDF.js → defaultLocale-Om7Wxg5c.js} +0 -0
  487. /package/dist/{diff-CsxOM4Tr.js → diff-CAQdgtD6.js} +0 -0
  488. /package/dist/{dtd-Dwr0Jmks.js → dtd-eKW3pZj_.js} +0 -0
  489. /package/dist/{duckdb-keywords-7wAWf848.js → duckdb-keywords-BC3kWZZM.js} +0 -0
  490. /package/dist/{dylan-A7-ZBSey.js → dylan-CIO7R9Tr.js} +0 -0
  491. /package/dist/{ebnf-9_SaGDUz.js → ebnf-Pr4a9I6n.js} +0 -0
  492. /package/dist/{ecl-BzJVIQDc.js → ecl-BqYW-aOJ.js} +0 -0
  493. /package/dist/{eiffel-CO9eC_Op.js → eiffel-BOKM91eM.js} +0 -0
  494. /package/dist/{elm-CVAWj8SB.js → elm-3sobs3PV.js} +0 -0
  495. /package/dist/{emotion-is-prop-valid.esm-C3Yi5GQt.js → emotion-is-prop-valid.esm-Cm1uulbm.js} +0 -0
  496. /package/dist/{erlang-DWbZP546.js → erlang-C5EBzhP1.js} +0 -0
  497. /package/dist/{esm-AtKNNGYO.js → esm-CopBBL2y.js} +0 -0
  498. /package/dist/{fcl-CM9t2iay.js → fcl-Brh8s8q_.js} +0 -0
  499. /package/dist/{forth-BTYqUuu3.js → forth-DneRHr4K.js} +0 -0
  500. /package/dist/{fortran-DgAjHcCq.js → fortran-DsdmZbwQ.js} +0 -0
  501. /package/dist/{gas-BjDSWPZd.js → gas-DaoJ65Z9.js} +0 -0
  502. /package/dist/{gherkin-ClRqqpKv.js → gherkin-DUP_UlW-.js} +0 -0
  503. /package/dist/{groovy-BzNjnc8x.js → groovy-Rvyan8yX.js} +0 -0
  504. /package/dist/{haskell-DLdk34Jq.js → haskell-DIvpY54L.js} +0 -0
  505. /package/dist/{haxe-l6gaY_IS.js → haxe-Da_5bBNs.js} +0 -0
  506. /package/dist/{http-6Qg7z_h2.js → http-CMvcwl3E.js} +0 -0
  507. /package/dist/{idl-hlWT4D26.js → idl-DvL3aO0N.js} +0 -0
  508. /package/dist/{init-tZ42Torz.js → init-BNp5RczD.js} +0 -0
  509. /package/dist/{invariant-D3JoRb4I.js → invariant-Cl2wkkjN.js} +0 -0
  510. /package/dist/{isArrayLikeObject-DU5MCuQM.js → isArrayLikeObject-1qkWxZbL.js} +0 -0
  511. /package/dist/{javascript-DGukg1sB.js → javascript-DoyAP8vn.js} +0 -0
  512. /package/dist/{jinja2-DI5k_Er3.js → jinja2-Veqp7mFj.js} +0 -0
  513. /package/dist/{julia-BvDZDiIT.js → julia-Gi684CX7.js} +0 -0
  514. /package/dist/{katex-DgfMWJY9.js → katex-U6RPAuWM.js} +0 -0
  515. /package/dist/{livescript-2YMQfkfI.js → livescript-BKj_Zhvo.js} +0 -0
  516. /package/dist/{lua-DIUrQRfA.js → lua-CDA7hreG.js} +0 -0
  517. /package/dist/{main-BMTpe7M0.js → main-63eIj2Yx.js} +0 -0
  518. /package/dist/{marked.esm-DkVwEwtO.js → marked.esm-DE8HU3tw.js} +0 -0
  519. /package/dist/{math-qsHyz2Eo.js → math-C2iLT5gz.js} +0 -0
  520. /package/dist/{mathematica-Dqmg_BwL.js → mathematica-GWfSHReY.js} +0 -0
  521. /package/dist/{mbox-Cng-P-F1.js → mbox-Dwsrc4Ak.js} +0 -0
  522. /package/dist/{mirc-CNDqOVhQ.js → mirc-B2JE5ype.js} +0 -0
  523. /package/dist/{mllike-C1n2UDyX.js → mllike-BkBh4PFX.js} +0 -0
  524. /package/dist/{modelica-QqQC2pFj.js → modelica-C0hNlKgR.js} +0 -0
  525. /package/dist/{mscgen-C3fl8uhp.js → mscgen-DWWpdZnb.js} +0 -0
  526. /package/dist/{mumps-BeCUbMej.js → mumps-CMePAlSe.js} +0 -0
  527. /package/dist/{nginx-ejv7DsBz.js → nginx-GurZbX0E.js} +0 -0
  528. /package/dist/{node-sql-parser-CoPWN4hn.js → node-sql-parser-IKID_dZE.js} +0 -0
  529. /package/dist/{ntriples-CUgUpcma.js → ntriples-BnE6tX0Y.js} +0 -0
  530. /package/dist/{octave-BD652tGl.js → octave-Dfu3PmNP.js} +0 -0
  531. /package/dist/{oz-DrRsFa0K.js → oz-DqNpAjpZ.js} +0 -0
  532. /package/dist/{pascal-hpcx9sVn.js → pascal-GP_8jbNL.js} +0 -0
  533. /package/dist/{path-Bbv2tLY1.js → path-BeMi_1Je.js} +0 -0
  534. /package/dist/{perl-DW8XHeFc.js → perl-DUDEqQOD.js} +0 -0
  535. /package/dist/{pig-Cv7Nxbfo.js → pig-Csr4LnKs.js} +0 -0
  536. /package/dist/{powershell-Dr7WZMDU.js → powershell-Cw4tDKZx.js} +0 -0
  537. /package/dist/{prop-types-Bd16OEUP.js → prop-types-CzOfzj9N.js} +0 -0
  538. /package/dist/{properties-D-qJDXAM.js → properties-CUhUGfHR.js} +0 -0
  539. /package/dist/{protobuf-B48QZbd3.js → protobuf-CPZe957V.js} +0 -0
  540. /package/dist/{puppet-15JDyiY2.js → puppet-BP1AOwo6.js} +0 -0
  541. /package/dist/{purify.es-CrfFzTyi.js → purify.es-CDFkadZl.js} +0 -0
  542. /package/dist/{python-DWkQA94h.js → python-BMcMimC3.js} +0 -0
  543. /package/dist/{q-BzRpKgfd.js → q-BNfSHUci.js} +0 -0
  544. /package/dist/{r-dcNRe_Q8.js → r-DiJzLRZc.js} +0 -0
  545. /package/dist/{range-CQvYp_qE.js → range-sX2tw-Jz.js} +0 -0
  546. /package/dist/{react-dom-CpBooCbY.js → react-dom-BTjywDxo.js} +0 -0
  547. /package/dist/{rpm-Djl3Dsf1.js → rpm-CywAxCKo.js} +0 -0
  548. /package/dist/{ruby-Dd2CZTip.js → ruby-B0a4mSSU.js} +0 -0
  549. /package/dist/{sas-DYF5_Iqu.js → sas-DTh30wZQ.js} +0 -0
  550. /package/dist/{scheme-YtWcji1H.js → scheme-CsOlAIFf.js} +0 -0
  551. /package/dist/{shell-C3uC3Y0Z.js → shell-7w75P-tg.js} +0 -0
  552. /package/dist/{sieve-DHB17sQG.js → sieve-BphUEMa4.js} +0 -0
  553. /package/dist/{simple-mode-BMmwP_vI.js → simple-mode-BcThS5Pa.js} +0 -0
  554. /package/dist/{smalltalk-Y5v1Np3H.js → smalltalk-CHwdNey_.js} +0 -0
  555. /package/dist/{solr-DvRJLlRD.js → solr-CuWbYJLt.js} +0 -0
  556. /package/dist/{sparql-BEt3GJwM.js → sparql-BtwCqUvT.js} +0 -0
  557. /package/dist/{spreadsheet-Dp4B9_rc.js → spreadsheet-C1JzeuKn.js} +0 -0
  558. /package/dist/{sql-DBsUs8nQ.js → sql-wv_2DQzf.js} +0 -0
  559. /package/dist/{stex-C6-x52ei.js → stex-BmcrV7cx.js} +0 -0
  560. /package/dist/{stylus-DroA8via.js → stylus-SVJ7TGPh.js} +0 -0
  561. /package/dist/{swift-DR0x1ESK.js → swift-f7KaABxm.js} +0 -0
  562. /package/dist/{tcl-BeuTFc_c.js → tcl-CbTFkeHJ.js} +0 -0
  563. /package/dist/{textile-C0ikhHN3.js → textile-CFn6QLRy.js} +0 -0
  564. /package/dist/{tiddlywiki-C_2Nvsgu.js → tiddlywiki-DBhMcdVM.js} +0 -0
  565. /package/dist/{tiki-CKQlhmQQ.js → tiki-CqcXr_YN.js} +0 -0
  566. /package/dist/{timer-CcUhugb0.js → timer-ly0jlpkr.js} +0 -0
  567. /package/dist/{toml-BqNUJWRI.js → toml-YgDIoI1n.js} +0 -0
  568. /package/dist/{treemap-BYLUKIzA.js → treemap-D5sUCpbF.js} +0 -0
  569. /package/dist/{troff-DkK0f2ZH.js → troff-CIp_4RXg.js} +0 -0
  570. /package/dist/{ttcn-Bf8vrg-_.js → ttcn-Yn_uOBYK.js} +0 -0
  571. /package/dist/{ttcn-cfg-DjCKzd95.js → ttcn-cfg-BVum2rmM.js} +0 -0
  572. /package/dist/{turtle-SSc84S9m.js → turtle-BeWx-YoQ.js} +0 -0
  573. /package/dist/{vb-CQ6DC3cL.js → vb-DKEmSA_2.js} +0 -0
  574. /package/dist/{vbscript-Dw0gFssg.js → vbscript-BPsxuP0n.js} +0 -0
  575. /package/dist/{velocity-BvJQyBmj.js → velocity-ycm1NvlO.js} +0 -0
  576. /package/dist/{verilog-CKGAvQjj.js → verilog-ogjm0Ytr.js} +0 -0
  577. /package/dist/{vhdl-B40_x6fM.js → vhdl-BvjyOM9y.js} +0 -0
  578. /package/dist/{webidl-Bi9hczCv.js → webidl-QdwcTYEu.js} +0 -0
  579. /package/dist/{xquery-DwWUXvP3.js → xquery-BErHIIc-.js} +0 -0
  580. /package/dist/{yacas-ClUs0mmH.js → yacas-BBBJNs0h.js} +0 -0
  581. /package/dist/{z80-DPC4UGzR.js → z80-nG9RRukG.js} +0 -0
  582. /package/dist/{zod-mAEs2ITo.js → zod-0AbTN3Cg.js} +0 -0
@@ -61,7 +61,7 @@ describe("ColumnChartSpecModel", () => {
61
61
 
62
62
  it("should create an instance", () => {
63
63
  const model = new ColumnChartSpecModel(
64
- mockData,
64
+ [],
65
65
  mockFieldTypes,
66
66
  mockStats,
67
67
  mockBinValues,
@@ -78,7 +78,7 @@ describe("ColumnChartSpecModel", () => {
78
78
 
79
79
  it("should return header summary with spec when includeCharts is true", () => {
80
80
  const model = new ColumnChartSpecModel(
81
- mockData,
81
+ [],
82
82
  mockFieldTypes,
83
83
  mockStats,
84
84
  mockBinValues,
@@ -93,7 +93,7 @@ describe("ColumnChartSpecModel", () => {
93
93
 
94
94
  it("should return header summary without spec when includeCharts is false", () => {
95
95
  const model = new ColumnChartSpecModel(
96
- mockData,
96
+ [],
97
97
  mockFieldTypes,
98
98
  mockStats,
99
99
  mockBinValues,
@@ -106,17 +106,17 @@ describe("ColumnChartSpecModel", () => {
106
106
  expect(numberSummary.spec).toBeUndefined();
107
107
  });
108
108
 
109
- it("should return null spec for string and unknown types", () => {
109
+ it("should return null spec for unknown types", () => {
110
110
  const model = new ColumnChartSpecModel(
111
- mockData,
111
+ [],
112
112
  mockFieldTypes,
113
113
  mockStats,
114
114
  mockBinValues,
115
115
  mockValueCounts,
116
116
  { includeCharts: true },
117
117
  );
118
- const stringSummary = model.getHeaderSummary("string");
119
- expect(stringSummary.spec).toBeNull();
118
+ const unknownSummary = model.getHeaderSummary("unknown");
119
+ expect(unknownSummary.spec).toBeNull();
120
120
  });
121
121
 
122
122
  it("should handle special characters in column names", () => {
@@ -126,11 +126,18 @@ describe("ColumnChartSpecModel", () => {
126
126
  const specialStats: Record<ColumnName, Partial<ColumnHeaderStats>> = {
127
127
  "column.with[special:chars]": { min: "2023-01-01", max: "2023-12-31" },
128
128
  };
129
+ const specialBinValues: Record<ColumnName, BinValues> = {
130
+ ...mockBinValues,
131
+ "column.with[special:chars]": [
132
+ { bin_start: "2023-01-01", bin_end: "2023-06-01", count: 10 },
133
+ { bin_start: "2023-06-01", bin_end: "2023-12-31", count: 20 },
134
+ ],
135
+ };
129
136
  const model = new ColumnChartSpecModel(
130
- mockData,
137
+ [],
131
138
  specialFieldTypes,
132
139
  specialStats,
133
- mockBinValues,
140
+ specialBinValues,
134
141
  mockValueCounts,
135
142
  { includeCharts: true },
136
143
  );
@@ -139,17 +146,17 @@ describe("ColumnChartSpecModel", () => {
139
146
  expect(
140
147
  // @ts-expect-error layer should be available
141
148
  (summary.spec?.layer[0].encoding?.x as { field: string })?.field,
142
- ).toBe("column\\.with\\[special\\:chars\\]");
149
+ ).toBe("bin_start");
143
150
  });
144
151
 
145
- it("should expect bin values to be used for number and integer columns when feat flag is true", () => {
152
+ it("should expect bin values to be used for number and integer columns", () => {
146
153
  const model = new ColumnChartSpecModel(
147
- mockData,
154
+ [],
148
155
  mockFieldTypes,
149
156
  mockStats,
150
157
  mockBinValues,
151
158
  mockValueCounts,
152
- { includeCharts: true, usePreComputedValues: true },
159
+ { includeCharts: true },
153
160
  );
154
161
  const summary = model.getHeaderSummary("number");
155
162
  expect(summary.spec).toBeDefined();
@@ -171,14 +178,14 @@ describe("ColumnChartSpecModel", () => {
171
178
  expect(summary2.spec?.data?.values).toEqual(mockBinValues.integer);
172
179
  });
173
180
 
174
- it("should handle datetime bin values when feat flag is true", () => {
181
+ it("should handle datetime bin values", () => {
175
182
  const model = new ColumnChartSpecModel(
176
- mockData,
183
+ [],
177
184
  mockFieldTypes,
178
185
  mockStats,
179
186
  mockBinValues,
180
187
  mockValueCounts,
181
- { includeCharts: true, usePreComputedValues: true },
188
+ { includeCharts: true },
182
189
  );
183
190
 
184
191
  const summary = model.getHeaderSummary("datetime");
@@ -186,9 +193,6 @@ describe("ColumnChartSpecModel", () => {
186
193
  // @ts-expect-error data.values should be available
187
194
  expect(summary.spec?.data?.values).toEqual(mockBinValues.datetime);
188
195
 
189
- // Expect hconcat since there are nulls
190
- // @ts-expect-error hconcat should be available
191
- expect(summary.spec?.hconcat).toBeDefined();
192
196
  expect(summary.spec).toMatchSnapshot();
193
197
 
194
198
  // Test again without the nulls
@@ -197,12 +201,12 @@ describe("ColumnChartSpecModel", () => {
197
201
  datetime: { min: "2023-01-01", max: "2023-12-31" },
198
202
  };
199
203
  const model2 = new ColumnChartSpecModel(
200
- mockData,
204
+ [],
201
205
  mockFieldTypes,
202
206
  mockStats2,
203
207
  mockBinValues,
204
208
  mockValueCounts,
205
- { includeCharts: true, usePreComputedValues: true },
209
+ { includeCharts: true },
206
210
  );
207
211
  const summary2 = model2.getHeaderSummary("datetime");
208
212
  expect(summary2.spec).toBeDefined();
@@ -212,14 +216,14 @@ describe("ColumnChartSpecModel", () => {
212
216
  expect(summary2.spec?.hconcat).toBeUndefined();
213
217
  });
214
218
 
215
- it("should handle boolean stats when feat flag is true", () => {
219
+ it("should handle boolean stats", () => {
216
220
  const model = new ColumnChartSpecModel(
217
- mockData,
221
+ [],
218
222
  mockFieldTypes,
219
223
  mockStats,
220
224
  mockBinValues,
221
225
  mockValueCounts,
222
- { includeCharts: true, usePreComputedValues: true },
226
+ { includeCharts: true },
223
227
  );
224
228
  const summary = model.getHeaderSummary("boolean");
225
229
  expect(summary.spec).toBeDefined();
@@ -234,14 +238,14 @@ describe("ColumnChartSpecModel", () => {
234
238
  expect(summary.spec).toMatchSnapshot();
235
239
  });
236
240
 
237
- it("should handle string value counts when feat flag is true", () => {
241
+ it("should handle string value counts", () => {
238
242
  const model = new ColumnChartSpecModel(
239
- mockData,
243
+ [],
240
244
  mockFieldTypes,
241
245
  mockStats,
242
246
  mockBinValues,
243
247
  mockValueCounts,
244
- { includeCharts: true, usePreComputedValues: true },
248
+ { includeCharts: true },
245
249
  );
246
250
  const summary = model.getHeaderSummary("string");
247
251
  expect(summary.spec).toBeDefined();
@@ -262,7 +266,7 @@ describe("ColumnChartSpecModel", () => {
262
266
  expect(summary.spec).toMatchSnapshot();
263
267
  });
264
268
 
265
- describe("snapshot", () => {
269
+ describe("snapshot with legacy data spec", () => {
266
270
  const fieldTypes: FieldTypes = {
267
271
  ...mockFieldTypes,
268
272
  a: "number",
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`create vega spec > should create and augment a spec 1`] = `
4
4
  {
5
- "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
5
+ "$schema": "https://vega.github.io/schema/vega-lite/v6.json",
6
6
  "background": "white",
7
7
  "config": {
8
8
  "axis": {
@@ -422,4 +422,166 @@ describe("generateAltairChart", () => {
422
422
  )"
423
423
  `);
424
424
  });
425
+
426
+ it("should escape dots in field names", () => {
427
+ const spec = createSpec({
428
+ mark: "bar",
429
+ encoding: {
430
+ x: { field: "name.field" },
431
+ y: { field: "value.data" },
432
+ },
433
+ });
434
+ const datasource = "df";
435
+
436
+ const result = generateAltairChart(spec, datasource).toCode();
437
+
438
+ expect(result).toMatchInlineSnapshot(`
439
+ "alt.Chart(df)
440
+ .mark_bar()
441
+ .encode(
442
+ x=alt.X(field='name\\.field'),
443
+ y=alt.Y(field='value\\.data')
444
+ )"
445
+ `);
446
+ });
447
+
448
+ it("should escape brackets in field names", () => {
449
+ const spec = createSpec({
450
+ mark: "bar",
451
+ encoding: {
452
+ x: { field: "data[0]" },
453
+ y: { field: "values[key]" },
454
+ },
455
+ });
456
+ const datasource = "df";
457
+
458
+ const result = generateAltairChart(spec, datasource).toCode();
459
+
460
+ expect(result).toMatchInlineSnapshot(`
461
+ "alt.Chart(df)
462
+ .mark_bar()
463
+ .encode(
464
+ x=alt.X(field='data\\[0\\]'),
465
+ y=alt.Y(field='values\\[key\\]')
466
+ )"
467
+ `);
468
+ });
469
+
470
+ it("should escape colons in field names", () => {
471
+ const spec = createSpec({
472
+ mark: "bar",
473
+ encoding: {
474
+ x: { field: "time:stamp" },
475
+ y: { field: "value" },
476
+ },
477
+ });
478
+ const datasource = "df";
479
+
480
+ const result = generateAltairChart(spec, datasource).toCode();
481
+
482
+ expect(result).toMatchInlineSnapshot(`
483
+ "alt.Chart(df)
484
+ .mark_bar()
485
+ .encode(
486
+ x=alt.X(field='time\\:stamp'),
487
+ y=alt.Y(field='value')
488
+ )"
489
+ `);
490
+ });
491
+
492
+ it("should escape multiple special characters in field names", () => {
493
+ const spec = createSpec({
494
+ mark: "bar",
495
+ encoding: {
496
+ x: { field: "data[0].name:value" },
497
+ y: { field: "result" },
498
+ },
499
+ });
500
+ const datasource = "df";
501
+
502
+ const result = generateAltairChart(spec, datasource).toCode();
503
+
504
+ expect(result).toMatchInlineSnapshot(`
505
+ "alt.Chart(df)
506
+ .mark_bar()
507
+ .encode(
508
+ x=alt.X(field='data\\[0\\]\\.name\\:value'),
509
+ y=alt.Y(field='result')
510
+ )"
511
+ `);
512
+ });
513
+
514
+ it("should escape special characters in color encoding", () => {
515
+ const spec = createSpec({
516
+ mark: "bar",
517
+ encoding: {
518
+ x: { field: "category" },
519
+ y: { field: "value" },
520
+ color: { field: "group.name" },
521
+ },
522
+ });
523
+ const datasource = "df";
524
+
525
+ const result = generateAltairChart(spec, datasource).toCode();
526
+
527
+ expect(result).toMatchInlineSnapshot(`
528
+ "alt.Chart(df)
529
+ .mark_bar()
530
+ .encode(
531
+ x=alt.X(field='category'),
532
+ y=alt.Y(field='value'),
533
+ color=alt.Color(field='group\\.name')
534
+ )"
535
+ `);
536
+ });
537
+
538
+ it("should escape special characters in tooltip", () => {
539
+ const spec = createSpec({
540
+ mark: "bar",
541
+ encoding: {
542
+ x: { field: "category" },
543
+ y: { field: "value" },
544
+ tooltip: { field: "info.details" },
545
+ },
546
+ });
547
+ const datasource = "df";
548
+
549
+ const result = generateAltairChart(spec, datasource).toCode();
550
+
551
+ expect(result).toMatchInlineSnapshot(`
552
+ "alt.Chart(df)
553
+ .mark_bar()
554
+ .encode(
555
+ x=alt.X(field='category'),
556
+ y=alt.Y(field='value'),
557
+ tooltip=alt.Tooltip(field='info\\.details')
558
+ )"
559
+ `);
560
+ });
561
+
562
+ it("should escape special characters in facet encodings", () => {
563
+ const spec = createSpec({
564
+ mark: "bar",
565
+ encoding: {
566
+ x: { field: "category" },
567
+ y: { field: "value" },
568
+ row: { field: "row.label" },
569
+ column: { field: "col[0]" },
570
+ },
571
+ });
572
+ const datasource = "df";
573
+
574
+ const result = generateAltairChart(spec, datasource).toCode();
575
+
576
+ expect(result).toMatchInlineSnapshot(`
577
+ "alt.Chart(df)
578
+ .mark_bar()
579
+ .encode(
580
+ x=alt.X(field='category'),
581
+ y=alt.Y(field='value'),
582
+ row=alt.Row(field='row\\.label'),
583
+ column=alt.Column(field='col\\[0\\]')
584
+ )"
585
+ `);
586
+ });
425
587
  });
@@ -1,6 +1,6 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- import type { TopLevelSpec } from "vega-lite/build/src/spec";
3
+ import type { TopLevelSpec } from "vega-lite";
4
4
  import { describe, expect, it } from "vitest";
5
5
  import {
6
6
  augmentSpecWithData,
@@ -1,7 +1,8 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- import type { PositionDef } from "vega-lite/build/src/channeldef";
3
+ import type { PositionDef } from "vega-lite/types_unstable/channeldef.js";
4
4
  import { describe, expect, it } from "vitest";
5
+ import { invariant } from "@/utils/invariant";
5
6
  import {
6
7
  getAggregate,
7
8
  getBinEncoding,
@@ -13,6 +14,7 @@ import { COUNT_FIELD, EMPTY_VALUE } from "../constants";
13
14
  import type { ChartSchemaType } from "../schemas";
14
15
  import {
15
16
  AGGREGATION_FNS,
17
+ BIN_AGGREGATION,
16
18
  ChartType,
17
19
  NONE_VALUE,
18
20
  STRING_AGGREGATION_FNS,
@@ -168,7 +170,11 @@ describe("getAxisEncoding", () => {
168
170
  const expectedAggregate = (result as { aggregate?: string }).aggregate;
169
171
 
170
172
  // For aggregations that are not valid for string data types, we should return undefined
171
- if (agg === NONE_VALUE || !STRING_AGGREGATION_FNS.includes(agg)) {
173
+ if (
174
+ agg === NONE_VALUE ||
175
+ agg === BIN_AGGREGATION ||
176
+ !STRING_AGGREGATION_FNS.includes(agg)
177
+ ) {
172
178
  expect(expectedAggregate).toBeUndefined();
173
179
  } else if (STRING_AGGREGATION_FNS.includes(agg)) {
174
180
  expect(expectedAggregate).toEqual(agg);
@@ -261,13 +267,13 @@ describe("getTooltips", () => {
261
267
  xAxis: { label: "X Axis" },
262
268
  };
263
269
 
264
- const xEncoding = {
270
+ const xEncoding: PositionDef<string> = {
265
271
  field: "x",
266
272
  type: "nominal",
267
273
  timeUnit: "year",
268
274
  aggregate: "sum",
269
275
  bin: { step: 10 },
270
- } as PositionDef<string>;
276
+ };
271
277
 
272
278
  const result = getTooltips({
273
279
  formValues,
@@ -344,7 +350,7 @@ describe("getTooltips", () => {
344
350
  });
345
351
 
346
352
  it("should enhance tooltips with encoding parameters when field name matches encoding field", () => {
347
- const formValues = {
353
+ const formValues: ChartSchemaType = {
348
354
  general: {
349
355
  xColumn: { type: "string" as const, aggregate: NONE_VALUE },
350
356
  yColumn: { type: "number" as const, aggregate: NONE_VALUE },
@@ -409,7 +415,7 @@ describe("getTooltips", () => {
409
415
  });
410
416
 
411
417
  it("should handle count aggregate with no field set", () => {
412
- const formValues = {
418
+ const formValues: ChartSchemaType = {
413
419
  general: {
414
420
  xColumn: {
415
421
  field: "category",
@@ -995,3 +1001,136 @@ describe("getBinEncoding", () => {
995
1001
  }
996
1002
  });
997
1003
  });
1004
+
1005
+ describe("Special character escaping in specs", () => {
1006
+ it("should escape dots in field names", () => {
1007
+ const result = getAxisEncoding(
1008
+ {
1009
+ field: "value.data",
1010
+ selectedDataType: "number",
1011
+ aggregate: "sum",
1012
+ timeUnit: undefined,
1013
+ },
1014
+ undefined,
1015
+ "Value",
1016
+ false,
1017
+ ChartType.BAR,
1018
+ );
1019
+
1020
+ invariant("field" in result, "field should be defined");
1021
+ expect(result.field).toBe("value\\.data");
1022
+ });
1023
+
1024
+ it("should escape brackets in field names", () => {
1025
+ const result = getAxisEncoding(
1026
+ {
1027
+ field: "data[0]",
1028
+ selectedDataType: "number",
1029
+ aggregate: "mean",
1030
+ timeUnit: undefined,
1031
+ },
1032
+ undefined,
1033
+ "Data",
1034
+ false,
1035
+ ChartType.BAR,
1036
+ );
1037
+
1038
+ invariant("field" in result, "field should be defined");
1039
+ expect(result.field).toBe("data\\[0\\]");
1040
+ });
1041
+
1042
+ it("should escape colons in field names", () => {
1043
+ const result = getAxisEncoding(
1044
+ {
1045
+ field: "time:stamp",
1046
+ selectedDataType: "temporal",
1047
+ aggregate: NONE_VALUE,
1048
+ timeUnit: "yearmonth",
1049
+ },
1050
+ undefined,
1051
+ "Timestamp",
1052
+ false,
1053
+ ChartType.LINE,
1054
+ );
1055
+
1056
+ invariant("field" in result, "field should be defined");
1057
+ expect(result.field).toBe("time\\:stamp");
1058
+ });
1059
+
1060
+ it("should escape multiple special characters in field names", () => {
1061
+ const result = getAxisEncoding(
1062
+ {
1063
+ field: "data[0].value:result",
1064
+ selectedDataType: "number",
1065
+ aggregate: "sum",
1066
+ timeUnit: undefined,
1067
+ },
1068
+ undefined,
1069
+ "Result",
1070
+ false,
1071
+ ChartType.BAR,
1072
+ );
1073
+
1074
+ invariant("field" in result, "field should be defined");
1075
+ expect(result.field).toBe("data\\[0\\]\\.value\\:result");
1076
+ });
1077
+
1078
+ it("should escape special characters in color encoding", () => {
1079
+ const formValues: ChartSchemaType = {
1080
+ general: {
1081
+ colorByColumn: {
1082
+ field: "group.name",
1083
+ selectedDataType: "string",
1084
+ aggregate: NONE_VALUE,
1085
+ },
1086
+ },
1087
+ };
1088
+
1089
+ const result = getColorEncoding(ChartType.BAR, formValues);
1090
+
1091
+ invariant(result && "field" in result, "field should be defined");
1092
+ expect(result?.field).toBe("group\\.name");
1093
+ });
1094
+
1095
+ it("should escape special characters in tooltip field names", () => {
1096
+ const formValues: ChartSchemaType = {
1097
+ general: {
1098
+ xColumn: {
1099
+ field: "category",
1100
+ selectedDataType: "string",
1101
+ aggregate: NONE_VALUE,
1102
+ },
1103
+ yColumn: {
1104
+ field: "value.data",
1105
+ selectedDataType: "number",
1106
+ aggregate: "sum",
1107
+ },
1108
+ },
1109
+ tooltips: {
1110
+ auto: true,
1111
+ fields: [],
1112
+ },
1113
+ };
1114
+
1115
+ const xEncoding: PositionDef<string> = {
1116
+ field: "category\\.escaped",
1117
+ type: "nominal",
1118
+ };
1119
+
1120
+ const yEncoding: PositionDef<string> = {
1121
+ field: "value\\.data",
1122
+ type: "quantitative",
1123
+ aggregate: "sum",
1124
+ };
1125
+
1126
+ const result = getTooltips({
1127
+ formValues,
1128
+ xEncoding,
1129
+ yEncoding,
1130
+ });
1131
+
1132
+ expect(result).toBeDefined();
1133
+ expect(result?.[0]?.field).toBe("category\\.escaped");
1134
+ expect(result?.[1]?.field).toBe("value\\.data");
1135
+ });
1136
+ });
@@ -8,6 +8,7 @@ import {
8
8
  Variable,
9
9
  VariableDeclaration,
10
10
  } from "@/utils/python-poet/poet";
11
+ import { escapeFieldName } from "./utils";
11
12
 
12
13
  /**
13
14
  * Generates Python code for an Altair chart.
@@ -154,7 +155,11 @@ function makeKwargs<T extends Record<string, any>>(obj: T) {
154
155
 
155
156
  for (const [key, value] of Object.entries(obj)) {
156
157
  if (value !== undefined) {
157
- result[key] = new Literal(value);
158
+ // Escape special characters in field names
159
+ result[key] =
160
+ key === "field" && typeof value === "string"
161
+ ? new Literal(escapeFieldName(value))
162
+ : new Literal(value);
158
163
  }
159
164
  }
160
165
 
@@ -1,9 +1,13 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- import type { Aggregate } from "vega-lite/build/src/aggregate";
4
- import type { BinParams } from "vega-lite/build/src/bin";
5
- import type { ColorDef, OffsetDef } from "vega-lite/build/src/channeldef";
6
- import type { Scale } from "vega-lite/build/src/scale";
3
+ import type { Aggregate } from "vega-lite/types_unstable/aggregate.js";
4
+ import type { BinParams } from "vega-lite/types_unstable/bin.js";
5
+ import type {
6
+ ColorDef,
7
+ OffsetDef,
8
+ } from "vega-lite/types_unstable/channeldef.js";
9
+ import type { Scale } from "vega-lite/types_unstable/scale.js";
10
+ import type { ColorScheme } from "vega-typings";
7
11
  import type { z } from "zod";
8
12
  import { COUNT_FIELD, DEFAULT_COLOR_SCHEME } from "../constants";
9
13
  import type { AxisSchema, BinSchema, ChartSchemaType } from "../schemas";
@@ -11,7 +15,6 @@ import {
11
15
  type AggregationFn,
12
16
  BIN_AGGREGATION,
13
17
  ChartType,
14
- type ColorScheme,
15
18
  NONE_VALUE,
16
19
  type SelectableDataType,
17
20
  STRING_AGGREGATION_FNS,
@@ -19,6 +22,7 @@ import {
19
22
  } from "../types";
20
23
  import { isFieldSet } from "./spec";
21
24
  import { convertDataTypeToVega } from "./types";
25
+ import { escapeFieldName } from "./utils";
22
26
 
23
27
  export function getBinEncoding(
24
28
  chartType: ChartType,
@@ -123,7 +127,7 @@ export function getColorEncoding(
123
127
  const aggregate = colorByColumn?.aggregate;
124
128
 
125
129
  return {
126
- field: colorByColumn.field,
130
+ field: escapeFieldName(colorByColumn.field),
127
131
  type: convertDataTypeToVega(selectedDataType),
128
132
  scale: getColorInScale(formValues),
129
133
  aggregate: getAggregate(aggregate, selectedDataType),
@@ -143,7 +147,7 @@ export function getOffsetEncoding(
143
147
  ) {
144
148
  return undefined;
145
149
  }
146
- return { field: formValues.general?.colorByColumn?.field };
150
+ return { field: escapeFieldName(formValues.general?.colorByColumn?.field) };
147
151
  }
148
152
 
149
153
  export function getAggregate(
@@ -6,10 +6,10 @@ import type {
6
6
  Field,
7
7
  PolarDef,
8
8
  PositionDef,
9
- } from "vega-lite/build/src/channeldef";
10
- import type { Encoding } from "vega-lite/build/src/encoding";
11
- import type { Resolve } from "vega-lite/build/src/resolve";
12
- import type { FacetFieldDef } from "vega-lite/build/src/spec/facet";
9
+ } from "vega-lite/types_unstable/channeldef.js";
10
+ import type { Encoding } from "vega-lite/types_unstable/encoding.js";
11
+ import type { Resolve } from "vega-lite/types_unstable/resolve.js";
12
+ import type { FacetFieldDef } from "vega-lite/types_unstable/spec/facet.js";
13
13
  import type { z } from "zod";
14
14
  import type { ResolvedTheme } from "@/theme/useTheme";
15
15
  import type { TypedString } from "@/utils/typed";
@@ -41,6 +41,7 @@ import {
41
41
  convertChartTypeToMark,
42
42
  convertDataTypeToVega,
43
43
  } from "./types";
44
+ import { escapeFieldName } from "./utils";
44
45
 
45
46
  /**
46
47
  * Convert marimo chart configuration to Vega-Lite specification.
@@ -178,7 +179,7 @@ export function getAxisEncoding(
178
179
  }
179
180
 
180
181
  return {
181
- field: column.field,
182
+ field: escapeFieldName(column.field),
182
183
  type: convertDataTypeToVega(column.selectedDataType || "unknown"),
183
184
  bin: getBinEncoding(chartType, selectedDataType, binValues),
184
185
  title: label,
@@ -211,7 +212,7 @@ export function getFacetEncoding(
211
212
  );
212
213
 
213
214
  return {
214
- field: facet.field,
215
+ field: escapeFieldName(facet.field),
215
216
  sort: facet.sort,
216
217
  timeUnit: getFacetTimeUnit(facet),
217
218
  type: convertDataTypeToVega(facet.selectedDataType || "unknown"),
@@ -244,7 +245,7 @@ function getPieChartSpec(
244
245
  );
245
246
 
246
247
  const colorEncoding: ColorDef<string> = {
247
- field: colorByColumn.field,
248
+ field: escapeFieldName(colorByColumn.field),
248
249
  type: convertDataTypeToVega(colorByColumn.selectedDataType || "unknown"),
249
250
  scale: getColorInScale(formValues),
250
251
  title: getFieldLabel(formValues.yAxis?.label),
@@ -284,7 +285,7 @@ function getBaseSpec(
284
285
  }
285
286
 
286
287
  return {
287
- $schema: "https://vega.github.io/schema/vega-lite/v5.json",
288
+ $schema: "https://vega.github.io/schema/vega-lite/v6.json",
288
289
  background: theme === "dark" ? "dark" : "white",
289
290
  title: title,
290
291
  data: { values: [] },