react-semaphor 0.1.475 → 0.1.477

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 (56) hide show
  1. package/dist/brand-studio/index.cjs +1 -1
  2. package/dist/brand-studio/index.js +1 -1
  3. package/dist/briefings/index.cjs +1 -1
  4. package/dist/briefings/index.js +20 -20
  5. package/dist/chunks/{dashboard-briefing-launcher-BZOpMkdj.js → dashboard-briefing-launcher-C9d8CPxv.js} +5 -5
  6. package/dist/chunks/{dashboard-briefing-launcher-B6tm7M3_.cjs → dashboard-briefing-launcher-CXHq6ime.cjs} +1 -1
  7. package/dist/chunks/{dashboard-controls-CHn88-1Q.js → dashboard-controls-BqDm4ARp.js} +5 -5
  8. package/dist/chunks/{dashboard-controls-CyoY0IC_.cjs → dashboard-controls-d7Yd2fJb.cjs} +1 -1
  9. package/dist/chunks/dashboard-filter-value-compatibility-BCVF9IHg.js +1026 -0
  10. package/dist/chunks/dashboard-filter-value-compatibility-DLkdeypb.cjs +1 -0
  11. package/dist/chunks/{dashboard-json-BOsyKwip.cjs → dashboard-json-BYQjTmqD.cjs} +1 -1
  12. package/dist/chunks/{dashboard-json-Dh3UKm8Y.js → dashboard-json-CL_vgcWq.js} +3 -3
  13. package/dist/chunks/{edit-dashboard-visual-BCz0oRoM.js → edit-dashboard-visual-C0Zvyo-X.js} +6 -6
  14. package/dist/chunks/{edit-dashboard-visual-DK--eIEf.cjs → edit-dashboard-visual-Dklel3MC.cjs} +1 -1
  15. package/dist/chunks/{editor-action-buttons-D7JDG5pX.cjs → editor-action-buttons-AcaZsiDy.cjs} +1 -1
  16. package/dist/chunks/{editor-action-buttons-Dp-j9gS6.js → editor-action-buttons-BOyUtX9j.js} +3 -3
  17. package/dist/chunks/index-Cd8qGOXl.cjs +1404 -0
  18. package/dist/chunks/{index-DodDy3sE.js → index-D9S3j7_z.js} +532 -463
  19. package/dist/chunks/{index-Dw2nLjUn.js → index-DrdF7QR7.js} +42721 -42036
  20. package/dist/chunks/index-v2MZLyus.cjs +4 -0
  21. package/dist/chunks/{pivot-header-presentation-BBiJU_57.js → pivot-header-presentation-CaERAWpl.js} +1 -1
  22. package/dist/chunks/{pivot-header-presentation-BMyOXlXL.cjs → pivot-header-presentation-CePk1R6g.cjs} +1 -1
  23. package/dist/chunks/{pivot-result-lifecycle-PxmbJWkm.js → pivot-result-lifecycle-B9FTybxN.js} +176 -165
  24. package/dist/chunks/pivot-result-lifecycle-CcGt_29N.cjs +1 -0
  25. package/dist/chunks/{report-preferences-dialog-Di8MmnqB.js → report-preferences-dialog-BjygtSP3.js} +2 -2
  26. package/dist/chunks/{report-preferences-dialog-B9JUV3Gr.cjs → report-preferences-dialog-DW40ECz1.cjs} +1 -1
  27. package/dist/chunks/switch-B1mZx2k9.cjs +138 -0
  28. package/dist/chunks/{switch-D20CIzj6.js → switch-C8NihGV4.js} +3326 -3318
  29. package/dist/dashboard/index.cjs +1 -1
  30. package/dist/dashboard/index.js +1 -1
  31. package/dist/dashboard-authoring/index.cjs +3 -3
  32. package/dist/dashboard-authoring/index.js +298 -287
  33. package/dist/data-app-builder/index.cjs +1 -1
  34. package/dist/data-app-builder/index.js +2 -2
  35. package/dist/format-utils/index.cjs +3 -3
  36. package/dist/format-utils/index.js +61 -60
  37. package/dist/index.cjs +1 -1
  38. package/dist/index.js +6 -6
  39. package/dist/surfboard/index.cjs +1 -1
  40. package/dist/surfboard/index.js +2 -2
  41. package/dist/types/briefings.d.ts +17 -3
  42. package/dist/types/dashboard-assistant.d.ts +2 -0
  43. package/dist/types/dashboard-authoring.d.ts +17 -3
  44. package/dist/types/dashboard.d.ts +23 -3
  45. package/dist/types/format-utils.d.ts +7 -0
  46. package/dist/types/main.d.ts +32 -7
  47. package/dist/types/shared.d.ts +17 -3
  48. package/dist/types/surfboard.d.ts +23 -3
  49. package/dist/types/types.d.ts +23 -3
  50. package/package.json +1 -1
  51. package/dist/chunks/dashboard-filter-value-compatibility-9W8Ckcle.js +0 -846
  52. package/dist/chunks/dashboard-filter-value-compatibility-Co1dn9Bc.cjs +0 -1
  53. package/dist/chunks/index-B4VxBoJg.cjs +0 -4
  54. package/dist/chunks/index-DpbiVs0_.cjs +0 -1404
  55. package/dist/chunks/pivot-result-lifecycle-DJgO2P0H.cjs +0 -1
  56. package/dist/chunks/switch-B4eH4guz.cjs +0 -138
@@ -1473,6 +1473,13 @@ export declare function validateCardExportPresentationSnapshot(input: {
1473
1473
  useFormattedValues: boolean;
1474
1474
  }): void;
1475
1475
 
1476
+ /** Validates an authored pattern without formatting or inventing a fallback. */
1477
+ export declare function validateRawTemporalPattern(input: {
1478
+ valueKind?: RawTemporalValueKind;
1479
+ dialect: RawTemporalPatternDialect;
1480
+ pattern: string;
1481
+ }): void;
1482
+
1476
1483
  /**
1477
1484
  * Validates descriptor exclusivity and datatype compatibility without
1478
1485
  * inferring temporal meaning from a value or display label.
@@ -547,6 +547,8 @@ declare type BaseFilter = {
547
547
  valueType: 'string' | 'number' | 'date' | 'boolean';
548
548
  connectionType?: 'database' | 'api';
549
549
  dataType?: string;
550
+ /** Exact database type retained across dashboard-to-query transport. */
551
+ nativeDataType?: string;
550
552
  fieldMeta?: FilterFieldMeta;
551
553
  semanticContext?: FilterSemanticContext;
552
554
  /** Governed meaning for canonical grouped-temporal filter values. */
@@ -1608,9 +1610,9 @@ export declare function Combobox({ name, items, value, onChange, isLoading, isEr
1608
1610
  }): JSX.Element;
1609
1611
 
1610
1612
  declare type ComboBoxOption = {
1611
- id: number | string;
1612
- value: string;
1613
- [key: string]: number | string;
1613
+ id: FilterOptionValue;
1614
+ value: FilterOptionValue;
1615
+ [key: string]: FilterOptionValue;
1614
1616
  };
1615
1617
 
1616
1618
  declare type ComparisonAvailability = {
@@ -3671,6 +3673,8 @@ export declare interface Field {
3671
3673
  sourceField?: string;
3672
3674
  qualifiedFieldName: string;
3673
3675
  dataType: string;
3676
+ /** Exact database type when dataType is normalized for analytics/UI use. */
3677
+ nativeDataType?: string;
3674
3678
  description?: string;
3675
3679
  qualifiedEntityName?: string;
3676
3680
  dateFormat?: DateFormatValue;
@@ -3760,6 +3764,8 @@ declare type FilterDisplayMode = 'canvas' | 'toolbar' | 'inherit';
3760
3764
  declare type FilterFieldMeta = Pick<Field, 'name' | 'qualifiedFieldName'> & Partial<Pick<Field, 'id' | 'qualifiedEntityName' | 'entityId' | 'dataType' | 'role' | 'fieldScope'>> & {
3761
3765
  entityName?: Field['entityName'];
3762
3766
  entityType?: string;
3767
+ /** Exact database type used by server-side predicate formatting. */
3768
+ nativeDataType?: string;
3763
3769
  expression?: string;
3764
3770
  calculatedFormula?: CalculatedFieldFormula;
3765
3771
  };
@@ -3783,12 +3789,12 @@ declare type FilterForDate = BaseFilter & {
3783
3789
 
3784
3790
  declare type FilterForEqual = BaseFilter & {
3785
3791
  operation: '=' | '!=';
3786
- values: [string | number];
3792
+ values: [FilterOptionValue];
3787
3793
  };
3788
3794
 
3789
3795
  declare type FilterForIn = BaseFilter & {
3790
3796
  operation: 'in' | 'not in';
3791
- values: (string | number)[];
3797
+ values: FilterOptionValue[];
3792
3798
  };
3793
3799
 
3794
3800
  declare type FilterForNull = BaseFilter & {
@@ -3846,6 +3852,8 @@ declare type FilterOnClick = {
3846
3852
  columnIndex: number;
3847
3853
  };
3848
3854
 
3855
+ declare type FilterOptionValue = string | number | boolean;
3856
+
3849
3857
  declare type FilterSemanticContext = {
3850
3858
  semanticDomainId?: string;
3851
3859
  selectedEntities?: unknown[];
@@ -5034,8 +5042,10 @@ export declare function pauseBriefing(apiServiceUrl: string, token: string, brie
5034
5042
  briefing: BriefingDetail;
5035
5043
  }>;
5036
5044
 
5037
- declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
5045
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat' | 'dateFormat'> & {
5038
5046
  numberFormat?: Partial<ColumnSettings['numberFormat']>;
5047
+ /** Sparse persisted date settings; conditional requirements are enforced by the serializer. */
5048
+ dateFormat?: Partial<ColumnSettings['dateFormat']>;
5039
5049
  };
5040
5050
 
5041
5051
  declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
@@ -6957,6 +6967,12 @@ export declare type TDashboard = {
6957
6967
  export declare type TDataColumn = {
6958
6968
  column_name: string;
6959
6969
  data_type: string;
6970
+ /** Exact catalog type when the columns API can prove it independently. */
6971
+ nativeDataType?: string;
6972
+ /** @deprecated Use the API contract spelling `nativeDataType`. */
6973
+ native_data_type?: string;
6974
+ /** Whether `data_type` came from semantic metadata or physical introspection. */
6975
+ dataTypeProvenance?: 'semantic' | 'physical';
6960
6976
  is_nullable?: string;
6961
6977
  label?: string;
6962
6978
  description?: string;
@@ -7182,6 +7198,8 @@ export declare type TFilter = {
7182
7198
  title: string;
7183
7199
  column: string;
7184
7200
  dataType: string;
7201
+ /** Exact database type retained when dataType is a normalized UI category. */
7202
+ nativeDataType?: string;
7185
7203
  table?: string;
7186
7204
  database?: string;
7187
7205
  qualifiedTableName?: string;
@@ -7327,6 +7345,8 @@ export declare type TInlineFilter = {
7327
7345
  column: string;
7328
7346
  title: string;
7329
7347
  dataType: string;
7348
+ /** Exact database type retained when dataType is a normalized UI category. */
7349
+ nativeDataType?: string;
7330
7350
  table: string;
7331
7351
  database: string;
7332
7352
  qualifiedTableName?: string;
@@ -7895,7 +7915,7 @@ export declare function useDataColumns(token?: AuthToken): {
7895
7915
  };
7896
7916
 
7897
7917
  export declare function useDateFilterHook(filterId: string): {
7898
- records: any;
7918
+ records: Record<string, unknown>[] | undefined;
7899
7919
  isLoading: boolean;
7900
7920
  isFetching: boolean;
7901
7921
  isError: boolean;
@@ -8108,6 +8128,11 @@ export declare function useTextFilterHook(filterId: string): {
8108
8128
  isFetching: boolean;
8109
8129
  isPlaceholderData: boolean;
8110
8130
  isError: boolean;
8131
+ hasNextPage: boolean;
8132
+ hasLoadedMoreOptions: boolean;
8133
+ isFetchingNextPage: boolean;
8134
+ isNextPageError: boolean;
8135
+ loadNextPage: () => void;
8111
8136
  records: ComboBoxOption[];
8112
8137
  selectedRecords: ComboBoxOption[];
8113
8138
  handleChange: (selectedRecords: TSelectedRecord[]) => void;
@@ -62,6 +62,8 @@ declare type BaseFilter = {
62
62
  valueType: 'string' | 'number' | 'date' | 'boolean';
63
63
  connectionType?: 'database' | 'api';
64
64
  dataType?: string;
65
+ /** Exact database type retained across dashboard-to-query transport. */
66
+ nativeDataType?: string;
65
67
  fieldMeta?: FilterFieldMeta;
66
68
  semanticContext?: FilterSemanticContext;
67
69
  /** Governed meaning for canonical grouped-temporal filter values. */
@@ -1179,6 +1181,8 @@ declare interface Field {
1179
1181
  sourceField?: string;
1180
1182
  qualifiedFieldName: string;
1181
1183
  dataType: string;
1184
+ /** Exact database type when dataType is normalized for analytics/UI use. */
1185
+ nativeDataType?: string;
1182
1186
  description?: string;
1183
1187
  qualifiedEntityName?: string;
1184
1188
  dateFormat?: DateFormatValue;
@@ -1268,6 +1272,8 @@ declare type FilterDisplayMode = 'canvas' | 'toolbar' | 'inherit';
1268
1272
  declare type FilterFieldMeta = Pick<Field, 'name' | 'qualifiedFieldName'> & Partial<Pick<Field, 'id' | 'qualifiedEntityName' | 'entityId' | 'dataType' | 'role' | 'fieldScope'>> & {
1269
1273
  entityName?: Field['entityName'];
1270
1274
  entityType?: string;
1275
+ /** Exact database type used by server-side predicate formatting. */
1276
+ nativeDataType?: string;
1271
1277
  expression?: string;
1272
1278
  calculatedFormula?: CalculatedFieldFormula;
1273
1279
  };
@@ -1291,12 +1297,12 @@ declare type FilterForDate = BaseFilter & {
1291
1297
 
1292
1298
  declare type FilterForEqual = BaseFilter & {
1293
1299
  operation: '=' | '!=';
1294
- values: [string | number];
1300
+ values: [FilterOptionValue];
1295
1301
  };
1296
1302
 
1297
1303
  declare type FilterForIn = BaseFilter & {
1298
1304
  operation: 'in' | 'not in';
1299
- values: (string | number)[];
1305
+ values: FilterOptionValue[];
1300
1306
  };
1301
1307
 
1302
1308
  declare type FilterForNull = BaseFilter & {
@@ -1354,6 +1360,8 @@ declare type FilterOnClick = {
1354
1360
  columnIndex: number;
1355
1361
  };
1356
1362
 
1363
+ declare type FilterOptionValue = string | number | boolean;
1364
+
1357
1365
  declare type FilterSemanticContext = {
1358
1366
  semanticDomainId?: string;
1359
1367
  selectedEntities?: unknown[];
@@ -1712,8 +1720,10 @@ declare interface PaginationConfig {
1712
1720
  pageSize: number;
1713
1721
  }
1714
1722
 
1715
- declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
1723
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat' | 'dateFormat'> & {
1716
1724
  numberFormat?: Partial<ColumnSettings['numberFormat']>;
1725
+ /** Sparse persisted date settings; conditional requirements are enforced by the serializer. */
1726
+ dateFormat?: Partial<ColumnSettings['dateFormat']>;
1717
1727
  };
1718
1728
 
1719
1729
  declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
@@ -2861,6 +2871,8 @@ declare type TFilter = {
2861
2871
  title: string;
2862
2872
  column: string;
2863
2873
  dataType: string;
2874
+ /** Exact database type retained when dataType is a normalized UI category. */
2875
+ nativeDataType?: string;
2864
2876
  table?: string;
2865
2877
  database?: string;
2866
2878
  qualifiedTableName?: string;
@@ -2998,6 +3010,8 @@ declare type TInlineFilter = {
2998
3010
  column: string;
2999
3011
  title: string;
3000
3012
  dataType: string;
3013
+ /** Exact database type retained when dataType is a normalized UI category. */
3014
+ nativeDataType?: string;
3001
3015
  table: string;
3002
3016
  database: string;
3003
3017
  qualifiedTableName?: string;
@@ -136,6 +136,8 @@ declare type BaseFilter = {
136
136
  valueType: 'string' | 'number' | 'date' | 'boolean';
137
137
  connectionType?: 'database' | 'api';
138
138
  dataType?: string;
139
+ /** Exact database type retained across dashboard-to-query transport. */
140
+ nativeDataType?: string;
139
141
  fieldMeta?: FilterFieldMeta;
140
142
  semanticContext?: FilterSemanticContext;
141
143
  /** Governed meaning for canonical grouped-temporal filter values. */
@@ -1551,6 +1553,8 @@ declare interface Field {
1551
1553
  sourceField?: string;
1552
1554
  qualifiedFieldName: string;
1553
1555
  dataType: string;
1556
+ /** Exact database type when dataType is normalized for analytics/UI use. */
1557
+ nativeDataType?: string;
1554
1558
  description?: string;
1555
1559
  qualifiedEntityName?: string;
1556
1560
  dateFormat?: DateFormatValue;
@@ -1640,6 +1644,8 @@ declare type FilterDisplayMode = 'canvas' | 'toolbar' | 'inherit';
1640
1644
  declare type FilterFieldMeta = Pick<Field, 'name' | 'qualifiedFieldName'> & Partial<Pick<Field, 'id' | 'qualifiedEntityName' | 'entityId' | 'dataType' | 'role' | 'fieldScope'>> & {
1641
1645
  entityName?: Field['entityName'];
1642
1646
  entityType?: string;
1647
+ /** Exact database type used by server-side predicate formatting. */
1648
+ nativeDataType?: string;
1643
1649
  expression?: string;
1644
1650
  calculatedFormula?: CalculatedFieldFormula;
1645
1651
  };
@@ -1663,12 +1669,12 @@ declare type FilterForDate = BaseFilter & {
1663
1669
 
1664
1670
  declare type FilterForEqual = BaseFilter & {
1665
1671
  operation: '=' | '!=';
1666
- values: [string | number];
1672
+ values: [FilterOptionValue];
1667
1673
  };
1668
1674
 
1669
1675
  declare type FilterForIn = BaseFilter & {
1670
1676
  operation: 'in' | 'not in';
1671
- values: (string | number)[];
1677
+ values: FilterOptionValue[];
1672
1678
  };
1673
1679
 
1674
1680
  declare type FilterForNull = BaseFilter & {
@@ -1726,6 +1732,8 @@ declare type FilterOnClick = {
1726
1732
  columnIndex: number;
1727
1733
  };
1728
1734
 
1735
+ declare type FilterOptionValue = string | number | boolean;
1736
+
1729
1737
  declare type FilterSemanticContext = {
1730
1738
  semanticDomainId?: string;
1731
1739
  selectedEntities?: unknown[];
@@ -2228,8 +2236,10 @@ declare type Params = {
2228
2236
  [key: string]: string | number | string[] | number[];
2229
2237
  };
2230
2238
 
2231
- declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
2239
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat' | 'dateFormat'> & {
2232
2240
  numberFormat?: Partial<ColumnSettings['numberFormat']>;
2241
+ /** Sparse persisted date settings; conditional requirements are enforced by the serializer. */
2242
+ dateFormat?: Partial<ColumnSettings['dateFormat']>;
2233
2243
  };
2234
2244
 
2235
2245
  declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
@@ -3491,6 +3501,12 @@ export declare type TDashboard = {
3491
3501
  export declare type TDataColumn = {
3492
3502
  column_name: string;
3493
3503
  data_type: string;
3504
+ /** Exact catalog type when the columns API can prove it independently. */
3505
+ nativeDataType?: string;
3506
+ /** @deprecated Use the API contract spelling `nativeDataType`. */
3507
+ native_data_type?: string;
3508
+ /** Whether `data_type` came from semantic metadata or physical introspection. */
3509
+ dataTypeProvenance?: 'semantic' | 'physical';
3494
3510
  is_nullable?: string;
3495
3511
  label?: string;
3496
3512
  description?: string;
@@ -3714,6 +3730,8 @@ declare type TFilter = {
3714
3730
  title: string;
3715
3731
  column: string;
3716
3732
  dataType: string;
3733
+ /** Exact database type retained when dataType is a normalized UI category. */
3734
+ nativeDataType?: string;
3717
3735
  table?: string;
3718
3736
  database?: string;
3719
3737
  qualifiedTableName?: string;
@@ -3859,6 +3877,8 @@ export declare type TInlineFilter = {
3859
3877
  column: string;
3860
3878
  title: string;
3861
3879
  dataType: string;
3880
+ /** Exact database type retained when dataType is a normalized UI category. */
3881
+ nativeDataType?: string;
3862
3882
  table: string;
3863
3883
  database: string;
3864
3884
  qualifiedTableName?: string;
@@ -145,6 +145,8 @@ declare type BaseFilter = {
145
145
  valueType: 'string' | 'number' | 'date' | 'boolean';
146
146
  connectionType?: 'database' | 'api';
147
147
  dataType?: string;
148
+ /** Exact database type retained across dashboard-to-query transport. */
149
+ nativeDataType?: string;
148
150
  fieldMeta?: FilterFieldMeta;
149
151
  semanticContext?: FilterSemanticContext;
150
152
  /** Governed meaning for canonical grouped-temporal filter values. */
@@ -2133,6 +2135,8 @@ export declare interface Field {
2133
2135
  sourceField?: string;
2134
2136
  qualifiedFieldName: string;
2135
2137
  dataType: string;
2138
+ /** Exact database type when dataType is normalized for analytics/UI use. */
2139
+ nativeDataType?: string;
2136
2140
  description?: string;
2137
2141
  qualifiedEntityName?: string;
2138
2142
  dateFormat?: DateFormatValue;
@@ -2222,6 +2226,8 @@ declare type FilterDisplayMode = 'canvas' | 'toolbar' | 'inherit';
2222
2226
  export declare type FilterFieldMeta = Pick<Field, 'name' | 'qualifiedFieldName'> & Partial<Pick<Field, 'id' | 'qualifiedEntityName' | 'entityId' | 'dataType' | 'role' | 'fieldScope'>> & {
2223
2227
  entityName?: Field['entityName'];
2224
2228
  entityType?: string;
2229
+ /** Exact database type used by server-side predicate formatting. */
2230
+ nativeDataType?: string;
2225
2231
  expression?: string;
2226
2232
  calculatedFormula?: CalculatedFieldFormula;
2227
2233
  };
@@ -2245,12 +2251,12 @@ declare type FilterForDate = BaseFilter & {
2245
2251
 
2246
2252
  declare type FilterForEqual = BaseFilter & {
2247
2253
  operation: '=' | '!=';
2248
- values: [string | number];
2254
+ values: [FilterOptionValue];
2249
2255
  };
2250
2256
 
2251
2257
  declare type FilterForIn = BaseFilter & {
2252
2258
  operation: 'in' | 'not in';
2253
- values: (string | number)[];
2259
+ values: FilterOptionValue[];
2254
2260
  };
2255
2261
 
2256
2262
  declare type FilterForNull = BaseFilter & {
@@ -2308,6 +2314,8 @@ declare type FilterOnClick = {
2308
2314
  columnIndex: number;
2309
2315
  };
2310
2316
 
2317
+ declare type FilterOptionValue = string | number | boolean;
2318
+
2311
2319
  export declare type FilterSemanticContext = {
2312
2320
  semanticDomainId?: string;
2313
2321
  selectedEntities?: unknown[];
@@ -3129,8 +3137,10 @@ declare type Params = {
3129
3137
  [key: string]: string | number | string[] | number[];
3130
3138
  };
3131
3139
 
3132
- declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat'> & {
3140
+ declare type PersistedColumnSettings = Omit<Partial<ColumnSettings>, 'numberFormat' | 'dateFormat'> & {
3133
3141
  numberFormat?: Partial<ColumnSettings['numberFormat']>;
3142
+ /** Sparse persisted date settings; conditional requirements are enforced by the serializer. */
3143
+ dateFormat?: Partial<ColumnSettings['dateFormat']>;
3134
3144
  };
3135
3145
 
3136
3146
  declare type PersistedColumnSettingsMap = Record<string, PersistedColumnSettings>;
@@ -4681,6 +4691,12 @@ export declare type TDashboard = {
4681
4691
  export declare type TDataColumn = {
4682
4692
  column_name: string;
4683
4693
  data_type: string;
4694
+ /** Exact catalog type when the columns API can prove it independently. */
4695
+ nativeDataType?: string;
4696
+ /** @deprecated Use the API contract spelling `nativeDataType`. */
4697
+ native_data_type?: string;
4698
+ /** Whether `data_type` came from semantic metadata or physical introspection. */
4699
+ dataTypeProvenance?: 'semantic' | 'physical';
4684
4700
  is_nullable?: string;
4685
4701
  label?: string;
4686
4702
  description?: string;
@@ -4906,6 +4922,8 @@ export declare type TFilter = {
4906
4922
  title: string;
4907
4923
  column: string;
4908
4924
  dataType: string;
4925
+ /** Exact database type retained when dataType is a normalized UI category. */
4926
+ nativeDataType?: string;
4909
4927
  table?: string;
4910
4928
  database?: string;
4911
4929
  qualifiedTableName?: string;
@@ -5051,6 +5069,8 @@ export declare type TInlineFilter = {
5051
5069
  column: string;
5052
5070
  title: string;
5053
5071
  dataType: string;
5072
+ /** Exact database type retained when dataType is a normalized UI category. */
5073
+ nativeDataType?: string;
5054
5074
  table: string;
5055
5075
  database: string;
5056
5076
  qualifiedTableName?: string;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "email": "support@semaphor.cloud"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "0.1.475",
8
+ "version": "0.1.477",
9
9
  "description": "Fully interactive and customizable dashboards for your apps.",
10
10
  "keywords": [
11
11
  "react",