@marimo-team/frontend 0.25.2-dev53 → 0.25.2-dev61

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 (117) hide show
  1. package/dist/assets/{CellStatus-Q5giBgg0.js → CellStatus-CRFBVGjI.js} +1 -1
  2. package/dist/assets/ConnectedDataExplorerComponent-C5UW0p9I.js +1 -0
  3. package/dist/assets/{ErrorBoundary-CowFEmQK.js → ErrorBoundary-BKmN7zye.js} +2 -2
  4. package/dist/assets/JsonOutput-nqqzL-n0.js +11 -0
  5. package/dist/assets/{MarimoErrorOutput-p5jt_udI.js → MarimoErrorOutput-DCu6fm2y.js} +1 -1
  6. package/dist/assets/{RenderHTML-CqDY0F9e.js → RenderHTML-DRMkieKn.js} +1 -1
  7. package/dist/assets/RunButton-CPZWjCL9.js +1 -0
  8. package/dist/assets/{add-cell-with-ai-BKqOYjHI.js → add-cell-with-ai-sH3HbLJO.js} +1 -1
  9. package/dist/assets/{add-connection-dialog-CL3bFsGA.js → add-connection-dialog-pQcdKIlO.js} +2 -2
  10. package/dist/assets/{agent-panel-q9X3jIj0.js → agent-panel-Bkcf1sED.js} +1 -1
  11. package/dist/assets/ai-model-dropdown-D-51nbXZ.js +5 -0
  12. package/dist/assets/{app-config-button-Bylx9JDv.js → app-config-button-Dr1EwwIk.js} +1 -1
  13. package/dist/assets/{blob-BTk5Q8u9.js → blob-BIYte8oT.js} +1 -1
  14. package/dist/assets/cache-panel-BNPF4X5e.js +1 -0
  15. package/dist/assets/{cell-editor-DfRhvA75.js → cell-editor-Cmqe3QmM.js} +3 -3
  16. package/dist/assets/{cell-link-DRuyhIKm.js → cell-link-BeZAiE1D.js} +1 -1
  17. package/dist/assets/{cells-CuKxjgjJ.js → cells-h5u00Nz8.js} +3 -3
  18. package/dist/assets/{chat-display-BT4wYvSi.js → chat-display-CuZ8niXg.js} +1 -1
  19. package/dist/assets/chat-panel-CHPPwqcP.js +4 -0
  20. package/dist/assets/{chat-ui-DsHB8FDP.js → chat-ui-BJAcq-Ln.js} +1 -1
  21. package/dist/assets/column-preview-DtrgJzVI.js +1 -0
  22. package/dist/assets/{command-palette-DLjm6e2f.js → command-palette-DUPyVGsq.js} +1 -1
  23. package/dist/assets/{common-BHV00wKC.js → common-BMeq0Bqi.js} +1 -1
  24. package/dist/assets/{components-DzAIJKU7.js → components-CWcf8098.js} +1 -1
  25. package/dist/assets/{config-BaEZVOk2.js → config-CR2d-XsP.js} +1 -1
  26. package/dist/assets/{datasource-D0736MyK.js → datasource-BLHGFSsT.js} +1 -1
  27. package/dist/assets/{dependency-graph-panel-B6fAc_9C.js → dependency-graph-panel-C8X3Nn8W.js} +1 -1
  28. package/dist/assets/{documentation-panel-DQAQba71.js → documentation-panel-C8wrSKlX.js} +1 -1
  29. package/dist/assets/{download-D-MTWucM.js → download-CUgiCx7s.js} +1 -1
  30. package/dist/assets/edit-page-DMsRAPsr.js +9 -0
  31. package/dist/assets/{error-entries-CWxVwEPG.js → error-entries-DQD4A9cx.js} +1 -1
  32. package/dist/assets/{error-panel-DISYRsce.js → error-panel-BJYkwYEY.js} +1 -1
  33. package/dist/assets/{feedback-button-B1bYxCrZ.js → feedback-button-DbTjGwcX.js} +2 -2
  34. package/dist/assets/feedback-button-JqvnTSfN.js +1 -0
  35. package/dist/assets/file-explorer-panel-BQi88S1o.js +1 -0
  36. package/dist/assets/{file-name-input-BVXW4Ihy.js → file-name-input-DPJSxW_X.js} +1 -1
  37. package/dist/assets/{floating-outline-BhY3Wt-J.js → floating-outline-3PlTr0K1.js} +1 -1
  38. package/dist/assets/{gallery-page-Be8AbY36.js → gallery-page-BqvVmwde.js} +1 -1
  39. package/dist/assets/{glide-data-editor-D1Fip07J.js → glide-data-editor-CAa14cIr.js} +1 -1
  40. package/dist/assets/home-page-B_NxFh87.js +4 -0
  41. package/dist/assets/{hooks-BgpsvfLA.js → hooks-BHoInJWN.js} +1 -1
  42. package/dist/assets/index-C968xQuz.js +29 -0
  43. package/dist/assets/index-CF8Gfz1R.css +2 -0
  44. package/dist/assets/input-DPd57MDP.js +7 -0
  45. package/dist/assets/{layout-BAJKEADQ.js → layout-CzNq5YtR.js} +5 -5
  46. package/dist/assets/{logs-panel-CjHa5qIw.js → logs-panel-IKL6F2OX.js} +1 -1
  47. package/dist/assets/{markdown-renderer-quSCxU-_.js → markdown-renderer-DHvAXF8E.js} +1 -1
  48. package/dist/assets/{name-cell-input-Cba1m8_c.js → name-cell-input-j4eGLLyd.js} +1 -1
  49. package/dist/assets/{outline-panel-CWsF1QII.js → outline-panel-CprDWmxn.js} +1 -1
  50. package/dist/assets/{packages-panel-C-XEdHNc.js → packages-panel-BGqHk9nr.js} +1 -1
  51. package/dist/assets/{panel-accordion-state-u7avi-RV.js → panel-accordion-state-8xXVhawu.js} +1 -1
  52. package/dist/assets/{panels-B5iuV0lM.js → panels-Dsf6yEsA.js} +1 -1
  53. package/dist/assets/{process-output-DbjZ_y5T.js → process-output-DOmeJ1VR.js} +1 -1
  54. package/dist/assets/{readonly-code-display-Ctjk_xXb.js → readonly-code-display-xvH6MyT6.js} +1 -1
  55. package/dist/assets/{readonly-python-code-Ctej1jSH.js → readonly-python-code-D4YGmSvB.js} +1 -1
  56. package/dist/assets/{reveal-component-YHvm3T44.js → reveal-component-CJxdWpbj.js} +1 -1
  57. package/dist/assets/{run-page-BkMc69OJ.js → run-page-DCu4YGwW.js} +1 -1
  58. package/dist/assets/{sandbox-panel-fEQNl_1C.js → sandbox-panel-D5bRunTM.js} +1 -1
  59. package/dist/assets/{scratchpad-panel-CZ1PriSX.js → scratchpad-panel-BSlnM0TK.js} +1 -1
  60. package/dist/assets/{secrets-panel-Yc5ollBX.js → secrets-panel-DT1Nansx.js} +1 -1
  61. package/dist/assets/{select-Ww_82o86.js → select-BwRFbZty.js} +1 -1
  62. package/dist/assets/session-panel-BdN43Lzi.js +1 -0
  63. package/dist/assets/{snippets-panel-BFXHSCEq.js → snippets-panel-5_jR08Zd.js} +1 -1
  64. package/dist/assets/spec-D9d9nT0z.js +1 -0
  65. package/dist/assets/{state-Do1H9fl6.js → state-7os84dnI.js} +1 -1
  66. package/dist/assets/{state-CdP1z8ku.js → state-BxJ_FX3k.js} +1 -1
  67. package/dist/assets/switch-C-83e2fG.js +1 -0
  68. package/dist/assets/{list-filter-CTg19675.js → table-B7KYyTxw.js} +1 -1
  69. package/dist/assets/{toast-CL5SyrsO.js → toast-BRwEbWb6.js} +1 -1
  70. package/dist/assets/{tracing-DBfpxL3C.js → tracing-CRkNpBaH.js} +1 -1
  71. package/dist/assets/tracing-panel-DV2-2TUI.js +2 -0
  72. package/dist/assets/{tree-actions-DdvPjaze.js → tree-actions-CShqSonp.js} +1 -1
  73. package/dist/assets/{useAddCell-BbK54Wma.js → useAddCell-DesMfnE4.js} +1 -1
  74. package/dist/assets/{useCellActionButton-BEZZV5mI.js → useCellActionButton-BO5SFMxA.js} +1 -1
  75. package/dist/assets/useDateFormatter-CTYCgKB-.js +1 -0
  76. package/dist/assets/{useDeleteCell-BG8LgAEA.js → useDeleteCell-DSbUjpSC.js} +1 -1
  77. package/dist/assets/{useDependencyPanelTab-BEjMLLcY.js → useDependencyPanelTab-JIFiQrr2.js} +1 -1
  78. package/dist/assets/{useInstallPackage-DnijI-KS.js → useInstallPackage-CCQcFc6U.js} +1 -1
  79. package/dist/assets/{useNotebookActions-Cnznz5jV.js → useNotebookActions-BDD321Hs.js} +1 -1
  80. package/dist/assets/useNumberFormatter-BP99Zbyy.js +1 -0
  81. package/dist/assets/{useRunCells-DTPuvtCQ.js → useRunCells-Bx3wXUWO.js} +1 -1
  82. package/dist/assets/{useSplitCell-BuTWivoM.js → useSplitCell-BRmQP02b.js} +1 -1
  83. package/dist/assets/{write-secret-modal-DknTu1O1.js → write-secret-modal-BcosCmZy.js} +2 -2
  84. package/dist/index.html +32 -32
  85. package/package.json +3 -3
  86. package/src/components/data-table/TableTopBar.tsx +4 -0
  87. package/src/components/data-table/__tests__/export-actions.test.tsx +1111 -14
  88. package/src/components/data-table/__tests__/schemas.test.ts +57 -0
  89. package/src/components/data-table/data-table.tsx +3 -0
  90. package/src/components/data-table/export-actions.tsx +365 -81
  91. package/src/components/data-table/schemas.ts +90 -14
  92. package/src/components/editor/navigation/__tests__/navigation.test.ts +8 -8
  93. package/src/plugins/impl/DataTablePlugin.tsx +23 -2
  94. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +65 -8
  95. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +15 -3
  96. package/src/stories/dataframe.stories.tsx +7 -0
  97. package/dist/assets/ConnectedDataExplorerComponent-D5gfkAKK.js +0 -1
  98. package/dist/assets/JsonOutput-c1E0SCoN.js +0 -11
  99. package/dist/assets/RunButton-TcDo218m.js +0 -1
  100. package/dist/assets/ai-model-dropdown-CK8y46Fn.js +0 -5
  101. package/dist/assets/cache-panel-CKzoUIhe.js +0 -1
  102. package/dist/assets/chat-panel-C3Bu_7u5.js +0 -4
  103. package/dist/assets/column-preview-BltuXodG.js +0 -1
  104. package/dist/assets/edit-page-CMJrCnfU.js +0 -9
  105. package/dist/assets/feedback-button-BW1-NBBf.js +0 -1
  106. package/dist/assets/file-explorer-panel-VIG5c9ac.js +0 -1
  107. package/dist/assets/home-page-Dv2fEKyO.js +0 -4
  108. package/dist/assets/index-BGdpHNhZ.css +0 -2
  109. package/dist/assets/index-BdrTweFz.js +0 -29
  110. package/dist/assets/input-DnyzXg4C.js +0 -7
  111. package/dist/assets/session-panel-DD5LfQGb.js +0 -1
  112. package/dist/assets/spec-SOFn9xEK.js +0 -1
  113. package/dist/assets/switch-CPh_C6Mu.js +0 -1
  114. package/dist/assets/tracing-panel-CS9W1a0x.js +0 -2
  115. package/dist/assets/useDateFormatter-CjgScv5a.js +0 -1
  116. package/dist/assets/useNumberFormatter-C4-_TnkF.js +0 -1
  117. /package/dist/assets/{context-BFOBKCJB.js → I18nProvider-BFOBKCJB.js} +0 -0
@@ -0,0 +1,57 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import { describe, expect, it } from "vitest";
4
+ import {
5
+ DownloadAsSchema,
6
+ DownloadGeoJSONSchema,
7
+ GetExportMetadataSchema,
8
+ } from "../schemas";
9
+
10
+ describe("geometry export contracts", () => {
11
+ it("keeps the existing download_as formats unchanged", () => {
12
+ for (const format of ["csv", "tsv", "json", "parquet"]) {
13
+ expect(DownloadAsSchema.input.parse({ format })).toEqual({ format });
14
+ }
15
+ expect(
16
+ DownloadAsSchema.input.safeParse({ format: "geojson" }).success,
17
+ ).toBe(false);
18
+ });
19
+ it.each([undefined, "geom_b", ""])(
20
+ "accepts a GeoJSON request with geometry %s",
21
+ (geometry_column) => {
22
+ const request = { format: "geojson", geometry_column };
23
+ expect(DownloadGeoJSONSchema.input.parse(request)).toEqual(request);
24
+ },
25
+ );
26
+
27
+ it("accepts a missing CRS response for an unnamed geometry", () => {
28
+ const response = {
29
+ url: "",
30
+ filename: "",
31
+ code: "missing_crs",
32
+ column: "",
33
+ error: "Declare a CRS.",
34
+ };
35
+ expect(DownloadGeoJSONSchema.output.parse(response)).toEqual(response);
36
+ });
37
+
38
+ it("accepts GeoJSON support when the default geometry has no CRS", () => {
39
+ const metadata = {
40
+ geometry_columns: [
41
+ { name: "", encoding: "objects", crs: null },
42
+ { name: "alternate", encoding: "objects", crs: "EPSG:4326" },
43
+ ],
44
+ primary_geometry_column: "",
45
+ default_geometry_column: "",
46
+ formats: {
47
+ geojson: { available: true, reason: null, missing_packages: [] },
48
+ parquet: {
49
+ available: false,
50
+ reason: "GeoParquet export requires pyarrow.",
51
+ missing_packages: ["pyarrow"],
52
+ },
53
+ },
54
+ };
55
+ expect(GetExportMetadataSchema.output.parse(metadata)).toEqual(metadata);
56
+ });
57
+ });
@@ -155,6 +155,7 @@ const DataTableInternal = <TData,>({
155
155
  paginationState,
156
156
  setPaginationState,
157
157
  downloadAs,
158
+ getExportMetadata,
158
159
  manualPagination = false,
159
160
  pagination = false,
160
161
  onRowSelectionChange,
@@ -376,6 +377,8 @@ const DataTableInternal = <TData,>({
376
377
  togglePanel={togglePanel}
377
378
  isAnyPanelOpen={isAnyPanelOpen}
378
379
  downloadAs={downloadAs}
380
+ getExportMetadata={getExportMetadata}
381
+ metadataSource={data}
379
382
  sizeBytes={sizeBytes}
380
383
  sizeBytesIsLoading={sizeBytesIsLoading}
381
384
  />