@marimo-team/frontend 0.23.10-dev2 → 0.23.10-dev20
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-B4qIAZip.js → CellStatus-DMwpAXMZ.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-W0UfNkj7.js → ConnectedDataExplorerComponent-LDEBEgrJ.js} +1 -1
- package/dist/assets/{DeferredRequestRegistry-CNldVcrP.js → DeferredRequestRegistry-CzVJLtsG.js} +1 -1
- package/dist/assets/{ImperativeModal-B3Th7k4R.js → ImperativeModal-BeQmePpG.js} +1 -1
- package/dist/assets/{JsonOutput-sim6s58u.js → JsonOutput-B70lHHvX.js} +13 -13
- package/dist/assets/{LazyAnyLanguageCodeMirror-BEvXb3VX.js → LazyAnyLanguageCodeMirror-Bv7Emsba.js} +2 -2
- package/dist/assets/{MarimoErrorOutput-IoNFtcZT.js → MarimoErrorOutput-BQo8RTib.js} +1 -1
- package/dist/assets/{RSPContexts-CdN1NyAt.js → RSPContexts-Clr6RnG2.js} +1 -1
- package/dist/assets/{RenderHTML-BpmpkBqm.js → RenderHTML-DTHZ0W_b.js} +1 -1
- package/dist/assets/RunButton-eAKy_Bh8.js +1 -0
- package/dist/assets/{add-cell-with-ai-Da5NaDZ_.js → add-cell-with-ai-CxjV-UXz.js} +10 -10
- package/dist/assets/{add-connection-dialog-qtpp-Zvj.js → add-connection-dialog-BHZQ8B7f.js} +1 -1
- package/dist/assets/{agent-panel-CTXCTxgV.js → agent-panel-CSht0CWB.js} +1 -1
- package/dist/assets/{ai-model-dropdown-CDevlJTs.js → ai-model-dropdown-Bbt--cwF.js} +1 -1
- package/dist/assets/{any-language-editor-CXeLf_N8.js → any-language-editor-CT8HF6T6.js} +1 -1
- package/dist/assets/{app-config-button-BXlR4nKW.js → app-config-button-Z8gpKuxR.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-Cgi4wo9P.js → architectureDiagram-VXUJARFQ-BheLn0Ym.js} +1 -1
- package/dist/assets/{blockDiagram-VD42YOAC-CsHap8-F.js → blockDiagram-VD42YOAC-DQbkWeS9.js} +1 -1
- package/dist/assets/{c4Diagram-YG6GDRKO-CZuArudM.js → c4Diagram-YG6GDRKO-i6Rgjbmb.js} +1 -1
- package/dist/assets/{cache-panel-DYiVMv5x.js → cache-panel-js9LAxft.js} +1 -1
- package/dist/assets/{cell-editor-Z3xJhFik.js → cell-editor-72C0Zygh.js} +5 -5
- package/dist/assets/{cell-link-D26yaUlf.js → cell-link-ChdlswWe.js} +1 -1
- package/dist/assets/{cells-DZTFtAVj.js → cells-B1UeqCia.js} +64 -64
- package/dist/assets/cells-BSWdJzbh.css +2 -0
- package/dist/assets/channel-CT-fBYRb.js +1 -0
- package/dist/assets/{chat-display-BgfGVz5S.js → chat-display-D4aawkG5.js} +1 -1
- package/dist/assets/{chat-panel-CXxu4TZ_.js → chat-panel-DqzUBGAQ.js} +1 -1
- package/dist/assets/{chat-ui-BkyiYz6q.js → chat-ui-sZqz1Jfc.js} +1 -1
- package/dist/assets/{chunk-5FQGJX7Z-D9iBG0F7.js → chunk-5FQGJX7Z-CfK7VoEZ.js} +3 -3
- package/dist/assets/{chunk-ABZYJK2D-BG7Eb4WW.js → chunk-ABZYJK2D-DimfG7ZJ.js} +1 -1
- package/dist/assets/{chunk-ATLVNIR6-CqLn9HI1.js → chunk-ATLVNIR6-DJKlaII_.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-D4SyZNjn.js → chunk-B4BG7PRW-CBlVg3ZE.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-t9uiMPiN.js → chunk-DI55MBZ5-bDEWTXNJ.js} +1 -1
- package/dist/assets/{chunk-EXTU4WIE-BmVk7Fyq.js → chunk-EXTU4WIE-B_Wal6ww.js} +1 -1
- package/dist/assets/{chunk-JA3XYJ7Z-B5b2QHOb.js → chunk-JA3XYJ7Z-BU8T1Ru_.js} +1 -1
- package/dist/assets/{chunk-JZLCHNYA-1_sVfAnw.js → chunk-JZLCHNYA-B3ot_8ri.js} +1 -1
- package/dist/assets/{chunk-N4CR4FBY-CFJoD-EQ.js → chunk-N4CR4FBY-DWtppJdE.js} +2 -2
- package/dist/assets/{chunk-QN33PNHL-BBE_bx9E.js → chunk-QN33PNHL-DWg4n9qk.js} +1 -1
- package/dist/assets/{chunk-QXUST7PY-Cu1nR-L2.js → chunk-QXUST7PY-DXSOUlP-.js} +1 -1
- package/dist/assets/{chunk-S3R3BYOJ-Cl0iW04v.js → chunk-S3R3BYOJ-D_Pw7wuz.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-f5ix6iSd.js → chunk-TZMSLE5B-CoYomI0C.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-Cl2DZr6D.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-CZjujGyB.js +1 -0
- package/dist/assets/{code-block-37QAKDTI-B19XL3UR.js → code-block-37QAKDTI-DKLARgTX.js} +1 -1
- package/dist/assets/{column-preview-DEY7H3Nv.js → column-preview-BIhZkwx8.js} +1 -1
- package/dist/assets/{command-KARR7KMq.js → command-DUeag2QH.js} +1 -1
- package/dist/assets/{command-palette-DNG8Q_or.js → command-palette-DZeNDzl3.js} +1 -1
- package/dist/assets/{common-BMiQG5NP.js → common-6io3mKWY.js} +1 -1
- package/dist/assets/{components-r46WLNJG.js → components-CZp0urSr.js} +1 -1
- package/dist/assets/{components-DYnN18mE.js → components-oTA8dVbr.js} +1 -1
- package/dist/assets/{config-ClMcu_sV.js → config-DH1Le_e1.js} +1 -1
- package/dist/assets/{context-QkTujrKn.js → context-C1Tm_47t.js} +1 -1
- package/dist/assets/{copy-icon-OjtDb4gO.js → copy-icon-z0dzhmL4.js} +1 -1
- package/dist/assets/{dagre-6UL2VRFP-CVKXpDlr.js → dagre-6UL2VRFP-BSaSwo7-.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-BdDYn72O.js → data-grid-overlay-editor-B9m0-RJr.js} +1 -1
- package/dist/assets/{datasource-B7h8qmJZ.js → datasource-7l-qg4-b.js} +1 -1
- package/dist/assets/{dates-CTxr0EqQ.js → dates-DS_7IZoI.js} +1 -1
- package/dist/assets/{dependency-graph-panel-uTlnFEz0.js → dependency-graph-panel-CqUTS6ib.js} +1 -1
- package/dist/assets/{diagram-PSM6KHXK-BfzLNKp-.js → diagram-PSM6KHXK-CIQUQR45.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-D_H77Ni5.js → diagram-QEK2KX5R-DZcaMxln.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-DJmVBeMk.js → diagram-S2PKOQOG-Dh2iJpv3.js} +1 -1
- package/dist/assets/{dist-CpcTHxTt.js → dist-AZ6vC6cU.js} +1 -1
- package/dist/assets/{dist-CAIBlJtJ.js → dist-B0N0-Vx5.js} +1 -1
- package/dist/assets/{dist-BF6UNR6V.js → dist-B7WRiLJK.js} +1 -1
- package/dist/assets/{dist-CqEym3Sr.js → dist-BE3jO1WU.js} +1 -1
- package/dist/assets/{dist-CpTFpfm_.js → dist-BZr6MMV-.js} +1 -1
- package/dist/assets/dist-BcAHw69V.js +1 -0
- package/dist/assets/dist-C63_XIZr.js +1 -0
- package/dist/assets/dist-CDHGLvB9.js +1 -0
- package/dist/assets/{dist-CocyeH0q.js → dist-CSozmdJ6.js} +1 -1
- package/dist/assets/{dist-CKT_lJKW.js → dist-CXYKut-0.js} +1 -1
- package/dist/assets/{dist-CNyMUs19.js → dist-CaCigNvN.js} +1 -1
- package/dist/assets/{dist-CciFN1z_.js → dist-Ckx5b63P.js} +1 -1
- package/dist/assets/{dist-DqVEVg0c.js → dist-CtcHy8Nq.js} +1 -1
- package/dist/assets/dist-CtfyEjVj.js +1 -0
- package/dist/assets/{dist-Dr8mWwQ_.js → dist-D4Od5Ds4.js} +1 -1
- package/dist/assets/{dist-BQWswd1A.js → dist-D7OgrWeC.js} +1 -1
- package/dist/assets/{dist-CBSMxaO_.js → dist-DCqxOggh.js} +1 -1
- package/dist/assets/dist-DK9FT3QL.js +1 -0
- package/dist/assets/{dist-CJIOLS6O.js → dist-DoJEa3O2.js} +1 -1
- package/dist/assets/{dist-B7U5jPfs.js → dist-LFeDu06u.js} +1 -1
- package/dist/assets/dist-bRDVNr1s.js +1 -0
- package/dist/assets/{dist-_fyDen1v.js → dist-v1cdVFWt.js} +1 -1
- package/dist/assets/{documentation-panel-DNberbcy.js → documentation-panel-DBd3biLb.js} +1 -1
- package/dist/assets/download-DcQWg8-m.js +9 -0
- package/dist/assets/{edit-page-CJPMGRxx.js → edit-page-BiAa6l0X.js} +6 -6
- package/dist/assets/{erDiagram-Q2GNP2WA-ROTNwSJz.js → erDiagram-Q2GNP2WA-ChWC983-.js} +1 -1
- package/dist/assets/{error-banner-LdWZDbqd.js → error-banner-CLO6LFll.js} +1 -1
- package/dist/assets/{error-panel-D5hoQy8n.js → error-panel-BoafWEAy.js} +1 -1
- package/dist/assets/{es-DGgq-Wes.js → es-au8YY-8E.js} +1 -1
- package/dist/assets/{esm-CqWdmSnV.js → esm-Cb2bnV6o.js} +1 -1
- package/dist/assets/{esm-DeiyaVAJ.js → esm-Cv-OC7z7.js} +1 -1
- package/dist/assets/eye-off-BT-KOYV5.js +1 -0
- package/dist/assets/{field-zLmMOSA4.js → field-B4CdIHa9.js} +1 -1
- package/dist/assets/file-explorer-panel-B94q-LIo.js +26 -0
- package/dist/assets/{file-icons-BrqycRag.js → file-icons-8bgrYNC0.js} +1 -1
- package/dist/assets/{file-name-input-BNHbCr1E.js → file-name-input-C-nkVqG_.js} +1 -1
- package/dist/assets/{fileToBase64-DZfwJMrG.js → fileToBase64-BeYUTUzO.js} +1 -1
- package/dist/assets/{floating-outline-BnioYLEY.js → floating-outline-BBTN16Pi.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS--ee3IIVF.js → flowDiagram-NV44I4VS-CwJmdEwh.js} +1 -1
- package/dist/assets/{focus-D3CLyF2k.js → focus-C0_hrGnH.js} +1 -1
- package/dist/assets/{form-DdqAF_p5.js → form-Bq0lMUxv.js} +1 -1
- package/dist/assets/{formats-b7Sf6DAK.js → formats-DP_z0P-n.js} +1 -1
- package/dist/assets/{formatting-CSG9kqNb.js → formatting-XTtGIhGk.js} +1 -1
- package/dist/assets/{gallery-page-Bcf7fYLy.js → gallery-page-BDt-STRr.js} +1 -1
- package/dist/assets/{ganttDiagram-JELNMOA3-BGhmW2aP.js → ganttDiagram-JELNMOA3-CFD5UywU.js} +1 -1
- package/dist/assets/{gitGraphDiagram-V2S2FVAM-DXFCZcxr.js → gitGraphDiagram-V2S2FVAM-DRxIbU0j.js} +1 -1
- package/dist/assets/{glide-data-editor-DqKNgyfg.js → glide-data-editor-CipAqqJq.js} +4 -4
- package/dist/assets/{globals-7JnRMGd4.js → globals-LRz1TwrD.js} +1 -1
- package/dist/assets/{home-page-hvU2Ck7f.js → home-page-WYmfqTfP.js} +1 -1
- package/dist/assets/{hooks-CneeLUm3.js → hooks-DyYXumVE.js} +1 -1
- package/dist/assets/{html-to-image-BoIWRm-U.js → html-to-image-rfnXdqfv.js} +1 -1
- package/dist/assets/index-Cae0svAG.js +38 -0
- package/dist/assets/index-DsKy-8bh.css +2 -0
- package/dist/assets/{infoDiagram-HS3SLOUP-CaaUieFa.js → infoDiagram-HS3SLOUP-VEIg8kOj.js} +1 -1
- package/dist/assets/{input-C3Hrdlqq.js → input-TSilD7AA.js} +1 -1
- package/dist/assets/{journeyDiagram-XKPGCS4Q-9D2JCyrN.js → journeyDiagram-XKPGCS4Q-CzBYjYDP.js} +1 -1
- package/dist/assets/{kanban-definition-3W4ZIXB7-DxV26rf-.js → kanban-definition-3W4ZIXB7-qf5QcOCE.js} +1 -1
- package/dist/assets/{kiosk-mode-CZZ1SAgt.js → kiosk-mode-Da3sO64c.js} +1 -1
- package/dist/assets/layout-DYQGL_5W.js +9 -0
- package/dist/assets/{linear-CW_ww8od.js → linear-Bg82k_or.js} +1 -1
- package/dist/assets/{links-1rtF1-eC.js → links-C6riF5tE.js} +1 -1
- package/dist/assets/{logs-panel-fbUDvNKz.js → logs-panel-CBQtSb87.js} +1 -1
- package/dist/assets/{markdown-renderer-BGO5zfUp.js → markdown-renderer-YEl8Z67L.js} +3 -3
- package/dist/assets/mermaid-4DMBBIKO-BuE4YRiK.js +1 -0
- package/dist/assets/{mermaid-Bes0ynI8.js → mermaid-DskEfPqD.js} +3 -3
- package/dist/assets/{mermaid-parser.core-aYU6qXxk.js → mermaid-parser.core-Cw_lBEej.js} +1 -1
- package/dist/assets/{mindmap-definition-VGOIOE7T-DTJAbAQ8.js → mindmap-definition-VGOIOE7T-b6NvhSJG.js} +1 -1
- package/dist/assets/{name-cell-input-IbrFfjTR.js → name-cell-input-CSSNMAt-.js} +1 -1
- package/dist/assets/{number-overlay-editor-DL4IwqDH.js → number-overlay-editor-DXGzRTU9.js} +1 -1
- package/dist/assets/{outline-panel-BQ87B9Ft.js → outline-panel-Bzu7s3vt.js} +1 -1
- package/dist/assets/{packages-panel-ChY1D8eZ.js → packages-panel-DsHF0wGn.js} +1 -1
- package/dist/assets/{pair-with-agent-modal-1tufe5MP.js → pair-with-agent-modal-Dh1WKytX.js} +1 -1
- package/dist/assets/{panels-DWrP0hzF.js → panels-CK6mBKTH.js} +1 -1
- package/dist/assets/{pathUtils-CJjndqMI.js → pathUtils-vgBYIo5B.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-_3l2XiEo.js → pieDiagram-ADFJNKIX-DxRJfbR9.js} +1 -1
- package/dist/assets/{precisionRound-Cl9k9ZmS.js → precisionRound-NX56vp6K.js} +1 -1
- package/dist/assets/{process-output-CW1wS2Hr.js → process-output-D34znTpg.js} +1 -1
- package/dist/assets/{quadrantDiagram-AYHSOK5B-CX3AMAvR.js → quadrantDiagram-AYHSOK5B-CYmhoW3N.js} +1 -1
- package/dist/assets/{radio-group-9x2A1Fsc.js → radio-group-B4UJ7sCK.js} +1 -1
- package/dist/assets/{react-vega-CXIQBUis.js → react-vega-7FnlLMIn.js} +1 -1
- package/dist/assets/react-vega-hzWc6HV-.js +1 -0
- package/dist/assets/readonly-python-code-DRB4Oujr.js +1 -0
- package/dist/assets/{renderShortcut-CcFk3m01.js → renderShortcut-BTgMpqTK.js} +1 -1
- package/dist/assets/{request-registry--h6PWG50.js → request-registry-cDhqBe-K.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ-ORHKBnkg.js → requirementDiagram-UZGBJVZJ-COy0V1k7.js} +1 -1
- package/dist/assets/{reveal-component-D13HX3en.js → reveal-component-CMD_BnK_.js} +3 -3
- package/dist/assets/{run-page-BNG5gaoM.js → run-page-BbbV9aDy.js} +1 -1
- package/dist/assets/{sankeyDiagram-TZEHDZUN-Dvb8kmWa.js → sankeyDiagram-TZEHDZUN-CltfYesU.js} +1 -1
- package/dist/assets/scratchpad-panel-Bu5uSOnh.js +1 -0
- package/dist/assets/{secrets-panel-BBvdIhtU.js → secrets-panel-C-AiYcTm.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-DQycpQtE.js → sequenceDiagram-WL72ISMW-poUheIRc.js} +1 -1
- package/dist/assets/session-panel-CUuZscI9.js +1 -0
- package/dist/assets/{share-DMwTZOTH.js → share-DQLjaPiK.js} +1 -1
- package/dist/assets/{snippets-panel-C4UEEe7X.js → snippets-panel-FZipjVGj.js} +1 -1
- package/dist/assets/{spec-CPQR_o92.js → spec-D1ptWKg6.js} +1 -1
- package/dist/assets/{state-BGDrw26V.js → state-B_c922_d.js} +1 -1
- package/dist/assets/{state-DTislnZA.js → state-CcAGAozT.js} +1 -1
- package/dist/assets/{state-D2ocm4JL.js → state-Dd_QMTIr.js} +1 -1
- package/dist/assets/{state-C6hNg_X-.js → state-DlSkDnym.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-D78DIR_F.js → stateDiagram-FKZM4ZOC-DvWmNTbQ.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-B48rhKHl.js +1 -0
- package/dist/assets/stex-C8c2RsN8.js +1 -0
- package/dist/assets/{swiper-component-YGJlBaCp.js → swiper-component-B_R-BaT5.js} +1 -1
- package/dist/assets/{switch-BiU_sAcn.js → switch-NmKFCQsT.js} +1 -1
- package/dist/assets/{terminal-BYGihNNp.js → terminal-Brlgq9Xx.js} +1 -1
- package/dist/assets/{textarea-C3qk0qJ7.js → textarea-DsHy664W.js} +1 -1
- package/dist/assets/{time-DLdI7jB3.js → time-tROo95ox.js} +1 -1
- package/dist/assets/{timeline-definition-IT6M3QCI-DIywx3xf.js → timeline-definition-IT6M3QCI-CfgM6G05.js} +1 -1
- package/dist/assets/{tracing-B0e3S01T.js → tracing-B91zi1Cr.js} +1 -1
- package/dist/assets/{tracing-panel-CmLBnJCg.js → tracing-panel-B68PNYS8.js} +2 -2
- package/dist/assets/tree-actions-DfrTuUnZ.js +1 -0
- package/dist/assets/use-toast-9t59MOqR.js +1 -0
- package/dist/assets/{useBoolean-Bp18o6XG.js → useBoolean-DElMi9Nd.js} +1 -1
- package/dist/assets/useCellActionButton-DS0VmOT4.js +1 -0
- package/dist/assets/{useDateFormatter-ICIDGgHf.js → useDateFormatter-d3yglQmW.js} +1 -1
- package/dist/assets/useDeleteCell-ByueGyf0.js +1 -0
- package/dist/assets/{useDependencyPanelTab-DK6mAVzQ.js → useDependencyPanelTab-B-_R5nHC.js} +1 -1
- package/dist/assets/{useInstallPackage-DUF4IRRI.js → useInstallPackage-CKRPRNft.js} +1 -1
- package/dist/assets/useNotebookActions-BPxBZnuZ.js +1 -0
- package/dist/assets/{useNumberFormatter-ByUv-u9o.js → useNumberFormatter-CW4V-fpE.js} +1 -1
- package/dist/assets/{usePress-DQ_tAz5W.js → usePress-jH2RfcUG.js} +1 -1
- package/dist/assets/{useRunCells-Dt6DS29E.js → useRunCells-c7zq0oWm.js} +1 -1
- package/dist/assets/{useSplitCell-VdsEBWhq.js → useSplitCell-Dd5NLOUh.js} +1 -1
- package/dist/assets/{utils-DCL4n9wx.js → utils-DQRuLEof.js} +1 -1
- package/dist/assets/{vega-component-COOhhZ3h.js → vega-component-DqVeZqOU.js} +1 -1
- package/dist/assets/{vega-loader.browser-C8wT63Va.js → vega-loader.browser-xq8miGHn.js} +1 -1
- package/dist/assets/{write-secret-modal-BFLlHwgU.js → write-secret-modal-BRlgVZs9.js} +1 -1
- package/dist/assets/{xychartDiagram-PRI3JC2R-CjS1dL8k.js → xychartDiagram-PRI3JC2R-Ij7-bbhi.js} +1 -1
- package/dist/index.html +117 -116
- package/package.json +2 -2
- package/src/components/data-table/__tests__/data-table.test.tsx +154 -12
- package/src/components/data-table/hover-tooltip/__tests__/content.test.ts +60 -0
- package/src/components/data-table/hover-tooltip/content.ts +44 -0
- package/src/components/data-table/hover-tooltip/hover-tooltip.tsx +55 -0
- package/src/components/data-table/hover-tooltip/use-table-hover-tooltip.ts +159 -0
- package/src/components/data-table/renderers.tsx +27 -43
- package/src/components/datasources/__tests__/filter-empty.test.ts +183 -0
- package/src/components/datasources/datasources.tsx +92 -3
- package/src/components/editor/cell/cell-context-menu.tsx +15 -2
- package/src/components/editor/documentation.css +16 -0
- package/src/components/editor/file-tree/file-explorer.tsx +8 -18
- package/src/components/editor/file-tree/tree-actions.tsx +46 -1
- package/src/components/slides/__tests__/minimap-actions.test.tsx +166 -0
- package/src/components/slides/minimap.tsx +127 -10
- package/src/components/storage/__tests__/storage-inspector.test.ts +53 -0
- package/src/components/storage/storage-inspector.tsx +68 -48
- package/src/components/ui/__tests__/use-toast.test.ts +75 -0
- package/src/components/ui/use-toast.ts +33 -13
- package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +0 -28
- package/src/core/cells/__tests__/cell.test.ts +29 -2
- package/src/core/cells/cell.ts +5 -1
- package/src/core/codemirror/go-to-definition/__tests__/utils.test.ts +37 -0
- package/src/core/codemirror/go-to-definition/commands.ts +17 -9
- package/src/core/codemirror/go-to-definition/utils.ts +1 -0
- package/src/core/codemirror/language/languages/sql/utils.ts +3 -1
- package/src/core/datasets/data-source-connections.ts +2 -0
- package/src/core/network/__tests__/requests-static.test.ts +30 -0
- package/src/core/network/requests-static.ts +14 -10
- package/src/plugins/layout/DownloadPlugin.tsx +1 -1
- package/dist/assets/RunButton-NDsrcmxR.js +0 -1
- package/dist/assets/cells-jmgGt1lS.css +0 -2
- package/dist/assets/channel-6XBTrC3Q.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-DlIMDu6i.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-CcIhhkQu.js +0 -1
- package/dist/assets/dist-BtL81uwZ.js +0 -1
- package/dist/assets/dist-Bww7hlVc.js +0 -1
- package/dist/assets/dist-CuCuJBdf.js +0 -1
- package/dist/assets/dist-W1iHBJeE.js +0 -1
- package/dist/assets/dist-cgiAP5sW.js +0 -1
- package/dist/assets/dist-vkd1160q.js +0 -1
- package/dist/assets/download-HxGLUdmz.js +0 -9
- package/dist/assets/file-explorer-panel-Dpu3jlWY.js +0 -26
- package/dist/assets/index-BIw7BKLH.css +0 -2
- package/dist/assets/index-CgI7_ZFC.js +0 -38
- package/dist/assets/layout-tjJkaOem.js +0 -9
- package/dist/assets/mermaid-4DMBBIKO-CekzuCTz.js +0 -1
- package/dist/assets/play-C7DcCsoO.js +0 -1
- package/dist/assets/react-vega-COx3Ibyn.js +0 -1
- package/dist/assets/readonly-python-code-CEfd-Ppu.js +0 -1
- package/dist/assets/scratchpad-panel-fupP7ZgK.js +0 -1
- package/dist/assets/session-panel-B9dcCqYr.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-DX9rpmwh.js +0 -1
- package/dist/assets/stex-Ccczot4V.js +0 -1
- package/dist/assets/tree-actions-BM_EJr3E.js +0 -1
- package/dist/assets/use-toast-IPAtJGea.js +0 -1
- package/dist/assets/useCellActionButton-D2MPJYfm.js +0 -1
- package/dist/assets/useDeleteCell-vHE9B5l2.js +0 -1
- package/dist/assets/useNotebookActions-BV5iVwE4.js +0 -1
- /package/dist/assets/{Deferred-CP7vq682.js → Deferred-DWBqOhWa.js} +0 -0
- /package/dist/assets/{SSRProvider-CkFAAHXw.js → SSRProvider-BIDQNg9Q.js} +0 -0
- /package/dist/assets/{alert-yTS3WpF4.js → alert-DrHguQlr.js} +0 -0
- /package/dist/assets/{azure-B42ls0Ui.js → azure-DBVzcmvx.js} +0 -0
- /package/dist/assets/{badge-j3NGjqhR.js → badge-DOX1Xxa9.js} +0 -0
- /package/dist/assets/{blob-Bgnx1kuY.js → blob-3_FN0u9S.js} +0 -0
- /package/dist/assets/{bundle.esm-DjhGJy4I.js → bundle.esm-BXIlAZ6T.js} +0 -0
- /package/dist/assets/{card--6HRj4T9.js → card-BFWJLptH.js} +0 -0
- /package/dist/assets/{copy-LK56fFow.js → copy-Ch48HVPK.js} +0 -0
- /package/dist/assets/{defaultLocale-BLUna9fQ.js → defaultLocale-DPBdGRrH.js} +0 -0
- /package/dist/assets/{defaultLocale-DzliDDTm.js → defaultLocale-Lfi0pexn.js} +0 -0
- /package/dist/assets/{dialog-DzC_QCtT.js → dialog-DqOQT_n4.js} +0 -0
- /package/dist/assets/{dist-B1U1kGCR.js → dist-BU26XwgJ.js} +0 -0
- /package/dist/assets/{dist-ChF5Ln9c.js → dist-COs9gIu5.js} +0 -0
- /package/dist/assets/{dist-4ni0fia5.js → dist-DP9Si-4r.js} +0 -0
- /package/dist/assets/{dist-CPczQFlJ.js → dist-DkA__6UI.js} +0 -0
- /package/dist/assets/{emotion-is-prop-valid.esm-C59xfSYt.js → emotion-is-prop-valid.esm-Dangy3Bv.js} +0 -0
- /package/dist/assets/{en-US-Cb8rIK52.js → en-US-C7vnqfgk.js} +0 -0
- /package/dist/assets/{errors-vr57w7Ul.js → errors-iwK4b4VF.js} +0 -0
- /package/dist/assets/{events-CPoJAfgx.js → events-CBm-hwqS.js} +0 -0
- /package/dist/assets/{extends-BiFDv3jB.js → extends-Dqvpuc10.js} +0 -0
- /package/dist/assets/{file-BrdxGLRX.js → file-HTLbeC2b.js} +0 -0
- /package/dist/assets/{file-headphone-BrQspHac.js → file-headphone-B3fuktN0.js} +0 -0
- /package/dist/assets/{github-BKS_2Qwn.js → github-raQvpeuZ.js} +0 -0
- /package/dist/assets/{house-mGK3v0Mm.js → house-D2ldnAB9.js} +0 -0
- /package/dist/assets/{icons-Ol38nIbL.js → icons-8tfAri2V.js} +0 -0
- /package/dist/assets/{image-DQHXdEQn.js → image-BIibSXT6.js} +0 -0
- /package/dist/assets/{isValid-CklTTytn.js → isValid-DdlR4-BY.js} +0 -0
- /package/dist/assets/{kbd-CTUAEnEx.js → kbd-BJB2rf7K.js} +0 -0
- /package/dist/assets/{link-CfEtM3Rl.js → link-CoJxTwWE.js} +0 -0
- /package/dist/assets/{links-D1JoyKTt.js → links-B8WzCnbo.js} +0 -0
- /package/dist/assets/{message-circle-CWm2KnSx.js → message-circle-1YLdnr8A.js} +0 -0
- /package/dist/assets/{micromark-factory-space-BygYYKhs.js → micromark-factory-space-bqhKsQDn.js} +0 -0
- /package/dist/assets/{numbers-C3BAdHZE.js → numbers-mY4EY0yG.js} +0 -0
- /package/dist/assets/{objectWithoutPropertiesLoose-DfWeGRFv.js → objectWithoutPropertiesLoose-DoKw85w0.js} +0 -0
- /package/dist/assets/{ordinal-_nQ2r1qQ.js → ordinal-bISkqI45.js} +0 -0
- /package/dist/assets/{package-Tv6ztuzw.js → package-B8oXOUM-.js} +0 -0
- /package/dist/assets/{paths-D5zczhUD.js → paths-SFhaqGlE.js} +0 -0
- /package/dist/assets/{plus-BgB18UzY.js → plus-CxkHs8QM.js} +0 -0
- /package/dist/assets/{preload-helper-BPPi7vOr.js → preload-helper-DdZsAcJe.js} +0 -0
- /package/dist/assets/{prop-types-DaaA-ptl.js → prop-types-DVDiRdwc.js} +0 -0
- /package/dist/assets/{purify.es-B9KxLTTS.js → purify.es-DvRMX74T.js} +0 -0
- /package/dist/assets/{range-gMGfxVwZ.js → range-Dk7lXDev.js} +0 -0
- /package/dist/assets/{react-icons.esm-BNzu6e7h.js → react-icons.esm--O4lBTlZ.js} +0 -0
- /package/dist/assets/{react-resizable-panels.browser.esm-CV8-hvjx.js → react-resizable-panels.browser.esm-BdtIs0E-.js} +0 -0
- /package/dist/assets/{refresh-ccw-C-n2VFP5.js → refresh-ccw-DLc784Sj.js} +0 -0
- /package/dist/assets/{refresh-cw-DHwG4Mac.js → refresh-cw-a_9k9BK7.js} +0 -0
- /package/dist/assets/{rotate-ccw-CNsAb2VZ.js → rotate-ccw-DoQtGgvU.js} +0 -0
- /package/dist/assets/{save-Clg5dMoP.js → save-DZ5aail6.js} +0 -0
- /package/dist/assets/{semaphore-FlZezxaf.js → semaphore-X3ApuO41.js} +0 -0
- /package/dist/assets/{session-0B5NBztP.js → session-DGdfs0bJ.js} +0 -0
- /package/dist/assets/{settings-DfFe0dWD.js → settings-SnYErNWQ.js} +0 -0
- /package/dist/assets/{sparkles-lWUAsPhp.js → sparkles-CC9Bko6a.js} +0 -0
- /package/dist/assets/{spinner-Bhir8k53.js → spinner-UuZAUjoP.js} +0 -0
- /package/dist/assets/{square-function-uY_yJr5g.js → square-function-blYaQso8.js} +0 -0
- /package/dist/assets/{square-B5xWCt0a.js → square-rACnnz-q.js} +0 -0
- /package/dist/assets/{stex-BGrE-q7N.js → stex-lcoTi-7o.js} +0 -0
- /package/dist/assets/{table-BGPSHfig.js → table-Bgc-inJs.js} +0 -0
- /package/dist/assets/{trash-2-rVklqqFF.js → trash-2-BJLYnZpG.js} +0 -0
- /package/dist/assets/{trash-DqeDe-Ua.js → trash-wVOgGgQw.js} +0 -0
- /package/dist/assets/{triangle-alert-D2p96PEF.js → triangle-alert-CJ0ZIqcz.js} +0 -0
- /package/dist/assets/{types-W8WWuumF.js → types-BYwxXaSY.js} +0 -0
- /package/dist/assets/{useAsyncData-bgszE9F0.js → useAsyncData-Dg8E_bPh.js} +0 -0
- /package/dist/assets/{useDebounce-7xZwVnnu.js → useDebounce-_BZcy6gx.js} +0 -0
- /package/dist/assets/{useDeepCompareMemoize-zUHU--0D.js → useDeepCompareMemoize-CWcgQCbT.js} +0 -0
- /package/dist/assets/{useHotkey-TKvjHf1m.js → useHotkey-B5GI97Mf.js} +0 -0
- /package/dist/assets/{useIframeCapabilities-CcI1zSdn.js → useIframeCapabilities-DPVTppnD.js} +0 -0
- /package/dist/assets/{useTheme-CI2eq4XN.js → useTheme-BrivXfaa.js} +0 -0
- /package/dist/assets/{uuid-e9lSomwA.js → uuid-D_zLHhNi.js} +0 -0
- /package/dist/assets/{workflow-Bm8qF7yj.js → workflow-CgnDnnoN.js} +0 -0
- /package/dist/assets/{youtube-CbdpN8oL.js → youtube-3lRHw8NU.js} +0 -0
package/dist/index.html
CHANGED
|
@@ -66,21 +66,21 @@
|
|
|
66
66
|
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
|
|
67
67
|
<!-- /TODO -->
|
|
68
68
|
<title>{{ title }}</title>
|
|
69
|
-
<script type="module" crossorigin src="./assets/index-
|
|
70
|
-
<link rel="modulepreload" crossorigin href="./assets/preload-helper-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-Cae0svAG.js"></script>
|
|
70
|
+
<link rel="modulepreload" crossorigin href="./assets/preload-helper-DdZsAcJe.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/react-Bj1aDYRI.js">
|
|
73
73
|
<link rel="modulepreload" crossorigin href="./assets/compiler-runtime-B3qBwwSJ.js">
|
|
74
74
|
<link rel="modulepreload" crossorigin href="./assets/jsx-runtime-BqBOg78p.js">
|
|
75
75
|
<link rel="modulepreload" crossorigin href="./assets/useEventListener-DvoEXWke.js">
|
|
76
|
-
<link rel="modulepreload" crossorigin href="./assets/defaultLocale-
|
|
77
|
-
<link rel="modulepreload" crossorigin href="./assets/precisionRound-
|
|
78
|
-
<link rel="modulepreload" crossorigin href="./assets/defaultLocale-
|
|
79
|
-
<link rel="modulepreload" crossorigin href="./assets/vega-loader.browser-
|
|
80
|
-
<link rel="modulepreload" crossorigin href="./assets/utils-
|
|
76
|
+
<link rel="modulepreload" crossorigin href="./assets/defaultLocale-DPBdGRrH.js">
|
|
77
|
+
<link rel="modulepreload" crossorigin href="./assets/precisionRound-NX56vp6K.js">
|
|
78
|
+
<link rel="modulepreload" crossorigin href="./assets/defaultLocale-Lfi0pexn.js">
|
|
79
|
+
<link rel="modulepreload" crossorigin href="./assets/vega-loader.browser-xq8miGHn.js">
|
|
80
|
+
<link rel="modulepreload" crossorigin href="./assets/utils-DQRuLEof.js">
|
|
81
81
|
<link rel="modulepreload" crossorigin href="./assets/clsx-Dz_KRrWq.js">
|
|
82
82
|
<link rel="modulepreload" crossorigin href="./assets/cn-DCUzRj2J.js">
|
|
83
|
-
<link rel="modulepreload" crossorigin href="./assets/badge-
|
|
83
|
+
<link rel="modulepreload" crossorigin href="./assets/badge-DOX1Xxa9.js">
|
|
84
84
|
<link rel="modulepreload" crossorigin href="./assets/button-BbCh-29a.js">
|
|
85
85
|
<link rel="modulepreload" crossorigin href="./assets/react-dom-CSu739Rf.js">
|
|
86
86
|
<link rel="modulepreload" crossorigin href="./assets/fullscreen-eipL3i3Y.js">
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<link rel="modulepreload" crossorigin href="./assets/x-C-6liIBr.js">
|
|
92
92
|
<link rel="modulepreload" crossorigin href="./assets/select-DZcFyKFQ.js">
|
|
93
93
|
<link rel="modulepreload" crossorigin href="./assets/tooltip-DTV9tlSr.js">
|
|
94
|
-
<link rel="modulepreload" crossorigin href="./assets/use-toast-
|
|
94
|
+
<link rel="modulepreload" crossorigin href="./assets/use-toast-9t59MOqR.js">
|
|
95
95
|
<link rel="modulepreload" crossorigin href="./assets/useEvent-D91BmmQi.js">
|
|
96
96
|
<link rel="modulepreload" crossorigin href="./assets/invariant-BUdrueMv.js">
|
|
97
97
|
<link rel="modulepreload" crossorigin href="./assets/isObject-DvLSfCY5.js">
|
|
@@ -99,156 +99,157 @@
|
|
|
99
99
|
<link rel="modulepreload" crossorigin href="./assets/merge-_9WLTEyt.js">
|
|
100
100
|
<link rel="modulepreload" crossorigin href="./assets/zod-H_cgTO0M.js">
|
|
101
101
|
<link rel="modulepreload" crossorigin href="./assets/utils-CvI-39U6.js">
|
|
102
|
-
<link rel="modulepreload" crossorigin href="./assets/Deferred-
|
|
103
|
-
<link rel="modulepreload" crossorigin href="./assets/uuid-
|
|
104
|
-
<link rel="modulepreload" crossorigin href="./assets/DeferredRequestRegistry-
|
|
102
|
+
<link rel="modulepreload" crossorigin href="./assets/Deferred-DWBqOhWa.js">
|
|
103
|
+
<link rel="modulepreload" crossorigin href="./assets/uuid-D_zLHhNi.js">
|
|
104
|
+
<link rel="modulepreload" crossorigin href="./assets/DeferredRequestRegistry-CzVJLtsG.js">
|
|
105
105
|
<link rel="modulepreload" crossorigin href="./assets/constants-DMpttj8Q.js">
|
|
106
|
-
<link rel="modulepreload" crossorigin href="./assets/session-
|
|
107
|
-
<link rel="modulepreload" crossorigin href="./assets/config-
|
|
106
|
+
<link rel="modulepreload" crossorigin href="./assets/session-DGdfs0bJ.js">
|
|
107
|
+
<link rel="modulepreload" crossorigin href="./assets/config-DH1Le_e1.js">
|
|
108
108
|
<link rel="modulepreload" crossorigin href="./assets/requests-DIwGYs0l.js">
|
|
109
109
|
<link rel="modulepreload" crossorigin href="./assets/useLifecycle-DieWOfXE.js">
|
|
110
110
|
<link rel="modulepreload" crossorigin href="./assets/useNonce-DfoVjkkH.js">
|
|
111
|
-
<link rel="modulepreload" crossorigin href="./assets/useTheme-
|
|
111
|
+
<link rel="modulepreload" crossorigin href="./assets/useTheme-BrivXfaa.js">
|
|
112
112
|
<link rel="modulepreload" crossorigin href="./assets/arrays-DYDL-3-i.js">
|
|
113
113
|
<link rel="modulepreload" crossorigin href="./assets/strings-wdPMRf6Z.js">
|
|
114
114
|
<link rel="modulepreload" crossorigin href="./assets/once-DRroIaBz.js">
|
|
115
115
|
<link rel="modulepreload" crossorigin href="./assets/capabilities-A_KhFcGV.js">
|
|
116
116
|
<link rel="modulepreload" crossorigin href="./assets/createReducer-CI9qeK_X.js">
|
|
117
|
-
<link rel="modulepreload" crossorigin href="./assets/paths-
|
|
117
|
+
<link rel="modulepreload" crossorigin href="./assets/paths-SFhaqGlE.js">
|
|
118
118
|
<link rel="modulepreload" crossorigin href="./assets/dist-BrR4M-k3.js">
|
|
119
119
|
<link rel="modulepreload" crossorigin href="./assets/dist-HlsDto3K.js">
|
|
120
120
|
<link rel="modulepreload" crossorigin href="./assets/dist-CHcznzB-.js">
|
|
121
|
-
<link rel="modulepreload" crossorigin href="./assets/dist-
|
|
122
|
-
<link rel="modulepreload" crossorigin href="./assets/dist-
|
|
123
|
-
<link rel="modulepreload" crossorigin href="./assets/dist-
|
|
124
|
-
<link rel="modulepreload" crossorigin href="./assets/dist-
|
|
125
|
-
<link rel="modulepreload" crossorigin href="./assets/dist-
|
|
121
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-BU26XwgJ.js">
|
|
122
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-COs9gIu5.js">
|
|
123
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-BZr6MMV-.js">
|
|
124
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-DCqxOggh.js">
|
|
125
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-DkA__6UI.js">
|
|
126
126
|
<link rel="modulepreload" crossorigin href="./assets/dist-C9ZB41s2.js">
|
|
127
|
-
<link rel="modulepreload" crossorigin href="./assets/stex-
|
|
127
|
+
<link rel="modulepreload" crossorigin href="./assets/stex-lcoTi-7o.js">
|
|
128
128
|
<link rel="modulepreload" crossorigin href="./assets/toDate-B5A0DFEz.js">
|
|
129
|
-
<link rel="modulepreload" crossorigin href="./assets/purify.es-
|
|
129
|
+
<link rel="modulepreload" crossorigin href="./assets/purify.es-DvRMX74T.js">
|
|
130
130
|
<link rel="modulepreload" crossorigin href="./assets/cjs-BRGiG41H.js">
|
|
131
131
|
<link rel="modulepreload" crossorigin href="./assets/isSymbol-BT6B8Bon.js">
|
|
132
132
|
<link rel="modulepreload" crossorigin href="./assets/now-CsYTPAhW.js">
|
|
133
133
|
<link rel="modulepreload" crossorigin href="./assets/debounce-DhnxH9Rh.js">
|
|
134
134
|
<link rel="modulepreload" crossorigin href="./assets/database-zap-kIkTfzTX.js">
|
|
135
135
|
<link rel="modulepreload" crossorigin href="./assets/main-B0OX4z33.js">
|
|
136
|
-
<link rel="modulepreload" crossorigin href="./assets/cells-
|
|
136
|
+
<link rel="modulepreload" crossorigin href="./assets/cells-B1UeqCia.js">
|
|
137
137
|
<link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-DyYDV0HI.js">
|
|
138
|
-
<link rel="modulepreload" crossorigin href="./assets/kbd-
|
|
139
|
-
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-
|
|
138
|
+
<link rel="modulepreload" crossorigin href="./assets/kbd-BJB2rf7K.js">
|
|
139
|
+
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-CKRPRNft.js">
|
|
140
140
|
<link rel="modulepreload" crossorigin href="./assets/alert-dialog-BqFLkbUc.js">
|
|
141
|
-
<link rel="modulepreload" crossorigin href="./assets/dialog-
|
|
142
|
-
<link rel="modulepreload" crossorigin href="./assets/useDebounce-
|
|
143
|
-
<link rel="modulepreload" crossorigin href="./assets/numbers-
|
|
144
|
-
<link rel="modulepreload" crossorigin href="./assets/SSRProvider-
|
|
145
|
-
<link rel="modulepreload" crossorigin href="./assets/context-
|
|
146
|
-
<link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-
|
|
147
|
-
<link rel="modulepreload" crossorigin href="./assets/usePress-
|
|
148
|
-
<link rel="modulepreload" crossorigin href="./assets/input-
|
|
149
|
-
<link rel="modulepreload" crossorigin href="./assets/ImperativeModal-
|
|
150
|
-
<link rel="modulepreload" crossorigin href="./assets/cell-link-
|
|
141
|
+
<link rel="modulepreload" crossorigin href="./assets/dialog-DqOQT_n4.js">
|
|
142
|
+
<link rel="modulepreload" crossorigin href="./assets/useDebounce-_BZcy6gx.js">
|
|
143
|
+
<link rel="modulepreload" crossorigin href="./assets/numbers-mY4EY0yG.js">
|
|
144
|
+
<link rel="modulepreload" crossorigin href="./assets/SSRProvider-BIDQNg9Q.js">
|
|
145
|
+
<link rel="modulepreload" crossorigin href="./assets/context-C1Tm_47t.js">
|
|
146
|
+
<link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-CW4V-fpE.js">
|
|
147
|
+
<link rel="modulepreload" crossorigin href="./assets/usePress-jH2RfcUG.js">
|
|
148
|
+
<link rel="modulepreload" crossorigin href="./assets/input-TSilD7AA.js">
|
|
149
|
+
<link rel="modulepreload" crossorigin href="./assets/ImperativeModal-BeQmePpG.js">
|
|
150
|
+
<link rel="modulepreload" crossorigin href="./assets/cell-link-ChdlswWe.js">
|
|
151
151
|
<link rel="modulepreload" crossorigin href="./assets/multi-map-CUuNtzHt.js">
|
|
152
|
-
<link rel="modulepreload" crossorigin href="./assets/alert-
|
|
152
|
+
<link rel="modulepreload" crossorigin href="./assets/alert-DrHguQlr.js">
|
|
153
153
|
<link rel="modulepreload" crossorigin href="./assets/chevron-right-CG5QYXYk.js">
|
|
154
154
|
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-CR7cnzLX.js">
|
|
155
|
-
<link rel="modulepreload" crossorigin href="./assets/links-
|
|
156
|
-
<link rel="modulepreload" crossorigin href="./assets/useRunCells-
|
|
157
|
-
<link rel="modulepreload" crossorigin href="./assets/copy-
|
|
155
|
+
<link rel="modulepreload" crossorigin href="./assets/links-B8WzCnbo.js">
|
|
156
|
+
<link rel="modulepreload" crossorigin href="./assets/useRunCells-c7zq0oWm.js">
|
|
157
|
+
<link rel="modulepreload" crossorigin href="./assets/copy-Ch48HVPK.js">
|
|
158
158
|
<link rel="modulepreload" crossorigin href="./assets/copy-BwrPA9zQ.js">
|
|
159
|
-
<link rel="modulepreload" crossorigin href="./assets/copy-icon-
|
|
160
|
-
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-
|
|
161
|
-
<link rel="modulepreload" crossorigin href="./assets/datasource-
|
|
162
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
163
|
-
<link rel="modulepreload" crossorigin href="./assets/package-
|
|
164
|
-
<link rel="modulepreload" crossorigin href="./assets/sparkles-
|
|
165
|
-
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-
|
|
166
|
-
<link rel="modulepreload" crossorigin href="./assets/spinner-
|
|
167
|
-
<link rel="modulepreload" crossorigin href="./assets/html-to-image-
|
|
168
|
-
<link rel="modulepreload" crossorigin href="./assets/focus-
|
|
169
|
-
<link rel="modulepreload" crossorigin href="./assets/useAsyncData-
|
|
170
|
-
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-
|
|
171
|
-
<link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-
|
|
172
|
-
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-
|
|
173
|
-
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-
|
|
174
|
-
<link rel="modulepreload" crossorigin href="./assets/command-
|
|
175
|
-
<link rel="modulepreload" crossorigin href="./assets/field-
|
|
159
|
+
<link rel="modulepreload" crossorigin href="./assets/copy-icon-z0dzhmL4.js">
|
|
160
|
+
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-DTHZ0W_b.js">
|
|
161
|
+
<link rel="modulepreload" crossorigin href="./assets/datasource-7l-qg4-b.js">
|
|
162
|
+
<link rel="modulepreload" crossorigin href="./assets/state-Dd_QMTIr.js">
|
|
163
|
+
<link rel="modulepreload" crossorigin href="./assets/package-B8oXOUM-.js">
|
|
164
|
+
<link rel="modulepreload" crossorigin href="./assets/sparkles-CC9Bko6a.js">
|
|
165
|
+
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-BQo8RTib.js">
|
|
166
|
+
<link rel="modulepreload" crossorigin href="./assets/spinner-UuZAUjoP.js">
|
|
167
|
+
<link rel="modulepreload" crossorigin href="./assets/html-to-image-rfnXdqfv.js">
|
|
168
|
+
<link rel="modulepreload" crossorigin href="./assets/focus-C0_hrGnH.js">
|
|
169
|
+
<link rel="modulepreload" crossorigin href="./assets/useAsyncData-Dg8E_bPh.js">
|
|
170
|
+
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-Bv7Emsba.js">
|
|
171
|
+
<link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-bqhKsQDn.js">
|
|
172
|
+
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-CfK7VoEZ.js">
|
|
173
|
+
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-YEl8Z67L.js">
|
|
174
|
+
<link rel="modulepreload" crossorigin href="./assets/command-DUeag2QH.js">
|
|
175
|
+
<link rel="modulepreload" crossorigin href="./assets/field-B4CdIHa9.js">
|
|
176
176
|
<link rel="modulepreload" crossorigin href="./assets/popover-Bz_0Vkyf.js">
|
|
177
|
-
<link rel="modulepreload" crossorigin href="./assets/errors-
|
|
178
|
-
<link rel="modulepreload" crossorigin href="./assets/download-
|
|
179
|
-
<link rel="modulepreload" crossorigin href="./assets/table-
|
|
180
|
-
<link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-
|
|
181
|
-
<link rel="modulepreload" crossorigin href="./assets/error-banner-
|
|
182
|
-
<link rel="modulepreload" crossorigin href="./assets/formats-
|
|
183
|
-
<link rel="modulepreload" crossorigin href="./assets/en-US-
|
|
184
|
-
<link rel="modulepreload" crossorigin href="./assets/isValid-
|
|
185
|
-
<link rel="modulepreload" crossorigin href="./assets/dates-
|
|
177
|
+
<link rel="modulepreload" crossorigin href="./assets/errors-iwK4b4VF.js">
|
|
178
|
+
<link rel="modulepreload" crossorigin href="./assets/download-DcQWg8-m.js">
|
|
179
|
+
<link rel="modulepreload" crossorigin href="./assets/table-Bgc-inJs.js">
|
|
180
|
+
<link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-DPVTppnD.js">
|
|
181
|
+
<link rel="modulepreload" crossorigin href="./assets/error-banner-CLO6LFll.js">
|
|
182
|
+
<link rel="modulepreload" crossorigin href="./assets/formats-DP_z0P-n.js">
|
|
183
|
+
<link rel="modulepreload" crossorigin href="./assets/en-US-C7vnqfgk.js">
|
|
184
|
+
<link rel="modulepreload" crossorigin href="./assets/isValid-DdlR4-BY.js">
|
|
185
|
+
<link rel="modulepreload" crossorigin href="./assets/dates-DS_7IZoI.js">
|
|
186
186
|
<link rel="modulepreload" crossorigin href="./assets/maps-n3GaPJwv.js">
|
|
187
|
-
<link rel="modulepreload" crossorigin href="./assets/extends-
|
|
188
|
-
<link rel="modulepreload" crossorigin href="./assets/emotion-is-prop-valid.esm-
|
|
189
|
-
<link rel="modulepreload" crossorigin href="./assets/useDateFormatter-
|
|
190
|
-
<link rel="modulepreload" crossorigin href="./assets/react-icons.esm
|
|
191
|
-
<link rel="modulepreload" crossorigin href="./assets/RSPContexts-
|
|
187
|
+
<link rel="modulepreload" crossorigin href="./assets/extends-Dqvpuc10.js">
|
|
188
|
+
<link rel="modulepreload" crossorigin href="./assets/emotion-is-prop-valid.esm-Dangy3Bv.js">
|
|
189
|
+
<link rel="modulepreload" crossorigin href="./assets/useDateFormatter-d3yglQmW.js">
|
|
190
|
+
<link rel="modulepreload" crossorigin href="./assets/react-icons.esm--O4lBTlZ.js">
|
|
191
|
+
<link rel="modulepreload" crossorigin href="./assets/RSPContexts-Clr6RnG2.js">
|
|
192
192
|
<link rel="modulepreload" crossorigin href="./assets/table-6NxtGaCm.js">
|
|
193
193
|
<link rel="modulepreload" crossorigin href="./assets/ellipsis-KAhMaCIV.js">
|
|
194
194
|
<link rel="modulepreload" crossorigin href="./assets/external-link-BTNxSavU.js">
|
|
195
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
196
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
197
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
198
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
199
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
195
|
+
<link rel="modulepreload" crossorigin href="./assets/eye-off-BT-KOYV5.js">
|
|
196
|
+
<link rel="modulepreload" crossorigin href="./assets/message-circle-1YLdnr8A.js">
|
|
197
|
+
<link rel="modulepreload" crossorigin href="./assets/plus-CxkHs8QM.js">
|
|
198
|
+
<link rel="modulepreload" crossorigin href="./assets/trash-2-BJLYnZpG.js">
|
|
199
|
+
<link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-BdtIs0E-.js">
|
|
200
|
+
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-B70lHHvX.js">
|
|
200
201
|
<link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-nqk474t8.js">
|
|
201
|
-
<link rel="modulepreload" crossorigin href="./assets/square-function-
|
|
202
|
-
<link rel="modulepreload" crossorigin href="./assets/spec-
|
|
202
|
+
<link rel="modulepreload" crossorigin href="./assets/square-function-blYaQso8.js">
|
|
203
|
+
<link rel="modulepreload" crossorigin href="./assets/spec-D1ptWKg6.js">
|
|
203
204
|
<link rel="modulepreload" crossorigin href="./assets/ellipsis-vertical-CkwWkOQL.js">
|
|
204
|
-
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-
|
|
205
|
-
<link rel="modulepreload" crossorigin href="./assets/tree-actions-
|
|
206
|
-
<link rel="modulepreload" crossorigin href="./assets/components-
|
|
207
|
-
<link rel="modulepreload" crossorigin href="./assets/column-preview-
|
|
208
|
-
<link rel="modulepreload" crossorigin href="./assets/icons-
|
|
209
|
-
<link rel="modulepreload" crossorigin href="./assets/radio-group-
|
|
210
|
-
<link rel="modulepreload" crossorigin href="./assets/floating-outline-
|
|
211
|
-
<link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-
|
|
212
|
-
<link rel="modulepreload" crossorigin href="./assets/esm-
|
|
213
|
-
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-
|
|
214
|
-
<link rel="modulepreload" crossorigin href="./assets/file-headphone-
|
|
215
|
-
<link rel="modulepreload" crossorigin href="./assets/file-
|
|
216
|
-
<link rel="modulepreload" crossorigin href="./assets/image-
|
|
217
|
-
<link rel="modulepreload" crossorigin href="./assets/file-icons-
|
|
218
|
-
<link rel="modulepreload" crossorigin href="./assets/switch-
|
|
219
|
-
<link rel="modulepreload" crossorigin href="./assets/events-
|
|
220
|
-
<link rel="modulepreload" crossorigin href="./assets/globals-
|
|
221
|
-
<link rel="modulepreload" crossorigin href="./assets/share-
|
|
222
|
-
<link rel="modulepreload" crossorigin href="./assets/blob-
|
|
205
|
+
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-a_9k9BK7.js">
|
|
206
|
+
<link rel="modulepreload" crossorigin href="./assets/tree-actions-DfrTuUnZ.js">
|
|
207
|
+
<link rel="modulepreload" crossorigin href="./assets/components-oTA8dVbr.js">
|
|
208
|
+
<link rel="modulepreload" crossorigin href="./assets/column-preview-BIhZkwx8.js">
|
|
209
|
+
<link rel="modulepreload" crossorigin href="./assets/icons-8tfAri2V.js">
|
|
210
|
+
<link rel="modulepreload" crossorigin href="./assets/radio-group-B4UJ7sCK.js">
|
|
211
|
+
<link rel="modulepreload" crossorigin href="./assets/floating-outline-BBTN16Pi.js">
|
|
212
|
+
<link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-DoKw85w0.js">
|
|
213
|
+
<link rel="modulepreload" crossorigin href="./assets/esm-Cb2bnV6o.js">
|
|
214
|
+
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-DRB4Oujr.js">
|
|
215
|
+
<link rel="modulepreload" crossorigin href="./assets/file-headphone-B3fuktN0.js">
|
|
216
|
+
<link rel="modulepreload" crossorigin href="./assets/file-HTLbeC2b.js">
|
|
217
|
+
<link rel="modulepreload" crossorigin href="./assets/image-BIibSXT6.js">
|
|
218
|
+
<link rel="modulepreload" crossorigin href="./assets/file-icons-8bgrYNC0.js">
|
|
219
|
+
<link rel="modulepreload" crossorigin href="./assets/switch-NmKFCQsT.js">
|
|
220
|
+
<link rel="modulepreload" crossorigin href="./assets/events-CBm-hwqS.js">
|
|
221
|
+
<link rel="modulepreload" crossorigin href="./assets/globals-LRz1TwrD.js">
|
|
222
|
+
<link rel="modulepreload" crossorigin href="./assets/share-DQLjaPiK.js">
|
|
223
|
+
<link rel="modulepreload" crossorigin href="./assets/blob-3_FN0u9S.js">
|
|
223
224
|
<link rel="modulepreload" crossorigin href="./assets/memoize-Tp7rARFe.js">
|
|
224
225
|
<link rel="modulepreload" crossorigin href="./assets/get-C-qh_et5.js">
|
|
225
226
|
<link rel="modulepreload" crossorigin href="./assets/_baseSet-CxV9N1bc.js">
|
|
226
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
227
|
+
<link rel="modulepreload" crossorigin href="./assets/state-DlSkDnym.js">
|
|
227
228
|
<link rel="modulepreload" crossorigin href="./assets/label-xHqFtfdz.js">
|
|
228
|
-
<link rel="modulepreload" crossorigin href="./assets/textarea-
|
|
229
|
-
<link rel="modulepreload" crossorigin href="./assets/refresh-ccw-
|
|
230
|
-
<link rel="modulepreload" crossorigin href="./assets/form-
|
|
231
|
-
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-
|
|
232
|
-
<link rel="modulepreload" crossorigin href="./assets/useBoolean-
|
|
233
|
-
<link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-
|
|
234
|
-
<link rel="modulepreload" crossorigin href="./assets/types-
|
|
235
|
-
<link rel="modulepreload" crossorigin href="./assets/semaphore-
|
|
236
|
-
<link rel="modulepreload" crossorigin href="./assets/fileToBase64-
|
|
237
|
-
<link rel="modulepreload" crossorigin href="./assets/pathUtils-
|
|
238
|
-
<link rel="modulepreload" crossorigin href="./assets/prop-types-
|
|
239
|
-
<link rel="modulepreload" crossorigin href="./assets/es-
|
|
229
|
+
<link rel="modulepreload" crossorigin href="./assets/textarea-DsHy664W.js">
|
|
230
|
+
<link rel="modulepreload" crossorigin href="./assets/refresh-ccw-DLc784Sj.js">
|
|
231
|
+
<link rel="modulepreload" crossorigin href="./assets/form-Bq0lMUxv.js">
|
|
232
|
+
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-BTgMpqTK.js">
|
|
233
|
+
<link rel="modulepreload" crossorigin href="./assets/useBoolean-DElMi9Nd.js">
|
|
234
|
+
<link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-CWcgQCbT.js">
|
|
235
|
+
<link rel="modulepreload" crossorigin href="./assets/types-BYwxXaSY.js">
|
|
236
|
+
<link rel="modulepreload" crossorigin href="./assets/semaphore-X3ApuO41.js">
|
|
237
|
+
<link rel="modulepreload" crossorigin href="./assets/fileToBase64-BeYUTUzO.js">
|
|
238
|
+
<link rel="modulepreload" crossorigin href="./assets/pathUtils-vgBYIo5B.js">
|
|
239
|
+
<link rel="modulepreload" crossorigin href="./assets/prop-types-DVDiRdwc.js">
|
|
240
|
+
<link rel="modulepreload" crossorigin href="./assets/es-au8YY-8E.js">
|
|
240
241
|
<link rel="modulepreload" crossorigin href="./assets/hasIn-DiS_ryrS.js">
|
|
241
242
|
<link rel="modulepreload" crossorigin href="./assets/flatten-Dl4V1ub3.js">
|
|
242
243
|
<link rel="modulepreload" crossorigin href="./assets/pick-DqWUNly1.js">
|
|
243
244
|
<link rel="modulepreload" crossorigin href="./assets/code-xml-CZN6vNxu.js">
|
|
244
|
-
<link rel="modulepreload" crossorigin href="./assets/house-
|
|
245
|
-
<link rel="modulepreload" crossorigin href="./assets/square-
|
|
246
|
-
<link rel="modulepreload" crossorigin href="./assets/triangle-alert-
|
|
247
|
-
<link rel="modulepreload" crossorigin href="./assets/bundle.esm-
|
|
248
|
-
<link rel="stylesheet" crossorigin href="./assets/cells-
|
|
245
|
+
<link rel="modulepreload" crossorigin href="./assets/house-D2ldnAB9.js">
|
|
246
|
+
<link rel="modulepreload" crossorigin href="./assets/square-rACnnz-q.js">
|
|
247
|
+
<link rel="modulepreload" crossorigin href="./assets/triangle-alert-CJ0ZIqcz.js">
|
|
248
|
+
<link rel="modulepreload" crossorigin href="./assets/bundle.esm-BXIlAZ6T.js">
|
|
249
|
+
<link rel="stylesheet" crossorigin href="./assets/cells-BSWdJzbh.css">
|
|
249
250
|
<link rel="stylesheet" crossorigin href="./assets/markdown-renderer-DdDKmWlR.css">
|
|
250
251
|
<link rel="stylesheet" crossorigin href="./assets/JsonOutput-B7vuddcd.css">
|
|
251
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
252
|
+
<link rel="stylesheet" crossorigin href="./assets/index-DsKy-8bh.css">
|
|
252
253
|
</head>
|
|
253
254
|
<body>
|
|
254
255
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marimo-team/frontend",
|
|
3
|
-
"version": "0.23.10-
|
|
3
|
+
"version": "0.23.10-dev20",
|
|
4
4
|
"main": "dist/main.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@marimo-team/codemirror-ai": "^0.3.7",
|
|
58
58
|
"@marimo-team/codemirror-languageserver": "^1.16.12",
|
|
59
59
|
"@marimo-team/codemirror-mcp": "^0.1.5",
|
|
60
|
-
"@marimo-team/codemirror-sql": "^0.2.
|
|
60
|
+
"@marimo-team/codemirror-sql": "^0.2.8",
|
|
61
61
|
"@marimo-team/llm-info": "workspace:*",
|
|
62
62
|
"@marimo-team/marimo-api": "workspace:*",
|
|
63
63
|
"@marimo-team/react-slotz": "^0.2.0",
|
|
@@ -5,8 +5,8 @@ import type {
|
|
|
5
5
|
RowSelectionState,
|
|
6
6
|
SortingState,
|
|
7
7
|
} from "@tanstack/react-table";
|
|
8
|
-
import { fireEvent, render, screen, within } from "@testing-library/react";
|
|
9
|
-
import { describe, expect, it, vi } from "vitest";
|
|
8
|
+
import { act, fireEvent, render, screen, within } from "@testing-library/react";
|
|
9
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
10
10
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
11
11
|
import { DataTable } from "../data-table";
|
|
12
12
|
|
|
@@ -16,6 +16,12 @@ interface TestData {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
describe("DataTable", () => {
|
|
19
|
+
// Restore real timers unconditionally so a failed assertion in a
|
|
20
|
+
// fake-timer test can't leak fake timers into later tests.
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
vi.useRealTimers();
|
|
23
|
+
});
|
|
24
|
+
|
|
19
25
|
it("should maintain selection state when remounted", () => {
|
|
20
26
|
const mockOnRowSelectionChange = vi.fn();
|
|
21
27
|
const testData: TestData[] = [
|
|
@@ -63,17 +69,15 @@ describe("DataTable", () => {
|
|
|
63
69
|
expect(commonProps.rowSelection).toEqual(initialRowSelection);
|
|
64
70
|
});
|
|
65
71
|
|
|
66
|
-
it("
|
|
72
|
+
it("shows the hoverTemplate text as a styled tooltip on hover", async () => {
|
|
73
|
+
vi.useFakeTimers();
|
|
67
74
|
interface RowData {
|
|
68
75
|
id: number;
|
|
69
76
|
first: string;
|
|
70
77
|
last: string;
|
|
71
78
|
}
|
|
72
79
|
|
|
73
|
-
const testData: RowData[] = [
|
|
74
|
-
{ id: 1, first: "Michael", last: "Scott" },
|
|
75
|
-
{ id: 2, first: "Jim", last: "Halpert" },
|
|
76
|
-
];
|
|
80
|
+
const testData: RowData[] = [{ id: 1, first: "Michael", last: "Scott" }];
|
|
77
81
|
|
|
78
82
|
const columns: ColumnDef<RowData>[] = [
|
|
79
83
|
{ accessorKey: "first", header: "First" },
|
|
@@ -86,7 +90,7 @@ describe("DataTable", () => {
|
|
|
86
90
|
data={testData}
|
|
87
91
|
columns={columns}
|
|
88
92
|
selection={null}
|
|
89
|
-
totalRows={
|
|
93
|
+
totalRows={1}
|
|
90
94
|
totalColumns={2}
|
|
91
95
|
pagination={false}
|
|
92
96
|
hoverTemplate={"{{first}} {{last}}"}
|
|
@@ -94,11 +98,149 @@ describe("DataTable", () => {
|
|
|
94
98
|
</TooltipProvider>,
|
|
95
99
|
);
|
|
96
100
|
|
|
97
|
-
// Grab all rows and assert title attribute computed from template
|
|
98
101
|
const rows = screen.getAllByRole("row");
|
|
99
|
-
//
|
|
100
|
-
expect(rows[1]).toHaveAttribute("title"
|
|
101
|
-
|
|
102
|
+
// Native title is gone; hover text now comes from the styled tooltip.
|
|
103
|
+
expect(rows[1]).not.toHaveAttribute("title");
|
|
104
|
+
|
|
105
|
+
const cell = within(rows[1]).getAllByRole("cell")[0];
|
|
106
|
+
fireEvent.mouseOver(cell, { buttons: 0 });
|
|
107
|
+
act(() => {
|
|
108
|
+
vi.advanceTimersByTime(400);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// Radix renders the content twice (visible + a11y-hidden), so match all.
|
|
112
|
+
expect(screen.getAllByText("Michael Scott").length).toBeGreaterThan(0);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it("shows per-cell hover text from cellHoverTexts on hover", () => {
|
|
116
|
+
vi.useFakeTimers();
|
|
117
|
+
const testData: TestData[] = [{ id: 1, name: "Test 1" }];
|
|
118
|
+
const columns: ColumnDef<TestData>[] = [
|
|
119
|
+
{ id: "name", accessorKey: "name", header: "Name" },
|
|
120
|
+
];
|
|
121
|
+
|
|
122
|
+
render(
|
|
123
|
+
<TooltipProvider>
|
|
124
|
+
<DataTable
|
|
125
|
+
data={testData}
|
|
126
|
+
columns={columns}
|
|
127
|
+
selection={null}
|
|
128
|
+
totalRows={1}
|
|
129
|
+
totalColumns={1}
|
|
130
|
+
pagination={false}
|
|
131
|
+
cellHoverTexts={{ "0": { name: "per-cell tip" } }}
|
|
132
|
+
/>
|
|
133
|
+
</TooltipProvider>,
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
const cell = within(screen.getAllByRole("row")[1]).getByRole("cell");
|
|
137
|
+
fireEvent.mouseOver(cell, { buttons: 0 });
|
|
138
|
+
act(() => {
|
|
139
|
+
vi.advanceTimersByTime(400);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
expect(screen.getAllByText("per-cell tip").length).toBeGreaterThan(0);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("links the focused cell to the tooltip content for assistive tech", () => {
|
|
146
|
+
const testData: TestData[] = [{ id: 1, name: "Test 1" }];
|
|
147
|
+
const columns: ColumnDef<TestData>[] = [
|
|
148
|
+
{ id: "name", accessorKey: "name", header: "Name" },
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
render(
|
|
152
|
+
<TooltipProvider>
|
|
153
|
+
<DataTable
|
|
154
|
+
data={testData}
|
|
155
|
+
columns={columns}
|
|
156
|
+
selection={null}
|
|
157
|
+
totalRows={1}
|
|
158
|
+
totalColumns={1}
|
|
159
|
+
pagination={false}
|
|
160
|
+
cellHoverTexts={{ "0": { name: "focus tip" } }}
|
|
161
|
+
/>
|
|
162
|
+
</TooltipProvider>,
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
const cell = within(screen.getAllByRole("row")[1]).getByRole("cell");
|
|
166
|
+
fireEvent.focus(cell);
|
|
167
|
+
|
|
168
|
+
const describedBy = cell.getAttribute("aria-describedby");
|
|
169
|
+
expect(describedBy).toBeTruthy();
|
|
170
|
+
expect(document.getElementById(describedBy as string)).toHaveTextContent(
|
|
171
|
+
"focus tip",
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
fireEvent.blur(cell);
|
|
175
|
+
expect(cell).not.toHaveAttribute("aria-describedby");
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it("does not show a tooltip on pointer-induced focus", () => {
|
|
179
|
+
const testData: TestData[] = [{ id: 1, name: "Test 1" }];
|
|
180
|
+
const columns: ColumnDef<TestData>[] = [
|
|
181
|
+
{ id: "name", accessorKey: "name", header: "Name" },
|
|
182
|
+
];
|
|
183
|
+
|
|
184
|
+
render(
|
|
185
|
+
<TooltipProvider>
|
|
186
|
+
<DataTable
|
|
187
|
+
data={testData}
|
|
188
|
+
columns={columns}
|
|
189
|
+
selection={null}
|
|
190
|
+
totalRows={1}
|
|
191
|
+
totalColumns={1}
|
|
192
|
+
pagination={false}
|
|
193
|
+
cellHoverTexts={{ "0": { name: "click tip" } }}
|
|
194
|
+
/>
|
|
195
|
+
</TooltipProvider>,
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
const cell = within(screen.getAllByRole("row")[1]).getByRole("cell");
|
|
199
|
+
// A click focuses the cell; the resulting focus must not show a tooltip.
|
|
200
|
+
fireEvent.mouseDown(cell);
|
|
201
|
+
fireEvent.focus(cell);
|
|
202
|
+
|
|
203
|
+
expect(cell).not.toHaveAttribute("aria-describedby");
|
|
204
|
+
expect(screen.queryByText("click tip")).toBeNull();
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
it("does not let a pending hover timer overwrite a focus tooltip", () => {
|
|
208
|
+
vi.useFakeTimers();
|
|
209
|
+
interface RowData {
|
|
210
|
+
id: number;
|
|
211
|
+
a: string;
|
|
212
|
+
b: string;
|
|
213
|
+
}
|
|
214
|
+
const testData: RowData[] = [{ id: 1, a: "a", b: "b" }];
|
|
215
|
+
const columns: ColumnDef<RowData>[] = [
|
|
216
|
+
{ id: "a", accessorKey: "a", header: "A" },
|
|
217
|
+
{ id: "b", accessorKey: "b", header: "B" },
|
|
218
|
+
];
|
|
219
|
+
|
|
220
|
+
render(
|
|
221
|
+
<TooltipProvider>
|
|
222
|
+
<DataTable
|
|
223
|
+
data={testData}
|
|
224
|
+
columns={columns}
|
|
225
|
+
selection={null}
|
|
226
|
+
totalRows={1}
|
|
227
|
+
totalColumns={2}
|
|
228
|
+
pagination={false}
|
|
229
|
+
cellHoverTexts={{ "0": { a: "hover A", b: "focus B" } }}
|
|
230
|
+
/>
|
|
231
|
+
</TooltipProvider>,
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
const cells = within(screen.getAllByRole("row")[1]).getAllByRole("cell");
|
|
235
|
+
// Start a pending hover-show on cell A, then focus cell B before it fires.
|
|
236
|
+
fireEvent.mouseOver(cells[0], { buttons: 0 });
|
|
237
|
+
fireEvent.focus(cells[1]);
|
|
238
|
+
act(() => {
|
|
239
|
+
vi.advanceTimersByTime(400);
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
expect(screen.getAllByText("focus B").length).toBeGreaterThan(0);
|
|
243
|
+
expect(screen.queryByText("hover A")).toBeNull();
|
|
102
244
|
});
|
|
103
245
|
|
|
104
246
|
it("does not virtualize small datasets without pagination", () => {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import type { Cell } from "@tanstack/react-table";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { applyHoverTemplate, computeCellTooltipContent } from "../content";
|
|
5
|
+
|
|
6
|
+
function fakeCell(columnId: string, value: unknown, hoverTitle?: string) {
|
|
7
|
+
return {
|
|
8
|
+
column: { id: columnId },
|
|
9
|
+
getValue: () => value,
|
|
10
|
+
getHoverTitle: () => hoverTitle,
|
|
11
|
+
} as unknown as Cell<unknown, unknown>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
describe("applyHoverTemplate", () => {
|
|
15
|
+
it("substitutes column placeholders", () => {
|
|
16
|
+
const cells = [fakeCell("first", "Michael"), fakeCell("last", "Scott")];
|
|
17
|
+
expect(applyHoverTemplate("{{first}} {{last}}", cells)).toBe(
|
|
18
|
+
"Michael Scott",
|
|
19
|
+
);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it("renders nulls as empty strings", () => {
|
|
23
|
+
const cells = [fakeCell("a", null)];
|
|
24
|
+
expect(applyHoverTemplate("[{{a}}]", cells)).toBe("[]");
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it("leaves unknown placeholders intact", () => {
|
|
28
|
+
expect(applyHoverTemplate("{{missing}}", [fakeCell("a", 1)])).toBe(
|
|
29
|
+
"{{missing}}",
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
describe("computeCellTooltipContent", () => {
|
|
35
|
+
it("prefers cell-level hover title", () => {
|
|
36
|
+
const cell = fakeCell("a", 1, "cell text");
|
|
37
|
+
expect(computeCellTooltipContent(cell, "{{a}}")).toBe("cell text");
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("falls back to row template when no cell title", () => {
|
|
41
|
+
const cell = {
|
|
42
|
+
column: { id: "first" },
|
|
43
|
+
getValue: () => "X",
|
|
44
|
+
getHoverTitle: () => undefined,
|
|
45
|
+
row: {
|
|
46
|
+
getVisibleCells: () => [
|
|
47
|
+
fakeCell("first", "Jim"),
|
|
48
|
+
fakeCell("last", "Halpert"),
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
} as unknown as Cell<unknown, unknown>;
|
|
52
|
+
expect(computeCellTooltipContent(cell, "{{first}} {{last}}")).toBe(
|
|
53
|
+
"Jim Halpert",
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it("returns undefined with no title and no template", () => {
|
|
58
|
+
expect(computeCellTooltipContent(fakeCell("a", 1), null)).toBeUndefined();
|
|
59
|
+
});
|
|
60
|
+
});
|