react-semaphor 0.1.453 → 0.1.455

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-CFpX0WX3.js → dashboard-briefing-launcher-BgBMjAVe.js} +10 -10
  14. package/dist/chunks/{dashboard-briefing-launcher-mUXWuiOZ.cjs → dashboard-briefing-launcher-BmEHYblf.cjs} +1 -1
  15. package/dist/chunks/{dashboard-controls-SoNubIu1.cjs → dashboard-controls-BLNG_zHC.cjs} +1 -1
  16. package/dist/chunks/{dashboard-controls-BeYAmOJc.js → dashboard-controls-C-23EDdr.js} +10 -10
  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-BublPnQ4.cjs → dashboard-json-BJ_Z9EaL.cjs} +1 -1
  20. package/dist/chunks/{dashboard-json-DeLUagVV.js → dashboard-json-BTF-1Iwa.js} +8 -8
  21. package/dist/chunks/{edit-dashboard-visual-CrvPcO7A.cjs → edit-dashboard-visual-CR832BJc.cjs} +1 -1
  22. package/dist/chunks/{edit-dashboard-visual-Go0h82DR.js → edit-dashboard-visual-Mw-ZE7P7.js} +12 -12
  23. package/dist/chunks/{editor-action-buttons-1Lo0fIh7.cjs → editor-action-buttons-BVigIMg0.cjs} +1 -1
  24. package/dist/chunks/{editor-action-buttons-BFNtjFzO.js → editor-action-buttons-BxbFCerU.js} +6 -6
  25. package/dist/chunks/{index-BsH32bn1.js → index-B5Oy1eLv.js} +35305 -34883
  26. package/dist/chunks/index-C99Ow35Y.cjs +4 -0
  27. package/dist/chunks/{index-q12_nNUS.cjs → index-DIWJALWL.cjs} +231 -231
  28. package/dist/chunks/{index-B3ZugihZ.js → index-DrYILnh0.js} +799 -808
  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-BgE3Gzsp.cjs} +1 -1
  40. package/dist/chunks/{report-preferences-dialog-BNV7qXYH.js → report-preferences-dialog-CFenWkcH.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 -17
  85. package/dist/types/dashboard-assistant.d.ts +19 -22
  86. package/dist/types/dashboard-authoring.d.ts +9 -17
  87. package/dist/types/dashboard.d.ts +9 -17
  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 -26
  97. package/dist/types/shared.d.ts +9 -17
  98. package/dist/types/surfboard.d.ts +9 -17
  99. package/dist/types/types.d.ts +19 -22
  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
@@ -303,7 +303,7 @@ declare type SemaphorDataAppCodegenMatrixIntent = {
303
303
 
304
304
  declare type SemaphorDataAppCodegenMatrixSortRule = Omit<SemaphorMatrixSortRule, 'by'> & {
305
305
  by: {
306
- kind: 'label';
306
+ kind: 'member';
307
307
  } | {
308
308
  kind: 'field';
309
309
  field: SemaphorDataAppCodegenFieldRef;
@@ -797,6 +797,8 @@ declare type SemaphorMatrixAxisLevel = {
797
797
  id?: string;
798
798
  field: SemaphorFieldRef;
799
799
  grain?: SemaphorMatrixTimeGrain;
800
+ format?: TemporalBucketFormat;
801
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
800
802
  label?: string;
801
803
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
802
804
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -805,7 +807,7 @@ declare type SemaphorMatrixAxisLevel = {
805
807
  declare type SemaphorMatrixAxisSortRule = {
806
808
  direction: 'asc' | 'desc';
807
809
  by: {
808
- kind: 'label';
810
+ kind: 'member';
809
811
  } | {
810
812
  kind: 'field';
811
813
  field: SemaphorFieldRef;
@@ -860,12 +862,17 @@ declare type SemaphorMatrixMemberPathSegment = {
860
862
  value: unknown;
861
863
  };
862
864
 
865
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
866
+ granularity: SemaphorMatrixTimeGrain;
867
+ format: TemporalBucketFormat;
868
+ };
869
+
863
870
  declare type SemaphorMatrixSortRule = {
864
871
  axis: 'row' | 'column';
865
872
  targetId?: string;
866
873
  direction: 'asc' | 'desc';
867
874
  by: {
868
- kind: 'label';
875
+ kind: 'member';
869
876
  } | {
870
877
  kind: 'field';
871
878
  field: SemaphorFieldRef;
@@ -1114,6 +1121,25 @@ declare type SemaphorTimeGrain = (typeof SEMAPHOR_TIME_GRAINS)[number];
1114
1121
 
1115
1122
  declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteTimeWindow;
1116
1123
 
1124
+ declare const TEMPORAL_BUCKET_PRESETS: readonly ["week_of_short", "week_of_long", "quarter_short", "quarter_long", "fiscal_quarter_short", "fiscal_year"];
1125
+
1126
+ declare type TemporalBucketFormat = {
1127
+ type: 'temporal_bucket';
1128
+ presentation: TemporalBucketPresentation;
1129
+ };
1130
+
1131
+ declare type TemporalBucketPresentation = {
1132
+ mode: 'auto';
1133
+ } | {
1134
+ mode: 'preset';
1135
+ preset: TemporalBucketPreset;
1136
+ } | {
1137
+ mode: 'pattern';
1138
+ pattern: string;
1139
+ };
1140
+
1141
+ declare type TemporalBucketPreset = (typeof TEMPORAL_BUCKET_PRESETS)[number];
1142
+
1117
1143
  export declare function validateCodegenSummary(value: unknown): string[];
1118
1144
 
1119
1145
  export declare function validateSemaphorDataAppCodegenSummary(value: unknown): {
@@ -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,
@@ -2633,11 +2633,6 @@ export declare type DeleteBriefingRunResponse = {
2633
2633
  */
2634
2634
  export declare interface DetailField extends Omit<Field, 'role' | 'granularity'> {
2635
2635
  role: 'detail';
2636
- /**
2637
- * Query transport policy for ungrouped temporal values. This marker is
2638
- * projected into executable config and is never persisted authoring state.
2639
- */
2640
- dateValueMode?: 'canonical' | 'formatted';
2641
2636
  dateFormat?: DateFormatValue;
2642
2637
  customFormat?: string;
2643
2638
  /**
@@ -3863,11 +3858,6 @@ export declare interface GroupByColumn extends BaseColumn {
3863
3858
  export declare interface GroupByField extends Field {
3864
3859
  role: 'groupby';
3865
3860
  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
3861
  /**
3872
3862
  * Optional SQL expression for grouping (e.g., DATE_TRUNC('month', order_date)).
3873
3863
  * If present, used in SELECT and GROUP BY instead of just the column name.
@@ -4202,6 +4192,7 @@ declare type MatrixAxisLevelDescriptor = {
4202
4192
  label: string;
4203
4193
  field: SemaphorFieldRef;
4204
4194
  grain?: SemaphorMatrixTimeGrain;
4195
+ temporalBucket?: TemporalBucketMetadata;
4205
4196
  subtotal?: SemaphorMatrixSubtotalOptions;
4206
4197
  };
4207
4198
 
@@ -4352,7 +4343,8 @@ declare type MatrixGridCell = {
4352
4343
 
4353
4344
  declare type MatrixGridColumn = {
4354
4345
  id: string;
4355
- label: string;
4346
+ /** Present only for measure and explicit total headings. */
4347
+ label?: string;
4356
4348
  columnNodeId?: string;
4357
4349
  columnPath: MatrixMemberPathSegment[];
4358
4350
  measureInstanceId: string;
@@ -4361,7 +4353,8 @@ declare type MatrixGridColumn = {
4361
4353
 
4362
4354
  declare type MatrixGridHeaderCell = {
4363
4355
  id: string;
4364
- label: string;
4356
+ /** Present only for non-member headings and explicit total labels. */
4357
+ label?: string;
4365
4358
  role: 'rowHeader' | 'columnHeader' | 'measureHeader' | 'subtotal' | 'grandTotal';
4366
4359
  colSpan: number;
4367
4360
  rowSpan: number;
@@ -4375,7 +4368,7 @@ declare type MatrixGridHeaderRow = {
4375
4368
  };
4376
4369
 
4377
4370
  declare type MatrixGridProjection = {
4378
- schemaVersion: 1;
4371
+ schemaVersion: 2;
4379
4372
  shape: MatrixShape;
4380
4373
  rowHeaderLevels: MatrixGridRowHeaderLevel[];
4381
4374
  columnHeaderRows: MatrixGridHeaderRow[];
@@ -4388,7 +4381,8 @@ declare type MatrixGridRow = {
4388
4381
  rowNodeId: string;
4389
4382
  rowPath: MatrixMemberPathSegment[];
4390
4383
  depth: number;
4391
- label: string;
4384
+ /** Present only for non-temporal members and explicit total labels. */
4385
+ label?: string;
4392
4386
  role: 'value' | 'rowSubtotal' | 'rowGrandTotal';
4393
4387
  isExpanded?: boolean;
4394
4388
  hasChildren?: boolean;
@@ -4444,7 +4438,8 @@ declare type MatrixMemberPathSegment = {
4444
4438
  instanceId: string;
4445
4439
  fieldKey: string;
4446
4440
  value: unknown;
4447
- label: string;
4441
+ /** Display-only source label for non-temporal members. */
4442
+ label?: string;
4448
4443
  };
4449
4444
 
4450
4445
  declare type MatrixNode = {
@@ -4452,7 +4447,8 @@ declare type MatrixNode = {
4452
4447
  axis: 'row' | 'column';
4453
4448
  path: MatrixMemberPathSegment[];
4454
4449
  level: number;
4455
- label: string;
4450
+ /** Present only for non-temporal members and explicit total labels. */
4451
+ label?: string;
4456
4452
  value: unknown;
4457
4453
  parentId?: string;
4458
4454
  hasChildren: boolean;
@@ -4481,7 +4477,7 @@ declare type MatrixPageInfo = {
4481
4477
 
4482
4478
  declare type MatrixPayload = {
4483
4479
  kind: 'matrixPayload';
4484
- schemaVersion: 1;
4480
+ schemaVersion: 2;
4485
4481
  shape: MatrixShape;
4486
4482
  capabilities: MatrixCapability[];
4487
4483
  executionMetadata: MatrixExecutionMetadata;
@@ -4526,7 +4522,7 @@ declare type MatrixResultCell = {
4526
4522
 
4527
4523
  declare type MatrixShape = 'hierarchical' | 'pivot';
4528
4524
 
4529
- export declare function MatrixTableVisual({ card, result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4525
+ export declare function MatrixTableVisual({ card, result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, branchError, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4530
4526
 
4531
4527
  export declare type MatrixTableVisualProps = {
4532
4528
  card?: TCard;
@@ -4537,6 +4533,7 @@ export declare type MatrixTableVisualProps = {
4537
4533
  expansionState?: MatrixExpansionState;
4538
4534
  onExpansionChange?: (update: MatrixExpansionStateUpdate | MatrixColumnExpansionStateUpdate | MatrixBulkColumnExpansionStateUpdate | MatrixBulkRowExpansionStateUpdate) => void;
4539
4535
  loadingRowPathKeys?: Set<string>;
4536
+ branchError?: string;
4540
4537
  onSortChange?: (sortRules: SemaphorMatrixSortRule[]) => void;
4541
4538
  onLoadMoreRows?: (rowPath: MatrixMemberPathSegment[]) => void;
4542
4539
  };
@@ -4850,11 +4847,6 @@ export declare interface PivotByField extends Field {
4850
4847
  * so existing cards need no migration.
4851
4848
  */
4852
4849
  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
4850
  }
4859
4851
 
4860
4852
  export declare interface PivotColumnSchema {
@@ -5581,6 +5573,8 @@ declare type SemaphorMatrixAxisLevel = {
5581
5573
  id?: string;
5582
5574
  field: SemaphorFieldRef;
5583
5575
  grain?: SemaphorMatrixTimeGrain;
5576
+ format?: TemporalBucketFormat;
5577
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
5584
5578
  label?: string;
5585
5579
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
5586
5580
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -5589,7 +5583,7 @@ declare type SemaphorMatrixAxisLevel = {
5589
5583
  declare type SemaphorMatrixAxisSortRule = {
5590
5584
  direction: 'asc' | 'desc';
5591
5585
  by: {
5592
- kind: 'label';
5586
+ kind: 'member';
5593
5587
  } | {
5594
5588
  kind: 'field';
5595
5589
  field: SemaphorFieldRef;
@@ -5646,7 +5640,7 @@ declare type SemaphorMatrixMemberPathSegment = {
5646
5640
 
5647
5641
  declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
5648
5642
  kind: 'matrix';
5649
- schemaVersion: 1;
5643
+ schemaVersion: 2;
5650
5644
  intent?: SemaphorMatrixIntent;
5651
5645
  shape: MatrixShape;
5652
5646
  capabilities: MatrixCapability[];
@@ -5668,12 +5662,17 @@ declare type SemaphorMatrixResult = SemaphorAnalyticsResultBase & {
5668
5662
  expansion?: MatrixExpansionResponseHints;
5669
5663
  };
5670
5664
 
5665
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
5666
+ granularity: SemaphorMatrixTimeGrain;
5667
+ format: TemporalBucketFormat;
5668
+ };
5669
+
5671
5670
  declare type SemaphorMatrixSortRule = {
5672
5671
  axis: 'row' | 'column';
5673
5672
  targetId?: string;
5674
5673
  direction: 'asc' | 'desc';
5675
5674
  by: {
5676
- kind: 'label';
5675
+ kind: 'member';
5677
5676
  } | {
5678
5677
  kind: 'field';
5679
5678
  field: SemaphorFieldRef;
@@ -736,11 +736,6 @@ declare type DefaultDateFilter = RelativeDateFilter | FixedMonthDefaultDateFilte
736
736
  */
737
737
  declare interface DetailField extends Omit<Field, 'role' | 'granularity'> {
738
738
  role: 'detail';
739
- /**
740
- * Query transport policy for ungrouped temporal values. This marker is
741
- * projected into executable config and is never persisted authoring state.
742
- */
743
- dateValueMode?: 'canonical' | 'formatted';
744
739
  dateFormat?: DateFormatValue;
745
740
  customFormat?: string;
746
741
  /**
@@ -1384,11 +1379,6 @@ declare interface GroupByColumn extends BaseColumn {
1384
1379
  declare interface GroupByField extends Field {
1385
1380
  role: 'groupby';
1386
1381
  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
1382
  /**
1393
1383
  * Optional SQL expression for grouping (e.g., DATE_TRUNC('month', order_date)).
1394
1384
  * If present, used in SELECT and GROUP BY instead of just the column name.
@@ -1677,11 +1667,6 @@ declare interface PivotByField extends Field {
1677
1667
  * so existing cards need no migration.
1678
1668
  */
1679
1669
  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
1670
  }
1686
1671
 
1687
1672
  /**
@@ -1857,6 +1842,8 @@ declare type SemaphorMatrixAxisLevel = {
1857
1842
  id?: string;
1858
1843
  field: SemaphorFieldRef;
1859
1844
  grain?: SemaphorMatrixTimeGrain;
1845
+ format?: TemporalBucketFormat;
1846
+ semanticTemporalPresentation?: SemaphorMatrixSemanticTemporalPresentation;
1860
1847
  label?: string;
1861
1848
  subtotal?: boolean | SemaphorMatrixSubtotalOptions;
1862
1849
  sortBy?: SemaphorMatrixAxisSortRule;
@@ -1865,7 +1852,7 @@ declare type SemaphorMatrixAxisLevel = {
1865
1852
  declare type SemaphorMatrixAxisSortRule = {
1866
1853
  direction: 'asc' | 'desc';
1867
1854
  by: {
1868
- kind: 'label';
1855
+ kind: 'member';
1869
1856
  } | {
1870
1857
  kind: 'field';
1871
1858
  field: SemaphorFieldRef;
@@ -1920,12 +1907,17 @@ declare type SemaphorMatrixMemberPathSegment = {
1920
1907
  value: unknown;
1921
1908
  };
1922
1909
 
1910
+ declare type SemaphorMatrixSemanticTemporalPresentation = {
1911
+ granularity: SemaphorMatrixTimeGrain;
1912
+ format: TemporalBucketFormat;
1913
+ };
1914
+
1923
1915
  declare type SemaphorMatrixSortRule = {
1924
1916
  axis: 'row' | 'column';
1925
1917
  targetId?: string;
1926
1918
  direction: 'asc' | 'desc';
1927
1919
  by: {
1928
- kind: 'label';
1920
+ kind: 'member';
1929
1921
  } | {
1930
1922
  kind: 'field';
1931
1923
  field: SemaphorFieldRef;