react-semaphor 0.1.372 → 0.1.373

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 (53) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +1 -1
  3. package/dist/chunks/{calendar-preferences-dialog-Dn6o2r2Y.js → calendar-preferences-dialog-BCO0I6Q2.js} +1 -1
  4. package/dist/chunks/{calendar-preferences-dialog-ClBAkMmF.js → calendar-preferences-dialog-CAcqW83Q.js} +1 -1
  5. package/dist/chunks/{dashboard-briefing-launcher-BO-kXtEd.js → dashboard-briefing-launcher-CxozwqgX.js} +1 -1
  6. package/dist/chunks/{dashboard-briefing-launcher-D3Xfc_26.js → dashboard-briefing-launcher-DTp4KNI1.js} +104 -104
  7. package/dist/chunks/{dashboard-controls-B3sdy_Zx.js → dashboard-controls-Bc4E4Cky.js} +167 -167
  8. package/dist/chunks/{dashboard-controls-DcXMFgGR.js → dashboard-controls-Dkct7mpD.js} +1 -1
  9. package/dist/chunks/{dashboard-json-CFURS_OR.js → dashboard-json-BFB5jFmm.js} +1 -1
  10. package/dist/chunks/{dashboard-json-BWfkEy48.js → dashboard-json-BmCwILfI.js} +1 -1
  11. package/dist/chunks/{edit-dashboard-visual-BD2AJLiT.js → edit-dashboard-visual-BBlY9tKB.js} +37 -37
  12. package/dist/chunks/{edit-dashboard-visual-DjdhKiP2.js → edit-dashboard-visual-BXLuXKFc.js} +6592 -6565
  13. package/dist/chunks/{index-C0Qnfr_7.js → index-Clqr43Sr.js} +36742 -34869
  14. package/dist/chunks/index-D5Pp-5LR.js +1361 -0
  15. package/dist/chunks/{resource-management-panel-DytUMSGA.js → resource-management-panel-BbkbAlPo.js} +1 -1
  16. package/dist/chunks/{resource-management-panel-YvIfaphX.js → resource-management-panel-DJUr47Bb.js} +51 -51
  17. package/dist/chunks/{use-create-flow-overlay-state-CwIG1Ekp.js → use-create-flow-overlay-state-B4EAcL2v.js} +1 -1
  18. package/dist/chunks/{use-create-flow-overlay-state-BETXykC9.js → use-create-flow-overlay-state-DZI7VYBs.js} +35 -35
  19. package/dist/chunks/{use-visual-utils-Bk135OgA.js → use-visual-utils-Bl3ltNL9.js} +12 -12
  20. package/dist/chunks/{use-visual-utils-BzFjIykb.js → use-visual-utils-djsPEgF1.js} +1 -1
  21. package/dist/chunks/{validation-D4Zz6WPD.js → validation-1V7bWmYw.js} +1 -1
  22. package/dist/chunks/{validation-CQFpcSSP.js → validation-DlrTIf1N.js} +1 -1
  23. package/dist/chunks/{validators-CuKnUZFO.js → validators-CtNmgsvG.js} +409 -314
  24. package/dist/chunks/validators-jpoYhpHh.js +1 -0
  25. package/dist/dashboard/index.cjs +1 -1
  26. package/dist/dashboard/index.js +1 -1
  27. package/dist/dashboard-authoring/index.cjs +1 -1
  28. package/dist/dashboard-authoring/index.js +1 -1
  29. package/dist/data-app-builder/index.cjs +1 -1
  30. package/dist/data-app-builder/index.js +1 -1
  31. package/dist/data-app-sdk/index.cjs +1 -1
  32. package/dist/data-app-sdk/index.js +32 -32
  33. package/dist/data-app-sdk-validation/index.cjs +1 -1
  34. package/dist/data-app-sdk-validation/index.js +2 -2
  35. package/dist/index.cjs +1 -1
  36. package/dist/index.js +127 -126
  37. package/dist/style.css +1 -1
  38. package/dist/surfboard/index.cjs +1 -1
  39. package/dist/surfboard/index.js +2 -2
  40. package/dist/types/analytics-protocol.d.ts +102 -11
  41. package/dist/types/dashboard-assistant.d.ts +117 -103
  42. package/dist/types/dashboard-authoring.d.ts +63 -2
  43. package/dist/types/dashboard.d.ts +263 -2
  44. package/dist/types/data-app-builder.d.ts +40 -1
  45. package/dist/types/data-app-sdk-validation.d.ts +94 -102
  46. package/dist/types/data-app-sdk.d.ts +106 -11
  47. package/dist/types/main.d.ts +473 -2
  48. package/dist/types/shared.d.ts +263 -2
  49. package/dist/types/surfboard.d.ts +263 -2
  50. package/dist/types/types.d.ts +529 -2
  51. package/package.json +1 -1
  52. package/dist/chunks/index-DlLvzmJF.js +0 -1361
  53. package/dist/chunks/validators-DHee9kM2.js +0 -1
@@ -1180,6 +1180,28 @@ export declare function cancelExport(apiServiceUrl: string, token: string, expor
1180
1180
  export declare type CanonicalFormatSpec = NumericCanonicalFormat | DateCanonicalFormat | DurationCanonicalFormat | StringCanonicalFormat;
1181
1181
 
1182
1182
  export declare interface CardConfig {
1183
+ /**
1184
+ * Matrix table is the shared analytics-spine successor for pivot and
1185
+ * hierarchical aggregate tables. Dashboard cards store the public matrix
1186
+ * intent shape so Data Apps, MCP, and dashboard runtime consume one contract.
1187
+ */
1188
+ matrixIntent?: SemaphorMatrixIntent;
1189
+ /**
1190
+ * Deprecated compatibility fields for older matrix table drafts. New
1191
+ * dashboard-authored matrix cards should use `matrixIntent` so normal
1192
+ * `filters` can remain the explorer/card-level `FilterGroup`.
1193
+ */
1194
+ version?: SemaphorMatrixIntent['version'];
1195
+ source?: SemaphorMatrixIntent['source'];
1196
+ rows?: SemaphorMatrixIntent['rows'];
1197
+ columns?: SemaphorMatrixIntent['columns'];
1198
+ values?: SemaphorMatrixIntent['values'];
1199
+ inputs?: SemaphorMatrixIntent['inputs'];
1200
+ totals?: SemaphorMatrixIntent['totals'];
1201
+ sort?: SemaphorMatrixIntent['sort'];
1202
+ expansion?: SemaphorMatrixIntent['expansion'];
1203
+ layout?: SemaphorMatrixIntent['layout'];
1204
+ displayLimits?: SemaphorMatrixIntent['displayLimits'];
1183
1205
  groupByColumns?: GroupByField[];
1184
1206
  metricColumns?: MetricField[];
1185
1207
  pivotByColumns?: PivotByField[];
@@ -3875,6 +3897,369 @@ declare type ManagementStore = {
3875
3897
  actions: Actions;
3876
3898
  };
3877
3899
 
3900
+ declare type MatrixAxisLevelDescriptor = {
3901
+ instanceId: string;
3902
+ fieldKey: string;
3903
+ label: string;
3904
+ field: SemaphorFieldRef;
3905
+ grain?: SemaphorTimeGrain;
3906
+ subtotal?: SemaphorMatrixSubtotalOptions;
3907
+ };
3908
+
3909
+ declare type MatrixAxisPayload = {
3910
+ id: 'rows' | 'columns';
3911
+ levels: MatrixAxisLevelDescriptor[];
3912
+ nodes: MatrixNode[];
3913
+ };
3914
+
3915
+ declare type MatrixAxisResultPayload = {
3916
+ id: 'rows' | 'columns';
3917
+ levels: MatrixAxisLevelDescriptor[];
3918
+ nodeIds: string[];
3919
+ };
3920
+
3921
+ declare type MatrixBulkColumnExpansionStateUpdate = {
3922
+ state: MatrixExpansionState;
3923
+ kind: 'bulkColumns';
3924
+ isExpanded: boolean;
3925
+ };
3926
+
3927
+ declare type MatrixBulkRowExpansionStateUpdate = {
3928
+ state: MatrixExpansionState;
3929
+ kind: 'bulkRows';
3930
+ isExpanded: boolean;
3931
+ };
3932
+
3933
+ declare type MatrixCalculationDescriptor = {
3934
+ id: string;
3935
+ measureId: string;
3936
+ aggregate?: SemaphorAggregateFunction;
3937
+ label?: string;
3938
+ source: 'measureDefault' | 'rowSubtotal' | 'columnSubtotal' | 'subtotalIntersection' | 'rowGrandTotal' | 'columnGrandTotal' | 'matrixGrandTotal' | 'custom';
3939
+ scope?: {
3940
+ rowLevelId?: string;
3941
+ columnLevelId?: string;
3942
+ rowNodeId?: string;
3943
+ columnNodeId?: string;
3944
+ };
3945
+ };
3946
+
3947
+ declare type MatrixCapability = 'rowHierarchy' | 'columnHierarchy' | 'rowSubtotals' | 'columnSubtotals' | 'grandTotals' | 'lazyRows' | 'lazyColumns' | 'conditionalFormatting' | 'visualExport' | (string & {});
3948
+
3949
+ declare type MatrixCell = {
3950
+ id: string;
3951
+ rowNodeId: string;
3952
+ columnNodeId?: string;
3953
+ measureInstanceId: string;
3954
+ rawValue: unknown;
3955
+ presence: MatrixCellPresence;
3956
+ formattedValue?: string;
3957
+ role: MatrixCellRole;
3958
+ aggregateFunction?: SemaphorAggregateFunction;
3959
+ formattingScope: MatrixCellFormattingScope;
3960
+ actions?: MatrixCellAction[];
3961
+ };
3962
+
3963
+ declare type MatrixCellAction = {
3964
+ kind: 'requestSubgoal' | 'filter' | 'copyValue' | 'explainCalculation' | 'inspectContributingRows' | 'drillThrough' | (string & {});
3965
+ label?: string;
3966
+ payload?: Record<string, unknown>;
3967
+ };
3968
+
3969
+ declare type MatrixCellFormattingScope = {
3970
+ rowNodeId: string;
3971
+ columnNodeId?: string;
3972
+ measureInstanceId: string;
3973
+ role: MatrixCellRole;
3974
+ };
3975
+
3976
+ declare type MatrixCellPresence = 'present' | 'presentNull' | 'missing' | 'densified';
3977
+
3978
+ declare type MatrixCellRole = 'value' | 'rowSubtotal' | 'columnSubtotal' | 'subtotalIntersection' | 'rowGrandTotal' | 'columnGrandTotal' | 'matrixGrandTotal';
3979
+
3980
+ declare type MatrixColumnExpansionStateUpdate = {
3981
+ state: MatrixExpansionState;
3982
+ columnPath: MatrixMemberPathSegment[];
3983
+ isExpanded: boolean;
3984
+ };
3985
+
3986
+ declare type MatrixExecutionMetadata = {
3987
+ strategy?: MatrixQueryStrategy;
3988
+ dialect?: SemaphorDialect;
3989
+ rowNodeCount?: number;
3990
+ columnNodeCount?: number;
3991
+ cellCount?: number;
3992
+ groupingSetCount?: number;
3993
+ queryDurationMs?: number;
3994
+ budgetRejected?: boolean;
3995
+ cacheStatus?: 'hit' | 'miss' | 'bypass';
3996
+ [key: string]: unknown;
3997
+ };
3998
+
3999
+ declare type MatrixExpansionRequest = {
4000
+ axis: 'row' | 'column';
4001
+ path: MatrixMemberPathSegment[];
4002
+ depth?: number;
4003
+ };
4004
+
4005
+ declare type MatrixExpansionResponseHints = {
4006
+ rowLazyLoading?: boolean;
4007
+ columnLazyLoading?: boolean;
4008
+ expandableRowNodeIds?: string[];
4009
+ expandableColumnNodeIds?: string[];
4010
+ nextRequests?: MatrixExpansionRequest[];
4011
+ };
4012
+
4013
+ declare type MatrixExpansionState = {
4014
+ schemaVersion: 1;
4015
+ expandedRowPaths: MatrixMemberPathSegment[][];
4016
+ expandedColumnPaths: MatrixMemberPathSegment[][];
4017
+ };
4018
+
4019
+ declare type MatrixExpansionStateUpdate = {
4020
+ state: MatrixExpansionState;
4021
+ rowPath: MatrixMemberPathSegment[];
4022
+ isExpanded: boolean;
4023
+ };
4024
+
4025
+ declare type MatrixFieldDescriptor = {
4026
+ instanceId: string;
4027
+ fieldKey: string;
4028
+ field: SemaphorFieldRef;
4029
+ role: 'row' | 'column' | 'measure' | 'sort' | 'filter';
4030
+ label?: string;
4031
+ };
4032
+
4033
+ declare type MatrixFieldDirectory = {
4034
+ fieldsByInstanceId: Record<string, MatrixFieldDescriptor>;
4035
+ };
4036
+
4037
+ declare type MatrixFormattingContext = {
4038
+ domains?: Record<string, {
4039
+ min?: number;
4040
+ max?: number;
4041
+ }>;
4042
+ rules?: Array<Record<string, unknown>>;
4043
+ };
4044
+
4045
+ declare type MatrixGridCell = {
4046
+ id: string;
4047
+ columnId: string;
4048
+ cellId?: string;
4049
+ rawValue: unknown;
4050
+ formattedValue?: string;
4051
+ presence: MatrixCellPresence;
4052
+ role: MatrixCellRole;
4053
+ measureInstanceId: string;
4054
+ };
4055
+
4056
+ declare type MatrixGridColumn = {
4057
+ id: string;
4058
+ label: string;
4059
+ columnNodeId?: string;
4060
+ columnPath: MatrixMemberPathSegment[];
4061
+ measureInstanceId: string;
4062
+ role: 'value' | 'columnSubtotal' | 'columnGrandTotal';
4063
+ };
4064
+
4065
+ declare type MatrixGridHeaderCell = {
4066
+ id: string;
4067
+ label: string;
4068
+ role: 'rowHeader' | 'columnHeader' | 'measureHeader' | 'subtotal' | 'grandTotal';
4069
+ colSpan: number;
4070
+ rowSpan: number;
4071
+ columnPath: MatrixMemberPathSegment[];
4072
+ measureInstanceId?: string;
4073
+ };
4074
+
4075
+ declare type MatrixGridHeaderRow = {
4076
+ id: string;
4077
+ cells: MatrixGridHeaderCell[];
4078
+ };
4079
+
4080
+ declare type MatrixGridProjection = {
4081
+ schemaVersion: 1;
4082
+ shape: MatrixShape;
4083
+ rowHeaderLevels: MatrixGridRowHeaderLevel[];
4084
+ columnHeaderRows: MatrixGridHeaderRow[];
4085
+ columns: MatrixGridColumn[];
4086
+ rows: MatrixGridRow[];
4087
+ };
4088
+
4089
+ declare type MatrixGridRow = {
4090
+ id: string;
4091
+ rowNodeId: string;
4092
+ rowPath: MatrixMemberPathSegment[];
4093
+ depth: number;
4094
+ label: string;
4095
+ role: 'value' | 'rowSubtotal' | 'rowGrandTotal';
4096
+ isExpanded?: boolean;
4097
+ hasChildren?: boolean;
4098
+ cells: MatrixGridCell[];
4099
+ };
4100
+
4101
+ declare type MatrixGridRowHeaderLevel = {
4102
+ id: string;
4103
+ label: string;
4104
+ fieldInstanceId: string;
4105
+ };
4106
+
4107
+ declare type MatrixLayoutProjection = {
4108
+ rowHeaderLevels: MatrixGridRowHeaderLevel[];
4109
+ columnHeaderRows: MatrixGridHeaderRow[];
4110
+ columns: MatrixGridColumn[];
4111
+ };
4112
+
4113
+ declare type MatrixMeasureDescriptor = {
4114
+ instanceId: string;
4115
+ fieldKey: string;
4116
+ label: string;
4117
+ field: SemaphorFieldRef;
4118
+ aggregate?: SemaphorAggregateFunction;
4119
+ format?: SemaphorValueFormat;
4120
+ totalBehavior?: SemaphorMatrixTotalCalculation;
4121
+ };
4122
+
4123
+ declare type MatrixMeasureResultDescriptor = MatrixMeasureDescriptor & {
4124
+ semantics: MatrixMeasureSemantics;
4125
+ };
4126
+
4127
+ declare type MatrixMeasureSemantics = {
4128
+ kind: 'additive';
4129
+ aggregate?: SemaphorAggregateFunction;
4130
+ } | {
4131
+ kind: 'semiAdditive';
4132
+ aggregate?: SemaphorAggregateFunction;
4133
+ grain?: SemaphorTimeGrain;
4134
+ } | {
4135
+ kind: 'nonAdditive';
4136
+ aggregate?: SemaphorAggregateFunction;
4137
+ } | {
4138
+ kind: 'ratio';
4139
+ numeratorMeasureInstanceId?: string;
4140
+ denominatorMeasureInstanceId?: string;
4141
+ } | {
4142
+ kind: 'custom';
4143
+ expressionId?: string;
4144
+ };
4145
+
4146
+ declare type MatrixMemberPathSegment = {
4147
+ instanceId: string;
4148
+ fieldKey: string;
4149
+ value: unknown;
4150
+ label: string;
4151
+ };
4152
+
4153
+ declare type MatrixNode = {
4154
+ id: string;
4155
+ axis: 'row' | 'column';
4156
+ path: MatrixMemberPathSegment[];
4157
+ level: number;
4158
+ label: string;
4159
+ value: unknown;
4160
+ parentId?: string;
4161
+ hasChildren: boolean;
4162
+ isExpanded?: boolean;
4163
+ isSubtotal?: boolean;
4164
+ isGrandTotal?: boolean;
4165
+ subtotalFunction?: SemaphorAggregateFunction;
4166
+ childCount?: number;
4167
+ actions?: MatrixNodeAction[];
4168
+ };
4169
+
4170
+ declare type MatrixNodeAction = {
4171
+ kind: 'expand' | 'collapse' | 'requestSubgoal' | 'filter' | 'drillThrough' | 'openRelatedRecords' | (string & {});
4172
+ label?: string;
4173
+ payload?: Record<string, unknown>;
4174
+ };
4175
+
4176
+ declare type MatrixPageInfo = {
4177
+ rowOffset?: number;
4178
+ rowLimit?: number;
4179
+ columnOffset?: number;
4180
+ columnLimit?: number;
4181
+ hasMoreRows?: boolean;
4182
+ hasMoreColumns?: boolean;
4183
+ };
4184
+
4185
+ declare type MatrixPayload = {
4186
+ kind: 'matrixPayload';
4187
+ schemaVersion: 1;
4188
+ shape: MatrixShape;
4189
+ capabilities: MatrixCapability[];
4190
+ executionMetadata: MatrixExecutionMetadata;
4191
+ axes: {
4192
+ rows: MatrixAxisPayload;
4193
+ columns: MatrixAxisPayload;
4194
+ };
4195
+ measures: MatrixMeasureDescriptor[];
4196
+ measureSemantics: Record<string, MatrixMeasureSemantics>;
4197
+ fieldDirectory: MatrixFieldDirectory;
4198
+ rowNodes: MatrixNode[];
4199
+ columnNodes: MatrixNode[];
4200
+ cells: MatrixCell[];
4201
+ totals: MatrixTotals;
4202
+ sort: MatrixResolvedSort[];
4203
+ formattingContext: MatrixFormattingContext;
4204
+ pageInfo?: MatrixPageInfo;
4205
+ warnings?: MatrixWarning[];
4206
+ };
4207
+
4208
+ declare type MatrixQueryStrategy = 'tall' | 'wide' | 'lazy' | 'export';
4209
+
4210
+ declare type MatrixResolvedSort = {
4211
+ id: string;
4212
+ axis: 'row' | 'column';
4213
+ targetInstanceId?: string;
4214
+ direction: 'asc' | 'desc';
4215
+ nulls?: 'warehouseDefault' | 'first' | 'last';
4216
+ scope?: 'global' | 'withinParent';
4217
+ by: SemaphorMatrixSortRule['by'];
4218
+ };
4219
+
4220
+ declare type MatrixResultCell = {
4221
+ rowId: string;
4222
+ columnId?: string;
4223
+ measureId: string;
4224
+ value: unknown;
4225
+ formattedValue?: string;
4226
+ presence: MatrixCellPresence;
4227
+ role: MatrixCellRole;
4228
+ calculationId?: string;
4229
+ };
4230
+
4231
+ declare type MatrixShape = 'hierarchical' | 'pivot';
4232
+
4233
+ export declare function MatrixTableVisual({ result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4234
+
4235
+ export declare type MatrixTableVisualProps = {
4236
+ result?: SemaphorMatrixResult;
4237
+ grid?: MatrixGridProjection;
4238
+ payload?: MatrixPayload;
4239
+ isLoading?: boolean;
4240
+ expansionState?: MatrixExpansionState;
4241
+ onExpansionChange?: (update: MatrixExpansionStateUpdate | MatrixColumnExpansionStateUpdate | MatrixBulkColumnExpansionStateUpdate | MatrixBulkRowExpansionStateUpdate) => void;
4242
+ loadingRowPathKeys?: Set<string>;
4243
+ onSortChange?: (sortRules: SemaphorMatrixSortRule[]) => void;
4244
+ onLoadMoreRows?: (rowPath: MatrixMemberPathSegment[]) => void;
4245
+ };
4246
+
4247
+ declare type MatrixTotals = {
4248
+ rows?: boolean;
4249
+ columns?: boolean;
4250
+ grandTotal?: boolean | {
4251
+ rows?: boolean;
4252
+ columns?: boolean;
4253
+ };
4254
+ };
4255
+
4256
+ declare type MatrixWarning = {
4257
+ code: string;
4258
+ message: string;
4259
+ path?: string;
4260
+ severity?: 'info' | 'warning' | 'error';
4261
+ };
4262
+
3878
4263
  export declare interface MetricColumn extends BaseColumn {
3879
4264
  role: 'metric';
3880
4265
  aggregate: AggregateFunction;
@@ -4178,6 +4563,7 @@ export declare interface QueryExecutionResponse {
4178
4563
  columnKeyMap?: QueryColumnKeyMap;
4179
4564
  tableTotalsByColumnId?: Record<string, string | number | null>;
4180
4565
  documentTableTotalsBaseSql?: string;
4566
+ matrixResult?: SemaphorMatrixResult;
4181
4567
  metadata?: any;
4182
4568
  }
4183
4569
 
@@ -4444,6 +4830,16 @@ declare type SemaphorAnalyticsNullFilter = SemaphorAnalyticsFilterBase & {
4444
4830
 
4445
4831
  declare type SemaphorAnalyticsNullFilterOperator = 'is_null' | 'is_not_null';
4446
4832
 
4833
+ declare type SemaphorAnalyticsResultBase = {
4834
+ intentId?: string;
4835
+ queryPath: SemaphorQueryPath;
4836
+ warnings?: string[];
4837
+ rowCount?: number;
4838
+ rowLimitExceeded?: boolean;
4839
+ limit?: number;
4840
+ pagination?: SemaphorPaginationMetadata;
4841
+ };
4842
+
4447
4843
  declare type SemaphorAnalyticsValueFilter = SemaphorAnalyticsFilterBase & {
4448
4844
  operator?: SemaphorAnalyticsValueFilterOperator;
4449
4845
  values: unknown[];
@@ -4476,7 +4872,7 @@ declare type SemaphorDerivedFieldDefinition = {
4476
4872
  defaultAggregate?: SemaphorAggregateFunction;
4477
4873
  aggregationBehavior?: SemaphorDerivedFieldAggregationBehavior;
4478
4874
  aggregationStrategy?: SemaphorDerivedFieldAggregationStrategy;
4479
- format?: unknown;
4875
+ format?: SemaphorValueFormat;
4480
4876
  tags?: string[];
4481
4877
  };
4482
4878
 
@@ -4612,6 +5008,30 @@ declare type SemaphorMatrixMemberPathSegment = {
4612
5008
  value: unknown;
4613
5009
  };
4614
5010
 
5011
+ declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
5012
+ kind: 'matrix';
5013
+ schemaVersion: 1;
5014
+ intent?: SemaphorMatrixIntent;
5015
+ shape: MatrixShape;
5016
+ capabilities: MatrixCapability[];
5017
+ executionMetadata: MatrixExecutionMetadata;
5018
+ fieldsById: Record<string, MatrixFieldDescriptor>;
5019
+ measuresById: Record<string, MatrixMeasureResultDescriptor>;
5020
+ calculationsById?: Record<string, MatrixCalculationDescriptor>;
5021
+ axes: {
5022
+ rows: MatrixAxisResultPayload;
5023
+ columns: MatrixAxisResultPayload;
5024
+ };
5025
+ nodesById: Record<string, MatrixNode>;
5026
+ layout: MatrixLayoutProjection;
5027
+ cells: MatrixResultCell[];
5028
+ totals: MatrixTotals;
5029
+ sort: MatrixResolvedSort[];
5030
+ formattingContext: MatrixFormattingContext;
5031
+ pageInfo?: MatrixPageInfo;
5032
+ expansion?: MatrixExpansionResponseHints;
5033
+ };
5034
+
4615
5035
  declare type SemaphorMatrixSortRule = {
4616
5036
  axis: 'row' | 'column';
4617
5037
  targetId?: string;
@@ -4675,6 +5095,7 @@ declare type SemaphorMatrixValueField = {
4675
5095
  field: SemaphorFieldRef;
4676
5096
  aggregate?: SemaphorAggregateFunction;
4677
5097
  label?: string;
5098
+ format?: SemaphorValueFormat;
4678
5099
  totalBehavior?: SemaphorMatrixTotalCalculation;
4679
5100
  };
4680
5101
 
@@ -4712,6 +5133,15 @@ declare type SemaphorMetricIntent = {
4712
5133
  derivedFields?: SemaphorDerivedFieldDefinition[];
4713
5134
  };
4714
5135
 
5136
+ declare type SemaphorPaginationMetadata = {
5137
+ page: number;
5138
+ pageSize: number;
5139
+ pageCount: number;
5140
+ totalCount: number;
5141
+ hasNextPage: boolean;
5142
+ hasPrevPage: boolean;
5143
+ };
5144
+
4715
5145
  declare type SemaphorPaginationRequest = {
4716
5146
  page: number;
4717
5147
  pageSize: number;
@@ -4725,6 +5155,8 @@ declare function SemaphorQueryClient({ children, }: {
4725
5155
  export { SemaphorQueryClient as SemaphorDataProvider }
4726
5156
  export { SemaphorQueryClient }
4727
5157
 
5158
+ declare type SemaphorQueryPath = 'query_spec' | 'sql' | 'sql_python';
5159
+
4728
5160
  declare type SemaphorRecordsIntent = {
4729
5161
  kind: 'records';
4730
5162
  version?: SemaphorProtocolVersion;
@@ -4803,6 +5235,44 @@ declare type SemaphorTimeGrain = 'hour' | 'day' | 'week' | 'month' | 'quarter' |
4803
5235
 
4804
5236
  declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteTimeWindow;
4805
5237
 
5238
+ declare type SemaphorValueFormat = {
5239
+ type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
5240
+ locale?: string;
5241
+ minimumFractionDigits?: number;
5242
+ maximumFractionDigits?: number;
5243
+ useGrouping?: boolean;
5244
+ prefix?: string;
5245
+ suffix?: string;
5246
+ negativeStyle?: 'minus' | 'parentheses';
5247
+ compact?: boolean;
5248
+ scale?: number;
5249
+ currency?: string;
5250
+ percentValueMode?: 'fraction' | 'whole';
5251
+ } | {
5252
+ type: 'date' | 'datetime';
5253
+ locale?: string;
5254
+ pattern?: string;
5255
+ relative?: boolean;
5256
+ timezone?: string;
5257
+ sourceTimezone?: string;
5258
+ prefix?: string;
5259
+ suffix?: string;
5260
+ } | {
5261
+ type: 'duration';
5262
+ inputUnit?: 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
5263
+ outputStyle?: 'compact' | 'digital' | 'long';
5264
+ largestUnit?: 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
5265
+ smallestUnit?: 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
5266
+ maxUnits?: number;
5267
+ prefix?: string;
5268
+ suffix?: string;
5269
+ negativeStyle?: 'minus' | 'parentheses';
5270
+ } | {
5271
+ type: 'string';
5272
+ prefix?: string;
5273
+ suffix?: string;
5274
+ };
5275
+
4806
5276
  /**
4807
5277
  * Stable serializer for dashboard dirty checks.
4808
5278
  * This consolidates normalization + serialization into one call site, so
@@ -5513,7 +5983,7 @@ export declare type TChartOptions = {
5513
5983
  treemapColorMode?: 'branch' | 'category';
5514
5984
  };
5515
5985
 
5516
- export declare type TChartType = 'bar' | 'horizontalBar' | 'line' | 'area' | 'stackedArea' | 'combo' | 'pie' | 'doughnut' | 'radar' | 'polarArea' | 'bubble' | 'scatter' | 'stackedBar' | 'stackedLine' | 'table' | 'pivotTable' | 'aggregateTable' | 'detailTable' | 'tableBuilder' | 'kpi' | 'pyramid' | 'tornado' | 'range' | 'text' | 'map' | 'funnel' | 'bullet' | 'heatmap' | 'treemap' | 'custom';
5986
+ export declare type TChartType = 'bar' | 'horizontalBar' | 'line' | 'area' | 'stackedArea' | 'combo' | 'pie' | 'doughnut' | 'radar' | 'polarArea' | 'bubble' | 'scatter' | 'stackedBar' | 'stackedLine' | 'table' | 'pivotTable' | 'aggregateTable' | 'matrixTable' | 'detailTable' | 'tableBuilder' | 'kpi' | 'pyramid' | 'tornado' | 'range' | 'text' | 'map' | 'funnel' | 'bullet' | 'heatmap' | 'treemap' | 'custom';
5517
5987
 
5518
5988
  export declare type TColumnSetting<T extends DisplayDataType> = {
5519
5989
  columnIdx: number;
@@ -6373,6 +6843,7 @@ export declare function useCard(cardId: string): {
6373
6843
  handleDatapointClick: (chart: Chart_2, datasetIndex: number, clickIndex: number, value: number) => void;
6374
6844
  cfg: TChartConfiguration | undefined;
6375
6845
  queryKey: string[];
6846
+ queryRequestPayload: Record<string, unknown> | undefined;
6376
6847
  pagination: PaginationMetadata | undefined;
6377
6848
  comparisonMetadata: ComparisonMetadataMap | undefined;
6378
6849
  resolvedPrimaryDateField: ResolvedPrimaryDateField | undefined;