@object-ui/types 0.3.1 → 2.0.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 (141) hide show
  1. package/README.md +1 -1
  2. package/dist/ai.d.ts +376 -0
  3. package/dist/ai.d.ts.map +1 -0
  4. package/dist/ai.js +8 -0
  5. package/dist/app.d.ts +10 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/blocks.d.ts +332 -0
  8. package/dist/blocks.d.ts.map +1 -0
  9. package/dist/blocks.js +8 -0
  10. package/dist/crud.d.ts +177 -3
  11. package/dist/crud.d.ts.map +1 -1
  12. package/dist/data-display.d.ts +35 -0
  13. package/dist/data-display.d.ts.map +1 -1
  14. package/dist/data-protocol.d.ts +1268 -0
  15. package/dist/data-protocol.d.ts.map +1 -0
  16. package/dist/data-protocol.js +8 -0
  17. package/dist/data.d.ts +74 -1
  18. package/dist/data.d.ts.map +1 -1
  19. package/dist/designer.d.ts +473 -0
  20. package/dist/designer.d.ts.map +1 -0
  21. package/dist/designer.js +8 -0
  22. package/dist/field-types.d.ts +353 -11
  23. package/dist/field-types.d.ts.map +1 -1
  24. package/dist/form.d.ts +35 -1
  25. package/dist/form.d.ts.map +1 -1
  26. package/dist/index.d.ts +58 -4
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +18 -0
  29. package/dist/layout.d.ts +63 -8
  30. package/dist/layout.d.ts.map +1 -1
  31. package/dist/mobile.d.ts +186 -0
  32. package/dist/mobile.d.ts.map +1 -0
  33. package/dist/mobile.js +8 -0
  34. package/dist/objectql.d.ts +337 -89
  35. package/dist/objectql.d.ts.map +1 -1
  36. package/dist/permissions.d.ts +150 -0
  37. package/dist/permissions.d.ts.map +1 -0
  38. package/dist/permissions.js +8 -0
  39. package/dist/plugin-scope.d.ts +194 -0
  40. package/dist/plugin-scope.d.ts.map +1 -0
  41. package/dist/plugin-scope.js +8 -0
  42. package/dist/reports.d.ts +336 -0
  43. package/dist/reports.d.ts.map +1 -0
  44. package/dist/reports.js +8 -0
  45. package/dist/tenant.d.ts +138 -0
  46. package/dist/tenant.d.ts.map +1 -0
  47. package/dist/tenant.js +8 -0
  48. package/dist/theme.d.ts +180 -0
  49. package/dist/theme.d.ts.map +1 -0
  50. package/dist/theme.js +8 -0
  51. package/dist/ui-action.d.ts +290 -0
  52. package/dist/ui-action.d.ts.map +1 -0
  53. package/dist/ui-action.js +8 -0
  54. package/dist/views.d.ts +427 -0
  55. package/dist/views.d.ts.map +1 -0
  56. package/dist/views.js +8 -0
  57. package/dist/widget.d.ts +181 -0
  58. package/dist/widget.d.ts.map +1 -0
  59. package/dist/widget.js +8 -0
  60. package/dist/workflow.d.ts +340 -0
  61. package/dist/workflow.d.ts.map +1 -0
  62. package/dist/workflow.js +8 -0
  63. package/dist/zod/app.zod.d.ts +120 -0
  64. package/dist/zod/app.zod.d.ts.map +1 -0
  65. package/dist/zod/app.zod.js +60 -0
  66. package/dist/zod/blocks.zod.d.ts +834 -0
  67. package/dist/zod/blocks.zod.d.ts.map +1 -0
  68. package/dist/zod/blocks.zod.js +145 -0
  69. package/dist/zod/complex.zod.d.ts +4 -4
  70. package/dist/zod/complex.zod.js +1 -1
  71. package/dist/zod/crud.zod.d.ts +598 -0
  72. package/dist/zod/crud.zod.d.ts.map +1 -0
  73. package/dist/zod/crud.zod.js +230 -0
  74. package/dist/zod/data-display.zod.js +1 -1
  75. package/dist/zod/disclosure.zod.js +1 -1
  76. package/dist/zod/feedback.zod.d.ts +10 -10
  77. package/dist/zod/feedback.zod.js +1 -1
  78. package/dist/zod/form.zod.d.ts +4 -4
  79. package/dist/zod/form.zod.js +1 -1
  80. package/dist/zod/index.zod.d.ts +2032 -30
  81. package/dist/zod/index.zod.d.ts.map +1 -1
  82. package/dist/zod/index.zod.js +96 -19
  83. package/dist/zod/layout.zod.d.ts +134 -2
  84. package/dist/zod/layout.zod.d.ts.map +1 -1
  85. package/dist/zod/layout.zod.js +35 -1
  86. package/dist/zod/navigation.zod.js +1 -1
  87. package/dist/zod/objectql.zod.d.ts +34 -18
  88. package/dist/zod/objectql.zod.d.ts.map +1 -1
  89. package/dist/zod/objectql.zod.js +9 -1
  90. package/dist/zod/overlay.zod.js +1 -1
  91. package/dist/zod/reports.zod.d.ts +1628 -0
  92. package/dist/zod/reports.zod.d.ts.map +1 -0
  93. package/dist/zod/reports.zod.js +152 -0
  94. package/dist/zod/theme.zod.d.ts +1292 -0
  95. package/dist/zod/theme.zod.d.ts.map +1 -0
  96. package/dist/zod/theme.zod.js +260 -0
  97. package/dist/zod/views.zod.d.ts +675 -0
  98. package/dist/zod/views.zod.d.ts.map +1 -0
  99. package/dist/zod/views.zod.js +159 -0
  100. package/package.json +3 -2
  101. package/src/__tests__/namespace-exports.test.ts +36 -0
  102. package/src/__tests__/phase2-schemas.test.ts +634 -0
  103. package/src/ai.ts +454 -0
  104. package/src/app.ts +12 -0
  105. package/src/blocks.ts +405 -0
  106. package/src/crud.ts +180 -3
  107. package/src/data-display.ts +31 -0
  108. package/src/data-protocol.ts +1679 -0
  109. package/src/data.ts +84 -1
  110. package/src/designer.ts +509 -0
  111. package/src/field-types.ts +392 -11
  112. package/src/form.ts +35 -1
  113. package/src/index.ts +426 -0
  114. package/src/layout.ts +66 -8
  115. package/src/mobile.ts +205 -0
  116. package/src/objectql.ts +412 -94
  117. package/src/permissions.ts +166 -0
  118. package/src/plugin-scope.ts +210 -0
  119. package/src/reports.ts +408 -0
  120. package/src/tenant.ts +153 -0
  121. package/src/theme.ts +238 -0
  122. package/src/ui-action.ts +415 -0
  123. package/src/views.ts +436 -0
  124. package/src/widget.ts +197 -0
  125. package/src/workflow.ts +409 -0
  126. package/src/zod/app.zod.ts +72 -0
  127. package/src/zod/blocks.zod.ts +170 -0
  128. package/src/zod/complex.zod.ts +1 -1
  129. package/src/zod/crud.zod.ts +259 -0
  130. package/src/zod/data-display.zod.ts +1 -1
  131. package/src/zod/disclosure.zod.ts +1 -1
  132. package/src/zod/feedback.zod.ts +1 -1
  133. package/src/zod/form.zod.ts +1 -1
  134. package/src/zod/index.zod.ts +178 -19
  135. package/src/zod/layout.zod.ts +39 -1
  136. package/src/zod/navigation.zod.ts +1 -1
  137. package/src/zod/objectql.zod.ts +9 -1
  138. package/src/zod/overlay.zod.ts +1 -1
  139. package/src/zod/reports.zod.ts +183 -0
  140. package/src/zod/theme.zod.ts +296 -0
  141. package/src/zod/views.zod.ts +182 -0
@@ -0,0 +1,340 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ /**
9
+ * @object-ui/types - Workflow Schema
10
+ *
11
+ * Defines workflow UI types for visual workflow design, approval processes,
12
+ * and workflow instance tracking.
13
+ */
14
+ import type { BaseSchema } from './base';
15
+ /**
16
+ * Workflow lifecycle status
17
+ */
18
+ export type WorkflowStatus = 'draft' | 'active' | 'paused' | 'completed' | 'cancelled';
19
+ /**
20
+ * Types of nodes available in the workflow designer
21
+ */
22
+ export type WorkflowNodeType = 'start' | 'end' | 'task' | 'approval' | 'condition' | 'parallel' | 'delay' | 'notification' | 'script';
23
+ /**
24
+ * Types of edges connecting workflow nodes
25
+ */
26
+ export type WorkflowEdgeType = 'default' | 'conditional' | 'timeout';
27
+ /**
28
+ * Action that can be performed on a workflow node
29
+ */
30
+ export interface WorkflowNodeAction {
31
+ /**
32
+ * Action type
33
+ */
34
+ type: 'approve' | 'reject' | 'reassign' | 'comment' | 'escalate' | 'custom';
35
+ /**
36
+ * Display label for the action
37
+ */
38
+ label: string;
39
+ /**
40
+ * Target node to transition to after action
41
+ */
42
+ nextNodeId?: string;
43
+ /**
44
+ * Condition expression for action availability
45
+ */
46
+ condition?: string;
47
+ }
48
+ /**
49
+ * A node in the workflow graph
50
+ */
51
+ export interface WorkflowNode {
52
+ /**
53
+ * Unique node identifier
54
+ */
55
+ id: string;
56
+ /**
57
+ * Node type
58
+ */
59
+ type: WorkflowNodeType;
60
+ /**
61
+ * Display label
62
+ */
63
+ label: string;
64
+ /**
65
+ * Node description
66
+ */
67
+ description?: string;
68
+ /**
69
+ * Position in the workflow canvas
70
+ */
71
+ position?: {
72
+ x: number;
73
+ y: number;
74
+ };
75
+ /**
76
+ * Node-specific configuration
77
+ */
78
+ config?: Record<string, any>;
79
+ /**
80
+ * Assignee identifier
81
+ */
82
+ assignee?: string;
83
+ /**
84
+ * How the assignee is resolved
85
+ */
86
+ assigneeType?: 'user' | 'role' | 'group' | 'expression';
87
+ /**
88
+ * Timeout duration in minutes
89
+ */
90
+ timeout?: number;
91
+ /**
92
+ * Available actions for this node
93
+ */
94
+ actions?: WorkflowNodeAction[];
95
+ }
96
+ /**
97
+ * An edge connecting two workflow nodes
98
+ */
99
+ export interface WorkflowEdge {
100
+ /**
101
+ * Unique edge identifier
102
+ */
103
+ id: string;
104
+ /**
105
+ * Source node identifier
106
+ */
107
+ source: string;
108
+ /**
109
+ * Target node identifier
110
+ */
111
+ target: string;
112
+ /**
113
+ * Edge type
114
+ */
115
+ type?: WorkflowEdgeType;
116
+ /**
117
+ * Display label
118
+ */
119
+ label?: string;
120
+ /**
121
+ * Condition expression for conditional edges
122
+ */
123
+ condition?: string;
124
+ }
125
+ /**
126
+ * Rule governing how approvals are processed
127
+ */
128
+ export interface ApprovalRule {
129
+ /**
130
+ * Approval strategy type
131
+ */
132
+ type: 'any' | 'all' | 'majority' | 'sequential';
133
+ /**
134
+ * Minimum number of approvals required
135
+ */
136
+ minApprovals?: number;
137
+ /**
138
+ * Timeout duration in minutes
139
+ */
140
+ timeout?: number;
141
+ /**
142
+ * Identifier to escalate to on timeout
143
+ */
144
+ escalateTo?: string;
145
+ /**
146
+ * Expression that triggers automatic approval
147
+ */
148
+ autoApproveCondition?: string;
149
+ }
150
+ /**
151
+ * Variable definition for workflow context
152
+ */
153
+ export interface WorkflowVariable {
154
+ /**
155
+ * Variable name
156
+ */
157
+ name: string;
158
+ /**
159
+ * Variable data type
160
+ */
161
+ type: 'string' | 'number' | 'boolean' | 'date' | 'object';
162
+ /**
163
+ * Default value
164
+ */
165
+ defaultValue?: any;
166
+ /**
167
+ * Whether the variable is required
168
+ */
169
+ required?: boolean;
170
+ }
171
+ /**
172
+ * Workflow Schema - Main workflow definition
173
+ */
174
+ export interface WorkflowSchema extends BaseSchema {
175
+ type: 'workflow';
176
+ /**
177
+ * Workflow title
178
+ */
179
+ title?: string;
180
+ /**
181
+ * Workflow description
182
+ */
183
+ description?: string;
184
+ /**
185
+ * Current workflow status
186
+ */
187
+ status?: WorkflowStatus;
188
+ /**
189
+ * Workflow nodes
190
+ */
191
+ nodes: WorkflowNode[];
192
+ /**
193
+ * Workflow edges
194
+ */
195
+ edges: WorkflowEdge[];
196
+ /**
197
+ * Workflow variables
198
+ */
199
+ variables?: WorkflowVariable[];
200
+ /**
201
+ * Workflow version number
202
+ */
203
+ version?: number;
204
+ }
205
+ /**
206
+ * Workflow Designer Schema - Visual workflow editor component
207
+ */
208
+ export interface WorkflowDesignerSchema extends BaseSchema {
209
+ type: 'workflow-designer';
210
+ /**
211
+ * Workflow to edit
212
+ */
213
+ workflow?: WorkflowSchema;
214
+ /**
215
+ * Whether the designer is in read-only mode
216
+ */
217
+ readOnly?: boolean;
218
+ /**
219
+ * Show minimap navigation panel
220
+ */
221
+ showMinimap?: boolean;
222
+ /**
223
+ * Show designer toolbar
224
+ */
225
+ showToolbar?: boolean;
226
+ /**
227
+ * Save callback action
228
+ */
229
+ onSave?: string;
230
+ /**
231
+ * Publish callback action
232
+ */
233
+ onPublish?: string;
234
+ }
235
+ /**
236
+ * A single entry in the approval history
237
+ */
238
+ export interface ApprovalHistoryItem {
239
+ /**
240
+ * Node where the action was taken
241
+ */
242
+ nodeId: string;
243
+ /**
244
+ * Action that was performed
245
+ */
246
+ action: string;
247
+ /**
248
+ * Actor identifier
249
+ */
250
+ actor: string;
251
+ /**
252
+ * Display name of the actor
253
+ */
254
+ actorName?: string;
255
+ /**
256
+ * ISO 8601 timestamp of the action
257
+ */
258
+ timestamp: string;
259
+ /**
260
+ * Optional comment
261
+ */
262
+ comment?: string;
263
+ }
264
+ /**
265
+ * Approval Process Schema - Approval workflow UI component
266
+ */
267
+ export interface ApprovalProcessSchema extends BaseSchema {
268
+ type: 'approval-process';
269
+ /**
270
+ * Associated workflow identifier
271
+ */
272
+ workflowId?: string;
273
+ /**
274
+ * Workflow instance identifier
275
+ */
276
+ instanceId?: string;
277
+ /**
278
+ * Current active node identifier
279
+ */
280
+ currentNodeId?: string;
281
+ /**
282
+ * Approval rule configuration
283
+ */
284
+ approvalRule?: ApprovalRule;
285
+ /**
286
+ * Approval history entries
287
+ */
288
+ history?: ApprovalHistoryItem[];
289
+ /**
290
+ * Approval process data
291
+ */
292
+ data?: Record<string, any>;
293
+ /**
294
+ * Show approval history timeline
295
+ */
296
+ showHistory?: boolean;
297
+ /**
298
+ * Show comments section
299
+ */
300
+ showComments?: boolean;
301
+ }
302
+ /**
303
+ * Workflow Instance Schema - Runtime state of a workflow execution
304
+ */
305
+ export interface WorkflowInstanceSchema extends BaseSchema {
306
+ type: 'workflow-instance';
307
+ /**
308
+ * Associated workflow definition identifier
309
+ */
310
+ workflowId: string;
311
+ /**
312
+ * Unique instance identifier
313
+ */
314
+ instanceId: string;
315
+ /**
316
+ * Current instance status
317
+ */
318
+ status: WorkflowStatus;
319
+ /**
320
+ * Currently active node identifiers
321
+ */
322
+ currentNodes: string[];
323
+ /**
324
+ * Runtime variable values
325
+ */
326
+ variables?: Record<string, any>;
327
+ /**
328
+ * ISO 8601 timestamp when the instance started
329
+ */
330
+ startedAt?: string;
331
+ /**
332
+ * ISO 8601 timestamp when the instance completed
333
+ */
334
+ completedAt?: string;
335
+ /**
336
+ * Instance data payload
337
+ */
338
+ data?: Record<string, any>;
339
+ }
340
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ export {};
@@ -0,0 +1,120 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ /**
9
+ * @object-ui/types/zod - Application Schema Zod Validators
10
+ *
11
+ * Zod validation schemas for top-level application configuration.
12
+ * Following @objectstack/spec UI specification format.
13
+ *
14
+ * @module zod/app
15
+ * @packageDocumentation
16
+ */
17
+ import { z } from 'zod';
18
+ /**
19
+ * Menu Item Schema - Navigation menu item
20
+ */
21
+ export declare const MenuItemSchema: z.ZodType<any>;
22
+ /**
23
+ * App Action Schema - Application header/toolbar action
24
+ */
25
+ export declare const AppActionSchema: z.ZodObject<{
26
+ type: z.ZodEnum<{
27
+ button: "button";
28
+ dropdown: "dropdown";
29
+ user: "user";
30
+ }>;
31
+ label: z.ZodOptional<z.ZodString>;
32
+ icon: z.ZodOptional<z.ZodString>;
33
+ onClick: z.ZodOptional<z.ZodString>;
34
+ avatar: z.ZodOptional<z.ZodString>;
35
+ description: z.ZodOptional<z.ZodString>;
36
+ items: z.ZodOptional<z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>>;
37
+ shortcut: z.ZodOptional<z.ZodString>;
38
+ variant: z.ZodOptional<z.ZodEnum<{
39
+ default: "default";
40
+ destructive: "destructive";
41
+ outline: "outline";
42
+ secondary: "secondary";
43
+ ghost: "ghost";
44
+ link: "link";
45
+ }>>;
46
+ size: z.ZodOptional<z.ZodEnum<{
47
+ default: "default";
48
+ sm: "sm";
49
+ lg: "lg";
50
+ icon: "icon";
51
+ }>>;
52
+ }, z.core.$strip>;
53
+ /**
54
+ * App Schema - Top-level application configuration
55
+ */
56
+ export declare const AppSchema: z.ZodObject<{
57
+ id: z.ZodOptional<z.ZodString>;
58
+ label: z.ZodOptional<z.ZodString>;
59
+ placeholder: z.ZodOptional<z.ZodString>;
60
+ className: z.ZodOptional<z.ZodString>;
61
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
62
+ data: z.ZodOptional<z.ZodAny>;
63
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>, z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>]>>;
64
+ children: z.ZodOptional<z.ZodUnion<readonly [z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>, z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>]>>;
65
+ visible: z.ZodOptional<z.ZodBoolean>;
66
+ visibleOn: z.ZodOptional<z.ZodString>;
67
+ hidden: z.ZodOptional<z.ZodBoolean>;
68
+ hiddenOn: z.ZodOptional<z.ZodString>;
69
+ disabled: z.ZodOptional<z.ZodBoolean>;
70
+ disabledOn: z.ZodOptional<z.ZodString>;
71
+ testId: z.ZodOptional<z.ZodString>;
72
+ ariaLabel: z.ZodOptional<z.ZodString>;
73
+ type: z.ZodLiteral<"app">;
74
+ name: z.ZodOptional<z.ZodString>;
75
+ title: z.ZodOptional<z.ZodString>;
76
+ description: z.ZodOptional<z.ZodString>;
77
+ logo: z.ZodOptional<z.ZodString>;
78
+ favicon: z.ZodOptional<z.ZodString>;
79
+ layout: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
80
+ sidebar: "sidebar";
81
+ header: "header";
82
+ empty: "empty";
83
+ }>>>;
84
+ menu: z.ZodOptional<z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>>;
85
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
86
+ type: z.ZodEnum<{
87
+ button: "button";
88
+ dropdown: "dropdown";
89
+ user: "user";
90
+ }>;
91
+ label: z.ZodOptional<z.ZodString>;
92
+ icon: z.ZodOptional<z.ZodString>;
93
+ onClick: z.ZodOptional<z.ZodString>;
94
+ avatar: z.ZodOptional<z.ZodString>;
95
+ description: z.ZodOptional<z.ZodString>;
96
+ items: z.ZodOptional<z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>>;
97
+ shortcut: z.ZodOptional<z.ZodString>;
98
+ variant: z.ZodOptional<z.ZodEnum<{
99
+ default: "default";
100
+ destructive: "destructive";
101
+ outline: "outline";
102
+ secondary: "secondary";
103
+ ghost: "ghost";
104
+ link: "link";
105
+ }>>;
106
+ size: z.ZodOptional<z.ZodEnum<{
107
+ default: "default";
108
+ sm: "sm";
109
+ lg: "lg";
110
+ icon: "icon";
111
+ }>>;
112
+ }, z.core.$strip>>>;
113
+ }, z.core.$loose>;
114
+ /**
115
+ * Export type inference helpers
116
+ */
117
+ export type MenuItemSchemaType = z.infer<typeof MenuItemSchema>;
118
+ export type AppActionSchemaType = z.infer<typeof AppActionSchema>;
119
+ export type AppSchemaType = z.infer<typeof AppSchema>;
120
+ //# sourceMappingURL=app.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.zod.d.ts","sourceRoot":"","sources":["../../src/zod/app.zod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CASvC,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUpB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ /**
9
+ * @object-ui/types/zod - Application Schema Zod Validators
10
+ *
11
+ * Zod validation schemas for top-level application configuration.
12
+ * Following @objectstack/spec UI specification format.
13
+ *
14
+ * @module zod/app
15
+ * @packageDocumentation
16
+ */
17
+ import { z } from 'zod';
18
+ import { BaseSchema } from './base.zod.js';
19
+ /**
20
+ * Menu Item Schema - Navigation menu item
21
+ */
22
+ export const MenuItemSchema = z.lazy(() => z.object({
23
+ type: z.enum(['item', 'group', 'separator']).optional().describe('Item type'),
24
+ label: z.string().optional().describe('Display label'),
25
+ icon: z.string().optional().describe('Icon name (Lucide)'),
26
+ path: z.string().optional().describe('Target path (route)'),
27
+ href: z.string().optional().describe('External link'),
28
+ children: z.array(MenuItemSchema).optional().describe('Child items (submenu)'),
29
+ badge: z.union([z.string(), z.number()]).optional().describe('Badge or count'),
30
+ hidden: z.union([z.boolean(), z.string()]).optional().describe('Visibility condition'),
31
+ }));
32
+ /**
33
+ * App Action Schema - Application header/toolbar action
34
+ */
35
+ export const AppActionSchema = z.object({
36
+ type: z.enum(['button', 'dropdown', 'user']).describe('Action type'),
37
+ label: z.string().optional().describe('Action label'),
38
+ icon: z.string().optional().describe('Icon name'),
39
+ onClick: z.string().optional().describe('Click handler expression'),
40
+ avatar: z.string().optional().describe('User avatar URL (for type="user")'),
41
+ description: z.string().optional().describe('Additional description (e.g., email for user)'),
42
+ items: z.array(MenuItemSchema).optional().describe('Dropdown menu items (for type="dropdown" or "user")'),
43
+ shortcut: z.string().optional().describe('Keyboard shortcut'),
44
+ variant: z.enum(['default', 'destructive', 'outline', 'secondary', 'ghost', 'link']).optional().describe('Button variant'),
45
+ size: z.enum(['default', 'sm', 'lg', 'icon']).optional().describe('Button size'),
46
+ });
47
+ /**
48
+ * App Schema - Top-level application configuration
49
+ */
50
+ export const AppSchema = BaseSchema.extend({
51
+ type: z.literal('app'),
52
+ name: z.string().optional().describe('Application name (system ID)'),
53
+ title: z.string().optional().describe('Display title'),
54
+ description: z.string().optional().describe('Application description'),
55
+ logo: z.string().optional().describe('Logo URL or icon name'),
56
+ favicon: z.string().optional().describe('Favicon URL'),
57
+ layout: z.enum(['sidebar', 'header', 'empty']).optional().default('sidebar').describe('Global layout strategy'),
58
+ menu: z.array(MenuItemSchema).optional().describe('Global navigation menu'),
59
+ actions: z.array(AppActionSchema).optional().describe('Global actions (user profile, settings, etc.)'),
60
+ });