react-semaphor 0.1.301 → 0.1.303

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 (66) hide show
  1. package/dist/appearance/index.cjs +1 -0
  2. package/dist/appearance/index.js +9 -0
  3. package/dist/brand-studio/index.cjs +21 -0
  4. package/dist/brand-studio/index.js +1461 -0
  5. package/dist/chunks/dashboard-controls-BCJZOzrL.js +2226 -0
  6. package/dist/chunks/dashboard-controls-CVFoOPti.js +47 -0
  7. package/dist/chunks/dashboard-filter-controls-button-C-e7230k.js +11 -0
  8. package/dist/chunks/{dashboard-filter-controls-button-DjALRkvg.js → dashboard-filter-controls-button-Cfbac4Jw.js} +205 -216
  9. package/dist/chunks/dashboard-json-BM5ywMgp.js +1 -0
  10. package/dist/chunks/{dashboard-json-D-zIG46N.js → dashboard-json-BzvLPhGM.js} +14 -12
  11. package/dist/chunks/dashboard-summary-settings-dialog-BdxKl1UF.js +1 -0
  12. package/dist/chunks/{dashboard-summary-settings-dialog-D-F1eEJI.js → dashboard-summary-settings-dialog-ChK3344r.js} +64 -63
  13. package/dist/chunks/date-formatter-D9Bvw5Qk.js +1 -0
  14. package/dist/chunks/date-formatter-DyIOb6uC.js +333 -0
  15. package/dist/chunks/{edit-dashboard-visual-BjflrL8w.js → edit-dashboard-visual-D725CWD5.js} +6690 -6679
  16. package/dist/chunks/edit-dashboard-visual-nNaZ2IK1.js +183 -0
  17. package/dist/chunks/index-BWjB_9uz.js +1356 -0
  18. package/dist/chunks/index-CJdxSyQq.js +2578 -0
  19. package/dist/chunks/{index-DDA12yqV.js → index-CYWgnME0.js} +48994 -66425
  20. package/dist/chunks/index-D7KJindZ.js +1 -0
  21. package/dist/chunks/index-DFOb_6HB.js +1657 -0
  22. package/dist/chunks/index-DRlMUglg.js +4 -0
  23. package/dist/chunks/palette-B9DJXMGo.js +11 -0
  24. package/dist/chunks/palette-DGOzbtsn.js +43 -0
  25. package/dist/chunks/{resource-management-panel-B2558XA1.js → resource-management-panel-CE0-NcLL.js} +116 -115
  26. package/dist/chunks/resource-management-panel-mJmc5dMT.js +6 -0
  27. package/dist/chunks/rotate-ccw-Bs7YJn10.js +6 -0
  28. package/dist/chunks/rotate-ccw-YsjQwpKm.js +14 -0
  29. package/dist/chunks/save-Bj1y1rug.js +6 -0
  30. package/dist/chunks/save-CUrexoNl.js +21 -0
  31. package/dist/chunks/switch-CiEX68py.js +163 -0
  32. package/dist/chunks/switch-oojO-gal.js +19730 -0
  33. package/dist/chunks/{use-create-flow-overlay-state-BUw_JtLs.js → use-create-flow-overlay-state-BHDKxe7I.js} +396 -412
  34. package/dist/chunks/use-create-flow-overlay-state-D2I2wNey.js +16 -0
  35. package/dist/chunks/{use-visual-utils-C45OxsOf.js → use-visual-utils-CjFzlR0P.js} +54 -53
  36. package/dist/chunks/use-visual-utils-DYDXMl5v.js +1 -0
  37. package/dist/dashboard/index.cjs +1 -1
  38. package/dist/dashboard/index.js +1 -1
  39. package/dist/format-utils/index.cjs +1 -1
  40. package/dist/format-utils/index.js +2 -2
  41. package/dist/index.cjs +1 -1
  42. package/dist/index.js +210 -207
  43. package/dist/style.css +1 -1
  44. package/dist/surfboard/index.cjs +1 -1
  45. package/dist/surfboard/index.js +2 -2
  46. package/dist/types/appearance.d.ts +176 -0
  47. package/dist/types/brand-studio.d.ts +245 -0
  48. package/dist/types/dashboard.d.ts +134 -0
  49. package/dist/types/main.d.ts +142 -1
  50. package/dist/types/surfboard.d.ts +134 -0
  51. package/dist/types/types.d.ts +139 -0
  52. package/package.json +13 -1
  53. package/dist/chunks/braces-Bhqo4iW1.js +0 -23
  54. package/dist/chunks/braces-BwK7fWd_.js +0 -6
  55. package/dist/chunks/dashboard-controls-BIRiWCUK.js +0 -47
  56. package/dist/chunks/dashboard-controls-DIlnYo96.js +0 -2219
  57. package/dist/chunks/dashboard-filter-controls-button-CK1-mKQh.js +0 -11
  58. package/dist/chunks/dashboard-json-DK4mQ1gS.js +0 -1
  59. package/dist/chunks/dashboard-summary-settings-dialog-DSxNqxFI.js +0 -1
  60. package/dist/chunks/date-formatter-CqXdM6JO.js +0 -1
  61. package/dist/chunks/date-formatter-vkCj9Ct-.js +0 -1982
  62. package/dist/chunks/edit-dashboard-visual-DCsrtJr_.js +0 -193
  63. package/dist/chunks/index-8GnvL1_L.js +0 -1523
  64. package/dist/chunks/resource-management-panel-CKp4_aem.js +0 -6
  65. package/dist/chunks/use-create-flow-overlay-state-CWcCdPbC.js +0 -21
  66. package/dist/chunks/use-visual-utils-DyaThRzf.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-8GnvL1_L.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-DSxNqxFI.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-BWjB_9uz.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-BdxKl1UF.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
@@ -1,6 +1,6 @@
1
- import { a as o } from "../chunks/index-DDA12yqV.js";
1
+ import { a as o } from "../chunks/index-CYWgnME0.js";
2
2
  import { CONTROL_CARD_DEFAULT_VALUE as s, EMPTY_SELECTION as D } from "../types/index.js";
3
- import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-D-F1eEJI.js";
3
+ import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-ChK3344r.js";
4
4
  export {
5
5
  s as CONTROL_CARD_DEFAULT_VALUE,
6
6
  m as CalendarPreferencesDialog,
@@ -0,0 +1,176 @@
1
+ export declare const APPEARANCE_SPEC_VERSION: 1;
2
+
3
+ declare type AppearanceColorToken = 'background' | 'foreground' | 'muted' | 'mutedForeground' | 'border' | 'input' | 'primary' | 'primaryForeground' | 'accent' | 'accentForeground' | 'card' | 'cardForeground' | 'positive' | 'negative' | 'warning' | 'info' | 'destructive' | 'destructiveForeground';
4
+
5
+ declare type AppearanceColorTokens = Partial<Record<AppearanceColorToken, string>>;
6
+
7
+ declare type AppearanceDensity = 'compact' | 'comfortable' | 'spacious';
8
+
9
+ export declare type AppearanceMode = 'light' | 'dark' | 'system';
10
+
11
+ declare type AppearanceResolutionLayers = {
12
+ defaults?: NormalizedAppearanceSpec;
13
+ organizationAppearance?: AppearanceSpec | null | undefined;
14
+ tokenAppearance?: AppearanceSpec | null | undefined;
15
+ reactAppearance?: AppearanceSpec | null | undefined;
16
+ };
17
+
18
+ declare type AppearanceScheme = {
19
+ tokens?: AppearanceTokens;
20
+ components?: {
21
+ dashboard?: BaseSurfaceAppearance;
22
+ card?: BaseSurfaceAppearance;
23
+ interactive?: InteractiveSurfaceAppearance;
24
+ chart?: ChartAppearance;
25
+ table?: TableAppearance;
26
+ pivotTable?: TableAppearance;
27
+ aggregateTable?: TableAppearance;
28
+ pagination?: BaseSurfaceAppearance;
29
+ };
30
+ };
31
+
32
+ export declare type AppearanceSpec = {
33
+ version: typeof APPEARANCE_SPEC_VERSION;
34
+ mode?: AppearanceMode;
35
+ schemes?: {
36
+ light?: AppearanceScheme;
37
+ dark?: AppearanceScheme;
38
+ };
39
+ };
40
+
41
+ declare type AppearanceTokens = {
42
+ color?: AppearanceColorTokens;
43
+ typography?: {
44
+ fontFamily?: string;
45
+ headingFontFamily?: string;
46
+ monoFontFamily?: string;
47
+ baseFontSize?: number;
48
+ density?: AppearanceDensity;
49
+ };
50
+ radius?: {
51
+ control?: number;
52
+ card?: number;
53
+ table?: number;
54
+ badge?: number;
55
+ };
56
+ spacing?: {
57
+ dashboardPadding?: number;
58
+ gridGap?: number;
59
+ cardPadding?: number;
60
+ controlGap?: number;
61
+ tableCellX?: number;
62
+ tableCellY?: number;
63
+ };
64
+ shadow?: {
65
+ card?: string;
66
+ popover?: string;
67
+ focusRing?: string;
68
+ };
69
+ };
70
+
71
+ export declare type AppearanceValidationIssue = {
72
+ path: string;
73
+ code: AppearanceValidationIssueCode;
74
+ message: string;
75
+ };
76
+
77
+ export declare type AppearanceValidationIssueCode = 'invalid_type' | 'invalid_version' | 'invalid_value' | 'invalid_color' | 'unsupported_field';
78
+
79
+ export declare type AppearanceValidationResult = {
80
+ success: true;
81
+ value: AppearanceSpec;
82
+ issues: [];
83
+ } | {
84
+ success: false;
85
+ issues: AppearanceValidationIssue[];
86
+ };
87
+
88
+ export declare function assertValidAppearanceSpec(input: unknown): asserts input is AppearanceSpec;
89
+
90
+ declare type BaseSurfaceAppearance = {
91
+ background?: string;
92
+ foreground?: string;
93
+ borderColor?: string;
94
+ borderRadius?: number;
95
+ shadow?: string;
96
+ padding?: number;
97
+ };
98
+
99
+ declare type ChartAppearance = {
100
+ palette?: string[];
101
+ background?: string;
102
+ foreground?: string;
103
+ gridColor?: string;
104
+ axisColor?: string;
105
+ };
106
+
107
+ declare type InteractiveSurfaceAppearance = BaseSurfaceAppearance & {
108
+ toolbarBackground?: string;
109
+ };
110
+
111
+ export declare function mergeAppearanceSpecs(base: NormalizedAppearanceSpec, override: AppearanceSpec): NormalizedAppearanceSpec;
112
+
113
+ export declare function normalizeAppearanceSpec(spec: AppearanceSpec, defaults?: NormalizedAppearanceSpec): NormalizedAppearanceSpec;
114
+
115
+ export declare type NormalizedAppearanceSpec = {
116
+ version: typeof APPEARANCE_SPEC_VERSION;
117
+ mode: AppearanceMode;
118
+ schemes: {
119
+ light: AppearanceScheme;
120
+ dark: AppearanceScheme;
121
+ };
122
+ };
123
+
124
+ export declare function resolveAppearance(layers?: AppearanceResolutionLayers): NormalizedAppearanceSpec;
125
+
126
+ declare type TableAppearance = {
127
+ density?: AppearanceDensity;
128
+ container?: {
129
+ background?: string;
130
+ borderColor?: string;
131
+ borderRadius?: number;
132
+ shadow?: string;
133
+ };
134
+ header?: {
135
+ background?: string;
136
+ foreground?: string;
137
+ dividerColor?: string;
138
+ fontWeight?: number;
139
+ uppercase?: boolean;
140
+ sticky?: boolean;
141
+ };
142
+ row?: {
143
+ height?: number;
144
+ dividerColor?: string;
145
+ zebra?: boolean;
146
+ zebraBackground?: string;
147
+ hoverBackground?: string;
148
+ selectedBackground?: string;
149
+ };
150
+ cell?: {
151
+ paddingX?: number;
152
+ paddingY?: number;
153
+ verticalAlign?: 'top' | 'middle' | 'bottom';
154
+ wrap?: 'wrap' | 'nowrap';
155
+ };
156
+ subtotal?: {
157
+ background?: string;
158
+ foreground?: string;
159
+ fontWeight?: number;
160
+ };
161
+ grandTotal?: {
162
+ background?: string;
163
+ foreground?: string;
164
+ fontWeight?: number;
165
+ borderColor?: string;
166
+ };
167
+ pagination?: {
168
+ background?: string;
169
+ foreground?: string;
170
+ borderColor?: string;
171
+ };
172
+ };
173
+
174
+ export declare function validateAppearanceSpec(input: unknown): AppearanceValidationResult;
175
+
176
+ export { }
@@ -0,0 +1,245 @@
1
+ import { JSX } from 'react/jsx-runtime';
2
+
3
+ declare const APPEARANCE_SPEC_VERSION: 1;
4
+
5
+ declare type AppearanceColorToken = 'background' | 'foreground' | 'muted' | 'mutedForeground' | 'border' | 'input' | 'primary' | 'primaryForeground' | 'accent' | 'accentForeground' | 'card' | 'cardForeground' | 'positive' | 'negative' | 'warning' | 'info' | 'destructive' | 'destructiveForeground';
6
+
7
+ declare type AppearanceColorTokens = Partial<Record<AppearanceColorToken, string>>;
8
+
9
+ declare type AppearanceColorTokens_2 = NonNullable<AppearanceTokens_2['color']>;
10
+
11
+ declare type AppearanceComponents = NonNullable<AppearanceScheme_2['components']>;
12
+
13
+ declare type AppearanceDensity = 'compact' | 'comfortable' | 'spacious';
14
+
15
+ declare type AppearanceDensity_2 = 'compact' | 'comfortable' | 'spacious';
16
+
17
+ declare type AppearanceMode = 'light' | 'dark' | 'system';
18
+
19
+ declare type AppearanceMode_2 = 'light' | 'dark' | 'system';
20
+
21
+ declare type AppearanceScheme = {
22
+ tokens?: AppearanceTokens;
23
+ components?: {
24
+ dashboard?: BaseSurfaceAppearance;
25
+ card?: BaseSurfaceAppearance;
26
+ interactive?: InteractiveSurfaceAppearance;
27
+ chart?: ChartAppearance;
28
+ table?: TableAppearance;
29
+ pivotTable?: TableAppearance;
30
+ aggregateTable?: TableAppearance;
31
+ pagination?: BaseSurfaceAppearance;
32
+ };
33
+ };
34
+
35
+ declare type AppearanceScheme_2 = NonNullable<NonNullable<AppearanceSpec['schemes']>[AppearanceSchemeName]>;
36
+
37
+ declare type AppearanceSchemeName = 'light' | 'dark';
38
+
39
+ declare type AppearanceSpec = {
40
+ version: typeof APPEARANCE_SPEC_VERSION;
41
+ mode?: AppearanceMode;
42
+ schemes?: {
43
+ light?: AppearanceScheme;
44
+ dark?: AppearanceScheme;
45
+ };
46
+ };
47
+
48
+ declare type AppearanceTable = NonNullable<AppearanceComponents['table']>;
49
+
50
+ declare type AppearanceTokens = {
51
+ color?: AppearanceColorTokens;
52
+ typography?: {
53
+ fontFamily?: string;
54
+ headingFontFamily?: string;
55
+ monoFontFamily?: string;
56
+ baseFontSize?: number;
57
+ density?: AppearanceDensity;
58
+ };
59
+ radius?: {
60
+ control?: number;
61
+ card?: number;
62
+ table?: number;
63
+ badge?: number;
64
+ };
65
+ spacing?: {
66
+ dashboardPadding?: number;
67
+ gridGap?: number;
68
+ cardPadding?: number;
69
+ controlGap?: number;
70
+ tableCellX?: number;
71
+ tableCellY?: number;
72
+ };
73
+ shadow?: {
74
+ card?: string;
75
+ popover?: string;
76
+ focusRing?: string;
77
+ };
78
+ };
79
+
80
+ declare type AppearanceTokens_2 = NonNullable<AppearanceScheme_2['tokens']>;
81
+
82
+ export declare function applyBrandStudioPreset(draft: BrandStudioDraft, presetId: string): BrandStudioDraft;
83
+
84
+ declare type BaseSurfaceAppearance = {
85
+ background?: string;
86
+ foreground?: string;
87
+ borderColor?: string;
88
+ borderRadius?: number;
89
+ shadow?: string;
90
+ padding?: number;
91
+ };
92
+
93
+ export declare const BRAND_STUDIO_PRESETS: BrandStudioPreset[];
94
+
95
+ export declare type BrandStudioDraft = {
96
+ version: typeof APPEARANCE_SPEC_VERSION;
97
+ mode: AppearanceMode_2;
98
+ schemes: {
99
+ light: RequiredBrandStudioScheme;
100
+ dark: RequiredBrandStudioScheme;
101
+ };
102
+ };
103
+
104
+ export declare function BrandStudioEditor({ appearance, previewTitle, isLoading, isSaving, error, className, onDraftChange, onSave, onClearConfig, onCancel, }: BrandStudioEditorProps): JSX.Element;
105
+
106
+ export declare type BrandStudioEditorProps = {
107
+ appearance?: AppearanceSpec | null;
108
+ previewTitle?: string;
109
+ isLoading?: boolean;
110
+ isSaving?: boolean;
111
+ error?: string | null;
112
+ className?: string;
113
+ onDraftChange?: (appearance: AppearanceSpec) => void;
114
+ onSave?: (appearance: AppearanceSpec) => void | Promise<void>;
115
+ onClearConfig?: () => void | Promise<void>;
116
+ onCancel?: () => void;
117
+ };
118
+
119
+ declare type BrandStudioPreset = {
120
+ id: string;
121
+ name: string;
122
+ description: string;
123
+ primary: string;
124
+ accent: string;
125
+ light: PresetScheme;
126
+ dark: PresetScheme;
127
+ };
128
+
129
+ export declare function buildAppearanceSpecFromDraft(draft: BrandStudioDraft): AppearanceSpec;
130
+
131
+ declare type ChartAppearance = {
132
+ palette?: string[];
133
+ background?: string;
134
+ foreground?: string;
135
+ gridColor?: string;
136
+ axisColor?: string;
137
+ };
138
+
139
+ export declare function createBrandStudioDraft(appearance?: AppearanceSpec | null): BrandStudioDraft;
140
+
141
+ declare type InteractiveSurfaceAppearance = BaseSurfaceAppearance & {
142
+ toolbarBackground?: string;
143
+ };
144
+
145
+ export declare function mirrorTableAppearance(scheme: RequiredBrandStudioScheme, target: 'aggregateTable' | 'pivotTable'): void;
146
+
147
+ declare type PresetScheme = {
148
+ background: string;
149
+ foreground: string;
150
+ muted: string;
151
+ mutedForeground: string;
152
+ border: string;
153
+ primary: string;
154
+ primaryForeground: string;
155
+ accent: string;
156
+ accentForeground: string;
157
+ card: string;
158
+ cardForeground: string;
159
+ chartPalette: string[];
160
+ };
161
+
162
+ declare type RequiredAppearanceTokens = {
163
+ color: Required<AppearanceColorTokens_2>;
164
+ typography: Required<NonNullable<AppearanceTokens_2['typography']>>;
165
+ radius: Required<NonNullable<AppearanceTokens_2['radius']>>;
166
+ spacing: Required<NonNullable<AppearanceTokens_2['spacing']>>;
167
+ shadow: Required<NonNullable<AppearanceTokens_2['shadow']>>;
168
+ };
169
+
170
+ declare type RequiredBrandStudioComponents = {
171
+ dashboard: NonNullable<AppearanceComponents['dashboard']>;
172
+ card: NonNullable<AppearanceComponents['card']>;
173
+ interactive: NonNullable<AppearanceComponents['interactive']>;
174
+ chart: Required<NonNullable<AppearanceComponents['chart']>>;
175
+ table: RequiredTableAppearance;
176
+ aggregateTable: RequiredTableAppearance;
177
+ pivotTable: RequiredTableAppearance;
178
+ pagination: NonNullable<AppearanceComponents['pagination']>;
179
+ };
180
+
181
+ export declare type RequiredBrandStudioScheme = {
182
+ tokens: RequiredAppearanceTokens;
183
+ components: RequiredBrandStudioComponents;
184
+ };
185
+
186
+ declare type RequiredTableAppearance = {
187
+ density: AppearanceDensity_2;
188
+ container: NonNullable<AppearanceTable['container']>;
189
+ header: Required<NonNullable<AppearanceTable['header']>>;
190
+ row: Required<NonNullable<AppearanceTable['row']>>;
191
+ cell: Required<NonNullable<AppearanceTable['cell']>>;
192
+ subtotal: Required<NonNullable<AppearanceTable['subtotal']>>;
193
+ grandTotal: Required<NonNullable<AppearanceTable['grandTotal']>>;
194
+ pagination: Required<NonNullable<AppearanceTable['pagination']>>;
195
+ };
196
+
197
+ declare type TableAppearance = {
198
+ density?: AppearanceDensity;
199
+ container?: {
200
+ background?: string;
201
+ borderColor?: string;
202
+ borderRadius?: number;
203
+ shadow?: string;
204
+ };
205
+ header?: {
206
+ background?: string;
207
+ foreground?: string;
208
+ dividerColor?: string;
209
+ fontWeight?: number;
210
+ uppercase?: boolean;
211
+ sticky?: boolean;
212
+ };
213
+ row?: {
214
+ height?: number;
215
+ dividerColor?: string;
216
+ zebra?: boolean;
217
+ zebraBackground?: string;
218
+ hoverBackground?: string;
219
+ selectedBackground?: string;
220
+ };
221
+ cell?: {
222
+ paddingX?: number;
223
+ paddingY?: number;
224
+ verticalAlign?: 'top' | 'middle' | 'bottom';
225
+ wrap?: 'wrap' | 'nowrap';
226
+ };
227
+ subtotal?: {
228
+ background?: string;
229
+ foreground?: string;
230
+ fontWeight?: number;
231
+ };
232
+ grandTotal?: {
233
+ background?: string;
234
+ foreground?: string;
235
+ fontWeight?: number;
236
+ borderColor?: string;
237
+ };
238
+ pagination?: {
239
+ background?: string;
240
+ foreground?: string;
241
+ borderColor?: string;
242
+ };
243
+ };
244
+
245
+ export { }
@@ -22,6 +22,69 @@ export declare type AIScopeTable = {
22
22
  datamodelName: string;
23
23
  };
24
24
 
25
+ declare const APPEARANCE_SPEC_VERSION: 1;
26
+
27
+ declare type AppearanceColorToken = 'background' | 'foreground' | 'muted' | 'mutedForeground' | 'border' | 'input' | 'primary' | 'primaryForeground' | 'accent' | 'accentForeground' | 'card' | 'cardForeground' | 'positive' | 'negative' | 'warning' | 'info' | 'destructive' | 'destructiveForeground';
28
+
29
+ declare type AppearanceColorTokens = Partial<Record<AppearanceColorToken, string>>;
30
+
31
+ declare type AppearanceDensity = 'compact' | 'comfortable' | 'spacious';
32
+
33
+ declare type AppearanceMode = 'light' | 'dark' | 'system';
34
+
35
+ declare type AppearanceScheme = {
36
+ tokens?: AppearanceTokens;
37
+ components?: {
38
+ dashboard?: BaseSurfaceAppearance;
39
+ card?: BaseSurfaceAppearance;
40
+ interactive?: InteractiveSurfaceAppearance;
41
+ chart?: ChartAppearance;
42
+ table?: TableAppearance;
43
+ pivotTable?: TableAppearance;
44
+ aggregateTable?: TableAppearance;
45
+ pagination?: BaseSurfaceAppearance;
46
+ };
47
+ };
48
+
49
+ declare type AppearanceSpec = {
50
+ version: typeof APPEARANCE_SPEC_VERSION;
51
+ mode?: AppearanceMode;
52
+ schemes?: {
53
+ light?: AppearanceScheme;
54
+ dark?: AppearanceScheme;
55
+ };
56
+ };
57
+
58
+ declare type AppearanceTokens = {
59
+ color?: AppearanceColorTokens;
60
+ typography?: {
61
+ fontFamily?: string;
62
+ headingFontFamily?: string;
63
+ monoFontFamily?: string;
64
+ baseFontSize?: number;
65
+ density?: AppearanceDensity;
66
+ };
67
+ radius?: {
68
+ control?: number;
69
+ card?: number;
70
+ table?: number;
71
+ badge?: number;
72
+ };
73
+ spacing?: {
74
+ dashboardPadding?: number;
75
+ gridGap?: number;
76
+ cardPadding?: number;
77
+ controlGap?: number;
78
+ tableCellX?: number;
79
+ tableCellY?: number;
80
+ };
81
+ shadow?: {
82
+ card?: string;
83
+ popover?: string;
84
+ focusRing?: string;
85
+ };
86
+ };
87
+
25
88
  export declare type AssistantId = 'dashboard-assistant' | 'editor-assistant';
26
89
 
27
90
  export declare type AuthToken = {
@@ -77,6 +140,15 @@ declare type BaseFilter = {
77
140
  semanticContext?: FilterSemanticContext;
78
141
  };
79
142
 
143
+ declare type BaseSurfaceAppearance = {
144
+ background?: string;
145
+ foreground?: string;
146
+ borderColor?: string;
147
+ borderRadius?: number;
148
+ shadow?: string;
149
+ padding?: number;
150
+ };
151
+
80
152
  export declare type Breakpoint = 'lg' | 'md' | 'sm' | 'xs' | 'xxs';
81
153
 
82
154
  export declare type CacheConfig = {
@@ -211,6 +283,14 @@ declare type CardWithFooter = BaseCustomCard & {
211
283
  }>;
212
284
  };
213
285
 
286
+ declare type ChartAppearance = {
287
+ palette?: string[];
288
+ background?: string;
289
+ foreground?: string;
290
+ gridColor?: string;
291
+ axisColor?: string;
292
+ };
293
+
214
294
  declare interface ClickFilterInteraction {
215
295
  mode: 'clickFilter';
216
296
  /**
@@ -473,6 +553,7 @@ export declare type DashboardProps = {
473
553
  */
474
554
  renderMode?: 'dashboard' | 'document';
475
555
  customStyle?: TStyle;
556
+ appearance?: AppearanceSpec;
476
557
  currentTheme?: Theme;
477
558
  version?: string;
478
559
  showAssistant?: boolean;
@@ -1212,6 +1293,7 @@ export declare type GetDashboardResponse = {
1212
1293
  defaultLensId?: string;
1213
1294
  assistantProfileId?: string;
1214
1295
  semanticExecutionPayload: SemanticExecutionPayload;
1296
+ organizationAppearance?: AppearanceSpec | null;
1215
1297
  };
1216
1298
 
1217
1299
  export declare type GetPluginsResponse = {
@@ -1319,6 +1401,10 @@ declare interface InteractionTrigger {
1319
1401
  field: Field;
1320
1402
  }
1321
1403
 
1404
+ declare type InteractiveSurfaceAppearance = BaseSurfaceAppearance & {
1405
+ toolbarBackground?: string;
1406
+ };
1407
+
1322
1408
  declare interface Join {
1323
1409
  id: string;
1324
1410
  source: DatabaseEntityReference;
@@ -1642,6 +1728,54 @@ export declare type StyleProps = {
1642
1728
  };
1643
1729
  };
1644
1730
 
1731
+ declare type TableAppearance = {
1732
+ density?: AppearanceDensity;
1733
+ container?: {
1734
+ background?: string;
1735
+ borderColor?: string;
1736
+ borderRadius?: number;
1737
+ shadow?: string;
1738
+ };
1739
+ header?: {
1740
+ background?: string;
1741
+ foreground?: string;
1742
+ dividerColor?: string;
1743
+ fontWeight?: number;
1744
+ uppercase?: boolean;
1745
+ sticky?: boolean;
1746
+ };
1747
+ row?: {
1748
+ height?: number;
1749
+ dividerColor?: string;
1750
+ zebra?: boolean;
1751
+ zebraBackground?: string;
1752
+ hoverBackground?: string;
1753
+ selectedBackground?: string;
1754
+ };
1755
+ cell?: {
1756
+ paddingX?: number;
1757
+ paddingY?: number;
1758
+ verticalAlign?: 'top' | 'middle' | 'bottom';
1759
+ wrap?: 'wrap' | 'nowrap';
1760
+ };
1761
+ subtotal?: {
1762
+ background?: string;
1763
+ foreground?: string;
1764
+ fontWeight?: number;
1765
+ };
1766
+ grandTotal?: {
1767
+ background?: string;
1768
+ foreground?: string;
1769
+ fontWeight?: number;
1770
+ borderColor?: string;
1771
+ };
1772
+ pagination?: {
1773
+ background?: string;
1774
+ foreground?: string;
1775
+ borderColor?: string;
1776
+ };
1777
+ };
1778
+
1645
1779
  /**
1646
1780
  * Row rhythm for the whole table. Authors pick one per card; undefined
1647
1781
  * falls back to 'compact' (the canonical default — dense scanning, matches