@marimo-team/frontend 0.21.2-dev8 → 0.21.2-dev80
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/assets/CellStatus-Z02WbA1T.js +1 -0
- package/dist/assets/ConnectedDataExplorerComponent-BUeDbkXy.js +1 -0
- package/dist/assets/DeferredRequestRegistry-D1ivqOZL.js +1 -0
- package/dist/assets/FiraMono-Bold-C6PDArdf.woff2 +0 -0
- package/dist/assets/FiraMono-Medium-D5MAsWEG.woff2 +0 -0
- package/dist/assets/FiraMono-Regular-CEsLFVD9.woff2 +0 -0
- package/dist/assets/ImperativeModal-DyRrGcKH.js +1 -0
- package/dist/assets/JsonOutput-B_6OsFJA.js +49 -0
- package/dist/assets/LazyAnyLanguageCodeMirror-BTEcIffn.js +2 -0
- package/dist/assets/Lora-VariableFont_wght-CZceb_kH.woff2 +0 -0
- package/dist/assets/MarimoErrorOutput-DdkdcLO-.js +7 -0
- package/dist/assets/PTSans-Bold-C_DwAp7Z.woff2 +0 -0
- package/dist/assets/PTSans-Regular-Bam3NpBI.woff2 +0 -0
- package/dist/assets/RenderHTML-D45p-tLD.js +1 -0
- package/dist/assets/SelectionIndicator-D_CR8qDb.js +1 -0
- package/dist/assets/VisuallyHidden-ClKJEaNK.js +1 -0
- package/dist/assets/add-cell-with-ai-C75dyXgo.js +92 -0
- package/dist/assets/add-connection-dialog-DYxOBpNi.js +167 -0
- package/dist/assets/agent-panel-m4AKS7Ut.js +287 -0
- package/dist/assets/ai-model-dropdown-Cl-qIUat.js +5 -0
- package/dist/assets/alert-dialog-BfHy00ko.js +11 -0
- package/dist/assets/any-language-editor-DVOJvjS_.js +1 -0
- package/dist/assets/apl-EWXxdJ89.js +1 -0
- package/dist/assets/app-config-button-I77XP0Ly.js +1 -0
- package/dist/assets/arc-CM3JIGAK.js +1 -0
- package/dist/assets/architecture-7HQA4BMR-CjBWfzkw.js +1 -0
- package/dist/assets/architectureDiagram-VXUJARFQ-Bj7Il1tu.js +36 -0
- package/dist/assets/asciiarmor-DSR32lM3.js +1 -0
- package/dist/assets/asn1-CzLTElTA.js +1 -0
- package/dist/assets/azure-BMhMRXAG.js +1 -0
- package/dist/assets/blockDiagram-VD42YOAC-oQ23Vi0_.js +122 -0
- package/dist/assets/brainfuck-C9KAsPxY.js +1 -0
- package/dist/assets/c4Diagram-YG6GDRKO-BmG_s0MV.js +10 -0
- package/dist/assets/cache-panel-CcvLLOUr.js +1 -0
- package/dist/assets/cell-editor-DtVIjrkw.js +22 -0
- package/dist/assets/cell-link-Bdbjts-L.js +1 -0
- package/dist/assets/cells-Ir3O9-uE.js +230 -0
- package/dist/assets/channel-Ce6sVGv4.js +1 -0
- package/dist/assets/chat-display-TEJB6Bj2.js +1 -0
- package/dist/assets/chat-panel-CEqzWKcu.js +3 -0
- package/dist/assets/chat-ui-B2Je9YxV.js +4 -0
- package/dist/assets/chunk-4BX2VUAB-B189RnQe.js +1 -0
- package/dist/assets/chunk-55IACEB6-BKJUfbeh.js +1 -0
- package/dist/assets/chunk-5FQGJX7Z-KaqPPQRg.js +113 -0
- package/dist/assets/chunk-ABZYJK2D-B25ZPF-K.js +80 -0
- package/dist/assets/chunk-ATLVNIR6-B45gjfoT.js +1 -0
- package/dist/assets/chunk-B4BG7PRW-uViI8VWN.js +165 -0
- package/dist/assets/chunk-CVBHYZKI-DDPYtx7T.js +1 -0
- package/dist/assets/chunk-DI55MBZ5-DLM1fyq0.js +220 -0
- package/dist/assets/chunk-EXTU4WIE-se83eFLa.js +1 -0
- package/dist/assets/chunk-FMBD7UC4-DVUAz4cp.js +15 -0
- package/dist/assets/chunk-HN2XXSSU-Bm9ByQAV.js +1 -0
- package/dist/assets/chunk-JA3XYJ7Z-Bf9EPUd3.js +70 -0
- package/dist/assets/chunk-JZLCHNYA-CgH-oTl4.js +54 -0
- package/dist/assets/chunk-MI3HLSF2-BjSxv-Tb.js +32 -0
- package/dist/assets/chunk-N4CR4FBY-DggtmLIl.js +2 -0
- package/dist/assets/chunk-QN33PNHL-BieKJXyS.js +1 -0
- package/dist/assets/chunk-QXUST7PY-8icnqUGK.js +7 -0
- package/dist/assets/chunk-QZHKN3VN-CETeUy72.js +1 -0
- package/dist/assets/chunk-S3R3BYOJ-Czh1h7v6.js +2 -0
- package/dist/assets/chunk-TZMSLE5B-jYelYMXU.js +1 -0
- package/dist/assets/classDiagram-2ON5EDUG-hMIK1Zdj.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-CoXOcl4J.js +1 -0
- package/dist/assets/clike-OJZcTpQL.js +1 -0
- package/dist/assets/clojure-DQhuUUMF.js +1 -0
- package/dist/assets/cmake-CH_Sxc86.js +1 -0
- package/dist/assets/cobol-CUc3YqiS.js +1 -0
- package/dist/assets/code-block-37QAKDTI-OmWrUFvA.js +2 -0
- package/dist/assets/coffeescript-jkPo-KDH.js +1 -0
- package/dist/assets/column-preview-CKGwj-13.js +1 -0
- package/dist/assets/command-DccONw-I.js +1 -0
- package/dist/assets/command-palette-GUlU_ueE.js +1 -0
- package/dist/assets/common-CMtjYJGh.js +1 -0
- package/dist/assets/commonlisp-Da0K5kk2.js +1 -0
- package/dist/assets/components-C5OBEN0S.js +1 -0
- package/dist/assets/components-CI_j--E2.js +1 -0
- package/dist/assets/config-DRN1Q5Ol.js +1 -0
- package/dist/assets/context-BPhh8SWw.js +1 -0
- package/dist/assets/context-aware-panel-5JBNhrcL.js +3 -0
- package/dist/assets/copy-CIPmwSuj.js +1 -0
- package/dist/assets/copy-icon-BNQYrUYC.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-Bi0_d7cB.js +1 -0
- package/dist/assets/createReducer-Dvh64vBW.js +1 -0
- package/dist/assets/crystal-BNWfY9C_.js +1 -0
- package/dist/assets/css-Cupd7xng.js +1 -0
- package/dist/assets/cypher--c26tz0e.js +1 -0
- package/dist/assets/d-Byku2dmh.js +1 -0
- package/dist/assets/dagre-6UL2VRFP-Cj7QD8QV.js +4 -0
- package/dist/assets/data-grid-overlay-editor-CrDdi6s3.js +1 -0
- package/dist/assets/datasource-45Ftm7IO.js +3 -0
- package/dist/assets/dates-Bh1ltXGt.js +1 -0
- package/dist/assets/dependency-graph-panel-BzrngGy-.js +5 -0
- package/dist/assets/diagram-PSM6KHXK-f8hiJ27Z.js +24 -0
- package/dist/assets/diagram-QEK2KX5R-DhD0I0gb.js +43 -0
- package/dist/assets/diagram-S2PKOQOG-CMxSsKXF.js +24 -0
- package/dist/assets/dialog-Dr3dl0Mn.js +1 -0
- package/dist/assets/diff-a9CLcKdR.js +1 -0
- package/dist/assets/dist-030LgPdB.js +1 -0
- package/dist/assets/dist-1ZGGzJka.js +6 -0
- package/dist/assets/dist-BBGASQNR.js +1 -0
- package/dist/assets/dist-BKkfH6MG.js +1 -0
- package/dist/assets/dist-BRCCPMsT.js +1 -0
- package/dist/assets/dist-BZJrw9vI.js +1 -0
- package/dist/assets/dist-BrZ_53nc.js +1 -0
- package/dist/assets/dist-C8Dcw0WD.js +1 -0
- package/dist/assets/dist-C9G2F7Z1.js +1 -0
- package/dist/assets/dist-CFY2_7zu.js +1 -0
- package/dist/assets/dist-CGECLNMY.js +1 -0
- package/dist/assets/dist-CJ8RtgvK.js +1 -0
- package/dist/assets/dist-CKgHI4pK.js +1 -0
- package/dist/assets/dist-COABhHhr.js +1 -0
- package/dist/assets/dist-CRmIdrta.js +1 -0
- package/dist/assets/dist-Cp7t_Bws.js +1 -0
- package/dist/assets/dist-CueE_NHP.js +1 -0
- package/dist/assets/dist-CwjzLMbM.js +1 -0
- package/dist/assets/dist-DA4gn7fy.js +1 -0
- package/dist/assets/dist-DBBqNJ3C.js +1 -0
- package/dist/assets/dist-DROvTz9O.js +1 -0
- package/dist/assets/dist-DWBTB8aa.js +1 -0
- package/dist/assets/dist-DeX768Hg.js +1 -0
- package/dist/assets/dist-DrDZNjDr.js +1 -0
- package/dist/assets/dist-Hf_DuPpM.js +7 -0
- package/dist/assets/dist-JipYR0-e.js +1 -0
- package/dist/assets/dist-LxLdJkvD.js +1 -0
- package/dist/assets/dist-VjWmUZA0.js +1 -0
- package/dist/assets/dist-X-byYzEZ.js +1 -0
- package/dist/assets/dist-Xnna0a3m.js +1 -0
- package/dist/assets/dist-y02bFELW.js +1 -0
- package/dist/assets/dockerfile-Cgz0GlPW.js +1 -0
- package/dist/assets/documentation-panel-Dk7WIBXq.js +1 -0
- package/dist/assets/download-C2P9kUtq.js +9 -0
- package/dist/assets/dropdown-menu-CA9akLlF.js +1 -0
- package/dist/assets/dtd-CmqpGLbC.js +1 -0
- package/dist/assets/dylan-Cihtx9iT.js +1 -0
- package/dist/assets/ecl-CZoQOU3U.js +1 -0
- package/dist/assets/edit-page-DM9TLp3a.js +13 -0
- package/dist/assets/eiffel-Br4OQEbu.js +1 -0
- package/dist/assets/elm-BPOnYPcO.js +1 -0
- package/dist/assets/en-US-Ddw-8dRD.js +1 -0
- package/dist/assets/erDiagram-Q2GNP2WA-BZbca8vs.js +60 -0
- package/dist/assets/erlang-DuwMV84m.js +1 -0
- package/dist/assets/error-banner-D6woGaqN.js +1 -0
- package/dist/assets/error-panel-BPQJzaxq.js +1 -0
- package/dist/assets/es-BJ4lyGGc.js +5 -0
- package/dist/assets/esm-BMWduMhT.js +1 -0
- package/dist/assets/esm-BjKAkBIt.js +1 -0
- package/dist/assets/events-GxnDgt0p.js +1 -0
- package/dist/assets/factor-6YAhArFy.js +1 -0
- package/dist/assets/factor-ByjtQqb6.js +1 -0
- package/dist/assets/field-BEG4O-GE.js +1 -0
- package/dist/assets/file-explorer-panel-D1CcjPTn.js +26 -0
- package/dist/assets/file-icons-B3ygedtV.js +1 -0
- package/dist/assets/fileToBase64-RxOnBG54.js +1 -0
- package/dist/assets/floating-outline-CdIFyGKb.js +1 -0
- package/dist/assets/flowDiagram-NV44I4VS-ffFKaqut.js +162 -0
- package/dist/assets/focus-DXqWRa5J.js +1 -0
- package/dist/assets/form-DIlikbTP.js +2 -0
- package/dist/assets/formats-DodKD-bh.js +1 -0
- package/dist/assets/formatting-8sgDjIAp.js +1 -0
- package/dist/assets/forth-2Nj_EUdH.js +1 -0
- package/dist/assets/fortran-CCKPCngf.js +1 -0
- package/dist/assets/gallery-page-C-cbnxxr.js +1 -0
- package/dist/assets/ganttDiagram-JELNMOA3-fI3e8q9G.js +267 -0
- package/dist/assets/gas-DQfJyQA6.js +1 -0
- package/dist/assets/gherkin-CtG4Rl1f.js +1 -0
- package/dist/assets/gitGraph-G5XIXVHT-Dr_vttV5.js +1 -0
- package/dist/assets/gitGraphDiagram-V2S2FVAM-B9zkU5OL.js +65 -0
- package/dist/assets/glide-data-editor-BUABnEhp.js +132 -0
- package/dist/assets/globals-DuAfXgSM.js +1 -0
- package/dist/assets/groovy-DmN1hhD-.js +1 -0
- package/dist/assets/haskell-Bv99dcka.js +1 -0
- package/dist/assets/haxe-C4SwAtv2.js +1 -0
- package/dist/assets/home-page-CGDApVqX.js +4 -0
- package/dist/assets/hooks-m-Uf6FNW.js +1 -0
- package/dist/assets/html-to-image-B1AmbwBb.js +2 -0
- package/dist/assets/idl-Cip3qUaw.js +1 -0
- package/dist/assets/index-BFrVG1np.js +35 -0
- package/dist/assets/index-UqHb3j3u.css +2 -0
- package/dist/assets/info-VBDWY6EO-_MKnIvva.js +1 -0
- package/dist/assets/infoDiagram-HS3SLOUP-DcmWVuHy.js +2 -0
- package/dist/assets/input-6cciao_l.js +1 -0
- package/dist/assets/isValid-Bp40niVP.js +1 -0
- package/dist/assets/javascript-D01OZFLf.js +1 -0
- package/dist/assets/journeyDiagram-XKPGCS4Q-Bi3SDkGt.js +139 -0
- package/dist/assets/julia-CdUg5Gin.js +1 -0
- package/dist/assets/kanban-definition-3W4ZIXB7-DHPI88SO.js +89 -0
- package/dist/assets/katex-CKMiPDPy.js +1 -0
- package/dist/assets/kiosk-mode-oJ3erP0b.js +1 -0
- package/dist/assets/label-KlZhD0Wz.js +1 -0
- package/dist/assets/layout-C2zfXBrd.js +5 -0
- package/dist/assets/line-BX1v8gkY.js +1 -0
- package/dist/assets/linear-_5G-OhLA.js +1 -0
- package/dist/assets/links-BwkQr4sn.js +1 -0
- package/dist/assets/livescript-CmA_pEQi.js +1 -0
- package/dist/assets/logs-panel-MKEh0IK-.js +1 -0
- package/dist/assets/loro_wasm_bg-C9dMIWjp.js +1 -0
- package/dist/assets/lua-BBGGibto.js +1 -0
- package/dist/assets/maps-DQ4X82OB.js +1 -0
- package/dist/assets/markdown-renderer-DpNwn0oX.js +5 -0
- package/dist/assets/mathematica-EVwiHsb7.js +1 -0
- package/dist/assets/mbox-f9FpJMps.js +1 -0
- package/dist/assets/menu-items-DkKu0R5b.js +1 -0
- package/dist/assets/mermaid-4DMBBIKO-CsD09XZ_.js +1 -0
- package/dist/assets/mermaid-BdekQaCQ.js +11 -0
- package/dist/assets/mermaid-parser.core-hTN4xwYK.js +4 -0
- package/dist/assets/message-circle-BaZF1NX9.js +1 -0
- package/dist/assets/mhchem-CgESkxWV.js +1 -0
- package/dist/assets/micromark-factory-space-4isUgE6w.js +1 -0
- package/dist/assets/mindmap-definition-VGOIOE7T-DEN1Ym_B.js +68 -0
- package/dist/assets/mirc-CKQuidRI.js +1 -0
- package/dist/assets/mllike-DSE7K0L_.js +1 -0
- package/dist/assets/modelica-BLWpmE6J.js +1 -0
- package/dist/assets/mscgen-DUGTvav7.js +1 -0
- package/dist/assets/multi-map-1zWiWMZF.js +1 -0
- package/dist/assets/mumps-De-aL68G.js +1 -0
- package/dist/assets/name-cell-input-BgKW-jS9.js +1 -0
- package/dist/assets/nsis-BKA2hITd.js +1 -0
- package/dist/assets/nsis-GZVZ8s9U.js +1 -0
- package/dist/assets/ntriples-8e_qYaH4.js +1 -0
- package/dist/assets/number-overlay-editor-CDWHq1mJ.js +9 -0
- package/dist/assets/octave-BV_-gmS1.js +1 -0
- package/dist/assets/ordinal-BL0TAfDQ.js +1 -0
- package/dist/assets/outline-panel-DeY7f680.js +1 -0
- package/dist/assets/oz-B0uIrvBT.js +1 -0
- package/dist/assets/packages-panel-DxfrOcti.js +1 -0
- package/dist/assets/packet-DYOGHKS2-Cr8AvEnH.js +1 -0
- package/dist/assets/panels-DW9-jKgb.js +1 -0
- package/dist/assets/pascal-P8oljycx.js +1 -0
- package/dist/assets/perl-C9B7mnkS.js +1 -0
- package/dist/assets/pie-VRWISCQL-18iiky4b.js +1 -0
- package/dist/assets/pieDiagram-ADFJNKIX-BY90tkn0.js +30 -0
- package/dist/assets/pig-CrydCWlQ.js +1 -0
- package/dist/assets/popover-C5P0DZBj.js +1 -0
- package/dist/assets/powershell-BNzz8aRp.js +1 -0
- package/dist/assets/precisionRound-CXIc8XqM.js +1 -0
- package/dist/assets/process-output-xgqvYbVu.js +1 -0
- package/dist/assets/properties-C81OZegg.js +1 -0
- package/dist/assets/protobuf-DXcVcUng.js +1 -0
- package/dist/assets/pug-Bc3B5zy9.js +1 -0
- package/dist/assets/pug-D2oI7kNu.js +1 -0
- package/dist/assets/puppet-DNlzsFMc.js +1 -0
- package/dist/assets/python-CdBemvol.js +1 -0
- package/dist/assets/q-CB51ViwQ.js +1 -0
- package/dist/assets/quadrantDiagram-AYHSOK5B-DscgxREu.js +7 -0
- package/dist/assets/r-lEjVwdCN.js +1 -0
- package/dist/assets/radar-ZZBFDIW7-DP-828em.js +1 -0
- package/dist/assets/react-icons.esm-BJVxNhcA.js +1 -0
- package/dist/assets/react-vega-CFucxlM_.js +190 -0
- package/dist/assets/react-vega-C_nbap4W.js +1 -0
- package/dist/assets/readonly-python-code-DJ37Vv8J.js +1 -0
- package/dist/assets/renderShortcut-BcNNtnIV.js +1 -0
- package/dist/assets/request-registry-5S3nI4D-.js +1 -0
- package/dist/assets/requirementDiagram-UZGBJVZJ-DuOL6ww3.js +64 -0
- package/dist/assets/rpm-DDM5IEHy.js +1 -0
- package/dist/assets/ruby-93dn3nLg.js +1 -0
- package/dist/assets/run-page-BEDqWbFX.js +1 -0
- package/dist/assets/runs-B_mJSod5.js +1 -0
- package/dist/assets/sankeyDiagram-TZEHDZUN-CrhC3Xh7.js +10 -0
- package/dist/assets/sas-CbG03D2N.js +1 -0
- package/dist/assets/scheme-B2cyUK_0.js +1 -0
- package/dist/assets/scratchpad-panel-Seg2akhp.js +1 -0
- package/dist/assets/secrets-panel-ByDa4skC.js +1 -0
- package/dist/assets/select-dNVaT2hT.js +1 -0
- package/dist/assets/sequenceDiagram-WL72ISMW-DNBtGacp.js +145 -0
- package/dist/assets/session-panel-BfBmOygH.js +1 -0
- package/dist/assets/share-BKUsoia0.js +1 -0
- package/dist/assets/shell-BUKevxDL.js +1 -0
- package/dist/assets/sieve-DBd5VCju.js +1 -0
- package/dist/assets/slides-component-Da4ws_2P.js +1 -0
- package/dist/assets/smalltalk-DEMxPY2H.js +1 -0
- package/dist/assets/snippets-panel-DFpwFaWJ.js +1 -0
- package/dist/assets/sparkles-DWCvxqYL.js +1 -0
- package/dist/assets/sparql-CuX1PPeN.js +1 -0
- package/dist/assets/spec-DbOXZaHd.js +1 -0
- package/dist/assets/src-BNdxo5s1.js +1 -0
- package/dist/assets/state-BIoNQTz5.js +1 -0
- package/dist/assets/state-Cobrzbya.js +1 -0
- package/dist/assets/state-DnmL6F-D.js +1 -0
- package/dist/assets/stateDiagram-FKZM4ZOC-Krq7gbW2.js +1 -0
- package/dist/assets/stateDiagram-v2-4FDKWEC3-Cw5LDI5M.js +1 -0
- package/dist/assets/step-OYH2hb7p.js +1 -0
- package/dist/assets/stex-pjf-hOob.js +1 -0
- package/dist/assets/stylus-aDxbv1u4.js +1 -0
- package/dist/assets/swift-OTokpssg.js +1 -0
- package/dist/assets/switch-B9gVGTJZ.js +1 -0
- package/dist/assets/tcl-DJhWqArt.js +1 -0
- package/dist/assets/terminal-Cdh7bzOl.js +62 -0
- package/dist/assets/textarea-jiqvHbIW.js +1 -0
- package/dist/assets/textile-DpS9C_zY.js +1 -0
- package/dist/assets/time-LzCXNX8h.js +1 -0
- package/dist/assets/timeline-definition-IT6M3QCI-DOl0hCPz.js +61 -0
- package/dist/assets/toggle-wwEdkCCQ.js +1 -0
- package/dist/assets/toml-kj-ibVms.js +1 -0
- package/dist/assets/tooltip-BCGmr4TU.js +1 -0
- package/dist/assets/tracing-4xyeRkef.js +1 -0
- package/dist/assets/tracing-panel-BDIuiiE0.js +2 -0
- package/dist/assets/tree-CG4dRTEj.js +3 -0
- package/dist/assets/treemap-GDKQZRPO-CWmDSzQU.js +1 -0
- package/dist/assets/troff-DLJL07gk.js +1 -0
- package/dist/assets/ttcn-cfg-DuCZQ2Km.js +1 -0
- package/dist/assets/ttcn-twc1Q5xq.js +1 -0
- package/dist/assets/turtle-BiLqIa2_.js +1 -0
- package/dist/assets/useAddCell-CcIU5IMe.js +1 -0
- package/dist/assets/useBoolean-0UVbgsxo.js +1 -0
- package/dist/assets/useCellActionButton-Dm7uUKBA.js +1 -0
- package/dist/assets/useDateFormatter-BOFB4HZc.js +1 -0
- package/dist/assets/useDeleteCell-D_w3puRP.js +1 -0
- package/dist/assets/useDependencyPanelTab-gBdSBaO_.js +1 -0
- package/dist/assets/useInstallPackage-DYIBbH-R.js +1 -0
- package/dist/assets/useNotebookActions-CBHB0ad_.js +1 -0
- package/dist/assets/useNumberFormatter-Da4iNOMq.js +1 -0
- package/dist/assets/usePress-_02M8YzR.js +7 -0
- package/dist/assets/useRunCells-rq1fmMiQ.js +1 -0
- package/dist/assets/useSplitCell-47X7VRZm.js +1 -0
- package/dist/assets/utils-BGl6s90X.js +61 -0
- package/dist/assets/vb-BYvNbVBU.js +1 -0
- package/dist/assets/vbscript-CE30tjpc.js +1 -0
- package/dist/assets/vega-component-C3vNdTdH.js +1 -0
- package/dist/assets/vega-loader.browser-W8QXhYr5.js +6 -0
- package/dist/assets/velocity-k2jshUC1.js +1 -0
- package/dist/assets/verilog-D-u-JakI.js +1 -0
- package/dist/assets/vhdl-CdNH8uWZ.js +1 -0
- package/dist/assets/webidl-CdMZNGiF.js +1 -0
- package/dist/assets/write-secret-modal-BlZo70J1.js +1 -0
- package/dist/assets/xquery-XKE48gN2.js +1 -0
- package/dist/assets/xychartDiagram-PRI3JC2R-sn3q6uOF.js +7 -0
- package/dist/assets/yacas-DbyKcdb9.js +1 -0
- package/dist/assets/z80-F2-i3nLg.js +1 -0
- package/dist/index.html +142 -147
- package/package.json +2 -1
- package/src/__mocks__/notebook.ts +9 -9
- package/src/__mocks__/requests.ts +2 -1
- package/src/__tests__/branded.ts +20 -0
- package/src/__tests__/setup.ts +15 -0
- package/src/components/app-config/__tests__/get-dirty-values.test.ts +1 -1
- package/src/components/app-config/get-dirty-values.ts +100 -0
- package/src/components/app-config/user-config-form.tsx +6 -101
- package/src/components/data-table/TableActions.tsx +8 -2
- package/src/components/data-table/__tests__/columns.test.tsx +138 -0
- package/src/components/data-table/__tests__/data-table.test.tsx +63 -0
- package/src/components/data-table/__tests__/utils.test.ts +138 -1
- package/src/components/data-table/charts/__tests__/storage.test.ts +7 -7
- package/src/components/data-table/columns.tsx +44 -4
- package/src/components/data-table/context-menu.tsx +9 -5
- package/src/components/data-table/data-table.tsx +13 -31
- package/src/components/data-table/filters.ts +1 -0
- package/src/components/data-table/hooks/use-scroll-container-height.ts +97 -0
- package/src/components/data-table/range-focus/__tests__/atoms.test.ts +8 -2
- package/src/components/data-table/range-focus/__tests__/test-utils.ts +2 -0
- package/src/components/data-table/range-focus/__tests__/use-cell-range-selection.test.ts +119 -0
- package/src/components/data-table/range-focus/__tests__/utils.test.ts +82 -8
- package/src/components/data-table/range-focus/atoms.ts +2 -2
- package/src/components/data-table/range-focus/use-cell-range-selection.ts +19 -0
- package/src/components/data-table/range-focus/utils.ts +50 -12
- package/src/components/data-table/renderers.tsx +103 -46
- package/src/components/data-table/types.ts +21 -0
- package/src/components/data-table/utils.ts +87 -0
- package/src/components/datasources/datasources.tsx +45 -0
- package/src/components/editor/__tests__/data-attributes.test.tsx +8 -8
- package/src/components/editor/ai/__tests__/completion-utils.test.ts +15 -15
- package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +2 -2
- package/src/components/editor/connections/storage/as-code.ts +2 -2
- package/src/components/editor/file-tree/file-explorer.tsx +16 -2
- package/src/components/editor/file-tree/file-viewer.tsx +17 -3
- package/src/components/editor/navigation/__tests__/clipboard.test.ts +2 -2
- package/src/components/editor/navigation/__tests__/selection.test.ts +7 -6
- package/src/components/editor/navigation/__tests__/state.test.ts +8 -7
- package/src/components/editor/output/MarimoErrorOutput.tsx +7 -7
- package/src/components/editor/output/__tests__/traceback.test.tsx +4 -4
- package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +4 -4
- package/src/components/editor/package-alert.tsx +1 -1
- package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +8 -1
- package/src/components/markdown/markdown-renderer.tsx +18 -2
- package/src/components/storage/storage-file-viewer.tsx +35 -1
- package/src/components/storage/storage-inspector.tsx +9 -4
- package/src/components/storage/storage-snippets.ts +3 -3
- package/src/components/tracing/tracing.tsx +3 -1
- package/src/components/ui/range-slider.tsx +108 -1
- package/src/core/ai/__tests__/staged-cells.test.ts +9 -8
- package/src/core/ai/context/providers/__tests__/cell-output.test.ts +31 -31
- package/src/core/ai/context/providers/__tests__/datasource.test.ts +3 -3
- package/src/core/ai/context/providers/__tests__/tables.test.ts +3 -2
- package/src/core/ai/context/providers/__tests__/variable.test.ts +84 -63
- package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +10 -9
- package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +6 -6
- package/src/core/ai/tools/edit-notebook-tool.ts +3 -3
- package/src/core/cells/__tests__/add-missing-import.test.ts +3 -3
- package/src/core/cells/__tests__/apply-transaction.test.ts +279 -0
- package/src/core/cells/__tests__/cells.test.ts +198 -135
- package/src/core/cells/__tests__/document-changes.test.ts +572 -0
- package/src/core/cells/__tests__/document-roundtrip.test.ts +376 -0
- package/src/core/cells/__tests__/focus.test.ts +5 -4
- package/src/core/cells/__tests__/logs.test.ts +13 -12
- package/src/core/cells/__tests__/pending-delete-service.test.tsx +3 -3
- package/src/core/cells/__tests__/runs.test.ts +29 -24
- package/src/core/cells/__tests__/scrollCellIntoView.test.ts +8 -7
- package/src/core/cells/__tests__/session.test.ts +23 -22
- package/src/core/cells/cells.ts +31 -5
- package/src/core/cells/document-changes.ts +644 -0
- package/src/core/cells/ids.ts +5 -5
- package/src/core/cells/logs.ts +2 -2
- package/src/core/cells/runs.ts +6 -8
- package/src/core/codemirror/__tests__/format.test.ts +34 -36
- package/src/core/codemirror/__tests__/setup.test.ts +2 -2
- package/src/core/codemirror/cells/__tests__/extensions.test.ts +114 -0
- package/src/core/codemirror/cells/__tests__/traceback-decorations.test.ts +33 -32
- package/src/core/codemirror/cells/extensions.ts +66 -23
- package/src/core/codemirror/completion/__tests__/keymap.test.ts +15 -35
- package/src/core/codemirror/completion/keymap.ts +14 -4
- package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +12 -13
- package/src/core/codemirror/language/__tests__/utils.test.ts +3 -3
- package/src/core/codemirror/language/embedded/__tests__/embedded-python.test.ts +7 -8
- package/src/core/codemirror/language/languages/python.ts +4 -0
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +4 -3
- package/src/core/codemirror/lsp/notebook-lsp.ts +28 -2
- package/src/core/codemirror/reactive-references/__tests__/analyzer.test.ts +7 -6
- package/src/core/codemirror/reactive-references/analyzer.ts +2 -2
- package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +52 -0
- package/src/core/codemirror/rtc/loro/sync.ts +1 -0
- package/src/core/datasets/__tests__/data-source.test.ts +93 -7
- package/src/core/datasets/data-source-connections.ts +44 -0
- package/src/core/datasets/request-registry.ts +13 -0
- package/src/core/datasets/state.ts +1 -1
- package/src/core/edit-app.tsx +0 -5
- package/src/core/errors/__tests__/errors.test.ts +2 -1
- package/src/core/export/__tests__/hooks.test.ts +37 -36
- package/src/core/islands/bridge.ts +2 -1
- package/src/core/islands/main.ts +5 -9
- package/src/core/kernel/__tests__/handlers.test.ts +5 -4
- package/src/core/kernel/handlers.ts +7 -4
- package/src/core/kernel/messages.ts +2 -0
- package/src/core/network/DeferredRequestRegistry.ts +2 -2
- package/src/core/network/__tests__/CachingRequestRegistry.test.ts +9 -10
- package/src/core/network/__tests__/DeferredRequestRegistry.test.ts +4 -6
- package/src/core/network/requests-lazy.ts +2 -1
- package/src/core/network/requests-network.ts +10 -2
- package/src/core/network/requests-static.ts +2 -1
- package/src/core/network/requests-toasting.tsx +2 -1
- package/src/core/network/types.ts +7 -2
- package/src/core/static/__tests__/virtual-file-tracker.test.ts +8 -8
- package/src/core/static/virtual-file-tracker.ts +1 -1
- package/src/core/storage/__tests__/state.test.ts +31 -21
- package/src/core/storage/state.ts +1 -1
- package/src/core/variables/__tests__/state.test.ts +6 -6
- package/src/core/variables/types.ts +2 -2
- package/src/core/wasm/__tests__/state.test.ts +8 -8
- package/src/core/wasm/bridge.ts +11 -1
- package/src/core/websocket/useMarimoKernelConnection.tsx +33 -26
- package/src/css/app/fonts.css +6 -6
- package/src/css/md-tooltip.css +4 -39
- package/src/css/md.css +10 -0
- package/src/fonts/Fira_Mono/FiraMono-Bold.woff2 +0 -0
- package/src/fonts/Fira_Mono/FiraMono-Medium.woff2 +0 -0
- package/src/fonts/Fira_Mono/FiraMono-Regular.woff2 +0 -0
- package/src/fonts/Lora/Lora-VariableFont_wght.woff2 +0 -0
- package/src/fonts/PT_Sans/PTSans-Bold.woff2 +0 -0
- package/src/fonts/PT_Sans/PTSans-Regular.woff2 +0 -0
- package/src/plugins/core/RenderHTML.tsx +17 -0
- package/src/plugins/core/__test__/RenderHTML.test.ts +45 -0
- package/src/plugins/core/sanitize-html.ts +25 -18
- package/src/plugins/impl/DataTablePlugin.tsx +50 -2
- package/src/plugins/impl/SliderPlugin.tsx +1 -3
- package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +120 -0
- package/src/plugins/impl/anywidget/model.ts +1 -2
- package/src/plugins/impl/chat/ChatPlugin.tsx +6 -3
- package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +5 -2
- package/src/stories/cell.stories.tsx +8 -8
- package/src/stories/layout/vertical/one-column.stories.tsx +9 -8
- package/src/stories/log-viewer.stories.tsx +8 -8
- package/src/stories/variables.stories.tsx +2 -2
- package/src/utils/__tests__/createReducer.test.ts +2 -1
- package/src/utils/__tests__/download.test.tsx +21 -20
- package/src/utils/copy.ts +18 -5
- package/src/utils/createReducer.ts +46 -26
- package/src/utils/download.ts +4 -3
- package/src/utils/html-to-image.ts +6 -0
- package/src/utils/json/base64.ts +3 -3
- package/src/utils/traceback.ts +5 -3
- package/dist/assets/CellStatus-CDSBsjjF.js +0 -1
- package/dist/assets/ConnectedDataExplorerComponent-Buaffg3u.js +0 -1
- package/dist/assets/DeferredRequestRegistry-O6RDJKs0.js +0 -1
- package/dist/assets/FiraMono-Bold-CLVRCuM9.ttf +0 -0
- package/dist/assets/FiraMono-Medium-DU3aDxX5.ttf +0 -0
- package/dist/assets/FiraMono-Regular-BTCkDNvf.ttf +0 -0
- package/dist/assets/ImperativeModal-qEtcJ95s.js +0 -1
- package/dist/assets/JsonOutput-DKXKGKvX.js +0 -46
- package/dist/assets/LazyAnyLanguageCodeMirror-m8w66E4s.js +0 -2
- package/dist/assets/Lora-VariableFont_wght-B2ootaw-.ttf +0 -0
- package/dist/assets/MarimoErrorOutput-az74f3Mp.js +0 -7
- package/dist/assets/PTSans-Bold-D9fedIX3.ttf +0 -0
- package/dist/assets/PTSans-Regular-CxL0S8W7.ttf +0 -0
- package/dist/assets/RenderHTML-DJ8khuob.js +0 -1
- package/dist/assets/add-cell-with-ai-DUn4LN4W.js +0 -92
- package/dist/assets/add-connection-dialog-CBz0AUVX.js +0 -167
- package/dist/assets/agent-panel-u83dsDsM.js +0 -287
- package/dist/assets/ai-model-dropdown-DPTa_EpU.js +0 -5
- package/dist/assets/alert-dialog-9WfvUF7e.js +0 -11
- package/dist/assets/any-language-editor-DwQMnAM3.js +0 -1
- package/dist/assets/apl-CWQZjEHB.js +0 -1
- package/dist/assets/app-config-button-rDu-lCIB.js +0 -1
- package/dist/assets/arc-BrTIAGt4.js +0 -1
- package/dist/assets/architecture-7HQA4BMR-BewjmwdA.js +0 -1
- package/dist/assets/architectureDiagram-VXUJARFQ-DfMHHFZ3.js +0 -36
- package/dist/assets/asciiarmor-YkqeOS7J.js +0 -1
- package/dist/assets/asn1-CXKIzj3m.js +0 -1
- package/dist/assets/azure-BTXHztTw.js +0 -1
- package/dist/assets/blockDiagram-VD42YOAC-CuEDwbg7.js +0 -122
- package/dist/assets/brainfuck-BATyDEza.js +0 -1
- package/dist/assets/c4Diagram-YG6GDRKO-CD9uz7WG.js +0 -10
- package/dist/assets/cache-panel-qIxnndwr.js +0 -1
- package/dist/assets/cell-editor-DX7IcqNr.js +0 -23
- package/dist/assets/cell-link-Q_UEP94Z.js +0 -1
- package/dist/assets/cells-fq1RMGX_.js +0 -229
- package/dist/assets/channel-CkT8Qdo2.js +0 -1
- package/dist/assets/chat-display-D_Fuuy6r.js +0 -1
- package/dist/assets/chat-panel-BO-JoQSp.js +0 -3
- package/dist/assets/chunk-4BX2VUAB-DOQhLGwX.js +0 -1
- package/dist/assets/chunk-55IACEB6-D0TKhzEY.js +0 -1
- package/dist/assets/chunk-5FQGJX7Z-CM1a_K7I.js +0 -113
- package/dist/assets/chunk-ABZYJK2D-D_Wumzom.js +0 -80
- package/dist/assets/chunk-ATLVNIR6-BZ0lTgIn.js +0 -1
- package/dist/assets/chunk-B4BG7PRW-Dw1S6osV.js +0 -165
- package/dist/assets/chunk-CVBHYZKI-BmNXddyI.js +0 -1
- package/dist/assets/chunk-DI55MBZ5-Q63FTCPP.js +0 -220
- package/dist/assets/chunk-EXTU4WIE-CfkJ_R7W.js +0 -1
- package/dist/assets/chunk-FMBD7UC4-BF_CXOnN.js +0 -15
- package/dist/assets/chunk-HN2XXSSU-BstCPYtG.js +0 -1
- package/dist/assets/chunk-JA3XYJ7Z-B41fGeoj.js +0 -70
- package/dist/assets/chunk-JZLCHNYA-D43EJxQw.js +0 -54
- package/dist/assets/chunk-MI3HLSF2-BceZdyTR.js +0 -32
- package/dist/assets/chunk-N4CR4FBY-DCtw0-ni.js +0 -2
- package/dist/assets/chunk-QN33PNHL-CLA2rsaS.js +0 -1
- package/dist/assets/chunk-QXUST7PY-De1DpbnL.js +0 -7
- package/dist/assets/chunk-QZHKN3VN-D3EIvP2i.js +0 -1
- package/dist/assets/chunk-S3R3BYOJ-qrwvlUdq.js +0 -2
- package/dist/assets/chunk-TZMSLE5B-C4KcThb0.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-BhMT_rTz.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-D-F4WEyb.js +0 -1
- package/dist/assets/clike-C3ewt06X.js +0 -1
- package/dist/assets/clojure-DSdxtK57.js +0 -1
- package/dist/assets/cmake-b6COJhkL.js +0 -1
- package/dist/assets/cobol-0au-d4Af.js +0 -1
- package/dist/assets/code-block-37QAKDTI-D4FF4cnN.js +0 -2
- package/dist/assets/coffeescript-CO6miDRN.js +0 -1
- package/dist/assets/column-preview-WsubyItX.js +0 -1
- package/dist/assets/command-palette-Bez4BqJF.js +0 -1
- package/dist/assets/command-rfxSsiHU.js +0 -1
- package/dist/assets/common-BYwO983A.js +0 -1
- package/dist/assets/commonlisp-ViswrHum.js +0 -1
- package/dist/assets/components-Bpgzv_5_.js +0 -1
- package/dist/assets/components-Ozq0825a.js +0 -1
- package/dist/assets/config-3Aq84phF.js +0 -1
- package/dist/assets/context-CIAP2NOh.js +0 -1
- package/dist/assets/context-aware-panel-CfsfBlhO.js +0 -3
- package/dist/assets/copy-YwM0Pd7v.js +0 -1
- package/dist/assets/copy-icon-BgmMM9Zg.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-Bd5HJPaN.js +0 -1
- package/dist/assets/createReducer-Drh7NmIR.js +0 -1
- package/dist/assets/crystal-BcOI1XlU.js +0 -1
- package/dist/assets/css-CCWfM5vT.js +0 -1
- package/dist/assets/cypher-BKbuDk70.js +0 -1
- package/dist/assets/d-4fbeW9Dj.js +0 -1
- package/dist/assets/dagre-6UL2VRFP-BhMnPhuU.js +0 -4
- package/dist/assets/data-grid-overlay-editor-kbv73SQ7.js +0 -1
- package/dist/assets/datasource-F9sJtuof.js +0 -3
- package/dist/assets/dates-CHaNfieI.js +0 -1
- package/dist/assets/dependency-graph-panel-AOBcX2tP.js +0 -5
- package/dist/assets/diagram-PSM6KHXK-Cr2t4zul.js +0 -24
- package/dist/assets/diagram-QEK2KX5R-DLU_hSO4.js +0 -43
- package/dist/assets/diagram-S2PKOQOG-C7EkNAO3.js +0 -24
- package/dist/assets/dialog-CVN1lcMF.js +0 -1
- package/dist/assets/diff-CV59_hp-.js +0 -1
- package/dist/assets/dist-6FIAeDIu.js +0 -1
- package/dist/assets/dist-BNC_tnlW.js +0 -6
- package/dist/assets/dist-BTqMkf4j.js +0 -1
- package/dist/assets/dist-BXXPfIam.js +0 -1
- package/dist/assets/dist-BZeePkbd.js +0 -1
- package/dist/assets/dist-BiZQlfhr.js +0 -1
- package/dist/assets/dist-BoDHthoc.js +0 -1
- package/dist/assets/dist-Br306776.js +0 -1
- package/dist/assets/dist-Br4KMeY4.js +0 -1
- package/dist/assets/dist-By6zhkxZ.js +0 -1
- package/dist/assets/dist-C3MmXcLA.js +0 -1
- package/dist/assets/dist-CXLJUPFl.js +0 -1
- package/dist/assets/dist-CblX3KGI.js +0 -1
- package/dist/assets/dist-CcGcwrUD.js +0 -1
- package/dist/assets/dist-ClzRAVN-.js +0 -1
- package/dist/assets/dist-Cp60fE5Z.js +0 -1
- package/dist/assets/dist-CsRbK9-Y.js +0 -1
- package/dist/assets/dist-DHw9sXeN.js +0 -1
- package/dist/assets/dist-DJBpXGro.js +0 -1
- package/dist/assets/dist-DVbTmqCA.js +0 -1
- package/dist/assets/dist-DbK_4_qo.js +0 -1
- package/dist/assets/dist-DlTbNRBn.js +0 -1
- package/dist/assets/dist-DrceDAhM.js +0 -1
- package/dist/assets/dist-Du0qZeXz.js +0 -1
- package/dist/assets/dist-Tk70DR_I.js +0 -1
- package/dist/assets/dist-a0FfbvMD.js +0 -1
- package/dist/assets/dist-cfkfP0ni.js +0 -1
- package/dist/assets/dist-e6Ho4upI.js +0 -1
- package/dist/assets/dist-mxGLXOFm.js +0 -1
- package/dist/assets/dist-pzQ9JG-p.js +0 -1
- package/dist/assets/dockerfile-ClV2Mqz8.js +0 -1
- package/dist/assets/documentation-panel-D28MpqbI.js +0 -1
- package/dist/assets/download-B9_ToVd4.js +0 -9
- package/dist/assets/dropdown-menu-DdPu5Kfu.js +0 -1
- package/dist/assets/dtd-BAjS2EMD.js +0 -1
- package/dist/assets/dylan-CjAEbzAl.js +0 -1
- package/dist/assets/ecl-DegMF2Uo.js +0 -1
- package/dist/assets/edit-page-otS-QvnC.js +0 -13
- package/dist/assets/eiffel-D_UXtJqE.js +0 -1
- package/dist/assets/elm-CV-6VdWh.js +0 -1
- package/dist/assets/en-US-BO8E69bZ.js +0 -1
- package/dist/assets/erDiagram-Q2GNP2WA-DqlEo_Us.js +0 -60
- package/dist/assets/erlang-C3Vp1oq_.js +0 -1
- package/dist/assets/error-banner-BRG6IPhC.js +0 -1
- package/dist/assets/error-panel-RRoj_iOR.js +0 -1
- package/dist/assets/es-CzkousWe.js +0 -5
- package/dist/assets/esm-CBkHtTOV.js +0 -1
- package/dist/assets/esm-DhTsVMLM.js +0 -1
- package/dist/assets/factor-CBMQHXUW.js +0 -1
- package/dist/assets/factor-CrpY0izf.js +0 -1
- package/dist/assets/field-B1jGbQlH.js +0 -1
- package/dist/assets/file-explorer-panel-CB8vF5ob.js +0 -26
- package/dist/assets/file-icons-CWLHDa1J.js +0 -1
- package/dist/assets/floating-outline-BvQKiC0F.js +0 -1
- package/dist/assets/flowDiagram-NV44I4VS-CQlIJ12H.js +0 -162
- package/dist/assets/focus-DYwTiH9-.js +0 -1
- package/dist/assets/form-CrQYrsUC.js +0 -2
- package/dist/assets/formats-rhOJovGE.js +0 -1
- package/dist/assets/formatting-B4ZCH3ol.js +0 -1
- package/dist/assets/forth-C_TcrpRK.js +0 -1
- package/dist/assets/fortran-DOs2FQj2.js +0 -1
- package/dist/assets/gallery-page-eRea0yic.js +0 -1
- package/dist/assets/ganttDiagram-JELNMOA3-B3EGIuZL.js +0 -267
- package/dist/assets/gas-Cg-F3pmb.js +0 -1
- package/dist/assets/gherkin-CaXqq9kA.js +0 -1
- package/dist/assets/gitGraph-G5XIXVHT-iDzw7G2X.js +0 -1
- package/dist/assets/gitGraphDiagram-V2S2FVAM-h5SlguJK.js +0 -65
- package/dist/assets/glide-data-editor-xt5xNZeV.js +0 -132
- package/dist/assets/globals-BsV5fVR-.js +0 -1
- package/dist/assets/groovy-DmxumoMi.js +0 -1
- package/dist/assets/haskell-BZ-cKqgz.js +0 -1
- package/dist/assets/haxe-x-4elm0t.js +0 -1
- package/dist/assets/home-page-itW0tRmv.js +0 -4
- package/dist/assets/hooks-CHx5dUUq.js +0 -1
- package/dist/assets/html-to-image-BnSc-Wa0.js +0 -2
- package/dist/assets/idl-DNkkzHKH.js +0 -1
- package/dist/assets/index-CkOKOnvu.css +0 -2
- package/dist/assets/index-Dasye9cX.js +0 -38
- package/dist/assets/info-VBDWY6EO-CPHm9IfG.js +0 -1
- package/dist/assets/infoDiagram-HS3SLOUP-pzpClObZ.js +0 -2
- package/dist/assets/input-CUwqpKjd.js +0 -1
- package/dist/assets/isValid-BGe7pJXT.js +0 -1
- package/dist/assets/javascript-B0uQ9oZ_.js +0 -1
- package/dist/assets/journeyDiagram-XKPGCS4Q-BrdRi92v.js +0 -139
- package/dist/assets/julia-DBflXO9b.js +0 -1
- package/dist/assets/kanban-definition-3W4ZIXB7-B6WqgFqh.js +0 -89
- package/dist/assets/katex-YDobqqVd.js +0 -1
- package/dist/assets/kiosk-mode-DNjEnIWb.js +0 -1
- package/dist/assets/label-TNNaT1M9.js +0 -1
- package/dist/assets/layout-CwFtCyW8.js +0 -5
- package/dist/assets/line-BBSd2MUH.js +0 -1
- package/dist/assets/linear-BP9rwmWK.js +0 -1
- package/dist/assets/links-CIQwYQ48.js +0 -1
- package/dist/assets/livescript-DRwwdQDY.js +0 -1
- package/dist/assets/logs-panel-BU1tNEVc.js +0 -1
- package/dist/assets/loro_wasm_bg-MY7PmKYj.js +0 -1
- package/dist/assets/lua-D_CRYz1e.js +0 -1
- package/dist/assets/maps-OKerBHH8.js +0 -1
- package/dist/assets/markdown-renderer-MR9df58W.js +0 -10
- package/dist/assets/mathematica-D28k0VAB.js +0 -1
- package/dist/assets/mbox-B74-q1nN.js +0 -1
- package/dist/assets/menu-items-UxKrm8hS.js +0 -1
- package/dist/assets/mermaid-4DMBBIKO-PoHnhmy8.js +0 -1
- package/dist/assets/mermaid-Djr3jUAB.js +0 -11
- package/dist/assets/mermaid-parser.core-DR82IMb2.js +0 -4
- package/dist/assets/mhchem-B98RQJ-y.js +0 -1
- package/dist/assets/mindmap-definition-VGOIOE7T-DAmJpbPM.js +0 -68
- package/dist/assets/mirc-CW8yiVay.js +0 -1
- package/dist/assets/mllike-BwZpH7CZ.js +0 -1
- package/dist/assets/mode-AcL8c6qH.js +0 -1
- package/dist/assets/modelica-AhRO-ii8.js +0 -1
- package/dist/assets/mscgen-CJZUmlSk.js +0 -1
- package/dist/assets/multi-map-Pp1P2DOX.js +0 -1
- package/dist/assets/mumps-BTPWDvZ1.js +0 -1
- package/dist/assets/name-cell-input-DVFEv_aO.js +0 -1
- package/dist/assets/nsis-BeaU1Q2K.js +0 -1
- package/dist/assets/nsis-CuVPiHG5.js +0 -1
- package/dist/assets/ntriples-eNmSbiOL.js +0 -1
- package/dist/assets/number-overlay-editor-D__AflXQ.js +0 -9
- package/dist/assets/octave-BboqqX2Z.js +0 -1
- package/dist/assets/ordinal-BjO5SoTk.js +0 -1
- package/dist/assets/outline-panel-CP0oIuiU.js +0 -1
- package/dist/assets/oz-eUT9rD_n.js +0 -1
- package/dist/assets/packages-panel-CzRELimG.js +0 -1
- package/dist/assets/packet-DYOGHKS2-0KdzLf9c.js +0 -1
- package/dist/assets/panels-wTweRyIv.js +0 -1
- package/dist/assets/pascal-Bl9h-Ruv.js +0 -1
- package/dist/assets/perl-B1GdYx3j.js +0 -1
- package/dist/assets/pie-VRWISCQL-C6EIS9iq.js +0 -1
- package/dist/assets/pieDiagram-ADFJNKIX-DbGIFRoq.js +0 -30
- package/dist/assets/pig-CoZHWNtw.js +0 -1
- package/dist/assets/popover-BPGG2gPG.js +0 -1
- package/dist/assets/powershell-B2p71KcT.js +0 -1
- package/dist/assets/precisionRound-BOmLQIKI.js +0 -1
- package/dist/assets/process-output-CTVsT--B.js +0 -1
- package/dist/assets/properties-Cs9aaJGK.js +0 -1
- package/dist/assets/protobuf-DFCnQG_o.js +0 -1
- package/dist/assets/pug-BShaWOtD.js +0 -1
- package/dist/assets/pug-v81J9ytZ.js +0 -1
- package/dist/assets/puppet-4yIFv98Z.js +0 -1
- package/dist/assets/python-ByMRQ0aE.js +0 -1
- package/dist/assets/q-C7EgGttK.js +0 -1
- package/dist/assets/quadrantDiagram-AYHSOK5B-CLAtyple.js +0 -7
- package/dist/assets/r-DpLLx5HE.js +0 -1
- package/dist/assets/radar-ZZBFDIW7-IOV25h32.js +0 -1
- package/dist/assets/react-vega-BZav_-2n.js +0 -190
- package/dist/assets/react-vega-Da-Ps9UW.js +0 -1
- package/dist/assets/readonly-python-code-DH-1xZGq.js +0 -1
- package/dist/assets/renderShortcut-CnD1Dah5.js +0 -1
- package/dist/assets/request-registry-B-7cIM_I.js +0 -1
- package/dist/assets/requirementDiagram-UZGBJVZJ-DDDTB1LD.js +0 -64
- package/dist/assets/rpm-DlCq0FVA.js +0 -1
- package/dist/assets/ruby-BGmSEBWH.js +0 -1
- package/dist/assets/run-page-FCvGnICa.js +0 -1
- package/dist/assets/runs-Bhy0tbWr.js +0 -1
- package/dist/assets/sankeyDiagram-TZEHDZUN-DAWPOfBw.js +0 -10
- package/dist/assets/sas-CFcv5xFe.js +0 -1
- package/dist/assets/scheme-BgRfkNY3.js +0 -1
- package/dist/assets/scratchpad-panel-k9lrm-rC.js +0 -1
- package/dist/assets/secrets-panel-B1Z-6dmz.js +0 -1
- package/dist/assets/select-CxT2Geqr.js +0 -1
- package/dist/assets/sequenceDiagram-WL72ISMW-D_qAidD2.js +0 -145
- package/dist/assets/session-panel-WhN0qilM.js +0 -1
- package/dist/assets/share-BdH_5I58.js +0 -1
- package/dist/assets/shell-CKQz0rkv.js +0 -1
- package/dist/assets/sieve-D0P6XnTD.js +0 -1
- package/dist/assets/slides-component-Brm_TS4x.js +0 -1
- package/dist/assets/smalltalk-Dcg9QwVr.js +0 -1
- package/dist/assets/snippets-panel-BCDHUuku.js +0 -1
- package/dist/assets/sparql-f01xs6VH.js +0 -1
- package/dist/assets/spec-DbmSqx09.js +0 -1
- package/dist/assets/src-Bp_72rVO.js +0 -1
- package/dist/assets/state-3V5UxC3B.js +0 -1
- package/dist/assets/state-CBmCYWFH.js +0 -1
- package/dist/assets/state-Ce7CVShi.js +0 -1
- package/dist/assets/stateDiagram-FKZM4ZOC-C7qgDrGA.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CEqeIlM0.js +0 -1
- package/dist/assets/step-BkfKj3CL.js +0 -1
- package/dist/assets/stex-BBWVYm-R.js +0 -1
- package/dist/assets/stylus-BjzHGGgo.js +0 -1
- package/dist/assets/swift-DOptU29u.js +0 -1
- package/dist/assets/switch-CVKxYu_0.js +0 -1
- package/dist/assets/tcl-vC8etUeQ.js +0 -1
- package/dist/assets/terminal-Cr7wbEjz.js +0 -62
- package/dist/assets/textile-BfLqcKXP.js +0 -1
- package/dist/assets/time-D2GKc0U6.js +0 -1
- package/dist/assets/timeline-definition-IT6M3QCI-hd6uJKGs.js +0 -61
- package/dist/assets/toggle-RCwU-rnE.js +0 -1
- package/dist/assets/toml-rX0_Isgp.js +0 -1
- package/dist/assets/tooltip-D9723Brr.js +0 -1
- package/dist/assets/tracing-DUVd0jtl.js +0 -1
- package/dist/assets/tracing-panel-CuTxPn_x.js +0 -2
- package/dist/assets/tree-Ch2-GuhG.js +0 -3
- package/dist/assets/treemap-GDKQZRPO-BUa0eLeZ.js +0 -1
- package/dist/assets/troff-C1lPb0WN.js +0 -1
- package/dist/assets/ttcn-D5dxusfs.js +0 -1
- package/dist/assets/ttcn-cfg-Dj2ybct-.js +0 -1
- package/dist/assets/turtle-BiTItqZm.js +0 -1
- package/dist/assets/useAddCell-YC7rpcmD.js +0 -1
- package/dist/assets/useBoolean-m1e6E3Ao.js +0 -1
- package/dist/assets/useCellActionButton-GUb2fXU8.js +0 -1
- package/dist/assets/useDateFormatter-CpE7XQLs.js +0 -1
- package/dist/assets/useDeleteCell-DRUDRiy0.js +0 -1
- package/dist/assets/useDependencyPanelTab-nFVMlEx0.js +0 -1
- package/dist/assets/useInstallPackage-C9V-on2J.js +0 -1
- package/dist/assets/useNotebookActions-ChLHy-0O.js +0 -1
- package/dist/assets/useNumberFormatter-DbDKSvEd.js +0 -1
- package/dist/assets/usePress-BHGkpw8X.js +0 -7
- package/dist/assets/useRunCells-5m6jCnyo.js +0 -1
- package/dist/assets/useSplitCell-DGD9smMq.js +0 -1
- package/dist/assets/utils-CdjCA1J8.js +0 -61
- package/dist/assets/vb-roE2hgal.js +0 -1
- package/dist/assets/vbscript-2s97682t.js +0 -1
- package/dist/assets/vega-component-CRbeDmeM.js +0 -1
- package/dist/assets/vega-loader.browser-CZV6_g2i.js +0 -6
- package/dist/assets/velocity-D0YPg3VZ.js +0 -1
- package/dist/assets/verilog-Btszgjcd.js +0 -1
- package/dist/assets/vhdl-enS91NZh.js +0 -1
- package/dist/assets/webidl-DQMyFjhm.js +0 -1
- package/dist/assets/write-secret-modal-BCvuRAFb.js +0 -1
- package/dist/assets/xquery-D5Jh9c_Z.js +0 -1
- package/dist/assets/xychartDiagram-PRI3JC2R-CXlUBSbQ.js +0 -7
- package/dist/assets/yacas-CTzSIaAf.js +0 -1
- package/dist/assets/z80-Dt0hdUwP.js +0 -1
- package/src/core/cells/effects.ts +0 -42
- package/src/fonts/Fira_Mono/FiraMono-Bold.ttf +0 -0
- package/src/fonts/Fira_Mono/FiraMono-Medium.ttf +0 -0
- package/src/fonts/Fira_Mono/FiraMono-Regular.ttf +0 -0
- package/src/fonts/Lora/Lora-Italic-VariableFont_wght.ttf +0 -0
- package/src/fonts/Lora/Lora-VariableFont_wght.ttf +0 -0
- package/src/fonts/Lora/static/Lora-Bold.ttf +0 -0
- package/src/fonts/Lora/static/Lora-BoldItalic.ttf +0 -0
- package/src/fonts/Lora/static/Lora-Italic.ttf +0 -0
- package/src/fonts/Lora/static/Lora-Medium.ttf +0 -0
- package/src/fonts/Lora/static/Lora-MediumItalic.ttf +0 -0
- package/src/fonts/Lora/static/Lora-Regular.ttf +0 -0
- package/src/fonts/Lora/static/Lora-SemiBold.ttf +0 -0
- package/src/fonts/Lora/static/Lora-SemiBoldItalic.ttf +0 -0
- package/src/fonts/PT_Sans/PTSans-Bold.ttf +0 -0
- package/src/fonts/PT_Sans/PTSans-BoldItalic.ttf +0 -0
- package/src/fonts/PT_Sans/PTSans-Italic.ttf +0 -0
- package/src/fonts/PT_Sans/PTSans-Regular.ttf +0 -0
- /package/dist/assets/{Combination-Cs9nbinQ.js → Combination-CXstThSr.js} +0 -0
- /package/dist/assets/{Deferred-BMfCOLaw.js → Deferred-D2igisxY.js} +0 -0
- /package/dist/assets/{ImageComparisonComponent-DvDPDgw3.js → ImageComparisonComponent-DxLwmmB2.js} +0 -0
- /package/dist/assets/{Inputs-D5kI9GwB.js → Inputs-W60db12_.js} +0 -0
- /package/dist/assets/{Plot-DQQQ-fLA.js → Plot-I39ar7fU.js} +0 -0
- /package/dist/assets/{SSRProvider-DC7ElCZZ.js → SSRProvider-BNHN3zoD.js} +0 -0
- /package/dist/assets/{alert-OQZHipbB.js → alert-Cv0TRjV-.js} +0 -0
- /package/dist/assets/{apl-CexVE068.js → apl-lvMF4O0c.js} +0 -0
- /package/dist/assets/{array-psg969PF.js → array-CRE2-wlR.js} +0 -0
- /package/dist/assets/{asciiarmor-DzdXFxI-.js → asciiarmor-NoSIZ2RH.js} +0 -0
- /package/dist/assets/{asn1-lKNP6w4p.js → asn1-Bn2zPmGi.js} +0 -0
- /package/dist/assets/{asterisk-Bjb62jej.js → asterisk-1BK_fEUT.js} +0 -0
- /package/dist/assets/{badge-hTpPIsMT.js → badge-DPjNGpcf.js} +0 -0
- /package/dist/assets/{blob-CObhN-9g.js → blob-BTrKZERf.js} +0 -0
- /package/dist/assets/{bot-message-square-CK6eoGWy.js → bot-message-square-Dw41U6lL.js} +0 -0
- /package/dist/assets/{brainfuck-pTL_9bJ7.js → brainfuck-CyXrVlbF.js} +0 -0
- /package/dist/assets/{bundle.esm-idScn0w0.js → bundle.esm-_LzfhNmX.js} +0 -0
- /package/dist/assets/{card-C-c-4jyF.js → card-CBqenxaU.js} +0 -0
- /package/dist/assets/{chart-no-axes-column-DV8gdCvH.js → chart-no-axes-column-a9XtWmzk.js} +0 -0
- /package/dist/assets/{check-BE0hEwVo.js → check-DZA_bRpw.js} +0 -0
- /package/dist/assets/{chevron-right-D0GQBpTb.js → chevron-right-CvVxySQk.js} +0 -0
- /package/dist/assets/{chunk-4F5CHEZ2-BGeTOmrq.js → chunk-4F5CHEZ2-CvMYQKai.js} +0 -0
- /package/dist/assets/{chunk-B2363JML-Cmh9TPpj.js → chunk-B2363JML-oWpkFXOG.js} +0 -0
- /package/dist/assets/{chunk-DR5Q36YT-SM9ZwAOv.js → chunk-DR5Q36YT-DSjZQa_3.js} +0 -0
- /package/dist/assets/{chunk-FRFDVMJY-CUDE-MUX.js → chunk-FRFDVMJY-DxIaf4yl.js} +0 -0
- /package/dist/assets/{chunk-PL6DKKU2-DMqBvHTF.js → chunk-PL6DKKU2-DwnNxWA0.js} +0 -0
- /package/dist/assets/{chunk-SJTYNZTY-C9cwtT3h.js → chunk-SJTYNZTY-DBAl0fNt.js} +0 -0
- /package/dist/assets/{chunk-TQ3KTPDO-CUyT9lNN.js → chunk-TQ3KTPDO-B7j-UFPQ.js} +0 -0
- /package/dist/assets/{chunk-UMXZTB3W-Bt-_br31.js → chunk-UMXZTB3W-BGNdYqf-.js} +0 -0
- /package/dist/assets/{circle-check-gLIOLu8x.js → circle-check-CbaVeozR.js} +0 -0
- /package/dist/assets/{circle-play-DYGULlKZ.js → circle-play-DYn5nR6N.js} +0 -0
- /package/dist/assets/{circle-plus-CGG-gArM.js → circle-plus-nCze0-py.js} +0 -0
- /package/dist/assets/{clear-button-DrIF5o__.js → clear-button-CuSHRx11.js} +0 -0
- /package/dist/assets/{click-outside-container-CagwJLiG.js → click-outside-container-CiRBqxMF.js} +0 -0
- /package/dist/assets/{clike-BCxd7pZ9.js → clike-DKMmTh42.js} +0 -0
- /package/dist/assets/{clojure-CPAS-74L.js → clojure-PSUkitBX.js} +0 -0
- /package/dist/assets/{cmake-DMONEHtp.js → cmake-DzLpRry9.js} +0 -0
- /package/dist/assets/{cobol-0rQGzjf0.js → cobol-DAqlVpNy.js} +0 -0
- /package/dist/assets/{coffeescript-BHNUw4aR.js → coffeescript-CVRVei5N.js} +0 -0
- /package/dist/assets/{colors-WO6MvCS3.js → colors-k4pzE1JC.js} +0 -0
- /package/dist/assets/{common-keywords-D_14jCw0.js → common-keywords-CL5lDC0w.js} +0 -0
- /package/dist/assets/{commonlisp-Cjiyl45-.js → commonlisp-DGLna-nK.js} +0 -0
- /package/dist/assets/{crystal-CUMDisY2.js → crystal-D1je9SnX.js} +0 -0
- /package/dist/assets/{css-B6NFOUor.js → css-CpgzfyW4.js} +0 -0
- /package/dist/assets/{cypher-DcWJtLBw.js → cypher-SIaJhgm6.js} +0 -0
- /package/dist/assets/{cytoscape.esm-DuXIsNbY.js → cytoscape.esm-0erX9Txj.js} +0 -0
- /package/dist/assets/{d-CpNp8oDv.js → d-BQbC3v5b.js} +0 -0
- /package/dist/assets/{defaultLocale-DK1MWd7f.js → defaultLocale-CvLIK2MU.js} +0 -0
- /package/dist/assets/{defaultLocale-OkOxlkkM.js → defaultLocale-D_LmbLH5.js} +0 -0
- /package/dist/assets/{diff-BCFJsGHX.js → diff-Du4D-Lj4.js} +0 -0
- /package/dist/assets/{dist-8UD0A5sU.js → dist-4rKUx1vk.js} +0 -0
- /package/dist/assets/{dist-BhNN2V5a.js → dist-B1ExNQli.js} +0 -0
- /package/dist/assets/{dist-apDpadc4.js → dist-BXtR56No.js} +0 -0
- /package/dist/assets/{dist-CQqv2gQL.js → dist-Bh-vrbeU.js} +0 -0
- /package/dist/assets/{dist-D9Vhptds.js → dist-CTTKEfeu.js} +0 -0
- /package/dist/assets/{dist-ASlWkGgG.js → dist-CwHZ5Z_A.js} +0 -0
- /package/dist/assets/{dist-DxrbvUBv.js → dist-D699xT6P.js} +0 -0
- /package/dist/assets/{dist-BR9zyVPH.js → dist-DKnn_Tta.js} +0 -0
- /package/dist/assets/{dist-CVEvQ1Ex.js → dist-DbWhwe76.js} +0 -0
- /package/dist/assets/{dist-DBPtheKQ.js → dist-DmMcU97h.js} +0 -0
- /package/dist/assets/{dist-sVuk6mkQ.js → dist-DvbdggRI.js} +0 -0
- /package/dist/assets/{dist-OxxI-HeS.js → dist-SDxzhwJU.js} +0 -0
- /package/dist/assets/{dist-COnmrAVZ.js → dist-Sjq7q5Ez.js} +0 -0
- /package/dist/assets/{dist-CgC048vN.js → dist-epQooxQL.js} +0 -0
- /package/dist/assets/{dtd-D7nO7isU.js → dtd-C8APvYNQ.js} +0 -0
- /package/dist/assets/{duckdb-keywords-CSySeB8R.js → duckdb-keywords-CKBoTxEb.js} +0 -0
- /package/dist/assets/{dylan-qEhlQv4l.js → dylan-CTr_RHNL.js} +0 -0
- /package/dist/assets/{ebnf-KJaLpQez.js → ebnf-CviyCkP7.js} +0 -0
- /package/dist/assets/{ecl-cXHEjabG.js → ecl-BVnD0OAx.js} +0 -0
- /package/dist/assets/{eiffel-CUTEIYa-.js → eiffel-9mt0KSLh.js} +0 -0
- /package/dist/assets/{elm-DOfGHeKn.js → elm-CItjDkKL.js} +0 -0
- /package/dist/assets/{emotion-is-prop-valid.esm-D1keIaYa.js → emotion-is-prop-valid.esm-C7Gs50yh.js} +0 -0
- /package/dist/assets/{empty-state-B_US46Us.js → empty-state-DUEogWxf.js} +0 -0
- /package/dist/assets/{erlang-B5R7Byby.js → erlang-D8gZbSC3.js} +0 -0
- /package/dist/assets/{errors-Bfogio62.js → errors-Bhwg_4_Q.js} +0 -0
- /package/dist/assets/{esm-CX-gNDKf.js → esm-BQO8KtRU.js} +0 -0
- /package/dist/assets/{extends-DRbCSry7.js → extends-tyH9bzbk.js} +0 -0
- /package/dist/assets/{fcl-Cf241iHu.js → fcl-DjfeL5F6.js} +0 -0
- /package/dist/assets/{forth-BjV8SV3p.js → forth-DgH1dN75.js} +0 -0
- /package/dist/assets/{fortran-CvNblcug.js → fortran-DueLTtxK.js} +0 -0
- /package/dist/assets/{gas-D1YrZZUY.js → gas-BtO1qNqf.js} +0 -0
- /package/dist/assets/{gherkin-CAUl7roi.js → gherkin-Byo7wP7t.js} +0 -0
- /package/dist/assets/{groovy-CnmCDhLm.js → groovy-wqVc62K1.js} +0 -0
- /package/dist/assets/{haskell-qdBb4h_7.js → haskell-t8q2n4aR.js} +0 -0
- /package/dist/assets/{haxe-MQhLSFhI.js → haxe-I2Ep_IKg.js} +0 -0
- /package/dist/assets/{http-_roNBajA.js → http-VleqgIZJ.js} +0 -0
- /package/dist/assets/{icons-CrUXojcA.js → icons-CAcY8GzB.js} +0 -0
- /package/dist/assets/{idl-CcZzcWCI.js → idl-zLnMWGy-.js} +0 -0
- /package/dist/assets/{init-XMA8CWhh.js → init-C5GnArQr.js} +0 -0
- /package/dist/assets/{javascript-hE4QNtKl.js → javascript-Z0GGm0j8.js} +0 -0
- /package/dist/assets/{julia-BjrvvLkp.js → julia-iSGDYIgg.js} +0 -0
- /package/dist/assets/{katex-rvFxOCU-.js → katex-BUjpoqH9.js} +0 -0
- /package/dist/assets/{kbd-DvKpAc6K.js → kbd-DozzbQaK.js} +0 -0
- /package/dist/assets/{links-DzgPOFJ-.js → links-DXQarNcJ.js} +0 -0
- /package/dist/assets/{livescript-B01pNEzu.js → livescript-BFHCYYQr.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-CcIcmNa3.js → loro_wasm_bg-DbCRx7th.js} +0 -0
- /package/dist/assets/{lua-BwfRgSM6.js → lua-CReDSu5T.js} +0 -0
- /package/dist/assets/{marimo-icons-C_YDiXeg.js → marimo-icons-DyCeIvCg.js} +0 -0
- /package/dist/assets/{math-CeGhAAgQ.js → math-D5yoTCoa.js} +0 -0
- /package/dist/assets/{mathematica-DLi5eijp.js → mathematica-Zm2C8amS.js} +0 -0
- /package/dist/assets/{mbox-QweTYWJQ.js → mbox-WgafSHjo.js} +0 -0
- /package/dist/assets/{mirc-1J5TZ8Tf.js → mirc-BYSZ-Sqw.js} +0 -0
- /package/dist/assets/{mllike-DRzCrpbj.js → mllike-oFV79iRi.js} +0 -0
- /package/dist/assets/{modelica-GZKavTLw.js → modelica-Kw0oZiZv.js} +0 -0
- /package/dist/assets/{mscgen-HMNaCHuy.js → mscgen-zIXnH6Xb.js} +0 -0
- /package/dist/assets/{multi-icon-DEWnuZs2.js → multi-icon-CDO-SrVQ.js} +0 -0
- /package/dist/assets/{mumps-CzCxfP2m.js → mumps-CpHKxUaP.js} +0 -0
- /package/dist/assets/{nginx-Dfd7l9Sj.js → nginx-D7OKXoUe.js} +0 -0
- /package/dist/assets/{node-sql-parser-BvUFblwL.js → node-sql-parser-GMJwIlZ5.js} +0 -0
- /package/dist/assets/{ntriples-DT57g_ZF.js → ntriples-CKdsn4A2.js} +0 -0
- /package/dist/assets/{numbers-CYnquDho.js → numbers-D_Gm93M5.js} +0 -0
- /package/dist/assets/{objectWithoutPropertiesLoose-DP4vAkvg.js → objectWithoutPropertiesLoose-D67umz3-.js} +0 -0
- /package/dist/assets/{octave-CtuTaUjQ.js → octave-C2KzGqDI.js} +0 -0
- /package/dist/assets/{oz-BS8LEqKx.js → oz-DjI17vbg.js} +0 -0
- /package/dist/assets/{panel-context-BN0DQXiK.js → panel-context-DsLB_70p.js} +0 -0
- /package/dist/assets/{pascal-Db0ZEHQw.js → pascal-DkEHIeYy.js} +0 -0
- /package/dist/assets/{path-CkIaQHJO.js → path-CK3C5L0Q.js} +0 -0
- /package/dist/assets/{paths-D2lG83Oh.js → paths-bMgYkaP2.js} +0 -0
- /package/dist/assets/{perl-DgJKzgyz.js → perl-awUeMoRf.js} +0 -0
- /package/dist/assets/{pig-Dk6eYa40.js → pig-4piEzRGm.js} +0 -0
- /package/dist/assets/{play-DKSqmedg.js → play-l5KOWsHo.js} +0 -0
- /package/dist/assets/{plus-dVmh0yTy.js → plus-D1HlXYzG.js} +0 -0
- /package/dist/assets/{powershell-dW0qpS7j.js → powershell-BcdXyDpe.js} +0 -0
- /package/dist/assets/{preload-helper-BW0IMuFq.js → preload-helper-TXkS1QI3.js} +0 -0
- /package/dist/assets/{prop-types-RrUi-pOT.js → prop-types-DNlIPq6L.js} +0 -0
- /package/dist/assets/{properties-oMha4ix2.js → properties-BCPnyAME.js} +0 -0
- /package/dist/assets/{protobuf-CfWJ4EtB.js → protobuf-UUgrcPiO.js} +0 -0
- /package/dist/assets/{puppet-O2K_n-UM.js → puppet-CK_Jbc3D.js} +0 -0
- /package/dist/assets/{purify.es-BBn8CPhf.js → purify.es-ByGlPBcv.js} +0 -0
- /package/dist/assets/{python-qMKsSr4L.js → python-87A6eX9C.js} +0 -0
- /package/dist/assets/{q-ewn8d81Q.js → q-JHqp7Nwz.js} +0 -0
- /package/dist/assets/{r-CqF-AjDv.js → r-c8ebDReJ.js} +0 -0
- /package/dist/assets/{range-DNqFcYmr.js → range-DvAATiUD.js} +0 -0
- /package/dist/assets/{react-resizable-panels.browser.esm-DDRqG5ui.js → react-resizable-panels.browser.esm-Dmf4Xg1J.js} +0 -0
- /package/dist/assets/{refresh-ccw-DLpfIr8v.js → refresh-ccw-DY_cTm_K.js} +0 -0
- /package/dist/assets/{refresh-cw-CHAHPgkx.js → refresh-cw-Dd8FlTmm.js} +0 -0
- /package/dist/assets/{requests-CP6q3-4O.js → requests-A6SCIaF6.js} +0 -0
- /package/dist/assets/{rotate-ccw-hLlF_82X.js → rotate-ccw-2ZmPmSJe.js} +0 -0
- /package/dist/assets/{rpm-BqLq138P.js → rpm-CHLEEyak.js} +0 -0
- /package/dist/assets/{ruby-CQfbO3YY.js → ruby-Y-uPbf0g.js} +0 -0
- /package/dist/assets/{sas-BmpgVn6Q.js → sas-Mox1fRNZ.js} +0 -0
- /package/dist/assets/{save-8fSvKYJT.js → save-BNIs1Xrf.js} +0 -0
- /package/dist/assets/{scheme-rgyDg_wq.js → scheme-BnTHsLZG.js} +0 -0
- /package/dist/assets/{session-BrEm7qNv.js → session-DKzpcHdK.js} +0 -0
- /package/dist/assets/{settings-CzQUw9rV.js → settings-dVFT0AvU.js} +0 -0
- /package/dist/assets/{shell-Dndk6Ld6.js → shell-C8EAw2yh.js} +0 -0
- /package/dist/assets/{sieve-bGgktpLX.js → sieve-Dd1bnzub.js} +0 -0
- /package/dist/assets/{simple-mode-oMMOWqWz.js → simple-mode-BGiIHaLF.js} +0 -0
- /package/dist/assets/{smalltalk-CU43LrKS.js → smalltalk-BUSkf3e4.js} +0 -0
- /package/dist/assets/{solr-CJeCgAfj.js → solr-CDPrSrj5.js} +0 -0
- /package/dist/assets/{sparql-BycKC3X4.js → sparql-DeaDxQi8.js} +0 -0
- /package/dist/assets/{spreadsheet-BYYvgLKe.js → spreadsheet-BsJYzkOI.js} +0 -0
- /package/dist/assets/{sql-B5I6FC3m.js → sql-F2Gt8FSJ.js} +0 -0
- /package/dist/assets/{square-function-B006EYFX.js → square-function-B-8YRDsr.js} +0 -0
- /package/dist/assets/{src-CW27-Kjl.js → src-BgRVyE5A.js} +0 -0
- /package/dist/assets/{stex-0ac7Aukl.js → stex-FMMSUPAS.js} +0 -0
- /package/dist/assets/{stylus-CePwhvgW.js → stylus-DYCEsZr5.js} +0 -0
- /package/dist/assets/{swift-CfgglXjR.js → swift-Duztmfb3.js} +0 -0
- /package/dist/assets/{table-BhH-Mm8O.js → table-C-4zXNgf.js} +0 -0
- /package/dist/assets/{table-BCnp9gKC.js → table-Od8PbuV-.js} +0 -0
- /package/dist/assets/{tcl-D_gYSBm0.js → tcl-DI2Tsoc-.js} +0 -0
- /package/dist/assets/{textile-BEvFU9wV.js → textile-Bu0-gYeb.js} +0 -0
- /package/dist/assets/{tiddlywiki-hmNzZkq6.js → tiddlywiki-BiVbsin5.js} +0 -0
- /package/dist/assets/{tiki-BL1SzuSx.js → tiki-BjQr6gnj.js} +0 -0
- /package/dist/assets/{timer-CPT_vXom.js → timer-ubTuPSiq.js} +0 -0
- /package/dist/assets/{toDate-BqKH-Jd9.js → toDate-Cfp9W_O9.js} +0 -0
- /package/dist/assets/{toml-DGJRpV2e.js → toml-DS7p65H0.js} +0 -0
- /package/dist/assets/{trash-2-CAoNMkjq.js → trash-2-B7Q-bnsg.js} +0 -0
- /package/dist/assets/{trash-BZMAQneW.js → trash-Z_paTvAh.js} +0 -0
- /package/dist/assets/{treemap-Cf5pgJDk.js → treemap-D7anCkBi.js} +0 -0
- /package/dist/assets/{triangle-alert-qZo1ox6x.js → triangle-alert-C6CmrCxa.js} +0 -0
- /package/dist/assets/{troff-CUlohIux.js → troff-CmiSltql.js} +0 -0
- /package/dist/assets/{ttcn-nuQ3wCdy.js → ttcn-BcG2XAz0.js} +0 -0
- /package/dist/assets/{ttcn-cfg-DCxdE-sj.js → ttcn-cfg-rI2k2_Cz.js} +0 -0
- /package/dist/assets/{turtle-B2N96QpC.js → turtle-7DaLnk-7.js} +0 -0
- /package/dist/assets/{types-BfP_kuAY.js → types-CzVV1kKu.js} +0 -0
- /package/dist/assets/{types-C1RN112u.js → types-DNmFsWFO.js} +0 -0
- /package/dist/assets/{use-toast-Hc8CXlvz.js → use-toast-BhMe50aT.js} +0 -0
- /package/dist/assets/{useAsyncData-D-4ifFXh.js → useAsyncData-VEt7lMhG.js} +0 -0
- /package/dist/assets/{useDebounce-B0dx2Gp0.js → useDebounce-BvOHu0CE.js} +0 -0
- /package/dist/assets/{useDeepCompareMemoize-yyiB9aJX.js → useDeepCompareMemoize-Boltfl1B.js} +0 -0
- /package/dist/assets/{useIframeCapabilities-DTN9kFDq.js → useIframeCapabilities-C0zkgwSm.js} +0 -0
- /package/dist/assets/{useInterval-BJucVdV-.js → useInterval-B8uaa6vj.js} +0 -0
- /package/dist/assets/{useTheme-BYXBU1of.js → useTheme-BYu4ZPLV.js} +0 -0
- /package/dist/assets/{uuid-ClFZlR7U.js → uuid-ImXS-885.js} +0 -0
- /package/dist/assets/{vb-CBiIL_zx.js → vb-B69cws1B.js} +0 -0
- /package/dist/assets/{vbscript-B3Y69Iw0.js → vbscript-oR9jLSFn.js} +0 -0
- /package/dist/assets/{velocity-B5BPA7FX.js → velocity-CC4QjE_N.js} +0 -0
- /package/dist/assets/{verilog-BwmYR8E3.js → verilog-DbzXDa_i.js} +0 -0
- /package/dist/assets/{vhdl-VXFnDy2U.js → vhdl-qbVPPYo_.js} +0 -0
- /package/dist/assets/{web-vitals-BaMazlva.js → web-vitals--izkZsoM.js} +0 -0
- /package/dist/assets/{webidl-Bcmf9JWd.js → webidl-BkN24yvL.js} +0 -0
- /package/dist/assets/{workflow-BmeqNuSH.js → workflow-CJnGYDvM.js} +0 -0
- /package/dist/assets/{ws-CBdPISJL.js → ws-BYrDQlXa.js} +0 -0
- /package/dist/assets/{x-BI1M8X_v.js → x-CdLP7-v3.js} +0 -0
- /package/dist/assets/{xquery-8pWKOyFY.js → xquery-B3G1Qm2c.js} +0 -0
- /package/dist/assets/{yacas-BFcwo3Cx.js → yacas-DWdEPLXb.js} +0 -0
- /package/dist/assets/{z80-t3SBb7Lt.js → z80-cCig3JnZ.js} +0 -0
|
@@ -12,7 +12,7 @@ vi.mock("@/utils/storage/storage", () => ({
|
|
|
12
12
|
},
|
|
13
13
|
}));
|
|
14
14
|
|
|
15
|
-
import
|
|
15
|
+
import { cellId } from "@/__tests__/branded";
|
|
16
16
|
import { availableStorage } from "@/utils/storage/storage";
|
|
17
17
|
import { ChartSchema } from "../schemas";
|
|
18
18
|
import type { TabName } from "../storage";
|
|
@@ -37,7 +37,7 @@ describe("Chart Transforms Storage", () => {
|
|
|
37
37
|
|
|
38
38
|
it("should store and retrieve tab data", () => {
|
|
39
39
|
const store = getDefaultStore();
|
|
40
|
-
const
|
|
40
|
+
const cid = cellId("cell-1");
|
|
41
41
|
const tabData = {
|
|
42
42
|
tabName: "Tab 1" as TabName,
|
|
43
43
|
chartType: ChartType.LINE,
|
|
@@ -51,17 +51,17 @@ describe("Chart Transforms Storage", () => {
|
|
|
51
51
|
|
|
52
52
|
// Set the atom value
|
|
53
53
|
const newMap = new Map();
|
|
54
|
-
newMap.set(
|
|
54
|
+
newMap.set(cid, [tabData]);
|
|
55
55
|
store.set(tabsStorageAtom, newMap);
|
|
56
56
|
|
|
57
57
|
// Verify the value was set
|
|
58
58
|
const retrievedValue = store.get(tabsStorageAtom);
|
|
59
|
-
expect(retrievedValue.get(
|
|
59
|
+
expect(retrievedValue.get(cid)).toEqual([tabData]);
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
it("should handle multiple tabs for the same cell", () => {
|
|
63
63
|
const store = getDefaultStore();
|
|
64
|
-
const
|
|
64
|
+
const cid = cellId("cell-1");
|
|
65
65
|
const tabData1 = {
|
|
66
66
|
tabName: "Tab 1" as TabName,
|
|
67
67
|
chartType: ChartType.LINE,
|
|
@@ -85,12 +85,12 @@ describe("Chart Transforms Storage", () => {
|
|
|
85
85
|
|
|
86
86
|
// Set the atom value
|
|
87
87
|
const newMap = new Map();
|
|
88
|
-
newMap.set(
|
|
88
|
+
newMap.set(cid, [tabData1, tabData2]);
|
|
89
89
|
store.set(tabsStorageAtom, newMap);
|
|
90
90
|
|
|
91
91
|
// Verify the value was set
|
|
92
92
|
const retrievedValue = store.get(tabsStorageAtom);
|
|
93
|
-
expect(retrievedValue.get(
|
|
93
|
+
expect(retrievedValue.get(cid)).toEqual([tabData1, tabData2]);
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
|
|
@@ -112,6 +112,7 @@ export function generateColumns<T>({
|
|
|
112
112
|
headerTooltip,
|
|
113
113
|
showDataTypes,
|
|
114
114
|
calculateTopKRows,
|
|
115
|
+
fractionDigitsByColumn,
|
|
115
116
|
}: {
|
|
116
117
|
rowHeaders: FieldTypesWithExternalType;
|
|
117
118
|
selection: DataTableSelection;
|
|
@@ -122,6 +123,7 @@ export function generateColumns<T>({
|
|
|
122
123
|
headerTooltip?: Record<string, string>;
|
|
123
124
|
showDataTypes?: boolean;
|
|
124
125
|
calculateTopKRows?: CalculateTopKRows;
|
|
126
|
+
fractionDigitsByColumn?: Record<string, number>;
|
|
125
127
|
}): ColumnDef<T>[] {
|
|
126
128
|
// Row-headers are typically index columns
|
|
127
129
|
const rowHeadersSet = new Set(rowHeaders.map(([columnName]) => columnName));
|
|
@@ -138,6 +140,7 @@ export function generateColumns<T>({
|
|
|
138
140
|
rowHeader: isRowHeader,
|
|
139
141
|
dtype: types?.[1],
|
|
140
142
|
dataType: types?.[0],
|
|
143
|
+
minFractionDigits: fractionDigitsByColumn?.[key],
|
|
141
144
|
};
|
|
142
145
|
}
|
|
143
146
|
|
|
@@ -146,9 +149,23 @@ export function generateColumns<T>({
|
|
|
146
149
|
filterType: getFilterTypeForFieldType(types[0]),
|
|
147
150
|
dtype: types[1],
|
|
148
151
|
dataType: types[0],
|
|
152
|
+
minFractionDigits: fractionDigitsByColumn?.[key],
|
|
149
153
|
};
|
|
150
154
|
};
|
|
151
155
|
|
|
156
|
+
const getJustify = (key: string): "left" | "center" | "right" | undefined => {
|
|
157
|
+
// Explicit user override takes precedence
|
|
158
|
+
if (textJustifyColumns?.[key]) {
|
|
159
|
+
return textJustifyColumns[key];
|
|
160
|
+
}
|
|
161
|
+
// Auto right-align numeric columns
|
|
162
|
+
const dataType = getMeta(key).dataType;
|
|
163
|
+
if (dataType === "number" || dataType === "integer") {
|
|
164
|
+
return "right";
|
|
165
|
+
}
|
|
166
|
+
return undefined;
|
|
167
|
+
};
|
|
168
|
+
|
|
152
169
|
const columnKeys: string[] = [
|
|
153
170
|
...rowHeadersSet,
|
|
154
171
|
...fieldTypes.map(([columnName]) => columnName),
|
|
@@ -186,7 +203,7 @@ export function generateColumns<T>({
|
|
|
186
203
|
</div>
|
|
187
204
|
) : null;
|
|
188
205
|
|
|
189
|
-
const justify =
|
|
206
|
+
const justify = getJustify(key);
|
|
190
207
|
|
|
191
208
|
const headerWithType = (
|
|
192
209
|
<div
|
|
@@ -254,18 +271,21 @@ export function generateColumns<T>({
|
|
|
254
271
|
cell.toggleSelected?.();
|
|
255
272
|
}
|
|
256
273
|
|
|
257
|
-
const justify =
|
|
274
|
+
const justify = getJustify(key);
|
|
258
275
|
const wrapped = wrappedColumns?.includes(key);
|
|
259
276
|
const isCellSelected = cell?.getIsSelected?.() || false;
|
|
260
277
|
const canSelectCell =
|
|
261
278
|
(selection === "single-cell" || selection === "multi-cell") &&
|
|
262
279
|
!isCellSelected;
|
|
263
280
|
|
|
281
|
+
const dataType = column.columnDef.meta?.dataType;
|
|
282
|
+
const isNumeric = dataType === "number" || dataType === "integer";
|
|
264
283
|
const cellStyles = getCellStyleClass(
|
|
265
284
|
justify,
|
|
266
285
|
wrapped,
|
|
267
286
|
canSelectCell,
|
|
268
287
|
isCellSelected,
|
|
288
|
+
isNumeric,
|
|
269
289
|
);
|
|
270
290
|
|
|
271
291
|
const renderedCell = renderCellValue({
|
|
@@ -430,6 +450,7 @@ function getCellStyleClass(
|
|
|
430
450
|
wrapped: boolean | undefined,
|
|
431
451
|
canSelectCell: boolean,
|
|
432
452
|
isSelected: boolean,
|
|
453
|
+
isNumeric?: boolean,
|
|
433
454
|
): string {
|
|
434
455
|
return cn(
|
|
435
456
|
canSelectCell && "cursor-pointer",
|
|
@@ -438,6 +459,7 @@ function getCellStyleClass(
|
|
|
438
459
|
"w-full",
|
|
439
460
|
"text-left",
|
|
440
461
|
"truncate",
|
|
462
|
+
isNumeric && "tabular-nums",
|
|
441
463
|
justify === "center" && "text-center",
|
|
442
464
|
justify === "right" && "text-right",
|
|
443
465
|
wrapped && `${COLUMN_WRAPPING_STYLES} break-words`,
|
|
@@ -589,7 +611,18 @@ export function renderCellValue<TData, TValue>({
|
|
|
589
611
|
if (typeof value === "number") {
|
|
590
612
|
return (
|
|
591
613
|
<div onClick={selectCell} className={cellStyles}>
|
|
592
|
-
<LocaleNumber
|
|
614
|
+
<LocaleNumber
|
|
615
|
+
value={value}
|
|
616
|
+
minFractionDigits={column.columnDef.meta?.minFractionDigits}
|
|
617
|
+
/>
|
|
618
|
+
</div>
|
|
619
|
+
);
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
if (typeof value === "boolean") {
|
|
623
|
+
return (
|
|
624
|
+
<div onClick={selectCell} className={cellStyles}>
|
|
625
|
+
{value ? "True" : "False"}
|
|
593
626
|
</div>
|
|
594
627
|
);
|
|
595
628
|
}
|
|
@@ -635,9 +668,16 @@ export function renderCellValue<TData, TValue>({
|
|
|
635
668
|
);
|
|
636
669
|
}
|
|
637
670
|
|
|
638
|
-
export const LocaleNumber = ({
|
|
671
|
+
export const LocaleNumber = ({
|
|
672
|
+
value,
|
|
673
|
+
minFractionDigits,
|
|
674
|
+
}: {
|
|
675
|
+
value: number;
|
|
676
|
+
minFractionDigits?: number;
|
|
677
|
+
}) => {
|
|
639
678
|
const { locale } = useLocale();
|
|
640
679
|
const format = useNumberFormatter({
|
|
680
|
+
minimumFractionDigits: minFractionDigits,
|
|
641
681
|
maximumFractionDigits: maxFractionalDigits(locale),
|
|
642
682
|
});
|
|
643
683
|
return format.format(value);
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
import { DATA_CELL_ID } from "./cell-utils";
|
|
19
19
|
import { Filter } from "./filters";
|
|
20
20
|
import { selectedCellsAtom } from "./range-focus/atoms";
|
|
21
|
-
import {
|
|
21
|
+
import { getClipboardContent, getRawValue } from "./utils";
|
|
22
22
|
|
|
23
23
|
export const DataTableContextMenu = <TData,>({
|
|
24
24
|
contextMenuRef,
|
|
@@ -82,11 +82,15 @@ export const CellContextMenu = <TData,>({
|
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
const table = cell.getContext().table;
|
|
86
|
+
const displayedValue = cell.getValue();
|
|
87
|
+
const rawValue =
|
|
88
|
+
getRawValue(table, cell.row.index, cell.column.id) ?? displayedValue;
|
|
89
|
+
|
|
85
90
|
const handleCopyCell = () => {
|
|
86
91
|
try {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
copyToClipboard(stringValue);
|
|
92
|
+
const { text, html } = getClipboardContent(rawValue, displayedValue);
|
|
93
|
+
copyToClipboard(text, html);
|
|
90
94
|
} catch (error) {
|
|
91
95
|
Logger.error("Failed to copy context menu cell", error);
|
|
92
96
|
}
|
|
@@ -98,7 +102,7 @@ export const CellContextMenu = <TData,>({
|
|
|
98
102
|
const handleFilterCell = (operator: "in" | "not_in") => {
|
|
99
103
|
column.setFilterValue(
|
|
100
104
|
Filter.select({
|
|
101
|
-
options: [
|
|
105
|
+
options: [rawValue],
|
|
102
106
|
operator,
|
|
103
107
|
}),
|
|
104
108
|
);
|
|
@@ -38,12 +38,17 @@ import type { DownloadActionProps } from "./download-actions";
|
|
|
38
38
|
import { FilterPills } from "./filter-pills";
|
|
39
39
|
import { FocusRowFeature } from "./focus-row/feature";
|
|
40
40
|
import { useColumnPinning } from "./hooks/use-column-pinning";
|
|
41
|
+
import { useScrollContainerHeight } from "./hooks/use-scroll-container-height";
|
|
41
42
|
import { CellSelectionStats } from "./range-focus/cell-selection-stats";
|
|
42
43
|
import { CellSelectionProvider } from "./range-focus/provider";
|
|
43
44
|
import { DataTableBody, renderTableHeader } from "./renderers";
|
|
44
45
|
import { SearchBar } from "./SearchBar";
|
|
45
46
|
import { TableActions } from "./TableActions";
|
|
46
|
-
import
|
|
47
|
+
import {
|
|
48
|
+
type DataTableSelection,
|
|
49
|
+
MIN_ROWS_TO_VIRTUALIZE,
|
|
50
|
+
type TooManyRows,
|
|
51
|
+
} from "./types";
|
|
47
52
|
import { getStableRowId } from "./utils";
|
|
48
53
|
|
|
49
54
|
interface DataTableProps<TData> extends Partial<DownloadActionProps> {
|
|
@@ -52,6 +57,7 @@ interface DataTableProps<TData> extends Partial<DownloadActionProps> {
|
|
|
52
57
|
maxHeight?: number;
|
|
53
58
|
columns: ColumnDef<TData>[];
|
|
54
59
|
data: TData[];
|
|
60
|
+
rawData?: TData[]; // raw data for filtering/copying (present only if format_mapping is provided)
|
|
55
61
|
// Sorting
|
|
56
62
|
manualSorting?: boolean; // server-side sorting
|
|
57
63
|
sorting?: SortingState; // controlled sorting
|
|
@@ -103,6 +109,7 @@ const DataTableInternal = <TData,>({
|
|
|
103
109
|
maxHeight,
|
|
104
110
|
columns,
|
|
105
111
|
data,
|
|
112
|
+
rawData,
|
|
106
113
|
selection,
|
|
107
114
|
totalColumns,
|
|
108
115
|
totalRows,
|
|
@@ -197,6 +204,7 @@ const DataTableInternal = <TData,>({
|
|
|
197
204
|
],
|
|
198
205
|
data,
|
|
199
206
|
columns,
|
|
207
|
+
meta: { rawData },
|
|
200
208
|
getCoreRowModel: getCoreRowModel(),
|
|
201
209
|
// pagination
|
|
202
210
|
rowCount: totalRows === "too_many" ? undefined : totalRows,
|
|
@@ -265,36 +273,9 @@ const DataTableInternal = <TData,>({
|
|
|
265
273
|
});
|
|
266
274
|
|
|
267
275
|
const rowViewerPanelOpen = isPanelOpen?.("row-viewer") ?? false;
|
|
276
|
+
const virtualize = !pagination && data.length > MIN_ROWS_TO_VIRTUALIZE;
|
|
268
277
|
|
|
269
|
-
const tableRef =
|
|
270
|
-
|
|
271
|
-
// Why use a ref to set max-height on the wrapper?
|
|
272
|
-
// - position: sticky only works when the sticky element's nearest scrollable
|
|
273
|
-
// ancestor is its immediate container. If max-height/overflow are applied
|
|
274
|
-
// on a grandparent, sticky table headers (th) will not stick.
|
|
275
|
-
// - We keep the scroll wrapper colocated with the base Table component, but
|
|
276
|
-
// derive the scroll boundary from maxHeight here to avoid coupling UI base
|
|
277
|
-
// components to data-table specifics or expanding their API surface.
|
|
278
|
-
// - Setting styles on the table's direct wrapper ensures the header sticks
|
|
279
|
-
// reliably across browsers without changing upstream components.
|
|
280
|
-
React.useEffect(() => {
|
|
281
|
-
if (!tableRef.current) {
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
const wrapper = tableRef.current.parentElement as HTMLDivElement | null;
|
|
285
|
-
if (!wrapper) {
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
if (maxHeight) {
|
|
289
|
-
wrapper.style.maxHeight = `${maxHeight}px`;
|
|
290
|
-
// Ensure wrapper scrolls
|
|
291
|
-
if (!wrapper.style.overflow) {
|
|
292
|
-
wrapper.style.overflow = "auto";
|
|
293
|
-
}
|
|
294
|
-
} else {
|
|
295
|
-
wrapper.style.removeProperty("max-height");
|
|
296
|
-
}
|
|
297
|
-
}, [maxHeight]);
|
|
278
|
+
const tableRef = useScrollContainerHeight({ maxHeight, virtualize });
|
|
298
279
|
|
|
299
280
|
return (
|
|
300
281
|
<div className={cn(wrapperClassName, "flex flex-col space-y-1")}>
|
|
@@ -314,13 +295,14 @@ const DataTableInternal = <TData,>({
|
|
|
314
295
|
{showLoadingBar && (
|
|
315
296
|
<thead className="absolute top-0 left-0 h-[3px] w-1/2 bg-primary animate-slide" />
|
|
316
297
|
)}
|
|
317
|
-
{renderTableHeader(table, Boolean(maxHeight))}
|
|
298
|
+
{renderTableHeader(table, virtualize || Boolean(maxHeight))}
|
|
318
299
|
<DataTableBody
|
|
319
300
|
table={table}
|
|
320
301
|
columns={columns}
|
|
321
302
|
rowViewerPanelOpen={rowViewerPanelOpen}
|
|
322
303
|
getRowIndex={getPaginatedRowIndex}
|
|
323
304
|
viewedRowIdx={viewedRowIdx}
|
|
305
|
+
virtualize={virtualize}
|
|
324
306
|
/>
|
|
325
307
|
</Table>
|
|
326
308
|
</div>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { useEffect, useLayoutEffect, useRef } from "react";
|
|
4
|
+
import {
|
|
5
|
+
DEFAULT_VIRTUAL_ROWS,
|
|
6
|
+
TABLE_HEADER_HEIGHT_PX,
|
|
7
|
+
TABLE_ROW_HEIGHT_PX,
|
|
8
|
+
} from "../types";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Manages the scroll container's max-height for the data table.
|
|
12
|
+
*
|
|
13
|
+
* Why set max-height on the table's direct wrapper via a ref?
|
|
14
|
+
* - `position: sticky` only works when the sticky element's nearest scrollable
|
|
15
|
+
* ancestor is its immediate container. If max-height/overflow are applied on
|
|
16
|
+
* a grandparent, sticky `<th>` elements will not stick.
|
|
17
|
+
* - The <Table> UI component wraps <table> in a div with overflow-auto. We
|
|
18
|
+
* derive the scroll boundary from this wrapper (tableRef.parentElement) to
|
|
19
|
+
* keep sticky headers working without coupling base UI components to
|
|
20
|
+
* data-table specifics or expanding their API surface.
|
|
21
|
+
*
|
|
22
|
+
* 3 scenarios:
|
|
23
|
+
* - maxHeight applied directly. This always takes preference
|
|
24
|
+
* - Virtualize without maxHeight: observed via ResizeObserver on <thead>
|
|
25
|
+
* so the container reacts to header size changes (charts loading, toggles).
|
|
26
|
+
* - No maxHeight and no virtualization: render everything
|
|
27
|
+
* in practice virtualization kicks in after 100 rows with pagination disabled
|
|
28
|
+
*/
|
|
29
|
+
export function useScrollContainerHeight({
|
|
30
|
+
maxHeight,
|
|
31
|
+
virtualize,
|
|
32
|
+
}: {
|
|
33
|
+
maxHeight?: number;
|
|
34
|
+
virtualize: boolean;
|
|
35
|
+
}) {
|
|
36
|
+
const tableRef = useRef<HTMLTableElement | null>(null);
|
|
37
|
+
|
|
38
|
+
// Handle explicit maxHeight and non-virtualize cases synchronously
|
|
39
|
+
// before paint to avoid flickering.
|
|
40
|
+
useLayoutEffect(() => {
|
|
41
|
+
if (!tableRef.current) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const wrapper = tableRef.current.parentElement as HTMLDivElement | null;
|
|
45
|
+
if (!wrapper) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (maxHeight) {
|
|
49
|
+
wrapper.style.maxHeight = `${maxHeight}px`;
|
|
50
|
+
if (!wrapper.style.overflow) {
|
|
51
|
+
wrapper.style.overflow = "auto";
|
|
52
|
+
}
|
|
53
|
+
} else if (!virtualize) {
|
|
54
|
+
wrapper.style.removeProperty("max-height");
|
|
55
|
+
}
|
|
56
|
+
// When virtualizing without an explicit maxHeight, the ResizeObserver
|
|
57
|
+
// below handles setting maxHeight reactively based on actual header size.
|
|
58
|
+
}, [maxHeight, virtualize]);
|
|
59
|
+
|
|
60
|
+
// When virtualizing without an explicit maxHeight, observe the <thead> for
|
|
61
|
+
// size changes (column summaries, charts loading async, header toggle) and
|
|
62
|
+
// recompute the scroll container height accordingly.
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (!virtualize || maxHeight) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const table = tableRef.current;
|
|
68
|
+
if (!table) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const wrapper = table.parentElement as HTMLDivElement | null;
|
|
72
|
+
const thead = table.querySelector("thead");
|
|
73
|
+
if (!wrapper || !thead) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const updateMaxHeight = () => {
|
|
77
|
+
const headerHeight =
|
|
78
|
+
thead.getBoundingClientRect().height || TABLE_HEADER_HEIGHT_PX;
|
|
79
|
+
// Skip virtual spacer rows — they have arbitrary heights for scroll offset.
|
|
80
|
+
const firstDataRow = table.querySelector(
|
|
81
|
+
"tbody tr:not([data-virtual-spacer])",
|
|
82
|
+
);
|
|
83
|
+
const rowHeight =
|
|
84
|
+
firstDataRow?.getBoundingClientRect().height || TABLE_ROW_HEIGHT_PX;
|
|
85
|
+
wrapper.style.maxHeight = `${DEFAULT_VIRTUAL_ROWS * rowHeight + headerHeight}px`;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// Set initial height
|
|
89
|
+
updateMaxHeight();
|
|
90
|
+
|
|
91
|
+
const observer = new ResizeObserver(updateMaxHeight);
|
|
92
|
+
observer.observe(thead);
|
|
93
|
+
return () => observer.disconnect();
|
|
94
|
+
}, [virtualize, maxHeight]);
|
|
95
|
+
|
|
96
|
+
return tableRef;
|
|
97
|
+
}
|
|
@@ -403,7 +403,10 @@ describe("cell selection atoms", () => {
|
|
|
403
403
|
beforeEach(() => {
|
|
404
404
|
// Reset mocks before each test
|
|
405
405
|
vi.mocked(getCellValues).mockClear();
|
|
406
|
-
vi.mocked(getCellValues).mockReturnValue(
|
|
406
|
+
vi.mocked(getCellValues).mockReturnValue({
|
|
407
|
+
text: "mocked cell values",
|
|
408
|
+
html: undefined,
|
|
409
|
+
});
|
|
407
410
|
});
|
|
408
411
|
|
|
409
412
|
afterEach(() => {
|
|
@@ -424,7 +427,10 @@ describe("cell selection atoms", () => {
|
|
|
424
427
|
});
|
|
425
428
|
|
|
426
429
|
expect(getCellValues).toHaveBeenCalledWith(mockTable, selectedCells);
|
|
427
|
-
expect(copyToClipboard).toHaveBeenCalledWith(
|
|
430
|
+
expect(copyToClipboard).toHaveBeenCalledWith(
|
|
431
|
+
"mocked cell values",
|
|
432
|
+
undefined,
|
|
433
|
+
);
|
|
428
434
|
expect(onCopyComplete).toHaveBeenCalledWith();
|
|
429
435
|
expect(state.copiedCells).toEqual(selectedCells);
|
|
430
436
|
});
|
|
@@ -56,12 +56,14 @@ export function createMockRow(
|
|
|
56
56
|
export function createMockTable(
|
|
57
57
|
rows: Row<unknown>[],
|
|
58
58
|
columns: Column<unknown>[],
|
|
59
|
+
opts?: { rawData?: unknown[] },
|
|
59
60
|
): Table<unknown> {
|
|
60
61
|
return {
|
|
61
62
|
getRow: (id: string) => rows.find((row) => row.id === id),
|
|
62
63
|
getRowModel: () => ({ rows }),
|
|
63
64
|
getColumn: (columnId: string) => columns.find((col) => col.id === columnId),
|
|
64
65
|
getAllColumns: () => columns,
|
|
66
|
+
options: { meta: { rawData: opts?.rawData } },
|
|
65
67
|
} as unknown as Table<unknown>;
|
|
66
68
|
}
|
|
67
69
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { isInteractiveTarget } from "../use-cell-range-selection";
|
|
5
|
+
|
|
6
|
+
function createMouseEvent(
|
|
7
|
+
target: HTMLElement,
|
|
8
|
+
currentTarget: HTMLElement,
|
|
9
|
+
): React.MouseEvent {
|
|
10
|
+
return { target, currentTarget } as unknown as React.MouseEvent;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
describe("isInteractiveTarget", () => {
|
|
14
|
+
it("returns false when target is the cell itself", () => {
|
|
15
|
+
const cell = document.createElement("td");
|
|
16
|
+
expect(isInteractiveTarget(createMouseEvent(cell, cell))).toBe(false);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("returns false when clicking plain text inside a cell", () => {
|
|
20
|
+
const cell = document.createElement("td");
|
|
21
|
+
const span = document.createElement("span");
|
|
22
|
+
cell.append(span);
|
|
23
|
+
expect(isInteractiveTarget(createMouseEvent(span, cell))).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it.each([
|
|
27
|
+
"input",
|
|
28
|
+
"button",
|
|
29
|
+
"select",
|
|
30
|
+
"textarea",
|
|
31
|
+
])("returns true when clicking a <%s>", (tag) => {
|
|
32
|
+
const cell = document.createElement("td");
|
|
33
|
+
const el = document.createElement(tag);
|
|
34
|
+
cell.append(el);
|
|
35
|
+
expect(isInteractiveTarget(createMouseEvent(el, cell))).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("returns true when clicking an <a> link", () => {
|
|
39
|
+
const cell = document.createElement("td");
|
|
40
|
+
const a = document.createElement("a");
|
|
41
|
+
a.href = "#";
|
|
42
|
+
cell.append(a);
|
|
43
|
+
expect(isInteractiveTarget(createMouseEvent(a, cell))).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("returns true when clicking a <label>", () => {
|
|
47
|
+
const cell = document.createElement("td");
|
|
48
|
+
const label = document.createElement("label");
|
|
49
|
+
cell.append(label);
|
|
50
|
+
expect(isInteractiveTarget(createMouseEvent(label, cell))).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('returns true for element with role="checkbox"', () => {
|
|
54
|
+
const cell = document.createElement("td");
|
|
55
|
+
const div = document.createElement("div");
|
|
56
|
+
div.setAttribute("role", "checkbox");
|
|
57
|
+
cell.append(div);
|
|
58
|
+
expect(isInteractiveTarget(createMouseEvent(div, cell))).toBe(true);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('returns true for element with role="button"', () => {
|
|
62
|
+
const cell = document.createElement("td");
|
|
63
|
+
const div = document.createElement("div");
|
|
64
|
+
div.setAttribute("role", "button");
|
|
65
|
+
cell.append(div);
|
|
66
|
+
expect(isInteractiveTarget(createMouseEvent(div, cell))).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('returns true for contenteditable="true"', () => {
|
|
70
|
+
const cell = document.createElement("td");
|
|
71
|
+
const div = document.createElement("div");
|
|
72
|
+
div.setAttribute("contenteditable", "true");
|
|
73
|
+
cell.append(div);
|
|
74
|
+
expect(isInteractiveTarget(createMouseEvent(div, cell))).toBe(true);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it("returns true when clicking a child nested inside an interactive element", () => {
|
|
78
|
+
const cell = document.createElement("td");
|
|
79
|
+
const button = document.createElement("button");
|
|
80
|
+
const icon = document.createElement("span");
|
|
81
|
+
button.append(icon);
|
|
82
|
+
cell.append(button);
|
|
83
|
+
expect(isInteractiveTarget(createMouseEvent(icon, cell))).toBe(true);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("returns true when clicking inside a marimo-ui-element", () => {
|
|
87
|
+
const cell = document.createElement("td");
|
|
88
|
+
const marimoEl = document.createElement("marimo-ui-element");
|
|
89
|
+
const inner = document.createElement("div");
|
|
90
|
+
marimoEl.append(inner);
|
|
91
|
+
cell.append(marimoEl);
|
|
92
|
+
expect(isInteractiveTarget(createMouseEvent(inner, cell))).toBe(true);
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("returns true when clicking the marimo-ui-element itself", () => {
|
|
96
|
+
const cell = document.createElement("td");
|
|
97
|
+
const marimoEl = document.createElement("marimo-ui-element");
|
|
98
|
+
cell.append(marimoEl);
|
|
99
|
+
expect(isInteractiveTarget(createMouseEvent(marimoEl, cell))).toBe(true);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it("returns false when clicking a non-interactive div", () => {
|
|
103
|
+
const cell = document.createElement("td");
|
|
104
|
+
const wrapper = document.createElement("div");
|
|
105
|
+
const text = document.createElement("span");
|
|
106
|
+
wrapper.append(text);
|
|
107
|
+
cell.append(wrapper);
|
|
108
|
+
expect(isInteractiveTarget(createMouseEvent(text, cell))).toBe(false);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it("returns false when target is a non-Element (e.g. Text node)", () => {
|
|
112
|
+
const cell = document.createElement("td");
|
|
113
|
+
const textNode = document.createTextNode("hello");
|
|
114
|
+
cell.append(textNode);
|
|
115
|
+
expect(isInteractiveTarget(createMouseEvent(textNode as never, cell))).toBe(
|
|
116
|
+
false,
|
|
117
|
+
);
|
|
118
|
+
});
|
|
119
|
+
});
|