@paragrav/rhf-utils 0.0.66 → 0.0.68

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 (118) hide show
  1. package/dist/esm/client/index.mjs +1 -1
  2. package/dist/esm/client/zod/index.mjs +5 -4
  3. package/dist/esm/errors/context/provider.mjs +5 -5
  4. package/dist/esm/errors/flat/filterFlatFieldErrors.mjs +10 -0
  5. package/dist/esm/errors/flat/useFormFlatFieldErrorsMemo.mjs +6 -0
  6. package/dist/esm/errors/isFieldErrorRefd.mjs +4 -0
  7. package/dist/esm/errors/nonfield/FormNonFieldErrorMarker.utils.mjs +2 -2
  8. package/dist/esm/errors/orphan/getIsOrphanFormErrorWithParentElement.mjs +5 -0
  9. package/dist/esm/errors/orphan/getOrphansFromFieldErrors.mjs +3 -6
  10. package/dist/esm/errors/orphan/getOrphansFromFlatFieldErrors.mjs +6 -7
  11. package/dist/esm/errors/orphan/isOrphanFormError.mjs +6 -6
  12. package/dist/esm/errors/orphan/useFormHasOnlyOrphanFieldErrorsMemo.mjs +10 -0
  13. package/dist/esm/errors/orphan/useOrphanFormErrorsMemo.mjs +6 -6
  14. package/dist/esm/errors/root/getRootsFromFieldErrors.mjs +3 -6
  15. package/dist/esm/errors/root/getRootsFromFlatFieldErrors.mjs +5 -4
  16. package/dist/esm/errors/root/isFlatFieldErrorEntryPathRoot.mjs +5 -0
  17. package/dist/esm/errors/root/useRootFormFieldErrorsMemo.mjs +1 -1
  18. package/dist/esm/errors/{useFormErrorsMemo.mjs → useFormErrorsTransformMemo.mjs} +4 -1
  19. package/dist/esm/exports.mjs +16 -16
  20. package/dist/esm/form/_Form.mjs +47 -46
  21. package/dist/esm/form/useForm.mjs +11 -9
  22. package/dist/types/client/config.d.ts +37 -0
  23. package/dist/types/{src/client → client}/index.d.ts +0 -1
  24. package/dist/types/errors/flat/filterFlatFieldErrors.d.ts +9 -0
  25. package/dist/types/{src/errors → errors}/flat/types.d.ts +4 -0
  26. package/dist/types/errors/flat/useFormFlatFieldErrorsMemo.d.ts +7 -0
  27. package/dist/types/{src/errors → errors}/flat/useRefdFieldErrorsMemo.d.ts +1 -1
  28. package/dist/types/errors/isFieldErrorRefd.d.ts +7 -0
  29. package/dist/types/errors/isFlatFieldErrorEntryRefd.d.ts +7 -0
  30. package/dist/types/errors/nonfield/FormNonFieldErrorMarker.utils.d.ts +2 -0
  31. package/dist/types/errors/orphan/getIsOrphanFormErrorWithParentElement.d.ts +7 -0
  32. package/dist/types/errors/orphan/useFormHasOnlyOrphanFieldErrorsMemo.d.ts +6 -0
  33. package/dist/types/errors/root/getRootsFromFlatFieldErrors.d.ts +2 -0
  34. package/dist/types/errors/root/isFlatFieldErrorEntryPathRoot.d.ts +7 -0
  35. package/dist/types/{src/errors → errors}/root/isFormErrorPathRoot.d.ts +1 -0
  36. package/dist/types/errors/useFormErrorsTransformMemo.d.ts +7 -0
  37. package/dist/types/{src/exports.d.ts → exports.d.ts} +2 -2
  38. package/dist/types/{src/form → form}/_Form.d.ts +2 -2
  39. package/dist/types/{src/form → form}/useForm.d.ts +3 -1
  40. package/dist/types/{src/form → form}/useFormOptions.d.ts +0 -14
  41. package/package.json +78 -153
  42. package/dist/esm/errors/flat/useRefdFieldErrorsMemo.mjs +0 -13
  43. package/dist/esm/errors/isFieldError.mjs +0 -4
  44. package/dist/esm/errors/orphan/useFormHasOrphanAndNoFieldErrors.mjs +0 -10
  45. package/dist/esm/node_modules/@hookform/resolvers/zod/dist/zod.mjs +0 -49
  46. package/dist/types/src/client/config.d.ts +0 -19
  47. package/dist/types/src/errors/flat/useFormFlatFieldErrorsMemo.d.ts +0 -5
  48. package/dist/types/src/errors/nonfield/FormNonFieldErrorMarker.utils.d.ts +0 -2
  49. package/dist/types/src/errors/root/getRootsFromFlatFieldErrors.d.ts +0 -4
  50. /package/dist/types/{src/client → client}/context.d.ts +0 -0
  51. /package/dist/types/{src/client → client}/zod/context/index.d.ts +0 -0
  52. /package/dist/types/{src/client → client}/zod/context/provider.d.ts +0 -0
  53. /package/dist/types/{src/client → client}/zod/index.d.ts +0 -0
  54. /package/dist/types/{src/devtool → devtool}/LazyDevTool.d.ts +0 -0
  55. /package/dist/types/{src/env-conditions → env-conditions}/development.d.ts +0 -0
  56. /package/dist/types/{src/env-conditions → env-conditions}/production.d.ts +0 -0
  57. /package/dist/types/{src/errors → errors}/consoleErrors.d.ts +0 -0
  58. /package/dist/types/{src/errors → errors}/context/index.d.ts +0 -0
  59. /package/dist/types/{src/errors → errors}/context/provider.d.ts +0 -0
  60. /package/dist/types/{src/errors → errors}/flat/flattenFieldErrors.d.ts +0 -0
  61. /package/dist/types/{src/errors → errors}/flat/getFlatFieldErrors.d.ts +0 -0
  62. /package/dist/types/{src/errors → errors}/isFieldError.d.ts +0 -0
  63. /package/dist/types/{src/errors → errors}/message/FormErrorMessage.d.ts +0 -0
  64. /package/dist/types/{src/errors → errors}/message/FormErrorMessageByPath.d.ts +0 -0
  65. /package/dist/types/{src/errors → errors}/nonfield/FormNonFieldErrorMarker.d.ts +0 -0
  66. /package/dist/types/{src/errors → errors}/nonfield/FormNonFieldErrorMarker.spec.d.ts +0 -0
  67. /package/dist/types/{src/errors → errors}/nonfield/FormNonFieldErrorMarkerHtmlAttribute.d.ts +0 -0
  68. /package/dist/types/{src/errors → errors}/nonfield/isNonFieldError.d.ts +0 -0
  69. /package/dist/types/{src/errors → errors}/orphan/getOrphansFromFieldErrors.d.ts +0 -0
  70. /package/dist/types/{src/errors → errors}/orphan/getOrphansFromFlatFieldErrors.d.ts +0 -0
  71. /package/dist/types/{src/errors → errors}/orphan/isOrphanFormError.d.ts +0 -0
  72. /package/dist/types/{src/errors → errors}/orphan/useFormHasOrphanAndNoFieldErrors.d.ts +0 -0
  73. /package/dist/types/{src/errors → errors}/orphan/useOrphanFormErrorsMemo.d.ts +0 -0
  74. /package/dist/types/{src/errors → errors}/orphan/useOrphanFormErrorsToConsole.d.ts +0 -0
  75. /package/dist/types/{src/errors → errors}/outputErrors.d.ts +0 -0
  76. /package/dist/types/{src/errors → errors}/root/FormRootErrors.d.ts +0 -0
  77. /package/dist/types/{src/errors → errors}/root/FormRootErrorsFromContext.d.ts +0 -0
  78. /package/dist/types/{src/errors → errors}/root/consts.d.ts +0 -0
  79. /package/dist/types/{src/errors → errors}/root/getRootsFromFieldErrors.d.ts +0 -0
  80. /package/dist/types/{src/errors → errors}/root/useRootFormFieldErrorsMemo.d.ts +0 -0
  81. /package/dist/types/{src/errors → errors}/useFormErrorConsoleDebug.d.ts +0 -0
  82. /package/dist/types/{src/errors → errors}/useFormErrorsEffect.d.ts +0 -0
  83. /package/dist/types/{src/errors → errors}/useFormErrorsIfAny.d.ts +0 -0
  84. /package/dist/types/{src/errors → errors}/useFormErrorsMemo.d.ts +0 -0
  85. /package/dist/types/{src/errors → errors}/useFormErrorsToConsole.d.ts +0 -0
  86. /package/dist/types/{src/errors → errors}/useFormRequestSubmit.d.ts +0 -0
  87. /package/dist/types/{src/form → form}/FormWithProviders.d.ts +0 -0
  88. /package/dist/types/{src/form → form}/SafeFieldValues.d.ts +0 -0
  89. /package/dist/types/{src/form → form}/_FormBase.d.ts +0 -0
  90. /package/dist/types/{src/form → form}/_FormProviders.d.ts +0 -0
  91. /package/dist/types/{src/form → form}/context/group/FormGroupContextProvider.d.ts +0 -0
  92. /package/dist/types/{src/form → form}/context/group/index.d.ts +0 -0
  93. /package/dist/types/{src/form → form}/context/group/useFormGroupChildIsMountedTracker.d.ts +0 -0
  94. /package/dist/types/{src/form → form}/context/group/useFormGroupChildIsSubmittingTracker.d.ts +0 -0
  95. /package/dist/types/{src/form → form}/context/group/useFormGroupChildTracker.d.ts +0 -0
  96. /package/dist/types/{src/form → form}/context/group/useFormGroupIsAnyBusy.d.ts +0 -0
  97. /package/dist/types/{src/form → form}/context/group/useFormGroupIsChildBusy.d.ts +0 -0
  98. /package/dist/types/{src/form → form}/context/group/useFormGroupIsParentBusy.d.ts +0 -0
  99. /package/dist/types/{src/form → form}/context/group/useFormGroupParentTracker.d.ts +0 -0
  100. /package/dist/types/{src/form → form}/context/group/useFormOrParentIsBusy.d.ts +0 -0
  101. /package/dist/types/{src/form → form}/context/utils/FormUtilsContextProvider.d.ts +0 -0
  102. /package/dist/types/{src/form → form}/context/utils/useFormUtilsContext.d.ts +0 -0
  103. /package/dist/types/{src/form → form}/useFormIsBusy.d.ts +0 -0
  104. /package/dist/types/{src/form → form}/utils/getSubmitterButtonData.d.ts +0 -0
  105. /package/dist/types/{src/main.d.ts → main.d.ts} +0 -0
  106. /package/dist/types/{src/submit → submit}/error/FormSubmitError.d.ts +0 -0
  107. /package/dist/types/{src/submit → submit}/error/setCtxErrorsByFormSubmitError.d.ts +0 -0
  108. /package/dist/types/{src/submit → submit}/useFormOnSubmitSuccessful.d.ts +0 -0
  109. /package/dist/types/{src/submit → submit}/useFormOnSubmitSuccessfulAndReset.d.ts +0 -0
  110. /package/dist/types/{src/submit → submit}/useResetFormOnSubmitError.d.ts +0 -0
  111. /package/dist/types/{src/submit → submit}/useResetFormOnSubmitSuccessful.d.ts +0 -0
  112. /package/dist/types/{src/submit → submit}/useSubmitFormOnChange.d.ts +0 -0
  113. /package/dist/types/{src/utils → utils}/createContext.d.ts +0 -0
  114. /package/dist/types/{src/utils → utils}/fixedForwardRef.d.ts +0 -0
  115. /package/dist/types/{src/utils → utils}/isEmptyObject.d.ts +0 -0
  116. /package/dist/types/{src/utils → utils}/useImperativeForwardedRef.d.ts +0 -0
  117. /package/dist/types/{src/utils → utils}/useThrowAsyncError.d.ts +0 -0
  118. /package/dist/types/{src/utils → utils}/useToggle.d.ts +0 -0
@@ -7,7 +7,6 @@ const p = (t) => (r) => {
7
7
  r
8
8
  );
9
9
  return {
10
- config: r,
11
10
  useForm: (o, s) => F(
12
11
  e(o, s)
13
12
  ),
@@ -30,6 +29,7 @@ const p = (t) => (r) => {
30
29
  var s, m, i, n, f, a, h;
31
30
  return {
32
31
  ...o,
32
+ config: r,
33
33
  rhf: {
34
34
  ...(s = r.defaultOptions) == null ? void 0 : s.rhf,
35
35
  ...o.rhf,
@@ -1,6 +1,7 @@
1
- import { zodResolver as t } from "../../node_modules/@hookform/resolvers/zod/dist/zod.mjs";
2
- import { createRhfUtilsClient as e } from "../index.mjs";
3
- const i = e(t);
1
+ import { zodResolver as t } from "@hookform/resolvers/zod";
2
+ import "zod";
3
+ import { createRhfUtilsClient as o } from "../index.mjs";
4
+ const l = o(t);
4
5
  export {
5
- i as createZodRhfUtilsClient
6
+ l as createZodRhfUtilsClient
6
7
  };
@@ -1,8 +1,8 @@
1
1
  import { jsx as F } from "react/jsx-runtime";
2
- import i from "../flat/getFlatFieldErrors.mjs";
3
- import l from "../orphan/getOrphansFromFlatFieldErrors.mjs";
4
- import a from "../root/getRootsFromFlatFieldErrors.mjs";
5
- import p from "../useFormErrorsMemo.mjs";
2
+ import a from "../flat/getFlatFieldErrors.mjs";
3
+ import i from "../orphan/getOrphansFromFlatFieldErrors.mjs";
4
+ import l from "../root/getRootsFromFlatFieldErrors.mjs";
5
+ import p from "../useFormErrorsTransformMemo.mjs";
6
6
  import { _FormErrorsFlatContextProvider as c } from "./index.mjs";
7
7
  const u = ({
8
8
  formRef: o,
@@ -11,7 +11,7 @@ const u = ({
11
11
  const e = p((s) => {
12
12
  if (!o.current)
13
13
  return;
14
- const r = i(s), m = a(r), n = l(r, o.current);
14
+ const r = a(s), m = l(r), n = i(r, o.current);
15
15
  return { all: r, roots: m, orphans: n };
16
16
  });
17
17
  return /* @__PURE__ */ F(c, { value: e, children: t });
@@ -0,0 +1,10 @@
1
+ const r = (e) => (t) => (
2
+ // re-create object from entries
3
+ Object.fromEntries(
4
+ // break down to entries
5
+ Object.entries(t).filter(e)
6
+ )
7
+ );
8
+ export {
9
+ r as default
10
+ };
@@ -0,0 +1,6 @@
1
+ import r from "../useFormErrorsTransformMemo.mjs";
2
+ import o from "./getFlatFieldErrors.mjs";
3
+ const s = () => r(o);
4
+ export {
5
+ s as default
6
+ };
@@ -0,0 +1,4 @@
1
+ const r = (e) => !!e.ref;
2
+ export {
3
+ r as default
4
+ };
@@ -1,6 +1,6 @@
1
1
  import o from "./FormNonFieldErrorMarkerHtmlAttribute.mjs";
2
- const t = (r) => `[role="alert"][${o}="${r}"]`, n = (r, e) => !!e.querySelector(t(r));
2
+ const t = (r) => `[role="alert"][${o}="${r}"]`, i = (r, e) => !!e.querySelector(t(r));
3
3
  export {
4
4
  t as getFormNonFieldErrorMarkerQuerySelector,
5
- n as hasNonFieldErrorMarkerInDOM
5
+ i as isNonFieldErrorMarkerInDOM
6
6
  };
@@ -0,0 +1,5 @@
1
+ import o from "./isOrphanFormError.mjs";
2
+ const n = (r) => ([t, e]) => o(t, e, r);
3
+ export {
4
+ n as default
5
+ };
@@ -1,9 +1,6 @@
1
- import e from "../flat/getFlatFieldErrors.mjs";
2
- import s from "./getOrphansFromFlatFieldErrors.mjs";
3
- const a = (r, o) => {
4
- const t = e(r);
5
- return s(t, o);
6
- };
1
+ import t from "../flat/getFlatFieldErrors.mjs";
2
+ import e from "./getOrphansFromFlatFieldErrors.mjs";
3
+ const a = (r, o) => e(t(r), o);
7
4
  export {
8
5
  a as default
9
6
  };
@@ -1,9 +1,8 @@
1
- import s from "./isOrphanFormError.mjs";
2
- const a = (r, t) => Object.fromEntries(
3
- Object.entries(r).filter(
4
- ([e, o]) => s(e, o, t)
5
- )
6
- );
1
+ import e from "../flat/filterFlatFieldErrors.mjs";
2
+ import o from "./getIsOrphanFormErrorWithParentElement.mjs";
3
+ const F = (r, t) => e(
4
+ o(t)
5
+ )(r);
7
6
  export {
8
- a as default
7
+ F as default
9
8
  };
@@ -1,12 +1,12 @@
1
- import m from "../isFieldError.mjs";
2
- import { hasNonFieldErrorMarkerInDOM as t } from "../nonfield/FormNonFieldErrorMarker.utils.mjs";
3
- import s from "../root/isFormErrorPathRoot.mjs";
4
- const n = (r, o, i) => (
1
+ import m from "../isFieldErrorRefd.mjs";
2
+ import { isNonFieldErrorMarkerInDOM as t } from "../nonfield/FormNonFieldErrorMarker.utils.mjs";
3
+ import e from "../root/isFormErrorPathRoot.mjs";
4
+ const d = (r, o, i) => (
5
5
  // not root path
6
- !s(r) && // non-field
6
+ !e(r) && // non-field
7
7
  !m(o) && // does not have marker
8
8
  !t(r, i)
9
9
  );
10
10
  export {
11
- n as default
11
+ d as default
12
12
  };
@@ -0,0 +1,10 @@
1
+ import s from "../../utils/isEmptyObject.mjs";
2
+ import t from "../flat/useFormFlatFieldErrorsMemo.mjs";
3
+ import m from "./useOrphanFormErrorsMemo.mjs";
4
+ const n = (o) => {
5
+ const e = t(), r = m(o);
6
+ return s(r) ? !1 : Object.keys(e).length !== Object.keys(r).length;
7
+ }, i = n;
8
+ export {
9
+ i as default
10
+ };
@@ -1,14 +1,14 @@
1
1
  import "react";
2
2
  import t from "../../utils/isEmptyObject.mjs";
3
- import e from "../useFormErrorsMemo.mjs";
4
- import m from "./getOrphansFromFieldErrors.mjs";
5
- const s = (r) => e((o) => {
3
+ import m from "../useFormErrorsTransformMemo.mjs";
4
+ import e from "./getOrphansFromFieldErrors.mjs";
5
+ const s = (r) => m((o) => {
6
6
  if (t(o))
7
7
  return {};
8
8
  if (!r.current)
9
9
  throw new Error();
10
- return m(o, r.current);
11
- }), E = s;
10
+ return e(o, r.current);
11
+ }), a = s;
12
12
  export {
13
- E as default
13
+ a as default
14
14
  };
@@ -1,9 +1,6 @@
1
- import t from "../flat/getFlatFieldErrors.mjs";
2
- import e from "./getRootsFromFlatFieldErrors.mjs";
3
- const F = (r) => {
4
- const o = t(r);
5
- return e(o);
6
- };
1
+ import o from "../flat/getFlatFieldErrors.mjs";
2
+ import t from "./getRootsFromFlatFieldErrors.mjs";
3
+ const F = (r) => t(o(r));
7
4
  export {
8
5
  F as default
9
6
  };
@@ -1,7 +1,8 @@
1
- import o from "./isFormErrorPathRoot.mjs";
2
- const s = (r) => Object.fromEntries(
3
- Object.entries(r).filter(([t]) => o(t))
1
+ import r from "../flat/filterFlatFieldErrors.mjs";
2
+ import o from "./isFlatFieldErrorEntryPathRoot.mjs";
3
+ const l = r(
4
+ o
4
5
  );
5
6
  export {
6
- s as default
7
+ l as default
7
8
  };
@@ -0,0 +1,5 @@
1
+ import r from "./isFormErrorPathRoot.mjs";
2
+ const a = ([o]) => r(o);
3
+ export {
4
+ a as default
5
+ };
@@ -1,4 +1,4 @@
1
- import o from "../useFormErrorsMemo.mjs";
1
+ import o from "../useFormErrorsTransformMemo.mjs";
2
2
  import r from "./getRootsFromFieldErrors.mjs";
3
3
  const e = () => o(r), t = e;
4
4
  export {
@@ -2,7 +2,10 @@ import e from "react";
2
2
  import { useFormState as t } from "react-hook-form";
3
3
  const u = (r) => {
4
4
  const { errors: o } = t();
5
- return e.useMemo(() => r(o), [r, o]);
5
+ return e.useMemo(
6
+ () => r(o),
7
+ [r, o]
8
+ );
6
9
  };
7
10
  export {
8
11
  u as default
@@ -1,22 +1,22 @@
1
1
  import { createZodRhfUtilsClient as e } from "./client/zod/index.mjs";
2
2
  import { default as s } from "./client/zod/context/index.mjs";
3
3
  import { default as u } from "./client/zod/context/provider.mjs";
4
- import { default as m } from "./devtool/LazyDevTool.mjs";
4
+ import { default as f } from "./devtool/LazyDevTool.mjs";
5
5
  import { default as d } from "./errors/context/index.mjs";
6
6
  import { default as x } from "./errors/context/provider.mjs";
7
7
  import { default as n } from "./errors/message/FormErrorMessage.mjs";
8
8
  import { default as E } from "./errors/message/FormErrorMessageByPath.mjs";
9
9
  import { default as c } from "./errors/nonfield/FormNonFieldErrorMarker.mjs";
10
10
  import { default as S } from "./errors/nonfield/FormNonFieldErrorMarkerHtmlAttribute.mjs";
11
- import { default as y } from "./errors/orphan/useFormHasOrphanAndNoFieldErrors.mjs";
12
- import { default as M } from "./errors/orphan/useOrphanFormErrorsMemo.mjs";
11
+ import { default as y } from "./errors/orphan/useFormHasOnlyOrphanFieldErrorsMemo.mjs";
12
+ import { default as O } from "./errors/orphan/useOrphanFormErrorsMemo.mjs";
13
13
  import { default as P } from "./errors/orphan/useOrphanFormErrorsToConsole.mjs";
14
14
  import { default as I } from "./errors/root/useRootFormFieldErrorsMemo.mjs";
15
- import { default as k } from "./errors/useFormErrorConsoleDebug.mjs";
15
+ import { default as g } from "./errors/useFormErrorConsoleDebug.mjs";
16
16
  import { default as B } from "./errors/useFormErrorsEffect.mjs";
17
- import { default as v } from "./errors/useFormErrorsIfAny.mjs";
18
- import { default as D } from "./errors/useFormErrorsMemo.mjs";
19
- import { default as Z } from "./errors/useFormRequestSubmit.mjs";
17
+ import { default as A } from "./errors/useFormErrorsIfAny.mjs";
18
+ import { default as D } from "./errors/useFormErrorsTransformMemo.mjs";
19
+ import { default as H } from "./errors/useFormRequestSubmit.mjs";
20
20
  import { default as q } from "./form/useForm.mjs";
21
21
  import { default as L } from "./form/context/utils/FormUtilsContextProvider.mjs";
22
22
  import { default as w } from "./form/context/utils/useFormUtilsContext.mjs";
@@ -28,7 +28,7 @@ import { default as rr } from "./form/context/group/useFormGroupIsAnyBusy.mjs";
28
28
  import { default as er } from "./form/context/group/useFormGroupIsChildBusy.mjs";
29
29
  import { default as sr } from "./form/context/group/useFormGroupIsParentBusy.mjs";
30
30
  import { default as ur } from "./form/context/group/useFormGroupParentTracker.mjs";
31
- import { default as mr } from "./form/context/group/useFormOrParentIsBusy.mjs";
31
+ import { default as fr } from "./form/context/group/useFormOrParentIsBusy.mjs";
32
32
  import { default as dr } from "./form/utils/getSubmitterButtonData.mjs";
33
33
  import { FormSubmitError as xr } from "./submit/error/FormSubmitError.mjs";
34
34
  import { default as nr } from "./submit/useFormOnSubmitSuccessful.mjs";
@@ -45,16 +45,16 @@ export {
45
45
  S as FormNonFieldErrorMarkerHtmlAttribute,
46
46
  xr as FormSubmitError,
47
47
  L as FormUtilsContextProvider,
48
- m as LazyDevTool,
48
+ f as LazyDevTool,
49
49
  u as RhfUtilsZodContextProvider,
50
50
  e as createZodRhfUtilsClient,
51
51
  dr as getSubmitterButtonData,
52
52
  q as useForm,
53
- k as useFormErrorConsoleDebug,
53
+ g as useFormErrorConsoleDebug,
54
54
  B as useFormErrorsEffect,
55
55
  d as useFormErrorsFlatContext,
56
- v as useFormErrorsIfAny,
57
- D as useFormErrorsMemo,
56
+ A as useFormErrorsIfAny,
57
+ D as useFormErrorsTransformMemo,
58
58
  V as useFormGroupChildIsMountedTracker,
59
59
  X as useFormGroupChildIsSubmittingTracker,
60
60
  _ as useFormGroupChildTracker,
@@ -62,13 +62,13 @@ export {
62
62
  er as useFormGroupIsChildBusy,
63
63
  sr as useFormGroupIsParentBusy,
64
64
  ur as useFormGroupParentTracker,
65
- y as useFormHasOrphanAndNoFieldErrors,
65
+ y as useFormHasOnlyOrphanFieldErrorsMemo,
66
66
  nr as useFormOnSubmitSuccessful,
67
67
  Er as useFormOnSubmitSuccessfulAndReset,
68
- mr as useFormOrParentIsBusy,
69
- Z as useFormRequestSubmit,
68
+ fr as useFormOrParentIsBusy,
69
+ H as useFormRequestSubmit,
70
70
  w as useFormUtilsContext,
71
- M as useOrphanFormErrorsMemo,
71
+ O as useOrphanFormErrorsMemo,
72
72
  P as useOrphanFormErrorsToConsole,
73
73
  Sr as useResetFormAfterSubmitSuccessful,
74
74
  cr as useResetFormOnSubmitError,
@@ -1,89 +1,90 @@
1
- import { jsxs as v, jsx as p } from "react/jsx-runtime";
1
+ import { jsxs as B, jsx as p } from "react/jsx-runtime";
2
2
  import "react";
3
- import { useFormContext as B } from "react-hook-form";
4
- import N from "../devtool/LazyDevTool.mjs";
5
- import { FormSubmitError as P } from "../submit/error/FormSubmitError.mjs";
6
- import T from "../submit/error/setCtxErrorsByFormSubmitError.mjs";
7
- import V from "../submit/useResetFormOnSubmitError.mjs";
8
- import _ from "./_FormBase.mjs";
9
- function A({
10
- formId: x,
3
+ import { useFormContext as N } from "react-hook-form";
4
+ import P from "../devtool/LazyDevTool.mjs";
5
+ import { FormSubmitError as T } from "../submit/error/FormSubmitError.mjs";
6
+ import V from "../submit/error/setCtxErrorsByFormSubmitError.mjs";
7
+ import _ from "../submit/useResetFormOnSubmitError.mjs";
8
+ import O from "./_FormBase.mjs";
9
+ function G({
10
+ formId: c,
11
11
  formRef: l,
12
12
  form: t,
13
- children: y
13
+ config: n,
14
+ children: o
14
15
  }) {
15
- var c, b, S, o, h;
16
- const a = B();
17
- V({
18
- disabled: !((c = t == null ? void 0 : t.options) != null && c.resetValuesOnSubmitError)
16
+ var b, S, h, E, F;
17
+ const a = N();
18
+ _({
19
+ disabled: !((b = t == null ? void 0 : t.options) != null && b.resetValuesOnSubmitError)
19
20
  });
20
- const C = async (i) => {
21
- var n;
22
- (n = t == null ? void 0 : t.options) != null && n.stopSubmitPropagation && i.stopPropagation();
21
+ const y = async (s) => {
22
+ var e;
23
+ (e = t == null ? void 0 : t.options) != null && e.stopSubmitPropagation && s.stopPropagation();
23
24
  try {
24
25
  await a.handleSubmit(
25
- g,
26
+ j,
26
27
  t == null ? void 0 : t.onSubmitInvalid
27
- )(i);
28
- } catch (s) {
29
- j(s, i);
28
+ )(s);
29
+ } catch (i) {
30
+ v(i, s);
30
31
  }
31
- }, g = (i, n) => {
32
- var s;
33
- return (s = t == null ? void 0 : t.onSubmit) == null ? void 0 : s.call(
32
+ }, j = (s, e) => {
33
+ var i;
34
+ return (i = t == null ? void 0 : t.onSubmit) == null ? void 0 : i.call(
34
35
  t,
35
- i,
36
+ s,
36
37
  a,
37
- n
38
+ e
38
39
  );
39
- }, j = (i, n) => {
40
- var e, E, F;
41
- const s = i instanceof P ? (
40
+ }, v = (s, e) => {
41
+ var x, C;
42
+ const i = s instanceof T ? (
42
43
  // consumer can manually throw FormSubmitError (e.g., manual validation)
43
- i
44
+ s
44
45
  ) : (
45
46
  // if error is not FormSubmitError, consumer can provide global handler
46
- (E = (e = t == null ? void 0 : t.options) == null ? void 0 : e.onSubmitError) == null ? void 0 : E.call(e, i)
47
+ (x = n == null ? void 0 : n.onSubmitError) == null ? void 0 : x.call(n, s)
47
48
  );
48
- s && T(a, s), (F = t == null ? void 0 : t.onSubmitError) == null || F.call(
49
+ i && V(a, i), (C = t == null ? void 0 : t.onSubmitError) == null || C.call(
49
50
  t,
50
- i,
51
+ s,
51
52
  a,
52
- n
53
+ e
53
54
  );
54
55
  }, u = {
55
- formId: x,
56
+ formId: c,
56
57
  formRef: l,
57
58
  ctx: a,
58
59
  options: t == null ? void 0 : t.options
59
- }, d = (i) => {
60
- var s, e;
61
- const n = (e = (s = t == null ? void 0 : t.options) == null ? void 0 : s.Children) == null ? void 0 : e[i];
62
- return n && /* @__PURE__ */ p(n, { ...u });
60
+ }, d = (s) => {
61
+ var i;
62
+ const e = (i = n == null ? void 0 : n.Children) == null ? void 0 : i[s];
63
+ return e && /* @__PURE__ */ p(e, { ...u });
63
64
  };
64
- return /* @__PURE__ */ v(
65
- _,
65
+ return /* @__PURE__ */ B(
66
+ O,
66
67
  {
67
68
  noValidate: !0,
68
69
  style: {
69
70
  position: "relative"
70
71
  },
71
72
  ...t == null ? void 0 : t.props,
72
- className: [(b = t == null ? void 0 : t.options) == null ? void 0 : b.classNames, ((S = t == null ? void 0 : t.props) == null ? void 0 : S.className) ?? ""].join(
73
+ className: [(S = t == null ? void 0 : t.options) == null ? void 0 : S.classNames, ((h = t == null ? void 0 : t.props) == null ? void 0 : h.className) ?? ""].join(
73
74
  " "
74
75
  ),
75
- onSubmit: C,
76
+ onSubmit: y,
76
77
  formRef: l,
77
78
  children: [
78
79
  d("top"),
79
- ((o = t == null ? void 0 : t.options) == null ? void 0 : o.devTool) !== "disabled" && /* @__PURE__ */ p(N, { placement: "top-right", ...(h = t == null ? void 0 : t.options) == null ? void 0 : h.devTool }),
80
+ ((E = t == null ? void 0 : t.options) == null ? void 0 : E.devTool) !== "disabled" && /* @__PURE__ */ p(P, { placement: "top-right", ...(F = t == null ? void 0 : t.options) == null ? void 0 : F.devTool }),
80
81
  (t == null ? void 0 : t.Fields) && /* @__PURE__ */ p(t.Fields, { ...u }),
81
- y,
82
+ o,
82
83
  d("bottom")
83
84
  ]
84
85
  }
85
86
  );
86
87
  }
87
88
  export {
88
- A as default
89
+ G as default
89
90
  };
@@ -1,14 +1,15 @@
1
1
  import n from "react";
2
- import { useForm as u } from "react-hook-form";
3
- import i from "../submit/useSubmitFormOnChange.mjs";
4
- const l = ({
5
- rhf: m,
2
+ import { useForm as i } from "react-hook-form";
3
+ import c from "../submit/useSubmitFormOnChange.mjs";
4
+ const P = ({
5
+ config: m,
6
+ rhf: p,
6
7
  form: o,
7
- utils: p
8
+ utils: u
8
9
  }) => {
9
10
  var t;
10
- const s = n.useId(), e = u(m), r = n.useRef(null);
11
- return i(r, {
11
+ const s = n.useId(), e = i(p), r = n.useRef(null);
12
+ return c(r, {
12
13
  disabled: !((t = o == null ? void 0 : o.options) != null && t.submitOnChange)
13
14
  }), {
14
15
  id: s,
@@ -18,15 +19,16 @@ const l = ({
18
19
  formId: s,
19
20
  formRef: r,
20
21
  rhfForm: e,
21
- utils: p
22
+ utils: u
22
23
  },
23
24
  formProps: {
24
25
  formId: s,
25
26
  formRef: r,
27
+ config: m,
26
28
  form: o
27
29
  }
28
30
  };
29
31
  };
30
32
  export {
31
- l as default
33
+ P as default
32
34
  };
@@ -0,0 +1,37 @@
1
+ import { FormSubmitError } from '../submit/error/FormSubmitError';
2
+ import { UseFormOptions } from '../form/useFormOptions';
3
+ import { UseFormFieldsProps } from '../form/useForm';
4
+ import { _FormSlots } from '../form/_Form';
5
+ import { UseFormProps } from 'react-hook-form';
6
+
7
+ export type ClientConfig = {
8
+ /**
9
+ * Default options for all forms. (Are overridden by form-specific options.)
10
+ */
11
+ defaultOptions?: {
12
+ /**
13
+ * Default RHF `useForm` settings.
14
+ *
15
+ * (Exposes only non-local props.)
16
+ */
17
+ rhf?: Pick<UseFormProps, 'mode' | 'reValidateMode' | 'resetOptions' | 'context' | 'shouldFocusError' | 'shouldUnregister' | 'shouldUseNativeValidation' | 'progressive' | 'criteriaMode' | 'delayError'>;
18
+ /**
19
+ * Default global options settings.
20
+ *
21
+ * Extend this type to inject custom options/functionality via `Children` component.
22
+ */
23
+ form?: UseFormOptions;
24
+ };
25
+ /**
26
+ * Components injected by slot across all forms.
27
+ * (Per-form injection can be done via Fields prop.)
28
+ *
29
+ * top: e.g., block navigation on dirty form.
30
+ * bottom: e.g., root errors list.
31
+ */
32
+ Children?: Partial<Record<_FormSlots, React.FC<UseFormFieldsProps>>>;
33
+ /**
34
+ * Handle non-{@link FormSubmitError} errors. Optionally, return {@link FormSubmitError} to merge into context errors.
35
+ */
36
+ onSubmitError?: (error: unknown) => FormSubmitError | undefined;
37
+ };
@@ -13,7 +13,6 @@ export type ObjectSchema<TInputKey extends string, TOutputKey extends string> =
13
13
  [key in TOutputKey]: SafeFieldValues;
14
14
  };
15
15
  export type CreateRhfUtilsClient<TObjectSchema extends ObjectSchema<TObjectSchemaInputKey, TObjectSchemaOutputKey>, TObjectSchemaInputKey extends string, TObjectSchemaOutputKey extends string> = {
16
- config: ClientConfig;
17
16
  useForm: <TSchema extends TObjectSchema, TSchemaInput extends SafeFieldValues = TSchema[TObjectSchemaInputKey], TSchemaOutput extends SafeFieldValues = TSchema[TObjectSchemaOutputKey]>(schema: TSchema, props: UseFormProps<TSchemaInput, TSchemaOutput>) => UseFormReturn<TSchemaInput, TSchemaOutput>;
18
17
  FormWithProviders: <TSchema extends TObjectSchema, TSchemaInput extends SafeFieldValues = TSchema[TObjectSchemaInputKey], TSchemaOutput extends SafeFieldValues = TSchema[TObjectSchemaOutputKey]>(props: {
19
18
  schema: TSchema;
@@ -0,0 +1,9 @@
1
+ import { FlatFieldErrorEntry, FlatFieldErrors } from './types';
2
+
3
+ /**
4
+ * Filter {@link FlatFieldErrors} by a predicate.
5
+ *
6
+ * (Encapsulates to and from Object entries.)
7
+ */
8
+ declare const makeFlatFieldErrorsFilter: (predicate: (entry: FlatFieldErrorEntry, index: number) => boolean) => (errors: FlatFieldErrors) => FlatFieldErrors;
9
+ export default makeFlatFieldErrorsFilter;
@@ -11,3 +11,7 @@ import { FieldError } from 'react-hook-form';
11
11
  * ```
12
12
  */
13
13
  export type FlatFieldErrors = Record<string, FieldError>;
14
+ /**
15
+ * Return from `Object.entries` on {@link FlatFieldErrors}.
16
+ */
17
+ export type FlatFieldErrorEntry = [path: string, error: FieldError];
@@ -0,0 +1,7 @@
1
+ import { FlatFieldErrors } from './types';
2
+
3
+ /**
4
+ * Use {@link FieldErrors} as {@link FlatFieldErrors}.
5
+ */
6
+ declare const useFormFlatFieldErrorsMemo: () => FlatFieldErrors;
7
+ export default useFormFlatFieldErrorsMemo;
@@ -2,7 +2,7 @@ import { FlatFieldErrors } from './types';
2
2
  import { FieldErrors } from 'react-hook-form';
3
3
 
4
4
  /**
5
- * Use errors with refs.
5
+ * Use {@link FieldErrors} with `ref`s as {@link FlatFieldErrors}.
6
6
  */
7
7
  declare const useRefdFieldErrorsMemo: () => FlatFieldErrors;
8
8
  export default useRefdFieldErrorsMemo;
@@ -0,0 +1,7 @@
1
+ import { FieldError } from 'react-hook-form';
2
+
3
+ /**
4
+ * Determine if {@link FieldError} is a `ref`'d field error.
5
+ */
6
+ declare const isFieldErrorRefd: (error: FieldError) => boolean;
7
+ export default isFieldErrorRefd;
@@ -0,0 +1,7 @@
1
+ import { FlatFieldErrorEntry } from './flat/types';
2
+
3
+ /**
4
+ * Util wrapper for {@link isFieldErrorRefd} for usage with {@link FlatFieldErrorEntry}.
5
+ */
6
+ declare const isFlatFieldErrorEntryRefd: ([, error]: FlatFieldErrorEntry) => boolean;
7
+ export default isFlatFieldErrorEntryRefd;
@@ -0,0 +1,2 @@
1
+ export declare const getFormNonFieldErrorMarkerQuerySelector: (path: string) => string;
2
+ export declare const isNonFieldErrorMarkerInDOM: (path: string, parentElement: Pick<HTMLElement, 'querySelector'>) => boolean;
@@ -0,0 +1,7 @@
1
+ import { FlatFieldErrorEntry } from '../flat/types';
2
+
3
+ /**
4
+ * Util wrapper for {@link isOrphanFormError} for usage with {@link FlatFieldErrorEntry}.
5
+ */
6
+ declare const getIsFlatFieldErrorEntryOrphanByParentElement: (parentElement: Pick<HTMLElement, 'querySelector'>) => ([path, error]: FlatFieldErrorEntry) => boolean;
7
+ export default getIsFlatFieldErrorEntryOrphanByParentElement;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Determined if there are orphan errors and no field errors.
3
+ * (May be useful when reporting or displaying a specific message to user.)
4
+ */
5
+ declare const useFormHasOnlyOrphanFieldErrorsMemo: (formRef: React.RefObject<HTMLFormElement>) => boolean;
6
+ export default useFormHasOnlyOrphanFieldErrorsMemo;
@@ -0,0 +1,2 @@
1
+ declare const getRootsFromFlatFieldErrors: (errors: import('../flat/types').FlatFieldErrors) => import('../flat/types').FlatFieldErrors;
2
+ export default getRootsFromFlatFieldErrors;
@@ -0,0 +1,7 @@
1
+ import { FlatFieldErrorEntry } from '../flat/types';
2
+
3
+ /**
4
+ * Util wrapper for {@link isFormErrorPathRoot} for usage with {@link FlatFieldErrorEntry}.
5
+ */
6
+ declare const isFlatFieldErrorEntryPathRoot: ([path]: FlatFieldErrorEntry) => boolean;
7
+ export default isFlatFieldErrorEntryPathRoot;
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Determine if an error path is root. (e.g., `root` or `root.nested`)
3
+ *
3
4
  * @param path Flat path. (e.g., 'root.nested')
4
5
  */
5
6
  declare const isFormErrorPathRoot: (path: string) => boolean;