react-semaphor 0.1.428 → 0.1.429

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 (96) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +72 -71
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +5 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +1031 -622
  7. package/dist/chunks/analyze-result-contract-BswhsmWT.js +1 -0
  8. package/dist/chunks/{analyze-result-contract-DnfF8kBb.js → analyze-result-contract-CfOBEwaC.js} +681 -759
  9. package/dist/chunks/{code-editor-CojfM3qp.js → code-editor-C65eEYyU.js} +2980 -2960
  10. package/dist/chunks/code-editor-DOh3aYEh.js +138 -0
  11. package/dist/chunks/{comparison-document-migration-b6c3xiWh.js → comparison-document-migration-DbU_BTxR.js} +1 -1
  12. package/dist/chunks/{comparison-document-migration-BJH1idOd.js → comparison-document-migration-Dj6xZMCb.js} +2 -2
  13. package/dist/chunks/csv-utils-Co0WxHke.js +4 -0
  14. package/dist/chunks/csv-utils-suxSkJGj.js +376 -0
  15. package/dist/chunks/dashboard-CQfAvRYI.js +1401 -0
  16. package/dist/chunks/{dashboard-509sbC4_.js → dashboard-agBXhvKo.js} +47563 -44929
  17. package/dist/chunks/{dashboard-briefing-launcher-B-ZTWJwo.js → dashboard-briefing-launcher-CkH_pthg.js} +1 -1
  18. package/dist/chunks/{dashboard-briefing-launcher-DIdYHNTq.js → dashboard-briefing-launcher-gBNNKqoH.js} +100 -99
  19. package/dist/chunks/{dashboard-controls-CWprw-Pb.js → dashboard-controls-CAZnIGfT.js} +2 -2
  20. package/dist/chunks/{dashboard-controls-CbRzWo1N.js → dashboard-controls-CoIxUTvH.js} +114 -113
  21. package/dist/chunks/{dashboard-json-jO4GQfZk.js → dashboard-json-BMcPjL8-.js} +18 -17
  22. package/dist/chunks/dashboard-json-D4hFrMkX.js +1 -0
  23. package/dist/chunks/{edit-dashboard-visual-KgQTjqWp.js → edit-dashboard-visual-Bc8qNfSr.js} +8721 -8481
  24. package/dist/chunks/edit-dashboard-visual-onhUUXlw.js +182 -0
  25. package/dist/chunks/{metric-comparison-CWweq9RG.js → metric-comparison-CPoDx56y.js} +1 -1
  26. package/dist/chunks/{metric-comparison-BKgkMy9r.js → metric-comparison-DVy3fll_.js} +1 -1
  27. package/dist/chunks/numeric-presentation-CGTcqocU.js +517 -0
  28. package/dist/chunks/numeric-presentation-Dlb-Dk4c.js +1 -0
  29. package/dist/chunks/report-preferences-dialog-CPptr_V9.js +690 -0
  30. package/dist/chunks/report-preferences-dialog-DV_5aHrS.js +1 -0
  31. package/dist/chunks/source-identity-5OPV4gvg.js +92 -0
  32. package/dist/chunks/source-identity-Cbo2LOHQ.js +1 -0
  33. package/dist/chunks/{update-policy-CY2k-pJP.js → update-policy-De2NswtM.js} +1 -1
  34. package/dist/chunks/{update-policy-BgONreNd.js → update-policy-DnF_74zC.js} +1 -1
  35. package/dist/chunks/{use-create-flow-overlay-state-BiMYdjZP.js → use-create-flow-overlay-state-Bs6gqgjo.js} +1 -1
  36. package/dist/chunks/{use-create-flow-overlay-state-CGsLzp9A.js → use-create-flow-overlay-state-CgQbCrni.js} +97 -96
  37. package/dist/chunks/validators-B2vUAqTf.js +1 -0
  38. package/dist/chunks/{validators-Cz-XuORM.js → validators-Bce_J7Vd.js} +19 -13
  39. package/dist/dashboard/index.cjs +1 -1
  40. package/dist/dashboard/index.js +1 -1
  41. package/dist/dashboard-authoring/index.cjs +3 -3
  42. package/dist/dashboard-authoring/index.js +20 -19
  43. package/dist/data-app-builder/index.cjs +1 -1
  44. package/dist/data-app-builder/index.js +50 -50
  45. package/dist/data-app-codegen/index.cjs +1 -1
  46. package/dist/data-app-codegen/index.js +2 -2
  47. package/dist/data-app-codegen-node/index.cjs +1 -1
  48. package/dist/data-app-codegen-node/index.js +3 -3
  49. package/dist/data-app-sdk/index.cjs +2 -2
  50. package/dist/data-app-sdk/index.js +27 -26
  51. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  52. package/dist/data-app-sdk-adapters/index.js +25 -24
  53. package/dist/data-app-sdk-validation/index.cjs +1 -1
  54. package/dist/data-app-sdk-validation/index.js +57 -55
  55. package/dist/format-utils/index.cjs +2 -5
  56. package/dist/format-utils/index.js +136 -161
  57. package/dist/index.cjs +1 -1
  58. package/dist/index.js +158 -155
  59. package/dist/report-runtime-context/index.cjs +1 -0
  60. package/dist/report-runtime-context/index.js +394 -0
  61. package/dist/style.css +1 -1
  62. package/dist/surfboard/index.cjs +1 -1
  63. package/dist/surfboard/index.js +7 -6
  64. package/dist/types/analytics-protocol.d.ts +0 -4
  65. package/dist/types/briefings.d.ts +216 -19
  66. package/dist/types/dashboard-assistant.d.ts +0 -2
  67. package/dist/types/dashboard-authoring.d.ts +34 -9
  68. package/dist/types/dashboard.d.ts +93 -9
  69. package/dist/types/data-app-builder.d.ts +0 -1
  70. package/dist/types/data-app-codegen-node.d.ts +6 -28
  71. package/dist/types/data-app-codegen.d.ts +6 -28
  72. package/dist/types/data-app-sdk-adapters.d.ts +6 -28
  73. package/dist/types/data-app-sdk-validation.d.ts +6 -29
  74. package/dist/types/data-app-sdk.d.ts +6 -31
  75. package/dist/types/format-utils.d.ts +128 -4
  76. package/dist/types/index.cjs +1 -1
  77. package/dist/types/index.js +10 -13
  78. package/dist/types/main.d.ts +249 -89
  79. package/dist/types/report-runtime-context.d.ts +99 -0
  80. package/dist/types/shared.d.ts +34 -9
  81. package/dist/types/surfboard.d.ts +119 -16
  82. package/dist/types/types.d.ts +156 -73
  83. package/dist/types/value-format-preferences.d.ts +126 -0
  84. package/dist/value-format-preferences/index.cjs +1 -0
  85. package/dist/value-format-preferences/index.js +635 -0
  86. package/package.json +11 -1
  87. package/dist/chunks/analyze-result-contract-ege_u6Nl.js +0 -1
  88. package/dist/chunks/calendar-preferences-dialog-BF9bNAF_.js +0 -457
  89. package/dist/chunks/calendar-preferences-dialog-_L9eBQfj.js +0 -1
  90. package/dist/chunks/code-editor-BoowcKU0.js +0 -138
  91. package/dist/chunks/dashboard-CMDXBLnG.js +0 -1402
  92. package/dist/chunks/dashboard-json-BEZrxx_k.js +0 -1
  93. package/dist/chunks/date-formatter-BTTYdAik.js +0 -1
  94. package/dist/chunks/date-formatter-D-89jTjG.js +0 -514
  95. package/dist/chunks/edit-dashboard-visual-D3uhqgm3.js +0 -182
  96. package/dist/chunks/validators-B4VMLX3_.js +0 -1
@@ -32,6 +32,8 @@ declare type Actions = {
32
32
  };
33
33
 
34
34
  declare type Actions_2 = {
35
+ applyResolvedCalendarPreferences: (resolved: CalendarPreferencesResponse['resolved'], sources: ResolvedCalendarPreferenceSources) => void;
36
+ applyResolvedValueFormatPreferences: (resolved: ResolvedValueFormatPreferences, sources: ResolvedValueFormatPreferenceSources) => void;
35
37
  triggerReload: () => void;
36
38
  setAiContext: (aiContext: DashboardAIContext) => void;
37
39
  setHandleOpenAssistantProfile: (handleOpenAssistantProfile: () => void) => void;
@@ -74,12 +76,15 @@ declare type Actions_2 = {
74
76
  semanticExecutionPayload?: SemanticExecutionPayload;
75
77
  dashboardInputValues?: DashboardInputValues;
76
78
  dashboardInputReferenceTime?: string;
79
+ reportContext?: ReportRuntimeContext;
77
80
  }) => void;
78
81
  setDashboardWithFilterValues: (dashboard: TDashboard, filterValues: TFilterValue[], runtimeOverrides?: Record<string, unknown>, options?: {
79
82
  selectedSheetId?: string | null;
80
83
  semanticExecutionPayload?: SemanticExecutionPayload;
81
84
  dashboardInputValues?: DashboardInputValues;
82
85
  dashboardInputReferenceTime?: string;
86
+ reportContext?: ReportRuntimeContext;
87
+ authToken?: AuthToken;
83
88
  }) => void;
84
89
  hydrateRuntimeControlValues: (dashboard: TDashboard, runtimeOverrides?: Record<string, unknown>) => void;
85
90
  mergeSemanticExecutionPayload: (semanticExecutionPayload: SemanticExecutionPayload) => void;
@@ -463,6 +468,7 @@ declare type AsyncMutation<TInput, TOutput> = {
463
468
 
464
469
  export declare type AuthoritativeExportFormattingConfig = ExportFormattingConfig & {
465
470
  comparisonPresentation: ComparisonPresentationSpec;
471
+ resolvedNumericFormats: NumericPresentationSnapshotEntry[];
466
472
  };
467
473
 
468
474
  export declare type AuthToken = {
@@ -554,6 +560,45 @@ declare const BRIEFING_ARTIFACT_FORMATS: readonly ["markdown", "html"];
554
560
 
555
561
  declare const BRIEFING_KIND: "BRIEFING";
556
562
 
563
+ declare type BriefingAppearanceColorTokens = Partial<{
564
+ background: string;
565
+ foreground: string;
566
+ muted: string;
567
+ mutedForeground: string;
568
+ border: string;
569
+ primary: string;
570
+ primaryForeground: string;
571
+ positive: string;
572
+ negative: string;
573
+ warning: string;
574
+ info: string;
575
+ }>;
576
+
577
+ declare type BriefingAppearanceScheme = {
578
+ tokens?: BriefingAppearanceTokens;
579
+ components?: {
580
+ chart?: {
581
+ palette?: string[];
582
+ };
583
+ };
584
+ };
585
+
586
+ declare type BriefingAppearanceSpec = {
587
+ version?: number;
588
+ schemes?: {
589
+ light?: BriefingAppearanceScheme;
590
+ dark?: BriefingAppearanceScheme;
591
+ };
592
+ };
593
+
594
+ declare type BriefingAppearanceTokens = {
595
+ color?: BriefingAppearanceColorTokens;
596
+ typography?: {
597
+ fontFamily?: string;
598
+ monoFontFamily?: string;
599
+ };
600
+ };
601
+
557
602
  export declare type BriefingArtifactFormat = 'markdown' | 'html';
558
603
 
559
604
  declare type BriefingArtifactFormat_2 = (typeof BRIEFING_ARTIFACT_FORMATS)[number];
@@ -838,8 +883,18 @@ export declare type BriefingFormValidationResult = {
838
883
  issues: BriefingFormValidationIssue[];
839
884
  };
840
885
 
886
+ declare type BriefingFragments = {
887
+ preHeaderText?: string;
888
+ headerBannerHtml?: string;
889
+ signatureHtml?: string;
890
+ footerHtml?: string;
891
+ disclaimerHtml?: string;
892
+ unsubscribeUrl?: string;
893
+ };
894
+
841
895
  export declare type BriefingJobConfig = {
842
896
  kind: BriefingKind;
897
+ reportContext: ReportRuntimeContext;
843
898
  source: BriefingSource;
844
899
  body: BriefingBody;
845
900
  attachments: BriefingAttachment[];
@@ -851,6 +906,7 @@ export declare type BriefingKind = typeof BRIEFING_KIND;
851
906
 
852
907
  export declare type BriefingLimits = {
853
908
  maxToolCalls?: number;
909
+ maxPlanningIterations?: number;
854
910
  maxRows?: number;
855
911
  timeoutMs?: number;
856
912
  };
@@ -900,6 +956,10 @@ export declare type BriefingPresentation = {
900
956
  audience?: string;
901
957
  tone?: string;
902
958
  format?: string;
959
+ appearance?: BriefingAppearanceSpec;
960
+ brandOverrides?: BriefingThemeOverrides;
961
+ fragments?: BriefingFragments;
962
+ viewUrl?: string;
903
963
  };
904
964
 
905
965
  export declare type BriefingPreviewPlan = {
@@ -1085,6 +1145,12 @@ export declare type BriefingTenantSummary = {
1085
1145
  latestRunStatus: BriefingRunStatus | string | null;
1086
1146
  };
1087
1147
 
1148
+ declare type BriefingThemeOverrides = {
1149
+ brandName?: string;
1150
+ logoUrl?: string;
1151
+ link?: string;
1152
+ };
1153
+
1088
1154
  export declare function briefingToFormDraft(briefing: BriefingDetail): BriefingFormDraft;
1089
1155
 
1090
1156
  export declare type BriefingUiCapabilities = {
@@ -1188,41 +1254,27 @@ export declare interface CalculatedFieldFormula {
1188
1254
  */
1189
1255
  export declare type CalculatedFieldOperation = 'sum' | 'difference' | 'product' | 'ratio' | 'change' | 'percentage' | 'scale' | 'custom';
1190
1256
 
1191
- /**
1192
- * Calendar context for timezone-aware date operations.
1193
- * Controls how dates are interpreted, grouped, and displayed.
1194
- */
1195
1257
  export declare type CalendarContext = {
1196
- /**
1197
- * IANA timezone identifier.
1198
- * @example 'America/Chicago', 'Europe/London', 'Asia/Tokyo', 'UTC'
1199
- * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
1200
- */
1201
1258
  tz: string;
1202
- /**
1203
- * Day the week starts on.
1204
- * 0 = Sunday (US, Canada, Japan)
1205
- * 1 = Monday (ISO standard, most of Europe)
1206
- * 6 = Saturday (Middle East)
1207
- * @default 1 (Monday) for backward compatibility
1208
- */
1209
1259
  weekStart: WeekStart;
1210
- /**
1211
- * Date anchor for relative date calculations.
1212
- * - 'now': Use current time (default, live dashboards)
1213
- * - { iso: string }: Fixed ISO 8601 date for reproducible views
1214
- */
1215
1260
  anchor: 'now' | {
1216
1261
  iso: string;
1217
1262
  };
1263
+ fiscalCalendar?: MonthAlignedFiscalCalendar;
1218
1264
  };
1219
1265
 
1220
- export declare function CalendarPreferencesDialog({ open, onOpenChange, }: CalendarPreferencesDialogProps): default_2.JSX.Element;
1266
+ declare type CalendarPreferences = {
1267
+ tz?: string;
1268
+ weekStart?: WeekStart;
1269
+ };
1221
1270
 
1222
- declare interface CalendarPreferencesDialogProps {
1223
- open: boolean;
1224
- onOpenChange: (open: boolean) => void;
1225
- }
1271
+ declare type CalendarPreferencesResponse = {
1272
+ stored: CalendarPreferences | null;
1273
+ inherited: ResolvedCalendarPreferences;
1274
+ inheritedSources: ResolvedCalendarPreferenceSources;
1275
+ resolved: ResolvedCalendarPreferences;
1276
+ sources: ResolvedCalendarPreferenceSources;
1277
+ };
1226
1278
 
1227
1279
  export declare function cancelBriefingPreviewRun(apiServiceUrl: string, token: string, previewRunId: string): Promise<CancelBriefingPreviewRunResponse>;
1228
1280
 
@@ -1340,11 +1392,12 @@ export declare interface CardInteractionConfig {
1340
1392
 
1341
1393
  export declare type CardMode = 'explorer' | 'dev';
1342
1394
 
1343
- export declare function CardSummary({ card, mode }: CardSummaryProps): JSX.Element | null;
1395
+ export declare function CardSummary({ card, mode, records, }: CardSummaryProps): JSX.Element | null;
1344
1396
 
1345
1397
  declare type CardSummaryProps = {
1346
1398
  card: TCard;
1347
1399
  mode?: 'dashboard' | 'editor';
1400
+ records?: Record<string, unknown>[] | null;
1348
1401
  };
1349
1402
 
1350
1403
  export declare type CardType = 'table' | 'aggregateTable' | 'pivotTable' | 'detailTable';
@@ -1475,12 +1528,17 @@ declare interface ColumnSettings {
1475
1528
  totalsLabel?: string;
1476
1529
  numberFormat: {
1477
1530
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
1478
- currency: string;
1479
- locale: string;
1480
- minimumFractionDigits: number;
1481
- maximumFractionDigits: number;
1531
+ currency?: string;
1532
+ locale?: string;
1533
+ minimumFractionDigits?: number;
1534
+ maximumFractionDigits?: number;
1482
1535
  useGrouping?: boolean;
1483
1536
  percentValueMode?: 'fraction' | 'whole';
1537
+ scale?: number;
1538
+ compact?: boolean;
1539
+ negativeStyle?: 'minus' | 'parentheses';
1540
+ prefix?: string;
1541
+ suffix?: string;
1484
1542
  showDataBar: boolean;
1485
1543
  dataBarColor: string;
1486
1544
  dataBarMinValue?: number;
@@ -1506,8 +1564,6 @@ declare interface ColumnSettings {
1506
1564
  colorRanges: ColorRange_2[];
1507
1565
  }
1508
1566
 
1509
- declare type ColumnSettingsMap = Record<string, ColumnSettings>;
1510
-
1511
1567
  declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
1512
1568
 
1513
1569
  export declare type ColumnType = 'string' | 'number' | 'date';
@@ -1696,7 +1752,7 @@ export declare type ControlBinding = {
1696
1752
  controlId: string;
1697
1753
  target: 'config_grain';
1698
1754
  mapping: Record<string, string>;
1699
- };
1755
+ } | CurrencyPresentationBinding;
1700
1756
 
1701
1757
  declare type ControlBindingsByCardId = Record<string, ControlBinding[] | undefined>;
1702
1758
 
@@ -1790,7 +1846,7 @@ export declare interface CreateExportRequest {
1790
1846
  type: 'visual' | 'card';
1791
1847
  dashboardId: string;
1792
1848
  visualId?: string;
1793
- cardId?: string;
1849
+ cardId: string;
1794
1850
  title?: string;
1795
1851
  connection_id: string;
1796
1852
  cardType: string;
@@ -1803,8 +1859,7 @@ export declare interface CreateExportRequest {
1803
1859
  controlBindings?: ControlBinding[];
1804
1860
  resolvedPrimaryDateField?: ResolvedPrimaryDateField;
1805
1861
  globalDateComparison?: GlobalDateComparisonContext;
1806
- calendarContext?: CalendarContext;
1807
- timezone?: string;
1862
+ reportContext: ReportRuntimeContext;
1808
1863
  totalRows: number;
1809
1864
  format: ExportFormat;
1810
1865
  formatOptions: AuthoritativeExportFormattingConfig;
@@ -1831,6 +1886,23 @@ declare interface CreateResourceRequest {
1831
1886
 
1832
1887
  export declare function createSqlGenConfig(column: TDataColumn, preSqlGen: SqlGen, calc?: AggregateCalc): SqlGen;
1833
1888
 
1889
+ export declare type CurrencyPresentationBinding = {
1890
+ controlId: string;
1891
+ target: 'presentation_currency';
1892
+ presentationTarget: CurrencyPresentationTarget;
1893
+ };
1894
+
1895
+ export declare type CurrencyPresentationTarget = {
1896
+ kind: 'metric';
1897
+ metricId: string;
1898
+ } | {
1899
+ kind: 'column';
1900
+ columnKey: string;
1901
+ } | {
1902
+ kind: 'matrix_measure';
1903
+ measureId: string;
1904
+ };
1905
+
1834
1906
  export declare type CustomCard = CardWithContent | CardWithFooter;
1835
1907
 
1836
1908
  export declare function Dashboard(props: DashboardProps): JSX.Element | null;
@@ -2363,6 +2435,9 @@ export declare type DashboardStore = {
2363
2435
  /** Fixed execution clock from a strict dashboard input replay snapshot. */
2364
2436
  dashboardInputReferenceTime?: string;
2365
2437
  semanticExecutionPayload: SemanticExecutionPayload;
2438
+ reportContext: ReportRuntimeContext | null;
2439
+ /** Access-token session that owns the hydrated report context. */
2440
+ reportContextSessionAccessToken: string | null;
2366
2441
  drillHistory: Array<{
2367
2442
  sourceDashboardId: string;
2368
2443
  targetDashboardId: string;
@@ -2500,10 +2575,6 @@ declare type DateSelectionMode = 'range' | 'months';
2500
2575
 
2501
2576
  declare type DateUnit = 'day' | 'week' | 'month' | 'quarter' | 'year';
2502
2577
 
2503
- /**
2504
- * Default CalendarContext when not provided.
2505
- * Used as fallback for backward compatibility.
2506
- */
2507
2578
  export declare const DEFAULT_CALENDAR_CONTEXT: CalendarContext;
2508
2579
 
2509
2580
  export declare const DEFAULT_SEMANTIC_DOMAIN_ACCESS: SemanticDomainAccess;
@@ -2570,6 +2641,16 @@ export declare type DimensionInputReference = {
2570
2641
 
2571
2642
  export declare type DisplayDataType = 'string' | 'date' | 'number' | 'html' | 'none';
2572
2643
 
2644
+ export declare function DisplayFormatPreferencesFields({ value, inherited, inheritedSources, onChange, disabled, }: DisplayFormatPreferencesFieldsProps): JSX.Element;
2645
+
2646
+ export declare type DisplayFormatPreferencesFieldsProps = {
2647
+ value: ValueFormatPreferences;
2648
+ inherited: ResolvedValueFormatPreferences;
2649
+ inheritedSources: Pick<ResolvedValueFormatPreferenceSources, 'locale' | 'defaultCurrency'>;
2650
+ onChange: (value: ValueFormatPreferences) => void;
2651
+ disabled?: boolean;
2652
+ };
2653
+
2573
2654
  export declare type DocumentChartSection = {
2574
2655
  id: string;
2575
2656
  type: 'chart';
@@ -3259,12 +3340,12 @@ export declare interface ExportFormattingConfig {
3259
3340
  timezone: string;
3260
3341
  browserTimezone?: string;
3261
3342
  isSqlCard?: boolean;
3262
- locale: string;
3263
3343
  delimiter: ',' | ';' | '\t';
3264
3344
  includeHeaders: boolean;
3265
3345
  columnSettings?: Record<string, unknown>;
3266
3346
  visibleColumns?: string[];
3267
3347
  columnLabels?: Record<string, string>;
3348
+ resolvedNumericFormats?: NumericPresentationSnapshotEntry[];
3268
3349
  comparisonPresentation?: ComparisonPresentationSpec;
3269
3350
  }
3270
3351
 
@@ -3629,6 +3710,7 @@ export declare function getColumnDataType(column: TDataColumn): string;
3629
3710
 
3630
3711
  export declare type GetDashboardResponse = {
3631
3712
  dashboard: TDashboard;
3713
+ initialReportContext: ReportRuntimeContext;
3632
3714
  lenses: TLens[];
3633
3715
  filterValues?: TFilterValue[] | null;
3634
3716
  inputValues?: LensInputValuesSnapshot | null;
@@ -4011,6 +4093,8 @@ export declare type LoadingProps = {
4011
4093
  message?: string;
4012
4094
  };
4013
4095
 
4096
+ declare type LocaleStyle = 'short' | 'medium' | 'long';
4097
+
4014
4098
  export declare type LogicalOperator = 'AND' | 'OR';
4015
4099
 
4016
4100
  declare type ManagementStore = {
@@ -4087,7 +4171,6 @@ declare type MatrixCell = {
4087
4171
  measureInstanceId: string;
4088
4172
  rawValue: unknown;
4089
4173
  presence: MatrixCellPresence;
4090
- formattedValue?: string;
4091
4174
  role: MatrixCellRole;
4092
4175
  aggregateFunction?: SemaphorAggregateFunction;
4093
4176
  formattingScope: MatrixCellFormattingScope;
@@ -4181,7 +4264,6 @@ declare type MatrixGridCell = {
4181
4264
  columnId: string;
4182
4265
  cellId?: string;
4183
4266
  rawValue: unknown;
4184
- formattedValue?: string;
4185
4267
  presence: MatrixCellPresence;
4186
4268
  role: MatrixCellRole;
4187
4269
  measureInstanceId: string;
@@ -4356,7 +4438,6 @@ declare type MatrixResultCell = {
4356
4438
  columnId?: string;
4357
4439
  measureId: string;
4358
4440
  value: unknown;
4359
- formattedValue?: string;
4360
4441
  presence: MatrixCellPresence;
4361
4442
  role: MatrixCellRole;
4362
4443
  calculationId?: string;
@@ -4364,9 +4445,10 @@ declare type MatrixResultCell = {
4364
4445
 
4365
4446
  declare type MatrixShape = 'hierarchical' | 'pivot';
4366
4447
 
4367
- export declare function MatrixTableVisual({ result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4448
+ export declare function MatrixTableVisual({ card, result, grid, payload, isLoading, expansionState, onExpansionChange, loadingRowPathKeys, onSortChange, onLoadMoreRows, }: MatrixTableVisualProps): JSX.Element;
4368
4449
 
4369
4450
  export declare type MatrixTableVisualProps = {
4451
+ card?: TCard;
4370
4452
  result?: SemaphorMatrixResult;
4371
4453
  grid?: MatrixGridProjection;
4372
4454
  payload?: MatrixPayload;
@@ -4551,6 +4633,11 @@ export declare type ModeDrafts = {
4551
4633
 
4552
4634
  export declare type ModelItem = DropdownItem;
4553
4635
 
4636
+ declare type MonthAlignedFiscalCalendar = {
4637
+ kind: 'month_aligned';
4638
+ yearStartMonth: number;
4639
+ };
4640
+
4554
4641
  declare type NoneOptions = {};
4555
4642
 
4556
4643
  /**
@@ -4616,6 +4703,27 @@ declare type NumericCanonicalFormat = {
4616
4703
  percentValueMode?: 'fraction' | 'whole';
4617
4704
  };
4618
4705
 
4706
+ declare type NumericPresentationSnapshotEntry = {
4707
+ scope: {
4708
+ dashboardId: string;
4709
+ cardId?: string;
4710
+ attachmentIndex?: number;
4711
+ };
4712
+ target: NumericPresentationTarget;
4713
+ format: NumericCanonicalFormat;
4714
+ };
4715
+
4716
+ declare type NumericPresentationTarget = {
4717
+ kind: 'metric';
4718
+ metricId: string;
4719
+ } | {
4720
+ kind: 'column';
4721
+ columnKey: string;
4722
+ } | {
4723
+ kind: 'matrix_measure';
4724
+ measureId: string;
4725
+ };
4726
+
4619
4727
  export declare type OldFilterValue = string | number | null | (string | number)[] | RangeValue;
4620
4728
 
4621
4729
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
@@ -4663,6 +4771,12 @@ export declare function pauseBriefing(apiServiceUrl: string, token: string, brie
4663
4771
  briefing: BriefingDetail;
4664
4772
  }>;
4665
4773
 
4774
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
4775
+ numberFormat?: Partial<ColumnSettings['numberFormat']>;
4776
+ };
4777
+
4778
+ declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
4779
+
4666
4780
  export declare type PersistedInteraction = Interaction & {
4667
4781
  id?: string;
4668
4782
  };
@@ -4822,10 +4936,42 @@ declare type RelativeDateFilter = {
4822
4936
  to: number;
4823
4937
  };
4824
4938
 
4939
+ declare const REPORT_PREFERENCE_SOURCES: readonly ["viewer_user", "viewer_tenant_user", "session_initial", "viewer_tenant", "viewer_organization", "system_default"];
4940
+
4941
+ export declare function ReportPreferencesDialog({ open, onOpenChange, }: ReportPreferencesDialogProps): JSX.Element;
4942
+
4943
+ declare type ReportPreferencesDialogProps = {
4944
+ open: boolean;
4945
+ onOpenChange: (open: boolean) => void;
4946
+ };
4947
+
4948
+ declare type ReportPreferenceSource = (typeof REPORT_PREFERENCE_SOURCES)[number];
4949
+
4950
+ declare type ReportPreferenceSources = {
4951
+ calendar: ResolvedCalendarPreferenceSources;
4952
+ valueFormat: ResolvedValueFormatPreferenceSources;
4953
+ };
4954
+
4955
+ declare type ReportRuntimeContext = {
4956
+ calendar: CalendarContext;
4957
+ valueFormat: ResolvedValueFormatPreferences;
4958
+ preferenceSources: ReportPreferenceSources;
4959
+ };
4960
+
4825
4961
  export declare function resolveDatamodelName(datamodelName: string): string;
4826
4962
 
4827
4963
  export declare const resolveDataType: (value: any) => string;
4828
4964
 
4965
+ declare type ResolvedCalendarPreferences = {
4966
+ tz: string;
4967
+ weekStart: WeekStart;
4968
+ };
4969
+
4970
+ declare type ResolvedCalendarPreferenceSources = {
4971
+ tz: ReportPreferenceSource;
4972
+ weekStart: ReportPreferenceSource;
4973
+ };
4974
+
4829
4975
  export declare type ResolvedDashboardDateComparisonInput = {
4830
4976
  inputId: string;
4831
4977
  filterId: string;
@@ -4916,20 +5062,24 @@ declare type ResolvedPrimaryDateField = {
4916
5062
  supportedGranularities?: TimeGranularity[];
4917
5063
  } | null;
4918
5064
 
4919
- /**
4920
- * Parameters in JWT payload (after backend resolution).
4921
- * The backend ALWAYS includes calendarContext, even if customer didn't provide it.
4922
- */
4923
- export declare type ResolvedTokenParams = Omit<TokenParams, 'calendarContext'> & {
4924
- /**
4925
- * Full calendar context for timezone-aware operations.
4926
- * ALWAYS present in JWT - resolved by backend from:
4927
- * 1. Token request calendarContext (highest priority)
4928
- * 2. Token request timezone (legacy)
4929
- * 3. User/Tenant/Org preferences (Phase 7)
4930
- * 4. Default: { tz: 'UTC', weekStart: 1, anchor: 'now' }
4931
- */
4932
- calendarContext: CalendarContext;
5065
+ declare type ResolvedValueFormatPreferences = {
5066
+ locale: string;
5067
+ dateStyle: LocaleStyle;
5068
+ dateTime: {
5069
+ dateStyle: LocaleStyle;
5070
+ timeStyle: LocaleStyle;
5071
+ };
5072
+ defaultCurrency: string;
5073
+ };
5074
+
5075
+ declare type ResolvedValueFormatPreferenceSources = {
5076
+ locale: ReportPreferenceSource;
5077
+ dateStyle: ReportPreferenceSource;
5078
+ dateTime: {
5079
+ dateStyle: ReportPreferenceSource;
5080
+ timeStyle: ReportPreferenceSource;
5081
+ };
5082
+ defaultCurrency: ReportPreferenceSource;
4933
5083
  };
4934
5084
 
4935
5085
  export declare interface ResourceListItem {
@@ -5510,7 +5660,6 @@ declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteT
5510
5660
 
5511
5661
  declare type SemaphorValueFormat = {
5512
5662
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
5513
- locale?: string;
5514
5663
  minimumFractionDigits?: number;
5515
5664
  maximumFractionDigits?: number;
5516
5665
  useGrouping?: boolean;
@@ -5741,7 +5890,7 @@ declare type SummaryWarningCode = 'PARTIAL_TIMEOUT' | 'LLM_TIMEOUT_FALLBACK' | '
5741
5890
  export declare function Surfboard({ showControls, showFooter, ...rest }: DashboardPlusProps): JSX.Element;
5742
5891
 
5743
5892
  declare interface TableActions {
5744
- updateColumnSettingsMap: (columnSettings: ColumnSettingsMap) => void;
5893
+ updateColumnSettingsMap: (columnSettings: PersistedColumnSettingsMap) => void;
5745
5894
  updateTableBaseFormatting: (baseFormatting: TableBaseFormatting) => void;
5746
5895
  updateTableConditionalFormatting: (conditionalFormatting: TableConditionalFormatting) => void;
5747
5896
  updateColumnVisibility: (columnId: string, isVisible: boolean) => void;
@@ -5851,7 +6000,7 @@ export declare type TableItem = DropdownItem;
5851
6000
  declare type TablePart = 'body' | 'header' | 'footer' | 'subtotal' | 'grandTotal';
5852
6001
 
5853
6002
  declare type TablePreferences = {
5854
- columnSettingsMap?: ColumnSettingsMap;
6003
+ columnSettingsMap?: PersistedColumnSettingsMap;
5855
6004
  baseFormatting?: TableBaseFormatting;
5856
6005
  conditionalFormatting?: TableConditionalFormatting;
5857
6006
  selectColumnVisible?: boolean;
@@ -6689,19 +6838,6 @@ export declare type TLineStyle = 'solid' | 'dashed' | 'dotted' | 'dash-dot';
6689
6838
  * This is used for token REQUEST (customer provides these).
6690
6839
  */
6691
6840
  export declare type TokenParams = {
6692
- /**
6693
- * Currency formatting options.
6694
- */
6695
- currencyFormat?: {
6696
- /**
6697
- * Locale identifier (e.g., 'en-US', 'fr-FR').
6698
- */
6699
- locale: string;
6700
- /**
6701
- * Currency code compliant with ISO 4217 (e.g., 'USD', 'EUR').
6702
- */
6703
- currency: string;
6704
- };
6705
6841
  /**
6706
6842
  * IANA timezone identifier for date operations.
6707
6843
  * @deprecated Use calendarContext.tz instead for full calendar control.
@@ -6709,11 +6845,11 @@ export declare type TokenParams = {
6709
6845
  */
6710
6846
  timezone?: string;
6711
6847
  /**
6712
- * Full calendar context for timezone-aware operations.
6713
- * Optional in token request - the backend ALWAYS resolves and includes
6714
- * this in the JWT, even when the customer doesn't provide it.
6848
+ * Optional developer-authored Calendar seed for the report session.
6849
+ * The resolved viewer state is delivered by dashboard bootstrap instead.
6715
6850
  */
6716
6851
  calendarContext?: CalendarContext;
6852
+ valueFormatPreferences?: ValueFormatPreferences;
6717
6853
  };
6718
6854
 
6719
6855
  /**
@@ -6781,9 +6917,9 @@ export declare type TokenProps = {
6781
6917
  rcls?: TokenSecurityPolicy[] | TokenSecurityPolicy;
6782
6918
  /**
6783
6919
  * Parameter overrides and preferences (e.g., formatting).
6784
- * Uses ResolvedTokenParams because backend ALWAYS includes calendarContext.
6920
+ * These are developer-authored initial inputs, not resolved viewer state.
6785
6921
  */
6786
- params?: ResolvedTokenParams;
6922
+ params?: TokenParams;
6787
6923
  /**
6788
6924
  * UI behavior and feature flags.
6789
6925
  */
@@ -7156,11 +7292,31 @@ export declare function useDashboardById(dashboardId: string, options?: {
7156
7292
  }): UseQueryResult<any, Error>;
7157
7293
 
7158
7294
  export declare function useDashboardQuery(): {
7159
- data: NoInfer<GetDashboardResponse | null> | undefined;
7295
+ data: NoInfer<{
7296
+ initialReportContext: ReportRuntimeContext;
7297
+ dashboard: TDashboard;
7298
+ lenses: TLens[];
7299
+ filterValues?: TFilterValue[] | null;
7300
+ inputValues?: LensInputValuesSnapshot | null;
7301
+ defaultLensId?: string;
7302
+ assistantProfileId?: string;
7303
+ semanticExecutionPayload: SemanticExecutionPayload;
7304
+ organizationAppearance?: AppearanceSpec | null;
7305
+ } | null> | undefined;
7160
7306
  isLoading: boolean;
7161
7307
  isFetching: boolean;
7162
7308
  isError: boolean;
7163
- refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<NoInfer<GetDashboardResponse | null>, Error>>;
7309
+ refetch: (options?: RefetchOptions) => Promise<QueryObserverResult<NoInfer<{
7310
+ initialReportContext: ReportRuntimeContext;
7311
+ dashboard: TDashboard;
7312
+ lenses: TLens[];
7313
+ filterValues?: TFilterValue[] | null;
7314
+ inputValues?: LensInputValuesSnapshot | null;
7315
+ defaultLensId?: string;
7316
+ assistantProfileId?: string;
7317
+ semanticExecutionPayload: SemanticExecutionPayload;
7318
+ organizationAppearance?: AppearanceSpec | null;
7319
+ } | null>, Error>>;
7164
7320
  dashboardIdToFetch: string | null;
7165
7321
  };
7166
7322
 
@@ -7421,6 +7577,16 @@ export declare function useTextFilterHook(filterId: string): {
7421
7577
 
7422
7578
  export declare function validateBriefingFormDraft(draft: BriefingFormDraft): BriefingFormValidationResult;
7423
7579
 
7580
+ declare type ValueFormatPreferences = {
7581
+ locale?: string;
7582
+ dateStyle?: LocaleStyle;
7583
+ dateTime?: {
7584
+ dateStyle?: LocaleStyle;
7585
+ timeStyle?: LocaleStyle;
7586
+ };
7587
+ defaultCurrency?: string;
7588
+ };
7589
+
7424
7590
  declare type ViewerPeriodComparisonSpec = Extract<MetricComparisonSpec, {
7425
7591
  kind: 'previous_period' | 'previous_year';
7426
7592
  }>;
@@ -7492,12 +7658,6 @@ export declare type WatchDashboardButtonProps = {
7492
7658
  onClick?: () => void;
7493
7659
  };
7494
7660
 
7495
- /**
7496
- * Week start day type.
7497
- * 0 = Sunday (US, Canada, Japan)
7498
- * 1 = Monday (ISO standard, most of Europe)
7499
- * 6 = Saturday (Middle East)
7500
- */
7501
7661
  export declare type WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;
7502
7662
 
7503
7663
  export declare type WindowFunction = 'running_total' | 'moving_average' | 'previous_period_delta' | 'percent_of_total';