react-semaphor 0.1.453 → 0.1.454

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 (115) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +100 -99
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +4 -4
  7. package/dist/chunks/{analyze-result-contract-GHKFwThg.js → analyze-result-contract-BbRJ-C06.js} +1 -1
  8. package/dist/chunks/{analyze-result-contract-Dxw66nUG.cjs → analyze-result-contract-LPDNldic.cjs} +1 -1
  9. package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +1 -0
  10. package/dist/chunks/{canonical-result-keys-KLk__J_O.js → canonical-result-keys-D6avdjpA.js} +14 -13
  11. package/dist/chunks/{common-types-Ci66eflG.cjs → common-types-C57kJ59w.cjs} +1 -1
  12. package/dist/chunks/{common-types-F6qk6PPS.js → common-types-H51FLKB7.js} +1 -1
  13. package/dist/chunks/{dashboard-briefing-launcher-mUXWuiOZ.cjs → dashboard-briefing-launcher-Dwj1i7lr.cjs} +1 -1
  14. package/dist/chunks/{dashboard-briefing-launcher-CFpX0WX3.js → dashboard-briefing-launcher-SYroFdae.js} +10 -10
  15. package/dist/chunks/{dashboard-controls-BeYAmOJc.js → dashboard-controls-1LpeU2sz.js} +10 -10
  16. package/dist/chunks/{dashboard-controls-SoNubIu1.cjs → dashboard-controls-CpFoh7-A.cjs} +1 -1
  17. package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +1 -0
  18. package/dist/chunks/{dashboard-date-comparison-definition-Ba-clViK.js → dashboard-date-comparison-definition-DC3ekV2S.js} +1 -1
  19. package/dist/chunks/{dashboard-json-DeLUagVV.js → dashboard-json-D-T-sQxU.js} +8 -8
  20. package/dist/chunks/{dashboard-json-BublPnQ4.cjs → dashboard-json-DwSQopc_.cjs} +1 -1
  21. package/dist/chunks/{edit-dashboard-visual-CrvPcO7A.cjs → edit-dashboard-visual-BEmoQAET.cjs} +1 -1
  22. package/dist/chunks/{edit-dashboard-visual-Go0h82DR.js → edit-dashboard-visual-DqxUq4Bs.js} +12 -12
  23. package/dist/chunks/{editor-action-buttons-1Lo0fIh7.cjs → editor-action-buttons-18r2xwei.cjs} +1 -1
  24. package/dist/chunks/{editor-action-buttons-BFNtjFzO.js → editor-action-buttons-B2l3WIRC.js} +6 -6
  25. package/dist/chunks/index-Bn5wlkHt.cjs +4 -0
  26. package/dist/chunks/{index-q12_nNUS.cjs → index-CLB_NGZ8.cjs} +231 -231
  27. package/dist/chunks/{index-B3ZugihZ.js → index-Ca784dpx.js} +93 -92
  28. package/dist/chunks/{index-BsH32bn1.js → index-DAoS4BNU.js} +36188 -35785
  29. package/dist/chunks/matrix-result-contract-CofATICL.js +437 -0
  30. package/dist/chunks/matrix-result-contract-zamd9euI.cjs +1 -0
  31. package/dist/chunks/{pivot-header-presentation-DcfPaCiy.cjs → pivot-header-presentation-DhyQXxKq.cjs} +1 -1
  32. package/dist/chunks/{pivot-header-presentation-nk604qc1.js → pivot-header-presentation-ckYOQ4aZ.js} +2 -2
  33. package/dist/chunks/{pivot-result-identity-CRUokNgm.cjs → pivot-result-identity-Bb4EixVN.cjs} +1 -1
  34. package/dist/chunks/{pivot-result-identity-C43Ai5Kr.js → pivot-result-identity-DU1v-5Xk.js} +1 -1
  35. package/dist/chunks/pivot-result-lifecycle-DmcF1ris.cjs +1 -0
  36. package/dist/chunks/{pivot-result-lifecycle-4kSe0Hk1.js → pivot-result-lifecycle-sjzIOpvp.js} +57 -58
  37. package/dist/chunks/{raw-temporal-contract-CxbRFwnd.cjs → raw-temporal-contract-BtjH_G-d.cjs} +1 -1
  38. package/dist/chunks/{raw-temporal-contract-BF7PjBY9.js → raw-temporal-contract-CxncLze5.js} +1 -1
  39. package/dist/chunks/{report-preferences-dialog-BEVZAE3m.cjs → report-preferences-dialog-BgSvlDXa.cjs} +1 -1
  40. package/dist/chunks/{report-preferences-dialog-BNV7qXYH.js → report-preferences-dialog-DDc2WUa0.js} +6 -6
  41. package/dist/chunks/{report-runtime-context-DjYqLV-c.cjs → report-runtime-context-DqxS4wbi.cjs} +1 -1
  42. package/dist/chunks/{report-runtime-context-BJQDu2fV.js → report-runtime-context-SM6YO61_.js} +5 -5
  43. package/dist/chunks/saved-temporal-bucket-format-CFfWXRl9.cjs +1 -0
  44. package/dist/chunks/{saved-temporal-bucket-format-DiZdQXOL.js → saved-temporal-bucket-format-SGAV0ivR.js} +33 -35
  45. package/dist/chunks/{switch-DgLwr7O-.js → switch-BeZW-HnS.js} +367 -369
  46. package/dist/chunks/{switch-CjJ6FHYJ.cjs → switch-D-CCcfhc.cjs} +28 -28
  47. package/dist/chunks/temporal-bucket-5UYEotyQ.js +810 -0
  48. package/dist/chunks/temporal-bucket-DHY1y9lq.cjs +1 -0
  49. package/dist/chunks/{temporal-bucket-authoring-FIRnJz0e.js → temporal-bucket-authoring-K1kE6R_z.js} +28 -27
  50. package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +1 -0
  51. package/dist/chunks/{temporal-bucket-contract-anl4h-vg.cjs → temporal-bucket-contract-D2-93DGr.cjs} +1 -1
  52. package/dist/chunks/{temporal-bucket-contract-BQOj6Frl.js → temporal-bucket-contract-D5d-xEl3.js} +1 -1
  53. package/dist/chunks/{token-types-D0i0IUX3.cjs → token-types-D7CaaI80.cjs} +1 -1
  54. package/dist/chunks/{token-types-CRpQJ4kv.js → token-types-GbxRUozo.js} +1 -1
  55. package/dist/chunks/{update-policy-C1i9bgsy.cjs → update-policy-BmiOd0PB.cjs} +1 -1
  56. package/dist/chunks/{update-policy-CaJz9aPG.js → update-policy-hednMF-0.js} +1 -1
  57. package/dist/chunks/validators-BDYprKI9.cjs +1 -0
  58. package/dist/chunks/{validators-DeMXwRON.js → validators-DEmd8Sin.js} +1544 -1200
  59. package/dist/dashboard/index.cjs +1 -1
  60. package/dist/dashboard/index.js +2 -2
  61. package/dist/dashboard-authoring/index.cjs +3 -3
  62. package/dist/dashboard-authoring/index.js +7 -7
  63. package/dist/data-app-builder/index.cjs +1 -1
  64. package/dist/data-app-builder/index.js +2 -2
  65. package/dist/data-app-codegen/index.cjs +1 -1
  66. package/dist/data-app-codegen/index.js +2 -2
  67. package/dist/data-app-codegen-node/index.cjs +1 -1
  68. package/dist/data-app-codegen-node/index.js +3 -3
  69. package/dist/data-app-sdk/index.cjs +1 -1
  70. package/dist/data-app-sdk/index.js +78 -77
  71. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  72. package/dist/data-app-sdk-adapters/index.js +29 -30
  73. package/dist/data-app-sdk-validation/index.cjs +1 -1
  74. package/dist/data-app-sdk-validation/index.js +21 -21
  75. package/dist/format-utils/index.cjs +3 -3
  76. package/dist/format-utils/index.js +39 -40
  77. package/dist/index.cjs +1 -1
  78. package/dist/index.js +15 -15
  79. package/dist/report-runtime-context/index.cjs +1 -1
  80. package/dist/report-runtime-context/index.js +2 -2
  81. package/dist/surfboard/index.cjs +1 -1
  82. package/dist/surfboard/index.js +3 -3
  83. package/dist/types/analytics-protocol.d.ts +44 -11
  84. package/dist/types/briefings.d.ts +9 -12
  85. package/dist/types/dashboard-assistant.d.ts +19 -17
  86. package/dist/types/dashboard-authoring.d.ts +9 -12
  87. package/dist/types/dashboard.d.ts +9 -12
  88. package/dist/types/data-app-builder.d.ts +28 -2
  89. package/dist/types/data-app-codegen-node.d.ts +29 -3
  90. package/dist/types/data-app-codegen.d.ts +29 -3
  91. package/dist/types/data-app-sdk-adapters.d.ts +28 -2
  92. package/dist/types/data-app-sdk-validation.d.ts +38 -7
  93. package/dist/types/data-app-sdk.d.ts +42 -10
  94. package/dist/types/index.cjs +1 -1
  95. package/dist/types/index.js +4 -4
  96. package/dist/types/main.d.ts +25 -21
  97. package/dist/types/shared.d.ts +9 -12
  98. package/dist/types/surfboard.d.ts +9 -12
  99. package/dist/types/types.d.ts +19 -17
  100. package/package.json +1 -1
  101. package/dist/chunks/canonical-result-keys-Drc2x-lf.cjs +0 -1
  102. package/dist/chunks/catalog-field-grounding-Bnx-3tE0.cjs +0 -1
  103. package/dist/chunks/catalog-field-grounding-S2jKwKGD.js +0 -100
  104. package/dist/chunks/dashboard-date-comparison-definition-DZq0htjG.cjs +0 -1
  105. package/dist/chunks/dashboard-input-contract-DSt8dGzP.js +0 -18
  106. package/dist/chunks/dashboard-input-contract-DV3cshjz.cjs +0 -1
  107. package/dist/chunks/index-DjiIh_9n.cjs +0 -4
  108. package/dist/chunks/metric-comparison-D0T0MKRK.js +0 -387
  109. package/dist/chunks/metric-comparison-DYR3RXam.cjs +0 -1
  110. package/dist/chunks/pivot-result-lifecycle-BiJepH5S.cjs +0 -1
  111. package/dist/chunks/saved-temporal-bucket-format-Gfbh4IiP.cjs +0 -1
  112. package/dist/chunks/temporal-bucket-Dnj8qT9l.cjs +0 -1
  113. package/dist/chunks/temporal-bucket-FBZGrDCe.js +0 -560
  114. package/dist/chunks/temporal-bucket-authoring-7hv2laOG.cjs +0 -1
  115. package/dist/chunks/validators-Dm7Kpz6p.cjs +0 -1
@@ -264,6 +264,8 @@ declare type SemaphorMatrixAxisLevel = {
264
264
  id?: string;
265
265
  field: SemaphorFieldRef;
266
266
  grain?: SemaphorMatrixTimeGrain;
267
+ format?: TemporalBucketFormat;
268
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
267
269
  label?: string;
268
270
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
269
271
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -274,7 +276,7 @@ declare type SemaphorMatrixAxisLevelInput = SemaphorQueryField | SemaphorMatrixA
274
276
  declare type SemaphorMatrixAxisSortRule = {
275
277
  direction: 'asc' | 'desc';
276
278
  by: {
277
- kind: 'label';
279
+ kind: 'member';
278
280
  } | {
279
281
  kind: 'field';
280
282
  field: SemaphorFieldRef;
@@ -342,12 +344,17 @@ declare type SemaphorMatrixQuerySpec = Omit<SemaphorMatrixIntent, 'kind' | 'vers
342
344
  displayLimits?: SemaphorMatrixDisplayLimitOptions;
343
345
  };
344
346
 
347
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
348
+ granularity: SemaphorMatrixTimeGrain;
349
+ format: TemporalBucketFormat;
350
+ };
351
+
345
352
  declare type SemaphorMatrixSortRule = {
346
353
  axis: 'row' | 'column';
347
354
  targetId?: string;
348
355
  direction: 'asc' | 'desc';
349
356
  by: {
350
- kind: 'label';
357
+ kind: 'member';
351
358
  } | {
352
359
  kind: 'field';
353
360
  field: SemaphorFieldRef;
@@ -682,6 +689,25 @@ declare type SemaphorTimeGrain = (typeof SEMAPHOR_TIME_GRAINS)[number];
682
689
 
683
690
  declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteTimeWindow;
684
691
 
692
+ declare const TEMPORAL_BUCKET_PRESETS: readonly ["week_of_short", "week_of_long", "quarter_short", "quarter_long", "fiscal_quarter_short", "fiscal_year"];
693
+
694
+ declare type TemporalBucketFormat = {
695
+ type: 'temporal_bucket';
696
+ presentation: TemporalBucketPresentation;
697
+ };
698
+
699
+ declare type TemporalBucketPresentation = {
700
+ mode: 'auto';
701
+ } | {
702
+ mode: 'preset';
703
+ preset: TemporalBucketPreset;
704
+ } | {
705
+ mode: 'pattern';
706
+ pattern: string;
707
+ };
708
+
709
+ declare type TemporalBucketPreset = (typeof TEMPORAL_BUCKET_PRESETS)[number];
710
+
685
711
  export declare function toSemaphorActiveInputSnapshots(inputs: SemaphorInputReference[] | undefined): SemaphorActiveInput[];
686
712
 
687
713
  export declare function toSemaphorAnalysisIntent(spec: SemaphorAnalysisQuerySpec): SemaphorMetricIntent;
@@ -21,6 +21,7 @@ declare type MatrixAxisLevelDescriptor = {
21
21
  label: string;
22
22
  field: SemaphorFieldRef;
23
23
  grain?: SemaphorMatrixTimeGrain;
24
+ temporalBucket?: TemporalBucketMetadata;
24
25
  subtotal?: SemaphorMatrixSubtotalOptions;
25
26
  };
26
27
 
@@ -95,7 +96,8 @@ declare type MatrixFormattingContext = {
95
96
 
96
97
  declare type MatrixGridColumn = {
97
98
  id: string;
98
- label: string;
99
+ /** Present only for measure and explicit total headings. */
100
+ label?: string;
99
101
  columnNodeId?: string;
100
102
  columnPath: MatrixMemberPathSegment[];
101
103
  measureInstanceId: string;
@@ -104,7 +106,8 @@ declare type MatrixGridColumn = {
104
106
 
105
107
  declare type MatrixGridHeaderCell = {
106
108
  id: string;
107
- label: string;
109
+ /** Present only for non-member headings and explicit total labels. */
110
+ label?: string;
108
111
  role: 'rowHeader' | 'columnHeader' | 'measureHeader' | 'subtotal' | 'grandTotal';
109
112
  colSpan: number;
110
113
  rowSpan: number;
@@ -166,7 +169,8 @@ declare type MatrixMemberPathSegment = {
166
169
  instanceId: string;
167
170
  fieldKey: string;
168
171
  value: unknown;
169
- label: string;
172
+ /** Display-only source label for non-temporal members. */
173
+ label?: string;
170
174
  };
171
175
 
172
176
  declare type MatrixNode = {
@@ -174,7 +178,8 @@ declare type MatrixNode = {
174
178
  axis: 'row' | 'column';
175
179
  path: MatrixMemberPathSegment[];
176
180
  level: number;
177
- label: string;
181
+ /** Present only for non-temporal members and explicit total labels. */
182
+ label?: string;
178
183
  value: unknown;
179
184
  parentId?: string;
180
185
  hasChildren: boolean;
@@ -717,6 +722,8 @@ declare type SemaphorMatrixAxisLevel = {
717
722
  id?: string;
718
723
  field: SemaphorFieldRef;
719
724
  grain?: SemaphorMatrixTimeGrain;
725
+ format?: TemporalBucketFormat;
726
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
720
727
  label?: string;
721
728
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
722
729
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -727,7 +734,7 @@ declare type SemaphorMatrixAxisLevelInput = SemaphorQueryField | SemaphorMatrixA
727
734
  declare type SemaphorMatrixAxisSortRule = {
728
735
  direction: 'asc' | 'desc';
729
736
  by: {
730
- kind: 'label';
737
+ kind: 'member';
731
738
  } | {
732
739
  kind: 'field';
733
740
  field: SemaphorFieldRef;
@@ -801,7 +808,7 @@ declare type SemaphorMatrixQuerySpec = Omit<SemaphorMatrixIntent, 'kind' | 'vers
801
808
 
802
809
  declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
803
810
  kind: 'matrix';
804
- schemaVersion: 1;
811
+ schemaVersion: 2;
805
812
  intent?: SemaphorMatrixIntent;
806
813
  shape: MatrixShape;
807
814
  capabilities: MatrixCapability[];
@@ -823,12 +830,17 @@ declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
823
830
  expansion?: MatrixExpansionResponseHints;
824
831
  };
825
832
 
833
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
834
+ granularity: SemaphorMatrixTimeGrain;
835
+ format: TemporalBucketFormat;
836
+ };
837
+
826
838
  declare type SemaphorMatrixSortRule = {
827
839
  axis: 'row' | 'column';
828
840
  targetId?: string;
829
841
  direction: 'asc' | 'desc';
830
842
  by: {
831
- kind: 'label';
843
+ kind: 'member';
832
844
  } | {
833
845
  kind: 'field';
834
846
  field: SemaphorFieldRef;
@@ -1309,12 +1321,31 @@ declare type SemaphorTimeGrain = (typeof SEMAPHOR_TIME_GRAINS)[number];
1309
1321
 
1310
1322
  declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteTimeWindow;
1311
1323
 
1324
+ declare const TEMPORAL_BUCKET_PRESETS: readonly ["week_of_short", "week_of_long", "quarter_short", "quarter_long", "fiscal_quarter_short", "fiscal_year"];
1325
+
1326
+ declare type TemporalBucketFormat = {
1327
+ type: 'temporal_bucket';
1328
+ presentation: TemporalBucketPresentation;
1329
+ };
1330
+
1312
1331
  declare type TemporalBucketMetadata = {
1313
1332
  kind: 'temporal_bucket';
1314
1333
  granularity: SemaphorTimeGrain;
1315
1334
  calendar: Pick<CalendarContext, 'tz' | 'weekStart' | 'fiscalCalendar'>;
1316
1335
  };
1317
1336
 
1337
+ declare type TemporalBucketPresentation = {
1338
+ mode: 'auto';
1339
+ } | {
1340
+ mode: 'preset';
1341
+ preset: TemporalBucketPreset;
1342
+ } | {
1343
+ mode: 'pattern';
1344
+ pattern: string;
1345
+ };
1346
+
1347
+ declare type TemporalBucketPreset = (typeof TEMPORAL_BUCKET_PRESETS)[number];
1348
+
1318
1349
  export declare function validateSemaphorDataAppQuerySpecs(input: {
1319
1350
  queries: SemaphorDataAppQuerySpecEnvelope[];
1320
1351
  fieldCatalogs?: SemaphorDataAppFieldCatalog[];
@@ -26,6 +26,7 @@ declare type MatrixAxisLevelDescriptor = {
26
26
  label: string;
27
27
  field: SemaphorFieldRef;
28
28
  grain?: SemaphorMatrixTimeGrain;
29
+ temporalBucket?: TemporalBucketMetadata;
29
30
  subtotal?: SemaphorMatrixSubtotalOptions;
30
31
  };
31
32
 
@@ -146,7 +147,8 @@ declare type MatrixGridCell = {
146
147
 
147
148
  declare type MatrixGridColumn = {
148
149
  id: string;
149
- label: string;
150
+ /** Present only for measure and explicit total headings. */
151
+ label?: string;
150
152
  columnNodeId?: string;
151
153
  columnPath: MatrixMemberPathSegment[];
152
154
  measureInstanceId: string;
@@ -155,7 +157,8 @@ declare type MatrixGridColumn = {
155
157
 
156
158
  declare type MatrixGridHeaderCell = {
157
159
  id: string;
158
- label: string;
160
+ /** Present only for non-member headings and explicit total labels. */
161
+ label?: string;
159
162
  role: 'rowHeader' | 'columnHeader' | 'measureHeader' | 'subtotal' | 'grandTotal';
160
163
  colSpan: number;
161
164
  rowSpan: number;
@@ -169,7 +172,7 @@ declare type MatrixGridHeaderRow = {
169
172
  };
170
173
 
171
174
  export declare type MatrixGridProjection = {
172
- schemaVersion: 1;
175
+ schemaVersion: 2;
173
176
  shape: MatrixShape;
174
177
  rowHeaderLevels: MatrixGridRowHeaderLevel[];
175
178
  columnHeaderRows: MatrixGridHeaderRow[];
@@ -182,7 +185,8 @@ declare type MatrixGridRow = {
182
185
  rowNodeId: string;
183
186
  rowPath: MatrixMemberPathSegment[];
184
187
  depth: number;
185
- label: string;
188
+ /** Present only for non-temporal members and explicit total labels. */
189
+ label?: string;
186
190
  role: 'value' | 'rowSubtotal' | 'rowGrandTotal';
187
191
  isExpanded?: boolean;
188
192
  hasChildren?: boolean;
@@ -238,7 +242,8 @@ declare type MatrixMemberPathSegment = {
238
242
  instanceId: string;
239
243
  fieldKey: string;
240
244
  value: unknown;
241
- label: string;
245
+ /** Display-only source label for non-temporal members. */
246
+ label?: string;
242
247
  };
243
248
 
244
249
  declare type MatrixNode = {
@@ -246,7 +251,8 @@ declare type MatrixNode = {
246
251
  axis: 'row' | 'column';
247
252
  path: MatrixMemberPathSegment[];
248
253
  level: number;
249
- label: string;
254
+ /** Present only for non-temporal members and explicit total labels. */
255
+ label?: string;
250
256
  value: unknown;
251
257
  parentId?: string;
252
258
  hasChildren: boolean;
@@ -275,7 +281,7 @@ declare type MatrixPageInfo = {
275
281
 
276
282
  export declare type MatrixPayload = {
277
283
  kind: 'matrixPayload';
278
- schemaVersion: 1;
284
+ schemaVersion: 2;
279
285
  shape: MatrixShape;
280
286
  capabilities: MatrixCapability[];
281
287
  executionMetadata: MatrixExecutionMetadata;
@@ -1071,6 +1077,8 @@ export declare type SemaphorMatrixAxisLevel = {
1071
1077
  id?: string;
1072
1078
  field: SemaphorFieldRef;
1073
1079
  grain?: SemaphorMatrixTimeGrain;
1080
+ format?: TemporalBucketFormat;
1081
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
1074
1082
  label?: string;
1075
1083
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
1076
1084
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -1081,7 +1089,7 @@ export declare type SemaphorMatrixAxisLevelInput = SemaphorQueryField | Semaphor
1081
1089
  declare type SemaphorMatrixAxisSortRule = {
1082
1090
  direction: 'asc' | 'desc';
1083
1091
  by: {
1084
- kind: 'label';
1092
+ kind: 'member';
1085
1093
  } | {
1086
1094
  kind: 'field';
1087
1095
  field: SemaphorFieldRef;
@@ -1171,7 +1179,7 @@ export declare type SemaphorMatrixQuerySpec = Omit<SemaphorMatrixIntent, 'kind'
1171
1179
 
1172
1180
  declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
1173
1181
  kind: 'matrix';
1174
- schemaVersion: 1;
1182
+ schemaVersion: 2;
1175
1183
  intent?: SemaphorMatrixIntent;
1176
1184
  shape: MatrixShape;
1177
1185
  capabilities: MatrixCapability[];
@@ -1193,12 +1201,17 @@ declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
1193
1201
  expansion?: MatrixExpansionResponseHints;
1194
1202
  };
1195
1203
 
1204
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
1205
+ granularity: SemaphorMatrixTimeGrain;
1206
+ format: TemporalBucketFormat;
1207
+ };
1208
+
1196
1209
  export declare type SemaphorMatrixSortRule = {
1197
1210
  axis: 'row' | 'column';
1198
1211
  targetId?: string;
1199
1212
  direction: 'asc' | 'desc';
1200
1213
  by: {
1201
- kind: 'label';
1214
+ kind: 'member';
1202
1215
  } | {
1203
1216
  kind: 'field';
1204
1217
  field: SemaphorFieldRef;
@@ -1803,12 +1816,31 @@ export declare function SemaphorViewBoundary({ id, title, children, }: {
1803
1816
  children: ReactNode;
1804
1817
  }): ReactElement;
1805
1818
 
1819
+ declare const TEMPORAL_BUCKET_PRESETS: readonly ["week_of_short", "week_of_long", "quarter_short", "quarter_long", "fiscal_quarter_short", "fiscal_year"];
1820
+
1821
+ declare type TemporalBucketFormat = {
1822
+ type: 'temporal_bucket';
1823
+ presentation: TemporalBucketPresentation;
1824
+ };
1825
+
1806
1826
  declare type TemporalBucketMetadata = {
1807
1827
  kind: 'temporal_bucket';
1808
1828
  granularity: SemaphorTimeGrain;
1809
1829
  calendar: Pick<CalendarContext, 'tz' | 'weekStart' | 'fiscalCalendar'>;
1810
1830
  };
1811
1831
 
1832
+ declare type TemporalBucketPresentation = {
1833
+ mode: 'auto';
1834
+ } | {
1835
+ mode: 'preset';
1836
+ preset: TemporalBucketPreset;
1837
+ } | {
1838
+ mode: 'pattern';
1839
+ pattern: string;
1840
+ };
1841
+
1842
+ declare type TemporalBucketPreset = (typeof TEMPORAL_BUCKET_PRESETS)[number];
1843
+
1812
1844
  export declare function useClearInvalidSemaphorInputValue(input: SemaphorInputHandle, optionsResult: Pick<SemaphorInputOptionsQueryResult, 'options' | 'status'> | undefined): void;
1813
1845
 
1814
1846
  export declare function useSemaphorDevtools(): SemaphorDataAppDevtoolsState;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/common-types-Ci66eflG.cjs"),l=require("../chunks/token-types-D0i0IUX3.cjs"),t=require("../chunks/pivot-result-identity-CRUokNgm.cjs"),E=require("../chunks/report-runtime-context-DjYqLV-c.cjs");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_SEMANTIC_DOMAIN_ACCESS=l.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.resolveQueryColumnKeyMapEntry=t.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=t.resolveUniqueQueryColumnKeyMapEntry;exports.DEFAULT_CALENDAR_CONTEXT=E.DEFAULT_CALENDAR_CONTEXT;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/common-types-C57kJ59w.cjs"),l=require("../chunks/token-types-D7CaaI80.cjs"),t=require("../chunks/pivot-result-identity-Bb4EixVN.cjs"),E=require("../chunks/report-runtime-context-DqxS4wbi.cjs");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_SEMANTIC_DOMAIN_ACCESS=l.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.resolveQueryColumnKeyMapEntry=t.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=t.resolveUniqueQueryColumnKeyMapEntry;exports.DEFAULT_CALENDAR_CONTEXT=E.DEFAULT_CALENDAR_CONTEXT;
@@ -1,7 +1,7 @@
1
- import { a as s, C as r, D as E, E as l, P as C, g as o, d as t, h as A, b as u, c as T, i as _ } from "../chunks/common-types-F6qk6PPS.js";
2
- import { D } from "../chunks/token-types-CRpQJ4kv.js";
3
- import { r as n, a as L } from "../chunks/pivot-result-identity-C43Ai5Kr.js";
4
- import { D as d } from "../chunks/report-runtime-context-BJQDu2fV.js";
1
+ import { a as s, C as r, D as E, E as l, P as C, g as o, d as t, h as A, b as u, c as T, i as _ } from "../chunks/common-types-H51FLKB7.js";
2
+ import { D } from "../chunks/token-types-GbxRUozo.js";
3
+ import { r as n, a as L } from "../chunks/pivot-result-identity-DU1v-5Xk.js";
4
+ import { D as d } from "../chunks/report-runtime-context-SM6YO61_.js";
5
5
  export {
6
6
  s as CALCULATED_FIELD_ENTITY_MARKER,
7
7
  r as CONTROL_CARD_DEFAULT_VALUE,
@@ -3863,11 +3863,6 @@ export declare interface GroupByColumn extends BaseColumn {
3863
3863
  export declare interface GroupByField extends Field {
3864
3864
  role: 'groupby';
3865
3865
  granularity?: TimeGranularity;
3866
- /**
3867
- * Query transport policy for grouped temporal values. This is projected
3868
- * into executable card config and is not persisted authoring state.
3869
- */
3870
- dateValueMode?: 'canonical' | 'formatted';
3871
3866
  /**
3872
3867
  * Optional SQL expression for grouping (e.g., DATE_TRUNC('month', order_date)).
3873
3868
  * If present, used in SELECT and GROUP BY instead of just the column name.
@@ -4202,6 +4197,7 @@ declare type MatrixAxisLevelDescriptor = {
4202
4197
  label: string;
4203
4198
  field: SemaphorFieldRef;
4204
4199
  grain?: SemaphorMatrixTimeGrain;
4200
+ temporalBucket?: TemporalBucketMetadata;
4205
4201
  subtotal?: SemaphorMatrixSubtotalOptions;
4206
4202
  };
4207
4203
 
@@ -4352,7 +4348,8 @@ declare type MatrixGridCell = {
4352
4348
 
4353
4349
  declare type MatrixGridColumn = {
4354
4350
  id: string;
4355
- label: string;
4351
+ /** Present only for measure and explicit total headings. */
4352
+ label?: string;
4356
4353
  columnNodeId?: string;
4357
4354
  columnPath: MatrixMemberPathSegment[];
4358
4355
  measureInstanceId: string;
@@ -4361,7 +4358,8 @@ declare type MatrixGridColumn = {
4361
4358
 
4362
4359
  declare type MatrixGridHeaderCell = {
4363
4360
  id: string;
4364
- label: string;
4361
+ /** Present only for non-member headings and explicit total labels. */
4362
+ label?: string;
4365
4363
  role: 'rowHeader' | 'columnHeader' | 'measureHeader' | 'subtotal' | 'grandTotal';
4366
4364
  colSpan: number;
4367
4365
  rowSpan: number;
@@ -4375,7 +4373,7 @@ declare type MatrixGridHeaderRow = {
4375
4373
  };
4376
4374
 
4377
4375
  declare type MatrixGridProjection = {
4378
- schemaVersion: 1;
4376
+ schemaVersion: 2;
4379
4377
  shape: MatrixShape;
4380
4378
  rowHeaderLevels: MatrixGridRowHeaderLevel[];
4381
4379
  columnHeaderRows: MatrixGridHeaderRow[];
@@ -4388,7 +4386,8 @@ declare type MatrixGridRow = {
4388
4386
  rowNodeId: string;
4389
4387
  rowPath: MatrixMemberPathSegment[];
4390
4388
  depth: number;
4391
- label: string;
4389
+ /** Present only for non-temporal members and explicit total labels. */
4390
+ label?: string;
4392
4391
  role: 'value' | 'rowSubtotal' | 'rowGrandTotal';
4393
4392
  isExpanded?: boolean;
4394
4393
  hasChildren?: boolean;
@@ -4444,7 +4443,8 @@ declare type MatrixMemberPathSegment = {
4444
4443
  instanceId: string;
4445
4444
  fieldKey: string;
4446
4445
  value: unknown;
4447
- label: string;
4446
+ /** Display-only source label for non-temporal members. */
4447
+ label?: string;
4448
4448
  };
4449
4449
 
4450
4450
  declare type MatrixNode = {
@@ -4452,7 +4452,8 @@ declare type MatrixNode = {
4452
4452
  axis: 'row' | 'column';
4453
4453
  path: MatrixMemberPathSegment[];
4454
4454
  level: number;
4455
- label: string;
4455
+ /** Present only for non-temporal members and explicit total labels. */
4456
+ label?: string;
4456
4457
  value: unknown;
4457
4458
  parentId?: string;
4458
4459
  hasChildren: boolean;
@@ -4481,7 +4482,7 @@ declare type MatrixPageInfo = {
4481
4482
 
4482
4483
  declare type MatrixPayload = {
4483
4484
  kind: 'matrixPayload';
4484
- schemaVersion: 1;
4485
+ schemaVersion: 2;
4485
4486
  shape: MatrixShape;
4486
4487
  capabilities: MatrixCapability[];
4487
4488
  executionMetadata: MatrixExecutionMetadata;
@@ -4526,7 +4527,7 @@ declare type MatrixResultCell = {
4526
4527
 
4527
4528
  declare type MatrixShape = 'hierarchical' | 'pivot';
4528
4529
 
4529
- export declare function MatrixTableVisual({ card, result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4530
+ export declare function MatrixTableVisual({ card, result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, branchError, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4530
4531
 
4531
4532
  export declare type MatrixTableVisualProps = {
4532
4533
  card?: TCard;
@@ -4537,6 +4538,7 @@ export declare type MatrixTableVisualProps = {
4537
4538
  expansionState?: MatrixExpansionState;
4538
4539
  onExpansionChange?: (update: MatrixExpansionStateUpdate | MatrixColumnExpansionStateUpdate | MatrixBulkColumnExpansionStateUpdate | MatrixBulkRowExpansionStateUpdate) => void;
4539
4540
  loadingRowPathKeys?: Set<string>;
4541
+ branchError?: string;
4540
4542
  onSortChange?: (sortRules: SemaphorMatrixSortRule[]) => void;
4541
4543
  onLoadMoreRows?: (rowPath: MatrixMemberPathSegment[]) => void;
4542
4544
  };
@@ -4850,11 +4852,6 @@ export declare interface PivotByField extends Field {
4850
4852
  * so existing cards need no migration.
4851
4853
  */
4852
4854
  memberOrder?: PivotMemberOrder;
4853
- /**
4854
- * Query transport policy for grouped temporal pivot members. This is
4855
- * projected into executable config and is never persisted authoring state.
4856
- */
4857
- dateValueMode?: 'canonical' | 'formatted';
4858
4855
  }
4859
4856
 
4860
4857
  export declare interface PivotColumnSchema {
@@ -5581,6 +5578,8 @@ declare type SemaphorMatrixAxisLevel = {
5581
5578
  id?: string;
5582
5579
  field: SemaphorFieldRef;
5583
5580
  grain?: SemaphorMatrixTimeGrain;
5581
+ format?: TemporalBucketFormat;
5582
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
5584
5583
  label?: string;
5585
5584
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
5586
5585
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -5589,7 +5588,7 @@ declare type SemaphorMatrixAxisLevel = {
5589
5588
  declare type SemaphorMatrixAxisSortRule = {
5590
5589
  direction: 'asc' | 'desc';
5591
5590
  by: {
5592
- kind: 'label';
5591
+ kind: 'member';
5593
5592
  } | {
5594
5593
  kind: 'field';
5595
5594
  field: SemaphorFieldRef;
@@ -5646,7 +5645,7 @@ declare type SemaphorMatrixMemberPathSegment = {
5646
5645
 
5647
5646
  declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
5648
5647
  kind: 'matrix';
5649
- schemaVersion: 1;
5648
+ schemaVersion: 2;
5650
5649
  intent?: SemaphorMatrixIntent;
5651
5650
  shape: MatrixShape;
5652
5651
  capabilities: MatrixCapability[];
@@ -5668,12 +5667,17 @@ declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
5668
5667
  expansion?: MatrixExpansionResponseHints;
5669
5668
  };
5670
5669
 
5670
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
5671
+ granularity: SemaphorMatrixTimeGrain;
5672
+ format: TemporalBucketFormat;
5673
+ };
5674
+
5671
5675
  declare type SemaphorMatrixSortRule = {
5672
5676
  axis: 'row' | 'column';
5673
5677
  targetId?: string;
5674
5678
  direction: 'asc' | 'desc';
5675
5679
  by: {
5676
- kind: 'label';
5680
+ kind: 'member';
5677
5681
  } | {
5678
5682
  kind: 'field';
5679
5683
  field: SemaphorFieldRef;
@@ -1384,11 +1384,6 @@ declare interface GroupByColumn extends BaseColumn {
1384
1384
  declare interface GroupByField extends Field {
1385
1385
  role: 'groupby';
1386
1386
  granularity?: TimeGranularity;
1387
- /**
1388
- * Query transport policy for grouped temporal values. This is projected
1389
- * into executable card config and is not persisted authoring state.
1390
- */
1391
- dateValueMode?: 'canonical' | 'formatted';
1392
1387
  /**
1393
1388
  * Optional SQL expression for grouping (e.g., DATE_TRUNC('month', order_date)).
1394
1389
  * If present, used in SELECT and GROUP BY instead of just the column name.
@@ -1677,11 +1672,6 @@ declare interface PivotByField extends Field {
1677
1672
  * so existing cards need no migration.
1678
1673
  */
1679
1674
  memberOrder?: PivotMemberOrder;
1680
- /**
1681
- * Query transport policy for grouped temporal pivot members. This is
1682
- * projected into executable config and is never persisted authoring state.
1683
- */
1684
- dateValueMode?: 'canonical' | 'formatted';
1685
1675
  }
1686
1676
 
1687
1677
  /**
@@ -1857,6 +1847,8 @@ declare type SemaphorMatrixAxisLevel = {
1857
1847
  id?: string;
1858
1848
  field: SemaphorFieldRef;
1859
1849
  grain?: SemaphorMatrixTimeGrain;
1850
+ format?: TemporalBucketFormat;
1851
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
1860
1852
  label?: string;
1861
1853
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
1862
1854
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -1865,7 +1857,7 @@ declare type SemaphorMatrixAxisLevel = {
1865
1857
  declare type SemaphorMatrixAxisSortRule = {
1866
1858
  direction: 'asc' | 'desc';
1867
1859
  by: {
1868
- kind: 'label';
1860
+ kind: 'member';
1869
1861
  } | {
1870
1862
  kind: 'field';
1871
1863
  field: SemaphorFieldRef;
@@ -1920,12 +1912,17 @@ declare type SemaphorMatrixMemberPathSegment = {
1920
1912
  value: unknown;
1921
1913
  };
1922
1914
 
1915
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
1916
+ granularity: SemaphorMatrixTimeGrain;
1917
+ format: TemporalBucketFormat;
1918
+ };
1919
+
1923
1920
  declare type SemaphorMatrixSortRule = {
1924
1921
  axis: 'row' | 'column';
1925
1922
  targetId?: string;
1926
1923
  direction: 'asc' | 'desc';
1927
1924
  by: {
1928
- kind: 'label';
1925
+ kind: 'member';
1929
1926
  } | {
1930
1927
  kind: 'field';
1931
1928
  field: SemaphorFieldRef;
@@ -1776,11 +1776,6 @@ declare interface GroupByColumn extends BaseColumn {
1776
1776
  declare interface GroupByField extends Field {
1777
1777
  role: 'groupby';
1778
1778
  granularity?: TimeGranularity;
1779
- /**
1780
- * Query transport policy for grouped temporal values. This is projected
1781
- * into executable card config and is not persisted authoring state.
1782
- */
1783
- dateValueMode?: 'canonical' | 'formatted';
1784
1779
  /**
1785
1780
  * Optional SQL expression for grouping (e.g., DATE_TRUNC('month', order_date)).
1786
1781
  * If present, used in SELECT and GROUP BY instead of just the column name.
@@ -2182,11 +2177,6 @@ declare interface PivotByField extends Field {
2182
2177
  * so existing cards need no migration.
2183
2178
  */
2184
2179
  memberOrder?: PivotMemberOrder;
2185
- /**
2186
- * Query transport policy for grouped temporal pivot members. This is
2187
- * projected into executable config and is never persisted authoring state.
2188
- */
2189
- dateValueMode?: 'canonical' | 'formatted';
2190
2180
  }
2191
2181
 
2192
2182
  /**
@@ -2594,6 +2584,8 @@ declare type SemaphorMatrixAxisLevel = {
2594
2584
  id?: string;
2595
2585
  field: SemaphorFieldRef;
2596
2586
  grain?: SemaphorMatrixTimeGrain;
2587
+ format?: TemporalBucketFormat;
2588
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
2597
2589
  label?: string;
2598
2590
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
2599
2591
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -2602,7 +2594,7 @@ declare type SemaphorMatrixAxisLevel = {
2602
2594
  declare type SemaphorMatrixAxisSortRule = {
2603
2595
  direction: 'asc' | 'desc';
2604
2596
  by: {
2605
- kind: 'label';
2597
+ kind: 'member';
2606
2598
  } | {
2607
2599
  kind: 'field';
2608
2600
  field: SemaphorFieldRef;
@@ -2657,12 +2649,17 @@ declare type SemaphorMatrixMemberPathSegment = {
2657
2649
  value: unknown;
2658
2650
  };
2659
2651
 
2652
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
2653
+ granularity: SemaphorMatrixTimeGrain;
2654
+ format: TemporalBucketFormat;
2655
+ };
2656
+
2660
2657
  declare type SemaphorMatrixSortRule = {
2661
2658
  axis: 'row' | 'column';
2662
2659
  targetId?: string;
2663
2660
  direction: 'asc' | 'desc';
2664
2661
  by: {
2665
- kind: 'label';
2662
+ kind: 'member';
2666
2663
  } | {
2667
2664
  kind: 'field';
2668
2665
  field: SemaphorFieldRef;