@object-ui/types 0.3.0 → 0.5.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 (169) hide show
  1. package/README.md +19 -11
  2. package/dist/api-types.d.ts +7 -0
  3. package/dist/api-types.d.ts.map +1 -1
  4. package/dist/api-types.js +4 -6
  5. package/dist/app.d.ts +17 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +4 -3
  8. package/dist/base.d.ts +7 -0
  9. package/dist/base.d.ts.map +1 -1
  10. package/dist/base.js +4 -6
  11. package/dist/blocks.d.ts +332 -0
  12. package/dist/blocks.d.ts.map +1 -0
  13. package/dist/blocks.js +8 -0
  14. package/dist/complex.d.ts +68 -1
  15. package/dist/complex.d.ts.map +1 -1
  16. package/dist/complex.js +4 -5
  17. package/dist/crud.d.ts +181 -3
  18. package/dist/crud.d.ts.map +1 -1
  19. package/dist/crud.js +4 -6
  20. package/dist/data-display.d.ts +54 -2
  21. package/dist/data-display.d.ts.map +1 -1
  22. package/dist/data-display.js +4 -5
  23. package/dist/data-protocol.d.ts +1268 -0
  24. package/dist/data-protocol.d.ts.map +1 -0
  25. package/dist/data-protocol.js +8 -0
  26. package/dist/data.d.ts +22 -1
  27. package/dist/data.d.ts.map +1 -1
  28. package/dist/data.js +4 -6
  29. package/dist/disclosure.d.ts +70 -1
  30. package/dist/disclosure.d.ts.map +1 -1
  31. package/dist/disclosure.js +4 -5
  32. package/dist/feedback.d.ts +68 -1
  33. package/dist/feedback.d.ts.map +1 -1
  34. package/dist/feedback.js +4 -5
  35. package/dist/field-types.d.ts +728 -0
  36. package/dist/field-types.d.ts.map +1 -0
  37. package/dist/field-types.js +8 -0
  38. package/dist/form.d.ts +123 -1
  39. package/dist/form.d.ts.map +1 -1
  40. package/dist/form.js +4 -5
  41. package/dist/index.d.ts +48 -13
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +4 -37
  44. package/dist/layout.d.ts +66 -16
  45. package/dist/layout.d.ts.map +1 -1
  46. package/dist/layout.js +4 -6
  47. package/dist/navigation.d.ts +102 -2
  48. package/dist/navigation.d.ts.map +1 -1
  49. package/dist/navigation.js +4 -5
  50. package/dist/objectql.d.ts +491 -54
  51. package/dist/objectql.d.ts.map +1 -1
  52. package/dist/objectql.js +4 -6
  53. package/dist/overlay.d.ts +31 -1
  54. package/dist/overlay.d.ts.map +1 -1
  55. package/dist/overlay.js +4 -5
  56. package/dist/plugin-scope.d.ts +194 -0
  57. package/dist/plugin-scope.d.ts.map +1 -0
  58. package/dist/plugin-scope.js +8 -0
  59. package/dist/registry.d.ts +7 -0
  60. package/dist/registry.d.ts.map +1 -1
  61. package/dist/registry.js +7 -0
  62. package/dist/reports.d.ts +336 -0
  63. package/dist/reports.d.ts.map +1 -0
  64. package/dist/reports.js +8 -0
  65. package/dist/theme.d.ts +289 -0
  66. package/dist/theme.d.ts.map +1 -0
  67. package/dist/theme.js +8 -0
  68. package/dist/ui-action.d.ts +175 -0
  69. package/dist/ui-action.d.ts.map +1 -0
  70. package/dist/ui-action.js +8 -0
  71. package/dist/views.d.ts +417 -0
  72. package/dist/views.d.ts.map +1 -0
  73. package/dist/views.js +8 -0
  74. package/dist/zod/app.zod.d.ts +120 -0
  75. package/dist/zod/app.zod.d.ts.map +1 -0
  76. package/dist/zod/app.zod.js +60 -0
  77. package/dist/zod/base.zod.d.ts +202 -0
  78. package/dist/zod/base.zod.d.ts.map +1 -0
  79. package/dist/zod/base.zod.js +198 -0
  80. package/dist/zod/blocks.zod.d.ts +834 -0
  81. package/dist/zod/blocks.zod.d.ts.map +1 -0
  82. package/dist/zod/blocks.zod.js +145 -0
  83. package/dist/zod/complex.zod.d.ts +742 -0
  84. package/dist/zod/complex.zod.d.ts.map +1 -0
  85. package/dist/zod/complex.zod.js +233 -0
  86. package/dist/zod/crud.zod.d.ts +598 -0
  87. package/dist/zod/crud.zod.d.ts.map +1 -0
  88. package/dist/zod/crud.zod.js +230 -0
  89. package/dist/zod/data-display.zod.d.ts +996 -0
  90. package/dist/zod/data-display.zod.d.ts.map +1 -0
  91. package/dist/zod/data-display.zod.js +266 -0
  92. package/dist/zod/disclosure.zod.d.ts +267 -0
  93. package/dist/zod/disclosure.zod.d.ts.map +1 -0
  94. package/dist/zod/disclosure.zod.js +84 -0
  95. package/dist/zod/feedback.zod.d.ts +538 -0
  96. package/dist/zod/feedback.zod.d.ts.map +1 -0
  97. package/dist/zod/feedback.zod.js +127 -0
  98. package/dist/zod/form.zod.d.ts +1308 -0
  99. package/dist/zod/form.zod.d.ts.map +1 -0
  100. package/dist/zod/form.zod.js +406 -0
  101. package/dist/zod/index.zod.d.ts +4985 -0
  102. package/dist/zod/index.zod.d.ts.map +1 -0
  103. package/dist/zod/index.zod.js +183 -0
  104. package/dist/zod/layout.zod.d.ts +1048 -0
  105. package/dist/zod/layout.zod.d.ts.map +1 -0
  106. package/dist/zod/layout.zod.js +241 -0
  107. package/dist/zod/navigation.zod.d.ts +486 -0
  108. package/dist/zod/navigation.zod.d.ts.map +1 -0
  109. package/dist/zod/navigation.zod.js +142 -0
  110. package/dist/zod/objectql.zod.d.ts +1261 -0
  111. package/dist/zod/objectql.zod.d.ts.map +1 -0
  112. package/dist/zod/objectql.zod.js +248 -0
  113. package/dist/zod/overlay.zod.d.ts +691 -0
  114. package/dist/zod/overlay.zod.d.ts.map +1 -0
  115. package/dist/zod/overlay.zod.js +179 -0
  116. package/dist/zod/reports.zod.d.ts +1628 -0
  117. package/dist/zod/reports.zod.d.ts.map +1 -0
  118. package/dist/zod/reports.zod.js +152 -0
  119. package/dist/zod/theme.zod.d.ts +611 -0
  120. package/dist/zod/theme.zod.d.ts.map +1 -0
  121. package/dist/zod/theme.zod.js +130 -0
  122. package/dist/zod/views.zod.d.ts +675 -0
  123. package/dist/zod/views.zod.d.ts.map +1 -0
  124. package/dist/zod/views.zod.js +159 -0
  125. package/package.json +9 -1
  126. package/src/__tests__/namespace-exports.test.ts +80 -0
  127. package/src/__tests__/phase2-schemas.test.ts +639 -0
  128. package/src/api-types.ts +8 -0
  129. package/src/app.ts +20 -0
  130. package/src/base.ts +8 -0
  131. package/src/blocks.ts +405 -0
  132. package/src/complex.ts +69 -1
  133. package/src/crud.ts +185 -3
  134. package/src/data-display.ts +60 -2
  135. package/src/data-protocol.ts +1679 -0
  136. package/src/data.ts +21 -1
  137. package/src/disclosure.ts +74 -1
  138. package/src/feedback.ts +76 -2
  139. package/src/field-types.ts +846 -0
  140. package/src/form.ts +131 -1
  141. package/src/index.ts +305 -8
  142. package/src/layout.ts +70 -15
  143. package/src/navigation.ts +109 -2
  144. package/src/objectql.ts +563 -59
  145. package/src/overlay.ts +35 -1
  146. package/src/plugin-scope.ts +210 -0
  147. package/src/registry.ts +8 -0
  148. package/src/reports.ts +408 -0
  149. package/src/theme.ts +351 -0
  150. package/src/ui-action.ts +276 -0
  151. package/src/views.ts +429 -0
  152. package/src/zod/README.md +329 -0
  153. package/src/zod/app.zod.ts +72 -0
  154. package/src/zod/base.zod.ts +229 -0
  155. package/src/zod/blocks.zod.ts +170 -0
  156. package/src/zod/complex.zod.ts +258 -0
  157. package/src/zod/crud.zod.ts +259 -0
  158. package/src/zod/data-display.zod.ts +290 -0
  159. package/src/zod/disclosure.zod.ts +92 -0
  160. package/src/zod/feedback.zod.ts +138 -0
  161. package/src/zod/form.zod.ts +434 -0
  162. package/src/zod/index.zod.ts +425 -0
  163. package/src/zod/layout.zod.ts +262 -0
  164. package/src/zod/navigation.zod.ts +159 -0
  165. package/src/zod/objectql.zod.ts +268 -0
  166. package/src/zod/overlay.zod.ts +196 -0
  167. package/src/zod/reports.zod.ts +183 -0
  168. package/src/zod/theme.zod.ts +155 -0
  169. package/src/zod/views.zod.ts +182 -0
@@ -0,0 +1,202 @@
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 - Base Schema Zod Validators
10
+ *
11
+ * Zod validation schemas for base component types.
12
+ * These schemas follow the @objectstack/spec UI specification format.
13
+ *
14
+ * @module zod/base
15
+ * @packageDocumentation
16
+ */
17
+ import { z } from 'zod';
18
+ /**
19
+ * Schema Node - Can be a schema object or primitive value
20
+ */
21
+ export declare const SchemaNodeSchema: z.ZodType<any>;
22
+ /**
23
+ * Base Schema - Export for use in other schemas
24
+ */
25
+ export declare const BaseSchema: z.ZodObject<{
26
+ type: z.ZodString;
27
+ id: z.ZodOptional<z.ZodString>;
28
+ name: z.ZodOptional<z.ZodString>;
29
+ label: z.ZodOptional<z.ZodString>;
30
+ description: z.ZodOptional<z.ZodString>;
31
+ placeholder: z.ZodOptional<z.ZodString>;
32
+ className: z.ZodOptional<z.ZodString>;
33
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
34
+ data: z.ZodOptional<z.ZodAny>;
35
+ 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>>>]>>;
36
+ 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>>>]>>;
37
+ visible: z.ZodOptional<z.ZodBoolean>;
38
+ visibleOn: z.ZodOptional<z.ZodString>;
39
+ hidden: z.ZodOptional<z.ZodBoolean>;
40
+ hiddenOn: z.ZodOptional<z.ZodString>;
41
+ disabled: z.ZodOptional<z.ZodBoolean>;
42
+ disabledOn: z.ZodOptional<z.ZodString>;
43
+ testId: z.ZodOptional<z.ZodString>;
44
+ ariaLabel: z.ZodOptional<z.ZodString>;
45
+ }, z.core.$loose>;
46
+ /**
47
+ * Component Input Configuration
48
+ */
49
+ export declare const ComponentInputSchema: z.ZodObject<{
50
+ name: z.ZodString;
51
+ type: z.ZodEnum<{
52
+ string: "string";
53
+ number: "number";
54
+ boolean: "boolean";
55
+ object: "object";
56
+ enum: "enum";
57
+ array: "array";
58
+ color: "color";
59
+ date: "date";
60
+ code: "code";
61
+ file: "file";
62
+ slot: "slot";
63
+ }>;
64
+ label: z.ZodOptional<z.ZodString>;
65
+ defaultValue: z.ZodOptional<z.ZodAny>;
66
+ required: z.ZodOptional<z.ZodBoolean>;
67
+ enum: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
68
+ label: z.ZodString;
69
+ value: z.ZodAny;
70
+ }, z.core.$strip>>]>>;
71
+ description: z.ZodOptional<z.ZodString>;
72
+ advanced: z.ZodOptional<z.ZodBoolean>;
73
+ inputType: z.ZodOptional<z.ZodString>;
74
+ min: z.ZodOptional<z.ZodNumber>;
75
+ max: z.ZodOptional<z.ZodNumber>;
76
+ step: z.ZodOptional<z.ZodNumber>;
77
+ placeholder: z.ZodOptional<z.ZodString>;
78
+ }, z.core.$strip>;
79
+ /**
80
+ * Component Metadata
81
+ */
82
+ export declare const ComponentMetaSchema: z.ZodObject<{
83
+ label: z.ZodOptional<z.ZodString>;
84
+ icon: z.ZodOptional<z.ZodString>;
85
+ category: z.ZodOptional<z.ZodString>;
86
+ inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
87
+ name: z.ZodString;
88
+ type: z.ZodEnum<{
89
+ string: "string";
90
+ number: "number";
91
+ boolean: "boolean";
92
+ object: "object";
93
+ enum: "enum";
94
+ array: "array";
95
+ color: "color";
96
+ date: "date";
97
+ code: "code";
98
+ file: "file";
99
+ slot: "slot";
100
+ }>;
101
+ label: z.ZodOptional<z.ZodString>;
102
+ defaultValue: z.ZodOptional<z.ZodAny>;
103
+ required: z.ZodOptional<z.ZodBoolean>;
104
+ enum: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
105
+ label: z.ZodString;
106
+ value: z.ZodAny;
107
+ }, z.core.$strip>>]>>;
108
+ description: z.ZodOptional<z.ZodString>;
109
+ advanced: z.ZodOptional<z.ZodBoolean>;
110
+ inputType: z.ZodOptional<z.ZodString>;
111
+ min: z.ZodOptional<z.ZodNumber>;
112
+ max: z.ZodOptional<z.ZodNumber>;
113
+ step: z.ZodOptional<z.ZodNumber>;
114
+ placeholder: z.ZodOptional<z.ZodString>;
115
+ }, z.core.$strip>>>;
116
+ defaultProps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
117
+ defaultChildren: z.ZodOptional<z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>>;
118
+ examples: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
119
+ isContainer: z.ZodOptional<z.ZodBoolean>;
120
+ resizable: z.ZodOptional<z.ZodBoolean>;
121
+ resizeConstraints: z.ZodOptional<z.ZodObject<{
122
+ width: z.ZodOptional<z.ZodBoolean>;
123
+ height: z.ZodOptional<z.ZodBoolean>;
124
+ minWidth: z.ZodOptional<z.ZodNumber>;
125
+ maxWidth: z.ZodOptional<z.ZodNumber>;
126
+ minHeight: z.ZodOptional<z.ZodNumber>;
127
+ maxHeight: z.ZodOptional<z.ZodNumber>;
128
+ }, z.core.$strip>>;
129
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
130
+ description: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strip>;
132
+ /**
133
+ * Component Configuration
134
+ */
135
+ export declare const ComponentConfigSchema: z.ZodObject<{
136
+ label: z.ZodOptional<z.ZodString>;
137
+ icon: z.ZodOptional<z.ZodString>;
138
+ category: z.ZodOptional<z.ZodString>;
139
+ inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
140
+ name: z.ZodString;
141
+ type: z.ZodEnum<{
142
+ string: "string";
143
+ number: "number";
144
+ boolean: "boolean";
145
+ object: "object";
146
+ enum: "enum";
147
+ array: "array";
148
+ color: "color";
149
+ date: "date";
150
+ code: "code";
151
+ file: "file";
152
+ slot: "slot";
153
+ }>;
154
+ label: z.ZodOptional<z.ZodString>;
155
+ defaultValue: z.ZodOptional<z.ZodAny>;
156
+ required: z.ZodOptional<z.ZodBoolean>;
157
+ enum: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodArray<z.ZodObject<{
158
+ label: z.ZodString;
159
+ value: z.ZodAny;
160
+ }, z.core.$strip>>]>>;
161
+ description: z.ZodOptional<z.ZodString>;
162
+ advanced: z.ZodOptional<z.ZodBoolean>;
163
+ inputType: z.ZodOptional<z.ZodString>;
164
+ min: z.ZodOptional<z.ZodNumber>;
165
+ max: z.ZodOptional<z.ZodNumber>;
166
+ step: z.ZodOptional<z.ZodNumber>;
167
+ placeholder: z.ZodOptional<z.ZodString>;
168
+ }, z.core.$strip>>>;
169
+ defaultProps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
170
+ defaultChildren: z.ZodOptional<z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>>;
171
+ examples: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
172
+ isContainer: z.ZodOptional<z.ZodBoolean>;
173
+ resizable: z.ZodOptional<z.ZodBoolean>;
174
+ resizeConstraints: z.ZodOptional<z.ZodObject<{
175
+ width: z.ZodOptional<z.ZodBoolean>;
176
+ height: z.ZodOptional<z.ZodBoolean>;
177
+ minWidth: z.ZodOptional<z.ZodNumber>;
178
+ maxWidth: z.ZodOptional<z.ZodNumber>;
179
+ minHeight: z.ZodOptional<z.ZodNumber>;
180
+ maxHeight: z.ZodOptional<z.ZodNumber>;
181
+ }, z.core.$strip>>;
182
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
183
+ description: z.ZodOptional<z.ZodString>;
184
+ type: z.ZodString;
185
+ component: z.ZodAny;
186
+ }, z.core.$strip>;
187
+ /**
188
+ * HTML Attributes (generic)
189
+ */
190
+ export declare const HTMLAttributesSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
191
+ /**
192
+ * Event Handlers
193
+ */
194
+ export declare const EventHandlersSchema: z.ZodRecord<z.ZodString, z.ZodFunction<z.core.$ZodFunctionArgs, z.core.$ZodFunctionOut>>;
195
+ /**
196
+ * Style Props
197
+ */
198
+ export declare const StylePropsSchema: z.ZodObject<{
199
+ className: z.ZodOptional<z.ZodString>;
200
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
201
+ }, z.core.$strip>;
202
+ //# sourceMappingURL=base.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.zod.d.ts","sourceRoot":"","sources":["../../src/zod/base.zod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAS3C,CAAC;AAyGF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;iBAAiB,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgC/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoB9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,oCAA4D,CAAC;AAE9F;;GAEG;AACH,eAAO,MAAM,mBAAmB,0FAAgE,CAAC;AAEjG;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;iBAGE,CAAC"}
@@ -0,0 +1,198 @@
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 - Base Schema Zod Validators
10
+ *
11
+ * Zod validation schemas for base component types.
12
+ * These schemas follow the @objectstack/spec UI specification format.
13
+ *
14
+ * @module zod/base
15
+ * @packageDocumentation
16
+ */
17
+ import { z } from 'zod';
18
+ /**
19
+ * Schema Node - Can be a schema object or primitive value
20
+ */
21
+ export const SchemaNodeSchema = z.lazy(() => z.union([
22
+ BaseSchemaCore,
23
+ z.string(),
24
+ z.number(),
25
+ z.boolean(),
26
+ z.null(),
27
+ z.undefined(),
28
+ ]));
29
+ /**
30
+ * Base Schema - Core validation schema that all components extend
31
+ *
32
+ * This is the foundation for all UI component schemas in ObjectUI.
33
+ * Following @objectstack/spec UI specification format.
34
+ */
35
+ const BaseSchemaCore = z.object({
36
+ /**
37
+ * Component type identifier
38
+ */
39
+ type: z.string().describe('Component type identifier'),
40
+ /**
41
+ * Unique identifier for the component
42
+ */
43
+ id: z.string().optional().describe('Unique component identifier'),
44
+ /**
45
+ * Human-readable name
46
+ */
47
+ name: z.string().optional().describe('Component name'),
48
+ /**
49
+ * Display label
50
+ */
51
+ label: z.string().optional().describe('Display label'),
52
+ /**
53
+ * Description text
54
+ */
55
+ description: z.string().optional().describe('Description text'),
56
+ /**
57
+ * Placeholder text
58
+ */
59
+ placeholder: z.string().optional().describe('Placeholder text'),
60
+ /**
61
+ * Tailwind CSS classes
62
+ */
63
+ className: z.string().optional().describe('Tailwind CSS classes'),
64
+ /**
65
+ * Inline styles
66
+ */
67
+ style: z.record(z.string(), z.union([z.string(), z.number()])).optional().describe('Inline CSS styles'),
68
+ /**
69
+ * Arbitrary data
70
+ */
71
+ data: z.any().optional().describe('Custom data payload'),
72
+ /**
73
+ * Child components or content
74
+ */
75
+ body: z.union([SchemaNodeSchema, z.array(SchemaNodeSchema)]).optional().describe('Child components'),
76
+ /**
77
+ * Alternative children property
78
+ */
79
+ children: z.union([SchemaNodeSchema, z.array(SchemaNodeSchema)]).optional().describe('Child components (React-style)'),
80
+ /**
81
+ * Visibility control
82
+ */
83
+ visible: z.boolean().optional().describe('Visibility control'),
84
+ /**
85
+ * Conditional visibility expression
86
+ */
87
+ visibleOn: z.string().optional().describe('Expression for conditional visibility'),
88
+ /**
89
+ * Hidden control
90
+ */
91
+ hidden: z.boolean().optional().describe('Hidden control'),
92
+ /**
93
+ * Conditional hidden expression
94
+ */
95
+ hiddenOn: z.string().optional().describe('Expression for conditional hiding'),
96
+ /**
97
+ * Disabled state
98
+ */
99
+ disabled: z.boolean().optional().describe('Disabled state'),
100
+ /**
101
+ * Conditional disabled expression
102
+ */
103
+ disabledOn: z.string().optional().describe('Expression for conditional disabling'),
104
+ /**
105
+ * Test ID for automated testing
106
+ */
107
+ testId: z.string().optional().describe('Test identifier'),
108
+ /**
109
+ * Accessibility label
110
+ */
111
+ ariaLabel: z.string().optional().describe('Accessibility label'),
112
+ }).passthrough(); // Allow additional properties for type-specific extensions
113
+ /**
114
+ * Base Schema - Export for use in other schemas
115
+ */
116
+ export const BaseSchema = BaseSchemaCore;
117
+ /**
118
+ * Component Input Configuration
119
+ */
120
+ export const ComponentInputSchema = z.object({
121
+ name: z.string().describe('Property name'),
122
+ type: z.enum([
123
+ 'string',
124
+ 'number',
125
+ 'boolean',
126
+ 'enum',
127
+ 'array',
128
+ 'object',
129
+ 'color',
130
+ 'date',
131
+ 'code',
132
+ 'file',
133
+ 'slot',
134
+ ]).describe('Input control type'),
135
+ label: z.string().optional().describe('Display label'),
136
+ defaultValue: z.any().optional().describe('Default value'),
137
+ required: z.boolean().optional().describe('Required flag'),
138
+ enum: z.union([
139
+ z.array(z.string()),
140
+ z.array(z.object({
141
+ label: z.string(),
142
+ value: z.any(),
143
+ })),
144
+ ]).optional().describe('Enum options'),
145
+ description: z.string().optional().describe('Help text'),
146
+ advanced: z.boolean().optional().describe('Advanced option flag'),
147
+ inputType: z.string().optional().describe('Specific input type'),
148
+ min: z.number().optional().describe('Minimum value'),
149
+ max: z.number().optional().describe('Maximum value'),
150
+ step: z.number().optional().describe('Step value'),
151
+ placeholder: z.string().optional().describe('Placeholder text'),
152
+ });
153
+ /**
154
+ * Component Metadata
155
+ */
156
+ export const ComponentMetaSchema = z.object({
157
+ label: z.string().optional().describe('Display name'),
158
+ icon: z.string().optional().describe('Icon name or SVG'),
159
+ category: z.string().optional().describe('Component category'),
160
+ inputs: z.array(ComponentInputSchema).optional().describe('Configurable properties'),
161
+ defaultProps: z.record(z.string(), z.any()).optional().describe('Default property values'),
162
+ defaultChildren: z.array(SchemaNodeSchema).optional().describe('Default children'),
163
+ examples: z.record(z.string(), z.any()).optional().describe('Example configurations'),
164
+ isContainer: z.boolean().optional().describe('Can have children'),
165
+ resizable: z.boolean().optional().describe('Can be resized'),
166
+ resizeConstraints: z.object({
167
+ width: z.boolean().optional(),
168
+ height: z.boolean().optional(),
169
+ minWidth: z.number().optional(),
170
+ maxWidth: z.number().optional(),
171
+ minHeight: z.number().optional(),
172
+ maxHeight: z.number().optional(),
173
+ }).optional().describe('Resize constraints'),
174
+ tags: z.array(z.string()).optional().describe('Search tags'),
175
+ description: z.string().optional().describe('Component description'),
176
+ });
177
+ /**
178
+ * Component Configuration
179
+ */
180
+ export const ComponentConfigSchema = ComponentMetaSchema.extend({
181
+ type: z.string().describe('Component type identifier'),
182
+ component: z.any().describe('Component renderer'),
183
+ });
184
+ /**
185
+ * HTML Attributes (generic)
186
+ */
187
+ export const HTMLAttributesSchema = z.record(z.string(), z.any()).describe('HTML attributes');
188
+ /**
189
+ * Event Handlers
190
+ */
191
+ export const EventHandlersSchema = z.record(z.string(), z.function()).describe('Event handlers');
192
+ /**
193
+ * Style Props
194
+ */
195
+ export const StylePropsSchema = z.object({
196
+ className: z.string().optional(),
197
+ style: z.record(z.string(), z.union([z.string(), z.number()])).optional(),
198
+ }).describe('Style properties');