@zentto/studio-core 0.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 (105) hide show
  1. package/dist/__tests__/data-binding.test.d.ts +2 -0
  2. package/dist/__tests__/data-binding.test.d.ts.map +1 -0
  3. package/dist/__tests__/data-binding.test.js +86 -0
  4. package/dist/__tests__/data-binding.test.js.map +1 -0
  5. package/dist/__tests__/event-bus.test.d.ts +2 -0
  6. package/dist/__tests__/event-bus.test.d.ts.map +1 -0
  7. package/dist/__tests__/event-bus.test.js +70 -0
  8. package/dist/__tests__/event-bus.test.js.map +1 -0
  9. package/dist/__tests__/expression.test.d.ts +2 -0
  10. package/dist/__tests__/expression.test.d.ts.map +1 -0
  11. package/dist/__tests__/expression.test.js +173 -0
  12. package/dist/__tests__/expression.test.js.map +1 -0
  13. package/dist/__tests__/schema.test.d.ts +2 -0
  14. package/dist/__tests__/schema.test.d.ts.map +1 -0
  15. package/dist/__tests__/schema.test.js +91 -0
  16. package/dist/__tests__/schema.test.js.map +1 -0
  17. package/dist/__tests__/validation.test.d.ts +2 -0
  18. package/dist/__tests__/validation.test.d.ts.map +1 -0
  19. package/dist/__tests__/validation.test.js +70 -0
  20. package/dist/__tests__/validation.test.js.map +1 -0
  21. package/dist/app-types.d.ts +184 -0
  22. package/dist/app-types.d.ts.map +1 -0
  23. package/dist/app-types.js +4 -0
  24. package/dist/app-types.js.map +1 -0
  25. package/dist/data/data-source.d.ts +16 -0
  26. package/dist/data/data-source.d.ts.map +1 -0
  27. package/dist/data/data-source.js +139 -0
  28. package/dist/data/data-source.js.map +1 -0
  29. package/dist/data/data-transformer.d.ts +15 -0
  30. package/dist/data/data-transformer.d.ts.map +1 -0
  31. package/dist/data/data-transformer.js +58 -0
  32. package/dist/data/data-transformer.js.map +1 -0
  33. package/dist/engine/action-engine.d.ts +18 -0
  34. package/dist/engine/action-engine.d.ts.map +1 -0
  35. package/dist/engine/action-engine.js +97 -0
  36. package/dist/engine/action-engine.js.map +1 -0
  37. package/dist/engine/data-binding.d.ts +46 -0
  38. package/dist/engine/data-binding.d.ts.map +1 -0
  39. package/dist/engine/data-binding.js +198 -0
  40. package/dist/engine/data-binding.js.map +1 -0
  41. package/dist/engine/expression.d.ts +39 -0
  42. package/dist/engine/expression.d.ts.map +1 -0
  43. package/dist/engine/expression.js +630 -0
  44. package/dist/engine/expression.js.map +1 -0
  45. package/dist/engine/rule-engine.d.ts +23 -0
  46. package/dist/engine/rule-engine.d.ts.map +1 -0
  47. package/dist/engine/rule-engine.js +91 -0
  48. package/dist/engine/rule-engine.js.map +1 -0
  49. package/dist/engine/validation.d.ts +16 -0
  50. package/dist/engine/validation.d.ts.map +1 -0
  51. package/dist/engine/validation.js +116 -0
  52. package/dist/engine/validation.js.map +1 -0
  53. package/dist/events/event-bus.d.ts +16 -0
  54. package/dist/events/event-bus.d.ts.map +1 -0
  55. package/dist/events/event-bus.js +51 -0
  56. package/dist/events/event-bus.js.map +1 -0
  57. package/dist/i18n/en.d.ts +29 -0
  58. package/dist/i18n/en.d.ts.map +1 -0
  59. package/dist/i18n/en.js +29 -0
  60. package/dist/i18n/en.js.map +1 -0
  61. package/dist/i18n/es.d.ts +29 -0
  62. package/dist/i18n/es.d.ts.map +1 -0
  63. package/dist/i18n/es.js +29 -0
  64. package/dist/i18n/es.js.map +1 -0
  65. package/dist/i18n/i18n.d.ts +14 -0
  66. package/dist/i18n/i18n.d.ts.map +1 -0
  67. package/dist/i18n/i18n.js +32 -0
  68. package/dist/i18n/i18n.js.map +1 -0
  69. package/dist/i18n/pt.d.ts +29 -0
  70. package/dist/i18n/pt.d.ts.map +1 -0
  71. package/dist/i18n/pt.js +29 -0
  72. package/dist/i18n/pt.js.map +1 -0
  73. package/dist/index.d.ts +24 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +31 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/layout/grid-solver.d.ts +18 -0
  78. package/dist/layout/grid-solver.d.ts.map +1 -0
  79. package/dist/layout/grid-solver.js +72 -0
  80. package/dist/layout/grid-solver.js.map +1 -0
  81. package/dist/persistence/flavor-manager.d.ts +17 -0
  82. package/dist/persistence/flavor-manager.d.ts.map +1 -0
  83. package/dist/persistence/flavor-manager.js +63 -0
  84. package/dist/persistence/flavor-manager.js.map +1 -0
  85. package/dist/persistence/schema-store.d.ts +35 -0
  86. package/dist/persistence/schema-store.d.ts.map +1 -0
  87. package/dist/persistence/schema-store.js +142 -0
  88. package/dist/persistence/schema-store.js.map +1 -0
  89. package/dist/registry/field-registry.d.ts +12 -0
  90. package/dist/registry/field-registry.d.ts.map +1 -0
  91. package/dist/registry/field-registry.js +91 -0
  92. package/dist/registry/field-registry.js.map +1 -0
  93. package/dist/schema/studio-schema.d.ts +1196 -0
  94. package/dist/schema/studio-schema.d.ts.map +1 -0
  95. package/dist/schema/studio-schema.js +191 -0
  96. package/dist/schema/studio-schema.js.map +1 -0
  97. package/dist/templates/app-templates.d.ts +35 -0
  98. package/dist/templates/app-templates.d.ts.map +1 -0
  99. package/dist/templates/app-templates.js +306 -0
  100. package/dist/templates/app-templates.js.map +1 -0
  101. package/dist/types.d.ts +270 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/types.js +4 -0
  104. package/dist/types.js.map +1 -0
  105. package/package.json +44 -0
@@ -0,0 +1,1196 @@
1
+ import { z } from 'zod';
2
+ export declare const fieldTypeSchema: z.ZodEnum<["text", "textarea", "number", "currency", "percentage", "date", "time", "datetime", "select", "multiselect", "radio", "checkbox", "switch", "file", "image", "color", "richtext", "code", "signature", "qr-scanner", "barcode-scanner", "address", "phone", "email", "url", "password", "slider", "rating", "tags", "lookup", "datagrid", "report", "chart", "html", "separator", "heading", "media", "chips", "treeview", "custom"]>;
3
+ export declare const studioSchemaValidator: z.ZodObject<{
4
+ id: z.ZodString;
5
+ version: z.ZodString;
6
+ title: z.ZodString;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ layout: z.ZodObject<{
9
+ type: z.ZodEnum<["form", "grid", "tabs", "wizard", "accordion", "dashboard", "master-detail"]>;
10
+ columns: z.ZodOptional<z.ZodNumber>;
11
+ gap: z.ZodOptional<z.ZodNumber>;
12
+ labelPosition: z.ZodOptional<z.ZodEnum<["top", "left", "inline"]>>;
13
+ responsive: z.ZodOptional<z.ZodArray<z.ZodObject<{
14
+ maxWidth: z.ZodNumber;
15
+ columns: z.ZodNumber;
16
+ }, "strip", z.ZodTypeAny, {
17
+ maxWidth: number;
18
+ columns: number;
19
+ }, {
20
+ maxWidth: number;
21
+ columns: number;
22
+ }>, "many">>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
25
+ columns?: number | undefined;
26
+ gap?: number | undefined;
27
+ labelPosition?: "top" | "left" | "inline" | undefined;
28
+ responsive?: {
29
+ maxWidth: number;
30
+ columns: number;
31
+ }[] | undefined;
32
+ }, {
33
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
34
+ columns?: number | undefined;
35
+ gap?: number | undefined;
36
+ labelPosition?: "top" | "left" | "inline" | undefined;
37
+ responsive?: {
38
+ maxWidth: number;
39
+ columns: number;
40
+ }[] | undefined;
41
+ }>;
42
+ theme: z.ZodOptional<z.ZodObject<{
43
+ mode: z.ZodOptional<z.ZodEnum<["light", "dark", "auto"]>>;
44
+ primaryColor: z.ZodOptional<z.ZodString>;
45
+ accentColor: z.ZodOptional<z.ZodString>;
46
+ borderRadius: z.ZodOptional<z.ZodNumber>;
47
+ fontFamily: z.ZodOptional<z.ZodString>;
48
+ fontSize: z.ZodOptional<z.ZodNumber>;
49
+ spacing: z.ZodOptional<z.ZodNumber>;
50
+ tokens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ mode?: "light" | "dark" | "auto" | undefined;
53
+ primaryColor?: string | undefined;
54
+ accentColor?: string | undefined;
55
+ borderRadius?: number | undefined;
56
+ fontFamily?: string | undefined;
57
+ fontSize?: number | undefined;
58
+ spacing?: number | undefined;
59
+ tokens?: Record<string, string> | undefined;
60
+ }, {
61
+ mode?: "light" | "dark" | "auto" | undefined;
62
+ primaryColor?: string | undefined;
63
+ accentColor?: string | undefined;
64
+ borderRadius?: number | undefined;
65
+ fontFamily?: string | undefined;
66
+ fontSize?: number | undefined;
67
+ spacing?: number | undefined;
68
+ tokens?: Record<string, string> | undefined;
69
+ }>>;
70
+ dataSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
71
+ id: z.ZodString;
72
+ name: z.ZodString;
73
+ type: z.ZodEnum<["rest", "graphql", "static", "computed"]>;
74
+ url: z.ZodOptional<z.ZodString>;
75
+ method: z.ZodOptional<z.ZodEnum<["GET", "POST", "PUT", "PATCH", "DELETE"]>>;
76
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
77
+ body: z.ZodOptional<z.ZodUnknown>;
78
+ transform: z.ZodOptional<z.ZodString>;
79
+ autoFetch: z.ZodOptional<z.ZodBoolean>;
80
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
81
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
82
+ pagination: z.ZodOptional<z.ZodObject<{
83
+ type: z.ZodEnum<["offset", "cursor"]>;
84
+ pageSize: z.ZodNumber;
85
+ pageSizeParam: z.ZodOptional<z.ZodString>;
86
+ pageParam: z.ZodOptional<z.ZodString>;
87
+ cursorParam: z.ZodOptional<z.ZodString>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ type: "offset" | "cursor";
90
+ pageSize: number;
91
+ pageSizeParam?: string | undefined;
92
+ pageParam?: string | undefined;
93
+ cursorParam?: string | undefined;
94
+ }, {
95
+ type: "offset" | "cursor";
96
+ pageSize: number;
97
+ pageSizeParam?: string | undefined;
98
+ pageParam?: string | undefined;
99
+ cursorParam?: string | undefined;
100
+ }>>;
101
+ staticData: z.ZodOptional<z.ZodUnknown>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ type: "rest" | "graphql" | "static" | "computed";
104
+ id: string;
105
+ name: string;
106
+ url?: string | undefined;
107
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
108
+ headers?: Record<string, string> | undefined;
109
+ body?: unknown;
110
+ transform?: string | undefined;
111
+ autoFetch?: boolean | undefined;
112
+ refreshInterval?: number | undefined;
113
+ dependsOn?: string[] | undefined;
114
+ pagination?: {
115
+ type: "offset" | "cursor";
116
+ pageSize: number;
117
+ pageSizeParam?: string | undefined;
118
+ pageParam?: string | undefined;
119
+ cursorParam?: string | undefined;
120
+ } | undefined;
121
+ staticData?: unknown;
122
+ }, {
123
+ type: "rest" | "graphql" | "static" | "computed";
124
+ id: string;
125
+ name: string;
126
+ url?: string | undefined;
127
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
128
+ headers?: Record<string, string> | undefined;
129
+ body?: unknown;
130
+ transform?: string | undefined;
131
+ autoFetch?: boolean | undefined;
132
+ refreshInterval?: number | undefined;
133
+ dependsOn?: string[] | undefined;
134
+ pagination?: {
135
+ type: "offset" | "cursor";
136
+ pageSize: number;
137
+ pageSizeParam?: string | undefined;
138
+ pageParam?: string | undefined;
139
+ cursorParam?: string | undefined;
140
+ } | undefined;
141
+ staticData?: unknown;
142
+ }>, "many">>;
143
+ sections: z.ZodArray<z.ZodObject<{
144
+ id: z.ZodString;
145
+ title: z.ZodOptional<z.ZodString>;
146
+ description: z.ZodOptional<z.ZodString>;
147
+ icon: z.ZodOptional<z.ZodString>;
148
+ fields: z.ZodArray<z.ZodObject<{
149
+ id: z.ZodString;
150
+ type: z.ZodEnum<["text", "textarea", "number", "currency", "percentage", "date", "time", "datetime", "select", "multiselect", "radio", "checkbox", "switch", "file", "image", "color", "richtext", "code", "signature", "qr-scanner", "barcode-scanner", "address", "phone", "email", "url", "password", "slider", "rating", "tags", "lookup", "datagrid", "report", "chart", "html", "separator", "heading", "media", "chips", "treeview", "custom"]>;
151
+ field: z.ZodString;
152
+ label: z.ZodOptional<z.ZodString>;
153
+ placeholder: z.ZodOptional<z.ZodString>;
154
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
155
+ required: z.ZodOptional<z.ZodBoolean>;
156
+ readOnly: z.ZodOptional<z.ZodBoolean>;
157
+ disabled: z.ZodOptional<z.ZodBoolean>;
158
+ hidden: z.ZodOptional<z.ZodBoolean>;
159
+ width: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
160
+ colSpan: z.ZodOptional<z.ZodNumber>;
161
+ validation: z.ZodOptional<z.ZodArray<z.ZodObject<{
162
+ type: z.ZodEnum<["required", "min", "max", "minLength", "maxLength", "pattern", "email", "url", "custom"]>;
163
+ value: z.ZodOptional<z.ZodUnknown>;
164
+ message: z.ZodOptional<z.ZodString>;
165
+ expression: z.ZodOptional<z.ZodString>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
168
+ value?: unknown;
169
+ message?: string | undefined;
170
+ expression?: string | undefined;
171
+ }, {
172
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
173
+ value?: unknown;
174
+ message?: string | undefined;
175
+ expression?: string | undefined;
176
+ }>, "many">>;
177
+ visibilityRule: z.ZodOptional<z.ZodString>;
178
+ computedValue: z.ZodOptional<z.ZodString>;
179
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
180
+ cssClass: z.ZodOptional<z.ZodString>;
181
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
182
+ i18nKey: z.ZodOptional<z.ZodString>;
183
+ helpText: z.ZodOptional<z.ZodString>;
184
+ }, "strip", z.ZodTypeAny, {
185
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
186
+ id: string;
187
+ field: string;
188
+ required?: boolean | undefined;
189
+ validation?: {
190
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
191
+ value?: unknown;
192
+ message?: string | undefined;
193
+ expression?: string | undefined;
194
+ }[] | undefined;
195
+ label?: string | undefined;
196
+ placeholder?: string | undefined;
197
+ defaultValue?: unknown;
198
+ readOnly?: boolean | undefined;
199
+ disabled?: boolean | undefined;
200
+ hidden?: boolean | undefined;
201
+ width?: string | number | undefined;
202
+ colSpan?: number | undefined;
203
+ visibilityRule?: string | undefined;
204
+ computedValue?: string | undefined;
205
+ style?: Record<string, string> | undefined;
206
+ cssClass?: string | undefined;
207
+ props?: Record<string, unknown> | undefined;
208
+ i18nKey?: string | undefined;
209
+ helpText?: string | undefined;
210
+ }, {
211
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
212
+ id: string;
213
+ field: string;
214
+ required?: boolean | undefined;
215
+ validation?: {
216
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
217
+ value?: unknown;
218
+ message?: string | undefined;
219
+ expression?: string | undefined;
220
+ }[] | undefined;
221
+ label?: string | undefined;
222
+ placeholder?: string | undefined;
223
+ defaultValue?: unknown;
224
+ readOnly?: boolean | undefined;
225
+ disabled?: boolean | undefined;
226
+ hidden?: boolean | undefined;
227
+ width?: string | number | undefined;
228
+ colSpan?: number | undefined;
229
+ visibilityRule?: string | undefined;
230
+ computedValue?: string | undefined;
231
+ style?: Record<string, string> | undefined;
232
+ cssClass?: string | undefined;
233
+ props?: Record<string, unknown> | undefined;
234
+ i18nKey?: string | undefined;
235
+ helpText?: string | undefined;
236
+ }>, "many">;
237
+ collapsible: z.ZodOptional<z.ZodBoolean>;
238
+ collapsed: z.ZodOptional<z.ZodBoolean>;
239
+ columns: z.ZodOptional<z.ZodNumber>;
240
+ visibilityRule: z.ZodOptional<z.ZodString>;
241
+ validationRule: z.ZodOptional<z.ZodString>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ id: string;
244
+ fields: {
245
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
246
+ id: string;
247
+ field: string;
248
+ required?: boolean | undefined;
249
+ validation?: {
250
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
251
+ value?: unknown;
252
+ message?: string | undefined;
253
+ expression?: string | undefined;
254
+ }[] | undefined;
255
+ label?: string | undefined;
256
+ placeholder?: string | undefined;
257
+ defaultValue?: unknown;
258
+ readOnly?: boolean | undefined;
259
+ disabled?: boolean | undefined;
260
+ hidden?: boolean | undefined;
261
+ width?: string | number | undefined;
262
+ colSpan?: number | undefined;
263
+ visibilityRule?: string | undefined;
264
+ computedValue?: string | undefined;
265
+ style?: Record<string, string> | undefined;
266
+ cssClass?: string | undefined;
267
+ props?: Record<string, unknown> | undefined;
268
+ i18nKey?: string | undefined;
269
+ helpText?: string | undefined;
270
+ }[];
271
+ icon?: string | undefined;
272
+ visibilityRule?: string | undefined;
273
+ columns?: number | undefined;
274
+ title?: string | undefined;
275
+ description?: string | undefined;
276
+ collapsible?: boolean | undefined;
277
+ collapsed?: boolean | undefined;
278
+ validationRule?: string | undefined;
279
+ }, {
280
+ id: string;
281
+ fields: {
282
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
283
+ id: string;
284
+ field: string;
285
+ required?: boolean | undefined;
286
+ validation?: {
287
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
288
+ value?: unknown;
289
+ message?: string | undefined;
290
+ expression?: string | undefined;
291
+ }[] | undefined;
292
+ label?: string | undefined;
293
+ placeholder?: string | undefined;
294
+ defaultValue?: unknown;
295
+ readOnly?: boolean | undefined;
296
+ disabled?: boolean | undefined;
297
+ hidden?: boolean | undefined;
298
+ width?: string | number | undefined;
299
+ colSpan?: number | undefined;
300
+ visibilityRule?: string | undefined;
301
+ computedValue?: string | undefined;
302
+ style?: Record<string, string> | undefined;
303
+ cssClass?: string | undefined;
304
+ props?: Record<string, unknown> | undefined;
305
+ i18nKey?: string | undefined;
306
+ helpText?: string | undefined;
307
+ }[];
308
+ icon?: string | undefined;
309
+ visibilityRule?: string | undefined;
310
+ columns?: number | undefined;
311
+ title?: string | undefined;
312
+ description?: string | undefined;
313
+ collapsible?: boolean | undefined;
314
+ collapsed?: boolean | undefined;
315
+ validationRule?: string | undefined;
316
+ }>, "many">;
317
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
318
+ id: z.ZodString;
319
+ type: z.ZodEnum<["submit", "apiCall", "navigate", "openModal", "print", "reset", "custom"]>;
320
+ label: z.ZodString;
321
+ icon: z.ZodOptional<z.ZodString>;
322
+ variant: z.ZodOptional<z.ZodEnum<["primary", "secondary", "danger", "ghost"]>>;
323
+ position: z.ZodOptional<z.ZodEnum<["top", "bottom", "inline"]>>;
324
+ disabled: z.ZodOptional<z.ZodBoolean>;
325
+ disabledRule: z.ZodOptional<z.ZodString>;
326
+ confirmMessage: z.ZodOptional<z.ZodString>;
327
+ url: z.ZodOptional<z.ZodString>;
328
+ method: z.ZodOptional<z.ZodString>;
329
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
330
+ navigateTo: z.ZodOptional<z.ZodString>;
331
+ schemaId: z.ZodOptional<z.ZodString>;
332
+ eventName: z.ZodOptional<z.ZodString>;
333
+ successMessage: z.ZodOptional<z.ZodString>;
334
+ errorMessage: z.ZodOptional<z.ZodString>;
335
+ }, "strip", z.ZodTypeAny, {
336
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
337
+ id: string;
338
+ label: string;
339
+ url?: string | undefined;
340
+ icon?: string | undefined;
341
+ disabled?: boolean | undefined;
342
+ method?: string | undefined;
343
+ headers?: Record<string, string> | undefined;
344
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
345
+ position?: "top" | "inline" | "bottom" | undefined;
346
+ disabledRule?: string | undefined;
347
+ confirmMessage?: string | undefined;
348
+ navigateTo?: string | undefined;
349
+ schemaId?: string | undefined;
350
+ eventName?: string | undefined;
351
+ successMessage?: string | undefined;
352
+ errorMessage?: string | undefined;
353
+ }, {
354
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
355
+ id: string;
356
+ label: string;
357
+ url?: string | undefined;
358
+ icon?: string | undefined;
359
+ disabled?: boolean | undefined;
360
+ method?: string | undefined;
361
+ headers?: Record<string, string> | undefined;
362
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
363
+ position?: "top" | "inline" | "bottom" | undefined;
364
+ disabledRule?: string | undefined;
365
+ confirmMessage?: string | undefined;
366
+ navigateTo?: string | undefined;
367
+ schemaId?: string | undefined;
368
+ eventName?: string | undefined;
369
+ successMessage?: string | undefined;
370
+ errorMessage?: string | undefined;
371
+ }>, "many">>;
372
+ rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
373
+ id: z.ZodString;
374
+ name: z.ZodOptional<z.ZodString>;
375
+ condition: z.ZodString;
376
+ actions: z.ZodArray<z.ZodObject<{
377
+ type: z.ZodEnum<["show", "hide", "enable", "disable", "setValue", "setStyle", "validate", "setRequired"]>;
378
+ target: z.ZodString;
379
+ value: z.ZodOptional<z.ZodUnknown>;
380
+ }, "strip", z.ZodTypeAny, {
381
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
382
+ target: string;
383
+ value?: unknown;
384
+ }, {
385
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
386
+ target: string;
387
+ value?: unknown;
388
+ }>, "many">;
389
+ priority: z.ZodOptional<z.ZodNumber>;
390
+ }, "strip", z.ZodTypeAny, {
391
+ actions: {
392
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
393
+ target: string;
394
+ value?: unknown;
395
+ }[];
396
+ id: string;
397
+ condition: string;
398
+ name?: string | undefined;
399
+ priority?: number | undefined;
400
+ }, {
401
+ actions: {
402
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
403
+ target: string;
404
+ value?: unknown;
405
+ }[];
406
+ id: string;
407
+ condition: string;
408
+ name?: string | undefined;
409
+ priority?: number | undefined;
410
+ }>, "many">>;
411
+ permissions: z.ZodOptional<z.ZodObject<{
412
+ flavors: z.ZodArray<z.ZodObject<{
413
+ id: z.ZodString;
414
+ name: z.ZodString;
415
+ description: z.ZodOptional<z.ZodString>;
416
+ roles: z.ZodArray<z.ZodString, "many">;
417
+ overrides: z.ZodArray<z.ZodObject<{
418
+ fieldId: z.ZodString;
419
+ hidden: z.ZodOptional<z.ZodBoolean>;
420
+ readOnly: z.ZodOptional<z.ZodBoolean>;
421
+ disabled: z.ZodOptional<z.ZodBoolean>;
422
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
423
+ label: z.ZodOptional<z.ZodString>;
424
+ }, "strip", z.ZodTypeAny, {
425
+ fieldId: string;
426
+ label?: string | undefined;
427
+ defaultValue?: unknown;
428
+ readOnly?: boolean | undefined;
429
+ disabled?: boolean | undefined;
430
+ hidden?: boolean | undefined;
431
+ }, {
432
+ fieldId: string;
433
+ label?: string | undefined;
434
+ defaultValue?: unknown;
435
+ readOnly?: boolean | undefined;
436
+ disabled?: boolean | undefined;
437
+ hidden?: boolean | undefined;
438
+ }>, "many">;
439
+ }, "strip", z.ZodTypeAny, {
440
+ id: string;
441
+ name: string;
442
+ roles: string[];
443
+ overrides: {
444
+ fieldId: string;
445
+ label?: string | undefined;
446
+ defaultValue?: unknown;
447
+ readOnly?: boolean | undefined;
448
+ disabled?: boolean | undefined;
449
+ hidden?: boolean | undefined;
450
+ }[];
451
+ description?: string | undefined;
452
+ }, {
453
+ id: string;
454
+ name: string;
455
+ roles: string[];
456
+ overrides: {
457
+ fieldId: string;
458
+ label?: string | undefined;
459
+ defaultValue?: unknown;
460
+ readOnly?: boolean | undefined;
461
+ disabled?: boolean | undefined;
462
+ hidden?: boolean | undefined;
463
+ }[];
464
+ description?: string | undefined;
465
+ }>, "many">;
466
+ defaultFlavorId: z.ZodOptional<z.ZodString>;
467
+ }, "strip", z.ZodTypeAny, {
468
+ flavors: {
469
+ id: string;
470
+ name: string;
471
+ roles: string[];
472
+ overrides: {
473
+ fieldId: string;
474
+ label?: string | undefined;
475
+ defaultValue?: unknown;
476
+ readOnly?: boolean | undefined;
477
+ disabled?: boolean | undefined;
478
+ hidden?: boolean | undefined;
479
+ }[];
480
+ description?: string | undefined;
481
+ }[];
482
+ defaultFlavorId?: string | undefined;
483
+ }, {
484
+ flavors: {
485
+ id: string;
486
+ name: string;
487
+ roles: string[];
488
+ overrides: {
489
+ fieldId: string;
490
+ label?: string | undefined;
491
+ defaultValue?: unknown;
492
+ readOnly?: boolean | undefined;
493
+ disabled?: boolean | undefined;
494
+ hidden?: boolean | undefined;
495
+ }[];
496
+ description?: string | undefined;
497
+ }[];
498
+ defaultFlavorId?: string | undefined;
499
+ }>>;
500
+ i18n: z.ZodOptional<z.ZodObject<{
501
+ defaultLocale: z.ZodString;
502
+ translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
503
+ }, "strip", z.ZodTypeAny, {
504
+ defaultLocale: string;
505
+ translations?: Record<string, Record<string, string>> | undefined;
506
+ }, {
507
+ defaultLocale: string;
508
+ translations?: Record<string, Record<string, string>> | undefined;
509
+ }>>;
510
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
511
+ }, "strip", z.ZodTypeAny, {
512
+ layout: {
513
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
514
+ columns?: number | undefined;
515
+ gap?: number | undefined;
516
+ labelPosition?: "top" | "left" | "inline" | undefined;
517
+ responsive?: {
518
+ maxWidth: number;
519
+ columns: number;
520
+ }[] | undefined;
521
+ };
522
+ id: string;
523
+ title: string;
524
+ version: string;
525
+ sections: {
526
+ id: string;
527
+ fields: {
528
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
529
+ id: string;
530
+ field: string;
531
+ required?: boolean | undefined;
532
+ validation?: {
533
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
534
+ value?: unknown;
535
+ message?: string | undefined;
536
+ expression?: string | undefined;
537
+ }[] | undefined;
538
+ label?: string | undefined;
539
+ placeholder?: string | undefined;
540
+ defaultValue?: unknown;
541
+ readOnly?: boolean | undefined;
542
+ disabled?: boolean | undefined;
543
+ hidden?: boolean | undefined;
544
+ width?: string | number | undefined;
545
+ colSpan?: number | undefined;
546
+ visibilityRule?: string | undefined;
547
+ computedValue?: string | undefined;
548
+ style?: Record<string, string> | undefined;
549
+ cssClass?: string | undefined;
550
+ props?: Record<string, unknown> | undefined;
551
+ i18nKey?: string | undefined;
552
+ helpText?: string | undefined;
553
+ }[];
554
+ icon?: string | undefined;
555
+ visibilityRule?: string | undefined;
556
+ columns?: number | undefined;
557
+ title?: string | undefined;
558
+ description?: string | undefined;
559
+ collapsible?: boolean | undefined;
560
+ collapsed?: boolean | undefined;
561
+ validationRule?: string | undefined;
562
+ }[];
563
+ actions?: {
564
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
565
+ id: string;
566
+ label: string;
567
+ url?: string | undefined;
568
+ icon?: string | undefined;
569
+ disabled?: boolean | undefined;
570
+ method?: string | undefined;
571
+ headers?: Record<string, string> | undefined;
572
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
573
+ position?: "top" | "inline" | "bottom" | undefined;
574
+ disabledRule?: string | undefined;
575
+ confirmMessage?: string | undefined;
576
+ navigateTo?: string | undefined;
577
+ schemaId?: string | undefined;
578
+ eventName?: string | undefined;
579
+ successMessage?: string | undefined;
580
+ errorMessage?: string | undefined;
581
+ }[] | undefined;
582
+ description?: string | undefined;
583
+ theme?: {
584
+ mode?: "light" | "dark" | "auto" | undefined;
585
+ primaryColor?: string | undefined;
586
+ accentColor?: string | undefined;
587
+ borderRadius?: number | undefined;
588
+ fontFamily?: string | undefined;
589
+ fontSize?: number | undefined;
590
+ spacing?: number | undefined;
591
+ tokens?: Record<string, string> | undefined;
592
+ } | undefined;
593
+ dataSources?: {
594
+ type: "rest" | "graphql" | "static" | "computed";
595
+ id: string;
596
+ name: string;
597
+ url?: string | undefined;
598
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
599
+ headers?: Record<string, string> | undefined;
600
+ body?: unknown;
601
+ transform?: string | undefined;
602
+ autoFetch?: boolean | undefined;
603
+ refreshInterval?: number | undefined;
604
+ dependsOn?: string[] | undefined;
605
+ pagination?: {
606
+ type: "offset" | "cursor";
607
+ pageSize: number;
608
+ pageSizeParam?: string | undefined;
609
+ pageParam?: string | undefined;
610
+ cursorParam?: string | undefined;
611
+ } | undefined;
612
+ staticData?: unknown;
613
+ }[] | undefined;
614
+ rules?: {
615
+ actions: {
616
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
617
+ target: string;
618
+ value?: unknown;
619
+ }[];
620
+ id: string;
621
+ condition: string;
622
+ name?: string | undefined;
623
+ priority?: number | undefined;
624
+ }[] | undefined;
625
+ permissions?: {
626
+ flavors: {
627
+ id: string;
628
+ name: string;
629
+ roles: string[];
630
+ overrides: {
631
+ fieldId: string;
632
+ label?: string | undefined;
633
+ defaultValue?: unknown;
634
+ readOnly?: boolean | undefined;
635
+ disabled?: boolean | undefined;
636
+ hidden?: boolean | undefined;
637
+ }[];
638
+ description?: string | undefined;
639
+ }[];
640
+ defaultFlavorId?: string | undefined;
641
+ } | undefined;
642
+ i18n?: {
643
+ defaultLocale: string;
644
+ translations?: Record<string, Record<string, string>> | undefined;
645
+ } | undefined;
646
+ meta?: Record<string, unknown> | undefined;
647
+ }, {
648
+ layout: {
649
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
650
+ columns?: number | undefined;
651
+ gap?: number | undefined;
652
+ labelPosition?: "top" | "left" | "inline" | undefined;
653
+ responsive?: {
654
+ maxWidth: number;
655
+ columns: number;
656
+ }[] | undefined;
657
+ };
658
+ id: string;
659
+ title: string;
660
+ version: string;
661
+ sections: {
662
+ id: string;
663
+ fields: {
664
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
665
+ id: string;
666
+ field: string;
667
+ required?: boolean | undefined;
668
+ validation?: {
669
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
670
+ value?: unknown;
671
+ message?: string | undefined;
672
+ expression?: string | undefined;
673
+ }[] | undefined;
674
+ label?: string | undefined;
675
+ placeholder?: string | undefined;
676
+ defaultValue?: unknown;
677
+ readOnly?: boolean | undefined;
678
+ disabled?: boolean | undefined;
679
+ hidden?: boolean | undefined;
680
+ width?: string | number | undefined;
681
+ colSpan?: number | undefined;
682
+ visibilityRule?: string | undefined;
683
+ computedValue?: string | undefined;
684
+ style?: Record<string, string> | undefined;
685
+ cssClass?: string | undefined;
686
+ props?: Record<string, unknown> | undefined;
687
+ i18nKey?: string | undefined;
688
+ helpText?: string | undefined;
689
+ }[];
690
+ icon?: string | undefined;
691
+ visibilityRule?: string | undefined;
692
+ columns?: number | undefined;
693
+ title?: string | undefined;
694
+ description?: string | undefined;
695
+ collapsible?: boolean | undefined;
696
+ collapsed?: boolean | undefined;
697
+ validationRule?: string | undefined;
698
+ }[];
699
+ actions?: {
700
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
701
+ id: string;
702
+ label: string;
703
+ url?: string | undefined;
704
+ icon?: string | undefined;
705
+ disabled?: boolean | undefined;
706
+ method?: string | undefined;
707
+ headers?: Record<string, string> | undefined;
708
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
709
+ position?: "top" | "inline" | "bottom" | undefined;
710
+ disabledRule?: string | undefined;
711
+ confirmMessage?: string | undefined;
712
+ navigateTo?: string | undefined;
713
+ schemaId?: string | undefined;
714
+ eventName?: string | undefined;
715
+ successMessage?: string | undefined;
716
+ errorMessage?: string | undefined;
717
+ }[] | undefined;
718
+ description?: string | undefined;
719
+ theme?: {
720
+ mode?: "light" | "dark" | "auto" | undefined;
721
+ primaryColor?: string | undefined;
722
+ accentColor?: string | undefined;
723
+ borderRadius?: number | undefined;
724
+ fontFamily?: string | undefined;
725
+ fontSize?: number | undefined;
726
+ spacing?: number | undefined;
727
+ tokens?: Record<string, string> | undefined;
728
+ } | undefined;
729
+ dataSources?: {
730
+ type: "rest" | "graphql" | "static" | "computed";
731
+ id: string;
732
+ name: string;
733
+ url?: string | undefined;
734
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
735
+ headers?: Record<string, string> | undefined;
736
+ body?: unknown;
737
+ transform?: string | undefined;
738
+ autoFetch?: boolean | undefined;
739
+ refreshInterval?: number | undefined;
740
+ dependsOn?: string[] | undefined;
741
+ pagination?: {
742
+ type: "offset" | "cursor";
743
+ pageSize: number;
744
+ pageSizeParam?: string | undefined;
745
+ pageParam?: string | undefined;
746
+ cursorParam?: string | undefined;
747
+ } | undefined;
748
+ staticData?: unknown;
749
+ }[] | undefined;
750
+ rules?: {
751
+ actions: {
752
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
753
+ target: string;
754
+ value?: unknown;
755
+ }[];
756
+ id: string;
757
+ condition: string;
758
+ name?: string | undefined;
759
+ priority?: number | undefined;
760
+ }[] | undefined;
761
+ permissions?: {
762
+ flavors: {
763
+ id: string;
764
+ name: string;
765
+ roles: string[];
766
+ overrides: {
767
+ fieldId: string;
768
+ label?: string | undefined;
769
+ defaultValue?: unknown;
770
+ readOnly?: boolean | undefined;
771
+ disabled?: boolean | undefined;
772
+ hidden?: boolean | undefined;
773
+ }[];
774
+ description?: string | undefined;
775
+ }[];
776
+ defaultFlavorId?: string | undefined;
777
+ } | undefined;
778
+ i18n?: {
779
+ defaultLocale: string;
780
+ translations?: Record<string, Record<string, string>> | undefined;
781
+ } | undefined;
782
+ meta?: Record<string, unknown> | undefined;
783
+ }>;
784
+ /** Validate a StudioSchema, returns parsed schema or throws ZodError */
785
+ export declare function validateSchema(data: unknown): {
786
+ layout: {
787
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
788
+ columns?: number | undefined;
789
+ gap?: number | undefined;
790
+ labelPosition?: "top" | "left" | "inline" | undefined;
791
+ responsive?: {
792
+ maxWidth: number;
793
+ columns: number;
794
+ }[] | undefined;
795
+ };
796
+ id: string;
797
+ title: string;
798
+ version: string;
799
+ sections: {
800
+ id: string;
801
+ fields: {
802
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
803
+ id: string;
804
+ field: string;
805
+ required?: boolean | undefined;
806
+ validation?: {
807
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
808
+ value?: unknown;
809
+ message?: string | undefined;
810
+ expression?: string | undefined;
811
+ }[] | undefined;
812
+ label?: string | undefined;
813
+ placeholder?: string | undefined;
814
+ defaultValue?: unknown;
815
+ readOnly?: boolean | undefined;
816
+ disabled?: boolean | undefined;
817
+ hidden?: boolean | undefined;
818
+ width?: string | number | undefined;
819
+ colSpan?: number | undefined;
820
+ visibilityRule?: string | undefined;
821
+ computedValue?: string | undefined;
822
+ style?: Record<string, string> | undefined;
823
+ cssClass?: string | undefined;
824
+ props?: Record<string, unknown> | undefined;
825
+ i18nKey?: string | undefined;
826
+ helpText?: string | undefined;
827
+ }[];
828
+ icon?: string | undefined;
829
+ visibilityRule?: string | undefined;
830
+ columns?: number | undefined;
831
+ title?: string | undefined;
832
+ description?: string | undefined;
833
+ collapsible?: boolean | undefined;
834
+ collapsed?: boolean | undefined;
835
+ validationRule?: string | undefined;
836
+ }[];
837
+ actions?: {
838
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
839
+ id: string;
840
+ label: string;
841
+ url?: string | undefined;
842
+ icon?: string | undefined;
843
+ disabled?: boolean | undefined;
844
+ method?: string | undefined;
845
+ headers?: Record<string, string> | undefined;
846
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
847
+ position?: "top" | "inline" | "bottom" | undefined;
848
+ disabledRule?: string | undefined;
849
+ confirmMessage?: string | undefined;
850
+ navigateTo?: string | undefined;
851
+ schemaId?: string | undefined;
852
+ eventName?: string | undefined;
853
+ successMessage?: string | undefined;
854
+ errorMessage?: string | undefined;
855
+ }[] | undefined;
856
+ description?: string | undefined;
857
+ theme?: {
858
+ mode?: "light" | "dark" | "auto" | undefined;
859
+ primaryColor?: string | undefined;
860
+ accentColor?: string | undefined;
861
+ borderRadius?: number | undefined;
862
+ fontFamily?: string | undefined;
863
+ fontSize?: number | undefined;
864
+ spacing?: number | undefined;
865
+ tokens?: Record<string, string> | undefined;
866
+ } | undefined;
867
+ dataSources?: {
868
+ type: "rest" | "graphql" | "static" | "computed";
869
+ id: string;
870
+ name: string;
871
+ url?: string | undefined;
872
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
873
+ headers?: Record<string, string> | undefined;
874
+ body?: unknown;
875
+ transform?: string | undefined;
876
+ autoFetch?: boolean | undefined;
877
+ refreshInterval?: number | undefined;
878
+ dependsOn?: string[] | undefined;
879
+ pagination?: {
880
+ type: "offset" | "cursor";
881
+ pageSize: number;
882
+ pageSizeParam?: string | undefined;
883
+ pageParam?: string | undefined;
884
+ cursorParam?: string | undefined;
885
+ } | undefined;
886
+ staticData?: unknown;
887
+ }[] | undefined;
888
+ rules?: {
889
+ actions: {
890
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
891
+ target: string;
892
+ value?: unknown;
893
+ }[];
894
+ id: string;
895
+ condition: string;
896
+ name?: string | undefined;
897
+ priority?: number | undefined;
898
+ }[] | undefined;
899
+ permissions?: {
900
+ flavors: {
901
+ id: string;
902
+ name: string;
903
+ roles: string[];
904
+ overrides: {
905
+ fieldId: string;
906
+ label?: string | undefined;
907
+ defaultValue?: unknown;
908
+ readOnly?: boolean | undefined;
909
+ disabled?: boolean | undefined;
910
+ hidden?: boolean | undefined;
911
+ }[];
912
+ description?: string | undefined;
913
+ }[];
914
+ defaultFlavorId?: string | undefined;
915
+ } | undefined;
916
+ i18n?: {
917
+ defaultLocale: string;
918
+ translations?: Record<string, Record<string, string>> | undefined;
919
+ } | undefined;
920
+ meta?: Record<string, unknown> | undefined;
921
+ };
922
+ /** Safe validation — returns { success, data, error } */
923
+ export declare function safeValidateSchema(data: unknown): z.SafeParseReturnType<{
924
+ layout: {
925
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
926
+ columns?: number | undefined;
927
+ gap?: number | undefined;
928
+ labelPosition?: "top" | "left" | "inline" | undefined;
929
+ responsive?: {
930
+ maxWidth: number;
931
+ columns: number;
932
+ }[] | undefined;
933
+ };
934
+ id: string;
935
+ title: string;
936
+ version: string;
937
+ sections: {
938
+ id: string;
939
+ fields: {
940
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
941
+ id: string;
942
+ field: string;
943
+ required?: boolean | undefined;
944
+ validation?: {
945
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
946
+ value?: unknown;
947
+ message?: string | undefined;
948
+ expression?: string | undefined;
949
+ }[] | undefined;
950
+ label?: string | undefined;
951
+ placeholder?: string | undefined;
952
+ defaultValue?: unknown;
953
+ readOnly?: boolean | undefined;
954
+ disabled?: boolean | undefined;
955
+ hidden?: boolean | undefined;
956
+ width?: string | number | undefined;
957
+ colSpan?: number | undefined;
958
+ visibilityRule?: string | undefined;
959
+ computedValue?: string | undefined;
960
+ style?: Record<string, string> | undefined;
961
+ cssClass?: string | undefined;
962
+ props?: Record<string, unknown> | undefined;
963
+ i18nKey?: string | undefined;
964
+ helpText?: string | undefined;
965
+ }[];
966
+ icon?: string | undefined;
967
+ visibilityRule?: string | undefined;
968
+ columns?: number | undefined;
969
+ title?: string | undefined;
970
+ description?: string | undefined;
971
+ collapsible?: boolean | undefined;
972
+ collapsed?: boolean | undefined;
973
+ validationRule?: string | undefined;
974
+ }[];
975
+ actions?: {
976
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
977
+ id: string;
978
+ label: string;
979
+ url?: string | undefined;
980
+ icon?: string | undefined;
981
+ disabled?: boolean | undefined;
982
+ method?: string | undefined;
983
+ headers?: Record<string, string> | undefined;
984
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
985
+ position?: "top" | "inline" | "bottom" | undefined;
986
+ disabledRule?: string | undefined;
987
+ confirmMessage?: string | undefined;
988
+ navigateTo?: string | undefined;
989
+ schemaId?: string | undefined;
990
+ eventName?: string | undefined;
991
+ successMessage?: string | undefined;
992
+ errorMessage?: string | undefined;
993
+ }[] | undefined;
994
+ description?: string | undefined;
995
+ theme?: {
996
+ mode?: "light" | "dark" | "auto" | undefined;
997
+ primaryColor?: string | undefined;
998
+ accentColor?: string | undefined;
999
+ borderRadius?: number | undefined;
1000
+ fontFamily?: string | undefined;
1001
+ fontSize?: number | undefined;
1002
+ spacing?: number | undefined;
1003
+ tokens?: Record<string, string> | undefined;
1004
+ } | undefined;
1005
+ dataSources?: {
1006
+ type: "rest" | "graphql" | "static" | "computed";
1007
+ id: string;
1008
+ name: string;
1009
+ url?: string | undefined;
1010
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
1011
+ headers?: Record<string, string> | undefined;
1012
+ body?: unknown;
1013
+ transform?: string | undefined;
1014
+ autoFetch?: boolean | undefined;
1015
+ refreshInterval?: number | undefined;
1016
+ dependsOn?: string[] | undefined;
1017
+ pagination?: {
1018
+ type: "offset" | "cursor";
1019
+ pageSize: number;
1020
+ pageSizeParam?: string | undefined;
1021
+ pageParam?: string | undefined;
1022
+ cursorParam?: string | undefined;
1023
+ } | undefined;
1024
+ staticData?: unknown;
1025
+ }[] | undefined;
1026
+ rules?: {
1027
+ actions: {
1028
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
1029
+ target: string;
1030
+ value?: unknown;
1031
+ }[];
1032
+ id: string;
1033
+ condition: string;
1034
+ name?: string | undefined;
1035
+ priority?: number | undefined;
1036
+ }[] | undefined;
1037
+ permissions?: {
1038
+ flavors: {
1039
+ id: string;
1040
+ name: string;
1041
+ roles: string[];
1042
+ overrides: {
1043
+ fieldId: string;
1044
+ label?: string | undefined;
1045
+ defaultValue?: unknown;
1046
+ readOnly?: boolean | undefined;
1047
+ disabled?: boolean | undefined;
1048
+ hidden?: boolean | undefined;
1049
+ }[];
1050
+ description?: string | undefined;
1051
+ }[];
1052
+ defaultFlavorId?: string | undefined;
1053
+ } | undefined;
1054
+ i18n?: {
1055
+ defaultLocale: string;
1056
+ translations?: Record<string, Record<string, string>> | undefined;
1057
+ } | undefined;
1058
+ meta?: Record<string, unknown> | undefined;
1059
+ }, {
1060
+ layout: {
1061
+ type: "form" | "grid" | "tabs" | "wizard" | "accordion" | "dashboard" | "master-detail";
1062
+ columns?: number | undefined;
1063
+ gap?: number | undefined;
1064
+ labelPosition?: "top" | "left" | "inline" | undefined;
1065
+ responsive?: {
1066
+ maxWidth: number;
1067
+ columns: number;
1068
+ }[] | undefined;
1069
+ };
1070
+ id: string;
1071
+ title: string;
1072
+ version: string;
1073
+ sections: {
1074
+ id: string;
1075
+ fields: {
1076
+ type: "number" | "text" | "textarea" | "currency" | "percentage" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "switch" | "file" | "image" | "color" | "richtext" | "code" | "signature" | "qr-scanner" | "barcode-scanner" | "address" | "phone" | "email" | "url" | "password" | "slider" | "rating" | "tags" | "lookup" | "datagrid" | "report" | "chart" | "html" | "separator" | "heading" | "media" | "chips" | "treeview" | "custom";
1077
+ id: string;
1078
+ field: string;
1079
+ required?: boolean | undefined;
1080
+ validation?: {
1081
+ type: "email" | "url" | "custom" | "required" | "min" | "max" | "minLength" | "maxLength" | "pattern";
1082
+ value?: unknown;
1083
+ message?: string | undefined;
1084
+ expression?: string | undefined;
1085
+ }[] | undefined;
1086
+ label?: string | undefined;
1087
+ placeholder?: string | undefined;
1088
+ defaultValue?: unknown;
1089
+ readOnly?: boolean | undefined;
1090
+ disabled?: boolean | undefined;
1091
+ hidden?: boolean | undefined;
1092
+ width?: string | number | undefined;
1093
+ colSpan?: number | undefined;
1094
+ visibilityRule?: string | undefined;
1095
+ computedValue?: string | undefined;
1096
+ style?: Record<string, string> | undefined;
1097
+ cssClass?: string | undefined;
1098
+ props?: Record<string, unknown> | undefined;
1099
+ i18nKey?: string | undefined;
1100
+ helpText?: string | undefined;
1101
+ }[];
1102
+ icon?: string | undefined;
1103
+ visibilityRule?: string | undefined;
1104
+ columns?: number | undefined;
1105
+ title?: string | undefined;
1106
+ description?: string | undefined;
1107
+ collapsible?: boolean | undefined;
1108
+ collapsed?: boolean | undefined;
1109
+ validationRule?: string | undefined;
1110
+ }[];
1111
+ actions?: {
1112
+ type: "custom" | "submit" | "apiCall" | "navigate" | "openModal" | "print" | "reset";
1113
+ id: string;
1114
+ label: string;
1115
+ url?: string | undefined;
1116
+ icon?: string | undefined;
1117
+ disabled?: boolean | undefined;
1118
+ method?: string | undefined;
1119
+ headers?: Record<string, string> | undefined;
1120
+ variant?: "primary" | "secondary" | "danger" | "ghost" | undefined;
1121
+ position?: "top" | "inline" | "bottom" | undefined;
1122
+ disabledRule?: string | undefined;
1123
+ confirmMessage?: string | undefined;
1124
+ navigateTo?: string | undefined;
1125
+ schemaId?: string | undefined;
1126
+ eventName?: string | undefined;
1127
+ successMessage?: string | undefined;
1128
+ errorMessage?: string | undefined;
1129
+ }[] | undefined;
1130
+ description?: string | undefined;
1131
+ theme?: {
1132
+ mode?: "light" | "dark" | "auto" | undefined;
1133
+ primaryColor?: string | undefined;
1134
+ accentColor?: string | undefined;
1135
+ borderRadius?: number | undefined;
1136
+ fontFamily?: string | undefined;
1137
+ fontSize?: number | undefined;
1138
+ spacing?: number | undefined;
1139
+ tokens?: Record<string, string> | undefined;
1140
+ } | undefined;
1141
+ dataSources?: {
1142
+ type: "rest" | "graphql" | "static" | "computed";
1143
+ id: string;
1144
+ name: string;
1145
+ url?: string | undefined;
1146
+ method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
1147
+ headers?: Record<string, string> | undefined;
1148
+ body?: unknown;
1149
+ transform?: string | undefined;
1150
+ autoFetch?: boolean | undefined;
1151
+ refreshInterval?: number | undefined;
1152
+ dependsOn?: string[] | undefined;
1153
+ pagination?: {
1154
+ type: "offset" | "cursor";
1155
+ pageSize: number;
1156
+ pageSizeParam?: string | undefined;
1157
+ pageParam?: string | undefined;
1158
+ cursorParam?: string | undefined;
1159
+ } | undefined;
1160
+ staticData?: unknown;
1161
+ }[] | undefined;
1162
+ rules?: {
1163
+ actions: {
1164
+ type: "show" | "hide" | "enable" | "disable" | "setValue" | "setStyle" | "validate" | "setRequired";
1165
+ target: string;
1166
+ value?: unknown;
1167
+ }[];
1168
+ id: string;
1169
+ condition: string;
1170
+ name?: string | undefined;
1171
+ priority?: number | undefined;
1172
+ }[] | undefined;
1173
+ permissions?: {
1174
+ flavors: {
1175
+ id: string;
1176
+ name: string;
1177
+ roles: string[];
1178
+ overrides: {
1179
+ fieldId: string;
1180
+ label?: string | undefined;
1181
+ defaultValue?: unknown;
1182
+ readOnly?: boolean | undefined;
1183
+ disabled?: boolean | undefined;
1184
+ hidden?: boolean | undefined;
1185
+ }[];
1186
+ description?: string | undefined;
1187
+ }[];
1188
+ defaultFlavorId?: string | undefined;
1189
+ } | undefined;
1190
+ i18n?: {
1191
+ defaultLocale: string;
1192
+ translations?: Record<string, Record<string, string>> | undefined;
1193
+ } | undefined;
1194
+ meta?: Record<string, unknown> | undefined;
1195
+ }>;
1196
+ //# sourceMappingURL=studio-schema.d.ts.map