react-semaphor 0.0.5801 → 0.0.6371

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/dashboard-plus-2Ws4IDjX.js"),r=require("../types/index.cjs");exports.Surfboard=e.DashboardPlus;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/dashboard-plus-CjnhLxYD.js"),r=require("../types/index.cjs");exports.Surfboard=e.DashboardPlus;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
@@ -1,4 +1,4 @@
1
- import { D as f } from "../chunks/dashboard-plus-CHD4IsyS.js";
1
+ import { D as f } from "../chunks/dashboard-plus-DecDM7dW.js";
2
2
  import { EMPTY_SELECTION as a } from "../types/index.js";
3
3
  export {
4
4
  a as EMPTY_SELECTION,
@@ -1,3 +1,4 @@
1
+ import { ColumnSizingState } from '@tanstack/react-table';
1
2
  import { FontSpec } from 'chart.js';
2
3
  import { JSX as JSX_2 } from 'react/jsx-runtime';
3
4
 
@@ -7,6 +8,7 @@ declare type AggregateFunction = 'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX' | 'MEDI
7
8
 
8
9
  declare type AIContext = {
9
10
  selectedEntities: SelectedEntities;
11
+ fileAttachments?: FileAttachment[];
10
12
  };
11
13
 
12
14
  export declare type AIScopeTable = {
@@ -191,7 +193,10 @@ declare interface ColorRange_2 {
191
193
  declare interface ColumnSettings {
192
194
  type: 'none' | 'text' | 'number' | 'date' | 'badge' | 'link' | 'progress';
193
195
  textAlign: 'left' | 'center' | 'right';
194
- width: string;
196
+ width: number;
197
+ minWidth?: number;
198
+ maxWidth?: number;
199
+ textOverflow?: 'ellipsis' | 'wrap' | 'clip';
195
200
  textWrap: 'wrap' | 'nowrap';
196
201
  numberFormat: {
197
202
  style: 'decimal' | 'currency' | 'percent';
@@ -209,6 +214,8 @@ declare interface ColumnSettings {
209
214
  useCustomFormat: boolean;
210
215
  customFormat: string;
211
216
  useRelativeTime: boolean;
217
+ timezone?: string;
218
+ sourceTimezone?: string;
212
219
  };
213
220
  colorRanges: ColorRange_2[];
214
221
  }
@@ -233,6 +240,33 @@ export declare type DashboardEventHandlers = {
233
240
  onExportData?: (payload: ExportDataPayload) => void;
234
241
  };
235
242
 
243
+ /**
244
+ * Unified dashboard preferences for both card display and UI modes
245
+ */
246
+ export declare type DashboardPreferences = {
247
+ /**
248
+ * Visual display preferences for cards
249
+ * Controls how card content is rendered (headers, footers, etc.)
250
+ */
251
+ cardDisplay?: VisualDisplayPreferences;
252
+ /**
253
+ * UI modes for developer and debug features
254
+ * Controls what developer tools and debug panels are available
255
+ */
256
+ uiMode?: {
257
+ /**
258
+ * Enable developer mode
259
+ * Shows additional controls and debug information
260
+ */
261
+ developer?: boolean;
262
+ /**
263
+ * Enable console mode
264
+ * Shows console panel for debugging
265
+ */
266
+ console?: boolean;
267
+ };
268
+ };
269
+
236
270
  export declare type DashboardProps = {
237
271
  id?: string;
238
272
  /**
@@ -242,10 +276,7 @@ export declare type DashboardProps = {
242
276
  /**
243
277
  * Default filter values for the dashboard. The dashboard will be filtered by these values when the user loads the dashboard.
244
278
  */
245
- defaultFilterValues?: {
246
- filterId: string;
247
- values: string[] | number[];
248
- }[] | TFilterValue[];
279
+ defaultFilterValues?: TFilterValue[];
249
280
  customStyle?: TStyle;
250
281
  currentTheme?: Theme;
251
282
  version?: string;
@@ -266,6 +297,11 @@ export declare type DashboardProps = {
266
297
  * The id of the sheet to be selected when the dashboard is loaded.
267
298
  */
268
299
  selectedSheetId?: string;
300
+ /**
301
+ * Unified preferences for dashboard configuration
302
+ * Includes both card display preferences and UI mode settings
303
+ */
304
+ preferences?: DashboardPreferences;
269
305
  };
270
306
 
271
307
  declare interface DatabaseEntityReference {
@@ -416,6 +452,17 @@ declare interface Field {
416
452
  role?: 'groupby' | 'metric' | 'sortby' | 'pivotby';
417
453
  }
418
454
 
455
+ declare type FileAttachment = {
456
+ id: string;
457
+ name: string;
458
+ size: number;
459
+ type: string;
460
+ data?: string;
461
+ url?: string;
462
+ preview?: string;
463
+ uploadProgress?: number;
464
+ };
465
+
419
466
  declare interface FileEntityReference extends DatabaseEntityReference {
420
467
  id: string;
421
468
  type: 'file' | 'url' | 'upload';
@@ -489,7 +536,7 @@ declare type FilterOnClick = {
489
536
  columnIndex: number;
490
537
  };
491
538
 
492
- declare type FilterValue = string | number | boolean | Date | [number, number] | [string, string] | string[] | number[];
539
+ declare type FilterValue = string | number | boolean | Date | null | [number, number] | [string, string] | string[] | number[];
493
540
 
494
541
  export declare type GetDashboardResponse = {
495
542
  dashboard: TDashboard;
@@ -638,7 +685,7 @@ declare type OldFilterValue = string | number | null | (string | number)[] | Ran
638
685
 
639
686
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
640
687
 
641
- declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between';
688
+ declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between' | 'isNull' | 'isNotNull';
642
689
 
643
690
  declare type OptionsMap = {
644
691
  number: NumberOptions;
@@ -770,6 +817,7 @@ declare type TablePreferences = {
770
817
  columnSettingsMap?: ColumnSettingsMap;
771
818
  selectColumnVisible?: boolean;
772
819
  columnVisibility?: Record<string, boolean>;
820
+ columnSizing?: ColumnSizingState;
773
821
  pageSize?: number;
774
822
  enableDevModePagination?: boolean;
775
823
  };
@@ -808,6 +856,11 @@ export declare type TCard = {
808
856
  lastSelectedSchema?: string;
809
857
  lastSelectedTable?: string;
810
858
  refreshInterval?: string;
859
+ /**
860
+ * Card-specific display preferences that override dashboard-level preferences.
861
+ * If not specified, the card will use the dashboard's display preferences.
862
+ */
863
+ displayPreferences?: VisualDisplayPreferences;
811
864
  };
812
865
 
813
866
  export declare type TCardContext = {
@@ -858,6 +911,7 @@ export declare type TCardPreferences = {
858
911
  kpiVisualOptions?: {
859
912
  lowerIsBetter?: boolean;
860
913
  countryLogoId?: string;
914
+ valueAlignment?: 'left' | 'center';
861
915
  formatOptions?: TFormatOptions;
862
916
  metricComparison?: {
863
917
  enabled?: boolean;
@@ -1105,4 +1159,41 @@ export declare type TStyle = {
1105
1159
  dark?: StyleProps;
1106
1160
  };
1107
1161
 
1162
+ /**
1163
+ * Display mode for visual components - controls which UI elements are shown
1164
+ */
1165
+ export declare type VisualDisplayMode = 'full' | 'content-only' | 'print' | 'embed' | 'table-print';
1166
+
1167
+ /**
1168
+ * Display preferences for controlling visual component rendering
1169
+ */
1170
+ export declare type VisualDisplayPreferences = {
1171
+ /**
1172
+ * Predefined display mode
1173
+ * - 'full': All UI elements (default)
1174
+ * - 'content-only': Just the visualization/table content
1175
+ * - 'print': Optimized for printing (shows title and description, hides interactive elements)
1176
+ * - 'embed': Minimal chrome for embedding in other contexts
1177
+ */
1178
+ mode?: VisualDisplayMode;
1179
+ /**
1180
+ * Override specific UI elements visibility
1181
+ * These overrides take precedence over the mode presets
1182
+ */
1183
+ overrides?: {
1184
+ showHeader?: boolean;
1185
+ showTitle?: boolean;
1186
+ showDescription?: boolean;
1187
+ showTabs?: boolean;
1188
+ showFooter?: boolean;
1189
+ showFilters?: boolean;
1190
+ showBreadcrumbs?: boolean;
1191
+ showRefreshIndicator?: boolean;
1192
+ showFilterInfo?: boolean;
1193
+ showPagination?: boolean;
1194
+ showTableToolbar?: boolean;
1195
+ showColumnSettings?: boolean;
1196
+ };
1197
+ };
1198
+
1108
1199
  export { }
@@ -3,6 +3,7 @@ import { AIScopeTable as AIScopeTable_2 } from '..';
3
3
  import { CacheConfig as CacheConfig_2 } from '..';
4
4
  import { Chart } from 'chart.js';
5
5
  import { ChartConfiguration } from 'chart.js';
6
+ import { ColumnSizingState } from '@tanstack/react-table';
6
7
  import { ComboBoxOption as ComboBoxOption_2 } from '../../components/surfboard/filter/types';
7
8
  import { CustomCard as CustomCard_2 } from '..';
8
9
  import { DateRange } from 'react-day-picker';
@@ -67,6 +68,7 @@ declare type Actions = {
67
68
  setCardSql: (sheetId: string, cardId: string, sql: string) => void;
68
69
  setCardPython: (cardId: string, pythonCode: string) => void;
69
70
  setCardDescription: (sheetId: string, cardId: string, description: string) => void;
71
+ setCardKpiOptions: (sheetId: string, cardId: string, kpiOptions: Record<string, any>) => void;
70
72
  addFrame: (sheetId: string, frame: TFrame, position?: 'start' | 'end') => void;
71
73
  updateFrame: (sheetId: string, frame: TFrame) => void;
72
74
  updateCard: (sheetId: string, card: TCard) => void;
@@ -109,11 +111,17 @@ declare type Actions = {
109
111
  removeBaseQuery: (baseQueryId: string) => void;
110
112
  setBaseQueries: (baseQueries: TBaseQuery[]) => void;
111
113
  setIsDashboardPanelOpen: (open: boolean) => void;
114
+ updateCardId: (oldCardId: string, newCardId: string) => {
115
+ success: boolean;
116
+ error?: string;
117
+ };
118
+ isCardIdUnique: (cardId: string, currentCardId?: string) => boolean;
112
119
  };
113
120
 
114
121
  declare type Actions_2 = TableActions & ExplorerActions & DrillActions & {
115
122
  setEditorFilterMode: (filterColumnName: string, filterMode: 'include' | 'exclude') => void;
116
123
  setLowerIsBetter: (lowerIsBetter: boolean) => void;
124
+ setValueAlignment: (valueAlignment: 'left' | 'center') => void;
117
125
  clearEditorFilter: (filterColumn: FilterByColumn) => void;
118
126
  removeEditorFilter: (filterColumn: FilterByColumn) => void;
119
127
  updateEditorFilterValue: (filterColumnName: string, filterValue: OldFilterValue, clearFilter?: boolean) => void;
@@ -125,6 +133,7 @@ declare type Actions_2 = TableActions & ExplorerActions & DrillActions & {
125
133
  setQueryConfig: (queryConfig: QueryConfig | undefined) => void;
126
134
  setCardTitle: (title: string) => void;
127
135
  setCardDescription: (description: string) => void;
136
+ setCardId: (cardId: string) => void;
128
137
  setCountryLogo: (countryLogoId: string | null) => void;
129
138
  setIsDevMode: (isDevMode: boolean) => void;
130
139
  setOrderByColumns: (orderByColumns: OrderBy[]) => void;
@@ -212,6 +221,7 @@ export declare type AggregateFunction = 'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX'
212
221
 
213
222
  declare type AIContext = {
214
223
  selectedEntities: SelectedEntities;
224
+ fileAttachments?: FileAttachment[];
215
225
  };
216
226
 
217
227
  export declare type AIScopeTable = {
@@ -402,7 +412,10 @@ export declare type ColumnRole = 'groupby' | 'trendby' | 'metric' | 'filter';
402
412
  declare interface ColumnSettings {
403
413
  type: 'none' | 'text' | 'number' | 'date' | 'badge' | 'link' | 'progress';
404
414
  textAlign: 'left' | 'center' | 'right';
405
- width: string;
415
+ width: number;
416
+ minWidth?: number;
417
+ maxWidth?: number;
418
+ textOverflow?: 'ellipsis' | 'wrap' | 'clip';
406
419
  textWrap: 'wrap' | 'nowrap';
407
420
  numberFormat: {
408
421
  style: 'decimal' | 'currency' | 'percent';
@@ -420,6 +433,8 @@ declare interface ColumnSettings {
420
433
  useCustomFormat: boolean;
421
434
  customFormat: string;
422
435
  useRelativeTime: boolean;
436
+ timezone?: string;
437
+ sourceTimezone?: string;
423
438
  };
424
439
  colorRanges: ColorRange_2[];
425
440
  }
@@ -463,6 +478,33 @@ declare type DashboardPlusProps = {
463
478
  showFooter?: boolean;
464
479
  } & DashboardProps;
465
480
 
481
+ /**
482
+ * Unified dashboard preferences for both card display and UI modes
483
+ */
484
+ export declare type DashboardPreferences = {
485
+ /**
486
+ * Visual display preferences for cards
487
+ * Controls how card content is rendered (headers, footers, etc.)
488
+ */
489
+ cardDisplay?: VisualDisplayPreferences;
490
+ /**
491
+ * UI modes for developer and debug features
492
+ * Controls what developer tools and debug panels are available
493
+ */
494
+ uiMode?: {
495
+ /**
496
+ * Enable developer mode
497
+ * Shows additional controls and debug information
498
+ */
499
+ developer?: boolean;
500
+ /**
501
+ * Enable console mode
502
+ * Shows console panel for debugging
503
+ */
504
+ console?: boolean;
505
+ };
506
+ };
507
+
466
508
  export declare type DashboardProps = {
467
509
  id?: string;
468
510
  /**
@@ -472,10 +514,7 @@ export declare type DashboardProps = {
472
514
  /**
473
515
  * Default filter values for the dashboard. The dashboard will be filtered by these values when the user loads the dashboard.
474
516
  */
475
- defaultFilterValues?: {
476
- filterId: string;
477
- values: string[] | number[];
478
- }[] | TFilterValue[];
517
+ defaultFilterValues?: TFilterValue[];
479
518
  customStyle?: TStyle;
480
519
  currentTheme?: Theme;
481
520
  version?: string;
@@ -496,6 +535,11 @@ export declare type DashboardProps = {
496
535
  * The id of the sheet to be selected when the dashboard is loaded.
497
536
  */
498
537
  selectedSheetId?: string;
538
+ /**
539
+ * Unified preferences for dashboard configuration
540
+ * Includes both card display preferences and UI mode settings
541
+ */
542
+ preferences?: DashboardPreferences;
499
543
  };
500
544
 
501
545
  export declare type DashboardStore = {
@@ -600,7 +644,7 @@ export declare type Dialect = 'mysql' | 'postgresql' | 'bigquery' | 'redshift' |
600
644
 
601
645
  export declare type DisplayDataType = 'string' | 'date' | 'number' | 'html' | 'none';
602
646
 
603
- export declare function downloadPdf(): Promise<void>;
647
+ export declare function downloadPdf(password?: string): Promise<void>;
604
648
 
605
649
  declare interface DrillActions {
606
650
  updateDrillHierarchies: (h: DrillHierarchy[]) => void;
@@ -824,6 +868,17 @@ export declare interface Field {
824
868
  role?: 'groupby' | 'metric' | 'sortby' | 'pivotby';
825
869
  }
826
870
 
871
+ declare type FileAttachment = {
872
+ id: string;
873
+ name: string;
874
+ size: number;
875
+ type: string;
876
+ data?: string;
877
+ url?: string;
878
+ preview?: string;
879
+ uploadProgress?: number;
880
+ };
881
+
827
882
  export declare interface FileEntityReference extends DatabaseEntityReference {
828
883
  id: string;
829
884
  type: 'file' | 'url' | 'upload';
@@ -897,7 +952,7 @@ declare type FilterOnClick = {
897
952
  columnIndex: number;
898
953
  };
899
954
 
900
- export declare type FilterValue = string | number | boolean | Date | [number, number] | [string, string] | string[] | number[];
955
+ export declare type FilterValue = string | number | boolean | Date | null | [number, number] | [string, string] | string[] | number[];
901
956
 
902
957
  export declare function fmt(str: string): string;
903
958
 
@@ -1091,6 +1146,11 @@ export declare interface MetricField extends Field {
1091
1146
  valueAliases?: Record<string, string>;
1092
1147
  }
1093
1148
 
1149
+ declare interface MinimalResourceForSharing {
1150
+ id: string;
1151
+ title: string;
1152
+ }
1153
+
1094
1154
  export declare type ModelItem = DropdownItem;
1095
1155
 
1096
1156
  declare type NoneOptions = {};
@@ -1113,7 +1173,7 @@ export declare type OldFilterValue = string | number | null | (string | number)[
1113
1173
 
1114
1174
  declare type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
1115
1175
 
1116
- export declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between';
1176
+ export declare type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'startsWith' | 'endsWith' | 'in' | 'not in' | 'between' | 'isNull' | 'isNotNull';
1117
1177
 
1118
1178
  declare type OptionsMap = {
1119
1179
  number: NumberOptions;
@@ -1231,6 +1291,11 @@ declare interface ResourceManagementPanelProps {
1231
1291
  onDashboardItemClick?: (dashboardId: string) => void;
1232
1292
  }
1233
1293
 
1294
+ export declare enum ResourceType {
1295
+ DASHBOARD = "dashboard",
1296
+ VISUAL = "visual"
1297
+ }
1298
+
1234
1299
  export declare function ScheduleDashboard({ triggerButtonClassName, }: {
1235
1300
  triggerButtonClassName?: string;
1236
1301
  }): JSX_2.Element;
@@ -1273,6 +1338,16 @@ declare function SemaphorQueryClient({ children, }: {
1273
1338
  export { SemaphorQueryClient as SemaphorDataProvider }
1274
1339
  export { SemaphorQueryClient }
1275
1340
 
1341
+ export declare function ShareDialog({ resource, resourceType, onClose, onShareSuccess, onRemoveSuccess, }: ShareDialogProps): JSX_2.Element;
1342
+
1343
+ declare interface ShareDialogProps {
1344
+ resource: MinimalResourceForSharing;
1345
+ resourceType: ResourceType;
1346
+ onClose: () => void;
1347
+ onShareSuccess?: () => void;
1348
+ onRemoveSuccess?: () => void;
1349
+ }
1350
+
1276
1351
  export declare interface SortByField extends Field {
1277
1352
  role: 'sortby';
1278
1353
  direction: 'asc' | 'desc';
@@ -1346,6 +1421,7 @@ export declare function Surfboard({ showControls, showFooter, ...rest }: Dashboa
1346
1421
  declare interface TableActions {
1347
1422
  updateColumnSettingsMap: (columnSettings: ColumnSettingsMap) => void;
1348
1423
  updateColumnVisibility: (columnId: string, isVisible: boolean) => void;
1424
+ updateColumnSizing: (sizing: ColumnSizingState) => void;
1349
1425
  updatePageSize: (pageSize: number) => void;
1350
1426
  showAllColumns: () => void;
1351
1427
  hideAllColumns: () => void;
@@ -1367,6 +1443,7 @@ declare type TablePreferences = {
1367
1443
  columnSettingsMap?: ColumnSettingsMap;
1368
1444
  selectColumnVisible?: boolean;
1369
1445
  columnVisibility?: Record<string, boolean>;
1446
+ columnSizing?: ColumnSizingState;
1370
1447
  pageSize?: number;
1371
1448
  enableDevModePagination?: boolean;
1372
1449
  };
@@ -1405,6 +1482,11 @@ export declare type TCard = {
1405
1482
  lastSelectedSchema?: string;
1406
1483
  lastSelectedTable?: string;
1407
1484
  refreshInterval?: string;
1485
+ /**
1486
+ * Card-specific display preferences that override dashboard-level preferences.
1487
+ * If not specified, the card will use the dashboard's display preferences.
1488
+ */
1489
+ displayPreferences?: VisualDisplayPreferences;
1408
1490
  };
1409
1491
 
1410
1492
  export declare type TCardContext = {
@@ -1455,6 +1537,7 @@ export declare type TCardPreferences = {
1455
1537
  kpiVisualOptions?: {
1456
1538
  lowerIsBetter?: boolean;
1457
1539
  countryLogoId?: string;
1540
+ valueAlignment?: 'left' | 'center';
1458
1541
  formatOptions?: TFormatOptions;
1459
1542
  metricComparison?: {
1460
1543
  enabled?: boolean;
@@ -1690,7 +1773,7 @@ export declare type TLens = {
1690
1773
  * Parameters for customizing token behavior and formatting.
1691
1774
  */
1692
1775
  export declare type TokenParams = {
1693
- currencyFormat: {
1776
+ currencyFormat?: {
1694
1777
  /**
1695
1778
  * Locale identifier (e.g., 'en-US', 'fr-FR').
1696
1779
  */
@@ -1700,6 +1783,79 @@ export declare type TokenParams = {
1700
1783
  */
1701
1784
  currency: string;
1702
1785
  };
1786
+ /**
1787
+ * Time zone identifier (e.g., 'America/New_York', 'Europe/London').
1788
+ */
1789
+ timeZone?: string;
1790
+ };
1791
+
1792
+ export declare type TokenProps = {
1793
+ /**
1794
+ * Allowed semantic domains.
1795
+ */
1796
+ allowedSemanticDomains?: string[];
1797
+ /**
1798
+ * Type of the token request. Default is 'dashboard'.
1799
+ */
1800
+ type?: 'dashboard' | 'project';
1801
+ /**
1802
+ * Initial dashboard id to be accessed.
1803
+ */
1804
+ dashboard_id?: string;
1805
+ /**
1806
+ * Unique identifier of the project.
1807
+ */
1808
+ project_id?: string;
1809
+ /**
1810
+ * Unique identifier of the tenant.
1811
+ */
1812
+ tenantId?: string;
1813
+ /**
1814
+ * Unique identifier of the tenant user accessing the dashboard.
1815
+ */
1816
+ endUserId?: string;
1817
+ /**
1818
+ * Email of the tenant user (for personalization, audit, or identification).
1819
+ */
1820
+ endUserEmail?: string;
1821
+ /**
1822
+ * Unique identifier of the org user accessing the dashboard.
1823
+ */
1824
+ orgUserId?: string;
1825
+ /**
1826
+ * Email of the org user (for personalization, audit, or identification).
1827
+ */
1828
+ orgUserEmail?: string;
1829
+ /**
1830
+ * Display name of the end user.
1831
+ */
1832
+ displayName?: string;
1833
+ /**
1834
+ * Enables self-service editing and lens creation by the end user.
1835
+ */
1836
+ allowEdit?: boolean;
1837
+ /**
1838
+ * Schema level security policy. The schema name for the tenant.
1839
+ */
1840
+ sls?: string;
1841
+ /**
1842
+ * Connection-level security policies.
1843
+ * Can be a single policy or an array of policies.
1844
+ */
1845
+ cls?: TokenSecurityPolicy[] | TokenSecurityPolicy;
1846
+ /**
1847
+ * Row-level security policies.
1848
+ * Can be a single policy or an array of policies.
1849
+ */
1850
+ rcls?: TokenSecurityPolicy[] | TokenSecurityPolicy;
1851
+ /**
1852
+ * Parameter overrides and preferences (e.g., formatting).
1853
+ */
1854
+ params?: TokenParams;
1855
+ /**
1856
+ * UI behavior and feature flags.
1857
+ */
1858
+ config?: UIConfig;
1703
1859
  };
1704
1860
 
1705
1861
  /**
@@ -1850,6 +2006,11 @@ export declare type UIConfig = {
1850
2006
  * Defaults to true unless explicitly disabled.
1851
2007
  */
1852
2008
  showAdvancedMode?: boolean;
2009
+ /**
2010
+ * Enables the Info tab in the editor/explorer view.
2011
+ * Defaults to true unless explicitly disabled.
2012
+ */
2013
+ showInfoTab?: boolean;
1853
2014
  /**
1854
2015
  * Enables the AI-powered dashboard assistant.
1855
2016
  * Defaults to true unless explicitly disabled.
@@ -1978,4 +2139,49 @@ export declare function useTextFilterHook(filterId: string): {
1978
2139
  allSelected: boolean;
1979
2140
  };
1980
2141
 
2142
+ export declare function Visual(props: VisualProps): JSX_2.Element;
2143
+
2144
+ /**
2145
+ * Display mode for visual components - controls which UI elements are shown
2146
+ */
2147
+ export declare type VisualDisplayMode = 'full' | 'content-only' | 'print' | 'embed' | 'table-print';
2148
+
2149
+ /**
2150
+ * Display preferences for controlling visual component rendering
2151
+ */
2152
+ export declare type VisualDisplayPreferences = {
2153
+ /**
2154
+ * Predefined display mode
2155
+ * - 'full': All UI elements (default)
2156
+ * - 'content-only': Just the visualization/table content
2157
+ * - 'print': Optimized for printing (shows title and description, hides interactive elements)
2158
+ * - 'embed': Minimal chrome for embedding in other contexts
2159
+ */
2160
+ mode?: VisualDisplayMode;
2161
+ /**
2162
+ * Override specific UI elements visibility
2163
+ * These overrides take precedence over the mode presets
2164
+ */
2165
+ overrides?: {
2166
+ showHeader?: boolean;
2167
+ showTitle?: boolean;
2168
+ showDescription?: boolean;
2169
+ showTabs?: boolean;
2170
+ showFooter?: boolean;
2171
+ showFilters?: boolean;
2172
+ showBreadcrumbs?: boolean;
2173
+ showRefreshIndicator?: boolean;
2174
+ showFilterInfo?: boolean;
2175
+ showPagination?: boolean;
2176
+ showTableToolbar?: boolean;
2177
+ showColumnSettings?: boolean;
2178
+ };
2179
+ };
2180
+
2181
+ declare type VisualProps = DashboardProps & {
2182
+ cardId: string;
2183
+ dashboardId: string;
2184
+ displayPreferences?: VisualDisplayPreferences;
2185
+ };
2186
+
1981
2187
  export { }