react-semaphor 0.1.309 → 0.1.311

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 (51) hide show
  1. package/dist/brand-studio/index.cjs +1 -1
  2. package/dist/brand-studio/index.js +4 -4
  3. package/dist/chunks/{braces-DEq8EJtw.js → braces-CSECDaJQ.js} +1 -1
  4. package/dist/chunks/{braces-BHDm9arh.js → braces-DwaAt32i.js} +1 -1
  5. package/dist/chunks/{chevrons-up-down-DDEY9beZ.js → chevrons-up-down-3vBEM7eI.js} +1 -1
  6. package/dist/chunks/{chevrons-up-down-Cbtggnqv.js → chevrons-up-down-DJhB8JNW.js} +1 -1
  7. package/dist/chunks/common-types-4bjoIgvm.js +75 -0
  8. package/dist/chunks/common-types-C73-Ud1-.js +1 -0
  9. package/dist/chunks/{dashboard-controls-Cp41403T.js → dashboard-controls-CeKjYa7s.js} +83 -83
  10. package/dist/chunks/{dashboard-controls-C_vjMmt2.js → dashboard-controls-Ds8Hmo3Q.js} +1 -1
  11. package/dist/chunks/{dashboard-filter-controls-button-tfjDO4D4.js → dashboard-filter-controls-button-CWL2jJcu.js} +1 -1
  12. package/dist/chunks/{dashboard-filter-controls-button-DFKZjkD4.js → dashboard-filter-controls-button-Tk5lhwVV.js} +4 -4
  13. package/dist/chunks/{dashboard-json-QR7WNDuO.js → dashboard-json-B_rQbUUz.js} +1 -1
  14. package/dist/chunks/{dashboard-json-Cc8S_uIr.js → dashboard-json-GL_IXTCk.js} +2 -2
  15. package/dist/chunks/{dashboard-summary-settings-dialog-qH6FOt7O.js → dashboard-summary-settings-dialog-CcszMc1A.js} +3 -3
  16. package/dist/chunks/{dashboard-summary-settings-dialog-CxXxzyRP.js → dashboard-summary-settings-dialog-DgqFlYl9.js} +1 -1
  17. package/dist/chunks/edit-dashboard-visual-Bu2rxJjm.js +183 -0
  18. package/dist/chunks/{edit-dashboard-visual-_BZQa5yI.js → edit-dashboard-visual-nGSsSTYx.js} +7057 -6964
  19. package/dist/chunks/{index-CSgoL0P9.js → index-9v7DehZd.js} +33036 -32819
  20. package/dist/chunks/{index-AerZtbg0.js → index-CGCrm-dj.js} +220 -220
  21. package/dist/chunks/{palette-CteErylX.js → palette-C5o9bLo6.js} +1 -1
  22. package/dist/chunks/{palette-CNKSAIrt.js → palette-CI2J34i6.js} +1 -1
  23. package/dist/chunks/{resource-management-panel-DbYkAk1I.js → resource-management-panel-CNmVHnCz.js} +1 -1
  24. package/dist/chunks/{resource-management-panel-CcFT7lpL.js → resource-management-panel-DTg9_DI9.js} +3 -3
  25. package/dist/chunks/{save-BVVnWGeb.js → save-CMv91_Hz.js} +1 -1
  26. package/dist/chunks/{save-B1-nDZwS.js → save-Cpz6BWx9.js} +1 -1
  27. package/dist/chunks/{switch-BZn7R_Cp.js → switch-Dhoqe3OE.js} +3534 -3494
  28. package/dist/chunks/switch-otrSiyjH.js +168 -0
  29. package/dist/chunks/{use-create-flow-overlay-state-CczjbVZY.js → use-create-flow-overlay-state-C8WGfC8T.js} +4 -4
  30. package/dist/chunks/{use-create-flow-overlay-state-DImkf832.js → use-create-flow-overlay-state-DiH6M1Cd.js} +1 -1
  31. package/dist/chunks/{use-visual-utils-BdHwrbtr.js → use-visual-utils-BeJ73yvV.js} +1 -1
  32. package/dist/chunks/{use-visual-utils-DczvWVbd.js → use-visual-utils-RkPa2gqQ.js} +2 -2
  33. package/dist/dashboard/index.cjs +1 -1
  34. package/dist/dashboard/index.js +2 -2
  35. package/dist/index.cjs +1 -1
  36. package/dist/index.js +107 -104
  37. package/dist/style.css +1 -1
  38. package/dist/surfboard/index.cjs +1 -1
  39. package/dist/surfboard/index.js +3 -3
  40. package/dist/types/dashboard.d.ts +22 -7
  41. package/dist/types/index.cjs +1 -1
  42. package/dist/types/index.js +16 -7
  43. package/dist/types/main.d.ts +51 -7
  44. package/dist/types/shared.d.ts +22 -7
  45. package/dist/types/surfboard.d.ts +22 -7
  46. package/dist/types/types.d.ts +314 -58
  47. package/package.json +6 -1
  48. package/dist/chunks/common-types-C6cAQgyh.js +0 -9
  49. package/dist/chunks/common-types-nBuCd3u2.js +0 -1
  50. package/dist/chunks/edit-dashboard-visual-J7cHkCD6.js +0 -183
  51. package/dist/chunks/switch-BG4RWnrq.js +0 -168
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-AerZtbg0.js"),e=require("../chunks/common-types-nBuCd3u2.js"),r=require("../chunks/dashboard-summary-settings-dialog-CxXxzyRP.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-CGCrm-dj.js"),e=require("../chunks/common-types-C73-Ud1-.js"),r=require("../chunks/dashboard-summary-settings-dialog-DgqFlYl9.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-CSgoL0P9.js";
2
- import { C as s, E as C } from "../chunks/common-types-C6cAQgyh.js";
3
- import { C as E, D as f } from "../chunks/dashboard-summary-settings-dialog-qH6FOt7O.js";
1
+ import { a as o } from "../chunks/index-9v7DehZd.js";
2
+ import { C as s, E as C } from "../chunks/common-types-4bjoIgvm.js";
3
+ import { C as E, D as f } from "../chunks/dashboard-summary-settings-dialog-CcszMc1A.js";
4
4
  export {
5
5
  s as CONTROL_CARD_DEFAULT_VALUE,
6
6
  E as CalendarPreferencesDialog,
@@ -351,7 +351,7 @@ declare interface ColumnSettings {
351
351
  minWidth?: number;
352
352
  maxWidth?: number;
353
353
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
354
- textWrap: 'wrap' | 'nowrap';
354
+ textWrap: ColumnTextWrap;
355
355
  /** Deprecated/inert. Totals are controlled by tablePrefs.tableStyle.totals. */
356
356
  totalsBehavior?: TotalsBehavior;
357
357
  totalsLabel?: string;
@@ -390,6 +390,8 @@ declare interface ColumnSettings {
390
390
 
391
391
  declare type ColumnSettingsMap = Record<string, ColumnSettings>;
392
392
 
393
+ declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
394
+
393
395
  declare type ColumnType = 'string' | 'number' | 'date';
394
396
 
395
397
  declare type ComparisonOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
@@ -810,12 +812,12 @@ declare interface DataModelEntityReference extends DatabaseEntityReference {
810
812
  declare interface DatasetEntityReference extends DatabaseEntityReference {
811
813
  type: 'dataset';
812
814
  datasetType: 'physical' | 'virtual';
813
- datamodelId: string;
814
- sql: string;
815
+ datamodelId?: string | null;
816
+ sql?: string | null;
815
817
  id: string;
816
818
  domainId: string;
817
819
  label: string;
818
- description: string;
820
+ description?: string;
819
821
  }
820
822
 
821
823
  declare interface DataSource {
@@ -1264,6 +1266,7 @@ declare interface Field {
1264
1266
  * If not provided, should be auto-generated from label or name.
1265
1267
  */
1266
1268
  alias?: string;
1269
+ sourceField?: string;
1267
1270
  qualifiedFieldName: string;
1268
1271
  dataType: string;
1269
1272
  description?: string;
@@ -1281,7 +1284,7 @@ declare interface Field {
1281
1284
  fieldScope?: FieldScope;
1282
1285
  }
1283
1286
 
1284
- declare type FieldScope = 'card' | 'dashboard' | 'domain';
1287
+ declare type FieldScope = 'card' | 'sheet' | 'dashboard' | 'domain';
1285
1288
 
1286
1289
  declare type FileAttachment = {
1287
1290
  id: string;
@@ -1597,6 +1600,9 @@ declare interface Join {
1597
1600
  joinType: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
1598
1601
  joinKeyGroups: JoinKeyGroup[];
1599
1602
  sequence: number;
1603
+ relationshipId?: string;
1604
+ relationshipName?: string;
1605
+ relationshipCardinality?: 'one_to_one' | 'one_to_many' | 'many_to_one' | 'many_to_many';
1600
1606
  }
1601
1607
 
1602
1608
  declare interface JoinKey {
@@ -1687,6 +1693,12 @@ declare interface MetricField extends Field {
1687
1693
  * Both are generated together from the same dialog inputs, preventing drift.
1688
1694
  */
1689
1695
  calculatedFormula?: CalculatedFieldFormula;
1696
+ /**
1697
+ * Indicates the metric expression must be evaluated after row-level filtering,
1698
+ * either because it contains an aggregate function directly or depends on a
1699
+ * pre-aggregated metric input.
1700
+ */
1701
+ isPreAggregated?: boolean;
1690
1702
  comparisonType?: 'none' | 'previous_period' | 'same_period_last_year' | 'start_vs_end' | 'target';
1691
1703
  comparisonDisplay?: 'column' | 'inline' | 'hover';
1692
1704
  targetValue?: number;
@@ -1716,7 +1728,7 @@ declare type OldFilterValue = string | number | null | (string | number)[] | Ran
1716
1728
 
1717
1729
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
1718
1730
 
1719
- declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
1731
+ declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'like' | 'not like' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
1720
1732
 
1721
1733
  declare type OptionsMap = {
1722
1734
  number: NumberOptions;
@@ -1861,7 +1873,9 @@ declare type ResolvedPrimaryDateField = {
1861
1873
  supportedGranularities?: TimeGranularity[];
1862
1874
  } | null;
1863
1875
 
1864
- declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
1876
+ declare type SelectedEntities = SelectedEntity[];
1877
+
1878
+ declare type SelectedEntity = DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference;
1865
1879
 
1866
1880
  export declare type SelectionState = Record<Level, string | null>;
1867
1881
 
@@ -2461,6 +2475,7 @@ export declare type TDashboard = {
2461
2475
  };
2462
2476
  description?: string;
2463
2477
  sheets?: TSheet[];
2478
+ calculatedFields?: Field[];
2464
2479
  style?: TStyle;
2465
2480
  filters?: TFilter[];
2466
2481
  customCards?: CustomCard[];
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("../chunks/common-types-nBuCd3u2.js"),T={mode:"all"},A={tz:"UTC",weekStart:1,anchor:"now"};exports.CONTROL_CARD_DEFAULT_VALUE=E.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=E.EMPTY_SELECTION;exports.DEFAULT_CALENDAR_CONTEXT=A;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/common-types-C73-Ud1-.js"),a={mode:"all"},E={tz:"UTC",weekStart:1,anchor:"now"};exports.CALCULATED_FIELD_ENTITY_MARKER=e.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=e.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.PivotMarkerEnum=e.PivotMarkerEnum;exports.getFieldRuntimeColumnName=e.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=e.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=e.hasCalculatedFormulaInputs;exports.isCalculatedDimension=e.isCalculatedDimension;exports.isCalculatedField=e.isCalculatedField;exports.isCalculatedMetric=e.isCalculatedMetric;exports.DEFAULT_CALENDAR_CONTEXT=E;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=a;
@@ -1,15 +1,24 @@
1
- import { C as _, E as o } from "../chunks/common-types-C6cAQgyh.js";
2
- const E = {
1
+ import { a as C, C as l, D as t, E as A, P as T, g as _, d as i, h as o, b as r, c as D, i as L } from "../chunks/common-types-4bjoIgvm.js";
2
+ const a = {
3
3
  mode: "all"
4
- }, A = {
4
+ }, e = {
5
5
  tz: "UTC",
6
6
  weekStart: 1,
7
7
  // Monday (ISO standard)
8
8
  anchor: "now"
9
9
  };
10
10
  export {
11
- _ as CONTROL_CARD_DEFAULT_VALUE,
12
- A as DEFAULT_CALENDAR_CONTEXT,
13
- E as DEFAULT_SEMANTIC_DOMAIN_ACCESS,
14
- o as EMPTY_SELECTION
11
+ C as CALCULATED_FIELD_ENTITY_MARKER,
12
+ l as CONTROL_CARD_DEFAULT_VALUE,
13
+ t as DATE_FORMAT_VALUES,
14
+ e as DEFAULT_CALENDAR_CONTEXT,
15
+ a as DEFAULT_SEMANTIC_DOMAIN_ACCESS,
16
+ A as EMPTY_SELECTION,
17
+ T as PivotMarkerEnum,
18
+ _ as getFieldRuntimeColumnName,
19
+ i as hasCalculatedFieldMarker,
20
+ o as hasCalculatedFormulaInputs,
21
+ r as isCalculatedDimension,
22
+ D as isCalculatedField,
23
+ L as isCalculatedMetric
15
24
  };
@@ -139,6 +139,7 @@ declare type Actions_2 = {
139
139
  semanticExecutionPayload?: SemanticExecutionPayload;
140
140
  }) => void;
141
141
  updateSheetCalculatedFields: (sheetId: string, calculatedFields: Field[]) => void;
142
+ updateDashboardCalculatedFields: (calculatedFields: Field[]) => void;
142
143
  setVisualEditPendingFrameRewrites: (sheetId: string, frames: TFrame[]) => void;
143
144
  setVisualEditPendingFilterRewrites: (sheetId: string, filters: TFilter[]) => void;
144
145
  clearVisualEditPendingFrameRewrites: (sheetId?: string) => void;
@@ -1176,7 +1177,7 @@ declare interface ColumnSettings {
1176
1177
  minWidth?: number;
1177
1178
  maxWidth?: number;
1178
1179
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
1179
- textWrap: 'wrap' | 'nowrap';
1180
+ textWrap: ColumnTextWrap;
1180
1181
  /** Deprecated/inert. Totals are controlled by tablePrefs.tableStyle.totals. */
1181
1182
  totalsBehavior?: TotalsBehavior;
1182
1183
  totalsLabel?: string;
@@ -1215,6 +1216,8 @@ declare interface ColumnSettings {
1215
1216
 
1216
1217
  declare type ColumnSettingsMap = Record<string, ColumnSettings>;
1217
1218
 
1219
+ declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
1220
+
1218
1221
  export declare type ColumnType = 'string' | 'number' | 'date';
1219
1222
 
1220
1223
  export declare function Combobox({ name, items, value, onChange, isLoading, isError, refetch, className, icon, showNone, }: {
@@ -1836,6 +1839,12 @@ export declare type DashboardStore = {
1836
1839
  * These stay draft-only until the editor Save path applies the current frame.
1837
1840
  */
1838
1841
  visualEditPendingFilterRewrites: Record<string, TFilter[]>;
1842
+ /**
1843
+ * Pending dashboard-scoped calculated-field rewrites produced while visual
1844
+ * editing. These stay draft-only until the editor Save path applies the
1845
+ * current frame.
1846
+ */
1847
+ visualEditPendingDashboardCalculatedFields?: Field[];
1839
1848
  isDashboardEditing: boolean;
1840
1849
  isVisualEditing: boolean;
1841
1850
  showContext: boolean;
@@ -1913,12 +1922,12 @@ export declare interface DataModelEntityReference extends DatabaseEntityReferenc
1913
1922
  export declare interface DatasetEntityReference extends DatabaseEntityReference {
1914
1923
  type: 'dataset';
1915
1924
  datasetType: 'physical' | 'virtual';
1916
- datamodelId: string;
1917
- sql: string;
1925
+ datamodelId?: string | null;
1926
+ sql?: string | null;
1918
1927
  id: string;
1919
1928
  domainId: string;
1920
1929
  label: string;
1921
- description: string;
1930
+ description?: string;
1922
1931
  }
1923
1932
 
1924
1933
  export declare interface DataSource {
@@ -2867,6 +2876,7 @@ export declare interface Field {
2867
2876
  * If not provided, should be auto-generated from label or name.
2868
2877
  */
2869
2878
  alias?: string;
2879
+ sourceField?: string;
2870
2880
  qualifiedFieldName: string;
2871
2881
  dataType: string;
2872
2882
  description?: string;
@@ -2884,7 +2894,7 @@ export declare interface Field {
2884
2894
  fieldScope?: FieldScope;
2885
2895
  }
2886
2896
 
2887
- export declare type FieldScope = 'card' | 'dashboard' | 'domain';
2897
+ export declare type FieldScope = 'card' | 'sheet' | 'dashboard' | 'domain';
2888
2898
 
2889
2899
  declare type FileAttachment = {
2890
2900
  id: string;
@@ -3159,6 +3169,8 @@ export declare function getExports(apiServiceUrl: string, token: string, options
3159
3169
  */
3160
3170
  export declare function getExportStatus(apiServiceUrl: string, token: string, exportId: string): Promise<ExportJobStatus>;
3161
3171
 
3172
+ export declare function getFieldRuntimeColumnName(field: Pick<Field, 'name' | 'sourceField'> | null | undefined): string;
3173
+
3162
3174
  export declare function getFilterValueType(filter: TFilter): "string" | "number" | "date" | "boolean";
3163
3175
 
3164
3176
  export declare function getFormattedTableNameForQuery({ schemaName, tableName, modelName, databaseName, capabilities, connectionType, }: {
@@ -3207,6 +3219,10 @@ export declare interface GroupByField extends Field {
3207
3219
  calculatedFormula?: CalculatedFieldFormula;
3208
3220
  }
3209
3221
 
3222
+ export declare function hasCalculatedFieldMarker(field: Pick<Field, 'entityName' | 'entityId'> | null | undefined): boolean;
3223
+
3224
+ export declare function hasCalculatedFormulaInputs(field: Field | null | undefined): boolean;
3225
+
3210
3226
  export declare type HtmlOptions = {
3211
3227
  html: string;
3212
3228
  };
@@ -3418,6 +3434,9 @@ export declare interface Join {
3418
3434
  joinType: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
3419
3435
  joinKeyGroups: JoinKeyGroup[];
3420
3436
  sequence: number;
3437
+ relationshipId?: string;
3438
+ relationshipName?: string;
3439
+ relationshipCardinality?: 'one_to_one' | 'one_to_many' | 'many_to_one' | 'many_to_many';
3421
3440
  }
3422
3441
 
3423
3442
  export declare interface JoinKey {
@@ -3532,6 +3551,12 @@ export declare interface MetricField extends Field {
3532
3551
  * Both are generated together from the same dialog inputs, preventing drift.
3533
3552
  */
3534
3553
  calculatedFormula?: CalculatedFieldFormula;
3554
+ /**
3555
+ * Indicates the metric expression must be evaluated after row-level filtering,
3556
+ * either because it contains an aggregate function directly or depends on a
3557
+ * pre-aggregated metric input.
3558
+ */
3559
+ isPreAggregated?: boolean;
3535
3560
  comparisonType?: 'none' | 'previous_period' | 'same_period_last_year' | 'start_vs_end' | 'target';
3536
3561
  comparisonDisplay?: 'column' | 'inline' | 'hover';
3537
3562
  targetValue?: number;
@@ -3620,7 +3645,7 @@ export declare type OldFilterValue = string | number | null | (string | number)[
3620
3645
 
3621
3646
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
3622
3647
 
3623
- export declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
3648
+ export declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'like' | 'not like' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
3624
3649
 
3625
3650
  declare type OptionsMap = {
3626
3651
  number: NumberOptions;
@@ -3667,6 +3692,20 @@ export declare interface PivotByField extends Field {
3667
3692
  role: 'pivotby';
3668
3693
  }
3669
3694
 
3695
+ export declare interface PivotColumnSchema {
3696
+ alias: string;
3697
+ metricId: string;
3698
+ metricName: string;
3699
+ metricLabel?: string;
3700
+ pivotValues: string[];
3701
+ pivotFields?: string[];
3702
+ displayLabel?: string;
3703
+ isPivotColumn?: boolean;
3704
+ isMetricColumn?: boolean;
3705
+ isGroupByColumn?: boolean;
3706
+ aggregate?: AggregateFunction;
3707
+ }
3708
+
3670
3709
  /**
3671
3710
  const config: CardConfig = {
3672
3711
  groupByColumns: [
@@ -3753,8 +3792,10 @@ export declare interface QueryExecutionResponse {
3753
3792
  pagination?: PaginationMetadata;
3754
3793
  subtotalColumns?: string[];
3755
3794
  columnSubtotalMeta?: any;
3795
+ columnMetadata?: Record<string, any>;
3756
3796
  columnKeyMap?: QueryColumnKeyMap;
3757
3797
  tableTotalsByColumnId?: Record<string, string | number | null>;
3798
+ documentTableTotalsBaseSql?: string;
3758
3799
  metadata?: any;
3759
3800
  }
3760
3801
 
@@ -3925,7 +3966,9 @@ export declare function ScheduleDashboard({ triggerButtonClassName, variant, }:
3925
3966
 
3926
3967
  export declare type SchemaItem = DropdownItem;
3927
3968
 
3928
- export declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
3969
+ export declare type SelectedEntities = SelectedEntity[];
3970
+
3971
+ export declare type SelectedEntity = DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference;
3929
3972
 
3930
3973
  export declare type SelectionState = Record<Level, string | null>;
3931
3974
 
@@ -4718,6 +4761,7 @@ export declare type TDashboard = {
4718
4761
  };
4719
4762
  description?: string;
4720
4763
  sheets?: TSheet[];
4764
+ calculatedFields?: Field[];
4721
4765
  style?: TStyle;
4722
4766
  filters?: TFilter[];
4723
4767
  customCards?: CustomCard[];
@@ -258,7 +258,7 @@ declare interface ColumnSettings {
258
258
  minWidth?: number;
259
259
  maxWidth?: number;
260
260
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
261
- textWrap: 'wrap' | 'nowrap';
261
+ textWrap: ColumnTextWrap;
262
262
  /** Deprecated/inert. Totals are controlled by tablePrefs.tableStyle.totals. */
263
263
  totalsBehavior?: TotalsBehavior;
264
264
  totalsLabel?: string;
@@ -297,6 +297,8 @@ declare interface ColumnSettings {
297
297
 
298
298
  declare type ColumnSettingsMap = Record<string, ColumnSettings>;
299
299
 
300
+ declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
301
+
300
302
  declare type ColumnType = 'string' | 'number' | 'date';
301
303
 
302
304
  declare type ComparisonOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
@@ -594,12 +596,12 @@ declare interface DataModelEntityReference extends DatabaseEntityReference {
594
596
  declare interface DatasetEntityReference extends DatabaseEntityReference {
595
597
  type: 'dataset';
596
598
  datasetType: 'physical' | 'virtual';
597
- datamodelId: string;
598
- sql: string;
599
+ datamodelId?: string | null;
600
+ sql?: string | null;
599
601
  id: string;
600
602
  domainId: string;
601
603
  label: string;
602
- description: string;
604
+ description?: string;
603
605
  }
604
606
 
605
607
  declare interface DataSource {
@@ -1024,6 +1026,7 @@ declare interface Field {
1024
1026
  * If not provided, should be auto-generated from label or name.
1025
1027
  */
1026
1028
  alias?: string;
1029
+ sourceField?: string;
1027
1030
  qualifiedFieldName: string;
1028
1031
  dataType: string;
1029
1032
  description?: string;
@@ -1041,7 +1044,7 @@ declare interface Field {
1041
1044
  fieldScope?: FieldScope;
1042
1045
  }
1043
1046
 
1044
- declare type FieldScope = 'card' | 'dashboard' | 'domain';
1047
+ declare type FieldScope = 'card' | 'sheet' | 'dashboard' | 'domain';
1045
1048
 
1046
1049
  declare type FileAttachment = {
1047
1050
  id: string;
@@ -1335,6 +1338,9 @@ declare interface Join {
1335
1338
  joinType: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
1336
1339
  joinKeyGroups: JoinKeyGroup[];
1337
1340
  sequence: number;
1341
+ relationshipId?: string;
1342
+ relationshipName?: string;
1343
+ relationshipCardinality?: 'one_to_one' | 'one_to_many' | 'many_to_one' | 'many_to_many';
1338
1344
  }
1339
1345
 
1340
1346
  declare interface JoinKey {
@@ -1413,6 +1419,12 @@ declare interface MetricField extends Field {
1413
1419
  * Both are generated together from the same dialog inputs, preventing drift.
1414
1420
  */
1415
1421
  calculatedFormula?: CalculatedFieldFormula;
1422
+ /**
1423
+ * Indicates the metric expression must be evaluated after row-level filtering,
1424
+ * either because it contains an aggregate function directly or depends on a
1425
+ * pre-aggregated metric input.
1426
+ */
1427
+ isPreAggregated?: boolean;
1416
1428
  comparisonType?: 'none' | 'previous_period' | 'same_period_last_year' | 'start_vs_end' | 'target';
1417
1429
  comparisonDisplay?: 'column' | 'inline' | 'hover';
1418
1430
  targetValue?: number;
@@ -1450,7 +1462,7 @@ declare type OldFilterValue = string | number | null | (string | number)[] | Ran
1450
1462
 
1451
1463
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
1452
1464
 
1453
- declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
1465
+ declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'like' | 'not like' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
1454
1466
 
1455
1467
  declare type OptionsMap = {
1456
1468
  number: NumberOptions;
@@ -1522,7 +1534,9 @@ declare type RelativeDateFilter = {
1522
1534
  to: number;
1523
1535
  };
1524
1536
 
1525
- declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
1537
+ declare type SelectedEntities = SelectedEntity[];
1538
+
1539
+ declare type SelectedEntity = DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference;
1526
1540
 
1527
1541
  /**
1528
1542
  * Stable serializer for dashboard dirty checks.
@@ -2058,6 +2072,7 @@ declare type TDashboard = {
2058
2072
  };
2059
2073
  description?: string;
2060
2074
  sheets?: TSheet[];
2075
+ calculatedFields?: Field[];
2061
2076
  style?: TStyle;
2062
2077
  filters?: TFilter[];
2063
2078
  customCards?: CustomCard[];
@@ -358,7 +358,7 @@ declare interface ColumnSettings {
358
358
  minWidth?: number;
359
359
  maxWidth?: number;
360
360
  textOverflow?: 'ellipsis' | 'wrap' | 'clip';
361
- textWrap: 'wrap' | 'nowrap';
361
+ textWrap: ColumnTextWrap;
362
362
  /** Deprecated/inert. Totals are controlled by tablePrefs.tableStyle.totals. */
363
363
  totalsBehavior?: TotalsBehavior;
364
364
  totalsLabel?: string;
@@ -397,6 +397,8 @@ declare interface ColumnSettings {
397
397
 
398
398
  declare type ColumnSettingsMap = Record<string, ColumnSettings>;
399
399
 
400
+ declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
401
+
400
402
  declare type ColumnType = 'string' | 'number' | 'date';
401
403
 
402
404
  declare type ComparisonOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
@@ -830,12 +832,12 @@ declare interface DataModelEntityReference extends DatabaseEntityReference {
830
832
  declare interface DatasetEntityReference extends DatabaseEntityReference {
831
833
  type: 'dataset';
832
834
  datasetType: 'physical' | 'virtual';
833
- datamodelId: string;
834
- sql: string;
835
+ datamodelId?: string | null;
836
+ sql?: string | null;
835
837
  id: string;
836
838
  domainId: string;
837
839
  label: string;
838
- description: string;
840
+ description?: string;
839
841
  }
840
842
 
841
843
  declare interface DataSource {
@@ -1284,6 +1286,7 @@ declare interface Field {
1284
1286
  * If not provided, should be auto-generated from label or name.
1285
1287
  */
1286
1288
  alias?: string;
1289
+ sourceField?: string;
1287
1290
  qualifiedFieldName: string;
1288
1291
  dataType: string;
1289
1292
  description?: string;
@@ -1301,7 +1304,7 @@ declare interface Field {
1301
1304
  fieldScope?: FieldScope;
1302
1305
  }
1303
1306
 
1304
- declare type FieldScope = 'card' | 'dashboard' | 'domain';
1307
+ declare type FieldScope = 'card' | 'sheet' | 'dashboard' | 'domain';
1305
1308
 
1306
1309
  declare type FileAttachment = {
1307
1310
  id: string;
@@ -1617,6 +1620,9 @@ declare interface Join {
1617
1620
  joinType: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
1618
1621
  joinKeyGroups: JoinKeyGroup[];
1619
1622
  sequence: number;
1623
+ relationshipId?: string;
1624
+ relationshipName?: string;
1625
+ relationshipCardinality?: 'one_to_one' | 'one_to_many' | 'many_to_one' | 'many_to_many';
1620
1626
  }
1621
1627
 
1622
1628
  declare interface JoinKey {
@@ -1707,6 +1713,12 @@ declare interface MetricField extends Field {
1707
1713
  * Both are generated together from the same dialog inputs, preventing drift.
1708
1714
  */
1709
1715
  calculatedFormula?: CalculatedFieldFormula;
1716
+ /**
1717
+ * Indicates the metric expression must be evaluated after row-level filtering,
1718
+ * either because it contains an aggregate function directly or depends on a
1719
+ * pre-aggregated metric input.
1720
+ */
1721
+ isPreAggregated?: boolean;
1710
1722
  comparisonType?: 'none' | 'previous_period' | 'same_period_last_year' | 'start_vs_end' | 'target';
1711
1723
  comparisonDisplay?: 'column' | 'inline' | 'hover';
1712
1724
  targetValue?: number;
@@ -1736,7 +1748,7 @@ declare type OldFilterValue = string | number | null | (string | number)[] | Ran
1736
1748
 
1737
1749
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
1738
1750
 
1739
- declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
1751
+ declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'like' | 'not like' | 'in' | 'not in' | 'between' | 'not between' | 'isNull' | 'isNotNull';
1740
1752
 
1741
1753
  declare type OptionsMap = {
1742
1754
  number: NumberOptions;
@@ -1881,7 +1893,9 @@ declare type ResolvedPrimaryDateField = {
1881
1893
  supportedGranularities?: TimeGranularity[];
1882
1894
  } | null;
1883
1895
 
1884
- declare type SelectedEntities = Array<DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference>;
1896
+ declare type SelectedEntities = SelectedEntity[];
1897
+
1898
+ declare type SelectedEntity = DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference;
1885
1899
 
1886
1900
  export declare type SelectionState = Record<Level, string | null>;
1887
1901
 
@@ -2483,6 +2497,7 @@ export declare type TDashboard = {
2483
2497
  };
2484
2498
  description?: string;
2485
2499
  sheets?: TSheet[];
2500
+ calculatedFields?: Field[];
2486
2501
  style?: TStyle;
2487
2502
  filters?: TFilter[];
2488
2503
  customCards?: CustomCard[];