@algorithm-shift/design-system 1.2.202 → 1.2.951

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.
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ // src/lib/utils.ts
9
+ import { clsx } from "clsx";
10
+ import { twMerge } from "tailwind-merge";
11
+ function cn(...inputs) {
12
+ return twMerge(clsx(inputs));
13
+ }
14
+ function getInitials(name) {
15
+ const words = name.split(" ");
16
+ if (words.length === 0) {
17
+ return "";
18
+ }
19
+ if (words.length === 1) {
20
+ return words[0].charAt(0);
21
+ }
22
+ return words[0].charAt(0) + words[1].charAt(0);
23
+ }
24
+
25
+ export {
26
+ __export,
27
+ cn,
28
+ getInitials
29
+ };
30
+ //# sourceMappingURL=chunk-27YZ2WSP.mjs.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,43 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+ import { UseFormReturn } from 'react-hook-form';
4
+ import { z } from 'zod';
5
+
6
+ interface FormWrapperProps<T extends z.ZodObject<any>> {
7
+ validation?: Record<string, any>;
8
+ formName?: string;
9
+ defaultValues?: Partial<z.infer<T>> | any;
10
+ children?: React__default.ReactNode | ((form: UseFormReturn<z.infer<T>>) => React__default.ReactNode);
11
+ onSubmit?: (data: z.infer<T>) => void;
12
+ onReset?: () => void;
13
+ }
14
+ declare const FormWrapper: <T extends z.ZodObject<any>>({ defaultValues, children, onSubmit, onReset, ...props }: FormWrapperProps<T>) => react_jsx_runtime.JSX.Element;
15
+
16
+ interface FormProps<T extends z.ZodObject<any>> {
17
+ validation?: any[];
18
+ formName?: string;
19
+ defaultValues?: Partial<z.infer<T>> | any;
20
+ children?: React__default.ReactNode;
21
+ onSubmit?: (data: z.infer<T>) => void;
22
+ onReset?: () => void;
23
+ }
24
+ declare const Form: <T extends z.ZodObject<any>>({ validation, defaultValues, children, onSubmit, onReset, }: FormProps<T>) => react_jsx_runtime.JSX.Element;
25
+
26
+ type CanvasState = Record<string, any>;
27
+ type CanvasAction = {
28
+ type: 'SET_STATE';
29
+ key: string;
30
+ value: any;
31
+ } | {
32
+ type: 'SET_MULTIPLE_STATES';
33
+ values: Record<string, any>;
34
+ };
35
+ declare function stateReducer(state: CanvasState, action: CanvasAction): CanvasState;
36
+
37
+ declare function StateProvider({ children, initialState }: {
38
+ children: React__default.ReactNode;
39
+ initialState?: CanvasState;
40
+ }): react_jsx_runtime.JSX.Element;
41
+ declare function useAppState(): any;
42
+
43
+ export { Form, FormWrapper, StateProvider, stateReducer, useAppState };
@@ -0,0 +1,43 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+ import { UseFormReturn } from 'react-hook-form';
4
+ import { z } from 'zod';
5
+
6
+ interface FormWrapperProps<T extends z.ZodObject<any>> {
7
+ validation?: Record<string, any>;
8
+ formName?: string;
9
+ defaultValues?: Partial<z.infer<T>> | any;
10
+ children?: React__default.ReactNode | ((form: UseFormReturn<z.infer<T>>) => React__default.ReactNode);
11
+ onSubmit?: (data: z.infer<T>) => void;
12
+ onReset?: () => void;
13
+ }
14
+ declare const FormWrapper: <T extends z.ZodObject<any>>({ defaultValues, children, onSubmit, onReset, ...props }: FormWrapperProps<T>) => react_jsx_runtime.JSX.Element;
15
+
16
+ interface FormProps<T extends z.ZodObject<any>> {
17
+ validation?: any[];
18
+ formName?: string;
19
+ defaultValues?: Partial<z.infer<T>> | any;
20
+ children?: React__default.ReactNode;
21
+ onSubmit?: (data: z.infer<T>) => void;
22
+ onReset?: () => void;
23
+ }
24
+ declare const Form: <T extends z.ZodObject<any>>({ validation, defaultValues, children, onSubmit, onReset, }: FormProps<T>) => react_jsx_runtime.JSX.Element;
25
+
26
+ type CanvasState = Record<string, any>;
27
+ type CanvasAction = {
28
+ type: 'SET_STATE';
29
+ key: string;
30
+ value: any;
31
+ } | {
32
+ type: 'SET_MULTIPLE_STATES';
33
+ values: Record<string, any>;
34
+ };
35
+ declare function stateReducer(state: CanvasState, action: CanvasAction): CanvasState;
36
+
37
+ declare function StateProvider({ children, initialState }: {
38
+ children: React__default.ReactNode;
39
+ initialState?: CanvasState;
40
+ }): react_jsx_runtime.JSX.Element;
41
+ declare function useAppState(): any;
42
+
43
+ export { Form, FormWrapper, StateProvider, stateReducer, useAppState };
package/dist/client.js ADDED
@@ -0,0 +1,408 @@
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);
31
+
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);
42
+
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");
48
+
49
+ // src/lib/utils.ts
50
+ var import_clsx = require("clsx");
51
+ var import_tailwind_merge = require("tailwind-merge");
52
+ function cn(...inputs) {
53
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
54
+ }
55
+
56
+ // src/components/Form/Wrapper.tsx
57
+ var import_jsx_runtime = require("react/jsx-runtime");
58
+ function generateZodSchema(data) {
59
+ const fields = data.reduce((acc, f) => {
60
+ const name = f.name || "unnamed";
61
+ const message = f.message || `${name} is invalid`;
62
+ const passwordLen = f.passwordLength;
63
+ let fieldSchema = import_zod2.z.string({ message });
64
+ switch (f.type) {
65
+ case "Text":
66
+ case "Search":
67
+ fieldSchema = import_zod2.z.string({ message });
68
+ if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
69
+ else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
70
+ if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
71
+ if (f?.email) fieldSchema = fieldSchema.email();
72
+ if (f?.url) fieldSchema = fieldSchema.url();
73
+ if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
74
+ break;
75
+ case "Email":
76
+ fieldSchema = import_zod2.z.email({ message });
77
+ break;
78
+ case "Password":
79
+ fieldSchema = import_zod2.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
80
+ break;
81
+ case "Phone":
82
+ fieldSchema = import_zod2.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
83
+ return val.length === 10;
84
+ }, {
85
+ message: "Phone number must be 10 digits long"
86
+ });
87
+ break;
88
+ case "DatePicker":
89
+ fieldSchema = import_zod2.z.string({
90
+ message: message || "Date is required"
91
+ }).trim().refine((val) => {
92
+ if (f.isRequired && !val) return false;
93
+ if (!f.isRequired && !val) return true;
94
+ const date = new Date(val);
95
+ return !isNaN(date.getTime());
96
+ }, { message: message || "Invalid date" });
97
+ break;
98
+ case "FileInput":
99
+ fieldSchema = import_zod2.z.instanceof(File, { message: "Please select a file" });
100
+ if (f?.maxSize) {
101
+ fieldSchema = fieldSchema.refine(
102
+ (file) => file.size <= f.maxSize,
103
+ { message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }
104
+ );
105
+ }
106
+ if (f?.acceptedTypes) {
107
+ fieldSchema = fieldSchema.refine(
108
+ (file) => f.acceptedTypes.includes(file.type),
109
+ { message: `File type must be one of: ${f.acceptedTypes.join(", ")}` }
110
+ );
111
+ }
112
+ break;
113
+ case "Checkbox":
114
+ fieldSchema = import_zod2.z.boolean({ message });
115
+ break;
116
+ case "Dropdown":
117
+ if (f.isRequired) {
118
+ fieldSchema = import_zod2.z.string({ message }).min(1, { message });
119
+ } else {
120
+ fieldSchema = import_zod2.z.string().nullable();
121
+ }
122
+ break;
123
+ case "NumberInput":
124
+ let numberSchema = import_zod2.z.number({ message });
125
+ if (f.min !== void 0)
126
+ numberSchema = numberSchema.min(f.min, {
127
+ message: `Minimum value is ${f.min}`
128
+ });
129
+ if (f.max !== void 0)
130
+ numberSchema = numberSchema.max(f.max, {
131
+ message: `Maximum value is ${f.max}`
132
+ });
133
+ fieldSchema = import_zod2.z.preprocess(
134
+ (val) => {
135
+ if (val === "" || val === null || val === void 0) return null;
136
+ const num = Number(val);
137
+ return isNaN(num) ? val : num;
138
+ },
139
+ numberSchema.nullable()
140
+ );
141
+ break;
142
+ default:
143
+ fieldSchema = import_zod2.z.any();
144
+ }
145
+ if (!f.isRequired) fieldSchema = fieldSchema.nullable().optional();
146
+ acc[name] = fieldSchema;
147
+ return acc;
148
+ }, {});
149
+ return import_zod2.z.object(fields);
150
+ }
151
+ var FormWrapper = ({
152
+ defaultValues,
153
+ children,
154
+ onSubmit,
155
+ onReset,
156
+ ...props
157
+ }) => {
158
+ const schema = (0, import_react.useMemo)(() => {
159
+ if (Array.isArray(props.validation)) return null;
160
+ const validation = Object.values(props.validation || {}).map((v) => ({
161
+ ...v,
162
+ isRequired: !!v.isRequired
163
+ }));
164
+ const formValidation = validation?.filter((i) => i);
165
+ if (!formValidation || formValidation.length === 0) return null;
166
+ return generateZodSchema(formValidation);
167
+ }, [props.validation]);
168
+ const form = (0, import_react_hook_form.useForm)({
169
+ resolver: schema ? (0, import_zod.zodResolver)(schema) : void 0,
170
+ defaultValues
171
+ });
172
+ (0, import_react.useEffect)(() => {
173
+ if (!defaultValues) return;
174
+ if (typeof defaultValues === "object" && defaultValues !== null && !Array.isArray(defaultValues)) {
175
+ form.reset(defaultValues);
176
+ }
177
+ }, [defaultValues]);
178
+ const formSubmit = (data) => {
179
+ if (onSubmit) onSubmit(data);
180
+ };
181
+ const handleReset = () => {
182
+ form.reset();
183
+ if (onReset) onReset();
184
+ };
185
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
186
+ "form",
187
+ {
188
+ onSubmit: form.handleSubmit(formSubmit),
189
+ onReset: handleReset,
190
+ className: cn(
191
+ "space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
192
+ ),
193
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "min-h-[50px]", children: typeof children === "function" ? children(form) : children })
194
+ }
195
+ );
196
+ };
197
+ var Wrapper_default = FormWrapper;
198
+
199
+ // src/components/Form/Form.tsx
200
+ var import_react2 = __toESM(require("react"));
201
+ var import_zod3 = require("@hookform/resolvers/zod");
202
+ var import_react_hook_form2 = require("react-hook-form");
203
+ var import_zod4 = require("zod");
204
+ var import_jsx_runtime2 = require("react/jsx-runtime");
205
+ function generateZodSchema2(data) {
206
+ const fields = data.reduce((acc, f) => {
207
+ const name = f.name || "unnamed";
208
+ const message = f.message || `${name} is invalid`;
209
+ const passwordLen = f.passwordLength;
210
+ let fieldSchema = import_zod4.z.string({ message });
211
+ switch (f.type) {
212
+ case "Text":
213
+ case "Search":
214
+ fieldSchema = import_zod4.z.string({ message });
215
+ if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
216
+ else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
217
+ if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
218
+ if (f?.email) fieldSchema = fieldSchema.email();
219
+ if (f?.url) fieldSchema = fieldSchema.url();
220
+ if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
221
+ break;
222
+ case "Email":
223
+ fieldSchema = import_zod4.z.email({ message });
224
+ break;
225
+ case "Password":
226
+ fieldSchema = import_zod4.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
227
+ break;
228
+ case "Phone":
229
+ fieldSchema = import_zod4.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
230
+ return val.length === 10;
231
+ }, {
232
+ message: "Phone number must be 10 digits long"
233
+ });
234
+ break;
235
+ case "DatePicker":
236
+ fieldSchema = import_zod4.z.string({
237
+ message: message || "Date is required"
238
+ }).trim().refine((val) => {
239
+ if (f.isRequired && !val) return false;
240
+ if (!f.isRequired && !val) return true;
241
+ const date = new Date(val);
242
+ return !isNaN(date.getTime());
243
+ }, { message: message || "Invalid date" });
244
+ break;
245
+ case "FileInput":
246
+ fieldSchema = import_zod4.z.instanceof(File, { message: "Please select a file" });
247
+ if (f?.maxSize) {
248
+ fieldSchema = fieldSchema.refine(
249
+ (file) => file.size <= f.maxSize,
250
+ { message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }
251
+ );
252
+ }
253
+ if (f?.acceptedTypes) {
254
+ fieldSchema = fieldSchema.refine(
255
+ (file) => f.acceptedTypes.includes(file.type),
256
+ { message: `File type must be one of: ${f.acceptedTypes.join(", ")}` }
257
+ );
258
+ }
259
+ break;
260
+ case "Checkbox":
261
+ fieldSchema = import_zod4.z.boolean({ message });
262
+ break;
263
+ case "Dropdown":
264
+ if (f.isRequired) {
265
+ fieldSchema = import_zod4.z.string({ message }).min(1, { message });
266
+ } else {
267
+ fieldSchema = import_zod4.z.string().nullable();
268
+ }
269
+ break;
270
+ case "NumberInput":
271
+ let numberSchema = import_zod4.z.number({ message });
272
+ if (f.min !== void 0)
273
+ numberSchema = numberSchema.min(f.min, {
274
+ message: `Minimum value is ${f.min}`
275
+ });
276
+ if (f.max !== void 0)
277
+ numberSchema = numberSchema.max(f.max, {
278
+ message: `Maximum value is ${f.max}`
279
+ });
280
+ fieldSchema = import_zod4.z.preprocess(
281
+ (val) => {
282
+ if (val === "" || val === null || val === void 0) return null;
283
+ const num = Number(val);
284
+ return isNaN(num) ? val : num;
285
+ },
286
+ numberSchema.nullable()
287
+ );
288
+ break;
289
+ default:
290
+ fieldSchema = import_zod4.z.any();
291
+ }
292
+ if (!f.isRequired) fieldSchema = fieldSchema.nullable().optional();
293
+ acc[name] = fieldSchema;
294
+ return acc;
295
+ }, {});
296
+ return import_zod4.z.object(fields);
297
+ }
298
+ var Form = ({
299
+ validation,
300
+ defaultValues,
301
+ children,
302
+ onSubmit,
303
+ onReset
304
+ }) => {
305
+ const schema = (0, import_react2.useMemo)(() => {
306
+ if (!validation || validation.length === 0) return null;
307
+ return generateZodSchema2(validation);
308
+ }, [validation]);
309
+ const {
310
+ handleSubmit,
311
+ control,
312
+ formState: { errors },
313
+ reset
314
+ } = (0, import_react_hook_form2.useForm)({
315
+ resolver: schema ? (0, import_zod3.zodResolver)(schema) : void 0,
316
+ defaultValues
317
+ });
318
+ const formSubmit = (data) => {
319
+ if (onSubmit) onSubmit(data);
320
+ };
321
+ const handleReset = () => {
322
+ reset();
323
+ if (onReset) onReset();
324
+ };
325
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
326
+ "form",
327
+ {
328
+ onSubmit: handleSubmit(formSubmit),
329
+ onReset: handleReset,
330
+ className: cn(
331
+ "space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
332
+ ),
333
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "min-h-[50px]", children: import_react2.default.Children.map(children, (child) => {
334
+ const processChild = (child2) => {
335
+ if (import_react2.default.isValidElement(child2)) {
336
+ const node = child2.props?.node;
337
+ if (node?.category === "Form Controls") {
338
+ const name = node.properties?.name || "unnamed";
339
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
340
+ import_react_hook_form2.Controller,
341
+ {
342
+ name,
343
+ control,
344
+ render: ({ field: controllerField }) => {
345
+ const childElement = child2;
346
+ return import_react2.default.cloneElement(childElement, {
347
+ input: {
348
+ ...controllerField,
349
+ value: controllerField.value || "",
350
+ hasFormContainer: true,
351
+ validateOnMount: true,
352
+ errorMessage: errors[name]?.message || null
353
+ },
354
+ children: void 0
355
+ });
356
+ }
357
+ }
358
+ ) }, node.id);
359
+ }
360
+ if (child2.props?.children) {
361
+ const childElement = child2;
362
+ return import_react2.default.cloneElement(childElement, {
363
+ children: import_react2.default.Children.map(childElement.props.children, processChild)
364
+ });
365
+ }
366
+ return import_react2.default.cloneElement(child2);
367
+ }
368
+ return child2;
369
+ };
370
+ return processChild(child);
371
+ }) })
372
+ }
373
+ );
374
+ };
375
+ var Form_default = Form;
376
+
377
+ // src/components/StateManagment/stateReducer.ts
378
+ function stateReducer(state, action) {
379
+ switch (action.type) {
380
+ case "SET_STATE":
381
+ return { ...state, [action.key]: action.value };
382
+ case "SET_MULTIPLE_STATES":
383
+ return { ...state, ...action.values };
384
+ default:
385
+ return state;
386
+ }
387
+ }
388
+
389
+ // src/components/StateManagment/StateContext.tsx
390
+ var import_react3 = require("react");
391
+ var import_jsx_runtime3 = require("react/jsx-runtime");
392
+ var StateContext = (0, import_react3.createContext)(null);
393
+ function StateProvider({ children, initialState = {} }) {
394
+ const [state, dispatch] = (0, import_react3.useReducer)(stateReducer, initialState);
395
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(StateContext.Provider, { value: { state, dispatch }, children });
396
+ }
397
+ function useAppState() {
398
+ return (0, import_react3.useContext)(StateContext);
399
+ }
400
+ // Annotate the CommonJS export names for ESM import in node:
401
+ 0 && (module.exports = {
402
+ Form,
403
+ FormWrapper,
404
+ StateProvider,
405
+ stateReducer,
406
+ useAppState
407
+ });
408
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
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, { useEffect, 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?: Record<string, 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.string({\r\n message: message || 'Date is required',\r\n }).trim().refine((val) => {\r\n if (f.isRequired && !val) return false;\r\n if (!f.isRequired && !val) return true;\r\n const date = new Date(val);\r\n return !isNaN(date.getTime());\r\n }, { message: message || 'Invalid date' });\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 if (f.isRequired) {\r\n fieldSchema = z.string({ message }).min(1, { message });\r\n } else {\r\n fieldSchema = z.string().nullable();\r\n }\r\n break;\r\n case 'NumberInput':\r\n let numberSchema = z.number({ message });\r\n\r\n if (f.min !== undefined)\r\n numberSchema = numberSchema.min(f.min, {\r\n message: `Minimum value is ${f.min}`,\r\n });\r\n\r\n if (f.max !== undefined)\r\n numberSchema = numberSchema.max(f.max, {\r\n message: `Maximum value is ${f.max}`,\r\n });\r\n\r\n // Preprocess empty string/null → null and cast strings to numbers\r\n fieldSchema = z.preprocess(\r\n (val) => {\r\n if (val === '' || val === null || val === undefined) return null;\r\n const num = Number(val);\r\n return isNaN(num) ? val : num;\r\n },\r\n numberSchema.nullable()\r\n );\r\n break;\r\n default:\r\n fieldSchema = z.any();\r\n }\r\n\r\n if (!f.isRequired) fieldSchema = fieldSchema.nullable().optional();\r\n\r\n acc[name] = fieldSchema;\r\n return acc;\r\n }, {} as Record<string, any>);\r\n\r\n return z.object(fields);\r\n}\r\n\r\nconst FormWrapper = <T extends z.ZodObject<any>>({\r\n defaultValues,\r\n children,\r\n onSubmit,\r\n onReset,\r\n ...props\r\n}: FormWrapperProps<T>) => {\r\n const schema = useMemo(() => {\r\n if (Array.isArray(props.validation)) return null;\r\n // Transform validation to ensure isRequired is boolean\r\n const validation = Object.values(props.validation || {}).map(v => ({\r\n ...v,\r\n isRequired: !!v.isRequired\r\n }));\r\n\r\n const formValidation = validation?.filter(i => i);\r\n if (!formValidation || formValidation.length === 0) return null;\r\n return generateZodSchema(formValidation);\r\n }, [props.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 useEffect(() => {\r\n if (!defaultValues) return;\r\n // Only reset if defaultValues is an object (not null, undefined, or array)\r\n if (typeof defaultValues === 'object' && defaultValues !== null && !Array.isArray(defaultValues)) {\r\n form.reset(defaultValues);\r\n }\r\n }, [defaultValues]);\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\n// ****************** THIS COMPONENT NOT USED IN EXPORT CODE OR ANYWHERE ELSE YET. ************************\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.string({\r\n message: message || 'Date is required',\r\n }).trim().refine((val) => {\r\n if (f.isRequired && !val) return false;\r\n if (!f.isRequired && !val) return true;\r\n const date = new Date(val);\r\n return !isNaN(date.getTime());\r\n }, { message: message || 'Invalid date' });\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 if (f.isRequired) {\r\n fieldSchema = z.string({ message }).min(1, { message });\r\n } else {\r\n fieldSchema = z.string().nullable();\r\n }\r\n break;\r\n case 'NumberInput':\r\n let numberSchema = z.number({ message });\r\n\r\n if (f.min !== undefined)\r\n numberSchema = numberSchema.min(f.min, {\r\n message: `Minimum value is ${f.min}`,\r\n });\r\n\r\n if (f.max !== undefined)\r\n numberSchema = numberSchema.max(f.max, {\r\n message: `Maximum value is ${f.max}`,\r\n });\r\n\r\n // Preprocess empty string/null → null and cast strings to numbers\r\n fieldSchema = z.preprocess(\r\n (val) => {\r\n if (val === '' || val === null || val === undefined) return null;\r\n const num = Number(val);\r\n return isNaN(num) ? val : num;\r\n },\r\n numberSchema.nullable()\r\n );\r\n break;\r\n default:\r\n fieldSchema = z.any();\r\n }\r\n\r\n if (!f.isRequired) fieldSchema = fieldSchema.nullable().optional();\r\n\r\n acc[name] = fieldSchema;\r\n return acc;\r\n }, {} as Record<string, any>);\r\n\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"]}