@btst/stack 2.5.3 → 2.5.5

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 (59) hide show
  1. package/dist/packages/stack/src/plugins/ai-chat/api/plugin.cjs +1 -1
  2. package/dist/packages/stack/src/plugins/ai-chat/api/plugin.mjs +1 -1
  3. package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.cjs +7 -1
  4. package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.mjs +7 -1
  5. package/dist/packages/stack/src/plugins/ui-builder/client/registry.cjs +309 -37
  6. package/dist/packages/stack/src/plugins/ui-builder/client/registry.mjs +310 -38
  7. package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.cjs +207 -0
  8. package/dist/packages/ui/src/lib/ui-builder/registry/form-field-overrides.mjs +206 -1
  9. package/dist/plugins/blog/api/index.d.cts +2 -2
  10. package/dist/plugins/blog/api/index.d.mts +2 -2
  11. package/dist/plugins/blog/api/index.d.ts +2 -2
  12. package/dist/plugins/blog/client/hooks/index.d.cts +3 -3
  13. package/dist/plugins/blog/client/hooks/index.d.mts +3 -3
  14. package/dist/plugins/blog/client/hooks/index.d.ts +3 -3
  15. package/dist/plugins/blog/client/index.d.cts +1 -1
  16. package/dist/plugins/blog/client/index.d.mts +1 -1
  17. package/dist/plugins/blog/client/index.d.ts +1 -1
  18. package/dist/plugins/blog/query-keys.d.cts +2 -2
  19. package/dist/plugins/blog/query-keys.d.mts +2 -2
  20. package/dist/plugins/blog/query-keys.d.ts +2 -2
  21. package/dist/plugins/kanban/api/index.d.cts +1 -1
  22. package/dist/plugins/kanban/api/index.d.mts +1 -1
  23. package/dist/plugins/kanban/api/index.d.ts +1 -1
  24. package/dist/plugins/kanban/query-keys.d.cts +1 -1
  25. package/dist/plugins/kanban/query-keys.d.mts +1 -1
  26. package/dist/plugins/kanban/query-keys.d.ts +1 -1
  27. package/dist/plugins/ui-builder/client/components/index.d.cts +5 -3
  28. package/dist/plugins/ui-builder/client/components/index.d.mts +5 -3
  29. package/dist/plugins/ui-builder/client/components/index.d.ts +5 -3
  30. package/dist/plugins/ui-builder/client/hooks/index.d.cts +2 -2
  31. package/dist/plugins/ui-builder/client/hooks/index.d.mts +2 -2
  32. package/dist/plugins/ui-builder/client/hooks/index.d.ts +2 -2
  33. package/dist/plugins/ui-builder/client/index.d.cts +2 -2
  34. package/dist/plugins/ui-builder/client/index.d.mts +2 -2
  35. package/dist/plugins/ui-builder/client/index.d.ts +2 -2
  36. package/dist/plugins/ui-builder/index.d.cts +2 -2
  37. package/dist/plugins/ui-builder/index.d.mts +2 -2
  38. package/dist/plugins/ui-builder/index.d.ts +2 -2
  39. package/dist/shared/{stack.Cj_zKww4.d.ts → stack.B2DwzF3r.d.ts} +1 -1
  40. package/dist/shared/{stack.DXnclTG7.d.ts → stack.B8_74ror.d.ts} +4 -4
  41. package/dist/shared/{stack.DaZM10cp.d.cts → stack.C21-LFX8.d.cts} +4 -4
  42. package/dist/shared/{stack.B-YHz18S.d.cts → stack.C5ZSOJGJ.d.cts} +29 -2
  43. package/dist/shared/{stack.cfCkioTe.d.mts → stack.CL4mKxe7.d.mts} +4 -4
  44. package/dist/shared/{stack.B2xZTSiO.d.cts → stack.Cl7ok_cY.d.cts} +1 -1
  45. package/dist/shared/{stack.GygI_T3X.d.ts → stack.D0QupDcQ.d.ts} +29 -2
  46. package/dist/shared/{stack.D1DMlJp-.d.mts → stack.Dq4qVr1F.d.mts} +29 -2
  47. package/dist/shared/{stack.dH7u-TJH.d.mts → stack.VMmQdbsJ.d.mts} +1 -1
  48. package/package.json +1 -1
  49. package/src/plugins/ai-chat/api/plugin.ts +2 -1
  50. package/src/plugins/ui-builder/client/components/page-renderer.tsx +9 -0
  51. package/src/plugins/ui-builder/client/registry.ts +295 -19
  52. package/src/plugins/ui-builder/index.ts +1 -0
  53. package/src/plugins/ui-builder/types.ts +1 -0
  54. package/dist/shared/{stack.DMobugrZ.d.ts → stack.BFcg0tDz.d.ts} +9 -9
  55. package/dist/shared/{stack.BQmuNl5p.d.ts → stack.BWp0hcm9.d.cts} +3 -3
  56. package/dist/shared/{stack.BQmuNl5p.d.cts → stack.BWp0hcm9.d.mts} +3 -3
  57. package/dist/shared/{stack.BQmuNl5p.d.mts → stack.BWp0hcm9.d.ts} +3 -3
  58. package/dist/shared/{stack.Ba_Ks8qi.d.mts → stack.CxNeGV2z.d.mts} +9 -9
  59. package/dist/shared/{stack.CFqqZUes.d.cts → stack.DSxTDZBQ.d.cts} +9 -9
@@ -86,7 +86,7 @@ const aiChatBackendPlugin = (config) => api.defineBackendPlugin({
86
86
  });
87
87
  }
88
88
  const firstMessageContent = getMessageTextContent(firstMessage);
89
- const modelMessages = ai.convertToModelMessages(uiMessages);
89
+ const modelMessages = await ai.convertToModelMessages(uiMessages);
90
90
  const pageContextContent = pageContext && pageContext.trim() ? `
91
91
 
92
92
  Current page context:
@@ -84,7 +84,7 @@ const aiChatBackendPlugin = (config) => defineBackendPlugin({
84
84
  });
85
85
  }
86
86
  const firstMessageContent = getMessageTextContent(firstMessage);
87
- const modelMessages = convertToModelMessages(uiMessages);
87
+ const modelMessages = await convertToModelMessages(uiMessages);
88
88
  const pageContextContent = pageContext && pageContext.trim() ? `
89
89
 
90
90
  Current page context:
@@ -25,6 +25,7 @@ function PageRenderer({
25
25
  slug,
26
26
  componentRegistry = registry.defaultComponentRegistry,
27
27
  variableValues,
28
+ functionRegistry,
28
29
  LoadingComponent = DefaultLoadingComponent,
29
30
  ErrorComponent = DefaultErrorComponent,
30
31
  NotFoundComponent = DefaultNotFoundComponent,
@@ -40,6 +41,7 @@ function PageRenderer({
40
41
  slug,
41
42
  componentRegistry,
42
43
  variableValues,
44
+ functionRegistry,
43
45
  NotFoundComponent,
44
46
  className
45
47
  }
@@ -51,6 +53,7 @@ function SuspensePageRendererContent({
51
53
  slug,
52
54
  componentRegistry = registry.defaultComponentRegistry,
53
55
  variableValues,
56
+ functionRegistry,
54
57
  NotFoundComponent = DefaultNotFoundComponent,
55
58
  className
56
59
  }) {
@@ -69,7 +72,8 @@ function SuspensePageRendererContent({
69
72
  page: rootLayer,
70
73
  componentRegistry,
71
74
  variables,
72
- variableValues
75
+ variableValues,
76
+ functionRegistry
73
77
  }
74
78
  );
75
79
  }
@@ -77,6 +81,7 @@ function SuspensePageRenderer({
77
81
  slug,
78
82
  componentRegistry = registry.defaultComponentRegistry,
79
83
  variableValues,
84
+ functionRegistry,
80
85
  NotFoundComponent = DefaultNotFoundComponent,
81
86
  className
82
87
  }) {
@@ -86,6 +91,7 @@ function SuspensePageRenderer({
86
91
  slug,
87
92
  componentRegistry,
88
93
  variableValues,
94
+ functionRegistry,
89
95
  NotFoundComponent,
90
96
  className
91
97
  }
@@ -23,6 +23,7 @@ function PageRenderer({
23
23
  slug,
24
24
  componentRegistry = defaultComponentRegistry,
25
25
  variableValues,
26
+ functionRegistry,
26
27
  LoadingComponent = DefaultLoadingComponent,
27
28
  ErrorComponent = DefaultErrorComponent,
28
29
  NotFoundComponent = DefaultNotFoundComponent,
@@ -38,6 +39,7 @@ function PageRenderer({
38
39
  slug,
39
40
  componentRegistry,
40
41
  variableValues,
42
+ functionRegistry,
41
43
  NotFoundComponent,
42
44
  className
43
45
  }
@@ -49,6 +51,7 @@ function SuspensePageRendererContent({
49
51
  slug,
50
52
  componentRegistry = defaultComponentRegistry,
51
53
  variableValues,
54
+ functionRegistry,
52
55
  NotFoundComponent = DefaultNotFoundComponent,
53
56
  className
54
57
  }) {
@@ -67,7 +70,8 @@ function SuspensePageRendererContent({
67
70
  page: rootLayer,
68
71
  componentRegistry,
69
72
  variables,
70
- variableValues
73
+ variableValues,
74
+ functionRegistry
71
75
  }
72
76
  );
73
77
  }
@@ -75,6 +79,7 @@ function SuspensePageRenderer({
75
79
  slug,
76
80
  componentRegistry = defaultComponentRegistry,
77
81
  variableValues,
82
+ functionRegistry,
78
83
  NotFoundComponent = DefaultNotFoundComponent,
79
84
  className
80
85
  }) {
@@ -84,6 +89,7 @@ function SuspensePageRenderer({
84
89
  slug,
85
90
  componentRegistry,
86
91
  variableValues,
92
+ functionRegistry,
87
93
  NotFoundComponent,
88
94
  className
89
95
  }
@@ -23,9 +23,118 @@ const primitiveComponentDefinitions = {
23
23
  target: z.z.enum(["_blank", "_self", "_parent", "_top"]).optional().default("_self"),
24
24
  rel: z.z.enum(["noopener", "noreferrer", "nofollow"]).optional(),
25
25
  title: z.z.string().optional(),
26
- download: z.z.boolean().optional().default(false)
26
+ download: z.z.boolean().optional().default(false),
27
+ onClick: z.z.any().optional()
27
28
  }),
28
- fieldOverrides: formFieldOverrides.commonFieldOverrides()
29
+ fieldOverrides: {
30
+ ...formFieldOverrides.commonFieldOverrides(),
31
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
32
+ }
33
+ },
34
+ button: {
35
+ schema: z.z.object({
36
+ className: z.z.string().optional(),
37
+ children: z.z.any().optional(),
38
+ type: z.z.enum(["button", "submit", "reset"]).optional().default("button"),
39
+ disabled: z.z.boolean().optional().default(false),
40
+ onClick: z.z.any().optional()
41
+ }),
42
+ defaultChildren: "Button",
43
+ fieldOverrides: {
44
+ ...formFieldOverrides.commonFieldOverrides(),
45
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
46
+ }
47
+ },
48
+ form: {
49
+ schema: z.z.object({
50
+ className: z.z.string().optional(),
51
+ children: z.z.any().optional(),
52
+ action: z.z.string().optional(),
53
+ method: z.z.enum(["get", "post"]).optional(),
54
+ onSubmit: z.z.any().optional()
55
+ }),
56
+ fieldOverrides: {
57
+ ...formFieldOverrides.commonFieldOverrides(),
58
+ onSubmit: () => formFieldOverrides.functionPropFieldOverrides("onSubmit")
59
+ }
60
+ },
61
+ input: {
62
+ schema: z.z.object({
63
+ className: z.z.string().optional(),
64
+ type: z.z.enum([
65
+ "text",
66
+ "password",
67
+ "email",
68
+ "number",
69
+ "tel",
70
+ "url",
71
+ "search",
72
+ "date",
73
+ "time",
74
+ "hidden"
75
+ ]).optional().default("text"),
76
+ name: z.z.string().optional(),
77
+ placeholder: z.z.string().optional(),
78
+ defaultValue: z.z.string().optional(),
79
+ disabled: z.z.boolean().optional().default(false),
80
+ required: z.z.boolean().optional().default(false),
81
+ onChange: z.z.any().optional(),
82
+ onBlur: z.z.any().optional(),
83
+ onFocus: z.z.any().optional()
84
+ }),
85
+ fieldOverrides: {
86
+ className: (layer) => formFieldOverrides.classNameFieldOverrides(),
87
+ onChange: () => formFieldOverrides.functionPropFieldOverrides("onChange"),
88
+ onBlur: () => formFieldOverrides.functionPropFieldOverrides("onBlur"),
89
+ onFocus: () => formFieldOverrides.functionPropFieldOverrides("onFocus")
90
+ }
91
+ },
92
+ textarea: {
93
+ schema: z.z.object({
94
+ className: z.z.string().optional(),
95
+ name: z.z.string().optional(),
96
+ placeholder: z.z.string().optional(),
97
+ defaultValue: z.z.string().optional(),
98
+ rows: z.z.coerce.number().optional(),
99
+ disabled: z.z.boolean().optional().default(false),
100
+ required: z.z.boolean().optional().default(false),
101
+ onChange: z.z.any().optional(),
102
+ onBlur: z.z.any().optional(),
103
+ onFocus: z.z.any().optional()
104
+ }),
105
+ fieldOverrides: {
106
+ className: (layer) => formFieldOverrides.classNameFieldOverrides(),
107
+ onChange: () => formFieldOverrides.functionPropFieldOverrides("onChange"),
108
+ onBlur: () => formFieldOverrides.functionPropFieldOverrides("onBlur"),
109
+ onFocus: () => formFieldOverrides.functionPropFieldOverrides("onFocus")
110
+ }
111
+ },
112
+ select: {
113
+ schema: z.z.object({
114
+ className: z.z.string().optional(),
115
+ children: z.z.any().optional(),
116
+ name: z.z.string().optional(),
117
+ defaultValue: z.z.string().optional(),
118
+ disabled: z.z.boolean().optional().default(false),
119
+ required: z.z.boolean().optional().default(false),
120
+ onChange: z.z.any().optional()
121
+ }),
122
+ fieldOverrides: {
123
+ ...formFieldOverrides.commonFieldOverrides(),
124
+ onChange: () => formFieldOverrides.functionPropFieldOverrides("onChange")
125
+ }
126
+ },
127
+ label: {
128
+ schema: z.z.object({
129
+ className: z.z.string().optional(),
130
+ children: z.z.any().optional(),
131
+ htmlFor: z.z.string().optional(),
132
+ onClick: z.z.any().optional()
133
+ }),
134
+ fieldOverrides: {
135
+ ...formFieldOverrides.commonFieldOverrides(),
136
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
137
+ }
29
138
  },
30
139
  img: {
31
140
  schema: z.z.object({
@@ -33,18 +142,24 @@ const primitiveComponentDefinitions = {
33
142
  src: z.z.string().default("https://placehold.co/200"),
34
143
  alt: z.z.string().optional(),
35
144
  width: z.z.coerce.number().optional(),
36
- height: z.z.coerce.number().optional()
145
+ height: z.z.coerce.number().optional(),
146
+ onClick: z.z.any().optional()
37
147
  }),
38
148
  fieldOverrides: {
39
- className: (layer) => formFieldOverrides.classNameFieldOverrides()
149
+ className: (layer) => formFieldOverrides.classNameFieldOverrides(),
150
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
40
151
  }
41
152
  },
42
153
  div: {
43
154
  schema: z.z.object({
44
155
  className: z.z.string().optional(),
45
- children: z.z.any().optional()
156
+ children: z.z.any().optional(),
157
+ onClick: z.z.any().optional()
46
158
  }),
47
- fieldOverrides: formFieldOverrides.commonFieldOverrides()
159
+ fieldOverrides: {
160
+ ...formFieldOverrides.commonFieldOverrides(),
161
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
162
+ }
48
163
  },
49
164
  iframe: {
50
165
  schema: z.z.object({
@@ -76,56 +191,101 @@ const primitiveComponentDefinitions = {
76
191
  span: {
77
192
  schema: z.z.object({
78
193
  className: z.z.string().optional(),
79
- children: z.z.string().optional()
194
+ children: z.z.string().optional(),
195
+ onClick: z.z.any().optional()
80
196
  }),
81
197
  defaultChildren: "Text",
82
198
  fieldOverrides: {
83
199
  className: (layer) => formFieldOverrides.classNameFieldOverrides(),
84
- children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer)
200
+ children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer),
201
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
85
202
  }
86
203
  },
87
204
  h1: {
88
205
  schema: z.z.object({
89
206
  className: z.z.string().optional(),
90
- children: z.z.string().optional()
207
+ children: z.z.string().optional(),
208
+ onClick: z.z.any().optional()
91
209
  }),
92
210
  defaultChildren: "Heading 1",
93
211
  fieldOverrides: {
94
- className: (layer) => formFieldOverrides.classNameFieldOverrides(),
95
- children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer)
212
+ ...formFieldOverrides.commonFieldOverrides(),
213
+ children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer),
214
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
96
215
  }
97
216
  },
98
217
  h2: {
99
218
  schema: z.z.object({
100
219
  className: z.z.string().optional(),
101
- children: z.z.string().optional()
220
+ children: z.z.string().optional(),
221
+ onClick: z.z.any().optional()
102
222
  }),
103
223
  defaultChildren: "Heading 2",
104
224
  fieldOverrides: {
105
- className: (layer) => formFieldOverrides.classNameFieldOverrides(),
106
- children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer)
225
+ ...formFieldOverrides.commonFieldOverrides(),
226
+ children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer),
227
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
107
228
  }
108
229
  },
109
230
  h3: {
110
231
  schema: z.z.object({
111
232
  className: z.z.string().optional(),
112
- children: z.z.string().optional()
233
+ children: z.z.string().optional(),
234
+ onClick: z.z.any().optional()
113
235
  }),
114
236
  defaultChildren: "Heading 3",
115
237
  fieldOverrides: {
116
- className: (layer) => formFieldOverrides.classNameFieldOverrides(),
117
- children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer)
238
+ ...formFieldOverrides.commonFieldOverrides(),
239
+ children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer),
240
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
118
241
  }
119
242
  },
120
243
  p: {
121
244
  schema: z.z.object({
122
245
  className: z.z.string().optional(),
123
- children: z.z.string().optional()
246
+ children: z.z.string().optional(),
247
+ onClick: z.z.any().optional()
124
248
  }),
125
- defaultChildren: "Paragraph",
249
+ defaultChildren: "Paragraph text",
126
250
  fieldOverrides: {
127
- className: (layer) => formFieldOverrides.classNameFieldOverrides(),
128
- children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer)
251
+ ...formFieldOverrides.commonFieldOverrides(),
252
+ children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer),
253
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
254
+ }
255
+ },
256
+ li: {
257
+ schema: z.z.object({
258
+ className: z.z.string().optional(),
259
+ children: z.z.string().optional(),
260
+ onClick: z.z.any().optional()
261
+ }),
262
+ defaultChildren: "List item",
263
+ fieldOverrides: {
264
+ ...formFieldOverrides.commonFieldOverrides(),
265
+ children: (layer) => formFieldOverrides.childrenAsTextareaFieldOverrides(layer),
266
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
267
+ }
268
+ },
269
+ ul: {
270
+ schema: z.z.object({
271
+ className: z.z.string().optional(),
272
+ children: z.z.any().optional(),
273
+ onClick: z.z.any().optional()
274
+ }),
275
+ fieldOverrides: {
276
+ ...formFieldOverrides.commonFieldOverrides(),
277
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
278
+ }
279
+ },
280
+ ol: {
281
+ schema: z.z.object({
282
+ className: z.z.string().optional(),
283
+ children: z.z.any().optional(),
284
+ onClick: z.z.any().optional()
285
+ }),
286
+ fieldOverrides: {
287
+ ...formFieldOverrides.commonFieldOverrides(),
288
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
129
289
  }
130
290
  }
131
291
  };
@@ -144,7 +304,8 @@ const complexComponentDefinitions = {
144
304
  "ghost",
145
305
  "link"
146
306
  ]).default("default"),
147
- size: z.z.enum(["default", "sm", "lg", "icon"]).default("default")
307
+ size: z.z.enum(["default", "sm", "lg", "icon"]).default("default"),
308
+ onClick: z.z.any().optional()
148
309
  }),
149
310
  from: "@/components/ui/button",
150
311
  defaultChildren: [
@@ -156,14 +317,18 @@ const complexComponentDefinitions = {
156
317
  children: "Button"
157
318
  }
158
319
  ],
159
- fieldOverrides: formFieldOverrides.commonFieldOverrides()
320
+ fieldOverrides: {
321
+ ...formFieldOverrides.commonFieldOverrides(),
322
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
323
+ }
160
324
  },
161
325
  Badge: {
162
326
  component: badge.Badge,
163
327
  schema: z.z.object({
164
328
  className: z.z.string().optional(),
165
329
  children: z.z.any().optional(),
166
- variant: z.z.enum(["default", "secondary", "destructive", "outline"]).default("default")
330
+ variant: z.z.enum(["default", "secondary", "destructive", "outline"]).default("default"),
331
+ onClick: z.z.any().optional()
167
332
  }),
168
333
  from: "@/components/ui/badge",
169
334
  defaultChildren: [
@@ -175,7 +340,10 @@ const complexComponentDefinitions = {
175
340
  children: "Badge"
176
341
  }
177
342
  ],
178
- fieldOverrides: formFieldOverrides.commonFieldOverrides()
343
+ fieldOverrides: {
344
+ ...formFieldOverrides.commonFieldOverrides(),
345
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
346
+ }
179
347
  },
180
348
  Flexbox: {
181
349
  component: flexbox.Flexbox,
@@ -268,7 +436,8 @@ const complexComponentDefinitions = {
268
436
  className: z.z.string().optional(),
269
437
  children: z.z.any().optional(),
270
438
  type: z.z.enum(["single", "multiple"]).default("single"),
271
- collapsible: z.z.boolean().optional()
439
+ collapsible: z.z.boolean().optional(),
440
+ onValueChange: z.z.any().optional()
272
441
  }),
273
442
  from: "@/components/ui/accordion",
274
443
  defaultChildren: [
@@ -285,7 +454,7 @@ const complexComponentDefinitions = {
285
454
  props: {},
286
455
  children: [
287
456
  {
288
- id: "acc-trigger-text",
457
+ id: "acc-trigger-1-text",
289
458
  type: "span",
290
459
  name: "span",
291
460
  props: {},
@@ -300,7 +469,45 @@ const complexComponentDefinitions = {
300
469
  props: {},
301
470
  children: [
302
471
  {
303
- id: "acc-content-text",
472
+ id: "acc-content-1-text",
473
+ type: "span",
474
+ name: "span",
475
+ props: {},
476
+ children: "Accordion Content Text"
477
+ }
478
+ ]
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ id: "acc-item-2",
484
+ type: "AccordionItem",
485
+ name: "AccordionItem",
486
+ props: { value: "item-2" },
487
+ children: [
488
+ {
489
+ id: "acc-trigger-2",
490
+ type: "AccordionTrigger",
491
+ name: "AccordionTrigger",
492
+ props: {},
493
+ children: [
494
+ {
495
+ id: "acc-trigger-2-text",
496
+ type: "span",
497
+ name: "span",
498
+ props: {},
499
+ children: "Accordion Item #2"
500
+ }
501
+ ]
502
+ },
503
+ {
504
+ id: "acc-content-2",
505
+ type: "AccordionContent",
506
+ name: "AccordionContent",
507
+ props: {},
508
+ children: [
509
+ {
510
+ id: "acc-content-2-text",
304
511
  type: "span",
305
512
  name: "span",
306
513
  props: {},
@@ -311,7 +518,10 @@ const complexComponentDefinitions = {
311
518
  ]
312
519
  }
313
520
  ],
314
- fieldOverrides: formFieldOverrides.commonFieldOverrides()
521
+ fieldOverrides: {
522
+ ...formFieldOverrides.commonFieldOverrides(),
523
+ onValueChange: () => formFieldOverrides.functionPropFieldOverrides("onValueChange")
524
+ }
315
525
  },
316
526
  AccordionItem: {
317
527
  component: accordion.AccordionItem,
@@ -321,18 +531,54 @@ const complexComponentDefinitions = {
321
531
  value: z.z.string().default("item-1")
322
532
  }),
323
533
  from: "@/components/ui/accordion",
534
+ childOf: ["Accordion"],
535
+ defaultChildren: [
536
+ {
537
+ id: "acc-trigger-default",
538
+ type: "AccordionTrigger",
539
+ name: "AccordionTrigger",
540
+ props: {},
541
+ children: [
542
+ {
543
+ id: "acc-trigger-default-text",
544
+ type: "span",
545
+ name: "span",
546
+ props: {},
547
+ children: "Accordion Item"
548
+ }
549
+ ]
550
+ },
551
+ {
552
+ id: "acc-content-default",
553
+ type: "AccordionContent",
554
+ name: "AccordionContent",
555
+ props: {},
556
+ children: [
557
+ {
558
+ id: "acc-content-default-text",
559
+ type: "span",
560
+ name: "span",
561
+ props: {},
562
+ children: "Accordion Content"
563
+ }
564
+ ]
565
+ }
566
+ ],
324
567
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
325
568
  },
326
569
  AccordionTrigger: {
327
570
  component: accordion.AccordionTrigger,
328
571
  schema: z.z.object({
329
572
  className: z.z.string().optional(),
330
- children: z.z.any().optional()
573
+ children: z.z.any().optional(),
574
+ onClick: z.z.any().optional()
331
575
  }),
332
576
  from: "@/components/ui/accordion",
577
+ childOf: ["AccordionItem"],
333
578
  fieldOverrides: {
334
579
  className: (layer) => formFieldOverrides.classNameFieldOverrides(),
335
- children: (layer) => formFieldOverrides.childrenFieldOverrides(layer)
580
+ children: (layer) => formFieldOverrides.childrenFieldOverrides(layer),
581
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
336
582
  }
337
583
  },
338
584
  AccordionContent: {
@@ -342,13 +588,15 @@ const complexComponentDefinitions = {
342
588
  children: z.z.any().optional()
343
589
  }),
344
590
  from: "@/components/ui/accordion",
591
+ childOf: ["AccordionItem"],
345
592
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
346
593
  },
347
594
  Card: {
348
595
  component: card.Card,
349
596
  schema: z.z.object({
350
597
  className: z.z.string().optional(),
351
- children: z.z.any().optional()
598
+ children: z.z.any().optional(),
599
+ onClick: z.z.any().optional()
352
600
  }),
353
601
  from: "@/components/ui/card",
354
602
  defaultChildren: [
@@ -363,14 +611,30 @@ const complexComponentDefinitions = {
363
611
  type: "CardTitle",
364
612
  name: "CardTitle",
365
613
  props: {},
366
- children: "Card Title"
614
+ children: [
615
+ {
616
+ id: "card-title-text",
617
+ type: "span",
618
+ name: "span",
619
+ props: {},
620
+ children: "Card Title"
621
+ }
622
+ ]
367
623
  },
368
624
  {
369
625
  id: "card-description",
370
626
  type: "CardDescription",
371
627
  name: "CardDescription",
372
628
  props: {},
373
- children: "Card Description"
629
+ children: [
630
+ {
631
+ id: "card-description-text",
632
+ type: "span",
633
+ name: "span",
634
+ props: {},
635
+ children: "Card Description"
636
+ }
637
+ ]
374
638
  }
375
639
  ]
376
640
  },
@@ -385,7 +649,7 @@ const complexComponentDefinitions = {
385
649
  type: "span",
386
650
  name: "span",
387
651
  props: {},
388
- children: "Card Content Text"
652
+ children: "Card Content"
389
653
  }
390
654
  ]
391
655
  },
@@ -400,12 +664,15 @@ const complexComponentDefinitions = {
400
664
  type: "span",
401
665
  name: "span",
402
666
  props: {},
403
- children: "Card Footer Text"
667
+ children: "Card Footer"
404
668
  }
405
669
  ]
406
670
  }
407
671
  ],
408
- fieldOverrides: formFieldOverrides.commonFieldOverrides()
672
+ fieldOverrides: {
673
+ ...formFieldOverrides.commonFieldOverrides(),
674
+ onClick: () => formFieldOverrides.functionPropFieldOverrides("onClick")
675
+ }
409
676
  },
410
677
  CardHeader: {
411
678
  component: card.CardHeader,
@@ -414,6 +681,7 @@ const complexComponentDefinitions = {
414
681
  children: z.z.any().optional()
415
682
  }),
416
683
  from: "@/components/ui/card",
684
+ childOf: ["Card"],
417
685
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
418
686
  },
419
687
  CardTitle: {
@@ -423,6 +691,7 @@ const complexComponentDefinitions = {
423
691
  children: z.z.any().optional()
424
692
  }),
425
693
  from: "@/components/ui/card",
694
+ childOf: ["CardHeader"],
426
695
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
427
696
  },
428
697
  CardDescription: {
@@ -432,6 +701,7 @@ const complexComponentDefinitions = {
432
701
  children: z.z.any().optional()
433
702
  }),
434
703
  from: "@/components/ui/card",
704
+ childOf: ["CardHeader"],
435
705
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
436
706
  },
437
707
  CardContent: {
@@ -441,6 +711,7 @@ const complexComponentDefinitions = {
441
711
  children: z.z.any().optional()
442
712
  }),
443
713
  from: "@/components/ui/card",
714
+ childOf: ["Card"],
444
715
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
445
716
  },
446
717
  CardFooter: {
@@ -450,6 +721,7 @@ const complexComponentDefinitions = {
450
721
  children: z.z.any().optional()
451
722
  }),
452
723
  from: "@/components/ui/card",
724
+ childOf: ["Card"],
453
725
  fieldOverrides: formFieldOverrides.commonFieldOverrides()
454
726
  },
455
727
  Separator: {