react-semaphor 0.1.449 → 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 (147) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +119 -112
  3. package/dist/appearance/index.cjs +1 -1
  4. package/dist/appearance/index.js +1 -1
  5. package/dist/brand-studio/index.cjs +4 -4
  6. package/dist/brand-studio/index.js +15 -13
  7. package/dist/briefings/index.cjs +1 -1
  8. package/dist/briefings/index.js +39 -2131
  9. package/dist/chunks/{analyze-result-contract-T-0Ntzys.js → analyze-result-contract-BbRJ-C06.js} +1 -1
  10. package/dist/chunks/{analyze-result-contract-BHb7sUUW.cjs → analyze-result-contract-LPDNldic.cjs} +1 -1
  11. package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +1 -0
  12. package/dist/chunks/canonical-result-keys-D6avdjpA.js +467 -0
  13. package/dist/chunks/color-CJvdlFM_.js +2162 -0
  14. package/dist/chunks/color-CyB5o13F.cjs +4 -0
  15. package/dist/chunks/{common-types-CQ6SHfLk.cjs → common-types-C57kJ59w.cjs} +1 -1
  16. package/dist/chunks/{common-types-B7Jk3Rtj.js → common-types-H51FLKB7.js} +1 -1
  17. package/dist/chunks/contracts-CoCOpd_i.js +11 -0
  18. package/dist/chunks/contracts-CtB2VONT.cjs +1 -0
  19. package/dist/chunks/dashboard-briefing-launcher-Dwj1i7lr.cjs +26 -0
  20. package/dist/chunks/{dashboard-briefing-launcher-DCHiEkLE.js → dashboard-briefing-launcher-SYroFdae.js} +86 -84
  21. package/dist/chunks/{dashboard-controls-DwRFCcHV.js → dashboard-controls-1LpeU2sz.js} +15 -13
  22. package/dist/chunks/{dashboard-controls-CaFioayc.cjs → dashboard-controls-CpFoh7-A.cjs} +1 -1
  23. package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +1 -0
  24. package/dist/chunks/{dashboard-date-comparison-definition-Ba-clViK.js → dashboard-date-comparison-definition-DC3ekV2S.js} +1 -1
  25. package/dist/chunks/{dashboard-json-WoILbfTe.js → dashboard-json-D-T-sQxU.js} +25 -23
  26. package/dist/chunks/dashboard-json-DwSQopc_.cjs +1 -0
  27. package/dist/chunks/edit-dashboard-visual-BEmoQAET.cjs +172 -0
  28. package/dist/chunks/{edit-dashboard-visual-ciFhxqaI.js → edit-dashboard-visual-DqxUq4Bs.js} +6925 -6947
  29. package/dist/chunks/editor-action-buttons-18r2xwei.cjs +16 -0
  30. package/dist/chunks/{editor-action-buttons-BPo_45pM.js → editor-action-buttons-B2l3WIRC.js} +41 -39
  31. package/dist/chunks/format-types-CFHQoIuk.js +1350 -0
  32. package/dist/chunks/format-types-PSZZ7hG8.cjs +1 -0
  33. package/dist/chunks/index-Bn5wlkHt.cjs +4 -0
  34. package/dist/chunks/index-ByFbacH7.cjs +1 -0
  35. package/dist/chunks/index-CACdoqu3.js +318 -0
  36. package/dist/chunks/index-CLB_NGZ8.cjs +1392 -0
  37. package/dist/chunks/index-Ca784dpx.js +3714 -0
  38. package/dist/chunks/{index-CPuawpXJ.js → index-DAoS4BNU.js} +48514 -48484
  39. package/dist/chunks/index-DSKR3nKn.js +421 -0
  40. package/dist/chunks/index-F25jnH0p.cjs +1 -0
  41. package/dist/chunks/matrix-result-contract-CofATICL.js +437 -0
  42. package/dist/chunks/matrix-result-contract-zamd9euI.cjs +1 -0
  43. package/dist/chunks/pivot-header-presentation-DhyQXxKq.cjs +4 -0
  44. package/dist/chunks/pivot-header-presentation-ckYOQ4aZ.js +557 -0
  45. package/dist/chunks/{pivot-result-identity-CDLRT-YG.cjs → pivot-result-identity-Bb4EixVN.cjs} +1 -1
  46. package/dist/chunks/{pivot-result-identity-CwJWpKI7.js → pivot-result-identity-DU1v-5Xk.js} +1 -1
  47. package/dist/chunks/pivot-result-lifecycle-DmcF1ris.cjs +1 -0
  48. package/dist/chunks/pivot-result-lifecycle-sjzIOpvp.js +1641 -0
  49. package/dist/chunks/raw-temporal-contract-BtjH_G-d.cjs +1 -0
  50. package/dist/chunks/raw-temporal-contract-CxncLze5.js +64 -0
  51. package/dist/chunks/report-preferences-dialog-BgSvlDXa.cjs +1 -0
  52. package/dist/chunks/report-preferences-dialog-DDc2WUa0.js +723 -0
  53. package/dist/chunks/{report-runtime-context-C8LZFsqV.cjs → report-runtime-context-DqxS4wbi.cjs} +1 -1
  54. package/dist/chunks/{report-runtime-context-bCy3CVzK.js → report-runtime-context-SM6YO61_.js} +5 -5
  55. package/dist/chunks/saved-temporal-bucket-format-CFfWXRl9.cjs +1 -0
  56. package/dist/chunks/saved-temporal-bucket-format-SGAV0ivR.js +922 -0
  57. package/dist/chunks/{switch-BXet-Sno.js → switch-BeZW-HnS.js} +4350 -5249
  58. package/dist/chunks/switch-D-CCcfhc.cjs +138 -0
  59. package/dist/chunks/temporal-bucket-5UYEotyQ.js +810 -0
  60. package/dist/chunks/temporal-bucket-DHY1y9lq.cjs +1 -0
  61. package/dist/chunks/temporal-bucket-authoring-K1kE6R_z.js +222 -0
  62. package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +1 -0
  63. package/dist/chunks/{temporal-bucket-contract-ChDBWX8I.cjs → temporal-bucket-contract-D2-93DGr.cjs} +1 -1
  64. package/dist/chunks/{temporal-bucket-contract-_F6vNhhH.js → temporal-bucket-contract-D5d-xEl3.js} +1 -1
  65. package/dist/chunks/{token-types-BdQ8kHBm.cjs → token-types-D7CaaI80.cjs} +1 -1
  66. package/dist/chunks/{token-types-BHR58aTy.js → token-types-GbxRUozo.js} +1 -1
  67. package/dist/chunks/{update-policy-BxvYMYz0.cjs → update-policy-BmiOd0PB.cjs} +1 -1
  68. package/dist/chunks/{update-policy-g0rCQ9BM.js → update-policy-hednMF-0.js} +1 -1
  69. package/dist/chunks/validators-BDYprKI9.cjs +1 -0
  70. package/dist/chunks/{validators-Cs74WVie.js → validators-DEmd8Sin.js} +1561 -1197
  71. package/dist/dashboard/index.cjs +1 -1
  72. package/dist/dashboard/index.js +2 -2
  73. package/dist/dashboard-authoring/index.cjs +3 -3
  74. package/dist/dashboard-authoring/index.js +35 -32
  75. package/dist/data-app-builder/index.cjs +1 -1
  76. package/dist/data-app-builder/index.js +2 -2
  77. package/dist/data-app-codegen/index.cjs +1 -1
  78. package/dist/data-app-codegen/index.js +2 -2
  79. package/dist/data-app-codegen-node/index.cjs +1 -1
  80. package/dist/data-app-codegen-node/index.js +3 -3
  81. package/dist/data-app-sdk/index.cjs +1 -1
  82. package/dist/data-app-sdk/index.js +78 -77
  83. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  84. package/dist/data-app-sdk-adapters/index.js +29 -30
  85. package/dist/data-app-sdk-validation/index.cjs +1 -1
  86. package/dist/data-app-sdk-validation/index.js +21 -21
  87. package/dist/format-utils/index.cjs +3 -3
  88. package/dist/format-utils/index.js +156 -140
  89. package/dist/index.cjs +1 -1
  90. package/dist/index.js +157 -155
  91. package/dist/report-runtime-context/index.cjs +1 -1
  92. package/dist/report-runtime-context/index.js +2 -2
  93. package/dist/style.css +1 -1
  94. package/dist/surfboard/index.cjs +1 -1
  95. package/dist/surfboard/index.js +3 -3
  96. package/dist/types/analytics-protocol.d.ts +81 -11
  97. package/dist/types/briefings.d.ts +727 -19
  98. package/dist/types/dashboard-assistant.d.ts +37 -17
  99. package/dist/types/dashboard-authoring.d.ts +61 -14
  100. package/dist/types/dashboard.d.ts +137 -12
  101. package/dist/types/data-app-builder.d.ts +28 -2
  102. package/dist/types/data-app-codegen-node.d.ts +29 -3
  103. package/dist/types/data-app-codegen.d.ts +29 -3
  104. package/dist/types/data-app-sdk-adapters.d.ts +28 -2
  105. package/dist/types/data-app-sdk-validation.d.ts +51 -7
  106. package/dist/types/data-app-sdk.d.ts +55 -10
  107. package/dist/types/format-utils.d.ts +190 -3
  108. package/dist/types/index.cjs +1 -1
  109. package/dist/types/index.js +4 -4
  110. package/dist/types/main.d.ts +128 -33
  111. package/dist/types/shared.d.ts +14 -12
  112. package/dist/types/surfboard.d.ts +138 -13
  113. package/dist/types/types.d.ts +117 -23
  114. package/dist/types/value-format-preferences.d.ts +3 -0
  115. package/package.json +2 -1
  116. package/dist/chunks/card-config-utils-15sRtebL.cjs +0 -1
  117. package/dist/chunks/card-config-utils-BYZ5MJOh.js +0 -16
  118. package/dist/chunks/catalog-field-grounding-Bnx-3tE0.cjs +0 -1
  119. package/dist/chunks/catalog-field-grounding-S2jKwKGD.js +0 -100
  120. package/dist/chunks/dashboard-briefing-launcher-DDgDr2s3.cjs +0 -26
  121. package/dist/chunks/dashboard-date-comparison-definition-DZq0htjG.cjs +0 -1
  122. package/dist/chunks/dashboard-input-contract-DSt8dGzP.js +0 -18
  123. package/dist/chunks/dashboard-input-contract-DV3cshjz.cjs +0 -1
  124. package/dist/chunks/dashboard-json-CYtvwtvj.cjs +0 -1
  125. package/dist/chunks/edit-dashboard-visual-DwKcvlsF.cjs +0 -177
  126. package/dist/chunks/editor-action-buttons-BVmsk0Aj.cjs +0 -16
  127. package/dist/chunks/format-types-CSv0V7mm.cjs +0 -1
  128. package/dist/chunks/format-types-DZGgYj39.js +0 -1663
  129. package/dist/chunks/index-CJdxSyQq.js +0 -2578
  130. package/dist/chunks/index-DPv8_Ild.cjs +0 -1395
  131. package/dist/chunks/index-DRlMUglg.cjs +0 -4
  132. package/dist/chunks/metric-comparison-97zHGEx5.js +0 -387
  133. package/dist/chunks/metric-comparison-CUAJ8n4y.cjs +0 -1
  134. package/dist/chunks/pivot-result-lifecycle-BBabQ_da.js +0 -914
  135. package/dist/chunks/pivot-result-lifecycle-DPc0ANwk.cjs +0 -4
  136. package/dist/chunks/presentation-execution-BLfPTGX_.js +0 -637
  137. package/dist/chunks/presentation-execution-BTV-Q43g.cjs +0 -1
  138. package/dist/chunks/report-preferences-dialog-D9ZCGh9l.js +0 -691
  139. package/dist/chunks/report-preferences-dialog-DaqTEcac.cjs +0 -1
  140. package/dist/chunks/switch-Cjk6G06r.cjs +0 -138
  141. package/dist/chunks/temporal-bucket-BnPxGrAi.js +0 -446
  142. package/dist/chunks/temporal-bucket-authoring-CPTwHzvs.cjs +0 -1
  143. package/dist/chunks/temporal-bucket-authoring-CgOuakGW.js +0 -205
  144. package/dist/chunks/temporal-bucket-pMnV-4Nj.cjs +0 -1
  145. package/dist/chunks/temporal-result-owner-6peubmhU.js +0 -443
  146. package/dist/chunks/temporal-result-owner-f6-i65Fb.cjs +0 -1
  147. package/dist/chunks/validators-9D4KBqKD.cjs +0 -1
@@ -54,6 +54,8 @@ export declare function arrayToCSV(rows: (string | number | null | undefined)[][
54
54
  */
55
55
  export declare function arrayToCSVRow(values: (string | number | null | undefined)[], delimiter?: string): string;
56
56
 
57
+ export declare function assertRawTemporalChunkClassificationAgreement(inputs: readonly unknown[]): void;
58
+
57
59
  export declare function buildFlatTableExportTotalsFooter(params: {
58
60
  totalsByColumnId: FlatTableExportTotalsByColumnId;
59
61
  visibleColumns: readonly string[];
@@ -75,7 +77,7 @@ declare type CalendarContext = {
75
77
 
76
78
  export declare type CanonicalDurationUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
77
79
 
78
- export declare type CanonicalFormatSpec = NumericCanonicalFormat | DateCanonicalFormat | DurationCanonicalFormat | StringCanonicalFormat | TemporalBucketFormat;
80
+ export declare type CanonicalFormatSpec = NumericCanonicalFormat | DateCanonicalFormat | RawTemporalFormat | DurationCanonicalFormat | StringCanonicalFormat | TemporalBucketFormat;
79
81
 
80
82
  declare type CanonicalPivotResultBase = {
81
83
  columns: SemaphorResultColumn[];
@@ -95,6 +97,11 @@ export declare type CanonicalPivotResultState = 'loaded_empty' | 'loaded_valid';
95
97
 
96
98
  export declare type CanonicalPivotResultTransport = LoadedEmptyPivotResult | LoadedValidPivotResult;
97
99
 
100
+ export declare function classifyDeclaredSqlTemporalColumn(input: {
101
+ columnKey: string;
102
+ values: readonly (string | null)[];
103
+ }): SqlTemporalColumnClassification;
104
+
98
105
  export declare interface ColorRange {
99
106
  min: number;
100
107
  max: number;
@@ -163,6 +170,13 @@ export declare function createCanonicalPivotResultTransport(input: {
163
170
  columnMetadata?: Readonly<Record<string, PivotResultColumnClassification | undefined>>;
164
171
  }): CanonicalPivotResultTransport;
165
172
 
173
+ export declare function createPresentationExecutionSnapshot(input: {
174
+ reportContext: ReportRuntimeContext;
175
+ resolvedFormats: readonly ResolvedPresentationEntry[];
176
+ }): PresentationExecutionSnapshot;
177
+
178
+ export declare function createRawTemporalChunkClassificationEvidence(classifications: ReadonlyMap<string, SqlTemporalColumnClassification>): RawTemporalChunkClassificationEvidence;
179
+
166
180
  export declare interface CSVExportOptions {
167
181
  delimiter: ',' | ';' | '\t';
168
182
  includeHeaders: boolean;
@@ -197,6 +211,8 @@ export declare interface DateFormatOptions {
197
211
  locale?: string;
198
212
  }
199
213
 
214
+ export declare const DEFAULT_RESOLVED_TEMPORAL_STYLE_SET: ResolvedTemporalStyleSet;
215
+
200
216
  /**
201
217
  * Derives the authored identity expectations stored in a canonical pivot
202
218
  * lifecycle contract. Producers and cache-compatibility consumers must use
@@ -278,6 +294,12 @@ export declare function findResolvedNumericFormat(input: {
278
294
  target: NumericPresentationTarget;
279
295
  }): NumericCanonicalFormat | undefined;
280
296
 
297
+ export declare function findResolvedRawTemporalFormat(input: {
298
+ snapshot: PresentationExecutionSnapshot;
299
+ scope: PresentationScope;
300
+ target: RawTemporalPresentationTarget;
301
+ }): ResolvedRawTemporalFormat | undefined;
302
+
281
303
  export declare function findResolvedTemporalBucketFormat(input: {
282
304
  snapshot: PresentationExecutionSnapshot;
283
305
  scope: PresentationScope;
@@ -426,6 +448,13 @@ export declare function formatPivotDataRow(row: PivotRowData, pivotConfig: Pivot
426
448
  */
427
449
  export declare function formatPivotTableForCSV(data: PivotRowData[], pivotConfig: PivotExportConfig, formattingConfig: ExportFormattingConfig): string[];
428
450
 
451
+ /** Strict one-off convenience; row loops should prepare once per column. */
452
+ export declare function formatRawTemporalValue(input: {
453
+ value: string | null;
454
+ metadata: RawTemporalValueMetadata;
455
+ format: ResolvedRawTemporalFormat;
456
+ }): RawTemporalFormatResult;
457
+
429
458
  /**
430
459
  * Format relative time using date-fns (e.g., "2 days ago")
431
460
  *
@@ -555,6 +584,12 @@ declare type MetricResultAliasInput = {
555
584
  expression?: string;
556
585
  };
557
586
 
587
+ export declare class MissingResolvedRawTemporalFormatError extends Error {
588
+ readonly code = "missing_resolved_raw_temporal_format";
589
+ readonly deliveryBlocking = true;
590
+ constructor(columnKey: string);
591
+ }
592
+
558
593
  declare type MonthAlignedFiscalCalendar = {
559
594
  kind: 'month_aligned';
560
595
  yearStartMonth: number;
@@ -650,10 +685,17 @@ export declare function parsePresentationExecutionSnapshot(input: unknown): Pres
650
685
 
651
686
  export declare function parsePresentationScope(input: unknown, path?: string): PresentationScope;
652
687
 
688
+ export declare function parseRawTemporalChunkClassificationEvidence(input: unknown): RawTemporalChunkClassificationEvidence;
689
+
690
+ /** Strictly parses one raw temporal descriptor at a result boundary. */
691
+ export declare function parseRawTemporalValueMetadata(input: unknown): RawTemporalValueMetadata;
692
+
653
693
  export declare function parseResolvedNumericCanonicalFormat(input: unknown): NumericCanonicalFormatParseResult;
654
694
 
655
695
  export declare function parseResolvedPresentationEntries(input: unknown): ResolvedPresentationEntry[];
656
696
 
697
+ export declare function parseResolvedRawTemporalFormat(input: unknown): ResolvedRawTemporalFormat;
698
+
657
699
  export declare function parseResolvedTemporalBucketFormat(input: unknown): ResolvedTemporalBucketFormatParseResult;
658
700
 
659
701
  export declare function parseTemporalBucketValue(value: TemporalBucketValue, metadata: TemporalBucketMetadata): TemporalBucketValueParseResult;
@@ -753,6 +795,14 @@ export declare interface PivotRowData {
753
795
  isGrandTotal?: boolean;
754
796
  }
755
797
 
798
+ /** Strictly prepared per-column formatter for repeated cell rendering. */
799
+ export declare type PreparedRawTemporalFormatter = (value: string | null) => RawTemporalFormatResult;
800
+
801
+ export declare function prepareRawTemporalFormatter(input: {
802
+ metadata: RawTemporalValueMetadata;
803
+ format: ResolvedRawTemporalFormat;
804
+ }): PreparedRawTemporalFormatter;
805
+
756
806
  /**
757
807
  * Formats one physical aggregate group cell. Row metadata alone determines
758
808
  * subtotal/grand-total ownership; null is always passed to the value formatter
@@ -766,10 +816,17 @@ export declare function presentAggregateGroupRow<T = string>(input: {
766
816
  }): AggregateGroupRowPresentation<T>;
767
817
 
768
818
  export declare type PresentationExecutionSnapshot = {
819
+ version: 1;
769
820
  reportContext: ReportRuntimeContext;
770
821
  resolvedFormats: ResolvedPresentationEntry[];
771
822
  };
772
823
 
824
+ export declare class PresentationExecutionSnapshotError extends Error {
825
+ readonly code = "invalid_presentation_execution_snapshot";
826
+ readonly deliveryBlocking = true;
827
+ constructor(message: string);
828
+ }
829
+
773
830
  export declare type PresentationScope = {
774
831
  dashboardId: string;
775
832
  cardId?: string;
@@ -804,6 +861,66 @@ export declare interface QueryColumnKeyMapEntry {
804
861
 
805
862
  export declare type QueryColumnKeyRole = 'groupby' | 'metric' | 'pivotby' | 'detail';
806
863
 
864
+ export declare type RawTemporalChunkClassificationEvidence = {
865
+ version: 1;
866
+ columns: Record<string, RawTemporalChunkClassificationStatus>;
867
+ };
868
+
869
+ export declare type RawTemporalChunkClassificationStatus = 'empty' | 'invalid_only' | RawTemporalValueKind;
870
+
871
+ /** Normalized authored input for an ungrouped temporal result column. */
872
+ export declare type RawTemporalFormat = {
873
+ type: 'raw_temporal';
874
+ /** Authored display timezone; `auto` uses the resolved calendar timezone. */
875
+ timezone?: string;
876
+ /** Authored source timezone; `auto` means UTC for timezone-less values. */
877
+ sourceTimezone?: string;
878
+ presentation: {
879
+ mode: 'auto';
880
+ } | {
881
+ mode: 'pattern';
882
+ dialect: RawTemporalPatternDialect;
883
+ pattern: string;
884
+ };
885
+ };
886
+
887
+ export declare class RawTemporalFormatContractError extends Error {
888
+ readonly code: 'invalid_raw_temporal_format' | 'mixed_sql_temporal_semantics';
889
+ constructor(code: RawTemporalFormatContractError['code'], message: string);
890
+ }
891
+
892
+ export declare type RawTemporalFormatResult = {
893
+ ok: true;
894
+ text: string;
895
+ status: 'formatted' | 'empty';
896
+ } | {
897
+ ok: false;
898
+ text: string;
899
+ diagnostic: {
900
+ code: 'invalid_raw_temporal_value' | 'out_of_range_raw_temporal_value';
901
+ message: string;
902
+ };
903
+ };
904
+
905
+ export declare type RawTemporalPatternDialect = 'semaphor_tokens' | 'date_fns';
906
+
907
+ export declare type RawTemporalPresentationTarget = {
908
+ kind: 'column';
909
+ columnKey: string;
910
+ };
911
+
912
+ /** Authoritative meaning of one ungrouped temporal result column. */
913
+ export declare type RawTemporalValueKind = 'date' | 'wall_datetime' | 'instant';
914
+
915
+ /**
916
+ * Result-column metadata for an ungrouped temporal value. This descriptor is
917
+ * mutually exclusive with grouped `temporalBucket` metadata.
918
+ */
919
+ export declare type RawTemporalValueMetadata = {
920
+ kind: 'raw_temporal';
921
+ valueKind: RawTemporalValueKind;
922
+ };
923
+
807
924
  declare const REPORT_PREFERENCE_SOURCES: readonly ["viewer_user", "viewer_tenant_user", "session_initial", "viewer_tenant", "viewer_organization", "system_default"];
808
925
 
809
926
  declare type ReportPreferenceSource = (typeof REPORT_PREFERENCE_SOURCES)[number];
@@ -873,10 +990,47 @@ export declare type ResolvedNumericPresentationEntry = {
873
990
  format: NumericCanonicalFormat;
874
991
  };
875
992
 
876
- export declare type ResolvedPresentationEntry = ResolvedNumericPresentationEntry | ResolvedTemporalBucketPresentationEntry;
993
+ export declare type ResolvedPresentationEntry = ResolvedNumericPresentationEntry | ResolvedTemporalBucketPresentationEntry | ResolvedRawTemporalPresentationEntry;
877
994
 
878
- export declare type ResolvedTemporalBucketFormat = TemporalBucketFormat & {
995
+ export declare type ResolvedRawTemporalFormat = {
996
+ type: 'raw_temporal';
879
997
  locale: string;
998
+ calendarTimezone: string;
999
+ /** Resolved source timezone for timezone-less wall datetimes, when authored. */
1000
+ sourceTimezone?: string;
1001
+ presentation: {
1002
+ mode: 'auto';
1003
+ styles: ResolvedTemporalStyleSet;
1004
+ } | {
1005
+ mode: 'pattern';
1006
+ dialect: RawTemporalPatternDialect;
1007
+ pattern: string;
1008
+ };
1009
+ };
1010
+
1011
+ export declare type ResolvedRawTemporalPresentationEntry = {
1012
+ scope: PresentationScope;
1013
+ target: RawTemporalPresentationTarget;
1014
+ format: ResolvedRawTemporalFormat;
1015
+ };
1016
+
1017
+ export declare type ResolvedTemporalBucketFormat = {
1018
+ type: 'temporal_bucket';
1019
+ locale: string;
1020
+ presentation: {
1021
+ mode: 'auto';
1022
+ styles: ResolvedTemporalStyleSet;
1023
+ };
1024
+ } | {
1025
+ type: 'temporal_bucket';
1026
+ locale: string;
1027
+ presentation: {
1028
+ mode: 'preset';
1029
+ preset: TemporalBucketPreset;
1030
+ } | {
1031
+ mode: 'pattern';
1032
+ pattern: string;
1033
+ };
880
1034
  };
881
1035
 
882
1036
  export declare type ResolvedTemporalBucketFormatParseResult = {
@@ -901,6 +1055,14 @@ export declare type ResolvedTemporalBucketPresentationEntry = {
901
1055
  format: ResolvedTemporalBucketFormat;
902
1056
  };
903
1057
 
1058
+ export declare type ResolvedTemporalStyleSet = {
1059
+ dateStyle: LocaleStyle;
1060
+ dateTime: {
1061
+ dateStyle: LocaleStyle;
1062
+ timeStyle: LocaleStyle;
1063
+ };
1064
+ };
1065
+
904
1066
  declare type ResolvedValueFormatPreferences = {
905
1067
  locale: string;
906
1068
  dateStyle: LocaleStyle;
@@ -928,6 +1090,12 @@ export declare function resolveNumericPresentation(authored: NumericCanonicalFor
928
1090
 
929
1091
  export declare function resolveQueryColumnKeyMapEntry(columnKeyMap: QueryColumnKeyMap | undefined, fieldId: string, role: QueryColumnKeyRole): QueryColumnKeyMapEntry | undefined;
930
1092
 
1093
+ export declare function resolveRawTemporalFormat(input: {
1094
+ format?: RawTemporalFormat;
1095
+ preferences: ResolvedValueFormatPreferences;
1096
+ calendar: Pick<CalendarContext, 'tz'>;
1097
+ }): ResolvedRawTemporalFormat;
1098
+
931
1099
  export declare function resolveTemporalBucketPresentation(input: ResolveTemporalBucketPresentationInput): ResolvedTemporalBucketPresentation;
932
1100
 
933
1101
  export declare type ResolveTemporalBucketPresentationInput = {
@@ -938,6 +1106,7 @@ export declare type ResolveTemporalBucketPresentationInput = {
938
1106
  };
939
1107
  cardFormat?: TemporalBucketFormat;
940
1108
  locale: string;
1109
+ styles?: ResolvedTemporalStyleSet;
941
1110
  };
942
1111
 
943
1112
  /**
@@ -1054,6 +1223,7 @@ declare type SemaphorResultColumn = {
1054
1223
  source?: SemaphorFieldRef['source'];
1055
1224
  derivedField?: SemaphorDerivedFieldDefinition;
1056
1225
  temporalBucket?: TemporalBucketMetadata;
1226
+ rawTemporal?: RawTemporalValueMetadata;
1057
1227
  pivotIdentity?: SemaphorPivotResultColumnIdentity;
1058
1228
  };
1059
1229
 
@@ -1119,6 +1289,15 @@ declare type SemaphorSourceRef = {
1119
1289
 
1120
1290
  declare type SemaphorTimeGrain = (typeof SEMAPHOR_TIME_GRAINS)[number];
1121
1291
 
1292
+ export declare type SqlTemporalColumnClassification = {
1293
+ status: 'empty';
1294
+ } | {
1295
+ status: 'invalid_only';
1296
+ } | {
1297
+ status: 'classified';
1298
+ metadata: RawTemporalValueMetadata;
1299
+ };
1300
+
1122
1301
  export declare type StringCanonicalFormat = {
1123
1302
  type: 'string';
1124
1303
  prefix?: string;
@@ -1240,6 +1419,14 @@ export declare function validateCardExportPresentationSnapshot(input: {
1240
1419
  useFormattedValues: boolean;
1241
1420
  }): void;
1242
1421
 
1422
+ /**
1423
+ * Validates descriptor exclusivity and datatype compatibility without
1424
+ * inferring temporal meaning from a value or display label.
1425
+ */
1426
+ export declare function validateRawTemporalResultColumn(column: Pick<SemaphorResultColumn, 'dataType' | 'rawTemporal' | 'temporalBucket'>, options: {
1427
+ metadataRequired: boolean;
1428
+ }): RawTemporalValueMetadata | undefined;
1429
+
1243
1430
  export declare function validateTemporalBucketFormatApplicability(format: TemporalBucketFormat, granularity: SemaphorTimeGrain): TemporalBucketFormatApplicabilityResult;
1244
1431
 
1245
1432
  declare type WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/common-types-CQ6SHfLk.cjs"),l=require("../chunks/token-types-BdQ8kHBm.cjs"),t=require("../chunks/pivot-result-identity-CDLRT-YG.cjs"),E=require("../chunks/report-runtime-context-C8LZFsqV.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-B7Jk3Rtj.js";
2
- import { D } from "../chunks/token-types-BHR58aTy.js";
3
- import { r as n, a as L } from "../chunks/pivot-result-identity-CwJWpKI7.js";
4
- import { D as d } from "../chunks/report-runtime-context-bCy3CVzK.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,