@marimo-team/frontend 0.21.2-dev93 → 0.21.2-dev95

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.
Files changed (533) hide show
  1. package/dist/assets/{CellStatus-BK7h5iOz.js → CellStatus-CjuKStpl.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-DoChluQ-.js → ConnectedDataExplorerComponent-BQ2JgaJh.js} +1 -1
  3. package/dist/assets/JsonOutput-B3ENPE9s.js +49 -0
  4. package/dist/assets/LazyAnyLanguageCodeMirror-JSMdoajI.js +2 -0
  5. package/dist/assets/{MarimoErrorOutput-_E60QXVt.js → MarimoErrorOutput-C3dgyHB-.js} +1 -1
  6. package/dist/assets/{RenderHTML-g5EDdnnD.js → RenderHTML-BOchBzK-.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-BnaP9hSr.js → add-cell-with-ai-CZC0nS0L.js} +1 -1
  8. package/dist/assets/{add-connection-dialog-06NpHq00.js → add-connection-dialog-BZVb5NEt.js} +1 -1
  9. package/dist/assets/{agent-panel-DJ5aXdHi.js → agent-panel-CYK_uoV9.js} +1 -1
  10. package/dist/assets/{ai-model-dropdown-jU9ynWdH.js → ai-model-dropdown-ZW2lUu_0.js} +4 -4
  11. package/dist/assets/{any-language-editor-DlxN1l0x.js → any-language-editor-CjpOiyIQ.js} +1 -1
  12. package/dist/assets/apl-ezh0ScS-.js +1 -0
  13. package/dist/assets/{app-config-button-DOB3JPAf.js → app-config-button-BAtDNUSt.js} +1 -1
  14. package/dist/assets/{arc-CjAURx94.js → arc-CBXXHTae.js} +1 -1
  15. package/dist/assets/{architecture-7HQA4BMR-Dq4Prhq1.js → architecture-7HQA4BMR-CmWAZjSN.js} +1 -1
  16. package/dist/assets/{architectureDiagram-VXUJARFQ-Diujowxv.js → architectureDiagram-VXUJARFQ-D9P34c01.js} +1 -1
  17. package/dist/assets/asciiarmor-DBqyln4y.js +1 -0
  18. package/dist/assets/asn1-C9Hie9a5.js +1 -0
  19. package/dist/assets/{blockDiagram-VD42YOAC-PW2IHpUp.js → blockDiagram-VD42YOAC-C0Bfw4sD.js} +1 -1
  20. package/dist/assets/brainfuck-BDNU41Mw.js +1 -0
  21. package/dist/assets/{c4Diagram-YG6GDRKO-EGZ1a-_C.js → c4Diagram-YG6GDRKO-D706031P.js} +1 -1
  22. package/dist/assets/{cache-panel-B5VFQG8a.js → cache-panel-DGBa8dcc.js} +1 -1
  23. package/dist/assets/{cell-editor-C3ucNXHM.js → cell-editor-D7Fsayye.js} +6 -6
  24. package/dist/assets/{cell-link-5GTb1oDP.js → cell-link-Rcz-LPKa.js} +1 -1
  25. package/dist/assets/{cells-CB6BZwqi.js → cells-rqCJr5Ib.js} +4 -4
  26. package/dist/assets/channel-CuSIY3DL.js +1 -0
  27. package/dist/assets/{chat-display-OCgUTnJ_.js → chat-display-e8OUH4kz.js} +1 -1
  28. package/dist/assets/{chat-panel-CZSMpH_d.js → chat-panel-CrtglFkA.js} +1 -1
  29. package/dist/assets/{chat-ui-XL_YuGzG.js → chat-ui-DL8QYPrv.js} +1 -1
  30. package/dist/assets/{chunk-4BX2VUAB-DKzzWsJ2.js → chunk-4BX2VUAB-BnurtY5R.js} +1 -1
  31. package/dist/assets/chunk-55IACEB6-KvSJ_UGg.js +1 -0
  32. package/dist/assets/{chunk-5FQGJX7Z-CBznRPn1.js → chunk-5FQGJX7Z-BMCEQJ02.js} +2 -2
  33. package/dist/assets/{chunk-ABZYJK2D-DQq3dMBH.js → chunk-ABZYJK2D-B6ZuiRXR.js} +3 -3
  34. package/dist/assets/{chunk-ATLVNIR6-C0Tlb9fb.js → chunk-ATLVNIR6-BQvP6gy2.js} +1 -1
  35. package/dist/assets/{chunk-B4BG7PRW-DvGerJSs.js → chunk-B4BG7PRW-1uIBV02j.js} +1 -1
  36. package/dist/assets/{chunk-CVBHYZKI-DLwi7nxp.js → chunk-CVBHYZKI-CsebuiSO.js} +1 -1
  37. package/dist/assets/{chunk-DI55MBZ5-LtpZlQqe.js → chunk-DI55MBZ5-DW6FcyIx.js} +1 -1
  38. package/dist/assets/{chunk-EXTU4WIE-Bof-JwJJ.js → chunk-EXTU4WIE-BtBP0dYe.js} +1 -1
  39. package/dist/assets/{chunk-FMBD7UC4-D0M7n-oo.js → chunk-FMBD7UC4-CQFtReAu.js} +1 -1
  40. package/dist/assets/{chunk-HN2XXSSU-Cieu13Ce.js → chunk-HN2XXSSU-Bw_9WyjM.js} +1 -1
  41. package/dist/assets/{chunk-JA3XYJ7Z-D945qKHP.js → chunk-JA3XYJ7Z-BrccaYVb.js} +1 -1
  42. package/dist/assets/{chunk-JZLCHNYA-CW-snA50.js → chunk-JZLCHNYA-B5-oPszI.js} +1 -1
  43. package/dist/assets/{chunk-MI3HLSF2-DBLE7N5q.js → chunk-MI3HLSF2-Csy17Fj5.js} +1 -1
  44. package/dist/assets/{chunk-N4CR4FBY-Bq1DDSa-.js → chunk-N4CR4FBY-o1rZ_5CM.js} +2 -2
  45. package/dist/assets/{chunk-QN33PNHL-OiEru3iu.js → chunk-QN33PNHL-BTg-I0Lr.js} +1 -1
  46. package/dist/assets/{chunk-QXUST7PY-D-eZpBLp.js → chunk-QXUST7PY-bjTU5DnU.js} +1 -1
  47. package/dist/assets/{chunk-QZHKN3VN-it7r150M.js → chunk-QZHKN3VN-CcDZrR9S.js} +1 -1
  48. package/dist/assets/{chunk-S3R3BYOJ-snr-cjrg.js → chunk-S3R3BYOJ-CgBZoVQC.js} +1 -1
  49. package/dist/assets/{chunk-TZMSLE5B-A7doILof.js → chunk-TZMSLE5B-Cokc9CbN.js} +1 -1
  50. package/dist/assets/classDiagram-2ON5EDUG-DbS0KcRN.js +1 -0
  51. package/dist/assets/classDiagram-v2-WZHVMYZB-DndbLyhC.js +1 -0
  52. package/dist/assets/{clike-Db5sDcCN.js → clike-B5Yp94w5.js} +1 -1
  53. package/dist/assets/clojure-DnkK3bSc.js +1 -0
  54. package/dist/assets/cmake-BnWrJdTV.js +1 -0
  55. package/dist/assets/cobol-HBrO1JaF.js +1 -0
  56. package/dist/assets/{code-block-37QAKDTI-DvyGxfvM.js → code-block-37QAKDTI-DuL2XEdk.js} +1 -1
  57. package/dist/assets/coffeescript-CRPuDhgD.js +1 -0
  58. package/dist/assets/column-preview-D3iW4pG3.js +1 -0
  59. package/dist/assets/command-palette--KLv_491.js +1 -0
  60. package/dist/assets/{common-DtPa7IRN.js → common-BA29Ha73.js} +1 -1
  61. package/dist/assets/commonlisp-Da4KcekY.js +1 -0
  62. package/dist/assets/{components-CkVFme50.js → components-4vKMd4ot.js} +1 -1
  63. package/dist/assets/{components-DvdoEGqb.js → components-BEowaI9j.js} +1 -1
  64. package/dist/assets/{cose-bilkent-S5V4N54A-D-WJ9umo.js → cose-bilkent-S5V4N54A-Be717YAt.js} +1 -1
  65. package/dist/assets/crystal-DSapLTsa.js +1 -0
  66. package/dist/assets/{css-DPSOOi60.js → css-B68S0me4.js} +1 -1
  67. package/dist/assets/cypher-xFGoEou9.js +1 -0
  68. package/dist/assets/d-DgvhEIBQ.js +1 -0
  69. package/dist/assets/{dagre-6UL2VRFP-DTq5bGOP.js → dagre-6UL2VRFP-B59JWKbq.js} +1 -1
  70. package/dist/assets/{data-grid-overlay-editor-CHu2p5GE.js → data-grid-overlay-editor-DamrGxN0.js} +1 -1
  71. package/dist/assets/{datasource-DLb0mhjX.js → datasource-CNQ-RUAj.js} +1 -1
  72. package/dist/assets/{dependency-graph-panel-Cw_SH35L.js → dependency-graph-panel-DdmW6qbG.js} +1 -1
  73. package/dist/assets/{diagram-PSM6KHXK-BqAwM2y1.js → diagram-PSM6KHXK-BJLd-oHa.js} +1 -1
  74. package/dist/assets/{diagram-QEK2KX5R-DztSlumV.js → diagram-QEK2KX5R-CkExI9v6.js} +1 -1
  75. package/dist/assets/{diagram-S2PKOQOG-BO-Bgy9C.js → diagram-S2PKOQOG-CcSdTiNu.js} +1 -1
  76. package/dist/assets/diff-_ncWAuCI.js +1 -0
  77. package/dist/assets/{dist-MQHYjtR7.js → dist-6KyCn6Yw.js} +1 -1
  78. package/dist/assets/dist-B7wIIgWR.js +1 -0
  79. package/dist/assets/{dist-DNyNpg3q.js → dist-BUpyuEX0.js} +1 -1
  80. package/dist/assets/{dist-IPnWHvYB.js → dist-CBgLdkFP.js} +1 -1
  81. package/dist/assets/{dist-DuphnOKT.js → dist-CM-GQF_B.js} +1 -1
  82. package/dist/assets/{dist-dfW2BBOD.js → dist-CMQPYsF1.js} +1 -1
  83. package/dist/assets/{dist-D3ihB3sj.js → dist-CP_yTjWJ.js} +1 -1
  84. package/dist/assets/{dist-DZjGkR_B.js → dist-ChobCyDf.js} +1 -1
  85. package/dist/assets/{dist-CCK5zpAZ.js → dist-CkoNJPH1.js} +1 -1
  86. package/dist/assets/dist-CwTov7Od.js +1 -0
  87. package/dist/assets/dist-Dvykkmxn.js +1 -0
  88. package/dist/assets/{dist-CdGO5vNJ.js → dist-GuxhVbd_.js} +1 -1
  89. package/dist/assets/dist-Rp2beqEP.js +1 -0
  90. package/dist/assets/{dist-krLK0lDb.js → dist-clhpO3Fy.js} +1 -1
  91. package/dist/assets/{dist-j3bN-KSq.js → dist-np22jopU.js} +1 -1
  92. package/dist/assets/{dockerfile-DmM_Yk21.js → dockerfile-C7lIBgaY.js} +1 -1
  93. package/dist/assets/{documentation-panel-CVENBy0y.js → documentation-panel-Ds4_1YLs.js} +1 -1
  94. package/dist/assets/{download-fIkRh5FE.js → download-Xq3GOYNm.js} +1 -1
  95. package/dist/assets/dtd-BnBIn3kr.js +1 -0
  96. package/dist/assets/dylan-CkGqQmFw.js +1 -0
  97. package/dist/assets/ecl-CFTIHpsV.js +1 -0
  98. package/dist/assets/{edit-page-DIElHN4M.js → edit-page-Ndz_JUn3.js} +7 -7
  99. package/dist/assets/eiffel-DqSKoxJh.js +1 -0
  100. package/dist/assets/elm-dL9c1n0U.js +1 -0
  101. package/dist/assets/{erDiagram-Q2GNP2WA-D1Ic9upA.js → erDiagram-Q2GNP2WA-Dna-Ewi8.js} +1 -1
  102. package/dist/assets/erlang-ZIYI48gw.js +1 -0
  103. package/dist/assets/{error-panel-BTeDvE3v.js → error-panel-Ck-kR4P7.js} +1 -1
  104. package/dist/assets/{esm-CIopaDEz.js → esm-DpxW9DrV.js} +1 -1
  105. package/dist/assets/factor-CDbckATe.js +1 -0
  106. package/dist/assets/{factor-Di_n0Vcb.js → factor-PbpmJuj6.js} +1 -1
  107. package/dist/assets/{file-explorer-panel-DODubmKz.js → file-explorer-panel-SngcF2zd.js} +1 -1
  108. package/dist/assets/{file-icons-ou1yo5n5.js → file-icons-CGVD9eMg.js} +1 -1
  109. package/dist/assets/{floating-outline-DjbA1Cb1.js → floating-outline-CUurMy_Y.js} +1 -1
  110. package/dist/assets/{flowDiagram-NV44I4VS-CxgTw53Z.js → flowDiagram-NV44I4VS-Dc9Bqoz8.js} +1 -1
  111. package/dist/assets/{focus-CyfmlP3o.js → focus-Dujsd1jO.js} +1 -1
  112. package/dist/assets/form-rW9z_hZz.js +2 -0
  113. package/dist/assets/forth-ClT6YoKq.js +1 -0
  114. package/dist/assets/fortran-D3wR_E-8.js +1 -0
  115. package/dist/assets/{gallery-page-BCZ4bZb-.js → gallery-page-DoDtzAVy.js} +1 -1
  116. package/dist/assets/{ganttDiagram-JELNMOA3-D8OMpn2f.js → ganttDiagram-JELNMOA3-Dhw_2tSP.js} +1 -1
  117. package/dist/assets/gas-_ShnzaTM.js +1 -0
  118. package/dist/assets/gherkin-LsHtc0Ns.js +1 -0
  119. package/dist/assets/{gitGraph-G5XIXVHT-DMrrHvz1.js → gitGraph-G5XIXVHT-1x5Miucn.js} +1 -1
  120. package/dist/assets/{gitGraphDiagram-V2S2FVAM-C_SHiNz4.js → gitGraphDiagram-V2S2FVAM-BeQBBZfm.js} +1 -1
  121. package/dist/assets/{glide-data-editor-BWNf45SY.js → glide-data-editor-DBtu96Tk.js} +4 -4
  122. package/dist/assets/globals-BOMeSJG5.js +1 -0
  123. package/dist/assets/groovy-D_Yv0Fac.js +1 -0
  124. package/dist/assets/haskell-qhM1HAIB.js +1 -0
  125. package/dist/assets/haxe-Bi62PpIr.js +1 -0
  126. package/dist/assets/{home-page-C72qXz0E.js → home-page-Cl06nMzr.js} +1 -1
  127. package/dist/assets/{hooks---BbqK4E.js → hooks-Dv0T92D4.js} +1 -1
  128. package/dist/assets/{html-to-image-C7IjrTxH.js → html-to-image-G3c0U-iP.js} +1 -1
  129. package/dist/assets/idl-CI42bOaI.js +1 -0
  130. package/dist/assets/index-BuSRVSH0.css +2 -0
  131. package/dist/assets/index-Yihvo9T0.js +35 -0
  132. package/dist/assets/{info-VBDWY6EO-DUW-WjFI.js → info-VBDWY6EO-B0DaVkbn.js} +1 -1
  133. package/dist/assets/infoDiagram-HS3SLOUP-BAq2unL1.js +2 -0
  134. package/dist/assets/javascript-BNZ5YnSy.js +1 -0
  135. package/dist/assets/{journeyDiagram-XKPGCS4Q-hRTCqz5x.js → journeyDiagram-XKPGCS4Q-Do9h5X0r.js} +1 -1
  136. package/dist/assets/julia-dpVUKOp6.js +1 -0
  137. package/dist/assets/{kanban-definition-3W4ZIXB7-C4vu7MnJ.js → kanban-definition-3W4ZIXB7-D_D1qnu3.js} +1 -1
  138. package/dist/assets/katex-WeQtn5cr.js +1 -0
  139. package/dist/assets/{kiosk-mode-DSV5Rgj2.js → kiosk-mode-CgwbYGln.js} +1 -1
  140. package/dist/assets/{layout-IbU6avGQ.js → layout-CiYgZr1m.js} +4 -4
  141. package/dist/assets/{line-3SFmw_2p.js → line-BHuLZ5CK.js} +1 -1
  142. package/dist/assets/{linear-CD-KnbN7.js → linear-BsrZ3hPD.js} +1 -1
  143. package/dist/assets/livescript-BDwSUbUd.js +1 -0
  144. package/dist/assets/{logs-panel-CBnZn-bi.js → logs-panel-cpRbecYU.js} +1 -1
  145. package/dist/assets/{loro_wasm_bg-BzwizXI_.js → loro_wasm_bg-sSPwBtJV.js} +1 -1
  146. package/dist/assets/lua-cGUKNtb5.js +1 -0
  147. package/dist/assets/{markdown-renderer-Dq4517QF.js → markdown-renderer-B3K5q-ZY.js} +3 -3
  148. package/dist/assets/mathematica-D4XScfvP.js +1 -0
  149. package/dist/assets/mbox-COnP75oc.js +1 -0
  150. package/dist/assets/mermaid-4DMBBIKO-D3TxXSe1.js +1 -0
  151. package/dist/assets/{mermaid-CQbQjy6D.js → mermaid-n4NefbrN.js} +3 -3
  152. package/dist/assets/{mermaid-parser.core-D7O651vj.js → mermaid-parser.core-f-V9Q6fb.js} +2 -2
  153. package/dist/assets/{mhchem-CQjBQPZx.js → mhchem-CuOhdwS0.js} +1 -1
  154. package/dist/assets/{mindmap-definition-VGOIOE7T-BnQ_1O1s.js → mindmap-definition-VGOIOE7T-DUVrm3_K.js} +1 -1
  155. package/dist/assets/mirc-DXskkW6M.js +1 -0
  156. package/dist/assets/mllike-B3ebn_fS.js +1 -0
  157. package/dist/assets/modelica-Df8_BOFz.js +1 -0
  158. package/dist/assets/mscgen-ugK6iLdl.js +1 -0
  159. package/dist/assets/mumps-Qes0D9Sq.js +1 -0
  160. package/dist/assets/{name-cell-input-BRoAk4-B.js → name-cell-input-BENblPEH.js} +1 -1
  161. package/dist/assets/{nsis-Bh7CNuij.js → nsis-BbDlITQ-.js} +1 -1
  162. package/dist/assets/nsis-CvTk2ElD.js +1 -0
  163. package/dist/assets/ntriples-BrWSHgAl.js +1 -0
  164. package/dist/assets/{number-overlay-editor-D-qbd0wx.js → number-overlay-editor-BV9MeC1q.js} +1 -1
  165. package/dist/assets/octave--UXUC2au.js +1 -0
  166. package/dist/assets/{ordinal-BAY59BkG.js → ordinal-CaMJcJ5o.js} +1 -1
  167. package/dist/assets/{outline-panel-ccd_SNqa.js → outline-panel-DmvFn25g.js} +1 -1
  168. package/dist/assets/oz-SCICUQnB.js +1 -0
  169. package/dist/assets/{packages-panel-DkThAnli.js → packages-panel-B6LEuNVi.js} +1 -1
  170. package/dist/assets/{packet-DYOGHKS2-l7k5WrVz.js → packet-DYOGHKS2-DcLKsZ7w.js} +1 -1
  171. package/dist/assets/panels-SlPpFOkf.js +1 -0
  172. package/dist/assets/pascal-BZRIRN0Y.js +1 -0
  173. package/dist/assets/perl-BJBf_VRX.js +1 -0
  174. package/dist/assets/{pie-VRWISCQL-CsLdeQJ0.js → pie-VRWISCQL-B9V9l9Ux.js} +1 -1
  175. package/dist/assets/{pieDiagram-ADFJNKIX-Cmw3aM6j.js → pieDiagram-ADFJNKIX-C9yLGNRT.js} +1 -1
  176. package/dist/assets/pig-8VtGvtGP.js +1 -0
  177. package/dist/assets/powershell-MUdKU-yo.js +1 -0
  178. package/dist/assets/{process-output-DdaTc_HF.js → process-output-C96fd58D.js} +1 -1
  179. package/dist/assets/properties-B_YTP79K.js +1 -0
  180. package/dist/assets/protobuf-BjqtN1d3.js +1 -0
  181. package/dist/assets/{pug-DEhrk7ZA.js → pug-B2p6efPp.js} +1 -1
  182. package/dist/assets/pug-pCMDyY3V.js +1 -0
  183. package/dist/assets/puppet-ByNusmmY.js +1 -0
  184. package/dist/assets/python-CeK7Mdg6.js +1 -0
  185. package/dist/assets/q-BPLn3RjU.js +1 -0
  186. package/dist/assets/{quadrantDiagram-AYHSOK5B-LW4w36MN.js → quadrantDiagram-AYHSOK5B-BbaJVIIg.js} +1 -1
  187. package/dist/assets/r-C6hL19P_.js +1 -0
  188. package/dist/assets/{radar-ZZBFDIW7-DegSklgM.js → radar-ZZBFDIW7-CN4AcMZb.js} +1 -1
  189. package/dist/assets/{react-vega-CS85QYZ1.js → react-vega-BbChn8d-.js} +1 -1
  190. package/dist/assets/{react-vega-C-ow9beQ.js → react-vega-PCutEA1j.js} +1 -1
  191. package/dist/assets/{readonly-python-code-y9XYPUdK.js → readonly-python-code-CsZeevPe.js} +1 -1
  192. package/dist/assets/{requirementDiagram-UZGBJVZJ-DfxxrNkO.js → requirementDiagram-UZGBJVZJ-CjjaEl5L.js} +1 -1
  193. package/dist/assets/rpm-Cepx5AK5.js +1 -0
  194. package/dist/assets/ruby-8a_JNJtC.js +1 -0
  195. package/dist/assets/run-page-CrkGFEI3.js +1 -0
  196. package/dist/assets/{sankeyDiagram-TZEHDZUN-BHBpe0lq.js → sankeyDiagram-TZEHDZUN-DHCbUKQq.js} +1 -1
  197. package/dist/assets/sas-DRXu6Kkn.js +1 -0
  198. package/dist/assets/scheme-DaBlDkbO.js +1 -0
  199. package/dist/assets/{scratchpad-panel-CsJAOXMt.js → scratchpad-panel-Bq-aUQRM.js} +1 -1
  200. package/dist/assets/{secrets-panel-CawE1eg1.js → secrets-panel-DWqgifzv.js} +1 -1
  201. package/dist/assets/{sequenceDiagram-WL72ISMW-DpKnfflA.js → sequenceDiagram-WL72ISMW-Bk1wqT1r.js} +1 -1
  202. package/dist/assets/session-panel-C5aSzyqr.js +1 -0
  203. package/dist/assets/shell-CEmng-T5.js +1 -0
  204. package/dist/assets/sieve-CTG31Wbe.js +1 -0
  205. package/dist/assets/smalltalk-DlBjAIRH.js +1 -0
  206. package/dist/assets/{snippets-panel-Y4d6ynv0.js → snippets-panel-Bvq75PPt.js} +1 -1
  207. package/dist/assets/sparql-D8XQtNgL.js +1 -0
  208. package/dist/assets/{src-CWJKdmqu.js → src-DapUuJyw.js} +1 -1
  209. package/dist/assets/{state-DVcb28Fc.js → state-XUzipEOc.js} +1 -1
  210. package/dist/assets/state-oB9pwiwS.js +3 -0
  211. package/dist/assets/{stateDiagram-FKZM4ZOC-QVDd0Li3.js → stateDiagram-FKZM4ZOC-CfxmI-mV.js} +1 -1
  212. package/dist/assets/stateDiagram-v2-4FDKWEC3-CkOxmHrl.js +1 -0
  213. package/dist/assets/{step-BDRKStBg.js → step-CzPNFdgC.js} +1 -1
  214. package/dist/assets/stylus-DpfM4Y-0.js +1 -0
  215. package/dist/assets/swift-Bevjlmsx.js +1 -0
  216. package/dist/assets/switch-BaYCltRz.js +1 -0
  217. package/dist/assets/tcl-CWB1W9St.js +1 -0
  218. package/dist/assets/{terminal-CieLTi3f.js → terminal-D9CrEu_T.js} +1 -1
  219. package/dist/assets/{textarea-ynIaFgPw.js → textarea-ChkICSMn.js} +1 -1
  220. package/dist/assets/textile-DrGyKlBQ.js +1 -0
  221. package/dist/assets/{time-H2Wv5PDB.js → time-D85NcLBY.js} +1 -1
  222. package/dist/assets/{timeline-definition-IT6M3QCI-D7I1pnXu.js → timeline-definition-IT6M3QCI-K-Ap0DlB.js} +1 -1
  223. package/dist/assets/toml-CF49H3Gs.js +1 -0
  224. package/dist/assets/{tracing-b83vxHs_.js → tracing-DNsdz53f.js} +1 -1
  225. package/dist/assets/{tracing-panel-YpOz4Jbc.js → tracing-panel-BTTuo7BG.js} +2 -2
  226. package/dist/assets/{treemap-GDKQZRPO-B18gM_Lh.js → treemap-GDKQZRPO-0ZTkCIFa.js} +1 -1
  227. package/dist/assets/troff-DS9glUnj.js +1 -0
  228. package/dist/assets/ttcn-cfg-D8JUANmi.js +1 -0
  229. package/dist/assets/ttcn-iXXxBDpr.js +1 -0
  230. package/dist/assets/turtle-IsYxGpD1.js +1 -0
  231. package/dist/assets/{useAddCell-6w9dGRCO.js → useAddCell-CUrHq1Z4.js} +1 -1
  232. package/dist/assets/{useCellActionButton-COX-WXs0.js → useCellActionButton-DR6dlOJ1.js} +1 -1
  233. package/dist/assets/{useDeleteCell-B7a_KjXc.js → useDeleteCell-DM20H2Hu.js} +1 -1
  234. package/dist/assets/{useDependencyPanelTab-BSvdWVPw.js → useDependencyPanelTab-BXfYZkjp.js} +1 -1
  235. package/dist/assets/useHotkey-CECpeWLD.js +1 -0
  236. package/dist/assets/{useNotebookActions-CEVYVtMW.js → useNotebookActions-Vdk-UW7A.js} +1 -1
  237. package/dist/assets/{useRunCells-ebuUsr9R.js → useRunCells-CM1qW8Of.js} +1 -1
  238. package/dist/assets/{useSplitCell-D5yhMmyi.js → useSplitCell-DFFEL6kI.js} +1 -1
  239. package/dist/assets/vb-CJBc18Ui.js +1 -0
  240. package/dist/assets/vbscript-f-536WNP.js +1 -0
  241. package/dist/assets/{vega-component-_VQJnNGE.js → vega-component-CW-qRj7Q.js} +1 -1
  242. package/dist/assets/velocity-BKcC2FIu.js +1 -0
  243. package/dist/assets/verilog-BwwsdDY5.js +1 -0
  244. package/dist/assets/vhdl-BG8PfJd8.js +1 -0
  245. package/dist/assets/webidl-BHBWV-F6.js +1 -0
  246. package/dist/assets/{write-secret-modal-_nh05zhf.js → write-secret-modal-EEXA8xyS.js} +1 -1
  247. package/dist/assets/xquery-BSuR2Wlv.js +1 -0
  248. package/dist/assets/{xychartDiagram-PRI3JC2R-DxlH8vWc.js → xychartDiagram-PRI3JC2R-DCZkWfRL.js} +1 -1
  249. package/dist/assets/yacas-DdJ1FiXV.js +1 -0
  250. package/dist/assets/z80-BWehJ3ot.js +1 -0
  251. package/dist/index.html +41 -42
  252. package/package.json +1 -1
  253. package/src/components/data-table/TableActions.tsx +26 -58
  254. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +24 -13
  255. package/src/components/data-table/data-table.tsx +11 -11
  256. package/src/components/data-table/download-actions.tsx +18 -18
  257. package/src/components/data-table/hooks/use-panel-ownership.ts +15 -5
  258. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +53 -44
  259. package/src/components/data-table/schemas.ts +7 -2
  260. package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +161 -0
  261. package/src/components/editor/chrome/panels/context-aware-panel/context-aware-panel.tsx +16 -9
  262. package/src/core/slots/slots.ts +1 -0
  263. package/src/plugins/impl/DataTablePlugin.tsx +19 -26
  264. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +0 -1
  265. package/src/stories/dataframe.stories.tsx +1 -1
  266. package/dist/assets/JsonOutput-BhaK8Are.js +0 -49
  267. package/dist/assets/LazyAnyLanguageCodeMirror-Dw8RObOv.js +0 -2
  268. package/dist/assets/SelectionIndicator-CBlpj8vi.js +0 -1
  269. package/dist/assets/apl-Dkj9Qe7k.js +0 -1
  270. package/dist/assets/asciiarmor-BtQZNUPe.js +0 -1
  271. package/dist/assets/asn1-Df2Lrqg5.js +0 -1
  272. package/dist/assets/brainfuck-BKWhJvy5.js +0 -1
  273. package/dist/assets/channel-DeoDlval.js +0 -1
  274. package/dist/assets/chunk-55IACEB6-BlvDi7wO.js +0 -1
  275. package/dist/assets/classDiagram-2ON5EDUG-CvEqT4dQ.js +0 -1
  276. package/dist/assets/classDiagram-v2-WZHVMYZB-BGLrzx3k.js +0 -1
  277. package/dist/assets/clojure-CktH9n5q.js +0 -1
  278. package/dist/assets/cmake-BwTN0lwz.js +0 -1
  279. package/dist/assets/cobol-D0Y9QJHH.js +0 -1
  280. package/dist/assets/coffeescript-CL84ZPXU.js +0 -1
  281. package/dist/assets/column-preview-Bpgx4KM2.js +0 -1
  282. package/dist/assets/command-palette-B9n8d1xM.js +0 -1
  283. package/dist/assets/commonlisp-CukhuKqj.js +0 -1
  284. package/dist/assets/context-aware-panel-CTO4OwqL.js +0 -3
  285. package/dist/assets/crystal-DjLRzuWS.js +0 -1
  286. package/dist/assets/cypher-DTLWn8Gw.js +0 -1
  287. package/dist/assets/d-DWjY1SxT.js +0 -1
  288. package/dist/assets/diff-CBkFqCNH.js +0 -1
  289. package/dist/assets/dist-B7AgIPPj.js +0 -1
  290. package/dist/assets/dist-BEzQ2FTT.js +0 -1
  291. package/dist/assets/dist-BXs2l0TT.js +0 -1
  292. package/dist/assets/dist-CfX-lQow.js +0 -1
  293. package/dist/assets/dtd-BuqGL9hz.js +0 -1
  294. package/dist/assets/dylan-WTW5QtBM.js +0 -1
  295. package/dist/assets/ecl-DBVSQs77.js +0 -1
  296. package/dist/assets/eiffel-C3Tl80Mr.js +0 -1
  297. package/dist/assets/elm-BzK6589w.js +0 -1
  298. package/dist/assets/erlang-DMCyf1S1.js +0 -1
  299. package/dist/assets/factor-Y7W4xwTs.js +0 -1
  300. package/dist/assets/form-JA7YODlz.js +0 -2
  301. package/dist/assets/forth-a7Ame17q.js +0 -1
  302. package/dist/assets/fortran-D8W1t7ql.js +0 -1
  303. package/dist/assets/gas-CPCP4r6U.js +0 -1
  304. package/dist/assets/gherkin-dyINaGjD.js +0 -1
  305. package/dist/assets/globals-D_ksOkIp.js +0 -1
  306. package/dist/assets/groovy-yBYyWQAY.js +0 -1
  307. package/dist/assets/haskell-DOSr8Xuo.js +0 -1
  308. package/dist/assets/haxe-JqSUWIxe.js +0 -1
  309. package/dist/assets/idl-D2Ag6F2o.js +0 -1
  310. package/dist/assets/index-B5s9EmU2.js +0 -35
  311. package/dist/assets/index-UqHb3j3u.css +0 -2
  312. package/dist/assets/infoDiagram-HS3SLOUP-BgUfZNsO.js +0 -2
  313. package/dist/assets/javascript-3AO8kHoR.js +0 -1
  314. package/dist/assets/julia-DB4UbzHR.js +0 -1
  315. package/dist/assets/katex-B242giUy.js +0 -1
  316. package/dist/assets/livescript-DReeORQ9.js +0 -1
  317. package/dist/assets/lua-ybhkw42a.js +0 -1
  318. package/dist/assets/mathematica-DknPFJHQ.js +0 -1
  319. package/dist/assets/mbox-CvGrdGLO.js +0 -1
  320. package/dist/assets/mermaid-4DMBBIKO-BtMm8UqZ.js +0 -1
  321. package/dist/assets/mirc-BeRjyZ00.js +0 -1
  322. package/dist/assets/mllike-Dy0V9wt1.js +0 -1
  323. package/dist/assets/modelica--iMtH0NO.js +0 -1
  324. package/dist/assets/mscgen-CqR_OhJF.js +0 -1
  325. package/dist/assets/mumps-DXhR5sNO.js +0 -1
  326. package/dist/assets/nsis-FfqfUShs.js +0 -1
  327. package/dist/assets/ntriples-C3Y5YwlO.js +0 -1
  328. package/dist/assets/octave-Dn-U4f-O.js +0 -1
  329. package/dist/assets/oz-Dx3Usekg.js +0 -1
  330. package/dist/assets/panels-4-99NA61.js +0 -1
  331. package/dist/assets/pascal-Bhoas9O4.js +0 -1
  332. package/dist/assets/perl-uQVtdMdg.js +0 -1
  333. package/dist/assets/pig-DDagqkh7.js +0 -1
  334. package/dist/assets/powershell-WeyQqZtK.js +0 -1
  335. package/dist/assets/properties-MEyUmkzm.js +0 -1
  336. package/dist/assets/protobuf-DrUQLGvH.js +0 -1
  337. package/dist/assets/pug-YYu0lKKy.js +0 -1
  338. package/dist/assets/puppet-C9UhEtzi.js +0 -1
  339. package/dist/assets/python-BAh1L3Ue.js +0 -1
  340. package/dist/assets/q-CoA1I94V.js +0 -1
  341. package/dist/assets/r-CnPeMCLv.js +0 -1
  342. package/dist/assets/rpm-DOBsrwns.js +0 -1
  343. package/dist/assets/ruby-DphmqCS4.js +0 -1
  344. package/dist/assets/run-page-BimMc95l.js +0 -1
  345. package/dist/assets/sas-DqX-D0mu.js +0 -1
  346. package/dist/assets/scheme-BDPqQOec.js +0 -1
  347. package/dist/assets/session-panel-tI83-MjM.js +0 -1
  348. package/dist/assets/shell-BbHQ-2DS.js +0 -1
  349. package/dist/assets/sieve-AQvCITfE.js +0 -1
  350. package/dist/assets/smalltalk-C_EFh1kg.js +0 -1
  351. package/dist/assets/sparql-BlXg3dFR.js +0 -1
  352. package/dist/assets/stateDiagram-v2-4FDKWEC3-De_tnJ_y.js +0 -1
  353. package/dist/assets/stylus-Dvm1D-Up.js +0 -1
  354. package/dist/assets/swift-BYNffoE5.js +0 -1
  355. package/dist/assets/switch-BF9J785H.js +0 -1
  356. package/dist/assets/tcl-BXf8cJq0.js +0 -1
  357. package/dist/assets/textile-BYQcpBSz.js +0 -1
  358. package/dist/assets/toggle-D5cxBbM0.js +0 -1
  359. package/dist/assets/toml-DRBRsKy_.js +0 -1
  360. package/dist/assets/troff-DrvwLjLq.js +0 -1
  361. package/dist/assets/ttcn-DP5EbkJT.js +0 -1
  362. package/dist/assets/ttcn-cfg-BRAAKR13.js +0 -1
  363. package/dist/assets/turtle-Dfy5N6iI.js +0 -1
  364. package/dist/assets/vb-DzPnQ7Kn.js +0 -1
  365. package/dist/assets/vbscript-Dsr7xm0B.js +0 -1
  366. package/dist/assets/velocity-BP08r0ZT.js +0 -1
  367. package/dist/assets/verilog-CtASbUB4.js +0 -1
  368. package/dist/assets/vhdl-BNXpaYPc.js +0 -1
  369. package/dist/assets/webidl-CHQTLbOi.js +0 -1
  370. package/dist/assets/xquery-BysgHIf7.js +0 -1
  371. package/dist/assets/yacas-jKltHvRl.js +0 -1
  372. package/dist/assets/z80-DVuK3CCU.js +0 -1
  373. /package/dist/assets/{ImageComparisonComponent-CxAz0_xA.js → ImageComparisonComponent-B-B8L7nT.js} +0 -0
  374. /package/dist/assets/{Inputs-CHVZ39A4.js → Inputs-8Ub6S5-M.js} +0 -0
  375. /package/dist/assets/{Plot-BFRJWpjl.js → Plot-DQ47aeEB.js} +0 -0
  376. /package/dist/assets/{apl-DVWF09P_.js → apl-BYqtBlld.js} +0 -0
  377. /package/dist/assets/{array-WUGjrusz.js → array-Bb9_Nbm_.js} +0 -0
  378. /package/dist/assets/{asciiarmor-l0ikukqg.js → asciiarmor-DUW0Iozu.js} +0 -0
  379. /package/dist/assets/{asn1-CsdiW8T7.js → asn1-ClnHsHDP.js} +0 -0
  380. /package/dist/assets/{asterisk-DMII5ruW.js → asterisk-DQege133.js} +0 -0
  381. /package/dist/assets/{azure-DZ9IQ5nj.js → azure-DSW4Y-2T.js} +0 -0
  382. /package/dist/assets/{brainfuck-C66TQVgP.js → brainfuck-FB_E90sw.js} +0 -0
  383. /package/dist/assets/{bundle.esm-sq57iaa5.js → bundle.esm-LMxLLjaH.js} +0 -0
  384. /package/dist/assets/{card-kz6nHxJZ.js → card-sZR2Icyj.js} +0 -0
  385. /package/dist/assets/{chunk-4F5CHEZ2-D2MLpWrB.js → chunk-4F5CHEZ2-C64nkLz9.js} +0 -0
  386. /package/dist/assets/{chunk-B2363JML-BNN_5fc8.js → chunk-B2363JML-D8Gxl67V.js} +0 -0
  387. /package/dist/assets/{chunk-DR5Q36YT-BEYRDy7r.js → chunk-DR5Q36YT-ig9TOEx2.js} +0 -0
  388. /package/dist/assets/{chunk-FRFDVMJY-DjkCEWmR.js → chunk-FRFDVMJY-BGfBBgv1.js} +0 -0
  389. /package/dist/assets/{chunk-PL6DKKU2-BNHJfoD3.js → chunk-PL6DKKU2-DoRyRqa0.js} +0 -0
  390. /package/dist/assets/{chunk-SJTYNZTY-ojRASETo.js → chunk-SJTYNZTY-Bk1QduP9.js} +0 -0
  391. /package/dist/assets/{chunk-TQ3KTPDO-dWuZFaH3.js → chunk-TQ3KTPDO-DHpA157U.js} +0 -0
  392. /package/dist/assets/{chunk-UMXZTB3W-QJ4NxDrM.js → chunk-UMXZTB3W-BMTYVoYA.js} +0 -0
  393. /package/dist/assets/{clear-button-mv6uDL7t.js → clear-button-DuLHdLLm.js} +0 -0
  394. /package/dist/assets/{click-outside-container-CadeLOyB.js → click-outside-container-BSjT8zZT.js} +0 -0
  395. /package/dist/assets/{clike-Cc3gZvM_.js → clike-B7PZCnaI.js} +0 -0
  396. /package/dist/assets/{clojure-kT8c8jnq.js → clojure-DtLrahuY.js} +0 -0
  397. /package/dist/assets/{cmake-B3S-FpMv.js → cmake-DGfhkTv5.js} +0 -0
  398. /package/dist/assets/{cobol-BrIP6mPV.js → cobol-Cpbk-vCU.js} +0 -0
  399. /package/dist/assets/{coffeescript-ByxLkrBT.js → coffeescript-BATQF8kE.js} +0 -0
  400. /package/dist/assets/{colors-Vlg4ky9A.js → colors-B5L-I0Ha.js} +0 -0
  401. /package/dist/assets/{common-keywords-DOKE_IZU.js → common-keywords-DHn1q5re.js} +0 -0
  402. /package/dist/assets/{commonlisp-BjIOT_KK.js → commonlisp-C9N48zGs.js} +0 -0
  403. /package/dist/assets/{crystal-CQtLRTna.js → crystal-D2nrZv1k.js} +0 -0
  404. /package/dist/assets/{css-CU1K_XUx.js → css-DNoZFvlx.js} +0 -0
  405. /package/dist/assets/{cypher-An7BGqKu.js → cypher-6TFCZzgE.js} +0 -0
  406. /package/dist/assets/{cytoscape.esm-BauVghWH.js → cytoscape.esm-Sj5tvqw2.js} +0 -0
  407. /package/dist/assets/{d-fbf-n02o.js → d-DHH1X7PS.js} +0 -0
  408. /package/dist/assets/{diff-DbzsqZEz.js → diff-DNDp4fOd.js} +0 -0
  409. /package/dist/assets/{dist-7ypejJ7M.js → dist-B5P2o9qe.js} +0 -0
  410. /package/dist/assets/{dist-BbnFhTf8.js → dist-BFQvSNiI.js} +0 -0
  411. /package/dist/assets/{dist-CRZWTCuJ.js → dist-B_PYZeT0.js} +0 -0
  412. /package/dist/assets/{dist-D-LP6YiY.js → dist-BkdH5eBK.js} +0 -0
  413. /package/dist/assets/{dist-BertQWtB.js → dist-BnnDhAuT.js} +0 -0
  414. /package/dist/assets/{dist-1NV-2910.js → dist-ByIvWpVh.js} +0 -0
  415. /package/dist/assets/{dist-D2Iq48lS.js → dist-C04_12Dz.js} +0 -0
  416. /package/dist/assets/{dist-CnLUNQJQ.js → dist-CM9BIAuN.js} +0 -0
  417. /package/dist/assets/{dist-uai-4z-r.js → dist-CdXexMN2.js} +0 -0
  418. /package/dist/assets/{dist-Cgfk1q5C.js → dist-Ci7knalt.js} +0 -0
  419. /package/dist/assets/{dist-BI46-KjY.js → dist-Ck3oBCp1.js} +0 -0
  420. /package/dist/assets/{dist-B6Ffck9m.js → dist-ClXwZZyv.js} +0 -0
  421. /package/dist/assets/{dist-C2Qz91G3.js → dist-CyXug1a8.js} +0 -0
  422. /package/dist/assets/{dist-DsBjiA6R.js → dist-D9U7bsnA.js} +0 -0
  423. /package/dist/assets/{dist-CAlwfKNN.js → dist-DR9n0sMe.js} +0 -0
  424. /package/dist/assets/{dist-BQBTi2aC.js → dist-DWmiwHgO.js} +0 -0
  425. /package/dist/assets/{dist-DDTjVjEv.js → dist-GrURK_tH.js} +0 -0
  426. /package/dist/assets/{dist-Db0iDvI-.js → dist-KlRuMAw_.js} +0 -0
  427. /package/dist/assets/{dtd-DnQAYfYi.js → dtd-BYdB19UC.js} +0 -0
  428. /package/dist/assets/{duckdb-keywords-CPlkF2dS.js → duckdb-keywords-usZbJ-Dr.js} +0 -0
  429. /package/dist/assets/{dylan-DeXj1TAN.js → dylan-3sqQfqPE.js} +0 -0
  430. /package/dist/assets/{ebnf-CF1gbUmq.js → ebnf-BAIwm2E9.js} +0 -0
  431. /package/dist/assets/{ecl-B8-j0xrP.js → ecl-79y60Sdt.js} +0 -0
  432. /package/dist/assets/{eiffel-DdiJ6Uyn.js → eiffel-Cy1qkCDz.js} +0 -0
  433. /package/dist/assets/{elm-CAmK9rmL.js → elm-DrRzHEES.js} +0 -0
  434. /package/dist/assets/{empty-state-S5VBZ98t.js → empty-state-HOMYY9tn.js} +0 -0
  435. /package/dist/assets/{erlang-hqy6gURy.js → erlang-D3BTE-y0.js} +0 -0
  436. /package/dist/assets/{esm-DFf3sejQ.js → esm-CmxdJbk6.js} +0 -0
  437. /package/dist/assets/{esm-CMMkDitC.js → esm-DgC_9WMw.js} +0 -0
  438. /package/dist/assets/{fcl-icoS9k4f.js → fcl-BRXWXeJY.js} +0 -0
  439. /package/dist/assets/{field-BVNCXNwJ.js → field-SBC8FrmM.js} +0 -0
  440. /package/dist/assets/{formatting-DFmPqYp7.js → formatting-DZJcbcdy.js} +0 -0
  441. /package/dist/assets/{forth-CsaVBHm8.js → forth-DGce5eRS.js} +0 -0
  442. /package/dist/assets/{fortran-DGNsp41i.js → fortran-CS97oQQW.js} +0 -0
  443. /package/dist/assets/{gas-BX8xjNNw.js → gas-7e_zvN4u.js} +0 -0
  444. /package/dist/assets/{gherkin--u9ojH5d.js → gherkin-3f1nzx4Y.js} +0 -0
  445. /package/dist/assets/{groovy-Drg0Cp0-.js → groovy-Bn1MvSId.js} +0 -0
  446. /package/dist/assets/{haskell-D96A8Bg_.js → haskell-qtyafuM6.js} +0 -0
  447. /package/dist/assets/{haxe-B_4sGLdj.js → haxe-CQwWk_Ht.js} +0 -0
  448. /package/dist/assets/{http-4jqIuJdk.js → http-DxX5IMY1.js} +0 -0
  449. /package/dist/assets/{icons-3WtBtPgb.js → icons-DelodwsZ.js} +0 -0
  450. /package/dist/assets/{idl-CA47OCO3.js → idl-BnUby_AK.js} +0 -0
  451. /package/dist/assets/{init-Df7Kws7A.js → init-CwjK1Wqp.js} +0 -0
  452. /package/dist/assets/{javascript-i8I6A_gg.js → javascript-BFKHKHDt.js} +0 -0
  453. /package/dist/assets/{julia-DYuDt1xN.js → julia-BZeLe6be.js} +0 -0
  454. /package/dist/assets/{katex-BoxNfNct.js → katex-DAqTXxqH.js} +0 -0
  455. /package/dist/assets/{label-CjV5SvbM.js → label-Cvbi55_x.js} +0 -0
  456. /package/dist/assets/{links-DwwkyfLU.js → links-Bi4fFe_a.js} +0 -0
  457. /package/dist/assets/{livescript-C72Fe_WX.js → livescript-LB6oZdgV.js} +0 -0
  458. /package/dist/assets/{loro_wasm_bg-BAHdi7Mz.js → loro_wasm_bg-CfTqb-Pd.js} +0 -0
  459. /package/dist/assets/{lua-CrUucAvm.js → lua-D73MeF_d.js} +0 -0
  460. /package/dist/assets/{marimo-icons-CVMcTWRN.js → marimo-icons-CRM8aupD.js} +0 -0
  461. /package/dist/assets/{math-CgfFnpAx.js → math-BYed4MZ5.js} +0 -0
  462. /package/dist/assets/{mathematica-GLtAlQgr.js → mathematica-SckqhulL.js} +0 -0
  463. /package/dist/assets/{mbox-DsldZPOv.js → mbox-DpdjYR8y.js} +0 -0
  464. /package/dist/assets/{mirc-Dpq184o1.js → mirc-9Mp8ii_5.js} +0 -0
  465. /package/dist/assets/{mllike-eEM7KiC0.js → mllike-CteazA5r.js} +0 -0
  466. /package/dist/assets/{modelica-BKRVU7Ex.js → modelica-DruS-uJ8.js} +0 -0
  467. /package/dist/assets/{mscgen-LPWHVNeM.js → mscgen-Dqm6ZJyo.js} +0 -0
  468. /package/dist/assets/{multi-icon-ChlThs5w.js → multi-icon-CSamKn9Q.js} +0 -0
  469. /package/dist/assets/{mumps-46YgImgy.js → mumps-DAwJeUn4.js} +0 -0
  470. /package/dist/assets/{nginx-Bv2h-X8A.js → nginx-C7sPMZD3.js} +0 -0
  471. /package/dist/assets/{node-sql-parser-Bzh-sm1v.js → node-sql-parser-Dv9jUJQo.js} +0 -0
  472. /package/dist/assets/{ntriples-CABx3n6p.js → ntriples-D5_p8srT.js} +0 -0
  473. /package/dist/assets/{octave-ChjrzDtA.js → octave-StxXX2kg.js} +0 -0
  474. /package/dist/assets/{oz-BZ0G7oQI.js → oz-CZcv8Gut.js} +0 -0
  475. /package/dist/assets/{panel-context-Ch2qtloJ.js → panel-context-DtsHKvy1.js} +0 -0
  476. /package/dist/assets/{pascal-BDWWzmkf.js → pascal-BTSTYf7j.js} +0 -0
  477. /package/dist/assets/{path-mYwwOfXz.js → path-BnEkTfSL.js} +0 -0
  478. /package/dist/assets/{perl-C1twkBDg.js → perl-D3WNCnWS.js} +0 -0
  479. /package/dist/assets/{pig-CKZ-JUXx.js → pig-m1LfHx7X.js} +0 -0
  480. /package/dist/assets/{powershell-BmnkAUC8.js → powershell-C7evXFhK.js} +0 -0
  481. /package/dist/assets/{properties-B3qF4Ofl.js → properties-CX3A241c.js} +0 -0
  482. /package/dist/assets/{protobuf-CdWFIAi_.js → protobuf-CEqDY4vo.js} +0 -0
  483. /package/dist/assets/{puppet-oVG7sgNi.js → puppet-DlFBPmUd.js} +0 -0
  484. /package/dist/assets/{python-GCb3koKb.js → python-kNH0316T.js} +0 -0
  485. /package/dist/assets/{q-CylRV6ad.js → q-KQ_N2MXi.js} +0 -0
  486. /package/dist/assets/{r-BV8FQxo8.js → r-Dj_WdT8c.js} +0 -0
  487. /package/dist/assets/{react-resizable-panels.browser.esm-CgWOEYeG.js → react-resizable-panels.browser.esm-xQHRvEag.js} +0 -0
  488. /package/dist/assets/{renderShortcut-DGKqNxA5.js → renderShortcut-CwG4LAo7.js} +0 -0
  489. /package/dist/assets/{request-registry-CSchh19h.js → request-registry-DIccnHoS.js} +0 -0
  490. /package/dist/assets/{requests-dD3-AncY.js → requests-BB0ozKLz.js} +0 -0
  491. /package/dist/assets/{rpm-0QmIraaR.js → rpm-C3VyCeYo.js} +0 -0
  492. /package/dist/assets/{ruby-h-bI2J_W.js → ruby-9RpAFOsP.js} +0 -0
  493. /package/dist/assets/{runs-Vz5x5956.js → runs-CWVqudEh.js} +0 -0
  494. /package/dist/assets/{sas-BvwZbLPG.js → sas-CFBIkOrK.js} +0 -0
  495. /package/dist/assets/{scheme-BPuaxh6y.js → scheme-n4WmsRUQ.js} +0 -0
  496. /package/dist/assets/{shell-DmziZNbR.js → shell-BDAgpmgp.js} +0 -0
  497. /package/dist/assets/{sieve-DT4D9aeW.js → sieve-BVNIn7Yz.js} +0 -0
  498. /package/dist/assets/{simple-mode-BVXe8Gj5.js → simple-mode-C-nP-kAb.js} +0 -0
  499. /package/dist/assets/{slides-component-CfpPjgm7.js → slides-component-I2dHyc-j.js} +0 -0
  500. /package/dist/assets/{smalltalk-lAY6r45k.js → smalltalk-C7nE9dmX.js} +0 -0
  501. /package/dist/assets/{solr-bv5jU2Wv.js → solr-B2csZ4mu.js} +0 -0
  502. /package/dist/assets/{sparql-nFvL3z3l.js → sparql-DPFIzZM3.js} +0 -0
  503. /package/dist/assets/{spreadsheet-rTQO9mJJ.js → spreadsheet-C9drr7Wf.js} +0 -0
  504. /package/dist/assets/{sql-B-xxrTFa.js → sql-Ba7Mq1qs.js} +0 -0
  505. /package/dist/assets/{src-Cq50ZA8D.js → src-BKLwm2RN.js} +0 -0
  506. /package/dist/assets/{state-Bu50F_xe.js → state-DrNlxTx2.js} +0 -0
  507. /package/dist/assets/{stylus-BawZsgUJ.js → stylus-DGcebGVS.js} +0 -0
  508. /package/dist/assets/{swift-CdaDqiGL.js → swift-DiAJo7C6.js} +0 -0
  509. /package/dist/assets/{tcl-D5FopUjH.js → tcl-DpD837eJ.js} +0 -0
  510. /package/dist/assets/{textile-Cum4VLew.js → textile-DEqOicm6.js} +0 -0
  511. /package/dist/assets/{tiddlywiki-Ci542Gim.js → tiddlywiki-CEYqr2EK.js} +0 -0
  512. /package/dist/assets/{tiki-DpcD6yY0.js → tiki-Drx00sPe.js} +0 -0
  513. /package/dist/assets/{timer-CEUQS2Fi.js → timer-CRrOyp_g.js} +0 -0
  514. /package/dist/assets/{toml-5si8PWt8.js → toml-BdA-7EhB.js} +0 -0
  515. /package/dist/assets/{treemap-BEZnbiX5.js → treemap-DVgZWKjA.js} +0 -0
  516. /package/dist/assets/{troff-qCd7sECP.js → troff-iGRgQHLe.js} +0 -0
  517. /package/dist/assets/{ttcn-BZC1oJG1.js → ttcn-CLQ1c3XL.js} +0 -0
  518. /package/dist/assets/{ttcn-cfg-BlUyan1P.js → ttcn-cfg-BFj90pgD.js} +0 -0
  519. /package/dist/assets/{turtle-BGa4pyfx.js → turtle-DwFVq6UC.js} +0 -0
  520. /package/dist/assets/{types-DJxVS5di.js → types-D8yP89N6.js} +0 -0
  521. /package/dist/assets/{useDeepCompareMemoize-zUH53nql.js → useDeepCompareMemoize-606Ao2HX.js} +0 -0
  522. /package/dist/assets/{useInterval-B12JNm4_.js → useInterval-CLpGFmfT.js} +0 -0
  523. /package/dist/assets/{vb-G28CZ46r.js → vb-gm5P9Pn5.js} +0 -0
  524. /package/dist/assets/{vbscript-DOr4ZYtx.js → vbscript-gQvKiDdU.js} +0 -0
  525. /package/dist/assets/{velocity-DRewaasJ.js → velocity-CkfRmD_d.js} +0 -0
  526. /package/dist/assets/{verilog-DmcGbw8B.js → verilog-D3b05tu1.js} +0 -0
  527. /package/dist/assets/{vhdl-C6ktucee.js → vhdl-DRo1SU3e.js} +0 -0
  528. /package/dist/assets/{web-vitals-BV7RJGkj.js → web-vitals-MCFVTcHk.js} +0 -0
  529. /package/dist/assets/{webidl-DHu7cr9_.js → webidl-DFtmGFay.js} +0 -0
  530. /package/dist/assets/{ws-Bim0WMvW.js → ws-CcJv2XkE.js} +0 -0
  531. /package/dist/assets/{xquery-BuvyHzVJ.js → xquery-CzUikajR.js} +0 -0
  532. /package/dist/assets/{yacas-C_HpkPlV.js → yacas-BqvQWbYq.js} +0 -0
  533. /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 type { PanelType } from "../editor/chrome/panels/context-aware-panel/context-aware-panel";
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";
@@ -31,15 +29,13 @@ interface TableActionsProps<TData> {
31
29
  onRowSelectionChange?: (value: RowSelectionState) => void;
32
30
  table: Table<TData>;
33
31
  downloadAs?: DownloadActionProps["downloadAs"];
34
- downloadFileName?: string;
35
32
  getRowIds?: GetRowIds;
36
33
  toggleDisplayHeader?: () => void;
37
34
  showChartBuilder?: boolean;
38
- showColumnExplorer?: boolean;
39
- showRowExplorer?: boolean;
35
+ showTableExplorer?: boolean;
40
36
  showPageSizeSelector?: boolean;
41
37
  togglePanel?: (panelType: PanelType) => void;
42
- isPanelOpen?: (panelType: PanelType) => boolean;
38
+ isAnyPanelOpen?: boolean;
43
39
  tableLoading?: boolean;
44
40
  }
45
41
 
@@ -54,15 +50,13 @@ export const TableActions = <TData,>({
54
50
  onRowSelectionChange,
55
51
  table,
56
52
  downloadAs,
57
- downloadFileName,
58
53
  getRowIds,
59
54
  toggleDisplayHeader,
60
55
  showChartBuilder,
61
- showColumnExplorer,
62
- showRowExplorer,
56
+ showTableExplorer,
63
57
  showPageSizeSelector,
64
58
  togglePanel,
65
- isPanelOpen,
59
+ isAnyPanelOpen,
66
60
  tableLoading,
67
61
  }: TableActionsProps<TData>) => {
68
62
  const { locale } = useLocale();
@@ -136,43 +130,22 @@ export const TableActions = <TData,>({
136
130
  </Button>
137
131
  </Tooltip>
138
132
  )}
139
- {togglePanel && isPanelOpen !== undefined && (
140
- <>
141
- {showRowExplorer && (
142
- <Tooltip content="Toggle row viewer">
143
- <Button
144
- variant="text"
145
- size="xs"
146
- onClick={() => togglePanel("row-viewer")}
147
- className="print:hidden"
148
- >
149
- <PanelRightIcon
150
- className={cn(
151
- "w-4 h-4 text-muted-foreground",
152
- isPanelOpen("row-viewer") && "text-primary",
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
- </>
133
+ {showTableExplorer && togglePanel && (
134
+ <Tooltip content="Toggle table explorer">
135
+ <Button
136
+ variant="text"
137
+ size="xs"
138
+ onClick={() => togglePanel(PANEL_TYPES.ROW_VIEWER)}
139
+ className="print:hidden"
140
+ >
141
+ <PanelRightIcon
142
+ className={cn(
143
+ "w-4 h-4 text-muted-foreground",
144
+ isAnyPanelOpen && "text-primary",
145
+ )}
146
+ />
147
+ </Button>
148
+ </Tooltip>
176
149
  )}
177
150
 
178
151
  {pagination ? (
@@ -190,12 +163,7 @@ export const TableActions = <TData,>({
190
163
  </span>
191
164
  )}
192
165
  <div className="ml-auto">
193
- {downloadAs && (
194
- <DownloadAs
195
- downloadAs={downloadAs}
196
- downloadFileName={downloadFileName}
197
- />
198
- )}
166
+ {downloadAs && <DownloadAs downloadAs={downloadAs} />}
199
167
  </div>
200
168
  </div>
201
169
  );
@@ -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(([columnName, [dataType, externalType]]) => {
92
- return (
93
- <ColumnItem
94
- // Tables may have the same column names, hence we use tableId to make it unique
95
- key={`${tableId}-${columnName}`}
96
- columnName={columnName}
97
- dataType={dataType}
98
- externalType={externalType}
99
- previewColumn={previewColumn}
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(false);
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 type { PanelType } from "../editor/chrome/panels/context-aware-panel/context-aware-panel";
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
- showColumnExplorer?: boolean;
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,>({
@@ -124,7 +127,6 @@ const DataTableInternal = <TData,>({
124
127
  paginationState,
125
128
  setPaginationState,
126
129
  downloadAs,
127
- downloadFileName,
128
130
  manualPagination = false,
129
131
  pagination = false,
130
132
  onRowSelectionChange,
@@ -142,10 +144,10 @@ const DataTableInternal = <TData,>({
142
144
  toggleDisplayHeader,
143
145
  showChartBuilder,
144
146
  showPageSizeSelector,
145
- showColumnExplorer,
146
- showRowExplorer,
147
+ showTableExplorer,
147
148
  togglePanel,
148
149
  isPanelOpen,
150
+ isAnyPanelOpen,
149
151
  viewedRowIdx,
150
152
  onViewedRowChange,
151
153
  }: DataTableProps<TData>) => {
@@ -272,7 +274,7 @@ const DataTableInternal = <TData,>({
272
274
  },
273
275
  });
274
276
 
275
- const rowViewerPanelOpen = isPanelOpen?.("row-viewer") ?? false;
277
+ const rowViewerPanelOpen = isPanelOpen?.(PANEL_TYPES.ROW_VIEWER) ?? false;
276
278
  const virtualize = !pagination && data.length > MIN_ROWS_TO_VIRTUALIZE;
277
279
 
278
280
  const tableRef = useScrollContainerHeight({ maxHeight, virtualize });
@@ -319,15 +321,13 @@ const DataTableInternal = <TData,>({
319
321
  onRowSelectionChange={onRowSelectionChange}
320
322
  table={table}
321
323
  downloadAs={downloadAs}
322
- downloadFileName={downloadFileName}
323
324
  getRowIds={getRowIds}
324
325
  toggleDisplayHeader={toggleDisplayHeader}
325
326
  showChartBuilder={showChartBuilder}
326
327
  showPageSizeSelector={showPageSizeSelector}
327
- showColumnExplorer={showColumnExplorer}
328
- showRowExplorer={showRowExplorer}
328
+ showTableExplorer={showTableExplorer}
329
329
  togglePanel={togglePanel}
330
- isPanelOpen={isPanelOpen}
330
+ isAnyPanelOpen={isAnyPanelOpen}
331
331
  tableLoading={reloading}
332
332
  />
333
333
  </div>
@@ -14,7 +14,6 @@ import { logNever } from "@/utils/assertNever";
14
14
  import { copyToClipboard } from "@/utils/copy";
15
15
  import { downloadByURL } from "@/utils/download";
16
16
  import { prettyError } from "@/utils/errors";
17
- import { Filenames } from "@/utils/filenames";
18
17
  import {
19
18
  jsonParseWithSpecialChar,
20
19
  jsonToMarkdown,
@@ -36,8 +35,9 @@ import { toast } from "../ui/use-toast";
36
35
  type DownloadFormat = "csv" | "json" | "parquet";
37
36
 
38
37
  export interface DownloadActionProps {
39
- downloadAs: (req: { format: DownloadFormat }) => Promise<string>;
40
- downloadFileName?: string;
38
+ downloadAs: (req: {
39
+ format: DownloadFormat;
40
+ }) => Promise<{ url: string; filename: string }>;
41
41
  }
42
42
 
43
43
  const options = [
@@ -99,7 +99,9 @@ export const DownloadAs: React.FC<DownloadActionProps> = (props) => {
99
99
  </Button>
100
100
  );
101
101
 
102
- const getDownloadUrl = (format: DownloadFormat) => {
102
+ const getDownloadResponse = (
103
+ format: DownloadFormat,
104
+ ): Promise<{ url: string; filename: string }> => {
103
105
  return props.downloadAs({ format }).catch((error) => {
104
106
  toast({
105
107
  title: "Failed to download",
@@ -116,26 +118,26 @@ export const DownloadAs: React.FC<DownloadActionProps> = (props) => {
116
118
 
117
119
  switch (format) {
118
120
  case "tsv": {
119
- const downloadUrl = await getDownloadUrl("json");
120
- const json = await fetchJson(downloadUrl);
121
+ const { url } = await getDownloadResponse("json");
122
+ const json = await fetchJson(url);
121
123
  text = jsonToTSV(json, locale);
122
124
  break;
123
125
  }
124
126
  case "json": {
125
- const downloadUrl = await getDownloadUrl("json");
126
- const json = await fetchJson(downloadUrl);
127
+ const { url } = await getDownloadResponse("json");
128
+ const json = await fetchJson(url);
127
129
  text = JSON.stringify(json, null, 2);
128
130
  break;
129
131
  }
130
132
  case "csv": {
131
- const downloadUrl = await getDownloadUrl("csv");
132
- const csv = await fetchText(downloadUrl);
133
+ const { url } = await getDownloadResponse("csv");
134
+ const csv = await fetchText(url);
133
135
  text = csv;
134
136
  break;
135
137
  }
136
138
  case "markdown": {
137
- const downloadUrl = await getDownloadUrl("json");
138
- const json = await fetchJson(downloadUrl);
139
+ const { url } = await getDownloadResponse("json");
140
+ const json = await fetchJson(url);
139
141
  text = jsonToMarkdown(json);
140
142
  break;
141
143
  }
@@ -158,12 +160,10 @@ export const DownloadAs: React.FC<DownloadActionProps> = (props) => {
158
160
  <DropdownMenuItem
159
161
  key={option.label}
160
162
  onSelect={async () => {
161
- const downloadUrl = await getDownloadUrl(option.format);
162
- const ext = option.format;
163
- const rawName = (props.downloadFileName ?? "").trim();
164
- const baseName =
165
- Filenames.withoutExtension(rawName) || "download";
166
- downloadByURL(downloadUrl, `${baseName}.${ext}`);
163
+ const { url, filename } = await getDownloadResponse(
164
+ option.format,
165
+ );
166
+ downloadByURL(url, filename);
167
167
  }}
168
168
  >
169
169
  <option.icon className="mo-dropdown-icon" />
@@ -13,7 +13,10 @@ import { Logger } from "@/utils/Logger";
13
13
 
14
14
  interface PanelOwnershipResult {
15
15
  isPanelOpen: (panelType: PanelType) => boolean;
16
- togglePanel: (panelType: PanelType) => void;
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
- function togglePanel(panelType: PanelType) {
59
- if (isPanelOpen(panelType)) {
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
- setPanelType(panelType);
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 { Input } from "@/components/ui/input";
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 searchInputRef = useRef<HTMLInputElement>(null);
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
- useKeydownOnElement(panelRef, {
106
- ArrowLeft: (e) => {
107
- if (e?.target === searchInputRef.current) {
108
- return false;
109
- }
110
- setRow(rowIdx - 1);
111
- },
112
- ArrowRight: (e) => {
113
- if (e?.target === searchInputRef.current) {
114
- return false;
115
- }
116
- setRow(rowIdx + 1);
117
- },
118
- Space: (e) => {
119
- if (e?.target === searchInputRef.current) {
120
- return false;
121
- }
122
- toggleRowSelection();
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 className="flex flex-row gap-1 items-center">
255
- <Button
256
- variant="link"
257
- size="xs"
258
- className="pr-0"
259
- onClick={toggleRowSelection}
260
- >
261
- {isRowSelected ? "Deselect row" : "Select row"}
262
- </Button>
263
- <KeyboardHotkeys shortcut="Space" />
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
- <div className="mx-2 -mb-1">
319
- <Input
320
- ref={searchInputRef}
321
- type="text"
330
+ <Command className="bg-background" shouldFilter={false}>
331
+ <CommandInput
322
332
  placeholder="Search"
323
- onChange={(e) => setSearchQuery(e.target.value)}
324
- icon={<SearchIcon className="w-4 h-4" />}
325
- className="mb-0 border-border"
333
+ value={searchQuery}
334
+ onValueChange={setSearchQuery}
326
335
  data-testid="selection-panel-search-input"
327
336
  />
328
- </div>
337
+ </Command>
329
338
  {renderTable()}
330
339
  </div>
331
340
  );
@@ -5,7 +5,7 @@ import { rpc } from "@/plugins/core/rpc";
5
5
 
6
6
  export type DownloadAsArgs = (req: {
7
7
  format: "csv" | "json" | "parquet";
8
- }) => Promise<string>;
8
+ }) => Promise<{ url: string; filename: string }>;
9
9
 
10
10
  export const DownloadAsSchema = rpc
11
11
  .input(
@@ -13,4 +13,9 @@ export const DownloadAsSchema = rpc
13
13
  format: z.enum(["csv", "json", "parquet"]),
14
14
  }),
15
15
  )
16
- .output(z.string());
16
+ .output(
17
+ z.object({
18
+ url: z.string(),
19
+ filename: z.string(),
20
+ }),
21
+ );