@algorithm-shift/design-system 1.2.51 → 1.2.52

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,25 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+ function getInitials(name) {
13
+ const words = name.split(" ");
14
+ if (words.length === 0) {
15
+ return "";
16
+ }
17
+ if (words.length === 1) {
18
+ return words[0].charAt(0);
19
+ }
20
+ return words[0].charAt(0) + words[1].charAt(0);
21
+ }
22
+
23
+ export { __export, cn, getInitials };
24
+ //# sourceMappingURL=chunk-27YZ2WSP.mjs.map
25
+ //# sourceMappingURL=chunk-27YZ2WSP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAEO,SAAS,YAAY,IAAA,EAAc;AACxC,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC5B,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,OAAO,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,EAC1B;AACA,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,IAAI,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAC/C","file":"chunk-27YZ2WSP.mjs","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}"]}
package/dist/client.js CHANGED
@@ -1,70 +1,30 @@
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);
1
+ 'use strict';
2
+
3
+ var React2 = require('react');
4
+ var zod = require('@hookform/resolvers/zod');
5
+ var reactHookForm = require('react-hook-form');
6
+ var zod$1 = require('zod');
7
+ var clsx = require('clsx');
8
+ var tailwindMerge = require('tailwind-merge');
9
+ var jsxRuntime = require('react/jsx-runtime');
31
10
 
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);
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
42
12
 
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");
13
+ var React2__default = /*#__PURE__*/_interopDefault(React2);
48
14
 
49
- // src/lib/utils.ts
50
- var import_clsx = require("clsx");
51
- var import_tailwind_merge = require("tailwind-merge");
52
15
  function cn(...inputs) {
53
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
16
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
54
17
  }
55
-
56
- // src/components/Form/Wrapper.tsx
57
- var import_jsx_runtime = require("react/jsx-runtime");
58
18
  function generateZodSchema(data) {
59
19
  const fields = data.reduce((acc, f) => {
60
20
  const name = f.name || "unnamed";
61
21
  const message = f.message || `${name} is invalid`;
62
22
  const passwordLen = f.passwordLength;
63
- let fieldSchema = import_zod2.z.string({ message });
23
+ let fieldSchema = zod$1.z.string({ message });
64
24
  switch (f.type) {
65
25
  case "Text":
66
26
  case "Search":
67
- fieldSchema = import_zod2.z.string({ message });
27
+ fieldSchema = zod$1.z.string({ message });
68
28
  if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
69
29
  else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
70
30
  if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
@@ -73,23 +33,23 @@ function generateZodSchema(data) {
73
33
  if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
74
34
  break;
75
35
  case "Email":
76
- fieldSchema = import_zod2.z.email({ message });
36
+ fieldSchema = zod$1.z.email({ message });
77
37
  break;
78
38
  case "Password":
79
- fieldSchema = import_zod2.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
39
+ fieldSchema = zod$1.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
80
40
  break;
81
41
  case "Phone":
82
- fieldSchema = import_zod2.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
42
+ fieldSchema = zod$1.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
83
43
  return val.length === 10;
84
44
  }, {
85
45
  message: "Phone number must be 10 digits long"
86
46
  });
87
47
  break;
88
48
  case "DatePicker":
89
- fieldSchema = import_zod2.z.iso.date({ message });
49
+ fieldSchema = zod$1.z.iso.date({ message });
90
50
  break;
91
51
  case "FileInput":
92
- fieldSchema = import_zod2.z.instanceof(File, { message: "Please select a file" });
52
+ fieldSchema = zod$1.z.instanceof(File, { message: "Please select a file" });
93
53
  if (f?.maxSize) {
94
54
  fieldSchema = fieldSchema.refine(
95
55
  (file) => file.size <= f.maxSize,
@@ -104,24 +64,24 @@ function generateZodSchema(data) {
104
64
  }
105
65
  break;
106
66
  case "Checkbox":
107
- fieldSchema = import_zod2.z.boolean({ message });
67
+ fieldSchema = zod$1.z.boolean({ message });
108
68
  break;
109
69
  case "Dropdown":
110
- fieldSchema = import_zod2.z.string({ message });
70
+ fieldSchema = zod$1.z.string({ message });
111
71
  break;
112
72
  case "NumberInput":
113
- fieldSchema = import_zod2.z.number({ message });
73
+ fieldSchema = zod$1.z.number({ message });
114
74
  if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
115
75
  if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
116
76
  break;
117
77
  default:
118
- fieldSchema = import_zod2.z.any();
78
+ fieldSchema = zod$1.z.any();
119
79
  }
120
80
  if (!f.isRequired) fieldSchema = fieldSchema.optional();
121
81
  acc[name] = fieldSchema;
122
82
  return acc;
123
83
  }, {});
124
- return import_zod2.z.object(fields);
84
+ return zod$1.z.object(fields);
125
85
  }
126
86
  var FormWrapper = ({
127
87
  validation,
@@ -130,12 +90,12 @@ var FormWrapper = ({
130
90
  onSubmit,
131
91
  onReset
132
92
  }) => {
133
- const schema = (0, import_react.useMemo)(() => {
93
+ const schema = React2.useMemo(() => {
134
94
  if (!validation || validation.length === 0) return null;
135
95
  return generateZodSchema(validation);
136
96
  }, [validation]);
137
- const form = (0, import_react_hook_form.useForm)({
138
- resolver: schema ? (0, import_zod.zodResolver)(schema) : void 0,
97
+ const form = reactHookForm.useForm({
98
+ resolver: schema ? zod.zodResolver(schema) : void 0,
139
99
  defaultValues
140
100
  });
141
101
  const formSubmit = (data) => {
@@ -145,7 +105,7 @@ var FormWrapper = ({
145
105
  form.reset();
146
106
  if (onReset) onReset();
147
107
  };
148
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
108
+ return /* @__PURE__ */ jsxRuntime.jsx(
149
109
  "form",
150
110
  {
151
111
  onSubmit: form.handleSubmit(formSubmit),
@@ -153,28 +113,21 @@ var FormWrapper = ({
153
113
  className: cn(
154
114
  "space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
155
115
  ),
156
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "min-h-[50px]", children: typeof children === "function" ? children(form) : children })
116
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[50px]", children: typeof children === "function" ? children(form) : children })
157
117
  }
158
118
  );
159
119
  };
160
120
  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");
168
121
  function generateZodSchema2(data) {
169
122
  const fields = data.reduce((acc, f) => {
170
123
  const name = f.name || "unnamed";
171
124
  const message = f.message || `${name} is invalid`;
172
125
  const passwordLen = f.passwordLength;
173
- let fieldSchema = import_zod4.z.string({ message });
126
+ let fieldSchema = zod$1.z.string({ message });
174
127
  switch (f.type) {
175
128
  case "Text":
176
129
  case "Search":
177
- fieldSchema = import_zod4.z.string({ message });
130
+ fieldSchema = zod$1.z.string({ message });
178
131
  if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
179
132
  else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
180
133
  if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
@@ -183,23 +136,23 @@ function generateZodSchema2(data) {
183
136
  if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
184
137
  break;
185
138
  case "Email":
186
- fieldSchema = import_zod4.z.email({ message });
139
+ fieldSchema = zod$1.z.email({ message });
187
140
  break;
188
141
  case "Password":
189
- fieldSchema = import_zod4.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
142
+ fieldSchema = zod$1.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
190
143
  break;
191
144
  case "Phone":
192
- fieldSchema = import_zod4.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
145
+ fieldSchema = zod$1.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
193
146
  return val.length === 10;
194
147
  }, {
195
148
  message: "Phone number must be 10 digits long"
196
149
  });
197
150
  break;
198
151
  case "DatePicker":
199
- fieldSchema = import_zod4.z.iso.date({ message });
152
+ fieldSchema = zod$1.z.iso.date({ message });
200
153
  break;
201
154
  case "FileInput":
202
- fieldSchema = import_zod4.z.instanceof(File, { message: "Please select a file" });
155
+ fieldSchema = zod$1.z.instanceof(File, { message: "Please select a file" });
203
156
  if (f?.maxSize) {
204
157
  fieldSchema = fieldSchema.refine(
205
158
  (file) => file.size <= f.maxSize,
@@ -214,24 +167,24 @@ function generateZodSchema2(data) {
214
167
  }
215
168
  break;
216
169
  case "Checkbox":
217
- fieldSchema = import_zod4.z.boolean({ message });
170
+ fieldSchema = zod$1.z.boolean({ message });
218
171
  break;
219
172
  case "Dropdown":
220
- fieldSchema = import_zod4.z.string({ message });
173
+ fieldSchema = zod$1.z.string({ message });
221
174
  break;
222
175
  case "NumberInput":
223
- fieldSchema = import_zod4.z.number({ message });
176
+ fieldSchema = zod$1.z.number({ message });
224
177
  if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
225
178
  if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
226
179
  break;
227
180
  default:
228
- fieldSchema = import_zod4.z.any();
181
+ fieldSchema = zod$1.z.any();
229
182
  }
230
183
  if (!f.isRequired) fieldSchema = fieldSchema.optional();
231
184
  acc[name] = fieldSchema;
232
185
  return acc;
233
186
  }, {});
234
- return import_zod4.z.object(fields);
187
+ return zod$1.z.object(fields);
235
188
  }
236
189
  var Form = ({
237
190
  validation,
@@ -240,7 +193,7 @@ var Form = ({
240
193
  onSubmit,
241
194
  onReset
242
195
  }) => {
243
- const schema = (0, import_react2.useMemo)(() => {
196
+ const schema = React2.useMemo(() => {
244
197
  if (!validation || validation.length === 0) return null;
245
198
  return generateZodSchema2(validation);
246
199
  }, [validation]);
@@ -249,8 +202,8 @@ var Form = ({
249
202
  control,
250
203
  formState: { errors },
251
204
  reset
252
- } = (0, import_react_hook_form2.useForm)({
253
- resolver: schema ? (0, import_zod3.zodResolver)(schema) : void 0,
205
+ } = reactHookForm.useForm({
206
+ resolver: schema ? zod.zodResolver(schema) : void 0,
254
207
  defaultValues
255
208
  });
256
209
  const formSubmit = (data) => {
@@ -260,7 +213,7 @@ var Form = ({
260
213
  reset();
261
214
  if (onReset) onReset();
262
215
  };
263
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
216
+ return /* @__PURE__ */ jsxRuntime.jsx(
264
217
  "form",
265
218
  {
266
219
  onSubmit: handleSubmit(formSubmit),
@@ -268,20 +221,20 @@ var Form = ({
268
221
  className: cn(
269
222
  "space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
270
223
  ),
271
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "min-h-[50px]", children: import_react2.default.Children.map(children, (child) => {
224
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[50px]", children: React2__default.default.Children.map(children, (child) => {
272
225
  const processChild = (child2) => {
273
- if (import_react2.default.isValidElement(child2)) {
226
+ if (React2__default.default.isValidElement(child2)) {
274
227
  const node = child2.props?.node;
275
228
  if (node?.category === "Form Controls") {
276
229
  const name = node.properties?.name || "unnamed";
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,
230
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col", children: /* @__PURE__ */ jsxRuntime.jsx(
231
+ reactHookForm.Controller,
279
232
  {
280
233
  name,
281
234
  control,
282
235
  render: ({ field: controllerField }) => {
283
236
  const childElement = child2;
284
- return import_react2.default.cloneElement(childElement, {
237
+ return React2__default.default.cloneElement(childElement, {
285
238
  input: {
286
239
  ...controllerField,
287
240
  value: controllerField.value || "",
@@ -297,11 +250,11 @@ var Form = ({
297
250
  }
298
251
  if (child2.props?.children) {
299
252
  const childElement = child2;
300
- return import_react2.default.cloneElement(childElement, {
301
- children: import_react2.default.Children.map(childElement.props.children, processChild)
253
+ return React2__default.default.cloneElement(childElement, {
254
+ children: React2__default.default.Children.map(childElement.props.children, processChild)
302
255
  });
303
256
  }
304
- return import_react2.default.cloneElement(child2);
257
+ return React2__default.default.cloneElement(child2);
305
258
  }
306
259
  return child2;
307
260
  };
@@ -323,24 +276,19 @@ function stateReducer(state, action) {
323
276
  return state;
324
277
  }
325
278
  }
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);
279
+ var StateContext = React2.createContext(null);
331
280
  function StateProvider({ children, initialState = {} }) {
332
- const [state, dispatch] = (0, import_react3.useReducer)(stateReducer, initialState);
333
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(StateContext.Provider, { value: { state, dispatch }, children });
281
+ const [state, dispatch] = React2.useReducer(stateReducer, initialState);
282
+ return /* @__PURE__ */ jsxRuntime.jsx(StateContext.Provider, { value: { state, dispatch }, children });
334
283
  }
335
284
  function useAppState() {
336
- return (0, import_react3.useContext)(StateContext);
285
+ return React2.useContext(StateContext);
337
286
  }
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
- });
287
+
288
+ exports.Form = Form_default;
289
+ exports.FormWrapper = Wrapper_default;
290
+ exports.StateProvider = StateProvider;
291
+ exports.stateReducer = stateReducer;
292
+ exports.useAppState = useAppState;
293
+ //# sourceMappingURL=client.js.map
346
294
  //# sourceMappingURL=client.js.map
@@ -1 +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, { 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"]}
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"]}