@marimo-team/islands 0.21.2-dev99 → 0.22.1-dev10

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 (503) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CTfvzyMi.js → ConnectedDataExplorerComponent-iT7t3FxV.js} +12 -12
  2. package/dist/{_basePickBy-DEctY8Qy.js → _basePickBy-QjOmBDRE.js} +3 -10
  3. package/dist/{_baseSet-Bk810b_4.js → _baseSet-xgn1IbGV.js} +8 -1
  4. package/dist/{_baseUniq-B1NzzhU7.js → _baseUniq-B4eL5sTC.js} +2 -2
  5. package/dist/{any-language-editor-Bj-3432h.js → any-language-editor-CT_9yBde.js} +18 -18
  6. package/dist/apl-C1bki_dE.js +4 -0
  7. package/dist/{arc-CEWBr4jc.js → arc-DLJpPF9M.js} +2 -2
  8. package/dist/architecture-7HQA4BMR-BRyVh_Za.js +6 -0
  9. package/dist/{architectureDiagram-VXUJARFQ-BKlUkb-q.js → architectureDiagram-VXUJARFQ-vxgYGIMP.js} +19 -19
  10. package/dist/arrays-Du-jRBAy.js +55 -0
  11. package/dist/asciiarmor-BdlkCCRr.js +4 -0
  12. package/dist/asn1-CvE30hox.js +4 -0
  13. package/dist/{blockDiagram-VD42YOAC-DvgBlX1D.js → blockDiagram-VD42YOAC-C7x6YTH7.js} +14 -14
  14. package/dist/brainfuck-BalwWy1a.js +4 -0
  15. package/dist/{c4Diagram-YG6GDRKO-BN-xpNUK.js → c4Diagram-YG6GDRKO-Cx4oseGg.js} +6 -6
  16. package/dist/{capabilities-BC3mzKnw.js → capabilities-26mwv03y.js} +1 -1
  17. package/dist/{channel-Dz_ka_DS.js → channel-C_50jIAn.js} +1 -1
  18. package/dist/{chat-ui-BvK3aDSR.js → chat-ui-CtqUthFR.js} +19 -19
  19. package/dist/{chunk-4BX2VUAB-BChPAwlt.js → chunk-4BX2VUAB-C2skOn1Z.js} +1 -1
  20. package/dist/{chunk-4F5CHEZ2-9eJ5uB6a.js → chunk-4F5CHEZ2-Dvo_CFnR.js} +1 -1
  21. package/dist/{chunk-55IACEB6-wWyiO7Qo.js → chunk-55IACEB6-DRsSqxbU.js} +1 -1
  22. package/dist/{chunk-5FQGJX7Z-DHiDX6JT.js → chunk-5FQGJX7Z-C428iZBW.js} +3 -3
  23. package/dist/{chunk-ABZYJK2D-DYZpeLRO.js → chunk-ABZYJK2D-D5YIs71w.js} +3 -3
  24. package/dist/{chunk-ATLVNIR6-9VSIMo3q.js → chunk-ATLVNIR6-CyOjzOcf.js} +2 -2
  25. package/dist/{chunk-B2363JML-CkfqLBeZ.js → chunk-B2363JML-BzZqINRO.js} +1 -1
  26. package/dist/{chunk-B4BG7PRW-CyIVj-RO.js → chunk-B4BG7PRW-ZJeV3KdD.js} +7 -7
  27. package/dist/{chunk-CVBHYZKI-DqdOZevv.js → chunk-CVBHYZKI-BXHgce-x.js} +1 -1
  28. package/dist/{chunk-DI55MBZ5-kmoX4_PJ.js → chunk-DI55MBZ5-Dx_wwX6l.js} +6 -6
  29. package/dist/{chunk-EXTU4WIE-anbpETeD.js → chunk-EXTU4WIE-CgefpSXQ.js} +2 -2
  30. package/dist/{chunk-FMBD7UC4-WPL5C7Yr.js → chunk-FMBD7UC4-BjIaI-XO.js} +1 -1
  31. package/dist/{chunk-FRFDVMJY-DiBbw2aO.js → chunk-FRFDVMJY-Derq8UzY.js} +1 -1
  32. package/dist/{chunk-HN2XXSSU-GC9oeSst.js → chunk-HN2XXSSU-DAhNp1ig.js} +1 -1
  33. package/dist/{chunk-JA3XYJ7Z-DT9thFja.js → chunk-JA3XYJ7Z-CcIOIFpc.js} +3 -3
  34. package/dist/{chunk-JZLCHNYA-CoUG-3_5.js → chunk-JZLCHNYA-CgO0GG1p.js} +6 -6
  35. package/dist/{chunk-MI3HLSF2-CAUClZTk.js → chunk-MI3HLSF2-AKwFNP3m.js} +1 -1
  36. package/dist/{chunk-N4CR4FBY-CgZCueW4.js → chunk-N4CR4FBY-2qzGzAxT.js} +7 -7
  37. package/dist/{chunk-PL6DKKU2-B93gSUY5.js → chunk-PL6DKKU2-KoG71Zin.js} +1 -1
  38. package/dist/{chunk-QN33PNHL-T-uF7h40.js → chunk-QN33PNHL-Dp1qBo28.js} +2 -2
  39. package/dist/{chunk-QXUST7PY-D1a8s9iP.js → chunk-QXUST7PY-BxmmeIwf.js} +10 -10
  40. package/dist/{chunk-QZHKN3VN-cTJMhkeY.js → chunk-QZHKN3VN-BK9tlbfw.js} +1 -1
  41. package/dist/{chunk-S3R3BYOJ-KAv7zltL.js → chunk-S3R3BYOJ-D3Rys9ZW.js} +6 -6
  42. package/dist/{chunk-SJTYNZTY-CxP2rIlm.js → chunk-SJTYNZTY-Co-DhKAG.js} +1 -1
  43. package/dist/{chunk-TCCFYFTB-BrhaBdR8.js → chunk-TCCFYFTB-BAhzIqBO.js} +6 -6
  44. package/dist/{chunk-TQ3KTPDO-C0j_j938.js → chunk-TQ3KTPDO-DxYI735Z.js} +1 -1
  45. package/dist/{chunk-TZMSLE5B-BY2BhygM.js → chunk-TZMSLE5B-Dxumt0wv.js} +3 -3
  46. package/dist/{chunk-UMXZTB3W-BDwe1tzK.js → chunk-UMXZTB3W-CuahpKin.js} +1 -1
  47. package/dist/classDiagram-2ON5EDUG-DkOvXRlx.js +30 -0
  48. package/dist/classDiagram-v2-WZHVMYZB-CYoFMQKE.js +30 -0
  49. package/dist/{clike-D8Yzpo0X.js → clike-B90WKs4D.js} +1 -1
  50. package/dist/clojure-CUC2I1hM.js +4 -0
  51. package/dist/{clone-DgKKB0qR.js → clone-DDndUqI0.js} +1 -1
  52. package/dist/cmake-8PcMxXnB.js +4 -0
  53. package/dist/cobol-DkkkDz5v.js +4 -0
  54. package/dist/{code-block-37QAKDTI-CdeP6GC3.js → code-block-37QAKDTI-D9EnJeBI.js} +1 -1
  55. package/dist/coffeescript-CCupxOZf.js +4 -0
  56. package/dist/commonlisp-DhUfGX6b.js +4 -0
  57. package/dist/{constants-CXiS0vdr.js → constants-D1Am36hX.js} +1 -1
  58. package/dist/{cose-bilkent-S5V4N54A-CFYo67PX.js → cose-bilkent-S5V4N54A-DvCk1aXi.js} +2 -2
  59. package/dist/crystal-DSaw6rFQ.js +4 -0
  60. package/dist/css-D4QDewkG.js +4 -0
  61. package/dist/cypher-CrYVqw_F.js +4 -0
  62. package/dist/d-Cr3H3pPx.js +4 -0
  63. package/dist/{dagre-6UL2VRFP-CblBywCi.js → dagre-6UL2VRFP-BXBaU8PB.js} +16 -16
  64. package/dist/{dagre-lLfkMavw.js → dagre-D3dlYz-r.js} +9 -19
  65. package/dist/{data-grid-overlay-editor-nQBPvGNe.js → data-grid-overlay-editor-nZux6_d2.js} +2 -2
  66. package/dist/{diagram-PSM6KHXK-CEWNAeex.js → diagram-PSM6KHXK-CJxjk4LG.js} +22 -22
  67. package/dist/{diagram-QEK2KX5R-DvNPI6r6.js → diagram-QEK2KX5R-IMILPh_p.js} +17 -17
  68. package/dist/{diagram-S2PKOQOG-Bd8sWp1V.js → diagram-S2PKOQOG-6O0g6Boj.js} +17 -17
  69. package/dist/diff-ODiZJGls.js +4 -0
  70. package/dist/{dist-5XnuIjzQ.js → dist-5nTQE2yt.js} +2 -2
  71. package/dist/dist-B0R_ZM4-.js +6 -0
  72. package/dist/dist-B4a9_9pj.js +5 -0
  73. package/dist/{dist-DqWKkHpR.js → dist-B6Op2ogv.js} +2 -2
  74. package/dist/{dist-n5m_P2Mr.js → dist-B9KLrfoh.js} +1 -1
  75. package/dist/dist-BCSUKEwO.js +5 -0
  76. package/dist/{dist-B7Wxocl4.js → dist-BJ3fhRYu.js} +2 -2
  77. package/dist/dist-BONIDQq6.js +5 -0
  78. package/dist/{dist-C-8pSTml.js → dist-BUSLKXcu.js} +2 -2
  79. package/dist/dist-BYeRx2hb.js +5 -0
  80. package/dist/{dist-nggqqIVv.js → dist-BemtTYzN.js} +5 -5
  81. package/dist/{dist-DM6PPTtq.js → dist-BiZZAo22.js} +1 -1
  82. package/dist/{dist-DS6k03oP.js → dist-BkXs8bw0.js} +1 -1
  83. package/dist/{dist-CgCO1-j-.js → dist-BoNJsA65.js} +1 -1
  84. package/dist/{dist-_k5rxRQI.js → dist-Brb6VNc4.js} +2 -2
  85. package/dist/{dist-B5pakFbT.js → dist-C-EcLtO9.js} +1 -1
  86. package/dist/{dist-CD0aazOL.js → dist-C0XYIHKJ.js} +1 -1
  87. package/dist/{dist-C6R5LnmH.js → dist-C9qF7MRB.js} +2 -2
  88. package/dist/{dist-DFBgTyQ4.js → dist-CBwMSFDu.js} +2 -2
  89. package/dist/{dist-BnIjtwRq.js → dist-CQidOwep.js} +3 -3
  90. package/dist/{dist-BKKbDTix.js → dist-CTwGwcQ8.js} +2 -2
  91. package/dist/{dist-B7pzGu3v.js → dist-CVqlhD3M.js} +2 -2
  92. package/dist/{dist-Dv7FDx1_.js → dist-Ci_jEudG.js} +1 -1
  93. package/dist/{dist-xzh9kCE-.js → dist-CnFp2Kcl.js} +2 -2
  94. package/dist/{dist-BqO6WmbK.js → dist-CxAX99oC.js} +2 -2
  95. package/dist/{dist-DJ3EjUNc.js → dist-DBXPlQ0D.js} +1 -1
  96. package/dist/{dist-DUY_SIWT.js → dist-DBYL08Lu.js} +4 -4
  97. package/dist/{dist-DInzmbT2.js → dist-DLNKBPsk.js} +4 -4
  98. package/dist/{dist-C_tLMuB0.js → dist-DStU8He1.js} +2 -2
  99. package/dist/dist-DZjX5TYv.js +5 -0
  100. package/dist/{dist-B4HRhSlD.js → dist-Dg65j0em.js} +1 -1
  101. package/dist/{dist-Ck4gp1Wp.js → dist-DjaZNkZ7.js} +3 -3
  102. package/dist/dist-Dkw9x6kc.js +5 -0
  103. package/dist/{dist-BnCNDnA7.js → dist-DmFS6KZW.js} +3 -3
  104. package/dist/dist-Ds6UaXGR.js +6 -0
  105. package/dist/{dist-DqezbmBd.js → dist-DwmxBUOe.js} +2 -2
  106. package/dist/dist-KuEJ1Q53.js +8 -0
  107. package/dist/dist-S72WNyTZ.js +5 -0
  108. package/dist/dist-bTG-yssT.js +5 -0
  109. package/dist/dist-diF0sguc.js +8 -0
  110. package/dist/dist-mJ84BIgu.js +8 -0
  111. package/dist/{dist-CDXh0OSg.js → dist-qoCY8giM.js} +2 -2
  112. package/dist/{dist-BmqJ8_Hr.js → dist-v-1kgqZ3.js} +1 -1
  113. package/dist/dist-wSIhFWQz.js +8 -0
  114. package/dist/{dockerfile-m9DOSpI5.js → dockerfile-DfXhjEUG.js} +1 -1
  115. package/dist/dtd-C-t2Rk7F.js +4 -0
  116. package/dist/dylan-B4ctBLGp.js +4 -0
  117. package/dist/ecl-DqWfymni.js +4 -0
  118. package/dist/eiffel-DjBKKAr7.js +4 -0
  119. package/dist/elm--fxeC0FV.js +4 -0
  120. package/dist/{erDiagram-Q2GNP2WA-C5bM6dcx.js → erDiagram-Q2GNP2WA-sho7Cl9f.js} +15 -15
  121. package/dist/erlang-CaKXCX6H.js +4 -0
  122. package/dist/{esm-C9_jY_wu.js → esm-CMg2ABu6.js} +2 -2
  123. package/dist/{esm-BBsFNcPe.js → esm-cqK9POGH.js} +105 -105
  124. package/dist/{factor-Nva0iSXt.js → factor--4HHM8Rw.js} +1 -1
  125. package/dist/factor-DlLO5EFS.js +4 -0
  126. package/dist/{flowDiagram-NV44I4VS-CULNNnl6.js → flowDiagram-NV44I4VS-C4nY4Fbz.js} +17 -17
  127. package/dist/forth-rOO6LVj_.js +4 -0
  128. package/dist/fortran-CUg15VGR.js +4 -0
  129. package/dist/{ganttDiagram-JELNMOA3-DIi-PAjP.js → ganttDiagram-JELNMOA3-CtxNcCM2.js} +10 -10
  130. package/dist/gas-BMRJspiW.js +4 -0
  131. package/dist/{get-CqYRpAGT.js → get-CqrzlV1v.js} +1 -1
  132. package/dist/gherkin-DRxzijZU.js +4 -0
  133. package/dist/{gitGraph-G5XIXVHT-S7ypWRtz.js → gitGraph-G5XIXVHT-SL6TDof6.js} +3 -3
  134. package/dist/{gitGraphDiagram-V2S2FVAM-BGDZsLhF.js → gitGraphDiagram-V2S2FVAM-D9885mxd.js} +17 -17
  135. package/dist/{glide-data-editor-D0IYL4_F.js → glide-data-editor-CkVEV-Gk.js} +8 -8
  136. package/dist/{graphlib-TFMRsJse.js → graphlib-CxWdvYQt.js} +2 -2
  137. package/dist/groovy-BmrQ8pUP.js +4 -0
  138. package/dist/haskell-BuaYfKOz.js +4 -0
  139. package/dist/haxe-DcH9eA0a.js +5 -0
  140. package/dist/idl-DGlcm4Ls.js +4 -0
  141. package/dist/{info-VBDWY6EO-CRCLLsdb.js → info-VBDWY6EO-6MXPTSmi.js} +3 -3
  142. package/dist/infoDiagram-HS3SLOUP-Bw2FlRwF.js +30 -0
  143. package/dist/{input-C5uUN4xL.js → input-BSde8uV4.js} +4 -4
  144. package/dist/javascript-CeTk7rzr.js +4 -0
  145. package/dist/{journeyDiagram-XKPGCS4Q-DUANVNzR.js → journeyDiagram-XKPGCS4Q-BXlCEth8.js} +7 -7
  146. package/dist/julia-BoP_q1gm.js +4 -0
  147. package/dist/{kanban-definition-3W4ZIXB7-dEyZPMAd.js → kanban-definition-3W4ZIXB7-CorxzSYm.js} +12 -12
  148. package/dist/{katex-Ckd8lBne.js → katex-CkLtKXwv.js} +1 -1
  149. package/dist/{label-DwSVaniz.js → label-DTNqw9tv.js} +1 -1
  150. package/dist/{line-LK_5q2B9.js → line-PAEmCpyD.js} +3 -3
  151. package/dist/{linear-CJ6ctpF3.js → linear-v57w-fIs.js} +4 -4
  152. package/dist/livescript-B7IMN-ba.js +4 -0
  153. package/dist/{loader-DrMJeyDu.js → loader-CMMa6QVT.js} +5 -2
  154. package/dist/lua-q1InavKb.js +4 -0
  155. package/dist/main.js +4412 -4445
  156. package/dist/mathematica-DvR8-_EI.js +4 -0
  157. package/dist/mbox-7h5MNBS_.js +4 -0
  158. package/dist/{mermaid-4DMBBIKO-C2ajbN0u.js → mermaid-4DMBBIKO-Cw46o6DN.js} +1 -1
  159. package/dist/{mermaid-Bwy7OYzI.js → mermaid-CEKslOkI.js} +46 -46
  160. package/dist/{mermaid-parser.core-DDGHdNnp.js → mermaid-parser.core-cq4YDee-.js} +8 -8
  161. package/dist/{mhchem-DAXq6Zll.js → mhchem-BuY5LDSq.js} +1 -1
  162. package/dist/{mindmap-definition-VGOIOE7T-jZ7-PfhM.js → mindmap-definition-VGOIOE7T-DRsT8UaN.js} +14 -14
  163. package/dist/mirc-D-XM8A5c.js +4 -0
  164. package/dist/mllike-BQGkkbmf.js +6 -0
  165. package/dist/modelica-D_yRj_WU.js +4 -0
  166. package/dist/mscgen-B-rltAjp.js +6 -0
  167. package/dist/mumps-2kh8TU2b.js +4 -0
  168. package/dist/{nsis-DgKbDAVQ.js → nsis-B6EN9LWI.js} +1 -1
  169. package/dist/nsis-CtusEqwb.js +4 -0
  170. package/dist/ntriples-BdAXw6zV.js +4 -0
  171. package/dist/{number-overlay-editor-BqzX9dHu.js → number-overlay-editor-DxLoVuuE.js} +1 -1
  172. package/dist/octave-CsNFmVp5.js +4 -0
  173. package/dist/{once-BfpiMcdf.js → once-CZno0h-b.js} +1 -1
  174. package/dist/{ordinal-COPPjmMz.js → ordinal-D7fa8Sey.js} +1 -1
  175. package/dist/oz-odIXCrKd.js +4 -0
  176. package/dist/{packet-DYOGHKS2-DPTC67cY.js → packet-DYOGHKS2-Dw08gMaZ.js} +3 -3
  177. package/dist/pascal-B9Mfk3Fo.js +4 -0
  178. package/dist/perl-C48inLcz.js +4 -0
  179. package/dist/{pie-VRWISCQL-DfbgsrV5.js → pie-VRWISCQL-C5SPSvT8.js} +3 -3
  180. package/dist/{pieDiagram-ADFJNKIX-BiAFdzOP.js → pieDiagram-ADFJNKIX-DhJ1Cx2O.js} +22 -22
  181. package/dist/pig-uwRtAssU.js +4 -0
  182. package/dist/powershell-CXqlca-i.js +4 -0
  183. package/dist/{precisionRound-Duzbr5ur.js → precisionRound-CGLoV26P.js} +1 -1
  184. package/dist/{process-output-CT8hHGp6.js → process-output-KyzWazB-.js} +163 -163
  185. package/dist/properties-D6Zu1rpK.js +4 -0
  186. package/dist/protobuf-BlNNWZaR.js +4 -0
  187. package/dist/pug-DytcK7bv.js +4 -0
  188. package/dist/{pug-CTpLcc1b.js → pug-xrm7jQ2R.js} +1 -1
  189. package/dist/puppet-lJ8Ok3iY.js +4 -0
  190. package/dist/python-cMaF7kUp.js +4 -0
  191. package/dist/q-Dgt2HYQh.js +4 -0
  192. package/dist/{quadrantDiagram-AYHSOK5B-CZjWO4oG.js → quadrantDiagram-AYHSOK5B-DXUFIWlz.js} +5 -5
  193. package/dist/r-Bm4S4awf.js +4 -0
  194. package/dist/{radar-ZZBFDIW7-B5Hwx2a8.js → radar-ZZBFDIW7-BvY0bgSg.js} +3 -3
  195. package/dist/range-CYz5jI--.js +17 -0
  196. package/dist/{react-vega-JMnqwKtN.js → react-vega-CzRAIHrv.js} +18 -18
  197. package/dist/react-vega-DayQmZjG.js +9 -0
  198. package/dist/{requirementDiagram-UZGBJVZJ-D9PkMDa5.js → requirementDiagram-UZGBJVZJ-DO_gtQIb.js} +14 -14
  199. package/dist/rpm-_8LbzMVc.js +5 -0
  200. package/dist/ruby-Cr8IJ5VZ.js +4 -0
  201. package/dist/{sankeyDiagram-TZEHDZUN-DuCG1ouO.js → sankeyDiagram-TZEHDZUN-OZzXEkuG.js} +5 -5
  202. package/dist/sas-CFcSfo2_.js +4 -0
  203. package/dist/scheme-N4XRoKgc.js +4 -0
  204. package/dist/{sequenceDiagram-WL72ISMW-BLJqizTv.js → sequenceDiagram-WL72ISMW-K7nZRifV.js} +8 -8
  205. package/dist/shell-B4L7f_ds.js +4 -0
  206. package/dist/sieve-UI6J3Gm0.js +4 -0
  207. package/dist/{slides-component-BsaaAy66.js → slides-component-CIcSvFh7.js} +1 -1
  208. package/dist/smalltalk-BuaPZAZU.js +4 -0
  209. package/dist/sparql-1rKrq463.js +4 -0
  210. package/dist/{spec-BLAZSydG.js → spec-DYaR1rJh.js} +2 -2
  211. package/dist/{src-szye8OCw.js → src-DbP20yFZ.js} +1 -1
  212. package/dist/{stateDiagram-FKZM4ZOC-CmZfv4_-.js → stateDiagram-FKZM4ZOC-DzXJZAq7.js} +19 -19
  213. package/dist/stateDiagram-v2-4FDKWEC3-BZBPUmyF.js +29 -0
  214. package/dist/{step-1PmBKr2y.js → step-qd10PbTJ.js} +1 -1
  215. package/dist/stex-CZyTRGVB.js +4 -0
  216. package/dist/style.css +1 -1
  217. package/dist/stylus-DvSovJEP.js +4 -0
  218. package/dist/swift-D-_E7Yyb.js +4 -0
  219. package/dist/tcl-Di5sAVHN.js +4 -0
  220. package/dist/textile-Benwt66z.js +4 -0
  221. package/dist/{time-B8tcX_hU.js → time-Bdnxi22U.js} +4 -4
  222. package/dist/{timeline-definition-IT6M3QCI-C7yv4fEk.js → timeline-definition-IT6M3QCI-DNoLAh-i.js} +4 -4
  223. package/dist/{toDate-BWaG12Pv.js → toDate-D6VXexnV.js} +2 -2
  224. package/dist/toml-CeOvPOkY.js +4 -0
  225. package/dist/{treemap-GDKQZRPO-B_LAAEIM.js → treemap-GDKQZRPO-C5OoxpmV.js} +3 -3
  226. package/dist/troff-DJN9hfgu.js +4 -0
  227. package/dist/ttcn-DQW2Psjf.js +4 -0
  228. package/dist/ttcn-cfg-zFG_MNpg.js +4 -0
  229. package/dist/turtle-DHRyNlSc.js +4 -0
  230. package/dist/{types-Dqw69fPc.js → types-CQ-RbYxp.js} +1 -1
  231. package/dist/{useAsyncData-Dqt2tV1E.js → useAsyncData-Cd4Urlww.js} +2 -2
  232. package/dist/{useDeepCompareMemoize-D2PKDkrk.js → useDeepCompareMemoize-DOzKCTzc.js} +3 -3
  233. package/dist/{useIframeCapabilities-DlwLttZw.js → useIframeCapabilities-BVQrlRBd.js} +1 -1
  234. package/dist/{useLifecycle-CJ_5Z4Mk.js → useLifecycle-Dids8BPm.js} +1 -1
  235. package/dist/{useTheme-BIAKDAh6.js → useTheme-Dm1WaAGy.js} +1 -1
  236. package/dist/vb-CXWH9DD-.js +4 -0
  237. package/dist/vbscript-qr8qVck5.js +4 -0
  238. package/dist/{vega-component-CTOT0vRO.js → vega-component-BaDgUvQP.js} +12 -12
  239. package/dist/{vega-loader.browser-hMqVC9bf.js → vega-loader.browser-DqEcFOPD.js} +3 -3
  240. package/dist/velocity-C_9pUJRx.js +4 -0
  241. package/dist/verilog-DxBstgBa.js +4 -0
  242. package/dist/vhdl-odUxAbE6.js +4 -0
  243. package/dist/webidl-Dfn5Rku4.js +4 -0
  244. package/dist/xquery-CrJs6SXr.js +4 -0
  245. package/dist/{xychartDiagram-PRI3JC2R-DC0-6FAB.js → xychartDiagram-PRI3JC2R-ehVeySMW.js} +13 -13
  246. package/dist/yacas-B-uDDLZe.js +4 -0
  247. package/dist/z80-51gxgAXE.js +4 -0
  248. package/package.json +1 -1
  249. package/src/__tests__/branded.ts +6 -0
  250. package/src/components/data-table/TableBottomBar.tsx +176 -0
  251. package/src/components/data-table/TableTopBar.tsx +137 -0
  252. package/src/components/data-table/charts/charts.tsx +40 -11
  253. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  254. package/src/components/data-table/data-table.tsx +35 -37
  255. package/src/components/data-table/export-actions.tsx +231 -0
  256. package/src/components/data-table/loading-table.tsx +4 -1
  257. package/src/components/data-table/pagination.tsx +171 -251
  258. package/src/components/data-table/range-focus/__tests__/cell-selection-stats.test.tsx +16 -12
  259. package/src/components/data-table/range-focus/cell-selection-stats.tsx +11 -2
  260. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +1 -1
  261. package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +2 -2
  262. package/src/components/editor/chrome/panels/context-aware-panel/context-aware-panel.tsx +1 -1
  263. package/src/core/cells/__tests__/apply-transaction.test.ts +12 -11
  264. package/src/core/cells/document-changes.ts +9 -9
  265. package/src/core/islands/__tests__/bridge.test.ts +20 -10
  266. package/src/core/network/__tests__/requests-lazy.test.ts +30 -14
  267. package/src/core/websocket/useMarimoKernelConnection.tsx +5 -11
  268. package/src/css/app/Cell.css +22 -1
  269. package/src/css/table.css +17 -0
  270. package/src/plugins/impl/DataTablePlugin.tsx +5 -0
  271. package/src/plugins/impl/vega/__tests__/utils.test.ts +68 -0
  272. package/src/plugins/impl/vega/utils.ts +14 -5
  273. package/src/plugins/impl/vega/vega.css +2 -1
  274. package/src/utils/time.ts +4 -2
  275. package/src/utils/typed.ts +2 -2
  276. package/dist/apl-Y7yFAg6_.js +0 -4
  277. package/dist/architecture-7HQA4BMR-SvLOcNCN.js +0 -6
  278. package/dist/arrays--2cd0hte.js +0 -59
  279. package/dist/asciiarmor-Bl8b2p0w.js +0 -4
  280. package/dist/asn1-BF6cywqm.js +0 -4
  281. package/dist/brainfuck-BuqydWe3.js +0 -4
  282. package/dist/classDiagram-2ON5EDUG-LT-Hu_dE.js +0 -30
  283. package/dist/classDiagram-v2-WZHVMYZB-G4qrOqlY.js +0 -30
  284. package/dist/clojure-CAHAWK5H.js +0 -4
  285. package/dist/cmake-BogDc4GF.js +0 -4
  286. package/dist/cobol-DRnpeU4u.js +0 -4
  287. package/dist/coffeescript-9MgX7RN8.js +0 -4
  288. package/dist/commonlisp-CVz2KONN.js +0 -4
  289. package/dist/crystal-td8mwLG5.js +0 -4
  290. package/dist/css-BK451dBn.js +0 -4
  291. package/dist/cypher-DuNPR6Ie.js +0 -4
  292. package/dist/d-DL6oP_-2.js +0 -4
  293. package/dist/diff-D9CplOBj.js +0 -4
  294. package/dist/dist-BOx8CJbo.js +0 -5
  295. package/dist/dist-BYoWtcAc.js +0 -5
  296. package/dist/dist-BaGdTXK1.js +0 -5
  297. package/dist/dist-BhGA2ia0.js +0 -8
  298. package/dist/dist-BoHuwe5C.js +0 -5
  299. package/dist/dist-CJ-2wW2z.js +0 -8
  300. package/dist/dist-Ccbo2rCF.js +0 -8
  301. package/dist/dist-CwayJLIO.js +0 -5
  302. package/dist/dist-D-jpfI6q.js +0 -6
  303. package/dist/dist-DShjplLu.js +0 -8
  304. package/dist/dist-DhBqFguQ.js +0 -5
  305. package/dist/dist-DiCgMCy4.js +0 -6
  306. package/dist/dist-Dqa-QKVa.js +0 -5
  307. package/dist/dist-OFv2DOPe.js +0 -5
  308. package/dist/dtd-Ce1c54UO.js +0 -4
  309. package/dist/dylan-B43wjIwg.js +0 -4
  310. package/dist/ecl-DK-fZmir.js +0 -4
  311. package/dist/eiffel-CNuvvPqD.js +0 -4
  312. package/dist/elm-DZEkBjgQ.js +0 -4
  313. package/dist/erlang-Dw4PDZV_.js +0 -4
  314. package/dist/factor-C9JRv63g.js +0 -4
  315. package/dist/forth-CKhoqn4e.js +0 -4
  316. package/dist/fortran-Do51bToK.js +0 -4
  317. package/dist/gas-BZfL3Uwh.js +0 -4
  318. package/dist/gherkin-BwQh4ehw.js +0 -4
  319. package/dist/groovy-CG5kCGiv.js +0 -4
  320. package/dist/haskell-BKii9uTg.js +0 -4
  321. package/dist/haxe-Bsz30J8x.js +0 -5
  322. package/dist/idl-BlxgaPKj.js +0 -4
  323. package/dist/infoDiagram-HS3SLOUP-fkZhmVE7.js +0 -30
  324. package/dist/javascript-SNhUvTcB.js +0 -4
  325. package/dist/julia-CGZzaDyk.js +0 -4
  326. package/dist/livescript-Cj6cX-Ys.js +0 -4
  327. package/dist/lua-BcVHrD8f.js +0 -4
  328. package/dist/mathematica-DLY8ZGoJ.js +0 -4
  329. package/dist/mbox-BNTsMWS5.js +0 -4
  330. package/dist/mirc-oyeOBir2.js +0 -4
  331. package/dist/mllike-ByxznKQw.js +0 -6
  332. package/dist/modelica-DNLhoyD8.js +0 -4
  333. package/dist/mscgen-DkZltsli.js +0 -6
  334. package/dist/mumps-TTiQB1xv.js +0 -4
  335. package/dist/nsis-RT1O1Ph8.js +0 -4
  336. package/dist/ntriples-CxsCiZ7Z.js +0 -4
  337. package/dist/octave-CkLh5tpW.js +0 -4
  338. package/dist/oz-yI7U9eVH.js +0 -4
  339. package/dist/pascal-CQK8sfDe.js +0 -4
  340. package/dist/perl-BEG8-kZl.js +0 -4
  341. package/dist/pig-DLLCqQaR.js +0 -4
  342. package/dist/powershell-CtjMkVO_.js +0 -4
  343. package/dist/properties-Domeb57z.js +0 -4
  344. package/dist/protobuf-0yk85TV6.js +0 -4
  345. package/dist/pug-B-BiNkM-.js +0 -4
  346. package/dist/puppet-C0N4vevK.js +0 -4
  347. package/dist/python-BZFa8G3C.js +0 -4
  348. package/dist/q-gcj7dgJv.js +0 -4
  349. package/dist/r-DavzTuPU.js +0 -4
  350. package/dist/react-vega-DfxWeueH.js +0 -9
  351. package/dist/rpm-bPj31ya8.js +0 -5
  352. package/dist/ruby-3UzzijjE.js +0 -4
  353. package/dist/sas-D9upmCP9.js +0 -4
  354. package/dist/scheme-DqWYzIFR.js +0 -4
  355. package/dist/shell-w63nkNmU.js +0 -4
  356. package/dist/sieve-Dz_ISrl6.js +0 -4
  357. package/dist/smalltalk-BXZ14pkr.js +0 -4
  358. package/dist/sparql-Boyc0wkb.js +0 -4
  359. package/dist/stateDiagram-v2-4FDKWEC3-BpOH8Bgl.js +0 -29
  360. package/dist/stex-DYK84lGq.js +0 -4
  361. package/dist/stylus-m9L_f1X1.js +0 -4
  362. package/dist/swift-C4TGn99K.js +0 -4
  363. package/dist/tcl-D_L0cfYZ.js +0 -4
  364. package/dist/textile-BAofYdKN.js +0 -4
  365. package/dist/toml-DCDKACLL.js +0 -4
  366. package/dist/troff-JHOU2VZK.js +0 -4
  367. package/dist/ttcn-Cxhng3qq.js +0 -4
  368. package/dist/ttcn-cfg-DJgUIu5n.js +0 -4
  369. package/dist/turtle-DKYkKZjV.js +0 -4
  370. package/dist/vb-C9rpn9hN.js +0 -4
  371. package/dist/vbscript-BQ7rxQU0.js +0 -4
  372. package/dist/velocity-C8WXmzLz.js +0 -4
  373. package/dist/verilog-BUXJEyEq.js +0 -4
  374. package/dist/vhdl-C18YIXfF.js +0 -4
  375. package/dist/webidl-D97EKzDx.js +0 -4
  376. package/dist/xquery-BZM6yzG2.js +0 -4
  377. package/dist/yacas-CXKck-Ok.js +0 -4
  378. package/dist/z80-BbF6ykWc.js +0 -4
  379. package/src/components/data-table/TableActions.tsx +0 -170
  380. package/src/components/data-table/download-actions.tsx +0 -224
  381. /package/dist/{ImageComparisonComponent-B5q26YVi.js → ImageComparisonComponent-DY3J_vIU.js} +0 -0
  382. /package/dist/{Plot-syRHsk-l.js → Plot-WhbJAbBh.js} +0 -0
  383. /package/dist/{apl-BqjtmlWW.js → apl-Oc3bL26_.js} +0 -0
  384. /package/dist/{array-D7wW5QoO.js → array-ByIS7m3B.js} +0 -0
  385. /package/dist/{asciiarmor-D9C9bbeV.js → asciiarmor-DTbPh2VI.js} +0 -0
  386. /package/dist/{asn1-D_zR1ubK.js → asn1-CGhwu1Ri.js} +0 -0
  387. /package/dist/{asterisk-B0dLLA8Z.js → asterisk-BApaB_8m.js} +0 -0
  388. /package/dist/{brainfuck-79SC7EYA.js → brainfuck-CA0L8lRq.js} +0 -0
  389. /package/dist/{chunk-DR5Q36YT-BxPcQ21t.js → chunk-DR5Q36YT-C40cYcy5.js} +0 -0
  390. /package/dist/{click-outside-container-DNfggvIW.js → click-outside-container-vCXhHl-R.js} +0 -0
  391. /package/dist/{clike-DFDX2jWq.js → clike-CEtUBPHD.js} +0 -0
  392. /package/dist/{clojure-Bb3Od9By.js → clojure-BszjvdGo.js} +0 -0
  393. /package/dist/{cmake-DYGUYEtU.js → cmake-B2Gvps8b.js} +0 -0
  394. /package/dist/{cobol-CcWmcAFT.js → cobol-DuMch8nn.js} +0 -0
  395. /package/dist/{coffeescript-BVa1qoL6.js → coffeescript-L9aKXVsJ.js} +0 -0
  396. /package/dist/{colors-6DRQ0kEF.js → colors-IJ-2cn2o.js} +0 -0
  397. /package/dist/{common-keywords-Bz8dNfWa.js → common-keywords-CsU75Ked.js} +0 -0
  398. /package/dist/{commonlisp-zi51jgUH.js → commonlisp-CrtdssxB.js} +0 -0
  399. /package/dist/{crystal-QjpegJHM.js → crystal-vvNY0LpY.js} +0 -0
  400. /package/dist/{css-B_GfJtcK.js → css-B1GdzqT1.js} +0 -0
  401. /package/dist/{cypher-BVuYJpGf.js → cypher-BtZvV7bW.js} +0 -0
  402. /package/dist/{cytoscape.esm-BYAuS6uS.js → cytoscape.esm-CRfNlsPy.js} +0 -0
  403. /package/dist/{d-BT97RiQI.js → d-B0UN3V-Z.js} +0 -0
  404. /package/dist/{defaultLocale-B_A76Zpk.js → defaultLocale-Bxoo2-30.js} +0 -0
  405. /package/dist/{defaultLocale-DjFHq3Xk.js → defaultLocale-qS7DaAmi.js} +0 -0
  406. /package/dist/{diff-CHd93v7L.js → diff-DOpgjj1W.js} +0 -0
  407. /package/dist/{dist-CqR8FBcH.js → dist-BjWd_Ei9.js} +0 -0
  408. /package/dist/{dist-CORAUsE1.js → dist-KZI_BHqV.js} +0 -0
  409. /package/dist/{dtd-akLFIRuZ.js → dtd-Ctnjxrle.js} +0 -0
  410. /package/dist/{duckdb-keywords-CQAIHMbC.js → duckdb-keywords-DjrZdCO2.js} +0 -0
  411. /package/dist/{dylan-Iy-rgNOc.js → dylan-DFXkoaZy.js} +0 -0
  412. /package/dist/{ebnf-CTkZpZPT.js → ebnf-XJCIl_em.js} +0 -0
  413. /package/dist/{ecl-BhUXC_aR.js → ecl-C1NExZip.js} +0 -0
  414. /package/dist/{eiffel-DIRAlWPD.js → eiffel-uXVGgleg.js} +0 -0
  415. /package/dist/{elm-BDgVzkJ4.js → elm-CBOFnnib.js} +0 -0
  416. /package/dist/{emotion-is-prop-valid.esm-DdzHpbbG.js → emotion-is-prop-valid.esm-CJVjyntJ.js} +0 -0
  417. /package/dist/{erlang-Djcs_NwB.js → erlang-DMnrT8XK.js} +0 -0
  418. /package/dist/{error-banner-DkDzvax3.js → error-banner-Bx9kIgrs.js} +0 -0
  419. /package/dist/{esm-BRwAuUu2.js → esm-D4gzqVRq.js} +0 -0
  420. /package/dist/{fcl-OXoT8w4k.js → fcl-fh4Mj0bc.js} +0 -0
  421. /package/dist/{forth-c_NTahPv.js → forth-DDpxS4nw.js} +0 -0
  422. /package/dist/{fortran-Bpxt27dn.js → fortran-B6uYqQMz.js} +0 -0
  423. /package/dist/{gas-RVBts6ZK.js → gas-BKnWzuFz.js} +0 -0
  424. /package/dist/{gherkin-Hf6PTauh.js → gherkin-pBt0wT4X.js} +0 -0
  425. /package/dist/{groovy-CKjO-cRi.js → groovy-DKsn4ppB.js} +0 -0
  426. /package/dist/{haskell-DC1Gan6v.js → haskell-BJVBJQcy.js} +0 -0
  427. /package/dist/{haxe-Bpne--ot.js → haxe-rLN5UZU5.js} +0 -0
  428. /package/dist/{http-CPVO27fZ.js → http-CbJFDV7c.js} +0 -0
  429. /package/dist/{idl-GRIbMIEq.js → idl-B4mwMAo-.js} +0 -0
  430. /package/dist/{init-BfRhston.js → init-Cge3yl4r.js} +0 -0
  431. /package/dist/{invariant-CzjtdzpE.js → invariant-D4hPsZFI.js} +0 -0
  432. /package/dist/{isEmpty-D_Jzlmqv.js → isEmpty-BQtUinxJ.js} +0 -0
  433. /package/dist/{javascript-nS0zxWNO.js → javascript-Hf2NLNC0.js} +0 -0
  434. /package/dist/{julia-CQpdTxmO.js → julia-GGpx21YN.js} +0 -0
  435. /package/dist/{katex-Dg42UEnr.js → katex-CQ_cP8Uu.js} +0 -0
  436. /package/dist/{livescript-D5kqrQol.js → livescript-CSvXMspZ.js} +0 -0
  437. /package/dist/{lua-CKifrpGK.js → lua-CVMR5LMW.js} +0 -0
  438. /package/dist/{main-C01_ic0d.js → main-CvkAPtaq.js} +0 -0
  439. /package/dist/{math-BbMyrONz.js → math-CEWMqgbD.js} +0 -0
  440. /package/dist/{mathematica-CxT3f_fi.js → mathematica-JENNt-p4.js} +0 -0
  441. /package/dist/{mbox-C2_n_I9h.js → mbox-mzifoc8E.js} +0 -0
  442. /package/dist/{memoize-CwWm-NpB.js → memoize-CuHciEBb.js} +0 -0
  443. /package/dist/{merge-Byt9w-nO.js → merge-CA_buyY3.js} +0 -0
  444. /package/dist/{micromark-factory-space-YUxUai1y.js → micromark-factory-space-BHslBP9f.js} +0 -0
  445. /package/dist/{mirc-BTQeASBH.js → mirc-BXoiItvN.js} +0 -0
  446. /package/dist/{mllike-BxO6Hl5N.js → mllike-H-KR9OuH.js} +0 -0
  447. /package/dist/{modelica-DuivZReX.js → modelica-B6Hm3mMl.js} +0 -0
  448. /package/dist/{mscgen-DwD83FOm.js → mscgen-D8TF_Hei.js} +0 -0
  449. /package/dist/{mumps-CdVjp3OE.js → mumps-CD-kNPt4.js} +0 -0
  450. /package/dist/{nginx-Bi9TuNqb.js → nginx-9EZQIKsh.js} +0 -0
  451. /package/dist/{node-sql-parser-Bet3kHkt.js → node-sql-parser-DIe6Cq_-.js} +0 -0
  452. /package/dist/{now-uNLDfbuW.js → now-CXAdKY5k.js} +0 -0
  453. /package/dist/{ntriples-DBS60qLp.js → ntriples-DgnpxU40.js} +0 -0
  454. /package/dist/{octave-BL0tQUFC.js → octave-CkobqyVm.js} +0 -0
  455. /package/dist/{oz-DBrG4vwi.js → oz-ChDLd9tS.js} +0 -0
  456. /package/dist/{pascal-BWV9h8yS.js → pascal-CvlkwK7E.js} +0 -0
  457. /package/dist/{path-C_x2ySFi.js → path-B-82hpi8.js} +0 -0
  458. /package/dist/{perl-Bm5a83JW.js → perl-BNEFTNbM.js} +0 -0
  459. /package/dist/{pig-CbJDoHaE.js → pig-Cd1DMS7P.js} +0 -0
  460. /package/dist/{powershell-tG44m5Cy.js → powershell-CPxA0zpc.js} +0 -0
  461. /package/dist/{properties-DUZGzdb1.js → properties-BaFBm-Xa.js} +0 -0
  462. /package/dist/{protobuf-CcoKXY0d.js → protobuf-BQV_-X0H.js} +0 -0
  463. /package/dist/{puppet-BH73L_Gw.js → puppet-LXLST0mx.js} +0 -0
  464. /package/dist/{purify.es-BwXbuO3r.js → purify.es-ukiMXY-F.js} +0 -0
  465. /package/dist/{python-NJIxLTZp.js → python-DLjLzX4k.js} +0 -0
  466. /package/dist/{q-MotBNA65.js → q-DswTX1Y9.js} +0 -0
  467. /package/dist/{r-BUgBPae7.js → r-CO7NpMwE.js} +0 -0
  468. /package/dist/{range-DwpxnYuB.js → range-BYuZFTbA.js} +0 -0
  469. /package/dist/{rpm-C_PaGodG.js → rpm-BlmEDT6r.js} +0 -0
  470. /package/dist/{ruby-DFLM2XD8.js → ruby-BTPKgeZZ.js} +0 -0
  471. /package/dist/{sas-BMyyu8oO.js → sas-DTDTiNO8.js} +0 -0
  472. /package/dist/{scheme-Qet9zYAe.js → scheme-UzAAg4GJ.js} +0 -0
  473. /package/dist/{shell-BKHx4Jjo.js → shell-DQ0hQCsB.js} +0 -0
  474. /package/dist/{sieve-CVo7dc4j.js → sieve-BVyYIx9u.js} +0 -0
  475. /package/dist/{simple-mode-CVFBIo6d.js → simple-mode-Dryu-fC9.js} +0 -0
  476. /package/dist/{smalltalk-BHr2nCth.js → smalltalk-DAdMAHTu.js} +0 -0
  477. /package/dist/{solr-Bt9XtM2H.js → solr-Bn6k51kO.js} +0 -0
  478. /package/dist/{sparql-QSu0ZCcc.js → sparql-Bi7quYgw.js} +0 -0
  479. /package/dist/{spreadsheet-BWfuwc0V.js → spreadsheet-UpVklYg7.js} +0 -0
  480. /package/dist/{sql-BdV3YOCG.js → sql-qyORs189.js} +0 -0
  481. /package/dist/{stex-Btoi8e7I.js → stex-Ze8D4R_5.js} +0 -0
  482. /package/dist/{stylus-CLZH9-Ps.js → stylus-jhpzcQ6Y.js} +0 -0
  483. /package/dist/{swift-JNDJdNIE.js → swift-BrO8qThZ.js} +0 -0
  484. /package/dist/{tcl-J5aE7aj5.js → tcl-s5QI5gv3.js} +0 -0
  485. /package/dist/{textile-6Hn05XQM.js → textile-ClhvJrxM.js} +0 -0
  486. /package/dist/{tiddlywiki-BWn8rSwJ.js → tiddlywiki-CmAAqw9M.js} +0 -0
  487. /package/dist/{tiki-XORjA1c3.js → tiki-DzCRe_s0.js} +0 -0
  488. /package/dist/{timer-pEiW44EO.js → timer-BPKOAfmx.js} +0 -0
  489. /package/dist/{toml-BceyeuiF.js → toml-TFa3EJQE.js} +0 -0
  490. /package/dist/{treemap-BzS5cW_6.js → treemap-CmLtUuWe.js} +0 -0
  491. /package/dist/{troff-DeMyd5Pf.js → troff-SqLg0heF.js} +0 -0
  492. /package/dist/{ttcn-DurvvcB-.js → ttcn-Cfrap7HJ.js} +0 -0
  493. /package/dist/{ttcn-cfg-BuYui6Rv.js → ttcn-cfg-Dopc-iwE.js} +0 -0
  494. /package/dist/{turtle-CD8Qf-tp.js → turtle-Dt52DvVH.js} +0 -0
  495. /package/dist/{vb-BklM-Nqk.js → vb-D1pAvfDe.js} +0 -0
  496. /package/dist/{vbscript-DbMEEX0d.js → vbscript-DZ7RBxn5.js} +0 -0
  497. /package/dist/{velocity-CERL-_vq.js → velocity-Csau7eZy.js} +0 -0
  498. /package/dist/{verilog-BD6jNce6.js → verilog-gXlZACs5.js} +0 -0
  499. /package/dist/{vhdl-U-1_N98i.js → vhdl-NaUWbI1B.js} +0 -0
  500. /package/dist/{webidl-IUn0dzoa.js → webidl-BJmPjW01.js} +0 -0
  501. /package/dist/{xquery-QeeHdSO2.js → xquery-CJIPsC0g.js} +0 -0
  502. /package/dist/{yacas-C9XcEPAJ.js → yacas-8f2Vjiiz.js} +0 -0
  503. /package/dist/{z80-C-nD1oRy.js → z80-s5Xk2hCP.js} +0 -0
@@ -0,0 +1,4 @@
1
+ import { t as stylus } from "./stylus-jhpzcQ6Y.js";
2
+ export {
3
+ stylus
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as swift } from "./swift-BrO8qThZ.js";
2
+ export {
3
+ swift
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as tcl } from "./tcl-s5QI5gv3.js";
2
+ export {
3
+ tcl
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as textile } from "./textile-ClhvJrxM.js";
2
+ export {
3
+ textile
4
+ };
@@ -1,7 +1,7 @@
1
- import { a as tickStep, s as bisector } from "./precisionRound-Duzbr5ur.js";
2
- import { a as copy, i as continuous } from "./linear-CJ6ctpF3.js";
3
- import { A as durationSecond, C as timeMinute, D as durationHour, E as durationDay, M as durationYear, N as millisecond, O as durationMinute, S as utcHour, T as second, _ as utcSunday, c as timeMonth, j as durationWeek, k as durationMonth, l as utcMonth, o as timeYear, p as timeSunday, s as utcYear, t as timeFormat, v as timeDay, w as utcMinute, x as timeHour, y as unixDay } from "./defaultLocale-B_A76Zpk.js";
4
- import { n as initRange } from "./init-BfRhston.js";
1
+ import { a as tickStep, s as bisector } from "./precisionRound-CGLoV26P.js";
2
+ import { a as copy, i as continuous } from "./linear-v57w-fIs.js";
3
+ import { A as durationSecond, C as timeMinute, D as durationHour, E as durationDay, M as durationYear, N as millisecond, O as durationMinute, S as utcHour, T as second, _ as utcSunday, c as timeMonth, j as durationWeek, k as durationMonth, l as utcMonth, o as timeYear, p as timeSunday, s as utcYear, t as timeFormat, v as timeDay, w as utcMinute, x as timeHour, y as unixDay } from "./defaultLocale-Bxoo2-30.js";
4
+ import { n as initRange } from "./init-Cge3yl4r.js";
5
5
  function max(e, g) {
6
6
  let _;
7
7
  if (g === void 0) for (let g2 of e) g2 != null && (_ < g2 || _ === void 0 && g2 >= g2) && (_ = g2);
@@ -1,7 +1,7 @@
1
- import "./purify.es-BwXbuO3r.js";
2
- import { t as arc_default } from "./arc-CEWBr4jc.js";
3
- import { i as log, n as __export, r as __name, t as select_default } from "./src-szye8OCw.js";
4
- import { G as setupGraphViewbox, Q as is_dark_default, X as darken_default, Z as lighten_default, a as clear, b as getConfig2, o as commonDb_exports } from "./chunk-ABZYJK2D-DYZpeLRO.js";
1
+ import "./purify.es-ukiMXY-F.js";
2
+ import { t as arc_default } from "./arc-DLJpPF9M.js";
3
+ import { i as log, n as __export, r as __name, t as select_default } from "./src-DbP20yFZ.js";
4
+ import { G as setupGraphViewbox, Q as is_dark_default, X as darken_default, Z as lighten_default, a as clear, b as getConfig2, o as commonDb_exports } from "./chunk-ABZYJK2D-D5YIs71w.js";
5
5
  var parser = (function() {
6
6
  var t = /* @__PURE__ */ __name(function(t2, S2, C2, w) {
7
7
  for (C2 || (C2 = {}), w = t2.length; w--; C2[t2[w]] = S2) ;
@@ -5,8 +5,8 @@ import { t as __commonJSMin } from "./chunk-BNovOVIE.js";
5
5
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
6
6
  import { l as createLucideIcon } from "./dist-D2Rk1j4R.js";
7
7
  import { h as Logger } from "./button-qsiIHncQ.js";
8
- import { r as KnownQueryParams } from "./constants-CXiS0vdr.js";
9
- import { f as waitFor, p as isIslands, u as store, y as atom } from "./useTheme-BIAKDAh6.js";
8
+ import { r as KnownQueryParams } from "./constants-D1Am36hX.js";
9
+ import { f as waitFor, p as isIslands, u as store, y as atom } from "./useTheme-Dm1WaAGy.js";
10
10
  var CircleQuestionMark = createLucideIcon("circle-question-mark", [
11
11
  ["circle", {
12
12
  cx: "12",
@@ -0,0 +1,4 @@
1
+ import { t as toml } from "./toml-TFa3EJQE.js";
2
+ export {
3
+ toml
4
+ };
@@ -1,6 +1,6 @@
1
- import "./chunk-TCCFYFTB-BrhaBdR8.js";
2
- import "./main-C01_ic0d.js";
3
- import { n as createTreemapServices, t as TreemapModule } from "./chunk-B2363JML-CkfqLBeZ.js";
1
+ import "./chunk-TCCFYFTB-BAhzIqBO.js";
2
+ import "./main-CvkAPtaq.js";
3
+ import { n as createTreemapServices, t as TreemapModule } from "./chunk-B2363JML-BzZqINRO.js";
4
4
  export {
5
5
  createTreemapServices
6
6
  };
@@ -0,0 +1,4 @@
1
+ import { t as troff } from "./troff-SqLg0heF.js";
2
+ export {
3
+ troff
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as ttcn } from "./ttcn-Cfrap7HJ.js";
2
+ export {
3
+ ttcn
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as ttcnCfg } from "./ttcn-cfg-Dopc-iwE.js";
2
+ export {
3
+ ttcnCfg
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as turtle } from "./turtle-Dt52DvVH.js";
2
+ export {
3
+ turtle
4
+ };
@@ -4,7 +4,7 @@ import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
4
  import { l as createLucideIcon } from "./dist-D2Rk1j4R.js";
5
5
  import { t as Button } from "./button-qsiIHncQ.js";
6
6
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
- import { n as Constants } from "./constants-CXiS0vdr.js";
7
+ import { n as Constants } from "./constants-D1Am36hX.js";
8
8
  var Pencil = createLucideIcon("pencil", [["path", {
9
9
  d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
10
10
  key: "1a8usu"
@@ -1,8 +1,8 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { w as useEvent_default } from "./useTheme-BIAKDAh6.js";
5
- import { t as invariant } from "./invariant-CzjtdzpE.js";
4
+ import { w as useEvent_default } from "./useTheme-Dm1WaAGy.js";
5
+ import { t as invariant } from "./invariant-D4hPsZFI.js";
6
6
  var import_compiler_runtime = require_compiler_runtime(), import_react = /* @__PURE__ */ __toESM(require_react(), 1), Result = {
7
7
  error(e, s) {
8
8
  return {
@@ -1,11 +1,11 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { t as toDate } from "./toDate-BWaG12Pv.js";
4
+ import { t as toDate } from "./toDate-D6VXexnV.js";
5
5
  import { a as cva, v as cn } from "./button-qsiIHncQ.js";
6
6
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
- import { C as dequal } from "./useTheme-BIAKDAh6.js";
8
- import { i as tableFromIPC } from "./loader-DrMJeyDu.js";
7
+ import { C as dequal } from "./useTheme-Dm1WaAGy.js";
8
+ import { i as tableFromIPC } from "./loader-CMMa6QVT.js";
9
9
  function isDate(t) {
10
10
  return t instanceof Date || typeof t == "object" && Object.prototype.toString.call(t) === "[object Date]";
11
11
  }
@@ -1,7 +1,7 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { t as getIframeCapabilities } from "./capabilities-BC3mzKnw.js";
4
+ import { t as getIframeCapabilities } from "./capabilities-26mwv03y.js";
5
5
  var import_compiler_runtime = require_compiler_runtime();
6
6
  require_react();
7
7
  function useIframeCapabilities() {
@@ -4,7 +4,7 @@ import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
4
  import { l as createLucideIcon } from "./dist-D2Rk1j4R.js";
5
5
  import { a as cva, h as Logger, v as cn } from "./button-qsiIHncQ.js";
6
6
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
- import { _ as useSetAtom, y as atom } from "./useTheme-BIAKDAh6.js";
7
+ import { _ as useSetAtom, y as atom } from "./useTheme-Dm1WaAGy.js";
8
8
  var Calendar = createLucideIcon("calendar", [
9
9
  ["path", {
10
10
  d: "M8 2v4",
@@ -3,7 +3,7 @@ import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
4
  import { h as Logger, l as resolvePlatform, s as OverridingHotkeyProvider } from "./button-qsiIHncQ.js";
5
5
  import { B as record, H as string, L as number, O as array, P as looseObject, R as object, W as union, k as boolean, w as _enum } from "./Combination-B--d1_LV.js";
6
- import { t as merge_default } from "./merge-Byt9w-nO.js";
6
+ import { t as merge_default } from "./merge-CA_buyY3.js";
7
7
  var import_react = /* @__PURE__ */ __toESM(require_react()), useInsertionEffect = typeof window < "u" ? import_react.useInsertionEffect || import_react.useLayoutEffect : () => {
8
8
  };
9
9
  function useEvent(e) {
@@ -0,0 +1,4 @@
1
+ import { t as vb } from "./vb-D1pAvfDe.js";
2
+ export {
3
+ vb
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as vbScript } from "./vbscript-DZ7RBxn5.js";
2
+ export {
3
+ vbScript
4
+ };
@@ -1,23 +1,23 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { c as asRemoteURL, g as CircleQuestionMark } from "./toDate-BWaG12Pv.js";
4
+ import { c as asRemoteURL, g as CircleQuestionMark } from "./toDate-D6VXexnV.js";
5
5
  import { h as Logger, m as Events, u as Objects, v as cn } from "./button-qsiIHncQ.js";
6
6
  import "./Combination-B--d1_LV.js";
7
7
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
8
8
  import "./react-dom-BKwCWYPW.js";
9
9
  import { t as Tooltip } from "./tooltip-DGHTbHl5.js";
10
- import { i as debounce_default } from "./constants-CXiS0vdr.js";
11
- import { n as useTheme, w as useEvent_default } from "./useTheme-BIAKDAh6.js";
12
- import { c as uniq } from "./arrays--2cd0hte.js";
13
- import { a as AlertTitle, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-D2PKDkrk.js";
14
- import { n as ErrorBanner } from "./error-banner-DkDzvax3.js";
15
- import { n as formats } from "./vega-loader.browser-hMqVC9bf.js";
16
- import { a as getContainerWidth, n as vegaLoadData, s as tooltipHandler } from "./loader-DrMJeyDu.js";
17
- import { t as useAsyncData } from "./useAsyncData-Dqt2tV1E.js";
18
- import { t as j } from "./react-vega-JMnqwKtN.js";
19
- import "./defaultLocale-DjFHq3Xk.js";
20
- import "./defaultLocale-B_A76Zpk.js";
10
+ import { i as debounce_default } from "./constants-D1Am36hX.js";
11
+ import { n as useTheme, w as useEvent_default } from "./useTheme-Dm1WaAGy.js";
12
+ import { s as uniq } from "./arrays-Du-jRBAy.js";
13
+ import { a as AlertTitle, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-DOzKCTzc.js";
14
+ import { n as ErrorBanner } from "./error-banner-Bx9kIgrs.js";
15
+ import { n as formats } from "./vega-loader.browser-DqEcFOPD.js";
16
+ import { a as getContainerWidth, n as vegaLoadData, s as tooltipHandler } from "./loader-CMMa6QVT.js";
17
+ import { t as useAsyncData } from "./useAsyncData-Cd4Urlww.js";
18
+ import { t as j } from "./react-vega-CzRAIHrv.js";
19
+ import "./defaultLocale-qS7DaAmi.js";
20
+ import "./defaultLocale-Bxoo2-30.js";
21
21
  var import_compiler_runtime = require_compiler_runtime(), import_react = /* @__PURE__ */ __toESM(require_react(), 1);
22
22
  function fixRelativeUrl(e) {
23
23
  return e.data && "url" in e.data && (e.data.url = asRemoteURL(e.data.url).href), e;
@@ -1,6 +1,6 @@
1
- import { a as tickStep, n as precisionPrefix_default, r as precisionFixed_default, s as bisector, t as precisionRound_default } from "./precisionRound-Duzbr5ur.js";
2
- import { i as formatSpecifier, n as formatPrefix, r as locale_default, t as format$1 } from "./defaultLocale-DjFHq3Xk.js";
3
- import { C as timeMinute, N as millisecond, S as utcHour, T as second, _ as utcSunday, a as formatLocale, b as utcDay, c as timeMonth, i as utcParse, l as utcMonth, n as timeParse, o as timeYear, p as timeSunday, r as utcFormat, s as utcYear, t as timeFormat, v as timeDay, w as utcMinute, x as timeHour } from "./defaultLocale-B_A76Zpk.js";
1
+ import { a as tickStep, n as precisionPrefix_default, r as precisionFixed_default, s as bisector, t as precisionRound_default } from "./precisionRound-CGLoV26P.js";
2
+ import { i as formatSpecifier, n as formatPrefix, r as locale_default, t as format$1 } from "./defaultLocale-qS7DaAmi.js";
3
+ import { C as timeMinute, N as millisecond, S as utcHour, T as second, _ as utcSunday, a as formatLocale, b as utcDay, c as timeMonth, i as utcParse, l as utcMonth, n as timeParse, o as timeYear, p as timeSunday, r as utcFormat, s as utcYear, t as timeFormat, v as timeDay, w as utcMinute, x as timeHour } from "./defaultLocale-Bxoo2-30.js";
4
4
  function accessor(o, P, F) {
5
5
  return o.fields = P || [], o.fname = F, o;
6
6
  }
@@ -0,0 +1,4 @@
1
+ import { t as velocity } from "./velocity-Csau7eZy.js";
2
+ export {
3
+ velocity
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as verilog } from "./verilog-gXlZACs5.js";
2
+ export {
3
+ verilog
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as vhdl } from "./vhdl-NaUWbI1B.js";
2
+ export {
3
+ vhdl
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as webIDL } from "./webidl-BJmPjW01.js";
2
+ export {
3
+ webIDL
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as xQuery } from "./xquery-CJIPsC0g.js";
2
+ export {
3
+ xQuery
4
+ };
@@ -1,17 +1,17 @@
1
1
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2
- import "./purify.es-BwXbuO3r.js";
3
- import { t as linear } from "./linear-CJ6ctpF3.js";
4
- import { n as ordinal } from "./ordinal-COPPjmMz.js";
5
- import { t as range } from "./range-DwpxnYuB.js";
6
- import "./defaultLocale-DjFHq3Xk.js";
7
- import { t as line_default } from "./line-LK_5q2B9.js";
8
- import { i as cleanAndMerge } from "./chunk-S3R3BYOJ-KAv7zltL.js";
9
- import { n as initRange } from "./init-BfRhston.js";
10
- import { i as log, r as __name } from "./src-szye8OCw.js";
11
- import { B as setAccTitle, C as getDiagramTitle, I as sanitizeText, T as getThemeVariables3, U as setDiagramTitle, _ as getAccDescription, a as clear, c as configureSvgSize, d as defaultConfig_default, v as getAccTitle, y as getConfig, z as setAccDescription } from "./chunk-ABZYJK2D-DYZpeLRO.js";
12
- import { t as selectSvgElement } from "./chunk-EXTU4WIE-anbpETeD.js";
13
- import "./dist-CqR8FBcH.js";
14
- import { t as computeDimensionOfText } from "./chunk-JA3XYJ7Z-DT9thFja.js";
2
+ import "./purify.es-ukiMXY-F.js";
3
+ import { t as linear } from "./linear-v57w-fIs.js";
4
+ import { n as ordinal } from "./ordinal-D7fa8Sey.js";
5
+ import { t as range } from "./range-BYuZFTbA.js";
6
+ import "./defaultLocale-qS7DaAmi.js";
7
+ import { t as line_default } from "./line-PAEmCpyD.js";
8
+ import { i as cleanAndMerge } from "./chunk-S3R3BYOJ-D3Rys9ZW.js";
9
+ import { n as initRange } from "./init-Cge3yl4r.js";
10
+ import { i as log, r as __name } from "./src-DbP20yFZ.js";
11
+ import { B as setAccTitle, C as getDiagramTitle, I as sanitizeText, T as getThemeVariables3, U as setDiagramTitle, _ as getAccDescription, a as clear, c as configureSvgSize, d as defaultConfig_default, v as getAccTitle, y as getConfig, z as setAccDescription } from "./chunk-ABZYJK2D-D5YIs71w.js";
12
+ import { t as selectSvgElement } from "./chunk-EXTU4WIE-CgefpSXQ.js";
13
+ import "./dist-BjWd_Ei9.js";
14
+ import { t as computeDimensionOfText } from "./chunk-JA3XYJ7Z-CcIOIFpc.js";
15
15
  function band() {
16
16
  var e = ordinal().unknown(void 0), w = e.domain, T = e.range, D = 0, O = 1, k, A, j = false, M = 0, N = 0, P = 0.5;
17
17
  delete e.unknown;
@@ -0,0 +1,4 @@
1
+ import { t as yacas } from "./yacas-8f2Vjiiz.js";
2
+ export {
3
+ yacas
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as z80 } from "./z80-s5Xk2hCP.js";
2
+ export {
3
+ z80
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.21.2-dev99",
3
+ "version": "0.22.1-dev10",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -10,11 +10,17 @@
10
10
  * everywhere.
11
11
  */
12
12
 
13
+ import type { components } from "@marimo-team/marimo-api";
13
14
  import type { CellId, UIElementId } from "@/core/cells/ids";
14
15
  import type { RequestId } from "@/core/network/DeferredRequestRegistry";
15
16
  import type { VariableName } from "@/core/variables/types";
16
17
 
18
+ type WidgetModelId = components["schemas"]["WidgetModelId"];
19
+ type Base64String = components["schemas"]["Base64String"];
20
+
17
21
  export const cellId = (s: string) => s as CellId;
18
22
  export const variableName = (s: string) => s as VariableName;
19
23
  export const requestId = (s: string) => s as RequestId;
20
24
  export const uiElementId = (s: string) => s as UIElementId;
25
+ export const widgetModelId = (s: string) => s as WidgetModelId;
26
+ export const base64String = (s: string) => s as Base64String;
@@ -0,0 +1,176 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+ "use no memo";
3
+
4
+ import type { RowSelectionState, Table } from "@tanstack/react-table";
5
+ import { useLocale } from "react-aria";
6
+ import type { GetRowIds } from "@/plugins/impl/DataTablePlugin";
7
+ import { cn } from "@/utils/cn";
8
+ import { Events } from "@/utils/events";
9
+ import { prettyNumber } from "@/utils/numbers";
10
+ import { Button } from "../ui/button";
11
+ import { toast } from "../ui/use-toast";
12
+ import { DataTablePagination, prettifyRowColumnCount } from "./pagination";
13
+ import { CellSelectionStats } from "./range-focus/cell-selection-stats";
14
+ import type { DataTableSelection } from "./types";
15
+
16
+ interface TableBottomBarProps<TData> {
17
+ pagination: boolean;
18
+ totalColumns: number;
19
+ selection?: DataTableSelection;
20
+ onRowSelectionChange?: (value: RowSelectionState) => void;
21
+ table: Table<TData>;
22
+ getRowIds?: GetRowIds;
23
+ showPageSizeSelector?: boolean;
24
+ tableLoading?: boolean;
25
+ part?: string;
26
+ className?: string;
27
+ }
28
+
29
+ export const TableBottomBar = <TData,>({
30
+ pagination,
31
+ totalColumns,
32
+ selection,
33
+ onRowSelectionChange,
34
+ table,
35
+ getRowIds,
36
+ showPageSizeSelector,
37
+ tableLoading,
38
+ part,
39
+ className,
40
+ }: TableBottomBarProps<TData>) => {
41
+ const { locale } = useLocale();
42
+ const handleSelectAllRows = (value: boolean) => {
43
+ if (!onRowSelectionChange) {
44
+ return;
45
+ }
46
+
47
+ // Clear all selections
48
+ if (!value) {
49
+ onRowSelectionChange({});
50
+ return;
51
+ }
52
+
53
+ const selectAllRowsByIndex = () => {
54
+ const allKeys = Array.from(
55
+ { length: table.getRowCount() },
56
+ (_, i) => [i, true] as const,
57
+ );
58
+ onRowSelectionChange(Object.fromEntries(allKeys));
59
+ };
60
+
61
+ if (!getRowIds) {
62
+ selectAllRowsByIndex();
63
+ return;
64
+ }
65
+
66
+ getRowIds({}).then((data) => {
67
+ if (data.error) {
68
+ toast({
69
+ title: "Not available",
70
+ description: data.error,
71
+ variant: "danger",
72
+ });
73
+ return;
74
+ }
75
+
76
+ if (data.all_rows) {
77
+ selectAllRowsByIndex();
78
+ } else {
79
+ onRowSelectionChange(
80
+ Object.fromEntries(data.row_ids.map((id) => [id, true])),
81
+ );
82
+ }
83
+ });
84
+ };
85
+
86
+ const renderTotal = () => {
87
+ const { rowSelection, cellSelection } = table.getState();
88
+ let selected = Object.keys(rowSelection).length;
89
+ let isAllPageSelected = table.getIsAllPageRowsSelected();
90
+ const numRows = table.getRowCount();
91
+ let isAllSelected = selected === numRows;
92
+
93
+ const isCellSelection =
94
+ selection === "single-cell" || selection === "multi-cell";
95
+ if (isCellSelection) {
96
+ selected = cellSelection.length;
97
+ isAllPageSelected = false;
98
+ isAllSelected = false;
99
+ }
100
+
101
+ if (isAllPageSelected && !isAllSelected) {
102
+ return (
103
+ <>
104
+ <span>{prettyNumber(selected, locale)} selected</span>
105
+ <Button
106
+ size="xs"
107
+ data-testid="select-all-button"
108
+ variant="link"
109
+ className="h-4 print:hidden"
110
+ onMouseDown={Events.preventFocus}
111
+ onClick={() => handleSelectAllRows(true)}
112
+ >
113
+ Select all {prettyNumber(numRows, locale)}
114
+ </Button>
115
+ </>
116
+ );
117
+ }
118
+
119
+ if (selected) {
120
+ return (
121
+ <>
122
+ <span>{prettyNumber(selected, locale)} selected</span>
123
+ <Button
124
+ size="xs"
125
+ data-testid="clear-selection-button"
126
+ variant="link"
127
+ className="h-4 print:hidden"
128
+ onMouseDown={Events.preventFocus}
129
+ onClick={() => {
130
+ if (!isCellSelection) {
131
+ handleSelectAllRows(false);
132
+ } else if (table.resetCellSelection) {
133
+ table.resetCellSelection();
134
+ }
135
+ }}
136
+ >
137
+ Clear selection
138
+ </Button>
139
+ </>
140
+ );
141
+ }
142
+
143
+ return (
144
+ <span>
145
+ {prettifyRowColumnCount(table.getRowCount(), totalColumns, locale)}
146
+ </span>
147
+ );
148
+ };
149
+
150
+ return (
151
+ <div
152
+ part={part}
153
+ className={cn(
154
+ "flex lg:grid lg:grid-cols-[1fr_auto_1fr] items-center shrink-0",
155
+ className,
156
+ )}
157
+ >
158
+ <div className="flex flex-col text-sm text-muted-foreground px-2 shrink-0">
159
+ <div className="flex items-center gap-1">{renderTotal()}</div>
160
+ <CellSelectionStats table={table} className="lg:hidden" />
161
+ </div>
162
+ <div className="ml-auto lg:ml-0 lg:justify-self-center flex items-center shrink-0">
163
+ {pagination && (
164
+ <DataTablePagination
165
+ table={table}
166
+ tableLoading={tableLoading}
167
+ showPageSizeSelector={showPageSizeSelector}
168
+ />
169
+ )}
170
+ </div>
171
+ <div className="hidden lg:flex justify-end">
172
+ <CellSelectionStats table={table} className="px-2" />
173
+ </div>
174
+ </div>
175
+ );
176
+ };
@@ -0,0 +1,137 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+ "use no memo";
3
+
4
+ import { useDebounce } from "@uidotdev/usehooks";
5
+ import {
6
+ ChartSplineIcon,
7
+ PanelRightIcon,
8
+ SearchIcon,
9
+ XIcon,
10
+ } from "lucide-react";
11
+ import React, { useEffect, useState } from "react";
12
+ import useEvent from "react-use-event-hook";
13
+ import { cn } from "@/utils/cn";
14
+ import {
15
+ PANEL_TYPES,
16
+ type PanelType,
17
+ } from "../editor/chrome/panels/context-aware-panel/context-aware-panel";
18
+ import { Spinner } from "../icons/spinner";
19
+ import { Button } from "../ui/button";
20
+ import { type ExportActionProps, ExportMenu } from "./export-actions";
21
+
22
+ const NOOP_ON_SEARCH = () => {
23
+ /** no-op*/
24
+ };
25
+
26
+ interface TableTopBarProps extends Partial<ExportActionProps> {
27
+ enableSearch: boolean;
28
+ searchQuery?: string;
29
+ onSearchQueryChange?: (query: string) => void;
30
+ reloading?: boolean;
31
+ showChartBuilder?: boolean;
32
+ isChartBuilderOpen?: boolean;
33
+ toggleDisplayHeader?: () => void;
34
+ showTableExplorer?: boolean;
35
+ togglePanel?: (panelType: PanelType) => void;
36
+ isAnyPanelOpen?: boolean;
37
+ }
38
+
39
+ export const TableTopBar: React.FC<TableTopBarProps> = ({
40
+ enableSearch,
41
+ searchQuery,
42
+ onSearchQueryChange,
43
+ reloading,
44
+ showChartBuilder,
45
+ isChartBuilderOpen,
46
+ toggleDisplayHeader,
47
+ showTableExplorer,
48
+ togglePanel,
49
+ isAnyPanelOpen,
50
+ downloadAs,
51
+ }) => {
52
+ const [internalValue, setInternalValue] = useState(searchQuery || "");
53
+ const debouncedSearch = useDebounce(internalValue, 500);
54
+ const onSearch = useEvent(onSearchQueryChange ?? NOOP_ON_SEARCH);
55
+ const inputRef = React.useRef<HTMLInputElement>(null);
56
+
57
+ useEffect(() => {
58
+ onSearch(debouncedSearch);
59
+ }, [debouncedSearch, onSearch]);
60
+
61
+ const hasAnyAction =
62
+ (enableSearch && onSearchQueryChange) ||
63
+ showChartBuilder ||
64
+ showTableExplorer ||
65
+ downloadAs;
66
+
67
+ if (!hasAnyAction) {
68
+ return null;
69
+ }
70
+
71
+ return (
72
+ <div className="flex items-center h-10 px-2 border-b gap-2">
73
+ {onSearchQueryChange && enableSearch && (
74
+ <div className="flex flex-1 items-center gap-1 px-2 rounded-sm focus-within:ring-1 focus-within:ring-border transition-shadow">
75
+ <SearchIcon className="w-4 h-4 text-muted-foreground shrink-0" />
76
+ <input
77
+ ref={inputRef}
78
+ type="text"
79
+ className="h-6 border-none bg-transparent focus:outline-hidden text-sm w-full min-w-0"
80
+ value={internalValue}
81
+ onKeyDown={(e) => {
82
+ if (e.key === "Escape") {
83
+ setInternalValue("");
84
+ inputRef.current?.blur();
85
+ }
86
+ }}
87
+ onChange={(e) => setInternalValue(e.target.value)}
88
+ placeholder="Search..."
89
+ />
90
+ {reloading && <Spinner size="small" />}
91
+ {internalValue && (
92
+ <Button
93
+ variant="text"
94
+ size="xs"
95
+ className="h-5 w-5 p-0 shrink-0"
96
+ onClick={() => setInternalValue("")}
97
+ >
98
+ <XIcon className="w-3 h-3 text-muted-foreground" />
99
+ </Button>
100
+ )}
101
+ </div>
102
+ )}
103
+
104
+ <div className="flex items-center shrink-0">
105
+ {showChartBuilder && (
106
+ <Button
107
+ variant="text"
108
+ size="xs"
109
+ className={cn(
110
+ "print:hidden text-xs gap-1",
111
+ isChartBuilderOpen ? "text-primary" : "text-muted-foreground",
112
+ )}
113
+ onClick={toggleDisplayHeader}
114
+ >
115
+ <ChartSplineIcon className="w-3.5 h-3.5" />
116
+ Visualize
117
+ </Button>
118
+ )}
119
+ {showTableExplorer && togglePanel && (
120
+ <Button
121
+ variant="text"
122
+ size="xs"
123
+ className={cn(
124
+ "print:hidden text-xs gap-1",
125
+ isAnyPanelOpen ? "text-primary" : "text-muted-foreground",
126
+ )}
127
+ onClick={() => togglePanel(PANEL_TYPES.ROW_VIEWER)}
128
+ >
129
+ <PanelRightIcon className="w-3.5 h-3.5" />
130
+ Explorer
131
+ </Button>
132
+ )}
133
+ {downloadAs && <ExportMenu downloadAs={downloadAs} />}
134
+ </div>
135
+ </div>
136
+ );
137
+ };