@marimo-team/frontend 0.23.16-dev6 → 0.23.16-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-BYH-DZdr.js +1 -0
- package/dist/assets/ConnectedDataExplorerComponent-C4zEgCZh.js +1 -0
- package/dist/assets/ErrorBoundary-DzTD8LVq.js +1 -0
- package/dist/assets/ImperativeModal-fY-ZfT0b.js +1 -0
- package/dist/assets/JsonOutput-D2UI9WX5.js +53 -0
- package/dist/assets/LazyAnyLanguageCodeMirror-A-Ant1Ad.js +2 -0
- package/dist/assets/MarimoErrorOutput-Cu5WMawt.js +11 -0
- package/dist/assets/RSPContexts-WiCgGm__.js +1 -0
- package/dist/assets/RenderHTML-C1rWkDWe.js +1 -0
- package/dist/assets/RunButton-BO02PdVH.js +1 -0
- package/dist/assets/__vite-browser-external-mTzvI0UM.js +1 -0
- package/dist/assets/add-cell-with-ai-PVABTCGt.js +107 -0
- package/dist/assets/add-connection-dialog-GskQAyZw.js +178 -0
- package/dist/assets/agent-panel-BitNk-Gl.js +287 -0
- package/dist/assets/ai-model-dropdown-DzobPTdx.js +5 -0
- package/dist/assets/alert-dialog-Bb8Lz8ko.js +11 -0
- package/dist/assets/any-language-editor-BIeaxtdD.js +1 -0
- package/dist/assets/apl-BnIcQcjL.js +1 -0
- package/dist/assets/app-config-button-D_JaIWhO.js +1 -0
- package/dist/assets/arc-DPwkj0YX.js +1 -0
- package/dist/assets/architecture-7HQA4BMR-CzgzqOCD.js +1 -0
- package/dist/assets/architectureDiagram-VXUJARFQ-BMZxefa_.js +36 -0
- package/dist/assets/arrow-left-pVgT2h-8.js +1 -0
- package/dist/assets/asciiarmor-VNkYxCrW.js +1 -0
- package/dist/assets/asn1-DHaiamxN.js +1 -0
- package/dist/assets/blob-BNTWOaI9.js +1 -0
- package/dist/assets/blockDiagram-VD42YOAC-O9sd6I0b.js +122 -0
- package/dist/assets/brainfuck-B7OQ4qXM.js +1 -0
- package/dist/assets/button-DDGiD1NW.js +1 -0
- package/dist/assets/c4Diagram-YG6GDRKO-CJ4NJdbh.js +10 -0
- package/dist/assets/cache-panel-B2B1ePao.js +1 -0
- package/dist/assets/capabilities-DoEg0XwL.js +1 -0
- package/dist/assets/cell-editor-BuU4BDSk.js +27 -0
- package/dist/assets/cell-link-CWQ4BYr-.js +1 -0
- package/dist/assets/cells-CJLUCcQg.js +235 -0
- package/dist/assets/channel-DELDOomM.js +1 -0
- package/dist/assets/chat-display-CfiA-GdA.js +1 -0
- package/dist/assets/chat-panel-DghO5Y6C.js +4 -0
- package/dist/assets/chat-ui-CNXmMUI1.js +4 -0
- package/dist/assets/chunk-4BX2VUAB-BCgdxLTg.js +1 -0
- package/dist/assets/chunk-55IACEB6-DnPXlz-P.js +1 -0
- package/dist/assets/chunk-5FQGJX7Z-CYQpNADu.js +113 -0
- package/dist/assets/chunk-ABZYJK2D-M8yn2N69.js +80 -0
- package/dist/assets/chunk-ATLVNIR6-CY4Q_7DV.js +1 -0
- package/dist/assets/chunk-B4BG7PRW-0izjR6gH.js +165 -0
- package/dist/assets/chunk-CVBHYZKI-Dtb0_R-R.js +1 -0
- package/dist/assets/chunk-DI55MBZ5-CeYy94Hv.js +220 -0
- package/dist/assets/chunk-EXTU4WIE-CZBftw0u.js +1 -0
- package/dist/assets/chunk-FMBD7UC4-BTonlpoo.js +15 -0
- package/dist/assets/chunk-HN2XXSSU-Bqib0VeJ.js +1 -0
- package/dist/assets/chunk-JA3XYJ7Z-CMnBpyzd.js +70 -0
- package/dist/assets/chunk-JZLCHNYA-BWjnV_v7.js +54 -0
- package/dist/assets/chunk-MI3HLSF2-CA3zpyGZ.js +32 -0
- package/dist/assets/chunk-N4CR4FBY-CZmndviH.js +2 -0
- package/dist/assets/chunk-QN33PNHL-B5rSVblq.js +1 -0
- package/dist/assets/chunk-QXUST7PY-Cz8b__fX.js +7 -0
- package/dist/assets/chunk-QZHKN3VN-B7nq9C0W.js +1 -0
- package/dist/assets/chunk-S3R3BYOJ-CUGnLh1o.js +2 -0
- package/dist/assets/chunk-TZMSLE5B-CXQovw1I.js +1 -0
- package/dist/assets/classDiagram-2ON5EDUG-B3IKXY7k.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-C0Db1CRa.js +1 -0
- package/dist/assets/clike-CcPLlJ3-.js +1 -0
- package/dist/assets/clojure-DK3HqqeG.js +1 -0
- package/dist/assets/cmake-Bnhxe81D.js +1 -0
- package/dist/assets/cobol-ISPch7J4.js +1 -0
- package/dist/assets/code-block-37QAKDTI-21cPxSHu.js +2 -0
- package/dist/assets/coffeescript-B3cS2ooz.js +1 -0
- package/dist/assets/column-preview-DREOGG_c.js +1 -0
- package/dist/assets/command-Dqxie4gq.js +1 -0
- package/dist/assets/command-palette-C95r8rOd.js +1 -0
- package/dist/assets/common-DCWeeUhr.js +1 -0
- package/dist/assets/commonlisp-DH0yllOU.js +1 -0
- package/dist/assets/components-BGqqoLEG.js +1 -0
- package/dist/assets/components-K_Mi0vdC.js +1 -0
- package/dist/assets/config-B-Q7J_6d.js +1 -0
- package/dist/assets/config-BJVx3eBW.js +1 -0
- package/dist/assets/copy-Bxb1_Gtw.js +1 -0
- package/dist/assets/copy-icon-neDQUo4Q.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-DK9gIUQX.js +1 -0
- package/dist/assets/createReducer-DGx5Af-C.js +1 -0
- package/dist/assets/crystal-CfSxbewa.js +1 -0
- package/dist/assets/css-IVPzYP6l.js +1 -0
- package/dist/assets/cypher-DqUctVOg.js +1 -0
- package/dist/assets/d-DYRkEHFy.js +1 -0
- package/dist/assets/dagre-6UL2VRFP-DQFoIrK8.js +4 -0
- package/dist/assets/data-grid-overlay-editor-CVM5ufb4.js +1 -0
- package/dist/assets/datasource-DbljozeY.js +3 -0
- package/dist/assets/dates-C2LWzsCZ.js +1 -0
- package/dist/assets/dependency-graph-panel-Bg9bLMXq.js +5 -0
- package/dist/assets/diagram-PSM6KHXK-DIXxW5au.js +24 -0
- package/dist/assets/diagram-QEK2KX5R-B8KoKZCY.js +43 -0
- package/dist/assets/diagram-S2PKOQOG-D0bjlYXx.js +24 -0
- package/dist/assets/dialog-BCVepWLJ.js +1 -0
- package/dist/assets/diff-Cd5HBT58.js +1 -0
- package/dist/assets/dist-B99-E4qp.js +1 -0
- package/dist/assets/dist-BLN8PNJV.js +1 -0
- package/dist/assets/dist-BiwuSVkx.js +1 -0
- package/dist/assets/dist-BrZjJXDA.js +1 -0
- package/dist/assets/dist-By4rFZwg.js +7 -0
- package/dist/assets/dist-CaZf6AoY.js +1 -0
- package/dist/assets/dist-Cgoy5550.js +1 -0
- package/dist/assets/dist-CiVShZKM.js +2 -0
- package/dist/assets/dist-D6WgndTj.js +1 -0
- package/dist/assets/dist-DcXy-1eJ.js +1 -0
- package/dist/assets/dist-DtbtRAqz.js +1 -0
- package/dist/assets/dist-I3qeQWuP.js +1 -0
- package/dist/assets/dist-aeKlrIMv.js +1 -0
- package/dist/assets/dist-gDi2I7IJ.js +1 -0
- package/dist/assets/dist-miDa4-cz.js +1 -0
- package/dist/assets/dist-nDEBxpL6.js +1 -0
- package/dist/assets/dist-oUL4XFdB.js +1 -0
- package/dist/assets/dockerfile-CLtE40Sb.js +1 -0
- package/dist/assets/documentation-panel-BhtY-lKF.js +1 -0
- package/dist/assets/download-DwYUg-o4.js +9 -0
- package/dist/assets/dropdown-menu-dHmZR8bI.js +1 -0
- package/dist/assets/dtd-C24SyIVW.js +1 -0
- package/dist/assets/dylan-CrkzDmc1.js +1 -0
- package/dist/assets/ecl-DSuYw2WY.js +1 -0
- package/dist/assets/edit-page-D_hRRfNq.js +9 -0
- package/dist/assets/eiffel-D60uMU52.js +1 -0
- package/dist/assets/elm-pYZdVh3P.js +1 -0
- package/dist/assets/erDiagram-Q2GNP2WA-D7EuT99Y.js +60 -0
- package/dist/assets/erlang-D9MlcoAb.js +1 -0
- package/dist/assets/error-banner-BSxEOIn2.js +1 -0
- package/dist/assets/error-entries-4LYRQSOP.js +8 -0
- package/dist/assets/error-panel-FG7tsVQ_.js +1 -0
- package/dist/assets/es-gYgfF8y5.js +5 -0
- package/dist/assets/esm-B30N1GS0.js +1 -0
- package/dist/assets/esm-BDGraAqp.js +1 -0
- package/dist/assets/factor-gTHEdNEJ.js +1 -0
- package/dist/assets/factor-xSp9WnN7.js +1 -0
- package/dist/assets/field-BsxD35VE.js +1 -0
- package/dist/assets/file-explorer-panel-CpUlOt1N.js +26 -0
- package/dist/assets/file-icons-CODNoWOy.js +1 -0
- package/dist/assets/file-name-input-DyvZhLvk.js +3 -0
- package/dist/assets/fileToBase64-hLJmVjNJ.js +1 -0
- package/dist/assets/floating-outline-DBlzcHYf.js +1 -0
- package/dist/assets/flowDiagram-NV44I4VS-Bz3PhSZq.js +162 -0
- package/dist/assets/focus-B6HBbAwF.js +1 -0
- package/dist/assets/form-BYlqbYKI.js +2 -0
- package/dist/assets/form-W6ZZMHnc.js +1 -0
- package/dist/assets/formats-DzmLpc9A.js +1 -0
- package/dist/assets/formatting-COz4XEaB.js +1 -0
- package/dist/assets/forth-CWZXTLFs.js +1 -0
- package/dist/assets/fortran-B8kNpt8O.js +1 -0
- package/dist/assets/fullscreen-CTDqNQr6.js +41 -0
- package/dist/assets/gallery-page-DbuxknAw.js +1 -0
- package/dist/assets/ganttDiagram-JELNMOA3-DaS60lKW.js +267 -0
- package/dist/assets/gas-DxuMSeqj.js +1 -0
- package/dist/assets/gherkin-ZkKEDs6K.js +1 -0
- package/dist/assets/gitGraph-G5XIXVHT-Cd5ecvAE.js +1 -0
- package/dist/assets/gitGraphDiagram-V2S2FVAM-D7jUmjBw.js +65 -0
- package/dist/assets/glide-data-editor-CejKKgnN.js +132 -0
- package/dist/assets/globe-Dwo3iXzC.js +1 -0
- package/dist/assets/groovy-CqQZm41C.js +1 -0
- package/dist/assets/haskell-DWF-arrK.js +1 -0
- package/dist/assets/haxe-LmdIWMMr.js +1 -0
- package/dist/assets/home-page-DYaHMq8Q.js +4 -0
- package/dist/assets/html-to-image-CN9yTa5s.js +2 -0
- package/dist/assets/idl-DEd51qv-.js +1 -0
- package/dist/assets/index-8Nlyq3mV.css +2 -0
- package/dist/assets/index-Gv23EHlE.js +38 -0
- package/dist/assets/info-VBDWY6EO-BTT52JaO.js +1 -0
- package/dist/assets/infoDiagram-HS3SLOUP-GkG80Qxa.js +2 -0
- package/dist/assets/input-JxFwu-3G.js +1 -0
- package/dist/assets/javascript-BFIOGZ-j.js +1 -0
- package/dist/assets/journeyDiagram-XKPGCS4Q-DwL-PxSb.js +139 -0
- package/dist/assets/julia-Chs3F4Sv.js +1 -0
- package/dist/assets/kanban-definition-3W4ZIXB7-DiBaV6eK.js +89 -0
- package/dist/assets/katex-12J11HuB.js +1 -0
- package/dist/assets/kiosk-mode-Di-gTPu2.js +1 -0
- package/dist/assets/label-CqjrpwRC.js +1 -0
- package/dist/assets/layout-B6D_84rz.js +9 -0
- package/dist/assets/line-BDmwHhfs.js +1 -0
- package/dist/assets/linear-BPv4krGt.js +1 -0
- package/dist/assets/links-ClNQSIal.js +1 -0
- package/dist/assets/livescript-CZOCkk31.js +1 -0
- package/dist/assets/logs-panel-V4PsZD48.js +1 -0
- package/dist/assets/loro_wasm_bg-CjrUicyy.js +1 -0
- package/dist/assets/lua-DK4FKJLN.js +1 -0
- package/dist/assets/markdown-renderer-CzJx-MnJ.js +5 -0
- package/dist/assets/mathematica-BoEJU8On.js +1 -0
- package/dist/assets/mbox-1WJcoGln.js +1 -0
- package/dist/assets/menu-items-CCi6aOPm.js +1 -0
- package/dist/assets/mermaid-4DMBBIKO-3ntkrgCA.js +1 -0
- package/dist/assets/mermaid-B8gNHyGy.js +11 -0
- package/dist/assets/mermaid-parser.core-Ddjs6Jmy.js +4 -0
- package/dist/assets/mhchem-Cnt1CrAX.js +1 -0
- package/dist/assets/mindmap-definition-VGOIOE7T-DKJd1wuU.js +68 -0
- package/dist/assets/mirc-OXxqihhx.js +1 -0
- package/dist/assets/mllike-fFPa49Ft.js +1 -0
- package/dist/assets/modelica-B2hOO40U.js +1 -0
- package/dist/assets/mscgen-BUm8DSPh.js +1 -0
- package/dist/assets/mumps-BUUE1QKi.js +1 -0
- package/dist/assets/name-cell-input-Bq1sljc2.js +1 -0
- package/dist/assets/node-sql-parser-CAudyJSw.js +68 -0
- package/dist/assets/nsis-CQPY661e.js +1 -0
- package/dist/assets/nsis-SCfsPq8M.js +1 -0
- package/dist/assets/ntriples-CtWbsB7O.js +1 -0
- package/dist/assets/number-overlay-editor-KHf1PkHr.js +9 -0
- package/dist/assets/numbers-rmawRqQP.js +1 -0
- package/dist/assets/octave-D4HWE405.js +1 -0
- package/dist/assets/ordinal-BSXHDD5k.js +1 -0
- package/dist/assets/outline-panel-Tn3DVuNl.js +1 -0
- package/dist/assets/oz-Cp-6fXH5.js +1 -0
- package/dist/assets/packages-panel-er2ghj4m.js +1 -0
- package/dist/assets/packet-DYOGHKS2-pYSTMj1G.js +1 -0
- package/dist/assets/pair-with-agent-modal-CVYH-Guh.js +4 -0
- package/dist/assets/panel-accordion-state-DN1hLusu.js +1 -0
- package/dist/assets/panels-oc6cK0j0.js +4 -0
- package/dist/assets/pascal-B2F20-Dq.js +1 -0
- package/dist/assets/perl-C8I4my72.js +1 -0
- package/dist/assets/pie-VRWISCQL-BtGe15Zk.js +1 -0
- package/dist/assets/pieDiagram-ADFJNKIX-BdWIv6Xr.js +30 -0
- package/dist/assets/pig-Dg7z9udE.js +1 -0
- package/dist/assets/popover-Bcz1Zikb.js +1 -0
- package/dist/assets/powershell-BjupwEXi.js +1 -0
- package/dist/assets/process-output-DXnqTuGm.js +1 -0
- package/dist/assets/properties-CWyPUxmr.js +1 -0
- package/dist/assets/protobuf-B2dHC-BL.js +1 -0
- package/dist/assets/pug-B-MnYZUt.js +1 -0
- package/dist/assets/pug-D81S7inS.js +1 -0
- package/dist/assets/puppet-CeBQQ4Li.js +1 -0
- package/dist/assets/python-DgHNYu_r.js +1 -0
- package/dist/assets/q-wSguJrTU.js +1 -0
- package/dist/assets/quadrantDiagram-AYHSOK5B-DJuGB95-.js +7 -0
- package/dist/assets/r-BoIJ2Zve.js +1 -0
- package/dist/assets/radar-ZZBFDIW7-DyFu57RV.js +1 -0
- package/dist/assets/radio-group-CcU5wNVj.js +1 -0
- package/dist/assets/react-vega-BLc5RhC7.js +188 -0
- package/dist/assets/readonly-code-display-DoQFa0ET.js +1 -0
- package/dist/assets/readonly-python-code-CYfbPYQ0.js +1 -0
- package/dist/assets/renderShortcut-Bl8_FVn8.js +1 -0
- package/dist/assets/requirementDiagram-UZGBJVZJ-aWGJtWy2.js +64 -0
- package/dist/assets/reveal-component-CZgRCMe1.js +1069 -0
- package/dist/assets/rpm-DmyUNIkv.js +1 -0
- package/dist/assets/ruby-Djlw6kjU.js +1 -0
- package/dist/assets/run-page-Dxm4ltqq.js +1 -0
- package/dist/assets/runs-s9t2f_Tg.js +1 -0
- package/dist/assets/sankeyDiagram-TZEHDZUN-nJIZ3_NQ.js +10 -0
- package/dist/assets/sas-B8AwxLVS.js +1 -0
- package/dist/assets/scheme-o4lPnt7c.js +1 -0
- package/dist/assets/scratchpad-panel-pQP0zGxD.js +1 -0
- package/dist/assets/scroll-to-bottom-button-C8yfT4wq.js +1 -0
- package/dist/assets/secrets-panel-Cz17_MLf.js +1 -0
- package/dist/assets/select-BP75_5jJ.js +1 -0
- package/dist/assets/sequenceDiagram-WL72ISMW-Bvkxl3m4.js +145 -0
- package/dist/assets/session-BmukRjSi.js +1 -0
- package/dist/assets/session-panel-C-y42nqB.js +1 -0
- package/dist/assets/share-852X_cqy.js +1 -0
- package/dist/assets/shell-DJuOhLmg.js +1 -0
- package/dist/assets/sieve-BBDbJOX3.js +1 -0
- package/dist/assets/skeleton-Bd78PcP9.js +1 -0
- package/dist/assets/slides-DkEgzTJB.css +1 -0
- package/dist/assets/smalltalk-CmTnbqu4.js +1 -0
- package/dist/assets/snippets-panel-BRtH_9R3.js +1 -0
- package/dist/assets/sparql-BQuPdHqO.js +1 -0
- package/dist/assets/spec-C7opZZRp.js +1 -0
- package/dist/assets/src-xYaLe_3f.js +1 -0
- package/dist/assets/state-C4kiwedg.js +1 -0
- package/dist/assets/state-CsGOoEZv.js +3 -0
- package/dist/assets/state-DCtLlFJq.js +1 -0
- package/dist/assets/state-Rxc-B11B.js +1 -0
- package/dist/assets/stateDiagram-FKZM4ZOC-CVF8M4di.js +1 -0
- package/dist/assets/stateDiagram-v2-4FDKWEC3-Dj-G9wuu.js +1 -0
- package/dist/assets/step-DkIPWA0m.js +1 -0
- package/dist/assets/strings--BknHX9C.js +2 -0
- package/dist/assets/stylus-DrNz1BCZ.js +1 -0
- package/dist/assets/swift-UQ24LctC.js +1 -0
- package/dist/assets/swiper-component-DXW8snlt.js +1 -0
- package/dist/assets/switch-OVajJBPR.js +1 -0
- package/dist/assets/tcl-BBEwSttz.js +1 -0
- package/dist/assets/terminal-Cdd3rO1L.js +62 -0
- package/dist/assets/textarea-DtCcemo9.js +1 -0
- package/dist/assets/textile-CYG_qV_5.js +1 -0
- package/dist/assets/time-p47i6wvp.js +1 -0
- package/dist/assets/timeline-definition-IT6M3QCI-D1XRbH5P.js +61 -0
- package/dist/assets/toml-DB6lKkvi.js +1 -0
- package/dist/assets/tooltip-4bZlU7jl.js +1 -0
- package/dist/assets/tooltip-B7U4xkIN.js +61 -0
- package/dist/assets/tracing-CdeezhIN.js +1 -0
- package/dist/assets/tracing-panel-Dl3MlGyG.js +2 -0
- package/dist/assets/tree-actions-BiQ4VzX-.js +1 -0
- package/dist/assets/treemap-GDKQZRPO-Z4m-KHQY.js +1 -0
- package/dist/assets/troff-WrtaE-DW.js +1 -0
- package/dist/assets/ttcn-DNOLsGjD.js +1 -0
- package/dist/assets/ttcn-cfg-D2oRz-8W.js +1 -0
- package/dist/assets/turtle-hoYUNcbl.js +1 -0
- package/dist/assets/useBoolean-CFj86iac.js +1 -0
- package/dist/assets/useCellActionButton-B5wkKtv1.js +1 -0
- package/dist/assets/useDeleteCell-BfKWOHfk.js +1 -0
- package/dist/assets/useDependencyPanelTab-BTipqN67.js +1 -0
- package/dist/assets/useEventListener-C0195JsF.js +1 -0
- package/dist/assets/useHotkey-DLZvrRZT.js +1 -0
- package/dist/assets/useIframeCapabilities-j6fR_dBA.js +1 -0
- package/dist/assets/useInstallPackage-WiYBwhUO.js +1 -0
- package/dist/assets/useInterval-CnQfyMa9.js +1 -0
- package/dist/assets/useNotebookActions-CCwjICU_.js +12 -0
- package/dist/assets/useRunCells-DZ4glj3f.js +1 -0
- package/dist/assets/useSplitCell-DXzfZTCe.js +1 -0
- package/dist/assets/useTheme-Bxv9B31g.js +1 -0
- package/dist/assets/utils-BWBBpCkT.js +1 -0
- package/dist/assets/vb-CSArj0Ox.js +1 -0
- package/dist/assets/vbscript-Cy_b6RxB.js +1 -0
- package/dist/assets/vega-component-VDedA5Cd.js +1 -0
- package/dist/assets/vega-embed-container-DxSqUOCK.js +1 -0
- package/dist/assets/velocity-8fvVYgdA.js +1 -0
- package/dist/assets/verilog-BPXnWs06.js +1 -0
- package/dist/assets/vhdl-C4JSE7Sd.js +1 -0
- package/dist/assets/webidl-uP8WR81M.js +1 -0
- package/dist/assets/worker-BM73L67p.js +142 -0
- package/dist/assets/write-secret-modal-Dtm66yVf.js +2 -0
- package/dist/assets/xquery-C8ppAT5Z.js +1 -0
- package/dist/assets/xychartDiagram-PRI3JC2R-B8A0hi-Q.js +7 -0
- package/dist/assets/yacas-CnXhtfs7.js +1 -0
- package/dist/assets/z80-B0aL_Tnf.js +1 -0
- package/dist/index.html +75 -73
- package/package.json +3 -4
- package/src/__mocks__/requests.ts +56 -4
- package/src/components/data-table/__tests__/__snapshots__/chart-spec-model.test.ts.snap +174 -21
- package/src/components/data-table/__tests__/chart-spec-model.test.ts +102 -1
- package/src/components/data-table/__tests__/columns.test.tsx +9 -1
- package/src/components/data-table/column-summary/chart-spec-model.tsx +163 -103
- package/src/components/data-table/column-summary/legacy-chart-spec.ts +15 -7
- package/src/components/data-table/column-summary/utils.ts +26 -7
- package/src/components/data-table/columns.tsx +11 -1
- package/src/components/data-table/types.ts +1 -1
- package/src/components/editor/__tests__/viewer-banner.test.tsx +14 -0
- package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +99 -18
- package/src/components/editor/actions/__tests__/pdf-export.test.ts +32 -13
- package/src/components/editor/actions/pair-with-agent-commands.ts +21 -10
- package/src/components/editor/actions/pair-with-agent-modal.tsx +2 -2
- package/src/components/editor/actions/pdf-export.ts +11 -14
- package/src/components/editor/actions/useNotebookActions.tsx +28 -19
- package/src/components/editor/cell/code/__tests__/cell-editor-activity-lifecycle.test.ts +250 -0
- package/src/components/editor/cell/code/cell-editor.tsx +13 -7
- package/src/components/editor/chrome/__tests__/state.test.ts +7 -1
- package/src/components/editor/chrome/panels/__tests__/logs-panel.test.tsx +25 -0
- package/src/components/editor/chrome/panels/__tests__/panel-accordion-state.test.ts +42 -0
- package/src/components/editor/chrome/panels/file-explorer-panel.tsx +6 -17
- package/src/components/editor/chrome/panels/logs-panel.tsx +12 -2
- package/src/components/editor/chrome/panels/panel-accordion-state.ts +51 -0
- package/src/components/editor/chrome/panels/session-panel.tsx +5 -16
- package/src/components/editor/chrome/panels/write-secret-modal.tsx +40 -12
- package/src/components/editor/chrome/state.ts +10 -0
- package/src/components/editor/connections/__tests__/json-credentials.test.ts +114 -0
- package/src/components/editor/connections/__tests__/paths.test.ts +39 -0
- package/src/components/editor/connections/__tests__/quick-add-data-sources.test.tsx +113 -0
- package/src/components/editor/connections/add-connection-dialog.tsx +2 -0
- package/src/components/editor/connections/components.tsx +6 -2
- package/src/components/editor/connections/database/__tests__/__snapshots__/as-code.test.ts.snap +27 -5
- package/src/components/editor/connections/database/__tests__/as-code.test.ts +33 -0
- package/src/components/editor/connections/database/as-code.ts +37 -13
- package/src/components/editor/connections/database/schemas.ts +6 -5
- package/src/components/editor/connections/form-renderers.tsx +99 -1
- package/src/components/editor/connections/json-credentials.ts +57 -0
- package/src/components/editor/connections/paths.ts +21 -0
- package/src/components/editor/connections/quick-add-data-sources.tsx +106 -0
- package/src/components/editor/connections/secret-combobox.tsx +41 -20
- package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +88 -2
- package/src/components/editor/connections/storage/__tests__/as-code.test.ts +128 -8
- package/src/components/editor/connections/storage/as-code.ts +79 -36
- package/src/components/editor/connections/storage/schemas.ts +85 -44
- package/src/components/editor/file-tree/__tests__/renderers.test.ts +31 -0
- package/src/components/editor/file-tree/file-viewer.tsx +11 -7
- package/src/components/editor/file-tree/renderers.tsx +21 -0
- package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +2 -2
- package/src/components/editor/viewer-banner.tsx +6 -1
- package/src/components/forms/form.tsx +59 -24
- package/src/components/forms/options.ts +2 -1
- package/src/components/slides/__tests__/cell-output-block.test.tsx +40 -0
- package/src/components/slides/__tests__/slide-cell-view.test.tsx +33 -0
- package/src/components/slides/reveal-component.tsx +22 -17
- package/src/components/slides/slide-cell-view.tsx +1 -1
- package/src/components/slides/slides.css +4 -2
- package/src/components/static-html/share-modal.tsx +1 -1
- package/src/components/ui/input.tsx +1 -1
- package/src/core/ai/context/providers/file.ts +8 -29
- package/src/core/cells/__tests__/cells.test.ts +12 -2
- package/src/core/cells/__tests__/logs.test.ts +5 -5
- package/src/core/cells/cells.ts +17 -4
- package/src/core/cells/document-changes.ts +1 -0
- package/src/core/cells/logs.ts +14 -4
- package/src/core/codemirror/cm.ts +3 -0
- package/src/core/codemirror/code-lens/__tests__/actions.test.ts +68 -0
- package/src/core/codemirror/code-lens/__tests__/analyzer.test.ts +224 -0
- package/src/core/codemirror/code-lens/__tests__/entities.test.ts +175 -0
- package/src/core/codemirror/code-lens/__tests__/extension.test.ts +325 -0
- package/src/core/codemirror/code-lens/__tests__/perf.test.ts +121 -0
- package/src/core/codemirror/code-lens/__tests__/popover.test.ts +93 -0
- package/src/core/codemirror/code-lens/actions.ts +33 -0
- package/src/core/codemirror/code-lens/analyzer.ts +284 -0
- package/src/core/codemirror/code-lens/entities.ts +123 -0
- package/src/core/codemirror/code-lens/extension.ts +298 -0
- package/src/core/codemirror/code-lens/icons.ts +36 -0
- package/src/core/codemirror/code-lens/popover.tsx +240 -0
- package/src/core/codemirror/copilot/__tests__/language-server.test.ts +396 -100
- package/src/core/codemirror/copilot/__tests__/transport.test.ts +128 -540
- package/src/core/codemirror/copilot/language-server.ts +182 -70
- package/src/core/codemirror/copilot/transport.ts +15 -207
- package/src/core/codemirror/copilot/types.ts +9 -2
- package/src/core/codemirror/find-replace/__tests__/navigate.test.ts +42 -30
- package/src/core/codemirror/find-replace/navigate.ts +2 -0
- package/src/core/codemirror/go-to-definition/__tests__/commands.test.ts +24 -3
- package/src/core/codemirror/go-to-definition/commands.ts +93 -90
- package/src/core/codemirror/keymaps/__tests__/keymaps.test.ts +31 -2
- package/src/core/codemirror/keymaps/keymaps.ts +12 -0
- package/src/core/codemirror/language/__tests__/sql.test.ts +627 -61
- package/src/core/codemirror/language/languages/python.ts +23 -11
- package/src/core/codemirror/language/languages/sql/completion-store.ts +5 -1
- package/src/core/codemirror/language/languages/sql/renderers.tsx +3 -3
- package/src/core/codemirror/language/languages/sql/sql.ts +251 -16
- package/src/core/codemirror/lsp/__tests__/federated-lsp.test.ts +161 -0
- package/src/core/codemirror/lsp/__tests__/log-messages.test.ts +53 -0
- package/src/core/codemirror/lsp/__tests__/normalize-markdown-math.test.ts +25 -0
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +598 -156
- package/src/core/codemirror/lsp/__tests__/transports.test.ts +112 -0
- package/src/core/codemirror/lsp/federated-lsp.ts +76 -23
- package/src/core/codemirror/lsp/log-messages.ts +37 -0
- package/src/core/codemirror/lsp/normalize-markdown-math.ts +8 -4
- package/src/core/codemirror/lsp/notebook-lsp.ts +220 -56
- package/src/core/codemirror/lsp/transports.ts +8 -1
- package/src/core/codemirror/lsp/types.ts +68 -8
- package/src/core/codemirror/lsp/utils.ts +14 -0
- package/src/core/codemirror/python-node-names.ts +90 -0
- package/src/core/codemirror/reactive-references/analyzer.ts +52 -57
- package/src/core/codemirror/utils.ts +28 -0
- package/src/core/config/feature-flag.tsx +3 -1
- package/src/core/datasets/data-source-discovery.ts +5 -0
- package/src/core/datasets/request-registry.ts +11 -0
- package/src/core/edit-app.tsx +1 -2
- package/src/core/export/__tests__/hooks.test.ts +2 -4
- package/src/core/export/hooks.ts +4 -3
- package/src/core/hotkeys/hotkeys.ts +0 -2
- package/src/core/islands/__tests__/bridge.test.ts +107 -0
- package/src/core/islands/bootstrap.ts +1 -0
- package/src/core/islands/bridge.ts +18 -0
- package/src/core/kernel/messages.ts +2 -0
- package/src/core/lsp/__tests__/transport.test.ts +509 -337
- package/src/core/lsp/transport.ts +304 -132
- package/src/core/mode.ts +10 -0
- package/src/core/network/__tests__/api.test.ts +42 -0
- package/src/core/network/__tests__/connection.test.ts +45 -0
- package/src/core/network/__tests__/requests-lazy.test.ts +47 -1
- package/src/core/network/__tests__/requests-network.test.ts +48 -0
- package/src/core/network/api.ts +27 -0
- package/src/core/network/connection.ts +15 -0
- package/src/core/network/requests-lazy.ts +3 -0
- package/src/core/network/requests-network.ts +31 -8
- package/src/core/network/requests-static.ts +3 -0
- package/src/core/network/requests-toasting.tsx +3 -0
- package/src/core/network/types.ts +27 -6
- package/src/core/rtc/state.ts +9 -0
- package/src/core/static/download-html.ts +5 -14
- package/src/core/wasm/__tests__/bridge.test.ts +99 -5
- package/src/core/wasm/bridge.ts +42 -9
- package/src/core/wasm/worker/types.ts +10 -3
- package/src/core/wasm/worker/worker.ts +7 -8
- package/src/core/websocket/useMarimoKernelConnection.tsx +4 -0
- package/src/css/app/codemirror.css +16 -2
- package/src/hooks/__tests__/useDataSourceDiscovery.test.ts +80 -0
- package/src/hooks/useDataSourceDiscovery.ts +18 -0
- package/src/plugins/impl/DataTablePlugin.tsx +4 -1
- package/src/plugins/impl/FormPlugin.tsx +1 -1
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +158 -0
- package/src/plugins/impl/__tests__/FormPlugin.test.tsx +162 -0
- package/src/plugins/impl/anywidget/__tests__/model.test.ts +55 -0
- package/src/plugins/impl/anywidget/model.ts +20 -5
- package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +33 -21
- package/src/plugins/impl/data-frames/forms/renderers.tsx +11 -8
- package/src/stories/log-viewer.stories.tsx +12 -6
- package/src/utils/__tests__/blob.test.ts +27 -1
- package/src/utils/__tests__/download.test.tsx +44 -4
- package/src/utils/blob.ts +24 -1
- package/src/utils/download.ts +14 -15
- package/dist/assets/CellStatus-BalYv0pK.js +0 -1
- package/dist/assets/ConnectedDataExplorerComponent-DI7mV-Gw.js +0 -1
- package/dist/assets/ErrorBoundary-C7_5jjWi.js +0 -1
- package/dist/assets/ImperativeModal-BIavOiUv.js +0 -1
- package/dist/assets/JsonOutput-CkCD-FgM.js +0 -53
- package/dist/assets/LazyAnyLanguageCodeMirror-sVm_hz8A.js +0 -2
- package/dist/assets/MarimoErrorOutput-DO2k2fA5.js +0 -11
- package/dist/assets/RSPContexts-CgC81f0I.js +0 -1
- package/dist/assets/RenderHTML-BCvU9dYz.js +0 -1
- package/dist/assets/RunButton-BKRupqr7.js +0 -1
- package/dist/assets/__vite-browser-external-BkrtI7wJ.js +0 -1
- package/dist/assets/add-cell-with-ai-CEZtaZCK.js +0 -107
- package/dist/assets/add-connection-dialog-B-jCRNTN.js +0 -170
- package/dist/assets/agent-panel-CHB6t7Zy.js +0 -287
- package/dist/assets/ai-model-dropdown-DXgLphFa.js +0 -5
- package/dist/assets/alert-dialog-BXegNC0I.js +0 -11
- package/dist/assets/any-language-editor-DCpZRrpx.js +0 -1
- package/dist/assets/apl-DTwRFDps.js +0 -1
- package/dist/assets/app-config-button-NrM9ywXA.js +0 -1
- package/dist/assets/arc-CfUZAQDm.js +0 -1
- package/dist/assets/architecture-7HQA4BMR-Bvqj37EA.js +0 -1
- package/dist/assets/architectureDiagram-VXUJARFQ-sx_yisiZ.js +0 -36
- package/dist/assets/asciiarmor-CiqkDK0s.js +0 -1
- package/dist/assets/asn1-RTvH5MEs.js +0 -1
- package/dist/assets/blob-C3EfaMOb.js +0 -1
- package/dist/assets/blockDiagram-VD42YOAC-KexI-fgH.js +0 -122
- package/dist/assets/brainfuck-szH_VGzd.js +0 -1
- package/dist/assets/button-eIihcbUw.js +0 -1
- package/dist/assets/c4Diagram-YG6GDRKO-d8NrlxRF.js +0 -10
- package/dist/assets/cache-panel-wllSTlbM.js +0 -1
- package/dist/assets/capabilities-B09j1Eor.js +0 -1
- package/dist/assets/cell-editor-Dc9n2AtH.js +0 -27
- package/dist/assets/cell-link-DqBkyAFe.js +0 -1
- package/dist/assets/cells-Cf7bHHq3.js +0 -229
- package/dist/assets/channel-D-k8o3T1.js +0 -1
- package/dist/assets/chat-display-BG08ltQ3.js +0 -1
- package/dist/assets/chat-panel-P2CzCtXJ.js +0 -4
- package/dist/assets/chat-ui-fAJZAoTD.js +0 -4
- package/dist/assets/chunk-4BX2VUAB-fhh1HlXH.js +0 -1
- package/dist/assets/chunk-55IACEB6-xhaY4LU6.js +0 -1
- package/dist/assets/chunk-5FQGJX7Z-Cp0LZT-a.js +0 -113
- package/dist/assets/chunk-ABZYJK2D-BtK4zInQ.js +0 -80
- package/dist/assets/chunk-ATLVNIR6-YZDenslF.js +0 -1
- package/dist/assets/chunk-B4BG7PRW-DYIZwDbt.js +0 -165
- package/dist/assets/chunk-CVBHYZKI-CIyHeK0Q.js +0 -1
- package/dist/assets/chunk-DI55MBZ5-TodwBGEN.js +0 -220
- package/dist/assets/chunk-EXTU4WIE-C76bF1UD.js +0 -1
- package/dist/assets/chunk-FMBD7UC4-Yq65IDPA.js +0 -15
- package/dist/assets/chunk-HN2XXSSU-CcbN4n6W.js +0 -1
- package/dist/assets/chunk-JA3XYJ7Z-CPXEu7AX.js +0 -70
- package/dist/assets/chunk-JZLCHNYA-D8q1z6Py.js +0 -54
- package/dist/assets/chunk-MI3HLSF2-bmomnexd.js +0 -32
- package/dist/assets/chunk-N4CR4FBY-BhsjB2qn.js +0 -2
- package/dist/assets/chunk-QN33PNHL-ngvPqyQ0.js +0 -1
- package/dist/assets/chunk-QXUST7PY-C4c0Sjmn.js +0 -7
- package/dist/assets/chunk-QZHKN3VN-CkbwBDOS.js +0 -1
- package/dist/assets/chunk-S3R3BYOJ-Bt2NnquF.js +0 -2
- package/dist/assets/chunk-TZMSLE5B-Dysko1OC.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-C-rIg7EQ.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-MBAsRLae.js +0 -1
- package/dist/assets/clike-DKPr2D1_.js +0 -1
- package/dist/assets/clojure-CyEbLmch.js +0 -1
- package/dist/assets/cmake-Dk8f7QuI.js +0 -1
- package/dist/assets/cobol-BJJRqW1D.js +0 -1
- package/dist/assets/code-block-37QAKDTI-DlENujeV.js +0 -2
- package/dist/assets/coffeescript-BDuWJ9WO.js +0 -1
- package/dist/assets/column-preview-Dne1dIt0.js +0 -1
- package/dist/assets/command-CAJLPEBq.js +0 -1
- package/dist/assets/command-palette-CfAVBwu9.js +0 -1
- package/dist/assets/common-CD6Mj8n6.js +0 -1
- package/dist/assets/commonlisp-CVHm2VSp.js +0 -1
- package/dist/assets/components-BH6gDVv6.js +0 -1
- package/dist/assets/config-BbOTTCYY.js +0 -1
- package/dist/assets/config-COUOIPEq.js +0 -1
- package/dist/assets/copy-BtTOqPTS.js +0 -1
- package/dist/assets/copy-icon-C2pG0ZNK.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-BlMw4-M9.js +0 -1
- package/dist/assets/createReducer-C7kZ8zEe.js +0 -1
- package/dist/assets/crystal-C2Fgr79A.js +0 -1
- package/dist/assets/css-DsUcFZz8.js +0 -1
- package/dist/assets/cypher-CUlCm6vR.js +0 -1
- package/dist/assets/d-4ANEHA6q.js +0 -1
- package/dist/assets/dagre-6UL2VRFP-kJ4x17JK.js +0 -4
- package/dist/assets/data-grid-overlay-editor-DbobQcVo.js +0 -1
- package/dist/assets/datasource-ySAiC9gr.js +0 -3
- package/dist/assets/dates-D-kIKDYA.js +0 -1
- package/dist/assets/dependency-graph-panel-BF23EwcD.js +0 -5
- package/dist/assets/diagram-PSM6KHXK-d-5aQNHk.js +0 -24
- package/dist/assets/diagram-QEK2KX5R-CO-PXq75.js +0 -43
- package/dist/assets/diagram-S2PKOQOG-Dv7pcvYC.js +0 -24
- package/dist/assets/dialog-D1DEsRZ2.js +0 -1
- package/dist/assets/diff-C-W-5V8L.js +0 -1
- package/dist/assets/dist-0QUuSoRx.js +0 -1
- package/dist/assets/dist-6c4zOh78.js +0 -1
- package/dist/assets/dist-BCMBu0rO.js +0 -2
- package/dist/assets/dist-BMOD2Pyh.js +0 -1
- package/dist/assets/dist-BsphJPAV.js +0 -1
- package/dist/assets/dist-ByVeMWkr.js +0 -1
- package/dist/assets/dist-CCAhuqF-.js +0 -1
- package/dist/assets/dist-CDUl-YL4.js +0 -1
- package/dist/assets/dist-CECF_J8y.js +0 -1
- package/dist/assets/dist-CRrIf3gB.js +0 -1
- package/dist/assets/dist-DGhK0kPE.js +0 -1
- package/dist/assets/dist-DQNaXfK1.js +0 -1
- package/dist/assets/dist-Du-wcJyR.js +0 -7
- package/dist/assets/dist-R1kU4nzJ.js +0 -1
- package/dist/assets/dist-SVDIDTM2.js +0 -1
- package/dist/assets/dist-sPfKr-vH.js +0 -1
- package/dist/assets/dist-xSLg7wNV.js +0 -1
- package/dist/assets/dockerfile-C2PznFWk.js +0 -1
- package/dist/assets/documentation-panel-e9Fi9R7e.js +0 -1
- package/dist/assets/download-BomYt3nl.js +0 -9
- package/dist/assets/dropdown-menu-BFZLnWeO.js +0 -1
- package/dist/assets/dtd-D9h-tL8G.js +0 -1
- package/dist/assets/dylan-D3MC56xy.js +0 -1
- package/dist/assets/ecl-B6UC4tME.js +0 -1
- package/dist/assets/edit-page-C0GKZFRK.js +0 -9
- package/dist/assets/eiffel-CjvEov4k.js +0 -1
- package/dist/assets/elm-DvSbvRWe.js +0 -1
- package/dist/assets/erDiagram-Q2GNP2WA-BQ8HfnRu.js +0 -60
- package/dist/assets/erlang-DJYaGXyq.js +0 -1
- package/dist/assets/error-banner-B6eIlxzg.js +0 -1
- package/dist/assets/error-entries-Birw-8VX.js +0 -8
- package/dist/assets/error-panel-DdsUL6b7.js +0 -1
- package/dist/assets/es-1D83cgiu.js +0 -5
- package/dist/assets/esm-BL7jQmzn.js +0 -1
- package/dist/assets/esm-Cmv0Nuxi.js +0 -1
- package/dist/assets/factor-CUQCrkTo.js +0 -1
- package/dist/assets/factor-DMrXrOH8.js +0 -1
- package/dist/assets/field-BeZbVzXA.js +0 -1
- package/dist/assets/file-explorer-panel-Ntq1-VbF.js +0 -26
- package/dist/assets/file-icons-Cb54mIL8.js +0 -1
- package/dist/assets/file-name-input-BWFcK1ey.js +0 -3
- package/dist/assets/fileToBase64-C2Yy-YXq.js +0 -1
- package/dist/assets/floating-outline-wz-WSRgP.js +0 -1
- package/dist/assets/flowDiagram-NV44I4VS-xBOzhlfg.js +0 -162
- package/dist/assets/focus-DiEyfiAG.js +0 -1
- package/dist/assets/form-B6BkSCJb.js +0 -2
- package/dist/assets/formats-ClEFGPy-.js +0 -1
- package/dist/assets/formatting-B_41gSF5.js +0 -1
- package/dist/assets/forth-D9xegiCO.js +0 -1
- package/dist/assets/fortran-B0Oe0U8s.js +0 -1
- package/dist/assets/fullscreen-dUjPYOmm.js +0 -41
- package/dist/assets/gallery-page-CWQQAYpa.js +0 -1
- package/dist/assets/ganttDiagram-JELNMOA3-D2O_k-Zg.js +0 -267
- package/dist/assets/gas-jLjj-PIq.js +0 -1
- package/dist/assets/gherkin-3Ig8Crit.js +0 -1
- package/dist/assets/gitGraph-G5XIXVHT-8HJwNcdU.js +0 -1
- package/dist/assets/gitGraphDiagram-V2S2FVAM-Nk4Ll9GY.js +0 -65
- package/dist/assets/glide-data-editor-lMARFWHS.js +0 -132
- package/dist/assets/groovy-NKpNVJ-n.js +0 -1
- package/dist/assets/haskell-OPE4bAjk.js +0 -1
- package/dist/assets/haxe-DEAZF8L3.js +0 -1
- package/dist/assets/home-page-DJ4jJsZj.js +0 -4
- package/dist/assets/html-to-image-CwmX28T9.js +0 -2
- package/dist/assets/idl-BM6265Xl.js +0 -1
- package/dist/assets/index-BN0kAyO7.js +0 -38
- package/dist/assets/index-xs-zSSrX.css +0 -2
- package/dist/assets/info-VBDWY6EO-rfe3WPvd.js +0 -1
- package/dist/assets/infoDiagram-HS3SLOUP-DQnMjKYJ.js +0 -2
- package/dist/assets/input-CqrUjynb.js +0 -1
- package/dist/assets/javascript-CZ9vDpAy.js +0 -1
- package/dist/assets/journeyDiagram-XKPGCS4Q-D61FGivn.js +0 -139
- package/dist/assets/julia-BrY9TQnt.js +0 -1
- package/dist/assets/kanban-definition-3W4ZIXB7-Bnv0X0Tu.js +0 -89
- package/dist/assets/katex-C-lfa1AM.js +0 -1
- package/dist/assets/kiosk-mode-ABm3oYgq.js +0 -1
- package/dist/assets/label-BElwWzf0.js +0 -1
- package/dist/assets/layout-8qIOoWr6.js +0 -9
- package/dist/assets/line-DNm2phYo.js +0 -1
- package/dist/assets/linear-CTQqNbVX.js +0 -1
- package/dist/assets/links-CToBjIIj.js +0 -1
- package/dist/assets/livescript-CNahkUp5.js +0 -1
- package/dist/assets/logs-panel-iFV4ZJ9b.js +0 -1
- package/dist/assets/loro_wasm_bg-Duqr-kJ2.js +0 -1
- package/dist/assets/lua-Skr4TVu_.js +0 -1
- package/dist/assets/markdown-renderer-QvXG0CRk.js +0 -5
- package/dist/assets/mathematica-BXxhrpeY.js +0 -1
- package/dist/assets/mbox-BRrQCVe9.js +0 -1
- package/dist/assets/menu-items-DbSLBfXR.js +0 -1
- package/dist/assets/mermaid-4DMBBIKO-CDGmT6YQ.js +0 -1
- package/dist/assets/mermaid-Bh0flEIb.js +0 -11
- package/dist/assets/mermaid-parser.core-Dz2GMGqQ.js +0 -4
- package/dist/assets/mhchem-CIWniJp4.js +0 -1
- package/dist/assets/mindmap-definition-VGOIOE7T-C-YaKmEU.js +0 -68
- package/dist/assets/mirc-CffYPE4R.js +0 -1
- package/dist/assets/mllike-C1DLZhEI.js +0 -1
- package/dist/assets/modelica-CvAyRRNV.js +0 -1
- package/dist/assets/mscgen-uMZWtMZv.js +0 -1
- package/dist/assets/mumps-DFJehEx7.js +0 -1
- package/dist/assets/name-cell-input-C6cukQ9k.js +0 -1
- package/dist/assets/node-sql-parser-BWgUjcfV.js +0 -68
- package/dist/assets/nsis-BVI9YULz.js +0 -1
- package/dist/assets/nsis-Ccvd1gbp.js +0 -1
- package/dist/assets/ntriples-Bcdh7b2H.js +0 -1
- package/dist/assets/number-overlay-editor-BQ9P6yP7.js +0 -9
- package/dist/assets/numbers-CeeaFKqu.js +0 -1
- package/dist/assets/octave-CdAKz6YS.js +0 -1
- package/dist/assets/ordinal-DyTNGK17.js +0 -1
- package/dist/assets/outline-panel-BPlg9_CE.js +0 -1
- package/dist/assets/oz-DSySeR-W.js +0 -1
- package/dist/assets/packages-panel-BzQF60rG.js +0 -1
- package/dist/assets/packet-DYOGHKS2-DTVloLa7.js +0 -1
- package/dist/assets/pair-with-agent-modal-CKOYwOYw.js +0 -4
- package/dist/assets/panels-DoYN5Sjm.js +0 -4
- package/dist/assets/pascal-DefziIUN.js +0 -1
- package/dist/assets/perl-BOOloBPk.js +0 -1
- package/dist/assets/pie-VRWISCQL-Bmght6JF.js +0 -1
- package/dist/assets/pieDiagram-ADFJNKIX-DlFYL0BN.js +0 -30
- package/dist/assets/pig-f0nBb-5x.js +0 -1
- package/dist/assets/popover-DrHQ3KEt.js +0 -1
- package/dist/assets/powershell-DToQjbK9.js +0 -1
- package/dist/assets/process-output-BEhIGfkO.js +0 -1
- package/dist/assets/properties-BRob-nyj.js +0 -1
- package/dist/assets/protobuf-DZyC6051.js +0 -1
- package/dist/assets/pug-BtXi5KiX.js +0 -1
- package/dist/assets/pug-pVoM8FRt.js +0 -1
- package/dist/assets/puppet-9fuYG07F.js +0 -1
- package/dist/assets/python-_Mr8fyXP.js +0 -1
- package/dist/assets/q-D73s4Y77.js +0 -1
- package/dist/assets/quadrantDiagram-AYHSOK5B-BpJug2BH.js +0 -7
- package/dist/assets/r-BOEjz92e.js +0 -1
- package/dist/assets/radar-ZZBFDIW7-CYwWzRgW.js +0 -1
- package/dist/assets/radio-group-CLBjGkt5.js +0 -1
- package/dist/assets/react-vega-TNCk_eWj.js +0 -188
- package/dist/assets/readonly-code-display-D63oRtBP.js +0 -1
- package/dist/assets/readonly-python-code-CW_G5e4E.js +0 -1
- package/dist/assets/renderShortcut-BZLr8D7H.js +0 -1
- package/dist/assets/requirementDiagram-UZGBJVZJ-Bd-1eny8.js +0 -64
- package/dist/assets/reveal-component-BxHiLG4_.js +0 -1069
- package/dist/assets/rpm-LpXWTM5t.js +0 -1
- package/dist/assets/ruby-DodgSDfF.js +0 -1
- package/dist/assets/run-page-Dwu5y6Vv.js +0 -1
- package/dist/assets/runs-D51Xwrsk.js +0 -1
- package/dist/assets/sankeyDiagram-TZEHDZUN-CDWAE6GV.js +0 -10
- package/dist/assets/sas-D9KCtUmL.js +0 -1
- package/dist/assets/scheme-p8UJxmJw.js +0 -1
- package/dist/assets/scratchpad-panel-7BZVzpvj.js +0 -1
- package/dist/assets/scroll-to-bottom-button-Cgr10kaJ.js +0 -1
- package/dist/assets/secrets-panel-Cc5KDBk6.js +0 -1
- package/dist/assets/select-B5TFNjmU.js +0 -1
- package/dist/assets/sequenceDiagram-WL72ISMW-B6hjDGBF.js +0 -145
- package/dist/assets/session-CEFnN9Cq.js +0 -1
- package/dist/assets/session-panel-Y0Oon0sD.js +0 -1
- package/dist/assets/share-CYpcX4N4.js +0 -1
- package/dist/assets/shell-BWdqyqwL.js +0 -1
- package/dist/assets/sieve-CLwJmtiQ.js +0 -1
- package/dist/assets/skeleton-BdSCqt9m.js +0 -1
- package/dist/assets/slides-MCbMDtlY.css +0 -1
- package/dist/assets/smalltalk-D3KV-Qah.js +0 -1
- package/dist/assets/snippets-panel-CXpGflMO.js +0 -1
- package/dist/assets/sparql-D9Jz2mBw.js +0 -1
- package/dist/assets/spec-CzqcmYQk.js +0 -1
- package/dist/assets/src-CIOdyciO.js +0 -1
- package/dist/assets/state-BZQc7xxL.js +0 -3
- package/dist/assets/state-BvdK8eiw.js +0 -1
- package/dist/assets/state-DBzEQtWz.js +0 -1
- package/dist/assets/state-WBgc7MiA.js +0 -1
- package/dist/assets/stateDiagram-FKZM4ZOC-Bzv6j99z.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CA1l0rNa.js +0 -1
- package/dist/assets/step-CDlhJj9-.js +0 -1
- package/dist/assets/strings-Djnbwmfl.js +0 -2
- package/dist/assets/stylus-ClN4l_XO.js +0 -1
- package/dist/assets/swift-Dvd_9xBv.js +0 -1
- package/dist/assets/swiper-component-DInvCxhI.js +0 -1
- package/dist/assets/switch-CvweaCXq.js +0 -1
- package/dist/assets/tcl-DR2p8cyi.js +0 -1
- package/dist/assets/terminal-D3IQBBYo.js +0 -62
- package/dist/assets/textarea-CpFfEUet.js +0 -1
- package/dist/assets/textile-D6S27_J2.js +0 -1
- package/dist/assets/time-BuRlxEhE.js +0 -1
- package/dist/assets/timeline-definition-IT6M3QCI-DXwdU1og.js +0 -61
- package/dist/assets/toml-B-YuQ2Id.js +0 -1
- package/dist/assets/tooltip-CFX4fYHU.js +0 -1
- package/dist/assets/tooltip-HLb6RxVp.js +0 -61
- package/dist/assets/tracing-CKn3gWHw.js +0 -1
- package/dist/assets/tracing-panel-BU-o_LCd.js +0 -2
- package/dist/assets/tree-actions-CsC2XmGo.js +0 -1
- package/dist/assets/treemap-GDKQZRPO-4Cm6HMmj.js +0 -1
- package/dist/assets/troff-HSk8AoRF.js +0 -1
- package/dist/assets/ttcn-CehzlVdx.js +0 -1
- package/dist/assets/ttcn-cfg-CLEPwk1s.js +0 -1
- package/dist/assets/turtle-DQLHkbOu.js +0 -1
- package/dist/assets/useBoolean-D89u30n-.js +0 -1
- package/dist/assets/useCellActionButton-CRfIEVB5.js +0 -1
- package/dist/assets/useDeleteCell-EPH4kcG7.js +0 -1
- package/dist/assets/useDependencyPanelTab-CZnK7N2L.js +0 -1
- package/dist/assets/useEventListener-B_w3A283.js +0 -1
- package/dist/assets/useHotkey-DIuRH8Wu.js +0 -1
- package/dist/assets/useIframeCapabilities-Ccb4fvKc.js +0 -1
- package/dist/assets/useInstallPackage-BRbUAUFn.js +0 -1
- package/dist/assets/useInterval-CC0vKpWm.js +0 -1
- package/dist/assets/useNotebookActions-CAf3BzKW.js +0 -12
- package/dist/assets/useRunCells-CSSF_mJ0.js +0 -1
- package/dist/assets/useSplitCell-9Qz93yPZ.js +0 -1
- package/dist/assets/useTheme-KXqAyDPC.js +0 -1
- package/dist/assets/utils-Z80SV4_d.js +0 -1
- package/dist/assets/vb-o1EHrS4z.js +0 -1
- package/dist/assets/vbscript-BS8yUFpf.js +0 -1
- package/dist/assets/vega-component-Cie3ag_T.js +0 -1
- package/dist/assets/vega-embed-container-hDAVOOba.js +0 -1
- package/dist/assets/velocity-u_oGPFaA.js +0 -1
- package/dist/assets/verilog-CSmDH7su.js +0 -1
- package/dist/assets/vhdl-BCaWLcjw.js +0 -1
- package/dist/assets/webidl-Bf6dokXM.js +0 -1
- package/dist/assets/worker-BQo2bijx.js +0 -145
- package/dist/assets/write-secret-modal-DEEn7sZV.js +0 -1
- package/dist/assets/xquery-Di0kkiXg.js +0 -1
- package/dist/assets/xychartDiagram-PRI3JC2R-Cb0exSKs.js +0 -7
- package/dist/assets/yacas-DB8tPtyp.js +0 -1
- package/dist/assets/z80-DFUvlWxk.js +0 -1
- /package/dist/assets/{ImageComparisonComponent-Cz3xVDLH.js → ImageComparisonComponent-COvcNAUu.js} +0 -0
- /package/dist/assets/{Inputs-B8-VCb_j.js → Inputs-BmtHnGKp.js} +0 -0
- /package/dist/assets/{Plot-X2G47XHf.js → Plot-CB_5AR7d.js} +0 -0
- /package/dist/assets/{apl-DVqFAlEd.js → apl-Cp4QYSh2.js} +0 -0
- /package/dist/assets/{array-Ddg9CgJT.js → array-BuhHwWF4.js} +0 -0
- /package/dist/assets/{asciiarmor-B45BhOLj.js → asciiarmor-BUxo-e6o.js} +0 -0
- /package/dist/assets/{asn1-C4T2ctU6.js → asn1-Cp_b5sxr.js} +0 -0
- /package/dist/assets/{asterisk-9U_4Kgke.js → asterisk-BKEE609E.js} +0 -0
- /package/dist/assets/{azure-nN8APleF.js → azure-t5-hyIQ1.js} +0 -0
- /package/dist/assets/{brainfuck-kVh8Eud4.js → brainfuck-DmRCaE-Q.js} +0 -0
- /package/dist/assets/{card-VUBaYDpT.js → card-P_NJTnTd.js} +0 -0
- /package/dist/assets/{chunk-4F5CHEZ2-ClSh5rxG.js → chunk-4F5CHEZ2-D6n-cT3v.js} +0 -0
- /package/dist/assets/{chunk-B2363JML-cit0ouFv.js → chunk-B2363JML-kkXnm2Yp.js} +0 -0
- /package/dist/assets/{chunk-DR5Q36YT-Bsu9Glc0.js → chunk-DR5Q36YT-DZQANAzH.js} +0 -0
- /package/dist/assets/{chunk-FRFDVMJY--Re1QfFE.js → chunk-FRFDVMJY-MdHMrSks.js} +0 -0
- /package/dist/assets/{chunk-PL6DKKU2-CAwRAr-p.js → chunk-PL6DKKU2-BPi2wKR3.js} +0 -0
- /package/dist/assets/{chunk-SJTYNZTY-G1spWesO.js → chunk-SJTYNZTY-BcV9dsih.js} +0 -0
- /package/dist/assets/{chunk-TQ3KTPDO-DBwra5xv.js → chunk-TQ3KTPDO-XDjkQ8Xj.js} +0 -0
- /package/dist/assets/{chunk-UMXZTB3W-A5RvYDPE.js → chunk-UMXZTB3W-C-xu4f6g.js} +0 -0
- /package/dist/assets/{clear-button-DQtvx6eq.js → clear-button-clPKQb-5.js} +0 -0
- /package/dist/assets/{click-outside-container-CrWZsAF5.js → click-outside-container-BU5ChL3W.js} +0 -0
- /package/dist/assets/{clike-O0gwXilc.js → clike--wVFVJzz.js} +0 -0
- /package/dist/assets/{clojure-CsbMWxp9.js → clojure-xvpMtcD1.js} +0 -0
- /package/dist/assets/{cmake-FpJvOdyj.js → cmake-ChD_WVwL.js} +0 -0
- /package/dist/assets/{cobol-Duxbpsru.js → cobol-B5K8KXv5.js} +0 -0
- /package/dist/assets/{coffeescript-D-Unz9IP.js → coffeescript-EMaA6sFP.js} +0 -0
- /package/dist/assets/{colors-C_0lIznd.js → colors-CQfhPUa2.js} +0 -0
- /package/dist/assets/{common-keywords-PqH2GDfH.js → common-keywords-DdCmdKox.js} +0 -0
- /package/dist/assets/{commonlisp-_nR12oc7.js → commonlisp-BTUt7Wms.js} +0 -0
- /package/dist/assets/{crystal-dj3W4b1A.js → crystal-CaYGQjnj.js} +0 -0
- /package/dist/assets/{css-0BG6A_BC.js → css-Ci5CSFmt.js} +0 -0
- /package/dist/assets/{cypher-CKPokaoH.js → cypher-Bt0cHBYq.js} +0 -0
- /package/dist/assets/{cytoscape.esm-DzUNSF80.js → cytoscape.esm-CbUmcCyd.js} +0 -0
- /package/dist/assets/{d-BrbqzVa2.js → d-Y6y0yT7l.js} +0 -0
- /package/dist/assets/{diff-BmdR9FsO.js → diff-DWzGHZfz.js} +0 -0
- /package/dist/assets/{dist-CpbbK4-I.js → dist-8SH6SWEG.js} +0 -0
- /package/dist/assets/{dist-DzAAhYcW.js → dist-9o0Xjd5v.js} +0 -0
- /package/dist/assets/{dist-DNGKAtWk.js → dist-BKgHjzML.js} +0 -0
- /package/dist/assets/{dist-98K4fusX.js → dist-BP4hpPAE.js} +0 -0
- /package/dist/assets/{dist-D35OyUMQ.js → dist-C-3FVUQA.js} +0 -0
- /package/dist/assets/{dist-OgwOt8T2.js → dist-C6_DArtj.js} +0 -0
- /package/dist/assets/{dist-O5-NiN3f.js → dist-CLyRge8R.js} +0 -0
- /package/dist/assets/{dist-D5ToCtv8.js → dist-CZvbHnyT.js} +0 -0
- /package/dist/assets/{dist-DrtRBAn8.js → dist-CrKffqgx.js} +0 -0
- /package/dist/assets/{dist-B8g3pNYJ.js → dist-Cros4IAo.js} +0 -0
- /package/dist/assets/{dist-3N7-WLqi.js → dist-D47O3FBX.js} +0 -0
- /package/dist/assets/{dist-BaKJ0-Tb.js → dist-DJuRuTXr.js} +0 -0
- /package/dist/assets/{dist-CM-lWxt3.js → dist-DQl27SFq.js} +0 -0
- /package/dist/assets/{dist-DokId-qM.js → dist-DeJBvhAc.js} +0 -0
- /package/dist/assets/{dist-C5kf6g-d.js → dist-fLBYOt9R.js} +0 -0
- /package/dist/assets/{dist-56ul6-mm.js → dist-kLs0VbW_.js} +0 -0
- /package/dist/assets/{dist-ByK00N0T.js → dist-l4RTzHX-.js} +0 -0
- /package/dist/assets/{dist-D9sE1udr.js → dist-ut5UbaRH.js} +0 -0
- /package/dist/assets/{dtd-DbCXDVgi.js → dtd-CkphQXbR.js} +0 -0
- /package/dist/assets/{duckdb-keywords-mPlR0SxW.js → duckdb-keywords-D9ZiGTTc.js} +0 -0
- /package/dist/assets/{dylan-CLLzL2Js.js → dylan-CPyS5Usd.js} +0 -0
- /package/dist/assets/{ebnf-Cnws41cu.js → ebnf-C4SDYpAu.js} +0 -0
- /package/dist/assets/{ecl-BC7x2nzk.js → ecl-Dy8k_w5N.js} +0 -0
- /package/dist/assets/{eiffel-CDU836rz.js → eiffel-DZMtnEo6.js} +0 -0
- /package/dist/assets/{elm-D-_bXARs.js → elm-CkuOc7z-.js} +0 -0
- /package/dist/assets/{empty-state-CqJvEFRk.js → empty-state-JOk_hLQe.js} +0 -0
- /package/dist/assets/{erlang-CwDZk2zM.js → erlang-CSyJ5dU6.js} +0 -0
- /package/dist/assets/{esm-D6WfbcL3.js → esm-7r3G8FZG.js} +0 -0
- /package/dist/assets/{fcl-CwkPc-_9.js → fcl-Px-Zskiw.js} +0 -0
- /package/dist/assets/{forth-D6FsO_8x.js → forth-HHM4VU-4.js} +0 -0
- /package/dist/assets/{fortran-D4BMbIkG.js → fortran-D_hdoGUs.js} +0 -0
- /package/dist/assets/{gas-JFjzcgdY.js → gas-DwXUGevO.js} +0 -0
- /package/dist/assets/{gherkin-Cyu-qGaF.js → gherkin-6UjduaeQ.js} +0 -0
- /package/dist/assets/{github-_JH-0hIO.js → github-A_zUd4Uj.js} +0 -0
- /package/dist/assets/{groovy-CZaE9eN-.js → groovy-BMSTiLIi.js} +0 -0
- /package/dist/assets/{haskell-Dc6o0IGr.js → haskell-CwQPWeas.js} +0 -0
- /package/dist/assets/{haxe-Bsf0tzqs.js → haxe-BwgB7edi.js} +0 -0
- /package/dist/assets/{http-BQNSD-HR.js → http-CqevOCDe.js} +0 -0
- /package/dist/assets/{idl-1W91kQ8_.js → idl-DaVQAS85.js} +0 -0
- /package/dist/assets/{init-nx27Zb9l.js → init-D5qG588s.js} +0 -0
- /package/dist/assets/{javascript-BZ81-2rO.js → javascript-DgYFgf02.js} +0 -0
- /package/dist/assets/{julia-BZOsq0r_.js → julia-ZzackTsi.js} +0 -0
- /package/dist/assets/{katex-CvZ3kCGk.js → katex-Di-siZEY.js} +0 -0
- /package/dist/assets/{livescript-CNZfmikk.js → livescript-fyjJd0Zu.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-RNUly1SE.js → loro_wasm_bg-BPjF1TWb.js} +0 -0
- /package/dist/assets/{lua-DXGRliwd.js → lua-Cx9isc8d.js} +0 -0
- /package/dist/assets/{marimo-icons-C_nFooxr.js → marimo-icons-yD_pAOm9.js} +0 -0
- /package/dist/assets/{math-CLO4uoaP.js → math-7EMdGNhR.js} +0 -0
- /package/dist/assets/{mathematica-BoUj8M7D.js → mathematica-BJvaPi1-.js} +0 -0
- /package/dist/assets/{mbox-DLVP8LAe.js → mbox-43z3jriT.js} +0 -0
- /package/dist/assets/{mirc-kI4d5fMu.js → mirc-B1ZSd8Bn.js} +0 -0
- /package/dist/assets/{mllike-CD9vBc_2.js → mllike-DZwCuWJi.js} +0 -0
- /package/dist/assets/{modelica-DgfsLJuF.js → modelica-DJJ2ie2z.js} +0 -0
- /package/dist/assets/{mscgen-B1HDwshJ.js → mscgen-CKYpxNp_.js} +0 -0
- /package/dist/assets/{multi-icon-nrKPWjDU.js → multi-icon-DVD1luis.js} +0 -0
- /package/dist/assets/{mumps-D_-b9TZD.js → mumps-DYGlTYd1.js} +0 -0
- /package/dist/assets/{nginx-Cm282mo8.js → nginx-D6Zlgok6.js} +0 -0
- /package/dist/assets/{ntriples-COX9JFZ8.js → ntriples-DizNPLuO.js} +0 -0
- /package/dist/assets/{octave-BejycR79.js → octave-DdwI7gwd.js} +0 -0
- /package/dist/assets/{oz-CFFivrGn.js → oz-DMPAJRti.js} +0 -0
- /package/dist/assets/{panel-context-CH75ubGG.js → panel-context-CckkyW-1.js} +0 -0
- /package/dist/assets/{pascal-B_p9jkCs.js → pascal-Do0zihr_.js} +0 -0
- /package/dist/assets/{path-Bz_hIzg5.js → path-WJo29M9I.js} +0 -0
- /package/dist/assets/{pathUtils-Bfcp5m-a.js → pathUtils-icFgkNy9.js} +0 -0
- /package/dist/assets/{perl-C-SFBTly.js → perl-t4XY-5wj.js} +0 -0
- /package/dist/assets/{pig-BhxDMp2k.js → pig-CgweiC6M.js} +0 -0
- /package/dist/assets/{powershell-c59M-9N2.js → powershell-OQGwpWeH.js} +0 -0
- /package/dist/assets/{properties-D1JNwCKy.js → properties-BU4KenKz.js} +0 -0
- /package/dist/assets/{protobuf-DQS7ex8R.js → protobuf--IbBPde2.js} +0 -0
- /package/dist/assets/{puppet-DaQvhvew.js → puppet-DkR_zpq4.js} +0 -0
- /package/dist/assets/{python-XHl3eRTS.js → python-PdpM9cxt.js} +0 -0
- /package/dist/assets/{q-DppnoRE3.js → q-BmGsZsKc.js} +0 -0
- /package/dist/assets/{r-D8-F_FWj.js → r-D1cPebaP.js} +0 -0
- /package/dist/assets/{request-registry-DHocQ_4I.js → request-registry-Dpk9hQrX.js} +0 -0
- /package/dist/assets/{requests-DYeT4CEe.js → requests-BMphPdzB.js} +0 -0
- /package/dist/assets/{rpm-CegJhNNO.js → rpm-CG3vlu2-.js} +0 -0
- /package/dist/assets/{ruby-YMIxufV1.js → ruby-BU2XuRQM.js} +0 -0
- /package/dist/assets/{sas-wTtX9UIQ.js → sas-ig9j_2iC.js} +0 -0
- /package/dist/assets/{scheme-BGenom3k.js → scheme-9DZXzBKN.js} +0 -0
- /package/dist/assets/{semaphore-DtBYRzWS.js → semaphore-C-Nli4KG.js} +0 -0
- /package/dist/assets/{shell-Bu1sLaiP.js → shell-BtigxJqY.js} +0 -0
- /package/dist/assets/{sieve-ffe6rUQh.js → sieve-DJ-mn8HY.js} +0 -0
- /package/dist/assets/{simple-mode-DBSzUJLA.js → simple-mode-lTjyt9i9.js} +0 -0
- /package/dist/assets/{smalltalk-NU5EGjHp.js → smalltalk-Bn53uNk6.js} +0 -0
- /package/dist/assets/{solr-ptw1yIqO.js → solr-BenHzQuB.js} +0 -0
- /package/dist/assets/{sparql-uqVktnwO.js → sparql-mdFRPSSw.js} +0 -0
- /package/dist/assets/{spreadsheet-VEzeu_mb.js → spreadsheet-CIIID0RN.js} +0 -0
- /package/dist/assets/{sql-tYjnWETe.js → sql-BJS8pfHr.js} +0 -0
- /package/dist/assets/{src-BshXgZd4.js → src-C042FyXq.js} +0 -0
- /package/dist/assets/{stylus-B2E6Ulaz.js → stylus-CUXYXPeL.js} +0 -0
- /package/dist/assets/{swift-Rmnn7ATv.js → swift-BgwlI0GN.js} +0 -0
- /package/dist/assets/{tcl-ZPWCn2nn.js → tcl-B8Khjzwl.js} +0 -0
- /package/dist/assets/{textile-uhA33kFk.js → textile-DmfgOrXO.js} +0 -0
- /package/dist/assets/{tiddlywiki-CPkGLyXH.js → tiddlywiki-mgaN9k7_.js} +0 -0
- /package/dist/assets/{tiki-BtjLo8OF.js → tiki-B8Sxh4ZA.js} +0 -0
- /package/dist/assets/{timer-VYMLXPue.js → timer-Bt8Z3SQI.js} +0 -0
- /package/dist/assets/{toml-BFZv2Mv7.js → toml-CPrwnn25.js} +0 -0
- /package/dist/assets/{treemap-Bca0xNNq.js → treemap-CshYMgJw.js} +0 -0
- /package/dist/assets/{troff-B5eayHop.js → troff-Cb-2hp0t.js} +0 -0
- /package/dist/assets/{ttcn-cfg-CfbkL3Q_.js → ttcn-cfg-O0cle81j.js} +0 -0
- /package/dist/assets/{ttcn-BM0Yp8NY.js → ttcn-mp3DV9SP.js} +0 -0
- /package/dist/assets/{turtle-DvetLxrv.js → turtle-Bo_IjRT-.js} +0 -0
- /package/dist/assets/{types-Da7lA5YC.js → types-Bn-E0Dh-.js} +0 -0
- /package/dist/assets/{use-vega-container-remeasure-CbKTb_jy.js → use-vega-container-remeasure-C52OJt1l.js} +0 -0
- /package/dist/assets/{vb-i5Z8scch.js → vb-B84py4l9.js} +0 -0
- /package/dist/assets/{vbscript-BiPYgIyi.js → vbscript-DCWGTF8B.js} +0 -0
- /package/dist/assets/{velocity-Dw3R3YoX.js → velocity-COls9qbE.js} +0 -0
- /package/dist/assets/{verilog-B8FhJcX6.js → verilog-Dn4JRpb3.js} +0 -0
- /package/dist/assets/{vhdl-BqPEoXdJ.js → vhdl-DxQ-aNCu.js} +0 -0
- /package/dist/assets/{web-vitals-CwE0GGzl.js → web-vitals-DBq6CjRf.js} +0 -0
- /package/dist/assets/{webidl-mMO-qW5Q.js → webidl-IlD_Nbdp.js} +0 -0
- /package/dist/assets/{ws-BmTnbVEi.js → ws-Dj1iZVFK.js} +0 -0
- /package/dist/assets/{xquery-DvqNwq7L.js → xquery-DwkwsYYE.js} +0 -0
- /package/dist/assets/{yacas-Dku9Z6Kf.js → yacas-CR27GINL.js} +0 -0
- /package/dist/assets/{z80-DvazU5Tr.js → z80-DDujbhXi.js} +0 -0
|
@@ -5,6 +5,7 @@ import type { EditorState } from "@codemirror/state";
|
|
|
5
5
|
import type { SyntaxNode, Tree, TreeCursor } from "@lezer/common";
|
|
6
6
|
import { type CellId, SETUP_CELL_ID } from "@/core/cells/ids";
|
|
7
7
|
import type { VariableName, Variables } from "@/core/variables/types";
|
|
8
|
+
import { PyKeyword, PyNode, SCOPE_CREATING_NODES } from "../python-node-names";
|
|
8
9
|
|
|
9
10
|
export interface ReactiveVariableRange {
|
|
10
11
|
from: number;
|
|
@@ -12,16 +13,6 @@ export interface ReactiveVariableRange {
|
|
|
12
13
|
variableName: string;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
const SCOPE_CREATING_NODES = new Set([
|
|
16
|
-
"FunctionDefinition",
|
|
17
|
-
"LambdaExpression",
|
|
18
|
-
"ArrayComprehensionExpression",
|
|
19
|
-
"SetComprehensionExpression",
|
|
20
|
-
"DictionaryComprehensionExpression",
|
|
21
|
-
"ComprehensionExpression",
|
|
22
|
-
"ClassDefinition",
|
|
23
|
-
]);
|
|
24
|
-
|
|
25
16
|
/**
|
|
26
17
|
* Analyzes the given editor state to find variable names that represent
|
|
27
18
|
* reactive dependencies from other cells (similar to ObservableHQ's approach).
|
|
@@ -88,11 +79,11 @@ export function findReactiveVariables(options: {
|
|
|
88
79
|
}
|
|
89
80
|
|
|
90
81
|
switch (nodeName) {
|
|
91
|
-
case
|
|
82
|
+
case PyNode.FunctionDefinition: {
|
|
92
83
|
const subCursor = node.cursor();
|
|
93
84
|
subCursor.firstChild();
|
|
94
85
|
do {
|
|
95
|
-
if (subCursor.name ===
|
|
86
|
+
if (subCursor.name === PyNode.VariableName) {
|
|
96
87
|
const functionName = options.state.doc.sliceString(
|
|
97
88
|
subCursor.from,
|
|
98
89
|
subCursor.to,
|
|
@@ -111,11 +102,11 @@ export function findReactiveVariables(options: {
|
|
|
111
102
|
const paramCursor = node.cursor();
|
|
112
103
|
paramCursor.firstChild();
|
|
113
104
|
do {
|
|
114
|
-
if (paramCursor.name ===
|
|
105
|
+
if (paramCursor.name === PyNode.ParamList) {
|
|
115
106
|
const paramListCursor = paramCursor.node.cursor();
|
|
116
107
|
paramListCursor.firstChild();
|
|
117
108
|
do {
|
|
118
|
-
if (paramListCursor.name ===
|
|
109
|
+
if (paramListCursor.name === PyNode.VariableName) {
|
|
119
110
|
const paramName = options.state.doc.sliceString(
|
|
120
111
|
paramListCursor.from,
|
|
121
112
|
paramListCursor.to,
|
|
@@ -128,16 +119,16 @@ export function findReactiveVariables(options: {
|
|
|
128
119
|
|
|
129
120
|
break;
|
|
130
121
|
}
|
|
131
|
-
case
|
|
122
|
+
case PyNode.LambdaExpression: {
|
|
132
123
|
// Lambda params
|
|
133
124
|
const subCursor = node.cursor();
|
|
134
125
|
subCursor.firstChild();
|
|
135
126
|
do {
|
|
136
|
-
if (subCursor.name ===
|
|
127
|
+
if (subCursor.name === PyNode.ParamList) {
|
|
137
128
|
const paramCursor = subCursor.node.cursor();
|
|
138
129
|
paramCursor.firstChild();
|
|
139
130
|
do {
|
|
140
|
-
if (paramCursor.name ===
|
|
131
|
+
if (paramCursor.name === PyNode.VariableName) {
|
|
141
132
|
const paramName = options.state.doc.sliceString(
|
|
142
133
|
paramCursor.from,
|
|
143
134
|
paramCursor.to,
|
|
@@ -150,29 +141,29 @@ export function findReactiveVariables(options: {
|
|
|
150
141
|
|
|
151
142
|
break;
|
|
152
143
|
}
|
|
153
|
-
case
|
|
154
|
-
case
|
|
155
|
-
case
|
|
156
|
-
case
|
|
144
|
+
case PyNode.ArrayComprehensionExpression:
|
|
145
|
+
case PyNode.DictionaryComprehensionExpression:
|
|
146
|
+
case PyNode.SetComprehensionExpression:
|
|
147
|
+
case PyNode.ComprehensionExpression: {
|
|
157
148
|
// Domprehension variables - look for VariableName or TupleExpression after 'for'
|
|
158
149
|
const subCursor = node.cursor();
|
|
159
150
|
subCursor.firstChild();
|
|
160
151
|
let foundFor = false;
|
|
161
152
|
do {
|
|
162
|
-
if (subCursor.name ===
|
|
153
|
+
if (subCursor.name === PyKeyword.For) {
|
|
163
154
|
foundFor = true;
|
|
164
|
-
} else if (foundFor && subCursor.name ===
|
|
155
|
+
} else if (foundFor && subCursor.name === PyNode.VariableName) {
|
|
165
156
|
const varName = options.state.doc.sliceString(
|
|
166
157
|
subCursor.from,
|
|
167
158
|
subCursor.to,
|
|
168
159
|
);
|
|
169
160
|
allDeclarations.get(nodeStart)?.add(varName);
|
|
170
|
-
} else if (foundFor && subCursor.name ===
|
|
161
|
+
} else if (foundFor && subCursor.name === PyNode.TupleExpression) {
|
|
171
162
|
// Handle tuple destructuring like (k, v)
|
|
172
163
|
const tupleCursor = subCursor.node.cursor();
|
|
173
164
|
tupleCursor.firstChild();
|
|
174
165
|
do {
|
|
175
|
-
if (tupleCursor.name ===
|
|
166
|
+
if (tupleCursor.name === PyNode.VariableName) {
|
|
176
167
|
const varName = options.state.doc.sliceString(
|
|
177
168
|
tupleCursor.from,
|
|
178
169
|
tupleCursor.to,
|
|
@@ -180,18 +171,18 @@ export function findReactiveVariables(options: {
|
|
|
180
171
|
allDeclarations.get(nodeStart)?.add(varName);
|
|
181
172
|
}
|
|
182
173
|
} while (tupleCursor.nextSibling());
|
|
183
|
-
} else if (foundFor && subCursor.name ===
|
|
174
|
+
} else if (foundFor && subCursor.name === PyKeyword.In) {
|
|
184
175
|
foundFor = false; // Stop collecting variables after 'in'
|
|
185
176
|
}
|
|
186
177
|
} while (subCursor.nextSibling());
|
|
187
178
|
|
|
188
179
|
break;
|
|
189
180
|
}
|
|
190
|
-
case
|
|
181
|
+
case PyNode.ClassDefinition: {
|
|
191
182
|
const subCursor = node.cursor();
|
|
192
183
|
subCursor.firstChild();
|
|
193
184
|
do {
|
|
194
|
-
if (subCursor.name ===
|
|
185
|
+
if (subCursor.name === PyNode.VariableName) {
|
|
195
186
|
const className = options.state.doc.sliceString(
|
|
196
187
|
subCursor.from,
|
|
197
188
|
subCursor.to,
|
|
@@ -210,7 +201,7 @@ export function findReactiveVariables(options: {
|
|
|
210
201
|
|
|
211
202
|
break;
|
|
212
203
|
}
|
|
213
|
-
case
|
|
204
|
+
case PyNode.AssignStatement: {
|
|
214
205
|
// Assignments - capture all variables being assigned to (variables that come before the last AssignOp)
|
|
215
206
|
const subCursor = node.cursor();
|
|
216
207
|
|
|
@@ -218,7 +209,7 @@ export function findReactiveVariables(options: {
|
|
|
218
209
|
const assignOpPositions: number[] = [];
|
|
219
210
|
subCursor.firstChild();
|
|
220
211
|
do {
|
|
221
|
-
if (subCursor.name ===
|
|
212
|
+
if (subCursor.name === PyNode.AssignOp) {
|
|
222
213
|
assignOpPositions.push(subCursor.from);
|
|
223
214
|
}
|
|
224
215
|
} while (subCursor.nextSibling());
|
|
@@ -248,15 +239,15 @@ export function findReactiveVariables(options: {
|
|
|
248
239
|
|
|
249
240
|
break;
|
|
250
241
|
}
|
|
251
|
-
case
|
|
242
|
+
case PyNode.ForStatement: {
|
|
252
243
|
// For loop variables
|
|
253
244
|
const subCursor = node.cursor();
|
|
254
245
|
subCursor.firstChild();
|
|
255
246
|
let foundFor = false;
|
|
256
247
|
do {
|
|
257
|
-
if (subCursor.name ===
|
|
248
|
+
if (subCursor.name === PyKeyword.For) {
|
|
258
249
|
foundFor = true;
|
|
259
|
-
} else if (foundFor && subCursor.name ===
|
|
250
|
+
} else if (foundFor && subCursor.name === PyNode.VariableName) {
|
|
260
251
|
const varName = options.state.doc.sliceString(
|
|
261
252
|
subCursor.from,
|
|
262
253
|
subCursor.to,
|
|
@@ -268,14 +259,14 @@ export function findReactiveVariables(options: {
|
|
|
268
259
|
allDeclarations.set(currentScope, new Set());
|
|
269
260
|
}
|
|
270
261
|
allDeclarations.get(currentScope)?.add(varName);
|
|
271
|
-
} else if (foundFor && subCursor.name ===
|
|
262
|
+
} else if (foundFor && subCursor.name === PyKeyword.In) {
|
|
272
263
|
foundFor = false; // Stop collecting variables after 'in'
|
|
273
264
|
}
|
|
274
265
|
} while (subCursor.nextSibling());
|
|
275
266
|
|
|
276
267
|
break;
|
|
277
268
|
}
|
|
278
|
-
case
|
|
269
|
+
case PyNode.ImportStatement: {
|
|
279
270
|
// The grammar emits a single ImportStatement for both `import x [as y]`
|
|
280
271
|
// and `from m import x [as y], ...`. Direct children mix keywords,
|
|
281
272
|
// module-path names (before `import`), imported names, and aliases.
|
|
@@ -299,19 +290,19 @@ export function findReactiveVariables(options: {
|
|
|
299
290
|
pending = null;
|
|
300
291
|
};
|
|
301
292
|
do {
|
|
302
|
-
if (subCursor.name ===
|
|
293
|
+
if (subCursor.name === PyKeyword.Import) {
|
|
303
294
|
pastImport = true;
|
|
304
295
|
continue;
|
|
305
296
|
}
|
|
306
297
|
if (!pastImport) {
|
|
307
298
|
continue;
|
|
308
299
|
}
|
|
309
|
-
if (subCursor.name ===
|
|
300
|
+
if (subCursor.name === PyKeyword.As) {
|
|
310
301
|
// Drop the imported name; the next VariableName is the alias.
|
|
311
302
|
pending = null;
|
|
312
303
|
continue;
|
|
313
304
|
}
|
|
314
|
-
if (subCursor.name ===
|
|
305
|
+
if (subCursor.name === PyNode.VariableName) {
|
|
315
306
|
commit();
|
|
316
307
|
pending = options.state.doc.sliceString(
|
|
317
308
|
subCursor.from,
|
|
@@ -325,15 +316,15 @@ export function findReactiveVariables(options: {
|
|
|
325
316
|
|
|
326
317
|
break;
|
|
327
318
|
}
|
|
328
|
-
case
|
|
319
|
+
case PyNode.TryStatement: {
|
|
329
320
|
// Exception variable binding - look for 'as' followed by VariableName
|
|
330
321
|
const subCursor = node.cursor();
|
|
331
322
|
subCursor.firstChild();
|
|
332
323
|
let foundAs = false;
|
|
333
324
|
do {
|
|
334
|
-
if (subCursor.name ===
|
|
325
|
+
if (subCursor.name === PyKeyword.As) {
|
|
335
326
|
foundAs = true;
|
|
336
|
-
} else if (foundAs && subCursor.name ===
|
|
327
|
+
} else if (foundAs && subCursor.name === PyNode.VariableName) {
|
|
337
328
|
const varName = options.state.doc.sliceString(
|
|
338
329
|
subCursor.from,
|
|
339
330
|
subCursor.to,
|
|
@@ -350,14 +341,14 @@ export function findReactiveVariables(options: {
|
|
|
350
341
|
|
|
351
342
|
break;
|
|
352
343
|
}
|
|
353
|
-
case
|
|
344
|
+
case PyNode.WithStatement: {
|
|
354
345
|
const subCursor = node.cursor();
|
|
355
346
|
subCursor.firstChild();
|
|
356
347
|
let foundAs = false;
|
|
357
348
|
do {
|
|
358
|
-
if (subCursor.name ===
|
|
349
|
+
if (subCursor.name === PyKeyword.As) {
|
|
359
350
|
foundAs = true;
|
|
360
|
-
} else if (foundAs && subCursor.name ===
|
|
351
|
+
} else if (foundAs && subCursor.name === PyNode.VariableName) {
|
|
361
352
|
const varName = options.state.doc.sliceString(
|
|
362
353
|
subCursor.from,
|
|
363
354
|
subCursor.to,
|
|
@@ -405,7 +396,7 @@ export function findReactiveVariables(options: {
|
|
|
405
396
|
for (const scope of scopeStack) {
|
|
406
397
|
const scopeType = scopeTypes.get(scope);
|
|
407
398
|
|
|
408
|
-
if (scopeType ===
|
|
399
|
+
if (scopeType === PyNode.ClassDefinition) {
|
|
409
400
|
// for class scopes, check position-based declarations
|
|
410
401
|
if (isVariableDeclaredInClassScope(varName, scope, cursorPosition)) {
|
|
411
402
|
return true;
|
|
@@ -429,7 +420,7 @@ export function findReactiveVariables(options: {
|
|
|
429
420
|
|
|
430
421
|
// Names inside an import statement are module paths, imported names, or
|
|
431
422
|
// aliases — none of them are reactive *uses* of an outer-cell global.
|
|
432
|
-
if (nodeName ===
|
|
423
|
+
if (nodeName === PyNode.ImportStatement) {
|
|
433
424
|
return;
|
|
434
425
|
}
|
|
435
426
|
|
|
@@ -440,7 +431,7 @@ export function findReactiveVariables(options: {
|
|
|
440
431
|
currentScopeStack = [...scopeStack, nodeStart];
|
|
441
432
|
}
|
|
442
433
|
|
|
443
|
-
if (nodeName ===
|
|
434
|
+
if (nodeName === PyNode.VariableName) {
|
|
444
435
|
const varName = options.state.doc.sliceString(cursor.from, cursor.to);
|
|
445
436
|
|
|
446
437
|
if (shouldHighlightVariable(varName, cursor)) {
|
|
@@ -498,13 +489,17 @@ export function findReactiveVariables(options: {
|
|
|
498
489
|
function isKeywordArgumentName(cursor: TreeCursor): boolean {
|
|
499
490
|
const temp = cursor.node.cursor();
|
|
500
491
|
temp.moveTo(cursor.from);
|
|
501
|
-
if (
|
|
492
|
+
if (
|
|
493
|
+
temp.parent() &&
|
|
494
|
+
temp.name === PyNode.CallExpression &&
|
|
495
|
+
temp.firstChild()
|
|
496
|
+
) {
|
|
502
497
|
do {
|
|
503
498
|
// @ts-expect-error: comparing disjoint string literals is intentional due to do/while traversal
|
|
504
|
-
if (temp.name ===
|
|
499
|
+
if (temp.name === PyNode.ArgList && temp.firstChild()) {
|
|
505
500
|
do {
|
|
506
501
|
if (temp.from === cursor.from && temp.to === cursor.to) {
|
|
507
|
-
return temp.nextSibling() && temp.name ===
|
|
502
|
+
return temp.nextSibling() && temp.name === PyNode.AssignOp;
|
|
508
503
|
}
|
|
509
504
|
} while (temp.nextSibling());
|
|
510
505
|
break;
|
|
@@ -519,14 +514,14 @@ function isAssignmentTarget(cursor: TreeCursor): boolean {
|
|
|
519
514
|
const temp = cursor.node.cursor();
|
|
520
515
|
|
|
521
516
|
// Check if parent is AssignStatement
|
|
522
|
-
if (temp.parent() && temp.name ===
|
|
517
|
+
if (temp.parent() && temp.name === PyNode.AssignStatement) {
|
|
523
518
|
// Now check if this VariableName is before the AssignOp
|
|
524
519
|
const assignStatementCursor = temp.node.cursor();
|
|
525
520
|
assignStatementCursor.firstChild();
|
|
526
521
|
|
|
527
522
|
let assignOpPosition = -1;
|
|
528
523
|
do {
|
|
529
|
-
if (assignStatementCursor.name ===
|
|
524
|
+
if (assignStatementCursor.name === PyNode.AssignOp) {
|
|
530
525
|
assignOpPosition = assignStatementCursor.from;
|
|
531
526
|
break;
|
|
532
527
|
}
|
|
@@ -556,7 +551,7 @@ function isPropertyAccess(cursor: TreeCursor): boolean {
|
|
|
556
551
|
* Checks if the syntax tree contains any syntax errors.
|
|
557
552
|
* If there are errors, we shouldn't show reactive variable highlighting.
|
|
558
553
|
*/
|
|
559
|
-
function hasSyntaxErrors(tree: Tree): boolean {
|
|
554
|
+
export function hasSyntaxErrors(tree: Tree): boolean {
|
|
560
555
|
const cursor = tree.cursor();
|
|
561
556
|
do {
|
|
562
557
|
// Lezer uses "⚠" as the error node name for syntax errors
|
|
@@ -583,11 +578,11 @@ function extractAssignmentTargets(
|
|
|
583
578
|
},
|
|
584
579
|
) {
|
|
585
580
|
switch (cursor.name) {
|
|
586
|
-
case
|
|
581
|
+
case PyNode.VariableName: {
|
|
587
582
|
const varName = options.state.doc.sliceString(cursor.from, cursor.to);
|
|
588
583
|
const isInClassScope =
|
|
589
584
|
options.currentScope !== -1 &&
|
|
590
|
-
options.scopeTypes.get(options.currentScope) ===
|
|
585
|
+
options.scopeTypes.get(options.currentScope) === PyNode.ClassDefinition;
|
|
591
586
|
|
|
592
587
|
if (isInClassScope) {
|
|
593
588
|
// For class-level assignments, track the position of the assignment
|
|
@@ -606,7 +601,7 @@ function extractAssignmentTargets(
|
|
|
606
601
|
|
|
607
602
|
break;
|
|
608
603
|
}
|
|
609
|
-
case
|
|
604
|
+
case PyNode.TupleExpression: {
|
|
610
605
|
// Handle tuple unpacking like (x, (y, z)) = ...
|
|
611
606
|
const tupleCursor = cursor.node.cursor();
|
|
612
607
|
tupleCursor.firstChild();
|
|
@@ -616,7 +611,7 @@ function extractAssignmentTargets(
|
|
|
616
611
|
|
|
617
612
|
break;
|
|
618
613
|
}
|
|
619
|
-
case
|
|
614
|
+
case PyNode.ArrayExpression: {
|
|
620
615
|
// Handle list unpacking like [a, b, c] = ...
|
|
621
616
|
const arrayCursor = cursor.node.cursor();
|
|
622
617
|
arrayCursor.firstChild();
|
|
@@ -52,6 +52,34 @@ export function focusInputAndMoveToEnd(
|
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Scrolls the `.marimo-cell` that owns `view` into view.
|
|
57
|
+
*
|
|
58
|
+
* `EditorView.scrollIntoView` doesn't work in columns mode: it stops at the
|
|
59
|
+
* first overflowing ancestor even if that ancestor doesn't actually scroll,
|
|
60
|
+
* so it never reaches the real horizontally-scrolling container. The
|
|
61
|
+
* browser's native `Element.scrollIntoView` doesn't have that problem.
|
|
62
|
+
*
|
|
63
|
+
* Deferred a frame so CodeMirror's own scroll settles first; otherwise it
|
|
64
|
+
* clamps this scroll right back.
|
|
65
|
+
*
|
|
66
|
+
* https://github.com/marimo-team/marimo/issues/10222
|
|
67
|
+
*/
|
|
68
|
+
export function scrollOwnerCell(view: EditorView): void {
|
|
69
|
+
const cell = view.dom.closest(".marimo-cell");
|
|
70
|
+
if (!cell) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
requestAnimationFrame(() => {
|
|
75
|
+
cell.scrollIntoView({
|
|
76
|
+
behavior: "instant",
|
|
77
|
+
block: "nearest",
|
|
78
|
+
inline: "nearest",
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
55
83
|
export function isInVimMode(ev: EditorView): boolean {
|
|
56
84
|
return getCM(ev)?.state.vim != null;
|
|
57
85
|
}
|
|
@@ -13,6 +13,7 @@ export interface ExperimentalFeatures {
|
|
|
13
13
|
external_agents: boolean;
|
|
14
14
|
debugger: boolean; // Live frame-watching debugger (gutter breakpoints + pdb)
|
|
15
15
|
line_timing: boolean; // Green active-line highlight + per-line elapsed timer
|
|
16
|
+
editor_code_lens: boolean; // Inline icons in cell editors linking datasources/buckets/caches to their panels
|
|
16
17
|
// Add new feature flags here
|
|
17
18
|
}
|
|
18
19
|
|
|
@@ -20,10 +21,11 @@ const defaultValues: ExperimentalFeatures = {
|
|
|
20
21
|
markdown: true,
|
|
21
22
|
wasm_layouts: false,
|
|
22
23
|
rtc_v2: false,
|
|
23
|
-
cache_panel:
|
|
24
|
+
cache_panel: import.meta.env.DEV,
|
|
24
25
|
external_agents: import.meta.env.DEV,
|
|
25
26
|
debugger: false,
|
|
26
27
|
line_timing: false,
|
|
28
|
+
editor_code_lens: import.meta.env.DEV,
|
|
27
29
|
};
|
|
28
30
|
|
|
29
31
|
export function getFeatureFlag<T extends keyof ExperimentalFeatures>(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
import type {
|
|
3
|
+
DataSourceDiscoveryResult,
|
|
3
4
|
SQLSchemaListPreview,
|
|
4
5
|
SQLTableListPreview,
|
|
5
6
|
SQLTablePreview,
|
|
@@ -19,6 +20,16 @@ import type {
|
|
|
19
20
|
// The backend returns data tables, which could also exist in other engines, dbs, schemas
|
|
20
21
|
// Thus, we use the request ID pattern to match the response to the request
|
|
21
22
|
|
|
23
|
+
export const DiscoverDataSources = new DeferredRequestRegistry<
|
|
24
|
+
{},
|
|
25
|
+
DataSourceDiscoveryResult
|
|
26
|
+
>("data-source-discovery-result", async (requestId) => {
|
|
27
|
+
const client = getRequestClient();
|
|
28
|
+
await client.discoverDataSources({
|
|
29
|
+
requestId,
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
22
33
|
export const PreviewSQLTable = new DeferredRequestRegistry<
|
|
23
34
|
Omit<PreviewSQLTableRequest, "requestId">,
|
|
24
35
|
SQLTablePreview
|
package/src/core/edit-app.tsx
CHANGED
|
@@ -164,6 +164,7 @@ export const EditApp: React.FC<AppProps> = ({
|
|
|
164
164
|
width={appConfig.width}
|
|
165
165
|
onReconnect={reconnect}
|
|
166
166
|
>
|
|
167
|
+
<ViewerBanner />
|
|
167
168
|
<AppHeader
|
|
168
169
|
connection={connection}
|
|
169
170
|
className={cn(
|
|
@@ -179,8 +180,6 @@ export const EditApp: React.FC<AppProps> = ({
|
|
|
179
180
|
)}
|
|
180
181
|
</AppHeader>
|
|
181
182
|
|
|
182
|
-
<ViewerBanner />
|
|
183
|
-
|
|
184
183
|
{/* Don't render until we have a single cell. NotStartedConnectionAlert
|
|
185
184
|
still covers the "no remote runtime started" prompt. */}
|
|
186
185
|
<ProgressiveBoundary
|
|
@@ -648,8 +648,7 @@ describe("updateCellOutputsWithScreenshots", () => {
|
|
|
648
648
|
);
|
|
649
649
|
expect(toast).toHaveBeenCalledWith({
|
|
650
650
|
title: "Failed to capture cell outputs",
|
|
651
|
-
description:
|
|
652
|
-
"Some outputs may not appear in the PDF. Continuing with export.",
|
|
651
|
+
description: "Some outputs may be missing from the export. Continuing.",
|
|
653
652
|
variant: "danger",
|
|
654
653
|
});
|
|
655
654
|
});
|
|
@@ -679,8 +678,7 @@ describe("updateCellOutputsWithScreenshots", () => {
|
|
|
679
678
|
);
|
|
680
679
|
expect(toast).toHaveBeenCalledWith({
|
|
681
680
|
title: "Failed to capture cell outputs",
|
|
682
|
-
description:
|
|
683
|
-
"Some outputs may not appear in the PDF. Continuing with export.",
|
|
681
|
+
description: "Some outputs may be missing from the export. Continuing.",
|
|
684
682
|
variant: "danger",
|
|
685
683
|
});
|
|
686
684
|
});
|
package/src/core/export/hooks.ts
CHANGED
|
@@ -112,7 +112,9 @@ interface UseEnrichCellOutputsOptions {
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
*
|
|
115
|
+
* Capture browser-rendered cell outputs for current-session exports.
|
|
116
|
+
*
|
|
117
|
+
* The caller uploads these PNG representations before requesting an export.
|
|
116
118
|
* @returns A map of cell IDs to their screenshots data.
|
|
117
119
|
*/
|
|
118
120
|
export function useEnrichCellOutputs(): (
|
|
@@ -221,8 +223,7 @@ export async function updateCellOutputsWithScreenshots(opts: {
|
|
|
221
223
|
Logger.error("Error updating cell outputs with screenshots:", error);
|
|
222
224
|
toast({
|
|
223
225
|
title: "Failed to capture cell outputs",
|
|
224
|
-
description:
|
|
225
|
-
"Some outputs may not appear in the PDF. Continuing with export.",
|
|
226
|
+
description: "Some outputs may be missing from the export. Continuing.",
|
|
226
227
|
variant: "danger",
|
|
227
228
|
});
|
|
228
229
|
}
|
|
@@ -256,13 +256,11 @@ const DEFAULT_HOT_KEY = {
|
|
|
256
256
|
name: "Copy line(s) up",
|
|
257
257
|
group: "Editing",
|
|
258
258
|
key: "Alt-Shift-ArrowUp",
|
|
259
|
-
editable: false,
|
|
260
259
|
},
|
|
261
260
|
"cell.copyLineDown": {
|
|
262
261
|
name: "Copy line(s) down",
|
|
263
262
|
group: "Editing",
|
|
264
263
|
key: "Alt-Shift-ArrowDown",
|
|
265
|
-
editable: false,
|
|
266
264
|
},
|
|
267
265
|
|
|
268
266
|
// Markdown
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from "@/__tests__/branded";
|
|
11
11
|
import { notebookAtom } from "@/core/cells/cells";
|
|
12
12
|
import { islandsPendingInitialRunsAtom } from "@/core/islands/state";
|
|
13
|
+
import type { IslandsKernelMessage } from "../worker/worker";
|
|
13
14
|
|
|
14
15
|
type Base64String = components["schemas"]["Base64String"];
|
|
15
16
|
interface TestIslandApp {
|
|
@@ -173,6 +174,19 @@ describe("IslandsPyodideBridge", () => {
|
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
176
|
|
|
177
|
+
function sendKernelMessage(sessionGeneration: number) {
|
|
178
|
+
const listener = mockMessageListeners.get("kernelMessage");
|
|
179
|
+
if (!listener) {
|
|
180
|
+
throw new Error("Missing kernel message listener");
|
|
181
|
+
}
|
|
182
|
+
const message = {
|
|
183
|
+
message: "" as IslandsKernelMessage["message"],
|
|
184
|
+
sessionGeneration,
|
|
185
|
+
};
|
|
186
|
+
listener(message as never);
|
|
187
|
+
return message;
|
|
188
|
+
}
|
|
189
|
+
|
|
176
190
|
async function initializeSingleApp() {
|
|
177
191
|
mockSingleApp();
|
|
178
192
|
await bridge.initializeApps();
|
|
@@ -281,6 +295,99 @@ describe("IslandsPyodideBridge", () => {
|
|
|
281
295
|
});
|
|
282
296
|
|
|
283
297
|
describe("app lifecycle", () => {
|
|
298
|
+
it("ignores messages after a session yields ownership", async () => {
|
|
299
|
+
const consumeMessage = vi.fn();
|
|
300
|
+
bridge.consumeMessages(consumeMessage);
|
|
301
|
+
mockSingleApp();
|
|
302
|
+
await bridge.initializeApps();
|
|
303
|
+
|
|
304
|
+
const firstMessage = sendKernelMessage(1);
|
|
305
|
+
let finishReplacement!: () => void;
|
|
306
|
+
mockReplaceSessionRequest.mockReturnValueOnce(
|
|
307
|
+
new Promise<void>((resolve) => {
|
|
308
|
+
finishReplacement = resolve;
|
|
309
|
+
}),
|
|
310
|
+
);
|
|
311
|
+
setSingleApp("generated app 2");
|
|
312
|
+
const replacement = bridge.initializeApps();
|
|
313
|
+
await vi.waitFor(() =>
|
|
314
|
+
expect(mockReplaceSessionRequest).toHaveBeenCalledOnce(),
|
|
315
|
+
);
|
|
316
|
+
sendKernelMessage(1);
|
|
317
|
+
const currentMessage = sendKernelMessage(2);
|
|
318
|
+
|
|
319
|
+
expect(consumeMessage.mock.calls).toEqual([
|
|
320
|
+
[firstMessage],
|
|
321
|
+
[currentMessage],
|
|
322
|
+
]);
|
|
323
|
+
|
|
324
|
+
finishReplacement();
|
|
325
|
+
await replacement;
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
it("restores message ownership when replacement fails", async () => {
|
|
329
|
+
const consumeMessage = vi.fn();
|
|
330
|
+
bridge.consumeMessages(consumeMessage);
|
|
331
|
+
mockSingleApp();
|
|
332
|
+
await bridge.initializeApps();
|
|
333
|
+
mockReplaceSessionRequest.mockRejectedValueOnce(
|
|
334
|
+
new Error("replacement failed"),
|
|
335
|
+
);
|
|
336
|
+
setSingleApp("generated app 2");
|
|
337
|
+
|
|
338
|
+
await expect(bridge.initializeApps()).rejects.toThrow(
|
|
339
|
+
"replacement failed",
|
|
340
|
+
);
|
|
341
|
+
const previousMessage = sendKernelMessage(1);
|
|
342
|
+
sendKernelMessage(2);
|
|
343
|
+
|
|
344
|
+
expect(consumeMessage.mock.calls).toEqual([[previousMessage]]);
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
it("ignores messages while their session is stopping", async () => {
|
|
348
|
+
const consumeMessage = vi.fn();
|
|
349
|
+
bridge.consumeMessages(consumeMessage);
|
|
350
|
+
mockSingleApp();
|
|
351
|
+
await bridge.initializeApps();
|
|
352
|
+
let finishStop!: () => void;
|
|
353
|
+
mockStopSessionRequest.mockReturnValueOnce(
|
|
354
|
+
new Promise<void>((resolve) => {
|
|
355
|
+
finishStop = resolve;
|
|
356
|
+
}),
|
|
357
|
+
);
|
|
358
|
+
|
|
359
|
+
const stop = bridge.stopSession();
|
|
360
|
+
await vi.waitFor(() =>
|
|
361
|
+
expect(mockStopSessionRequest).toHaveBeenCalledOnce(),
|
|
362
|
+
);
|
|
363
|
+
sendKernelMessage(1);
|
|
364
|
+
|
|
365
|
+
expect(consumeMessage).not.toHaveBeenCalled();
|
|
366
|
+
|
|
367
|
+
finishStop();
|
|
368
|
+
await stop;
|
|
369
|
+
});
|
|
370
|
+
|
|
371
|
+
it("forwards messages from every app in a multi-app document", async () => {
|
|
372
|
+
const consumeMessage = vi.fn();
|
|
373
|
+
bridge.consumeMessages(consumeMessage);
|
|
374
|
+
mockParseMarimoIslandApps.mockReturnValue([app(), app("app-2")]);
|
|
375
|
+
mockCreateMarimoFile
|
|
376
|
+
.mockReturnValueOnce("generated app 1")
|
|
377
|
+
.mockReturnValueOnce("generated app 2");
|
|
378
|
+
signalWorkerReady();
|
|
379
|
+
|
|
380
|
+
await bridge.initializeApps();
|
|
381
|
+
const firstMessage = sendKernelMessage(1);
|
|
382
|
+
const secondMessage = sendKernelMessage(2);
|
|
383
|
+
sendKernelMessage(3);
|
|
384
|
+
|
|
385
|
+
expect(consumeMessage.mock.calls).toEqual([
|
|
386
|
+
[firstMessage],
|
|
387
|
+
[secondMessage],
|
|
388
|
+
]);
|
|
389
|
+
});
|
|
390
|
+
|
|
284
391
|
it("holds controls until the first app session is ready", async () => {
|
|
285
392
|
setSingleApp();
|
|
286
393
|
|