@marimo-team/frontend 0.21.2-dev93 → 0.21.2-dev94
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-BK7h5iOz.js → CellStatus-CjuKStpl.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-DoChluQ-.js → ConnectedDataExplorerComponent-BQ2JgaJh.js} +1 -1
- package/dist/assets/JsonOutput-Cpci2Llb.js +49 -0
- package/dist/assets/LazyAnyLanguageCodeMirror-JSMdoajI.js +2 -0
- package/dist/assets/{MarimoErrorOutput-_E60QXVt.js → MarimoErrorOutput-C3dgyHB-.js} +1 -1
- package/dist/assets/{RenderHTML-g5EDdnnD.js → RenderHTML-BOchBzK-.js} +1 -1
- package/dist/assets/{add-cell-with-ai-BnaP9hSr.js → add-cell-with-ai-CZC0nS0L.js} +1 -1
- package/dist/assets/{add-connection-dialog-06NpHq00.js → add-connection-dialog-BO-MkVRM.js} +1 -1
- package/dist/assets/{agent-panel-DJ5aXdHi.js → agent-panel-PvvWJu_k.js} +1 -1
- package/dist/assets/{ai-model-dropdown-jU9ynWdH.js → ai-model-dropdown-ZW2lUu_0.js} +4 -4
- package/dist/assets/{any-language-editor-DlxN1l0x.js → any-language-editor-CjpOiyIQ.js} +1 -1
- package/dist/assets/apl-ezh0ScS-.js +1 -0
- package/dist/assets/{app-config-button-DOB3JPAf.js → app-config-button-BAtDNUSt.js} +1 -1
- package/dist/assets/{arc-CjAURx94.js → arc-CBXXHTae.js} +1 -1
- package/dist/assets/{architecture-7HQA4BMR-Dq4Prhq1.js → architecture-7HQA4BMR-CmWAZjSN.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-Diujowxv.js → architectureDiagram-VXUJARFQ-D9P34c01.js} +1 -1
- package/dist/assets/asciiarmor-DBqyln4y.js +1 -0
- package/dist/assets/asn1-C9Hie9a5.js +1 -0
- package/dist/assets/{blockDiagram-VD42YOAC-PW2IHpUp.js → blockDiagram-VD42YOAC-C0Bfw4sD.js} +1 -1
- package/dist/assets/brainfuck-BDNU41Mw.js +1 -0
- package/dist/assets/{c4Diagram-YG6GDRKO-EGZ1a-_C.js → c4Diagram-YG6GDRKO-D706031P.js} +1 -1
- package/dist/assets/{cache-panel-B5VFQG8a.js → cache-panel-DGBa8dcc.js} +1 -1
- package/dist/assets/{cell-editor-C3ucNXHM.js → cell-editor-X_hvgRQ8.js} +6 -6
- package/dist/assets/{cell-link-5GTb1oDP.js → cell-link-Rcz-LPKa.js} +1 -1
- package/dist/assets/{cells-CB6BZwqi.js → cells-rqCJr5Ib.js} +4 -4
- package/dist/assets/channel-CuSIY3DL.js +1 -0
- package/dist/assets/{chat-display-OCgUTnJ_.js → chat-display-e8OUH4kz.js} +1 -1
- package/dist/assets/{chat-panel-CZSMpH_d.js → chat-panel-CrtglFkA.js} +1 -1
- package/dist/assets/{chat-ui-XL_YuGzG.js → chat-ui-DL8QYPrv.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-DKzzWsJ2.js → chunk-4BX2VUAB-BnurtY5R.js} +1 -1
- package/dist/assets/chunk-55IACEB6-KvSJ_UGg.js +1 -0
- package/dist/assets/{chunk-5FQGJX7Z-CBznRPn1.js → chunk-5FQGJX7Z-BMCEQJ02.js} +2 -2
- package/dist/assets/{chunk-ABZYJK2D-DQq3dMBH.js → chunk-ABZYJK2D-B6ZuiRXR.js} +3 -3
- package/dist/assets/{chunk-ATLVNIR6-C0Tlb9fb.js → chunk-ATLVNIR6-BQvP6gy2.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-DvGerJSs.js → chunk-B4BG7PRW-1uIBV02j.js} +1 -1
- package/dist/assets/{chunk-CVBHYZKI-DLwi7nxp.js → chunk-CVBHYZKI-CsebuiSO.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-LtpZlQqe.js → chunk-DI55MBZ5-DW6FcyIx.js} +1 -1
- package/dist/assets/{chunk-EXTU4WIE-Bof-JwJJ.js → chunk-EXTU4WIE-BtBP0dYe.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-D0M7n-oo.js → chunk-FMBD7UC4-CQFtReAu.js} +1 -1
- package/dist/assets/{chunk-HN2XXSSU-Cieu13Ce.js → chunk-HN2XXSSU-Bw_9WyjM.js} +1 -1
- package/dist/assets/{chunk-JA3XYJ7Z-D945qKHP.js → chunk-JA3XYJ7Z-BrccaYVb.js} +1 -1
- package/dist/assets/{chunk-JZLCHNYA-CW-snA50.js → chunk-JZLCHNYA-B5-oPszI.js} +1 -1
- package/dist/assets/{chunk-MI3HLSF2-DBLE7N5q.js → chunk-MI3HLSF2-Csy17Fj5.js} +1 -1
- package/dist/assets/{chunk-N4CR4FBY-Bq1DDSa-.js → chunk-N4CR4FBY-o1rZ_5CM.js} +2 -2
- package/dist/assets/{chunk-QN33PNHL-OiEru3iu.js → chunk-QN33PNHL-BTg-I0Lr.js} +1 -1
- package/dist/assets/{chunk-QXUST7PY-D-eZpBLp.js → chunk-QXUST7PY-bjTU5DnU.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-it7r150M.js → chunk-QZHKN3VN-CcDZrR9S.js} +1 -1
- package/dist/assets/{chunk-S3R3BYOJ-snr-cjrg.js → chunk-S3R3BYOJ-CgBZoVQC.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-A7doILof.js → chunk-TZMSLE5B-Cokc9CbN.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-DbS0KcRN.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-DndbLyhC.js +1 -0
- package/dist/assets/{clike-Db5sDcCN.js → clike-B5Yp94w5.js} +1 -1
- package/dist/assets/clojure-DnkK3bSc.js +1 -0
- package/dist/assets/cmake-BnWrJdTV.js +1 -0
- package/dist/assets/cobol-HBrO1JaF.js +1 -0
- package/dist/assets/{code-block-37QAKDTI-DvyGxfvM.js → code-block-37QAKDTI-DuL2XEdk.js} +1 -1
- package/dist/assets/coffeescript-CRPuDhgD.js +1 -0
- package/dist/assets/column-preview-XEbS5e3l.js +1 -0
- package/dist/assets/command-palette-Bvc5N66t.js +1 -0
- package/dist/assets/{common-DtPa7IRN.js → common-BA29Ha73.js} +1 -1
- package/dist/assets/commonlisp-Da4KcekY.js +1 -0
- package/dist/assets/{components-CkVFme50.js → components-4vKMd4ot.js} +1 -1
- package/dist/assets/{components-DvdoEGqb.js → components-BEowaI9j.js} +1 -1
- package/dist/assets/{cose-bilkent-S5V4N54A-D-WJ9umo.js → cose-bilkent-S5V4N54A-Be717YAt.js} +1 -1
- package/dist/assets/crystal-DSapLTsa.js +1 -0
- package/dist/assets/{css-DPSOOi60.js → css-B68S0me4.js} +1 -1
- package/dist/assets/cypher-xFGoEou9.js +1 -0
- package/dist/assets/d-DgvhEIBQ.js +1 -0
- package/dist/assets/{dagre-6UL2VRFP-DTq5bGOP.js → dagre-6UL2VRFP-B59JWKbq.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-CHu2p5GE.js → data-grid-overlay-editor-DamrGxN0.js} +1 -1
- package/dist/assets/{datasource-DLb0mhjX.js → datasource-CNQ-RUAj.js} +1 -1
- package/dist/assets/{dependency-graph-panel-Cw_SH35L.js → dependency-graph-panel-DdmW6qbG.js} +1 -1
- package/dist/assets/{diagram-PSM6KHXK-BqAwM2y1.js → diagram-PSM6KHXK-BJLd-oHa.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-DztSlumV.js → diagram-QEK2KX5R-CkExI9v6.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-BO-Bgy9C.js → diagram-S2PKOQOG-CcSdTiNu.js} +1 -1
- package/dist/assets/diff-_ncWAuCI.js +1 -0
- package/dist/assets/{dist-MQHYjtR7.js → dist-6KyCn6Yw.js} +1 -1
- package/dist/assets/dist-B7wIIgWR.js +1 -0
- package/dist/assets/{dist-DNyNpg3q.js → dist-BUpyuEX0.js} +1 -1
- package/dist/assets/{dist-IPnWHvYB.js → dist-CBgLdkFP.js} +1 -1
- package/dist/assets/{dist-DuphnOKT.js → dist-CM-GQF_B.js} +1 -1
- package/dist/assets/{dist-dfW2BBOD.js → dist-CMQPYsF1.js} +1 -1
- package/dist/assets/{dist-D3ihB3sj.js → dist-CP_yTjWJ.js} +1 -1
- package/dist/assets/{dist-DZjGkR_B.js → dist-ChobCyDf.js} +1 -1
- package/dist/assets/{dist-CCK5zpAZ.js → dist-CkoNJPH1.js} +1 -1
- package/dist/assets/dist-CwTov7Od.js +1 -0
- package/dist/assets/dist-Dvykkmxn.js +1 -0
- package/dist/assets/{dist-CdGO5vNJ.js → dist-GuxhVbd_.js} +1 -1
- package/dist/assets/dist-Rp2beqEP.js +1 -0
- package/dist/assets/{dist-krLK0lDb.js → dist-clhpO3Fy.js} +1 -1
- package/dist/assets/{dist-j3bN-KSq.js → dist-np22jopU.js} +1 -1
- package/dist/assets/{dockerfile-DmM_Yk21.js → dockerfile-C7lIBgaY.js} +1 -1
- package/dist/assets/{documentation-panel-CVENBy0y.js → documentation-panel-Ds4_1YLs.js} +1 -1
- package/dist/assets/{download-fIkRh5FE.js → download-Xq3GOYNm.js} +1 -1
- package/dist/assets/dtd-BnBIn3kr.js +1 -0
- package/dist/assets/dylan-CkGqQmFw.js +1 -0
- package/dist/assets/ecl-CFTIHpsV.js +1 -0
- package/dist/assets/{edit-page-DIElHN4M.js → edit-page-BziXcgV1.js} +7 -7
- package/dist/assets/eiffel-DqSKoxJh.js +1 -0
- package/dist/assets/elm-dL9c1n0U.js +1 -0
- package/dist/assets/{erDiagram-Q2GNP2WA-D1Ic9upA.js → erDiagram-Q2GNP2WA-Dna-Ewi8.js} +1 -1
- package/dist/assets/erlang-ZIYI48gw.js +1 -0
- package/dist/assets/{error-panel-BTeDvE3v.js → error-panel-Ck-kR4P7.js} +1 -1
- package/dist/assets/{esm-CIopaDEz.js → esm-DpxW9DrV.js} +1 -1
- package/dist/assets/factor-CDbckATe.js +1 -0
- package/dist/assets/{factor-Di_n0Vcb.js → factor-PbpmJuj6.js} +1 -1
- package/dist/assets/{file-explorer-panel-DODubmKz.js → file-explorer-panel-DGzzTF4F.js} +1 -1
- package/dist/assets/{file-icons-ou1yo5n5.js → file-icons-CGVD9eMg.js} +1 -1
- package/dist/assets/{floating-outline-DjbA1Cb1.js → floating-outline-CUurMy_Y.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS-CxgTw53Z.js → flowDiagram-NV44I4VS-Dc9Bqoz8.js} +1 -1
- package/dist/assets/{focus-CyfmlP3o.js → focus-Dujsd1jO.js} +1 -1
- package/dist/assets/form-FZp6s4ri.js +2 -0
- package/dist/assets/forth-ClT6YoKq.js +1 -0
- package/dist/assets/fortran-D3wR_E-8.js +1 -0
- package/dist/assets/{gallery-page-BCZ4bZb-.js → gallery-page-DoDtzAVy.js} +1 -1
- package/dist/assets/{ganttDiagram-JELNMOA3-D8OMpn2f.js → ganttDiagram-JELNMOA3-Dhw_2tSP.js} +1 -1
- package/dist/assets/gas-_ShnzaTM.js +1 -0
- package/dist/assets/gherkin-LsHtc0Ns.js +1 -0
- package/dist/assets/{gitGraph-G5XIXVHT-DMrrHvz1.js → gitGraph-G5XIXVHT-1x5Miucn.js} +1 -1
- package/dist/assets/{gitGraphDiagram-V2S2FVAM-C_SHiNz4.js → gitGraphDiagram-V2S2FVAM-BeQBBZfm.js} +1 -1
- package/dist/assets/{glide-data-editor-BWNf45SY.js → glide-data-editor-DBtu96Tk.js} +4 -4
- package/dist/assets/globals-BOMeSJG5.js +1 -0
- package/dist/assets/groovy-D_Yv0Fac.js +1 -0
- package/dist/assets/haskell-qhM1HAIB.js +1 -0
- package/dist/assets/haxe-Bi62PpIr.js +1 -0
- package/dist/assets/{home-page-C72qXz0E.js → home-page-Cl06nMzr.js} +1 -1
- package/dist/assets/{hooks---BbqK4E.js → hooks-BCcCvsU9.js} +1 -1
- package/dist/assets/{html-to-image-C7IjrTxH.js → html-to-image-G3c0U-iP.js} +1 -1
- package/dist/assets/idl-CI42bOaI.js +1 -0
- package/dist/assets/index-BuSRVSH0.css +2 -0
- package/dist/assets/index-Xlm47iZJ.js +35 -0
- package/dist/assets/{info-VBDWY6EO-DUW-WjFI.js → info-VBDWY6EO-B0DaVkbn.js} +1 -1
- package/dist/assets/infoDiagram-HS3SLOUP-BAq2unL1.js +2 -0
- package/dist/assets/javascript-BNZ5YnSy.js +1 -0
- package/dist/assets/{journeyDiagram-XKPGCS4Q-hRTCqz5x.js → journeyDiagram-XKPGCS4Q-Do9h5X0r.js} +1 -1
- package/dist/assets/julia-dpVUKOp6.js +1 -0
- package/dist/assets/{kanban-definition-3W4ZIXB7-C4vu7MnJ.js → kanban-definition-3W4ZIXB7-D_D1qnu3.js} +1 -1
- package/dist/assets/katex-WeQtn5cr.js +1 -0
- package/dist/assets/{kiosk-mode-DSV5Rgj2.js → kiosk-mode-CgwbYGln.js} +1 -1
- package/dist/assets/{layout-IbU6avGQ.js → layout-BtBVyLQ5.js} +4 -4
- package/dist/assets/{line-3SFmw_2p.js → line-BHuLZ5CK.js} +1 -1
- package/dist/assets/{linear-CD-KnbN7.js → linear-BsrZ3hPD.js} +1 -1
- package/dist/assets/livescript-BDwSUbUd.js +1 -0
- package/dist/assets/{logs-panel-CBnZn-bi.js → logs-panel-cpRbecYU.js} +1 -1
- package/dist/assets/{loro_wasm_bg-BzwizXI_.js → loro_wasm_bg-sSPwBtJV.js} +1 -1
- package/dist/assets/lua-cGUKNtb5.js +1 -0
- package/dist/assets/{markdown-renderer-Dq4517QF.js → markdown-renderer-B3K5q-ZY.js} +3 -3
- package/dist/assets/mathematica-D4XScfvP.js +1 -0
- package/dist/assets/mbox-COnP75oc.js +1 -0
- package/dist/assets/mermaid-4DMBBIKO-D3TxXSe1.js +1 -0
- package/dist/assets/{mermaid-CQbQjy6D.js → mermaid-n4NefbrN.js} +3 -3
- package/dist/assets/{mermaid-parser.core-D7O651vj.js → mermaid-parser.core-f-V9Q6fb.js} +2 -2
- package/dist/assets/{mhchem-CQjBQPZx.js → mhchem-CuOhdwS0.js} +1 -1
- package/dist/assets/{mindmap-definition-VGOIOE7T-BnQ_1O1s.js → mindmap-definition-VGOIOE7T-DUVrm3_K.js} +1 -1
- package/dist/assets/mirc-DXskkW6M.js +1 -0
- package/dist/assets/mllike-B3ebn_fS.js +1 -0
- package/dist/assets/modelica-Df8_BOFz.js +1 -0
- package/dist/assets/mscgen-ugK6iLdl.js +1 -0
- package/dist/assets/mumps-Qes0D9Sq.js +1 -0
- package/dist/assets/{name-cell-input-BRoAk4-B.js → name-cell-input-BENblPEH.js} +1 -1
- package/dist/assets/{nsis-Bh7CNuij.js → nsis-BbDlITQ-.js} +1 -1
- package/dist/assets/nsis-CvTk2ElD.js +1 -0
- package/dist/assets/ntriples-BrWSHgAl.js +1 -0
- package/dist/assets/{number-overlay-editor-D-qbd0wx.js → number-overlay-editor-BV9MeC1q.js} +1 -1
- package/dist/assets/octave--UXUC2au.js +1 -0
- package/dist/assets/{ordinal-BAY59BkG.js → ordinal-CaMJcJ5o.js} +1 -1
- package/dist/assets/{outline-panel-ccd_SNqa.js → outline-panel-DmvFn25g.js} +1 -1
- package/dist/assets/oz-SCICUQnB.js +1 -0
- package/dist/assets/{packages-panel-DkThAnli.js → packages-panel-B6LEuNVi.js} +1 -1
- package/dist/assets/{packet-DYOGHKS2-l7k5WrVz.js → packet-DYOGHKS2-DcLKsZ7w.js} +1 -1
- package/dist/assets/panels-ignsaOah.js +1 -0
- package/dist/assets/pascal-BZRIRN0Y.js +1 -0
- package/dist/assets/perl-BJBf_VRX.js +1 -0
- package/dist/assets/{pie-VRWISCQL-CsLdeQJ0.js → pie-VRWISCQL-B9V9l9Ux.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-Cmw3aM6j.js → pieDiagram-ADFJNKIX-C9yLGNRT.js} +1 -1
- package/dist/assets/pig-8VtGvtGP.js +1 -0
- package/dist/assets/powershell-MUdKU-yo.js +1 -0
- package/dist/assets/{process-output-DdaTc_HF.js → process-output-C96fd58D.js} +1 -1
- package/dist/assets/properties-B_YTP79K.js +1 -0
- package/dist/assets/protobuf-BjqtN1d3.js +1 -0
- package/dist/assets/{pug-DEhrk7ZA.js → pug-B2p6efPp.js} +1 -1
- package/dist/assets/pug-pCMDyY3V.js +1 -0
- package/dist/assets/puppet-ByNusmmY.js +1 -0
- package/dist/assets/python-CeK7Mdg6.js +1 -0
- package/dist/assets/q-BPLn3RjU.js +1 -0
- package/dist/assets/{quadrantDiagram-AYHSOK5B-LW4w36MN.js → quadrantDiagram-AYHSOK5B-BbaJVIIg.js} +1 -1
- package/dist/assets/r-C6hL19P_.js +1 -0
- package/dist/assets/{radar-ZZBFDIW7-DegSklgM.js → radar-ZZBFDIW7-CN4AcMZb.js} +1 -1
- package/dist/assets/{react-vega-CS85QYZ1.js → react-vega-BbChn8d-.js} +1 -1
- package/dist/assets/{react-vega-C-ow9beQ.js → react-vega-PCutEA1j.js} +1 -1
- package/dist/assets/{readonly-python-code-y9XYPUdK.js → readonly-python-code-CsZeevPe.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ-DfxxrNkO.js → requirementDiagram-UZGBJVZJ-CjjaEl5L.js} +1 -1
- package/dist/assets/rpm-Cepx5AK5.js +1 -0
- package/dist/assets/ruby-8a_JNJtC.js +1 -0
- package/dist/assets/run-page-DjqOwd5T.js +1 -0
- package/dist/assets/{sankeyDiagram-TZEHDZUN-BHBpe0lq.js → sankeyDiagram-TZEHDZUN-DHCbUKQq.js} +1 -1
- package/dist/assets/sas-DRXu6Kkn.js +1 -0
- package/dist/assets/scheme-DaBlDkbO.js +1 -0
- package/dist/assets/{scratchpad-panel-CsJAOXMt.js → scratchpad-panel-BLNGGJm3.js} +1 -1
- package/dist/assets/{secrets-panel-CawE1eg1.js → secrets-panel-DWqgifzv.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-DpKnfflA.js → sequenceDiagram-WL72ISMW-Bk1wqT1r.js} +1 -1
- package/dist/assets/session-panel-D4eC6cNs.js +1 -0
- package/dist/assets/shell-CEmng-T5.js +1 -0
- package/dist/assets/sieve-CTG31Wbe.js +1 -0
- package/dist/assets/smalltalk-DlBjAIRH.js +1 -0
- package/dist/assets/{snippets-panel-Y4d6ynv0.js → snippets-panel-Bvq75PPt.js} +1 -1
- package/dist/assets/sparql-D8XQtNgL.js +1 -0
- package/dist/assets/{src-CWJKdmqu.js → src-DapUuJyw.js} +1 -1
- package/dist/assets/state-AzFc1uM8.js +3 -0
- package/dist/assets/{state-DVcb28Fc.js → state-XUzipEOc.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-QVDd0Li3.js → stateDiagram-FKZM4ZOC-CfxmI-mV.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CkOxmHrl.js +1 -0
- package/dist/assets/{step-BDRKStBg.js → step-CzPNFdgC.js} +1 -1
- package/dist/assets/stylus-DpfM4Y-0.js +1 -0
- package/dist/assets/swift-Bevjlmsx.js +1 -0
- package/dist/assets/switch-BaYCltRz.js +1 -0
- package/dist/assets/tcl-CWB1W9St.js +1 -0
- package/dist/assets/{terminal-CieLTi3f.js → terminal-D9CrEu_T.js} +1 -1
- package/dist/assets/{textarea-ynIaFgPw.js → textarea-ChkICSMn.js} +1 -1
- package/dist/assets/textile-DrGyKlBQ.js +1 -0
- package/dist/assets/{time-H2Wv5PDB.js → time-D85NcLBY.js} +1 -1
- package/dist/assets/{timeline-definition-IT6M3QCI-D7I1pnXu.js → timeline-definition-IT6M3QCI-K-Ap0DlB.js} +1 -1
- package/dist/assets/toml-CF49H3Gs.js +1 -0
- package/dist/assets/{tracing-b83vxHs_.js → tracing-DNsdz53f.js} +1 -1
- package/dist/assets/{tracing-panel-YpOz4Jbc.js → tracing-panel-BTTuo7BG.js} +2 -2
- package/dist/assets/{treemap-GDKQZRPO-B18gM_Lh.js → treemap-GDKQZRPO-0ZTkCIFa.js} +1 -1
- package/dist/assets/troff-DS9glUnj.js +1 -0
- package/dist/assets/ttcn-cfg-D8JUANmi.js +1 -0
- package/dist/assets/ttcn-iXXxBDpr.js +1 -0
- package/dist/assets/turtle-IsYxGpD1.js +1 -0
- package/dist/assets/{useAddCell-6w9dGRCO.js → useAddCell-CUrHq1Z4.js} +1 -1
- package/dist/assets/{useCellActionButton-COX-WXs0.js → useCellActionButton-DR6dlOJ1.js} +1 -1
- package/dist/assets/{useDeleteCell-B7a_KjXc.js → useDeleteCell-DM20H2Hu.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-BSvdWVPw.js → useDependencyPanelTab-BXfYZkjp.js} +1 -1
- package/dist/assets/useHotkey-CECpeWLD.js +1 -0
- package/dist/assets/{useNotebookActions-CEVYVtMW.js → useNotebookActions-CtAp1e7s.js} +1 -1
- package/dist/assets/{useRunCells-ebuUsr9R.js → useRunCells-CM1qW8Of.js} +1 -1
- package/dist/assets/{useSplitCell-D5yhMmyi.js → useSplitCell-DFFEL6kI.js} +1 -1
- package/dist/assets/vb-CJBc18Ui.js +1 -0
- package/dist/assets/vbscript-f-536WNP.js +1 -0
- package/dist/assets/{vega-component-_VQJnNGE.js → vega-component-CW-qRj7Q.js} +1 -1
- package/dist/assets/velocity-BKcC2FIu.js +1 -0
- package/dist/assets/verilog-BwwsdDY5.js +1 -0
- package/dist/assets/vhdl-BG8PfJd8.js +1 -0
- package/dist/assets/webidl-BHBWV-F6.js +1 -0
- package/dist/assets/{write-secret-modal-_nh05zhf.js → write-secret-modal-EEXA8xyS.js} +1 -1
- package/dist/assets/xquery-BSuR2Wlv.js +1 -0
- package/dist/assets/{xychartDiagram-PRI3JC2R-DxlH8vWc.js → xychartDiagram-PRI3JC2R-DCZkWfRL.js} +1 -1
- package/dist/assets/yacas-DdJ1FiXV.js +1 -0
- package/dist/assets/z80-BWehJ3ot.js +1 -0
- package/dist/index.html +41 -42
- package/package.json +1 -1
- package/src/components/data-table/TableActions.tsx +25 -50
- package/src/components/data-table/column-explorer-panel/column-explorer.tsx +24 -13
- package/src/components/data-table/data-table.tsx +11 -9
- package/src/components/data-table/hooks/use-panel-ownership.ts +15 -5
- package/src/components/data-table/row-viewer-panel/row-viewer.tsx +53 -44
- package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +161 -0
- package/src/components/editor/chrome/panels/context-aware-panel/context-aware-panel.tsx +16 -9
- package/src/core/slots/slots.ts +1 -0
- package/src/plugins/impl/DataTablePlugin.tsx +19 -22
- package/dist/assets/JsonOutput-BhaK8Are.js +0 -49
- package/dist/assets/LazyAnyLanguageCodeMirror-Dw8RObOv.js +0 -2
- package/dist/assets/SelectionIndicator-CBlpj8vi.js +0 -1
- package/dist/assets/apl-Dkj9Qe7k.js +0 -1
- package/dist/assets/asciiarmor-BtQZNUPe.js +0 -1
- package/dist/assets/asn1-Df2Lrqg5.js +0 -1
- package/dist/assets/brainfuck-BKWhJvy5.js +0 -1
- package/dist/assets/channel-DeoDlval.js +0 -1
- package/dist/assets/chunk-55IACEB6-BlvDi7wO.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-CvEqT4dQ.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-BGLrzx3k.js +0 -1
- package/dist/assets/clojure-CktH9n5q.js +0 -1
- package/dist/assets/cmake-BwTN0lwz.js +0 -1
- package/dist/assets/cobol-D0Y9QJHH.js +0 -1
- package/dist/assets/coffeescript-CL84ZPXU.js +0 -1
- package/dist/assets/column-preview-Bpgx4KM2.js +0 -1
- package/dist/assets/command-palette-B9n8d1xM.js +0 -1
- package/dist/assets/commonlisp-CukhuKqj.js +0 -1
- package/dist/assets/context-aware-panel-CTO4OwqL.js +0 -3
- package/dist/assets/crystal-DjLRzuWS.js +0 -1
- package/dist/assets/cypher-DTLWn8Gw.js +0 -1
- package/dist/assets/d-DWjY1SxT.js +0 -1
- package/dist/assets/diff-CBkFqCNH.js +0 -1
- package/dist/assets/dist-B7AgIPPj.js +0 -1
- package/dist/assets/dist-BEzQ2FTT.js +0 -1
- package/dist/assets/dist-BXs2l0TT.js +0 -1
- package/dist/assets/dist-CfX-lQow.js +0 -1
- package/dist/assets/dtd-BuqGL9hz.js +0 -1
- package/dist/assets/dylan-WTW5QtBM.js +0 -1
- package/dist/assets/ecl-DBVSQs77.js +0 -1
- package/dist/assets/eiffel-C3Tl80Mr.js +0 -1
- package/dist/assets/elm-BzK6589w.js +0 -1
- package/dist/assets/erlang-DMCyf1S1.js +0 -1
- package/dist/assets/factor-Y7W4xwTs.js +0 -1
- package/dist/assets/form-JA7YODlz.js +0 -2
- package/dist/assets/forth-a7Ame17q.js +0 -1
- package/dist/assets/fortran-D8W1t7ql.js +0 -1
- package/dist/assets/gas-CPCP4r6U.js +0 -1
- package/dist/assets/gherkin-dyINaGjD.js +0 -1
- package/dist/assets/globals-D_ksOkIp.js +0 -1
- package/dist/assets/groovy-yBYyWQAY.js +0 -1
- package/dist/assets/haskell-DOSr8Xuo.js +0 -1
- package/dist/assets/haxe-JqSUWIxe.js +0 -1
- package/dist/assets/idl-D2Ag6F2o.js +0 -1
- package/dist/assets/index-B5s9EmU2.js +0 -35
- package/dist/assets/index-UqHb3j3u.css +0 -2
- package/dist/assets/infoDiagram-HS3SLOUP-BgUfZNsO.js +0 -2
- package/dist/assets/javascript-3AO8kHoR.js +0 -1
- package/dist/assets/julia-DB4UbzHR.js +0 -1
- package/dist/assets/katex-B242giUy.js +0 -1
- package/dist/assets/livescript-DReeORQ9.js +0 -1
- package/dist/assets/lua-ybhkw42a.js +0 -1
- package/dist/assets/mathematica-DknPFJHQ.js +0 -1
- package/dist/assets/mbox-CvGrdGLO.js +0 -1
- package/dist/assets/mermaid-4DMBBIKO-BtMm8UqZ.js +0 -1
- package/dist/assets/mirc-BeRjyZ00.js +0 -1
- package/dist/assets/mllike-Dy0V9wt1.js +0 -1
- package/dist/assets/modelica--iMtH0NO.js +0 -1
- package/dist/assets/mscgen-CqR_OhJF.js +0 -1
- package/dist/assets/mumps-DXhR5sNO.js +0 -1
- package/dist/assets/nsis-FfqfUShs.js +0 -1
- package/dist/assets/ntriples-C3Y5YwlO.js +0 -1
- package/dist/assets/octave-Dn-U4f-O.js +0 -1
- package/dist/assets/oz-Dx3Usekg.js +0 -1
- package/dist/assets/panels-4-99NA61.js +0 -1
- package/dist/assets/pascal-Bhoas9O4.js +0 -1
- package/dist/assets/perl-uQVtdMdg.js +0 -1
- package/dist/assets/pig-DDagqkh7.js +0 -1
- package/dist/assets/powershell-WeyQqZtK.js +0 -1
- package/dist/assets/properties-MEyUmkzm.js +0 -1
- package/dist/assets/protobuf-DrUQLGvH.js +0 -1
- package/dist/assets/pug-YYu0lKKy.js +0 -1
- package/dist/assets/puppet-C9UhEtzi.js +0 -1
- package/dist/assets/python-BAh1L3Ue.js +0 -1
- package/dist/assets/q-CoA1I94V.js +0 -1
- package/dist/assets/r-CnPeMCLv.js +0 -1
- package/dist/assets/rpm-DOBsrwns.js +0 -1
- package/dist/assets/ruby-DphmqCS4.js +0 -1
- package/dist/assets/run-page-BimMc95l.js +0 -1
- package/dist/assets/sas-DqX-D0mu.js +0 -1
- package/dist/assets/scheme-BDPqQOec.js +0 -1
- package/dist/assets/session-panel-tI83-MjM.js +0 -1
- package/dist/assets/shell-BbHQ-2DS.js +0 -1
- package/dist/assets/sieve-AQvCITfE.js +0 -1
- package/dist/assets/smalltalk-C_EFh1kg.js +0 -1
- package/dist/assets/sparql-BlXg3dFR.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-De_tnJ_y.js +0 -1
- package/dist/assets/stylus-Dvm1D-Up.js +0 -1
- package/dist/assets/swift-BYNffoE5.js +0 -1
- package/dist/assets/switch-BF9J785H.js +0 -1
- package/dist/assets/tcl-BXf8cJq0.js +0 -1
- package/dist/assets/textile-BYQcpBSz.js +0 -1
- package/dist/assets/toggle-D5cxBbM0.js +0 -1
- package/dist/assets/toml-DRBRsKy_.js +0 -1
- package/dist/assets/troff-DrvwLjLq.js +0 -1
- package/dist/assets/ttcn-DP5EbkJT.js +0 -1
- package/dist/assets/ttcn-cfg-BRAAKR13.js +0 -1
- package/dist/assets/turtle-Dfy5N6iI.js +0 -1
- package/dist/assets/vb-DzPnQ7Kn.js +0 -1
- package/dist/assets/vbscript-Dsr7xm0B.js +0 -1
- package/dist/assets/velocity-BP08r0ZT.js +0 -1
- package/dist/assets/verilog-CtASbUB4.js +0 -1
- package/dist/assets/vhdl-BNXpaYPc.js +0 -1
- package/dist/assets/webidl-CHQTLbOi.js +0 -1
- package/dist/assets/xquery-BysgHIf7.js +0 -1
- package/dist/assets/yacas-jKltHvRl.js +0 -1
- package/dist/assets/z80-DVuK3CCU.js +0 -1
- /package/dist/assets/{ImageComparisonComponent-CxAz0_xA.js → ImageComparisonComponent-B-B8L7nT.js} +0 -0
- /package/dist/assets/{Inputs-CHVZ39A4.js → Inputs-8Ub6S5-M.js} +0 -0
- /package/dist/assets/{Plot-BFRJWpjl.js → Plot-DQ47aeEB.js} +0 -0
- /package/dist/assets/{apl-DVWF09P_.js → apl-BYqtBlld.js} +0 -0
- /package/dist/assets/{array-WUGjrusz.js → array-Bb9_Nbm_.js} +0 -0
- /package/dist/assets/{asciiarmor-l0ikukqg.js → asciiarmor-DUW0Iozu.js} +0 -0
- /package/dist/assets/{asn1-CsdiW8T7.js → asn1-ClnHsHDP.js} +0 -0
- /package/dist/assets/{asterisk-DMII5ruW.js → asterisk-DQege133.js} +0 -0
- /package/dist/assets/{azure-DZ9IQ5nj.js → azure-DSW4Y-2T.js} +0 -0
- /package/dist/assets/{brainfuck-C66TQVgP.js → brainfuck-FB_E90sw.js} +0 -0
- /package/dist/assets/{bundle.esm-sq57iaa5.js → bundle.esm-LMxLLjaH.js} +0 -0
- /package/dist/assets/{card-kz6nHxJZ.js → card-sZR2Icyj.js} +0 -0
- /package/dist/assets/{chunk-4F5CHEZ2-D2MLpWrB.js → chunk-4F5CHEZ2-C64nkLz9.js} +0 -0
- /package/dist/assets/{chunk-B2363JML-BNN_5fc8.js → chunk-B2363JML-D8Gxl67V.js} +0 -0
- /package/dist/assets/{chunk-DR5Q36YT-BEYRDy7r.js → chunk-DR5Q36YT-ig9TOEx2.js} +0 -0
- /package/dist/assets/{chunk-FRFDVMJY-DjkCEWmR.js → chunk-FRFDVMJY-BGfBBgv1.js} +0 -0
- /package/dist/assets/{chunk-PL6DKKU2-BNHJfoD3.js → chunk-PL6DKKU2-DoRyRqa0.js} +0 -0
- /package/dist/assets/{chunk-SJTYNZTY-ojRASETo.js → chunk-SJTYNZTY-Bk1QduP9.js} +0 -0
- /package/dist/assets/{chunk-TQ3KTPDO-dWuZFaH3.js → chunk-TQ3KTPDO-DHpA157U.js} +0 -0
- /package/dist/assets/{chunk-UMXZTB3W-QJ4NxDrM.js → chunk-UMXZTB3W-BMTYVoYA.js} +0 -0
- /package/dist/assets/{clear-button-mv6uDL7t.js → clear-button-DuLHdLLm.js} +0 -0
- /package/dist/assets/{click-outside-container-CadeLOyB.js → click-outside-container-BSjT8zZT.js} +0 -0
- /package/dist/assets/{clike-Cc3gZvM_.js → clike-B7PZCnaI.js} +0 -0
- /package/dist/assets/{clojure-kT8c8jnq.js → clojure-DtLrahuY.js} +0 -0
- /package/dist/assets/{cmake-B3S-FpMv.js → cmake-DGfhkTv5.js} +0 -0
- /package/dist/assets/{cobol-BrIP6mPV.js → cobol-Cpbk-vCU.js} +0 -0
- /package/dist/assets/{coffeescript-ByxLkrBT.js → coffeescript-BATQF8kE.js} +0 -0
- /package/dist/assets/{colors-Vlg4ky9A.js → colors-B5L-I0Ha.js} +0 -0
- /package/dist/assets/{common-keywords-DOKE_IZU.js → common-keywords-DHn1q5re.js} +0 -0
- /package/dist/assets/{commonlisp-BjIOT_KK.js → commonlisp-C9N48zGs.js} +0 -0
- /package/dist/assets/{crystal-CQtLRTna.js → crystal-D2nrZv1k.js} +0 -0
- /package/dist/assets/{css-CU1K_XUx.js → css-DNoZFvlx.js} +0 -0
- /package/dist/assets/{cypher-An7BGqKu.js → cypher-6TFCZzgE.js} +0 -0
- /package/dist/assets/{cytoscape.esm-BauVghWH.js → cytoscape.esm-Sj5tvqw2.js} +0 -0
- /package/dist/assets/{d-fbf-n02o.js → d-DHH1X7PS.js} +0 -0
- /package/dist/assets/{diff-DbzsqZEz.js → diff-DNDp4fOd.js} +0 -0
- /package/dist/assets/{dist-7ypejJ7M.js → dist-B5P2o9qe.js} +0 -0
- /package/dist/assets/{dist-BbnFhTf8.js → dist-BFQvSNiI.js} +0 -0
- /package/dist/assets/{dist-CRZWTCuJ.js → dist-B_PYZeT0.js} +0 -0
- /package/dist/assets/{dist-D-LP6YiY.js → dist-BkdH5eBK.js} +0 -0
- /package/dist/assets/{dist-BertQWtB.js → dist-BnnDhAuT.js} +0 -0
- /package/dist/assets/{dist-1NV-2910.js → dist-ByIvWpVh.js} +0 -0
- /package/dist/assets/{dist-D2Iq48lS.js → dist-C04_12Dz.js} +0 -0
- /package/dist/assets/{dist-CnLUNQJQ.js → dist-CM9BIAuN.js} +0 -0
- /package/dist/assets/{dist-uai-4z-r.js → dist-CdXexMN2.js} +0 -0
- /package/dist/assets/{dist-Cgfk1q5C.js → dist-Ci7knalt.js} +0 -0
- /package/dist/assets/{dist-BI46-KjY.js → dist-Ck3oBCp1.js} +0 -0
- /package/dist/assets/{dist-B6Ffck9m.js → dist-ClXwZZyv.js} +0 -0
- /package/dist/assets/{dist-C2Qz91G3.js → dist-CyXug1a8.js} +0 -0
- /package/dist/assets/{dist-DsBjiA6R.js → dist-D9U7bsnA.js} +0 -0
- /package/dist/assets/{dist-CAlwfKNN.js → dist-DR9n0sMe.js} +0 -0
- /package/dist/assets/{dist-BQBTi2aC.js → dist-DWmiwHgO.js} +0 -0
- /package/dist/assets/{dist-DDTjVjEv.js → dist-GrURK_tH.js} +0 -0
- /package/dist/assets/{dist-Db0iDvI-.js → dist-KlRuMAw_.js} +0 -0
- /package/dist/assets/{dtd-DnQAYfYi.js → dtd-BYdB19UC.js} +0 -0
- /package/dist/assets/{duckdb-keywords-CPlkF2dS.js → duckdb-keywords-usZbJ-Dr.js} +0 -0
- /package/dist/assets/{dylan-DeXj1TAN.js → dylan-3sqQfqPE.js} +0 -0
- /package/dist/assets/{ebnf-CF1gbUmq.js → ebnf-BAIwm2E9.js} +0 -0
- /package/dist/assets/{ecl-B8-j0xrP.js → ecl-79y60Sdt.js} +0 -0
- /package/dist/assets/{eiffel-DdiJ6Uyn.js → eiffel-Cy1qkCDz.js} +0 -0
- /package/dist/assets/{elm-CAmK9rmL.js → elm-DrRzHEES.js} +0 -0
- /package/dist/assets/{empty-state-S5VBZ98t.js → empty-state-HOMYY9tn.js} +0 -0
- /package/dist/assets/{erlang-hqy6gURy.js → erlang-D3BTE-y0.js} +0 -0
- /package/dist/assets/{esm-DFf3sejQ.js → esm-CmxdJbk6.js} +0 -0
- /package/dist/assets/{esm-CMMkDitC.js → esm-DgC_9WMw.js} +0 -0
- /package/dist/assets/{fcl-icoS9k4f.js → fcl-BRXWXeJY.js} +0 -0
- /package/dist/assets/{field-BVNCXNwJ.js → field-SBC8FrmM.js} +0 -0
- /package/dist/assets/{formatting-DFmPqYp7.js → formatting-DZJcbcdy.js} +0 -0
- /package/dist/assets/{forth-CsaVBHm8.js → forth-DGce5eRS.js} +0 -0
- /package/dist/assets/{fortran-DGNsp41i.js → fortran-CS97oQQW.js} +0 -0
- /package/dist/assets/{gas-BX8xjNNw.js → gas-7e_zvN4u.js} +0 -0
- /package/dist/assets/{gherkin--u9ojH5d.js → gherkin-3f1nzx4Y.js} +0 -0
- /package/dist/assets/{groovy-Drg0Cp0-.js → groovy-Bn1MvSId.js} +0 -0
- /package/dist/assets/{haskell-D96A8Bg_.js → haskell-qtyafuM6.js} +0 -0
- /package/dist/assets/{haxe-B_4sGLdj.js → haxe-CQwWk_Ht.js} +0 -0
- /package/dist/assets/{http-4jqIuJdk.js → http-DxX5IMY1.js} +0 -0
- /package/dist/assets/{icons-3WtBtPgb.js → icons-DelodwsZ.js} +0 -0
- /package/dist/assets/{idl-CA47OCO3.js → idl-BnUby_AK.js} +0 -0
- /package/dist/assets/{init-Df7Kws7A.js → init-CwjK1Wqp.js} +0 -0
- /package/dist/assets/{javascript-i8I6A_gg.js → javascript-BFKHKHDt.js} +0 -0
- /package/dist/assets/{julia-DYuDt1xN.js → julia-BZeLe6be.js} +0 -0
- /package/dist/assets/{katex-BoxNfNct.js → katex-DAqTXxqH.js} +0 -0
- /package/dist/assets/{label-CjV5SvbM.js → label-Cvbi55_x.js} +0 -0
- /package/dist/assets/{links-DwwkyfLU.js → links-Bi4fFe_a.js} +0 -0
- /package/dist/assets/{livescript-C72Fe_WX.js → livescript-LB6oZdgV.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-BAHdi7Mz.js → loro_wasm_bg-CfTqb-Pd.js} +0 -0
- /package/dist/assets/{lua-CrUucAvm.js → lua-D73MeF_d.js} +0 -0
- /package/dist/assets/{marimo-icons-CVMcTWRN.js → marimo-icons-CRM8aupD.js} +0 -0
- /package/dist/assets/{math-CgfFnpAx.js → math-BYed4MZ5.js} +0 -0
- /package/dist/assets/{mathematica-GLtAlQgr.js → mathematica-SckqhulL.js} +0 -0
- /package/dist/assets/{mbox-DsldZPOv.js → mbox-DpdjYR8y.js} +0 -0
- /package/dist/assets/{mirc-Dpq184o1.js → mirc-9Mp8ii_5.js} +0 -0
- /package/dist/assets/{mllike-eEM7KiC0.js → mllike-CteazA5r.js} +0 -0
- /package/dist/assets/{modelica-BKRVU7Ex.js → modelica-DruS-uJ8.js} +0 -0
- /package/dist/assets/{mscgen-LPWHVNeM.js → mscgen-Dqm6ZJyo.js} +0 -0
- /package/dist/assets/{multi-icon-ChlThs5w.js → multi-icon-CSamKn9Q.js} +0 -0
- /package/dist/assets/{mumps-46YgImgy.js → mumps-DAwJeUn4.js} +0 -0
- /package/dist/assets/{nginx-Bv2h-X8A.js → nginx-C7sPMZD3.js} +0 -0
- /package/dist/assets/{node-sql-parser-Bzh-sm1v.js → node-sql-parser-Dv9jUJQo.js} +0 -0
- /package/dist/assets/{ntriples-CABx3n6p.js → ntriples-D5_p8srT.js} +0 -0
- /package/dist/assets/{octave-ChjrzDtA.js → octave-StxXX2kg.js} +0 -0
- /package/dist/assets/{oz-BZ0G7oQI.js → oz-CZcv8Gut.js} +0 -0
- /package/dist/assets/{panel-context-Ch2qtloJ.js → panel-context-DtsHKvy1.js} +0 -0
- /package/dist/assets/{pascal-BDWWzmkf.js → pascal-BTSTYf7j.js} +0 -0
- /package/dist/assets/{path-mYwwOfXz.js → path-BnEkTfSL.js} +0 -0
- /package/dist/assets/{perl-C1twkBDg.js → perl-D3WNCnWS.js} +0 -0
- /package/dist/assets/{pig-CKZ-JUXx.js → pig-m1LfHx7X.js} +0 -0
- /package/dist/assets/{powershell-BmnkAUC8.js → powershell-C7evXFhK.js} +0 -0
- /package/dist/assets/{properties-B3qF4Ofl.js → properties-CX3A241c.js} +0 -0
- /package/dist/assets/{protobuf-CdWFIAi_.js → protobuf-CEqDY4vo.js} +0 -0
- /package/dist/assets/{puppet-oVG7sgNi.js → puppet-DlFBPmUd.js} +0 -0
- /package/dist/assets/{python-GCb3koKb.js → python-kNH0316T.js} +0 -0
- /package/dist/assets/{q-CylRV6ad.js → q-KQ_N2MXi.js} +0 -0
- /package/dist/assets/{r-BV8FQxo8.js → r-Dj_WdT8c.js} +0 -0
- /package/dist/assets/{react-resizable-panels.browser.esm-CgWOEYeG.js → react-resizable-panels.browser.esm-xQHRvEag.js} +0 -0
- /package/dist/assets/{renderShortcut-DGKqNxA5.js → renderShortcut-CwG4LAo7.js} +0 -0
- /package/dist/assets/{request-registry-CSchh19h.js → request-registry-DIccnHoS.js} +0 -0
- /package/dist/assets/{requests-dD3-AncY.js → requests-BB0ozKLz.js} +0 -0
- /package/dist/assets/{rpm-0QmIraaR.js → rpm-C3VyCeYo.js} +0 -0
- /package/dist/assets/{ruby-h-bI2J_W.js → ruby-9RpAFOsP.js} +0 -0
- /package/dist/assets/{runs-Vz5x5956.js → runs-CWVqudEh.js} +0 -0
- /package/dist/assets/{sas-BvwZbLPG.js → sas-CFBIkOrK.js} +0 -0
- /package/dist/assets/{scheme-BPuaxh6y.js → scheme-n4WmsRUQ.js} +0 -0
- /package/dist/assets/{shell-DmziZNbR.js → shell-BDAgpmgp.js} +0 -0
- /package/dist/assets/{sieve-DT4D9aeW.js → sieve-BVNIn7Yz.js} +0 -0
- /package/dist/assets/{simple-mode-BVXe8Gj5.js → simple-mode-C-nP-kAb.js} +0 -0
- /package/dist/assets/{slides-component-CfpPjgm7.js → slides-component-I2dHyc-j.js} +0 -0
- /package/dist/assets/{smalltalk-lAY6r45k.js → smalltalk-C7nE9dmX.js} +0 -0
- /package/dist/assets/{solr-bv5jU2Wv.js → solr-B2csZ4mu.js} +0 -0
- /package/dist/assets/{sparql-nFvL3z3l.js → sparql-DPFIzZM3.js} +0 -0
- /package/dist/assets/{spreadsheet-rTQO9mJJ.js → spreadsheet-C9drr7Wf.js} +0 -0
- /package/dist/assets/{sql-B-xxrTFa.js → sql-Ba7Mq1qs.js} +0 -0
- /package/dist/assets/{src-Cq50ZA8D.js → src-BKLwm2RN.js} +0 -0
- /package/dist/assets/{state-Bu50F_xe.js → state-DrNlxTx2.js} +0 -0
- /package/dist/assets/{stylus-BawZsgUJ.js → stylus-DGcebGVS.js} +0 -0
- /package/dist/assets/{swift-CdaDqiGL.js → swift-DiAJo7C6.js} +0 -0
- /package/dist/assets/{tcl-D5FopUjH.js → tcl-DpD837eJ.js} +0 -0
- /package/dist/assets/{textile-Cum4VLew.js → textile-DEqOicm6.js} +0 -0
- /package/dist/assets/{tiddlywiki-Ci542Gim.js → tiddlywiki-CEYqr2EK.js} +0 -0
- /package/dist/assets/{tiki-DpcD6yY0.js → tiki-Drx00sPe.js} +0 -0
- /package/dist/assets/{timer-CEUQS2Fi.js → timer-CRrOyp_g.js} +0 -0
- /package/dist/assets/{toml-5si8PWt8.js → toml-BdA-7EhB.js} +0 -0
- /package/dist/assets/{treemap-BEZnbiX5.js → treemap-DVgZWKjA.js} +0 -0
- /package/dist/assets/{troff-qCd7sECP.js → troff-iGRgQHLe.js} +0 -0
- /package/dist/assets/{ttcn-BZC1oJG1.js → ttcn-CLQ1c3XL.js} +0 -0
- /package/dist/assets/{ttcn-cfg-BlUyan1P.js → ttcn-cfg-BFj90pgD.js} +0 -0
- /package/dist/assets/{turtle-BGa4pyfx.js → turtle-DwFVq6UC.js} +0 -0
- /package/dist/assets/{types-DJxVS5di.js → types-D8yP89N6.js} +0 -0
- /package/dist/assets/{useDeepCompareMemoize-zUH53nql.js → useDeepCompareMemoize-606Ao2HX.js} +0 -0
- /package/dist/assets/{useInterval-B12JNm4_.js → useInterval-CLpGFmfT.js} +0 -0
- /package/dist/assets/{vb-G28CZ46r.js → vb-gm5P9Pn5.js} +0 -0
- /package/dist/assets/{vbscript-DOr4ZYtx.js → vbscript-gQvKiDdU.js} +0 -0
- /package/dist/assets/{velocity-DRewaasJ.js → velocity-CkfRmD_d.js} +0 -0
- /package/dist/assets/{verilog-DmcGbw8B.js → verilog-D3b05tu1.js} +0 -0
- /package/dist/assets/{vhdl-C6ktucee.js → vhdl-DRo1SU3e.js} +0 -0
- /package/dist/assets/{web-vitals-BV7RJGkj.js → web-vitals-MCFVTcHk.js} +0 -0
- /package/dist/assets/{webidl-DHu7cr9_.js → webidl-DFtmGFay.js} +0 -0
- /package/dist/assets/{ws-Bim0WMvW.js → ws-CcJv2XkE.js} +0 -0
- /package/dist/assets/{xquery-BuvyHzVJ.js → xquery-CzUikajR.js} +0 -0
- /package/dist/assets/{yacas-C_HpkPlV.js → yacas-BqvQWbYq.js} +0 -0
- /package/dist/assets/{z80-BDlRltlF.js → z80-CQqkYd-2.js} +0 -0
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
"use no memo";
|
|
3
3
|
|
|
4
4
|
import type { RowSelectionState, Table } from "@tanstack/react-table";
|
|
5
|
-
import {
|
|
6
|
-
ChartColumnStacked,
|
|
7
|
-
ChartSplineIcon,
|
|
8
|
-
PanelRightIcon,
|
|
9
|
-
SearchIcon,
|
|
10
|
-
} from "lucide-react";
|
|
5
|
+
import { ChartSplineIcon, PanelRightIcon, SearchIcon } from "lucide-react";
|
|
11
6
|
import React from "react";
|
|
12
7
|
import { useLocale } from "react-aria";
|
|
13
8
|
import type { GetRowIds } from "@/plugins/impl/DataTablePlugin";
|
|
14
9
|
import { cn } from "@/utils/cn";
|
|
15
|
-
import
|
|
10
|
+
import {
|
|
11
|
+
PANEL_TYPES,
|
|
12
|
+
type PanelType,
|
|
13
|
+
} from "../editor/chrome/panels/context-aware-panel/context-aware-panel";
|
|
16
14
|
import { Button } from "../ui/button";
|
|
17
15
|
import { Tooltip } from "../ui/tooltip";
|
|
18
16
|
import { toast } from "../ui/use-toast";
|
|
@@ -35,11 +33,10 @@ interface TableActionsProps<TData> {
|
|
|
35
33
|
getRowIds?: GetRowIds;
|
|
36
34
|
toggleDisplayHeader?: () => void;
|
|
37
35
|
showChartBuilder?: boolean;
|
|
38
|
-
|
|
39
|
-
showRowExplorer?: boolean;
|
|
36
|
+
showTableExplorer?: boolean;
|
|
40
37
|
showPageSizeSelector?: boolean;
|
|
41
38
|
togglePanel?: (panelType: PanelType) => void;
|
|
42
|
-
|
|
39
|
+
isAnyPanelOpen?: boolean;
|
|
43
40
|
tableLoading?: boolean;
|
|
44
41
|
}
|
|
45
42
|
|
|
@@ -58,11 +55,10 @@ export const TableActions = <TData,>({
|
|
|
58
55
|
getRowIds,
|
|
59
56
|
toggleDisplayHeader,
|
|
60
57
|
showChartBuilder,
|
|
61
|
-
|
|
62
|
-
showRowExplorer,
|
|
58
|
+
showTableExplorer,
|
|
63
59
|
showPageSizeSelector,
|
|
64
60
|
togglePanel,
|
|
65
|
-
|
|
61
|
+
isAnyPanelOpen,
|
|
66
62
|
tableLoading,
|
|
67
63
|
}: TableActionsProps<TData>) => {
|
|
68
64
|
const { locale } = useLocale();
|
|
@@ -136,43 +132,22 @@ export const TableActions = <TData,>({
|
|
|
136
132
|
</Button>
|
|
137
133
|
</Tooltip>
|
|
138
134
|
)}
|
|
139
|
-
{
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
</Button>
|
|
156
|
-
</Tooltip>
|
|
157
|
-
)}
|
|
158
|
-
{showColumnExplorer && (
|
|
159
|
-
<Tooltip content="Toggle column explorer">
|
|
160
|
-
<Button
|
|
161
|
-
variant="text"
|
|
162
|
-
size="xs"
|
|
163
|
-
onClick={() => togglePanel("column-explorer")}
|
|
164
|
-
className="print:hidden"
|
|
165
|
-
>
|
|
166
|
-
<ChartColumnStacked
|
|
167
|
-
className={cn(
|
|
168
|
-
"w-4 h-4 text-muted-foreground",
|
|
169
|
-
isPanelOpen("column-explorer") && "text-primary",
|
|
170
|
-
)}
|
|
171
|
-
/>
|
|
172
|
-
</Button>
|
|
173
|
-
</Tooltip>
|
|
174
|
-
)}
|
|
175
|
-
</>
|
|
135
|
+
{showTableExplorer && togglePanel && (
|
|
136
|
+
<Tooltip content="Toggle table explorer">
|
|
137
|
+
<Button
|
|
138
|
+
variant="text"
|
|
139
|
+
size="xs"
|
|
140
|
+
onClick={() => togglePanel(PANEL_TYPES.ROW_VIEWER)}
|
|
141
|
+
className="print:hidden"
|
|
142
|
+
>
|
|
143
|
+
<PanelRightIcon
|
|
144
|
+
className={cn(
|
|
145
|
+
"w-4 h-4 text-muted-foreground",
|
|
146
|
+
isAnyPanelOpen && "text-primary",
|
|
147
|
+
)}
|
|
148
|
+
/>
|
|
149
|
+
</Button>
|
|
150
|
+
</Tooltip>
|
|
176
151
|
)}
|
|
177
152
|
|
|
178
153
|
{pagination ? (
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
+
import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
|
|
3
4
|
import { useState } from "react";
|
|
4
5
|
import { useLocale } from "react-aria";
|
|
5
6
|
import {
|
|
@@ -88,18 +89,21 @@ export const ColumnExplorerPanel = ({
|
|
|
88
89
|
/>
|
|
89
90
|
<CommandList className="max-h-full">
|
|
90
91
|
<CommandEmpty>No results.</CommandEmpty>
|
|
91
|
-
{filteredColumns?.map(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
92
|
+
{filteredColumns?.map(
|
|
93
|
+
([columnName, [dataType, externalType]], index) => {
|
|
94
|
+
return (
|
|
95
|
+
<ColumnItem
|
|
96
|
+
// Tables may have the same column names, hence we use tableId to make it unique
|
|
97
|
+
key={`${tableId}-${columnName}`}
|
|
98
|
+
columnName={columnName}
|
|
99
|
+
dataType={dataType}
|
|
100
|
+
externalType={externalType}
|
|
101
|
+
previewColumn={previewColumn}
|
|
102
|
+
defaultExpanded={index === 0}
|
|
103
|
+
/>
|
|
104
|
+
);
|
|
105
|
+
},
|
|
106
|
+
)}
|
|
103
107
|
</CommandList>
|
|
104
108
|
</Command>
|
|
105
109
|
</div>
|
|
@@ -111,13 +115,15 @@ const ColumnItem = ({
|
|
|
111
115
|
dataType,
|
|
112
116
|
externalType,
|
|
113
117
|
previewColumn,
|
|
118
|
+
defaultExpanded = false,
|
|
114
119
|
}: {
|
|
115
120
|
columnName: string;
|
|
116
121
|
dataType: DataType;
|
|
117
122
|
externalType: string;
|
|
118
123
|
previewColumn: PreviewColumn;
|
|
124
|
+
defaultExpanded?: boolean;
|
|
119
125
|
}) => {
|
|
120
|
-
const [isExpanded, setIsExpanded] = useState(
|
|
126
|
+
const [isExpanded, setIsExpanded] = useState(defaultExpanded);
|
|
121
127
|
|
|
122
128
|
const columnText = (
|
|
123
129
|
<span className={isExpanded ? "font-semibold" : ""}>{columnName}</span>
|
|
@@ -130,6 +136,11 @@ const ColumnItem = ({
|
|
|
130
136
|
onSelect={() => setIsExpanded(!isExpanded)}
|
|
131
137
|
className="flex flex-row items-center gap-1.5 group w-full cursor-pointer"
|
|
132
138
|
>
|
|
139
|
+
{isExpanded ? (
|
|
140
|
+
<ChevronDownIcon className="w-3 h-3 shrink-0 text-muted-foreground" />
|
|
141
|
+
) : (
|
|
142
|
+
<ChevronRightIcon className="w-3 h-3 shrink-0 text-muted-foreground" />
|
|
143
|
+
)}
|
|
133
144
|
<ColumnName columnName={columnText} dataType={dataType} />
|
|
134
145
|
<div className="ml-auto">
|
|
135
146
|
<Tooltip content="Copy column name" delayDuration={400}>
|
|
@@ -24,7 +24,10 @@ import { useLocale } from "react-aria";
|
|
|
24
24
|
import { Table } from "@/components/ui/table";
|
|
25
25
|
import type { GetRowIds } from "@/plugins/impl/DataTablePlugin";
|
|
26
26
|
import { cn } from "@/utils/cn";
|
|
27
|
-
import
|
|
27
|
+
import {
|
|
28
|
+
PANEL_TYPES,
|
|
29
|
+
type PanelType,
|
|
30
|
+
} from "../editor/chrome/panels/context-aware-panel/context-aware-panel";
|
|
28
31
|
import { CellHoverTemplateFeature } from "./cell-hover-template/feature";
|
|
29
32
|
import { CellHoverTextFeature } from "./cell-hover-text/feature";
|
|
30
33
|
import { CellSelectionFeature } from "./cell-selection/feature";
|
|
@@ -97,10 +100,10 @@ interface DataTableProps<TData> extends Partial<DownloadActionProps> {
|
|
|
97
100
|
// Others
|
|
98
101
|
showChartBuilder?: boolean;
|
|
99
102
|
showPageSizeSelector?: boolean;
|
|
100
|
-
|
|
101
|
-
showRowExplorer?: boolean;
|
|
103
|
+
showTableExplorer?: boolean;
|
|
102
104
|
togglePanel?: (panelType: PanelType) => void;
|
|
103
105
|
isPanelOpen?: (panelType: PanelType) => boolean;
|
|
106
|
+
isAnyPanelOpen?: boolean;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
const DataTableInternal = <TData,>({
|
|
@@ -142,10 +145,10 @@ const DataTableInternal = <TData,>({
|
|
|
142
145
|
toggleDisplayHeader,
|
|
143
146
|
showChartBuilder,
|
|
144
147
|
showPageSizeSelector,
|
|
145
|
-
|
|
146
|
-
showRowExplorer,
|
|
148
|
+
showTableExplorer,
|
|
147
149
|
togglePanel,
|
|
148
150
|
isPanelOpen,
|
|
151
|
+
isAnyPanelOpen,
|
|
149
152
|
viewedRowIdx,
|
|
150
153
|
onViewedRowChange,
|
|
151
154
|
}: DataTableProps<TData>) => {
|
|
@@ -272,7 +275,7 @@ const DataTableInternal = <TData,>({
|
|
|
272
275
|
},
|
|
273
276
|
});
|
|
274
277
|
|
|
275
|
-
const rowViewerPanelOpen = isPanelOpen?.(
|
|
278
|
+
const rowViewerPanelOpen = isPanelOpen?.(PANEL_TYPES.ROW_VIEWER) ?? false;
|
|
276
279
|
const virtualize = !pagination && data.length > MIN_ROWS_TO_VIRTUALIZE;
|
|
277
280
|
|
|
278
281
|
const tableRef = useScrollContainerHeight({ maxHeight, virtualize });
|
|
@@ -324,10 +327,9 @@ const DataTableInternal = <TData,>({
|
|
|
324
327
|
toggleDisplayHeader={toggleDisplayHeader}
|
|
325
328
|
showChartBuilder={showChartBuilder}
|
|
326
329
|
showPageSizeSelector={showPageSizeSelector}
|
|
327
|
-
|
|
328
|
-
showRowExplorer={showRowExplorer}
|
|
330
|
+
showTableExplorer={showTableExplorer}
|
|
329
331
|
togglePanel={togglePanel}
|
|
330
|
-
|
|
332
|
+
isAnyPanelOpen={isAnyPanelOpen}
|
|
331
333
|
tableLoading={reloading}
|
|
332
334
|
/>
|
|
333
335
|
</div>
|
|
@@ -13,7 +13,10 @@ import { Logger } from "@/utils/Logger";
|
|
|
13
13
|
|
|
14
14
|
interface PanelOwnershipResult {
|
|
15
15
|
isPanelOpen: (panelType: PanelType) => boolean;
|
|
16
|
-
|
|
16
|
+
isAnyPanelOpen: boolean;
|
|
17
|
+
togglePanel: (panelType?: PanelType) => void;
|
|
18
|
+
panelType: PanelType | null;
|
|
19
|
+
setPanelType: (panelType: PanelType) => void;
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
export function usePanelOwnership(
|
|
@@ -55,24 +58,31 @@ export function usePanelOwnership(
|
|
|
55
58
|
setPanelOwner(panelId);
|
|
56
59
|
}
|
|
57
60
|
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
const isAnyPanelOpen = panelOwner === panelId && isContextAwarePanelOpen;
|
|
62
|
+
|
|
63
|
+
function togglePanel(requestedType?: PanelType) {
|
|
64
|
+
if (isAnyPanelOpen) {
|
|
60
65
|
setPanelOwner(null);
|
|
61
66
|
setContextAwarePanelOpen(false);
|
|
62
67
|
} else {
|
|
63
68
|
setPanelOwner(panelId);
|
|
64
|
-
// if cell-aware, we want to focus on this cell when toggled open
|
|
65
69
|
if (isPanelCellAware && cellId) {
|
|
66
70
|
focusCell({ cellId });
|
|
67
71
|
}
|
|
68
72
|
setContextAwarePanelOpen(true);
|
|
69
|
-
|
|
73
|
+
// Only set type if explicitly requested and no previous type exists
|
|
74
|
+
if (requestedType && !panelType) {
|
|
75
|
+
setPanelType(requestedType);
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
79
|
|
|
73
80
|
return {
|
|
74
81
|
isPanelOpen,
|
|
82
|
+
isAnyPanelOpen,
|
|
75
83
|
togglePanel,
|
|
84
|
+
panelType,
|
|
85
|
+
setPanelType,
|
|
76
86
|
};
|
|
77
87
|
}
|
|
78
88
|
|
|
@@ -12,16 +12,16 @@ import {
|
|
|
12
12
|
ChevronsLeft,
|
|
13
13
|
ChevronsRight,
|
|
14
14
|
Info,
|
|
15
|
-
SearchIcon,
|
|
16
15
|
} from "lucide-react";
|
|
17
|
-
import { useRef, useState } from "react";
|
|
16
|
+
import { type KeyboardEvent, useId, useRef, useState } from "react";
|
|
18
17
|
import { useLocale } from "react-aria";
|
|
19
18
|
import { ColumnName } from "@/components/datasources/components";
|
|
20
19
|
import { CopyClipboardIcon } from "@/components/icons/copy-icon";
|
|
21
20
|
import { Spinner } from "@/components/icons/spinner";
|
|
22
21
|
import { KeyboardHotkeys } from "@/components/shortcuts/renderShortcut";
|
|
23
22
|
import { Button } from "@/components/ui/button";
|
|
24
|
-
import {
|
|
23
|
+
import { Checkbox } from "@/components/ui/checkbox";
|
|
24
|
+
import { Command, CommandInput } from "@/components/ui/command";
|
|
25
25
|
import {
|
|
26
26
|
Table,
|
|
27
27
|
TableBody,
|
|
@@ -32,7 +32,6 @@ import {
|
|
|
32
32
|
} from "@/components/ui/table";
|
|
33
33
|
import { DelayMount } from "@/components/utils/delay-mount";
|
|
34
34
|
import { useAsyncData } from "@/hooks/useAsyncData";
|
|
35
|
-
import { useKeydownOnElement } from "@/hooks/useHotkey";
|
|
36
35
|
import { Banner, ErrorBanner } from "@/plugins/impl/common/error-banner";
|
|
37
36
|
import type { GetRowResult } from "@/plugins/impl/DataTablePlugin";
|
|
38
37
|
import { NAMELESS_COLUMN_PREFIX, renderCellValue } from "../columns";
|
|
@@ -68,7 +67,7 @@ export const RowViewerPanel: React.FC<RowViewerPanelProps> = ({
|
|
|
68
67
|
}: RowViewerPanelProps) => {
|
|
69
68
|
const [searchQuery, setSearchQuery] = useState("");
|
|
70
69
|
const panelRef = useRef<HTMLDivElement>(null);
|
|
71
|
-
const
|
|
70
|
+
const checkboxId = useId();
|
|
72
71
|
const { locale } = useLocale();
|
|
73
72
|
|
|
74
73
|
const tooManyRows = totalRows === TOO_MANY_ROWS;
|
|
@@ -102,26 +101,29 @@ export const RowViewerPanel: React.FC<RowViewerPanelProps> = ({
|
|
|
102
101
|
setRow(totalRows - 1);
|
|
103
102
|
}
|
|
104
103
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
104
|
+
const handleKeyDown = (e: KeyboardEvent) => {
|
|
105
|
+
// Don't intercept keys when typing in an input
|
|
106
|
+
if (e.target instanceof HTMLInputElement) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
switch (e.key) {
|
|
110
|
+
case "ArrowLeft":
|
|
111
|
+
setRow(rowIdx - 1);
|
|
112
|
+
|
|
113
|
+
break;
|
|
114
|
+
|
|
115
|
+
case "ArrowRight":
|
|
116
|
+
setRow(rowIdx + 1);
|
|
117
|
+
|
|
118
|
+
break;
|
|
119
|
+
|
|
120
|
+
case " ":
|
|
121
|
+
e.preventDefault();
|
|
122
|
+
toggleRowSelection();
|
|
123
|
+
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
125
127
|
|
|
126
128
|
const buttonStyles = "h-6 w-6 p-0.5";
|
|
127
129
|
|
|
@@ -248,19 +250,29 @@ export const RowViewerPanel: React.FC<RowViewerPanelProps> = ({
|
|
|
248
250
|
className="flex flex-col gap-3 mt-4 focus:outline-hidden"
|
|
249
251
|
ref={panelRef}
|
|
250
252
|
tabIndex={-1}
|
|
253
|
+
onKeyDown={handleKeyDown}
|
|
251
254
|
>
|
|
252
|
-
<div className="flex flex-row gap-2 items-center mr-2">
|
|
255
|
+
<div className="flex flex-row gap-2 items-center mr-2 px-2">
|
|
253
256
|
{isSelectable && (
|
|
254
|
-
<div
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
257
|
+
<div
|
|
258
|
+
className="flex items-center"
|
|
259
|
+
title="Select/unselect the current row"
|
|
260
|
+
>
|
|
261
|
+
<div className="flex items-center gap-1.5">
|
|
262
|
+
<Checkbox
|
|
263
|
+
id={checkboxId}
|
|
264
|
+
checked={isRowSelected}
|
|
265
|
+
onCheckedChange={toggleRowSelection}
|
|
266
|
+
className="h-3.5 w-3.5"
|
|
267
|
+
/>
|
|
268
|
+
<label
|
|
269
|
+
htmlFor={checkboxId}
|
|
270
|
+
className="text-xs text-muted-foreground cursor-pointer"
|
|
271
|
+
>
|
|
272
|
+
Select
|
|
273
|
+
</label>
|
|
274
|
+
</div>
|
|
275
|
+
<KeyboardHotkeys shortcut="Space" className="scale-75" />
|
|
264
276
|
</div>
|
|
265
277
|
)}
|
|
266
278
|
|
|
@@ -315,17 +327,14 @@ export const RowViewerPanel: React.FC<RowViewerPanelProps> = ({
|
|
|
315
327
|
</Button>
|
|
316
328
|
</div>
|
|
317
329
|
|
|
318
|
-
<
|
|
319
|
-
<
|
|
320
|
-
ref={searchInputRef}
|
|
321
|
-
type="text"
|
|
330
|
+
<Command className="bg-background" shouldFilter={false}>
|
|
331
|
+
<CommandInput
|
|
322
332
|
placeholder="Search"
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
className="mb-0 border-border"
|
|
333
|
+
value={searchQuery}
|
|
334
|
+
onValueChange={setSearchQuery}
|
|
326
335
|
data-testid="selection-panel-search-input"
|
|
327
336
|
/>
|
|
328
|
-
</
|
|
337
|
+
</Command>
|
|
329
338
|
{renderTable()}
|
|
330
339
|
</div>
|
|
331
340
|
);
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { Fill } from "@marimo-team/react-slotz";
|
|
4
|
+
import type { OnChangeFn, RowSelectionState } from "@tanstack/react-table";
|
|
5
|
+
import type React from "react";
|
|
6
|
+
import { Button } from "@/components/ui/button";
|
|
7
|
+
import { Tabs, TabsContent } from "@/components/ui/tabs";
|
|
8
|
+
import { SlotNames } from "@/core/slots/slots";
|
|
9
|
+
import type {
|
|
10
|
+
GetRowResult,
|
|
11
|
+
PreviewColumn,
|
|
12
|
+
} from "@/plugins/impl/DataTablePlugin";
|
|
13
|
+
import { cn } from "@/utils/cn";
|
|
14
|
+
import {
|
|
15
|
+
PANEL_TYPES,
|
|
16
|
+
type PanelType,
|
|
17
|
+
} from "../../editor/chrome/panels/context-aware-panel/context-aware-panel";
|
|
18
|
+
import { ColumnExplorerPanel } from "../column-explorer-panel/column-explorer";
|
|
19
|
+
import { RowViewerPanel } from "../row-viewer-panel/row-viewer";
|
|
20
|
+
import type { FieldTypesWithExternalType, TooManyRows } from "../types";
|
|
21
|
+
|
|
22
|
+
export interface TableExplorerPanelProps {
|
|
23
|
+
// Row viewer props
|
|
24
|
+
rowIdx: number;
|
|
25
|
+
setRowIdx: (rowIdx: number) => void;
|
|
26
|
+
totalRows: number | TooManyRows;
|
|
27
|
+
fieldTypes: FieldTypesWithExternalType | undefined | null;
|
|
28
|
+
getRow: (rowIdx: number) => Promise<GetRowResult>;
|
|
29
|
+
isSelectable: boolean;
|
|
30
|
+
isRowSelected: boolean;
|
|
31
|
+
handleRowSelectionChange?: OnChangeFn<RowSelectionState>;
|
|
32
|
+
// Column explorer props
|
|
33
|
+
previewColumn?: PreviewColumn;
|
|
34
|
+
totalColumns: number;
|
|
35
|
+
tableId: string;
|
|
36
|
+
// Visibility flags
|
|
37
|
+
showRowExplorer: boolean;
|
|
38
|
+
showColumnExplorer: boolean;
|
|
39
|
+
// Tab state (driven by contextAwarePanelType atom)
|
|
40
|
+
activeTab: PanelType | null;
|
|
41
|
+
onTabChange: (tab: PanelType) => void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const tabTriggerClassName =
|
|
45
|
+
"text-xs uppercase tracking-wide font-semibold cursor-pointer transition-colors";
|
|
46
|
+
const activeClassName = "text-primary";
|
|
47
|
+
const inactiveClassName = "hover:text-foreground";
|
|
48
|
+
|
|
49
|
+
export const TableExplorerPanel: React.FC<TableExplorerPanelProps> = ({
|
|
50
|
+
// Row viewer
|
|
51
|
+
rowIdx,
|
|
52
|
+
setRowIdx,
|
|
53
|
+
totalRows,
|
|
54
|
+
fieldTypes,
|
|
55
|
+
getRow,
|
|
56
|
+
isSelectable,
|
|
57
|
+
isRowSelected,
|
|
58
|
+
handleRowSelectionChange,
|
|
59
|
+
// Column explorer
|
|
60
|
+
previewColumn,
|
|
61
|
+
totalColumns,
|
|
62
|
+
tableId,
|
|
63
|
+
// Visibility
|
|
64
|
+
showRowExplorer,
|
|
65
|
+
showColumnExplorer,
|
|
66
|
+
// Tab state
|
|
67
|
+
activeTab,
|
|
68
|
+
onTabChange,
|
|
69
|
+
}) => {
|
|
70
|
+
const showTabs = showRowExplorer && showColumnExplorer;
|
|
71
|
+
|
|
72
|
+
const rowViewer = (
|
|
73
|
+
<RowViewerPanel
|
|
74
|
+
rowIdx={rowIdx}
|
|
75
|
+
setRowIdx={setRowIdx}
|
|
76
|
+
totalRows={totalRows}
|
|
77
|
+
fieldTypes={fieldTypes}
|
|
78
|
+
getRow={getRow}
|
|
79
|
+
isSelectable={isSelectable}
|
|
80
|
+
isRowSelected={isRowSelected}
|
|
81
|
+
handleRowSelectionChange={handleRowSelectionChange}
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const columnExplorer = previewColumn && (
|
|
86
|
+
<ColumnExplorerPanel
|
|
87
|
+
previewColumn={previewColumn}
|
|
88
|
+
fieldTypes={fieldTypes}
|
|
89
|
+
totalRows={totalRows}
|
|
90
|
+
totalColumns={totalColumns}
|
|
91
|
+
tableId={tableId}
|
|
92
|
+
/>
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
// If only one panel is visible, don't show tabs
|
|
96
|
+
if (!showTabs) {
|
|
97
|
+
if (showRowExplorer) {
|
|
98
|
+
return rowViewer;
|
|
99
|
+
}
|
|
100
|
+
if (showColumnExplorer) {
|
|
101
|
+
return columnExplorer;
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Resolve active tab — fall back to first available
|
|
107
|
+
const resolvedTab = activeTab ?? PANEL_TYPES.ROW_VIEWER;
|
|
108
|
+
|
|
109
|
+
return (
|
|
110
|
+
<Tabs
|
|
111
|
+
value={resolvedTab}
|
|
112
|
+
onValueChange={(value) => onTabChange(value as PanelType)}
|
|
113
|
+
className="h-full flex flex-col min-w-[350px]"
|
|
114
|
+
>
|
|
115
|
+
<Fill name={SlotNames.CONTEXT_AWARE_PANEL_HEADER}>
|
|
116
|
+
<div className="flex items-center gap-1">
|
|
117
|
+
<Button
|
|
118
|
+
variant="text"
|
|
119
|
+
size="xs"
|
|
120
|
+
onClick={() => onTabChange(PANEL_TYPES.ROW_VIEWER)}
|
|
121
|
+
className={cn(
|
|
122
|
+
tabTriggerClassName,
|
|
123
|
+
resolvedTab === PANEL_TYPES.ROW_VIEWER
|
|
124
|
+
? activeClassName
|
|
125
|
+
: inactiveClassName,
|
|
126
|
+
)}
|
|
127
|
+
>
|
|
128
|
+
Rows
|
|
129
|
+
</Button>
|
|
130
|
+
<span className="text-muted-foreground text-xs">|</span>
|
|
131
|
+
<Button
|
|
132
|
+
variant="text"
|
|
133
|
+
size="xs"
|
|
134
|
+
onClick={() => onTabChange(PANEL_TYPES.COLUMN_EXPLORER)}
|
|
135
|
+
className={cn(
|
|
136
|
+
tabTriggerClassName,
|
|
137
|
+
resolvedTab === PANEL_TYPES.COLUMN_EXPLORER
|
|
138
|
+
? activeClassName
|
|
139
|
+
: inactiveClassName,
|
|
140
|
+
)}
|
|
141
|
+
>
|
|
142
|
+
Explorer
|
|
143
|
+
</Button>
|
|
144
|
+
</div>
|
|
145
|
+
</Fill>
|
|
146
|
+
|
|
147
|
+
<TabsContent
|
|
148
|
+
value={PANEL_TYPES.ROW_VIEWER}
|
|
149
|
+
className="flex-1 overflow-auto"
|
|
150
|
+
>
|
|
151
|
+
{rowViewer}
|
|
152
|
+
</TabsContent>
|
|
153
|
+
<TabsContent
|
|
154
|
+
value={PANEL_TYPES.COLUMN_EXPLORER}
|
|
155
|
+
className="flex-1 overflow-auto"
|
|
156
|
+
>
|
|
157
|
+
{columnExplorer}
|
|
158
|
+
</TabsContent>
|
|
159
|
+
</Tabs>
|
|
160
|
+
);
|
|
161
|
+
};
|
|
@@ -21,7 +21,12 @@ import {
|
|
|
21
21
|
isPinnedAtom,
|
|
22
22
|
} from "./atoms";
|
|
23
23
|
|
|
24
|
-
export
|
|
24
|
+
export const PANEL_TYPES = {
|
|
25
|
+
ROW_VIEWER: "row-viewer",
|
|
26
|
+
COLUMN_EXPLORER: "column-explorer",
|
|
27
|
+
} as const;
|
|
28
|
+
|
|
29
|
+
export type PanelType = (typeof PANEL_TYPES)[keyof typeof PANEL_TYPES];
|
|
25
30
|
|
|
26
31
|
export const ContextAwarePanel: React.FC = () => {
|
|
27
32
|
const [owner, setOwner] = useAtom(contextAwarePanelOwner);
|
|
@@ -51,7 +56,7 @@ export const ContextAwarePanel: React.FC = () => {
|
|
|
51
56
|
aria-label={isPinned ? "Unpin panel" : "Pin panel"}
|
|
52
57
|
>
|
|
53
58
|
{isPinned ? (
|
|
54
|
-
<PinIcon className="w-4 h-4" />
|
|
59
|
+
<PinIcon className="w-4 h-4 text-primary" />
|
|
55
60
|
) : (
|
|
56
61
|
<PinOffIcon className="w-4 h-4" />
|
|
57
62
|
)}
|
|
@@ -95,16 +100,18 @@ export const ContextAwarePanel: React.FC = () => {
|
|
|
95
100
|
|
|
96
101
|
const renderBody = () => {
|
|
97
102
|
return (
|
|
98
|
-
<div className="
|
|
99
|
-
<div className="
|
|
103
|
+
<div className="pb-7 mb-4 h-full overflow-auto">
|
|
104
|
+
<div className="p-3 border-b flex justify-between items-center">
|
|
100
105
|
{renderModeToggle()}
|
|
106
|
+
<Slot name={SlotNames.CONTEXT_AWARE_PANEL_HEADER} />
|
|
101
107
|
<Button
|
|
102
|
-
variant="
|
|
103
|
-
size="
|
|
108
|
+
variant="text"
|
|
109
|
+
size="xs"
|
|
110
|
+
className="m-0"
|
|
104
111
|
onClick={closePanel}
|
|
105
112
|
aria-label="Close selection panel"
|
|
106
113
|
>
|
|
107
|
-
<XIcon className="w-4 h-4" />
|
|
114
|
+
<XIcon className="w-4 h-4 hover:text-destructive" />
|
|
108
115
|
</Button>
|
|
109
116
|
</div>
|
|
110
117
|
|
|
@@ -126,7 +133,7 @@ export const ContextAwarePanel: React.FC = () => {
|
|
|
126
133
|
onDragging={handleDragging}
|
|
127
134
|
className="resize-handle border-border z-20 print:hidden border-l"
|
|
128
135
|
/>
|
|
129
|
-
<Panel defaultSize={
|
|
136
|
+
<Panel defaultSize={25} minSize={25} maxSize={80}>
|
|
130
137
|
{renderBody()}
|
|
131
138
|
</Panel>
|
|
132
139
|
</>
|
|
@@ -150,7 +157,7 @@ interface ResizableComponentProps {
|
|
|
150
157
|
const ResizableComponent = ({ children }: ResizableComponentProps) => {
|
|
151
158
|
const { resizableDivRef, handleRefs, style } = useResizeHandle({
|
|
152
159
|
startingWidth: 400,
|
|
153
|
-
minWidth:
|
|
160
|
+
minWidth: 400,
|
|
154
161
|
maxWidth: 1500,
|
|
155
162
|
onResize: () => {
|
|
156
163
|
raf2(() => {
|