@marimo-team/frontend 0.21.2-dev6 → 0.21.2-dev62
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-C-nDPVVw.js +1 -0
- package/dist/assets/ConnectedDataExplorerComponent-B5igOqdA.js +1 -0
- package/dist/assets/DeferredRequestRegistry-B8jPCuU1.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-C5ZzjCQG.js +1 -0
- package/dist/assets/JsonOutput-bhD4i0Fm.js +46 -0
- package/dist/assets/LazyAnyLanguageCodeMirror-C58z97yX.js +2 -0
- package/dist/assets/Lora-VariableFont_wght-CZceb_kH.woff2 +0 -0
- package/dist/assets/MarimoErrorOutput-BIh0hMl8.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-CRY6pZVc.js +1 -0
- package/dist/assets/add-cell-with-ai-BvN8AbcB.js +92 -0
- package/dist/assets/add-connection-dialog-BvzGJCV7.js +167 -0
- package/dist/assets/agent-panel-DLrLHhZB.js +287 -0
- package/dist/assets/ai-model-dropdown-CQDhHQ1r.js +5 -0
- package/dist/assets/alert-dialog-Baw3WWPa.js +11 -0
- package/dist/assets/any-language-editor-DwTh8fpE.js +1 -0
- package/dist/assets/apl-BvMImcFf.js +1 -0
- package/dist/assets/app-config-button-CnR7XJXP.js +1 -0
- package/dist/assets/arc-DUSwcTI9.js +1 -0
- package/dist/assets/architecture-7HQA4BMR-DoF6afh3.js +1 -0
- package/dist/assets/architectureDiagram-VXUJARFQ-d3bjsML7.js +36 -0
- package/dist/assets/asciiarmor-BYYwBbrl.js +1 -0
- package/dist/assets/asn1-Dlt8rkAb.js +1 -0
- package/dist/assets/azure-DMJRLvDT.js +1 -0
- package/dist/assets/blockDiagram-VD42YOAC-CjpBwM9S.js +122 -0
- package/dist/assets/brainfuck-B1Z5ou__.js +1 -0
- package/dist/assets/c4Diagram-YG6GDRKO-BsB04ueE.js +10 -0
- package/dist/assets/cache-panel-B9gltP7l.js +1 -0
- package/dist/assets/cell-editor-D5XEomtX.js +22 -0
- package/dist/assets/cell-link-Cp4c28Yf.js +1 -0
- package/dist/assets/cells-DiVpbkA6.js +230 -0
- package/dist/assets/channel-BjUuxbyU.js +1 -0
- package/dist/assets/chat-display-DhUQL9pu.js +1 -0
- package/dist/assets/chat-panel-fxitp0Hy.js +3 -0
- package/dist/assets/chunk-4BX2VUAB-DhvNmHH5.js +1 -0
- package/dist/assets/chunk-55IACEB6-DPm6ES7n.js +1 -0
- package/dist/assets/chunk-5FQGJX7Z-BSe8eGYF.js +113 -0
- package/dist/assets/chunk-ABZYJK2D-Cw3YveaS.js +80 -0
- package/dist/assets/chunk-ATLVNIR6-ChKiaY37.js +1 -0
- package/dist/assets/chunk-B4BG7PRW-CjzWXMFh.js +165 -0
- package/dist/assets/chunk-CVBHYZKI-BX0N_ipT.js +1 -0
- package/dist/assets/chunk-DI55MBZ5-BLrTiPQ-.js +220 -0
- package/dist/assets/chunk-EXTU4WIE-DEQUOsSM.js +1 -0
- package/dist/assets/chunk-FMBD7UC4-BDlH9XLH.js +15 -0
- package/dist/assets/chunk-HN2XXSSU-ujlBpRMF.js +1 -0
- package/dist/assets/chunk-JA3XYJ7Z-DVg9ra4h.js +70 -0
- package/dist/assets/chunk-JZLCHNYA-BTjSP-Yu.js +54 -0
- package/dist/assets/chunk-MI3HLSF2-D9JXkg6-.js +32 -0
- package/dist/assets/chunk-N4CR4FBY-U_urcDYs.js +2 -0
- package/dist/assets/chunk-QN33PNHL-rFbjvOIx.js +1 -0
- package/dist/assets/chunk-QXUST7PY-BQj8er3i.js +7 -0
- package/dist/assets/chunk-QZHKN3VN-zZhG5AHT.js +1 -0
- package/dist/assets/chunk-S3R3BYOJ-ZHSbXnZr.js +2 -0
- package/dist/assets/chunk-TZMSLE5B-BAOCWmWp.js +1 -0
- package/dist/assets/classDiagram-2ON5EDUG-Dk_A06Wi.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-CI0Lejhn.js +1 -0
- package/dist/assets/clike-D1aNLn0X.js +1 -0
- package/dist/assets/clojure-DjNF1_gb.js +1 -0
- package/dist/assets/cmake-BDQMYLKM.js +1 -0
- package/dist/assets/cobol-DuPGAg14.js +1 -0
- package/dist/assets/code-block-37QAKDTI-BU3oxVk6.js +2 -0
- package/dist/assets/coffeescript-Cpt7RKvC.js +1 -0
- package/dist/assets/column-preview-CWToI8XM.js +1 -0
- package/dist/assets/command-B9VNhm0p.js +1 -0
- package/dist/assets/command-palette-ur_xyrxX.js +1 -0
- package/dist/assets/common-BqZ5L0i8.js +1 -0
- package/dist/assets/commonlisp-BRjl0xya.js +1 -0
- package/dist/assets/components-BouDP-tv.js +1 -0
- package/dist/assets/components-CUetByBv.js +1 -0
- package/dist/assets/config-DqxNMQDN.js +1 -0
- package/dist/assets/context-CqNy_uER.js +1 -0
- package/dist/assets/context-aware-panel-CD_txOWw.js +3 -0
- package/dist/assets/copy-CcUDATFX.js +1 -0
- package/dist/assets/copy-icon-WvgZ60QO.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-C4qI5Omf.js +1 -0
- package/dist/assets/createReducer-Dvh64vBW.js +1 -0
- package/dist/assets/crystal-BJ72BOy1.js +1 -0
- package/dist/assets/css-D-8RA_n9.js +1 -0
- package/dist/assets/cypher-qOLKQlRB.js +1 -0
- package/dist/assets/d-iOURkVzR.js +1 -0
- package/dist/assets/dagre-6UL2VRFP-CoEAbEhB.js +4 -0
- package/dist/assets/data-grid-overlay-editor-DXzdnLZF.js +1 -0
- package/dist/assets/datasource-C5fKDIEK.js +3 -0
- package/dist/assets/dates-CTqMeMGY.js +1 -0
- package/dist/assets/dependency-graph-panel-BCYRlR0F.js +5 -0
- package/dist/assets/diagram-PSM6KHXK-CzPUkhGz.js +24 -0
- package/dist/assets/diagram-QEK2KX5R-D5RBmWAK.js +43 -0
- package/dist/assets/diagram-S2PKOQOG-C8PeRX7S.js +24 -0
- package/dist/assets/dialog-C_NcD2pn.js +1 -0
- package/dist/assets/diff-Cdd81Zxl.js +1 -0
- package/dist/assets/dist-1u2or7ID.js +1 -0
- package/dist/assets/dist-6P6vjf93.js +1 -0
- package/dist/assets/dist-BWa7crGu.js +1 -0
- package/dist/assets/dist-BZOFXjSq.js +1 -0
- package/dist/assets/dist-BatEf-0f.js +1 -0
- package/dist/assets/dist-BgRFL8FO.js +1 -0
- package/dist/assets/dist-C6ohaMKU.js +6 -0
- package/dist/assets/dist-C8sUhiRj.js +1 -0
- package/dist/assets/dist-CO9Pg2Rc.js +1 -0
- package/dist/assets/dist-CSV6H5w_.js +1 -0
- package/dist/assets/dist-Cd9M8gLO.js +1 -0
- package/dist/assets/dist-Cj6Bv4PM.js +1 -0
- package/dist/assets/dist-CjkJ83NO.js +1 -0
- package/dist/assets/dist-D6IRobNQ.js +1 -0
- package/dist/assets/dist-DBaxVoPL.js +1 -0
- package/dist/assets/dist-DQg1jiNa.js +1 -0
- package/dist/assets/dist-DVCqT940.js +1 -0
- package/dist/assets/dist-DXjL2dGI.js +1 -0
- package/dist/assets/dist-DZurUgwR.js +1 -0
- package/dist/assets/dist-D_QUx5Gn.js +1 -0
- package/dist/assets/dist-DgEPWvX2.js +1 -0
- package/dist/assets/dist-Dq1aTs7B.js +1 -0
- package/dist/assets/dist-Dq3BlK4R.js +1 -0
- package/dist/assets/dist-EtGG9C1A.js +1 -0
- package/dist/assets/dist-NjId5Gdz.js +1 -0
- package/dist/assets/dist-NoS9f1Fr.js +1 -0
- package/dist/assets/dist-i55eG_gB.js +1 -0
- package/dist/assets/dist-rrswzGsS.js +1 -0
- package/dist/assets/dist-vu0dYsZ6.js +1 -0
- package/dist/assets/dist-wAlLVqgL.js +1 -0
- package/dist/assets/dockerfile-t2fxOBWV.js +1 -0
- package/dist/assets/documentation-panel-B-pPPA6b.js +1 -0
- package/dist/assets/download-UmTPygP7.js +9 -0
- package/dist/assets/dropdown-menu-BehqiLFL.js +1 -0
- package/dist/assets/dtd-CXebdwLo.js +1 -0
- package/dist/assets/dylan-YUx5_Nke.js +1 -0
- package/dist/assets/ecl-CktOv__x.js +1 -0
- package/dist/assets/edit-page-CxaQclsT.js +13 -0
- package/dist/assets/eiffel-Cwa25B6x.js +1 -0
- package/dist/assets/elm-COtRRWOj.js +1 -0
- package/dist/assets/en-US-f8tajDx1.js +1 -0
- package/dist/assets/erDiagram-Q2GNP2WA-Bvb9X3rD.js +60 -0
- package/dist/assets/erlang-Ir3c4mPd.js +1 -0
- package/dist/assets/error-banner-BYG94WiL.js +1 -0
- package/dist/assets/error-panel-CpC5W_ax.js +1 -0
- package/dist/assets/es-DKHH3Swu.js +5 -0
- package/dist/assets/esm-Clp2XqMu.js +1 -0
- package/dist/assets/esm-DnSMDF4m.js +1 -0
- package/dist/assets/factor-CwMUgBOu.js +1 -0
- package/dist/assets/factor-DLUSHz6o.js +1 -0
- package/dist/assets/field-BEgvDIrV.js +1 -0
- package/dist/assets/file-explorer-panel-CrD6YkZ_.js +26 -0
- package/dist/assets/file-icons-BTQcwa4T.js +1 -0
- package/dist/assets/floating-outline-Dz5Wcbfw.js +1 -0
- package/dist/assets/flowDiagram-NV44I4VS-CF0XcGrZ.js +162 -0
- package/dist/assets/focus-BRTg8M44.js +1 -0
- package/dist/assets/form-qtFXuhlh.js +2 -0
- package/dist/assets/formats-CQWEZHk-.js +1 -0
- package/dist/assets/formatting-DBrNlcJ6.js +1 -0
- package/dist/assets/forth-DdV4URDJ.js +1 -0
- package/dist/assets/fortran-rTDtSjFc.js +1 -0
- package/dist/assets/gallery-page-DhOJHDwV.js +1 -0
- package/dist/assets/ganttDiagram-JELNMOA3-BXfHO6g0.js +267 -0
- package/dist/assets/gas-B20k3keQ.js +1 -0
- package/dist/assets/gherkin-DdH6eiN0.js +1 -0
- package/dist/assets/gitGraph-G5XIXVHT-D3o7km_A.js +1 -0
- package/dist/assets/gitGraphDiagram-V2S2FVAM-Blhov9dO.js +65 -0
- package/dist/assets/glide-data-editor-CO6jMjYm.js +132 -0
- package/dist/assets/globals-DD4XdbWe.js +1 -0
- package/dist/assets/groovy-k_2ke765.js +1 -0
- package/dist/assets/haskell-JTqAy6cw.js +1 -0
- package/dist/assets/haxe-g4mjq9YQ.js +1 -0
- package/dist/assets/home-page-CwgtN9Ku.js +4 -0
- package/dist/assets/hooks-CLoML3Pf.js +1 -0
- package/dist/assets/html-to-image-CRCamxYo.js +2 -0
- package/dist/assets/idl-CQEReZIk.js +1 -0
- package/dist/assets/index-BrQynBQn.js +38 -0
- package/dist/assets/index-DtdvIKY3.css +2 -0
- package/dist/assets/info-VBDWY6EO-CPJvjUKi.js +1 -0
- package/dist/assets/infoDiagram-HS3SLOUP-CCrt0lHA.js +2 -0
- package/dist/assets/input-lyDIN6R6.js +1 -0
- package/dist/assets/isValid-DY4Mgbr7.js +1 -0
- package/dist/assets/javascript-Th71hKcK.js +1 -0
- package/dist/assets/journeyDiagram-XKPGCS4Q-Bs_9B9e_.js +139 -0
- package/dist/assets/julia-KdjfFIx7.js +1 -0
- package/dist/assets/kanban-definition-3W4ZIXB7-_GEp627b.js +89 -0
- package/dist/assets/katex-BalO4WMU.js +1 -0
- package/dist/assets/kiosk-mode-Di6uNlNd.js +1 -0
- package/dist/assets/label-CNWsXpEn.js +1 -0
- package/dist/assets/layout-OxzkS5En.js +5 -0
- package/dist/assets/line-BKm-YkCh.js +1 -0
- package/dist/assets/linear-DG7yljSg.js +1 -0
- package/dist/assets/links-Bfp-iNRX.js +1 -0
- package/dist/assets/livescript-OIMP9q9l.js +1 -0
- package/dist/assets/logs-panel-Dt4wzfgH.js +1 -0
- package/dist/assets/loro_wasm_bg-CvVVQqkx.js +1 -0
- package/dist/assets/lua-blzLZg7R.js +1 -0
- package/dist/assets/markdown-renderer-nMv2xwHt.js +10 -0
- package/dist/assets/mathematica-CMJa84MS.js +1 -0
- package/dist/assets/mbox-DVlt9Sx8.js +1 -0
- package/dist/assets/menu-items-BpHXKv51.js +1 -0
- package/dist/assets/mermaid-4DMBBIKO-gmMzGFR4.js +1 -0
- package/dist/assets/mermaid-DEOW_c2X.js +11 -0
- package/dist/assets/mermaid-parser.core-ChpHatjH.js +4 -0
- package/dist/assets/mhchem-DqNBdKjC.js +1 -0
- package/dist/assets/mindmap-definition-VGOIOE7T-CsErmnfz.js +68 -0
- package/dist/assets/mirc-CE9zFxnR.js +1 -0
- package/dist/assets/mllike-UPrOWD4R.js +1 -0
- package/dist/assets/modelica-CXEKMd0n.js +1 -0
- package/dist/assets/mscgen-CzEcWkMH.js +1 -0
- package/dist/assets/multi-map-0vmox9BD.js +1 -0
- package/dist/assets/mumps-DNi45Qjm.js +1 -0
- package/dist/assets/name-cell-input-CwvGCJkg.js +1 -0
- package/dist/assets/nsis-10Du03KF.js +1 -0
- package/dist/assets/nsis-Cjsw1q_J.js +1 -0
- package/dist/assets/ntriples-ByafJqO3.js +1 -0
- package/dist/assets/number-overlay-editor-zZDGu9D2.js +9 -0
- package/dist/assets/octave-Bg9NfY8T.js +1 -0
- package/dist/assets/ordinal-CIVqSC4M.js +1 -0
- package/dist/assets/outline-panel-CCmk1ERZ.js +1 -0
- package/dist/assets/oz-BqUh_R9x.js +1 -0
- package/dist/assets/packages-panel-BzayhsFC.js +1 -0
- package/dist/assets/packet-DYOGHKS2-0_hZggkb.js +1 -0
- package/dist/assets/panels-B7hsDiui.js +1 -0
- package/dist/assets/pascal-T5LJ_IPG.js +1 -0
- package/dist/assets/perl-QB_H1sT2.js +1 -0
- package/dist/assets/pie-VRWISCQL-QeXFV_RN.js +1 -0
- package/dist/assets/pieDiagram-ADFJNKIX-CHFQxGML.js +30 -0
- package/dist/assets/pig-BX8GE3n0.js +1 -0
- package/dist/assets/popover-BzqPa2Au.js +1 -0
- package/dist/assets/powershell-CgQaEAdZ.js +1 -0
- package/dist/assets/precisionRound-NX56vp6K.js +1 -0
- package/dist/assets/process-output-D_zUglHE.js +1 -0
- package/dist/assets/properties-obn8TWyy.js +1 -0
- package/dist/assets/protobuf-C-zxlF8D.js +1 -0
- package/dist/assets/pug--0L5ulw9.js +1 -0
- package/dist/assets/pug-C9pOca2F.js +1 -0
- package/dist/assets/puppet-05PW0eq8.js +1 -0
- package/dist/assets/python-DTi_lJAD.js +1 -0
- package/dist/assets/q-DDewC_-L.js +1 -0
- package/dist/assets/quadrantDiagram-AYHSOK5B-BWfhvbIs.js +7 -0
- package/dist/assets/r-BP2yA_lV.js +1 -0
- package/dist/assets/radar-ZZBFDIW7-CPk9iUBG.js +1 -0
- package/dist/assets/react-vega-BbTMwpa-.js +190 -0
- package/dist/assets/react-vega-_CJceHW7.js +1 -0
- package/dist/assets/readonly-python-code-BQo0UqCJ.js +1 -0
- package/dist/assets/renderShortcut-DG5sXSxr.js +1 -0
- package/dist/assets/request-registry-BPNvKw5y.js +1 -0
- package/dist/assets/requirementDiagram-UZGBJVZJ-DdZsVZPu.js +64 -0
- package/dist/assets/rpm-BTpPEnAJ.js +1 -0
- package/dist/assets/ruby-_km6sWpH.js +1 -0
- package/dist/assets/run-page-BN0QZ7-c.js +1 -0
- package/dist/assets/runs-CtxlyzdZ.js +1 -0
- package/dist/assets/sankeyDiagram-TZEHDZUN-BiKMK7q3.js +10 -0
- package/dist/assets/sas-BV0z5M7P.js +1 -0
- package/dist/assets/scheme-AMw7OHvW.js +1 -0
- package/dist/assets/scratchpad-panel-BpM3Nxzw.js +1 -0
- package/dist/assets/secrets-panel-BVJ1G2-2.js +1 -0
- package/dist/assets/select-Cnd3vm9n.js +1 -0
- package/dist/assets/sequenceDiagram-WL72ISMW-B1m5IqrQ.js +145 -0
- package/dist/assets/session-panel-CUtOop5w.js +1 -0
- package/dist/assets/share-T-ETw2Yt.js +1 -0
- package/dist/assets/shell-BepJCs0S.js +1 -0
- package/dist/assets/sieve-YvKFjNqY.js +1 -0
- package/dist/assets/slides-component-Bg8T1XwW.js +1 -0
- package/dist/assets/smalltalk-e8puLVxg.js +1 -0
- package/dist/assets/snippets-panel-CND2QIaH.js +1 -0
- package/dist/assets/sparql-IwwbUejm.js +1 -0
- package/dist/assets/spec-DnVBmJUh.js +1 -0
- package/dist/assets/src-lcGySDV2.js +1 -0
- package/dist/assets/state-C-thupmq.js +1 -0
- package/dist/assets/state-Cm3zkTs2.js +1 -0
- package/dist/assets/state-Dxl7WjW3.js +1 -0
- package/dist/assets/stateDiagram-FKZM4ZOC-B_fZr0Jz.js +1 -0
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CnaooVt9.js +1 -0
- package/dist/assets/step-B5y1YzZ4.js +1 -0
- package/dist/assets/stex-CruVQx-P.js +1 -0
- package/dist/assets/stylus-C5qHDsoA.js +1 -0
- package/dist/assets/swift-CD6FyF1F.js +1 -0
- package/dist/assets/switch-C2PmTLIx.js +1 -0
- package/dist/assets/tcl-189LoKbJ.js +1 -0
- package/dist/assets/terminal-8keBq1HC.js +62 -0
- package/dist/assets/textile-dSHgbtG8.js +1 -0
- package/dist/assets/time-D8_flTb-.js +1 -0
- package/dist/assets/timeline-definition-IT6M3QCI-CiMZB-_n.js +61 -0
- package/dist/assets/toggle-DjUKacjU.js +1 -0
- package/dist/assets/toml-CWUvzxNs.js +1 -0
- package/dist/assets/tooltip-CR_izE8Q.js +1 -0
- package/dist/assets/tracing-Cab2_N64.js +1 -0
- package/dist/assets/tracing-panel-h6SS64Fd.js +2 -0
- package/dist/assets/tree-Duf22i7P.js +3 -0
- package/dist/assets/treemap-GDKQZRPO-BqT6xXWn.js +1 -0
- package/dist/assets/troff-CkFGw7sb.js +1 -0
- package/dist/assets/ttcn-B71Rl_FP.js +1 -0
- package/dist/assets/ttcn-cfg-BsJCQ8Pc.js +1 -0
- package/dist/assets/turtle-AJRCjN1N.js +1 -0
- package/dist/assets/useAddCell-fzJF_CdR.js +1 -0
- package/dist/assets/useBoolean-DJdaVVhu.js +1 -0
- package/dist/assets/useCellActionButton-C-mIavMW.js +1 -0
- package/dist/assets/useDateFormatter-CYAwsqZA.js +1 -0
- package/dist/assets/useDeleteCell-lfqkVcrN.js +1 -0
- package/dist/assets/useDependencyPanelTab-Nq81zNNI.js +1 -0
- package/dist/assets/useInstallPackage-BVUUWUU8.js +1 -0
- package/dist/assets/useNotebookActions-BAw99pt_.js +1 -0
- package/dist/assets/useNumberFormatter-D5CeG3Kn.js +1 -0
- package/dist/assets/usePress-CHKiC-9E.js +7 -0
- package/dist/assets/useRunCells-6ne-1pJW.js +1 -0
- package/dist/assets/useSplitCell-D8a8QoYd.js +1 -0
- package/dist/assets/utils-DnNnBV1N.js +61 -0
- package/dist/assets/vb-gPFTxjZr.js +1 -0
- package/dist/assets/vbscript-CMzdZB2G.js +1 -0
- package/dist/assets/vega-component-DnJzUfQO.js +1 -0
- package/dist/assets/vega-loader.browser-xq8miGHn.js +6 -0
- package/dist/assets/velocity-DBHzqIXP.js +1 -0
- package/dist/assets/verilog-CrrLE4DH.js +1 -0
- package/dist/assets/vhdl-CcYUxt_-.js +1 -0
- package/dist/assets/webidl-Cx4I26Tn.js +1 -0
- package/dist/assets/write-secret-modal-5AT0ZoJv.js +1 -0
- package/dist/assets/xquery-Cu7k_x_s.js +1 -0
- package/dist/assets/xychartDiagram-PRI3JC2R-B3F_v5OL.js +7 -0
- package/dist/assets/yacas-DEQ-2nrM.js +1 -0
- package/dist/assets/z80-D9sXBSXs.js +1 -0
- package/dist/index.html +145 -146
- package/package.json +1 -1
- package/src/__mocks__/notebook.ts +9 -9
- package/src/__mocks__/requests.ts +1 -0
- package/src/__tests__/branded.ts +20 -0
- package/src/components/app-config/user-config-form.tsx +5 -4
- 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/context-menu.tsx +9 -5
- package/src/components/data-table/data-table.tsx +3 -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__/utils.test.ts +82 -8
- package/src/components/data-table/range-focus/atoms.ts +2 -2
- package/src/components/data-table/range-focus/utils.ts +50 -12
- package/src/components/data-table/types.ts +7 -0
- package/src/components/data-table/utils.ts +87 -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/renderers/vertical-layout/useFocusFirstEditor.ts +8 -1
- 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 +575 -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 +22 -21
- 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 +29 -4
- 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 +5 -6
- package/src/core/datasets/state.ts +1 -1
- 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 +1 -0
- package/src/core/islands/main.ts +4 -7
- package/src/core/kernel/__tests__/handlers.test.ts +5 -4
- package/src/core/kernel/handlers.ts +7 -4
- 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 +1 -0
- package/src/core/network/requests-network.ts +9 -0
- package/src/core/network/requests-static.ts +1 -0
- package/src/core/network/requests-toasting.tsx +1 -0
- package/src/core/network/types.ts +5 -0
- 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 +1 -0
- package/src/core/websocket/useMarimoKernelConnection.tsx +31 -16
- package/src/css/app/fonts.css +6 -6
- package/src/css/md-tooltip.css +4 -39
- package/src/css/md.css +7 -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 +23 -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/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__/download.test.tsx +21 -20
- package/src/utils/copy.ts +18 -5
- package/src/utils/createReducer.ts +26 -11
- 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-0n92c_W7.js +0 -38
- package/dist/assets/index-GjXovVsl.css +0 -2
- 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/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/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-CSPK4t6z.js} +0 -0
- /package/dist/assets/{Deferred-BMfCOLaw.js → Deferred-CfyqLOPG.js} +0 -0
- /package/dist/assets/{ImageComparisonComponent-DvDPDgw3.js → ImageComparisonComponent-Cw3aoN3z.js} +0 -0
- /package/dist/assets/{Inputs-D5kI9GwB.js → Inputs-CsxDtqlI.js} +0 -0
- /package/dist/assets/{Plot-DQQQ-fLA.js → Plot-eiPFedH2.js} +0 -0
- /package/dist/assets/{SSRProvider-DC7ElCZZ.js → SSRProvider-BkypbMcb.js} +0 -0
- /package/dist/assets/{alert-OQZHipbB.js → alert-NjVFesQm.js} +0 -0
- /package/dist/assets/{apl-CexVE068.js → apl-D8X_E6Wh.js} +0 -0
- /package/dist/assets/{array-psg969PF.js → array-CEZNxKGf.js} +0 -0
- /package/dist/assets/{asciiarmor-DzdXFxI-.js → asciiarmor-DeecVuRW.js} +0 -0
- /package/dist/assets/{asn1-lKNP6w4p.js → asn1-C9WWFN1p.js} +0 -0
- /package/dist/assets/{asterisk-Bjb62jej.js → asterisk-Dykb_Qas.js} +0 -0
- /package/dist/assets/{badge-hTpPIsMT.js → badge-DImLVznf.js} +0 -0
- /package/dist/assets/{blob-CObhN-9g.js → blob-C3EfaMOb.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-Cl6gOsOa.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-OaQlvpSl.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-Bghwh3ep.js} +0 -0
- /package/dist/assets/{chunk-B2363JML-Cmh9TPpj.js → chunk-B2363JML-B3wWt_gr.js} +0 -0
- /package/dist/assets/{chunk-DR5Q36YT-SM9ZwAOv.js → chunk-DR5Q36YT-DOSR70sR.js} +0 -0
- /package/dist/assets/{chunk-FRFDVMJY-CUDE-MUX.js → chunk-FRFDVMJY-D9fs6vlF.js} +0 -0
- /package/dist/assets/{chunk-PL6DKKU2-DMqBvHTF.js → chunk-PL6DKKU2-CdtxnIBd.js} +0 -0
- /package/dist/assets/{chunk-SJTYNZTY-C9cwtT3h.js → chunk-SJTYNZTY-CMwkFD7U.js} +0 -0
- /package/dist/assets/{chunk-TQ3KTPDO-CUyT9lNN.js → chunk-TQ3KTPDO-0Us1NWXT.js} +0 -0
- /package/dist/assets/{chunk-UMXZTB3W-Bt-_br31.js → chunk-UMXZTB3W-zYd--p4q.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-CsNT-Tql.js} +0 -0
- /package/dist/assets/{click-outside-container-CagwJLiG.js → click-outside-container-gHk0jCel.js} +0 -0
- /package/dist/assets/{clike-BCxd7pZ9.js → clike-BuY5U60j.js} +0 -0
- /package/dist/assets/{clipboard-paste-DoYSN8Sv.js → clipboard-paste-EHXeKq9D.js} +0 -0
- /package/dist/assets/{clojure-CPAS-74L.js → clojure-C8jGLyPy.js} +0 -0
- /package/dist/assets/{cmake-DMONEHtp.js → cmake-DcjYbevD.js} +0 -0
- /package/dist/assets/{cobol-0rQGzjf0.js → cobol-C-nFr8y5.js} +0 -0
- /package/dist/assets/{code-xml-DwHPF_nL.js → code-xml-BlrJCgNZ.js} +0 -0
- /package/dist/assets/{coffeescript-BHNUw4aR.js → coffeescript-VbbBP-Cm.js} +0 -0
- /package/dist/assets/{colors-WO6MvCS3.js → colors-Dm6L93c7.js} +0 -0
- /package/dist/assets/{common-keywords-D_14jCw0.js → common-keywords-sop6vXJR.js} +0 -0
- /package/dist/assets/{commonlisp-Cjiyl45-.js → commonlisp-mLMub2u_.js} +0 -0
- /package/dist/assets/{copy-CkudG0Ej.js → copy-D6N1-xc1.js} +0 -0
- /package/dist/assets/{crystal-CUMDisY2.js → crystal-Buc8hu84.js} +0 -0
- /package/dist/assets/{css-B6NFOUor.js → css-DtNg2SPz.js} +0 -0
- /package/dist/assets/{cypher-DcWJtLBw.js → cypher-wyT0Afvt.js} +0 -0
- /package/dist/assets/{cytoscape.esm-DuXIsNbY.js → cytoscape.esm-CuwfIk-V.js} +0 -0
- /package/dist/assets/{d-CpNp8oDv.js → d-KzUzEnwn.js} +0 -0
- /package/dist/assets/{database-zap-DTWCDKdn.js → database-zap-BIGMFOfP.js} +0 -0
- /package/dist/assets/{defaultLocale-OkOxlkkM.js → defaultLocale-DPBdGRrH.js} +0 -0
- /package/dist/assets/{defaultLocale-DK1MWd7f.js → defaultLocale-Lfi0pexn.js} +0 -0
- /package/dist/assets/{diff-BCFJsGHX.js → diff-zZX_BZ60.js} +0 -0
- /package/dist/assets/{dist-D9Vhptds.js → dist-2yYHES7B.js} +0 -0
- /package/dist/assets/{dist-CVEvQ1Ex.js → dist-4adVoHKM.js} +0 -0
- /package/dist/assets/{dist-ASlWkGgG.js → dist-8B3AWTCv.js} +0 -0
- /package/dist/assets/{dist-sVuk6mkQ.js → dist-AkjWZMeV.js} +0 -0
- /package/dist/assets/{dist-8UD0A5sU.js → dist-BF9S272t.js} +0 -0
- /package/dist/assets/{dist-BhNN2V5a.js → dist-BKm9wJTB.js} +0 -0
- /package/dist/assets/{dist-BR9zyVPH.js → dist-BacKBlEY.js} +0 -0
- /package/dist/assets/{dist-OxxI-HeS.js → dist-Bi4JuBeU.js} +0 -0
- /package/dist/assets/{dist-COnmrAVZ.js → dist-BjCIGEdQ.js} +0 -0
- /package/dist/assets/{dist-apDpadc4.js → dist-Bk1itfBD.js} +0 -0
- /package/dist/assets/{dist-DxrbvUBv.js → dist-CKX5rwHQ.js} +0 -0
- /package/dist/assets/{dist-DBPtheKQ.js → dist-CybQbPjb.js} +0 -0
- /package/dist/assets/{dist-CQqv2gQL.js → dist-Dm11d0_A.js} +0 -0
- /package/dist/assets/{dist-CgC048vN.js → dist-DzjL8iiW.js} +0 -0
- /package/dist/assets/{download-DBW9RXtT.js → download-nLboiTtW.js} +0 -0
- /package/dist/assets/{dtd-D7nO7isU.js → dtd-DrorhQz9.js} +0 -0
- /package/dist/assets/{duckdb-keywords-CSySeB8R.js → duckdb-keywords-CEWQs1NJ.js} +0 -0
- /package/dist/assets/{dylan-qEhlQv4l.js → dylan-B4r5umK9.js} +0 -0
- /package/dist/assets/{ebnf-KJaLpQez.js → ebnf-BoS8ZFT2.js} +0 -0
- /package/dist/assets/{ecl-cXHEjabG.js → ecl-Chc_DmTY.js} +0 -0
- /package/dist/assets/{eiffel-CUTEIYa-.js → eiffel-CIYqf7wj.js} +0 -0
- /package/dist/assets/{ellipsis-0_zJdF6H.js → ellipsis-d7eaKIFn.js} +0 -0
- /package/dist/assets/{ellipsis-vertical-CAB7tdza.js → ellipsis-vertical-DBQ5kWTo.js} +0 -0
- /package/dist/assets/{elm-DOfGHeKn.js → elm-Baq4wI8e.js} +0 -0
- /package/dist/assets/{emotion-is-prop-valid.esm-D1keIaYa.js → emotion-is-prop-valid.esm-lG8j6oqk.js} +0 -0
- /package/dist/assets/{empty-state-B_US46Us.js → empty-state-BBWqzODS.js} +0 -0
- /package/dist/assets/{erlang-B5R7Byby.js → erlang-xHcM8uVi.js} +0 -0
- /package/dist/assets/{errors-Bfogio62.js → errors-iwK4b4VF.js} +0 -0
- /package/dist/assets/{esm-CX-gNDKf.js → esm-DM72gy9Q.js} +0 -0
- /package/dist/assets/{extends-DRbCSry7.js → extends-B9D0JO9U.js} +0 -0
- /package/dist/assets/{eye-off-vwi9L975.js → eye-off-CF3GmvXV.js} +0 -0
- /package/dist/assets/{fcl-Cf241iHu.js → fcl-JwfU5Rr4.js} +0 -0
- /package/dist/assets/{file-DzHkbIdO.js → file-C-yMeaec.js} +0 -0
- /package/dist/assets/{file-headphone-B5q2Ow55.js → file-headphone-CPAP8asn.js} +0 -0
- /package/dist/assets/{file-plus-corner-lLQw9OnR.js → file-plus-corner-ks__N1mr.js} +0 -0
- /package/dist/assets/{forth-BjV8SV3p.js → forth-j6RT-cy6.js} +0 -0
- /package/dist/assets/{fortran-CvNblcug.js → fortran-Z7A59UbQ.js} +0 -0
- /package/dist/assets/{gas-D1YrZZUY.js → gas-5kgpLqGg.js} +0 -0
- /package/dist/assets/{gherkin-CAUl7roi.js → gherkin-KECBIOSQ.js} +0 -0
- /package/dist/assets/{github-BVtI-3F1.js → github-CRD4USKm.js} +0 -0
- /package/dist/assets/{groovy-CnmCDhLm.js → groovy-CocWwvHR.js} +0 -0
- /package/dist/assets/{haskell-qdBb4h_7.js → haskell-BVRegKDO.js} +0 -0
- /package/dist/assets/{haxe-MQhLSFhI.js → haxe-U6x7KK2i.js} +0 -0
- /package/dist/assets/{http-_roNBajA.js → http-BSf7msSy.js} +0 -0
- /package/dist/assets/{icons-CrUXojcA.js → icons-D4U3iRHj.js} +0 -0
- /package/dist/assets/{idl-CcZzcWCI.js → idl-Byd3Qhyl.js} +0 -0
- /package/dist/assets/{image-DXfkah9d.js → image-CfyJzBP9.js} +0 -0
- /package/dist/assets/{init-XMA8CWhh.js → init-BpLL1fe9.js} +0 -0
- /package/dist/assets/{javascript-hE4QNtKl.js → javascript-D0a_TZzL.js} +0 -0
- /package/dist/assets/{julia-BjrvvLkp.js → julia-CaxV2pJw.js} +0 -0
- /package/dist/assets/{katex-rvFxOCU-.js → katex-FSdXOW5Y.js} +0 -0
- /package/dist/assets/{kbd-DvKpAc6K.js → kbd-zZCuQN_1.js} +0 -0
- /package/dist/assets/{link-Cf10mh3t.js → link-_dbp0XNB.js} +0 -0
- /package/dist/assets/{links-DzgPOFJ-.js → links-BQHNKE3J.js} +0 -0
- /package/dist/assets/{livescript-B01pNEzu.js → livescript-CfGHFsX-.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-CcIcmNa3.js → loro_wasm_bg-Bj93RhA2.js} +0 -0
- /package/dist/assets/{lua-BwfRgSM6.js → lua-DwgMJ83W.js} +0 -0
- /package/dist/assets/{maps-OKerBHH8.js → maps-DQsjfyTy.js} +0 -0
- /package/dist/assets/{marimo-icons-C_YDiXeg.js → marimo-icons-Cb4NA8Cp.js} +0 -0
- /package/dist/assets/{math-CeGhAAgQ.js → math-CpvW-dlE.js} +0 -0
- /package/dist/assets/{mathematica-DLi5eijp.js → mathematica-CUcY8E3Z.js} +0 -0
- /package/dist/assets/{mbox-QweTYWJQ.js → mbox-QWIxg89f.js} +0 -0
- /package/dist/assets/{mirc-1J5TZ8Tf.js → mirc-PcCLOR2R.js} +0 -0
- /package/dist/assets/{mllike-DRzCrpbj.js → mllike-JiC27gOy.js} +0 -0
- /package/dist/assets/{modelica-GZKavTLw.js → modelica-BcfhGWp8.js} +0 -0
- /package/dist/assets/{mscgen-HMNaCHuy.js → mscgen-C2sdz_zX.js} +0 -0
- /package/dist/assets/{multi-icon-DEWnuZs2.js → multi-icon-BIYBHgCy.js} +0 -0
- /package/dist/assets/{mumps-CzCxfP2m.js → mumps-DTtlu7TY.js} +0 -0
- /package/dist/assets/{nginx-Dfd7l9Sj.js → nginx-CNcs7tVC.js} +0 -0
- /package/dist/assets/{node-sql-parser-BvUFblwL.js → node-sql-parser-fWuidk6P.js} +0 -0
- /package/dist/assets/{ntriples-DT57g_ZF.js → ntriples-CHcftTy8.js} +0 -0
- /package/dist/assets/{numbers-CYnquDho.js → numbers-Bv8m4sHE.js} +0 -0
- /package/dist/assets/{objectWithoutPropertiesLoose-DP4vAkvg.js → objectWithoutPropertiesLoose-CboCOq4o.js} +0 -0
- /package/dist/assets/{octave-CtuTaUjQ.js → octave-D7F4qXl_.js} +0 -0
- /package/dist/assets/{oz-BS8LEqKx.js → oz-VftS117C.js} +0 -0
- /package/dist/assets/{panel-context-BN0DQXiK.js → panel-context-CcwYw5Eq.js} +0 -0
- /package/dist/assets/{pascal-Db0ZEHQw.js → pascal-CxVKwA9u.js} +0 -0
- /package/dist/assets/{path-CkIaQHJO.js → path-DtYs9Dst.js} +0 -0
- /package/dist/assets/{paths-D2lG83Oh.js → paths-BVwhPRFT.js} +0 -0
- /package/dist/assets/{perl-DgJKzgyz.js → perl-x4BFnPib.js} +0 -0
- /package/dist/assets/{pig-Dk6eYa40.js → pig-Dmhj3J78.js} +0 -0
- /package/dist/assets/{play-DKSqmedg.js → play-Bu_0ogGD.js} +0 -0
- /package/dist/assets/{plus-dVmh0yTy.js → plus-DJ99CUbx.js} +0 -0
- /package/dist/assets/{powershell-dW0qpS7j.js → powershell-Bg32vFxB.js} +0 -0
- /package/dist/assets/{preload-helper-BW0IMuFq.js → preload-helper-y72bE5iF.js} +0 -0
- /package/dist/assets/{prop-types-RrUi-pOT.js → prop-types-C638SUfx.js} +0 -0
- /package/dist/assets/{properties-oMha4ix2.js → properties-DQbiKM_q.js} +0 -0
- /package/dist/assets/{protobuf-CfWJ4EtB.js → protobuf-Sa3BXDQ1.js} +0 -0
- /package/dist/assets/{puppet-O2K_n-UM.js → puppet-CnXWm8bo.js} +0 -0
- /package/dist/assets/{purify.es-BBn8CPhf.js → purify.es-Cf8RQecB.js} +0 -0
- /package/dist/assets/{python-qMKsSr4L.js → python-B1WBAJzp.js} +0 -0
- /package/dist/assets/{q-ewn8d81Q.js → q-BqOVUYF0.js} +0 -0
- /package/dist/assets/{r-CqF-AjDv.js → r-BNvjQBjW.js} +0 -0
- /package/dist/assets/{range-DNqFcYmr.js → range-Dk7lXDev.js} +0 -0
- /package/dist/assets/{react-resizable-panels.browser.esm-DDRqG5ui.js → react-resizable-panels.browser.esm-RgA6v8U3.js} +0 -0
- /package/dist/assets/{refresh-ccw-DLpfIr8v.js → refresh-ccw-DQ6SJ8UC.js} +0 -0
- /package/dist/assets/{refresh-cw-CHAHPgkx.js → refresh-cw-Dg9tCj4k.js} +0 -0
- /package/dist/assets/{requests-CP6q3-4O.js → requests-xhM8i_W9.js} +0 -0
- /package/dist/assets/{rotate-ccw-hLlF_82X.js → rotate-ccw-BCkZViUZ.js} +0 -0
- /package/dist/assets/{rpm-BqLq138P.js → rpm-Cdb8SyEx.js} +0 -0
- /package/dist/assets/{ruby-CQfbO3YY.js → ruby-Csu3wroo.js} +0 -0
- /package/dist/assets/{sas-BmpgVn6Q.js → sas-NClU0xuj.js} +0 -0
- /package/dist/assets/{save-8fSvKYJT.js → save-CUdcv5qm.js} +0 -0
- /package/dist/assets/{scheme-rgyDg_wq.js → scheme-Hpx9xPN-.js} +0 -0
- /package/dist/assets/{session-BrEm7qNv.js → session-CByuQ-M-.js} +0 -0
- /package/dist/assets/{settings-CzQUw9rV.js → settings-B7nhfCat.js} +0 -0
- /package/dist/assets/{shell-Dndk6Ld6.js → shell-Cd99saJE.js} +0 -0
- /package/dist/assets/{sieve-bGgktpLX.js → sieve-D0zJ8TZ9.js} +0 -0
- /package/dist/assets/{simple-mode-oMMOWqWz.js → simple-mode-DpDBSVll.js} +0 -0
- /package/dist/assets/{smalltalk-CU43LrKS.js → smalltalk-BBBJczpn.js} +0 -0
- /package/dist/assets/{solr-CJeCgAfj.js → solr-B928KjNx.js} +0 -0
- /package/dist/assets/{sparql-BycKC3X4.js → sparql-uAF7_Z2_.js} +0 -0
- /package/dist/assets/{spinner-C5JoisA7.js → spinner-pCogyRyo.js} +0 -0
- /package/dist/assets/{spreadsheet-BYYvgLKe.js → spreadsheet-CAG48M_e.js} +0 -0
- /package/dist/assets/{sql-B5I6FC3m.js → sql-nk70rjN1.js} +0 -0
- /package/dist/assets/{square-CxAsQQ77.js → square-KVNDGpgy.js} +0 -0
- /package/dist/assets/{square-function-B006EYFX.js → square-function-BMNCw7Qb.js} +0 -0
- /package/dist/assets/{src-CW27-Kjl.js → src-BRLtyMKi.js} +0 -0
- /package/dist/assets/{stex-0ac7Aukl.js → stex-C6JeW1YI.js} +0 -0
- /package/dist/assets/{stylus-CePwhvgW.js → stylus-fMZU8VtG.js} +0 -0
- /package/dist/assets/{swift-CfgglXjR.js → swift-CkY7kBhf.js} +0 -0
- /package/dist/assets/{table-BhH-Mm8O.js → table-CA8eU1EB.js} +0 -0
- /package/dist/assets/{table-BCnp9gKC.js → table-Od8PbuV-.js} +0 -0
- /package/dist/assets/{tcl-D_gYSBm0.js → tcl-CS15Nqmn.js} +0 -0
- /package/dist/assets/{textile-BEvFU9wV.js → textile-BQsumqly.js} +0 -0
- /package/dist/assets/{tiddlywiki-hmNzZkq6.js → tiddlywiki-BiHxc-2_.js} +0 -0
- /package/dist/assets/{tiki-BL1SzuSx.js → tiki-Cwip62d7.js} +0 -0
- /package/dist/assets/{timer-CPT_vXom.js → timer-BEJidwwG.js} +0 -0
- /package/dist/assets/{toDate-BqKH-Jd9.js → toDate-Cfp9W_O9.js} +0 -0
- /package/dist/assets/{toml-DGJRpV2e.js → toml-CoHiT08x.js} +0 -0
- /package/dist/assets/{trash-2-CAoNMkjq.js → trash-2-Bc_J7TQO.js} +0 -0
- /package/dist/assets/{trash-BZMAQneW.js → trash-Cxd189Vw.js} +0 -0
- /package/dist/assets/{treemap-Cf5pgJDk.js → treemap-qinQgXo1.js} +0 -0
- /package/dist/assets/{triangle-alert-qZo1ox6x.js → triangle-alert-CzLrbLGN.js} +0 -0
- /package/dist/assets/{troff-CUlohIux.js → troff-CpFvF7Eq.js} +0 -0
- /package/dist/assets/{ttcn-nuQ3wCdy.js → ttcn-BjnqPnO0.js} +0 -0
- /package/dist/assets/{ttcn-cfg-DCxdE-sj.js → ttcn-cfg-D29EWwwv.js} +0 -0
- /package/dist/assets/{turtle-B2N96QpC.js → turtle-mWsfmaJW.js} +0 -0
- /package/dist/assets/{types-C1RN112u.js → types-CLOMZuqU.js} +0 -0
- /package/dist/assets/{types-BfP_kuAY.js → types-Myu7G9iV.js} +0 -0
- /package/dist/assets/{use-toast-Hc8CXlvz.js → use-toast-BtZldTi5.js} +0 -0
- /package/dist/assets/{useAsyncData-D-4ifFXh.js → useAsyncData-D-z1U8-c.js} +0 -0
- /package/dist/assets/{useDebounce-B0dx2Gp0.js → useDebounce-Ccai5RO4.js} +0 -0
- /package/dist/assets/{useDeepCompareMemoize-yyiB9aJX.js → useDeepCompareMemoize-D1hTncYV.js} +0 -0
- /package/dist/assets/{useIframeCapabilities-DTN9kFDq.js → useIframeCapabilities-CouCDnwL.js} +0 -0
- /package/dist/assets/{useInterval-BJucVdV-.js → useInterval-BckTGVbf.js} +0 -0
- /package/dist/assets/{useTheme-BYXBU1of.js → useTheme-KDW4sktg.js} +0 -0
- /package/dist/assets/{uuid-ClFZlR7U.js → uuid-BukULOeS.js} +0 -0
- /package/dist/assets/{vb-CBiIL_zx.js → vb-E2EKvwgc.js} +0 -0
- /package/dist/assets/{vbscript-B3Y69Iw0.js → vbscript-98sn9Pr4.js} +0 -0
- /package/dist/assets/{velocity-B5BPA7FX.js → velocity-DUbAzJtM.js} +0 -0
- /package/dist/assets/{verilog-BwmYR8E3.js → verilog-DK7zLFMr.js} +0 -0
- /package/dist/assets/{vhdl-VXFnDy2U.js → vhdl-B9Tq3stB.js} +0 -0
- /package/dist/assets/{web-vitals-BaMazlva.js → web-vitals-CJ8ovao_.js} +0 -0
- /package/dist/assets/{webidl-Bcmf9JWd.js → webidl-C5qiIEir.js} +0 -0
- /package/dist/assets/{workflow-BmeqNuSH.js → workflow-BqHyyStM.js} +0 -0
- /package/dist/assets/{ws-CBdPISJL.js → ws-D2eS61zr.js} +0 -0
- /package/dist/assets/{x-BI1M8X_v.js → x-CdLP7-v3.js} +0 -0
- /package/dist/assets/{xquery-8pWKOyFY.js → xquery-CmGczatZ.js} +0 -0
- /package/dist/assets/{yacas-BFcwo3Cx.js → yacas-BbepBpsT.js} +0 -0
- /package/dist/assets/{youtube-DE-Ej6FR.js → youtube-CfU-SnDw.js} +0 -0
- /package/dist/assets/{z80-t3SBb7Lt.js → z80-C2f-3LU8.js} +0 -0
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
+
import type { Table } from "@tanstack/react-table";
|
|
3
4
|
import { describe, expect, it } from "vitest";
|
|
4
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
getClipboardContent,
|
|
7
|
+
getPageIndexForRow,
|
|
8
|
+
getRawValue,
|
|
9
|
+
stringifyUnknownValue,
|
|
10
|
+
} from "../utils";
|
|
5
11
|
|
|
6
12
|
describe("getPageIndexForRow", () => {
|
|
7
13
|
it("should return null when row is on current page", () => {
|
|
@@ -77,3 +83,134 @@ describe("getPageIndexForRow", () => {
|
|
|
77
83
|
expect(getPageIndexForRow(999, 100, 10)).toBe(99);
|
|
78
84
|
});
|
|
79
85
|
});
|
|
86
|
+
|
|
87
|
+
describe("stringifyUnknownValue", () => {
|
|
88
|
+
it("should stringify primitives", () => {
|
|
89
|
+
expect(stringifyUnknownValue({ value: "hello" })).toBe("hello");
|
|
90
|
+
expect(stringifyUnknownValue({ value: 42 })).toBe("42");
|
|
91
|
+
expect(stringifyUnknownValue({ value: true })).toBe("true");
|
|
92
|
+
expect(stringifyUnknownValue({ value: null })).toBe("null");
|
|
93
|
+
expect(stringifyUnknownValue({ value: undefined })).toBe("undefined");
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it("should stringify null as empty string when flag is set", () => {
|
|
97
|
+
expect(
|
|
98
|
+
stringifyUnknownValue({ value: null, nullAsEmptyString: true }),
|
|
99
|
+
).toBe("");
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it("should JSON-stringify plain objects", () => {
|
|
103
|
+
expect(stringifyUnknownValue({ value: { x: 1 } })).toBe('{"x":1}');
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
describe("getClipboardContent", () => {
|
|
108
|
+
it("should use rawValue for text when it differs from displayedValue", () => {
|
|
109
|
+
const displayed = {
|
|
110
|
+
_serialized_mime_bundle: {
|
|
111
|
+
mimetype: "text/html",
|
|
112
|
+
data: '<a href="https://example.com">42</a>',
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
const result = getClipboardContent(42, displayed);
|
|
116
|
+
expect(result.text).toBe("42");
|
|
117
|
+
expect(result.html).toBe('<a href="https://example.com">42</a>');
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it("should strip html for text when rawValue equals displayedValue", () => {
|
|
121
|
+
const mimeBundle = {
|
|
122
|
+
_serialized_mime_bundle: {
|
|
123
|
+
mimetype: "text/html",
|
|
124
|
+
data: "<b>bold</b>",
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
const result = getClipboardContent(mimeBundle, mimeBundle);
|
|
128
|
+
expect(result.text).toBe("bold");
|
|
129
|
+
expect(result.html).toBe("<b>bold</b>");
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it("should handle undefined rawValue", () => {
|
|
133
|
+
const displayed = {
|
|
134
|
+
_serialized_mime_bundle: {
|
|
135
|
+
mimetype: "text/html",
|
|
136
|
+
data: "<b>hello</b>",
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
const result = getClipboardContent(undefined, displayed);
|
|
140
|
+
expect(result.text).toBe("hello");
|
|
141
|
+
expect(result.html).toBe("<b>hello</b>");
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it("should return no html for plain values", () => {
|
|
145
|
+
const result = getClipboardContent(undefined, "plain text");
|
|
146
|
+
expect(result.text).toBe("plain text");
|
|
147
|
+
expect(result.html).toBeUndefined();
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("should treat text/markdown as html since mo.md() data is rendered html", () => {
|
|
151
|
+
const displayed = {
|
|
152
|
+
_serialized_mime_bundle: {
|
|
153
|
+
mimetype: "text/markdown",
|
|
154
|
+
data: '<span class="markdown"><strong>Hello</strong></span>',
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
const result = getClipboardContent(undefined, displayed);
|
|
158
|
+
expect(result.text).toBe("Hello");
|
|
159
|
+
expect(result.html).toBe(
|
|
160
|
+
'<span class="markdown"><strong>Hello</strong></span>',
|
|
161
|
+
);
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
it("should return no html for non-html mime bundles", () => {
|
|
165
|
+
const displayed = {
|
|
166
|
+
_serialized_mime_bundle: {
|
|
167
|
+
mimetype: "text/plain",
|
|
168
|
+
data: "just text",
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
const result = getClipboardContent(undefined, displayed);
|
|
172
|
+
expect(result.text).toBe("just text");
|
|
173
|
+
expect(result.html).toBeUndefined();
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
it("should handle null rawValue as a real value", () => {
|
|
177
|
+
const displayed = {
|
|
178
|
+
_serialized_mime_bundle: {
|
|
179
|
+
mimetype: "text/html",
|
|
180
|
+
data: "<i>N/A</i>",
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
const result = getClipboardContent(null, displayed);
|
|
184
|
+
expect(result.text).toBe("null");
|
|
185
|
+
expect(result.html).toBe("<i>N/A</i>");
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
function createMockTableWithMeta<TData>(rawData?: TData[]): Table<TData> {
|
|
190
|
+
return {
|
|
191
|
+
options: {
|
|
192
|
+
meta: { rawData },
|
|
193
|
+
},
|
|
194
|
+
} as unknown as Table<TData>;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
describe("getRawValue", () => {
|
|
198
|
+
it("should return raw value when rawData is available", () => {
|
|
199
|
+
const table = createMockTableWithMeta([
|
|
200
|
+
{ a: 10, b: 20 },
|
|
201
|
+
{ a: 30, b: 40 },
|
|
202
|
+
]);
|
|
203
|
+
expect(getRawValue(table, 0, "a")).toBe(10);
|
|
204
|
+
expect(getRawValue(table, 1, "b")).toBe(40);
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
it("should return undefined when rawData is not set", () => {
|
|
208
|
+
const table = createMockTableWithMeta(undefined);
|
|
209
|
+
expect(getRawValue(table, 0, "a")).toBeUndefined();
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
it("should return undefined when row index is out of bounds", () => {
|
|
213
|
+
const table = createMockTableWithMeta([{ a: 1 }]);
|
|
214
|
+
expect(getRawValue(table, 5, "a")).toBeUndefined();
|
|
215
|
+
});
|
|
216
|
+
});
|
|
@@ -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
|
|
|
@@ -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
|
);
|
|
@@ -52,6 +52,7 @@ interface DataTableProps<TData> extends Partial<DownloadActionProps> {
|
|
|
52
52
|
maxHeight?: number;
|
|
53
53
|
columns: ColumnDef<TData>[];
|
|
54
54
|
data: TData[];
|
|
55
|
+
rawData?: TData[]; // raw data for filtering/copying (present only if format_mapping is provided)
|
|
55
56
|
// Sorting
|
|
56
57
|
manualSorting?: boolean; // server-side sorting
|
|
57
58
|
sorting?: SortingState; // controlled sorting
|
|
@@ -103,6 +104,7 @@ const DataTableInternal = <TData,>({
|
|
|
103
104
|
maxHeight,
|
|
104
105
|
columns,
|
|
105
106
|
data,
|
|
107
|
+
rawData,
|
|
106
108
|
selection,
|
|
107
109
|
totalColumns,
|
|
108
110
|
totalRows,
|
|
@@ -197,6 +199,7 @@ const DataTableInternal = <TData,>({
|
|
|
197
199
|
],
|
|
198
200
|
data,
|
|
199
201
|
columns,
|
|
202
|
+
meta: { rawData },
|
|
200
203
|
getCoreRowModel: getCoreRowModel(),
|
|
201
204
|
// pagination
|
|
202
205
|
rowCount: totalRows === "too_many" ? undefined : totalRows,
|
|
@@ -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
|
|
|
@@ -20,7 +20,8 @@ describe("getCellValues", () => {
|
|
|
20
20
|
it("should return empty string for empty selection", () => {
|
|
21
21
|
const mockTable = createMockTable([], []);
|
|
22
22
|
const result = getCellValues(mockTable, new Set());
|
|
23
|
-
expect(result).toBe("");
|
|
23
|
+
expect(result.text).toBe("");
|
|
24
|
+
expect(result.html).toBeUndefined();
|
|
24
25
|
});
|
|
25
26
|
|
|
26
27
|
it("should ignore select checkbox in tables", () => {
|
|
@@ -29,7 +30,8 @@ describe("getCellValues", () => {
|
|
|
29
30
|
const table = createMockTable([row], []);
|
|
30
31
|
|
|
31
32
|
const result = getCellValues(table, new Set());
|
|
32
|
-
expect(result).toBe("");
|
|
33
|
+
expect(result.text).toBe("");
|
|
34
|
+
expect(result.html).toBeUndefined();
|
|
33
35
|
});
|
|
34
36
|
|
|
35
37
|
it("should return single cell value", () => {
|
|
@@ -38,7 +40,8 @@ describe("getCellValues", () => {
|
|
|
38
40
|
const table = createMockTable([row], []);
|
|
39
41
|
|
|
40
42
|
const result = getCellValues(table, new Set(["0_0"]));
|
|
41
|
-
expect(result).toBe("test");
|
|
43
|
+
expect(result.text).toBe("test");
|
|
44
|
+
expect(result.html).toBeUndefined();
|
|
42
45
|
});
|
|
43
46
|
|
|
44
47
|
it("should return multiple cells from same row separated by tabs", () => {
|
|
@@ -48,7 +51,8 @@ describe("getCellValues", () => {
|
|
|
48
51
|
const table = createMockTable([row], []);
|
|
49
52
|
|
|
50
53
|
const result = getCellValues(table, new Set(["0_0", "0_1"]));
|
|
51
|
-
expect(result).toBe("value1\tvalue2");
|
|
54
|
+
expect(result.text).toBe("value1\tvalue2");
|
|
55
|
+
expect(result.html).toBeUndefined();
|
|
52
56
|
});
|
|
53
57
|
|
|
54
58
|
it("should return multiple rows separated by newlines", () => {
|
|
@@ -59,7 +63,8 @@ describe("getCellValues", () => {
|
|
|
59
63
|
const table = createMockTable([row1, row2], []);
|
|
60
64
|
|
|
61
65
|
const result = getCellValues(table, new Set(["0_0", "1_0"]));
|
|
62
|
-
expect(result).toBe("row1\nrow2");
|
|
66
|
+
expect(result.text).toBe("row1\nrow2");
|
|
67
|
+
expect(result.html).toBeUndefined();
|
|
63
68
|
});
|
|
64
69
|
|
|
65
70
|
it("should handle missing rows gracefully", () => {
|
|
@@ -69,7 +74,7 @@ describe("getCellValues", () => {
|
|
|
69
74
|
|
|
70
75
|
// Row "999" doesn't exist and is skipped
|
|
71
76
|
const result = getCellValues(table, new Set(["0_0", "999_0"]));
|
|
72
|
-
expect(result).toBe("test");
|
|
77
|
+
expect(result.text).toBe("test");
|
|
73
78
|
});
|
|
74
79
|
|
|
75
80
|
it("should include undefined for missing columns on existing rows", () => {
|
|
@@ -80,7 +85,7 @@ describe("getCellValues", () => {
|
|
|
80
85
|
|
|
81
86
|
// Column "999" doesn't exist but row.getValue() returns undefined
|
|
82
87
|
const result = getCellValues(table, new Set(["0_0", "0_1", "0_999"]));
|
|
83
|
-
expect(result).toBe("test1\ttest2\tundefined");
|
|
88
|
+
expect(result.text).toBe("test1\ttest2\tundefined");
|
|
84
89
|
});
|
|
85
90
|
|
|
86
91
|
it("should handle complex data types", () => {
|
|
@@ -91,7 +96,76 @@ describe("getCellValues", () => {
|
|
|
91
96
|
const table = createMockTable([row], []);
|
|
92
97
|
|
|
93
98
|
const result = getCellValues(table, new Set(["0_0", "0_1", "0_2"]));
|
|
94
|
-
expect(result).toBe('{"name":"test"}\tnull\tundefined');
|
|
99
|
+
expect(result.text).toBe('{"name":"test"}\tnull\tundefined');
|
|
100
|
+
expect(result.html).toBeUndefined();
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("should use raw values when rawData is available", () => {
|
|
104
|
+
const mimeBundle = {
|
|
105
|
+
_serialized_mime_bundle: {
|
|
106
|
+
mimetype: "text/html",
|
|
107
|
+
data: "<b>formatted_42</b>",
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
const cell1 = createMockCell("0_a", mimeBundle);
|
|
111
|
+
const cell2 = createMockCell("0_b", "displayed_b");
|
|
112
|
+
const row = createMockRow("0", [cell1, cell2]);
|
|
113
|
+
const table = createMockTable([row], [], {
|
|
114
|
+
rawData: [{ a: 42, b: "raw_b" }],
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
const result = getCellValues(table, new Set(["0_a", "0_b"]));
|
|
118
|
+
expect(result.text).toBe("42\traw_b");
|
|
119
|
+
expect(result.html).toBe(
|
|
120
|
+
"<table><tr><td><b>formatted_42</b></td><td>raw_b</td></tr></table>",
|
|
121
|
+
);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it("should fall back to displayed value when rawData is not set", () => {
|
|
125
|
+
const cell = createMockCell("0_name", "displayed");
|
|
126
|
+
const row = createMockRow("0", [cell]);
|
|
127
|
+
const table = createMockTable([row], []);
|
|
128
|
+
|
|
129
|
+
const result = getCellValues(table, new Set(["0_name"]));
|
|
130
|
+
expect(result.text).toBe("displayed");
|
|
131
|
+
expect(result.html).toBeUndefined();
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
it("should return html table when cells contain mime bundles", () => {
|
|
135
|
+
const mimeBundle = {
|
|
136
|
+
_serialized_mime_bundle: {
|
|
137
|
+
mimetype: "text/html",
|
|
138
|
+
data: '<a href="https://example.com">link</a>',
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
const cell1 = createMockCell("0_url", mimeBundle);
|
|
142
|
+
const cell2 = createMockCell("0_name", "plain text");
|
|
143
|
+
const row = createMockRow("0", [cell1, cell2]);
|
|
144
|
+
const table = createMockTable([row], []);
|
|
145
|
+
|
|
146
|
+
const result = getCellValues(table, new Set(["0_url", "0_name"]));
|
|
147
|
+
expect(result.text).toBe("link\tplain text");
|
|
148
|
+
expect(result.html).toBe(
|
|
149
|
+
'<table><tr><td><a href="https://example.com">link</a></td><td>plain text</td></tr></table>',
|
|
150
|
+
);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it("should escape html entities in non-mime cells within html table", () => {
|
|
154
|
+
const mimeBundle = {
|
|
155
|
+
_serialized_mime_bundle: {
|
|
156
|
+
mimetype: "text/html",
|
|
157
|
+
data: "<b>bold</b>",
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
const cell1 = createMockCell("0_html", mimeBundle);
|
|
161
|
+
const cell2 = createMockCell("0_text", "a < b & c > d");
|
|
162
|
+
const row = createMockRow("0", [cell1, cell2]);
|
|
163
|
+
const table = createMockTable([row], []);
|
|
164
|
+
|
|
165
|
+
const result = getCellValues(table, new Set(["0_html", "0_text"]));
|
|
166
|
+
expect(result.html).toBe(
|
|
167
|
+
"<table><tr><td><b>bold</b></td><td>a < b & c > d</td></tr></table>",
|
|
168
|
+
);
|
|
95
169
|
});
|
|
96
170
|
});
|
|
97
171
|
|
|
@@ -167,8 +167,8 @@ const {
|
|
|
167
167
|
return state;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
const text = getCellValues(table, state.selectedCells);
|
|
171
|
-
copyToClipboard(text);
|
|
170
|
+
const { text, html } = getCellValues(table, state.selectedCells);
|
|
171
|
+
copyToClipboard(text, html);
|
|
172
172
|
onCopyComplete();
|
|
173
173
|
|
|
174
174
|
return {
|
|
@@ -2,17 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import type { Table } from "@tanstack/react-table";
|
|
4
4
|
import { SELECT_COLUMN_ID } from "../types";
|
|
5
|
-
import {
|
|
5
|
+
import { getClipboardContent, getRawValue } from "../utils";
|
|
6
6
|
import type { SelectedCell } from "./atoms";
|
|
7
7
|
|
|
8
|
+
export interface CellValuesResult {
|
|
9
|
+
text: string;
|
|
10
|
+
html: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
8
13
|
/**
|
|
9
|
-
* Get the values of the selected cells
|
|
14
|
+
* Get the values of the selected cells, preferring raw (unformatted) values
|
|
15
|
+
* for plain text. If any cell contains HTML (e.g. a hyperlink), also builds
|
|
16
|
+
* an HTML table so rich content can be preserved on paste.
|
|
10
17
|
*/
|
|
11
18
|
export function getCellValues<TData>(
|
|
12
19
|
table: Table<TData>,
|
|
13
20
|
selectedCellIds: Set<string>,
|
|
14
|
-
):
|
|
15
|
-
const
|
|
21
|
+
): CellValuesResult {
|
|
22
|
+
const rows = new Map<string, { text: string; html?: string }[]>();
|
|
23
|
+
let hasHtml = false;
|
|
16
24
|
|
|
17
25
|
for (const cellId of selectedCellIds) {
|
|
18
26
|
if (cellId.includes(SELECT_COLUMN_ID)) {
|
|
@@ -26,17 +34,46 @@ export function getCellValues<TData>(
|
|
|
26
34
|
continue;
|
|
27
35
|
}
|
|
28
36
|
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
const rawValue = getRawValue(table, row.index, columnId);
|
|
38
|
+
const { text, html } = getClipboardContent(
|
|
39
|
+
rawValue,
|
|
40
|
+
row.getValue(columnId),
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
if (html) {
|
|
44
|
+
hasHtml = true;
|
|
45
|
+
}
|
|
46
|
+
const cells = rows.get(rowId) ?? [];
|
|
47
|
+
cells.push({ text, html });
|
|
48
|
+
rows.set(rowId, cells);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const rowValues = [...rows.values()];
|
|
52
|
+
const tabSeparatedText = rowValues
|
|
53
|
+
.map((cells) => cells.map((c) => c.text).join("\t"))
|
|
54
|
+
.join("\n");
|
|
55
|
+
|
|
56
|
+
let htmlTable: string | undefined;
|
|
57
|
+
if (hasHtml) {
|
|
58
|
+
const htmlTableRows = rowValues
|
|
59
|
+
.map(
|
|
60
|
+
(cells) =>
|
|
61
|
+
`<tr>${cells.map((c) => `<td>${c.html ?? escapeHtml(c.text)}</td>`).join("")}</tr>`,
|
|
62
|
+
)
|
|
63
|
+
.join("");
|
|
64
|
+
htmlTable = `<table>${htmlTableRows}</table>`;
|
|
33
65
|
}
|
|
34
66
|
|
|
35
|
-
return
|
|
67
|
+
return {
|
|
68
|
+
text: tabSeparatedText,
|
|
69
|
+
html: htmlTable,
|
|
70
|
+
};
|
|
36
71
|
}
|
|
37
72
|
|
|
38
|
-
|
|
39
|
-
|
|
73
|
+
function escapeHtml(str: string): string {
|
|
74
|
+
const div = document.createElement("div");
|
|
75
|
+
div.textContent = str;
|
|
76
|
+
return div.innerHTML;
|
|
40
77
|
}
|
|
41
78
|
|
|
42
79
|
/**
|
|
@@ -74,7 +111,8 @@ export function getNumericValuesFromSelectedCells<TData>(
|
|
|
74
111
|
continue;
|
|
75
112
|
}
|
|
76
113
|
|
|
77
|
-
const value =
|
|
114
|
+
const value =
|
|
115
|
+
getRawValue(table, row.index, columnId) ?? row.getValue(columnId);
|
|
78
116
|
|
|
79
117
|
// Only accept numbers and strings
|
|
80
118
|
// Skip booleans, null, etc.
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
+
import type { RowData } from "@tanstack/react-table";
|
|
3
4
|
import type { DataType } from "@/core/kernel/messages";
|
|
4
5
|
import { Objects } from "@/utils/objects";
|
|
5
6
|
|
|
7
|
+
declare module "@tanstack/react-table" {
|
|
8
|
+
interface TableMeta<TData extends RowData> {
|
|
9
|
+
rawData?: TData[]; // raw data for filtering/copying (present only if format_mapping is provided)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
export type ColumnName = string;
|
|
7
14
|
|
|
8
15
|
export const ColumnHeaderStatsKeys = [
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
+
import type { Table } from "@tanstack/react-table";
|
|
3
4
|
import type { TableData } from "@/plugins/impl/DataTablePlugin";
|
|
4
5
|
import { vegaLoadData } from "@/plugins/impl/vega/loader";
|
|
5
6
|
import { jsonParseWithSpecialChar } from "@/utils/json/json-parser";
|
|
7
|
+
import { getMimeValues } from "./mime-cell";
|
|
6
8
|
import { INDEX_COLUMN_NAME } from "./types";
|
|
7
9
|
|
|
8
10
|
/**
|
|
@@ -32,6 +34,21 @@ export async function loadTableData<T = object>(
|
|
|
32
34
|
return tableData;
|
|
33
35
|
}
|
|
34
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Load both table and raw table data. Raw table data is typically when
|
|
39
|
+
* there is formatting applied to the table data.
|
|
40
|
+
*/
|
|
41
|
+
export async function loadTableAndRawData<T>(
|
|
42
|
+
tableData: TableData<T>,
|
|
43
|
+
rawTableData?: TableData<T> | null,
|
|
44
|
+
): Promise<[T[], T[] | undefined]> {
|
|
45
|
+
if (rawTableData) {
|
|
46
|
+
return Promise.all([loadTableData(tableData), loadTableData(rawTableData)]);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return [await loadTableData(tableData), undefined];
|
|
50
|
+
}
|
|
51
|
+
|
|
35
52
|
/**
|
|
36
53
|
* Get the stable row ID for a row.
|
|
37
54
|
*
|
|
@@ -87,3 +104,73 @@ export function stringifyUnknownValue(opts: {
|
|
|
87
104
|
}
|
|
88
105
|
return String(value);
|
|
89
106
|
}
|
|
107
|
+
|
|
108
|
+
function stripHtml(html: string): string {
|
|
109
|
+
const div = document.createElement("div");
|
|
110
|
+
div.innerHTML = html;
|
|
111
|
+
const text = (div.textContent || div.innerText || "").trim();
|
|
112
|
+
return text || html;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const HTML_MIMETYPES = new Set(["text/html", "text/markdown"]);
|
|
116
|
+
|
|
117
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
118
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Get clipboard-ready text and optional HTML for a cell.
|
|
123
|
+
*
|
|
124
|
+
* @param rawValue - The raw (unformatted) value, or undefined if not available.
|
|
125
|
+
* @param displayedValue - The displayed value (may be a mime bundle).
|
|
126
|
+
*/
|
|
127
|
+
export function getClipboardContent(
|
|
128
|
+
rawValue: unknown,
|
|
129
|
+
displayedValue: unknown,
|
|
130
|
+
): { text: string; html?: string } {
|
|
131
|
+
const mimeValues =
|
|
132
|
+
typeof displayedValue === "object" && displayedValue !== null
|
|
133
|
+
? getMimeValues(displayedValue)
|
|
134
|
+
: undefined;
|
|
135
|
+
|
|
136
|
+
let html: string | undefined;
|
|
137
|
+
if (mimeValues) {
|
|
138
|
+
// text/markdown from mo.md() contains rendered HTML
|
|
139
|
+
const htmlParts = mimeValues
|
|
140
|
+
.filter((v) => HTML_MIMETYPES.has(v.mimetype))
|
|
141
|
+
.map((v) => v.data);
|
|
142
|
+
html = htmlParts.length > 0 ? htmlParts.join("") : undefined;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
let text: string;
|
|
146
|
+
if (rawValue !== undefined && rawValue !== displayedValue) {
|
|
147
|
+
text = stringifyUnknownValue({ value: rawValue });
|
|
148
|
+
} else if (mimeValues) {
|
|
149
|
+
text = mimeValues
|
|
150
|
+
.map((v) => (HTML_MIMETYPES.has(v.mimetype) ? stripHtml(v.data) : v.data))
|
|
151
|
+
.join(", ");
|
|
152
|
+
} else {
|
|
153
|
+
text = stringifyUnknownValue({ value: displayedValue });
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return { text, html };
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Get the raw (unformatted) value for a row/column from the table,
|
|
161
|
+
* or undefined if raw data is not available.
|
|
162
|
+
*/
|
|
163
|
+
export function getRawValue<TData>(
|
|
164
|
+
table: Table<TData>,
|
|
165
|
+
rowIndex: number,
|
|
166
|
+
columnId: string,
|
|
167
|
+
): unknown {
|
|
168
|
+
const rawData = table.options.meta?.rawData;
|
|
169
|
+
if (rawData) {
|
|
170
|
+
const rawRow = rawData[rowIndex];
|
|
171
|
+
if (isRecord(rawRow)) {
|
|
172
|
+
return rawRow[columnId];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|