@paragrav/rhf-utils 0.1.0 → 0.60.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 (213) hide show
  1. package/README.md +260 -121
  2. package/dist/dts/Register.d.ts +16 -0
  3. package/dist/dts/_exports/config.d.ts +2 -0
  4. package/dist/dts/_exports/errors.d.ts +3 -0
  5. package/dist/dts/_exports/form.d.ts +7 -0
  6. package/dist/dts/_exports/index.d.ts +14 -0
  7. package/dist/dts/_exports/relay.d.ts +8 -0
  8. package/dist/dts/_exports/submit.d.ts +4 -0
  9. package/dist/dts/_exports/trpc.d.ts +2 -0
  10. package/dist/dts/_exports/types.d.ts +6 -0
  11. package/dist/dts/_exports/zod.d.ts +6 -0
  12. package/dist/dts/client/config/RhfUtilsClientConfigType.d.ts +63 -0
  13. package/dist/dts/client/config/context/RhfUtilsClientConfigContext.d.ts +3 -0
  14. package/dist/dts/client/config/context/RhfUtilsClientConfigProvider.d.ts +7 -0
  15. package/dist/dts/client/config/context/useRhfUtilsClientConfig.d.ts +1 -0
  16. package/dist/{types → dts}/devtool/LazyDevTool.d.ts +3 -4
  17. package/dist/dts/devtool/LazyDevToolViaProviders.d.ts +1 -0
  18. package/dist/{types → dts}/errors/flat/FlatFieldErrorsList.d.ts +2 -2
  19. package/dist/{types → dts}/errors/flat/context/FlatFieldErrorsContextProvider.d.ts +3 -3
  20. package/dist/{types → dts}/errors/flat/context/useFlatFieldErrorsContext.d.ts +1 -2
  21. package/dist/dts/errors/flat/context/useFlatFieldErrorsContextHasOnlyOrphans.d.ts +6 -0
  22. package/dist/{types → dts}/errors/flat/context/useFlatFieldErrorsContextOutput.d.ts +1 -2
  23. package/dist/dts/errors/flat/filterFlatFieldErrors.d.ts +7 -0
  24. package/dist/{types → dts}/errors/flat/flattenFieldErrors.d.ts +1 -2
  25. package/dist/{types → dts}/errors/flat/getFlatFieldErrors.d.ts +2 -1
  26. package/dist/dts/errors/getRefdFromFlatFieldErrors.d.ts +1 -0
  27. package/dist/{types → dts}/errors/isFieldErrorRefd.d.ts +1 -2
  28. package/dist/dts/errors/isFlatFieldErrorEntryRefd.d.ts +5 -0
  29. package/dist/{types → dts}/errors/message/FormErrorMessage.d.ts +2 -2
  30. package/dist/{types → dts}/errors/message/RhfUtilsFieldErrorMessage.d.ts +2 -2
  31. package/dist/{types → dts}/errors/nonfield/RhfUtilsNonFieldErrorMarker.d.ts +2 -2
  32. package/dist/dts/errors/nonfield/RhfUtilsNonFieldErrorMarkerHtmlAttribute.d.ts +4 -0
  33. package/dist/{types → dts}/errors/nonfield/isNonFieldError.d.ts +1 -2
  34. package/dist/dts/errors/nonfield/isNonFieldErrorMarkerInDOM.d.ts +5 -0
  35. package/dist/dts/errors/orphan/getIsOrphanFormErrorWithParentElement.d.ts +5 -0
  36. package/dist/dts/errors/orphan/getOrphansFromFlatFieldErrors.d.ts +2 -0
  37. package/dist/dts/errors/orphan/isOrphanFormError.d.ts +2 -0
  38. package/dist/dts/errors/output/consoleErrors.d.ts +5 -0
  39. package/dist/dts/errors/root/RootErrorsListFromFlatFieldErrorsContext.d.ts +1 -0
  40. package/dist/dts/errors/root/getRootsFromFlatFieldErrors.d.ts +1 -0
  41. package/dist/{types → dts}/errors/root/isFlatFieldErrorEntryPathRoot.d.ts +1 -2
  42. package/dist/{types → dts}/errors/root/isFormErrorPathRoot.d.ts +1 -2
  43. package/dist/{types → dts}/errors/trpc/makeOnSubmitTrpcClientErrorHandler.d.ts +2 -3
  44. package/dist/dts/errors/trpc/trpcClientErrorMessageSchema.d.ts +19 -0
  45. package/dist/dts/errors/trpc/trpcClientErrorToFormSubmitFieldErrorsSchemaTransformer.d.ts +23 -0
  46. package/dist/dts/form/RHF_UseFormReturnWithoutProxiesType.d.ts +15 -0
  47. package/dist/dts/form/RhfUtilsFormComponentPropsType.d.ts +17 -0
  48. package/dist/dts/form/RhfUtilsFormStateWithUtilsType.d.ts +7 -0
  49. package/dist/dts/form/UseRhfUtilsFormChildrenPropsType.d.ts +25 -0
  50. package/dist/dts/form/_Controller.d.ts +4 -0
  51. package/dist/dts/form/context/utils/RhfUtilsContextPropsType.d.ts +11 -0
  52. package/dist/dts/form/context/utils/RhfUtilsContextProvider.d.ts +9 -0
  53. package/dist/dts/form/context/utils/useRhfUtilsContext.d.ts +5 -0
  54. package/dist/dts/form/context/utils/useRhfUtilsContextRequestSubmit.d.ts +4 -0
  55. package/dist/dts/form/defaults/UseRhfUtilsFormGlobalDefaults.d.ts +24 -0
  56. package/dist/dts/form/defaults/UseRhfUtilsFormInstanceDefaults.d.ts +18 -0
  57. package/dist/dts/form/defaults/UseRhfUtilsFormResolvedDefaultsType.d.ts +12 -0
  58. package/dist/dts/form/defaults/form/UseRhfUtilsFormInstanceFormProps.d.ts +6 -0
  59. package/dist/dts/form/defaults/form/getRhfUtilsFormResolvedFormProps.d.ts +2 -0
  60. package/dist/dts/form/defaults/form/useRhfUtilsFormResolvedFormProps.d.ts +293 -0
  61. package/dist/{types/form/RhfUtilsFormOptions.d.ts → dts/form/options/RhfUtilsFormOptionsType.d.ts} +6 -7
  62. package/dist/dts/form/options/getRhfUtilsFormResolvedOptions.d.ts +2 -0
  63. package/dist/dts/form/options/useRhfUtilsFormResolvedOptions.d.ts +8 -0
  64. package/dist/dts/form/providers/RhfUtilsFormProviders.d.ts +6 -0
  65. package/dist/dts/form/providers/RhfUtilsFormProvidersPropsType.d.ts +15 -0
  66. package/dist/dts/form/rhf/UseFormPropsType.d.ts +4 -0
  67. package/dist/dts/form/rhf/getRhfUtilsFormResolvedRhfProps.d.ts +4 -0
  68. package/dist/dts/form/rhf/useRhfFormWithResolvedProps.d.ts +5 -0
  69. package/dist/dts/form/state/relay/FormStateRelayContextProvider.d.ts +4 -0
  70. package/dist/dts/form/state/relay/FormStateRelayedAggregatedType.d.ts +10 -0
  71. package/dist/dts/form/state/relay/FormStateRelayedItemType.d.ts +11 -0
  72. package/dist/dts/form/state/relay/FormStateRelayedOptionsType.d.ts +20 -0
  73. package/dist/dts/form/state/relay/FormStateRelayedType.d.ts +3 -0
  74. package/dist/dts/form/state/relay/pull/hooks.d.ts +31 -0
  75. package/dist/dts/form/state/relay/push/FormStateRelayPusher.d.ts +4 -0
  76. package/dist/dts/form/state/relay/push/useFormStateRelayPusher.d.ts +3 -0
  77. package/dist/dts/form/state/relay/useFormStateRelayContext.d.ts +20 -0
  78. package/dist/dts/form/state/relay/utils.d.ts +4 -0
  79. package/dist/dts/form/utils/getSubmitterButtonData.d.ts +6 -0
  80. package/dist/{types → dts}/form/utils/useFormRequestSubmit.d.ts +1 -2
  81. package/dist/dts/form/utils/useHandleCancelWithCheckIfCanBe.d.ts +4 -0
  82. package/dist/dts/form/utils/useHandleCancelWithCheckIfCanBeViaProviders.d.ts +2 -0
  83. package/dist/{types → dts}/form/utils/useShouldFormBlockNavigation.d.ts +1 -2
  84. package/dist/dts/form/with-handlers-and-children/RhfUtilsForm.d.ts +3 -0
  85. package/dist/dts/form/with-handlers-and-children/RhfUtilsFormProps.d.ts +46 -0
  86. package/dist/dts/form/with-handlers-and-children/_ChildrenViaProviders.d.ts +3 -0
  87. package/dist/dts/form/with-handlers-and-children/_FormWithSubmitHandler.d.ts +4 -0
  88. package/dist/dts/form/with-handlers-and-children/_useHandleSubmit.d.ts +11 -0
  89. package/dist/dts/form/with-providers/RhfUtilsFormWithProviders.d.ts +8 -0
  90. package/dist/dts/form/with-providers/RhfUtilsFormWithProvidersProps.d.ts +4 -0
  91. package/dist/dts/resolvers/ObjectSchema.d.ts +7 -0
  92. package/dist/dts/resolvers/zod/RhfUtilsUseZodFormChildrenFCType.d.ts +7 -0
  93. package/dist/dts/resolvers/zod/RhfUtilsUseZodFormChildrenPropsType.d.ts +4 -0
  94. package/dist/dts/resolvers/zod/ZodTypeSafeFieldValuesType.d.ts +5 -0
  95. package/dist/dts/resolvers/zod/consts.d.ts +4 -0
  96. package/dist/dts/resolvers/zod/form/RhfUtilsZodForm.d.ts +7 -0
  97. package/dist/dts/resolvers/zod/getZodResolver.d.ts +4 -0
  98. package/dist/dts/resolvers/zod/providers/RhfUtilsZodFormProviders.d.ts +8 -0
  99. package/dist/dts/resolvers/zod/with-providers/RhfUtilsZodFormWithProviders.d.ts +10 -0
  100. package/dist/dts/submit/UseRhfUtilsFormOnSubmitContextType.d.ts +23 -0
  101. package/dist/dts/submit/error/FormSubmitError.d.ts +6 -0
  102. package/dist/{types → dts}/submit/error/FormSubmitFieldErrors.d.ts +1 -1
  103. package/dist/dts/submit/error/setCtxErrorsByFormSubmitFieldErrors.d.ts +8 -0
  104. package/dist/dts/submit/last-error/LastSubmitErrorContextProvider.d.ts +4 -0
  105. package/dist/dts/submit/last-error/LastSubmitErrorContextType.d.ts +8 -0
  106. package/dist/dts/submit/last-error/useLastSubmitError.d.ts +4 -0
  107. package/dist/dts/submit/last-error/useLastSubmitErrorContext.d.ts +3 -0
  108. package/dist/dts/submit/last-error/useLastSubmitErrorContextWith.d.ts +2 -0
  109. package/dist/{types → dts}/submit/useFormOnSubmitSuccessfulAndReset.d.ts +1 -2
  110. package/dist/dts/submit/useFormOnSubmitted.d.ts +4 -0
  111. package/dist/{types → dts}/submit/useResetFormOnSubmitted.d.ts +1 -2
  112. package/dist/dts/submit/useRhfUtilsFormOnSubmitContext.d.ts +3 -0
  113. package/dist/dts/submit/useSubmitFormOnChange.d.ts +15 -0
  114. package/dist/dts/submit/useSubmitFormOnEvent.d.ts +9 -0
  115. package/dist/dts/submit/useSubmitFormOnWatch.d.ts +14 -0
  116. package/dist/dts/utils/PassthroughChildren.d.ts +7 -0
  117. package/dist/{types → dts}/utils/createContext.d.ts +1 -2
  118. package/dist/dts/utils/fixedForwardRef.d.ts +5 -0
  119. package/dist/dts/utils/isEmptyObject.d.ts +1 -0
  120. package/dist/dts/utils/types.d.ts +3 -0
  121. package/dist/{types → dts}/utils/useImperativeForwardedRef.d.ts +1 -2
  122. package/dist/dts/utils/useIsFirstRender.d.ts +7 -0
  123. package/dist/dts/utils/useRefIfValueWasTrue.d.ts +2 -0
  124. package/dist/dts/utils/useToggle.d.ts +2 -0
  125. package/dist/dts/vite-env.d.ts +1 -0
  126. package/dist/esm/getFlatFieldErrors.mjs +55 -0
  127. package/dist/esm/index.mjs +503 -390
  128. package/dist/esm/relay.mjs +222 -0
  129. package/dist/esm/trpc.mjs +8 -9
  130. package/package.json +91 -72
  131. package/LICENSE.md +0 -21
  132. package/dist/esm/createContext.mjs +0 -16
  133. package/dist/esm/group.mjs +0 -74
  134. package/dist/esm/useFlatFieldErrorsContext.mjs +0 -10
  135. package/dist/esm/utils.mjs +0 -20
  136. package/dist/types/_exports/group.d.ts +0 -9
  137. package/dist/types/_exports/index.d.ts +0 -15
  138. package/dist/types/_exports/trpc.d.ts +0 -2
  139. package/dist/types/_exports/utils.d.ts +0 -1
  140. package/dist/types/client/config/RhfUtilsClientConfig.d.ts +0 -70
  141. package/dist/types/client/config/useRhfUtilsClientConfigContext.d.ts +0 -4
  142. package/dist/types/client/context.d.ts +0 -2
  143. package/dist/types/client/index.d.ts +0 -24
  144. package/dist/types/client/utils.d.ts +0 -12
  145. package/dist/types/client/zod/RhfUtilsUseFormChildrenZodFC.d.ts +0 -12
  146. package/dist/types/client/zod/RhfUtilsUseFormChildrenZodProps.d.ts +0 -4
  147. package/dist/types/client/zod/ZodTypeFieldValues.d.ts +0 -3
  148. package/dist/types/client/zod/consts.d.ts +0 -4
  149. package/dist/types/client/zod/context/RhfUtilsClientForZodContextProvider.d.ts +0 -7
  150. package/dist/types/client/zod/context/RhfUtilsZodForm.d.ts +0 -8
  151. package/dist/types/client/zod/context/useRhfUtilsClientForZodContext.d.ts +0 -5
  152. package/dist/types/client/zod/context/useRhfUtilsZodForm.d.ts +0 -7
  153. package/dist/types/client/zod/createRhfUtilsClientForZod.d.ts +0 -3
  154. package/dist/types/errors/flat/context/useFlatFieldErrorsContextHasOnlyOrphans.d.ts +0 -7
  155. package/dist/types/errors/flat/filterFlatFieldErrors.d.ts +0 -8
  156. package/dist/types/errors/getRefdFromFlatFieldErrors.d.ts +0 -2
  157. package/dist/types/errors/isFlatFieldErrorEntryRefd.d.ts +0 -6
  158. package/dist/types/errors/nonfield/RhfUtilsNonFieldErrorMarkerHtmlAttribute.d.ts +0 -5
  159. package/dist/types/errors/nonfield/isNonFieldErrorMarkerInDOM.d.ts +0 -6
  160. package/dist/types/errors/orphan/getIsOrphanFormErrorWithParentElement.d.ts +0 -6
  161. package/dist/types/errors/orphan/getOrphansFromFlatFieldErrors.d.ts +0 -3
  162. package/dist/types/errors/orphan/isOrphanFormError.d.ts +0 -3
  163. package/dist/types/errors/output/consoleErrors.d.ts +0 -6
  164. package/dist/types/errors/root/RootErrorsListFromFlatFieldErrorsContext.d.ts +0 -2
  165. package/dist/types/errors/root/getRootsFromFlatFieldErrors.d.ts +0 -2
  166. package/dist/types/errors/trpc/trpcClientErrorMessageSchema.d.ts +0 -23
  167. package/dist/types/errors/trpc/trpcClientErrorToFormSubmitFieldErrorsSchemaTransformer.d.ts +0 -27
  168. package/dist/types/form/Form.d.ts +0 -10
  169. package/dist/types/form/FormWithProviders.d.ts +0 -12
  170. package/dist/types/form/RhfUtilsFormProviders.d.ts +0 -11
  171. package/dist/types/form/UseRhfUtilsFormChildrenProps.d.ts +0 -23
  172. package/dist/types/form/UseRhfUtilsFormOnSubmitContext.d.ts +0 -28
  173. package/dist/types/form/UseRhfUtilsFormProps.d.ts +0 -22
  174. package/dist/types/form/UseRhfUtilsFormReturn.d.ts +0 -19
  175. package/dist/types/form/_Controller.d.ts +0 -5
  176. package/dist/types/form/context/group/FormGroupContextProvider.d.ts +0 -4
  177. package/dist/types/form/context/group/index.d.ts +0 -14
  178. package/dist/types/form/context/group/useFormGroupChildIsMountedTracker.d.ts +0 -5
  179. package/dist/types/form/context/group/useFormGroupChildIsSubmittingTracker.d.ts +0 -5
  180. package/dist/types/form/context/group/useFormGroupChildTracker.d.ts +0 -6
  181. package/dist/types/form/context/group/useFormGroupIsAnyBusy.d.ts +0 -2
  182. package/dist/types/form/context/group/useFormGroupIsChildBusy.d.ts +0 -2
  183. package/dist/types/form/context/group/useFormGroupIsParentBusy.d.ts +0 -2
  184. package/dist/types/form/context/group/useFormGroupParentTracker.d.ts +0 -7
  185. package/dist/types/form/context/group/useFormOrParentIsBusy.d.ts +0 -2
  186. package/dist/types/form/context/utils/RhfUtilsContextProvider.d.ts +0 -8
  187. package/dist/types/form/context/utils/useRhfUtilsContext.d.ts +0 -13
  188. package/dist/types/form/context/utils/useRhfUtilsContextRequestSubmit.d.ts +0 -5
  189. package/dist/types/form/useFormIsBusy.d.ts +0 -2
  190. package/dist/types/form/useRhfUtilsForm.d.ts +0 -15
  191. package/dist/types/form/utils/getSubmitterButtonData.d.ts +0 -7
  192. package/dist/types/register.d.ts +0 -7
  193. package/dist/types/submit/error/FormSubmitError.d.ts +0 -6
  194. package/dist/types/submit/error/setCtxErrorsByFormSubmitFieldErrors.d.ts +0 -9
  195. package/dist/types/submit/useFormOnSubmitted.d.ts +0 -5
  196. package/dist/types/submit/useSubmitFormOnChange.d.ts +0 -8
  197. package/dist/types/utils/PassthroughChildren.d.ts +0 -7
  198. package/dist/types/utils/fixedForwardRef.d.ts +0 -6
  199. package/dist/types/utils/isEmptyObject.d.ts +0 -2
  200. package/dist/types/utils/types.d.ts +0 -1
  201. package/dist/types/utils/useRefIfValueWasTrue.d.ts +0 -2
  202. package/dist/types/utils/useThrowAsyncError.d.ts +0 -5
  203. package/dist/types/utils/useToggle.d.ts +0 -3
  204. /package/dist/{types → dts}/errors/flat/context/FlatFieldErrorsOutputConfig.d.ts +0 -0
  205. /package/dist/{types → dts}/errors/flat/types.d.ts +0 -0
  206. /package/dist/{types → dts}/errors/nonfield/RhfUtilsNonFieldErrorMarker.spec.d.ts +0 -0
  207. /package/dist/{types → dts}/errors/nonfield/RhfUtilsNonFieldErrorMarker.utils.d.ts +0 -0
  208. /package/dist/{types → dts}/errors/output/types.d.ts +0 -0
  209. /package/dist/{types → dts}/errors/root/consts.d.ts +0 -0
  210. /package/dist/{types/form/SafeFieldValues.d.ts → dts/form/rhf/SafeFieldValuesType.d.ts} +0 -0
  211. /package/dist/{types → dts}/main.d.ts +0 -0
  212. /package/dist/{types → dts}/utils/timeoutAsync.d.ts +0 -0
  213. /package/dist/{types → dts}/utils/useDebouncedOnChangeValue.d.ts +0 -0
@@ -1,133 +1,294 @@
1
- import { jsx as i, Fragment as Z, jsxs as L } from "react/jsx-runtime";
2
- import a from "react";
3
- import { c as C } from "./createContext.mjs";
4
- import { zodResolver as z } from "@hookform/resolvers/zod";
5
- import { useFormContext as b, Controller as I, get as A, useFormState as x, FormProvider as $, useForm as H } from "react-hook-form";
6
- import { i as y, _ as Q, u as g } from "./useFlatFieldErrorsContext.mjs";
7
- import { flatten as G } from "flat";
8
- const {
9
- Provider: J,
10
- useMaybe: _
11
- } = C(), K = a.lazy(
12
- () => import("@hookform/devtools").then((r) => ({
13
- default: r.DevTool
14
- }))
15
- ), X = ({ enabled: r, props: t }) => {
16
- if (!r) return null;
17
- const { control: e } = b();
18
- return /* @__PURE__ */ i(a.Suspense, { fallback: null, children: /* @__PURE__ */ i(K, { control: e, ...t }) });
1
+ import { jsx as c, jsxs as X } from "react/jsx-runtime";
2
+ import u from "react";
3
+ import { c as L, u as v, g as Y, i as D, _ as tt } from "./getFlatFieldErrors.mjs";
4
+ import { Controller as rt, useFormContext as b, useFormState as I, useWatch as et, useForm as ot, FormProvider as st } from "react-hook-form";
5
+ import { zodResolver as nt } from "@hookform/resolvers/zod";
6
+ const B = u.createContext(void 0), er = ({
7
+ config: t,
8
+ children: r
9
+ }) => {
10
+ const [e] = u.useState(t ?? {});
11
+ return /* @__PURE__ */ c(B.Provider, { value: e, children: r });
12
+ }, {
13
+ Provider: it,
14
+ useRequired: M
15
+ } = L(), or = () => {
16
+ const t = M();
17
+ return u.useMemo(() => !t.hasErrors || !t.hasOrphans ? !1 : Object.keys(t.orphans).length === Object.keys(t.all).length, [t]);
18
+ }, N = "data-rhfutils-nonfield-error-marker-path", sr = ({ path: t }) => {
19
+ const r = {
20
+ [N]: t
21
+ };
22
+ return /* @__PURE__ */ c(
23
+ "div",
24
+ {
25
+ role: "alert",
26
+ "aria-hidden": "true",
27
+ style: { display: "none" },
28
+ ...r
29
+ }
30
+ );
31
+ }, ut = (t) => u.useCallback(
32
+ (r) => {
33
+ if (!t.current) throw new Error();
34
+ ct(t.current, r);
35
+ },
36
+ [t]
37
+ ), ct = (t, r) => {
38
+ t.requestSubmit(r);
19
39
  };
20
- class F extends Error {
21
- constructor(t, e) {
22
- super(e), this.errors = t;
40
+ class E extends Error {
41
+ constructor(r, e) {
42
+ super(e), this.errors = r;
23
43
  }
24
44
  }
25
- const Y = (r, t) => {
26
- Object.entries(t).forEach(([e, o]) => {
27
- r.setError(e, {
45
+ const {
46
+ Provider: lt,
47
+ useRequired: q
48
+ } = L(), nr = () => q().current, at = u.lazy(
49
+ () => import("@hookform/devtools").then((t) => ({
50
+ default: t.DevTool
51
+ }))
52
+ ), mt = ({ config: t }) => {
53
+ const [r] = u.useState(t);
54
+ if (!r) return null;
55
+ const e = typeof r == "object" ? r : void 0;
56
+ return /* @__PURE__ */ c(u.Suspense, { children: /* @__PURE__ */ c(at, { ...e }) });
57
+ }, ft = () => {
58
+ const t = v();
59
+ return /* @__PURE__ */ c(mt, { config: t.options.devTool });
60
+ }, H = (t) => /* @__PURE__ */ c(rt, { ...t }), R = () => {
61
+ const t = u.useContext(B);
62
+ if (t === void 0) throw new Error();
63
+ return t;
64
+ }, dt = () => {
65
+ const t = v(), r = b();
66
+ return {
67
+ utils: t,
68
+ rhf: r,
69
+ FormSubmitError: E
70
+ };
71
+ }, ht = (t, r, e) => {
72
+ const o = r?.();
73
+ return async () => {
74
+ if (!(!t || await Promise.resolve(
75
+ o?.(e)
76
+ ) === !1))
77
+ return Promise.resolve(t());
78
+ };
79
+ }, Ft = (t) => {
80
+ const { useCanFormBeCancelled: r } = R(), e = dt();
81
+ return ht(
82
+ t,
83
+ r,
84
+ e
85
+ );
86
+ }, bt = ({
87
+ onCancel: t,
88
+ Children: r
89
+ }) => {
90
+ const e = b(), o = v(), s = Ft(t);
91
+ return /* @__PURE__ */ c(
92
+ r,
93
+ {
94
+ ...o,
95
+ rhf: e,
96
+ onCancel: s,
97
+ Controller: H,
98
+ FormSubmitError: E
99
+ }
100
+ );
101
+ }, St = (t, r) => {
102
+ Object.entries(r).forEach(([e, o]) => {
103
+ t.setError(e, {
28
104
  type: "FormSubmitFieldError",
29
105
  // default
30
106
  ...o
31
107
  });
32
108
  });
33
- }, rr = ({
34
- children: r
35
- }) => /* @__PURE__ */ i(Z, { children: r });
36
- function O(r) {
37
- return /* @__PURE__ */ i(I, { ...r });
38
- }
39
- function er({
40
- formId: r,
41
- formRef: t,
42
- //
43
- onSubmit: e,
44
- onSubmitError: o,
45
- onSubmitInvalid: s,
46
- Children: n,
47
- //
48
- form: l,
49
- utils: u
50
- }) {
51
- const m = b(), d = _(), c = async (h) => {
52
- u != null && u.stopSubmitPropagation && h.stopPropagation();
109
+ }, pt = (t, r, e) => ({
110
+ ...t,
111
+ ...r,
112
+ className: [t?.className, r?.className, e?.className].filter(Boolean).join(" ").trim() || void 0
113
+ // replace empty string with undefined
114
+ }), Et = (t, r, e) => {
115
+ const o = R();
116
+ return {
117
+ id: r,
118
+ ...pt(
119
+ o.defaults?.form,
120
+ t,
121
+ e
122
+ )
123
+ };
124
+ }, vt = (t) => {
125
+ const r = q();
126
+ return async function(e) {
53
127
  try {
54
- await m.handleSubmit(p, s)(h);
55
- } catch (f) {
56
- P(f, h);
128
+ return r.reset(), await t(e);
129
+ } catch (o) {
130
+ throw r.set(o, e), o;
57
131
  }
58
- }, p = (h, f) => e == null ? void 0 : e(
59
- h,
132
+ };
133
+ }, Rt = ({
134
+ onValid: t,
135
+ onInvalid: r,
136
+ onError: e,
137
+ onFinally: o
138
+ }) => {
139
+ const s = b(), { options: n, lastSubmitStateRef: i } = v(), a = s.handleSubmit(t, r), m = vt(a);
140
+ return (l) => {
141
+ i.current = "submitting", n.stopSubmitPropagation && l.stopPropagation(), Promise.resolve(m(l)).then(() => {
142
+ i.current = "success";
143
+ }).catch((h) => {
144
+ i.current = "error", e(h, l);
145
+ }).finally(() => {
146
+ o?.();
147
+ });
148
+ };
149
+ }, Ct = ({
150
+ getApiData: t,
151
+ // handlers
152
+ onSubmitInvalid: r,
153
+ onBeforeSubmitInvariants: e,
154
+ onBeforeSubmit: o,
155
+ onSubmit: s,
156
+ onSubmitSuccess: n,
157
+ onSubmitError: i,
158
+ onSubmitFinally: a,
159
+ // other
160
+ form: m,
161
+ className: l,
162
+ //
163
+ children: h
164
+ }) => {
165
+ const f = b(), d = v(), S = R(), P = Et(
166
+ m,
167
+ d.formId,
60
168
  {
61
- formId: r,
62
- formRef: t,
63
- context: m,
64
- utils: u,
65
- FormSubmitError: F
66
- },
67
- f
68
- ), P = (h, f) => {
69
- var R;
70
- const E = h instanceof F ? (
169
+ className: l
170
+ }
171
+ ), y = S.FormComponent ?? "form", x = async (F, U) => {
172
+ const p = f.getValues(), G = t?.(F), C = { input: p, output: F, api: G }, g = {
173
+ utils: d,
174
+ rhf: f,
175
+ FormSubmitError: E
176
+ }, O = U;
177
+ e && await gt(e, C, g, O), await Promise.resolve(o?.(C, g, O));
178
+ const K = await Promise.resolve(
179
+ s?.(C, g, O)
180
+ );
181
+ d.lastSubmitStateRef.current = "success", await Promise.resolve(
182
+ n?.(K, C, g, O)
183
+ );
184
+ };
185
+ function W(F, U) {
186
+ const p = F instanceof E ? (
71
187
  // consumer can manually throw FormSubmitError (e.g., manual validation)
72
- h.errors
188
+ F.errors
73
189
  ) : (
74
190
  // if error is not FormSubmitError, consumer can provide global handler
75
- (R = d == null ? void 0 : d.onSubmitErrorUnknown) == null ? void 0 : R.call(d, h)
191
+ S.onSubmitErrorUnknown?.(F)
76
192
  );
77
- E && Y(m, E), o == null || o(
78
- h,
193
+ p && St(f, p), i?.(
194
+ F,
79
195
  {
80
- formId: r,
81
- formRef: t,
82
- context: m,
83
- utils: u,
84
- errors: E
196
+ utils: d,
197
+ errors: p,
198
+ rhf: f
85
199
  },
86
- f
200
+ U
201
+ // `as` required due to conditional generic
87
202
  );
88
- }, V = {
89
- formId: r,
90
- formRef: t,
91
- context: m,
92
- utils: u,
93
- Controller: O,
94
- FormSubmitError: F
95
- }, N = {
96
- formId: r,
97
- formRef: t,
98
- context: m,
99
- utils: u,
100
- Controller: O,
101
- FormSubmitError: F
102
- }, q = (d == null ? void 0 : d.FormComponent) ?? "form", B = (d == null ? void 0 : d.FormChildrenWrapper) ?? rr;
103
- return /* @__PURE__ */ i(
104
- q,
203
+ }
204
+ const V = Rt({
205
+ onValid: x,
206
+ onInvalid: r,
207
+ onError: W,
208
+ onFinally: a
209
+ }), _ = {
210
+ ...P,
211
+ id: d.formId,
212
+ onSubmit: V
213
+ };
214
+ if (!S.FormComponent)
215
+ return /* @__PURE__ */ c("form", { ref: d.formRef, ..._, children: h });
216
+ const $ = {
217
+ ...d,
218
+ formProps: _,
219
+ rhf: f,
220
+ Controller: H,
221
+ FormSubmitError: E
222
+ };
223
+ return /* @__PURE__ */ c(
224
+ y,
105
225
  {
106
- ...l,
107
- ref: t,
108
- onSubmit: (h) => void c(h),
109
- children: /* @__PURE__ */ L(B, { ...N, children: [
110
- /* @__PURE__ */ i(
111
- X,
112
- {
113
- enabled: !!(u != null && u.devTool),
114
- props: typeof (u == null ? void 0 : u.devTool) == "object" ? u.devTool : void 0
115
- }
116
- ),
117
- /* @__PURE__ */ i(n, { ...V })
118
- ] })
226
+ ref: d.formRef,
227
+ id: d.formId,
228
+ ...$,
229
+ children: h
119
230
  }
120
231
  );
121
- }
122
- const v = (r) => (t) => (
232
+ }, gt = async (t, r, e, o) => {
233
+ const n = (await Promise.resolve(
234
+ t(r, e, o)
235
+ )).filter(([, , i]) => !i).map(([i, a]) => [i, { message: a }]);
236
+ if (n.length)
237
+ throw new e.FormSubmitError(
238
+ Object.fromEntries(n)
239
+ );
240
+ }, z = ({
241
+ getApiData: t,
242
+ // handlers
243
+ onCancel: r,
244
+ onSubmitInvalid: e,
245
+ onBeforeSubmitInvariants: o,
246
+ onBeforeSubmit: s,
247
+ onSubmit: n,
248
+ onSubmitSuccess: i,
249
+ onSubmitError: a,
250
+ onSubmitFinally: m,
251
+ //
252
+ Children: l,
253
+ // attrs
254
+ form: h,
255
+ className: f
256
+ }) => /* @__PURE__ */ X(
257
+ Ct,
258
+ {
259
+ getApiData: t,
260
+ onSubmitInvalid: e,
261
+ onBeforeSubmitInvariants: o,
262
+ onBeforeSubmit: s,
263
+ onSubmit: n,
264
+ onSubmitSuccess: i,
265
+ onSubmitError: a,
266
+ onSubmitFinally: m,
267
+ form: h,
268
+ className: f,
269
+ children: [
270
+ /* @__PURE__ */ c(ft, {}),
271
+ /* @__PURE__ */ c(
272
+ bt,
273
+ {
274
+ onCancel: r,
275
+ Children: l
276
+ }
277
+ )
278
+ ]
279
+ }
280
+ ), ir = (t) => /* @__PURE__ */ c(z, { ...t }), k = (t) => (r) => (
123
281
  // re-create object from entries
124
282
  Object.fromEntries(
125
283
  // break down to entries
126
- Object.entries(t).filter(r)
284
+ Object.entries(r).filter(t)
127
285
  )
128
- ), k = (r) => !!r.ref, tr = ([, r]) => k(r), or = v(
129
- tr
130
- ), W = "data-rhfutils-nonfield-error-marker-path", sr = (r, t) => (
286
+ ), A = (t) => !!t.ref, Ot = ([
287
+ ,
288
+ t
289
+ ]) => A(t), Pt = k(
290
+ Ot
291
+ ), yt = (t, r) => (
131
292
  // list of selector variants
132
293
  [
133
294
  // equals
@@ -140,94 +301,99 @@ const v = (r) => (t) => (
140
301
  "."
141
302
  ]
142
303
  ].map(
143
- ([e, o]) => nr(
144
- W + e,
145
- r + o
304
+ ([e, o]) => xt(
305
+ N + e,
306
+ t + o
146
307
  )
147
308
  ).join(", ")
148
- ), nr = (r, t) => `[role="alert"][${r}="${t}"]`, ur = (r, t) => !!t.querySelector(
149
- sr(r)
150
- ), S = "root", j = (r) => r === S || r.startsWith(S + "."), lr = (r, t, e) => (
309
+ ), xt = (t, r) => `[role="alert"][${t}="${r}"]`, Ut = (t, r) => !!r.querySelector(
310
+ yt(t)
311
+ ), T = "root", Z = (t) => t === T || t.startsWith(T + "."), wt = (t, r, e) => (
151
312
  // non-field
152
- !k(t) && // non-root
153
- !j(r) && // not marked in DOM
154
- !ur(r, e)
155
- ), ir = (r) => ([t, e]) => lr(t, e, r), dr = (r, t) => v(
156
- ir(t)
157
- )(r), ar = ([r]) => j(r), mr = v(
158
- ar
159
- ), hr = (r) => G(r), cr = (r) => {
160
- const t = hr(r), e = Object.keys(t);
161
- return Object.fromEntries(
162
- e.reduce(
163
- (o, s) => {
164
- const n = s.replace(
165
- fr,
166
- ""
167
- );
168
- if (n === s) return o;
169
- const l = A(r, n, void 0);
170
- return l && o.push([n, l]), o;
171
- },
172
- []
173
- // entries
174
- )
175
- );
176
- }, fr = /\.(?:type|message)\b$/, Fr = ({
177
- formRef: r,
178
- children: t
313
+ !A(r) && // non-root
314
+ !Z(t) && // not marked in DOM
315
+ !Ut(t, e)
316
+ ), It = (t) => ([r, e]) => wt(r, e, t), kt = (t, r) => k(
317
+ It(r)
318
+ )(t), Wt = ([t]) => Z(t), Vt = k(
319
+ Wt
320
+ ), _t = ({
321
+ formRef: t,
322
+ children: r
179
323
  }) => {
180
- const { errors: e } = x(), o = cr(e), s = r.current ? dr(o, r.current) : {}, n = {
324
+ const { errors: e } = I(), o = Y(e), s = (
325
+ // eslint-disable-next-line react-hooks/refs
326
+ t.current ? kt(
327
+ o,
328
+ // eslint-disable-next-line react-hooks/refs
329
+ t.current
330
+ ) : {}
331
+ ), n = {
181
332
  all: o,
182
- fields: or(o),
183
- roots: mr(o),
333
+ fields: Pt(o),
334
+ roots: Vt(o),
184
335
  orphans: s,
185
336
  // computed
186
- hasErrors: !y(e),
187
- hasOrphans: !y(s)
337
+ hasErrors: !D(e),
338
+ hasOrphans: !D(s)
188
339
  };
189
- return /* @__PURE__ */ i(Q, { value: n, children: t });
190
- }, br = (r, t, e, o = "debug") => {
191
- console[o](r, { values: t, errors: e });
192
- }, Er = (r) => {
193
- const t = b(), e = g();
194
- a.useEffect(() => {
195
- var n, l;
340
+ return /* @__PURE__ */ c(it, { value: n, children: r });
341
+ }, Dt = ({
342
+ children: t
343
+ }) => {
344
+ const [r, e] = u.useState(void 0);
345
+ return /* @__PURE__ */ c(
346
+ lt,
347
+ {
348
+ value: {
349
+ current: r,
350
+ reset: () => {
351
+ e(void 0);
352
+ },
353
+ set: (o, s) => {
354
+ e({ error: o, event: s });
355
+ }
356
+ },
357
+ children: t
358
+ }
359
+ );
360
+ }, Tt = (t, r, e, o = "debug") => {
361
+ console[o](t, { values: r, errors: e });
362
+ }, jt = (t) => {
363
+ const r = b(), e = M();
364
+ u.useEffect(() => {
196
365
  if (!e.hasErrors) return;
197
- const o = (n = r == null ? void 0 : r.console) == null ? void 0 : n.call(r, e);
198
- o && br(
199
- o.message ?? U,
200
- t.getValues(),
366
+ const o = t?.console?.(e);
367
+ o && Tt(
368
+ o.message ?? j,
369
+ r.getValues(),
201
370
  e,
202
371
  o.type
203
372
  );
204
- const s = (l = r == null ? void 0 : r.throw) == null ? void 0 : l.call(r, e);
373
+ const s = t?.throw?.(e);
205
374
  if (s)
206
- throw new Error(typeof s == "string" ? s : U);
375
+ throw new Error(typeof s == "string" ? s : j);
207
376
  }, [e]);
208
- }, U = "Form errors", Cr = (r) => {
209
- const t = a.useRef(!1);
210
- a.useEffect(() => {
211
- r && (t.current = !0);
212
- }, [r]);
213
- const e = () => {
214
- t.current = !1;
215
- };
216
- return [t.current, e];
217
- }, vr = (r, t) => {
218
- const { isSubmitSuccessful: e, isSubmitting: o } = x(), [s, n] = Cr(o);
219
- a.useEffect(() => {
220
- r && (o || s && (n(), r(e)));
377
+ }, j = "Form errors", Lt = (t) => {
378
+ const r = u.useRef(!1);
379
+ return u.useEffect(() => {
380
+ t && (r.current = !0);
381
+ }, [t]), [r, () => {
382
+ r.current = !1;
383
+ }];
384
+ }, Bt = (t, r) => {
385
+ const { isSubmitSuccessful: e, isSubmitting: o } = I(), [s, n] = Lt(o);
386
+ u.useEffect(() => {
387
+ t && (o || s.current && (n(), t(e)));
221
388
  }, [o]);
222
- }, pr = (r) => {
223
- const { getValues: t, reset: e } = b();
224
- vr((o) => {
225
- var u;
226
- if (!r) return;
227
- const s = (u = r[o ? "success" : "error"]) == null ? void 0 : u.values;
389
+ }, Mt = (t) => {
390
+ const { getValues: r, reset: e } = b();
391
+ Bt((o) => {
392
+ if (!t) return;
393
+ const s = t[o ? "success" : "error"]?.values;
228
394
  if (!s) return;
229
- const n = s === "current", l = n ? t() : void 0;
230
- e(l, {
395
+ const n = s === "current", i = n ? r() : void 0;
396
+ e(i, {
231
397
  // keep submit stuff for tracking relevant state (e.g., `useFormOnSubmitSuccessful`)
232
398
  keepIsSubmitSuccessful: !0,
233
399
  keepIsSubmitted: !0,
@@ -249,243 +415,190 @@ const v = (r) => (t) => (
249
415
  keepErrors: !0
250
416
  });
251
417
  });
252
- }, Pr = (r) => a.useCallback(
253
- (t) => {
254
- if (!r.current) throw new Error();
255
- Rr(r.current, t);
256
- },
257
- [r]
258
- ), Rr = (r, t) => {
259
- r.requestSubmit(t);
260
- }, yr = ({
261
- onChange: r,
262
- delay: t
418
+ }, Nt = () => {
419
+ const t = u.useRef(w);
420
+ return u.useEffect(() => (t.current && (t.current = !w), () => {
421
+ t.current = w;
422
+ }), []), t;
423
+ }, w = !0, qt = ({
424
+ onChange: t,
425
+ delay: r
263
426
  }) => {
264
- const e = a.useRef(), o = () => {
265
- e.current && (r(e.current.value), e.current = void 0);
427
+ const e = u.useRef(null), o = () => {
428
+ e.current && (t(e.current.value), e.current = null);
266
429
  }, s = () => {
267
430
  e.current && clearTimeout(e.current.timer);
268
431
  };
269
- return a.useEffect(
432
+ return u.useEffect(
270
433
  // return timeout clearer
271
434
  () => s,
272
435
  []
273
- ), [(l) => {
436
+ ), [(i) => {
274
437
  s(), e.current = {
275
438
  // value being tracked
276
- value: l,
439
+ value: i,
277
440
  // new timer
278
- timer: setTimeout(o, t)
441
+ timer: setTimeout(o, r)
279
442
  };
280
443
  }];
281
- }, Or = (r, t) => {
282
- const e = !(t != null && t.disabled), o = Pr(r), [s] = yr({
444
+ }, Ht = (t, r) => {
445
+ const e = ut(t), [o] = qt({
446
+ delay: r?.debounce ?? 0,
283
447
  // on change value after debounce
284
448
  onChange: () => {
285
- o();
286
- },
287
- delay: (t == null ? void 0 : t.debounce) ?? 0
449
+ e();
450
+ }
288
451
  });
289
- a.useEffect(() => {
290
- if (!e) return;
291
- const n = r.current;
292
- if (!n) throw new Error();
293
- const l = (u) => {
294
- s(u);
295
- };
296
- return n.addEventListener("change", l), () => {
297
- n.removeEventListener("change", l);
298
- };
299
- }, []);
300
- }, { Provider: Sr, useRequired: Ur } = C(), Zr = Ur, xr = ({
301
- formId: r,
302
- formRef: t,
452
+ return o;
453
+ }, zt = (t, r) => {
454
+ const e = Ht(t, {
455
+ debounce: r?.debounce
456
+ }), o = et(), { isValid: s, isDirty: n, isValidating: i, isSubmitting: a } = I(), m = u.useMemo(() => JSON.stringify(o), [o]), l = Nt();
457
+ u.useEffect(
458
+ // on form values/state change, call callback
459
+ () => {
460
+ l.current || i || a || s && n && e(o);
461
+ },
462
+ // eslint-disable-next-line react-hooks/exhaustive-deps
463
+ [s, n, m, i]
464
+ // - isValidating bc we need to re-trigger after validation complete
465
+ // - e.g., single keystroke making input in/valid; we have to wait
466
+ // - isSubmitting not included bc would create infinite loop of submits after first submission
467
+ // - expect form to block changes while submitting to avoid changes that get swallowed
468
+ );
469
+ }, At = ({
470
+ formId: t,
471
+ formRef: r,
303
472
  options: e,
473
+ //
304
474
  children: o
305
475
  }) => {
306
- var n;
307
- const s = _();
308
- return Er((n = s == null ? void 0 : s.fieldErrors) == null ? void 0 : n.output), Or(t, {
309
- // check for false/undefined
310
- disabled: ((e == null ? void 0 : e.submitOnChange) ?? !1) === !1,
311
- debounce: typeof (e == null ? void 0 : e.submitOnChange) == "number" ? e.submitOnChange : void 0
312
- }), pr(e == null ? void 0 : e.resetOnSubmitted), /* @__PURE__ */ i(Sr, { value: { formId: r, formRef: t, options: e }, children: o });
313
- };
314
- function gr({
315
- formId: r,
316
- formRef: t,
317
- rhfForm: e,
318
- utils: o,
319
- children: s
476
+ const [s] = u.useState(e), n = R();
477
+ jt(n.fieldErrors?.output), (s.submitOnWatch ? zt : void 0)?.(
478
+ r,
479
+ s.submitOnWatch
480
+ ), Mt(s.resetOnSubmitted);
481
+ const i = u.useRef(null);
482
+ return /* @__PURE__ */ c(
483
+ tt,
484
+ {
485
+ value: {
486
+ formId: t,
487
+ formRef: r,
488
+ options: e,
489
+ lastSubmitStateRef: i
490
+ },
491
+ children: o
492
+ }
493
+ );
494
+ }, Zt = (t, r) => ({
495
+ ...t,
496
+ ...r,
497
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- false positive
498
+ ...(t?.resetOnSubmitted || r?.resetOnSubmitted) && {
499
+ resetOnSubmitted: {
500
+ ...t?.resetOnSubmitted,
501
+ ...r?.resetOnSubmitted
502
+ }
503
+ }
504
+ }), Jt = (t, r) => u.useMemo(
505
+ () => Zt(t.defaults?.options, r),
506
+ // eslint-disable-next-line react-hooks/exhaustive-deps
507
+ [JSON.stringify(r)]
508
+ ), Qt = (t, r) => ({
509
+ ...t,
510
+ ...r
511
+ }), $t = (t, r, e, o) => ot({
512
+ ...Qt(r.defaults?.rhf, t),
513
+ resolver: o,
514
+ defaultValues: e
515
+ });
516
+ function J({
517
+ formId: t,
518
+ rhf: r,
519
+ resolver: e,
520
+ defaultValues: o,
521
+ options: s,
522
+ //
523
+ children: n
320
524
  }) {
321
- return /* @__PURE__ */ i($, { ...e, children: /* @__PURE__ */ i(Fr, { formRef: t, children: /* @__PURE__ */ i(
322
- xr,
525
+ const i = R(), a = u.useId(), m = t || a, l = u.useRef(null), h = $t(
526
+ r,
527
+ i,
528
+ o,
529
+ e
530
+ ), f = Jt(i, s);
531
+ return /* @__PURE__ */ c(st, { ...h, children: /* @__PURE__ */ c(_t, { formRef: l, children: /* @__PURE__ */ c(
532
+ At,
323
533
  {
324
- formId: r,
325
- formRef: t,
326
- options: o,
327
- children: s
534
+ formId: m,
535
+ formRef: l,
536
+ options: f,
537
+ children: /* @__PURE__ */ c(Dt, { children: n })
328
538
  }
329
539
  ) }) });
330
540
  }
331
- const w = ({
332
- defaultValues: r,
333
- onSubmit: t,
334
- onSubmitError: e,
335
- onSubmitInvalid: o,
336
- Children: s,
337
- rhf: n,
338
- form: l,
339
- utils: u
340
- }) => {
341
- const m = a.useId(), d = H({
342
- ...n,
343
- defaultValues: r
344
- }), c = a.useRef(null);
345
- return {
346
- id: m,
347
- ref: c,
348
- context: d,
349
- providerProps: {
350
- formId: m,
351
- formRef: c,
352
- rhfForm: d,
353
- utils: u
354
- },
355
- formProps: {
356
- Children: s,
357
- onSubmit: t,
358
- onSubmitError: e,
359
- onSubmitInvalid: o,
360
- formId: m,
361
- formRef: c,
362
- form: l,
363
- utils: u
364
- },
365
- FormSubmitError: F
366
- };
367
- };
368
- function T(r) {
369
- const t = w(r);
370
- return /* @__PURE__ */ i(gr, { ...t.providerProps, children: /* @__PURE__ */ i(er, { ...t.formProps }) });
371
- }
372
- const _r = (r, ...t) => (
373
- // sequentially merge each set of props into defaults
374
- t.reduce(
375
- (e, o) => {
376
- var s, n, l, u, m, d;
377
- return {
378
- rhf: {
379
- ...e == null ? void 0 : e.rhf,
380
- ...o.rhf
381
- },
382
- utils: {
383
- ...e == null ? void 0 : e.utils,
384
- ...o.utils,
385
- // manual merges
386
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- false positive
387
- ...(((s = e == null ? void 0 : e.utils) == null ? void 0 : s.resetOnSubmitted) || ((n = o.utils) == null ? void 0 : n.resetOnSubmitted)) && {
388
- resetOnSubmitted: {
389
- ...(l = e == null ? void 0 : e.utils) == null ? void 0 : l.resetOnSubmitted,
390
- ...(u = o.utils) == null ? void 0 : u.resetOnSubmitted
391
- }
392
- }
393
- },
394
- form: {
395
- ...e == null ? void 0 : e.form,
396
- ...o.form,
397
- // manual merges
398
- className: [(m = e == null ? void 0 : e.form) == null ? void 0 : m.className, (d = o.form) == null ? void 0 : d.className].filter(Boolean).join(" ") || void 0
399
- // stringify (replace empty string with undefined)
400
- }
401
- };
402
- },
403
- // start with defaults
404
- r
405
- )
406
- ), kr = (r) => (t) => {
407
- const e = M(r, t);
408
- return {
409
- useForm: (o, s) => {
410
- const n = e(o, s);
411
- return {
412
- ...w(n),
413
- FormWithProviders: () => /* @__PURE__ */ i(T, { ...n })
414
- };
415
- },
416
- FormWithProviders: Wr(r, t)
417
- };
418
- }, M = (r, t) => function(o, s) {
419
- return {
420
- ...s,
421
- ..._r(
422
- t.defaults,
423
- s,
424
- {
425
- rhf: {
426
- resolver: r(o)
427
- }
428
- }
429
- )
430
- };
431
- }, Wr = (r, t) => {
432
- const e = M(r, t);
433
- return function({
434
- schema: s,
435
- children: n,
436
- ...l
437
- }) {
438
- return /* @__PURE__ */ i(
439
- T,
440
- {
441
- ...e(s, l),
442
- children: n
443
- }
444
- );
445
- };
446
- }, jr = kr(z), {
447
- Provider: wr,
448
- useRequired: D
449
- } = C(), Lr = ({
450
- config: r,
451
- children: t
452
- }) => {
453
- const [e] = a.useState(r), [o] = a.useState(
454
- () => jr(e ?? {})
455
- );
456
- return /* @__PURE__ */ i(J, { value: e, children: /* @__PURE__ */ i(wr, { value: o, children: t }) });
457
- };
458
- function zr({
459
- schema: r,
460
- ...t
541
+ const Q = (t) => nt(t), ur = ({
542
+ schema: t,
543
+ children: r,
544
+ ...e
545
+ }) => /* @__PURE__ */ c(J, { ...e, resolver: Q(t), children: r });
546
+ function Gt({
547
+ getApiData: t,
548
+ // provider
549
+ resolver: r,
550
+ rhf: e,
551
+ defaultValues: o,
552
+ options: s,
553
+ // form
554
+ onCancel: n,
555
+ onSubmitInvalid: i,
556
+ onBeforeSubmitInvariants: a,
557
+ onBeforeSubmit: m,
558
+ onSubmit: l,
559
+ onSubmitSuccess: h,
560
+ onSubmitError: f,
561
+ onSubmitFinally: d,
562
+ Children: S,
563
+ form: P,
564
+ formId: y,
565
+ className: x
461
566
  }) {
462
- const { FormWithProviders: e } = D();
463
- return /* @__PURE__ */ i(e, { schema: r, ...t });
567
+ return /* @__PURE__ */ c(J, { ...{
568
+ formId: y,
569
+ resolver: r,
570
+ rhf: e,
571
+ defaultValues: o,
572
+ options: s
573
+ }, children: /* @__PURE__ */ c(z, { ...{
574
+ getApiData: t,
575
+ onCancel: n,
576
+ onSubmitInvalid: i,
577
+ onBeforeSubmitInvariants: a,
578
+ onBeforeSubmit: m,
579
+ onSubmit: l,
580
+ onSubmitSuccess: h,
581
+ onSubmitError: f,
582
+ onSubmitFinally: d,
583
+ Children: S,
584
+ form: P,
585
+ className: x
586
+ } }) });
464
587
  }
465
- const Ir = (r, t) => D().useForm(r, t), Ar = () => {
466
- const r = g();
467
- return a.useMemo(() => !r.hasErrors || !r.hasOrphans ? !1 : Object.keys(r.orphans).length === Object.keys(r.all).length, [r]);
468
- }, $r = ({ path: r }) => {
469
- const t = {
470
- [W]: r
471
- };
472
- return /* @__PURE__ */ i(
473
- "div",
474
- {
475
- role: "alert",
476
- "aria-hidden": "true",
477
- style: { display: "none" },
478
- ...t
479
- }
480
- );
481
- };
588
+ const cr = ({
589
+ schema: t,
590
+ ...r
591
+ }) => /* @__PURE__ */ c(Gt, { ...r, resolver: Q(t) });
482
592
  export {
483
- F as FormSubmitError,
484
- Lr as RhfUtilsClientForZodContextProvider,
485
- $r as RhfUtilsNonFieldErrorMarker,
486
- zr as RhfUtilsZodForm,
487
- g as useFlatFieldErrorsContext,
488
- Ar as useFlatFieldErrorsContextHasOnlyOrphans,
489
- Zr as useRhfUtilsContext,
490
- Ir as useRhfUtilsZodForm
593
+ E as FormSubmitError,
594
+ er as RhfUtilsClientConfigProvider,
595
+ sr as RhfUtilsNonFieldErrorMarker,
596
+ ir as RhfUtilsZodForm,
597
+ ur as RhfUtilsZodFormProviders,
598
+ cr as RhfUtilsZodFormWithProviders,
599
+ M as useFlatFieldErrorsContext,
600
+ or as useFlatFieldErrorsContextHasOnlyOrphans,
601
+ ut as useFormRequestSubmit,
602
+ nr as useLastSubmitError,
603
+ v as useRhfUtilsContext
491
604
  };