@algorithm-shift/design-system 1.2.52 → 1.2.54
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.
- package/dist/chunk-27YZ2WSP.mjs +10 -5
- package/dist/chunk-27YZ2WSP.mjs.map +1 -1
- package/dist/client.js +116 -64
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +48 -28
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +713 -472
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +583 -340
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/chunk-27YZ2WSP.mjs
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
|
|
1
|
+
'use client';
|
|
4
2
|
var __defProp = Object.defineProperty;
|
|
5
3
|
var __export = (target, all) => {
|
|
6
4
|
for (var name in all)
|
|
7
5
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
6
|
};
|
|
7
|
+
|
|
8
|
+
// src/lib/utils.ts
|
|
9
|
+
import { clsx } from "clsx";
|
|
10
|
+
import { twMerge } from "tailwind-merge";
|
|
9
11
|
function cn(...inputs) {
|
|
10
12
|
return twMerge(clsx(inputs));
|
|
11
13
|
}
|
|
@@ -20,6 +22,9 @@ function getInitials(name) {
|
|
|
20
22
|
return words[0].charAt(0) + words[1].charAt(0);
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
export {
|
|
24
|
-
|
|
25
|
+
export {
|
|
26
|
+
__export,
|
|
27
|
+
cn,
|
|
28
|
+
getInitials
|
|
29
|
+
};
|
|
25
30
|
//# sourceMappingURL=chunk-27YZ2WSP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n\r\nexport function getInitials(name: string) {\r\n const words = name.split(' ');\r\n if (words.length === 0) {\r\n return '';\r\n }\r\n if (words.length === 1) {\r\n return words[0].charAt(0);\r\n }\r\n return words[0].charAt(0) + words[1].charAt(0);\r\n}"],"mappings":";;;;;;;;AAAA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;AAEO,SAAS,YAAY,MAAc;AACxC,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,EACT;AACA,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO,MAAM,CAAC,EAAE,OAAO,CAAC;AAAA,EAC1B;AACA,SAAO,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,OAAO,CAAC;AAC/C;","names":[]}
|
package/dist/client.js
CHANGED
|
@@ -1,30 +1,70 @@
|
|
|
1
|
-
'use
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
"use client";
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all)
|
|
12
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
28
|
+
mod
|
|
29
|
+
));
|
|
30
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
10
31
|
|
|
11
|
-
|
|
32
|
+
// src/client.ts
|
|
33
|
+
var client_exports = {};
|
|
34
|
+
__export(client_exports, {
|
|
35
|
+
Form: () => Form_default,
|
|
36
|
+
FormWrapper: () => Wrapper_default,
|
|
37
|
+
StateProvider: () => StateProvider,
|
|
38
|
+
stateReducer: () => stateReducer,
|
|
39
|
+
useAppState: () => useAppState
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(client_exports);
|
|
12
42
|
|
|
13
|
-
|
|
43
|
+
// src/components/Form/Wrapper.tsx
|
|
44
|
+
var import_react = require("react");
|
|
45
|
+
var import_zod = require("@hookform/resolvers/zod");
|
|
46
|
+
var import_react_hook_form = require("react-hook-form");
|
|
47
|
+
var import_zod2 = require("zod");
|
|
14
48
|
|
|
49
|
+
// src/lib/utils.ts
|
|
50
|
+
var import_clsx = require("clsx");
|
|
51
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
15
52
|
function cn(...inputs) {
|
|
16
|
-
return
|
|
53
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
17
54
|
}
|
|
55
|
+
|
|
56
|
+
// src/components/Form/Wrapper.tsx
|
|
57
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
18
58
|
function generateZodSchema(data) {
|
|
19
59
|
const fields = data.reduce((acc, f) => {
|
|
20
60
|
const name = f.name || "unnamed";
|
|
21
61
|
const message = f.message || `${name} is invalid`;
|
|
22
62
|
const passwordLen = f.passwordLength;
|
|
23
|
-
let fieldSchema =
|
|
63
|
+
let fieldSchema = import_zod2.z.string({ message });
|
|
24
64
|
switch (f.type) {
|
|
25
65
|
case "Text":
|
|
26
66
|
case "Search":
|
|
27
|
-
fieldSchema =
|
|
67
|
+
fieldSchema = import_zod2.z.string({ message });
|
|
28
68
|
if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
|
|
29
69
|
else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
|
|
30
70
|
if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
|
|
@@ -33,23 +73,23 @@ function generateZodSchema(data) {
|
|
|
33
73
|
if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
|
|
34
74
|
break;
|
|
35
75
|
case "Email":
|
|
36
|
-
fieldSchema =
|
|
76
|
+
fieldSchema = import_zod2.z.email({ message });
|
|
37
77
|
break;
|
|
38
78
|
case "Password":
|
|
39
|
-
fieldSchema =
|
|
79
|
+
fieldSchema = import_zod2.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
|
|
40
80
|
break;
|
|
41
81
|
case "Phone":
|
|
42
|
-
fieldSchema =
|
|
82
|
+
fieldSchema = import_zod2.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
|
|
43
83
|
return val.length === 10;
|
|
44
84
|
}, {
|
|
45
85
|
message: "Phone number must be 10 digits long"
|
|
46
86
|
});
|
|
47
87
|
break;
|
|
48
88
|
case "DatePicker":
|
|
49
|
-
fieldSchema =
|
|
89
|
+
fieldSchema = import_zod2.z.iso.date({ message });
|
|
50
90
|
break;
|
|
51
91
|
case "FileInput":
|
|
52
|
-
fieldSchema =
|
|
92
|
+
fieldSchema = import_zod2.z.instanceof(File, { message: "Please select a file" });
|
|
53
93
|
if (f?.maxSize) {
|
|
54
94
|
fieldSchema = fieldSchema.refine(
|
|
55
95
|
(file) => file.size <= f.maxSize,
|
|
@@ -64,24 +104,24 @@ function generateZodSchema(data) {
|
|
|
64
104
|
}
|
|
65
105
|
break;
|
|
66
106
|
case "Checkbox":
|
|
67
|
-
fieldSchema =
|
|
107
|
+
fieldSchema = import_zod2.z.boolean({ message });
|
|
68
108
|
break;
|
|
69
109
|
case "Dropdown":
|
|
70
|
-
fieldSchema =
|
|
110
|
+
fieldSchema = import_zod2.z.string({ message });
|
|
71
111
|
break;
|
|
72
112
|
case "NumberInput":
|
|
73
|
-
fieldSchema =
|
|
113
|
+
fieldSchema = import_zod2.z.number({ message });
|
|
74
114
|
if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
|
|
75
115
|
if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
|
|
76
116
|
break;
|
|
77
117
|
default:
|
|
78
|
-
fieldSchema =
|
|
118
|
+
fieldSchema = import_zod2.z.any();
|
|
79
119
|
}
|
|
80
120
|
if (!f.isRequired) fieldSchema = fieldSchema.optional();
|
|
81
121
|
acc[name] = fieldSchema;
|
|
82
122
|
return acc;
|
|
83
123
|
}, {});
|
|
84
|
-
return
|
|
124
|
+
return import_zod2.z.object(fields);
|
|
85
125
|
}
|
|
86
126
|
var FormWrapper = ({
|
|
87
127
|
validation,
|
|
@@ -90,12 +130,12 @@ var FormWrapper = ({
|
|
|
90
130
|
onSubmit,
|
|
91
131
|
onReset
|
|
92
132
|
}) => {
|
|
93
|
-
const schema =
|
|
133
|
+
const schema = (0, import_react.useMemo)(() => {
|
|
94
134
|
if (!validation || validation.length === 0) return null;
|
|
95
135
|
return generateZodSchema(validation);
|
|
96
136
|
}, [validation]);
|
|
97
|
-
const form =
|
|
98
|
-
resolver: schema ?
|
|
137
|
+
const form = (0, import_react_hook_form.useForm)({
|
|
138
|
+
resolver: schema ? (0, import_zod.zodResolver)(schema) : void 0,
|
|
99
139
|
defaultValues
|
|
100
140
|
});
|
|
101
141
|
const formSubmit = (data) => {
|
|
@@ -105,7 +145,7 @@ var FormWrapper = ({
|
|
|
105
145
|
form.reset();
|
|
106
146
|
if (onReset) onReset();
|
|
107
147
|
};
|
|
108
|
-
return /* @__PURE__ */
|
|
148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
109
149
|
"form",
|
|
110
150
|
{
|
|
111
151
|
onSubmit: form.handleSubmit(formSubmit),
|
|
@@ -113,21 +153,28 @@ var FormWrapper = ({
|
|
|
113
153
|
className: cn(
|
|
114
154
|
"space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
|
|
115
155
|
),
|
|
116
|
-
children: /* @__PURE__ */
|
|
156
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "min-h-[50px]", children: typeof children === "function" ? children(form) : children })
|
|
117
157
|
}
|
|
118
158
|
);
|
|
119
159
|
};
|
|
120
160
|
var Wrapper_default = FormWrapper;
|
|
161
|
+
|
|
162
|
+
// src/components/Form/Form.tsx
|
|
163
|
+
var import_react2 = __toESM(require("react"));
|
|
164
|
+
var import_zod3 = require("@hookform/resolvers/zod");
|
|
165
|
+
var import_react_hook_form2 = require("react-hook-form");
|
|
166
|
+
var import_zod4 = require("zod");
|
|
167
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
121
168
|
function generateZodSchema2(data) {
|
|
122
169
|
const fields = data.reduce((acc, f) => {
|
|
123
170
|
const name = f.name || "unnamed";
|
|
124
171
|
const message = f.message || `${name} is invalid`;
|
|
125
172
|
const passwordLen = f.passwordLength;
|
|
126
|
-
let fieldSchema =
|
|
173
|
+
let fieldSchema = import_zod4.z.string({ message });
|
|
127
174
|
switch (f.type) {
|
|
128
175
|
case "Text":
|
|
129
176
|
case "Search":
|
|
130
|
-
fieldSchema =
|
|
177
|
+
fieldSchema = import_zod4.z.string({ message });
|
|
131
178
|
if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
|
|
132
179
|
else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
|
|
133
180
|
if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
|
|
@@ -136,23 +183,23 @@ function generateZodSchema2(data) {
|
|
|
136
183
|
if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
|
|
137
184
|
break;
|
|
138
185
|
case "Email":
|
|
139
|
-
fieldSchema =
|
|
186
|
+
fieldSchema = import_zod4.z.email({ message });
|
|
140
187
|
break;
|
|
141
188
|
case "Password":
|
|
142
|
-
fieldSchema =
|
|
189
|
+
fieldSchema = import_zod4.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
|
|
143
190
|
break;
|
|
144
191
|
case "Phone":
|
|
145
|
-
fieldSchema =
|
|
192
|
+
fieldSchema = import_zod4.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
|
|
146
193
|
return val.length === 10;
|
|
147
194
|
}, {
|
|
148
195
|
message: "Phone number must be 10 digits long"
|
|
149
196
|
});
|
|
150
197
|
break;
|
|
151
198
|
case "DatePicker":
|
|
152
|
-
fieldSchema =
|
|
199
|
+
fieldSchema = import_zod4.z.iso.date({ message });
|
|
153
200
|
break;
|
|
154
201
|
case "FileInput":
|
|
155
|
-
fieldSchema =
|
|
202
|
+
fieldSchema = import_zod4.z.instanceof(File, { message: "Please select a file" });
|
|
156
203
|
if (f?.maxSize) {
|
|
157
204
|
fieldSchema = fieldSchema.refine(
|
|
158
205
|
(file) => file.size <= f.maxSize,
|
|
@@ -167,24 +214,24 @@ function generateZodSchema2(data) {
|
|
|
167
214
|
}
|
|
168
215
|
break;
|
|
169
216
|
case "Checkbox":
|
|
170
|
-
fieldSchema =
|
|
217
|
+
fieldSchema = import_zod4.z.boolean({ message });
|
|
171
218
|
break;
|
|
172
219
|
case "Dropdown":
|
|
173
|
-
fieldSchema =
|
|
220
|
+
fieldSchema = import_zod4.z.string({ message });
|
|
174
221
|
break;
|
|
175
222
|
case "NumberInput":
|
|
176
|
-
fieldSchema =
|
|
223
|
+
fieldSchema = import_zod4.z.number({ message });
|
|
177
224
|
if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
|
|
178
225
|
if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
|
|
179
226
|
break;
|
|
180
227
|
default:
|
|
181
|
-
fieldSchema =
|
|
228
|
+
fieldSchema = import_zod4.z.any();
|
|
182
229
|
}
|
|
183
230
|
if (!f.isRequired) fieldSchema = fieldSchema.optional();
|
|
184
231
|
acc[name] = fieldSchema;
|
|
185
232
|
return acc;
|
|
186
233
|
}, {});
|
|
187
|
-
return
|
|
234
|
+
return import_zod4.z.object(fields);
|
|
188
235
|
}
|
|
189
236
|
var Form = ({
|
|
190
237
|
validation,
|
|
@@ -193,7 +240,7 @@ var Form = ({
|
|
|
193
240
|
onSubmit,
|
|
194
241
|
onReset
|
|
195
242
|
}) => {
|
|
196
|
-
const schema =
|
|
243
|
+
const schema = (0, import_react2.useMemo)(() => {
|
|
197
244
|
if (!validation || validation.length === 0) return null;
|
|
198
245
|
return generateZodSchema2(validation);
|
|
199
246
|
}, [validation]);
|
|
@@ -202,8 +249,8 @@ var Form = ({
|
|
|
202
249
|
control,
|
|
203
250
|
formState: { errors },
|
|
204
251
|
reset
|
|
205
|
-
} =
|
|
206
|
-
resolver: schema ?
|
|
252
|
+
} = (0, import_react_hook_form2.useForm)({
|
|
253
|
+
resolver: schema ? (0, import_zod3.zodResolver)(schema) : void 0,
|
|
207
254
|
defaultValues
|
|
208
255
|
});
|
|
209
256
|
const formSubmit = (data) => {
|
|
@@ -213,7 +260,7 @@ var Form = ({
|
|
|
213
260
|
reset();
|
|
214
261
|
if (onReset) onReset();
|
|
215
262
|
};
|
|
216
|
-
return /* @__PURE__ */
|
|
263
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
217
264
|
"form",
|
|
218
265
|
{
|
|
219
266
|
onSubmit: handleSubmit(formSubmit),
|
|
@@ -221,20 +268,20 @@ var Form = ({
|
|
|
221
268
|
className: cn(
|
|
222
269
|
"space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
|
|
223
270
|
),
|
|
224
|
-
children: /* @__PURE__ */
|
|
271
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "min-h-[50px]", children: import_react2.default.Children.map(children, (child) => {
|
|
225
272
|
const processChild = (child2) => {
|
|
226
|
-
if (
|
|
273
|
+
if (import_react2.default.isValidElement(child2)) {
|
|
227
274
|
const node = child2.props?.node;
|
|
228
275
|
if (node?.category === "Form Controls") {
|
|
229
276
|
const name = node.properties?.name || "unnamed";
|
|
230
|
-
return /* @__PURE__ */
|
|
231
|
-
|
|
277
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
278
|
+
import_react_hook_form2.Controller,
|
|
232
279
|
{
|
|
233
280
|
name,
|
|
234
281
|
control,
|
|
235
282
|
render: ({ field: controllerField }) => {
|
|
236
283
|
const childElement = child2;
|
|
237
|
-
return
|
|
284
|
+
return import_react2.default.cloneElement(childElement, {
|
|
238
285
|
input: {
|
|
239
286
|
...controllerField,
|
|
240
287
|
value: controllerField.value || "",
|
|
@@ -250,11 +297,11 @@ var Form = ({
|
|
|
250
297
|
}
|
|
251
298
|
if (child2.props?.children) {
|
|
252
299
|
const childElement = child2;
|
|
253
|
-
return
|
|
254
|
-
children:
|
|
300
|
+
return import_react2.default.cloneElement(childElement, {
|
|
301
|
+
children: import_react2.default.Children.map(childElement.props.children, processChild)
|
|
255
302
|
});
|
|
256
303
|
}
|
|
257
|
-
return
|
|
304
|
+
return import_react2.default.cloneElement(child2);
|
|
258
305
|
}
|
|
259
306
|
return child2;
|
|
260
307
|
};
|
|
@@ -276,19 +323,24 @@ function stateReducer(state, action) {
|
|
|
276
323
|
return state;
|
|
277
324
|
}
|
|
278
325
|
}
|
|
279
|
-
|
|
326
|
+
|
|
327
|
+
// src/components/StateManagment/StateContext.tsx
|
|
328
|
+
var import_react3 = require("react");
|
|
329
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
330
|
+
var StateContext = (0, import_react3.createContext)(null);
|
|
280
331
|
function StateProvider({ children, initialState = {} }) {
|
|
281
|
-
const [state, dispatch] =
|
|
282
|
-
return /* @__PURE__ */
|
|
332
|
+
const [state, dispatch] = (0, import_react3.useReducer)(stateReducer, initialState);
|
|
333
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(StateContext.Provider, { value: { state, dispatch }, children });
|
|
283
334
|
}
|
|
284
335
|
function useAppState() {
|
|
285
|
-
return
|
|
336
|
+
return (0, import_react3.useContext)(StateContext);
|
|
286
337
|
}
|
|
287
|
-
|
|
288
|
-
exports
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
338
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
339
|
+
0 && (module.exports = {
|
|
340
|
+
Form,
|
|
341
|
+
FormWrapper,
|
|
342
|
+
StateProvider,
|
|
343
|
+
stateReducer,
|
|
344
|
+
useAppState
|
|
345
|
+
});
|
|
294
346
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/Form/Wrapper.tsx","../src/components/Form/Form.tsx","../src/components/StateManagment/stateReducer.ts","../src/components/StateManagment/StateContext.tsx"],"names":["twMerge","clsx","z","useMemo","useForm","zodResolver","jsx","generateZodSchema","React","child","Controller","createContext","useReducer","useContext"],"mappings":"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","file":"client.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n\r\nexport function getInitials(name: string) {\r\n const words = name.split(' ');\r\n if (words.length === 0) {\r\n return '';\r\n }\r\n if (words.length === 1) {\r\n return words[0].charAt(0);\r\n }\r\n return words[0].charAt(0) + words[1].charAt(0);\r\n}","'use client';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { zodResolver } from '@hookform/resolvers/zod';\r\nimport { useForm, UseFormReturn } from 'react-hook-form';\r\nimport { z } from 'zod';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\ninterface FormWrapperProps<T extends z.ZodObject<any>> {\r\n validation?: any[];\r\n formName?: string;\r\n defaultValues?: Partial<z.infer<T>> | any;\r\n children?: React.ReactNode | ((form: UseFormReturn<z.infer<T>>) => React.ReactNode);\r\n onSubmit?: (data: z.infer<T>) => void;\r\n onReset?: () => void;\r\n}\r\n\r\nfunction generateZodSchema(data: any[]): z.ZodObject<any> {\r\n const fields = data.reduce((acc, f) => {\r\n const name = f.name || 'unnamed';\r\n const message = f.message || `${name} is invalid`;\r\n const passwordLen = f.passwordLength;\r\n\r\n let fieldSchema: any = z.string({ message });\r\n\r\n switch (f.type) {\r\n case 'Text':\r\n case 'Search':\r\n fieldSchema = z.string({ message });\r\n if (f?.min && f?.min !== '') fieldSchema = fieldSchema.min(f.min);\r\n else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });\r\n if (f?.max && f?.max !== '') fieldSchema = fieldSchema.max(f.max);\r\n if (f?.email) fieldSchema = fieldSchema.email();\r\n if (f?.url) fieldSchema = fieldSchema.url();\r\n if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));\r\n break;\r\n case 'Email':\r\n fieldSchema = z.email({ message });\r\n break;\r\n case 'Password':\r\n fieldSchema = z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });\r\n break;\r\n case 'Phone':\r\n fieldSchema = z.string().transform(val => val.replace(/\\D/g, '')).transform(val => val.slice(-10)).refine(val => {\r\n return val.length === 10;\r\n }, {\r\n message: 'Phone number must be 10 digits long',\r\n });\r\n break;\r\n case 'DatePicker':\r\n fieldSchema = z.iso.date({ message });\r\n break;\r\n case 'FileInput':\r\n fieldSchema = z.instanceof(File, { message: 'Please select a file' });\r\n if (f?.maxSize) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => file.size <= f.maxSize,\r\n { message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }\r\n );\r\n }\r\n if (f?.acceptedTypes) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => f.acceptedTypes.includes(file.type),\r\n { message: `File type must be one of: ${f.acceptedTypes.join(', ')}` }\r\n );\r\n }\r\n break;\r\n case 'Checkbox':\r\n fieldSchema = z.boolean({ message });\r\n break;\r\n case 'Dropdown':\r\n fieldSchema = z.string({ message });\r\n break;\r\n case 'NumberInput':\r\n fieldSchema = z.number({ message });\r\n if (f?.min !== undefined) fieldSchema = fieldSchema.min(f.min);\r\n if (f?.max !== undefined) fieldSchema = fieldSchema.max(f.max);\r\n break;\r\n default:\r\n fieldSchema = z.any();\r\n }\r\n\r\n if (!f.isRequired) fieldSchema = fieldSchema.optional();\r\n\r\n acc[name] = fieldSchema;\r\n return acc;\r\n }, {} as Record<string, any>);\r\n return z.object(fields);\r\n}\r\n\r\nconst FormWrapper = <T extends z.ZodObject<any>>({\r\n validation,\r\n defaultValues,\r\n children,\r\n onSubmit,\r\n onReset,\r\n}: FormWrapperProps<T>) => {\r\n\r\n const schema = useMemo(() => {\r\n if (!validation || validation.length === 0) return null;\r\n return generateZodSchema(validation);\r\n }, [validation]);\r\n\r\n type FormData = z.infer<T>;\r\n\r\n const form = useForm<FormData>({\r\n resolver: schema ? zodResolver(schema) as any : undefined,\r\n defaultValues,\r\n });\r\n\r\n const formSubmit = (data: FormData) => {\r\n if (onSubmit) onSubmit(data);\r\n };\r\n\r\n const handleReset = () => {\r\n form.reset();\r\n if (onReset) onReset();\r\n };\r\n\r\n return (\r\n <form\r\n onSubmit={form.handleSubmit(formSubmit)}\r\n onReset={handleReset}\r\n className={cn(\r\n 'space-y-4 min-h-[100px] h-auto flex justify-between flex-col'\r\n )}\r\n >\r\n <div className='min-h-[50px]'>\r\n {typeof children === \"function\"\r\n ? (children as (form: UseFormReturn<FormData>) => React.ReactNode)(form)\r\n : children}\r\n </div>\r\n </form>\r\n );\r\n};\r\n\r\nexport default FormWrapper;","'use client';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { zodResolver } from '@hookform/resolvers/zod';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { z } from 'zod';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\ninterface FormProps<T extends z.ZodObject<any>> {\r\n validation?: any[];\r\n formName?: string;\r\n defaultValues?: Partial<z.infer<T>> | any;\r\n children?: React.ReactNode;\r\n onSubmit?: (data: z.infer<T>) => void;\r\n onReset?: () => void;\r\n}\r\n\r\nfunction generateZodSchema(data: any[]): z.ZodObject<any> {\r\n const fields = data.reduce((acc, f) => {\r\n const name = f.name || 'unnamed';\r\n const message = f.message || `${name} is invalid`;\r\n const passwordLen = f.passwordLength;\r\n\r\n let fieldSchema: any = z.string({ message });\r\n\r\n switch (f.type) {\r\n case 'Text':\r\n case 'Search':\r\n fieldSchema = z.string({ message });\r\n if (f?.min && f?.min !== '') fieldSchema = fieldSchema.min(f.min);\r\n else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });\r\n if (f?.max && f?.max !== '') fieldSchema = fieldSchema.max(f.max);\r\n if (f?.email) fieldSchema = fieldSchema.email();\r\n if (f?.url) fieldSchema = fieldSchema.url();\r\n if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));\r\n break;\r\n case 'Email':\r\n fieldSchema = z.email({ message });\r\n break;\r\n case 'Password':\r\n fieldSchema = z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });\r\n break;\r\n case 'Phone':\r\n fieldSchema = z.string().transform(val => val.replace(/\\D/g, '')).transform(val => val.slice(-10)).refine(val => {\r\n return val.length === 10;\r\n }, {\r\n message: 'Phone number must be 10 digits long',\r\n });\r\n break;\r\n case 'DatePicker':\r\n fieldSchema = z.iso.date({ message });\r\n break;\r\n case 'FileInput':\r\n fieldSchema = z.instanceof(File, { message: 'Please select a file' });\r\n if (f?.maxSize) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => file.size <= f.maxSize,\r\n { message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }\r\n );\r\n }\r\n if (f?.acceptedTypes) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => f.acceptedTypes.includes(file.type),\r\n { message: `File type must be one of: ${f.acceptedTypes.join(', ')}` }\r\n );\r\n }\r\n break;\r\n case 'Checkbox':\r\n fieldSchema = z.boolean({ message });\r\n break;\r\n case 'Dropdown':\r\n fieldSchema = z.string({ message });\r\n break;\r\n case 'NumberInput':\r\n fieldSchema = z.number({ message });\r\n if (f?.min !== undefined) fieldSchema = fieldSchema.min(f.min);\r\n if (f?.max !== undefined) fieldSchema = fieldSchema.max(f.max);\r\n break;\r\n default:\r\n fieldSchema = z.any();\r\n }\r\n\r\n if (!f.isRequired) fieldSchema = fieldSchema.optional();\r\n\r\n acc[name] = fieldSchema;\r\n return acc;\r\n }, {} as Record<string, any>);\r\n return z.object(fields);\r\n}\r\n\r\nconst Form = <T extends z.ZodObject<any>>({\r\n validation,\r\n defaultValues,\r\n children,\r\n onSubmit,\r\n onReset,\r\n}: FormProps<T>) => {\r\n\r\n const schema = useMemo(() => {\r\n if (!validation || validation.length === 0) return null;\r\n return generateZodSchema(validation);\r\n }, [validation]);\r\n\r\n type FormData = z.infer<T>;\r\n\r\n const {\r\n handleSubmit,\r\n control,\r\n formState: { errors },\r\n reset,\r\n } = useForm<FormData>({\r\n resolver: schema ? zodResolver(schema) as any : undefined,\r\n defaultValues,\r\n });\r\n\r\n const formSubmit = (data: FormData) => {\r\n if (onSubmit) onSubmit(data);\r\n };\r\n\r\n const handleReset = () => {\r\n reset();\r\n if (onReset) onReset();\r\n };\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit(formSubmit)}\r\n onReset={handleReset}\r\n className={cn(\r\n 'space-y-4 min-h-[100px] h-auto flex justify-between flex-col'\r\n )}\r\n >\r\n <div className='min-h-[50px]'>\r\n {React.Children.map(children, child => {\r\n const processChild = (child: React.ReactNode): React.ReactNode => {\r\n if (React.isValidElement(child)) {\r\n const node = (child.props as any)?.node;\r\n\r\n if (node?.category === 'Form Controls') {\r\n const name = node.properties?.name || 'unnamed';\r\n return (\r\n <div key={node.id} className=\"flex flex-col\">\r\n <Controller\r\n name={name}\r\n control={control}\r\n render={({ field: controllerField }) => {\r\n const childElement = child as React.ReactElement<{ children?: React.ReactNode, input?: any }>;\r\n return React.cloneElement(childElement, {\r\n input: {\r\n ...controllerField,\r\n value: controllerField.value || '',\r\n hasFormContainer: true,\r\n validateOnMount: true,\r\n errorMessage: errors[name]?.message || null\r\n },\r\n children: undefined\r\n });\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n // Recursively process children of this element\r\n if ((child as React.ReactElement<{ children?: React.ReactNode }>).props?.children) {\r\n const childElement = child as React.ReactElement<{ children?: React.ReactNode }>;\r\n return React.cloneElement(childElement, {\r\n children: React.Children.map(childElement.props.children, processChild),\r\n });\r\n }\r\n\r\n return React.cloneElement(child);\r\n }\r\n return child;\r\n };\r\n\r\n return processChild(child);\r\n })}\r\n </div>\r\n </form>\r\n );\r\n};\r\n\r\nexport default Form;","export type CanvasState = Record<string, any>;\r\n\r\nexport type CanvasAction =\r\n | { type: 'SET_STATE'; key: string; value: any }\r\n | { type: 'SET_MULTIPLE_STATES'; values: Record<string, any> };\r\n\r\nexport function stateReducer(state: CanvasState, action: CanvasAction): CanvasState {\r\n switch (action.type) {\r\n case 'SET_STATE':\r\n return { ...state, [action.key]: action.value };\r\n\r\n case 'SET_MULTIPLE_STATES':\r\n return { ...state, ...action.values };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","'use client';\r\nimport React, { createContext, useContext, useReducer } from 'react';\r\n\r\nimport { stateReducer, CanvasState } from './stateReducer';\r\n\r\nconst StateContext = createContext<any>(null);\r\n\r\nexport function StateProvider({ children, initialState = {} }: { children: React.ReactNode, initialState?: CanvasState }) {\r\n const [state, dispatch] = useReducer(stateReducer, initialState);\r\n return (\r\n <StateContext.Provider value={{ state, dispatch }}>\r\n {children}\r\n </StateContext.Provider>\r\n );\r\n}\r\n\r\nexport function useAppState() {\r\n return useContext(StateContext);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/components/Form/Wrapper.tsx","../src/lib/utils.ts","../src/components/Form/Form.tsx","../src/components/StateManagment/stateReducer.ts","../src/components/StateManagment/StateContext.tsx"],"sourcesContent":["'use client';\r\n\r\nexport { default as FormWrapper } from './components/Form/Wrapper';\r\nexport { default as Form } from './components/Form/Form';\r\nexport { stateReducer } from './components/StateManagment/stateReducer';\r\nexport * from './components/StateManagment/StateContext';","'use client';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { zodResolver } from '@hookform/resolvers/zod';\r\nimport { useForm, UseFormReturn } from 'react-hook-form';\r\nimport { z } from 'zod';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\ninterface FormWrapperProps<T extends z.ZodObject<any>> {\r\n validation?: any[];\r\n formName?: string;\r\n defaultValues?: Partial<z.infer<T>> | any;\r\n children?: React.ReactNode | ((form: UseFormReturn<z.infer<T>>) => React.ReactNode);\r\n onSubmit?: (data: z.infer<T>) => void;\r\n onReset?: () => void;\r\n}\r\n\r\nfunction generateZodSchema(data: any[]): z.ZodObject<any> {\r\n const fields = data.reduce((acc, f) => {\r\n const name = f.name || 'unnamed';\r\n const message = f.message || `${name} is invalid`;\r\n const passwordLen = f.passwordLength;\r\n\r\n let fieldSchema: any = z.string({ message });\r\n\r\n switch (f.type) {\r\n case 'Text':\r\n case 'Search':\r\n fieldSchema = z.string({ message });\r\n if (f?.min && f?.min !== '') fieldSchema = fieldSchema.min(f.min);\r\n else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });\r\n if (f?.max && f?.max !== '') fieldSchema = fieldSchema.max(f.max);\r\n if (f?.email) fieldSchema = fieldSchema.email();\r\n if (f?.url) fieldSchema = fieldSchema.url();\r\n if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));\r\n break;\r\n case 'Email':\r\n fieldSchema = z.email({ message });\r\n break;\r\n case 'Password':\r\n fieldSchema = z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });\r\n break;\r\n case 'Phone':\r\n fieldSchema = z.string().transform(val => val.replace(/\\D/g, '')).transform(val => val.slice(-10)).refine(val => {\r\n return val.length === 10;\r\n }, {\r\n message: 'Phone number must be 10 digits long',\r\n });\r\n break;\r\n case 'DatePicker':\r\n fieldSchema = z.iso.date({ message });\r\n break;\r\n case 'FileInput':\r\n fieldSchema = z.instanceof(File, { message: 'Please select a file' });\r\n if (f?.maxSize) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => file.size <= f.maxSize,\r\n { message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }\r\n );\r\n }\r\n if (f?.acceptedTypes) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => f.acceptedTypes.includes(file.type),\r\n { message: `File type must be one of: ${f.acceptedTypes.join(', ')}` }\r\n );\r\n }\r\n break;\r\n case 'Checkbox':\r\n fieldSchema = z.boolean({ message });\r\n break;\r\n case 'Dropdown':\r\n fieldSchema = z.string({ message });\r\n break;\r\n case 'NumberInput':\r\n fieldSchema = z.number({ message });\r\n if (f?.min !== undefined) fieldSchema = fieldSchema.min(f.min);\r\n if (f?.max !== undefined) fieldSchema = fieldSchema.max(f.max);\r\n break;\r\n default:\r\n fieldSchema = z.any();\r\n }\r\n\r\n if (!f.isRequired) fieldSchema = fieldSchema.optional();\r\n\r\n acc[name] = fieldSchema;\r\n return acc;\r\n }, {} as Record<string, any>);\r\n return z.object(fields);\r\n}\r\n\r\nconst FormWrapper = <T extends z.ZodObject<any>>({\r\n validation,\r\n defaultValues,\r\n children,\r\n onSubmit,\r\n onReset,\r\n}: FormWrapperProps<T>) => {\r\n\r\n const schema = useMemo(() => {\r\n if (!validation || validation.length === 0) return null;\r\n return generateZodSchema(validation);\r\n }, [validation]);\r\n\r\n type FormData = z.infer<T>;\r\n\r\n const form = useForm<FormData>({\r\n resolver: schema ? zodResolver(schema) as any : undefined,\r\n defaultValues,\r\n });\r\n\r\n const formSubmit = (data: FormData) => {\r\n if (onSubmit) onSubmit(data);\r\n };\r\n\r\n const handleReset = () => {\r\n form.reset();\r\n if (onReset) onReset();\r\n };\r\n\r\n return (\r\n <form\r\n onSubmit={form.handleSubmit(formSubmit)}\r\n onReset={handleReset}\r\n className={cn(\r\n 'space-y-4 min-h-[100px] h-auto flex justify-between flex-col'\r\n )}\r\n >\r\n <div className='min-h-[50px]'>\r\n {typeof children === \"function\"\r\n ? (children as (form: UseFormReturn<FormData>) => React.ReactNode)(form)\r\n : children}\r\n </div>\r\n </form>\r\n );\r\n};\r\n\r\nexport default FormWrapper;","import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n\r\nexport function getInitials(name: string) {\r\n const words = name.split(' ');\r\n if (words.length === 0) {\r\n return '';\r\n }\r\n if (words.length === 1) {\r\n return words[0].charAt(0);\r\n }\r\n return words[0].charAt(0) + words[1].charAt(0);\r\n}","'use client';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { zodResolver } from '@hookform/resolvers/zod';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { z } from 'zod';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\ninterface FormProps<T extends z.ZodObject<any>> {\r\n validation?: any[];\r\n formName?: string;\r\n defaultValues?: Partial<z.infer<T>> | any;\r\n children?: React.ReactNode;\r\n onSubmit?: (data: z.infer<T>) => void;\r\n onReset?: () => void;\r\n}\r\n\r\nfunction generateZodSchema(data: any[]): z.ZodObject<any> {\r\n const fields = data.reduce((acc, f) => {\r\n const name = f.name || 'unnamed';\r\n const message = f.message || `${name} is invalid`;\r\n const passwordLen = f.passwordLength;\r\n\r\n let fieldSchema: any = z.string({ message });\r\n\r\n switch (f.type) {\r\n case 'Text':\r\n case 'Search':\r\n fieldSchema = z.string({ message });\r\n if (f?.min && f?.min !== '') fieldSchema = fieldSchema.min(f.min);\r\n else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });\r\n if (f?.max && f?.max !== '') fieldSchema = fieldSchema.max(f.max);\r\n if (f?.email) fieldSchema = fieldSchema.email();\r\n if (f?.url) fieldSchema = fieldSchema.url();\r\n if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));\r\n break;\r\n case 'Email':\r\n fieldSchema = z.email({ message });\r\n break;\r\n case 'Password':\r\n fieldSchema = z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });\r\n break;\r\n case 'Phone':\r\n fieldSchema = z.string().transform(val => val.replace(/\\D/g, '')).transform(val => val.slice(-10)).refine(val => {\r\n return val.length === 10;\r\n }, {\r\n message: 'Phone number must be 10 digits long',\r\n });\r\n break;\r\n case 'DatePicker':\r\n fieldSchema = z.iso.date({ message });\r\n break;\r\n case 'FileInput':\r\n fieldSchema = z.instanceof(File, { message: 'Please select a file' });\r\n if (f?.maxSize) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => file.size <= f.maxSize,\r\n { message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }\r\n );\r\n }\r\n if (f?.acceptedTypes) {\r\n fieldSchema = fieldSchema.refine(\r\n (file: File) => f.acceptedTypes.includes(file.type),\r\n { message: `File type must be one of: ${f.acceptedTypes.join(', ')}` }\r\n );\r\n }\r\n break;\r\n case 'Checkbox':\r\n fieldSchema = z.boolean({ message });\r\n break;\r\n case 'Dropdown':\r\n fieldSchema = z.string({ message });\r\n break;\r\n case 'NumberInput':\r\n fieldSchema = z.number({ message });\r\n if (f?.min !== undefined) fieldSchema = fieldSchema.min(f.min);\r\n if (f?.max !== undefined) fieldSchema = fieldSchema.max(f.max);\r\n break;\r\n default:\r\n fieldSchema = z.any();\r\n }\r\n\r\n if (!f.isRequired) fieldSchema = fieldSchema.optional();\r\n\r\n acc[name] = fieldSchema;\r\n return acc;\r\n }, {} as Record<string, any>);\r\n return z.object(fields);\r\n}\r\n\r\nconst Form = <T extends z.ZodObject<any>>({\r\n validation,\r\n defaultValues,\r\n children,\r\n onSubmit,\r\n onReset,\r\n}: FormProps<T>) => {\r\n\r\n const schema = useMemo(() => {\r\n if (!validation || validation.length === 0) return null;\r\n return generateZodSchema(validation);\r\n }, [validation]);\r\n\r\n type FormData = z.infer<T>;\r\n\r\n const {\r\n handleSubmit,\r\n control,\r\n formState: { errors },\r\n reset,\r\n } = useForm<FormData>({\r\n resolver: schema ? zodResolver(schema) as any : undefined,\r\n defaultValues,\r\n });\r\n\r\n const formSubmit = (data: FormData) => {\r\n if (onSubmit) onSubmit(data);\r\n };\r\n\r\n const handleReset = () => {\r\n reset();\r\n if (onReset) onReset();\r\n };\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit(formSubmit)}\r\n onReset={handleReset}\r\n className={cn(\r\n 'space-y-4 min-h-[100px] h-auto flex justify-between flex-col'\r\n )}\r\n >\r\n <div className='min-h-[50px]'>\r\n {React.Children.map(children, child => {\r\n const processChild = (child: React.ReactNode): React.ReactNode => {\r\n if (React.isValidElement(child)) {\r\n const node = (child.props as any)?.node;\r\n\r\n if (node?.category === 'Form Controls') {\r\n const name = node.properties?.name || 'unnamed';\r\n return (\r\n <div key={node.id} className=\"flex flex-col\">\r\n <Controller\r\n name={name}\r\n control={control}\r\n render={({ field: controllerField }) => {\r\n const childElement = child as React.ReactElement<{ children?: React.ReactNode, input?: any }>;\r\n return React.cloneElement(childElement, {\r\n input: {\r\n ...controllerField,\r\n value: controllerField.value || '',\r\n hasFormContainer: true,\r\n validateOnMount: true,\r\n errorMessage: errors[name]?.message || null\r\n },\r\n children: undefined\r\n });\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n // Recursively process children of this element\r\n if ((child as React.ReactElement<{ children?: React.ReactNode }>).props?.children) {\r\n const childElement = child as React.ReactElement<{ children?: React.ReactNode }>;\r\n return React.cloneElement(childElement, {\r\n children: React.Children.map(childElement.props.children, processChild),\r\n });\r\n }\r\n\r\n return React.cloneElement(child);\r\n }\r\n return child;\r\n };\r\n\r\n return processChild(child);\r\n })}\r\n </div>\r\n </form>\r\n );\r\n};\r\n\r\nexport default Form;","export type CanvasState = Record<string, any>;\r\n\r\nexport type CanvasAction =\r\n | { type: 'SET_STATE'; key: string; value: any }\r\n | { type: 'SET_MULTIPLE_STATES'; values: Record<string, any> };\r\n\r\nexport function stateReducer(state: CanvasState, action: CanvasAction): CanvasState {\r\n switch (action.type) {\r\n case 'SET_STATE':\r\n return { ...state, [action.key]: action.value };\r\n\r\n case 'SET_MULTIPLE_STATES':\r\n return { ...state, ...action.values };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","'use client';\r\nimport React, { createContext, useContext, useReducer } from 'react';\r\n\r\nimport { stateReducer, CanvasState } from './stateReducer';\r\n\r\nconst StateContext = createContext<any>(null);\r\n\r\nexport function StateProvider({ children, initialState = {} }: { children: React.ReactNode, initialState?: CanvasState }) {\r\n const [state, dispatch] = useReducer(stateReducer, initialState);\r\n return (\r\n <StateContext.Provider value={{ state, dispatch }}>\r\n {children}\r\n </StateContext.Provider>\r\n );\r\n}\r\n\r\nexport function useAppState() {\r\n return useContext(StateContext);\r\n}\r\n"],"mappings":"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","names":["import_zod","import_react","import_zod","import_react_hook_form","import_jsx_runtime","generateZodSchema","React","child","import_react","import_jsx_runtime"]}
|