@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.
- package/dist/{Combination-De9yoNY5.js → Combination-DrSsMSEB.js} +860 -816
- package/dist/{ConnectedDataExplorerComponent-DuvpJOKp.js → ConnectedDataExplorerComponent-DY9cADKc.js} +2282 -2232
- package/dist/{ImageComparisonComponent--etUl2pp.js → ImageComparisonComponent-CJvR7Qzp.js} +3 -2
- package/dist/{_baseIsEqual-BFlyFUxC.js → _baseIsEqual-DbBiwJP8.js} +1 -1
- package/dist/{_basePickBy-gCCvtjgp.js → _basePickBy-ChFDiIEt.js} +3 -3
- package/dist/{_baseProperty-BuqBC0Ie.js → _baseProperty-Bf09f9Ee.js} +5 -5
- package/dist/_baseUniq-D5kohCWB.js +59 -0
- package/dist/any-language-editor-Bs2c1bKU.js +156 -0
- package/dist/apl-Bp8pgLcx.js +4 -0
- package/dist/{arc-C_O2hc-b.js → arc-DM-UhhIs.js} +2 -2
- package/dist/architecture-O4VJ6CD3-SVEfQWDz.js +24 -0
- package/dist/{architectureDiagram-W76B3OCA-CrK99pJi.js → architectureDiagram-W76B3OCA-GKSiVAlH.js} +41 -38
- package/dist/asciiarmor-IoNSjDv9.js +4 -0
- package/dist/asn1-B1GnbkOF.js +4 -0
- package/dist/{blockDiagram-QIGZ2CNN-BJOEyO6w.js → blockDiagram-QIGZ2CNN-wX8KWoV2.js} +30 -29
- package/dist/brainfuck-TRxEs4B5.js +4 -0
- package/dist/{button-ADXOb_gX.js → button-B8zS4Mtw.js} +5 -4
- package/dist/{c4Diagram-FPNF74CW-7Pz_X9wF.js → c4Diagram-FPNF74CW-Ns4C9pNn.js} +12 -12
- package/dist/{channel-X-wRUxX6.js → channel-Dgla_oqe.js} +1 -1
- package/dist/{check-COlaG7Ss.js → check-BZnPxXnd.js} +1 -1
- package/dist/{chunk-3AY6CYHV-BQH2fFpA.js → chunk-3AY6CYHV-HfZ-8MFM.js} +10 -10
- package/dist/{chunk-4BX2VUAB-D-QtDCKM.js → chunk-4BX2VUAB-CV5cUTmw.js} +1 -1
- package/dist/{chunk-4KMFLZZN-BirZvvJS.js → chunk-4KMFLZZN-Cbgb64pE.js} +17 -18
- package/dist/{chunk-55IACEB6-DjtPYZKs.js → chunk-55IACEB6--aEkhs1O.js} +1 -1
- package/dist/{chunk-6OXUPJBA-CTnnqlzw.js → chunk-6OXUPJBA-DQZp24uZ.js} +7 -7
- package/dist/{chunk-7GE3RBXV-CT47hCrL.js → chunk-7GE3RBXV-D0K_8mbM.js} +1 -1
- package/dist/{chunk-ABZYJK2D-B6ZsU6SR.js → chunk-ABZYJK2D-BwKkjFgF.js} +3 -3
- package/dist/{chunk-BN7GFLIU-DYWEsrG4.js → chunk-BN7GFLIU-93ktvOI2.js} +1 -1
- package/dist/{chunk-CVBHYZKI-BuzDGXz0.js → chunk-CVBHYZKI-tTpx9vm_.js} +1 -1
- package/dist/{chunk-CXMOBAN2-Bas2S5w1.js → chunk-CXMOBAN2-CagHnxl1.js} +6 -6
- package/dist/{chunk-EXTU4WIE-DXwNSukz.js → chunk-EXTU4WIE-Ve2vgn5X.js} +2 -2
- package/dist/{chunk-FMBD7UC4-CYKEpuPr.js → chunk-FMBD7UC4-CCvcIQpJ.js} +1 -1
- package/dist/{chunk-JA3XYJ7Z-DcxfkcDC.js → chunk-JA3XYJ7Z-CrQC4eYr.js} +4 -4
- package/dist/{chunk-JEIROHC2-C01ZIcIG.js → chunk-JEIROHC2-tuJLHPKk.js} +1 -1
- package/dist/{chunk-K7UQS3LO-CmbT97MV.js → chunk-K7UQS3LO-BzsTVREe.js} +7 -7
- package/dist/{chunk-KMC2YHZD-D64m-1E1.js → chunk-KMC2YHZD-CdKOlVi0.js} +1 -1
- package/dist/{chunk-QN33PNHL-DjB0j8Dr.js → chunk-QN33PNHL-CbdYySGk.js} +2 -2
- package/dist/{chunk-QYVHNE3D-VA4W4oxG.js → chunk-QYVHNE3D-BDj4udRH.js} +2 -2
- package/dist/{chunk-QZHKN3VN-KT0fl3Em.js → chunk-QZHKN3VN-E6VBm6ir.js} +1 -1
- package/dist/{chunk-S3R3BYOJ-C5zmcMvn.js → chunk-S3R3BYOJ-DuumGJ4u.js} +6 -6
- package/dist/{chunk-T44TD3VJ-BMOgu-Hk.js → chunk-T44TD3VJ-Bc-UhG4i.js} +1 -1
- package/dist/{chunk-TVAH2DTR-eKm8SKnH.js → chunk-TVAH2DTR-s8skdWqT.js} +6 -6
- package/dist/{chunk-TZMSLE5B-CQxFRiI2.js → chunk-TZMSLE5B-CUfRRoFb.js} +3 -3
- package/dist/{chunk-WFRQ32O7-Dg51o277.js → chunk-WFRQ32O7-BquRwCCj.js} +1 -1
- package/dist/{chunk-WFWHJNB7-DVLO98ge.js → chunk-WFWHJNB7-CHl0gCzu.js} +1 -1
- package/dist/{chunk-XRWGC2XP-UNFKdWQh.js → chunk-XRWGC2XP-CoSEoOcO.js} +1 -1
- package/dist/{chunk-ZPAFE4SF-DbCSwfLK.js → chunk-ZPAFE4SF-Bf1fn8cY.js} +1 -1
- package/dist/classDiagram-KNZD7YFC-ONLi1fgN.js +40 -0
- package/dist/classDiagram-v2-RKCZMP56-Ceij_i8m.js +40 -0
- package/dist/{clike-CytFO-kN.js → clike-Cbszc5XU.js} +1 -1
- package/dist/clojure-BNTL3o8Z.js +4 -0
- package/dist/{clone-CCgVUJ6x.js → clone-DE59DFkY.js} +1 -1
- package/dist/cmake-Bp6uEjiS.js +4 -0
- package/dist/cobol-CtS_R__A.js +4 -0
- package/dist/coffeescript-D5u5aYAu.js +4 -0
- package/dist/commonlisp-BvLWy9eh.js +4 -0
- package/dist/compiler-runtime-5MdCVm0X.js +13 -0
- package/dist/{constants-BaCMVd12.js → constants-BlvmN57i.js} +3 -3
- package/dist/{copy-GNcK40wy.js → copy-bxQOKABs.js} +2 -2
- package/dist/{cose-bilkent-S5V4N54A-BnvuJG6Y.js → cose-bilkent-S5V4N54A-DZE8LVzQ.js} +3 -3
- package/dist/crystal-CaTWnt-Z.js +4 -0
- package/dist/css-BMUPibQH.js +5 -0
- package/dist/cypher-PopjPg_G.js +4 -0
- package/dist/d-Ds7bO8W5.js +4 -0
- package/dist/{dagre-5GWH7T2D-rn7tZYaQ.js → dagre-5GWH7T2D-g2ShbPGy.js} +39 -37
- package/dist/{dagre-Bghq6VKO.js → dagre-TBn9HZB0.js} +14 -13
- package/dist/{data-grid-overlay-editor-B4_Caieu.js → data-grid-overlay-editor-BuhjNOgs.js} +4 -4
- package/dist/{diagram-N5W7TBWH-lbF94o-g.js → diagram-N5W7TBWH-BYhyeV0B.js} +44 -41
- package/dist/{diagram-QEK2KX5R-CKBhSzsO.js → diagram-QEK2KX5R-CiuUIBpl.js} +38 -35
- package/dist/{diagram-S2PKOQOG-161_1f53.js → diagram-S2PKOQOG-D0Z2Q5P-.js} +38 -35
- package/dist/diff-C_xR-pxD.js +4 -0
- package/dist/{dist-BSyYM1Gi.js → dist-7CqcJssH.js} +6 -6
- package/dist/{dist-C9-uHBqC.js → dist-8v4BI_h_.js} +1 -1
- package/dist/{dist-71jYYbWP.js → dist-B3CNaJau.js} +2 -2
- package/dist/dist-B9JCXzyv.js +6 -0
- package/dist/{dist-DzJem5xc.js → dist-BMhv6XDi.js} +1 -1
- package/dist/{dist-CWh5ZwcC.js → dist-BYS0EtbC.js} +2 -2
- package/dist/{dist-BaPjLM6s.js → dist-BgsDu-bU.js} +1 -1
- package/dist/{dist-CNAkUyxv.js → dist-BxmsyHv5.js} +1 -1
- package/dist/{dist-CWqB4bg8.js → dist-C02gS--y.js} +3 -3
- package/dist/{dist-C76MUPD3.js → dist-C5Iu9a3-.js} +2 -2
- package/dist/{dist-DxESp2-T.js → dist-C5Ns3q-m.js} +3 -3
- package/dist/dist-C6QrJGYr.js +10 -0
- package/dist/{dist-BAqp4Vtl.js → dist-CBu8cgzz.js} +8 -4
- package/dist/dist-CFZ32udY.js +6 -0
- package/dist/{dist-DaTVdKJa.js → dist-CXimnGhI.js} +2 -2
- package/dist/{dist-CtOeHDJp.js → dist-CawOxmKh.js} +5 -5
- package/dist/dist-CmgxQNWN.js +10 -0
- package/dist/dist-Cr6Cu8sC.js +6 -0
- package/dist/{dist-BBhmkni2.js → dist-CxRajUZ6.js} +1 -1
- package/dist/{dist-CPNnKuPh.js → dist-D08oiinq.js} +12 -10
- package/dist/{dist-BNRdMfJH.js → dist-D4LUTYHc.js} +2 -2
- package/dist/{dist-C2IEc8og.js → dist-DGKjHTv9.js} +5 -5
- package/dist/{dist-4dtbqf8A.js → dist-DGnWQOnS.js} +3 -3
- package/dist/{dist-BqdQPWpQ.js → dist-DSDOMDNR.js} +2 -2
- package/dist/{dist-_4cudra1.js → dist-DTNqkRGE.js} +3 -3
- package/dist/{dist-28HYzERB.js → dist-D_GkrgWD.js} +2 -2
- package/dist/{dist-Cw0F6l-7.js → dist-DbHWFmjZ.js} +1 -1
- package/dist/{dist-B_wjJqqS.js → dist-Dh7gw0Ay.js} +2 -2
- package/dist/{dist-B8Pbw5ln.js → dist-DiO9ni9a.js} +2 -2
- package/dist/{dist-BYHiiJB-.js → dist-DlSZED-1.js} +2 -2
- package/dist/{dist-Da046MhT.js → dist-DvsjKDQ4.js} +1 -1
- package/dist/{dist-O0zVziwn.js → dist-DzKKEoge.js} +3 -3
- package/dist/{dist-CwZcC4om.js → dist-HKzG1oF6.js} +1 -1
- package/dist/{dist-CJb8EiFO.js → dist-K_AqLCfS.js} +3 -3
- package/dist/dist-NxHLuq7w.js +6 -0
- package/dist/dist-S2JcqPPB.js +12 -0
- package/dist/{dist-CNvMOZu9.js → dist-XkGsOiy0.js} +2 -2
- package/dist/{dist-Drf3cyIW.js → dist-_tHnp24J.js} +3 -3
- package/dist/{dist-xLN9qCAp.js → dist-eSnWVS11.js} +3 -3
- package/dist/dist-hcPlrsR9.js +6 -0
- package/dist/{dist-DlK420ke.js → dist-owpR56zn.js} +1 -1
- package/dist/dist-poXa8G8m.js +6 -0
- package/dist/{dist-CTIyD_KU.js → dist-qGpLTiEi.js} +3 -3
- package/dist/{dockerfile-Cmlcqk35.js → dockerfile-CWWeWT3z.js} +1 -1
- package/dist/dtd-CGRYzaHQ.js +4 -0
- package/dist/dylan-Ctfki5HL.js +4 -0
- package/dist/ecl--gmEivzz.js +4 -0
- package/dist/eiffel-o31DRAP-.js +4 -0
- package/dist/elm-Dqa6TVIh.js +4 -0
- package/dist/{erDiagram-AWTI2OKA-BU7Qig7n.js → erDiagram-AWTI2OKA-BeadFjpg.js} +25 -25
- package/dist/erlang-BtVO_vQG.js +4 -0
- package/dist/error-banner-B7LmpmGT.js +1013 -0
- package/dist/{esm-Oo8OvZ6m.js → esm-CQIOyi5v.js} +579 -564
- package/dist/{factor-BZnBK3CG.js → factor-7tQNNEWF.js} +1 -1
- package/dist/factor-CNLvRc__.js +5 -0
- package/dist/{flowDiagram-PVAE7QVJ-JKJebWeY.js → flowDiagram-PVAE7QVJ-GgklUvqn.js} +27 -27
- package/dist/{formats-DOEuF6TR.js → formats-kyFd0DPJ.js} +23 -22
- package/dist/forth-Bp2zDfH-.js +4 -0
- package/dist/fortran-B3A-KieX.js +4 -0
- package/dist/{ganttDiagram-OWAHRB6G-BvWRfg05.js → ganttDiagram-OWAHRB6G-D5wYR6WK.js} +17 -17
- package/dist/gas-_Xt_kGOG.js +4 -0
- package/dist/gherkin-DzZpg8Ls.js +4 -0
- package/dist/gitGraph-ZV4HHKMB-DFGD7PPm.js +24 -0
- package/dist/{gitGraphDiagram-NY62KEGX-VEJJBf5L.js → gitGraphDiagram-NY62KEGX-DCwA-g9b.js} +38 -35
- package/dist/{glide-data-editor-Bne10icG.js → glide-data-editor-1bUl_mRe.js} +515 -515
- package/dist/graphlib-R11f1son.js +228 -0
- package/dist/groovy-BtD10jRQ.js +4 -0
- package/dist/haskell-C-JVWnIV.js +4 -0
- package/dist/haxe-Del5TcJQ.js +5 -0
- package/dist/idl-BLlRatde.js +4 -0
- package/dist/info-63CPKGFF-eZyiEu_4.js +24 -0
- package/dist/infoDiagram-STP46IZ2-CUr2vZlE.js +48 -0
- package/dist/{isEmpty-Do_v2sls.js → isEmpty-CIFmGKJN.js} +2 -2
- package/dist/isString-BsphYkXQ.js +9 -0
- package/dist/{isSymbol-CtkA8Y0a.js → isSymbol-BnxbuvDK.js} +1 -1
- package/dist/javascript-Bm7QL4E3.js +5 -0
- package/dist/jinja2-BxbImxq2.js +4 -0
- package/dist/{journeyDiagram-BIP6EPQ6-CsgEQgxh.js → journeyDiagram-BIP6EPQ6-DtjQC_m1.js} +10 -10
- package/dist/jsx-runtime-CvL6gNI-.js +22 -0
- package/dist/julia-DV1Vz9mw.js +4 -0
- package/dist/{kanban-definition-6OIFK2YF-Bi8Ete2P.js → kanban-definition-6OIFK2YF-U3q5gvb8.js} +19 -19
- package/dist/{katex-C-g3rKKt.js → katex-BWgzyQrl.js} +1 -1
- package/dist/{label-BiVIU_wb.js → label-Wr-xTlW7.js} +463 -453
- package/dist/{line-B7-GoF1m.js → line-C7OvOvNm.js} +3 -3
- package/dist/{linear-DeGGALuc.js → linear-CgANSWNu.js} +4 -4
- package/dist/livescript-9UMSMMrl.js +4 -0
- package/dist/{loader-BBqwtZWj.js → loader-Dj9XWZTh.js} +164 -4
- package/dist/lua-Bcbc7wWe.js +4 -0
- package/dist/main.js +40727 -41561
- package/dist/mathematica-DG4QUwYU.js +4 -0
- package/dist/mbox--auqAoPc.js +4 -0
- package/dist/{memoize-D7eDkf3R.js → memoize-XkDn33QI.js} +1 -1
- package/dist/{merge-C_6cGM6o.js → merge-dMlizkC5.js} +1 -1
- package/dist/{mermaid-BmtvsZ2m.js → mermaid-DIjoC4T4.js} +67 -66
- package/dist/{mermaid-parser.core-geyG_6o0.js → mermaid-parser.core-B433qyUL.js} +8 -8
- package/dist/{mhchem-OhAaJ0fA.js → mhchem-1x4KnXMF.js} +1 -1
- package/dist/min-WjLsUjBa.js +89 -0
- package/dist/{mindmap-definition-Q6HEUPPD-B-wmX1oG.js → mindmap-definition-Q6HEUPPD-LFgV4R8y.js} +24 -24
- package/dist/mirc-9dVcMicH.js +4 -0
- package/dist/mllike-Di9N4E3Q.js +6 -0
- package/dist/modelica-S3adENkL.js +4 -0
- package/dist/mscgen-DAG0zH4w.js +6 -0
- package/dist/mumps-afzuy08D.js +4 -0
- package/dist/{now-DumxsrcX.js → now-8WTe-KKa.js} +1 -1
- package/dist/nsis-Bzwy0lPH.js +5 -0
- package/dist/{nsis-D4bLR_Y1.js → nsis-CFb2Zrib.js} +1 -1
- package/dist/ntriples-D9oM8s3v.js +4 -0
- package/dist/{number-overlay-editor-D6r-48ka.js → number-overlay-editor-DYjnpjXo.js} +2 -2
- package/dist/octave-BMLCk2qM.js +4 -0
- package/dist/{once-3OSMKEsL.js → once-rI5AYku5.js} +1 -1
- package/dist/{ordinal-DpEbSVPc.js → ordinal-pQYxWJYN.js} +1 -1
- package/dist/oz-CX5JTWTK.js +4 -0
- package/dist/packet-HUATNLJX-BvWMmF9U.js +24 -0
- package/dist/pascal-BeZmsfFX.js +4 -0
- package/dist/perl-CZ_HryPN.js +4 -0
- package/dist/pie-WTHONI2E-BCXZJKz0.js +24 -0
- package/dist/{pieDiagram-ADFJNKIX-C3GvPNUL.js → pieDiagram-ADFJNKIX-CsZmho0o.js} +43 -40
- package/dist/pig-OPEEOu6V.js +4 -0
- package/dist/powershell-DyR-5LnA.js +4 -0
- package/dist/{precisionRound-7YYJq2rW.js → precisionRound-DMLkFNYv.js} +1 -1
- package/dist/properties-Cl4tecfb.js +4 -0
- package/dist/protobuf-B8X247vV.js +4 -0
- package/dist/pug-Kmpa-Pbv.js +5 -0
- package/dist/{pug-Dv3gE36O.js → pug-ZDYeT34w.js} +1 -1
- package/dist/puppet-Pl07qkSO.js +4 -0
- package/dist/python-DQgTXBpp.js +5 -0
- package/dist/q-D7uiP00h.js +4 -0
- package/dist/{quadrantDiagram-LMRXKWRM-DPXwGNVa.js → quadrantDiagram-LMRXKWRM-CY6GTOgM.js} +8 -8
- package/dist/r-DbUoToEd.js +4 -0
- package/dist/radar-NJJJXTRR-8kjOeCwx.js +24 -0
- package/dist/{range-CIbLpsrs.js → range-CTMc_Qhu.js} +3 -3
- package/dist/{react-plotly-DYyvxcRD.js → react-plotly-Cs07wkly.js} +2 -2
- package/dist/react-vega-B9eMrRW1.js +32035 -0
- package/dist/react-vega-DM3e8kar.js +25 -0
- package/dist/reduce-C-jV7KRY.js +268 -0
- package/dist/{requirementDiagram-4UW4RH46-Cs3Hqnm0.js → requirementDiagram-4UW4RH46-CfLWneBF.js} +24 -24
- package/dist/rpm-BjQFZZ1e.js +5 -0
- package/dist/ruby-BXpop5ZX.js +4 -0
- package/dist/{sankeyDiagram-GR3RE2ED-Be1d_Xf7.js → sankeyDiagram-GR3RE2ED-Dkxfzm6f.js} +7 -7
- package/dist/sas-CzFr9Hlz.js +4 -0
- package/dist/scheme-C6QRPvcm.js +4 -0
- package/dist/{sequenceDiagram-C3RYC4MD-lbtovKTa.js → sequenceDiagram-C3RYC4MD-hSi31Kfa.js} +14 -14
- package/dist/shell-Bs7FrcsL.js +4 -0
- package/dist/sieve-D39XRya9.js +4 -0
- package/dist/{slides-component-BoeQU7-s.js → slides-component-Ct11erUn.js} +9 -8
- package/dist/smalltalk-CdAwDOFE.js +4 -0
- package/dist/sparql-DsDWhEhN.js +4 -0
- package/dist/spec-rqRnkIf4.js +1256 -0
- package/dist/{src-BTqT1mA1.js → src-CKr0QbVy.js} +1 -1
- package/dist/{stateDiagram-KXAO66HF-BmbR-Rol.js → stateDiagram-KXAO66HF-DJsLA_DN.js} +42 -40
- package/dist/stateDiagram-v2-UMBNRL4Z-D-p_ngHt.js +39 -0
- package/dist/{step-2RJrMSSG.js → step-BsM8YHun.js} +1 -1
- package/dist/stex-DvqvBdH8.js +5 -0
- package/dist/style.css +1 -1
- package/dist/stylus-DxzxWmvV.js +4 -0
- package/dist/swift-DTC4Wg4z.js +4 -0
- package/dist/tcl-DantlS-i.js +4 -0
- package/dist/textile-pOphaahD.js +4 -0
- package/dist/{time-BB30r1tK.js → time-U9NHhrDC.js} +4 -4
- package/dist/{timeline-definition-XQNQX7LJ-1mv5caPW.js → timeline-definition-XQNQX7LJ-rojWjX6M.js} +7 -7
- package/dist/{toNumber-D3Ystr3y.js → toNumber-CUG0Hyhp.js} +2 -2
- package/dist/{toString-CbuxCRDG.js → toString-CT4n1k2E.js} +2 -2
- package/dist/toml-hgYsPM5p.js +4 -0
- package/dist/treemap-75Q7IDZK-Do1WIR9v.js +24 -0
- package/dist/troff-BwevrEUZ.js +4 -0
- package/dist/{dtd-RplB6hDg.js → ttcn-C5gJcxta.js} +2 -2
- package/dist/ttcn-cfg-CPKlfqST.js +4 -0
- package/dist/turtle-EH0lMhMf.js +4 -0
- package/dist/{types-BPohCsA7.js → types-Bt7p5SYB.js} +1028 -1038
- package/dist/uniq-DgSyegN3.js +8 -0
- package/dist/{useAsyncData-DHBqeb9a.js → useAsyncData-Dp2V69OV.js} +3 -3
- package/dist/{useIframeCapabilities-BEvvwlwt.js → useIframeCapabilities-B9u0SmJ4.js} +2 -2
- package/dist/{useTheme-CnMbo-iq.js → useTheme-D7vlj42b.js} +4 -4
- package/dist/vb-DNk7gts-.js +4 -0
- package/dist/vbscript-znK_5PUS.js +4 -0
- package/dist/vega-component-C58Jk3ub.js +633 -0
- package/dist/{vega-loader.browser.module-CFMtdrNw.js → vega-loader.browser-BK7-IO9k.js} +91 -99
- package/dist/velocity-DmPhlhdp.js +4 -0
- package/dist/verilog-CePnwf4S.js +4 -0
- package/dist/vhdl-Ckdh8uiO.js +4 -0
- package/dist/webidl-8N8qbzRd.js +4 -0
- package/dist/xquery-Cocyk-z0.js +4 -0
- package/dist/{xychartDiagram-6GGTOJPD-njc-naaw.js → xychartDiagram-6GGTOJPD-CiC1eONZ.js} +23 -23
- package/dist/yacas-CPmShRg-.js +4 -0
- package/dist/z80-B500UaFh.js +4 -0
- package/package.json +12 -9
- package/src/components/ai/ai-provider-icon.tsx +2 -1
- package/src/components/app-config/constants.ts +25 -1
- package/src/components/charts/lazy.tsx +7 -0
- package/src/components/charts/tooltip.ts +5 -0
- package/src/components/charts/types.ts +8 -0
- package/src/components/chat/acp/__tests__/state.test.ts +0 -13
- package/src/components/chat/acp/agent-panel.tsx +7 -1
- package/src/components/chat/acp/agent-selector.tsx +5 -0
- package/src/components/chat/acp/blocks.tsx +51 -8
- package/src/components/chat/acp/state.ts +8 -2
- package/src/components/chat/acp/thread.tsx +10 -3
- package/src/components/chat/chat-panel.tsx +7 -1
- package/src/components/data-table/__tests__/__snapshots__/chart-spec-model.test.ts.snap +473 -184
- package/src/components/data-table/__tests__/chart-spec-model.test.ts +32 -28
- package/src/components/data-table/charts/__tests__/__snapshots__/spec-snapshot.test.ts.snap +1 -1
- package/src/components/data-table/charts/__tests__/altair-generator.test.ts +162 -0
- package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +1 -1
- package/src/components/data-table/charts/__tests__/spec.test.ts +145 -6
- package/src/components/data-table/charts/chart-spec/altair-generator.ts +6 -1
- package/src/components/data-table/charts/chart-spec/encodings.ts +11 -7
- package/src/components/data-table/charts/chart-spec/spec.ts +9 -8
- package/src/components/data-table/charts/chart-spec/tooltips.ts +4 -3
- package/src/components/data-table/charts/chart-spec/types.ts +1 -1
- package/src/components/data-table/charts/chart-spec/utils.ts +23 -0
- package/src/components/data-table/charts/components/form-fields.tsx +2 -2
- package/src/components/data-table/charts/constants.ts +7 -3
- package/src/components/data-table/charts/lazy-chart.tsx +15 -11
- package/src/components/data-table/charts/types.ts +6 -14
- package/src/components/data-table/column-summary/chart-spec-model.tsx +112 -269
- package/src/components/data-table/column-summary/column-summary.tsx +12 -12
- package/src/components/data-table/column-summary/legacy-chart-spec.ts +78 -2
- package/src/components/data-table/column-summary/utils.ts +1 -1
- package/src/components/datasources/__tests__/utils.test.ts +339 -138
- package/src/components/datasources/column-preview.tsx +9 -9
- package/src/components/datasources/datasources.tsx +4 -0
- package/src/components/datasources/utils.ts +94 -4
- package/src/components/editor/Output.tsx +9 -6
- package/src/components/editor/ai/ai-completion-editor.tsx +2 -2
- package/src/components/editor/code/readonly-diff.tsx +4 -0
- package/src/components/editor/output/ConsoleOutput.tsx +14 -11
- package/src/components/editor/renderers/slides-layout/types.ts +1 -1
- package/src/components/tracing/tracing-spec.ts +2 -2
- package/src/components/tracing/tracing.test.tsx +1 -1
- package/src/components/tracing/tracing.tsx +57 -74
- package/src/components/tracing/utils.ts +22 -0
- package/src/components/ui/query-param-preserving-link.tsx +48 -0
- package/src/core/ai/context/providers/__tests__/cell-output.test.ts +12 -1
- package/src/core/ai/context/providers/cell-output.ts +2 -8
- package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +1 -1
- package/src/core/ai/tools/edit-notebook-tool.ts +15 -7
- package/src/core/ai/tools/run-cells-tool.ts +60 -26
- package/src/core/cells/ids.ts +1 -1
- package/src/core/codemirror/language/__tests__/extension.test.ts +6 -12
- package/src/core/codemirror/language/__tests__/markdown.test.ts +23 -36
- package/src/core/codemirror/language/languages/python.ts +40 -6
- package/src/core/codemirror/language/languages/sql/completion-store.ts +2 -2
- package/src/core/codemirror/language/languages/sql/sql.ts +14 -0
- package/src/core/codemirror/language/languages/sql/utils.ts +54 -3
- package/src/core/codemirror/lsp/notebook-lsp.ts +52 -4
- package/src/core/codemirror/lsp/transports.ts +3 -0
- package/src/core/datasets/__tests__/data-source.test.ts +6 -0
- package/src/core/datasets/data-source-connections.ts +1 -0
- package/src/core/dom/__tests__/outline.test.ts +43 -0
- package/src/core/dom/outline.ts +1 -1
- package/src/core/islands/main.ts +2 -0
- package/src/core/lsp/__tests__/transport.test.ts +57 -0
- package/src/core/lsp/transport.ts +16 -0
- package/src/css/md.css +6 -0
- package/src/plugins/core/RenderHTML.tsx +26 -0
- package/src/plugins/core/__test__/sanitize.test.ts +27 -0
- package/src/plugins/core/sanitize.ts +9 -2
- package/src/plugins/impl/DataTablePlugin.tsx +21 -27
- package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +26 -22
- package/src/plugins/impl/data-explorer/functions/function.ts +1 -2
- package/src/plugins/impl/data-explorer/functions/types.ts +65 -14
- package/src/plugins/impl/data-explorer/queries/queries.ts +9 -9
- package/src/plugins/impl/data-explorer/queries/types.ts +23 -5
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +2 -1
- package/src/plugins/impl/vega/__tests__/__snapshots__/make-selectable.test.ts.snap +2309 -0
- package/src/plugins/impl/vega/__tests__/encodings.test.ts +93 -0
- package/src/plugins/impl/vega/__tests__/make-selectable.test.ts +621 -0
- package/src/plugins/impl/vega/__tests__/params.test.ts +121 -1
- package/src/plugins/impl/vega/encodings.ts +16 -2
- package/src/plugins/impl/vega/make-selectable.ts +339 -10
- package/src/plugins/impl/vega/params.ts +76 -14
- package/src/plugins/impl/vega/types.ts +32 -13
- package/src/plugins/impl/vega/vega-component.tsx +74 -26
- package/src/plugins/impl/vega/vega.css +1 -0
- package/src/stories/__fixtures__/vega.ts +1 -1
- package/src/utils/arrays.ts +16 -0
- package/dist/_baseUniq-CKN9mEDq.js +0 -324
- package/dist/any-language-editor-Du2Q_6IK.js +0 -156
- package/dist/apl-CUm2DGqh.js +0 -4
- package/dist/architecture-O4VJ6CD3-PFw3eFBY.js +0 -21
- package/dist/asciiarmor-lqJ78U01.js +0 -4
- package/dist/asn1-CjwpSTlW.js +0 -4
- package/dist/brainfuck-ClvDI1dq.js +0 -4
- package/dist/classDiagram-KNZD7YFC-HUFFxNdk.js +0 -40
- package/dist/classDiagram-v2-RKCZMP56-Dw7Acmuf.js +0 -40
- package/dist/clojure-8GefCgPe.js +0 -4
- package/dist/cmake-yAhT9H0F.js +0 -4
- package/dist/cobol-BmltueOY.js +0 -4
- package/dist/coffeescript-C7KEQBcH.js +0 -4
- package/dist/commonlisp-CNbiJRU-.js +0 -4
- package/dist/crystal-OdjZZ8bc.js +0 -4
- package/dist/css-DhTxMmL_.js +0 -5
- package/dist/cypher-CgN8E3YI.js +0 -4
- package/dist/d-g41sJcBC.js +0 -4
- package/dist/diff-ViRYYhhg.js +0 -4
- package/dist/dist-BfJO8Bm9.js +0 -12
- package/dist/dist-CLuF3AtO.js +0 -6
- package/dist/dist-CU04U4NL.js +0 -10
- package/dist/dist-DNUT6b47.js +0 -6
- package/dist/dist-DbAb2sY7.js +0 -6
- package/dist/dist-DiDFQ2Rk.js +0 -6
- package/dist/dist-SNAyAOJ-.js +0 -6
- package/dist/dist-cbW5xJNV.js +0 -6
- package/dist/dist-h8eGLSbK.js +0 -10
- package/dist/dylan-BX8KJufP.js +0 -4
- package/dist/ecl-CWtLaNMH.js +0 -4
- package/dist/eiffel-C-mlZPMn.js +0 -4
- package/dist/elm-CWp06vcb.js +0 -4
- package/dist/erlang-pfp22AZM.js +0 -4
- package/dist/error-banner-BAWlXn49.js +0 -1012
- package/dist/esm-B2pocBPL.js +0 -26
- package/dist/esm-YVnxJqkD.js +0 -33066
- package/dist/factor-CEn53jua.js +0 -5
- package/dist/forth-CL8vu_y8.js +0 -4
- package/dist/fortran-DsmXkYtE.js +0 -4
- package/dist/gas-mYt9Rtlx.js +0 -4
- package/dist/gherkin-DHNCKBNj.js +0 -4
- package/dist/gitGraph-ZV4HHKMB-Cpd6k0O8.js +0 -21
- package/dist/graphlib-DRS8CrjA.js +0 -227
- package/dist/groovy-DzRtOS5a.js +0 -4
- package/dist/haskell-Bl9iT_Mp.js +0 -4
- package/dist/haxe-DqA0ED6k.js +0 -5
- package/dist/idl-WU2hil4i.js +0 -4
- package/dist/info-63CPKGFF-CG-xzUJo.js +0 -21
- package/dist/infoDiagram-STP46IZ2-zoRBGoup.js +0 -45
- package/dist/javascript-QY2BGJeV.js +0 -5
- package/dist/jinja2-Czleq7Sk.js +0 -4
- package/dist/jsx-runtime-DZyWJV5b.js +0 -31
- package/dist/julia-Dru3Qi0y.js +0 -4
- package/dist/livescript-Dxqi_HLT.js +0 -4
- package/dist/lua-ByH1cUQZ.js +0 -4
- package/dist/mathematica-CWJIFuES.js +0 -4
- package/dist/mbox-qhPIGaUI.js +0 -4
- package/dist/min-Dwa_NbP6.js +0 -93
- package/dist/mirc-yYcXhXBY.js +0 -4
- package/dist/mllike-BfT_Nl9x.js +0 -6
- package/dist/modelica-lVDtz1Rm.js +0 -4
- package/dist/mscgen-DvwdD1QJ.js +0 -6
- package/dist/mumps-BiY3GwKd.js +0 -4
- package/dist/nsis-Dk18Sq_4.js +0 -5
- package/dist/ntriples-Cj-8VqKF.js +0 -4
- package/dist/octave-BgFAaYjU.js +0 -4
- package/dist/oz-IsEG1I1m.js +0 -4
- package/dist/packet-HUATNLJX-Cafuo3IG.js +0 -21
- package/dist/pascal-BVf7FtIE.js +0 -4
- package/dist/perl-BM0-y4mZ.js +0 -4
- package/dist/pie-WTHONI2E-BE0pHBwB.js +0 -21
- package/dist/pig-CLBjzQmc.js +0 -4
- package/dist/powershell-B_qvE33J.js +0 -4
- package/dist/properties-CUTpsH2y.js +0 -4
- package/dist/protobuf-DqCP8a-0.js +0 -4
- package/dist/pug-BvexKkw4.js +0 -5
- package/dist/puppet-CoIi0R3f.js +0 -4
- package/dist/python-C-11-YMh.js +0 -5
- package/dist/q-CCVgEip7.js +0 -4
- package/dist/r-CIdR0Sfs.js +0 -4
- package/dist/radar-NJJJXTRR-0adgjw0u.js +0 -21
- package/dist/rpm-Dwvm039g.js +0 -5
- package/dist/ruby-DpTnO5gb.js +0 -4
- package/dist/sas-CK9boxgv.js +0 -4
- package/dist/scheme-Y1aYL-Qq.js +0 -4
- package/dist/shell-D3eXGsHd.js +0 -4
- package/dist/sieve-BdwSFdWJ.js +0 -4
- package/dist/smalltalk-BTYJquCm.js +0 -4
- package/dist/sparql-CYF0g4Cc.js +0 -4
- package/dist/stateDiagram-v2-UMBNRL4Z-DdJ7qVWc.js +0 -39
- package/dist/stex-CyWhoWHt.js +0 -5
- package/dist/stylus-BBiKaI2h.js +0 -4
- package/dist/swift-COb15qFR.js +0 -4
- package/dist/tcl-Jik1LXu9.js +0 -4
- package/dist/textile-BFHPD3wr.js +0 -4
- package/dist/toml-Brp9fBXs.js +0 -4
- package/dist/treemap-75Q7IDZK-CyBT8_Wh.js +0 -21
- package/dist/troff-CcZRW4vg.js +0 -4
- package/dist/tslib.es6-3ZL768sZ.js +0 -49
- package/dist/ttcn-Bz_6ifRd.js +0 -4
- package/dist/ttcn-cfg-v-yi2rKc.js +0 -4
- package/dist/turtle-CDOsZYhB.js +0 -4
- package/dist/useDateFormatter-BkbjKw83.js +0 -543
- package/dist/vb-CL7fRwRw.js +0 -4
- package/dist/vbscript-CR2xfxpw.js +0 -4
- package/dist/vega-component-BfFcXZxw.js +0 -465
- package/dist/velocity-CfuZoxPt.js +0 -4
- package/dist/verilog-CySTkzw_.js +0 -4
- package/dist/vhdl-Dvcd8KHW.js +0 -4
- package/dist/webidl-tbJt7sKk.js +0 -4
- package/dist/xquery-DJQVztyc.js +0 -4
- package/dist/yacas-BbgBReEH.js +0 -4
- package/dist/z80-DPyb8VGz.js +0 -4
- /package/dist/{_arrayReduce-Cd9xQjbl.js → _arrayReduce-CmsTTAw1.js} +0 -0
- /package/dist/{_baseSlice-CE9WsQZm.js → _baseSlice-CAnpEJwx.js} +0 -0
- /package/dist/{_hasUnicode-DkEebvtD.js → _hasUnicode-CbmCTPAa.js} +0 -0
- /package/dist/{apl-aGhy11IM.js → apl-Css595_H.js} +0 -0
- /package/dist/{array-DYSXIreg.js → array-D3smvOQ_.js} +0 -0
- /package/dist/{asciiarmor-DJKJ3Gkn.js → asciiarmor-BTCuJwxh.js} +0 -0
- /package/dist/{asn1-C6f5IeNs.js → asn1-DXjhS5QI.js} +0 -0
- /package/dist/{asterisk-DB1poX9_.js → asterisk-5HlmsIaw.js} +0 -0
- /package/dist/{brainfuck-Ch9vjun0.js → brainfuck--WlEc-iG.js} +0 -0
- /package/dist/{chunk-57QY23SG-BpXU7ph4.js → chunk-57QY23SG-D7ymhFFp.js} +0 -0
- /package/dist/{click-outside-container-2BH589Bq.js → click-outside-container-DSVM9sZw.js} +0 -0
- /package/dist/{clike-Bc2PZzZQ.js → clike-DDIJB_R8.js} +0 -0
- /package/dist/{clojure-B_lpr3zt.js → clojure-Z-GPBZyY.js} +0 -0
- /package/dist/{cmake-DaocNF4I.js → cmake-DncBqspt.js} +0 -0
- /package/dist/{cobol-suTPtt7c.js → cobol-DqUe0gl7.js} +0 -0
- /package/dist/{coffeescript-CPLIvtqJ.js → coffeescript-CH5_OO0H.js} +0 -0
- /package/dist/{colors-BXlG8Lmz.js → colors-DQmMCNWX.js} +0 -0
- /package/dist/{common-keywords-Bhll7O3b.js → common-keywords-CAEsQSF5.js} +0 -0
- /package/dist/{commonlisp-BqM3qFK7.js → commonlisp-UmhR9BfE.js} +0 -0
- /package/dist/{crystal-AsSFu4ke.js → crystal-5Sqf7MXt.js} +0 -0
- /package/dist/{css-Df7Sdeyh.js → css-bDybSxwf.js} +0 -0
- /package/dist/{cypher-CaVKL6Gu.js → cypher-PIeAFhrd.js} +0 -0
- /package/dist/{cytoscape.esm-BFEMljQI.js → cytoscape.esm-DclyBJ4D.js} +0 -0
- /package/dist/{d-DCGWK7NQ.js → d-Bd8EVRQt.js} +0 -0
- /package/dist/{defaultLocale-Cto8YOmX.js → defaultLocale-BPzjWfXP.js} +0 -0
- /package/dist/{defaultLocale-CYgZlqDF.js → defaultLocale-Om7Wxg5c.js} +0 -0
- /package/dist/{diff-CsxOM4Tr.js → diff-CAQdgtD6.js} +0 -0
- /package/dist/{dtd-Dwr0Jmks.js → dtd-eKW3pZj_.js} +0 -0
- /package/dist/{duckdb-keywords-7wAWf848.js → duckdb-keywords-BC3kWZZM.js} +0 -0
- /package/dist/{dylan-A7-ZBSey.js → dylan-CIO7R9Tr.js} +0 -0
- /package/dist/{ebnf-9_SaGDUz.js → ebnf-Pr4a9I6n.js} +0 -0
- /package/dist/{ecl-BzJVIQDc.js → ecl-BqYW-aOJ.js} +0 -0
- /package/dist/{eiffel-CO9eC_Op.js → eiffel-BOKM91eM.js} +0 -0
- /package/dist/{elm-CVAWj8SB.js → elm-3sobs3PV.js} +0 -0
- /package/dist/{emotion-is-prop-valid.esm-C3Yi5GQt.js → emotion-is-prop-valid.esm-Cm1uulbm.js} +0 -0
- /package/dist/{erlang-DWbZP546.js → erlang-C5EBzhP1.js} +0 -0
- /package/dist/{esm-AtKNNGYO.js → esm-CopBBL2y.js} +0 -0
- /package/dist/{fcl-CM9t2iay.js → fcl-Brh8s8q_.js} +0 -0
- /package/dist/{forth-BTYqUuu3.js → forth-DneRHr4K.js} +0 -0
- /package/dist/{fortran-DgAjHcCq.js → fortran-DsdmZbwQ.js} +0 -0
- /package/dist/{gas-BjDSWPZd.js → gas-DaoJ65Z9.js} +0 -0
- /package/dist/{gherkin-ClRqqpKv.js → gherkin-DUP_UlW-.js} +0 -0
- /package/dist/{groovy-BzNjnc8x.js → groovy-Rvyan8yX.js} +0 -0
- /package/dist/{haskell-DLdk34Jq.js → haskell-DIvpY54L.js} +0 -0
- /package/dist/{haxe-l6gaY_IS.js → haxe-Da_5bBNs.js} +0 -0
- /package/dist/{http-6Qg7z_h2.js → http-CMvcwl3E.js} +0 -0
- /package/dist/{idl-hlWT4D26.js → idl-DvL3aO0N.js} +0 -0
- /package/dist/{init-tZ42Torz.js → init-BNp5RczD.js} +0 -0
- /package/dist/{invariant-D3JoRb4I.js → invariant-Cl2wkkjN.js} +0 -0
- /package/dist/{isArrayLikeObject-DU5MCuQM.js → isArrayLikeObject-1qkWxZbL.js} +0 -0
- /package/dist/{javascript-DGukg1sB.js → javascript-DoyAP8vn.js} +0 -0
- /package/dist/{jinja2-DI5k_Er3.js → jinja2-Veqp7mFj.js} +0 -0
- /package/dist/{julia-BvDZDiIT.js → julia-Gi684CX7.js} +0 -0
- /package/dist/{katex-DgfMWJY9.js → katex-U6RPAuWM.js} +0 -0
- /package/dist/{livescript-2YMQfkfI.js → livescript-BKj_Zhvo.js} +0 -0
- /package/dist/{lua-DIUrQRfA.js → lua-CDA7hreG.js} +0 -0
- /package/dist/{main-BMTpe7M0.js → main-63eIj2Yx.js} +0 -0
- /package/dist/{marked.esm-DkVwEwtO.js → marked.esm-DE8HU3tw.js} +0 -0
- /package/dist/{math-qsHyz2Eo.js → math-C2iLT5gz.js} +0 -0
- /package/dist/{mathematica-Dqmg_BwL.js → mathematica-GWfSHReY.js} +0 -0
- /package/dist/{mbox-Cng-P-F1.js → mbox-Dwsrc4Ak.js} +0 -0
- /package/dist/{mirc-CNDqOVhQ.js → mirc-B2JE5ype.js} +0 -0
- /package/dist/{mllike-C1n2UDyX.js → mllike-BkBh4PFX.js} +0 -0
- /package/dist/{modelica-QqQC2pFj.js → modelica-C0hNlKgR.js} +0 -0
- /package/dist/{mscgen-C3fl8uhp.js → mscgen-DWWpdZnb.js} +0 -0
- /package/dist/{mumps-BeCUbMej.js → mumps-CMePAlSe.js} +0 -0
- /package/dist/{nginx-ejv7DsBz.js → nginx-GurZbX0E.js} +0 -0
- /package/dist/{node-sql-parser-CoPWN4hn.js → node-sql-parser-IKID_dZE.js} +0 -0
- /package/dist/{ntriples-CUgUpcma.js → ntriples-BnE6tX0Y.js} +0 -0
- /package/dist/{octave-BD652tGl.js → octave-Dfu3PmNP.js} +0 -0
- /package/dist/{oz-DrRsFa0K.js → oz-DqNpAjpZ.js} +0 -0
- /package/dist/{pascal-hpcx9sVn.js → pascal-GP_8jbNL.js} +0 -0
- /package/dist/{path-Bbv2tLY1.js → path-BeMi_1Je.js} +0 -0
- /package/dist/{perl-DW8XHeFc.js → perl-DUDEqQOD.js} +0 -0
- /package/dist/{pig-Cv7Nxbfo.js → pig-Csr4LnKs.js} +0 -0
- /package/dist/{powershell-Dr7WZMDU.js → powershell-Cw4tDKZx.js} +0 -0
- /package/dist/{prop-types-Bd16OEUP.js → prop-types-CzOfzj9N.js} +0 -0
- /package/dist/{properties-D-qJDXAM.js → properties-CUhUGfHR.js} +0 -0
- /package/dist/{protobuf-B48QZbd3.js → protobuf-CPZe957V.js} +0 -0
- /package/dist/{puppet-15JDyiY2.js → puppet-BP1AOwo6.js} +0 -0
- /package/dist/{purify.es-CrfFzTyi.js → purify.es-CDFkadZl.js} +0 -0
- /package/dist/{python-DWkQA94h.js → python-BMcMimC3.js} +0 -0
- /package/dist/{q-BzRpKgfd.js → q-BNfSHUci.js} +0 -0
- /package/dist/{r-dcNRe_Q8.js → r-DiJzLRZc.js} +0 -0
- /package/dist/{range-CQvYp_qE.js → range-sX2tw-Jz.js} +0 -0
- /package/dist/{react-dom-CpBooCbY.js → react-dom-BTjywDxo.js} +0 -0
- /package/dist/{rpm-Djl3Dsf1.js → rpm-CywAxCKo.js} +0 -0
- /package/dist/{ruby-Dd2CZTip.js → ruby-B0a4mSSU.js} +0 -0
- /package/dist/{sas-DYF5_Iqu.js → sas-DTh30wZQ.js} +0 -0
- /package/dist/{scheme-YtWcji1H.js → scheme-CsOlAIFf.js} +0 -0
- /package/dist/{shell-C3uC3Y0Z.js → shell-7w75P-tg.js} +0 -0
- /package/dist/{sieve-DHB17sQG.js → sieve-BphUEMa4.js} +0 -0
- /package/dist/{simple-mode-BMmwP_vI.js → simple-mode-BcThS5Pa.js} +0 -0
- /package/dist/{smalltalk-Y5v1Np3H.js → smalltalk-CHwdNey_.js} +0 -0
- /package/dist/{solr-DvRJLlRD.js → solr-CuWbYJLt.js} +0 -0
- /package/dist/{sparql-BEt3GJwM.js → sparql-BtwCqUvT.js} +0 -0
- /package/dist/{spreadsheet-Dp4B9_rc.js → spreadsheet-C1JzeuKn.js} +0 -0
- /package/dist/{sql-DBsUs8nQ.js → sql-wv_2DQzf.js} +0 -0
- /package/dist/{stex-C6-x52ei.js → stex-BmcrV7cx.js} +0 -0
- /package/dist/{stylus-DroA8via.js → stylus-SVJ7TGPh.js} +0 -0
- /package/dist/{swift-DR0x1ESK.js → swift-f7KaABxm.js} +0 -0
- /package/dist/{tcl-BeuTFc_c.js → tcl-CbTFkeHJ.js} +0 -0
- /package/dist/{textile-C0ikhHN3.js → textile-CFn6QLRy.js} +0 -0
- /package/dist/{tiddlywiki-C_2Nvsgu.js → tiddlywiki-DBhMcdVM.js} +0 -0
- /package/dist/{tiki-CKQlhmQQ.js → tiki-CqcXr_YN.js} +0 -0
- /package/dist/{timer-CcUhugb0.js → timer-ly0jlpkr.js} +0 -0
- /package/dist/{toml-BqNUJWRI.js → toml-YgDIoI1n.js} +0 -0
- /package/dist/{treemap-BYLUKIzA.js → treemap-D5sUCpbF.js} +0 -0
- /package/dist/{troff-DkK0f2ZH.js → troff-CIp_4RXg.js} +0 -0
- /package/dist/{ttcn-Bf8vrg-_.js → ttcn-Yn_uOBYK.js} +0 -0
- /package/dist/{ttcn-cfg-DjCKzd95.js → ttcn-cfg-BVum2rmM.js} +0 -0
- /package/dist/{turtle-SSc84S9m.js → turtle-BeWx-YoQ.js} +0 -0
- /package/dist/{vb-CQ6DC3cL.js → vb-DKEmSA_2.js} +0 -0
- /package/dist/{vbscript-Dw0gFssg.js → vbscript-BPsxuP0n.js} +0 -0
- /package/dist/{velocity-BvJQyBmj.js → velocity-ycm1NvlO.js} +0 -0
- /package/dist/{verilog-CKGAvQjj.js → verilog-ogjm0Ytr.js} +0 -0
- /package/dist/{vhdl-B40_x6fM.js → vhdl-BvjyOM9y.js} +0 -0
- /package/dist/{webidl-Bi9hczCv.js → webidl-QdwcTYEu.js} +0 -0
- /package/dist/{xquery-DwWUXvP3.js → xquery-BErHIIc-.js} +0 -0
- /package/dist/{yacas-ClUs0mmH.js → yacas-BBBJNs0h.js} +0 -0
- /package/dist/{z80-DPC4UGzR.js → z80-nG9RRukG.js} +0 -0
- /package/dist/{zod-mAEs2ITo.js → zod-0AbTN3Cg.js} +0 -0
|
@@ -2,20 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { mint, orange, slate } from "@radix-ui/colors";
|
|
4
4
|
import type { TopLevelSpec } from "vega-lite";
|
|
5
|
-
import type { StringFieldDef } from "vega-lite/
|
|
6
|
-
// @ts-expect-error vega-typings does not include formats
|
|
7
|
-
import { formats } from "vega-loader";
|
|
8
|
-
import { asRemoteURL } from "@/core/runtime/config";
|
|
5
|
+
import type { StringFieldDef } from "vega-lite/types_unstable/channeldef.js";
|
|
9
6
|
import type { TopLevelFacetedUnitSpec } from "@/plugins/impl/data-explorer/queries/types";
|
|
10
|
-
import { arrow } from "@/plugins/impl/vega/formats";
|
|
11
|
-
import { parseCsvData } from "@/plugins/impl/vega/loader";
|
|
12
7
|
import { logNever } from "@/utils/assertNever";
|
|
13
|
-
import {
|
|
14
|
-
byteStringToBinary,
|
|
15
|
-
extractBase64FromDataURL,
|
|
16
|
-
isDataURLString,
|
|
17
|
-
typedAtob,
|
|
18
|
-
} from "@/utils/json/base64";
|
|
19
8
|
import type {
|
|
20
9
|
BinValues,
|
|
21
10
|
ColumnHeaderStats,
|
|
@@ -24,9 +13,11 @@ import type {
|
|
|
24
13
|
ValueCounts,
|
|
25
14
|
} from "../types";
|
|
26
15
|
import {
|
|
16
|
+
getDataSpecAndSourceName,
|
|
27
17
|
getLegacyBooleanSpec,
|
|
28
18
|
getLegacyNumericSpec,
|
|
29
19
|
getLegacyTemporalSpec,
|
|
20
|
+
getScale,
|
|
30
21
|
} from "./legacy-chart-spec";
|
|
31
22
|
import { calculateBinStep, getPartialTimeTooltip } from "./utils";
|
|
32
23
|
|
|
@@ -34,15 +25,13 @@ import { calculateBinStep, getPartialTimeTooltip } from "./utils";
|
|
|
34
25
|
const MAX_BAR_HEIGHT = 20; // px
|
|
35
26
|
|
|
36
27
|
// If we are concatenating charts, we need to specify each chart's height and width.
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
// Arrow formats have a magic number at the beginning of the file.
|
|
42
|
-
const ARROW_MAGIC_NUMBER = "ARROW1";
|
|
28
|
+
const CONCAT_CHART_HEIGHT = 30;
|
|
29
|
+
const CONCAT_CHART_WIDTH = 70;
|
|
30
|
+
const CONCAT_NULL_BAR_WIDTH = 5;
|
|
43
31
|
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
const BAR_COLOR = mint.mint11;
|
|
33
|
+
const UNHOVERED_BAR_OPACITY = 0.6;
|
|
34
|
+
const NULL_BAR_COLOR = orange.orange11;
|
|
46
35
|
|
|
47
36
|
export class ColumnChartSpecModel<T> {
|
|
48
37
|
private columnStats = new Map<ColumnName, Partial<ColumnHeaderStats>>();
|
|
@@ -57,21 +46,21 @@ export class ColumnChartSpecModel<T> {
|
|
|
57
46
|
{},
|
|
58
47
|
{
|
|
59
48
|
includeCharts: false,
|
|
60
|
-
usePreComputedValues: false,
|
|
61
49
|
},
|
|
62
50
|
);
|
|
63
51
|
|
|
64
52
|
private dataSpec: TopLevelSpec["data"];
|
|
65
|
-
private sourceName: "data_0" | "source_0";
|
|
66
53
|
|
|
67
|
-
|
|
54
|
+
// Legacy data spec for fallback
|
|
55
|
+
private legacyDataSpec: TopLevelSpec["data"];
|
|
56
|
+
private legacySourceName: "data_0" | "source_0";
|
|
57
|
+
|
|
68
58
|
private readonly fieldTypes: FieldTypes;
|
|
69
59
|
readonly stats: Record<ColumnName, Partial<ColumnHeaderStats>>;
|
|
70
60
|
readonly binValues: Record<ColumnName, BinValues>;
|
|
71
61
|
readonly valueCounts: Record<ColumnName, ValueCounts>;
|
|
72
62
|
private readonly opts: {
|
|
73
63
|
includeCharts: boolean;
|
|
74
|
-
usePreComputedValues?: boolean;
|
|
75
64
|
};
|
|
76
65
|
|
|
77
66
|
constructor(
|
|
@@ -82,56 +71,22 @@ export class ColumnChartSpecModel<T> {
|
|
|
82
71
|
valueCounts: Record<ColumnName, ValueCounts>,
|
|
83
72
|
opts: {
|
|
84
73
|
includeCharts: boolean;
|
|
85
|
-
usePreComputedValues?: boolean;
|
|
86
74
|
},
|
|
87
75
|
) {
|
|
88
|
-
this.data = data;
|
|
89
76
|
this.fieldTypes = fieldTypes;
|
|
90
77
|
this.stats = stats;
|
|
91
78
|
this.binValues = binValues;
|
|
92
79
|
this.valueCounts = valueCounts;
|
|
93
80
|
this.opts = opts;
|
|
94
81
|
|
|
95
|
-
// Data may come in from a few different sources:
|
|
96
|
-
// - A URL
|
|
97
|
-
// - A CSV data URI (e.g. "data:text/csv;base64,...")
|
|
98
|
-
// - A CSV string (e.g. "a,b,c\n1,2,3\n4,5,6")
|
|
99
|
-
// - An array of objects
|
|
100
|
-
// For each case, we need to set up the data spec and source name appropriately.
|
|
101
|
-
// If its a file, the source name will be "source_0", otherwise it will be "data_0".
|
|
102
|
-
// We have a few snapshot tests to ensure that the spec is correct for each case.
|
|
103
|
-
if (typeof this.data === "string") {
|
|
104
|
-
if (this.data.startsWith("./@file") || this.data.startsWith("/@file")) {
|
|
105
|
-
this.dataSpec = { url: asRemoteURL(this.data).href };
|
|
106
|
-
this.sourceName = "source_0";
|
|
107
|
-
} else if (isDataURLString(this.data)) {
|
|
108
|
-
this.sourceName = "data_0";
|
|
109
|
-
const base64 = extractBase64FromDataURL(this.data);
|
|
110
|
-
const decoded = typedAtob(base64);
|
|
111
|
-
|
|
112
|
-
if (decoded.startsWith(ARROW_MAGIC_NUMBER)) {
|
|
113
|
-
// @ts-expect-error vega-typings does not include arrow format
|
|
114
|
-
this.dataSpec = {
|
|
115
|
-
values: byteStringToBinary(decoded),
|
|
116
|
-
format: { type: "arrow" },
|
|
117
|
-
};
|
|
118
|
-
} else {
|
|
119
|
-
// Assume it's a CSV string
|
|
120
|
-
this.parseCsv(decoded);
|
|
121
|
-
}
|
|
122
|
-
} else {
|
|
123
|
-
// Assume it's a CSV string
|
|
124
|
-
this.parseCsv(this.data);
|
|
125
|
-
this.sourceName = "data_0";
|
|
126
|
-
}
|
|
127
|
-
} else {
|
|
128
|
-
this.dataSpec = { values: this.data };
|
|
129
|
-
this.sourceName = "source_0";
|
|
130
|
-
}
|
|
131
|
-
|
|
132
82
|
this.columnBinValues = new Map(Object.entries(binValues));
|
|
133
83
|
this.columnValueCounts = new Map(Object.entries(valueCounts));
|
|
134
84
|
this.columnStats = new Map(Object.entries(stats));
|
|
85
|
+
|
|
86
|
+
const { dataSpec, sourceName } = getDataSpecAndSourceName(data);
|
|
87
|
+
this.dataSpec = dataSpec;
|
|
88
|
+
this.legacyDataSpec = dataSpec;
|
|
89
|
+
this.legacySourceName = sourceName;
|
|
135
90
|
}
|
|
136
91
|
|
|
137
92
|
public getColumnStats(column: string) {
|
|
@@ -146,42 +101,8 @@ export class ColumnChartSpecModel<T> {
|
|
|
146
101
|
};
|
|
147
102
|
}
|
|
148
103
|
|
|
149
|
-
private
|
|
150
|
-
|
|
151
|
-
values: parseCsvData(data) as T[],
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
private getVegaSpec(column: string): TopLevelFacetedUnitSpec | null {
|
|
156
|
-
if (!this.data) {
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const usePreComputedValues = this.opts.usePreComputedValues;
|
|
161
|
-
const binValues = this.columnBinValues.get(column);
|
|
162
|
-
const valueCounts = this.columnValueCounts.get(column);
|
|
163
|
-
const hasValueCounts = valueCounts && valueCounts.length > 0;
|
|
164
|
-
|
|
165
|
-
let data = this.dataSpec as TopLevelFacetedUnitSpec["data"];
|
|
166
|
-
const stats = this.columnStats.get(column);
|
|
167
|
-
|
|
168
|
-
if (usePreComputedValues) {
|
|
169
|
-
if (hasValueCounts) {
|
|
170
|
-
data = { values: valueCounts, name: "value_counts" };
|
|
171
|
-
} else {
|
|
172
|
-
// Bin values can be empty if all values are nulls
|
|
173
|
-
if (stats?.nulls) {
|
|
174
|
-
binValues?.push({
|
|
175
|
-
bin_start: null,
|
|
176
|
-
bin_end: null,
|
|
177
|
-
count: stats.nulls as number,
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
data = { values: binValues, name: "bin_values" };
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const base: TopLevelFacetedUnitSpec = {
|
|
104
|
+
private createBase(data: TopLevelSpec["data"]): TopLevelFacetedUnitSpec {
|
|
105
|
+
return {
|
|
185
106
|
background: "transparent",
|
|
186
107
|
data,
|
|
187
108
|
config: {
|
|
@@ -194,7 +115,31 @@ export class ColumnChartSpecModel<T> {
|
|
|
194
115
|
},
|
|
195
116
|
height: 100,
|
|
196
117
|
} as TopLevelFacetedUnitSpec;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
private getVegaSpec(column: string): TopLevelFacetedUnitSpec | null {
|
|
121
|
+
const binValues = this.columnBinValues.get(column);
|
|
122
|
+
const valueCounts = this.columnValueCounts.get(column);
|
|
123
|
+
const hasValueCounts = valueCounts && valueCounts.length > 0;
|
|
124
|
+
|
|
125
|
+
let data = this.dataSpec as TopLevelFacetedUnitSpec["data"];
|
|
126
|
+
const stats = this.columnStats.get(column);
|
|
197
127
|
|
|
128
|
+
if (hasValueCounts) {
|
|
129
|
+
data = { values: valueCounts, name: "value_counts" };
|
|
130
|
+
} else {
|
|
131
|
+
// Bin values can be empty if all values are nulls
|
|
132
|
+
if (stats?.nulls) {
|
|
133
|
+
binValues?.push({
|
|
134
|
+
bin_start: null,
|
|
135
|
+
bin_end: null,
|
|
136
|
+
count: stats.nulls as number,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
data = { values: binValues, name: "bin_values" };
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const base = this.createBase(data);
|
|
198
143
|
const type = this.fieldTypes[column];
|
|
199
144
|
|
|
200
145
|
// https://github.com/vega/altair/blob/32990a597af7c09586904f40b3f5e6787f752fa5/doc/user_guide/encodings/index.rst#escaping-special-characters-in-column-names
|
|
@@ -205,18 +150,16 @@ export class ColumnChartSpecModel<T> {
|
|
|
205
150
|
// escape colons in column names
|
|
206
151
|
column = column.replaceAll(":", "\\:");
|
|
207
152
|
|
|
208
|
-
const scale = this.getScale();
|
|
209
|
-
|
|
210
153
|
switch (type) {
|
|
211
154
|
case "date":
|
|
212
155
|
case "datetime":
|
|
213
156
|
case "time": {
|
|
214
|
-
if (!
|
|
215
|
-
|
|
157
|
+
if (!binValues) {
|
|
158
|
+
const legacyBase = this.createBase(this.legacyDataSpec);
|
|
159
|
+
const scale = getScale(this.legacySourceName);
|
|
160
|
+
return getLegacyTemporalSpec(column, type, legacyBase, scale);
|
|
216
161
|
}
|
|
217
162
|
|
|
218
|
-
const binStep = calculateBinStep(binValues || []);
|
|
219
|
-
|
|
220
163
|
const tooltip = getPartialTimeTooltip(binValues || []);
|
|
221
164
|
const singleValue = binValues?.length === 1;
|
|
222
165
|
|
|
@@ -224,7 +167,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
224
167
|
if (singleValue) {
|
|
225
168
|
return {
|
|
226
169
|
...base,
|
|
227
|
-
mark: { type: "bar", color:
|
|
170
|
+
mark: { type: "bar", color: BAR_COLOR },
|
|
228
171
|
encoding: {
|
|
229
172
|
x: {
|
|
230
173
|
field: "bin_start",
|
|
@@ -255,16 +198,12 @@ export class ColumnChartSpecModel<T> {
|
|
|
255
198
|
}
|
|
256
199
|
|
|
257
200
|
const histogram: TopLevelFacetedUnitSpec = {
|
|
258
|
-
height: CHART_HEIGHT,
|
|
259
|
-
width: CHART_WIDTH,
|
|
260
201
|
// @ts-expect-error 'layer' property not in TopLevelFacetedUnitSpec
|
|
261
202
|
layer: [
|
|
262
203
|
{
|
|
263
204
|
mark: {
|
|
264
205
|
type: "bar",
|
|
265
|
-
color:
|
|
266
|
-
stroke: mint.mint11,
|
|
267
|
-
strokeWidth: 0,
|
|
206
|
+
color: BAR_COLOR,
|
|
268
207
|
},
|
|
269
208
|
params: [
|
|
270
209
|
{
|
|
@@ -279,13 +218,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
279
218
|
encoding: {
|
|
280
219
|
x: {
|
|
281
220
|
field: "bin_start",
|
|
282
|
-
type: "
|
|
283
|
-
bin: { binned: true, step: binStep },
|
|
284
|
-
axis: null,
|
|
285
|
-
},
|
|
286
|
-
x2: {
|
|
287
|
-
field: "bin_end",
|
|
288
|
-
type: "temporal",
|
|
221
|
+
type: "ordinal",
|
|
289
222
|
axis: null,
|
|
290
223
|
},
|
|
291
224
|
y: {
|
|
@@ -293,13 +226,21 @@ export class ColumnChartSpecModel<T> {
|
|
|
293
226
|
type: "quantitative",
|
|
294
227
|
axis: null,
|
|
295
228
|
},
|
|
296
|
-
|
|
229
|
+
color: {
|
|
297
230
|
condition: {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
value: 0.5,
|
|
231
|
+
test: "datum['bin_start'] === null && datum['bin_end'] === null",
|
|
232
|
+
value: NULL_BAR_COLOR,
|
|
301
233
|
},
|
|
302
|
-
value:
|
|
234
|
+
value: BAR_COLOR,
|
|
235
|
+
},
|
|
236
|
+
opacity: {
|
|
237
|
+
condition: [
|
|
238
|
+
{
|
|
239
|
+
param: "hover",
|
|
240
|
+
value: 1,
|
|
241
|
+
},
|
|
242
|
+
],
|
|
243
|
+
value: UNHOVERED_BAR_OPACITY,
|
|
303
244
|
},
|
|
304
245
|
},
|
|
305
246
|
},
|
|
@@ -309,18 +250,13 @@ export class ColumnChartSpecModel<T> {
|
|
|
309
250
|
mark: {
|
|
310
251
|
type: "bar",
|
|
311
252
|
opacity: 0,
|
|
253
|
+
// Wider bars to cover gaps between bars, prevents flickering when hovering over bars
|
|
254
|
+
width: { band: 1.2 },
|
|
312
255
|
},
|
|
313
256
|
encoding: {
|
|
314
257
|
x: {
|
|
315
258
|
field: "bin_start",
|
|
316
|
-
type: "
|
|
317
|
-
bin: { binned: true, step: binStep },
|
|
318
|
-
axis: null,
|
|
319
|
-
},
|
|
320
|
-
x2: {
|
|
321
|
-
field: "bin_end",
|
|
322
|
-
type: "temporal",
|
|
323
|
-
bin: { binned: true, step: binStep },
|
|
259
|
+
type: "ordinal",
|
|
324
260
|
axis: null,
|
|
325
261
|
},
|
|
326
262
|
y: {
|
|
@@ -353,130 +289,33 @@ export class ColumnChartSpecModel<T> {
|
|
|
353
289
|
],
|
|
354
290
|
};
|
|
355
291
|
|
|
356
|
-
const nullBar: TopLevelFacetedUnitSpec = {
|
|
357
|
-
height: CHART_HEIGHT,
|
|
358
|
-
width: NULL_BAR_WIDTH,
|
|
359
|
-
// @ts-expect-error 'layer' property not in TopLevelFacetedUnitSpec
|
|
360
|
-
layer: [
|
|
361
|
-
{
|
|
362
|
-
mark: {
|
|
363
|
-
type: "bar",
|
|
364
|
-
color: orange.orange11,
|
|
365
|
-
},
|
|
366
|
-
encoding: {
|
|
367
|
-
x: {
|
|
368
|
-
field: "bin_start",
|
|
369
|
-
type: "nominal",
|
|
370
|
-
axis: null,
|
|
371
|
-
},
|
|
372
|
-
y: {
|
|
373
|
-
field: "count",
|
|
374
|
-
type: "quantitative",
|
|
375
|
-
axis: null,
|
|
376
|
-
},
|
|
377
|
-
},
|
|
378
|
-
},
|
|
379
|
-
|
|
380
|
-
// Invisible tooltip layer with max-height
|
|
381
|
-
{
|
|
382
|
-
mark: {
|
|
383
|
-
type: "bar",
|
|
384
|
-
opacity: 0,
|
|
385
|
-
},
|
|
386
|
-
encoding: {
|
|
387
|
-
x: {
|
|
388
|
-
field: "bin_start",
|
|
389
|
-
type: "nominal",
|
|
390
|
-
axis: null,
|
|
391
|
-
},
|
|
392
|
-
y: {
|
|
393
|
-
aggregate: "max",
|
|
394
|
-
type: "quantitative",
|
|
395
|
-
axis: null,
|
|
396
|
-
},
|
|
397
|
-
tooltip: [
|
|
398
|
-
{
|
|
399
|
-
field: "count",
|
|
400
|
-
type: "quantitative",
|
|
401
|
-
title: "nulls",
|
|
402
|
-
format: ",d",
|
|
403
|
-
},
|
|
404
|
-
],
|
|
405
|
-
},
|
|
406
|
-
},
|
|
407
|
-
],
|
|
408
|
-
transform: [
|
|
409
|
-
{
|
|
410
|
-
filter:
|
|
411
|
-
"datum['bin_start'] === null && datum['bin_end'] === null",
|
|
412
|
-
},
|
|
413
|
-
],
|
|
414
|
-
};
|
|
415
|
-
|
|
416
|
-
let chart: TopLevelFacetedUnitSpec = histogram;
|
|
417
|
-
let timeBase = base;
|
|
418
|
-
|
|
419
|
-
if (stats?.nulls) {
|
|
420
|
-
timeBase = {
|
|
421
|
-
...base,
|
|
422
|
-
config: {
|
|
423
|
-
...base.config,
|
|
424
|
-
concat: {
|
|
425
|
-
spacing: 0,
|
|
426
|
-
},
|
|
427
|
-
},
|
|
428
|
-
resolve: {
|
|
429
|
-
scale: {
|
|
430
|
-
y: "shared",
|
|
431
|
-
},
|
|
432
|
-
},
|
|
433
|
-
};
|
|
434
|
-
chart = {
|
|
435
|
-
// Temporal axis will not show nulls, so we concat 2 charts
|
|
436
|
-
// @ts-expect-error 'hconcat' property not in TopLevelFacetedUnitSpec
|
|
437
|
-
hconcat: [nullBar, histogram],
|
|
438
|
-
};
|
|
439
|
-
}
|
|
440
|
-
|
|
441
292
|
return {
|
|
442
|
-
...
|
|
443
|
-
...
|
|
293
|
+
...base,
|
|
294
|
+
...histogram,
|
|
444
295
|
};
|
|
445
296
|
}
|
|
446
297
|
case "integer":
|
|
447
298
|
case "number": {
|
|
448
299
|
// Create a histogram spec that properly handles null values
|
|
449
300
|
const format = type === "integer" ? ",d" : ".2f";
|
|
450
|
-
const binStep = calculateBinStep(binValues || []);
|
|
451
301
|
|
|
452
|
-
if (!
|
|
453
|
-
|
|
302
|
+
if (!binValues) {
|
|
303
|
+
const legacyBase = this.createBase(this.legacyDataSpec);
|
|
304
|
+
return getLegacyNumericSpec(column, format, legacyBase);
|
|
454
305
|
}
|
|
455
306
|
|
|
456
|
-
const
|
|
307
|
+
const binStep = calculateBinStep(binValues || []);
|
|
457
308
|
|
|
458
309
|
const histogram: TopLevelFacetedUnitSpec = {
|
|
459
|
-
height:
|
|
460
|
-
width:
|
|
310
|
+
height: CONCAT_CHART_HEIGHT,
|
|
311
|
+
width: CONCAT_CHART_WIDTH,
|
|
461
312
|
// @ts-expect-error 'layer' property not in TopLevelFacetedUnitSpec
|
|
462
313
|
layer: [
|
|
463
314
|
{
|
|
464
315
|
mark: {
|
|
465
316
|
type: "bar",
|
|
466
|
-
color:
|
|
467
|
-
stroke: mint.mint11,
|
|
468
|
-
strokeWidth: 0,
|
|
317
|
+
color: BAR_COLOR,
|
|
469
318
|
},
|
|
470
|
-
params: [
|
|
471
|
-
{
|
|
472
|
-
name: "hover",
|
|
473
|
-
select: {
|
|
474
|
-
type: "point",
|
|
475
|
-
on: "mouseover",
|
|
476
|
-
clear: "mouseout",
|
|
477
|
-
},
|
|
478
|
-
},
|
|
479
|
-
],
|
|
480
319
|
encoding: {
|
|
481
320
|
x: {
|
|
482
321
|
field: "bin_start",
|
|
@@ -492,13 +331,14 @@ export class ColumnChartSpecModel<T> {
|
|
|
492
331
|
type: "quantitative",
|
|
493
332
|
axis: null,
|
|
494
333
|
},
|
|
495
|
-
|
|
496
|
-
condition:
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
334
|
+
opacity: {
|
|
335
|
+
condition: [
|
|
336
|
+
{
|
|
337
|
+
param: "hover",
|
|
338
|
+
value: 1,
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
value: UNHOVERED_BAR_OPACITY,
|
|
502
342
|
},
|
|
503
343
|
},
|
|
504
344
|
},
|
|
@@ -509,6 +349,17 @@ export class ColumnChartSpecModel<T> {
|
|
|
509
349
|
type: "bar",
|
|
510
350
|
opacity: 0,
|
|
511
351
|
},
|
|
352
|
+
params: [
|
|
353
|
+
{
|
|
354
|
+
name: "hover",
|
|
355
|
+
select: {
|
|
356
|
+
type: "point",
|
|
357
|
+
on: "mouseover",
|
|
358
|
+
clear: "mouseout",
|
|
359
|
+
nearest: true, // Nearest avoids flickering when hovering over bars, but it's not perfect
|
|
360
|
+
},
|
|
361
|
+
},
|
|
362
|
+
],
|
|
512
363
|
encoding: {
|
|
513
364
|
x: {
|
|
514
365
|
field: "bin_start",
|
|
@@ -564,14 +415,14 @@ export class ColumnChartSpecModel<T> {
|
|
|
564
415
|
};
|
|
565
416
|
|
|
566
417
|
const nullBar: TopLevelFacetedUnitSpec = {
|
|
567
|
-
height:
|
|
568
|
-
width:
|
|
418
|
+
height: CONCAT_CHART_HEIGHT,
|
|
419
|
+
width: CONCAT_NULL_BAR_WIDTH,
|
|
569
420
|
// @ts-expect-error 'layer' property not in TopLevelFacetedUnitSpec
|
|
570
421
|
layer: [
|
|
571
422
|
{
|
|
572
423
|
mark: {
|
|
573
424
|
type: "bar",
|
|
574
|
-
color:
|
|
425
|
+
color: NULL_BAR_COLOR,
|
|
575
426
|
},
|
|
576
427
|
encoding: {
|
|
577
428
|
x: {
|
|
@@ -652,7 +503,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
652
503
|
};
|
|
653
504
|
}
|
|
654
505
|
case "boolean": {
|
|
655
|
-
if (!
|
|
506
|
+
if (!stats?.true || !stats?.false) {
|
|
656
507
|
return getLegacyBooleanSpec(column, base, MAX_BAR_HEIGHT);
|
|
657
508
|
}
|
|
658
509
|
|
|
@@ -699,7 +550,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
699
550
|
},
|
|
700
551
|
mark: {
|
|
701
552
|
type: "bar",
|
|
702
|
-
color:
|
|
553
|
+
color: BAR_COLOR,
|
|
703
554
|
},
|
|
704
555
|
encoding: {
|
|
705
556
|
y: {
|
|
@@ -726,7 +577,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
726
577
|
type: "nominal",
|
|
727
578
|
scale: {
|
|
728
579
|
domain: ["true", "false", "null"],
|
|
729
|
-
range: [
|
|
580
|
+
range: [BAR_COLOR, BAR_COLOR, NULL_BAR_COLOR],
|
|
730
581
|
},
|
|
731
582
|
legend: null,
|
|
732
583
|
},
|
|
@@ -740,7 +591,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
740
591
|
{
|
|
741
592
|
mark: {
|
|
742
593
|
type: "bar",
|
|
743
|
-
color:
|
|
594
|
+
color: BAR_COLOR,
|
|
744
595
|
height: BAR_HEIGHT,
|
|
745
596
|
},
|
|
746
597
|
},
|
|
@@ -764,7 +615,7 @@ export class ColumnChartSpecModel<T> {
|
|
|
764
615
|
} as TopLevelFacetedUnitSpec; // "layer" not in TopLevelFacetedUnitSpec
|
|
765
616
|
}
|
|
766
617
|
case "string": {
|
|
767
|
-
if (!
|
|
618
|
+
if (!hasValueCounts) {
|
|
768
619
|
return null;
|
|
769
620
|
}
|
|
770
621
|
|
|
@@ -840,18 +691,20 @@ export class ColumnChartSpecModel<T> {
|
|
|
840
691
|
type: "quantitative",
|
|
841
692
|
},
|
|
842
693
|
color: {
|
|
694
|
+
condition: {
|
|
695
|
+
test: `datum.${yField} == "None" || datum.${yField} == "null"`,
|
|
696
|
+
value: NULL_BAR_COLOR,
|
|
697
|
+
},
|
|
698
|
+
value: BAR_COLOR,
|
|
699
|
+
},
|
|
700
|
+
opacity: {
|
|
843
701
|
condition: [
|
|
844
702
|
{
|
|
845
703
|
param: "hover_bar",
|
|
846
|
-
value:
|
|
847
|
-
},
|
|
848
|
-
{
|
|
849
|
-
test: `datum.${yField} == "None" || datum.${yField} == "null"`,
|
|
850
|
-
value: orange.orange11,
|
|
704
|
+
value: 1,
|
|
851
705
|
},
|
|
852
706
|
],
|
|
853
|
-
value:
|
|
854
|
-
legend: null,
|
|
707
|
+
value: UNHOVERED_BAR_OPACITY,
|
|
855
708
|
},
|
|
856
709
|
tooltip: [
|
|
857
710
|
{
|
|
@@ -920,14 +773,4 @@ export class ColumnChartSpecModel<T> {
|
|
|
920
773
|
return null;
|
|
921
774
|
}
|
|
922
775
|
}
|
|
923
|
-
|
|
924
|
-
private getScale() {
|
|
925
|
-
return {
|
|
926
|
-
align: 0,
|
|
927
|
-
paddingInner: 0,
|
|
928
|
-
paddingOuter: {
|
|
929
|
-
expr: `length(data('${this.sourceName}')) == 2 ? 1 : length(data('${this.sourceName}')) == 3 ? 0.5 : length(data('${this.sourceName}')) == 4 ? 0 : 0`,
|
|
930
|
-
},
|
|
931
|
-
};
|
|
932
|
-
}
|
|
933
776
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* Copyright 2024 Marimo. All rights reserved. */
|
|
2
2
|
import React, { Suspense } from "react";
|
|
3
3
|
import { useLocale } from "react-aria";
|
|
4
|
+
import { LazyVegaEmbed } from "@/components/charts/lazy";
|
|
4
5
|
import { createBatchedLoader } from "@/plugins/impl/vega/batched";
|
|
5
6
|
import { useTheme } from "@/theme/useTheme";
|
|
6
7
|
import { logNever } from "@/utils/assertNever";
|
|
@@ -19,10 +20,6 @@ interface Props<TData, TValue> {
|
|
|
19
20
|
columnId: string;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
const LazyVegaLite = React.lazy(() =>
|
|
23
|
-
import("react-vega").then((m) => ({ default: m.VegaLite })),
|
|
24
|
-
);
|
|
25
|
-
|
|
26
23
|
// We batch multiple calls to the same URL returning the same promise
|
|
27
24
|
// for all calls with the same key.
|
|
28
25
|
const batchedLoader = createBatchedLoader();
|
|
@@ -46,16 +43,19 @@ export const TableColumnSummary = <TData, TValue>({
|
|
|
46
43
|
fallback={skeleton}
|
|
47
44
|
>
|
|
48
45
|
<Suspense fallback={skeleton}>
|
|
49
|
-
<
|
|
46
|
+
<LazyVegaEmbed
|
|
50
47
|
spec={spec}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
options={{
|
|
49
|
+
width: 80,
|
|
50
|
+
height: 30,
|
|
51
|
+
renderer: "svg",
|
|
52
|
+
actions: false,
|
|
53
|
+
theme: theme === "dark" ? "dark" : "vox",
|
|
54
|
+
// @ts-expect-error - Our `loader.load` method is broader than VegaLite's typings but is functionally supported.
|
|
55
|
+
loader: batchedLoader,
|
|
56
|
+
mode: "vega-lite",
|
|
57
|
+
}}
|
|
56
58
|
style={{ minWidth: "unset", maxHeight: "40px" }}
|
|
57
|
-
actions={false}
|
|
58
|
-
theme={theme === "dark" ? "dark" : "vox"}
|
|
59
59
|
/>
|
|
60
60
|
</Suspense>
|
|
61
61
|
</DelayMount>
|