@paragrav/rhf-utils 0.65.0 → 0.66.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 (146) hide show
  1. package/README.md +3 -2
  2. package/package.json +7 -22
  3. package/dist/dts/Register.d.ts +0 -16
  4. package/dist/dts/_exports/config.d.ts +0 -2
  5. package/dist/dts/_exports/errors.d.ts +0 -3
  6. package/dist/dts/_exports/form.d.ts +0 -7
  7. package/dist/dts/_exports/index.d.ts +0 -14
  8. package/dist/dts/_exports/relay.d.ts +0 -7
  9. package/dist/dts/_exports/submit.d.ts +0 -4
  10. package/dist/dts/_exports/trpc.d.ts +0 -2
  11. package/dist/dts/_exports/types.d.ts +0 -7
  12. package/dist/dts/_exports/zod.d.ts +0 -6
  13. package/dist/dts/client/config/RhfUtilsClientConfigType.d.ts +0 -71
  14. package/dist/dts/client/config/context/RhfUtilsClientConfigContext.d.ts +0 -3
  15. package/dist/dts/client/config/context/RhfUtilsClientConfigProvider.d.ts +0 -7
  16. package/dist/dts/client/config/context/useRhfUtilsClientConfig.d.ts +0 -1
  17. package/dist/dts/devtool/LazyDevTool.d.ts +0 -10
  18. package/dist/dts/devtool/LazyDevToolViaProviders.d.ts +0 -1
  19. package/dist/dts/errors/flat/FlatFieldErrorsList.d.ts +0 -6
  20. package/dist/dts/errors/flat/context/FlatFieldErrorsContextProvider.d.ts +0 -10
  21. package/dist/dts/errors/flat/context/FlatFieldErrorsOutputConfig.d.ts +0 -19
  22. package/dist/dts/errors/flat/context/useFlatFieldErrorsContext.d.ts +0 -11
  23. package/dist/dts/errors/flat/context/useFlatFieldErrorsContextHasOnlyOrphans.d.ts +0 -6
  24. package/dist/dts/errors/flat/context/useFlatFieldErrorsContextOutput.d.ts +0 -5
  25. package/dist/dts/errors/flat/filterFlatFieldErrors.d.ts +0 -7
  26. package/dist/dts/errors/flat/flattenFieldErrors.d.ts +0 -14
  27. package/dist/dts/errors/flat/getFlatFieldErrors.d.ts +0 -35
  28. package/dist/dts/errors/flat/types.d.ts +0 -16
  29. package/dist/dts/errors/getRefdFromFlatFieldErrors.d.ts +0 -1
  30. package/dist/dts/errors/isFieldErrorRefd.d.ts +0 -5
  31. package/dist/dts/errors/isFlatFieldErrorEntryRefd.d.ts +0 -5
  32. package/dist/dts/errors/message/FormErrorMessage.d.ts +0 -7
  33. package/dist/dts/errors/message/RhfUtilsFieldErrorMessage.d.ts +0 -10
  34. package/dist/dts/errors/nonfield/RhfUtilsNonFieldErrorMarker.d.ts +0 -13
  35. package/dist/dts/errors/nonfield/RhfUtilsNonFieldErrorMarker.spec.d.ts +0 -1
  36. package/dist/dts/errors/nonfield/RhfUtilsNonFieldErrorMarker.utils.d.ts +0 -18
  37. package/dist/dts/errors/nonfield/RhfUtilsNonFieldErrorMarkerHtmlAttribute.d.ts +0 -4
  38. package/dist/dts/errors/nonfield/isNonFieldError.d.ts +0 -17
  39. package/dist/dts/errors/nonfield/isNonFieldErrorMarkerInDOM.d.ts +0 -5
  40. package/dist/dts/errors/orphan/getIsOrphanFormErrorWithParentElement.d.ts +0 -5
  41. package/dist/dts/errors/orphan/getOrphansFromFlatFieldErrors.d.ts +0 -2
  42. package/dist/dts/errors/orphan/isOrphanFormError.d.ts +0 -2
  43. package/dist/dts/errors/output/consoleErrors.d.ts +0 -5
  44. package/dist/dts/errors/output/types.d.ts +0 -7
  45. package/dist/dts/errors/root/RootErrorsListFromFlatFieldErrorsContext.d.ts +0 -1
  46. package/dist/dts/errors/root/consts.d.ts +0 -1
  47. package/dist/dts/errors/root/getRootsFromFlatFieldErrors.d.ts +0 -1
  48. package/dist/dts/errors/root/isFlatFieldErrorEntryPathRoot.d.ts +0 -5
  49. package/dist/dts/errors/root/isFormErrorPathRoot.d.ts +0 -6
  50. package/dist/dts/errors/trpc/makeOnSubmitTrpcClientErrorHandler.d.ts +0 -9
  51. package/dist/dts/errors/trpc/trpcClientErrorMessageSchema.d.ts +0 -19
  52. package/dist/dts/errors/trpc/trpcClientErrorToFormSubmitFieldErrorsSchemaTransformer.d.ts +0 -23
  53. package/dist/dts/form/RHF_UseFormReturnWithoutProxiesType.d.ts +0 -15
  54. package/dist/dts/form/RhfUtilsFormInjectorProps.d.ts +0 -17
  55. package/dist/dts/form/UseRhfUtilsFormChildrenPropsType.d.ts +0 -25
  56. package/dist/dts/form/_Controller.d.ts +0 -4
  57. package/dist/dts/form/context/utils/LastSubmitStateType.d.ts +0 -1
  58. package/dist/dts/form/context/utils/RhfUtilsContextProvider.d.ts +0 -9
  59. package/dist/dts/form/context/utils/RhfUtilsContextType.d.ts +0 -12
  60. package/dist/dts/form/context/utils/useRhfUtilsContext.d.ts +0 -5
  61. package/dist/dts/form/context/utils/useRhfUtilsContextRequestSubmit.d.ts +0 -4
  62. package/dist/dts/form/defaults/UseRhfUtilsFormGlobalDefaults.d.ts +0 -24
  63. package/dist/dts/form/defaults/UseRhfUtilsFormInstanceDefaults.d.ts +0 -18
  64. package/dist/dts/form/defaults/UseRhfUtilsFormResolvedDefaultsType.d.ts +0 -12
  65. package/dist/dts/form/defaults/form/UseRhfUtilsFormInstanceFormProps.d.ts +0 -6
  66. package/dist/dts/form/defaults/form/getRhfUtilsFormResolvedFormProps.d.ts +0 -2
  67. package/dist/dts/form/defaults/form/useRhfUtilsFormResolvedFormProps.d.ts +0 -293
  68. package/dist/dts/form/options/RhfUtilsFormOptionsType.d.ts +0 -27
  69. package/dist/dts/form/options/getRhfUtilsFormResolvedOptions.d.ts +0 -2
  70. package/dist/dts/form/options/useRhfUtilsFormResolvedOptions.d.ts +0 -8
  71. package/dist/dts/form/providers/RhfUtilsFormProviders.d.ts +0 -6
  72. package/dist/dts/form/providers/RhfUtilsFormProvidersPropsType.d.ts +0 -17
  73. package/dist/dts/form/relay/FormRelayOptions.d.ts +0 -16
  74. package/dist/dts/form/relay/context/FormRelayContextProvider.d.ts +0 -4
  75. package/dist/dts/form/relay/context/useFormRelayContext.d.ts +0 -12
  76. package/dist/dts/form/relay/context/utils.d.ts +0 -4
  77. package/dist/dts/form/relay/get/FormRelayGroupType.d.ts +0 -16
  78. package/dist/dts/form/relay/get/grouper/context/hooks.d.ts +0 -8
  79. package/dist/dts/form/relay/get/grouper/context/index.d.ts +0 -5
  80. package/dist/dts/form/relay/get/grouper/context/provider.d.ts +0 -9
  81. package/dist/dts/form/relay/get/grouper/useFirstFormStateGroup.d.ts +0 -9
  82. package/dist/dts/form/relay/get/useFormRelay.d.ts +0 -13
  83. package/dist/dts/form/relay/set/FormRelaySetter.d.ts +0 -6
  84. package/dist/dts/form/relay/set/useFormRelaySet.d.ts +0 -2
  85. package/dist/dts/form/relay/types.d.ts +0 -12
  86. package/dist/dts/form/rhf/SafeFieldValuesType.d.ts +0 -4
  87. package/dist/dts/form/rhf/UseFormPropsType.d.ts +0 -4
  88. package/dist/dts/form/rhf/getRhfUtilsFormResolvedRhfProps.d.ts +0 -4
  89. package/dist/dts/form/rhf/useRhfFormWithResolvedProps.d.ts +0 -5
  90. package/dist/dts/form/utils/getSubmitterButtonData.d.ts +0 -6
  91. package/dist/dts/form/utils/useFormRequestSubmit.d.ts +0 -9
  92. package/dist/dts/form/utils/useHandleCancelWithCheckIfCanBe.d.ts +0 -4
  93. package/dist/dts/form/utils/useHandleCancelWithCheckIfCanBeViaProviders.d.ts +0 -2
  94. package/dist/dts/form/utils/useShouldFormBlockNavigation.d.ts +0 -24
  95. package/dist/dts/form/with-handlers-and-children/RhfUtilsForm.d.ts +0 -3
  96. package/dist/dts/form/with-handlers-and-children/RhfUtilsFormProps.d.ts +0 -42
  97. package/dist/dts/form/with-handlers-and-children/RhfUtilsFormPropsOnBeforeSubmitInvariants.d.ts +0 -12
  98. package/dist/dts/form/with-handlers-and-children/_ChildrenViaProviders.d.ts +0 -3
  99. package/dist/dts/form/with-handlers-and-children/_FormWithSubmitHandler.d.ts +0 -4
  100. package/dist/dts/form/with-handlers-and-children/_useHandleSubmit.d.ts +0 -11
  101. package/dist/dts/form/with-providers/RhfUtilsFormWithProviders.d.ts +0 -8
  102. package/dist/dts/form/with-providers/RhfUtilsFormWithProvidersProps.d.ts +0 -8
  103. package/dist/dts/main.d.ts +0 -1
  104. package/dist/dts/playwright/index.d.ts +0 -0
  105. package/dist/dts/playwright-ct.config.d.ts +0 -5
  106. package/dist/dts/resolvers/ObjectSchema.d.ts +0 -7
  107. package/dist/dts/resolvers/zod/RhfUtilsUseZodFormChildrenFCType.d.ts +0 -7
  108. package/dist/dts/resolvers/zod/RhfUtilsUseZodFormChildrenPropsType.d.ts +0 -4
  109. package/dist/dts/resolvers/zod/ZodTypeSafeFieldValuesType.d.ts +0 -5
  110. package/dist/dts/resolvers/zod/consts.d.ts +0 -4
  111. package/dist/dts/resolvers/zod/form/RhfUtilsZodForm.d.ts +0 -7
  112. package/dist/dts/resolvers/zod/getZodResolver.d.ts +0 -4
  113. package/dist/dts/resolvers/zod/providers/RhfUtilsZodFormProviders.d.ts +0 -8
  114. package/dist/dts/resolvers/zod/with-providers/RhfUtilsZodFormWithProviders.d.ts +0 -10
  115. package/dist/dts/submit/UseRhfUtilsFormOnSubmitContextType.d.ts +0 -23
  116. package/dist/dts/submit/error/FormSubmitError.d.ts +0 -6
  117. package/dist/dts/submit/error/FormSubmitFieldErrors.d.ts +0 -14
  118. package/dist/dts/submit/error/setCtxErrorsByFormSubmitFieldErrors.d.ts +0 -8
  119. package/dist/dts/submit/last-error/LastSubmitErrorContextProvider.d.ts +0 -4
  120. package/dist/dts/submit/last-error/LastSubmitErrorContextType.d.ts +0 -8
  121. package/dist/dts/submit/last-error/useLastSubmitError.d.ts +0 -4
  122. package/dist/dts/submit/last-error/useLastSubmitErrorContext.d.ts +0 -3
  123. package/dist/dts/submit/last-error/useLastSubmitErrorContextWith.d.ts +0 -2
  124. package/dist/dts/submit/useFormOnSubmitSuccessfulAndReset.d.ts +0 -13
  125. package/dist/dts/submit/useFormOnSubmitted.d.ts +0 -4
  126. package/dist/dts/submit/useResetFormOnSubmitted.d.ts +0 -35
  127. package/dist/dts/submit/useRhfUtilsFormOnSubmitContext.d.ts +0 -3
  128. package/dist/dts/submit/useSubmitFormOnChange.d.ts +0 -15
  129. package/dist/dts/submit/useSubmitFormOnEvent.d.ts +0 -9
  130. package/dist/dts/submit/useSubmitFormOnWatch.d.ts +0 -14
  131. package/dist/dts/utils/PassthroughChildren.d.ts +0 -7
  132. package/dist/dts/utils/createContext.d.ts +0 -10
  133. package/dist/dts/utils/fixedForwardRef.d.ts +0 -5
  134. package/dist/dts/utils/isEmptyObject.d.ts +0 -1
  135. package/dist/dts/utils/timeoutAsync.d.ts +0 -6
  136. package/dist/dts/utils/types.d.ts +0 -3
  137. package/dist/dts/utils/useDebouncedOnChangeValue.d.ts +0 -14
  138. package/dist/dts/utils/useImperativeForwardedRef.d.ts +0 -9
  139. package/dist/dts/utils/useIsFirstRender.d.ts +0 -7
  140. package/dist/dts/utils/useRefIfValueWasTrue.d.ts +0 -2
  141. package/dist/dts/utils/useToggle.d.ts +0 -2
  142. package/dist/dts/vite-env.d.ts +0 -1
  143. package/dist/esm/FormRelaySetter.mjs +0 -89
  144. package/dist/esm/index.mjs +0 -351
  145. package/dist/esm/relay.mjs +0 -49
  146. package/dist/esm/trpc.mjs +0 -24
@@ -1 +0,0 @@
1
- export declare const isEmptyObject: (obj: Record<string, unknown>) => boolean;
@@ -1,6 +0,0 @@
1
- /**
2
- * Awaitable `setTimeout`.
3
- * @param timeout milliseconds
4
- * @returns `Promise<void>`
5
- */
6
- export declare const timeoutAsync: (timeout: number) => Promise<void>;
@@ -1,3 +0,0 @@
1
- export type MaybePromise<T> = T | Promise<T>;
2
- /** Merge {@link C} into {@link B} into {@link A} (last taking highest precedence). */
3
- export type Merge<A, B, C = unknown, D = unknown> = D & Omit<C, keyof D> & Omit<Omit<B, keyof C>, keyof D> & Omit<Omit<Omit<A, keyof B>, keyof C>, keyof D>;
@@ -1,14 +0,0 @@
1
- /**
2
- * React hook to debounce onChange event callback.
3
- *
4
- * Returns debounced state setter (uses ref internally).
5
- *
6
- * When debounce delay has elapsed after setting value,
7
- * onChange callback is called with latest value.
8
- *
9
- * @returns `[setValueDebounced]`
10
- */
11
- export declare const useDebouncedOnChangeValue: <TValue>({ onChange, delay, }: {
12
- onChange: (value: TValue) => void;
13
- delay: number;
14
- }) => readonly [(value: TValue) => void];
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- /**
3
- * Create a ref and point forwarded ref to it.
4
- *
5
- * Use case: forwarded refs are optional, but sometimes you need the ref.
6
- *
7
- * @param forwardedRef Forwarded `ref` prop.
8
- */
9
- export declare const useImperativeForwardedRef: <TRef>(forwardedRef?: React.ForwardedRef<TRef>) => React.RefObject<TRef | null>;
@@ -1,7 +0,0 @@
1
- import { default as React } from 'react';
2
- /**
3
- * Use to determine if first render has run.
4
- *
5
- * (Supports strict mode.)
6
- */
7
- export declare const useIsFirstRender: () => React.RefObject<boolean>;
@@ -1,2 +0,0 @@
1
- import { default as React } from 'react';
2
- export declare const useRefIfValueWasTrue: (value: boolean) => readonly [React.RefObject<boolean>, () => void];
@@ -1,2 +0,0 @@
1
- import { default as React } from 'react';
2
- export declare const useToggle: (defaultValue?: boolean) => [boolean, React.DispatchWithoutAction];
@@ -1 +0,0 @@
1
- /// <reference types="vite/client" />
@@ -1,89 +0,0 @@
1
- import e from "react";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import { get as n, useFormState as r } from "react-hook-form";
4
- import { flatten as i } from "flat";
5
- //#region src/utils/createContext.ts
6
- function a() {
7
- let t = e.createContext(void 0), n = () => e.useContext(t);
8
- return {
9
- Provider: t.Provider,
10
- useMaybe: n,
11
- useRequired: () => {
12
- let e = n();
13
- if (e === void 0) throw Error();
14
- return e;
15
- }
16
- };
17
- }
18
- //#endregion
19
- //#region src/form/relay/context/useFormRelayContext.ts
20
- var { Provider: o, useRequired: s } = a(), c = ({ children: n }) => {
21
- let [r, i] = e.useState({});
22
- return /* @__PURE__ */ t(o, {
23
- value: {
24
- add: e.useCallback((e, t, n) => {
25
- if (r[t.formId]) throw Error("Form id already exists.");
26
- i((r) => ({
27
- ...r,
28
- [t.formId]: {
29
- state: e,
30
- utils: t,
31
- options: n
32
- }
33
- }));
34
- }, [r]),
35
- update: e.useCallback((e, t) => {
36
- i((n) => {
37
- let r = n[e];
38
- if (!r) throw Error("Form id doesn't exist");
39
- return {
40
- ...n,
41
- [e]: {
42
- ...r,
43
- state: t
44
- }
45
- };
46
- });
47
- }, []),
48
- remove: e.useCallback((e) => {
49
- i((t) => Object.fromEntries(Object.entries(t).filter(([t]) => t !== e)));
50
- }, []),
51
- state: r
52
- },
53
- children: n
54
- });
55
- }, { Provider: l, useRequired: u, useMaybe: d } = a(), f = (e) => Object.keys(e).length === 0, p = (e) => i(e), m = (e) => {
56
- let t = p(e);
57
- return Object.fromEntries(Object.keys(t).reduce((t, r) => {
58
- let i = r.replace(h, "");
59
- if (i === r) return t;
60
- let a = n(e, i, void 0);
61
- return a && t.push([i, a]), t;
62
- }, []));
63
- }, h = /\.(?:type|message)\b$/, g = (e) => Object.fromEntries(Object.entries(m(e)).map(([e, t]) => [e, {
64
- type: t.type,
65
- message: t.message,
66
- hasRef: !!t.ref
67
- }])), _ = (t) => {
68
- if (!t) return;
69
- let [n] = e.useState(t);
70
- v(n), y(n);
71
- }, v = (t) => {
72
- let n = u(), r = s(), i = b(t);
73
- e.useEffect(() => (r.add(i, n, t), () => {
74
- r.remove(n.formId);
75
- }), []);
76
- }, y = (t) => {
77
- let n = u(), r = s(), i = b(t);
78
- e.useEffect(() => {
79
- r.update(n.formId, i);
80
- }, [i]);
81
- }, b = (t) => {
82
- let n = r(), i = t.select(n), a = JSON.stringify({
83
- ...i,
84
- errors: i.errors && g(i.errors)
85
- });
86
- return e.useMemo(() => i, [a]);
87
- }, x = ({ options: e }) => (_(e), null);
88
- //#endregion
89
- export { l as a, c, f as i, s as l, _ as n, u as o, m as r, d as s, x as t, a as u };
@@ -1,351 +0,0 @@
1
- import { a as e, c as t, i as n, o as r, r as i, t as a, u as o } from "./FormRelaySetter.mjs";
2
- import s from "react";
3
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
- import { Controller as u, FormProvider as d, useForm as f, useFormContext as p, useFormState as m, useWatch as h } from "react-hook-form";
5
- import { zodResolver as g } from "@hookform/resolvers/zod";
6
- //#region src/client/config/context/RhfUtilsClientConfigContext.tsx
7
- var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
8
- let [r] = s.useState(e ?? {});
9
- return /* @__PURE__ */ c(_.Provider, {
10
- value: r,
11
- children: /* @__PURE__ */ c(t, { children: n })
12
- });
13
- }, { Provider: y, useRequired: b } = o(), x = () => {
14
- let e = b();
15
- return s.useMemo(() => !e.hasErrors || !e.hasOrphans ? !1 : Object.keys(e.orphans).length === Object.keys(e.all).length, [e]);
16
- }, S = "data-rhfutils-nonfield-error-marker-path", C = ({ path: e }) => /* @__PURE__ */ c("div", {
17
- role: "alert",
18
- "aria-hidden": "true",
19
- style: { display: "none" },
20
- [S]: e
21
- }), w = (e) => s.useCallback((t) => {
22
- if (!e.current) throw Error();
23
- ee(e.current, t);
24
- }, [e]), ee = (e, t) => {
25
- e.requestSubmit(t);
26
- }, T = class extends Error {
27
- errors;
28
- constructor(e, t) {
29
- super(t), this.errors = e;
30
- }
31
- }, { Provider: te, useRequired: E } = o(), D = () => E().current, O = s.lazy(() => import("@hookform/devtools").then((e) => ({ default: e.DevTool }))), k = ({ config: e }) => {
32
- let [t] = s.useState(e);
33
- if (!t) return null;
34
- let n = typeof t == "object" ? t : void 0;
35
- return /* @__PURE__ */ c(s.Suspense, { children: /* @__PURE__ */ c(O, { ...n }) });
36
- }, A = () => /* @__PURE__ */ c(k, { config: r().options.devTool }), j = (e) => /* @__PURE__ */ c(u, { ...e }), M = () => {
37
- let e = s.useContext(_);
38
- if (e === void 0) throw Error();
39
- return e;
40
- }, ne = () => ({
41
- utils: r(),
42
- rhf: p(),
43
- FormSubmitError: T
44
- }), re = (e, t, n) => {
45
- let r = t?.();
46
- return async () => {
47
- if (e && await Promise.resolve(r?.(n)) !== !1) return Promise.resolve(e());
48
- };
49
- }, ie = (e) => {
50
- let { useCanFormBeCancelled: t } = M();
51
- return re(e, t, ne());
52
- }, ae = ({ onCancel: e, Children: t }) => {
53
- let n = p(), i = r(), a = ie(e);
54
- return /* @__PURE__ */ c(t, {
55
- ...i,
56
- rhf: n,
57
- onCancel: a,
58
- Controller: j,
59
- FormSubmitError: T
60
- });
61
- }, N = (e, t) => {
62
- Object.entries(t).forEach(([t, n]) => {
63
- e.setError(t, {
64
- type: "FormSubmitFieldError",
65
- ...n
66
- });
67
- });
68
- }, P = (e, t, n) => ({
69
- ...e,
70
- ...t,
71
- className: [
72
- e?.className,
73
- t?.className,
74
- n?.className
75
- ].filter(Boolean).join(" ").trim() || void 0
76
- }), F = (e, t, n) => ({
77
- id: t,
78
- ...P(M().defaults?.form, e, n)
79
- }), I = (e) => {
80
- let t = E();
81
- return async function(n) {
82
- try {
83
- return t.reset(), await e(n);
84
- } catch (e) {
85
- throw t.set(e, n), e;
86
- }
87
- };
88
- }, L = ({ onValid: e, onInvalid: t, onError: n, onFinally: i }) => {
89
- let a = p(), { options: o, lastSubmitStateRef: s } = r(), c = I(a.handleSubmit(e, t));
90
- return (e) => {
91
- s.current = "submitting", o.stopSubmitPropagation && e.stopPropagation(), Promise.resolve(c(e)).then(() => {
92
- s.current = "success";
93
- }).catch((t) => {
94
- s.current = "error", n(t, e);
95
- }).finally(() => {
96
- i?.();
97
- });
98
- };
99
- }, R = ({ getApiData: e, onSubmitInvalid: t, onBeforeSubmitInvariants: n, onBeforeSubmit: i, onSubmit: a, onSubmitSuccess: o, onSubmitError: l, onSubmitFinally: u, form: d, className: f, children: m }) => {
100
- let h = p(), g = r(), _ = M(), v = F(d, g.formId, { className: f }), y = async (t, r) => {
101
- let s = {
102
- input: h.getValues(),
103
- output: t,
104
- api: e?.(t)
105
- }, c = {
106
- utils: g,
107
- rhf: h,
108
- FormSubmitError: T
109
- }, l = r;
110
- n && await z(n, s, c, l), await Promise.resolve(i?.(s, c, l));
111
- let u = await Promise.resolve(a?.(s, c, l));
112
- g.lastSubmitStateRef.current = "success", await Promise.resolve(o?.(u, s, c, l));
113
- };
114
- function b(e, t) {
115
- let n = e instanceof T ? e.errors : _.onSubmitErrorUnknown?.(e);
116
- n && N(h, n), l?.(e, {
117
- utils: g,
118
- errors: n,
119
- rhf: h
120
- }, t);
121
- }
122
- let x = L({
123
- onValid: y,
124
- onInvalid: t,
125
- onError: b,
126
- onFinally: u
127
- }), S = s.useCallback(() => m, []), C = {
128
- ...g,
129
- rhf: h,
130
- Controller: j,
131
- FormSubmitError: T,
132
- Outlet: S
133
- };
134
- return /* @__PURE__ */ c(_.FormComponent ?? "form", {
135
- ...v,
136
- id: g.formId,
137
- ref: g.formRef,
138
- onSubmit: x,
139
- children: _.FormInjector ? /* @__PURE__ */ c(_.FormInjector, { ...C }) : m
140
- });
141
- }, z = async (e, t, n, r) => {
142
- let i = (await Promise.resolve(e(t, n, r))).filter(({ validate: e }) => !e).map(({ field: e, message: t }) => [e, { message: t }]);
143
- if (i.length) throw new n.FormSubmitError(Object.fromEntries(i));
144
- }, B = ({ getApiData: e, onCancel: t, onSubmitInvalid: n, onBeforeSubmitInvariants: r, onBeforeSubmit: i, onSubmit: a, onSubmitSuccess: o, onSubmitError: s, onSubmitFinally: u, Children: d, form: f, className: p }) => /* @__PURE__ */ l(R, {
145
- getApiData: e,
146
- onSubmitInvalid: n,
147
- onBeforeSubmitInvariants: r,
148
- onBeforeSubmit: i,
149
- onSubmit: a,
150
- onSubmitSuccess: o,
151
- onSubmitError: s,
152
- onSubmitFinally: u,
153
- form: f,
154
- className: p,
155
- children: [/* @__PURE__ */ c(A, {}), /* @__PURE__ */ c(ae, {
156
- onCancel: t,
157
- Children: d
158
- })]
159
- }), V = (e) => /* @__PURE__ */ c(B, { ...e }), H = (e) => (t) => Object.fromEntries(Object.entries(t).filter(e)), U = (e) => !!e.ref, W = H(([, e]) => U(e)), G = (e, t) => [["", ""], ...t?.excludeNested ? [] : [["^", "."]]].map(([t, n]) => K(S + t, e + n)).join(", "), K = (e, t) => `[role="alert"][${e}="${t}"]`, q = (e, t) => !!t.querySelector(G(e)), J = (e) => e === "root" || e.startsWith("root."), oe = (e, t, n) => !U(t) && !J(e) && !q(e, n), se = (e) => ([t, n]) => oe(t, n, e), ce = (e, t) => H(se(t))(e), le = H(([e]) => J(e)), ue = ({ formRef: e, children: t }) => {
160
- let { errors: r } = m(), a = i(r), o = e.current ? ce(a, e.current) : {};
161
- return /* @__PURE__ */ c(y, {
162
- value: {
163
- all: a,
164
- fields: W(a),
165
- roots: le(a),
166
- orphans: o,
167
- hasErrors: !n(r),
168
- hasOrphans: !n(o)
169
- },
170
- children: t
171
- });
172
- }, de = ({ children: e }) => {
173
- let [t, n] = s.useState(void 0);
174
- return /* @__PURE__ */ c(te, {
175
- value: {
176
- current: t,
177
- reset: () => {
178
- n(void 0);
179
- },
180
- set: (e, t) => {
181
- n({
182
- error: e,
183
- event: t
184
- });
185
- }
186
- },
187
- children: e
188
- });
189
- }, fe = (e, t, n, r = "debug") => {
190
- console[r](e, {
191
- values: t,
192
- errors: n
193
- });
194
- }, pe = (e) => {
195
- let t = p(), n = b();
196
- s.useEffect(() => {
197
- if (!n.hasErrors) return;
198
- let r = e?.console?.(n);
199
- r && fe(r.message ?? Y, t.getValues(), n, r.type);
200
- let i = e?.throw?.(n);
201
- if (i) throw Error(typeof i == "string" ? i : Y);
202
- }, [n]);
203
- }, Y = "Form errors", me = (e) => {
204
- let t = s.useRef(!1);
205
- return s.useEffect(() => {
206
- e && (t.current = !0);
207
- }, [e]), [t, () => {
208
- t.current = !1;
209
- }];
210
- }, he = (e, t) => {
211
- let { isSubmitSuccessful: n, isSubmitting: r } = m(), [i, a] = me(r);
212
- s.useEffect(() => {
213
- e && (r || i.current && (a(), (t?.successful === void 0 || n === t.successful) && e(n)));
214
- }, [r]);
215
- }, ge = (e) => {
216
- let { getValues: t, reset: n } = p();
217
- he((r) => {
218
- if (!e) return;
219
- let i = e[r ? "success" : "error"]?.values;
220
- if (!i) return;
221
- let a = i === "current";
222
- n(a ? t() : void 0, {
223
- keepIsSubmitSuccessful: !0,
224
- keepIsSubmitted: !0,
225
- keepSubmitCount: !0,
226
- keepValues: a,
227
- keepErrors: !0
228
- });
229
- });
230
- }, _e = () => {
231
- let e = s.useRef(X);
232
- return s.useEffect(() => (e.current &&= !X, () => {
233
- e.current = X;
234
- }), []), e;
235
- }, X = !0, ve = ({ onChange: e, delay: t }) => {
236
- let n = s.useRef(null), r = () => {
237
- n.current &&= (e(n.current.value), null);
238
- }, i = () => {
239
- n.current && clearTimeout(n.current.timer);
240
- };
241
- return s.useEffect(() => i, []), [(e) => {
242
- i(), n.current = {
243
- value: e,
244
- timer: setTimeout(r, t)
245
- };
246
- }];
247
- }, ye = (e, t) => {
248
- let n = w(e), [r] = ve({
249
- delay: t?.debounce ?? 0,
250
- onChange: () => {
251
- n();
252
- }
253
- });
254
- return r;
255
- }, be = (e, t) => {
256
- let n = ye(e, { debounce: t?.debounce }), r = h(), { isValid: i, isDirty: a, isValidating: o, isSubmitting: c } = m(), l = s.useMemo(() => JSON.stringify(r), [r]), u = _e();
257
- s.useEffect(() => {
258
- u.current || o || c || i && a && n(r);
259
- }, [
260
- i,
261
- a,
262
- l,
263
- o
264
- ]);
265
- }, xe = ({ formId: t, formRef: n, options: r, children: i }) => {
266
- let [a] = s.useState(r);
267
- return pe(M().fieldErrors?.output), (a.submitOnWatch ? be : void 0)?.(n, a.submitOnWatch), ge(a.resetOnSubmitted), /* @__PURE__ */ c(e, {
268
- value: {
269
- formId: t,
270
- formRef: n,
271
- options: r,
272
- lastSubmitStateRef: s.useRef(null)
273
- },
274
- children: i
275
- });
276
- }, Se = (e, t) => ({
277
- ...e,
278
- ...t,
279
- ...(e?.resetOnSubmitted || t?.resetOnSubmitted) && { resetOnSubmitted: {
280
- ...e?.resetOnSubmitted,
281
- ...t?.resetOnSubmitted
282
- } }
283
- }), Z = (e, t) => s.useMemo(() => Se(e.defaults?.options, t), [JSON.stringify(t)]), Ce = (e, t) => ({
284
- ...e,
285
- ...t
286
- }), we = (e, t, n, r) => f({
287
- ...Ce(t.defaults?.rhf, e),
288
- resolver: r,
289
- defaultValues: n
290
- });
291
- //#endregion
292
- //#region src/form/providers/RhfUtilsFormProviders.tsx
293
- function Q({ formId: e, rhf: t, resolver: n, defaultValues: r, options: i, relay: o, children: u }) {
294
- let f = M(), p = s.useId(), m = e || p, h = s.useRef(null), g = we(t, f, r, n), _ = Z(f, i);
295
- return /* @__PURE__ */ c(d, {
296
- ...g,
297
- children: /* @__PURE__ */ c(ue, {
298
- formRef: h,
299
- children: /* @__PURE__ */ l(xe, {
300
- formId: m,
301
- formRef: h,
302
- options: _,
303
- children: [/* @__PURE__ */ c(a, { options: o }), /* @__PURE__ */ c(de, { children: u })]
304
- })
305
- })
306
- });
307
- }
308
- //#endregion
309
- //#region src/resolvers/zod/getZodResolver.ts
310
- var $ = (e) => g(e), Te = ({ schema: e, children: t, ...n }) => /* @__PURE__ */ c(Q, {
311
- ...n,
312
- resolver: $(e),
313
- children: t
314
- });
315
- //#endregion
316
- //#region src/form/with-providers/RhfUtilsFormWithProviders.tsx
317
- function Ee({ getApiData: e, resolver: t, rhf: n, defaultValues: r, options: i, relay: a, onCancel: o, onSubmitInvalid: s, onBeforeSubmitInvariants: l, onBeforeSubmit: u, onSubmit: d, onSubmitSuccess: f, onSubmitError: p, onSubmitFinally: m, Children: h, form: g, formId: _, className: v }) {
318
- let y = {
319
- formId: _,
320
- resolver: t,
321
- rhf: n,
322
- defaultValues: r,
323
- options: i,
324
- relay: a
325
- }, b = {
326
- getApiData: e,
327
- onCancel: o,
328
- onSubmitInvalid: s,
329
- onBeforeSubmitInvariants: l,
330
- onBeforeSubmit: u,
331
- onSubmit: d,
332
- onSubmitSuccess: f,
333
- onSubmitError: p,
334
- onSubmitFinally: m,
335
- Children: h,
336
- form: g,
337
- className: v
338
- };
339
- return /* @__PURE__ */ c(Q, {
340
- ...y,
341
- children: /* @__PURE__ */ c(B, { ...b })
342
- });
343
- }
344
- //#endregion
345
- //#region src/resolvers/zod/with-providers/RhfUtilsZodFormWithProviders.tsx
346
- var De = ({ schema: e, ...t }) => /* @__PURE__ */ c(Ee, {
347
- ...t,
348
- resolver: $(e)
349
- });
350
- //#endregion
351
- export { T as FormSubmitError, v as RhfUtilsClientConfigProvider, C as RhfUtilsNonFieldErrorMarker, V as RhfUtilsZodForm, Te as RhfUtilsZodFormProviders, De as RhfUtilsZodFormWithProviders, b as useFlatFieldErrorsContext, x as useFlatFieldErrorsContextHasOnlyOrphans, w as useFormRequestSubmit, D as useLastSubmitError, r as useRhfUtilsContext };
@@ -1,49 +0,0 @@
1
- import { c as e, i as t, l as n, n as r, s as i, t as a, u as o } from "./FormRelaySetter.mjs";
2
- import s from "react";
3
- import { useFormState as c } from "react-hook-form";
4
- //#region src/form/relay/context/utils.ts
5
- var l = (e) => e.reduce((e, n) => ({
6
- isDirty: e.isDirty || n.isDirty,
7
- isSubmitting: e.isSubmitting || n.isSubmitting,
8
- isLoading: e.isLoading || n.isLoading,
9
- isSubmitted: e.isSubmitted || n.isSubmitted,
10
- isSubmitSuccessful: e.isSubmitSuccessful || n.isSubmitSuccessful,
11
- isValidating: e.isValidating || n.isValidating,
12
- isValid: e.isValid || n.isValid,
13
- isReady: e.isReady || n.isReady,
14
- disabled: e.disabled || n.disabled,
15
- hasErrors: e.hasErrors || n.errors && !t(n.errors),
16
- hasDirtyFields: e.hasDirtyFields || n.dirtyFields && !t(n.dirtyFields),
17
- hasTouchedFields: e.hasTouchedFields || n.touchedFields && !t(n.touchedFields),
18
- hasValidatingFields: e.hasValidatingFields || n.validatingFields && !t(n.validatingFields),
19
- submitCount: (e.submitCount ?? 0) + (n.submitCount ?? 0),
20
- isMounted: e.isMounted || n.isMounted
21
- }), {
22
- isDirty: void 0,
23
- isSubmitting: void 0,
24
- isLoading: void 0,
25
- isSubmitted: void 0,
26
- isSubmitSuccessful: void 0,
27
- isValidating: void 0,
28
- isReady: void 0,
29
- isValid: void 0,
30
- disabled: void 0,
31
- hasErrors: void 0,
32
- hasDirtyFields: void 0,
33
- hasTouchedFields: void 0,
34
- hasValidatingFields: void 0,
35
- submitCount: void 0,
36
- isMounted: void 0
37
- }), u = (e) => n().state[e], d = (e) => {
38
- let t = n().state, r = l(f(t, e).map(({ state: e }) => e)), i = JSON.stringify(r);
39
- return s.useMemo(() => r, [i]);
40
- }, f = (e, t) => Object.values(e).filter(({ options: e, utils: n }) => !t || "groups" in t && t.groups.filter((t) => e.groups?.includes(t)).length || "predicate" in t && t.predicate({
41
- groups: e.groups,
42
- options: n.options
43
- })), { Provider: p, useRequired: m, useMaybe: h } = o(), g = () => {
44
- if (i()) return l([c()]);
45
- let e = h();
46
- return e ? e.state : d();
47
- };
48
- //#endregion
49
- export { e as FormRelayContextProvider, a as FormRelaySetter, g as useFirstFormStateGroup, d as useFormRelayGroup, u as useFormRelayId, r as useFormRelaySet };
package/dist/esm/trpc.mjs DELETED
@@ -1,24 +0,0 @@
1
- import { TRPCClientError as e } from "@trpc/client";
2
- import { z as t } from "zod";
3
- //#region src/errors/trpc/trpcClientErrorMessageSchema.ts
4
- var n = t.object({
5
- code: t.string(),
6
- message: t.string(),
7
- path: t.array(t.string())
8
- }).passthrough(), r = t.custom((t) => t instanceof e).transform((e) => e.message).transform((e) => {
9
- try {
10
- return JSON.parse(e);
11
- } catch {
12
- return [{
13
- validation: "root",
14
- code: "server",
15
- message: e,
16
- path: ["root"]
17
- }];
18
- }
19
- }).pipe(t.array(n)).transform((e) => e.map((e) => [e.path.join("."), {
20
- type: e.code,
21
- message: e.message
22
- }])).transform((e) => Object.fromEntries(e)), i = (t) => (n) => n instanceof e ? r.parse(n) : t(n);
23
- //#endregion
24
- export { i as makeOnSubmitTrpcClientErrorHandler, r as trpcClientErrorToFormSubmitFieldErrorsSchemaTransformer };