@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
@@ -1,10 +1,22 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- // New spec is under a feature flag, we keep this until full migration
3
+ // Fallback spec
4
4
 
5
5
  import { mint, orange, slate } from "@radix-ui/colors";
6
- import type { Scale } from "vega-lite/build/src/scale";
6
+ import type { TopLevelSpec } from "vega-lite";
7
+ import type { Scale } from "vega-lite/types_unstable/scale.js";
8
+ // @ts-expect-error vega-typings does not include formats
9
+ import { formats } from "vega-loader";
10
+ import { asRemoteURL } from "@/core/runtime/config";
7
11
  import type { TopLevelFacetedUnitSpec } from "@/plugins/impl/data-explorer/queries/types";
12
+ import { arrow } from "@/plugins/impl/vega/formats";
13
+ import { parseCsvData } from "@/plugins/impl/vega/loader";
14
+ import {
15
+ byteStringToBinary,
16
+ extractBase64FromDataURL,
17
+ isDataURLString,
18
+ typedAtob,
19
+ } from "@/utils/json/base64";
8
20
 
9
21
  export function getLegacyNumericSpec(
10
22
  column: string,
@@ -240,3 +252,67 @@ export function getLegacyBooleanSpec(
240
252
  ],
241
253
  } as TopLevelFacetedUnitSpec; // "layer" not in TopLevelFacetedUnitSpec
242
254
  }
255
+
256
+ // Arrow formats have a magic number at the beginning of the file.
257
+ const ARROW_MAGIC_NUMBER = "ARROW1";
258
+
259
+ // register arrow reader under type 'arrow'
260
+ formats("arrow", arrow);
261
+
262
+ export function getDataSpecAndSourceName<T>(data: string | T[]): {
263
+ dataSpec: TopLevelSpec["data"];
264
+ sourceName: "data_0" | "source_0";
265
+ } {
266
+ let dataSpec: TopLevelSpec["data"];
267
+ let sourceName: "data_0" | "source_0";
268
+
269
+ // Data may come in from a few different sources:
270
+ // - A URL
271
+ // - A CSV data URI (e.g. "data:text/csv;base64,...")
272
+ // - A CSV string (e.g. "a,b,c\n1,2,3\n4,5,6")
273
+ // - An array of objects
274
+ // For each case, we need to set up the data spec and source name appropriately.
275
+ // If its a file, the source name will be "source_0", otherwise it will be "data_0".
276
+ // We have a few snapshot tests to ensure that the spec is correct for each case.
277
+ if (typeof data === "string") {
278
+ if (data.startsWith("./@file") || data.startsWith("/@file")) {
279
+ dataSpec = { url: asRemoteURL(data).href };
280
+ sourceName = "source_0";
281
+ } else if (isDataURLString(data)) {
282
+ sourceName = "data_0";
283
+ const base64 = extractBase64FromDataURL(data);
284
+ const decoded = typedAtob(base64);
285
+
286
+ // eslint-disable-next-line unicorn/prefer-ternary
287
+ if (decoded.startsWith(ARROW_MAGIC_NUMBER)) {
288
+ // @ts-expect-error vega-typings does not include arrow format
289
+ dataSpec = {
290
+ values: byteStringToBinary(decoded),
291
+ format: { type: "arrow" },
292
+ };
293
+ } else {
294
+ // Assume it's a CSV string
295
+ dataSpec = { values: parseCsvData(decoded) };
296
+ }
297
+ } else {
298
+ // Assume it's a CSV string
299
+ dataSpec = { values: parseCsvData(data) };
300
+ sourceName = "data_0";
301
+ }
302
+ } else {
303
+ dataSpec = { values: data };
304
+ sourceName = "source_0";
305
+ }
306
+
307
+ return { dataSpec, sourceName };
308
+ }
309
+
310
+ export function getScale(sourceName: string): Scale {
311
+ return {
312
+ align: 0,
313
+ paddingInner: 0,
314
+ paddingOuter: {
315
+ expr: `length(data('${sourceName}')) == 2 ? 1 : length(data('${sourceName}')) == 3 ? 0.5 : length(data('${sourceName}')) == 4 ? 0 : 0`,
316
+ },
317
+ };
318
+ }
@@ -1,6 +1,6 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- import type { StringFieldDef } from "vega-lite/build/src/channeldef";
3
+ import type { StringFieldDef } from "vega-lite/types_unstable/channeldef.js";
4
4
  import { Logger } from "@/utils/Logger";
5
5
  import type { BinValues } from "../types";
6
6
 
@@ -24,154 +24,355 @@ describe("sqlCode", () => {
24
24
  name: "email" as const,
25
25
  } as DataTableColumn;
26
26
 
27
- it("should generate basic SQL without sqlTableContext", () => {
28
- const result = sqlCode({ table: mockTable, columnName: mockColumn.name });
29
- expect(result).toBe(
30
- "_df = mo.sql(f'SELECT \"email\" FROM users LIMIT 100')",
31
- );
32
- });
27
+ describe("basic SQL generation", () => {
28
+ it("should generate basic SQL without sqlTableContext", () => {
29
+ const result = sqlCode({ table: mockTable, columnName: mockColumn.name });
30
+ expect(result).toBe(
31
+ "_df = mo.sql(f'SELECT \"email\" FROM users LIMIT 100')",
32
+ );
33
+ });
33
34
 
34
- it("should generate SQL with default schema", () => {
35
- const sqlTableContext: SQLTableContext = {
36
- engine: DUCKDB_ENGINE,
37
- schema: "public",
38
- defaultSchema: "public",
39
- defaultDatabase: "mydb",
40
- database: "mydb",
41
- };
42
-
43
- const result = sqlCode({
44
- table: mockTable,
45
- columnName: mockColumn.name,
46
- sqlTableContext,
47
- });
48
- expect(result).toBe('_df = mo.sql(f"SELECT email FROM users LIMIT 100")');
49
- });
35
+ it("should generate SQL with default schema", () => {
36
+ const sqlTableContext: SQLTableContext = {
37
+ engine: DUCKDB_ENGINE,
38
+ schema: "public",
39
+ defaultSchema: "public",
40
+ defaultDatabase: "mydb",
41
+ database: "mydb",
42
+ dialect: "duckdb",
43
+ };
50
44
 
51
- it("should generate SQL with non-default schema", () => {
52
- const sqlTableContext: SQLTableContext = {
53
- engine: DUCKDB_ENGINE,
54
- schema: "analytics",
55
- defaultSchema: "public",
56
- defaultDatabase: "mydb",
57
- database: "mydb",
58
- };
59
-
60
- const result = sqlCode({
61
- table: mockTable,
62
- columnName: mockColumn.name,
63
- sqlTableContext,
64
- });
65
- expect(result).toBe(
66
- '_df = mo.sql(f"SELECT email FROM analytics.users LIMIT 100")',
67
- );
68
- });
45
+ const result = sqlCode({
46
+ table: mockTable,
47
+ columnName: mockColumn.name,
48
+ sqlTableContext,
49
+ });
50
+ expect(result).toBe(
51
+ '_df = mo.sql(f"""\nSELECT "email" FROM "users" LIMIT 100\n""")',
52
+ );
53
+ });
54
+
55
+ it("should generate SQL with non-default schema", () => {
56
+ const sqlTableContext: SQLTableContext = {
57
+ engine: DUCKDB_ENGINE,
58
+ schema: "analytics",
59
+ defaultSchema: "public",
60
+ defaultDatabase: "mydb",
61
+ database: "mydb",
62
+ dialect: "duckdb",
63
+ };
64
+
65
+ const result = sqlCode({
66
+ table: mockTable,
67
+ columnName: mockColumn.name,
68
+ sqlTableContext,
69
+ });
70
+ expect(result).toBe(
71
+ '_df = mo.sql(f"""\nSELECT "email" FROM "analytics"."users" LIMIT 100\n""")',
72
+ );
73
+ });
74
+
75
+ it("should generate SQL with non-default engine", () => {
76
+ const sqlTableContext: SQLTableContext = {
77
+ engine: "snowflake",
78
+ schema: "public",
79
+ defaultSchema: "public",
80
+ defaultDatabase: "mydb",
81
+ database: "mydb",
82
+ dialect: "snowflake",
83
+ };
84
+
85
+ const result = sqlCode({
86
+ table: mockTable,
87
+ columnName: mockColumn.name,
88
+ sqlTableContext,
89
+ });
90
+ expect(result).toBe(
91
+ '_df = mo.sql(f"""\nSELECT email FROM users LIMIT 100\n""", engine=snowflake)',
92
+ );
93
+ });
94
+
95
+ it("should generate SQL with non-default database", () => {
96
+ const sqlTableContext: SQLTableContext = {
97
+ engine: DUCKDB_ENGINE,
98
+ schema: "public",
99
+ defaultSchema: "public",
100
+ defaultDatabase: "memory",
101
+ database: "remote",
102
+ dialect: "duckdb",
103
+ };
69
104
 
70
- it("should generate SQL with non-default engine", () => {
71
- const sqlTableContext: SQLTableContext = {
72
- engine: "snowflake",
73
- schema: "public",
74
- defaultSchema: "public",
75
- defaultDatabase: "mydb",
76
- database: "mydb",
77
- };
78
-
79
- const result = sqlCode({
80
- table: mockTable,
81
- columnName: mockColumn.name,
82
- sqlTableContext,
83
- });
84
- expect(result).toBe(
85
- '_df = mo.sql(f"SELECT email FROM users LIMIT 100", engine=snowflake)',
86
- );
105
+ const result = sqlCode({
106
+ table: mockTable,
107
+ columnName: mockColumn.name,
108
+ sqlTableContext,
109
+ });
110
+ expect(result).toBe(
111
+ '_df = mo.sql(f"""\nSELECT "email" FROM "remote"."users" LIMIT 100\n""")',
112
+ );
113
+ });
114
+
115
+ it("should generate SQL for schemaless tables", () => {
116
+ const sqlTableContext: SQLTableContext = {
117
+ engine: DUCKDB_ENGINE,
118
+ schema: "",
119
+ defaultDatabase: "mydb",
120
+ database: "mydb",
121
+ dialect: "duckdb",
122
+ };
123
+
124
+ const result = sqlCode({
125
+ table: mockTable,
126
+ columnName: mockColumn.name,
127
+ sqlTableContext,
128
+ });
129
+ expect(result).toBe(
130
+ '_df = mo.sql(f"""\nSELECT "email" FROM "users" LIMIT 100\n""")',
131
+ );
132
+
133
+ const sqlTableContext2: SQLTableContext = {
134
+ engine: DUCKDB_ENGINE,
135
+ schema: "",
136
+ defaultDatabase: "remote",
137
+ database: "another_db",
138
+ dialect: "duckdb",
139
+ };
140
+
141
+ const result2 = sqlCode({
142
+ table: mockTable,
143
+ columnName: mockColumn.name,
144
+ sqlTableContext: sqlTableContext2,
145
+ });
146
+ expect(result2).toBe(
147
+ '_df = mo.sql(f"""\nSELECT "email" FROM "another_db"."users" LIMIT 100\n""")',
148
+ );
149
+ });
87
150
  });
88
151
 
89
- it("should generate SQL with non-default schema and non-default engine", () => {
90
- const sqlTableContext: SQLTableContext = {
91
- engine: "bigquery",
92
- schema: "sales",
93
- defaultSchema: "public",
94
- defaultDatabase: "mydb",
95
- database: "mydb",
96
- };
97
-
98
- const result = sqlCode({
99
- table: mockTable,
100
- columnName: mockColumn.name,
101
- sqlTableContext,
102
- });
103
- expect(result).toBe(
104
- '_df = mo.sql(f"SELECT email FROM sales.users LIMIT 100", engine=bigquery)',
105
- );
152
+ describe("BigQuery dialect", () => {
153
+ it("should use backticks for table names", () => {
154
+ const sqlTableContext: SQLTableContext = {
155
+ engine: "bigquery",
156
+ schema: "public",
157
+ defaultSchema: "public",
158
+ defaultDatabase: "mydb",
159
+ database: "mydb",
160
+ dialect: "bigquery",
161
+ };
162
+
163
+ const result = sqlCode({
164
+ table: mockTable,
165
+ columnName: mockColumn.name,
166
+ sqlTableContext,
167
+ });
168
+ expect(result).toBe(
169
+ '_df = mo.sql(f"""\nSELECT email FROM `users` LIMIT 100\n""", engine=bigquery)',
170
+ );
171
+ });
172
+
173
+ it("should use backticks for database.schema.table", () => {
174
+ const sqlTableContext: SQLTableContext = {
175
+ engine: "bigquery",
176
+ schema: "sales",
177
+ defaultSchema: "public",
178
+ defaultDatabase: "mydb",
179
+ database: "remote",
180
+ dialect: "bigquery",
181
+ };
182
+
183
+ const result = sqlCode({
184
+ table: mockTable,
185
+ columnName: mockColumn.name,
186
+ sqlTableContext,
187
+ });
188
+ expect(result).toBe(
189
+ '_df = mo.sql(f"""\nSELECT email FROM `remote.sales.users` LIMIT 100\n""", engine=bigquery)',
190
+ );
191
+ });
192
+
193
+ it("should handle case-insensitive dialect name", () => {
194
+ const sqlTableContext: SQLTableContext = {
195
+ engine: "bigquery",
196
+ schema: "public",
197
+ defaultSchema: "public",
198
+ defaultDatabase: "mydb",
199
+ database: "mydb",
200
+ dialect: "BigQuery",
201
+ };
202
+
203
+ const result = sqlCode({
204
+ table: mockTable,
205
+ columnName: mockColumn.name,
206
+ sqlTableContext,
207
+ });
208
+ expect(result).toBe(
209
+ '_df = mo.sql(f"""\nSELECT email FROM `users` LIMIT 100\n""", engine=bigquery)',
210
+ );
211
+ });
106
212
  });
107
213
 
108
- it("should generate SQL with non-default database", () => {
109
- const sqlTableContext: SQLTableContext = {
110
- engine: DUCKDB_ENGINE,
111
- schema: "public",
112
- defaultSchema: "public",
113
- defaultDatabase: "memory",
114
- database: "remote",
115
- };
116
-
117
- const result = sqlCode({
118
- table: mockTable,
119
- columnName: mockColumn.name,
120
- sqlTableContext,
121
- });
122
- expect(result).toBe(
123
- '_df = mo.sql(f"SELECT email FROM remote.users LIMIT 100")',
124
- );
214
+ describe("MSSQL dialect", () => {
215
+ it("should use TOP 100 instead of LIMIT", () => {
216
+ const sqlTableContext: SQLTableContext = {
217
+ engine: "mssql",
218
+ schema: "dbo",
219
+ defaultSchema: "dbo",
220
+ defaultDatabase: "master",
221
+ database: "master",
222
+ dialect: "mssql",
223
+ };
224
+
225
+ const result = sqlCode({
226
+ table: mockTable,
227
+ columnName: mockColumn.name,
228
+ sqlTableContext,
229
+ });
230
+ expect(result).toBe(
231
+ '_df = mo.sql(f"""\nSELECT TOP 100 email FROM users\n""", engine=mssql)',
232
+ );
233
+ });
234
+
235
+ it("should use TOP 100 with database and schema prefix", () => {
236
+ const sqlTableContext: SQLTableContext = {
237
+ engine: "mssql",
238
+ schema: "sales",
239
+ defaultSchema: "dbo",
240
+ defaultDatabase: "master",
241
+ database: "analytics",
242
+ dialect: "mssql",
243
+ };
244
+
245
+ const result = sqlCode({
246
+ table: mockTable,
247
+ columnName: mockColumn.name,
248
+ sqlTableContext,
249
+ });
250
+ expect(result).toBe(
251
+ '_df = mo.sql(f"""\nSELECT TOP 100 email FROM analytics.sales.users\n""", engine=mssql)',
252
+ );
253
+ });
125
254
  });
126
255
 
127
- it("should generate SQL with non-default database and non-default schema", () => {
128
- const sqlTableContext: SQLTableContext = {
129
- engine: "bigquery",
130
- schema: "sales",
131
- defaultSchema: "public",
132
- defaultDatabase: "mydb",
133
- database: "remote",
134
- };
135
-
136
- const result = sqlCode({
137
- table: mockTable,
138
- columnName: mockColumn.name,
139
- sqlTableContext,
140
- });
141
- expect(result).toBe(
142
- '_df = mo.sql(f"SELECT email FROM remote.sales.users LIMIT 100", engine=bigquery)',
143
- );
256
+ describe("TimescaleDB and PostgreSQL dialect", () => {
257
+ it("should wrap table name with double quotes", () => {
258
+ const sqlTableContext: SQLTableContext = {
259
+ engine: "timescaledb",
260
+ schema: "public",
261
+ defaultSchema: "public",
262
+ defaultDatabase: "mydb",
263
+ database: "mydb",
264
+ dialect: "timescaledb",
265
+ };
266
+
267
+ const result = sqlCode({
268
+ table: mockTable,
269
+ columnName: mockColumn.name,
270
+ sqlTableContext,
271
+ });
272
+ expect(result).toBe(
273
+ '_df = mo.sql(f"""\nSELECT "email" FROM "users" LIMIT 100\n""", engine=timescaledb)',
274
+ );
275
+ });
276
+
277
+ it("should wrap database, schema, and table name with double quotes", () => {
278
+ const sqlTableContext: SQLTableContext = {
279
+ engine: "timescaledb",
280
+ schema: "sales",
281
+ defaultSchema: "public",
282
+ defaultDatabase: "mydb",
283
+ database: "remote",
284
+ dialect: "timescaledb",
285
+ };
286
+
287
+ const result = sqlCode({
288
+ table: mockTable,
289
+ columnName: mockColumn.name,
290
+ sqlTableContext,
291
+ });
292
+ expect(result).toBe(
293
+ '_df = mo.sql(f"""\nSELECT "email" FROM "remote"."sales"."users" LIMIT 100\n""", engine=timescaledb)',
294
+ );
295
+ });
296
+
297
+ it("should handle schemaless database with double quotes", () => {
298
+ const sqlTableContext: SQLTableContext = {
299
+ engine: "postgres",
300
+ schema: "",
301
+ defaultDatabase: "mydb",
302
+ database: "remote",
303
+ dialect: "postgres",
304
+ };
305
+
306
+ const result = sqlCode({
307
+ table: mockTable,
308
+ columnName: mockColumn.name,
309
+ sqlTableContext,
310
+ });
311
+ expect(result).toBe(
312
+ '_df = mo.sql(f"""\nSELECT "email" FROM "remote"."users" LIMIT 100\n""", engine=postgres)',
313
+ );
314
+ });
315
+
316
+ it("should not quote * column name", () => {
317
+ const sqlTableContext: SQLTableContext = {
318
+ engine: "postgres",
319
+ schema: "public",
320
+ defaultSchema: "public",
321
+ defaultDatabase: "mydb",
322
+ database: "mydb",
323
+ dialect: "postgres",
324
+ };
325
+
326
+ const result = sqlCode({
327
+ table: mockTable,
328
+ columnName: "*",
329
+ sqlTableContext,
330
+ });
331
+ expect(result).toBe(
332
+ '_df = mo.sql(f"""\nSELECT * FROM "users" LIMIT 100\n""", engine=postgres)',
333
+ );
334
+ });
144
335
  });
145
336
 
146
- it("should generate SQL for schemaless tables", () => {
147
- const sqlTableContext: SQLTableContext = {
148
- engine: DUCKDB_ENGINE,
149
- schema: "",
150
- defaultDatabase: "mydb",
151
- database: "mydb",
152
- };
153
-
154
- const result = sqlCode({
155
- table: mockTable,
156
- columnName: mockColumn.name,
157
- sqlTableContext,
158
- });
159
- expect(result).toBe('_df = mo.sql(f"SELECT email FROM users LIMIT 100")');
160
-
161
- const sqlTableContext2: SQLTableContext = {
162
- engine: DUCKDB_ENGINE,
163
- schema: "",
164
- defaultDatabase: "remote",
165
- database: "another_db",
166
- };
167
-
168
- const result2 = sqlCode({
169
- table: mockTable,
170
- columnName: mockColumn.name,
171
- sqlTableContext: sqlTableContext2,
172
- });
173
- expect(result2).toBe(
174
- '_df = mo.sql(f"SELECT email FROM another_db.users LIMIT 100")',
175
- );
337
+ describe("fallback behavior", () => {
338
+ it("should use default formatter for unknown dialect", () => {
339
+ const sqlTableContext: SQLTableContext = {
340
+ engine: "postgres",
341
+ schema: "public",
342
+ defaultSchema: "public",
343
+ defaultDatabase: "mydb",
344
+ database: "mydb",
345
+ dialect: "unknown_dialect",
346
+ };
347
+
348
+ const result = sqlCode({
349
+ table: mockTable,
350
+ columnName: mockColumn.name,
351
+ sqlTableContext,
352
+ });
353
+ expect(result).toBe(
354
+ '_df = mo.sql(f"""\nSELECT email FROM users LIMIT 100\n""", engine=postgres)',
355
+ );
356
+ });
357
+
358
+ it("should use default formatter when dialect is not provided", () => {
359
+ const sqlTableContext: SQLTableContext = {
360
+ engine: "postgres",
361
+ schema: "public",
362
+ defaultSchema: "public",
363
+ defaultDatabase: "mydb",
364
+ database: "mydb",
365
+ dialect: "",
366
+ };
367
+
368
+ const result = sqlCode({
369
+ table: mockTable,
370
+ columnName: mockColumn.name,
371
+ sqlTableContext,
372
+ });
373
+ expect(result).toBe(
374
+ '_df = mo.sql(f"""\nSELECT email FROM users LIMIT 100\n""", engine=postgres)',
375
+ );
376
+ });
176
377
  });
177
378
  });
@@ -21,6 +21,7 @@ import type { TopLevelFacetedUnitSpec } from "@/plugins/impl/data-explorer/queri
21
21
  import { type Theme, useTheme } from "@/theme/useTheme";
22
22
  import { Events } from "@/utils/events";
23
23
  import { prettyNumber } from "@/utils/numbers";
24
+ import { LazyVegaEmbed } from "../charts/lazy";
24
25
  import type { ColumnHeaderStatsKey } from "../data-table/types";
25
26
  import { CopyClipboardIcon } from "../icons/copy-icon";
26
27
  import { Spinner } from "../icons/spinner";
@@ -30,10 +31,6 @@ import { ColumnPreviewContainer } from "./components";
30
31
  import { InstallPackageButton } from "./install-package-button";
31
32
  import { convertStatsName, sqlCode } from "./utils";
32
33
 
33
- const LazyVegaLite = React.lazy(() =>
34
- import("react-vega").then((m) => ({ default: m.VegaLite })),
35
- );
36
-
37
34
  export const DatasetColumnPreview: React.FC<{
38
35
  table: DataTable;
39
36
  column: DataTableColumn;
@@ -226,12 +223,15 @@ export function renderChart(chartSpec: string, theme: Theme) {
226
223
 
227
224
  return (
228
225
  <Suspense fallback={LoadingChart}>
229
- <LazyVegaLite
226
+ <LazyVegaEmbed
230
227
  spec={updateSpec(JSON.parse(chartSpec) as TopLevelFacetedUnitSpec)}
231
- width={"container" as unknown as number}
232
- height={100}
233
- actions={false}
234
- theme={theme === "dark" ? "dark" : "vox"}
228
+ options={{
229
+ theme: theme === "dark" ? "dark" : "vox",
230
+ height: 100,
231
+ width: "container" as unknown as number,
232
+ actions: false,
233
+ renderer: "canvas",
234
+ }}
235
235
  />
236
236
  </Suspense>
237
237
  );
@@ -214,6 +214,7 @@ export const DataSources: React.FC = () => {
214
214
  databaseName={database.name}
215
215
  hasSearch={hasSearch}
216
216
  searchValue={searchValue}
217
+ dialect={connection.dialect}
217
218
  />
218
219
  </DatabaseItem>
219
220
  ))}
@@ -340,6 +341,7 @@ const SchemaList: React.FC<{
340
341
  schemas: DatabaseSchema[];
341
342
  defaultSchema?: string | null;
342
343
  defaultDatabase?: string | null;
344
+ dialect: string;
343
345
  engineName: string;
344
346
  databaseName: string;
345
347
  hasSearch: boolean;
@@ -348,6 +350,7 @@ const SchemaList: React.FC<{
348
350
  schemas,
349
351
  defaultSchema,
350
352
  defaultDatabase,
353
+ dialect,
351
354
  engineName,
352
355
  databaseName,
353
356
  hasSearch,
@@ -384,6 +387,7 @@ const SchemaList: React.FC<{
384
387
  schema: schema.name,
385
388
  defaultSchema: defaultSchema,
386
389
  defaultDatabase: defaultDatabase,
390
+ dialect: dialect,
387
391
  }}
388
392
  />
389
393
  </SchemaItem>