@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.
- package/dist/assets/{CellStatus-Q5giBgg0.js → CellStatus-CRFBVGjI.js} +1 -1
- package/dist/assets/ConnectedDataExplorerComponent-C5UW0p9I.js +1 -0
- package/dist/assets/{ErrorBoundary-CowFEmQK.js → ErrorBoundary-BKmN7zye.js} +2 -2
- package/dist/assets/JsonOutput-nqqzL-n0.js +11 -0
- package/dist/assets/{MarimoErrorOutput-p5jt_udI.js → MarimoErrorOutput-DCu6fm2y.js} +1 -1
- package/dist/assets/{RenderHTML-CqDY0F9e.js → RenderHTML-DRMkieKn.js} +1 -1
- package/dist/assets/RunButton-CPZWjCL9.js +1 -0
- package/dist/assets/{add-cell-with-ai-BKqOYjHI.js → add-cell-with-ai-sH3HbLJO.js} +1 -1
- package/dist/assets/{add-connection-dialog-CL3bFsGA.js → add-connection-dialog-pQcdKIlO.js} +2 -2
- package/dist/assets/{agent-panel-q9X3jIj0.js → agent-panel-Bkcf1sED.js} +1 -1
- package/dist/assets/ai-model-dropdown-D-51nbXZ.js +5 -0
- package/dist/assets/{app-config-button-Bylx9JDv.js → app-config-button-Dr1EwwIk.js} +1 -1
- package/dist/assets/{blob-BTk5Q8u9.js → blob-BIYte8oT.js} +1 -1
- package/dist/assets/cache-panel-BNPF4X5e.js +1 -0
- package/dist/assets/{cell-editor-DfRhvA75.js → cell-editor-Cmqe3QmM.js} +3 -3
- package/dist/assets/{cell-link-DRuyhIKm.js → cell-link-BeZAiE1D.js} +1 -1
- package/dist/assets/{cells-CuKxjgjJ.js → cells-h5u00Nz8.js} +3 -3
- package/dist/assets/{chat-display-BT4wYvSi.js → chat-display-CuZ8niXg.js} +1 -1
- package/dist/assets/chat-panel-CHPPwqcP.js +4 -0
- package/dist/assets/{chat-ui-DsHB8FDP.js → chat-ui-BJAcq-Ln.js} +1 -1
- package/dist/assets/column-preview-DtrgJzVI.js +1 -0
- package/dist/assets/{command-palette-DLjm6e2f.js → command-palette-DUPyVGsq.js} +1 -1
- package/dist/assets/{common-BHV00wKC.js → common-BMeq0Bqi.js} +1 -1
- package/dist/assets/{components-DzAIJKU7.js → components-CWcf8098.js} +1 -1
- package/dist/assets/{config-BaEZVOk2.js → config-CR2d-XsP.js} +1 -1
- package/dist/assets/{datasource-D0736MyK.js → datasource-BLHGFSsT.js} +1 -1
- package/dist/assets/{dependency-graph-panel-B6fAc_9C.js → dependency-graph-panel-C8X3Nn8W.js} +1 -1
- package/dist/assets/{documentation-panel-DQAQba71.js → documentation-panel-C8wrSKlX.js} +1 -1
- package/dist/assets/{download-D-MTWucM.js → download-CUgiCx7s.js} +1 -1
- package/dist/assets/edit-page-DMsRAPsr.js +9 -0
- package/dist/assets/{error-entries-CWxVwEPG.js → error-entries-DQD4A9cx.js} +1 -1
- package/dist/assets/{error-panel-DISYRsce.js → error-panel-BJYkwYEY.js} +1 -1
- package/dist/assets/{feedback-button-B1bYxCrZ.js → feedback-button-DbTjGwcX.js} +2 -2
- package/dist/assets/feedback-button-JqvnTSfN.js +1 -0
- package/dist/assets/file-explorer-panel-BQi88S1o.js +1 -0
- package/dist/assets/{file-name-input-BVXW4Ihy.js → file-name-input-DPJSxW_X.js} +1 -1
- package/dist/assets/{floating-outline-BhY3Wt-J.js → floating-outline-3PlTr0K1.js} +1 -1
- package/dist/assets/{gallery-page-Be8AbY36.js → gallery-page-BqvVmwde.js} +1 -1
- package/dist/assets/{glide-data-editor-D1Fip07J.js → glide-data-editor-CAa14cIr.js} +1 -1
- package/dist/assets/home-page-B_NxFh87.js +4 -0
- package/dist/assets/{hooks-BgpsvfLA.js → hooks-BHoInJWN.js} +1 -1
- package/dist/assets/index-C968xQuz.js +29 -0
- package/dist/assets/index-CF8Gfz1R.css +2 -0
- package/dist/assets/input-DPd57MDP.js +7 -0
- package/dist/assets/{layout-BAJKEADQ.js → layout-CzNq5YtR.js} +5 -5
- package/dist/assets/{logs-panel-CjHa5qIw.js → logs-panel-IKL6F2OX.js} +1 -1
- package/dist/assets/{markdown-renderer-quSCxU-_.js → markdown-renderer-DHvAXF8E.js} +1 -1
- package/dist/assets/{name-cell-input-Cba1m8_c.js → name-cell-input-j4eGLLyd.js} +1 -1
- package/dist/assets/{outline-panel-CWsF1QII.js → outline-panel-CprDWmxn.js} +1 -1
- package/dist/assets/{packages-panel-C-XEdHNc.js → packages-panel-BGqHk9nr.js} +1 -1
- package/dist/assets/{panel-accordion-state-u7avi-RV.js → panel-accordion-state-8xXVhawu.js} +1 -1
- package/dist/assets/{panels-B5iuV0lM.js → panels-Dsf6yEsA.js} +1 -1
- package/dist/assets/{process-output-DbjZ_y5T.js → process-output-DOmeJ1VR.js} +1 -1
- package/dist/assets/{readonly-code-display-Ctjk_xXb.js → readonly-code-display-xvH6MyT6.js} +1 -1
- package/dist/assets/{readonly-python-code-Ctej1jSH.js → readonly-python-code-D4YGmSvB.js} +1 -1
- package/dist/assets/{reveal-component-YHvm3T44.js → reveal-component-CJxdWpbj.js} +1 -1
- package/dist/assets/{run-page-BkMc69OJ.js → run-page-DCu4YGwW.js} +1 -1
- package/dist/assets/{sandbox-panel-fEQNl_1C.js → sandbox-panel-D5bRunTM.js} +1 -1
- package/dist/assets/{scratchpad-panel-CZ1PriSX.js → scratchpad-panel-BSlnM0TK.js} +1 -1
- package/dist/assets/{secrets-panel-Yc5ollBX.js → secrets-panel-DT1Nansx.js} +1 -1
- package/dist/assets/{select-Ww_82o86.js → select-BwRFbZty.js} +1 -1
- package/dist/assets/session-panel-BdN43Lzi.js +1 -0
- package/dist/assets/{snippets-panel-BFXHSCEq.js → snippets-panel-5_jR08Zd.js} +1 -1
- package/dist/assets/spec-D9d9nT0z.js +1 -0
- package/dist/assets/{state-Do1H9fl6.js → state-7os84dnI.js} +1 -1
- package/dist/assets/{state-CdP1z8ku.js → state-BxJ_FX3k.js} +1 -1
- package/dist/assets/switch-C-83e2fG.js +1 -0
- package/dist/assets/{list-filter-CTg19675.js → table-B7KYyTxw.js} +1 -1
- package/dist/assets/{toast-CL5SyrsO.js → toast-BRwEbWb6.js} +1 -1
- package/dist/assets/{tracing-DBfpxL3C.js → tracing-CRkNpBaH.js} +1 -1
- package/dist/assets/tracing-panel-DV2-2TUI.js +2 -0
- package/dist/assets/{tree-actions-DdvPjaze.js → tree-actions-CShqSonp.js} +1 -1
- package/dist/assets/{useAddCell-BbK54Wma.js → useAddCell-DesMfnE4.js} +1 -1
- package/dist/assets/{useCellActionButton-BEZZV5mI.js → useCellActionButton-BO5SFMxA.js} +1 -1
- package/dist/assets/useDateFormatter-CTYCgKB-.js +1 -0
- package/dist/assets/{useDeleteCell-BG8LgAEA.js → useDeleteCell-DSbUjpSC.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-BEjMLLcY.js → useDependencyPanelTab-JIFiQrr2.js} +1 -1
- package/dist/assets/{useInstallPackage-DnijI-KS.js → useInstallPackage-CCQcFc6U.js} +1 -1
- package/dist/assets/{useNotebookActions-Cnznz5jV.js → useNotebookActions-BDD321Hs.js} +1 -1
- package/dist/assets/useNumberFormatter-BP99Zbyy.js +1 -0
- package/dist/assets/{useRunCells-DTPuvtCQ.js → useRunCells-Bx3wXUWO.js} +1 -1
- package/dist/assets/{useSplitCell-BuTWivoM.js → useSplitCell-BRmQP02b.js} +1 -1
- package/dist/assets/{write-secret-modal-DknTu1O1.js → write-secret-modal-BcosCmZy.js} +2 -2
- package/dist/index.html +32 -32
- package/package.json +3 -3
- package/src/components/data-table/TableTopBar.tsx +4 -0
- package/src/components/data-table/__tests__/export-actions.test.tsx +1111 -14
- package/src/components/data-table/__tests__/schemas.test.ts +57 -0
- package/src/components/data-table/data-table.tsx +3 -0
- package/src/components/data-table/export-actions.tsx +365 -81
- package/src/components/data-table/schemas.ts +90 -14
- package/src/components/editor/navigation/__tests__/navigation.test.ts +8 -8
- package/src/plugins/impl/DataTablePlugin.tsx +23 -2
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +65 -8
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +15 -3
- package/src/stories/dataframe.stories.tsx +7 -0
- package/dist/assets/ConnectedDataExplorerComponent-D5gfkAKK.js +0 -1
- package/dist/assets/JsonOutput-c1E0SCoN.js +0 -11
- package/dist/assets/RunButton-TcDo218m.js +0 -1
- package/dist/assets/ai-model-dropdown-CK8y46Fn.js +0 -5
- package/dist/assets/cache-panel-CKzoUIhe.js +0 -1
- package/dist/assets/chat-panel-C3Bu_7u5.js +0 -4
- package/dist/assets/column-preview-BltuXodG.js +0 -1
- package/dist/assets/edit-page-CMJrCnfU.js +0 -9
- package/dist/assets/feedback-button-BW1-NBBf.js +0 -1
- package/dist/assets/file-explorer-panel-VIG5c9ac.js +0 -1
- package/dist/assets/home-page-Dv2fEKyO.js +0 -4
- package/dist/assets/index-BGdpHNhZ.css +0 -2
- package/dist/assets/index-BdrTweFz.js +0 -29
- package/dist/assets/input-DnyzXg4C.js +0 -7
- package/dist/assets/session-panel-DD5LfQGb.js +0 -1
- package/dist/assets/spec-SOFn9xEK.js +0 -1
- package/dist/assets/switch-CPh_C6Mu.js +0 -1
- package/dist/assets/tracing-panel-CS9W1a0x.js +0 -2
- package/dist/assets/useDateFormatter-CjgScv5a.js +0 -1
- package/dist/assets/useNumberFormatter-C4-_TnkF.js +0 -1
- /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
|
/>
|