@marimo-team/islands 0.22.0 → 0.22.1-dev2

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 (484) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CTfvzyMi.js → ConnectedDataExplorerComponent-Dl1grr8z.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-3c9hT4kT.js} +1 -1
  154. package/dist/lua-q1InavKb.js +4 -0
  155. package/dist/main.js +4354 -4397
  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-X7clcrcQ.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-A6unyUJS.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/components/data-table/TableBottomBar.tsx +165 -0
  250. package/src/components/data-table/TableTopBar.tsx +141 -0
  251. package/src/components/data-table/data-table.tsx +29 -36
  252. package/src/components/data-table/export-actions.tsx +231 -0
  253. package/src/components/data-table/pagination.tsx +171 -251
  254. package/src/components/data-table/range-focus/__tests__/cell-selection-stats.test.tsx +16 -12
  255. package/src/components/data-table/range-focus/cell-selection-stats.tsx +9 -2
  256. package/src/plugins/impl/DataTablePlugin.tsx +4 -0
  257. package/dist/apl-Y7yFAg6_.js +0 -4
  258. package/dist/architecture-7HQA4BMR-SvLOcNCN.js +0 -6
  259. package/dist/arrays--2cd0hte.js +0 -59
  260. package/dist/asciiarmor-Bl8b2p0w.js +0 -4
  261. package/dist/asn1-BF6cywqm.js +0 -4
  262. package/dist/brainfuck-BuqydWe3.js +0 -4
  263. package/dist/classDiagram-2ON5EDUG-LT-Hu_dE.js +0 -30
  264. package/dist/classDiagram-v2-WZHVMYZB-G4qrOqlY.js +0 -30
  265. package/dist/clojure-CAHAWK5H.js +0 -4
  266. package/dist/cmake-BogDc4GF.js +0 -4
  267. package/dist/cobol-DRnpeU4u.js +0 -4
  268. package/dist/coffeescript-9MgX7RN8.js +0 -4
  269. package/dist/commonlisp-CVz2KONN.js +0 -4
  270. package/dist/crystal-td8mwLG5.js +0 -4
  271. package/dist/css-BK451dBn.js +0 -4
  272. package/dist/cypher-DuNPR6Ie.js +0 -4
  273. package/dist/d-DL6oP_-2.js +0 -4
  274. package/dist/diff-D9CplOBj.js +0 -4
  275. package/dist/dist-BOx8CJbo.js +0 -5
  276. package/dist/dist-BYoWtcAc.js +0 -5
  277. package/dist/dist-BaGdTXK1.js +0 -5
  278. package/dist/dist-BhGA2ia0.js +0 -8
  279. package/dist/dist-BoHuwe5C.js +0 -5
  280. package/dist/dist-CJ-2wW2z.js +0 -8
  281. package/dist/dist-Ccbo2rCF.js +0 -8
  282. package/dist/dist-CwayJLIO.js +0 -5
  283. package/dist/dist-D-jpfI6q.js +0 -6
  284. package/dist/dist-DShjplLu.js +0 -8
  285. package/dist/dist-DhBqFguQ.js +0 -5
  286. package/dist/dist-DiCgMCy4.js +0 -6
  287. package/dist/dist-Dqa-QKVa.js +0 -5
  288. package/dist/dist-OFv2DOPe.js +0 -5
  289. package/dist/dtd-Ce1c54UO.js +0 -4
  290. package/dist/dylan-B43wjIwg.js +0 -4
  291. package/dist/ecl-DK-fZmir.js +0 -4
  292. package/dist/eiffel-CNuvvPqD.js +0 -4
  293. package/dist/elm-DZEkBjgQ.js +0 -4
  294. package/dist/erlang-Dw4PDZV_.js +0 -4
  295. package/dist/factor-C9JRv63g.js +0 -4
  296. package/dist/forth-CKhoqn4e.js +0 -4
  297. package/dist/fortran-Do51bToK.js +0 -4
  298. package/dist/gas-BZfL3Uwh.js +0 -4
  299. package/dist/gherkin-BwQh4ehw.js +0 -4
  300. package/dist/groovy-CG5kCGiv.js +0 -4
  301. package/dist/haskell-BKii9uTg.js +0 -4
  302. package/dist/haxe-Bsz30J8x.js +0 -5
  303. package/dist/idl-BlxgaPKj.js +0 -4
  304. package/dist/infoDiagram-HS3SLOUP-fkZhmVE7.js +0 -30
  305. package/dist/javascript-SNhUvTcB.js +0 -4
  306. package/dist/julia-CGZzaDyk.js +0 -4
  307. package/dist/livescript-Cj6cX-Ys.js +0 -4
  308. package/dist/lua-BcVHrD8f.js +0 -4
  309. package/dist/mathematica-DLY8ZGoJ.js +0 -4
  310. package/dist/mbox-BNTsMWS5.js +0 -4
  311. package/dist/mirc-oyeOBir2.js +0 -4
  312. package/dist/mllike-ByxznKQw.js +0 -6
  313. package/dist/modelica-DNLhoyD8.js +0 -4
  314. package/dist/mscgen-DkZltsli.js +0 -6
  315. package/dist/mumps-TTiQB1xv.js +0 -4
  316. package/dist/nsis-RT1O1Ph8.js +0 -4
  317. package/dist/ntriples-CxsCiZ7Z.js +0 -4
  318. package/dist/octave-CkLh5tpW.js +0 -4
  319. package/dist/oz-yI7U9eVH.js +0 -4
  320. package/dist/pascal-CQK8sfDe.js +0 -4
  321. package/dist/perl-BEG8-kZl.js +0 -4
  322. package/dist/pig-DLLCqQaR.js +0 -4
  323. package/dist/powershell-CtjMkVO_.js +0 -4
  324. package/dist/properties-Domeb57z.js +0 -4
  325. package/dist/protobuf-0yk85TV6.js +0 -4
  326. package/dist/pug-B-BiNkM-.js +0 -4
  327. package/dist/puppet-C0N4vevK.js +0 -4
  328. package/dist/python-BZFa8G3C.js +0 -4
  329. package/dist/q-gcj7dgJv.js +0 -4
  330. package/dist/r-DavzTuPU.js +0 -4
  331. package/dist/react-vega-DfxWeueH.js +0 -9
  332. package/dist/rpm-bPj31ya8.js +0 -5
  333. package/dist/ruby-3UzzijjE.js +0 -4
  334. package/dist/sas-D9upmCP9.js +0 -4
  335. package/dist/scheme-DqWYzIFR.js +0 -4
  336. package/dist/shell-w63nkNmU.js +0 -4
  337. package/dist/sieve-Dz_ISrl6.js +0 -4
  338. package/dist/smalltalk-BXZ14pkr.js +0 -4
  339. package/dist/sparql-Boyc0wkb.js +0 -4
  340. package/dist/stateDiagram-v2-4FDKWEC3-BpOH8Bgl.js +0 -29
  341. package/dist/stex-DYK84lGq.js +0 -4
  342. package/dist/stylus-m9L_f1X1.js +0 -4
  343. package/dist/swift-C4TGn99K.js +0 -4
  344. package/dist/tcl-D_L0cfYZ.js +0 -4
  345. package/dist/textile-BAofYdKN.js +0 -4
  346. package/dist/toml-DCDKACLL.js +0 -4
  347. package/dist/troff-JHOU2VZK.js +0 -4
  348. package/dist/ttcn-Cxhng3qq.js +0 -4
  349. package/dist/ttcn-cfg-DJgUIu5n.js +0 -4
  350. package/dist/turtle-DKYkKZjV.js +0 -4
  351. package/dist/vb-C9rpn9hN.js +0 -4
  352. package/dist/vbscript-BQ7rxQU0.js +0 -4
  353. package/dist/velocity-C8WXmzLz.js +0 -4
  354. package/dist/verilog-BUXJEyEq.js +0 -4
  355. package/dist/vhdl-C18YIXfF.js +0 -4
  356. package/dist/webidl-D97EKzDx.js +0 -4
  357. package/dist/xquery-BZM6yzG2.js +0 -4
  358. package/dist/yacas-CXKck-Ok.js +0 -4
  359. package/dist/z80-BbF6ykWc.js +0 -4
  360. package/src/components/data-table/TableActions.tsx +0 -170
  361. package/src/components/data-table/download-actions.tsx +0 -224
  362. /package/dist/{ImageComparisonComponent-B5q26YVi.js → ImageComparisonComponent-DY3J_vIU.js} +0 -0
  363. /package/dist/{Plot-syRHsk-l.js → Plot-WhbJAbBh.js} +0 -0
  364. /package/dist/{apl-BqjtmlWW.js → apl-Oc3bL26_.js} +0 -0
  365. /package/dist/{array-D7wW5QoO.js → array-ByIS7m3B.js} +0 -0
  366. /package/dist/{asciiarmor-D9C9bbeV.js → asciiarmor-DTbPh2VI.js} +0 -0
  367. /package/dist/{asn1-D_zR1ubK.js → asn1-CGhwu1Ri.js} +0 -0
  368. /package/dist/{asterisk-B0dLLA8Z.js → asterisk-BApaB_8m.js} +0 -0
  369. /package/dist/{brainfuck-79SC7EYA.js → brainfuck-CA0L8lRq.js} +0 -0
  370. /package/dist/{chunk-DR5Q36YT-BxPcQ21t.js → chunk-DR5Q36YT-C40cYcy5.js} +0 -0
  371. /package/dist/{click-outside-container-DNfggvIW.js → click-outside-container-vCXhHl-R.js} +0 -0
  372. /package/dist/{clike-DFDX2jWq.js → clike-CEtUBPHD.js} +0 -0
  373. /package/dist/{clojure-Bb3Od9By.js → clojure-BszjvdGo.js} +0 -0
  374. /package/dist/{cmake-DYGUYEtU.js → cmake-B2Gvps8b.js} +0 -0
  375. /package/dist/{cobol-CcWmcAFT.js → cobol-DuMch8nn.js} +0 -0
  376. /package/dist/{coffeescript-BVa1qoL6.js → coffeescript-L9aKXVsJ.js} +0 -0
  377. /package/dist/{colors-6DRQ0kEF.js → colors-IJ-2cn2o.js} +0 -0
  378. /package/dist/{common-keywords-Bz8dNfWa.js → common-keywords-CsU75Ked.js} +0 -0
  379. /package/dist/{commonlisp-zi51jgUH.js → commonlisp-CrtdssxB.js} +0 -0
  380. /package/dist/{crystal-QjpegJHM.js → crystal-vvNY0LpY.js} +0 -0
  381. /package/dist/{css-B_GfJtcK.js → css-B1GdzqT1.js} +0 -0
  382. /package/dist/{cypher-BVuYJpGf.js → cypher-BtZvV7bW.js} +0 -0
  383. /package/dist/{cytoscape.esm-BYAuS6uS.js → cytoscape.esm-CRfNlsPy.js} +0 -0
  384. /package/dist/{d-BT97RiQI.js → d-B0UN3V-Z.js} +0 -0
  385. /package/dist/{defaultLocale-B_A76Zpk.js → defaultLocale-Bxoo2-30.js} +0 -0
  386. /package/dist/{defaultLocale-DjFHq3Xk.js → defaultLocale-qS7DaAmi.js} +0 -0
  387. /package/dist/{diff-CHd93v7L.js → diff-DOpgjj1W.js} +0 -0
  388. /package/dist/{dist-CqR8FBcH.js → dist-BjWd_Ei9.js} +0 -0
  389. /package/dist/{dist-CORAUsE1.js → dist-KZI_BHqV.js} +0 -0
  390. /package/dist/{dtd-akLFIRuZ.js → dtd-Ctnjxrle.js} +0 -0
  391. /package/dist/{duckdb-keywords-CQAIHMbC.js → duckdb-keywords-DjrZdCO2.js} +0 -0
  392. /package/dist/{dylan-Iy-rgNOc.js → dylan-DFXkoaZy.js} +0 -0
  393. /package/dist/{ebnf-CTkZpZPT.js → ebnf-XJCIl_em.js} +0 -0
  394. /package/dist/{ecl-BhUXC_aR.js → ecl-C1NExZip.js} +0 -0
  395. /package/dist/{eiffel-DIRAlWPD.js → eiffel-uXVGgleg.js} +0 -0
  396. /package/dist/{elm-BDgVzkJ4.js → elm-CBOFnnib.js} +0 -0
  397. /package/dist/{emotion-is-prop-valid.esm-DdzHpbbG.js → emotion-is-prop-valid.esm-CJVjyntJ.js} +0 -0
  398. /package/dist/{erlang-Djcs_NwB.js → erlang-DMnrT8XK.js} +0 -0
  399. /package/dist/{error-banner-DkDzvax3.js → error-banner-Bx9kIgrs.js} +0 -0
  400. /package/dist/{esm-BRwAuUu2.js → esm-D4gzqVRq.js} +0 -0
  401. /package/dist/{fcl-OXoT8w4k.js → fcl-fh4Mj0bc.js} +0 -0
  402. /package/dist/{forth-c_NTahPv.js → forth-DDpxS4nw.js} +0 -0
  403. /package/dist/{fortran-Bpxt27dn.js → fortran-B6uYqQMz.js} +0 -0
  404. /package/dist/{gas-RVBts6ZK.js → gas-BKnWzuFz.js} +0 -0
  405. /package/dist/{gherkin-Hf6PTauh.js → gherkin-pBt0wT4X.js} +0 -0
  406. /package/dist/{groovy-CKjO-cRi.js → groovy-DKsn4ppB.js} +0 -0
  407. /package/dist/{haskell-DC1Gan6v.js → haskell-BJVBJQcy.js} +0 -0
  408. /package/dist/{haxe-Bpne--ot.js → haxe-rLN5UZU5.js} +0 -0
  409. /package/dist/{http-CPVO27fZ.js → http-CbJFDV7c.js} +0 -0
  410. /package/dist/{idl-GRIbMIEq.js → idl-B4mwMAo-.js} +0 -0
  411. /package/dist/{init-BfRhston.js → init-Cge3yl4r.js} +0 -0
  412. /package/dist/{invariant-CzjtdzpE.js → invariant-D4hPsZFI.js} +0 -0
  413. /package/dist/{isEmpty-D_Jzlmqv.js → isEmpty-BQtUinxJ.js} +0 -0
  414. /package/dist/{javascript-nS0zxWNO.js → javascript-Hf2NLNC0.js} +0 -0
  415. /package/dist/{julia-CQpdTxmO.js → julia-GGpx21YN.js} +0 -0
  416. /package/dist/{katex-Dg42UEnr.js → katex-CQ_cP8Uu.js} +0 -0
  417. /package/dist/{livescript-D5kqrQol.js → livescript-CSvXMspZ.js} +0 -0
  418. /package/dist/{lua-CKifrpGK.js → lua-CVMR5LMW.js} +0 -0
  419. /package/dist/{main-C01_ic0d.js → main-CvkAPtaq.js} +0 -0
  420. /package/dist/{math-BbMyrONz.js → math-CEWMqgbD.js} +0 -0
  421. /package/dist/{mathematica-CxT3f_fi.js → mathematica-JENNt-p4.js} +0 -0
  422. /package/dist/{mbox-C2_n_I9h.js → mbox-mzifoc8E.js} +0 -0
  423. /package/dist/{memoize-CwWm-NpB.js → memoize-CuHciEBb.js} +0 -0
  424. /package/dist/{merge-Byt9w-nO.js → merge-CA_buyY3.js} +0 -0
  425. /package/dist/{micromark-factory-space-YUxUai1y.js → micromark-factory-space-BHslBP9f.js} +0 -0
  426. /package/dist/{mirc-BTQeASBH.js → mirc-BXoiItvN.js} +0 -0
  427. /package/dist/{mllike-BxO6Hl5N.js → mllike-H-KR9OuH.js} +0 -0
  428. /package/dist/{modelica-DuivZReX.js → modelica-B6Hm3mMl.js} +0 -0
  429. /package/dist/{mscgen-DwD83FOm.js → mscgen-D8TF_Hei.js} +0 -0
  430. /package/dist/{mumps-CdVjp3OE.js → mumps-CD-kNPt4.js} +0 -0
  431. /package/dist/{nginx-Bi9TuNqb.js → nginx-9EZQIKsh.js} +0 -0
  432. /package/dist/{node-sql-parser-Bet3kHkt.js → node-sql-parser-DIe6Cq_-.js} +0 -0
  433. /package/dist/{now-uNLDfbuW.js → now-CXAdKY5k.js} +0 -0
  434. /package/dist/{ntriples-DBS60qLp.js → ntriples-DgnpxU40.js} +0 -0
  435. /package/dist/{octave-BL0tQUFC.js → octave-CkobqyVm.js} +0 -0
  436. /package/dist/{oz-DBrG4vwi.js → oz-ChDLd9tS.js} +0 -0
  437. /package/dist/{pascal-BWV9h8yS.js → pascal-CvlkwK7E.js} +0 -0
  438. /package/dist/{path-C_x2ySFi.js → path-B-82hpi8.js} +0 -0
  439. /package/dist/{perl-Bm5a83JW.js → perl-BNEFTNbM.js} +0 -0
  440. /package/dist/{pig-CbJDoHaE.js → pig-Cd1DMS7P.js} +0 -0
  441. /package/dist/{powershell-tG44m5Cy.js → powershell-CPxA0zpc.js} +0 -0
  442. /package/dist/{properties-DUZGzdb1.js → properties-BaFBm-Xa.js} +0 -0
  443. /package/dist/{protobuf-CcoKXY0d.js → protobuf-BQV_-X0H.js} +0 -0
  444. /package/dist/{puppet-BH73L_Gw.js → puppet-LXLST0mx.js} +0 -0
  445. /package/dist/{purify.es-BwXbuO3r.js → purify.es-ukiMXY-F.js} +0 -0
  446. /package/dist/{python-NJIxLTZp.js → python-DLjLzX4k.js} +0 -0
  447. /package/dist/{q-MotBNA65.js → q-DswTX1Y9.js} +0 -0
  448. /package/dist/{r-BUgBPae7.js → r-CO7NpMwE.js} +0 -0
  449. /package/dist/{range-DwpxnYuB.js → range-BYuZFTbA.js} +0 -0
  450. /package/dist/{rpm-C_PaGodG.js → rpm-BlmEDT6r.js} +0 -0
  451. /package/dist/{ruby-DFLM2XD8.js → ruby-BTPKgeZZ.js} +0 -0
  452. /package/dist/{sas-BMyyu8oO.js → sas-DTDTiNO8.js} +0 -0
  453. /package/dist/{scheme-Qet9zYAe.js → scheme-UzAAg4GJ.js} +0 -0
  454. /package/dist/{shell-BKHx4Jjo.js → shell-DQ0hQCsB.js} +0 -0
  455. /package/dist/{sieve-CVo7dc4j.js → sieve-BVyYIx9u.js} +0 -0
  456. /package/dist/{simple-mode-CVFBIo6d.js → simple-mode-Dryu-fC9.js} +0 -0
  457. /package/dist/{smalltalk-BHr2nCth.js → smalltalk-DAdMAHTu.js} +0 -0
  458. /package/dist/{solr-Bt9XtM2H.js → solr-Bn6k51kO.js} +0 -0
  459. /package/dist/{sparql-QSu0ZCcc.js → sparql-Bi7quYgw.js} +0 -0
  460. /package/dist/{spreadsheet-BWfuwc0V.js → spreadsheet-UpVklYg7.js} +0 -0
  461. /package/dist/{sql-BdV3YOCG.js → sql-qyORs189.js} +0 -0
  462. /package/dist/{stex-Btoi8e7I.js → stex-Ze8D4R_5.js} +0 -0
  463. /package/dist/{stylus-CLZH9-Ps.js → stylus-jhpzcQ6Y.js} +0 -0
  464. /package/dist/{swift-JNDJdNIE.js → swift-BrO8qThZ.js} +0 -0
  465. /package/dist/{tcl-J5aE7aj5.js → tcl-s5QI5gv3.js} +0 -0
  466. /package/dist/{textile-6Hn05XQM.js → textile-ClhvJrxM.js} +0 -0
  467. /package/dist/{tiddlywiki-BWn8rSwJ.js → tiddlywiki-CmAAqw9M.js} +0 -0
  468. /package/dist/{tiki-XORjA1c3.js → tiki-DzCRe_s0.js} +0 -0
  469. /package/dist/{timer-pEiW44EO.js → timer-BPKOAfmx.js} +0 -0
  470. /package/dist/{toml-BceyeuiF.js → toml-TFa3EJQE.js} +0 -0
  471. /package/dist/{treemap-BzS5cW_6.js → treemap-CmLtUuWe.js} +0 -0
  472. /package/dist/{troff-DeMyd5Pf.js → troff-SqLg0heF.js} +0 -0
  473. /package/dist/{ttcn-DurvvcB-.js → ttcn-Cfrap7HJ.js} +0 -0
  474. /package/dist/{ttcn-cfg-BuYui6Rv.js → ttcn-cfg-Dopc-iwE.js} +0 -0
  475. /package/dist/{turtle-CD8Qf-tp.js → turtle-Dt52DvVH.js} +0 -0
  476. /package/dist/{vb-BklM-Nqk.js → vb-D1pAvfDe.js} +0 -0
  477. /package/dist/{vbscript-DbMEEX0d.js → vbscript-DZ7RBxn5.js} +0 -0
  478. /package/dist/{velocity-CERL-_vq.js → velocity-Csau7eZy.js} +0 -0
  479. /package/dist/{verilog-BD6jNce6.js → verilog-gXlZACs5.js} +0 -0
  480. /package/dist/{vhdl-U-1_N98i.js → vhdl-NaUWbI1B.js} +0 -0
  481. /package/dist/{webidl-IUn0dzoa.js → webidl-BJmPjW01.js} +0 -0
  482. /package/dist/{xquery-QeeHdSO2.js → xquery-CJIPsC0g.js} +0 -0
  483. /package/dist/{yacas-C9XcEPAJ.js → yacas-8f2Vjiiz.js} +0 -0
  484. /package/dist/{z80-C-nD1oRy.js → z80-s5Xk2hCP.js} +0 -0
@@ -2,6 +2,7 @@
2
2
  "use no memo";
3
3
 
4
4
  import type { Table } from "@tanstack/react-table";
5
+ import { range } from "lodash-es";
5
6
  import {
6
7
  ChevronDown,
7
8
  ChevronLeft,
@@ -12,126 +13,47 @@ import {
12
13
  import React from "react";
13
14
  import { useLocale } from "react-aria";
14
15
  import { Button } from "@/components/ui/button";
16
+ import {
17
+ Command,
18
+ CommandEmpty,
19
+ CommandInput,
20
+ CommandItem,
21
+ CommandList,
22
+ } from "@/components/ui/command";
15
23
  import {
16
24
  DropdownMenu,
17
25
  DropdownMenuContent,
18
26
  DropdownMenuItem,
19
27
  DropdownMenuLabel,
20
- DropdownMenuSeparator,
21
28
  DropdownMenuTrigger,
22
29
  } from "@/components/ui/dropdown-menu";
23
- import { Input } from "@/components/ui/input";
24
- import { range } from "@/utils/arrays";
30
+ import {
31
+ Popover,
32
+ PopoverContent,
33
+ PopoverTrigger,
34
+ } from "@/components/ui/popover";
35
+ import { Tooltip } from "@/components/ui/tooltip";
25
36
  import { cn } from "@/utils/cn";
26
37
  import { Events } from "@/utils/events";
27
38
  import { prettyNumber } from "@/utils/numbers";
28
39
  import { PluralWord } from "@/utils/pluralize";
29
- import {
30
- Select,
31
- SelectContent,
32
- SelectGroup,
33
- SelectItem,
34
- SelectLabel,
35
- SelectTrigger,
36
- SelectValue,
37
- } from "../ui/select";
38
- import type { DataTableSelection, PageRange } from "./types";
40
+ import type { PageRange } from "./types";
39
41
 
40
42
  const MAX_PAGES_BEFORE_CLAMPING = 100;
41
43
 
42
44
  interface DataTablePaginationProps<TData> {
43
45
  table: Table<TData>;
44
- selection?: DataTableSelection;
45
- totalColumns: number;
46
- onSelectAllRowsChange?: (value: boolean) => void;
47
46
  tableLoading?: boolean;
48
47
  showPageSizeSelector?: boolean;
49
48
  }
50
49
 
51
50
  export const DataTablePagination = <TData,>({
52
51
  table,
53
- selection,
54
- onSelectAllRowsChange,
55
- totalColumns,
56
52
  tableLoading,
57
53
  showPageSizeSelector,
58
54
  }: DataTablePaginationProps<TData>) => {
59
55
  const { locale } = useLocale();
60
56
 
61
- const renderTotal = () => {
62
- const { rowSelection, cellSelection } = table.getState();
63
- let selected = Object.keys(rowSelection).length;
64
- let isAllPageSelected = table.getIsAllPageRowsSelected();
65
- const numRows = table.getRowCount();
66
- let isAllSelected = selected === numRows;
67
-
68
- const isCellSelection =
69
- selection === "single-cell" || selection === "multi-cell";
70
- if (isCellSelection) {
71
- selected = cellSelection.length;
72
- isAllPageSelected = false;
73
- isAllSelected = false;
74
- }
75
-
76
- if (isAllPageSelected && !isAllSelected) {
77
- return (
78
- <>
79
- <span>{prettyNumber(selected, locale)} selected</span>
80
- <Button
81
- size="xs"
82
- data-testid="select-all-button"
83
- variant="link"
84
- className="h-4 print:hidden"
85
- onMouseDown={Events.preventFocus}
86
- onClick={() => {
87
- if (onSelectAllRowsChange) {
88
- onSelectAllRowsChange(true);
89
- } else {
90
- table.toggleAllRowsSelected(true);
91
- }
92
- }}
93
- >
94
- Select all {prettyNumber(numRows, locale)}
95
- </Button>
96
- </>
97
- );
98
- }
99
-
100
- if (selected) {
101
- return (
102
- <>
103
- <span>{prettyNumber(selected, locale)} selected</span>
104
- <Button
105
- size="xs"
106
- data-testid="clear-selection-button"
107
- variant="link"
108
- className="h-4 print:hidden"
109
- onMouseDown={Events.preventFocus}
110
- onClick={() => {
111
- if (!isCellSelection) {
112
- if (onSelectAllRowsChange) {
113
- onSelectAllRowsChange(false);
114
- } else {
115
- table.toggleAllRowsSelected(false);
116
- }
117
- } else if (table.resetCellSelection) {
118
- table.resetCellSelection();
119
- }
120
- }}
121
- >
122
- Clear selection
123
- </Button>
124
- </>
125
- );
126
- }
127
-
128
- const rowColumnCount = prettifyRowColumnCount(
129
- numRows,
130
- totalColumns,
131
- locale,
132
- );
133
- return <span>{rowColumnCount}</span>;
134
- };
135
57
  const currentPage = Math.min(
136
58
  table.getState().pagination.pageIndex + 1,
137
59
  table.getPageCount(),
@@ -153,65 +75,72 @@ export const DataTablePagination = <TData,>({
153
75
 
154
76
  const renderPageSizeSelector = () => {
155
77
  return (
156
- <div className="flex items-center gap-1 text-xs whitespace-nowrap mr-1 print:hidden">
157
- <Select
158
- value={pageSize.toString()}
159
- onValueChange={(value) => table.setPageSize(Number(value))}
160
- >
161
- <SelectTrigger className="w-11 h-[18px] shadow-none! !hover:shadow-none ring-0! border-border text-xs p-1">
162
- <SelectValue />
163
- </SelectTrigger>
164
- <SelectContent>
165
- <SelectGroup>
166
- <SelectLabel>Rows per page</SelectLabel>
167
- {[...pageSizes].map((size) => {
168
- const sizeStr = size.toString();
169
- return (
170
- <SelectItem key={size} value={sizeStr}>
171
- {sizeStr}
172
- </SelectItem>
173
- );
174
- })}
175
- </SelectGroup>
176
- </SelectContent>
177
- </Select>
178
- <span>/ page</span>
78
+ <div className="flex items-center text-xs whitespace-nowrap mr-1 print:hidden">
79
+ <DropdownMenu>
80
+ <DropdownMenuTrigger asChild={true}>
81
+ <button
82
+ type="button"
83
+ className="border rounded justify-between pl-1.5 pr-0.5 h-6 text-xs items-center hover:bg-accent inline-flex gap-0.5"
84
+ >
85
+ {pageSize} / page
86
+ <ChevronDown className="h-3 w-3 opacity-50 mb-px" />
87
+ </button>
88
+ </DropdownMenuTrigger>
89
+ <DropdownMenuContent align="center" sideOffset={6}>
90
+ <DropdownMenuLabel className="text-xs text-muted-foreground">
91
+ Rows per page
92
+ </DropdownMenuLabel>
93
+ {[...pageSizes].map((size) => (
94
+ <DropdownMenuItem
95
+ key={size}
96
+ className={cn(
97
+ "text-xs cursor-pointer",
98
+ size === pageSize && "font-semibold bg-accent",
99
+ )}
100
+ onSelect={() => table.setPageSize(size)}
101
+ onMouseDown={Events.preventFocus}
102
+ >
103
+ {size}
104
+ </DropdownMenuItem>
105
+ ))}
106
+ </DropdownMenuContent>
107
+ </DropdownMenu>
179
108
  </div>
180
109
  );
181
110
  };
182
111
 
183
112
  return (
184
- <div className="flex flex-1 items-center justify-between px-2">
185
- <div className="flex items-center gap-2">
186
- <div className="text-sm text-muted-foreground">{renderTotal()}</div>
113
+ <div className="flex flex-col lg:flex-row items-center gap-0.5 lg:gap-1 px-2">
114
+ <div className="order-2 lg:order-first">
187
115
  {showPageSizeSelector && renderPageSizeSelector()}
188
116
  </div>
189
-
190
- <div className="flex items-end space-x-2 print:hidden">
191
- <Button
192
- size="xs"
193
- variant="outline"
194
- data-testid="first-page-button"
195
- className="hidden h-6 w-6 p-0 lg:flex"
196
- onClick={() => handlePageChange(() => table.setPageIndex(0))}
197
- onMouseDown={Events.preventFocus}
198
- disabled={!table.getCanPreviousPage()}
199
- >
200
- <span className="sr-only">Go to first page</span>
201
- <ChevronsLeft className="h-4 w-4" />
202
- </Button>
203
- <Button
204
- size="xs"
205
- variant="outline"
206
- data-testid="previous-page-button"
207
- className="h-6 w-6 p-0"
208
- onClick={() => handlePageChange(() => table.previousPage())}
209
- onMouseDown={Events.preventFocus}
210
- disabled={!table.getCanPreviousPage()}
211
- >
212
- <span className="sr-only">Go to previous page</span>
213
- <ChevronLeft className="h-4 w-4" />
214
- </Button>
117
+ <div className="order-1 lg:order-last flex items-center print:hidden">
118
+ <Tooltip content="First page">
119
+ <Button
120
+ size="xs"
121
+ variant="text"
122
+ data-testid="first-page-button"
123
+ className="hidden h-6 w-5 p-0 lg:flex"
124
+ onClick={() => handlePageChange(() => table.setPageIndex(0))}
125
+ onMouseDown={Events.preventFocus}
126
+ disabled={!table.getCanPreviousPage()}
127
+ >
128
+ <ChevronsLeft className="h-4 w-4" />
129
+ </Button>
130
+ </Tooltip>
131
+ <Tooltip content="Previous page">
132
+ <Button
133
+ size="xs"
134
+ variant="text"
135
+ data-testid="previous-page-button"
136
+ className="h-6 w-5 p-0"
137
+ onClick={() => handlePageChange(() => table.previousPage())}
138
+ onMouseDown={Events.preventFocus}
139
+ disabled={!table.getCanPreviousPage()}
140
+ >
141
+ <ChevronLeft className="h-4 w-4" />
142
+ </Button>
143
+ </Tooltip>
215
144
  <div className="flex items-center justify-center text-xs font-medium gap-1">
216
145
  <span>Page</span>
217
146
  <PageSelector
@@ -225,32 +154,36 @@ export const DataTablePagination = <TData,>({
225
154
  of {prettyNumber(totalPages, locale)}
226
155
  </span>
227
156
  </div>
228
- <Button
229
- size="xs"
230
- variant="outline"
231
- data-testid="next-page-button"
232
- className="h-6 w-6 p-0"
233
- onClick={() => handlePageChange(() => table.nextPage())}
234
- onMouseDown={Events.preventFocus}
235
- disabled={!table.getCanNextPage()}
236
- >
237
- <span className="sr-only">Go to next page</span>
238
- <ChevronRight className="h-4 w-4" />
239
- </Button>
240
- <Button
241
- size="xs"
242
- variant="outline"
243
- data-testid="last-page-button"
244
- className="hidden h-6 w-6 p-0 lg:flex"
245
- onClick={() =>
246
- handlePageChange(() => table.setPageIndex(table.getPageCount() - 1))
247
- }
248
- onMouseDown={Events.preventFocus}
249
- disabled={!table.getCanNextPage()}
250
- >
251
- <span className="sr-only">Go to last page</span>
252
- <ChevronsRight className="h-4 w-4" />
253
- </Button>
157
+ <Tooltip content="Next page">
158
+ <Button
159
+ size="xs"
160
+ variant="text"
161
+ data-testid="next-page-button"
162
+ className="h-6 w-5 p-0"
163
+ onClick={() => handlePageChange(() => table.nextPage())}
164
+ onMouseDown={Events.preventFocus}
165
+ disabled={!table.getCanNextPage()}
166
+ >
167
+ <ChevronRight className="h-4 w-4" />
168
+ </Button>
169
+ </Tooltip>
170
+ <Tooltip content="Last page">
171
+ <Button
172
+ size="xs"
173
+ variant="text"
174
+ data-testid="last-page-button"
175
+ className="hidden h-6 w-5 p-0 lg:flex"
176
+ onClick={() =>
177
+ handlePageChange(() =>
178
+ table.setPageIndex(table.getPageCount() - 1),
179
+ )
180
+ }
181
+ onMouseDown={Events.preventFocus}
182
+ disabled={!table.getCanNextPage()}
183
+ >
184
+ <ChevronsRight className="h-4 w-4" />
185
+ </Button>
186
+ </Tooltip>
254
187
  </div>
255
188
  </div>
256
189
  );
@@ -266,102 +199,89 @@ export const PageSelector = ({
266
199
  onPageChange: (page: number) => void;
267
200
  }) => {
268
201
  const [open, setOpen] = React.useState(false);
269
- const [jumpValue, setJumpValue] = React.useState("");
270
- const jumpInputId = React.useId();
271
202
 
272
203
  const pageRanges = React.useMemo(
273
204
  () => getPageRanges(currentPage, totalPages),
274
205
  [currentPage, totalPages],
275
206
  );
276
207
 
277
- const handleJump = () => {
278
- const page = Number.parseInt(jumpValue, 10);
279
- if (page >= 1 && page <= totalPages) {
280
- onPageChange(page - 1);
281
- setJumpValue("");
282
- setOpen(false);
283
- }
208
+ const handleSelect = (page: number) => {
209
+ onPageChange(page - 1);
210
+ setOpen(false);
284
211
  };
285
212
 
286
213
  return (
287
- <DropdownMenu open={open} onOpenChange={setOpen}>
288
- <DropdownMenuTrigger asChild={true}>
214
+ <Popover open={totalPages > 1 ? open : false} onOpenChange={setOpen}>
215
+ <PopoverTrigger asChild={true} disabled={totalPages <= 1}>
289
216
  <button
290
217
  type="button"
291
- className="border rounded justify-between pl-1.5 pr-0.5 min-w-9 text-xs items-center hover:bg-accent inline-flex gap-0.5"
218
+ className={cn(
219
+ "border rounded justify-between pl-1.5 pr-0.5 h-6 min-w-9 text-xs items-center inline-flex gap-0.5",
220
+ totalPages > 1
221
+ ? "hover:bg-accent cursor-pointer"
222
+ : "opacity-50 cursor-default",
223
+ )}
292
224
  data-testid="page-select"
225
+ disabled={totalPages <= 1}
293
226
  >
294
227
  {currentPage}
295
228
  <ChevronDown className="h-3 w-3 opacity-50 mb-px" />
296
229
  </button>
297
- </DropdownMenuTrigger>
298
- <DropdownMenuContent
299
- className="w-36 overflow-hidden flex flex-col"
300
- scrollable={false}
301
- align="center"
302
- sideOffset={6}
303
- style={{ maxHeight: "22rem" }}
304
- >
305
- <div className="overflow-y-auto flex-1 min-h-0">
306
- {pageRanges.map((item) =>
307
- item.type === "ellipsis" ? (
308
- <DropdownMenuLabel
309
- key={item.key}
310
- className="text-center text-xs text-muted-foreground"
311
- >
312
- ...
313
- </DropdownMenuLabel>
314
- ) : (
315
- <DropdownMenuItem
316
- key={item.page}
317
- data-testid="page-option"
318
- className={cn(
319
- "text-xs cursor-pointer",
320
- item.page === currentPage && "font-semibold bg-accent",
321
- )}
322
- onSelect={() => onPageChange(item.page - 1)}
323
- onMouseDown={Events.preventFocus}
324
- >
325
- {item.page}
326
- </DropdownMenuItem>
327
- ),
328
- )}
329
- </div>
330
- {totalPages > MAX_PAGES_BEFORE_CLAMPING && (
331
- <>
332
- <DropdownMenuSeparator />
333
- <div
334
- className="px-2 pt-0.5 shrink-0"
335
- onKeyDown={(e) => e.stopPropagation()}
336
- >
337
- <label
338
- htmlFor={jumpInputId}
339
- className="text-xs text-muted-foreground block mb-1"
340
- >
341
- Jump to page
342
- </label>
343
- <Input
344
- id={jumpInputId}
345
- type="number"
346
- min={1}
347
- max={totalPages}
348
- placeholder={`1-${totalPages}`}
349
- value={jumpValue}
350
- onChange={(e) => setJumpValue(e.target.value)}
351
- onKeyDown={(e) => {
352
- if (e.key === "Enter") {
353
- handleJump();
354
- }
355
- e.stopPropagation();
356
- }}
357
- className="h-6 text-xs"
358
- data-testid="page-jump-input"
359
- />
360
- </div>
361
- </>
362
- )}
363
- </DropdownMenuContent>
364
- </DropdownMenu>
230
+ </PopoverTrigger>
231
+ <PopoverContent className="w-36 p-0" align="center" sideOffset={6}>
232
+ <Command
233
+ shouldFilter={true}
234
+ filter={(value, search) => {
235
+ return value.startsWith(search) ? 1 : 0;
236
+ }}
237
+ >
238
+ <CommandInput
239
+ placeholder={`Page (1–${totalPages})`}
240
+ rootClassName="px-2 h-8"
241
+ className="text-xs h-8"
242
+ autoFocus={true}
243
+ icon={null}
244
+ onKeyDown={(e) => {
245
+ // Allow navigation/editing keys, block non-numeric input
246
+ const allowed = [
247
+ "Backspace",
248
+ "Delete",
249
+ "ArrowLeft",
250
+ "ArrowRight",
251
+ "Tab",
252
+ "Enter",
253
+ "Escape",
254
+ ];
255
+ if (!allowed.includes(e.key) && !/^\d$/.test(e.key)) {
256
+ e.preventDefault();
257
+ }
258
+ }}
259
+ />
260
+ <CommandList className="max-h-60">
261
+ {pageRanges.map((item) =>
262
+ item.type === "ellipsis" ? null : (
263
+ <CommandItem
264
+ key={item.page}
265
+ value={String(item.page)}
266
+ data-testid="page-option"
267
+ className={cn(
268
+ "text-xs cursor-pointer",
269
+ item.page === currentPage && "font-semibold bg-accent",
270
+ )}
271
+ onSelect={() => handleSelect(item.page)}
272
+ onMouseDown={Events.preventFocus}
273
+ >
274
+ {item.page}
275
+ </CommandItem>
276
+ ),
277
+ )}
278
+ <CommandEmpty className="py-2 text-center text-xs text-muted-foreground">
279
+ No matching page
280
+ </CommandEmpty>
281
+ </CommandList>
282
+ </Command>
283
+ </PopoverContent>
284
+ </Popover>
365
285
  );
366
286
  };
367
287
 
@@ -5,6 +5,7 @@ import { render, screen } from "@testing-library/react";
5
5
  import { useEffect } from "react";
6
6
  import { I18nProvider } from "react-aria";
7
7
  import { describe, expect, it } from "vitest";
8
+ import { TooltipProvider } from "@/components/ui/tooltip";
8
9
  import { SELECT_COLUMN_ID } from "../../types";
9
10
  import { useCellSelectionReducerActions } from "../atoms";
10
11
  import { CellSelectionStats } from "../cell-selection-stats";
@@ -23,27 +24,30 @@ const TestHarness = ({
23
24
  actions.setSelectedCells(selectedCellIds);
24
25
  }, [actions, selectedCellIds]);
25
26
  return (
26
- <I18nProvider locale="en-US">
27
- <CellSelectionStats table={table} />
28
- </I18nProvider>
27
+ <TooltipProvider>
28
+ <I18nProvider locale="en-US">
29
+ <CellSelectionStats table={table} />
30
+ </I18nProvider>
31
+ </TooltipProvider>
29
32
  );
30
33
  };
31
34
 
32
35
  describe("CellSelectionStats", () => {
33
- it("should return null when fewer than 2 cells are selected", () => {
36
+ it("should show hint when fewer than 2 cells are selected", () => {
34
37
  const row = createMockRow("0", [
35
38
  createMockCell("0_0", 10),
36
39
  createMockCell("0_1", 20),
37
40
  ]);
38
41
  const table = createMockTable([row], []);
39
42
 
40
- const { container } = render(
43
+ render(
41
44
  <CellSelectionProvider>
42
45
  <TestHarness table={table} selectedCellIds={new Set(["0_0"])} />
43
46
  </CellSelectionProvider>,
44
47
  );
45
48
 
46
- expect(container.firstChild).toBeNull();
49
+ expect(screen.getByText("No selection")).toBeInTheDocument();
50
+ expect(screen.queryByText(/Count:/)).not.toBeInTheDocument();
47
51
  });
48
52
 
49
53
  it("should display Count stat when 2 or more cells are selected", () => {
@@ -181,20 +185,20 @@ describe("CellSelectionStats", () => {
181
185
  expect(screen.getByText("Average: 0")).toBeInTheDocument();
182
186
  });
183
187
 
184
- it("should not display any stats when exactly one cell is selected", () => {
188
+ it("should show hint instead of stats when exactly one cell is selected", () => {
185
189
  const row = createMockRow("0", [
186
190
  createMockCell("0_0", 10),
187
191
  createMockCell("0_1", 20),
188
192
  ]);
189
193
  const table = createMockTable([row], []);
190
194
 
191
- const { container } = render(
195
+ render(
192
196
  <CellSelectionProvider>
193
197
  <TestHarness table={table} selectedCellIds={new Set(["0_0"])} />
194
198
  </CellSelectionProvider>,
195
199
  );
196
200
 
197
- expect(container.firstChild).toBeNull();
201
+ expect(screen.getByText("No selection")).toBeInTheDocument();
198
202
  expect(screen.queryByText(/Count:/)).not.toBeInTheDocument();
199
203
  });
200
204
 
@@ -301,14 +305,14 @@ describe("CellSelectionStats", () => {
301
305
  expect(screen.getByText("Average: 25")).toBeInTheDocument();
302
306
  });
303
307
 
304
- it("should not display stats when only checkbox column cells are selected", () => {
308
+ it("should show hint when only checkbox column cells are selected", () => {
305
309
  const selectCellId1 = `0_${SELECT_COLUMN_ID}`;
306
310
  const selectCellId2 = `1_${SELECT_COLUMN_ID}`;
307
311
  const row1 = createMockRow("0", [createMockCell(selectCellId1, true)]);
308
312
  const row2 = createMockRow("1", [createMockCell(selectCellId2, false)]);
309
313
  const table = createMockTable([row1, row2], []);
310
314
 
311
- const { container } = render(
315
+ render(
312
316
  <CellSelectionProvider>
313
317
  <TestHarness
314
318
  table={table}
@@ -317,7 +321,7 @@ describe("CellSelectionStats", () => {
317
321
  </CellSelectionProvider>,
318
322
  );
319
323
 
320
- expect(container.firstChild).toBeNull();
324
+ expect(screen.getByText("No selection")).toBeInTheDocument();
321
325
  expect(screen.queryByText(/Count:/)).not.toBeInTheDocument();
322
326
  });
323
327
 
@@ -3,6 +3,7 @@
3
3
  import type { Table } from "@tanstack/react-table";
4
4
  import { useAtomValue } from "jotai";
5
5
  import { useLocale } from "react-aria";
6
+ import { Tooltip } from "@/components/ui/tooltip";
6
7
  import { cn } from "@/utils/cn";
7
8
  import { selectedCellsAtom } from "./atoms";
8
9
  import {
@@ -31,7 +32,13 @@ export const CellSelectionStats = <TData,>({
31
32
  const dataCellCount = countDataCellsInSelection(selectedCells);
32
33
 
33
34
  if (dataCellCount < 2) {
34
- return null;
35
+ return (
36
+ <Tooltip content="Select multiple cells to see stats">
37
+ <span className={cn("text-sm text-muted-foreground italic", className)}>
38
+ No selection
39
+ </span>
40
+ </Tooltip>
41
+ );
35
42
  }
36
43
 
37
44
  const numericValues = getNumericValuesFromSelectedCells(table, selectedCells);
@@ -39,7 +46,7 @@ export const CellSelectionStats = <TData,>({
39
46
  return (
40
47
  <div
41
48
  className={cn(
42
- "flex items-center justify-end gap-3 text-xs text-muted-foreground shrink-0",
49
+ "flex items-center justify-end gap-3 text-sm text-muted-foreground shrink-0",
43
50
  className,
44
51
  )}
45
52
  >
@@ -466,6 +466,7 @@ interface DataTableProps<T> extends Data<T>, DataTableFunctions {
466
466
  hoverTemplate?: string | null;
467
467
  cellHoverTexts?: Record<string, Record<string, string | null>> | null;
468
468
  toggleDisplayHeader?: () => void;
469
+ isChartBuilderOpen?: boolean;
469
470
  host: HTMLElement;
470
471
  cellId?: CellId | null;
471
472
  }
@@ -749,6 +750,7 @@ export const LoadingDataTableComponent = memo(
749
750
  > | null
750
751
  }
751
752
  toggleDisplayHeader={toggleDisplayHeader}
753
+ isChartBuilderOpen={displayHeader}
752
754
  getRow={getRow}
753
755
  cellId={cellId}
754
756
  maxHeight={props.maxHeight}
@@ -821,6 +823,7 @@ const DataTableComponent = ({
821
823
  hoverTemplate,
822
824
  cellHoverTexts,
823
825
  toggleDisplayHeader,
826
+ isChartBuilderOpen,
824
827
  calculate_top_k_rows,
825
828
  preview_column,
826
829
  getRow,
@@ -1088,6 +1091,7 @@ const DataTableComponent = ({
1088
1091
  getRowIds={get_row_ids}
1089
1092
  toggleDisplayHeader={toggleDisplayHeader}
1090
1093
  showChartBuilder={showChartBuilder}
1094
+ isChartBuilderOpen={isChartBuilderOpen}
1091
1095
  showPageSizeSelector={showPageSizeSelector}
1092
1096
  // Hidden in VSCode (for now) because we don't have a panel to show
1093
1097
  // the table explorer.
@@ -1,4 +0,0 @@
1
- import { t as apl } from "./apl-BqjtmlWW.js";
2
- export {
3
- apl
4
- };