@object-ui/types 3.0.2 → 3.1.0

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 (85) hide show
  1. package/dist/app.d.ts +217 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +85 -1
  4. package/dist/complex.d.ts +129 -35
  5. package/dist/complex.d.ts.map +1 -1
  6. package/dist/data-display.d.ts +105 -1
  7. package/dist/data-display.d.ts.map +1 -1
  8. package/dist/data.d.ts +45 -0
  9. package/dist/data.d.ts.map +1 -1
  10. package/dist/designer.d.ts +197 -35
  11. package/dist/designer.d.ts.map +1 -1
  12. package/dist/designer.js +11 -1
  13. package/dist/index.d.ts +21 -10
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/layout.d.ts +39 -2
  17. package/dist/layout.d.ts.map +1 -1
  18. package/dist/navigation.d.ts +27 -0
  19. package/dist/navigation.d.ts.map +1 -1
  20. package/dist/objectql.d.ts +641 -7
  21. package/dist/objectql.d.ts.map +1 -1
  22. package/dist/record-components.d.ts +160 -0
  23. package/dist/record-components.d.ts.map +1 -0
  24. package/dist/record-components.js +8 -0
  25. package/dist/reports.d.ts +37 -0
  26. package/dist/reports.d.ts.map +1 -1
  27. package/dist/theme.d.ts +5 -0
  28. package/dist/theme.d.ts.map +1 -1
  29. package/dist/views.d.ts +257 -3
  30. package/dist/views.d.ts.map +1 -1
  31. package/dist/workflow.d.ts +198 -0
  32. package/dist/workflow.d.ts.map +1 -1
  33. package/dist/zod/app.zod.d.ts +42 -2
  34. package/dist/zod/app.zod.d.ts.map +1 -1
  35. package/dist/zod/app.zod.js +61 -1
  36. package/dist/zod/complex.zod.d.ts +138 -6
  37. package/dist/zod/complex.zod.d.ts.map +1 -1
  38. package/dist/zod/complex.zod.js +65 -2
  39. package/dist/zod/data-display.zod.d.ts +4 -0
  40. package/dist/zod/data-display.zod.d.ts.map +1 -1
  41. package/dist/zod/data-display.zod.js +2 -0
  42. package/dist/zod/form.zod.d.ts +6 -6
  43. package/dist/zod/index.zod.d.ts +368 -43
  44. package/dist/zod/index.zod.d.ts.map +1 -1
  45. package/dist/zod/index.zod.js +2 -2
  46. package/dist/zod/layout.zod.d.ts +6 -6
  47. package/dist/zod/navigation.zod.d.ts +58 -12
  48. package/dist/zod/navigation.zod.d.ts.map +1 -1
  49. package/dist/zod/navigation.zod.js +21 -9
  50. package/dist/zod/objectql.zod.d.ts +515 -27
  51. package/dist/zod/objectql.zod.d.ts.map +1 -1
  52. package/dist/zod/objectql.zod.js +162 -0
  53. package/dist/zod/reports.zod.d.ts +38 -38
  54. package/dist/zod/views.zod.d.ts +161 -7
  55. package/dist/zod/views.zod.d.ts.map +1 -1
  56. package/dist/zod/views.zod.js +21 -2
  57. package/package.json +2 -2
  58. package/src/__tests__/app-creation-types.test.ts +177 -0
  59. package/src/__tests__/dashboard-config.test.ts +208 -0
  60. package/src/__tests__/examples-metadata-compliance.test.ts +264 -0
  61. package/src/__tests__/navigation-model.test.ts +406 -0
  62. package/src/__tests__/p1-spec-alignment.test.ts +660 -0
  63. package/src/__tests__/p2-spec-exports.test.ts +312 -0
  64. package/src/__tests__/phase2-schemas.test.ts +108 -0
  65. package/src/app.ts +377 -0
  66. package/src/complex.ts +131 -31
  67. package/src/data-display.ts +107 -0
  68. package/src/data.ts +49 -0
  69. package/src/designer.ts +219 -30
  70. package/src/index.ts +192 -3
  71. package/src/layout.ts +55 -2
  72. package/src/navigation.ts +20 -0
  73. package/src/objectql.ts +757 -8
  74. package/src/record-components.ts +188 -0
  75. package/src/reports.ts +43 -0
  76. package/src/theme.ts +6 -0
  77. package/src/views.ts +275 -3
  78. package/src/workflow.ts +226 -0
  79. package/src/zod/app.zod.ts +74 -1
  80. package/src/zod/complex.zod.ts +67 -2
  81. package/src/zod/data-display.zod.ts +2 -0
  82. package/src/zod/index.zod.ts +5 -0
  83. package/src/zod/navigation.zod.ts +22 -10
  84. package/src/zod/objectql.zod.ts +167 -0
  85. package/src/zod/views.zod.ts +21 -2
package/dist/app.d.ts CHANGED
@@ -10,8 +10,100 @@
10
10
  *
11
11
  * Defines the metadata structure for a complete application, including
12
12
  * global layout, navigation menus, and routing configuration.
13
+ *
14
+ * ## Navigation Model
15
+ *
16
+ * ObjectUI uses a unified `NavigationItem` model aligned with @objectstack/spec.
17
+ * The legacy `MenuItem` type is retained for backward compatibility but new
18
+ * configurations should use `NavigationItem` and the `navigation` / `areas` fields.
13
19
  */
14
20
  import type { BaseSchema } from './base';
21
+ /**
22
+ * Navigation item type — determines the target and required fields.
23
+ */
24
+ export type NavigationItemType = 'object' | 'dashboard' | 'page' | 'report' | 'url' | 'group' | 'separator' | 'action';
25
+ /**
26
+ * Unified Navigation Item
27
+ *
28
+ * The single navigation primitive used across ObjectUI and @objectstack/spec.
29
+ * Replaces the legacy `MenuItem` for application navigation trees.
30
+ *
31
+ * Supports typed navigation targets (object, dashboard, page, report, url),
32
+ * nested groups, visibility expressions, RBAC permissions, and UX enhancements
33
+ * like badges, pinning, and sort ordering.
34
+ */
35
+ export interface NavigationItem {
36
+ /** Unique identifier */
37
+ id: string;
38
+ /** Navigation item type */
39
+ type: NavigationItemType;
40
+ /** Display label (plain string or I18nLabel object for internationalization) */
41
+ label: string | {
42
+ key: string;
43
+ defaultValue?: string;
44
+ params?: Record<string, any>;
45
+ };
46
+ /** Icon name (Lucide) */
47
+ icon?: string;
48
+ /** Target object name (for type: 'object') */
49
+ objectName?: string;
50
+ /** Target view name (for type: 'object') — opens a specific named list view e.g. 'calendar', 'pipeline' */
51
+ viewName?: string;
52
+ /** Target dashboard name (for type: 'dashboard') */
53
+ dashboardName?: string;
54
+ /** Target page name (for type: 'page') */
55
+ pageName?: string;
56
+ /** Target report name (for type: 'report') */
57
+ reportName?: string;
58
+ /** Target URL (for type: 'url') */
59
+ url?: string;
60
+ /** Link target (for type: 'url') */
61
+ target?: '_blank' | '_self';
62
+ /** Child navigation items (for type: 'group') */
63
+ children?: NavigationItem[];
64
+ /** Visibility expression — boolean or expression string e.g. "${user.role === 'admin'}" */
65
+ visible?: boolean | string;
66
+ /** Required permissions to see/access this item */
67
+ requiredPermissions?: string[];
68
+ /** Badge text or count */
69
+ badge?: string | number;
70
+ /** Badge visual variant */
71
+ badgeVariant?: 'default' | 'destructive' | 'outline';
72
+ /** Whether group is expanded by default (for type: 'group') */
73
+ defaultOpen?: boolean;
74
+ /** Whether this item is pinned */
75
+ pinned?: boolean;
76
+ /** Sort order weight (lower = higher) */
77
+ order?: number;
78
+ }
79
+ /**
80
+ * Navigation Area — a business-domain partition of navigation items.
81
+ *
82
+ * Inspired by Salesforce Lightning App → Area → Tab model and
83
+ * Microsoft Power Apps Area → Group → Subarea pattern.
84
+ *
85
+ * Each area contains an independent navigation tree, allowing large
86
+ * enterprise applications to organise navigation by domain (e.g.
87
+ * Sales, Service, Marketing).
88
+ */
89
+ export interface NavigationArea {
90
+ /** Unique identifier */
91
+ id: string;
92
+ /** Display label (plain string or I18nLabel object for internationalization) */
93
+ label: string | {
94
+ key: string;
95
+ defaultValue?: string;
96
+ params?: Record<string, any>;
97
+ };
98
+ /** Icon name (Lucide) */
99
+ icon?: string;
100
+ /** Navigation items within this area */
101
+ navigation: NavigationItem[];
102
+ /** Visibility expression */
103
+ visible?: boolean | string;
104
+ /** Required permissions to see this area */
105
+ requiredPermissions?: string[];
106
+ }
15
107
  /**
16
108
  * Top-level Application Configuration (app.json)
17
109
  */
@@ -25,10 +117,18 @@ export interface AppSchema extends BaseSchema {
25
117
  * Display Title
26
118
  */
27
119
  title?: string;
120
+ /**
121
+ * Display Label (used in navigation and app switcher)
122
+ */
123
+ label?: string;
28
124
  /**
29
125
  * Application Description
30
126
  */
31
127
  description?: string;
128
+ /**
129
+ * Icon name (Lucide) for app switcher and navigation
130
+ */
131
+ icon?: string;
32
132
  /**
33
133
  * Logo URL or Icon name
34
134
  */
@@ -37,6 +137,15 @@ export interface AppSchema extends BaseSchema {
37
137
  * Favicon URL
38
138
  */
39
139
  favicon?: string;
140
+ /**
141
+ * Branding configuration
142
+ */
143
+ branding?: BrandingConfig;
144
+ /**
145
+ * Whether the application is active (visible in app switcher)
146
+ * @default true
147
+ */
148
+ active?: boolean;
40
149
  /**
41
150
  * Global Layout Strategy
42
151
  * - sidebar: Standard admin layout with left sidebar
@@ -47,8 +156,20 @@ export interface AppSchema extends BaseSchema {
47
156
  layout?: 'sidebar' | 'header' | 'empty';
48
157
  /**
49
158
  * Global Navigation Menu
159
+ * @deprecated Use `navigation` instead. Retained for backward compatibility.
50
160
  */
51
161
  menu?: MenuItem[];
162
+ /**
163
+ * Unified navigation tree (aligned with @objectstack/spec NavigationItem model).
164
+ * Takes precedence over `menu` when both are present.
165
+ */
166
+ navigation?: NavigationItem[];
167
+ /**
168
+ * Navigation areas / business-domain partitions.
169
+ * When provided, the sidebar displays an area switcher and renders
170
+ * the selected area's navigation tree.
171
+ */
172
+ areas?: NavigationArea[];
52
173
  /**
53
174
  * Global Actions (User Profile, Settings, etc)
54
175
  */
@@ -66,6 +187,7 @@ export interface AppSchema extends BaseSchema {
66
187
  }
67
188
  /**
68
189
  * Navigation Menu Item
190
+ * @deprecated Use `NavigationItem` instead.
69
191
  */
70
192
  export interface MenuItem {
71
193
  /**
@@ -101,6 +223,101 @@ export interface MenuItem {
101
223
  */
102
224
  hidden?: boolean | string;
103
225
  }
226
+ /**
227
+ * Convert a legacy `MenuItem` to a `NavigationItem`.
228
+ *
229
+ * Mapping rules:
230
+ * - `type: 'item'` → inferred from `href` (url) or `path` (page)
231
+ * - `type: 'group'` → `type: 'group'`
232
+ * - `type: 'separator'` → `type: 'separator'`
233
+ * - `hidden` → `visible` (inverted)
234
+ * - `path` → `pageName` (last segment) or kept as-is for url
235
+ * - `href` → `url` with `target: '_blank'`
236
+ */
237
+ export declare function menuItemToNavigationItem(item: MenuItem, index?: number): NavigationItem;
238
+ /**
239
+ * Wizard step identifier for app creation flow.
240
+ */
241
+ export type AppWizardStepId = 'basic' | 'objects' | 'navigation' | 'branding';
242
+ /**
243
+ * App wizard step definition.
244
+ */
245
+ export interface AppWizardStep {
246
+ /** Step identifier */
247
+ id: AppWizardStepId;
248
+ /** Display label */
249
+ label: string;
250
+ /** Step description */
251
+ description?: string;
252
+ /** Icon name (Lucide) */
253
+ icon?: string;
254
+ /** Whether the step is optional */
255
+ optional?: boolean;
256
+ }
257
+ /**
258
+ * Branding configuration for an application.
259
+ */
260
+ export interface BrandingConfig {
261
+ /** Logo URL or base64 data URI */
262
+ logo?: string;
263
+ /** Primary brand color (hex) */
264
+ primaryColor?: string;
265
+ /** Favicon URL */
266
+ favicon?: string;
267
+ /** Font family override */
268
+ fontFamily?: string;
269
+ }
270
+ /**
271
+ * Object selection entry for the wizard.
272
+ */
273
+ export interface ObjectSelection {
274
+ /** Object name (snake_case) */
275
+ name: string;
276
+ /** Display label */
277
+ label: string;
278
+ /** Icon name (Lucide) */
279
+ icon?: string;
280
+ /** Whether this object is selected */
281
+ selected: boolean;
282
+ }
283
+ /**
284
+ * App creation wizard draft state — represents the in-progress
285
+ * application configuration before it is finalized into an AppSchema.
286
+ */
287
+ export interface AppWizardDraft {
288
+ /** App name (snake_case, validated) */
289
+ name: string;
290
+ /** Display title */
291
+ title: string;
292
+ /** Description */
293
+ description?: string;
294
+ /** App icon name (Lucide) */
295
+ icon?: string;
296
+ /** Template to start from */
297
+ template?: string;
298
+ /** Layout strategy */
299
+ layout: 'sidebar' | 'header' | 'empty';
300
+ /** Selected business objects */
301
+ objects: ObjectSelection[];
302
+ /** Navigation tree being built */
303
+ navigation: NavigationItem[];
304
+ /** Branding configuration */
305
+ branding: BrandingConfig;
306
+ }
307
+ /**
308
+ * Editor mode for the app designer.
309
+ */
310
+ export type EditorMode = 'edit' | 'preview' | 'code';
311
+ /**
312
+ * Validate an app name is snake_case.
313
+ * Pattern: starts with lowercase letter, followed by lowercase letters/digits,
314
+ * with optional underscore-separated segments (no trailing/leading/double underscores).
315
+ */
316
+ export declare function isValidAppName(name: string): boolean;
317
+ /**
318
+ * Convert an AppWizardDraft to an AppSchema.
319
+ */
320
+ export declare function wizardDraftToAppSchema(draft: AppWizardDraft): AppSchema;
104
321
  /**
105
322
  * Application Header/Toolbar Action
106
323
  */
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE,KAAK,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IAEtC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACjF;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CACzC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -5,4 +5,88 @@
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
- export {};
8
+ // ============================================================================
9
+ // MenuItem → NavigationItem Transform
10
+ // ============================================================================
11
+ /**
12
+ * Convert a legacy `MenuItem` to a `NavigationItem`.
13
+ *
14
+ * Mapping rules:
15
+ * - `type: 'item'` → inferred from `href` (url) or `path` (page)
16
+ * - `type: 'group'` → `type: 'group'`
17
+ * - `type: 'separator'` → `type: 'separator'`
18
+ * - `hidden` → `visible` (inverted)
19
+ * - `path` → `pageName` (last segment) or kept as-is for url
20
+ * - `href` → `url` with `target: '_blank'`
21
+ */
22
+ export function menuItemToNavigationItem(item, index = 0) {
23
+ const id = `migrated_${index}`;
24
+ if (item.type === 'separator') {
25
+ return {
26
+ id,
27
+ type: 'separator',
28
+ label: item.label || '',
29
+ };
30
+ }
31
+ if (item.type === 'group') {
32
+ return {
33
+ id,
34
+ type: 'group',
35
+ label: item.label || '',
36
+ icon: item.icon,
37
+ children: (item.children || []).map((child, i) => menuItemToNavigationItem(child, index * 100 + i)),
38
+ visible: item.hidden !== undefined ? !item.hidden : undefined,
39
+ badge: item.badge,
40
+ defaultOpen: true,
41
+ };
42
+ }
43
+ // Default: 'item' type — infer target from href / path
44
+ if (item.href) {
45
+ return {
46
+ id,
47
+ type: 'url',
48
+ label: item.label || '',
49
+ icon: item.icon,
50
+ url: item.href,
51
+ target: '_blank',
52
+ visible: item.hidden !== undefined ? !item.hidden : undefined,
53
+ badge: item.badge,
54
+ };
55
+ }
56
+ // Path-based item → treat as page navigation
57
+ return {
58
+ id,
59
+ type: 'page',
60
+ label: item.label || '',
61
+ icon: item.icon,
62
+ pageName: item.path || '',
63
+ visible: item.hidden !== undefined ? !item.hidden : undefined,
64
+ badge: item.badge,
65
+ };
66
+ }
67
+ /**
68
+ * Validate an app name is snake_case.
69
+ * Pattern: starts with lowercase letter, followed by lowercase letters/digits,
70
+ * with optional underscore-separated segments (no trailing/leading/double underscores).
71
+ */
72
+ export function isValidAppName(name) {
73
+ return /^[a-z][a-z0-9]*(_[a-z0-9]+)*$/.test(name);
74
+ }
75
+ /**
76
+ * Convert an AppWizardDraft to an AppSchema.
77
+ */
78
+ export function wizardDraftToAppSchema(draft) {
79
+ return {
80
+ type: 'app',
81
+ name: draft.name,
82
+ title: draft.title,
83
+ label: draft.title,
84
+ description: draft.description,
85
+ icon: draft.icon,
86
+ logo: draft.branding.logo,
87
+ favicon: draft.branding.favicon,
88
+ branding: draft.branding,
89
+ layout: draft.layout,
90
+ navigation: draft.navigation,
91
+ };
92
+ }
package/dist/complex.d.ts CHANGED
@@ -14,39 +14,6 @@
14
14
  * @packageDocumentation
15
15
  */
16
16
  import type { BaseSchema, SchemaNode } from './base';
17
- /**
18
- * Dashboard Component Schema
19
- * (Report / BI View)
20
- */
21
- export interface DashboardSchema extends BaseSchema {
22
- type: 'dashboard';
23
- /**
24
- * Layout Grid Configuration (e.g. 12 column grid)
25
- */
26
- columns?: number;
27
- /**
28
- * Widget gap
29
- */
30
- gap?: number;
31
- /**
32
- * Dashboard Widgets
33
- */
34
- widgets: Array<{
35
- /** Unique Widget ID */
36
- id: string;
37
- /** Widget Title */
38
- title?: string;
39
- /** Widget Component (Chart, Statistic, List, etc) */
40
- component: SchemaNode;
41
- /** Grid Position: x, y, w, h */
42
- layout?: {
43
- x: number;
44
- y: number;
45
- w: number;
46
- h: number;
47
- };
48
- }>;
49
- }
50
17
  /**
51
18
  * Kanban column
52
19
  */
@@ -477,23 +444,150 @@ export interface DashboardWidgetLayout {
477
444
  }
478
445
  /**
479
446
  * Dashboard Widget
447
+ *
448
+ * Supports two formats:
449
+ * 1. **Component format** (legacy): `{ id, component: { type, ... }, layout }`
450
+ * 2. **Shorthand format** (@objectstack/spec): `{ type: 'metric'|'bar'|…, options: {…}, layout }`
480
451
  */
481
452
  export interface DashboardWidgetSchema {
482
- id: string;
453
+ id?: string;
483
454
  title?: string;
484
- component: SchemaNode;
455
+ /** Widget description */
456
+ description?: string;
457
+ /** Component schema (legacy format) */
458
+ component?: SchemaNode;
485
459
  layout?: DashboardWidgetLayout;
460
+ /** Widget visualization type (spec shorthand format) */
461
+ type?: string;
462
+ /** Widget-specific configuration (spec shorthand format) */
463
+ options?: unknown;
464
+ /** Chart configuration for chart-type widgets */
465
+ chartConfig?: any;
466
+ /**
467
+ * Widget color variant.
468
+ * Aligned with @objectstack/spec WidgetColorVariantSchema.
469
+ */
470
+ colorVariant?: 'default' | 'blue' | 'teal' | 'orange' | 'purple' | 'success' | 'warning' | 'danger';
471
+ /** Action URL for clickable widgets */
472
+ actionUrl?: string;
473
+ /** Action type for widget interactions */
474
+ actionType?: string;
475
+ /** Action icon name */
476
+ actionIcon?: string;
477
+ /**
478
+ * Data binding: Object name for data source.
479
+ * Aligned with @objectstack/spec DashboardWidgetSchema.object.
480
+ */
481
+ object?: string;
482
+ /**
483
+ * Data binding: Filter conditions.
484
+ * Aligned with @objectstack/spec DashboardWidgetSchema.filter.
485
+ */
486
+ filter?: any;
487
+ /**
488
+ * Data binding: Category field for grouping.
489
+ * Aligned with @objectstack/spec DashboardWidgetSchema.categoryField.
490
+ */
491
+ categoryField?: string;
492
+ /**
493
+ * Data binding: Value field for aggregation.
494
+ * Aligned with @objectstack/spec DashboardWidgetSchema.valueField.
495
+ */
496
+ valueField?: string;
497
+ /**
498
+ * Aggregation function.
499
+ * Aligned with @objectstack/spec DashboardWidgetSchema.aggregate.
500
+ */
501
+ aggregate?: string;
502
+ /**
503
+ * Multiple measures for pivot/matrix display.
504
+ * Aligned with @objectstack/spec WidgetMeasureSchema.
505
+ */
506
+ measures?: Array<{
507
+ valueField: string;
508
+ aggregate: string;
509
+ label?: string;
510
+ format?: string;
511
+ }>;
512
+ /**
513
+ * Responsive configuration per breakpoint.
514
+ * Aligned with @objectstack/spec DashboardWidgetSchema.responsive.
515
+ */
516
+ responsive?: any;
517
+ /**
518
+ * ARIA accessibility attributes.
519
+ * Aligned with @objectstack/spec AriaPropsSchema.
520
+ */
521
+ aria?: {
522
+ ariaLabel?: string;
523
+ ariaDescribedBy?: string;
524
+ role?: string;
525
+ };
486
526
  }
487
527
  /**
488
528
  * Dashboard Schema
489
529
  */
490
530
  export interface DashboardSchema extends BaseSchema {
491
531
  type: 'dashboard';
532
+ /** Dashboard title displayed in the header */
533
+ title?: string;
492
534
  columns?: number;
493
535
  gap?: number;
494
536
  widgets: DashboardWidgetSchema[];
495
537
  /** Auto-refresh interval in seconds. When set, the dashboard will periodically trigger onRefresh. */
496
538
  refreshInterval?: number;
539
+ /**
540
+ * Dashboard header configuration.
541
+ * Aligned with @objectstack/spec DashboardHeaderSchema.
542
+ */
543
+ header?: {
544
+ showTitle?: boolean;
545
+ showDescription?: boolean;
546
+ actions?: Array<{
547
+ label: string;
548
+ actionUrl?: string;
549
+ actionType?: string;
550
+ icon?: string;
551
+ }>;
552
+ };
553
+ /**
554
+ * Global filter configurations.
555
+ * Applied across all dashboard widgets.
556
+ * Aligned with @objectstack/spec GlobalFilterSchema.
557
+ */
558
+ globalFilters?: Array<{
559
+ field: string;
560
+ label?: string;
561
+ type?: 'text' | 'select' | 'date' | 'number' | 'lookup';
562
+ options?: string[];
563
+ optionsFrom?: {
564
+ object: string;
565
+ valueField: string;
566
+ labelField?: string;
567
+ filter?: any;
568
+ };
569
+ defaultValue?: any;
570
+ scope?: string;
571
+ targetWidgets?: string[];
572
+ }>;
573
+ /**
574
+ * Date range filter configuration.
575
+ * Aligned with @objectstack/spec DashboardSchema.dateRange.
576
+ */
577
+ dateRange?: {
578
+ field?: string;
579
+ defaultRange?: 'today' | 'yesterday' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_quarter' | 'last_quarter' | 'this_year' | 'last_year' | 'last_7_days' | 'last_30_days' | 'last_90_days' | 'custom';
580
+ allowCustomRange?: boolean;
581
+ };
582
+ /**
583
+ * ARIA accessibility attributes.
584
+ * Aligned with @objectstack/spec AriaPropsSchema.
585
+ */
586
+ aria?: {
587
+ ariaLabel?: string;
588
+ ariaDescribedBy?: string;
589
+ role?: string;
590
+ };
497
591
  }
498
592
  /**
499
593
  * Union type of all complex schemas
@@ -1 +1 @@
1
- {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../src/complex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../src/complex.ts"],"names":[],"mappings":"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"}