@paragrav/rhf-utils 0.0.27 → 0.0.30

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 (82) hide show
  1. package/dist/esm/errors/consoleErrors.mjs +9 -0
  2. package/dist/esm/errors/context/index.mjs +11 -0
  3. package/dist/esm/errors/context/provider.mjs +19 -0
  4. package/dist/esm/errors/flat/getFlatFieldErrors.mjs +22 -0
  5. package/dist/esm/errors/flat/useRefdFieldErrorsMemo.mjs +13 -0
  6. package/dist/esm/errors/nonfield/FormNonFieldErrorMarker.mjs +1 -1
  7. package/dist/esm/errors/nonfield/FormNonFieldErrorMarker.utils.mjs +3 -3
  8. package/dist/esm/errors/nonfield/FormNonFieldErrorMarkerHtmlAttribute.mjs +4 -0
  9. package/dist/esm/errors/orphan/getOrphanFlatFieldErrors.mjs +2 -2
  10. package/dist/esm/errors/orphan/useFormHasOrphanAndNoFieldErrors.mjs +5 -5
  11. package/dist/esm/errors/orphan/useOrphanFormErrorsMemo.mjs +14 -0
  12. package/dist/esm/errors/orphan/useOrphanFormErrorsToConsole.mjs +18 -0
  13. package/dist/esm/errors/outputErrors.mjs +8 -0
  14. package/dist/esm/errors/root/consts.mjs +4 -0
  15. package/dist/esm/errors/root/getRootFlatFieldErrors.mjs +11 -0
  16. package/dist/esm/errors/root/isFormErrorPathRoot.mjs +5 -0
  17. package/dist/esm/errors/root/useRootFormFieldErrorsMemo.mjs +6 -0
  18. package/dist/esm/errors/useFormErrorConsoleDebug.mjs +8 -6
  19. package/dist/esm/errors/{useFormErrorsOnChange.mjs → useFormErrorsMemo.mjs} +2 -2
  20. package/dist/esm/errors/useFormErrorsToConsole.mjs +21 -0
  21. package/dist/esm/errors/useFormRequestSubmit.mjs +5 -3
  22. package/dist/esm/form/context/parent/FormParentContextProvider.mjs +10 -0
  23. package/dist/esm/form/context/parent/index.mjs +6 -0
  24. package/dist/esm/form/context/parent/useAsFormParentState.mjs +14 -0
  25. package/dist/esm/form/context/parent/useFormParentIsBusy.mjs +8 -0
  26. package/dist/esm/form/useFormIsBusy.mjs +9 -0
  27. package/dist/esm/main.mjs +40 -30
  28. package/dist/esm/submit/useResetFormOnSubmitSuccessful.mjs +10 -7
  29. package/dist/esm/utils/createContext.mjs +13 -0
  30. package/dist/types/devtool/LazyDevTool.d.ts +2 -2
  31. package/dist/types/errors/consoleErrors.d.ts +13 -0
  32. package/dist/types/errors/context/index.d.ts +10 -0
  33. package/dist/types/errors/context/provider.d.ts +12 -0
  34. package/dist/types/errors/flat/flattenFieldErrors.d.ts +15 -0
  35. package/dist/types/errors/flat/getFlatFieldErrors.d.ts +25 -0
  36. package/dist/types/errors/flat/getFlatFieldErrorsByFilter.d.ts +9 -0
  37. package/dist/types/errors/flat/types.d.ts +3 -0
  38. package/dist/types/errors/flat/useFormFlatFieldErrorsMemo.d.ts +5 -0
  39. package/dist/types/errors/flat/useRefdFieldErrorsMemo.d.ts +9 -0
  40. package/dist/types/errors/nonfield/FormNonFieldErrorMarker.utils.d.ts +1 -6
  41. package/dist/types/errors/nonfield/FormNonFieldErrorMarkerHtmlAttribute.d.ts +5 -0
  42. package/dist/types/errors/orphan/getOrphanFlatFieldErrors.d.ts +1 -1
  43. package/dist/types/errors/orphan/useOrphanFormErrorsMemo.d.ts +4 -0
  44. package/dist/types/errors/orphan/useOrphanFormErrorsToConsole.d.ts +9 -0
  45. package/dist/types/errors/outputErrors.d.ts +14 -0
  46. package/dist/types/errors/root/FormRootErrors.d.ts +7 -0
  47. package/dist/types/errors/root/consts.d.ts +1 -0
  48. package/dist/types/errors/root/getRootFlatFieldErrors.d.ts +8 -0
  49. package/dist/types/errors/root/isFormErrorPathRoot.d.ts +6 -0
  50. package/dist/types/errors/root/useRootFormFieldErrorsMemo.d.ts +6 -0
  51. package/dist/types/errors/useFormErrorConsoleDebug.d.ts +1 -1
  52. package/dist/types/errors/useFormErrorsMemo.d.ts +7 -0
  53. package/dist/types/errors/useFormErrorsToConsole.d.ts +14 -0
  54. package/dist/types/form/Form.d.ts +21 -0
  55. package/dist/types/form/FormBase.d.ts +9 -0
  56. package/dist/types/form/FormError.d.ts +6 -0
  57. package/dist/types/form/context/FormProvider.d.ts +13 -0
  58. package/dist/types/form/context/parent/FormParentContextProvider.d.ts +5 -0
  59. package/dist/types/form/context/parent/index.d.ts +6 -0
  60. package/dist/types/form/context/parent/useAsFormParentState.d.ts +7 -0
  61. package/dist/types/form/context/parent/useFormParentIsBusy.d.ts +7 -0
  62. package/dist/types/form/context/utils/FormUtilsContextProvider.d.ts +12 -0
  63. package/dist/types/form/context/utils/useFormUtilsContext.d.ts +9 -0
  64. package/dist/types/form/search/FormSearch.d.ts +32 -0
  65. package/dist/types/form/search/FormSearchHiddenInputs.d.ts +13 -0
  66. package/dist/types/form/search/getNewSearchParams.d.ts +2 -0
  67. package/dist/types/form/useForm.d.ts +28 -0
  68. package/dist/types/form/useFormIsBusy.d.ts +2 -0
  69. package/dist/types/main.d.ts +10 -5
  70. package/dist/types/submit/useResetFormOnSubmitSuccessful.d.ts +1 -1
  71. package/dist/types/utils/createContext.d.ts +8 -0
  72. package/dist/types/utils/createRequiredContext.d.ts +8 -0
  73. package/dist/types/utils/fixedForwardRef.d.ts +7 -0
  74. package/dist/types/utils/useImperativeForwardedRef.d.ts +11 -0
  75. package/package.json +22 -4
  76. package/dist/esm/errors/getFlatFieldErrors.mjs +0 -22
  77. package/dist/esm/errors/orphan/useOrphanFormErrors.mjs +0 -14
  78. package/dist/esm/errors/orphan/useOrphanFormErrorsToConsoleError.mjs +0 -24
  79. package/dist/esm/errors/root/useRootFormFieldErrors.mjs +0 -6
  80. package/dist/esm/errors/root/utils.mjs +0 -11
  81. package/dist/esm/errors/useFormFieldErrors.mjs +0 -13
  82. /package/dist/esm/errors/{flattenFieldErrors.mjs → flat/flattenFieldErrors.mjs} +0 -0
@@ -0,0 +1,9 @@
1
+ const l = (e, c, r) => {
2
+ console[r != null && r.isError ? "error" : "debug"](e, {
3
+ form: c,
4
+ other: r == null ? void 0 : r.other
5
+ });
6
+ };
7
+ export {
8
+ l as default
9
+ };
@@ -0,0 +1,11 @@
1
+ import r from "../../utils/createContext.mjs";
2
+ const [
3
+ e,
4
+ t,
5
+ s
6
+ ] = r(), a = t;
7
+ export {
8
+ s as _FormErrorsFlatContextProvider,
9
+ a as default,
10
+ e as useFormErrorsFlatContextMaybe
11
+ };
@@ -0,0 +1,19 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import F from "../flat/getFlatFieldErrors.mjs";
3
+ import a from "../orphan/getOrphanFlatFieldErrors.mjs";
4
+ import i from "../root/getRootFlatFieldErrors.mjs";
5
+ import p from "../useFormErrorsMemo.mjs";
6
+ import { _FormErrorsFlatContextProvider as c } from "./index.mjs";
7
+ const d = ({
8
+ formRef: o,
9
+ children: t
10
+ }) => {
11
+ const e = p((s) => {
12
+ const r = F(s), m = i(r), n = a(r, o.current);
13
+ return { all: r, roots: m, orphans: n };
14
+ });
15
+ return /* @__PURE__ */ l(c, { value: e, children: t });
16
+ }, C = d;
17
+ export {
18
+ C as default
19
+ };
@@ -0,0 +1,22 @@
1
+ import { get as d } from "react-hook-form";
2
+ import l from "./flattenFieldErrors.mjs";
3
+ const p = (t) => {
4
+ const a = l(t), c = Object.keys(a);
5
+ return Object.fromEntries(
6
+ c.reduce(
7
+ (r, o) => {
8
+ const e = o.replace(n, "");
9
+ if (e === o)
10
+ return r;
11
+ const f = d(t, e, void 0);
12
+ return !f || r.some(([s]) => s === e) || r.push([e, f]), r;
13
+ },
14
+ []
15
+ // entries
16
+ )
17
+ );
18
+ }, n = /\.(?:type|message)\b$/;
19
+ export {
20
+ p as default,
21
+ n as regexMaybeFieldErrorLeafNode
22
+ };
@@ -0,0 +1,13 @@
1
+ import t from "../isFieldError.mjs";
2
+ import s from "../useFormErrorsMemo.mjs";
3
+ import i from "./getFlatFieldErrors.mjs";
4
+ const d = () => s(m), m = (r) => {
5
+ const e = i(r);
6
+ return Object.fromEntries(
7
+ Object.entries(e).filter(([, o]) => t(o))
8
+ );
9
+ };
10
+ export {
11
+ d as default,
12
+ m as getFlatFieldFormErrors
13
+ };
@@ -1,5 +1,5 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import e from "./FormNonFieldErrorMarker.utils.mjs";
2
+ import e from "./FormNonFieldErrorMarkerHtmlAttribute.mjs";
3
3
  const a = ({ path: r }) => {
4
4
  const o = {
5
5
  [e]: r
@@ -1,6 +1,6 @@
1
- const e = "data-paragrav-rhf-utils-nonfield-error-marker-path", a = e, t = (r) => `[role="alert"][${e}="${r}"]`, l = (r, o) => o.querySelector(t(r));
1
+ import o from "./FormNonFieldErrorMarkerHtmlAttribute.mjs";
2
+ const t = (r) => `[role="alert"][${o}="${r}"]`, n = (r, e) => !!e.querySelector(t(r));
2
3
  export {
3
- a as default,
4
4
  t as getFormNonFieldErrorMarkerQuerySelector,
5
- l as hasNonFieldErrorMarkerInDOM
5
+ n as hasNonFieldErrorMarkerInDOM
6
6
  };
@@ -0,0 +1,4 @@
1
+ const r = "data-paragrav-rhf-utils-nonfield-error-marker-path", t = r;
2
+ export {
3
+ t as default
4
+ };
@@ -1,7 +1,7 @@
1
- import s from "../getFlatFieldErrors.mjs";
1
+ import s from "../flat/getFlatFieldErrors.mjs";
2
2
  import { hasNonFieldErrorMarkerInDOM as l } from "../nonfield/FormNonFieldErrorMarker.utils.mjs";
3
3
  import m from "../nonfield/isNonFieldError.mjs";
4
- import { isFormErrorPathRoot as n } from "../root/utils.mjs";
4
+ import n from "../root/isFormErrorPathRoot.mjs";
5
5
  const d = (o, t) => {
6
6
  const e = s(o);
7
7
  return Object.fromEntries(
@@ -1,10 +1,10 @@
1
1
  import r from "../../isEmptyObject.mjs";
2
- import t from "../useFormFieldErrors.mjs";
3
- import n from "./useOrphanFormErrors.mjs";
4
- const m = (o) => {
5
- const s = n(o), e = t();
2
+ import t from "../flat/useRefdFieldErrorsMemo.mjs";
3
+ import m from "./useOrphanFormErrorsMemo.mjs";
4
+ const n = (o) => {
5
+ const s = m(o), e = t();
6
6
  return r(s) ? !1 : !r(e);
7
- }, d = m;
7
+ }, d = n;
8
8
  export {
9
9
  d as default
10
10
  };
@@ -0,0 +1,14 @@
1
+ import "react";
2
+ import t from "../../isEmptyObject.mjs";
3
+ import e from "../useFormErrorsMemo.mjs";
4
+ import m from "./getOrphanFlatFieldErrors.mjs";
5
+ const n = (r) => e((o) => {
6
+ if (t(o))
7
+ return {};
8
+ if (!r.current)
9
+ throw new Error();
10
+ return m(o, r.current);
11
+ }), a = n;
12
+ export {
13
+ a as default
14
+ };
@@ -0,0 +1,18 @@
1
+ import "react";
2
+ import n from "../useFormErrorsToConsole.mjs";
3
+ import t from "./useOrphanFormErrorsMemo.mjs";
4
+ const a = (r, s, e) => {
5
+ const o = t(r);
6
+ n("Orphan errors detected!", o, {
7
+ disabled: !e,
8
+ isDev: s,
9
+ isError: !0,
10
+ data: {
11
+ location: window.location,
12
+ orphans: o
13
+ }
14
+ });
15
+ }, d = a;
16
+ export {
17
+ d as default
18
+ };
@@ -0,0 +1,8 @@
1
+ import t from "./consoleErrors.mjs";
2
+ const c = (u, E, r) => {
3
+ if (t(u, E, r), r != null && r.isDev && r.isError)
4
+ throw new Error(u);
5
+ }, f = c;
6
+ export {
7
+ f as default
8
+ };
@@ -0,0 +1,4 @@
1
+ const o = "root";
2
+ export {
3
+ o as FormErrorPathRoot
4
+ };
@@ -0,0 +1,11 @@
1
+ import e from "../flat/getFlatFieldErrors.mjs";
2
+ import i from "./isFormErrorPathRoot.mjs";
3
+ const a = (r) => {
4
+ const t = e(r);
5
+ return Object.fromEntries(
6
+ Object.entries(t).filter(([o]) => i(o))
7
+ );
8
+ };
9
+ export {
10
+ a as default
11
+ };
@@ -0,0 +1,5 @@
1
+ import { FormErrorPathRoot as r } from "./consts.mjs";
2
+ const s = (o) => o === r || o.startsWith(r + ".");
3
+ export {
4
+ s as default
5
+ };
@@ -0,0 +1,6 @@
1
+ import o from "../useFormErrorsMemo.mjs";
2
+ import r from "./getRootFlatFieldErrors.mjs";
3
+ const e = () => o(r), s = e;
4
+ export {
5
+ s as default
6
+ };
@@ -1,8 +1,10 @@
1
- import e from "./useFormErrorsIfAny.mjs";
2
- const s = (o) => {
3
- const r = e();
4
- o && r && console.debug("useFormErrorConsoleDebug", r);
5
- }, n = s;
1
+ import { useFormContext as s } from "react-hook-form";
2
+ import t from "./outputErrors.mjs";
3
+ import u from "./useFormErrorsIfAny.mjs";
4
+ const m = (o) => {
5
+ const { getValues: e } = s(), r = u();
6
+ o && r && t("useFormErrorConsoleDebug", { values: e(), errors: r });
7
+ }, i = m;
6
8
  export {
7
- n as default
9
+ i as default
8
10
  };
@@ -1,9 +1,9 @@
1
1
  import e from "react";
2
2
  import { useFormState as t } from "react-hook-form";
3
- const n = (r) => {
3
+ const u = (r) => {
4
4
  const { errors: o } = t();
5
5
  return e.useMemo(() => r(o), [r, o]);
6
6
  };
7
7
  export {
8
- n as default
8
+ u as default
9
9
  };
@@ -0,0 +1,21 @@
1
+ import a from "react";
2
+ import { useFormContext as c, useFormState as l } from "react-hook-form";
3
+ import E from "../isEmptyObject.mjs";
4
+ import d from "./outputErrors.mjs";
5
+ const v = (e, m, r) => {
6
+ const { getValues: f } = c(), { errors: u } = l();
7
+ a.useEffect(() => {
8
+ if (!(r != null && r.disabled) && !E(m) && (d(e, { values: f(), errors: u }, r), console[r != null && r.isError ? "error" : "debug"](e, {
9
+ form: {
10
+ values: f(),
11
+ // form values
12
+ errors: u
13
+ },
14
+ other: r == null ? void 0 : r.data
15
+ }), r != null && r.isError))
16
+ throw new Error(e);
17
+ }, [u]);
18
+ };
19
+ export {
20
+ v as default
21
+ };
@@ -1,8 +1,10 @@
1
1
  const r = (t) => (e) => {
2
2
  if (!t.current)
3
3
  throw new Error();
4
- t.current.requestSubmit(e);
5
- }, u = r;
4
+ u(t.current, e);
5
+ }, s = r, u = (t, e) => {
6
+ t.requestSubmit(e);
7
+ };
6
8
  export {
7
- u as default
9
+ s as default
8
10
  };
@@ -0,0 +1,10 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import s from "react";
3
+ import { _FormParentContextProvider as n } from "./index.mjs";
4
+ const a = ({ children: t }) => {
5
+ const [r, o] = s.useState(!1);
6
+ return /* @__PURE__ */ e(n, { value: { isBusy: r, setIsBusy: o }, children: t });
7
+ }, P = a;
8
+ export {
9
+ P as default
10
+ };
@@ -0,0 +1,6 @@
1
+ import t from "../../../utils/createContext.mjs";
2
+ const [o, , r] = t();
3
+ export {
4
+ r as _FormParentContextProvider,
5
+ o as _useFormParentContext
6
+ };
@@ -0,0 +1,14 @@
1
+ import o from "react";
2
+ import r from "../../useFormIsBusy.mjs";
3
+ import { _useFormParentContext as s } from "./index.mjs";
4
+ const n = () => {
5
+ const e = r(), t = s();
6
+ if (!t)
7
+ throw new Error("Parent context is not provided.");
8
+ o.useEffect(() => {
9
+ t.setIsBusy(e);
10
+ }, [t, e]);
11
+ }, c = n;
12
+ export {
13
+ c as default
14
+ };
@@ -0,0 +1,8 @@
1
+ import { _useFormParentContext as t } from "./index.mjs";
2
+ const e = () => {
3
+ var s;
4
+ return (s = t()) == null ? void 0 : s.isBusy;
5
+ }, r = e;
6
+ export {
7
+ r as default
8
+ };
@@ -0,0 +1,9 @@
1
+ import { useFormState as r } from "react-hook-form";
2
+ import e from "./context/parent/useFormParentIsBusy.mjs";
3
+ const m = () => {
4
+ const { isSubmitting: t, isLoading: o } = r(), s = e();
5
+ return !!(t || o || s);
6
+ };
7
+ export {
8
+ m as default
9
+ };
package/dist/esm/main.mjs CHANGED
@@ -1,36 +1,46 @@
1
1
  import { default as e } from "./devtool/LazyDevTool.mjs";
2
- import { default as t } from "./errors/message/FormErrorMessage.mjs";
3
- import { default as u } from "./errors/message/FormErrorMessageByPath.mjs";
4
- import { default as m } from "./errors/nonfield/FormNonFieldErrorMarker.mjs";
5
- import { default as d } from "./errors/nonfield/FormNonFieldErrorMarker.utils.mjs";
6
- import { default as F } from "./errors/orphan/useFormHasOrphanAndNoFieldErrors.mjs";
7
- import { default as n } from "./errors/orphan/useOrphanFormErrors.mjs";
8
- import { default as i } from "./errors/orphan/useOrphanFormErrorsToConsoleError.mjs";
9
- import { default as S } from "./errors/root/useRootFormFieldErrors.mjs";
2
+ import { default as s } from "./errors/context/index.mjs";
3
+ import { default as f } from "./errors/context/provider.mjs";
4
+ import { default as u } from "./errors/message/FormErrorMessage.mjs";
5
+ import { default as d } from "./errors/message/FormErrorMessageByPath.mjs";
6
+ import { default as p } from "./errors/nonfield/FormNonFieldErrorMarker.mjs";
7
+ import { default as n } from "./errors/nonfield/FormNonFieldErrorMarkerHtmlAttribute.mjs";
8
+ import { default as i } from "./errors/orphan/useFormHasOrphanAndNoFieldErrors.mjs";
9
+ import { default as c } from "./errors/orphan/useOrphanFormErrorsMemo.mjs";
10
+ import { default as b } from "./errors/orphan/useOrphanFormErrorsToConsole.mjs";
11
+ import { default as P } from "./errors/root/useRootFormFieldErrorsMemo.mjs";
10
12
  import { default as O } from "./errors/useFormErrorConsoleDebug.mjs";
11
- import { default as A } from "./errors/useFormErrorsEffect.mjs";
12
- import { default as M } from "./errors/useFormErrorsIfAny.mjs";
13
- import { default as y } from "./errors/useFormErrorsOnChange.mjs";
14
- import { default as N } from "./errors/useFormRequestSubmit.mjs";
15
- import { default as D } from "./submit/useFormOnSubmitSuccessful.mjs";
16
- import { default as T } from "./submit/useFormOnSubmitSuccessfulAndReset.mjs";
17
- import { default as v } from "./submit/useResetFormOnSubmitSuccessful.mjs";
13
+ import { default as y } from "./errors/useFormErrorsEffect.mjs";
14
+ import { default as g } from "./errors/useFormErrorsIfAny.mjs";
15
+ import { default as N } from "./errors/useFormErrorsMemo.mjs";
16
+ import { default as B } from "./errors/useFormRequestSubmit.mjs";
17
+ import { default as H } from "./form/context/parent/FormParentContextProvider.mjs";
18
+ import { default as T } from "./form/context/parent/useAsFormParentState.mjs";
19
+ import { default as z } from "./form/context/parent/useFormParentIsBusy.mjs";
20
+ import { default as j } from "./submit/useFormOnSubmitSuccessful.mjs";
21
+ import { default as G } from "./submit/useFormOnSubmitSuccessfulAndReset.mjs";
22
+ import { default as K } from "./submit/useResetFormOnSubmitSuccessful.mjs";
18
23
  export {
19
- t as FormErrorMessage,
20
- u as FormErrorMessageByPath,
21
- m as FormNonFieldErrorMarker,
22
- d as FormNonFieldErrorMarkerHtmlAttribute,
24
+ u as FormErrorMessage,
25
+ d as FormErrorMessageByPath,
26
+ f as FormErrorsFlatContextProvider,
27
+ p as FormNonFieldErrorMarker,
28
+ n as FormNonFieldErrorMarkerHtmlAttribute,
29
+ H as FormParentContextProvider,
23
30
  e as LazyDevTool,
31
+ T as useAsFormParentState,
24
32
  O as useFormErrorConsoleDebug,
25
- A as useFormErrorsEffect,
26
- M as useFormErrorsIfAny,
27
- y as useFormErrorsOnChange,
28
- F as useFormHasOrphanAndNoFieldErrors,
29
- D as useFormOnSubmitSuccessful,
30
- T as useFormOnSubmitSuccessfulAndReset,
31
- N as useFormRequestSubmit,
32
- n as useOrphanFormErrors,
33
- i as useOrphanFormErrorsToConsoleError,
34
- v as useResetFormAfterSubmitSuccessful,
35
- S as useRootFormFieldErrors
33
+ y as useFormErrorsEffect,
34
+ s as useFormErrorsFlatContext,
35
+ g as useFormErrorsIfAny,
36
+ N as useFormErrorsMemo,
37
+ i as useFormHasOrphanAndNoFieldErrors,
38
+ j as useFormOnSubmitSuccessful,
39
+ G as useFormOnSubmitSuccessfulAndReset,
40
+ z as useFormParentIsBusy,
41
+ B as useFormRequestSubmit,
42
+ c as useOrphanFormErrorsMemo,
43
+ b as useOrphanFormErrorsToConsole,
44
+ K as useResetFormAfterSubmitSuccessful,
45
+ P as useRootFormFieldErrorsMemo
36
46
  };
@@ -1,11 +1,14 @@
1
- import { useFormContext as r } from "react-hook-form";
2
- import t from "./useFormOnSubmitSuccessful.mjs";
3
- const s = (e) => {
4
- const { reset: u } = r();
5
- t(() => {
6
- e != null && e.enabled && u(void 0, e);
1
+ import { useFormContext as u } from "react-hook-form";
2
+ import o from "./useFormOnSubmitSuccessful.mjs";
3
+ const r = ({
4
+ enabled: e,
5
+ ...t
6
+ }) => {
7
+ const { reset: s } = u();
8
+ o(() => {
9
+ e && s(void 0, t);
7
10
  });
8
- }, f = s;
11
+ }, f = r;
9
12
  export {
10
13
  f as default
11
14
  };
@@ -0,0 +1,13 @@
1
+ import r from "react";
2
+ function u() {
3
+ const t = r.createContext(void 0), e = () => r.useContext(t);
4
+ return [e, () => {
5
+ const o = e();
6
+ if (o === void 0)
7
+ throw new Error();
8
+ return o;
9
+ }, t.Provider];
10
+ }
11
+ export {
12
+ u as default
13
+ };
@@ -1,11 +1,11 @@
1
1
  import { default as React } from 'react';
2
2
  import { DevtoolUIProps } from '@hookform/devtools/dist/devToolUI';
3
3
 
4
- type Props = Omit<DevtoolUIProps, 'control'> & {
4
+ export type LazyDevToolProps = Omit<DevtoolUIProps, 'control'> & {
5
5
  isDev: boolean;
6
6
  };
7
7
  /**
8
8
  * Lazy-loaded RHF DevTool.
9
9
  */
10
- declare const LazyDevTool: React.FC<Props>;
10
+ declare const LazyDevTool: React.FC<LazyDevToolProps>;
11
11
  export default LazyDevTool;
@@ -0,0 +1,13 @@
1
+ import { FieldErrors, FieldValues } from 'react-hook-form';
2
+
3
+ /**
4
+ * Output form values and errors to console.
5
+ */
6
+ declare const consoleErrors: (message: string, form: {
7
+ values: FieldValues;
8
+ errors: FieldErrors;
9
+ }, options?: {
10
+ other?: Record<string, unknown>;
11
+ isError?: boolean;
12
+ }) => void;
13
+ export default consoleErrors;
@@ -0,0 +1,10 @@
1
+ import { FlatFieldErrors } from '../flat/types';
2
+
3
+ export type FormErrorsFlatContext = {
4
+ all: FlatFieldErrors;
5
+ roots: FlatFieldErrors;
6
+ orphans: FlatFieldErrors;
7
+ };
8
+ declare const useFormErrorsFlatContextMaybe: () => FormErrorsFlatContext | undefined, useFormErrorsFlatContext: () => FormErrorsFlatContext, _FormErrorsFlatContextProvider: import('react').Provider<FormErrorsFlatContext | undefined>;
9
+ export default useFormErrorsFlatContext;
10
+ export { _FormErrorsFlatContextProvider, useFormErrorsFlatContextMaybe };
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ type Props = React.PropsWithChildren<{
3
+ formRef: React.MutableRefObject<HTMLFormElement>;
4
+ isDev?: boolean;
5
+ outputErrors?: boolean;
6
+ }>;
7
+ /**
8
+ * Provides a flattened version of the form errors.
9
+ * Allows flattening and filtering to happen once per errors change.
10
+ */
11
+ declare const FormErrorsFlatContextProvider: React.FC<Props>;
12
+ export default FormErrorsFlatContextProvider;
@@ -0,0 +1,15 @@
1
+ import { FieldErrors } from 'react-hook-form';
2
+
3
+ /**
4
+ * Only flattens a {@link FieldErrors} object.
5
+ * @returns e.g.,
6
+ * ```
7
+ * {
8
+ * "address.street.type": "too_short",
9
+ * "address.street.ref.value": "123",
10
+ * "address.street.message": "Required."
11
+ * }
12
+ * ```
13
+ */
14
+ declare const flattenFieldErrors: (errors: FieldErrors) => Record<string, unknown>;
15
+ export default flattenFieldErrors;
@@ -0,0 +1,25 @@
1
+ import { FlatFieldErrors } from './types';
2
+ import { FieldErrors } from 'react-hook-form';
3
+
4
+ /**
5
+ * Get {@link FlatFieldErrors} from {@link FieldErrors}.
6
+ * This makes it easy to work with potentially deeply-nested {@link FieldErrors}.
7
+ *
8
+ * @param errors {@link FieldErrors} object.
9
+ * @returns FlatFieldErrors object.
10
+ *
11
+ * e.g.,
12
+ * ```
13
+ * [ "address.street", { "address.street": { type: "too_short", ref: { value: "123" }, message: "Required." } } ]
14
+ * ```
15
+ */
16
+ declare const getFlatFieldErrors: (errors: FieldErrors) => FlatFieldErrors;
17
+ export default getFlatFieldErrors;
18
+ /**
19
+ * Regular expression to maybe match the end of a leaf node path.
20
+ *
21
+ * i.e., `name.type`, `address.street.message`
22
+ *
23
+ * iow: dot [?: non-capturing]("type" | "message")[\b word boundary][$ end of string]
24
+ */
25
+ export declare const regexMaybeFieldErrorLeafNode: RegExp;
@@ -0,0 +1,9 @@
1
+ import { FieldError, FieldErrors } from 'react-hook-form';
2
+
3
+ /**
4
+ * Get flat field errors filtered by supplied predicate.
5
+ */
6
+ declare const getFlatFieldErrorsByFilter: (errors: FieldErrors, predicate: (entry: [string, FieldError]) => boolean) => {
7
+ [k: string]: FieldError;
8
+ };
9
+ export default getFlatFieldErrorsByFilter;
@@ -0,0 +1,3 @@
1
+ import { FieldError } from 'react-hook-form';
2
+
3
+ export type FlatFieldErrors = Record<string, FieldError>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Use {@link FieldErrors} as {@link FlatFieldErrors}.
3
+ */
4
+ declare const useFormFlatFieldErrorsMemo: () => import('./types').FlatFieldErrors;
5
+ export default useFormFlatFieldErrorsMemo;
@@ -0,0 +1,9 @@
1
+ import { FlatFieldErrors } from './types';
2
+ import { FieldErrors } from 'react-hook-form';
3
+
4
+ /**
5
+ * Use errors with refs.
6
+ */
7
+ declare const useRefdFieldErrorsMemo: () => FlatFieldErrors;
8
+ export default useRefdFieldErrorsMemo;
9
+ export declare const getFlatFieldFormErrors: (errors: FieldErrors) => FlatFieldErrors;
@@ -1,7 +1,2 @@
1
- /**
2
- * HTML data attribute for {@link FormNonFieldErrorMarker}.
3
- */
4
- declare const FormNonFieldErrorMarkerHtmlAttribute = "data-paragrav-rhf-utils-nonfield-error-marker-path";
5
- export default FormNonFieldErrorMarkerHtmlAttribute;
6
1
  export declare const getFormNonFieldErrorMarkerQuerySelector: (path: string) => string;
7
- export declare const hasNonFieldErrorMarkerInDOM: (path: string, parentElement: Pick<HTMLElement, 'querySelector'>) => Element | null;
2
+ export declare const hasNonFieldErrorMarkerInDOM: (path: string, parentElement: Pick<HTMLElement, 'querySelector'>) => boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * HTML data attribute for {@link FormNonFieldErrorMarker}.
3
+ */
4
+ declare const FormNonFieldErrorMarkerHtmlAttribute = "data-paragrav-rhf-utils-nonfield-error-marker-path";
5
+ export default FormNonFieldErrorMarkerHtmlAttribute;
@@ -1,4 +1,4 @@
1
- import { FlatFieldErrors } from '../getFlatFieldErrors';
1
+ import { FlatFieldErrors } from '../flat/types';
2
2
  import { FieldErrors } from 'react-hook-form';
3
3
 
4
4
  declare const getOrphanFlatFieldErrors: (errors: FieldErrors, parentElement: Pick<HTMLElement, 'querySelector'>) => FlatFieldErrors;
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+
3
+ declare const useOrphanFormErrorsMemo: (formRef: React.RefObject<HTMLFormElement>) => import('../flat/types').FlatFieldErrors;
4
+ export default useOrphanFormErrorsMemo;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+
3
+ /**
4
+ * Logs out orphan errors to console.error.
5
+ *
6
+ * When `isDev`, it will also throw an error to bring attention to dev.
7
+ */
8
+ declare const useOrphanFormErrorsToConsole: (formRef: React.RefObject<HTMLFormElement>, isDev?: boolean, enabled?: boolean) => void;
9
+ export default useOrphanFormErrorsToConsole;
@@ -0,0 +1,14 @@
1
+ import { FieldErrors, FieldValues } from 'react-hook-form';
2
+
3
+ /**
4
+ * Output form values and errors to console and throw in dev.
5
+ */
6
+ declare const outputErrors: (message: string, form: {
7
+ values: FieldValues;
8
+ errors: FieldErrors;
9
+ }, options?: {
10
+ other?: Record<string, unknown>;
11
+ isDev?: boolean;
12
+ isError?: boolean;
13
+ }) => void;
14
+ export default outputErrors;