@marimo-team/islands 0.23.2-dev6 → 0.23.2-dev60

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 (568) hide show
  1. package/dist/{ConnectedDataExplorerComponent-P92i6wYx.js → ConnectedDataExplorerComponent-BS9U2zaC.js} +68 -66
  2. package/dist/ErrorBoundary-Da4UeYxT.js +167 -0
  3. package/dist/{ImageComparisonComponent-HF4AY8_n.js → ImageComparisonComponent-DaocPIse.js} +1 -1
  4. package/dist/{Plot-CK0oVgQL.js → Plot-PIeIvFnD.js} +1 -1
  5. package/dist/{isArrayLikeObject-LXbTYiBa.js → _baseFor-BGiY-cm1.js} +43 -215
  6. package/dist/_baseUniq-CxZRxRRo.js +380 -0
  7. package/dist/{any-language-editor-BCvLfvzI.js → any-language-editor-BVR0l12r.js} +23 -22
  8. package/dist/apl-BKoVld9y.js +4 -0
  9. package/dist/{arc-DLJpPF9M.js → arc-CHF8PiiF.js} +2 -2
  10. package/dist/architecture-7HQA4BMR-D0JB_3hE.js +6 -0
  11. package/dist/{architectureDiagram-VXUJARFQ-B3YQo9At.js → architectureDiagram-VXUJARFQ-BXQEUDtK.js} +19 -19
  12. package/dist/{arrays-beUWo8RF.js → arrays-CldYf7p7.js} +1 -1
  13. package/dist/asciiarmor-DQrKIjoo.js +4 -0
  14. package/dist/asn1-BZvnj0dq.js +4 -0
  15. package/dist/{blockDiagram-VD42YOAC-CpQ3TKEN.js → blockDiagram-VD42YOAC-DhJe-Y9i.js} +53 -53
  16. package/dist/brainfuck-D558nlUv.js +4 -0
  17. package/dist/{button-D1C3g5GI.js → button-CA5pI2YF.js} +2 -2
  18. package/dist/{c4Diagram-YG6GDRKO-CZSU4uqU.js → c4Diagram-YG6GDRKO-9dSfzOFR.js} +6 -6
  19. package/dist/{capabilities-BwpUgo4S.js → capabilities-6laDasij.js} +2 -2
  20. package/dist/{channel-X3JKk8gE.js → channel-MqYIiKgS.js} +1 -1
  21. package/dist/{chat-ui-Bi0ioKDx.js → chat-ui-CTt4WX0V.js} +2803 -2800
  22. package/dist/{check-BgrdTLuv.js → check-CFM2mVDr.js} +1 -1
  23. package/dist/{chunk-4BX2VUAB-C2skOn1Z.js → chunk-4BX2VUAB-BwfrWBqN.js} +1 -1
  24. package/dist/{chunk-4F5CHEZ2-D5mClyDv.js → chunk-4F5CHEZ2-C6tO9vjs.js} +1 -1
  25. package/dist/{chunk-55IACEB6-DRsSqxbU.js → chunk-55IACEB6-D8THf2mi.js} +1 -1
  26. package/dist/{chunk-5FQGJX7Z-VIref9gx.js → chunk-5FQGJX7Z-CO1e63h_.js} +5 -5
  27. package/dist/{chunk-ABZYJK2D-CZYCCtLy.js → chunk-ABZYJK2D-BrBb_0yY.js} +3 -3
  28. package/dist/{chunk-ATLVNIR6-DaOzLLgN.js → chunk-ATLVNIR6-D-0XqNah.js} +2 -2
  29. package/dist/{chunk-B2363JML-Br0eA2T3.js → chunk-B2363JML-Ds8wZXyP.js} +1 -1
  30. package/dist/{chunk-B4BG7PRW-4BjV11Br.js → chunk-B4BG7PRW-8iRKvugR.js} +7 -7
  31. package/dist/{chunk-CVBHYZKI-BXHgce-x.js → chunk-CVBHYZKI-B6xhgaBd.js} +1 -1
  32. package/dist/{chunk-DI55MBZ5-DITY3EyP.js → chunk-DI55MBZ5-C0_2D4m4.js} +6 -6
  33. package/dist/{chunk-EXTU4WIE-jUPSAk3i.js → chunk-EXTU4WIE-Jiw9ca1u.js} +2 -2
  34. package/dist/{chunk-FMBD7UC4-BjIaI-XO.js → chunk-FMBD7UC4-CHdus51S.js} +1 -1
  35. package/dist/{chunk-FRFDVMJY-DnEvEFRR.js → chunk-FRFDVMJY-BgQv1HBE.js} +1 -1
  36. package/dist/{chunk-HN2XXSSU-DAhNp1ig.js → chunk-HN2XXSSU-2Vfbq-kU.js} +1 -1
  37. package/dist/{chunk-JA3XYJ7Z-BcPEfxk_.js → chunk-JA3XYJ7Z-6wbaigKe.js} +3 -3
  38. package/dist/{chunk-JZLCHNYA-2bnLL3xL.js → chunk-JZLCHNYA-_rfptlUP.js} +6 -6
  39. package/dist/{chunk-MI3HLSF2-AKwFNP3m.js → chunk-MI3HLSF2-Do0-KRc0.js} +1 -1
  40. package/dist/{chunk-N4CR4FBY-CpZSuGSU.js → chunk-N4CR4FBY-DIZG9dVD.js} +7 -7
  41. package/dist/{chunk-PL6DKKU2-DnId6G-x.js → chunk-PL6DKKU2-DHfTUHy8.js} +1 -1
  42. package/dist/{chunk-QN33PNHL-B9p5ojHB.js → chunk-QN33PNHL-Cc64y40m.js} +2 -2
  43. package/dist/{chunk-QXUST7PY-Ch6F5Obl.js → chunk-QXUST7PY-BDG0-0Or.js} +10 -10
  44. package/dist/{chunk-QZHKN3VN-BK9tlbfw.js → chunk-QZHKN3VN-B_Mdb8GC.js} +1 -1
  45. package/dist/{chunk-S3R3BYOJ-B0UOFJwq.js → chunk-S3R3BYOJ-DphMP0FA.js} +8 -8
  46. package/dist/{chunk-SJTYNZTY-BsBZnJUj.js → chunk-SJTYNZTY-Diciw4sx.js} +1 -1
  47. package/dist/{chunk-TCCFYFTB-Clbl-fTg.js → chunk-TCCFYFTB-d3HOqL2I.js} +1552 -345
  48. package/dist/{chunk-TQ3KTPDO-CFkSQ30e.js → chunk-TQ3KTPDO-CQfP9npd.js} +1 -1
  49. package/dist/{chunk-TZMSLE5B-D45397J2.js → chunk-TZMSLE5B-C9LUoYkc.js} +3 -3
  50. package/dist/{chunk-UMXZTB3W-D-A834Bq.js → chunk-UMXZTB3W-MSKeGL7W.js} +1 -1
  51. package/dist/classDiagram-2ON5EDUG-CBHMR6ZU.js +30 -0
  52. package/dist/classDiagram-v2-WZHVMYZB-BsUtUGM_.js +30 -0
  53. package/dist/{clike-B90WKs4D.js → clike-sBZrGeF8.js} +1 -1
  54. package/dist/clojure-Cq8mTSrE.js +4 -0
  55. package/dist/{clone-DZFQCtFJ.js → clone-BuIIsfA8.js} +1 -1
  56. package/dist/cmake-D8HCovWK.js +4 -0
  57. package/dist/cobol-UolN-9iU.js +4 -0
  58. package/dist/{code-block-37QAKDTI-FQEoMOU1.js → code-block-37QAKDTI-0JNwiPGv.js} +2 -2
  59. package/dist/coffeescript-VdNuWrt5.js +4 -0
  60. package/dist/commonlisp-ALX7fpDc.js +4 -0
  61. package/dist/{constants-CvyfaCvs.js → constants-D0gkYoE2.js} +4 -4
  62. package/dist/{copy-Bp6CK_Fg.js → copy-TGGAUEWp.js} +2 -2
  63. package/dist/{cose-bilkent-S5V4N54A-DvCk1aXi.js → cose-bilkent-S5V4N54A-DXHZkJKX.js} +2 -2
  64. package/dist/crystal-PbyO9Q_s.js +4 -0
  65. package/dist/css-DFklJkr_.js +4 -0
  66. package/dist/cypher-BifNeYlv.js +4 -0
  67. package/dist/d-BA-JP4PJ.js +4 -0
  68. package/dist/{dagre-6UL2VRFP-OMItEBnY.js → dagre-6UL2VRFP-tH87fkPA.js} +102 -103
  69. package/dist/{dagre-QVd-lCXU.js → dagre-VYEPqXIV.js} +105 -39
  70. package/dist/{data-grid-overlay-editor-C_sKPpLu.js → data-grid-overlay-editor-CWUN78-s.js} +3 -3
  71. package/dist/{diagram-PSM6KHXK-CkKbohWI.js → diagram-PSM6KHXK-2VjPSCDn.js} +22 -22
  72. package/dist/{diagram-QEK2KX5R-DjUMpVcx.js → diagram-QEK2KX5R-CiLmNyta.js} +17 -17
  73. package/dist/{diagram-S2PKOQOG-b-c0d-wZ.js → diagram-S2PKOQOG-Zha_1CLx.js} +17 -17
  74. package/dist/diff-CtkDpav4.js +4 -0
  75. package/dist/dist-B--tLnAP.js +5 -0
  76. package/dist/{dist-tGk0aZ--.js → dist-B52GXZbd.js} +2 -2
  77. package/dist/{dist-Bfp1XXWt.js → dist-B8BjrFUE.js} +5 -5
  78. package/dist/dist-BEOU2g1b.js +8 -0
  79. package/dist/dist-BHnX0ia_.js +8 -0
  80. package/dist/{dist-DJKubHDd.js → dist-BK-3fF4P.js} +1 -1
  81. package/dist/{dist-Ci0CXEFt.js → dist-BTyJtnNg.js} +1 -1
  82. package/dist/{dist-CFKdzOIu.js → dist-BetEKbPG.js} +2 -2
  83. package/dist/{dist-DpkJHKB8.js → dist-BrBucRXs.js} +2 -2
  84. package/dist/{dist-CTwGwcQ8.js → dist-Brkazupz.js} +2 -2
  85. package/dist/dist-BuBwsFva.js +5 -0
  86. package/dist/dist-BzmEQ9u7.js +5 -0
  87. package/dist/{dist-ej6AQKaS.js → dist-C-J0pt5p.js} +1 -1
  88. package/dist/dist-C1Ap5CYU.js +5 -0
  89. package/dist/{dist-LhQNUe5A.js → dist-C474qFoq.js} +3 -3
  90. package/dist/{dist-DlSUOIm9.js → dist-C9fmTOin.js} +1 -1
  91. package/dist/{dist-CxZvoNao.js → dist-CCADb07R.js} +44 -31
  92. package/dist/{dist-BjDuO5JW.js → dist-CGLzXdrt.js} +1 -1
  93. package/dist/dist-CMjD5MQb.js +6 -0
  94. package/dist/{dist-BvhGByxL.js → dist-CNtV21T_.js} +4 -4
  95. package/dist/dist-ChC1BhqM.js +6 -0
  96. package/dist/dist-Cih01ssx.js +5 -0
  97. package/dist/{dist-CNF0QBLR.js → dist-CinA9Enb.js} +1 -1
  98. package/dist/dist-CqfONiY9.js +5 -0
  99. package/dist/{dist-DFK94vuS.js → dist-CtCY55Jf.js} +2 -2
  100. package/dist/{dist-VqF3W_ue.js → dist-CxdUraQr.js} +2 -2
  101. package/dist/{dist-DUFd1bhm.js → dist-CyFFzJTb.js} +1 -1
  102. package/dist/{dist-C4bq5Ioy.js → dist-D029TiHd.js} +2 -2
  103. package/dist/dist-D0iD0Fi9.js +5 -0
  104. package/dist/{dist-m9tsXsFf.js → dist-D9r7Cmw7.js} +2 -2
  105. package/dist/{dist-DD_cYHOl.js → dist-DBLeRrPp.js} +2 -2
  106. package/dist/{dist-DJ9F1eHs.js → dist-DGAfI2rB.js} +2 -2
  107. package/dist/{dist-BrxqmS9Q.js → dist-DZjQ_MBo.js} +4 -4
  108. package/dist/{dist-DLafRu9s.js → dist-DadjmS-4.js} +2 -2
  109. package/dist/{dist-Doy0mQDg.js → dist-DkC6YEo0.js} +2 -2
  110. package/dist/{dist-CIB8w0Fl.js → dist-DquyVv5H.js} +2 -2
  111. package/dist/dist-DtNLXm8d.js +5 -0
  112. package/dist/{dist-CTtLBPLZ.js → dist-ESg7xyoD.js} +4 -4
  113. package/dist/dist-FN0ZA_8F.js +8 -0
  114. package/dist/{dist-CcMfr7jD.js → dist-HVuryI1a.js} +1 -1
  115. package/dist/{dist-DGNtjMZu.js → dist-JEhxD_cn.js} +1 -1
  116. package/dist/{dist-B43sbpd0.js → dist-UcOPnRMa.js} +3 -3
  117. package/dist/dist-YP-G7W0f.js +8 -0
  118. package/dist/{dist-DbnBiLNH.js → dist-Yrfc6L0I.js} +3 -3
  119. package/dist/{dist--6TSlp8H.js → dist-Zn0KNbo9.js} +1 -1
  120. package/dist/{dist-DAfcmt-d.js → dist-nuW5EDYT.js} +2 -2
  121. package/dist/{dockerfile-DfXhjEUG.js → dockerfile-COvlVLcE.js} +1 -1
  122. package/dist/dtd-DW3_UFEG.js +4 -0
  123. package/dist/dylan-pDhodO2N.js +4 -0
  124. package/dist/ecl-BJT8-YD7.js +4 -0
  125. package/dist/eiffel-Dmns-9vS.js +4 -0
  126. package/dist/elm-Da4sO4Bz.js +4 -0
  127. package/dist/{erDiagram-Q2GNP2WA-CDhLaOZ1.js → erDiagram-Q2GNP2WA-biHZS05w.js} +15 -15
  128. package/dist/erlang-C-zBsDi7.js +4 -0
  129. package/dist/{error-banner-B_ioHva3.js → error-banner-DnBPzEWg.js} +3 -3
  130. package/dist/{esm-CD1iby2n.js → esm-CYEyrE3Y.js} +105 -105
  131. package/dist/esm-Dd1z1auZ.js +1171 -0
  132. package/dist/extends-CzJgxo2J.js +1645 -0
  133. package/dist/factor-4xPWlWB5.js +4 -0
  134. package/dist/{factor--4HHM8Rw.js → factor-C2GT7jfQ.js} +1 -1
  135. package/dist/flatten-CzBvFdvC.js +8 -0
  136. package/dist/{flowDiagram-NV44I4VS-BDi4O4CL.js → flowDiagram-NV44I4VS-CWWlUpBR.js} +17 -17
  137. package/dist/formats-Dh5M1ZRs.js +79 -0
  138. package/dist/forth-l-c75zSd.js +4 -0
  139. package/dist/fortran-DIujSODW.js +4 -0
  140. package/dist/{ganttDiagram-JELNMOA3-BpZE6kVp.js → ganttDiagram-JELNMOA3-D7B2c4Z9.js} +10 -10
  141. package/dist/gas-CXnG5g_b.js +4 -0
  142. package/dist/gherkin-VPeqd4-X.js +4 -0
  143. package/dist/{gitGraph-G5XIXVHT-B_c6xFJv.js → gitGraph-G5XIXVHT-BdepdFa_.js} +3 -3
  144. package/dist/{gitGraphDiagram-V2S2FVAM-iQnXzbPM.js → gitGraphDiagram-V2S2FVAM-CtLvNR1S.js} +17 -17
  145. package/dist/{glide-data-editor-BFqEJGJW.js → glide-data-editor-CVtY_KYw.js} +572 -570
  146. package/dist/graphlib-CVPKjKCS.js +359 -0
  147. package/dist/groovy-CphhZQgg.js +4 -0
  148. package/dist/{hasIn-DnfJcYpY.js → hasIn-COs6vImh.js} +3 -3
  149. package/dist/haskell-CCvlS5Iq.js +4 -0
  150. package/dist/haxe-C_bi66fP.js +5 -0
  151. package/dist/{process-output-H_7QTreh.js → html-to-image-BdsDysfl.js} +2521 -2639
  152. package/dist/idl-1DcP4Dm8.js +4 -0
  153. package/dist/{info-VBDWY6EO-BTyzxmhr.js → info-VBDWY6EO--JNA2rNu.js} +3 -3
  154. package/dist/infoDiagram-HS3SLOUP-BbZyOxsP.js +30 -0
  155. package/dist/{input-CSVEkmaZ.js → input-Drx1pguW.js} +70 -70
  156. package/dist/{isEmpty-B7FX9wKt.js → isEmpty-Dd8mx_WL.js} +9 -9
  157. package/dist/{isSymbol-DCbjQG_U.js → isSymbol-BvIfMnn6.js} +1 -1
  158. package/dist/javascript-DUIGhBvO.js +4 -0
  159. package/dist/{journeyDiagram-XKPGCS4Q-ClPC94aN.js → journeyDiagram-XKPGCS4Q-BU2mjjzl.js} +7 -7
  160. package/dist/julia-Cs2G4PQi.js +4 -0
  161. package/dist/{kanban-definition-3W4ZIXB7-DHEAKdZt.js → kanban-definition-3W4ZIXB7-BlmczUuw.js} +12 -12
  162. package/dist/{katex-CkLtKXwv.js → katex-qPqrBHZ8.js} +1 -1
  163. package/dist/label-BCWi-Oqu.js +31 -0
  164. package/dist/{line-PAEmCpyD.js → line-BWRi3U3S.js} +3 -3
  165. package/dist/{linear-v57w-fIs.js → linear-DnHwODZa.js} +4 -4
  166. package/dist/livescript-DMtVFaAN.js +4 -0
  167. package/dist/{loader-ZFbGsMN1.js → loader-BvW0-YWZ.js} +2 -2
  168. package/dist/lua-BAoLtdJg.js +4 -0
  169. package/dist/main.js +16436 -39680
  170. package/dist/mathematica-C_NoFtbo.js +4 -0
  171. package/dist/mbox-DcFJFYrH.js +4 -0
  172. package/dist/{memoize-CSTI9eOX.js → memoize-C9ltv0Cw.js} +1 -1
  173. package/dist/merge-CHn7Yx0N.js +222 -0
  174. package/dist/mermaid-4DMBBIKO-CG1ECj5W.js +6 -0
  175. package/dist/{mermaid-BbhZNQeB.js → mermaid-BagLPXm9.js} +50 -50
  176. package/dist/{mermaid-parser.core-ntCgyx0x.js → mermaid-parser.core-CleJseNW.js} +8 -8
  177. package/dist/{mhchem-BuY5LDSq.js → mhchem-BwoRNwg_.js} +1 -1
  178. package/dist/min-BNz2lZfk.js +38 -0
  179. package/dist/{mindmap-definition-VGOIOE7T-CxEUZZvY.js → mindmap-definition-VGOIOE7T-CcSYqYP9.js} +14 -14
  180. package/dist/mirc-71dccf_u.js +4 -0
  181. package/dist/mllike-CWcOFVDq.js +6 -0
  182. package/dist/modelica-Ape2VXxx.js +4 -0
  183. package/dist/mscgen-Cc6TwbSN.js +6 -0
  184. package/dist/mumps-h-ZbdkJ9.js +4 -0
  185. package/dist/now-Sgq5m3D-.js +31 -0
  186. package/dist/{nsis-B6EN9LWI.js → nsis-B5K1qoyo.js} +1 -1
  187. package/dist/nsis-C0p3m7JW.js +4 -0
  188. package/dist/ntriples-c9lEeT5w.js +4 -0
  189. package/dist/{number-overlay-editor-B02-t7Ar.js → number-overlay-editor-_GnlYFHC.js} +1 -1
  190. package/dist/octave-DzEgB_74.js +4 -0
  191. package/dist/{once-C_TIu-kR.js → once-rJImu7SE.js} +1 -1
  192. package/dist/{ordinal-D7fa8Sey.js → ordinal-2jIulmcR.js} +1 -1
  193. package/dist/oz-CAxvHkyQ.js +4 -0
  194. package/dist/{packet-DYOGHKS2-BhvnpoGi.js → packet-DYOGHKS2-CBxXGWNr.js} +3 -3
  195. package/dist/pascal-BJzu1sgP.js +4 -0
  196. package/dist/perl--IrOzZ2Z.js +4 -0
  197. package/dist/pick-CRAXxDYn.js +43 -0
  198. package/dist/{pie-VRWISCQL-dILuA3iG.js → pie-VRWISCQL-Bmdnqjip.js} +3 -3
  199. package/dist/{pieDiagram-ADFJNKIX-U3LrUqAS.js → pieDiagram-ADFJNKIX-DNyLF5H2.js} +22 -22
  200. package/dist/pig-CiBKKNhC.js +4 -0
  201. package/dist/powershell-KY0j6Qop.js +4 -0
  202. package/dist/{precisionRound-CGLoV26P.js → precisionRound-CnHPY_5v.js} +1 -1
  203. package/dist/process-output-COL2Pf5I.js +109 -0
  204. package/dist/properties-BW8q3ziV.js +4 -0
  205. package/dist/protobuf-BGaeuTGV.js +4 -0
  206. package/dist/pug-DjOKK-4J.js +4 -0
  207. package/dist/{pug-xrm7jQ2R.js → pug-tjbzJCFk.js} +1 -1
  208. package/dist/puppet-DWm2o6zX.js +4 -0
  209. package/dist/{purify.es-hTCfRGdl.js → purify.es-DT70lfR0.js} +85 -81
  210. package/dist/python-Bp2gezZy.js +4 -0
  211. package/dist/q-DljPshos.js +4 -0
  212. package/dist/{quadrantDiagram-AYHSOK5B-BVWuq-3R.js → quadrantDiagram-AYHSOK5B-rXwjifrj.js} +5 -5
  213. package/dist/r-BajPMnEu.js +4 -0
  214. package/dist/{radar-ZZBFDIW7-DwFrOJDj.js → radar-ZZBFDIW7-BmCWDffL.js} +3 -3
  215. package/dist/{react-vega-DBwal82H.js → react-vega-C2Rtgjb4.js} +19 -19
  216. package/dist/react-vega-jy3CfYys.js +9 -0
  217. package/dist/{requirementDiagram-UZGBJVZJ-D0zpQnKC.js → requirementDiagram-UZGBJVZJ-DBdrMVbs.js} +14 -14
  218. package/dist/reveal-component-CA7oaSt2.js +4549 -0
  219. package/dist/rpm-BKx-ZZ62.js +5 -0
  220. package/dist/ruby-DJq_HNKc.js +4 -0
  221. package/dist/{sankeyDiagram-TZEHDZUN-CExy1joT.js → sankeyDiagram-TZEHDZUN-CxmzalGv.js} +5 -5
  222. package/dist/sas-WANvpcOU.js +4 -0
  223. package/dist/scheme-CliBbhGF.js +4 -0
  224. package/dist/{sequenceDiagram-WL72ISMW-D1BJxLjH.js → sequenceDiagram-WL72ISMW-CVCDsJ9h.js} +8 -8
  225. package/dist/shell-BwhrNUvM.js +4 -0
  226. package/dist/sieve-BIVePvMp.js +4 -0
  227. package/dist/slide-BiyYep36.js +23871 -0
  228. package/dist/smalltalk-D6G48JmY.js +4 -0
  229. package/dist/sparql-jjc3BmEP.js +4 -0
  230. package/dist/{spec-3EPbPQZH.js → spec-BKWq0wn2.js} +8 -152
  231. package/dist/{src-DbP20yFZ.js → src-BY0BGg6V.js} +1 -1
  232. package/dist/{stateDiagram-FKZM4ZOC-B1S8jGMn.js → stateDiagram-FKZM4ZOC-D_2djEhW.js} +19 -19
  233. package/dist/stateDiagram-v2-4FDKWEC3-Cv9Av10H.js +29 -0
  234. package/dist/{step-qd10PbTJ.js → step-DGAGWg3y.js} +1 -1
  235. package/dist/stex-ChDHQs3R.js +4 -0
  236. package/dist/{label-BebYlsDV.js → strings-B_FOH6eV.js} +57 -81
  237. package/dist/style.css +1 -1
  238. package/dist/stylus-WPBPQ4PE.js +4 -0
  239. package/dist/swift-O1Qy6iCm.js +4 -0
  240. package/dist/{slides-component-DLxprlqo.js → swiper-component-KkEVUDd3.js} +5 -5
  241. package/dist/tcl-BAFdhvsi.js +4 -0
  242. package/dist/textile-DFuzhNLG.js +4 -0
  243. package/dist/{time-Bdnxi22U.js → time-CMdrp3hw.js} +4 -4
  244. package/dist/{timeline-definition-IT6M3QCI-BDT9JAmn.js → timeline-definition-IT6M3QCI-E4NzxCs3.js} +4 -4
  245. package/dist/{toDate-B1AzlBoW.js → toDate-yqOcZ_tY.js} +4 -4
  246. package/dist/toml-DRSTeely.js +4 -0
  247. package/dist/{tooltip-DwNnFsxZ.js → tooltip-B0mtKTXm.js} +4 -4
  248. package/dist/{treemap-GDKQZRPO-bx2ngsgN.js → treemap-GDKQZRPO-CoKHPxa7.js} +3 -3
  249. package/dist/troff-B_ZjwBW0.js +4 -0
  250. package/dist/ttcn-CAyiB3ic.js +4 -0
  251. package/dist/ttcn-cfg-BS5_BGBJ.js +4 -0
  252. package/dist/turtle-CUBEDy3E.js +4 -0
  253. package/dist/types-DBtDeUKD.js +38 -0
  254. package/dist/{useAsyncData-BL98MPIy.js → useAsyncData-CKYzhCis.js} +2 -2
  255. package/dist/useDateFormatter-B3mCQMP3.js +150 -0
  256. package/dist/useDeepCompareMemoize-je76AJS_.js +11 -0
  257. package/dist/{useIframeCapabilities-CsTUYYj7.js → useIframeCapabilities-DbdLoEDm.js} +1 -1
  258. package/dist/{useLifecycle-DrGGIsgp.js → useLifecycle-smVfjLNI.js} +4 -4
  259. package/dist/{useTheme-CzwDokKe.js → useTheme-CX9pPLUH.js} +3 -3
  260. package/dist/vb-DY9S6-U2.js +4 -0
  261. package/dist/vbscript-gaHC39Jq.js +4 -0
  262. package/dist/{vega-component-KBJXEDZz.js → vega-component-CjMUUeEZ.js} +18 -17
  263. package/dist/{vega-loader.browser-DqEcFOPD.js → vega-loader.browser-3_z8GoFC.js} +3 -3
  264. package/dist/velocity-TfCOtJZ_.js +4 -0
  265. package/dist/verilog-c2JOX8mv.js +4 -0
  266. package/dist/vhdl-dHBirRiO.js +4 -0
  267. package/dist/webidl-Bauj-i07.js +4 -0
  268. package/dist/xquery-CtaEAOt8.js +4 -0
  269. package/dist/{xychartDiagram-PRI3JC2R-CuAZiqHS.js → xychartDiagram-PRI3JC2R-CuxTvjw5.js} +13 -13
  270. package/dist/yacas-BZ85agQP.js +4 -0
  271. package/dist/z80-hCgR-L4U.js +4 -0
  272. package/dist/{zod-W5ZEjzaE.js → zod-BxdsqRPd.js} +3 -3
  273. package/package.json +4 -2
  274. package/src/__mocks__/requests.ts +1 -0
  275. package/src/components/data-table/TableBottomBar.tsx +5 -1
  276. package/src/components/data-table/__tests__/filters.test.ts +304 -0
  277. package/src/components/data-table/__tests__/pagination.test.tsx +46 -132
  278. package/src/components/data-table/__tests__/sentinel-cell.test.tsx +83 -0
  279. package/src/components/data-table/__tests__/utils.test.ts +128 -0
  280. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  281. package/src/components/data-table/column-header.tsx +11 -2
  282. package/src/components/data-table/columns.tsx +16 -2
  283. package/src/components/data-table/export-actions.tsx +62 -23
  284. package/src/components/data-table/filters.ts +87 -33
  285. package/src/components/data-table/pagination.tsx +189 -76
  286. package/src/components/data-table/schemas.ts +8 -1
  287. package/src/components/data-table/sentinel-cell.tsx +90 -0
  288. package/src/components/data-table/types.ts +23 -4
  289. package/src/components/data-table/utils.ts +74 -1
  290. package/src/components/datasources/__tests__/missing-package-prompt.test.tsx +103 -0
  291. package/src/components/datasources/missing-package-prompt.tsx +49 -0
  292. package/src/components/editor/actions/useNotebookActions.tsx +12 -0
  293. package/src/components/editor/cell/code/cell-editor.tsx +1 -0
  294. package/src/components/editor/file-tree/__tests__/requesting-tree.test.ts +33 -0
  295. package/src/components/editor/file-tree/file-explorer.tsx +8 -33
  296. package/src/components/editor/file-tree/requesting-tree.tsx +41 -0
  297. package/src/components/editor/file-tree/state.tsx +1 -0
  298. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +9 -17
  299. package/src/components/home/components.tsx +7 -0
  300. package/src/components/slides/reveal-component.tsx +109 -0
  301. package/src/components/slides/reveal-slides.css +42 -0
  302. package/src/components/slides/slides.css +0 -65
  303. package/src/components/slides/{slides-component.tsx → swiper-component.tsx} +1 -0
  304. package/src/components/slides/swiper-slides.css +64 -0
  305. package/src/components/static-html/static-banner.tsx +23 -14
  306. package/src/components/ui/toast.tsx +16 -7
  307. package/src/core/cells/__tests__/apply-transaction.test.ts +483 -0
  308. package/src/core/cells/__tests__/cells.test.ts +110 -0
  309. package/src/core/cells/__tests__/logs.test.ts +101 -0
  310. package/src/core/cells/cells.ts +18 -0
  311. package/src/core/cells/document-changes.ts +34 -1
  312. package/src/core/cells/logs.ts +9 -1
  313. package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +4 -14
  314. package/src/core/codemirror/cells/extensions.ts +0 -4
  315. package/src/core/codemirror/keymaps/keymaps.ts +69 -2
  316. package/src/core/constants.ts +1 -0
  317. package/src/core/islands/bridge.ts +1 -0
  318. package/src/core/mode.ts +10 -1
  319. package/src/core/network/requests-lazy.ts +1 -0
  320. package/src/core/network/requests-network.ts +8 -0
  321. package/src/core/network/requests-static.ts +1 -0
  322. package/src/core/network/requests-toasting.tsx +1 -0
  323. package/src/core/network/types.ts +3 -0
  324. package/src/core/wasm/__tests__/bridge.test.ts +113 -0
  325. package/src/core/wasm/bridge.ts +13 -2
  326. package/src/core/wasm/worker/types.ts +3 -0
  327. package/src/core/wasm/worker/worker.ts +1 -0
  328. package/src/plugins/core/__test__/trusted-url.test.ts +45 -1
  329. package/src/plugins/core/trusted-url.ts +27 -2
  330. package/src/plugins/impl/DataTablePlugin.tsx +7 -20
  331. package/src/plugins/impl/FileBrowserPlugin.tsx +81 -81
  332. package/src/plugins/impl/TabsPlugin.tsx +18 -12
  333. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +4 -4
  334. package/src/plugins/impl/data-frames/schema.ts +41 -9
  335. package/src/plugins/impl/data-frames/utils/operators.ts +2 -0
  336. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +16 -0
  337. package/src/plugins/layout/carousel/CarouselPlugin.tsx +3 -1
  338. package/dist/_basePickBy-Sow3pJjS.js +0 -41
  339. package/dist/_baseUniq-C87CckHL.js +0 -518
  340. package/dist/apl-C1bki_dE.js +0 -4
  341. package/dist/architecture-7HQA4BMR-BHdkAMvZ.js +0 -6
  342. package/dist/asciiarmor-BdlkCCRr.js +0 -4
  343. package/dist/asn1-CvE30hox.js +0 -4
  344. package/dist/brainfuck-BalwWy1a.js +0 -4
  345. package/dist/classDiagram-2ON5EDUG-C8-zE3Zv.js +0 -30
  346. package/dist/classDiagram-v2-WZHVMYZB-DrmbGANl.js +0 -30
  347. package/dist/clojure-CUC2I1hM.js +0 -4
  348. package/dist/cmake-8PcMxXnB.js +0 -4
  349. package/dist/cobol-DkkkDz5v.js +0 -4
  350. package/dist/coffeescript-CCupxOZf.js +0 -4
  351. package/dist/commonlisp-DhUfGX6b.js +0 -4
  352. package/dist/crystal-DSaw6rFQ.js +0 -4
  353. package/dist/css-D4QDewkG.js +0 -4
  354. package/dist/cypher-CrYVqw_F.js +0 -4
  355. package/dist/d-Cr3H3pPx.js +0 -4
  356. package/dist/diff-ODiZJGls.js +0 -4
  357. package/dist/dist-7K5doRvB.js +0 -6
  358. package/dist/dist-B6I_A2-E.js +0 -8
  359. package/dist/dist-BEQsmaZY.js +0 -5
  360. package/dist/dist-BasY2RHp.js +0 -8
  361. package/dist/dist-Bosc00dY.js +0 -5
  362. package/dist/dist-CQMZOn-_.js +0 -8
  363. package/dist/dist-CViQhWZ8.js +0 -5
  364. package/dist/dist-Cz6rLfwY.js +0 -5
  365. package/dist/dist-D8eq8st3.js +0 -6
  366. package/dist/dist-DM1UDXdl.js +0 -5
  367. package/dist/dist-DNrtWPgS.js +0 -5
  368. package/dist/dist-V7q2qnpA.js +0 -5
  369. package/dist/dist-a5_hPgu2.js +0 -8
  370. package/dist/dist-uVyZcV1-.js +0 -5
  371. package/dist/dtd-C-t2Rk7F.js +0 -4
  372. package/dist/dylan-B4ctBLGp.js +0 -4
  373. package/dist/ecl-DqWfymni.js +0 -4
  374. package/dist/eiffel-DjBKKAr7.js +0 -4
  375. package/dist/elm--fxeC0FV.js +0 -4
  376. package/dist/erlang-CaKXCX6H.js +0 -4
  377. package/dist/esm-CDHI9cuO.js +0 -2805
  378. package/dist/factor-DlLO5EFS.js +0 -4
  379. package/dist/forth-rOO6LVj_.js +0 -4
  380. package/dist/fortran-CUg15VGR.js +0 -4
  381. package/dist/gas-BMRJspiW.js +0 -4
  382. package/dist/gherkin-DRxzijZU.js +0 -4
  383. package/dist/graphlib-BV1_gi0C.js +0 -226
  384. package/dist/groovy-BmrQ8pUP.js +0 -4
  385. package/dist/haskell-BuaYfKOz.js +0 -4
  386. package/dist/haxe-DcH9eA0a.js +0 -5
  387. package/dist/idl-DGlcm4Ls.js +0 -4
  388. package/dist/infoDiagram-HS3SLOUP-OYrX6uO3.js +0 -30
  389. package/dist/javascript-CeTk7rzr.js +0 -4
  390. package/dist/julia-BoP_q1gm.js +0 -4
  391. package/dist/livescript-B7IMN-ba.js +0 -4
  392. package/dist/lua-q1InavKb.js +0 -4
  393. package/dist/mathematica-DvR8-_EI.js +0 -4
  394. package/dist/mbox-7h5MNBS_.js +0 -4
  395. package/dist/merge-CVhG7q_o.js +0 -51
  396. package/dist/mermaid-4DMBBIKO-BjtqcdX4.js +0 -6
  397. package/dist/min-Ds3gG0Ff.js +0 -96
  398. package/dist/mirc-D-XM8A5c.js +0 -4
  399. package/dist/mllike-BQGkkbmf.js +0 -6
  400. package/dist/modelica-D_yRj_WU.js +0 -4
  401. package/dist/mscgen-B-rltAjp.js +0 -6
  402. package/dist/mumps-2kh8TU2b.js +0 -4
  403. package/dist/now-nrrrOr01.js +0 -7
  404. package/dist/nsis-CtusEqwb.js +0 -4
  405. package/dist/ntriples-BdAXw6zV.js +0 -4
  406. package/dist/octave-CsNFmVp5.js +0 -4
  407. package/dist/oz-odIXCrKd.js +0 -4
  408. package/dist/pascal-B9Mfk3Fo.js +0 -4
  409. package/dist/perl-C48inLcz.js +0 -4
  410. package/dist/pig-uwRtAssU.js +0 -4
  411. package/dist/powershell-CXqlca-i.js +0 -4
  412. package/dist/properties-D6Zu1rpK.js +0 -4
  413. package/dist/protobuf-BlNNWZaR.js +0 -4
  414. package/dist/pug-DytcK7bv.js +0 -4
  415. package/dist/puppet-lJ8Ok3iY.js +0 -4
  416. package/dist/python-cMaF7kUp.js +0 -4
  417. package/dist/q-Dgt2HYQh.js +0 -4
  418. package/dist/r-Bm4S4awf.js +0 -4
  419. package/dist/range-fJeId9Ri.js +0 -30
  420. package/dist/react-vega-BkjdpVsR.js +0 -9
  421. package/dist/rpm-_8LbzMVc.js +0 -5
  422. package/dist/ruby-Cr8IJ5VZ.js +0 -4
  423. package/dist/sas-CFcSfo2_.js +0 -4
  424. package/dist/scheme-N4XRoKgc.js +0 -4
  425. package/dist/shell-B4L7f_ds.js +0 -4
  426. package/dist/sieve-UI6J3Gm0.js +0 -4
  427. package/dist/smalltalk-BuaPZAZU.js +0 -4
  428. package/dist/sparql-1rKrq463.js +0 -4
  429. package/dist/stateDiagram-v2-4FDKWEC3-BH5ozUbc.js +0 -29
  430. package/dist/stex-CQDv3aS8.js +0 -4
  431. package/dist/stylus-DvSovJEP.js +0 -4
  432. package/dist/swift-D-_E7Yyb.js +0 -4
  433. package/dist/tcl-Di5sAVHN.js +0 -4
  434. package/dist/textile-Benwt66z.js +0 -4
  435. package/dist/toNumber-55tjPCWr.js +0 -28
  436. package/dist/toml-CeOvPOkY.js +0 -4
  437. package/dist/troff-DJN9hfgu.js +0 -4
  438. package/dist/ttcn-DQW2Psjf.js +0 -4
  439. package/dist/ttcn-cfg-zFG_MNpg.js +0 -4
  440. package/dist/turtle-DHRyNlSc.js +0 -4
  441. package/dist/types-pwjdK009.js +0 -202
  442. package/dist/useDeepCompareMemoize-CsyOnnjc.js +0 -85
  443. package/dist/vb-CXWH9DD-.js +0 -4
  444. package/dist/vbscript-qr8qVck5.js +0 -4
  445. package/dist/velocity-C_9pUJRx.js +0 -4
  446. package/dist/verilog-DxBstgBa.js +0 -4
  447. package/dist/vhdl-odUxAbE6.js +0 -4
  448. package/dist/webidl-Dfn5Rku4.js +0 -4
  449. package/dist/xquery-CrJs6SXr.js +0 -4
  450. package/dist/yacas-B-uDDLZe.js +0 -4
  451. package/dist/z80-51gxgAXE.js +0 -4
  452. /package/dist/{apl-Oc3bL26_.js → apl-Dt8GMXYg.js} +0 -0
  453. /package/dist/{array-ByIS7m3B.js → array-B-MVxRIF.js} +0 -0
  454. /package/dist/{asciiarmor-DTbPh2VI.js → asciiarmor-CitDQ85h.js} +0 -0
  455. /package/dist/{asn1-CGhwu1Ri.js → asn1-abrf9SMK.js} +0 -0
  456. /package/dist/{asterisk-BApaB_8m.js → asterisk-BUZwqih-.js} +0 -0
  457. /package/dist/{brainfuck-CA0L8lRq.js → brainfuck-BL-Boof0.js} +0 -0
  458. /package/dist/{chunk-DR5Q36YT-C40cYcy5.js → chunk-DR5Q36YT-CP69aZS_.js} +0 -0
  459. /package/dist/{click-outside-container-D3t6KDni.js → click-outside-container-BZgN7xS_.js} +0 -0
  460. /package/dist/{clike-CEtUBPHD.js → clike-RWg7anhx.js} +0 -0
  461. /package/dist/{clojure-BszjvdGo.js → clojure-DaojKHow.js} +0 -0
  462. /package/dist/{clsx-CwTY0BxM.js → clsx-CyyyQ8Ue.js} +0 -0
  463. /package/dist/{cmake-B2Gvps8b.js → cmake-DN-_v0XE.js} +0 -0
  464. /package/dist/{cobol-DuMch8nn.js → cobol-C3VpMyux.js} +0 -0
  465. /package/dist/{coffeescript-L9aKXVsJ.js → coffeescript-DIkz3Tbt.js} +0 -0
  466. /package/dist/{colors-IJ-2cn2o.js → colors-Cn2p_FA3.js} +0 -0
  467. /package/dist/{common-keywords-CsU75Ked.js → common-keywords-hbLeU7VU.js} +0 -0
  468. /package/dist/{commonlisp-CrtdssxB.js → commonlisp-CB1boOiP.js} +0 -0
  469. /package/dist/{crystal-vvNY0LpY.js → crystal-DI2oCml6.js} +0 -0
  470. /package/dist/{css-B1GdzqT1.js → css-BdEVwQDV.js} +0 -0
  471. /package/dist/{cypher-BtZvV7bW.js → cypher-BNHToqxU.js} +0 -0
  472. /package/dist/{cytoscape.esm-CRfNlsPy.js → cytoscape.esm-WbbDoCfu.js} +0 -0
  473. /package/dist/{d-B0UN3V-Z.js → d-D7we7I1b.js} +0 -0
  474. /package/dist/{defaultLocale-qS7DaAmi.js → defaultLocale-BpsHxBd7.js} +0 -0
  475. /package/dist/{defaultLocale-Bxoo2-30.js → defaultLocale-DoeErsX2.js} +0 -0
  476. /package/dist/{diff-DOpgjj1W.js → diff-Cia6fzjN.js} +0 -0
  477. /package/dist/{dist-BjWd_Ei9.js → dist-C89sHDXk.js} +0 -0
  478. /package/dist/{dtd-Ctnjxrle.js → dtd-H4Hubdwp.js} +0 -0
  479. /package/dist/{duckdb-keywords-DjrZdCO2.js → duckdb-keywords-CZ_ZTscu.js} +0 -0
  480. /package/dist/{dylan-DFXkoaZy.js → dylan-fVO6rnq3.js} +0 -0
  481. /package/dist/{ebnf-XJCIl_em.js → ebnf-WEXPLEWb.js} +0 -0
  482. /package/dist/{ecl-C1NExZip.js → ecl-B94VPjNR.js} +0 -0
  483. /package/dist/{eiffel-uXVGgleg.js → eiffel-C_R6TusS.js} +0 -0
  484. /package/dist/{elm-CBOFnnib.js → elm-DzCHbO2g.js} +0 -0
  485. /package/dist/{emotion-is-prop-valid.esm-CJVjyntJ.js → emotion-is-prop-valid.esm-DtW2o230.js} +0 -0
  486. /package/dist/{erlang-DMnrT8XK.js → erlang-BGNkx6JU.js} +0 -0
  487. /package/dist/{esm-D4gzqVRq.js → esm-Bb_hbWan.js} +0 -0
  488. /package/dist/{fcl-fh4Mj0bc.js → fcl-B_Gv5Jfx.js} +0 -0
  489. /package/dist/{forth-DDpxS4nw.js → forth-Bybw0cJ7.js} +0 -0
  490. /package/dist/{fortran-B6uYqQMz.js → fortran-C6PoCLkI.js} +0 -0
  491. /package/dist/{gas-BKnWzuFz.js → gas-BBlhenj4.js} +0 -0
  492. /package/dist/{gherkin-pBt0wT4X.js → gherkin-NXtNG85X.js} +0 -0
  493. /package/dist/{groovy-DKsn4ppB.js → groovy-BoFYK9xM.js} +0 -0
  494. /package/dist/{haskell-BJVBJQcy.js → haskell-BtBdvQ1n.js} +0 -0
  495. /package/dist/{haxe-rLN5UZU5.js → haxe-D--o6dr0.js} +0 -0
  496. /package/dist/{http-CbJFDV7c.js → http-Dc2fv19V.js} +0 -0
  497. /package/dist/{idl-B4mwMAo-.js → idl-AqTq5l7e.js} +0 -0
  498. /package/dist/{init-Cge3yl4r.js → init-D-g0ONX1.js} +0 -0
  499. /package/dist/{invariant-e8eBgdux.js → invariant-UcGKQEhF.js} +0 -0
  500. /package/dist/{javascript-Hf2NLNC0.js → javascript-DvwNVye9.js} +0 -0
  501. /package/dist/{jsx-runtime-9hcJiI23.js → jsx-runtime-COBk7ree.js} +0 -0
  502. /package/dist/{julia-GGpx21YN.js → julia-DoKiagZC.js} +0 -0
  503. /package/dist/{katex-CQ_cP8Uu.js → katex-B7pMJpE0.js} +0 -0
  504. /package/dist/{livescript-CSvXMspZ.js → livescript-DxBZMiWB.js} +0 -0
  505. /package/dist/{lua-CVMR5LMW.js → lua-DmS_0NTu.js} +0 -0
  506. /package/dist/{main-XimWhSi_.js → main-CThhXnXU.js} +0 -0
  507. /package/dist/{math-CEWMqgbD.js → math-BYK36kWZ.js} +0 -0
  508. /package/dist/{mathematica-JENNt-p4.js → mathematica-ChlDFeIC.js} +0 -0
  509. /package/dist/{mbox-mzifoc8E.js → mbox-CguZuODr.js} +0 -0
  510. /package/dist/{micromark-factory-space-BHslBP9f.js → micromark-factory-space-CwHmg6iz.js} +0 -0
  511. /package/dist/{mirc-BXoiItvN.js → mirc-CFtY8dqz.js} +0 -0
  512. /package/dist/{mllike-H-KR9OuH.js → mllike-C0EJrEOk.js} +0 -0
  513. /package/dist/{modelica-B6Hm3mMl.js → modelica-C1kO1nfS.js} +0 -0
  514. /package/dist/{mscgen-D8TF_Hei.js → mscgen-DEYdr7AY.js} +0 -0
  515. /package/dist/{mumps-CD-kNPt4.js → mumps-B3NVJs2V.js} +0 -0
  516. /package/dist/{nginx-9EZQIKsh.js → nginx-ComVAAGN.js} +0 -0
  517. /package/dist/{node-sql-parser-DIe6Cq_-.js → node-sql-parser-DNGGJ-Rw.js} +0 -0
  518. /package/dist/{ntriples-DgnpxU40.js → ntriples-DHol9X9H.js} +0 -0
  519. /package/dist/{octave-CkobqyVm.js → octave-CYGz0bfo.js} +0 -0
  520. /package/dist/{oz-ChDLd9tS.js → oz-kPxb2ni5.js} +0 -0
  521. /package/dist/{pascal-CvlkwK7E.js → pascal-bZ0yrJKy.js} +0 -0
  522. /package/dist/{path-B-82hpi8.js → path-Du6n3sOU.js} +0 -0
  523. /package/dist/{perl-BNEFTNbM.js → perl-z4hvqyqz.js} +0 -0
  524. /package/dist/{pig-Cd1DMS7P.js → pig-DZO8QDF9.js} +0 -0
  525. /package/dist/{powershell-CPxA0zpc.js → powershell-BSuaDQEC.js} +0 -0
  526. /package/dist/{properties-BaFBm-Xa.js → properties-BXhGLlIx.js} +0 -0
  527. /package/dist/{protobuf-BQV_-X0H.js → protobuf-DM6iybWV.js} +0 -0
  528. /package/dist/{puppet-LXLST0mx.js → puppet-Bn05sQT8.js} +0 -0
  529. /package/dist/{python-DLjLzX4k.js → python-Cvnhm0g7.js} +0 -0
  530. /package/dist/{q-DswTX1Y9.js → q-B9V8hzex.js} +0 -0
  531. /package/dist/{r-CO7NpMwE.js → r-Cf0gFqmq.js} +0 -0
  532. /package/dist/{range-BYuZFTbA.js → range-BOiA8qqU.js} +0 -0
  533. /package/dist/{react-dom-D5FDLRUB.js → react-dom-BWRJ_g_k.js} +0 -0
  534. /package/dist/{rpm-BlmEDT6r.js → rpm-D-LMkTV1.js} +0 -0
  535. /package/dist/{ruby-BTPKgeZZ.js → ruby-DeuPikpK.js} +0 -0
  536. /package/dist/{sas-DTDTiNO8.js → sas-C9tjgAo9.js} +0 -0
  537. /package/dist/{scheme-UzAAg4GJ.js → scheme-D1_bUF0G.js} +0 -0
  538. /package/dist/{shell-DQ0hQCsB.js → shell-CJBmnks3.js} +0 -0
  539. /package/dist/{sieve-BVyYIx9u.js → sieve-1fSV75CF.js} +0 -0
  540. /package/dist/{simple-mode-Dryu-fC9.js → simple-mode-B90Wdavj.js} +0 -0
  541. /package/dist/{smalltalk-DAdMAHTu.js → smalltalk-sZNPD0HO.js} +0 -0
  542. /package/dist/{solr-Bn6k51kO.js → solr-DTkyqJ-Z.js} +0 -0
  543. /package/dist/{sparql-Bi7quYgw.js → sparql-oHc1nm77.js} +0 -0
  544. /package/dist/{spreadsheet-UpVklYg7.js → spreadsheet-CER0raqY.js} +0 -0
  545. /package/dist/{sql-qyORs189.js → sql-ByOoEONQ.js} +0 -0
  546. /package/dist/{stex-D887Ylhf.js → stex-DrxP7bb3.js} +0 -0
  547. /package/dist/{stylus-jhpzcQ6Y.js → stylus-KzkX6zRB.js} +0 -0
  548. /package/dist/{swift-BrO8qThZ.js → swift-DqVxZvKo.js} +0 -0
  549. /package/dist/{tcl-s5QI5gv3.js → tcl-BtWSwXfA.js} +0 -0
  550. /package/dist/{textile-ClhvJrxM.js → textile-CWDbn9Ql.js} +0 -0
  551. /package/dist/{tiddlywiki-CmAAqw9M.js → tiddlywiki-Cr9xyOY1.js} +0 -0
  552. /package/dist/{tiki-DzCRe_s0.js → tiki-D5JONyfZ.js} +0 -0
  553. /package/dist/{timer-BPKOAfmx.js → timer-D7JVdX9U.js} +0 -0
  554. /package/dist/{toml-TFa3EJQE.js → toml-BfehlgmL.js} +0 -0
  555. /package/dist/{treemap-CmLtUuWe.js → treemap-qFGzn7xk.js} +0 -0
  556. /package/dist/{troff-SqLg0heF.js → troff-BZBk6AAu.js} +0 -0
  557. /package/dist/{ttcn-Cfrap7HJ.js → ttcn-DVwvXg0_.js} +0 -0
  558. /package/dist/{ttcn-cfg-Dopc-iwE.js → ttcn-cfg-gjbVLf1L.js} +0 -0
  559. /package/dist/{turtle-Dt52DvVH.js → turtle-CgxKXorV.js} +0 -0
  560. /package/dist/{vb-D1pAvfDe.js → vb-B9kSwTdM.js} +0 -0
  561. /package/dist/{vbscript-DZ7RBxn5.js → vbscript-DrUKSCdb.js} +0 -0
  562. /package/dist/{velocity-Csau7eZy.js → velocity-AlMYTnMy.js} +0 -0
  563. /package/dist/{verilog-gXlZACs5.js → verilog-DLUaM05j.js} +0 -0
  564. /package/dist/{vhdl-NaUWbI1B.js → vhdl-DUJOtSmO.js} +0 -0
  565. /package/dist/{webidl-BJmPjW01.js → webidl-CQp4aHk_.js} +0 -0
  566. /package/dist/{xquery-CJIPsC0g.js → xquery-IxkjlwOD.js} +0 -0
  567. /package/dist/{yacas-8f2Vjiiz.js → yacas-Bnctn5w8.js} +0 -0
  568. /package/dist/{z80-s5Xk2hCP.js → z80-DrFwhx53.js} +0 -0
@@ -3,6 +3,7 @@
3
3
  import type { Table } from "@tanstack/react-table";
4
4
  import { describe, expect, it } from "vitest";
5
5
  import {
6
+ detectSentinel,
6
7
  getClipboardContent,
7
8
  getPageIndexForRow,
8
9
  getRawValue,
@@ -186,6 +187,133 @@ describe("getClipboardContent", () => {
186
187
  });
187
188
  });
188
189
 
190
+ describe("detectSentinel", () => {
191
+ it("should detect null and undefined", () => {
192
+ expect(detectSentinel(null, undefined)).toEqual({
193
+ type: "null",
194
+ value: null,
195
+ });
196
+ expect(detectSentinel(undefined, undefined)).toEqual({
197
+ type: "null",
198
+ value: undefined,
199
+ });
200
+ });
201
+
202
+ it("should detect empty string", () => {
203
+ expect(detectSentinel("", "string")).toEqual({
204
+ type: "empty-string",
205
+ value: "",
206
+ });
207
+ });
208
+
209
+ it("should detect whitespace-only strings", () => {
210
+ expect(detectSentinel(" ", "string")).toEqual({
211
+ type: "whitespace",
212
+ value: " ",
213
+ });
214
+ expect(detectSentinel(" ", "string")).toEqual({
215
+ type: "whitespace",
216
+ value: " ",
217
+ });
218
+ expect(detectSentinel("\t", "string")).toEqual({
219
+ type: "whitespace",
220
+ value: "\t",
221
+ });
222
+ expect(detectSentinel("\n", "string")).toEqual({
223
+ type: "whitespace",
224
+ value: "\n",
225
+ });
226
+ expect(detectSentinel("\t \n", "string")).toEqual({
227
+ type: "whitespace",
228
+ value: "\t \n",
229
+ });
230
+ });
231
+
232
+ it("should detect NaN", () => {
233
+ expect(detectSentinel(Number.NaN, "number")).toEqual({
234
+ type: "nan",
235
+ value: Number.NaN,
236
+ });
237
+ });
238
+
239
+ it("should detect Infinity", () => {
240
+ expect(detectSentinel(Number.POSITIVE_INFINITY, "number")).toEqual({
241
+ type: "positive-infinity",
242
+ value: Number.POSITIVE_INFINITY,
243
+ });
244
+ expect(detectSentinel(Number.NEGATIVE_INFINITY, "number")).toEqual({
245
+ type: "negative-infinity",
246
+ value: Number.NEGATIVE_INFINITY,
247
+ });
248
+ });
249
+
250
+ it("should return null for normal values", () => {
251
+ expect(detectSentinel("hello", "string")).toBeNull();
252
+ expect(detectSentinel(42, "number")).toBeNull();
253
+ expect(detectSentinel(0, "number")).toBeNull();
254
+ expect(detectSentinel(-1.5, "number")).toBeNull();
255
+ expect(detectSentinel(true, "boolean")).toBeNull();
256
+ expect(detectSentinel(false, "boolean")).toBeNull();
257
+ expect(detectSentinel({}, "unknown")).toBeNull();
258
+ expect(detectSentinel([], "unknown")).toBeNull();
259
+ });
260
+
261
+ it("should not match literal null-like strings", () => {
262
+ expect(detectSentinel("null", "string")).toBeNull();
263
+ expect(detectSentinel("NULL", "string")).toBeNull();
264
+ expect(detectSentinel("None", "string")).toBeNull();
265
+ });
266
+
267
+ it("should not match string NaN/Infinity in non-numeric columns", () => {
268
+ expect(detectSentinel("NaN", "string")).toBeNull();
269
+ expect(detectSentinel("Infinity", "string")).toBeNull();
270
+ expect(detectSentinel("-Infinity", "string")).toBeNull();
271
+ });
272
+
273
+ it("should match string NaN/Infinity in numeric columns", () => {
274
+ expect(detectSentinel("NaN", "number")).toEqual({
275
+ type: "nan",
276
+ value: "NaN",
277
+ });
278
+ expect(detectSentinel("Infinity", "number")).toEqual({
279
+ type: "positive-infinity",
280
+ value: "Infinity",
281
+ });
282
+ expect(detectSentinel("-Infinity", "number")).toEqual({
283
+ type: "negative-infinity",
284
+ value: "-Infinity",
285
+ });
286
+ expect(detectSentinel("inf", "number")).toEqual({
287
+ type: "positive-infinity",
288
+ value: "inf",
289
+ });
290
+ expect(detectSentinel("-inf", "number")).toEqual({
291
+ type: "negative-infinity",
292
+ value: "-inf",
293
+ });
294
+ });
295
+
296
+ it("should still not match normal strings in numeric columns", () => {
297
+ expect(detectSentinel("hello", "number")).toBeNull();
298
+ expect(detectSentinel("42", "number")).toBeNull();
299
+ });
300
+
301
+ it("should not match NaT in non-temporal columns", () => {
302
+ expect(detectSentinel("NaT", "string")).toBeNull();
303
+ });
304
+
305
+ it("should match NaT in temporal columns", () => {
306
+ expect(detectSentinel("NaT", "datetime")).toEqual({
307
+ type: "nat",
308
+ value: "NaT",
309
+ });
310
+ expect(detectSentinel("NaT", "date")).toEqual({
311
+ type: "nat",
312
+ value: "NaT",
313
+ });
314
+ });
315
+ });
316
+
189
317
  function createMockTableWithMeta<TData>(rawData?: TData[]): Table<TData> {
190
318
  return {
191
319
  options: {
@@ -74,7 +74,7 @@ export const ColumnExplorerPanel = ({
74
74
  return (
75
75
  <div className="mb-3">
76
76
  <span className="text-xs font-semibold ml-2 flex">
77
- {prettifyRowColumnCount(totalRows, totalColumns, locale)}
77
+ {prettifyRowColumnCount({ numRows: totalRows, totalColumns, locale })}
78
78
  <CopyClipboardIcon
79
79
  tooltip="Copy column names"
80
80
  value={columns?.map(([columnName]) => columnName).join(",\n") || ""}
@@ -53,6 +53,7 @@ import {
53
53
  SelectValue,
54
54
  } from "../ui/select";
55
55
  import { type ColumnFilterForType, Filter } from "./filters";
56
+ import { SentinelCell } from "./sentinel-cell";
56
57
  import {
57
58
  ClearFilterMenuItem,
58
59
  FilterButtons,
@@ -65,7 +66,7 @@ import {
65
66
  renderSortFilterIcon,
66
67
  renderSorts,
67
68
  } from "./header-items";
68
- import { stringifyUnknownValue } from "./utils";
69
+ import { detectSentinel, stringifyUnknownValue } from "./utils";
69
70
 
70
71
  const TOP_K_ROWS = 30;
71
72
 
@@ -647,6 +648,10 @@ const PopoverFilterByValues = <TData, TValue>({
647
648
  {filteredData.map(([value, count], rowIndex) => {
648
649
  const isSelected = chosenValues.has(value);
649
650
  const valueString = stringifyUnknownValue({ value });
651
+ const sentinel = detectSentinel(
652
+ value,
653
+ column.columnDef.meta?.dataType,
654
+ );
650
655
 
651
656
  return (
652
657
  <CommandItem
@@ -661,7 +666,11 @@ const PopoverFilterByValues = <TData, TValue>({
661
666
  className="mr-3 h-3.5 w-3.5"
662
667
  />
663
668
  <span className="flex-1 overflow-hidden max-h-20 line-clamp-3">
664
- {valueString}
669
+ {sentinel ? (
670
+ <SentinelCell sentinel={sentinel} />
671
+ ) : (
672
+ valueString
673
+ )}
665
674
  </span>
666
675
  <span className="ml-3">{count}</span>
667
676
  </CommandItem>
@@ -37,7 +37,10 @@ import {
37
37
  extractTimezone,
38
38
  type FieldTypesWithExternalType,
39
39
  INDEX_COLUMN_NAME,
40
+ isNumericType,
40
41
  } from "./types";
42
+ import { SentinelCell } from "./sentinel-cell";
43
+ import { detectSentinel } from "./utils";
41
44
  import { uniformSample } from "./uniformSample";
42
45
  import { MarkdownUrlDetector, UrlDetector } from "./url-detector";
43
46
 
@@ -163,7 +166,7 @@ export function generateColumns<T>({
163
166
  }
164
167
  // Auto right-align numeric columns
165
168
  const dataType = getMeta(key).dataType;
166
- if (dataType === "number" || dataType === "integer") {
169
+ if (isNumericType(dataType)) {
167
170
  return "right";
168
171
  }
169
172
  return undefined;
@@ -269,7 +272,7 @@ export function generateColumns<T>({
269
272
  !isCellSelected;
270
273
 
271
274
  const dataType = column.columnDef.meta?.dataType;
272
- const isNumeric = dataType === "number" || dataType === "integer";
275
+ const isNumeric = isNumericType(dataType);
273
276
  const cellStyles = getCellStyleClass({
274
277
  justify,
275
278
  wrapped,
@@ -522,6 +525,17 @@ export function renderCellValue<TData, TValue>({
522
525
 
523
526
  const isWrapped = column.getColumnWrapping?.() === "wrap";
524
527
 
528
+ // Sentinel values (null, whitespace, NaN, Infinity, NaT) rendered specially.
529
+ // Empty strings are left as-is
530
+ const sentinel = detectSentinel(value, dataType);
531
+ if (sentinel && sentinel.type !== "empty-string") {
532
+ return (
533
+ <div onClick={selectCell} className={cellStyles}>
534
+ <SentinelCell sentinel={sentinel} />
535
+ </div>
536
+ );
537
+ }
538
+
525
539
  if (dataType === "datetime" && typeof value === "string") {
526
540
  try {
527
541
  if (!isValid(value)) {
@@ -20,6 +20,7 @@ import {
20
20
  jsonToMarkdown,
21
21
  jsonToTSV,
22
22
  } from "@/utils/json/json-parser";
23
+ import { MissingPackagePrompt } from "../datasources/missing-package-prompt";
23
24
  import { Button } from "../ui/button";
24
25
  import {
25
26
  DropdownMenu,
@@ -38,6 +39,8 @@ export interface ExportActionProps {
38
39
  downloadAs: (req: { format: DownloadFormat }) => Promise<{
39
40
  url: string;
40
41
  filename: string;
42
+ error?: string | null;
43
+ missing_packages?: string[] | null;
41
44
  }>;
42
45
  }
43
46
 
@@ -81,6 +84,8 @@ const copyOptions = [
81
84
  FILE_TYPES.CSV,
82
85
  FILE_TYPES.MARKDOWN,
83
86
  ];
87
+ const labelForDownloadFormat = (format: DownloadFormat): string =>
88
+ downloadOptions.find((opt) => opt.format === format)?.label ?? format;
84
89
 
85
90
  export const ExportMenu: React.FC<ExportActionProps> = (props) => {
86
91
  const { locale } = useLocale();
@@ -101,43 +106,82 @@ export const ExportMenu: React.FC<ExportActionProps> = (props) => {
101
106
  </Button>
102
107
  );
103
108
 
104
- const getDownloadResult = (format: DownloadFormat) => {
105
- return props.downloadAs({ format }).catch((error) => {
109
+ const resolveDownloadUrl = async (
110
+ format: DownloadFormat,
111
+ onRetry: () => void,
112
+ ): Promise<{ url: string; filename: string } | null> => {
113
+ let response: Awaited<ReturnType<typeof props.downloadAs>>;
114
+ try {
115
+ response = await props.downloadAs({ format });
116
+ } catch (error) {
106
117
  toast({
107
118
  title: "Failed to download",
108
- description: "message" in error ? error.message : String(error),
119
+ description:
120
+ error != null && typeof error === "object" && "message" in error
121
+ ? String(error.message)
122
+ : String(error),
109
123
  });
110
- throw error;
124
+ return null;
125
+ }
126
+
127
+ if (response.missing_packages && response.missing_packages.length > 0) {
128
+ toast({
129
+ title: "Export failed",
130
+ description: (
131
+ <MissingPackagePrompt
132
+ packages={response.missing_packages}
133
+ featureName={`${labelForDownloadFormat(format)} export`}
134
+ description={response.error}
135
+ onInstall={onRetry}
136
+ />
137
+ ),
138
+ });
139
+ return null;
140
+ }
141
+
142
+ return { url: response.url, filename: response.filename };
143
+ };
144
+
145
+ const handleDownload = async (format: DownloadFormat) => {
146
+ const result = await resolveDownloadUrl(format, () => {
147
+ void handleDownload(format);
111
148
  });
149
+ if (!result) {
150
+ return;
151
+ }
152
+ const rawName = (result.filename ?? "").trim();
153
+ const baseName = Filenames.withoutExtension(rawName) || "download";
154
+ downloadByURL(result.url, `${baseName}.${format}`);
112
155
  };
113
156
 
114
157
  const handleClipboardCopy = async (
115
158
  format: (typeof copyOptions)[number]["format"],
116
159
  ) => {
117
- let text: string;
160
+ const sourceFormat: DownloadFormat = format === "csv" ? "csv" : "json";
161
+ const result = await resolveDownloadUrl(sourceFormat, () => {
162
+ void handleClipboardCopy(format);
163
+ });
164
+ if (!result) {
165
+ return;
166
+ }
118
167
 
168
+ let text: string;
119
169
  switch (format) {
120
170
  case "tsv": {
121
- const { url } = await getDownloadResult("json");
122
- const json = await fetchJson(url);
171
+ const json = await fetchJson(result.url);
123
172
  text = jsonToTSV(json, locale);
124
173
  break;
125
174
  }
126
175
  case "json": {
127
- const { url } = await getDownloadResult("json");
128
- const json = await fetchJson(url);
176
+ const json = await fetchJson(result.url);
129
177
  text = JSON.stringify(json, null, 2);
130
178
  break;
131
179
  }
132
- case "csv": {
133
- const { url } = await getDownloadResult("csv");
134
- const csv = await fetchText(url);
135
- text = csv;
180
+ case "csv":
181
+ text = await fetchText(result.url);
136
182
  break;
137
- }
138
183
  case "markdown": {
139
- const { url } = await getDownloadResult("json");
140
- const json = await fetchJson(url);
184
+ const json = await fetchJson(result.url);
141
185
  text = jsonToMarkdown(json);
142
186
  break;
143
187
  }
@@ -164,13 +208,8 @@ export const ExportMenu: React.FC<ExportActionProps> = (props) => {
164
208
  {downloadOptions.map((option) => (
165
209
  <DropdownMenuItem
166
210
  key={option.label}
167
- onSelect={async () => {
168
- const { url, filename } = await getDownloadResult(option.format);
169
- const ext = option.format;
170
- const rawName = (filename ?? "").trim();
171
- const baseName =
172
- Filenames.withoutExtension(rawName) || "download";
173
- downloadByURL(url, `${baseName}.${ext}`);
211
+ onSelect={() => {
212
+ void handleDownload(option.format);
174
213
  }}
175
214
  >
176
215
  <option.icon className="mo-dropdown-icon" />
@@ -1,9 +1,12 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
  "use no memo";
3
3
 
4
- import type { RowData } from "@tanstack/react-table";
4
+ import type { ColumnFiltersState, RowData } from "@tanstack/react-table";
5
5
  import type { DataType } from "@/core/kernel/messages";
6
- import type { ConditionType } from "@/plugins/impl/data-frames/schema";
6
+ import type {
7
+ FilterConditionType,
8
+ FilterGroupType,
9
+ } from "@/plugins/impl/data-frames/schema";
7
10
  import type { ColumnId } from "@/plugins/impl/data-frames/types";
8
11
  import type { OperatorType } from "@/plugins/impl/data-frames/utils/operators";
9
12
  import { assertNever } from "@/utils/assertNever";
@@ -84,28 +87,34 @@ export type ColumnFilterForType<T extends FilterType> = T extends FilterType
84
87
  export function filterToFilterCondition(
85
88
  columnIdString: string,
86
89
  filter: ColumnFilterValue | undefined,
87
- ): ConditionType[] | ConditionType {
90
+ ): FilterConditionType[] {
88
91
  if (!filter) {
89
92
  return [];
90
93
  }
91
94
  const columnId = columnIdString as ColumnId;
92
95
 
93
96
  if (filter.operator === "is_null" || filter.operator === "is_not_null") {
94
- return {
95
- column_id: columnId,
96
- operator: filter.operator,
97
- value: undefined,
98
- };
97
+ return [
98
+ {
99
+ column_id: columnId,
100
+ operator: filter.operator,
101
+ value: undefined,
102
+ type: "condition",
103
+ negate: false,
104
+ },
105
+ ];
99
106
  }
100
107
 
101
108
  switch (filter.type) {
102
109
  case "number": {
103
- const conditions: ConditionType[] = [];
110
+ const conditions: FilterConditionType[] = [];
104
111
  if (filter.min !== undefined) {
105
112
  conditions.push({
106
113
  column_id: columnId,
107
114
  operator: ">=",
108
115
  value: filter.min,
116
+ type: "condition",
117
+ negate: false,
109
118
  });
110
119
  }
111
120
  if (filter.max !== undefined) {
@@ -113,23 +122,31 @@ export function filterToFilterCondition(
113
122
  column_id: columnId,
114
123
  operator: "<=",
115
124
  value: filter.max,
125
+ type: "condition",
126
+ negate: false,
116
127
  });
117
128
  }
118
129
  return conditions;
119
130
  }
120
131
  case "text":
121
- return {
122
- column_id: columnId,
123
- operator: filter.operator,
124
- value: filter.text,
125
- };
132
+ return [
133
+ {
134
+ column_id: columnId,
135
+ operator: filter.operator,
136
+ value: filter.text,
137
+ type: "condition",
138
+ negate: false,
139
+ },
140
+ ];
126
141
  case "datetime": {
127
- const conditions: ConditionType[] = [];
142
+ const conditions: FilterConditionType[] = [];
128
143
  if (filter.min !== undefined) {
129
144
  conditions.push({
130
145
  column_id: columnId,
131
146
  operator: ">=",
132
147
  value: filter.min.toISOString(),
148
+ type: "condition",
149
+ negate: false,
133
150
  });
134
151
  }
135
152
  if (filter.max !== undefined) {
@@ -137,17 +154,21 @@ export function filterToFilterCondition(
137
154
  column_id: columnId,
138
155
  operator: "<=",
139
156
  value: filter.max.toISOString(),
157
+ type: "condition",
158
+ negate: false,
140
159
  });
141
160
  }
142
161
  return conditions;
143
162
  }
144
163
  case "date": {
145
- const conditions: ConditionType[] = [];
164
+ const conditions: FilterConditionType[] = [];
146
165
  if (filter.min !== undefined) {
147
166
  conditions.push({
148
167
  column_id: columnId,
149
168
  operator: ">=",
150
169
  value: filter.min.toISOString(),
170
+ type: "condition",
171
+ negate: false,
151
172
  });
152
173
  }
153
174
  if (filter.max !== undefined) {
@@ -155,17 +176,21 @@ export function filterToFilterCondition(
155
176
  column_id: columnId,
156
177
  operator: "<=",
157
178
  value: filter.max.toISOString(),
179
+ type: "condition",
180
+ negate: false,
158
181
  });
159
182
  }
160
183
  return conditions;
161
184
  }
162
185
  case "time": {
163
- const conditions: ConditionType[] = [];
186
+ const conditions: FilterConditionType[] = [];
164
187
  if (filter.min !== undefined) {
165
188
  conditions.push({
166
189
  column_id: columnId,
167
190
  operator: ">=",
168
191
  value: filter.min.toISOString(),
192
+ type: "condition",
193
+ negate: false,
169
194
  });
170
195
  }
171
196
  if (filter.max !== undefined) {
@@ -173,24 +198,34 @@ export function filterToFilterCondition(
173
198
  column_id: columnId,
174
199
  operator: "<=",
175
200
  value: filter.max.toISOString(),
201
+ type: "condition",
202
+ negate: false,
176
203
  });
177
204
  }
178
205
  return conditions;
179
206
  }
180
207
  case "boolean":
181
208
  if (filter.value) {
182
- return {
183
- column_id: columnId,
184
- operator: "is_true",
185
- value: undefined,
186
- };
209
+ return [
210
+ {
211
+ column_id: columnId,
212
+ operator: "is_true",
213
+ value: undefined,
214
+ type: "condition",
215
+ negate: false,
216
+ },
217
+ ];
187
218
  }
188
219
  if (!filter.value) {
189
- return {
190
- column_id: columnId,
191
- operator: "is_false",
192
- value: undefined,
193
- };
220
+ return [
221
+ {
222
+ column_id: columnId,
223
+ operator: "is_false",
224
+ value: undefined,
225
+ type: "condition",
226
+ negate: false,
227
+ },
228
+ ];
194
229
  }
195
230
 
196
231
  return [];
@@ -200,16 +235,35 @@ export function filterToFilterCondition(
200
235
  Logger.warn("Invalid operator for select filter", {
201
236
  operator: filter.operator,
202
237
  });
203
- operator = "in"; // default to in operator
238
+ operator = "in";
204
239
  }
205
- return {
206
- column_id: columnId,
207
- operator,
208
- value: filter.options,
209
- };
240
+ return [
241
+ {
242
+ column_id: columnId,
243
+ operator,
244
+ value: filter.options,
245
+ type: "condition",
246
+ negate: false,
247
+ },
248
+ ];
210
249
  }
211
250
 
212
251
  default:
213
252
  assertNever(filter);
214
253
  }
215
254
  }
255
+
256
+ export function filtersToFilterGroup(
257
+ columnFilters: ColumnFiltersState,
258
+ ): FilterGroupType {
259
+ const conditions = columnFilters.flatMap((filter) =>
260
+ filterToFilterCondition(filter.id, filter.value as ColumnFilterValue),
261
+ );
262
+ // To maintain existing behavior "and" all the conditions
263
+ return {
264
+ type: "group",
265
+ operator: "and",
266
+ children: conditions,
267
+ negate: false,
268
+ };
269
+ }