@becklyn/forms 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +281 -0
  3. package/dist/cjs/components/FormBuilder.d.ts +3 -0
  4. package/dist/cjs/components/FormBuilder.d.ts.map +1 -0
  5. package/dist/cjs/components/FormBuilder.js +22 -0
  6. package/dist/cjs/components/FormCustom.d.ts +10 -0
  7. package/dist/cjs/components/FormCustom.d.ts.map +1 -0
  8. package/dist/cjs/components/FormCustom.js +13 -0
  9. package/dist/cjs/components/FormEntry.d.ts +10 -0
  10. package/dist/cjs/components/FormEntry.d.ts.map +1 -0
  11. package/dist/cjs/components/FormEntry.js +46 -0
  12. package/dist/cjs/components/FormField.d.ts +10 -0
  13. package/dist/cjs/components/FormField.d.ts.map +1 -0
  14. package/dist/cjs/components/FormField.js +79 -0
  15. package/dist/cjs/components/FormRow.d.ts +10 -0
  16. package/dist/cjs/components/FormRow.d.ts.map +1 -0
  17. package/dist/cjs/components/FormRow.js +13 -0
  18. package/dist/cjs/components/FormSection.d.ts +10 -0
  19. package/dist/cjs/components/FormSection.d.ts.map +1 -0
  20. package/dist/cjs/components/FormSection.js +13 -0
  21. package/dist/cjs/components/FormWatch.d.ts +8 -0
  22. package/dist/cjs/components/FormWatch.d.ts.map +1 -0
  23. package/dist/cjs/components/FormWatch.js +14 -0
  24. package/dist/cjs/condition/index.d.ts +3 -0
  25. package/dist/cjs/condition/index.d.ts.map +1 -0
  26. package/dist/cjs/condition/index.js +29 -0
  27. package/dist/cjs/context/FormProvider.d.ts +7 -0
  28. package/dist/cjs/context/FormProvider.d.ts.map +1 -0
  29. package/dist/cjs/context/FormProvider.js +24 -0
  30. package/dist/cjs/context/context.d.ts +15 -0
  31. package/dist/cjs/context/context.d.ts.map +1 -0
  32. package/dist/cjs/context/context.js +7 -0
  33. package/dist/cjs/context/data/FormDataProvider.d.ts +19 -0
  34. package/dist/cjs/context/data/FormDataProvider.d.ts.map +1 -0
  35. package/dist/cjs/context/data/FormDataProvider.js +39 -0
  36. package/dist/cjs/context/data/context.d.ts +13 -0
  37. package/dist/cjs/context/data/context.d.ts.map +1 -0
  38. package/dist/cjs/context/data/context.js +6 -0
  39. package/dist/cjs/context/data/index.d.ts +2 -0
  40. package/dist/cjs/context/data/index.d.ts.map +1 -0
  41. package/dist/cjs/context/data/index.js +2 -0
  42. package/dist/cjs/context/index.d.ts +4 -0
  43. package/dist/cjs/context/index.d.ts.map +1 -0
  44. package/dist/cjs/context/index.js +22 -0
  45. package/dist/cjs/guard/index.d.ts +6 -0
  46. package/dist/cjs/guard/index.d.ts.map +1 -0
  47. package/dist/cjs/guard/index.js +21 -0
  48. package/dist/cjs/hoc/withForm.d.ts +7 -0
  49. package/dist/cjs/hoc/withForm.d.ts.map +1 -0
  50. package/dist/cjs/hoc/withForm.js +14 -0
  51. package/dist/cjs/hoc/withFormData.d.ts +7 -0
  52. package/dist/cjs/hoc/withFormData.d.ts.map +1 -0
  53. package/dist/cjs/hoc/withFormData.js +14 -0
  54. package/dist/cjs/hook/useFormData.d.ts +5 -0
  55. package/dist/cjs/hook/useFormData.d.ts.map +1 -0
  56. package/dist/cjs/hook/useFormData.js +18 -0
  57. package/dist/cjs/hook/useFormErrors.d.ts +3 -0
  58. package/dist/cjs/hook/useFormErrors.d.ts.map +1 -0
  59. package/dist/cjs/hook/useFormErrors.js +14 -0
  60. package/dist/cjs/hook/useFormStore.d.ts +8 -0
  61. package/dist/cjs/hook/useFormStore.d.ts.map +1 -0
  62. package/dist/cjs/hook/useFormStore.js +26 -0
  63. package/dist/cjs/hook/useFormValidations.d.ts +9 -0
  64. package/dist/cjs/hook/useFormValidations.d.ts.map +1 -0
  65. package/dist/cjs/hook/useFormValidations.js +48 -0
  66. package/dist/cjs/hook/useRefEffect.d.ts +2 -0
  67. package/dist/cjs/hook/useRefEffect.d.ts.map +1 -0
  68. package/dist/cjs/hook/useRefEffect.js +10 -0
  69. package/dist/cjs/style/index.d.ts +7 -0
  70. package/dist/cjs/style/index.d.ts.map +1 -0
  71. package/dist/cjs/style/index.js +59 -0
  72. package/dist/cjs/type/common.d.ts +7 -0
  73. package/dist/cjs/type/common.d.ts.map +1 -0
  74. package/dist/cjs/type/common.js +2 -0
  75. package/dist/cjs/type/condition.d.ts +3 -0
  76. package/dist/cjs/type/condition.d.ts.map +1 -0
  77. package/dist/cjs/type/condition.js +2 -0
  78. package/dist/cjs/type/config.d.ts +18 -0
  79. package/dist/cjs/type/config.d.ts.map +1 -0
  80. package/dist/cjs/type/config.js +2 -0
  81. package/dist/cjs/type/extract.d.ts +25 -0
  82. package/dist/cjs/type/extract.d.ts.map +1 -0
  83. package/dist/cjs/type/extract.js +2 -0
  84. package/dist/cjs/type/field.d.ts +30 -0
  85. package/dist/cjs/type/field.d.ts.map +1 -0
  86. package/dist/cjs/type/field.js +2 -0
  87. package/dist/cjs/type/form.d.ts +30 -0
  88. package/dist/cjs/type/form.d.ts.map +1 -0
  89. package/dist/cjs/type/form.js +2 -0
  90. package/dist/cjs/type/index.d.ts +8 -0
  91. package/dist/cjs/type/index.d.ts.map +1 -0
  92. package/dist/cjs/type/index.js +23 -0
  93. package/dist/cjs/type/validation.d.ts +14 -0
  94. package/dist/cjs/type/validation.d.ts.map +1 -0
  95. package/dist/cjs/type/validation.js +2 -0
  96. package/dist/cjs/util/index.d.ts +11 -0
  97. package/dist/cjs/util/index.d.ts.map +1 -0
  98. package/dist/cjs/util/index.js +97 -0
  99. package/dist/cjs/validation/index.d.ts +4 -0
  100. package/dist/cjs/validation/index.d.ts.map +1 -0
  101. package/dist/cjs/validation/index.js +57 -0
  102. package/dist/es/components/FormBuilder.d.ts +3 -0
  103. package/dist/es/components/FormBuilder.d.ts.map +1 -0
  104. package/dist/es/components/FormBuilder.js +22 -0
  105. package/dist/es/components/FormCustom.d.ts +10 -0
  106. package/dist/es/components/FormCustom.d.ts.map +1 -0
  107. package/dist/es/components/FormCustom.js +13 -0
  108. package/dist/es/components/FormEntry.d.ts +10 -0
  109. package/dist/es/components/FormEntry.d.ts.map +1 -0
  110. package/dist/es/components/FormEntry.js +46 -0
  111. package/dist/es/components/FormField.d.ts +10 -0
  112. package/dist/es/components/FormField.d.ts.map +1 -0
  113. package/dist/es/components/FormField.js +78 -0
  114. package/dist/es/components/FormRow.d.ts +10 -0
  115. package/dist/es/components/FormRow.d.ts.map +1 -0
  116. package/dist/es/components/FormRow.js +13 -0
  117. package/dist/es/components/FormSection.d.ts +10 -0
  118. package/dist/es/components/FormSection.d.ts.map +1 -0
  119. package/dist/es/components/FormSection.js +13 -0
  120. package/dist/es/components/FormWatch.d.ts +8 -0
  121. package/dist/es/components/FormWatch.d.ts.map +1 -0
  122. package/dist/es/components/FormWatch.js +14 -0
  123. package/dist/es/condition/index.d.ts +3 -0
  124. package/dist/es/condition/index.d.ts.map +1 -0
  125. package/dist/es/condition/index.js +28 -0
  126. package/dist/es/context/FormProvider.d.ts +7 -0
  127. package/dist/es/context/FormProvider.d.ts.map +1 -0
  128. package/dist/es/context/FormProvider.js +27 -0
  129. package/dist/es/context/context.d.ts +15 -0
  130. package/dist/es/context/context.d.ts.map +1 -0
  131. package/dist/es/context/context.js +7 -0
  132. package/dist/es/context/data/FormDataProvider.d.ts +19 -0
  133. package/dist/es/context/data/FormDataProvider.d.ts.map +1 -0
  134. package/dist/es/context/data/FormDataProvider.js +30 -0
  135. package/dist/es/context/data/context.d.ts +13 -0
  136. package/dist/es/context/data/context.d.ts.map +1 -0
  137. package/dist/es/context/data/context.js +6 -0
  138. package/dist/es/context/data/index.d.ts +2 -0
  139. package/dist/es/context/data/index.d.ts.map +1 -0
  140. package/dist/es/context/data/index.js +2 -0
  141. package/dist/es/context/index.d.ts +4 -0
  142. package/dist/es/context/index.d.ts.map +1 -0
  143. package/dist/es/context/index.js +22 -0
  144. package/dist/es/guard/index.d.ts +6 -0
  145. package/dist/es/guard/index.d.ts.map +1 -0
  146. package/dist/es/guard/index.js +21 -0
  147. package/dist/es/hoc/withForm.d.ts +7 -0
  148. package/dist/es/hoc/withForm.d.ts.map +1 -0
  149. package/dist/es/hoc/withForm.js +14 -0
  150. package/dist/es/hoc/withFormData.d.ts +7 -0
  151. package/dist/es/hoc/withFormData.d.ts.map +1 -0
  152. package/dist/es/hoc/withFormData.js +14 -0
  153. package/dist/es/hook/useFormData.d.ts +5 -0
  154. package/dist/es/hook/useFormData.d.ts.map +1 -0
  155. package/dist/es/hook/useFormData.js +18 -0
  156. package/dist/es/hook/useFormErrors.d.ts +3 -0
  157. package/dist/es/hook/useFormErrors.d.ts.map +1 -0
  158. package/dist/es/hook/useFormErrors.js +14 -0
  159. package/dist/es/hook/useFormStore.d.ts +8 -0
  160. package/dist/es/hook/useFormStore.d.ts.map +1 -0
  161. package/dist/es/hook/useFormStore.js +26 -0
  162. package/dist/es/hook/useFormValidations.d.ts +9 -0
  163. package/dist/es/hook/useFormValidations.d.ts.map +1 -0
  164. package/dist/es/hook/useFormValidations.js +48 -0
  165. package/dist/es/hook/useRefEffect.d.ts +2 -0
  166. package/dist/es/hook/useRefEffect.d.ts.map +1 -0
  167. package/dist/es/hook/useRefEffect.js +10 -0
  168. package/dist/es/style/index.d.ts +7 -0
  169. package/dist/es/style/index.d.ts.map +1 -0
  170. package/dist/es/style/index.js +59 -0
  171. package/dist/es/type/common.d.ts +7 -0
  172. package/dist/es/type/common.d.ts.map +1 -0
  173. package/dist/es/type/common.js +2 -0
  174. package/dist/es/type/condition.d.ts +3 -0
  175. package/dist/es/type/condition.d.ts.map +1 -0
  176. package/dist/es/type/condition.js +2 -0
  177. package/dist/es/type/config.d.ts +18 -0
  178. package/dist/es/type/config.d.ts.map +1 -0
  179. package/dist/es/type/config.js +2 -0
  180. package/dist/es/type/extract.d.ts +25 -0
  181. package/dist/es/type/extract.d.ts.map +1 -0
  182. package/dist/es/type/extract.js +2 -0
  183. package/dist/es/type/field.d.ts +30 -0
  184. package/dist/es/type/field.d.ts.map +1 -0
  185. package/dist/es/type/field.js +2 -0
  186. package/dist/es/type/form.d.ts +30 -0
  187. package/dist/es/type/form.d.ts.map +1 -0
  188. package/dist/es/type/form.js +2 -0
  189. package/dist/es/type/index.d.ts +8 -0
  190. package/dist/es/type/index.d.ts.map +1 -0
  191. package/dist/es/type/index.js +23 -0
  192. package/dist/es/type/validation.d.ts +14 -0
  193. package/dist/es/type/validation.d.ts.map +1 -0
  194. package/dist/es/type/validation.js +2 -0
  195. package/dist/es/util/index.d.ts +11 -0
  196. package/dist/es/util/index.d.ts.map +1 -0
  197. package/dist/es/util/index.js +100 -0
  198. package/dist/es/validation/index.d.ts +4 -0
  199. package/dist/es/validation/index.d.ts.map +1 -0
  200. package/dist/es/validation/index.js +57 -0
  201. package/package.json +100 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormProvider = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const withFormData_1 = require("../hoc/withFormData");
7
+ const useFormValidations_1 = require("../hook/useFormValidations");
8
+ const util_1 = require("../util");
9
+ const context_1 = require("./context");
10
+ const context_2 = require("./data/context");
11
+ exports.FormProvider = (0, withFormData_1.withFormData)(({ config, validationStrategy = "blur", onInput: internalOnInput, inheritData, children }) => {
12
+ const externalForm = (0, context_1.useForm)();
13
+ const { data, editData } = (0, react_1.useContext)(context_2.FormDataContext);
14
+ const onInput = inheritData && externalForm ? externalForm.onInput : internalOnInput;
15
+ const fieldConfigs = (0, react_1.useMemo)(() => {
16
+ return (0, util_1.fieldsFromConfig)(config);
17
+ }, [config]);
18
+ const formValidations = (0, useFormValidations_1.useFormValidations)(config, fieldConfigs);
19
+ return ((0, jsx_runtime_1.jsx)(context_1.FormContext.Provider, { value: Object.assign(Object.assign({}, formValidations), { data,
20
+ editData,
21
+ fieldConfigs,
22
+ validationStrategy,
23
+ onInput }), children: children }));
24
+ });
@@ -0,0 +1,15 @@
1
+ import { Context } from "react";
2
+ import { FormStore } from "../hook/useFormStore";
3
+ import { FormValidations } from "../hook/useFormValidations";
4
+ import { DeepPartial, FormData, FormFieldConfig, FormInputFunc, FormValidationStrategy } from "../type";
5
+ interface FormContext<TData = FormData> extends FormValidations {
6
+ data: FormStore<TData>;
7
+ editData: FormStore<DeepPartial<TData>>;
8
+ fieldConfigs: Record<string, FormFieldConfig>;
9
+ validationStrategy: FormValidationStrategy;
10
+ onInput?: FormInputFunc;
11
+ }
12
+ export declare const FormContext: Context<FormContext<FormData>>;
13
+ export declare const useForm: <T = FormData>() => FormContext<T>;
14
+ export {};
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA6B,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACH,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,sBAAsB,EACzB,MAAM,SAAS,CAAC;AAEjB,UAAU,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAE,SAAQ,eAAe;IAC3D,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,OAAO,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,gCAAkE,CAAC;AAE3F,eAAO,MAAM,OAAO,GAAI,CAAC,gCAAoE,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useForm = exports.FormContext = void 0;
4
+ const react_1 = require("react");
5
+ exports.FormContext = (0, react_1.createContext)(undefined);
6
+ const useForm = () => (0, react_1.useContext)(exports.FormContext);
7
+ exports.useForm = useForm;
@@ -0,0 +1,19 @@
1
+ import React, { PropsWithChildren } from "react";
2
+ import { FormStore } from "../../hook/useFormStore";
3
+ import { FormConfig, FormData, FormInputFunc, FormValidationStrategy } from "../../type";
4
+ export interface FormProviderProps {
5
+ config: FormConfig;
6
+ data?: FormStore<FormData>;
7
+ errors?: FormStore<FormData>;
8
+ editData?: FormStore<FormData>;
9
+ initialData?: FormData;
10
+ inheritData?: boolean;
11
+ inheritErrors?: boolean;
12
+ validationStrategy?: FormValidationStrategy;
13
+ /**
14
+ * @deprecated Use the field config's 'onInput' callback instead
15
+ */
16
+ onInput?: FormInputFunc;
17
+ }
18
+ export declare const FormDataProvider: React.FC<PropsWithChildren<FormProviderProps>>;
19
+ //# sourceMappingURL=FormDataProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormDataProvider.d.ts","sourceRoot":"","sources":["../../../../context/data/FormDataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,SAAS,EAAgB,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACH,UAAU,EACV,QAAQ,EAER,aAAa,EACb,sBAAsB,EACzB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAsB3E,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.FormDataProvider = void 0;
15
+ const jsx_runtime_1 = require("react/jsx-runtime");
16
+ const react_1 = require("react");
17
+ const useFormStore_1 = require("../../hook/useFormStore");
18
+ const util_1 = require("../../util");
19
+ const context_1 = require("./context");
20
+ const FormDataProvider = (_a) => {
21
+ var { config, initialData, children } = _a, props = __rest(_a, ["config", "initialData", "children"]);
22
+ if (!config) {
23
+ throw new Error("Config is undefined");
24
+ }
25
+ const initialDataRef = (0, react_1.useRef)(Object.assign(Object.assign({}, (0, util_1.initialValuesFromConfig)(config)), (initialData !== null && initialData !== void 0 ? initialData : {})));
26
+ return ((0, jsx_runtime_1.jsx)(context_1.FormConfigContext.Provider, { value: { config }, children: (0, jsx_runtime_1.jsx)(FormDataReadyProvider, Object.assign({}, props, { initialData: initialDataRef.current, children: children })) }));
27
+ };
28
+ exports.FormDataProvider = FormDataProvider;
29
+ const FormDataReadyProvider = ({ initialData, inheritData, inheritErrors, children, data: inputData, editData: inputEditData, errors: inputErrors, }) => {
30
+ const externalContext = (0, react_1.useContext)(context_1.FormDataContext);
31
+ const internalData = (0, useFormStore_1.useFormStore)(initialData !== null && initialData !== void 0 ? initialData : {});
32
+ const internalEditData = (0, useFormStore_1.useFormStore)({});
33
+ const internalErrors = (0, useFormStore_1.useFormStore)({});
34
+ const data = inputData || (inheritData && externalContext ? externalContext.data : internalData);
35
+ const editData = inputEditData ||
36
+ (inheritData && externalContext ? externalContext.editData : internalEditData);
37
+ const errors = inputErrors || (inheritErrors && externalContext ? externalContext.errors : internalErrors);
38
+ return ((0, jsx_runtime_1.jsx)(context_1.FormDataContext.Provider, { value: { data, editData, errors }, children: children }));
39
+ };
@@ -0,0 +1,13 @@
1
+ import { FormStore } from "../../hook/useFormStore";
2
+ import { FormConfig, FormData, FormErrors } from "../../type";
3
+ export type FormConfigContext = {
4
+ config: FormConfig;
5
+ };
6
+ export declare const FormConfigContext: import("react").Context<FormConfigContext>;
7
+ export interface FormDataContext {
8
+ data: FormStore<FormData>;
9
+ editData: FormStore<FormData>;
10
+ errors: FormStore<FormErrors>;
11
+ }
12
+ export declare const FormDataContext: import("react").Context<FormDataContext>;
13
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../context/data/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,4CAE7B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,eAAe,0CAE3B,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormDataContext = exports.FormConfigContext = void 0;
4
+ const react_1 = require("react");
5
+ exports.FormConfigContext = (0, react_1.createContext)(undefined);
6
+ exports.FormDataContext = (0, react_1.createContext)(undefined);
@@ -0,0 +1,2 @@
1
+ export type { FormProviderProps } from "./FormDataProvider";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../context/data/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export * from "./data";
2
+ export { useForm } from "./context";
3
+ export { FormProvider } from "./FormProvider";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../context/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FormProvider = exports.useForm = void 0;
18
+ __exportStar(require("./data"), exports);
19
+ var context_1 = require("./context");
20
+ Object.defineProperty(exports, "useForm", { enumerable: true, get: function () { return context_1.useForm; } });
21
+ var FormProvider_1 = require("./FormProvider");
22
+ Object.defineProperty(exports, "FormProvider", { enumerable: true, get: function () { return FormProvider_1.FormProvider; } });
@@ -0,0 +1,6 @@
1
+ import { FormCustomConfig, FormEntryConfig, FormFieldBasicConfig, FormRowConfig, FormSectionConfig } from "../type";
2
+ export declare const entryIsSection: (entry: Pick<FormEntryConfig, "type">) => entry is FormSectionConfig;
3
+ export declare const entryIsRow: (entry: Pick<FormEntryConfig, "type">) => entry is FormRowConfig;
4
+ export declare const entryIsCustom: (entry: Pick<FormEntryConfig, "type">) => entry is FormCustomConfig;
5
+ export declare const entryIsField: (entry: Pick<FormEntryConfig, "type">) => entry is FormFieldBasicConfig<any>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../guard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACpB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,cAAc,UAChB,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KACrC,KAAK,IAAI,iBAEX,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAAG,KAAK,IAAI,aAE1E,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAAG,KAAK,IAAI,gBAE7E,CAAC;AAEF,eAAO,MAAM,YAAY,UACd,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,KAErC,KAAK,IAAI,oBAAoB,CAAC,GAAG,CAEnC,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.entryIsField = exports.entryIsCustom = exports.entryIsRow = exports.entryIsSection = void 0;
4
+ const entryIsSection = (entry) => {
5
+ return entry.type === "section";
6
+ };
7
+ exports.entryIsSection = entryIsSection;
8
+ const entryIsRow = (entry) => {
9
+ return entry.type === "row";
10
+ };
11
+ exports.entryIsRow = entryIsRow;
12
+ const entryIsCustom = (entry) => {
13
+ return entry.type === "custom";
14
+ };
15
+ exports.entryIsCustom = entryIsCustom;
16
+ const entryIsField = (entry
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ ) => {
19
+ return !(0, exports.entryIsSection)(entry) && !(0, exports.entryIsRow)(entry) && !(0, exports.entryIsCustom)(entry);
20
+ };
21
+ exports.entryIsField = entryIsField;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { FormProviderProps } from "../context/data/FormDataProvider";
3
+ export declare const withForm: <T>(WrappedComponent: React.ComponentType<FormProviderProps & T>) => {
4
+ (props: FormProviderProps & T): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };
7
+ //# sourceMappingURL=withForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withForm.d.ts","sourceRoot":"","sources":["../../../hoc/withForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,eAAO,MAAM,QAAQ,GAAI,CAAC,oBAAqB,KAAK,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAG/C,iBAAiB,GAAG,CAAC;;CAW9D,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withForm = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const context_1 = require("../context");
6
+ const withForm = (WrappedComponent) => {
7
+ const displayName = WrappedComponent.displayName || WrappedComponent.name || "Component";
8
+ const ComponentWithProvider = (props) => {
9
+ return ((0, jsx_runtime_1.jsx)(context_1.FormProvider, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)(WrappedComponent, Object.assign({}, props)) })));
10
+ };
11
+ ComponentWithProvider.displayName = `withForm(${displayName})`;
12
+ return ComponentWithProvider;
13
+ };
14
+ exports.withForm = withForm;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { FormProviderProps } from "../context/data/FormDataProvider";
3
+ export declare const withFormData: <T>(WrappedComponent: React.ComponentType<FormProviderProps & T>) => {
4
+ (props: FormProviderProps & T): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ };
7
+ //# sourceMappingURL=withFormData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withFormData.d.ts","sourceRoot":"","sources":["../../../hoc/withFormData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAEvF,eAAO,MAAM,YAAY,GAAI,CAAC,oBAAqB,KAAK,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAGnD,iBAAiB,GAAG,CAAC;;CAW9D,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withFormData = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const FormDataProvider_1 = require("../context/data/FormDataProvider");
6
+ const withFormData = (WrappedComponent) => {
7
+ const displayName = WrappedComponent.displayName || WrappedComponent.name || "Component";
8
+ const ComponentWithProvider = (props) => {
9
+ return ((0, jsx_runtime_1.jsx)(FormDataProvider_1.FormDataProvider, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)(WrappedComponent, Object.assign({}, props)) })));
10
+ };
11
+ ComponentWithProvider.displayName = `withFormData(${displayName})`;
12
+ return ComponentWithProvider;
13
+ };
14
+ exports.withFormData = withFormData;
@@ -0,0 +1,5 @@
1
+ import { FormData } from "../type";
2
+ import { FormStore } from "./useFormStore";
3
+ export declare const useFormData: <SelectorOutput>(selector: (store: FormData) => SelectorOutput) => [SelectorOutput, (value: Partial<FormData>) => void, () => FormData];
4
+ export declare const useData: <Store, SelectorOutput>(data: FormStore<Store>, selector: (store: Store) => SelectorOutput) => [SelectorOutput, (value: Partial<Store>) => void, () => Store];
5
+ //# sourceMappingURL=useFormData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormData.d.ts","sourceRoot":"","sources":["../../../hook/useFormData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,WAAW,GAAI,cAAc,YAC5B,CAAC,KAAK,EAAE,QAAQ,KAAK,cAAc,KAC9C,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,MAAM,QAAQ,CAQrE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,EAAE,cAAc,QACnC,SAAS,CAAC,KAAK,CAAC,YACZ,CAAC,KAAK,EAAE,KAAK,KAAK,cAAc,KAC3C,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,MAAM,KAAK,CAQ/D,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useData = exports.useFormData = void 0;
4
+ const react_1 = require("react");
5
+ const context_1 = require("../context/data/context");
6
+ const useFormData = (selector) => {
7
+ const { data } = (0, react_1.useContext)(context_1.FormDataContext);
8
+ if (!data) {
9
+ throw new Error("Store not found");
10
+ }
11
+ return (0, exports.useData)(data, selector);
12
+ };
13
+ exports.useFormData = useFormData;
14
+ const useData = (data, selector) => {
15
+ const state = (0, react_1.useSyncExternalStore)(data.subscribe, () => selector(data.get()), () => selector(data.initialValue));
16
+ return [state, data.set, data.get];
17
+ };
18
+ exports.useData = useData;
@@ -0,0 +1,3 @@
1
+ import { FormErrors } from "../type";
2
+ export declare const useFormErrors: <SelectorOutput>(selector: (store: FormErrors) => SelectorOutput) => [SelectorOutput, (value: Partial<FormErrors>) => void, () => FormErrors];
3
+ //# sourceMappingURL=useFormErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormErrors.d.ts","sourceRoot":"","sources":["../../../hook/useFormErrors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,aAAa,GAAI,cAAc,YAC9B,CAAC,KAAK,EAAE,UAAU,KAAK,cAAc,KAChD,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,MAAM,UAAU,CAczE,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFormErrors = void 0;
4
+ const react_1 = require("react");
5
+ const context_1 = require("../context/data/context");
6
+ const useFormErrors = (selector) => {
7
+ const { errors } = (0, react_1.useContext)(context_1.FormDataContext);
8
+ if (!errors) {
9
+ throw new Error("Store not found");
10
+ }
11
+ const state = (0, react_1.useSyncExternalStore)(errors.subscribe, () => selector(errors.get()), () => selector(errors.initialValue));
12
+ return [state, errors.set, errors.get];
13
+ };
14
+ exports.useFormErrors = useFormErrors;
@@ -0,0 +1,8 @@
1
+ export interface FormStore<Store> {
2
+ get: () => Store;
3
+ set: (value: Partial<Store>) => void;
4
+ subscribe: (callback: () => void) => () => void;
5
+ initialValue: Store;
6
+ }
7
+ export declare const useFormStore: <Store>(initialValue: Store) => FormStore<Store>;
8
+ //# sourceMappingURL=useFormStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormStore.d.ts","sourceRoot":"","sources":["../../../hook/useFormStore.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS,CAAC,KAAK;IAC5B,GAAG,EAAE,MAAM,KAAK,CAAC;IACjB,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,YAAY,EAAE,KAAK,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,gBAAgB,KAAK,KAAG,SAAS,CAAC,KAAK,CAyBxE,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFormStore = void 0;
4
+ const react_1 = require("react");
5
+ const useFormStore = (initialValue) => {
6
+ const store = (0, react_1.useRef)(initialValue);
7
+ const get = (0, react_1.useCallback)(() => store.current, []);
8
+ const subscribers = (0, react_1.useRef)(new Set());
9
+ const set = (0, react_1.useCallback)((value) => {
10
+ store.current = Object.assign(Object.assign({}, store.current), value);
11
+ subscribers.current.forEach(callback => callback());
12
+ }, []);
13
+ const subscribe = (0, react_1.useCallback)((callback) => {
14
+ subscribers.current.add(callback);
15
+ return () => subscribers.current.delete(callback);
16
+ }, []);
17
+ return (0, react_1.useMemo)(() => {
18
+ return {
19
+ get,
20
+ set,
21
+ subscribe,
22
+ initialValue,
23
+ };
24
+ }, [get, set, subscribe, initialValue]);
25
+ };
26
+ exports.useFormStore = useFormStore;
@@ -0,0 +1,9 @@
1
+ import { FormConfig, FormError, FormErrors, FormFieldBasicConfig, FormFieldConfig } from "../type";
2
+ export type FormValidations = ReturnType<typeof useFormValidations>;
3
+ export declare const useFormValidations: (config: FormConfig, fieldConfigs: Record<string, FormFieldConfig>) => {
4
+ errors: import("./useFormStore").FormStore<FormErrors>;
5
+ validateField: (field: FormFieldBasicConfig<any>, skipUpdate?: boolean) => FormError | null;
6
+ validateCategory: (category: string) => FormErrors;
7
+ validateForm: (input?: FormConfig, skipUpdate?: boolean) => FormErrors | null;
8
+ };
9
+ //# sourceMappingURL=useFormValidations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormValidations.d.ts","sourceRoot":"","sources":["../../../hook/useFormValidations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAInG,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB,WACnB,UAAU,gBACJ,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;;2BAsDjC,oBAAoB,CAAC,GAAG,CAAC,eAAe,OAAO,KAAG,SAAS,GAAG,IAAI;iCAxB/D,MAAM;2BAvBT,UAAU,eAAmC,OAAO,KAAG,UAAU,GAAG,IAAI;CA4DvF,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFormValidations = void 0;
4
+ const react_1 = require("react");
5
+ const context_1 = require("../context/data/context");
6
+ const validation_1 = require("../validation");
7
+ const useRefEffect_1 = require("./useRefEffect");
8
+ const useFormValidations = (config, fieldConfigs) => {
9
+ const configRef = (0, useRefEffect_1.useRefEffect)(config);
10
+ const fieldConfigsRef = (0, useRefEffect_1.useRefEffect)(fieldConfigs);
11
+ const { data, errors } = (0, react_1.useContext)(context_1.FormDataContext);
12
+ const validateForm = (0, react_1.useCallback)((input = configRef.current, skipUpdate) => {
13
+ const formErrors = (0, validation_1.handleValidateConfig)(input, fieldConfigsRef.current, data.get());
14
+ if (!skipUpdate) {
15
+ errors.set(formErrors);
16
+ }
17
+ const filteredErrors = Object.keys(formErrors).reduce((acc, key) => {
18
+ const error = formErrors[key];
19
+ if (error !== false && error !== undefined) {
20
+ acc[key] = error;
21
+ }
22
+ return acc;
23
+ }, {});
24
+ return Object.keys(filteredErrors).length ? filteredErrors : null;
25
+ }, [configRef, fieldConfigsRef, data, errors]);
26
+ const validateCategory = (0, react_1.useCallback)((category) => {
27
+ const fieldConfigs = fieldConfigsRef.current;
28
+ const formErrors = (0, validation_1.handleValidateConfig)(Object.keys(fieldConfigs).flatMap(key => {
29
+ const fieldConfig = fieldConfigs[key];
30
+ return fieldConfig.categories && fieldConfig.categories.includes(category)
31
+ ? fieldConfig
32
+ : [];
33
+ }), fieldConfigs, data.get());
34
+ errors.set(formErrors);
35
+ return formErrors;
36
+ }, [fieldConfigsRef, data, errors]);
37
+ const validateField = (0, react_1.useCallback)(
38
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
+ (field, skipUpdate) => {
40
+ const formErrors = (0, validation_1.handleValidateField)(field, fieldConfigsRef.current, data.get());
41
+ if (!skipUpdate) {
42
+ errors.set(formErrors);
43
+ }
44
+ return formErrors[field.name] || null;
45
+ }, [fieldConfigsRef, data, errors]);
46
+ return { errors, validateField, validateCategory, validateForm };
47
+ };
48
+ exports.useFormValidations = useFormValidations;
@@ -0,0 +1,2 @@
1
+ export declare const useRefEffect: <T>(state: T) => import("react").MutableRefObject<T>;
2
+ //# sourceMappingURL=useRefEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRefEffect.d.ts","sourceRoot":"","sources":["../../../hook/useRefEffect.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,CAAC,wCAKvC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useRefEffect = void 0;
4
+ const react_1 = require("react");
5
+ const useRefEffect = (state) => {
6
+ const value = (0, react_1.useRef)(state);
7
+ value.current = state;
8
+ return value;
9
+ };
10
+ exports.useRefEffect = useRefEffect;
@@ -0,0 +1,7 @@
1
+ export declare const DefaultBuilderWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const DefaultSectionWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const DefaultRowWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const DefaultFieldWrapper: import("styled-components").StyledComponent<"div", any, {
5
+ columns?: number;
6
+ }, never>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../style/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,oEASjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,oEAiBjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,oEAa7B,CAAC;AAEF,eAAO,MAAM,mBAAmB;cAA0B,MAAM;SAS/D,CAAC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DefaultFieldWrapper = exports.DefaultRowWrapper = exports.DefaultSectionWrapper = exports.DefaultBuilderWrapper = void 0;
7
+ const styled_components_1 = __importDefault(require("styled-components"));
8
+ exports.DefaultBuilderWrapper = styled_components_1.default.div `
9
+ display: flex;
10
+ flex-direction: column;
11
+ justify-content: flex-start;
12
+ gap: 1rem;
13
+
14
+ ${p => p.theme.breakpoints.min("l")} {
15
+ gap: 2rem;
16
+ }
17
+ `;
18
+ exports.DefaultSectionWrapper = styled_components_1.default.div `
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 1rem;
22
+ margin-bottom: 2rem;
23
+
24
+ &:last-child {
25
+ margin-bottom: 0;
26
+ }
27
+
28
+ ${p => p.theme.breakpoints.min("m")} {
29
+ margin-bottom: 3rem;
30
+ }
31
+
32
+ ${p => p.theme.breakpoints.min("l")} {
33
+ gap: 2rem;
34
+ }
35
+ `;
36
+ exports.DefaultRowWrapper = styled_components_1.default.div `
37
+ display: flex;
38
+ flex-direction: column;
39
+ align-items: flex-start;
40
+ gap: 1rem;
41
+
42
+ ${p => p.theme.breakpoints.min("m")} {
43
+ flex-direction: row;
44
+ }
45
+
46
+ ${p => p.theme.breakpoints.min("l")} {
47
+ gap: 2rem;
48
+ }
49
+ `;
50
+ exports.DefaultFieldWrapper = styled_components_1.default.div `
51
+ ${p => p.theme.breakpoints.max("m")} {
52
+ width: 100%;
53
+ }
54
+
55
+ ${p => p.theme.breakpoints.min("m")} {
56
+ flex: 1 1 0;
57
+ max-width: ${p => p.columns && `calc(${100 * (p.columns / 12)}% - 1rem)`};
58
+ }
59
+ `;
@@ -0,0 +1,7 @@
1
+ export type DeepPartial<T> = T extends object ? {
2
+ [P in keyof T]?: DeepPartial<T[P]>;
3
+ } : T;
4
+ export type NonNullableKey<T, K extends keyof T> = T extends object ? T & {
5
+ [P in K]-?: NonNullable<T[P]>;
6
+ } : T;
7
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../type/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACvC;KACK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,GACD,CAAC,CAAC;AAER,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAC7D,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export type FormConditions = Record<string, string | boolean | ((value: any) => boolean)>;
2
+ export type FormFieldConditions = readonly (FormConditions | readonly FormConditions[])[];
3
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../type/condition.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,cAAc,GAAG,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from "react";
2
+ import { FormFieldConfig } from "./field";
3
+ export interface FormRowConfig {
4
+ type: "row";
5
+ content: readonly FormEntryConfig[];
6
+ }
7
+ export interface FormSectionConfig {
8
+ type: "section";
9
+ content: readonly FormEntryConfig[];
10
+ }
11
+ export interface FormCustomConfig {
12
+ type: "custom";
13
+ wrapper: (children: ReactNode) => ReactNode;
14
+ content: readonly FormEntryConfig[];
15
+ }
16
+ export type FormEntryConfig = FormCustomConfig | FormSectionConfig | FormRowConfig | FormFieldConfig;
17
+ export type FormConfig = readonly FormEntryConfig[];
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../type/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC;IAC5C,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,eAAe,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,eAAe,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,SAAS,eAAe,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,25 @@
1
+ import { FormConfig } from "./config";
2
+ import { FormFieldConfig } from "./field";
3
+ export type Prettify<T> = {
4
+ [K in keyof T]: T[K];
5
+ } & unknown;
6
+ export type FormFieldInfer<Type, Config = FormFieldConfig> = Config extends {
7
+ type: Type;
8
+ initialValue?: infer InitialValue;
9
+ } ? InitialValue : never;
10
+ export type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
11
+ export type FormInfer<Config extends FormConfig, Acc = object> = Config extends readonly [
12
+ infer Entry,
13
+ ...infer Rest
14
+ ] ? Entry extends {
15
+ content: infer Content;
16
+ } ? Prettify<UnionToIntersection<FormInfer<Extract<Content, FormConfig>, Acc> & FormInfer<Extract<Rest, FormConfig>, Acc>>> : Entry extends {
17
+ type: infer Type;
18
+ name: infer Name;
19
+ onInput?: infer InputFn;
20
+ } ? InputFn extends (...args: any) => infer Input ? FormInfer<Extract<Rest, FormConfig>, Prettify<UnionToIntersection<{
21
+ [key in keyof Input]?: FormFieldInfer<Type>;
22
+ } & Acc>>> : FormInfer<Extract<Rest, FormConfig>, Prettify<UnionToIntersection<{
23
+ [key in Extract<Name, string>]?: FormFieldInfer<Type>;
24
+ } & Acc>>> : Acc : Acc;
25
+ //# sourceMappingURL=extract.d.ts.map