@algorithm-shift/design-system 1.2.44 → 1.2.45
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-QZ2QO7MJ.mjs +24 -0
- package/dist/chunk-QZ2QO7MJ.mjs.map +1 -0
- package/dist/client.d.mts +21 -8
- package/dist/client.d.ts +21 -8
- package/dist/client.js +100 -334
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +292 -4
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +1 -17
- package/dist/index.d.ts +1 -17
- package/dist/index.js +3 -299
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2784 -51
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-JFDQZCMW.mjs +0 -3130
- package/dist/chunk-JFDQZCMW.mjs.map +0 -1
package/dist/client.mjs
CHANGED
|
@@ -1,10 +1,298 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
"use client";
|
|
2
3
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
cn
|
|
5
|
+
} from "./chunk-QZ2QO7MJ.mjs";
|
|
6
|
+
|
|
7
|
+
// src/components/Form/Wrapper.tsx
|
|
8
|
+
import { useMemo } from "react";
|
|
9
|
+
import { zodResolver } from "@hookform/resolvers/zod";
|
|
10
|
+
import { useForm } from "react-hook-form";
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
function generateZodSchema(data) {
|
|
14
|
+
const fields = data.reduce((acc, f) => {
|
|
15
|
+
const name = f.name || "unnamed";
|
|
16
|
+
const message = f.message || `${name} is invalid`;
|
|
17
|
+
const passwordLen = f.passwordLength;
|
|
18
|
+
let fieldSchema = z.string({ message });
|
|
19
|
+
switch (f.type) {
|
|
20
|
+
case "Text":
|
|
21
|
+
case "Search":
|
|
22
|
+
fieldSchema = z.string({ message });
|
|
23
|
+
if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
|
|
24
|
+
else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
|
|
25
|
+
if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
|
|
26
|
+
if (f?.email) fieldSchema = fieldSchema.email();
|
|
27
|
+
if (f?.url) fieldSchema = fieldSchema.url();
|
|
28
|
+
if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
|
|
29
|
+
break;
|
|
30
|
+
case "Email":
|
|
31
|
+
fieldSchema = z.email({ message });
|
|
32
|
+
break;
|
|
33
|
+
case "Password":
|
|
34
|
+
fieldSchema = z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
|
|
35
|
+
break;
|
|
36
|
+
case "Phone":
|
|
37
|
+
fieldSchema = z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
|
|
38
|
+
return val.length === 10;
|
|
39
|
+
}, {
|
|
40
|
+
message: "Phone number must be 10 digits long"
|
|
41
|
+
});
|
|
42
|
+
break;
|
|
43
|
+
case "DatePicker":
|
|
44
|
+
fieldSchema = z.iso.date({ message });
|
|
45
|
+
break;
|
|
46
|
+
case "FileInput":
|
|
47
|
+
fieldSchema = z.instanceof(File, { message: "Please select a file" });
|
|
48
|
+
if (f?.maxSize) {
|
|
49
|
+
fieldSchema = fieldSchema.refine(
|
|
50
|
+
(file) => file.size <= f.maxSize,
|
|
51
|
+
{ message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
if (f?.acceptedTypes) {
|
|
55
|
+
fieldSchema = fieldSchema.refine(
|
|
56
|
+
(file) => f.acceptedTypes.includes(file.type),
|
|
57
|
+
{ message: `File type must be one of: ${f.acceptedTypes.join(", ")}` }
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
case "Checkbox":
|
|
62
|
+
fieldSchema = z.boolean({ message });
|
|
63
|
+
break;
|
|
64
|
+
case "Dropdown":
|
|
65
|
+
fieldSchema = z.string({ message });
|
|
66
|
+
break;
|
|
67
|
+
case "NumberInput":
|
|
68
|
+
fieldSchema = z.number({ message });
|
|
69
|
+
if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
|
|
70
|
+
if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
|
|
71
|
+
break;
|
|
72
|
+
default:
|
|
73
|
+
fieldSchema = z.any();
|
|
74
|
+
}
|
|
75
|
+
if (!f.isRequired) fieldSchema = fieldSchema.optional();
|
|
76
|
+
acc[name] = fieldSchema;
|
|
77
|
+
return acc;
|
|
78
|
+
}, {});
|
|
79
|
+
return z.object(fields);
|
|
80
|
+
}
|
|
81
|
+
var FormWrapper = ({
|
|
82
|
+
validation,
|
|
83
|
+
defaultValues,
|
|
84
|
+
children,
|
|
85
|
+
onSubmit,
|
|
86
|
+
onReset
|
|
87
|
+
}) => {
|
|
88
|
+
const schema = useMemo(() => {
|
|
89
|
+
if (!validation || validation.length === 0) return null;
|
|
90
|
+
return generateZodSchema(validation);
|
|
91
|
+
}, [validation]);
|
|
92
|
+
const form = useForm({
|
|
93
|
+
resolver: schema ? zodResolver(schema) : void 0,
|
|
94
|
+
defaultValues
|
|
95
|
+
});
|
|
96
|
+
const formSubmit = (data) => {
|
|
97
|
+
if (onSubmit) onSubmit(data);
|
|
98
|
+
};
|
|
99
|
+
const handleReset = () => {
|
|
100
|
+
form.reset();
|
|
101
|
+
if (onReset) onReset();
|
|
102
|
+
};
|
|
103
|
+
return /* @__PURE__ */ jsx(
|
|
104
|
+
"form",
|
|
105
|
+
{
|
|
106
|
+
onSubmit: form.handleSubmit(formSubmit),
|
|
107
|
+
onReset: handleReset,
|
|
108
|
+
className: cn(
|
|
109
|
+
"space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
|
|
110
|
+
),
|
|
111
|
+
children: /* @__PURE__ */ jsx("div", { className: "min-h-[50px]", children: typeof children === "function" ? children(form) : children })
|
|
112
|
+
}
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
var Wrapper_default = FormWrapper;
|
|
116
|
+
|
|
117
|
+
// src/components/Form/Form.tsx
|
|
118
|
+
import React2, { useMemo as useMemo2 } from "react";
|
|
119
|
+
import { zodResolver as zodResolver2 } from "@hookform/resolvers/zod";
|
|
120
|
+
import { useForm as useForm2, Controller } from "react-hook-form";
|
|
121
|
+
import { z as z2 } from "zod";
|
|
122
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
123
|
+
function generateZodSchema2(data) {
|
|
124
|
+
const fields = data.reduce((acc, f) => {
|
|
125
|
+
const name = f.name || "unnamed";
|
|
126
|
+
const message = f.message || `${name} is invalid`;
|
|
127
|
+
const passwordLen = f.passwordLength;
|
|
128
|
+
let fieldSchema = z2.string({ message });
|
|
129
|
+
switch (f.type) {
|
|
130
|
+
case "Text":
|
|
131
|
+
case "Search":
|
|
132
|
+
fieldSchema = z2.string({ message });
|
|
133
|
+
if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
|
|
134
|
+
else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
|
|
135
|
+
if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
|
|
136
|
+
if (f?.email) fieldSchema = fieldSchema.email();
|
|
137
|
+
if (f?.url) fieldSchema = fieldSchema.url();
|
|
138
|
+
if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
|
|
139
|
+
break;
|
|
140
|
+
case "Email":
|
|
141
|
+
fieldSchema = z2.email({ message });
|
|
142
|
+
break;
|
|
143
|
+
case "Password":
|
|
144
|
+
fieldSchema = z2.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
|
|
145
|
+
break;
|
|
146
|
+
case "Phone":
|
|
147
|
+
fieldSchema = z2.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
|
|
148
|
+
return val.length === 10;
|
|
149
|
+
}, {
|
|
150
|
+
message: "Phone number must be 10 digits long"
|
|
151
|
+
});
|
|
152
|
+
break;
|
|
153
|
+
case "DatePicker":
|
|
154
|
+
fieldSchema = z2.iso.date({ message });
|
|
155
|
+
break;
|
|
156
|
+
case "FileInput":
|
|
157
|
+
fieldSchema = z2.instanceof(File, { message: "Please select a file" });
|
|
158
|
+
if (f?.maxSize) {
|
|
159
|
+
fieldSchema = fieldSchema.refine(
|
|
160
|
+
(file) => file.size <= f.maxSize,
|
|
161
|
+
{ message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
if (f?.acceptedTypes) {
|
|
165
|
+
fieldSchema = fieldSchema.refine(
|
|
166
|
+
(file) => f.acceptedTypes.includes(file.type),
|
|
167
|
+
{ message: `File type must be one of: ${f.acceptedTypes.join(", ")}` }
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
case "Checkbox":
|
|
172
|
+
fieldSchema = z2.boolean({ message });
|
|
173
|
+
break;
|
|
174
|
+
case "Dropdown":
|
|
175
|
+
fieldSchema = z2.string({ message });
|
|
176
|
+
break;
|
|
177
|
+
case "NumberInput":
|
|
178
|
+
fieldSchema = z2.number({ message });
|
|
179
|
+
if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
|
|
180
|
+
if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
|
|
181
|
+
break;
|
|
182
|
+
default:
|
|
183
|
+
fieldSchema = z2.any();
|
|
184
|
+
}
|
|
185
|
+
if (!f.isRequired) fieldSchema = fieldSchema.optional();
|
|
186
|
+
acc[name] = fieldSchema;
|
|
187
|
+
return acc;
|
|
188
|
+
}, {});
|
|
189
|
+
return z2.object(fields);
|
|
190
|
+
}
|
|
191
|
+
var Form = ({
|
|
192
|
+
validation,
|
|
193
|
+
defaultValues,
|
|
194
|
+
children,
|
|
195
|
+
onSubmit,
|
|
196
|
+
onReset
|
|
197
|
+
}) => {
|
|
198
|
+
const schema = useMemo2(() => {
|
|
199
|
+
if (!validation || validation.length === 0) return null;
|
|
200
|
+
return generateZodSchema2(validation);
|
|
201
|
+
}, [validation]);
|
|
202
|
+
const {
|
|
203
|
+
handleSubmit,
|
|
204
|
+
control,
|
|
205
|
+
formState: { errors },
|
|
206
|
+
reset
|
|
207
|
+
} = useForm2({
|
|
208
|
+
resolver: schema ? zodResolver2(schema) : void 0,
|
|
209
|
+
defaultValues
|
|
210
|
+
});
|
|
211
|
+
const formSubmit = (data) => {
|
|
212
|
+
if (onSubmit) onSubmit(data);
|
|
213
|
+
};
|
|
214
|
+
const handleReset = () => {
|
|
215
|
+
reset();
|
|
216
|
+
if (onReset) onReset();
|
|
217
|
+
};
|
|
218
|
+
return /* @__PURE__ */ jsx2(
|
|
219
|
+
"form",
|
|
220
|
+
{
|
|
221
|
+
onSubmit: handleSubmit(formSubmit),
|
|
222
|
+
onReset: handleReset,
|
|
223
|
+
className: cn(
|
|
224
|
+
"space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
|
|
225
|
+
),
|
|
226
|
+
children: /* @__PURE__ */ jsx2("div", { className: "min-h-[50px]", children: React2.Children.map(children, (child) => {
|
|
227
|
+
const processChild = (child2) => {
|
|
228
|
+
if (React2.isValidElement(child2)) {
|
|
229
|
+
const node = child2.props?.node;
|
|
230
|
+
if (node?.category === "Form Controls") {
|
|
231
|
+
const name = node.properties?.name || "unnamed";
|
|
232
|
+
return /* @__PURE__ */ jsx2("div", { className: "flex flex-col", children: /* @__PURE__ */ jsx2(
|
|
233
|
+
Controller,
|
|
234
|
+
{
|
|
235
|
+
name,
|
|
236
|
+
control,
|
|
237
|
+
render: ({ field: controllerField }) => {
|
|
238
|
+
const childElement = child2;
|
|
239
|
+
return React2.cloneElement(childElement, {
|
|
240
|
+
input: {
|
|
241
|
+
...controllerField,
|
|
242
|
+
value: controllerField.value || "",
|
|
243
|
+
hasFormContainer: true,
|
|
244
|
+
validateOnMount: true,
|
|
245
|
+
errorMessage: errors[name]?.message || null
|
|
246
|
+
},
|
|
247
|
+
children: void 0
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
) }, node.id);
|
|
252
|
+
}
|
|
253
|
+
if (child2.props?.children) {
|
|
254
|
+
const childElement = child2;
|
|
255
|
+
return React2.cloneElement(childElement, {
|
|
256
|
+
children: React2.Children.map(childElement.props.children, processChild)
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
return React2.cloneElement(child2);
|
|
260
|
+
}
|
|
261
|
+
return child2;
|
|
262
|
+
};
|
|
263
|
+
return processChild(child);
|
|
264
|
+
}) })
|
|
265
|
+
}
|
|
266
|
+
);
|
|
267
|
+
};
|
|
268
|
+
var Form_default = Form;
|
|
269
|
+
|
|
270
|
+
// src/components/StateManagment/stateReducer.ts
|
|
271
|
+
function stateReducer(state, action) {
|
|
272
|
+
switch (action.type) {
|
|
273
|
+
case "SET_STATE":
|
|
274
|
+
return { ...state, [action.key]: action.value };
|
|
275
|
+
default:
|
|
276
|
+
return state;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// src/components/StateManagment/StateContext.tsx
|
|
281
|
+
import { createContext, useContext, useReducer } from "react";
|
|
282
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
283
|
+
var StateContext = createContext(null);
|
|
284
|
+
function StateProvider({ children }) {
|
|
285
|
+
const [state, dispatch] = useReducer(stateReducer, {});
|
|
286
|
+
return /* @__PURE__ */ jsx3(StateContext.Provider, { value: { state, dispatch }, children });
|
|
287
|
+
}
|
|
288
|
+
function useAppState() {
|
|
289
|
+
return useContext(StateContext);
|
|
290
|
+
}
|
|
6
291
|
export {
|
|
7
292
|
Form_default as Form,
|
|
8
|
-
Wrapper_default as FormWrapper
|
|
293
|
+
Wrapper_default as FormWrapper,
|
|
294
|
+
StateProvider,
|
|
295
|
+
stateReducer,
|
|
296
|
+
useAppState
|
|
9
297
|
};
|
|
10
298
|
//# sourceMappingURL=client.mjs.map
|
package/dist/client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Form/Wrapper.tsx","../src/components/Form/Form.tsx","../src/components/StateManagment/stateReducer.ts","../src/components/StateManagment/StateContext.tsx"],"sourcesContent":["'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\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 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 }: { children: React.ReactNode }) {\r\n const [state, dispatch] = useReducer(stateReducer, {} as CanvasState);\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":["React","useMemo","zodResolver","useForm","z","jsx","generateZodSchema","z","useMemo","useForm","zodResolver","React","child","jsx"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React$1 from 'react';
|
|
3
|
-
export { Form, FormWrapper } from './client.mjs';
|
|
4
3
|
import { ClassValue } from 'clsx';
|
|
5
|
-
import 'zod';
|
|
6
|
-
import 'react-hook-form';
|
|
7
4
|
|
|
8
5
|
interface ElementProps {
|
|
9
6
|
children?: React.ReactNode;
|
|
@@ -284,20 +281,7 @@ type SonnerToastProps = {
|
|
|
284
281
|
};
|
|
285
282
|
declare function showSonnerToast({ title, description, variant, duration, actionLabel, onAction, }: SonnerToastProps): void;
|
|
286
283
|
|
|
287
|
-
declare function StateProvider({ children }: {
|
|
288
|
-
children: React$1.ReactNode;
|
|
289
|
-
}): react_jsx_runtime.JSX.Element;
|
|
290
|
-
declare function useAppState(): any;
|
|
291
|
-
|
|
292
|
-
type CanvasState = Record<string, any>;
|
|
293
|
-
type CanvasAction = {
|
|
294
|
-
type: 'SET_STATE';
|
|
295
|
-
key: string;
|
|
296
|
-
value: any;
|
|
297
|
-
};
|
|
298
|
-
declare function stateReducer(state: CanvasState, action: CanvasAction): CanvasState;
|
|
299
|
-
|
|
300
284
|
declare function cn(...inputs: ClassValue[]): string;
|
|
301
285
|
declare function getInitials(name: string): string;
|
|
302
286
|
|
|
303
|
-
export { ChartComponent as BarChart, Breadcrumb, ButtonWrapper as Button, SplitButton as ButtonGroup, CheckboxInput as Checkbox, Container, DatePicker, DateRange, Dropdown, EmailInput as Email, EmailComposer, FileInput, Flex as FlexLayout, Grid as GridLayout, ImageControl as Image, Modal, MultiCheckbox, Navbar, NumberInput, CustomPagination as Pagination, PasswordInput as Password, PhoneInput as Phone, DonutChart as PieChart, RadioInput as RadioGroup, RichText, SearchInput as Search, Shape, Spacer, StagesComponent as Stages,
|
|
287
|
+
export { ChartComponent as BarChart, Breadcrumb, ButtonWrapper as Button, SplitButton as ButtonGroup, CheckboxInput as Checkbox, Container, DatePicker, DateRange, Dropdown, EmailInput as Email, EmailComposer, FileInput, Flex as FlexLayout, Grid as GridLayout, ImageControl as Image, Modal, MultiCheckbox, Navbar, NumberInput, CustomPagination as Pagination, PasswordInput as Password, PhoneInput as Phone, DonutChart as PieChart, RadioInput as RadioGroup, RichText, SearchInput as Search, Shape, Spacer, StagesComponent as Stages, SwitchToggle, Table, Tabs, TextInput as Text, TextInputGroup, Textarea, Typography, UrlInput as URL, cn, getInitials, showSonnerToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React$1 from 'react';
|
|
3
|
-
export { Form, FormWrapper } from './client.js';
|
|
4
3
|
import { ClassValue } from 'clsx';
|
|
5
|
-
import 'zod';
|
|
6
|
-
import 'react-hook-form';
|
|
7
4
|
|
|
8
5
|
interface ElementProps {
|
|
9
6
|
children?: React.ReactNode;
|
|
@@ -284,20 +281,7 @@ type SonnerToastProps = {
|
|
|
284
281
|
};
|
|
285
282
|
declare function showSonnerToast({ title, description, variant, duration, actionLabel, onAction, }: SonnerToastProps): void;
|
|
286
283
|
|
|
287
|
-
declare function StateProvider({ children }: {
|
|
288
|
-
children: React$1.ReactNode;
|
|
289
|
-
}): react_jsx_runtime.JSX.Element;
|
|
290
|
-
declare function useAppState(): any;
|
|
291
|
-
|
|
292
|
-
type CanvasState = Record<string, any>;
|
|
293
|
-
type CanvasAction = {
|
|
294
|
-
type: 'SET_STATE';
|
|
295
|
-
key: string;
|
|
296
|
-
value: any;
|
|
297
|
-
};
|
|
298
|
-
declare function stateReducer(state: CanvasState, action: CanvasAction): CanvasState;
|
|
299
|
-
|
|
300
284
|
declare function cn(...inputs: ClassValue[]): string;
|
|
301
285
|
declare function getInitials(name: string): string;
|
|
302
286
|
|
|
303
|
-
export { ChartComponent as BarChart, Breadcrumb, ButtonWrapper as Button, SplitButton as ButtonGroup, CheckboxInput as Checkbox, Container, DatePicker, DateRange, Dropdown, EmailInput as Email, EmailComposer, FileInput, Flex as FlexLayout, Grid as GridLayout, ImageControl as Image, Modal, MultiCheckbox, Navbar, NumberInput, CustomPagination as Pagination, PasswordInput as Password, PhoneInput as Phone, DonutChart as PieChart, RadioInput as RadioGroup, RichText, SearchInput as Search, Shape, Spacer, StagesComponent as Stages,
|
|
287
|
+
export { ChartComponent as BarChart, Breadcrumb, ButtonWrapper as Button, SplitButton as ButtonGroup, CheckboxInput as Checkbox, Container, DatePicker, DateRange, Dropdown, EmailInput as Email, EmailComposer, FileInput, Flex as FlexLayout, Grid as GridLayout, ImageControl as Image, Modal, MultiCheckbox, Navbar, NumberInput, CustomPagination as Pagination, PasswordInput as Password, PhoneInput as Phone, DonutChart as PieChart, RadioInput as RadioGroup, RichText, SearchInput as Search, Shape, Spacer, StagesComponent as Stages, SwitchToggle, Table, Tabs, TextInput as Text, TextInputGroup, Textarea, Typography, UrlInput as URL, cn, getInitials, showSonnerToast };
|