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
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../chunks/dashboard-CMDXBLnG.js"),e=require("../chunks/common-types-C73-Ud1-.js"),a=require("../chunks/calendar-preferences-dialog-_L9eBQfj.js");exports.Surfboard=r.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=a.CalendarPreferencesDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/dashboard-CQfAvRYI.js"),r=require("../chunks/common-types-C73-Ud1-.js"),o=require("../chunks/report-preferences-dialog-DV_5aHrS.js");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
@@ -1,9 +1,10 @@
1
- import { a as e } from "../chunks/dashboard-509sbC4_.js";
2
- import { C, E } from "../chunks/common-types-ClkOI-3O.js";
3
- import { C as s } from "../chunks/calendar-preferences-dialog-BF9bNAF_.js";
1
+ import { a, b as o } from "../chunks/dashboard-agBXhvKo.js";
2
+ import { C as f, E } from "../chunks/common-types-ClkOI-3O.js";
3
+ import { R as t } from "../chunks/report-preferences-dialog-CPptr_V9.js";
4
4
  export {
5
- C as CONTROL_CARD_DEFAULT_VALUE,
6
- s as CalendarPreferencesDialog,
5
+ f as CONTROL_CARD_DEFAULT_VALUE,
6
+ a as DisplayFormatPreferencesFields,
7
7
  E as EMPTY_SELECTION,
8
- e as Surfboard
8
+ t as ReportPreferencesDialog,
9
+ o as Surfboard
9
10
  };
@@ -235,7 +235,6 @@ export declare type MatrixCell = {
235
235
  measureInstanceId: string;
236
236
  rawValue: unknown;
237
237
  presence: MatrixCellPresence;
238
- formattedValue?: string;
239
238
  role: MatrixCellRole;
240
239
  aggregateFunction?: SemaphorAggregateFunction;
241
240
  formattingScope: MatrixCellFormattingScope;
@@ -311,7 +310,6 @@ export declare type MatrixGridCell = {
311
310
  columnId: string;
312
311
  cellId?: string;
313
312
  rawValue: unknown;
314
- formattedValue?: string;
315
313
  presence: MatrixCellPresence;
316
314
  role: MatrixCellRole;
317
315
  measureInstanceId: string;
@@ -486,7 +484,6 @@ export declare type MatrixResultCell = {
486
484
  columnId?: string;
487
485
  measureId: string;
488
486
  value: unknown;
489
- formattedValue?: string;
490
487
  presence: MatrixCellPresence;
491
488
  role: MatrixCellRole;
492
489
  calculationId?: string;
@@ -4138,7 +4135,6 @@ export declare type SemaphorValidationResult = {
4138
4135
 
4139
4136
  export declare type SemaphorValueFormat = {
4140
4137
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
4141
- locale?: string;
4142
4138
  minimumFractionDigits?: number;
4143
4139
  maximumFractionDigits?: number;
4144
4140
  useGrouping?: boolean;
@@ -67,6 +67,45 @@ export declare const BRIEFING_TEXT_LIMITS: {
67
67
  readonly id: 500;
68
68
  };
69
69
 
70
+ declare type BriefingAppearanceColorTokens = Partial<{
71
+ background: string;
72
+ foreground: string;
73
+ muted: string;
74
+ mutedForeground: string;
75
+ border: string;
76
+ primary: string;
77
+ primaryForeground: string;
78
+ positive: string;
79
+ negative: string;
80
+ warning: string;
81
+ info: string;
82
+ }>;
83
+
84
+ declare type BriefingAppearanceScheme = {
85
+ tokens?: BriefingAppearanceTokens;
86
+ components?: {
87
+ chart?: {
88
+ palette?: string[];
89
+ };
90
+ };
91
+ };
92
+
93
+ declare type BriefingAppearanceSpec = {
94
+ version?: number;
95
+ schemes?: {
96
+ light?: BriefingAppearanceScheme;
97
+ dark?: BriefingAppearanceScheme;
98
+ };
99
+ };
100
+
101
+ declare type BriefingAppearanceTokens = {
102
+ color?: BriefingAppearanceColorTokens;
103
+ typography?: {
104
+ fontFamily?: string;
105
+ monoFontFamily?: string;
106
+ };
107
+ };
108
+
70
109
  export declare type BriefingArtifactFormat = (typeof BRIEFING_ARTIFACT_FORMATS)[number];
71
110
 
72
111
  export declare type BriefingAttachment = (BriefingAttachmentBase & {
@@ -174,9 +213,10 @@ export declare type BriefingContentBlock = {
174
213
  } | {
175
214
  type: 'metric';
176
215
  label: string;
177
- value: string | number;
178
- previousValue?: string | number | null;
179
- delta?: string | number | null;
216
+ value: BriefingDisplayValue;
217
+ previousValue?: BriefingDisplayValue | null;
218
+ delta?: BriefingDisplayValue | null;
219
+ percentChange?: BriefingDisplayValue | null;
180
220
  unit?: string;
181
221
  evidenceIds?: string[];
182
222
  } | {
@@ -222,7 +262,7 @@ export declare type BriefingContentDocument = {
222
262
  blocks: BriefingContentBlock[];
223
263
  };
224
264
 
225
- export declare type BriefingContentScalar = string | number | boolean | null;
265
+ export declare type BriefingContentScalar = string | number | boolean | BriefingNumericValue | null;
226
266
 
227
267
  export declare type BriefingContentSeverity = 'info' | 'positive' | 'warning' | 'critical';
228
268
 
@@ -261,6 +301,8 @@ export declare type BriefingDeliveryConfig = {
261
301
 
262
302
  export declare type BriefingDisplayTypeLabel = 'Analytical briefing' | 'Scheduled report' | 'On-demand report' | 'Plain briefing';
263
303
 
304
+ export declare type BriefingDisplayValue = string | number | BriefingNumericValue;
305
+
264
306
  export declare type BriefingDraft = {
265
307
  name: string;
266
308
  description?: string | null;
@@ -283,8 +325,18 @@ export declare type BriefingEntityPresentation = {
283
325
 
284
326
  export declare type BriefingFormatProfile = 'concise' | 'balanced' | 'detailed';
285
327
 
328
+ declare type BriefingFragments = {
329
+ preHeaderText?: string;
330
+ headerBannerHtml?: string;
331
+ signatureHtml?: string;
332
+ footerHtml?: string;
333
+ disclaimerHtml?: string;
334
+ unsubscribeUrl?: string;
335
+ };
336
+
286
337
  export declare type BriefingJobConfig = {
287
338
  kind: BriefingKind;
339
+ reportContext: ReportRuntimeContext;
288
340
  source: BriefingSource;
289
341
  body: BriefingBody;
290
342
  attachments: BriefingAttachment[];
@@ -296,19 +348,29 @@ export declare type BriefingKind = typeof BRIEFING_KIND;
296
348
 
297
349
  export declare type BriefingKpiTile = {
298
350
  label: string;
299
- value: string | number;
300
- previousValue?: string | number | null;
301
- delta?: string | number | null;
351
+ value: BriefingDisplayValue;
352
+ previousValue?: BriefingDisplayValue | null;
353
+ delta?: BriefingDisplayValue | null;
354
+ percentChange?: BriefingDisplayValue | null;
302
355
  unit?: string;
303
356
  evidenceIds?: string[];
304
357
  };
305
358
 
306
359
  export declare type BriefingLimits = {
307
360
  maxToolCalls?: number;
361
+ maxPlanningIterations?: number;
308
362
  maxRows?: number;
309
363
  timeoutMs?: number;
310
364
  };
311
365
 
366
+ export declare type BriefingNumericTarget = NumericPresentationTarget;
367
+
368
+ export declare type BriefingNumericValue = {
369
+ value: number;
370
+ target: BriefingNumericTarget;
371
+ format: NumericCanonicalFormat;
372
+ };
373
+
312
374
  export declare type BriefingPdfOrientation = 'portrait' | 'landscape';
313
375
 
314
376
  export declare type BriefingPdfPageSize = 'letter' | 'legal' | 'a4' | 'a3' | 'tabloid';
@@ -320,6 +382,10 @@ export declare type BriefingPresentation = {
320
382
  audience?: string;
321
383
  tone?: string;
322
384
  format?: string;
385
+ appearance?: BriefingAppearanceSpec;
386
+ brandOverrides?: BriefingThemeOverrides;
387
+ fragments?: BriefingFragments;
388
+ viewUrl?: string;
323
389
  };
324
390
 
325
391
  export declare type BriefingRecipient = {
@@ -379,6 +445,12 @@ export declare type BriefingSource = {
379
445
 
380
446
  export declare type BriefingStatus = 'ACTIVE' | 'PAUSED' | 'DISABLED';
381
447
 
448
+ declare type BriefingThemeOverrides = {
449
+ brandName?: string;
450
+ logoUrl?: string;
451
+ link?: string;
452
+ };
453
+
382
454
  export declare type BriefingUiUser = {
383
455
  type: 'organization' | 'tenant';
384
456
  role?: string;
@@ -405,9 +477,7 @@ export declare type BriefingWebhookConfig = {
405
477
  secretEncrypted?: string;
406
478
  };
407
479
 
408
- export declare function buildBriefingJobConfig(input: Omit<Partial<BriefingJobConfig>, 'kind'> & {
409
- body: BriefingBody;
410
- }): BriefingJobConfig;
480
+ export declare function buildBriefingJobConfig(input: Omit<Partial<BriefingJobConfig>, 'kind' | 'body' | 'reportContext'> & Pick<BriefingJobConfig, 'body' | 'reportContext'>): BriefingJobConfig;
411
481
 
412
482
  export declare function buildBriefingScheduleExpr(view: BriefingScheduleViewModel): string;
413
483
 
@@ -463,6 +533,15 @@ declare interface CalculatedFieldFormula {
463
533
  */
464
534
  declare type CalculatedFieldOperation = 'sum' | 'difference' | 'product' | 'ratio' | 'change' | 'percentage' | 'scale' | 'custom';
465
535
 
536
+ declare type CalendarContext = {
537
+ tz: string;
538
+ weekStart: WeekStart;
539
+ anchor: 'now' | {
540
+ iso: string;
541
+ };
542
+ fiscalCalendar?: MonthAlignedFiscalCalendar;
543
+ };
544
+
466
545
  export declare function canCreateBriefingForUser(user: BriefingUiUser | null | undefined): boolean;
467
546
 
468
547
  declare interface CardConfig {
@@ -623,12 +702,17 @@ declare interface ColumnSettings {
623
702
  totalsLabel?: string;
624
703
  numberFormat: {
625
704
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
626
- currency: string;
627
- locale: string;
628
- minimumFractionDigits: number;
629
- maximumFractionDigits: number;
705
+ currency?: string;
706
+ locale?: string;
707
+ minimumFractionDigits?: number;
708
+ maximumFractionDigits?: number;
630
709
  useGrouping?: boolean;
631
710
  percentValueMode?: 'fraction' | 'whole';
711
+ scale?: number;
712
+ compact?: boolean;
713
+ negativeStyle?: 'minus' | 'parentheses';
714
+ prefix?: string;
715
+ suffix?: string;
632
716
  showDataBar: boolean;
633
717
  dataBarColor: string;
634
718
  dataBarMinValue?: number;
@@ -654,8 +738,6 @@ declare interface ColumnSettings {
654
738
  colorRanges: ColorRange_2[];
655
739
  }
656
740
 
657
- declare type ColumnSettingsMap = Record<string, ColumnSettings>;
658
-
659
741
  declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
660
742
 
661
743
  declare type ColumnType = 'string' | 'number' | 'date';
@@ -793,7 +875,7 @@ declare type ControlBinding = {
793
875
  controlId: string;
794
876
  target: 'config_grain';
795
877
  mapping: Record<string, string>;
796
- };
878
+ } | CurrencyPresentationBinding;
797
879
 
798
880
  declare type ControlDefinition = {
799
881
  id: string;
@@ -857,6 +939,23 @@ export declare type CreateBriefingRequest = {
857
939
  deliveryConfig: BriefingDeliveryConfig | null;
858
940
  };
859
941
 
942
+ declare type CurrencyPresentationBinding = {
943
+ controlId: string;
944
+ target: 'presentation_currency';
945
+ presentationTarget: CurrencyPresentationTarget;
946
+ };
947
+
948
+ declare type CurrencyPresentationTarget = {
949
+ kind: 'metric';
950
+ metricId: string;
951
+ } | {
952
+ kind: 'column';
953
+ columnKey: string;
954
+ } | {
955
+ kind: 'matrix_measure';
956
+ measureId: string;
957
+ };
958
+
860
959
  declare type DashboardInputExportKey = 'label' | 'value' | 'start' | 'end' | 'range';
861
960
 
862
961
  declare type DashboardInputTextContent = Array<{
@@ -1247,6 +1346,13 @@ declare type FixedMonthDefaultDateFilter = {
1247
1346
  month: number;
1248
1347
  };
1249
1348
 
1349
+ export declare function formatBriefingComparisonValues(input: {
1350
+ delta?: BriefingDisplayValue | null;
1351
+ percentChange?: BriefingDisplayValue | null;
1352
+ }): string;
1353
+
1354
+ export declare function formatBriefingDisplayValue(value: BriefingDisplayValue | boolean | null | undefined): string;
1355
+
1250
1356
  declare type FormatSpec = {
1251
1357
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
1252
1358
  locale?: string;
@@ -1419,6 +1525,8 @@ export declare function isBriefingArtifactFormat(input: unknown): input is Brief
1419
1525
 
1420
1526
  export declare function isBriefingDeliveryChannel(input: unknown): input is BriefingDeliveryChannel;
1421
1527
 
1528
+ export declare function isBriefingNumericValue(value: unknown): value is BriefingNumericValue;
1529
+
1422
1530
  export declare function isEmailOnlyBriefingDelivery(deliveryConfig: BriefingDeliveryConfig | null): boolean;
1423
1531
 
1424
1532
  export declare function isValidBriefingTimezone(value: unknown): value is string;
@@ -1462,6 +1570,8 @@ declare interface LinkFormat {
1462
1570
  openInNewTab: boolean;
1463
1571
  }
1464
1572
 
1573
+ declare type LocaleStyle = 'short' | 'medium' | 'long';
1574
+
1465
1575
  declare type LogicalOperator = 'AND' | 'OR';
1466
1576
 
1467
1577
  export declare const MAX_BRIEFING_ATTACHMENTS = 20;
@@ -1550,6 +1660,11 @@ declare interface MetricField extends Field {
1550
1660
  semanticComparisonPolarity?: MetricComparisonPolarity;
1551
1661
  }
1552
1662
 
1663
+ declare type MonthAlignedFiscalCalendar = {
1664
+ kind: 'month_aligned';
1665
+ yearStartMonth: number;
1666
+ };
1667
+
1553
1668
  declare type NoneOptions = {};
1554
1669
 
1555
1670
  export declare function normalizeBriefingContentDocument(input: unknown): BriefingContentDocument;
@@ -1576,6 +1691,41 @@ declare type NumberOptions = {
1576
1691
  colorRanges?: ColorRange[];
1577
1692
  };
1578
1693
 
1694
+ /**
1695
+ * Shared format types for export system
1696
+ * IMPORTANT: No React imports allowed in this file
1697
+ *
1698
+ * These types are used by:
1699
+ * - react-semaphor (browser) for client-side exports
1700
+ * - semaphor-app (Next.js) for API routes
1701
+ * - Lambda (Node.js) for async export processing
1702
+ */
1703
+ declare type NumericCanonicalFormat = {
1704
+ type: 'number' | 'currency' | 'percent' | 'scientific';
1705
+ locale?: string;
1706
+ minimumFractionDigits?: number;
1707
+ maximumFractionDigits?: number;
1708
+ useGrouping?: boolean;
1709
+ prefix?: string;
1710
+ suffix?: string;
1711
+ negativeStyle?: 'minus' | 'parentheses';
1712
+ compact?: boolean;
1713
+ scale?: number;
1714
+ currency?: string;
1715
+ percentValueMode?: 'fraction' | 'whole';
1716
+ };
1717
+
1718
+ declare type NumericPresentationTarget = {
1719
+ kind: 'metric';
1720
+ metricId: string;
1721
+ } | {
1722
+ kind: 'column';
1723
+ columnKey: string;
1724
+ } | {
1725
+ kind: 'matrix_measure';
1726
+ measureId: string;
1727
+ };
1728
+
1579
1729
  declare type OldFilterValue = string | number | null | (string | number)[] | RangeValue;
1580
1730
 
1581
1731
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
@@ -1611,6 +1761,12 @@ export declare function parseBriefingScheduleExpr(expression: string): {
1611
1761
  issue: string;
1612
1762
  };
1613
1763
 
1764
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
1765
+ numberFormat?: Partial<ColumnSettings['numberFormat']>;
1766
+ };
1767
+
1768
+ declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
1769
+
1614
1770
  declare type PersistedInteraction = Interaction & {
1615
1771
  id?: string;
1616
1772
  };
@@ -1665,6 +1821,46 @@ declare type RelativeDateFilter = {
1665
1821
  to: number;
1666
1822
  };
1667
1823
 
1824
+ declare const REPORT_PREFERENCE_SOURCES: readonly ["viewer_user", "viewer_tenant_user", "session_initial", "viewer_tenant", "viewer_organization", "system_default"];
1825
+
1826
+ declare type ReportPreferenceSource = (typeof REPORT_PREFERENCE_SOURCES)[number];
1827
+
1828
+ declare type ReportPreferenceSources = {
1829
+ calendar: ResolvedCalendarPreferenceSources;
1830
+ valueFormat: ResolvedValueFormatPreferenceSources;
1831
+ };
1832
+
1833
+ declare type ReportRuntimeContext = {
1834
+ calendar: CalendarContext;
1835
+ valueFormat: ResolvedValueFormatPreferences;
1836
+ preferenceSources: ReportPreferenceSources;
1837
+ };
1838
+
1839
+ declare type ResolvedCalendarPreferenceSources = {
1840
+ tz: ReportPreferenceSource;
1841
+ weekStart: ReportPreferenceSource;
1842
+ };
1843
+
1844
+ declare type ResolvedValueFormatPreferences = {
1845
+ locale: string;
1846
+ dateStyle: LocaleStyle;
1847
+ dateTime: {
1848
+ dateStyle: LocaleStyle;
1849
+ timeStyle: LocaleStyle;
1850
+ };
1851
+ defaultCurrency: string;
1852
+ };
1853
+
1854
+ declare type ResolvedValueFormatPreferenceSources = {
1855
+ locale: ReportPreferenceSource;
1856
+ dateStyle: ReportPreferenceSource;
1857
+ dateTime: {
1858
+ dateStyle: ReportPreferenceSource;
1859
+ timeStyle: ReportPreferenceSource;
1860
+ };
1861
+ defaultCurrency: ReportPreferenceSource;
1862
+ };
1863
+
1668
1864
  declare type SelectedEntities = SelectedEntity[];
1669
1865
 
1670
1866
  declare type SelectedEntity = DatabaseEntityReference | DataModelEntityReference | DatasetEntityReference | FileEntityReference;
@@ -1941,7 +2137,6 @@ declare type SemaphorTimeGrain = 'hour' | 'day' | 'week' | 'month' | 'quarter' |
1941
2137
 
1942
2138
  declare type SemaphorValueFormat = {
1943
2139
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
1944
- locale?: string;
1945
2140
  minimumFractionDigits?: number;
1946
2141
  maximumFractionDigits?: number;
1947
2142
  useGrouping?: boolean;
@@ -2040,7 +2235,7 @@ declare type TableHeaderStyle = 'plain' | 'filled' | 'accent';
2040
2235
  declare type TablePart = 'body' | 'header' | 'footer' | 'subtotal' | 'grandTotal';
2041
2236
 
2042
2237
  declare type TablePreferences = {
2043
- columnSettingsMap?: ColumnSettingsMap;
2238
+ columnSettingsMap?: PersistedColumnSettingsMap;
2044
2239
  baseFormatting?: TableBaseFormatting;
2045
2240
  conditionalFormatting?: TableConditionalFormatting;
2046
2241
  selectColumnVisible?: boolean;
@@ -2770,6 +2965,8 @@ declare type VisualDisplayPreferences = {
2770
2965
  };
2771
2966
  };
2772
2967
 
2968
+ declare type WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;
2969
+
2773
2970
  declare type WindowFunction = 'running_total' | 'moving_average' | 'previous_period_delta' | 'percent_of_total';
2774
2971
 
2775
2972
  declare interface WindowTransform {
@@ -770,7 +770,6 @@ declare type MatrixResultCell = {
770
770
  columnId?: string;
771
771
  measureId: string;
772
772
  value: unknown;
773
- formattedValue?: string;
774
773
  presence: MatrixCellPresence;
775
774
  role: MatrixCellRole;
776
775
  calculationId?: string;
@@ -1559,7 +1558,6 @@ declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteT
1559
1558
 
1560
1559
  declare type SemaphorValueFormat = {
1561
1560
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
1562
- locale?: string;
1563
1561
  minimumFractionDigits?: number;
1564
1562
  maximumFractionDigits?: number;
1565
1563
  useGrouping?: boolean;
@@ -303,12 +303,17 @@ declare interface ColumnSettings {
303
303
  totalsLabel?: string;
304
304
  numberFormat: {
305
305
  style: 'decimal' | 'currency' | 'percent' | 'scientific';
306
- currency: string;
307
- locale: string;
308
- minimumFractionDigits: number;
309
- maximumFractionDigits: number;
306
+ currency?: string;
307
+ locale?: string;
308
+ minimumFractionDigits?: number;
309
+ maximumFractionDigits?: number;
310
310
  useGrouping?: boolean;
311
311
  percentValueMode?: 'fraction' | 'whole';
312
+ scale?: number;
313
+ compact?: boolean;
314
+ negativeStyle?: 'minus' | 'parentheses';
315
+ prefix?: string;
316
+ suffix?: string;
312
317
  showDataBar: boolean;
313
318
  dataBarColor: string;
314
319
  dataBarMinValue?: number;
@@ -334,8 +339,6 @@ declare interface ColumnSettings {
334
339
  colorRanges: ColorRange_2[];
335
340
  }
336
341
 
337
- declare type ColumnSettingsMap = Record<string, ColumnSettings>;
338
-
339
342
  declare type ColumnTextWrap = 'default' | 'truncate' | 'wrap' | 'nowrap' | 'preserve';
340
343
 
341
344
  declare type ColumnType = 'string' | 'number' | 'date';
@@ -518,7 +521,7 @@ declare type ControlBinding = {
518
521
  controlId: string;
519
522
  target: 'config_grain';
520
523
  mapping: Record<string, string>;
521
- };
524
+ } | CurrencyPresentationBinding;
522
525
 
523
526
  declare type ControlDashboardInput = DashboardInputBase & {
524
527
  kind: 'control';
@@ -573,6 +576,23 @@ declare type ControlSource = {
573
576
 
574
577
  declare type ControlType = 'enum' | 'multi_enum' | 'text' | 'number' | 'boolean' | 'date' | 'field_selector' | 'metric_selector' | 'aggregation_selector' | 'grain_selector';
575
578
 
579
+ declare type CurrencyPresentationBinding = {
580
+ controlId: string;
581
+ target: 'presentation_currency';
582
+ presentationTarget: CurrencyPresentationTarget;
583
+ };
584
+
585
+ declare type CurrencyPresentationTarget = {
586
+ kind: 'metric';
587
+ metricId: string;
588
+ } | {
589
+ kind: 'column';
590
+ columnKey: string;
591
+ } | {
592
+ kind: 'matrix_measure';
593
+ measureId: string;
594
+ };
595
+
576
596
  declare type CustomCard = CardWithContent | CardWithFooter;
577
597
 
578
598
  export declare const DASHBOARD_AUTHORING_BREAKPOINTS: readonly ["lg", "md", "sm", "xs", "xxs"];
@@ -1853,6 +1873,12 @@ declare interface PaginationConfig {
1853
1873
  pageSize: number;
1854
1874
  }
1855
1875
 
1876
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
1877
+ numberFormat?: Partial<ColumnSettings['numberFormat']>;
1878
+ };
1879
+
1880
+ declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
1881
+
1856
1882
  declare type PersistedFrameLayoutItem = {
1857
1883
  i: string;
1858
1884
  x: number;
@@ -2397,7 +2423,6 @@ declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteT
2397
2423
 
2398
2424
  declare type SemaphorValueFormat = {
2399
2425
  type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
2400
- locale?: string;
2401
2426
  minimumFractionDigits?: number;
2402
2427
  maximumFractionDigits?: number;
2403
2428
  useGrouping?: boolean;
@@ -2554,7 +2579,7 @@ declare type TableHeaderStyle = 'plain' | 'filled' | 'accent';
2554
2579
  declare type TablePart = 'body' | 'header' | 'footer' | 'subtotal' | 'grandTotal';
2555
2580
 
2556
2581
  declare type TablePreferences = {
2557
- columnSettingsMap?: ColumnSettingsMap;
2582
+ columnSettingsMap?: PersistedColumnSettingsMap;
2558
2583
  baseFormatting?: TableBaseFormatting;
2559
2584
  conditionalFormatting?: TableConditionalFormatting;
2560
2585
  selectColumnVisible?: boolean;