@datarecce/ui 0.1.39 → 0.1.41

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 (40) hide show
  1. package/dist/api.d.mts +1 -1
  2. package/dist/api.d.ts +1 -1
  3. package/dist/{components-DTLQ2djq.js → components-DfXnN1Hx.js} +592 -13
  4. package/dist/components-DfXnN1Hx.js.map +1 -0
  5. package/dist/{components-B6oaPB5f.mjs → components-jh6r4tQn.mjs} +593 -14
  6. package/dist/components-jh6r4tQn.mjs.map +1 -0
  7. package/dist/components.d.mts +1 -1
  8. package/dist/components.d.ts +1 -1
  9. package/dist/components.js +1 -1
  10. package/dist/components.mjs +1 -1
  11. package/dist/hooks.d.mts +1 -1
  12. package/dist/hooks.d.ts +1 -1
  13. package/dist/{index-DzBojsjY.d.mts → index-B5bpmv0i.d.mts} +70 -70
  14. package/dist/{index-DzBojsjY.d.mts.map → index-B5bpmv0i.d.mts.map} +1 -1
  15. package/dist/{index-DvKRw-cR.d.ts → index-B9lSPJTi.d.ts} +70 -70
  16. package/dist/index-B9lSPJTi.d.ts.map +1 -0
  17. package/dist/index.d.mts +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.mjs +1 -1
  21. package/dist/theme.d.mts +1 -1
  22. package/dist/theme.d.ts +1 -1
  23. package/dist/types.d.mts +1 -1
  24. package/dist/types.d.ts +1 -1
  25. package/package.json +1 -1
  26. package/recce-source/docs/plans/2024-12-31-csv-download-design.md +121 -0
  27. package/recce-source/docs/plans/2024-12-31-csv-download-implementation.md +930 -0
  28. package/recce-source/js/src/components/run/RunResultPane.tsx +138 -14
  29. package/recce-source/js/src/lib/csv/extractors.test.ts +456 -0
  30. package/recce-source/js/src/lib/csv/extractors.ts +468 -0
  31. package/recce-source/js/src/lib/csv/format.test.ts +211 -0
  32. package/recce-source/js/src/lib/csv/format.ts +44 -0
  33. package/recce-source/js/src/lib/csv/index.test.ts +155 -0
  34. package/recce-source/js/src/lib/csv/index.ts +109 -0
  35. package/recce-source/js/src/lib/hooks/useCSVExport.ts +136 -0
  36. package/recce-source/recce/mcp_server.py +54 -30
  37. package/recce-source/recce/models/check.py +10 -2
  38. package/dist/components-B6oaPB5f.mjs.map +0 -1
  39. package/dist/components-DTLQ2djq.js.map +0 -1
  40. package/dist/index-DvKRw-cR.d.ts.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { $ as token, $i as getLineageDiff, $n as NodeView, $r as ValueDiffDetailViewOptions, $t as IconSave, A as connectToCloud, Ai as getRun, An as CheckEmptyState, Ar as LineageDiffParams, At as RecceActionContextProvider, B as submitQueryBase, Bi as getCll, Bn as DiffText, Br as isProfileRun, Bt as useLineageGraphContext, C as SchemaDiffViewParams, Ci as TopKResult, Cn as RunResultPane, Cr as RunToolbar, Ct as useApiConfig, D as markOnboardingCompleted, Di as SubmitRunTrackProps, Dn as RunPage, Dr as ColumnRenderMode, Dt as RecceCheckContextProvider, E as getServerFlag, Ei as SubmitOptions, En as RunList, Er as AxiosQueryParams, Et as useIdleTimeout, F as QueryPreviewChangeParams, Fi as waitRun, Fn as ColumnNameCell, Fr as RunParamTypes, Ft as useRecceQueryContext, G as Theme, Gi as LineageDiffResult, Gn as QueryPage, Gr as isRowCountRun, Gt as useValueDiffAlertDialog, H as VERSION, Hi as LineageData, Hn as QueryResultView, Hr as isQueryDiffRun, Ht as RecceInstanceInfoProvider, I as QueryResult, Ii as CllInput, In as SchemaView, Ir as SchemaDiffParams, It as useRowCountStateContext, J as colors, Ji as NodeColumnData, Jn as ResourceTypeTag, Jr as isTopKDiffRun, Jt as useRecceInstanceInfo, K as ThemeOptions, Ki as ManifestMetadata, Kn as SetupConnectionBanner, Kr as isSchemaDiffRun, Kt as useClipBoardToast, L as QueryRunParams, Li as CllNodeData, Ln as DiffEditor, Lr as isHistogramDiffRun, Lt as RecceShareStateContextProvider, M as QueryDiffResult, Mi as searchRuns, Mn as CheckBreadcrumb, Mr as RowDataTypes, Mt as useRecceActionContext, N as QueryDiffViewOptions, Ni as submitRun, Nn as CheckDetail, Nr as RowObjectType, Nt as RecceQueryContextProvider, O as markRelaunchHintCompleted, Oi as aggregateRuns, On as SchemaDiffView, Or as ColumnType, Ot as useRecceCheckContext, P as QueryParams, Pi as submitRunFromCheck, Pn as CheckList, Pr as Run, Pt as RowCountStateContextProvider, Q as semanticColors, Qi as getLineage, Qn as NodeSqlView, Qr as ValueDiffDetailResult, Qt as IconInfo, R as QueryViewOptions, Ri as ColumnLineageData, Rn as CodeEditor, Rr as isLineageDiffRun, Rt as useRecceShareStateContext, S as select, Si as TopKDiffResult, Sn as RunStatusAndDate, Sr as ScreenshotDataGrid, St as useApiClient, T as RecceServerFlags, Ti as RunsAggregated, Tn as RunView, Tr as RunResultViewProps, Tt as IdleTimeoutProvider, U as Colors, Ui as LineageDataFromMetadata, Un as SqlEditor, Ur as isQueryRun, Ut as useRecceInstanceContext, V as submitQueryDiff, Vi as CatalogMetadata, Vn as QueryDiffResultView, Vr as isQueryBaseRun, Vt as useRunsAggregated, W as SemanticColors, Wi as LineageDiffData, Wn as QueryForm, Wr as isRowCountDiffRun, Wt as RecceContextProvider, X as lightTheme, Xi as SQLMeshInfo, Xn as RowCountDiffTagProps, Xr as isValueDiffRun, Xt as IconExport, Y as darkTheme, Yi as NodeData, Yn as RowCountDiffTag, Yr as isValueDiffDetailRun, Yt as IconEdit, Z as muiTheme, Zi as ServerInfoResult, Zn as RowCountTagProps, Zr as ValueDiffDetailParams, Zt as IconImport, _ as saveAs, _i as HistogramResult, _n as HistogramDiffResultView, _r as reorderChecks, _t as RouteConfigProvider, a as User, aa as stateMetadata, ai as RowCountDiffResult, an as NavBar, ar as useLineageViewContext, at as columnPrecisionSelectOptions, b as SelectInput, bi as ProfileDiffViewOptions, bn as ValueDiffResultView, br as ValueDiffForm, bt as ApiConfig, c as ImportedState, ca as HSplit, ci as submitRowCountDiff, cn as SchemaSummary, cr as createLineageDiffCheck, ct as buildQuery, d as SyncStateInput, da as Toaster, di as RowCountDiff, dn as SquareIcon, dr as createCheckByRun, dt as useAppLocation, ea as getLineageWithError, ei as ValueDiffParams, en as IconSync, er as GraphColumnNode, et as PUBLIC_API_URL, f as SyncStateResponse, fa as ToasterProvider, fi as fetchModelRowCount, fn as TopKSummaryList, fr as createSimpleCheck, ft as useAppLocationWithSearch, g as rename, ga as reactQueryClient, gi as HistogramDiffResult, gn as TopKDiffForm, gr as markAsPresetCheck, gt as RouteConfigContextType, h as isStateSyncing, ha as axiosClient, hi as HistogramDiffParams, hn as TopKDiffResultView, hr as listChecks, ht as RouteConfig, i as useVersionNumber, ia as pullRequestInfo, ii as RowCountDiffParams, in as DisplayModeToggle, ir as LineageViewContext, it as deltaPercentageString, j as QueryDiffParams, ji as listRuns, jn as CheckDescription, jr as RowData, jt as RecceActionContextType, k as ConnectToCloud, ki as cancelRun, kn as LineageDiffView, kr as DataFrame, kt as RecceActionContext, l as SaveAsInput, la as VSplit, li as QueryRowCountResult, ln as ChangeSummary, lr as Check, lt as buildTitle, m as importState, ma as MuiProvider, mi as queryRowCount, mn as RowCountDiffResultView, mr as getCheck, mt as useAppRoute, n as localStorageKeys, na as getServerInfo, ni as submitValueDiff, nn as HistoryToggle, nr as GraphNode, nt as DisableTooltipMessages, o as fetchGitHubAvatar, oa as LineagePage, oi as RowCountParams, on as TopBar, or as LineageView, ot as isSchemaChanged, p as exportState, pa as useToaster, pi as queryModelRowCount, pn as HistogramChart, pr as deleteCheck, pt as useAppNavigation, q as TokenFn, qi as ModelInfoResult, qn as ModelRowCount, qr as isSimpleRun, qt as useCheckToast, r as getVersion, ra as gitInfo, ri as submitValueDiffDetail, rn as RecceVersionBadge, rr as LineageViewTopBar, rt as RECCE_SUPPORT_CALENDAR_URL, s as fetchUser, sa as ScreenshotBox, si as RowCountResult, sn as EnvInfo, sr as LineageDiffViewOptions, st as buildDescription, t as sessionStorageKeys, ta as getModelInfo, ti as ValueDiffResult, tn as IdleTimeoutBadge, tr as GraphEdge, tt as PUBLIC_CLOUD_WEB_URL, u as ShareStateResponse, ua as ErrorBoundary, ui as RowCount, un as SummaryView, ur as CreateCheckBody, ut as navigateTo, v as shareState, vi as ProfileDiffParams, vn as HistogramDiffForm, vr as updateCheck, vt as useRouteConfig, w as createSchemaDiffCheck, wi as submitProfileDiff, wn as RunModal, wr as RunFormProps, wt as useApiConfigSafe, x as SelectOutput, xi as TopKDiffParams, xn as ProfileDiffResultView, xr as ProfileDiffForm, xt as ApiConfigProvider, y as syncState, yi as ProfileDiffResult, yn as ValueDiffDetailResultView, yr as useChecks, yt as useRouteConfigSafe, z as submitQuery, zi as ImpactRadiusParams, zn as SetupConnectionGuide, zr as isProfileDiffRun, zt as LineageGraphContextProvider } from "./index-DvKRw-cR.js";
2
+ import { $ as token, $i as getLineageDiff, $n as NodeView, $r as ValueDiffDetailViewOptions, $t as IconSave, A as connectToCloud, Ai as getRun, An as CheckEmptyState, Ar as LineageDiffParams, At as RecceActionContextProvider, B as submitQueryBase, Bi as getCll, Bn as DiffText, Br as isProfileRun, Bt as useLineageGraphContext, C as SchemaDiffViewParams, Ci as TopKResult, Cn as RunResultPane, Cr as RunToolbar, Ct as useApiConfig, D as markOnboardingCompleted, Di as SubmitRunTrackProps, Dn as RunPage, Dr as ColumnRenderMode, Dt as RecceCheckContextProvider, E as getServerFlag, Ei as SubmitOptions, En as RunList, Er as AxiosQueryParams, Et as useIdleTimeout, F as QueryPreviewChangeParams, Fi as waitRun, Fn as ColumnNameCell, Fr as RunParamTypes, Ft as useRecceQueryContext, G as Theme, Gi as LineageDiffResult, Gn as QueryPage, Gr as isRowCountRun, Gt as useValueDiffAlertDialog, H as VERSION, Hi as LineageData, Hn as QueryResultView, Hr as isQueryDiffRun, Ht as RecceInstanceInfoProvider, I as QueryResult, Ii as CllInput, In as SchemaView, Ir as SchemaDiffParams, It as useRowCountStateContext, J as colors, Ji as NodeColumnData, Jn as ResourceTypeTag, Jr as isTopKDiffRun, Jt as useRecceInstanceInfo, K as ThemeOptions, Ki as ManifestMetadata, Kn as SetupConnectionBanner, Kr as isSchemaDiffRun, Kt as useClipBoardToast, L as QueryRunParams, Li as CllNodeData, Ln as DiffEditor, Lr as isHistogramDiffRun, Lt as RecceShareStateContextProvider, M as QueryDiffResult, Mi as searchRuns, Mn as CheckBreadcrumb, Mr as RowDataTypes, Mt as useRecceActionContext, N as QueryDiffViewOptions, Ni as submitRun, Nn as CheckDetail, Nr as RowObjectType, Nt as RecceQueryContextProvider, O as markRelaunchHintCompleted, Oi as aggregateRuns, On as SchemaDiffView, Or as ColumnType, Ot as useRecceCheckContext, P as QueryParams, Pi as submitRunFromCheck, Pn as CheckList, Pr as Run, Pt as RowCountStateContextProvider, Q as semanticColors, Qi as getLineage, Qn as NodeSqlView, Qr as ValueDiffDetailResult, Qt as IconInfo, R as QueryViewOptions, Ri as ColumnLineageData, Rn as CodeEditor, Rr as isLineageDiffRun, Rt as useRecceShareStateContext, S as select, Si as TopKDiffResult, Sn as RunStatusAndDate, Sr as ScreenshotDataGrid, St as useApiClient, T as RecceServerFlags, Ti as RunsAggregated, Tn as RunView, Tr as RunResultViewProps, Tt as IdleTimeoutProvider, U as Colors, Ui as LineageDataFromMetadata, Un as SqlEditor, Ur as isQueryRun, Ut as useRecceInstanceContext, V as submitQueryDiff, Vi as CatalogMetadata, Vn as QueryDiffResultView, Vr as isQueryBaseRun, Vt as useRunsAggregated, W as SemanticColors, Wi as LineageDiffData, Wn as QueryForm, Wr as isRowCountDiffRun, Wt as RecceContextProvider, X as lightTheme, Xi as SQLMeshInfo, Xn as RowCountDiffTagProps, Xr as isValueDiffRun, Xt as IconExport, Y as darkTheme, Yi as NodeData, Yn as RowCountDiffTag, Yr as isValueDiffDetailRun, Yt as IconEdit, Z as muiTheme, Zi as ServerInfoResult, Zn as RowCountTagProps, Zr as ValueDiffDetailParams, Zt as IconImport, _ as saveAs, _i as HistogramResult, _n as HistogramDiffResultView, _r as reorderChecks, _t as RouteConfigProvider, a as User, aa as stateMetadata, ai as RowCountDiffResult, an as NavBar, ar as useLineageViewContext, at as columnPrecisionSelectOptions, b as SelectInput, bi as ProfileDiffViewOptions, bn as ValueDiffResultView, br as ValueDiffForm, bt as ApiConfig, c as ImportedState, ca as HSplit, ci as submitRowCountDiff, cn as SchemaSummary, cr as createLineageDiffCheck, ct as buildQuery, d as SyncStateInput, da as Toaster, di as RowCountDiff, dn as SquareIcon, dr as createCheckByRun, dt as useAppLocation, ea as getLineageWithError, ei as ValueDiffParams, en as IconSync, er as GraphColumnNode, et as PUBLIC_API_URL, f as SyncStateResponse, fa as ToasterProvider, fi as fetchModelRowCount, fn as TopKSummaryList, fr as createSimpleCheck, ft as useAppLocationWithSearch, g as rename, ga as reactQueryClient, gi as HistogramDiffResult, gn as TopKDiffForm, gr as markAsPresetCheck, gt as RouteConfigContextType, h as isStateSyncing, ha as axiosClient, hi as HistogramDiffParams, hn as TopKDiffResultView, hr as listChecks, ht as RouteConfig, i as useVersionNumber, ia as pullRequestInfo, ii as RowCountDiffParams, in as DisplayModeToggle, ir as LineageViewContext, it as deltaPercentageString, j as QueryDiffParams, ji as listRuns, jn as CheckDescription, jr as RowData, jt as RecceActionContextType, k as ConnectToCloud, ki as cancelRun, kn as LineageDiffView, kr as DataFrame, kt as RecceActionContext, l as SaveAsInput, la as VSplit, li as QueryRowCountResult, ln as ChangeSummary, lr as Check, lt as buildTitle, m as importState, ma as MuiProvider, mi as queryRowCount, mn as RowCountDiffResultView, mr as getCheck, mt as useAppRoute, n as localStorageKeys, na as getServerInfo, ni as submitValueDiff, nn as HistoryToggle, nr as GraphNode, nt as DisableTooltipMessages, o as fetchGitHubAvatar, oa as LineagePage, oi as RowCountParams, on as TopBar, or as LineageView, ot as isSchemaChanged, p as exportState, pa as useToaster, pi as queryModelRowCount, pn as HistogramChart, pr as deleteCheck, pt as useAppNavigation, q as TokenFn, qi as ModelInfoResult, qn as ModelRowCount, qr as isSimpleRun, qt as useCheckToast, r as getVersion, ra as gitInfo, ri as submitValueDiffDetail, rn as RecceVersionBadge, rr as LineageViewTopBar, rt as RECCE_SUPPORT_CALENDAR_URL, s as fetchUser, sa as ScreenshotBox, si as RowCountResult, sn as EnvInfo, sr as LineageDiffViewOptions, st as buildDescription, t as sessionStorageKeys, ta as getModelInfo, ti as ValueDiffResult, tn as IdleTimeoutBadge, tr as GraphEdge, tt as PUBLIC_CLOUD_WEB_URL, u as ShareStateResponse, ua as ErrorBoundary, ui as RowCount, un as SummaryView, ur as CreateCheckBody, ut as navigateTo, v as shareState, vi as ProfileDiffParams, vn as HistogramDiffForm, vr as updateCheck, vt as useRouteConfig, w as createSchemaDiffCheck, wi as submitProfileDiff, wn as RunModal, wr as RunFormProps, wt as useApiConfigSafe, x as SelectOutput, xi as TopKDiffParams, xn as ProfileDiffResultView, xr as ProfileDiffForm, xt as ApiConfigProvider, y as syncState, yi as ProfileDiffResult, yn as ValueDiffDetailResultView, yr as useChecks, yt as useRouteConfigSafe, z as submitQuery, zi as ImpactRadiusParams, zn as SetupConnectionGuide, zr as isProfileDiffRun, zt as LineageGraphContextProvider } from "./index-B9lSPJTi.js";
3
3
  export { ApiConfig, ApiConfigProvider, AxiosQueryParams, CatalogMetadata, ChangeSummary, Check, CheckBreadcrumb, CheckDescription, CheckDetail, CheckEmptyState, CheckList, CllInput, CllNodeData, CodeEditor, Colors, ColumnLineageData, ColumnNameCell, ColumnRenderMode, ColumnType, ConnectToCloud, CreateCheckBody, DataFrame, DiffEditor, DiffText, DisableTooltipMessages, DisplayModeToggle, EnvInfo, ErrorBoundary, GraphColumnNode, GraphEdge, GraphNode, HSplit, HistogramChart, HistogramDiffForm, HistogramDiffParams, HistogramDiffResult, HistogramDiffResultView, HistogramResult, HistoryToggle, IconEdit, IconExport, IconImport, IconInfo, IconSave, IconSync, IdleTimeoutBadge, IdleTimeoutProvider, ImpactRadiusParams, ImportedState, LineageData, LineageDataFromMetadata, LineageDiffData, LineageDiffParams, LineageDiffResult, LineageDiffView, LineageDiffViewOptions, LineageGraphContextProvider, LineagePage, LineageView, LineageViewContext, LineageViewTopBar, ManifestMetadata, ModelInfoResult, ModelRowCount, MuiProvider, MuiProvider as MuiProviderDefault, NavBar, NodeColumnData, NodeData, NodeSqlView, NodeView, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, ProfileDiffForm, ProfileDiffParams, ProfileDiffResult, ProfileDiffResultView, ProfileDiffViewOptions, QueryDiffParams, QueryDiffResult, QueryDiffResultView, QueryDiffViewOptions, QueryForm, QueryPage, QueryParams, QueryPreviewChangeParams, QueryResult, QueryResultView, QueryRowCountResult, QueryRunParams, QueryViewOptions, RECCE_SUPPORT_CALENDAR_URL, RecceActionContext, RecceActionContextProvider, RecceActionContextType, RecceCheckContextProvider, RecceContextProvider, RecceInstanceInfoProvider, RecceQueryContextProvider, RecceServerFlags, RecceShareStateContextProvider, RecceVersionBadge, ResourceTypeTag, RouteConfig, RouteConfigContextType, RouteConfigProvider, RowCount, RowCountDiff, RowCountDiffParams, RowCountDiffResult, RowCountDiffResultView, RowCountDiffTag, RowCountDiffTagProps, RowCountParams, RowCountResult, RowCountStateContextProvider, RowCountTagProps, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunList, RunModal, RunPage, RunParamTypes, RunResultPane, RunResultViewProps, RunStatusAndDate, RunToolbar, RunView, RunsAggregated, SQLMeshInfo, SaveAsInput, SchemaDiffParams, SchemaDiffView, SchemaDiffViewParams, SchemaSummary, SchemaView, ScreenshotBox, ScreenshotDataGrid, SelectInput, SelectOutput, SemanticColors, ServerInfoResult, SetupConnectionBanner, SetupConnectionGuide, ShareStateResponse, SqlEditor, SquareIcon, SubmitOptions, SubmitRunTrackProps, SummaryView, SyncStateInput, SyncStateResponse, Theme, ThemeOptions, Toaster, ToasterProvider, TokenFn, TopBar, TopKDiffForm, TopKDiffParams, TopKDiffResult, TopKDiffResultView, TopKResult, TopKSummaryList, User, VERSION, VSplit, ValueDiffDetailParams, ValueDiffDetailResult, ValueDiffDetailResultView, ValueDiffDetailViewOptions, ValueDiffForm, ValueDiffParams, ValueDiffResult, ValueDiffResultView, aggregateRuns, axiosClient, buildDescription, buildQuery, buildTitle, cancelRun, colors, columnPrecisionSelectOptions, connectToCloud, createCheckByRun, createLineageDiffCheck, createSchemaDiffCheck, createSimpleCheck, darkTheme, deleteCheck, deltaPercentageString, exportState, fetchGitHubAvatar, fetchModelRowCount, fetchUser, getCheck, getCll, getLineage, getLineageDiff, getLineageWithError, getModelInfo, getRun, getServerFlag, getServerInfo, getVersion, gitInfo, importState, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isStateSyncing, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun, lightTheme, listChecks, listRuns, localStorageKeys, markAsPresetCheck, markOnboardingCompleted, markRelaunchHintCompleted, muiTheme, navigateTo, pullRequestInfo, queryModelRowCount, queryRowCount, reactQueryClient, rename, reorderChecks, saveAs, searchRuns, select, semanticColors, sessionStorageKeys, shareState, stateMetadata, submitProfileDiff, submitQuery, submitQueryBase, submitQueryDiff, submitRowCountDiff, submitRun, submitRunFromCheck, submitValueDiff, submitValueDiffDetail, syncState, token, updateCheck, useApiClient, useApiConfig, useApiConfigSafe, useAppLocation, useAppLocationWithSearch, useAppNavigation, useAppRoute, useCheckToast, useChecks, useClipBoardToast, useIdleTimeout, useLineageGraphContext, useLineageViewContext, useRecceActionContext, useRecceCheckContext, useRecceInstanceContext, useRecceInstanceInfo, useRecceQueryContext, useRecceShareStateContext, useRouteConfig, useRouteConfigSafe, useRowCountStateContext, useRunsAggregated, useToaster, useValueDiffAlertDialog, useVersionNumber, waitRun };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client"
2
2
  const require_state = require('./state-CTITyT0R.js');
3
3
  const require_mui_theme = require('./mui-theme-iBHkjXJq.js');
4
- const require_components = require('./components-DTLQ2djq.js');
4
+ const require_components = require('./components-DfXnN1Hx.js');
5
5
  const require_RecceCheckContext = require('./RecceCheckContext-BJprb2xR.js');
6
6
  const require_const = require('./const-CvdZO0FN.js');
7
7
  const require_version = require('./version-B9s8yne-.js');
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client"
2
2
  import { a as semanticColors, i as muiTheme, n as darkTheme, o as token, r as lightTheme, t as colors } from "./mui-theme-CUhybmBq.mjs";
3
- import { A as NodeSqlView, B as GraphEdge, C as NodeView, D as SqlEditor_default, E as RunStatusAndDate, F as HistoryToggle, G as MuiProvider, H as HSplit, I as GraphNode, K as mui_provider_default, L as ModelRowCount, M as CodeEditor_default, N as SchemaView, O as QueryForm, P as LineageViewTopBar, R as ResourceTypeTag, S as SetupConnectionBanner, T as RunView, U as VSplit, V as GraphColumnNode, W as ErrorBoundary, _ as CheckList, a as IdleTimeoutBadge, b as LineagePage, c as ChangeSummary, d as CheckEmptyState, f as CheckDetail, g as CheckBreadcrumb, h as CheckDescription, i as DisplayModeToggle, j as DiffEditor_default, k as EnvInfo, l as RunList, m as LineageDiffView, n as TopBar, o as SummaryView, p as SchemaDiffView, r as RecceVersionBadge, s as SchemaSummary, t as NavBar, u as RunPage, v as QueryPage, w as RunResultPane, x as LineageView, y as SetupConnectionGuide, z as RowCountDiffTag } from "./components-B6oaPB5f.mjs";
3
+ import { A as NodeSqlView, B as GraphEdge, C as NodeView, D as SqlEditor_default, E as RunStatusAndDate, F as HistoryToggle, G as MuiProvider, H as HSplit, I as GraphNode, K as mui_provider_default, L as ModelRowCount, M as CodeEditor_default, N as SchemaView, O as QueryForm, P as LineageViewTopBar, R as ResourceTypeTag, S as SetupConnectionBanner, T as RunView, U as VSplit, V as GraphColumnNode, W as ErrorBoundary, _ as CheckList, a as IdleTimeoutBadge, b as LineagePage, c as ChangeSummary, d as CheckEmptyState, f as CheckDetail, g as CheckBreadcrumb, h as CheckDescription, i as DisplayModeToggle, j as DiffEditor_default, k as EnvInfo, l as RunList, m as LineageDiffView, n as TopBar, o as SummaryView, p as SchemaDiffView, r as RecceVersionBadge, s as SchemaSummary, t as NavBar, u as RunPage, v as QueryPage, w as RunResultPane, x as LineageView, y as SetupConnectionGuide, z as RowCountDiffTag } from "./components-jh6r4tQn.mjs";
4
4
  import { A as TopKDiffForm, At as useToaster, B as LineageViewContext, D as ValueDiffDetailResultView, Dt as Toaster, E as ValueDiffForm, Et as ScreenshotBox, F as RunToolbar, G as useClipBoardToast, J as ProfileDiffForm, L as ScreenshotDataGrid, M as QueryResultView, N as QueryDiffResultView, O as TopKDiffResultView, Ot as ToasterProvider, P as ProfileDiffResultView, Q as HistogramDiffForm, S as useRouteConfigSafe, T as ValueDiffResultView, V as useLineageViewContext, W as DiffText, X as HistogramChart, Y as HistogramDiffResultView, Z as SquareIcon, _ as useAppLocationWithSearch, a as RecceShareStateContextProvider, at as IconInfo, b as RouteConfigProvider, c as RowCountStateContextProvider, ct as LineageGraphContextProvider, d as useRowCountStateContext, f as RecceActionContext, ft as IdleTimeoutProvider, g as useAppLocation, gt as useRecceInstanceInfo, h as navigateTo, ht as useRecceInstanceContext, i as useValueDiffAlertDialog_default, it as IconImport, j as RowCountDiffResultView, k as TopKSummaryList, lt as useLineageGraphContext, m as useRecceActionContext, mt as RecceInstanceInfoProvider, n as useRecceCheckContext, nt as IconEdit, o as useRecceShareStateContext, ot as IconSave, p as RecceActionContextProvider, pt as useIdleTimeout, r as useCheckToast, rt as IconExport, s as RecceQueryContextProvider, st as IconSync, t as RecceCheckContextProvider, tt as RunModal, u as useRecceQueryContext, ut as useRunsAggregated, v as useAppNavigation, x as useRouteConfig, y as useAppRoute, z as ColumnNameCell } from "./RecceCheckContext-DbZ7BdRy.mjs";
5
5
  import { n as PUBLIC_CLOUD_WEB_URL, t as PUBLIC_API_URL } from "./const-CaIm1Z8g.mjs";
6
6
  import { C as markRelaunchHintCompleted, D as useApiConfig, E as useApiClient, O as useApiConfigSafe, S as markOnboardingCompleted, T as ApiConfigProvider, _ as getLineageDiff, a as saveAs, b as getServerInfo, c as aggregateRuns, ct as reactQueryClient, d as listRuns, f as searchRuns, g as getLineage, h as waitRun, i as rename, l as cancelRun, m as submitRunFromCheck, n as importState, o as shareState, p as submitRun, r as isStateSyncing, s as syncState, st as axiosClient, t as exportState, u as getRun, v as getLineageWithError, x as getServerFlag, y as getModelInfo } from "./state-Sc2b4jri.mjs";
package/dist/theme.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { $ as token, G as Theme, J as colors, K as ThemeOptions, Q as semanticColors, U as Colors, W as SemanticColors, X as lightTheme, Y as darkTheme, Z as muiTheme, q as TokenFn } from "./index-DzBojsjY.mjs";
2
+ import { $ as token, G as Theme, J as colors, K as ThemeOptions, Q as semanticColors, U as Colors, W as SemanticColors, X as lightTheme, Y as darkTheme, Z as muiTheme, q as TokenFn } from "./index-B5bpmv0i.mjs";
3
3
  export { Colors, SemanticColors, Theme, ThemeOptions, TokenFn, colors, darkTheme, lightTheme, muiTheme, semanticColors, token };
package/dist/theme.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { $ as token, G as Theme, J as colors, K as ThemeOptions, Q as semanticColors, U as Colors, W as SemanticColors, X as lightTheme, Y as darkTheme, Z as muiTheme, q as TokenFn } from "./index-DvKRw-cR.js";
2
+ import { $ as token, G as Theme, J as colors, K as ThemeOptions, Q as semanticColors, U as Colors, W as SemanticColors, X as lightTheme, Y as darkTheme, Z as muiTheme, q as TokenFn } from "./index-B9lSPJTi.js";
3
3
  export { Colors, SemanticColors, Theme, ThemeOptions, TokenFn, colors, darkTheme, lightTheme, muiTheme, semanticColors, token };
package/dist/types.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { Ar as LineageDiffParams, Br as isProfileRun, Dr as ColumnRenderMode, Er as AxiosQueryParams, Fr as RunParamTypes, Gr as isRowCountRun, Hr as isQueryDiffRun, Ir as SchemaDiffParams, Jr as isTopKDiffRun, Kr as isSchemaDiffRun, Lr as isHistogramDiffRun, Mr as RowDataTypes, Nr as RowObjectType, Or as ColumnType, Pr as Run, Rr as isLineageDiffRun, Tr as RunResultViewProps, Ur as isQueryRun, Vr as isQueryBaseRun, Wr as isRowCountDiffRun, Xr as isValueDiffRun, Yr as isValueDiffDetailRun, at as columnPrecisionSelectOptions, ct as buildQuery, et as PUBLIC_API_URL, it as deltaPercentageString, jr as RowData, kr as DataFrame, lt as buildTitle, nt as DisableTooltipMessages, ot as isSchemaChanged, qr as isSimpleRun, rt as RECCE_SUPPORT_CALENDAR_URL, st as buildDescription, tt as PUBLIC_CLOUD_WEB_URL, wr as RunFormProps, zr as isProfileDiffRun } from "./index-DzBojsjY.mjs";
2
+ import { Ar as LineageDiffParams, Br as isProfileRun, Dr as ColumnRenderMode, Er as AxiosQueryParams, Fr as RunParamTypes, Gr as isRowCountRun, Hr as isQueryDiffRun, Ir as SchemaDiffParams, Jr as isTopKDiffRun, Kr as isSchemaDiffRun, Lr as isHistogramDiffRun, Mr as RowDataTypes, Nr as RowObjectType, Or as ColumnType, Pr as Run, Rr as isLineageDiffRun, Tr as RunResultViewProps, Ur as isQueryRun, Vr as isQueryBaseRun, Wr as isRowCountDiffRun, Xr as isValueDiffRun, Yr as isValueDiffDetailRun, at as columnPrecisionSelectOptions, ct as buildQuery, et as PUBLIC_API_URL, it as deltaPercentageString, jr as RowData, kr as DataFrame, lt as buildTitle, nt as DisableTooltipMessages, ot as isSchemaChanged, qr as isSimpleRun, rt as RECCE_SUPPORT_CALENDAR_URL, st as buildDescription, tt as PUBLIC_CLOUD_WEB_URL, wr as RunFormProps, zr as isProfileDiffRun } from "./index-B5bpmv0i.mjs";
3
3
  export { AxiosQueryParams, ColumnRenderMode, ColumnType, DataFrame, DisableTooltipMessages, LineageDiffParams, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, RECCE_SUPPORT_CALENDAR_URL, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunParamTypes, RunResultViewProps, SchemaDiffParams, buildDescription, buildQuery, buildTitle, columnPrecisionSelectOptions, deltaPercentageString, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun };
package/dist/types.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { Ar as LineageDiffParams, Br as isProfileRun, Dr as ColumnRenderMode, Er as AxiosQueryParams, Fr as RunParamTypes, Gr as isRowCountRun, Hr as isQueryDiffRun, Ir as SchemaDiffParams, Jr as isTopKDiffRun, Kr as isSchemaDiffRun, Lr as isHistogramDiffRun, Mr as RowDataTypes, Nr as RowObjectType, Or as ColumnType, Pr as Run, Rr as isLineageDiffRun, Tr as RunResultViewProps, Ur as isQueryRun, Vr as isQueryBaseRun, Wr as isRowCountDiffRun, Xr as isValueDiffRun, Yr as isValueDiffDetailRun, at as columnPrecisionSelectOptions, ct as buildQuery, et as PUBLIC_API_URL, it as deltaPercentageString, jr as RowData, kr as DataFrame, lt as buildTitle, nt as DisableTooltipMessages, ot as isSchemaChanged, qr as isSimpleRun, rt as RECCE_SUPPORT_CALENDAR_URL, st as buildDescription, tt as PUBLIC_CLOUD_WEB_URL, wr as RunFormProps, zr as isProfileDiffRun } from "./index-DvKRw-cR.js";
2
+ import { Ar as LineageDiffParams, Br as isProfileRun, Dr as ColumnRenderMode, Er as AxiosQueryParams, Fr as RunParamTypes, Gr as isRowCountRun, Hr as isQueryDiffRun, Ir as SchemaDiffParams, Jr as isTopKDiffRun, Kr as isSchemaDiffRun, Lr as isHistogramDiffRun, Mr as RowDataTypes, Nr as RowObjectType, Or as ColumnType, Pr as Run, Rr as isLineageDiffRun, Tr as RunResultViewProps, Ur as isQueryRun, Vr as isQueryBaseRun, Wr as isRowCountDiffRun, Xr as isValueDiffRun, Yr as isValueDiffDetailRun, at as columnPrecisionSelectOptions, ct as buildQuery, et as PUBLIC_API_URL, it as deltaPercentageString, jr as RowData, kr as DataFrame, lt as buildTitle, nt as DisableTooltipMessages, ot as isSchemaChanged, qr as isSimpleRun, rt as RECCE_SUPPORT_CALENDAR_URL, st as buildDescription, tt as PUBLIC_CLOUD_WEB_URL, wr as RunFormProps, zr as isProfileDiffRun } from "./index-B9lSPJTi.js";
3
3
  export { AxiosQueryParams, ColumnRenderMode, ColumnType, DataFrame, DisableTooltipMessages, LineageDiffParams, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, RECCE_SUPPORT_CALENDAR_URL, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunParamTypes, RunResultViewProps, SchemaDiffParams, buildDescription, buildQuery, buildTitle, columnPrecisionSelectOptions, deltaPercentageString, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarecce/ui",
3
- "version": "0.1.39",
3
+ "version": "0.1.41",
4
4
  "description": "Recce UI Components Library - Reusable React components for data validation and review",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -0,0 +1,121 @@
1
+ # CSV Download Feature Design
2
+
3
+ ## Overview
4
+
5
+ Add CSV export capabilities to the Run Result pane, refactoring the existing "Copy to Clipboard" button into a menu with multiple export options.
6
+
7
+ ## Requirements
8
+
9
+ - Refactor "Copy to Clipboard" button into a dropdown menu
10
+ - Rename screenshot functionality to "Copy as Image"
11
+ - Add "Copy as CSV" option (copies CSV text to clipboard)
12
+ - Add "Download as CSV" option (downloads CSV file)
13
+ - Support all tabular result types
14
+ - Excel-friendly CSV format with UTF-8 BOM
15
+ - Context-aware filenames with timestamps
16
+
17
+ ## Menu Structure
18
+
19
+ ```
20
+ ┌─────────────────────┐
21
+ │ Copy as Image │ ← renamed from "Copy to Clipboard"
22
+ │ Copy as CSV │ ← new (disabled if not tabular)
23
+ │ Download as CSV │ ← new (disabled if not tabular)
24
+ ├─────────────────────┤
25
+ │ Share to Cloud │ ← existing (only if share enabled)
26
+ └─────────────────────┘
27
+ ```
28
+
29
+ Button label remains "Share" for consistency.
30
+
31
+ ## New Files
32
+
33
+ ### `js/src/lib/csv.ts`
34
+
35
+ CSV utility functions:
36
+
37
+ ```typescript
38
+ // Convert tabular data to CSV string (Excel-friendly with BOM)
39
+ export function toCSV(columns: string[], rows: unknown[][]): string
40
+
41
+ // Trigger browser download of CSV file
42
+ export function downloadCSV(content: string, filename: string): void
43
+
44
+ // Copy CSV content to clipboard
45
+ export function copyCSVToClipboard(content: string): Promise<void>
46
+ ```
47
+
48
+ CSV formatting rules:
49
+ - UTF-8 BOM prefix (`\uFEFF`) for Excel compatibility
50
+ - Values containing commas, quotes, or newlines wrapped in double-quotes
51
+ - Double-quotes escaped as `""`
52
+ - NULL values exported as empty string
53
+ - Numbers exported without locale formatting (raw values)
54
+ - Booleans as `true`/`false`
55
+
56
+ ### `js/src/lib/csvExtractors.ts`
57
+
58
+ Data extraction functions per result type:
59
+
60
+ ```typescript
61
+ interface CSVData {
62
+ columns: string[];
63
+ rows: unknown[][];
64
+ }
65
+
66
+ // Returns CSVData or null if not supported
67
+ export function extractCSVData(runType: string, result: unknown): CSVData | null
68
+ ```
69
+
70
+ ## Supported Result Types
71
+
72
+ | Run Type | Data Location | Columns | Rows |
73
+ |----------|---------------|---------|------|
74
+ | `query` | `result.base` or `result.current` | `result.*.columns[].name` | `result.*.data` |
75
+ | `query_diff` | `result.base` + `result.current` | merged columns | merged rows with base/current markers |
76
+ | `query_base` | `result.base` | `result.base.columns[].name` | `result.base.data` |
77
+ | `profile` | `result.base` + `result.current` | profile metrics as columns | one row per column profiled |
78
+ | `row_count` | `result` | `[node, base_count, current_count, diff]` | one row per node |
79
+ | `value_diff` | `result` | value columns | diff rows |
80
+ | `top_k` | `result` | category + count columns | top-k rows |
81
+
82
+ ## Filename Generation
83
+
84
+ Format: `{runType}-{nodeName}-{timestamp}.csv`
85
+
86
+ Timestamp format: `YYYYMMDD-HHmmss` (compact, sortable, filesystem-safe)
87
+
88
+ Examples:
89
+ - `query-diff-orders-20241231-143022.csv`
90
+ - `profile-customers-20241231-143022.csv`
91
+ - `row-count-20241231-143022.csv`
92
+ - `query-result-20241231-143022.csv` (fallback when no node name)
93
+
94
+ ## Component Changes
95
+
96
+ ### `RunResultPane.tsx`
97
+
98
+ Update `RunResultShareMenu` component:
99
+ - Rename "Copy to Clipboard" → "Copy as Image"
100
+ - Add "Copy as CSV" menu item
101
+ - Add "Download as CSV" menu item
102
+ - Pass `run` object to menu for data extraction
103
+ - Disable CSV options when `extractCSVData()` returns null
104
+
105
+ Standalone button case (when `featureToggles.disableShare` is true):
106
+ - Convert single button into dropdown menu
107
+ - Same options minus "Share to Cloud"
108
+
109
+ ### Menu Item Disabled States
110
+
111
+ | Option | Disabled when |
112
+ |--------|---------------|
113
+ | Copy as Image | No result, error, or not on "Result" tab |
114
+ | Copy as CSV | Above + result type not tabular |
115
+ | Download as CSV | Above + result type not tabular |
116
+ | Share to Cloud | No result or error |
117
+
118
+ ## User Feedback
119
+
120
+ - Toast notification on success: "Copied to clipboard", "Downloaded {filename}"
121
+ - Toast notification on error: "Failed to copy", "Failed to download"