react-semaphor 0.1.293 → 0.1.295

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/chunks/{braces-BwW2HFlB.js → braces-BdoTYzuj.js} +1 -1
  2. package/dist/chunks/{braces-C7GP95Fp.js → braces-DWldEFn5.js} +1 -1
  3. package/dist/chunks/{dashboard-controls-DgUc38Tn.js → dashboard-controls-B3lrnI_r.js} +9 -9
  4. package/dist/chunks/{dashboard-controls-jrkoCSY_.js → dashboard-controls-D7U6E1sB.js} +504 -472
  5. package/dist/chunks/dashboard-filter-controls-button-D0AsV28-.js +11 -0
  6. package/dist/chunks/dashboard-filter-controls-button-XwenlcXw.js +1152 -0
  7. package/dist/chunks/{dashboard-json-COjT-zjQ.js → dashboard-json-CU55qPXj.js} +1 -1
  8. package/dist/chunks/{dashboard-json-C0NiRL-A.js → dashboard-json-V6m6lJ_c.js} +1 -1
  9. package/dist/chunks/{dashboard-summary-settings-dialog-CGuFl7Xe.js → dashboard-summary-settings-dialog-0CIiWsKc.js} +1 -1
  10. package/dist/chunks/{dashboard-summary-settings-dialog-CXqaN_zj.js → dashboard-summary-settings-dialog-DRLPzp1P.js} +1 -1
  11. package/dist/chunks/{edit-dashboard-visual-ppdXk86H.js → edit-dashboard-visual-8ha6EM_g.js} +2205 -2147
  12. package/dist/chunks/edit-dashboard-visual-sSLAkmgf.js +183 -0
  13. package/dist/chunks/{index-9z-jMqN8.js → index-14M0TnH6.js} +35272 -33064
  14. package/dist/chunks/index-Ze8VskG1.js +1435 -0
  15. package/dist/chunks/{resource-management-panel-CP8cegZP.js → resource-management-panel-BL5-5ouC.js} +64 -64
  16. package/dist/chunks/{resource-management-panel-os6AuEKT.js → resource-management-panel-CcDAn86l.js} +1 -1
  17. package/dist/chunks/use-create-flow-overlay-state-BbQVNDCj.js +21 -0
  18. package/dist/chunks/{use-create-flow-overlay-state-wpuqRZX5.js → use-create-flow-overlay-state-D3PxfjYv.js} +430 -425
  19. package/dist/chunks/use-visual-utils-CdIOq4nt.js +337 -0
  20. package/dist/chunks/use-visual-utils-kh8p2QFm.js +1 -0
  21. package/dist/dashboard/index.cjs +1 -1
  22. package/dist/dashboard/index.js +1 -1
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +258 -253
  25. package/dist/style.css +1 -1
  26. package/dist/surfboard/index.cjs +1 -1
  27. package/dist/surfboard/index.js +2 -2
  28. package/dist/types/dashboard.d.ts +65 -0
  29. package/dist/types/main.d.ts +79 -4
  30. package/dist/types/shared.d.ts +40 -0
  31. package/dist/types/surfboard.d.ts +65 -0
  32. package/dist/types/types.d.ts +65 -0
  33. package/package.json +1 -1
  34. package/dist/chunks/dashboard-filter-controls-button-B19UWmsK.js +0 -11
  35. package/dist/chunks/dashboard-filter-controls-button-DGH4DxJ8.js +0 -1109
  36. package/dist/chunks/edit-dashboard-visual-CDOz4LWO.js +0 -183
  37. package/dist/chunks/index-K25f5Rqr.js +0 -1435
  38. package/dist/chunks/use-create-flow-overlay-state-CecnMS_v.js +0 -21
  39. package/dist/chunks/use-visual-utils-BTfG-ppd.js +0 -1
  40. package/dist/chunks/use-visual-utils-BhRKGJql.js +0 -334
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-K25f5Rqr.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-CXqaN_zj.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-Ze8VskG1.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-DRLPzp1P.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
@@ -1,6 +1,6 @@
1
- import { a as o } from "../chunks/index-9z-jMqN8.js";
1
+ import { a as o } from "../chunks/index-14M0TnH6.js";
2
2
  import { CONTROL_CARD_DEFAULT_VALUE as s, EMPTY_SELECTION as D } from "../types/index.js";
3
- import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-CGuFl7Xe.js";
3
+ import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-0CIiWsKc.js";
4
4
  export {
5
5
  s as CONTROL_CARD_DEFAULT_VALUE,
6
6
  m as CalendarPreferencesDialog,
@@ -272,6 +272,12 @@ declare interface ColumnSettings {
272
272
  maxWidth?: number;
273
273
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
274
274
  textWrap: 'wrap' | 'nowrap';
275
+ /**
276
+ * Totals-row behavior for this column. Undefined = 'none'. The footer
277
+ * renders only when at least one visible column has a non-'none' behavior.
278
+ */
279
+ totalsBehavior?: TotalsBehavior;
280
+ totalsLabel?: string;
275
281
  numberFormat: {
276
282
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
277
283
  currency: string;
@@ -284,6 +290,14 @@ declare interface ColumnSettings {
284
290
  dataBarColor: string;
285
291
  dataBarMinValue?: number;
286
292
  dataBarMaxValue?: number;
293
+ /**
294
+ * When true, render the cell bg with a heatmap intensity tint scaled
295
+ * across the column's value range. Composes with the existing text
296
+ * color/color-range logic (tint is bg only). `showDataBar` takes
297
+ * precedence when both are set — per the canonical design, a cell is
298
+ * either a data-bar or a heatmap, never both.
299
+ */
300
+ showHeatmap?: boolean;
287
301
  };
288
302
  dateFormat: {
289
303
  format: string;
@@ -875,6 +889,8 @@ declare interface FilterGroup {
875
889
  groups: FilterGroup[];
876
890
  }
877
891
 
892
+ declare type FilterKind = 'field' | 'global-date';
893
+
878
894
  /**
879
895
  * Filter layout settings for controlling how dashboard filters are displayed
880
896
  */
@@ -964,6 +980,7 @@ export declare type GetDashboardResponse = {
964
980
  filterValues?: TFilterValue[];
965
981
  defaultLensId?: string;
966
982
  assistantProfileId?: string;
983
+ semanticExecutionPayload: SemanticExecutionPayload;
967
984
  };
968
985
 
969
986
  export declare type GetPluginsResponse = {
@@ -1286,10 +1303,34 @@ declare type RelativeDateFilter = {
1286
1303
  to: number;
1287
1304
  };
1288
1305
 
1306
+ declare type ResolvedPrimaryDateField = {
1307
+ sourceDataset: string;
1308
+ sourceField: string;
1309
+ name: string;
1310
+ qualifiedFieldName: string;
1311
+ qualifiedEntityName?: string;
1312
+ entityId: string;
1313
+ entityName: string;
1314
+ entityType: string;
1315
+ dataType: string;
1316
+ dateFormat?: string;
1317
+ customFormat?: string;
1318
+ defaultGranularity?: TimeGranularity;
1319
+ supportedGranularities?: TimeGranularity[];
1320
+ } | null;
1321
+
1289
1322
  declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
1290
1323
 
1291
1324
  export declare type SelectionState = Record<Level, string | null>;
1292
1325
 
1326
+ declare type SemanticExecutionPayload = {
1327
+ domainsById: Record<string, {
1328
+ datasetsByName: Record<string, {
1329
+ primaryDateField: ResolvedPrimaryDateField;
1330
+ }>;
1331
+ }>;
1332
+ };
1333
+
1293
1334
  declare interface SortByField extends Field {
1294
1335
  role: 'sortby';
1295
1336
  direction: 'asc' | 'desc';
@@ -1360,6 +1401,14 @@ export declare type StyleProps = {
1360
1401
  };
1361
1402
  };
1362
1403
 
1404
+ /**
1405
+ * Row rhythm for the whole table. Authors pick one per card; undefined
1406
+ * falls back to 'compact' (the canonical default — dense scanning, matches
1407
+ * the Linear-style spec). Drives row padding, cell font size, and header
1408
+ * font size via a shared density spec in DataTable.
1409
+ */
1410
+ declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
1411
+
1363
1412
  declare type TablePreferences = {
1364
1413
  columnSettingsMap?: ColumnSettingsMap;
1365
1414
  selectColumnVisible?: boolean;
@@ -1368,6 +1417,7 @@ declare type TablePreferences = {
1368
1417
  pageSize?: number;
1369
1418
  enableDevModePagination?: boolean;
1370
1419
  forceClientPagination?: boolean;
1420
+ density?: TableDensity;
1371
1421
  };
1372
1422
 
1373
1423
  /**
@@ -1896,6 +1946,7 @@ export declare type TEvent = {
1896
1946
  };
1897
1947
 
1898
1948
  declare type TFilter = {
1949
+ kind?: FilterKind;
1899
1950
  type?: 'single' | 'multiple';
1900
1951
  uiType?: 'radio' | 'dropdown' | 'tabs';
1901
1952
  dateSelectionMode?: DateSelectionMode;
@@ -2091,6 +2142,20 @@ export declare type TLens = {
2091
2142
  /** Line dash style options */
2092
2143
  export declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
2093
2144
 
2145
+ /**
2146
+ * Per-column contribution to the table-level totals row (`<tfoot>`).
2147
+ * Additive and optional — omitting it keeps the cell empty in the footer,
2148
+ * matching existing behavior when a totals row is not needed.
2149
+ *
2150
+ * - 'sum' → aggregate the column across the full dataset
2151
+ * - 'avg' → arithmetic mean across the full dataset
2152
+ * - 'count' → non-null count across the full dataset
2153
+ * - 'label' → render `totalsLabel` (or 'Total') as static text — typically
2154
+ * on the first column so the footer reads as a labeled row
2155
+ * - 'none' → blank cell in the footer
2156
+ */
2157
+ declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
2158
+
2094
2159
  /** Point style options supported by Chart.js */
2095
2160
  export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
2096
2161
 
@@ -60,11 +60,15 @@ declare type Actions_2 = {
60
60
  setCustomCards: (customCards: CustomCard[]) => void;
61
61
  setAuthToken: (authToken: AuthToken) => void;
62
62
  setThemeStyle: (themeStyle: StyleProps) => void;
63
- setDashboard: (dashboard: TDashboard) => void;
63
+ setDashboard: (dashboard: TDashboard, options?: {
64
+ semanticExecutionPayload?: SemanticExecutionPayload;
65
+ }) => void;
64
66
  setDashboardWithFilterValues: (dashboard: TDashboard, filterValues: TFilterValue[], runtimeOverrides?: Record<string, unknown>, options?: {
65
67
  selectedSheetId?: string | null;
68
+ semanticExecutionPayload?: SemanticExecutionPayload;
66
69
  }) => void;
67
70
  hydrateRuntimeControlValues: (dashboard: TDashboard, runtimeOverrides?: Record<string, unknown>) => void;
71
+ mergeSemanticExecutionPayload: (semanticExecutionPayload: SemanticExecutionPayload) => void;
68
72
  setDashboardTheme: (theme: 'light' | 'dark' | 'system') => void;
69
73
  setDashboardTitle: (title: string) => void;
70
74
  setDashboardDescription: (description: string) => void;
@@ -104,7 +108,9 @@ declare type Actions_2 = {
104
108
  setCardInlineFilterMode: (sheetId: string, cardId: string, filterId: string, filterMode: 'include' | 'exclude') => void;
105
109
  setCardInlineFilterDefaultValues: (sheetId: string, cardId: string, filterId: string, defaultValues: (string | number)[] | undefined) => void;
106
110
  addFrame: (sheetId: string, frame: TFrame, positionOrOptions?: 'start' | 'end' | AddFrameOptions) => void;
107
- updateFrame: (sheetId: string, frame: TFrame) => void;
111
+ updateFrame: (sheetId: string, frame: TFrame, options?: {
112
+ semanticExecutionPayload?: SemanticExecutionPayload;
113
+ }) => void;
108
114
  updateSheetCalculatedFields: (sheetId: string, calculatedFields: Field[]) => void;
109
115
  setVisualEditPendingFrameRewrites: (sheetId: string, frames: TFrame[]) => void;
110
116
  setVisualEditPendingFilterRewrites: (sheetId: string, filters: TFilter[]) => void;
@@ -304,6 +310,7 @@ declare type AddFrameOptions = {
304
310
  position?: 'start' | 'end';
305
311
  insertAfterFrameId?: string;
306
312
  copyLayoutFromFrameId?: string;
313
+ semanticExecutionPayload?: SemanticExecutionPayload;
307
314
  };
308
315
 
309
316
  /**
@@ -1066,6 +1073,12 @@ declare interface ColumnSettings {
1066
1073
  maxWidth?: number;
1067
1074
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
1068
1075
  textWrap: 'wrap' | 'nowrap';
1076
+ /**
1077
+ * Totals-row behavior for this column. Undefined = 'none'. The footer
1078
+ * renders only when at least one visible column has a non-'none' behavior.
1079
+ */
1080
+ totalsBehavior?: TotalsBehavior;
1081
+ totalsLabel?: string;
1069
1082
  numberFormat: {
1070
1083
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
1071
1084
  currency: string;
@@ -1078,6 +1091,14 @@ declare interface ColumnSettings {
1078
1091
  dataBarColor: string;
1079
1092
  dataBarMinValue?: number;
1080
1093
  dataBarMaxValue?: number;
1094
+ /**
1095
+ * When true, render the cell bg with a heatmap intensity tint scaled
1096
+ * across the column's value range. Composes with the existing text
1097
+ * color/color-range logic (tint is bg only). `showDataBar` takes
1098
+ * precedence when both are set — per the canonical design, a cell is
1099
+ * either a data-bar or a heatmap, never both.
1100
+ */
1101
+ showHeatmap?: boolean;
1081
1102
  };
1082
1103
  dateFormat: {
1083
1104
  format: string;
@@ -1288,6 +1309,7 @@ export declare interface CreateExportRequest {
1288
1309
  controlDefinitions?: ControlDefinition[];
1289
1310
  cardControlDefinitions?: ControlDefinition[];
1290
1311
  controlBindings?: ControlBinding[];
1312
+ resolvedPrimaryDateField?: ResolvedPrimaryDateField;
1291
1313
  timezone?: string;
1292
1314
  totalRows: number;
1293
1315
  format: ExportFormat;
@@ -1493,6 +1515,7 @@ export declare type DashboardStore = {
1493
1515
  controlValues: Record<string, unknown>;
1494
1516
  /** Runtime-only card-scoped control values, keyed by cardId then controlId. */
1495
1517
  cardControlValuesMap: Record<string, Record<string, unknown>>;
1518
+ semanticExecutionPayload: SemanticExecutionPayload;
1496
1519
  isDashboardPanelOpen: boolean;
1497
1520
  drillHistory: Array<{
1498
1521
  sourceDashboardId: string;
@@ -2046,7 +2069,7 @@ export declare type EditorStore = {
2046
2069
  onDatabaseChange?: (databaseName: string) => void;
2047
2070
  onTableChange?: (tableName: string) => void;
2048
2071
  onSchemaChange?: (schemaName: string) => void;
2049
- onSave?: (card: TFrame) => void;
2072
+ onSave?: (card: TFrame) => void | Promise<void>;
2050
2073
  onClose?: () => void;
2051
2074
  /** Draft slots for mode switching - preserves work when toggling between dev/standard */
2052
2075
  modeDrafts: ModeDrafts;
@@ -2397,6 +2420,8 @@ export declare interface FilterGroup {
2397
2420
  groups: FilterGroup[];
2398
2421
  }
2399
2422
 
2423
+ declare type FilterKind = 'field' | 'global-date';
2424
+
2400
2425
  /**
2401
2426
  * Filter layout settings for controlling how dashboard filters are displayed
2402
2427
  */
@@ -2537,6 +2562,7 @@ export declare type GetDashboardResponse = {
2537
2562
  filterValues?: TFilterValue[];
2538
2563
  defaultLensId?: string;
2539
2564
  assistantProfileId?: string;
2565
+ semanticExecutionPayload: SemanticExecutionPayload;
2540
2566
  };
2541
2567
 
2542
2568
  /**
@@ -3190,6 +3216,22 @@ export declare function resolveDatamodelName(datamodelName: string): string;
3190
3216
 
3191
3217
  export declare const resolveDataType: (value: any) => string;
3192
3218
 
3219
+ declare type ResolvedPrimaryDateField = {
3220
+ sourceDataset: string;
3221
+ sourceField: string;
3222
+ name: string;
3223
+ qualifiedFieldName: string;
3224
+ qualifiedEntityName?: string;
3225
+ entityId: string;
3226
+ entityName: string;
3227
+ entityType: string;
3228
+ dataType: string;
3229
+ dateFormat?: string;
3230
+ customFormat?: string;
3231
+ defaultGranularity?: TimeGranularity;
3232
+ supportedGranularities?: TimeGranularity[];
3233
+ } | null;
3234
+
3193
3235
  /**
3194
3236
  * Parameters in JWT payload (after backend resolution).
3195
3237
  * The backend ALWAYS includes calendarContext, even if customer didn't provide it.
@@ -3290,6 +3332,14 @@ export declare type SemanticDomainAccessRequest = {
3290
3332
  domains?: string[];
3291
3333
  };
3292
3334
 
3335
+ declare type SemanticExecutionPayload = {
3336
+ domainsById: Record<string, {
3337
+ datasetsByName: Record<string, {
3338
+ primaryDateField: ResolvedPrimaryDateField;
3339
+ }>;
3340
+ }>;
3341
+ };
3342
+
3293
3343
  export declare const SemaphorContextProvider: ({ children, dashboardProps, }: {
3294
3344
  children: React.ReactNode;
3295
3345
  dashboardProps: DashboardProps;
@@ -3509,6 +3559,14 @@ export declare type TableConfig = {
3509
3559
  datamodelId: string;
3510
3560
  };
3511
3561
 
3562
+ /**
3563
+ * Row rhythm for the whole table. Authors pick one per card; undefined
3564
+ * falls back to 'compact' (the canonical default — dense scanning, matches
3565
+ * the Linear-style spec). Drives row padding, cell font size, and header
3566
+ * font size via a shared density spec in DataTable.
3567
+ */
3568
+ declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
3569
+
3512
3570
  export declare type TableItem = DropdownItem;
3513
3571
 
3514
3572
  declare type TablePreferences = {
@@ -3519,6 +3577,7 @@ declare type TablePreferences = {
3519
3577
  pageSize?: number;
3520
3578
  enableDevModePagination?: boolean;
3521
3579
  forceClientPagination?: boolean;
3580
+ density?: TableDensity;
3522
3581
  };
3523
3582
 
3524
3583
  /**
@@ -4051,6 +4110,7 @@ export declare type TEvent = {
4051
4110
  };
4052
4111
 
4053
4112
  export declare type TFilter = {
4113
+ kind?: FilterKind;
4054
4114
  type?: 'single' | 'multiple';
4055
4115
  uiType?: 'radio' | 'dropdown' | 'tabs';
4056
4116
  dateSelectionMode?: DateSelectionMode;
@@ -4481,6 +4541,20 @@ export declare type TokenSecurityPolicy = {
4481
4541
  };
4482
4542
  };
4483
4543
 
4544
+ /**
4545
+ * Per-column contribution to the table-level totals row (`<tfoot>`).
4546
+ * Additive and optional — omitting it keeps the cell empty in the footer,
4547
+ * matching existing behavior when a totals row is not needed.
4548
+ *
4549
+ * - 'sum' → aggregate the column across the full dataset
4550
+ * - 'avg' → arithmetic mean across the full dataset
4551
+ * - 'count' → non-null count across the full dataset
4552
+ * - 'label' → render `totalsLabel` (or 'Total') as static text — typically
4553
+ * on the first column so the footer reads as a labeled row
4554
+ * - 'none' → blank cell in the footer
4555
+ */
4556
+ declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
4557
+
4484
4558
  /** Point style options supported by Chart.js */
4485
4559
  export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
4486
4560
 
@@ -4654,7 +4728,7 @@ export declare function useAddNewFrame(): {
4654
4728
  handleAddNewFrame: (options?: {
4655
4729
  openVisualEditor?: boolean;
4656
4730
  sheetId?: string;
4657
- }) => TFrame | undefined;
4731
+ }) => Promise<TFrame | undefined>;
4658
4732
  canAddFrame: boolean;
4659
4733
  };
4660
4734
 
@@ -5100,6 +5174,7 @@ export declare function useCard(cardId: string): {
5100
5174
  queryKey: string[];
5101
5175
  pagination: PaginationMetadata | undefined;
5102
5176
  comparisonMetadata: ComparisonMetadataMap | undefined;
5177
+ resolvedPrimaryDateField: ResolvedPrimaryDateField | undefined;
5103
5178
  };
5104
5179
 
5105
5180
  export declare const useCardAlertMap: () => Map<string, string[]>;
@@ -259,6 +259,12 @@ declare interface ColumnSettings {
259
259
  maxWidth?: number;
260
260
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
261
261
  textWrap: 'wrap' | 'nowrap';
262
+ /**
263
+ * Totals-row behavior for this column. Undefined = 'none'. The footer
264
+ * renders only when at least one visible column has a non-'none' behavior.
265
+ */
266
+ totalsBehavior?: TotalsBehavior;
267
+ totalsLabel?: string;
262
268
  numberFormat: {
263
269
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
264
270
  currency: string;
@@ -271,6 +277,14 @@ declare interface ColumnSettings {
271
277
  dataBarColor: string;
272
278
  dataBarMinValue?: number;
273
279
  dataBarMaxValue?: number;
280
+ /**
281
+ * When true, render the cell bg with a heatmap intensity tint scaled
282
+ * across the column's value range. Composes with the existing text
283
+ * color/color-range logic (tint is bg only). `showDataBar` takes
284
+ * precedence when both are set — per the canonical design, a cell is
285
+ * either a data-bar or a heatmap, never both.
286
+ */
287
+ showHeatmap?: boolean;
274
288
  };
275
289
  dateFormat: {
276
290
  format: string;
@@ -755,6 +769,8 @@ declare interface FilterGroup {
755
769
  groups: FilterGroup[];
756
770
  }
757
771
 
772
+ declare type FilterKind = 'field' | 'global-date';
773
+
758
774
  /**
759
775
  * Filter layout settings for controlling how dashboard filters are displayed
760
776
  */
@@ -1202,6 +1218,14 @@ declare type StyleProps = {
1202
1218
  };
1203
1219
  };
1204
1220
 
1221
+ /**
1222
+ * Row rhythm for the whole table. Authors pick one per card; undefined
1223
+ * falls back to 'compact' (the canonical default — dense scanning, matches
1224
+ * the Linear-style spec). Drives row padding, cell font size, and header
1225
+ * font size via a shared density spec in DataTable.
1226
+ */
1227
+ declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
1228
+
1205
1229
  declare type TablePreferences = {
1206
1230
  columnSettingsMap?: ColumnSettingsMap;
1207
1231
  selectColumnVisible?: boolean;
@@ -1210,6 +1234,7 @@ declare type TablePreferences = {
1210
1234
  pageSize?: number;
1211
1235
  enableDevModePagination?: boolean;
1212
1236
  forceClientPagination?: boolean;
1237
+ density?: TableDensity;
1213
1238
  };
1214
1239
 
1215
1240
  /**
@@ -1704,6 +1729,7 @@ declare type TDynamicVisualIntent = {
1704
1729
  };
1705
1730
 
1706
1731
  declare type TFilter = {
1732
+ kind?: FilterKind;
1707
1733
  type?: 'single' | 'multiple';
1708
1734
  uiType?: 'radio' | 'dropdown' | 'tabs';
1709
1735
  dateSelectionMode?: DateSelectionMode;
@@ -1888,6 +1914,20 @@ declare type TLegendOptions = {
1888
1914
  /** Line dash style options */
1889
1915
  declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
1890
1916
 
1917
+ /**
1918
+ * Per-column contribution to the table-level totals row (`<tfoot>`).
1919
+ * Additive and optional — omitting it keeps the cell empty in the footer,
1920
+ * matching existing behavior when a totals row is not needed.
1921
+ *
1922
+ * - 'sum' → aggregate the column across the full dataset
1923
+ * - 'avg' → arithmetic mean across the full dataset
1924
+ * - 'count' → non-null count across the full dataset
1925
+ * - 'label' → render `totalsLabel` (or 'Total') as static text — typically
1926
+ * on the first column so the footer reads as a labeled row
1927
+ * - 'none' → blank cell in the footer
1928
+ */
1929
+ declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
1930
+
1891
1931
  /** Point style options supported by Chart.js */
1892
1932
  declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
1893
1933
 
@@ -279,6 +279,12 @@ declare interface ColumnSettings {
279
279
  maxWidth?: number;
280
280
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
281
281
  textWrap: 'wrap' | 'nowrap';
282
+ /**
283
+ * Totals-row behavior for this column. Undefined = 'none'. The footer
284
+ * renders only when at least one visible column has a non-'none' behavior.
285
+ */
286
+ totalsBehavior?: TotalsBehavior;
287
+ totalsLabel?: string;
282
288
  numberFormat: {
283
289
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
284
290
  currency: string;
@@ -291,6 +297,14 @@ declare interface ColumnSettings {
291
297
  dataBarColor: string;
292
298
  dataBarMinValue?: number;
293
299
  dataBarMaxValue?: number;
300
+ /**
301
+ * When true, render the cell bg with a heatmap intensity tint scaled
302
+ * across the column's value range. Composes with the existing text
303
+ * color/color-range logic (tint is bg only). `showDataBar` takes
304
+ * precedence when both are set — per the canonical design, a cell is
305
+ * either a data-bar or a heatmap, never both.
306
+ */
307
+ showHeatmap?: boolean;
294
308
  };
295
309
  dateFormat: {
296
310
  format: string;
@@ -895,6 +909,8 @@ declare interface FilterGroup {
895
909
  groups: FilterGroup[];
896
910
  }
897
911
 
912
+ declare type FilterKind = 'field' | 'global-date';
913
+
898
914
  /**
899
915
  * Filter layout settings for controlling how dashboard filters are displayed
900
916
  */
@@ -984,6 +1000,7 @@ export declare type GetDashboardResponse = {
984
1000
  filterValues?: TFilterValue[];
985
1001
  defaultLensId?: string;
986
1002
  assistantProfileId?: string;
1003
+ semanticExecutionPayload: SemanticExecutionPayload;
987
1004
  };
988
1005
 
989
1006
  export declare type GetPluginsResponse = {
@@ -1306,10 +1323,34 @@ declare type RelativeDateFilter = {
1306
1323
  to: number;
1307
1324
  };
1308
1325
 
1326
+ declare type ResolvedPrimaryDateField = {
1327
+ sourceDataset: string;
1328
+ sourceField: string;
1329
+ name: string;
1330
+ qualifiedFieldName: string;
1331
+ qualifiedEntityName?: string;
1332
+ entityId: string;
1333
+ entityName: string;
1334
+ entityType: string;
1335
+ dataType: string;
1336
+ dateFormat?: string;
1337
+ customFormat?: string;
1338
+ defaultGranularity?: TimeGranularity;
1339
+ supportedGranularities?: TimeGranularity[];
1340
+ } | null;
1341
+
1309
1342
  declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
1310
1343
 
1311
1344
  export declare type SelectionState = Record<Level, string | null>;
1312
1345
 
1346
+ declare type SemanticExecutionPayload = {
1347
+ domainsById: Record<string, {
1348
+ datasetsByName: Record<string, {
1349
+ primaryDateField: ResolvedPrimaryDateField;
1350
+ }>;
1351
+ }>;
1352
+ };
1353
+
1313
1354
  declare interface SortByField extends Field {
1314
1355
  role: 'sortby';
1315
1356
  direction: 'asc' | 'desc';
@@ -1382,6 +1423,14 @@ export declare type StyleProps = {
1382
1423
 
1383
1424
  export declare function Surfboard({ showControls, showFooter, ...rest }: DashboardPlusProps): JSX.Element;
1384
1425
 
1426
+ /**
1427
+ * Row rhythm for the whole table. Authors pick one per card; undefined
1428
+ * falls back to 'compact' (the canonical default — dense scanning, matches
1429
+ * the Linear-style spec). Drives row padding, cell font size, and header
1430
+ * font size via a shared density spec in DataTable.
1431
+ */
1432
+ declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
1433
+
1385
1434
  declare type TablePreferences = {
1386
1435
  columnSettingsMap?: ColumnSettingsMap;
1387
1436
  selectColumnVisible?: boolean;
@@ -1390,6 +1439,7 @@ declare type TablePreferences = {
1390
1439
  pageSize?: number;
1391
1440
  enableDevModePagination?: boolean;
1392
1441
  forceClientPagination?: boolean;
1442
+ density?: TableDensity;
1393
1443
  };
1394
1444
 
1395
1445
  /**
@@ -1918,6 +1968,7 @@ export declare type TEvent = {
1918
1968
  };
1919
1969
 
1920
1970
  declare type TFilter = {
1971
+ kind?: FilterKind;
1921
1972
  type?: 'single' | 'multiple';
1922
1973
  uiType?: 'radio' | 'dropdown' | 'tabs';
1923
1974
  dateSelectionMode?: DateSelectionMode;
@@ -2113,6 +2164,20 @@ export declare type TLens = {
2113
2164
  /** Line dash style options */
2114
2165
  export declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
2115
2166
 
2167
+ /**
2168
+ * Per-column contribution to the table-level totals row (`<tfoot>`).
2169
+ * Additive and optional — omitting it keeps the cell empty in the footer,
2170
+ * matching existing behavior when a totals row is not needed.
2171
+ *
2172
+ * - 'sum' → aggregate the column across the full dataset
2173
+ * - 'avg' → arithmetic mean across the full dataset
2174
+ * - 'count' → non-null count across the full dataset
2175
+ * - 'label' → render `totalsLabel` (or 'Total') as static text — typically
2176
+ * on the first column so the footer reads as a labeled row
2177
+ * - 'none' → blank cell in the footer
2178
+ */
2179
+ declare type TotalsBehavior = 'sum' | 'avg' | 'count' | 'label' | 'none';
2180
+
2116
2181
  /** Point style options supported by Chart.js */
2117
2182
  export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle';
2118
2183