remix-validated-form 4.6.1-beta.0 → 4.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,17 +1,17 @@
1
1
  $ vite build
2
2
  vite v2.9.5 building for production...
3
3
  transforming...
4
- ✓ 562 modules transformed.
4
+ ✓ 289 modules transformed.
5
5
  rendering chunks...
6
- dist/remix-validated-form.cjs.js  56.46 KiB / gzip: 20.96 KiB
7
- dist/remix-validated-form.cjs.js.map 351.84 KiB
8
- dist/remix-validated-form.es.js  129.94 KiB / gzip: 30.15 KiB
9
- dist/remix-validated-form.es.js.map 345.86 KiB
10
- No name was provided for external module 'react' in output.globals – guessing 'React'
11
- No name was provided for external module '@remix-run/react' in output.globals – guessing 'react'
12
- dist/remix-validated-form.umd.js  56.65 KiB / gzip: 21.04 KiB
13
- dist/remix-validated-form.umd.js.map 351.78 KiB
6
+ dist/remix-validated-form.cjs.js  32.64 KiB / gzip: 11.34 KiB
7
+ dist/remix-validated-form.cjs.js.map 167.89 KiB
8
+ dist/remix-validated-form.es.js  66.80 KiB / gzip: 15.63 KiB
9
+ dist/remix-validated-form.es.js.map 165.46 KiB
10
+ dist/remix-validated-form.umd.js  32.83 KiB / gzip: 11.41 KiB
11
+ dist/remix-validated-form.umd.js.map 167.84 KiB
14
12
  
15
13
  [vite:dts] Start generate declaration files...
16
- [vite:dts] Declaration files built in 2937ms.
14
+ [vite:dts] Declaration files built in 2759ms.
17
15
  
16
+ No name was provided for external module 'react' in output.globals – guessing 'React'
17
+ No name was provided for external module '@remix-run/react' in output.globals – guessing 'react'
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Form as RemixForm, useSubmit, } from "@remix-run/react";
3
- import uniq from "lodash/uniq";
4
3
  import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
4
+ import * as R from "remeda";
5
5
  import { useIsSubmitting, useIsValid } from "./hooks";
6
6
  import { FORM_ID_FIELD } from "./internal/constants";
7
7
  import { InternalFormContext, } from "./internal/formContext";
@@ -26,7 +26,7 @@ const focusFirstInvalidInput = (fieldErrors, customFocusHandlers, formElement) =
26
26
  })
27
27
  .filter(nonNull)
28
28
  .filter((name) => name in fieldErrors);
29
- const uniqueNamesInOrder = uniq(namesInOrder);
29
+ const uniqueNamesInOrder = R.uniq(namesInOrder);
30
30
  for (const fieldName of uniqueNamesInOrder) {
31
31
  if (customFocusHandlers.has(fieldName)) {
32
32
  customFocusHandlers.getAll(fieldName).forEach((handler) => {
@@ -206,5 +206,5 @@ export function ValidatedForm({ validator, onSubmit, children, fetcher, action,
206
206
  if (event.defaultPrevented)
207
207
  return;
208
208
  reset();
209
- }, children: _jsx(InternalFormContext.Provider, { value: contextValue, children: _jsxs(_Fragment, { children: [_jsx(FormResetter, { formRef: formRef, resetAfterSubmit: resetAfterSubmit }, void 0), subaction && (_jsx("input", { type: "hidden", value: subaction, name: "subaction" }, void 0)), id && _jsx("input", { type: "hidden", value: id, name: FORM_ID_FIELD }, void 0), children] }, void 0) }, void 0) }, void 0));
209
+ }, children: _jsx(InternalFormContext.Provider, { value: contextValue, children: _jsxs(_Fragment, { children: [_jsx(FormResetter, { formRef: formRef, resetAfterSubmit: resetAfterSubmit }), subaction && (_jsx("input", { type: "hidden", value: subaction, name: "subaction" })), id && _jsx("input", { type: "hidden", value: id, name: FORM_ID_FIELD }), children] }) }) }));
210
210
  }
@@ -6,13 +6,13 @@ import { GetInputProps, ValidationBehaviorOptions } from "./internal/getInputPro
6
6
  *
7
7
  * @param formId
8
8
  */
9
- export declare const useIsSubmitting: (formId?: string | undefined) => boolean;
9
+ export declare const useIsSubmitting: (formId?: string) => boolean;
10
10
  /**
11
11
  * Returns whether or not the current form is valid.
12
12
  *
13
13
  * @param formId the id of the form. Only necessary if being used outside a ValidatedForm.
14
14
  */
15
- export declare const useIsValid: (formId?: string | undefined) => boolean;
15
+ export declare const useIsValid: (formId?: string) => boolean;
16
16
  export declare type FieldProps = {
17
17
  /**
18
18
  * The validation error message if there is one.
@@ -52,16 +52,16 @@ export declare const useField: (name: string, options?: {
52
52
  * when the input needs to receive focus due to a validation error.
53
53
  * This is useful for custom components that use a hidden input.
54
54
  */
55
- handleReceiveFocus?: (() => void) | undefined;
55
+ handleReceiveFocus?: () => void;
56
56
  /**
57
57
  * Allows you to specify when a field gets validated (when using getInputProps)
58
58
  */
59
- validationBehavior?: Partial<ValidationBehaviorOptions> | undefined;
59
+ validationBehavior?: Partial<ValidationBehaviorOptions>;
60
60
  /**
61
61
  * The formId of the form you want to use.
62
62
  * This is not necesary if the input is used inside a form.
63
63
  */
64
- formId?: string | undefined;
65
- } | undefined) => FieldProps;
66
- export declare const useControlField: <T>(name: string, formId?: string | undefined) => readonly [T, (value: T) => void];
67
- export declare const useUpdateControlledField: (formId?: string | undefined) => (field: string, value: unknown) => void;
64
+ formId?: string;
65
+ }) => FieldProps;
66
+ export declare const useControlField: <T>(name: string, formId?: string) => readonly [T, (value: T) => void];
67
+ export declare const useUpdateControlledField: (formId?: string) => (field: string, value: unknown) => void;
@@ -1 +1 @@
1
- export declare const objectFromPathEntries: (entries: [string, any][]) => {};
1
+ export declare const objectFromPathEntries: (entries: [string, any][]) => Record<string, any>;
@@ -1,7 +1,7 @@
1
- import set from "lodash/set";
1
+ import { setPath } from "setGet";
2
2
  import { MultiValueMap } from "./MultiValueMap";
3
3
  export const objectFromPathEntries = (entries) => {
4
4
  const map = new MultiValueMap();
5
5
  entries.forEach(([key, value]) => map.add(key, value));
6
- return [...map.entries()].reduce((acc, [key, value]) => set(acc, key, value.length === 1 ? value[0] : value), {});
6
+ return [...map.entries()].reduce((acc, [key, value]) => setPath(acc, key, value.length === 1 ? value[0] : value), {});
7
7
  };
@@ -1,4 +1,4 @@
1
- import omitBy from "lodash/omitBy";
1
+ import * as R from "remeda";
2
2
  import { getCheckboxChecked } from "./logic/getCheckboxChecked";
3
3
  import { getRadioChecked } from "./logic/getRadioChecked";
4
4
  const defaultValidationBehavior = {
@@ -46,6 +46,6 @@ export const createGetInputProps = ({ clearError, validate, defaultValue, touche
46
46
  // We should only set the defaultValue if the input is uncontrolled.
47
47
  inputProps.defaultValue = defaultValue;
48
48
  }
49
- return omitBy(inputProps, (value) => value === undefined);
49
+ return R.omitBy(inputProps, (value) => value === undefined);
50
50
  };
51
51
  };
@@ -2,7 +2,7 @@ import { FieldErrors, ValidationErrorResponseData } from "..";
2
2
  import { InternalFormContextValue } from "./formContext";
3
3
  import { Hydratable } from "./hydratable";
4
4
  import { InternalFormId } from "./state/types";
5
- export declare const useInternalFormContext: (formId?: string | symbol | undefined, hookName?: string | undefined) => InternalFormContextValue;
5
+ export declare const useInternalFormContext: (formId?: string | symbol, hookName?: string) => InternalFormContextValue;
6
6
  export declare function useErrorResponseForForm({ fetcher, subaction, formId, }: InternalFormContextValue): ValidationErrorResponseData | null;
7
7
  export declare const useFieldErrorsForForm: (context: InternalFormContextValue) => Hydratable<FieldErrors | undefined>;
8
8
  export declare const useDefaultValuesFromLoader: ({ formId, }: InternalFormContextValue) => any;
@@ -21,7 +21,9 @@ export declare const useInternalHasBeenSubmitted: (formId: InternalFormId) => bo
21
21
  export declare const useValidateField: (formId: InternalFormId) => (fieldName: string) => Promise<string | null>;
22
22
  export declare const useValidate: (formId: InternalFormId) => () => Promise<import("..").ValidationResult<unknown>>;
23
23
  export declare const useRegisterReceiveFocus: (formId: InternalFormId) => (fieldName: string, handler: () => void) => () => void;
24
- export declare const useSyncedDefaultValues: (formId: InternalFormId) => {};
24
+ export declare const useSyncedDefaultValues: (formId: InternalFormId) => {
25
+ [fieldName: string]: any;
26
+ };
25
27
  export declare const useSetTouched: ({ formId }: InternalFormContextValue) => (field: string, touched: boolean) => void;
26
28
  export declare const useTouchedFields: (formId: InternalFormId) => import("..").TouchedFields;
27
29
  export declare const useFieldErrors: (formId: InternalFormId) => FieldErrors;
@@ -1,6 +1,6 @@
1
1
  import { useActionData, useMatches, useTransition } from "@remix-run/react";
2
- import lodashGet from "lodash/get";
3
2
  import { useCallback, useContext } from "react";
3
+ import { getPath } from "setGet";
4
4
  import invariant from "tiny-invariant";
5
5
  import { formDefaultValuesKey } from "./constants";
6
6
  import { InternalFormContext } from "./formContext";
@@ -92,11 +92,11 @@ export const useClearError = (context) => {
92
92
  const { formId } = context;
93
93
  return useFormStore(formId, (state) => state.clearFieldError);
94
94
  };
95
- export const useCurrentDefaultValueForField = (formId, field) => useFormStore(formId, (state) => lodashGet(state.currentDefaultValues, field));
95
+ export const useCurrentDefaultValueForField = (formId, field) => useFormStore(formId, (state) => getPath(state.currentDefaultValues, field));
96
96
  export const useFieldDefaultValue = (name, context) => {
97
97
  const defaultValues = useDefaultValuesForForm(context);
98
98
  const state = useCurrentDefaultValueForField(context.formId, name);
99
- return defaultValues.map((val) => lodashGet(val, name)).hydrateTo(state);
99
+ return defaultValues.map((val) => getPath(val, name)).hydrateTo(state);
100
100
  };
101
101
  export const useInternalIsSubmitting = (formId) => useFormStore(formId, (state) => state.isSubmitting);
102
102
  export const useInternalIsValid = (formId) => useFormStore(formId, (state) => state.isValid());
@@ -2,4 +2,4 @@
2
2
  * Ponyfill of the HTMLFormElement.requestSubmit() method.
3
3
  * Based on polyfill from: https://github.com/javan/form-request-submit-polyfill/blob/main/form-request-submit-polyfill.js
4
4
  */
5
- export declare const requestSubmit: (element: HTMLFormElement, submitter?: HTMLElement | undefined) => void;
5
+ export declare const requestSubmit: (element: HTMLFormElement, submitter?: HTMLElement) => void;
@@ -1,15 +1,14 @@
1
- import lodashGet from "lodash/get";
2
- import lodashSet from "lodash/set";
1
+ import { getPath, setPath } from "setGet";
3
2
  import invariant from "tiny-invariant";
4
3
  ////
5
4
  // All of these array helpers are written in a way that mutates the original array.
6
5
  // This is because we're working with immer.
7
6
  ////
8
7
  export const getArray = (values, field) => {
9
- const value = lodashGet(values, field);
8
+ const value = getPath(values, field);
10
9
  if (value === undefined || value === null) {
11
10
  const newValue = [];
12
- lodashSet(values, field, newValue);
11
+ setPath(values, field, newValue);
13
12
  return newValue;
14
13
  }
15
14
  invariant(Array.isArray(value), `FieldArray: defaultValue value for ${field} must be an array, null, or undefined`);
@@ -71,8 +70,8 @@ export const mutateAsArray = (field, obj, mutate) => {
71
70
  for (const [key, value] of Object.entries(obj)) {
72
71
  if (key.startsWith(field) && key !== field) {
73
72
  beforeKeys.add(key);
73
+ setPath(arr, key.substring(field.length), value);
74
74
  }
75
- lodashSet(arr, key.substring(field.length), value);
76
75
  }
77
76
  mutate(arr);
78
77
  for (const key of beforeKeys) {
@@ -80,7 +79,7 @@ export const mutateAsArray = (field, obj, mutate) => {
80
79
  }
81
80
  const newKeys = getDeepArrayPaths(arr);
82
81
  for (const key of newKeys) {
83
- const val = lodashGet(arr, key);
82
+ const val = getPath(arr, key);
84
83
  obj[`${field}${key}`] = val;
85
84
  }
86
85
  };
@@ -1,5 +1,4 @@
1
- import lodashGet from "lodash/get";
2
- import lodashSet from "lodash/set";
1
+ import { getPath, setPath } from "setGet";
3
2
  import invariant from "tiny-invariant";
4
3
  import create from "zustand";
5
4
  import { immer } from "zustand/middleware/immer";
@@ -177,16 +176,16 @@ const createFormState = (set, get) => ({
177
176
  const isNested = Object.keys(state.controlledFields.refCounts).some((key) => fieldName.startsWith(key) && key !== fieldName);
178
177
  // When nested within a field array, we should leave resetting up to the field array
179
178
  if (!isNested) {
180
- lodashSet(state.controlledFields.values, fieldName, lodashGet((_b = state.formProps) === null || _b === void 0 ? void 0 : _b.defaultValues, fieldName));
181
- lodashSet(state.currentDefaultValues, fieldName, lodashGet((_c = state.formProps) === null || _c === void 0 ? void 0 : _c.defaultValues, fieldName));
179
+ setPath(state.controlledFields.values, fieldName, getPath((_b = state.formProps) === null || _b === void 0 ? void 0 : _b.defaultValues, fieldName));
180
+ setPath(state.currentDefaultValues, fieldName, getPath((_c = state.formProps) === null || _c === void 0 ? void 0 : _c.defaultValues, fieldName));
182
181
  }
183
182
  delete state.controlledFields.refCounts[fieldName];
184
183
  });
185
184
  },
186
- getValue: (fieldName) => lodashGet(get().controlledFields.values, fieldName),
185
+ getValue: (fieldName) => getPath(get().controlledFields.values, fieldName),
187
186
  setValue: (fieldName, value) => {
188
187
  set((state) => {
189
- lodashSet(state.controlledFields.values, fieldName, value);
188
+ setPath(state.controlledFields.values, fieldName, value);
190
189
  });
191
190
  get().controlledFields.kickoffValueUpdate(fieldName);
192
191
  },
@@ -70,5 +70,5 @@ export function useFieldArray(name, { formId, validationBehavior } = {}) {
70
70
  export const FieldArray = ({ name, children, formId, validationBehavior, }) => {
71
71
  const context = useInternalFormContext(formId, "FieldArray");
72
72
  const [value, helpers, error] = useInternalFieldArray(context, name, validationBehavior);
73
- return _jsx(_Fragment, { children: children(value, helpers, error) }, void 0);
73
+ return _jsx(_Fragment, { children: children(value, helpers, error) });
74
74
  };
@@ -1,5 +1,5 @@
1
- import isEqual from "lodash/isEqual";
2
1
  import { useEffect, useLayoutEffect, useRef } from "react";
2
+ import * as R from "remeda";
3
3
  export const omit = (obj, ...keys) => {
4
4
  const result = { ...obj };
5
5
  for (const key of keys) {
@@ -22,7 +22,7 @@ export const mergeRefs = (refs) => {
22
22
  export const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
23
23
  export const useDeepEqualsMemo = (item) => {
24
24
  const ref = useRef(item);
25
- const areEqual = ref.current === item || isEqual(ref.current, item);
25
+ const areEqual = ref.current === item || R.equals(ref.current, item);
26
26
  useEffect(() => {
27
27
  if (!areEqual) {
28
28
  ref.current = item;
@@ -16,7 +16,7 @@ export declare type FormState = {
16
16
  *
17
17
  * @param formId the id of the form. Only necessary if being used outside a ValidatedForm.
18
18
  */
19
- export declare const useFormState: (formId?: string | undefined) => FormState;
19
+ export declare const useFormState: (formId?: string) => FormState;
20
20
  export declare type FormHelpers = {
21
21
  /**
22
22
  * Clear the error of the specified field.
@@ -61,4 +61,4 @@ export declare type FormHelpers = {
61
61
  *
62
62
  * @param formId the id of the form. Only necessary if being used outside a ValidatedForm.
63
63
  */
64
- export declare const useFormHelpers: (formId?: string | undefined) => FormHelpers;
64
+ export declare const useFormHelpers: (formId?: string) => FormHelpers;
@@ -82,4 +82,4 @@ export declare type FormContextValue = {
82
82
  /**
83
83
  * Provides access to some of the internal state of the form.
84
84
  */
85
- export declare const useFormContext: (formId?: string | undefined) => FormContextValue;
85
+ export declare const useFormContext: (formId?: string) => FormContextValue;
@@ -1,4 +1,4 @@
1
- import omit from "lodash/omit";
1
+ import * as R from "remeda";
2
2
  import { FORM_ID_FIELD } from "../internal/constants";
3
3
  import { objectFromPathEntries } from "../internal/flatten";
4
4
  const preprocessFormData = (data) => {
@@ -8,7 +8,7 @@ const preprocessFormData = (data) => {
8
8
  return objectFromPathEntries([...data.entries()]);
9
9
  return objectFromPathEntries(Object.entries(data));
10
10
  };
11
- const omitInternalFields = (data) => omit(data, FORM_ID_FIELD);
11
+ const omitInternalFields = (data) => R.omit(data, [FORM_ID_FIELD]);
12
12
  /**
13
13
  * Used to create a validator for a form.
14
14
  * It provides built-in handling for unflattening nested objects and
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var p=require("react"),W=require("@remix-run/react");function Lt(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var P=Lt(p),zt=globalThis&&globalThis.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,u;n<o;n++)(u||!(n in t))&&(u||(u=Array.prototype.slice.call(t,0,n)),u[n]=t[n]);return e.concat(u||Array.prototype.slice.call(t))};function H(e,t,r){var n=e.length-t.length,o=Array.from(t);if(n===0)return e.apply(void 0,o);if(n===1){var u=function(s){return e.apply(void 0,zt([s],o,!1))};return(r||e.lazy)&&(u.lazy=r||e.lazy,u.lazyArgs=t),u}throw new Error("Wrong number of arguments")}function Bt(e,t,r){return e.reduce(function(n,o,u){var s=r?t(o,u,e):t(o);return s.hasMany===!0?n.push.apply(n,s.next):s.hasNext===!0&&n.push(s.next),n},[])}var Ze=Array.isArray,Ye=Object.keys,qt=Object.prototype.hasOwnProperty;function Ee(){return H(Kt,arguments)}function Kt(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var r=Ze(e),n=Ze(t),o=void 0,u=void 0,s=void 0;if(r&&n){if(u=e.length,u!==t.length)return!1;for(o=u;o--!==0;)if(!Ee(e[o],t[o]))return!1;return!0}if(r!==n)return!1;var i=e instanceof Date,a=t instanceof Date;if(i!==a)return!1;if(i&&a)return e.getTime()===t.getTime();var l=e instanceof RegExp,c=t instanceof RegExp;if(l!==c)return!1;if(l&&c)return e.toString()===t.toString();var v=Ye(e);if(u=v.length,u!==Ye(t).length)return!1;for(o=u;o--!==0;)if(!qt.call(t,v[o]))return!1;for(o=u;o--!==0;)if(s=v[o],!Ee(e[s],t[s]))return!1;return!0}return e!==e&&t!==t}function Wt(){return H(Gt,arguments)}function Gt(e,t){var r=new Set(t);return Object.entries(e).reduce(function(n,o){var u=o[0],s=o[1];return r.has(u)||(n[u]=s),n},{})}function Jt(){return H(Xt,arguments)}function Xt(e,t){return Object.keys(e).reduce(function(r,n){return t(e[n],n)||(r[n]=e[n]),r},{})}function Qt(){return H(Zt,arguments)}function Zt(e,t,r){for(var n=e,o=0,u=t;o<u.length;o++){var s=u[o];if(n==null||n[s]==null)return r;n=n[s]}return n}var se=globalThis&&globalThis.__assign||function(){return se=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},se.apply(this,arguments)};function Yt(){return H(Nt,arguments)}function Nt(e,t,r){var n;return se(se({},e),(n={},n[t]=r,n))}function G(){return H(er,arguments,G.lazy)}function er(e){return Bt(e,G.lazy())}(function(e){function t(){var r=new Set;return function(n){return r.has(n)?{done:!1,hasNext:!1}:(r.add(n),{done:!1,hasNext:!0,next:n})}}e.lazy=t})(G||(G={}));const tr=(e="on",t)=>{if(Array.isArray(t))return t.some(r=>r===!0||r===e);if(typeof t=="boolean")return t;if(typeof t=="string")return t===e},rr=(e="on",t)=>{if(typeof t=="string")return t===e},nr={initial:"onBlur",whenTouched:"onChange",whenSubmitted:"onChange"},or=({clearError:e,validate:t,defaultValue:r,touched:n,setTouched:o,hasBeenSubmitted:u,validationBehavior:s,name:i})=>{const a={...nr,...s};return(l={})=>{const c=u?a.whenSubmitted:n?a.whenTouched:a.initial,v={...l,onChange:(...h)=>{var f;return c==="onChange"?t():e(),(f=l==null?void 0:l.onChange)==null?void 0:f.call(l,...h)},onBlur:(...h)=>{var f;return c==="onBlur"&&t(),o(!0),(f=l==null?void 0:l.onBlur)==null?void 0:f.call(l,...h)},name:i};return l.type==="checkbox"?v.defaultChecked=tr(l.value,r):l.type==="radio"?v.defaultChecked=rr(l.value,r):l.value===void 0&&(v.defaultValue=r),Jt(v,h=>h===void 0)}},Ce=e=>{if(e.length===0)return[];const t=e.match(/^\[(.+?)\](.*)$/)||e.match(/^\.?([^\.\[\]]+)(.*)$/);if(t){const[r,n,o]=t;return[/^\d+$/.test(n)?Number(n):n,...Ce(o)]}return[e]};function q(e,t,r){return ur(e,Ce(t),r)}function ur(e,t,r){var s;const n=t.slice(0,-1),o=t[t.length-1];let u=e;for(let i=0;i<n.length;i++){const a=n[i];if(u[a]===void 0){const l=(s=n[i+1])!=null?s:o;u[a]=typeof l=="number"?[]:{}}u=u[a]}return u[o]=r,e}const M=(e,t)=>Qt(e,Ce(t),void 0);var sr=!0,me="Invariant failed";function j(e,t){if(!e){if(sr)throw new Error(me);var r=typeof t=="function"?t():t,n=r?me+": "+r:me;throw new Error(n)}}const K="__rvfInternalFormId",ir="__rvfInternalFormDefaults",ft=e=>`${ir}_${e}`,dt=p.createContext(null),Ae=e=>({hydrateTo:()=>e,map:t=>Ae(t(e))}),Te=()=>({hydrateTo:e=>e,map:()=>Te()}),lr=(e,t)=>t?Te():Ae(e),z={serverData:Ae,hydratedData:Te,from:lr},Ne=e=>{let t;const r=new Set,n=(a,l)=>{const c=typeof a=="function"?a(t):a;if(c!==t){const v=t;t=l?c:Object.assign({},t,c),r.forEach(h=>h(t,v))}},o=()=>t,i={setState:n,getState:o,subscribe:a=>(r.add(a),()=>r.delete(a)),destroy:()=>r.clear()};return t=e(n,o,i),i},ar=e=>e?Ne(e):Ne;var mt={exports:{}},vt={},ht={exports:{}},pt={};/**
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var p=require("react"),K=require("@remix-run/react");function Ht(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var P=Ht(p),Lt=globalThis&&globalThis.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,u;n<o;n++)(u||!(n in t))&&(u||(u=Array.prototype.slice.call(t,0,n)),u[n]=t[n]);return e.concat(u||Array.prototype.slice.call(t))};function Q(e,t,r){var n=e.length-t.length,o=Array.from(t);if(n===0)return e.apply(void 0,o);if(n===1){var u=function(s){return e.apply(void 0,Lt([s],o,!1))};return(r||e.lazy)&&(u.lazy=r||e.lazy,u.lazyArgs=t),u}throw new Error("Wrong number of arguments")}function zt(e,t,r){return e.reduce(function(n,o,u){var s=r?t(o,u,e):t(o);return s.hasMany===!0?n.push.apply(n,s.next):s.hasNext===!0&&n.push(s.next),n},[])}var Qe=Array.isArray,Ze=Object.keys,Bt=Object.prototype.hasOwnProperty;function Ee(){return Q(qt,arguments)}function qt(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var r=Qe(e),n=Qe(t),o=void 0,u=void 0,s=void 0;if(r&&n){if(u=e.length,u!==t.length)return!1;for(o=u;o--!==0;)if(!Ee(e[o],t[o]))return!1;return!0}if(r!==n)return!1;var i=e instanceof Date,a=t instanceof Date;if(i!==a)return!1;if(i&&a)return e.getTime()===t.getTime();var l=e instanceof RegExp,c=t instanceof RegExp;if(l!==c)return!1;if(l&&c)return e.toString()===t.toString();var v=Ze(e);if(u=v.length,u!==Ze(t).length)return!1;for(o=u;o--!==0;)if(!Bt.call(t,v[o]))return!1;for(o=u;o--!==0;)if(s=v[o],!Ee(e[s],t[s]))return!1;return!0}return e!==e&&t!==t}function Kt(){return Q(Wt,arguments)}function Wt(e,t){var r=new Set(t);return Object.entries(e).reduce(function(n,o){var u=o[0],s=o[1];return r.has(u)||(n[u]=s),n},{})}function Gt(){return Q(Jt,arguments)}function Jt(e,t){return Object.keys(e).reduce(function(r,n){return t(e[n],n)||(r[n]=e[n]),r},{})}function Xt(){return Q(Qt,arguments)}function Qt(e,t,r){for(var n=e,o=0,u=t;o<u.length;o++){var s=u[o];if(n==null||n[s]==null)return r;n=n[s]}return n}function W(){return Q(Zt,arguments,W.lazy)}function Zt(e){return zt(e,W.lazy())}(function(e){function t(){var r=new Set;return function(n){return r.has(n)?{done:!1,hasNext:!1}:(r.add(n),{done:!1,hasNext:!0,next:n})}}e.lazy=t})(W||(W={}));const Yt=(e="on",t)=>{if(Array.isArray(t))return t.some(r=>r===!0||r===e);if(typeof t=="boolean")return t;if(typeof t=="string")return t===e},Nt=(e="on",t)=>{if(typeof t=="string")return t===e},er={initial:"onBlur",whenTouched:"onChange",whenSubmitted:"onChange"},tr=({clearError:e,validate:t,defaultValue:r,touched:n,setTouched:o,hasBeenSubmitted:u,validationBehavior:s,name:i})=>{const a={...er,...s};return(l={})=>{const c=u?a.whenSubmitted:n?a.whenTouched:a.initial,v={...l,onChange:(...h)=>{var f;return c==="onChange"?t():e(),(f=l==null?void 0:l.onChange)==null?void 0:f.call(l,...h)},onBlur:(...h)=>{var f;return c==="onBlur"&&t(),o(!0),(f=l==null?void 0:l.onBlur)==null?void 0:f.call(l,...h)},name:i};return l.type==="checkbox"?v.defaultChecked=Yt(l.value,r):l.type==="radio"?v.defaultChecked=Nt(l.value,r):l.value===void 0&&(v.defaultValue=r),Gt(v,h=>h===void 0)}},Oe=e=>{if(e.length===0)return[];const t=e.match(/^\[(.+?)\](.*)$/)||e.match(/^\.?([^\.\[\]]+)(.*)$/);if(t){const[r,n,o]=t;return[/^\d+$/.test(n)?Number(n):n,...Oe(o)]}return[e]};function $(e,t,r){return rr(e,Oe(t),r)}function rr(e,t,r){var s;const n=t.slice(0,-1),o=t[t.length-1];let u=e;for(let i=0;i<n.length;i++){const a=n[i];if(u[a]===void 0){const l=(s=n[i+1])!=null?s:o;u[a]=typeof l=="number"?[]:{}}u=u[a]}return u[o]=r,e}const _=(e,t)=>Xt(e,Oe(t),void 0);var nr=!0,de="Invariant failed";function j(e,t){if(!e){if(nr)throw new Error(de);var r=typeof t=="function"?t():t,n=r?de+": "+r:de;throw new Error(n)}}const q="__rvfInternalFormId",or="__rvfInternalFormDefaults",ct=e=>`${or}_${e}`,ft=p.createContext(null),Ce=e=>({hydrateTo:()=>e,map:t=>Ce(t(e))}),Ae=()=>({hydrateTo:e=>e,map:()=>Ae()}),ur=(e,t)=>t?Ae():Ce(e),z={serverData:Ce,hydratedData:Ae,from:ur},Ye=e=>{let t;const r=new Set,n=(a,l)=>{const c=typeof a=="function"?a(t):a;if(c!==t){const v=t;t=l?c:Object.assign({},t,c),r.forEach(h=>h(t,v))}},o=()=>t,i={setState:n,getState:o,subscribe:a=>(r.add(a),()=>r.delete(a)),destroy:()=>r.clear()};return t=e(n,o,i),i},sr=e=>e?Ye(e):Ye;var dt={exports:{}},mt={},vt={exports:{}},ht={};/**
2
2
  * @license React
3
3
  * use-sync-external-store-shim.production.min.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var $=P.default;function cr(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var fr=typeof Object.is=="function"?Object.is:cr,dr=$.useState,mr=$.useEffect,vr=$.useLayoutEffect,hr=$.useDebugValue;function pr(e,t){var r=t(),n=dr({inst:{value:r,getSnapshot:t}}),o=n[0].inst,u=n[1];return vr(function(){o.value=r,o.getSnapshot=t,ve(o)&&u({inst:o})},[e,r,t]),mr(function(){return ve(o)&&u({inst:o}),e(function(){ve(o)&&u({inst:o})})},[e]),hr(r),r}function ve(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!fr(e,r)}catch{return!0}}function yr(e,t){return t()}var Fr=typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"?yr:pr;pt.useSyncExternalStore=$.useSyncExternalStore!==void 0?$.useSyncExternalStore:Fr;ht.exports=pt;/**
9
+ */var x=P.default;function ir(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var lr=typeof Object.is=="function"?Object.is:ir,ar=x.useState,cr=x.useEffect,fr=x.useLayoutEffect,dr=x.useDebugValue;function mr(e,t){var r=t(),n=ar({inst:{value:r,getSnapshot:t}}),o=n[0].inst,u=n[1];return fr(function(){o.value=r,o.getSnapshot=t,me(o)&&u({inst:o})},[e,r,t]),cr(function(){return me(o)&&u({inst:o}),e(function(){me(o)&&u({inst:o})})},[e]),dr(r),r}function me(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!lr(e,r)}catch{return!0}}function vr(e,t){return t()}var hr=typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"?vr:mr;ht.useSyncExternalStore=x.useSyncExternalStore!==void 0?x.useSyncExternalStore:hr;vt.exports=ht;/**
10
10
  * @license React
11
11
  * use-sync-external-store-shim/with-selector.production.min.js
12
12
  *
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var ce=P.default,br=ht.exports;function gr(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Er=typeof Object.is=="function"?Object.is:gr,Sr=br.useSyncExternalStore,Vr=ce.useRef,Pr=ce.useEffect,wr=ce.useMemo,Ir=ce.useDebugValue;vt.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var u=Vr(null);if(u.current===null){var s={hasValue:!1,value:null};u.current=s}else s=u.current;u=wr(function(){function a(f){if(!l){if(l=!0,c=f,f=n(f),o!==void 0&&s.hasValue){var F=s.value;if(o(F,f))return v=F}return v=f}if(F=v,Er(c,f))return F;var y=n(f);return o!==void 0&&o(F,y)?F:(c=f,v=y)}var l=!1,c,v,h=r===void 0?null:r;return[function(){return a(t())},h===null?void 0:function(){return a(h())}]},[t,r,n,o]);var i=Sr(e,u[0],u[1]);return Pr(function(){s.hasValue=!0,s.value=i},[i]),Ir(i),i};mt.exports=vt;function Dr(e,t=e.getState,r){const n=mt.exports.useSyncExternalStoreWithSelector(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return p.useDebugValue(n),n}const et=e=>{const t=typeof e=="function"?ar(e):e,r=(n,o)=>Dr(t,n,o);return Object.assign(r,t),r},Or=e=>e?et(e):et;var Cr=Or;function w(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(o){return"'"+o+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function x(e){return!!e&&!!e[S]}function U(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var r=Object.getPrototypeOf(t);if(r===null)return!0;var n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Ur}(e)||Array.isArray(e)||!!e[lt]||!!e.constructor[lt]||je(e)||ke(e))}function J(e,t,r){r===void 0&&(r=!1),L(e)===0?(r?Object.keys:$e)(e).forEach(function(n){r&&typeof n=="symbol"||t(n,e[n],e)}):e.forEach(function(n,o){return t(o,n,e)})}function L(e){var t=e[S];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:je(e)?2:ke(e)?3:0}function Se(e,t){return L(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ar(e,t){return L(e)===2?e.get(t):e[t]}function yt(e,t,r){var n=L(e);n===2?e.set(t,r):n===3?(e.delete(t),e.add(r)):e[t]=r}function Tr(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function je(e){return Rr&&e instanceof Map}function ke(e){return Mr&&e instanceof Set}function R(e){return e.o||e.t}function _e(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=$r(e);delete t[S];for(var r=$e(t),n=0;n<r.length;n++){var o=r[n],u=t[o];u.writable===!1&&(u.writable=!0,u.configurable=!0),(u.get||u.set)&&(t[o]={configurable:!0,writable:!0,enumerable:u.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function Re(e,t){return t===void 0&&(t=!1),Me(e)||x(e)||!U(e)||(L(e)>1&&(e.set=e.add=e.clear=e.delete=jr),Object.freeze(e),t&&J(e,function(r,n){return Re(n,!0)},!0)),e}function jr(){w(2)}function Me(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function D(e){var t=xr[e];return t||w(18,e),t}function tt(){return X}function he(e,t){t&&(D("Patches"),e.u=[],e.s=[],e.v=t)}function ie(e){Ve(e),e.p.forEach(kr),e.p=null}function Ve(e){e===X&&(X=e.l)}function rt(e){return X={p:[],l:X,h:e,m:!0,_:0}}function kr(e){var t=e[S];t.i===0||t.i===1?t.j():t.O=!0}function pe(e,t){t._=t.p.length;var r=t.p[0],n=e!==void 0&&e!==r;return t.h.g||D("ES5").S(t,e,n),n?(r[S].P&&(ie(t),w(4)),U(e)&&(e=le(t,e),t.l||ae(t,e)),t.u&&D("Patches").M(r[S].t,e,t.u,t.s)):e=le(t,r,[]),ie(t),t.u&&t.v(t.u,t.s),e!==Ft?e:void 0}function le(e,t,r){if(Me(t))return t;var n=t[S];if(!n)return J(t,function(u,s){return nt(e,n,t,u,s,r)},!0),t;if(n.A!==e)return t;if(!n.P)return ae(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=n.i===4||n.i===5?n.o=_e(n.k):n.o;J(n.i===3?new Set(o):o,function(u,s){return nt(e,n,o,u,s,r)}),ae(e,o,!1),r&&e.u&&D("Patches").R(n,r,e.u,e.s)}return n.o}function nt(e,t,r,n,o,u){if(x(o)){var s=le(e,o,u&&t&&t.i!==3&&!Se(t.D,n)?u.concat(n):void 0);if(yt(r,n,s),!x(s))return;e.m=!1}if(U(o)&&!Me(o)){if(!e.h.F&&e._<1)return;le(e,o),t&&t.A.l||ae(e,o)}}function ae(e,t,r){r===void 0&&(r=!1),e.h.F&&e.m&&Re(t,r)}function ye(e,t){var r=e[S];return(r?R(r):e)[t]}function ot(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Pe(e){e.P||(e.P=!0,e.l&&Pe(e.l))}function Fe(e){e.o||(e.o=_e(e.t))}function we(e,t,r){var n=je(t)?D("MapSet").N(t,r):ke(t)?D("MapSet").T(t,r):e.g?function(o,u){var s=Array.isArray(o),i={i:s?1:0,A:u?u.A:tt(),P:!1,I:!1,D:{},l:u,t:o,k:null,o:null,j:null,C:!1},a=i,l=Ie;s&&(a=[i],l=B);var c=Proxy.revocable(a,l),v=c.revoke,h=c.proxy;return i.k=h,i.j=v,h}(t,r):D("ES5").J(t,r);return(r?r.A:tt()).p.push(n),n}function _r(e){return x(e)||w(22,e),function t(r){if(!U(r))return r;var n,o=r[S],u=L(r);if(o){if(!o.P&&(o.i<4||!D("ES5").K(o)))return o.t;o.I=!0,n=ut(r,u),o.I=!1}else n=ut(r,u);return J(n,function(s,i){o&&Ar(o.t,s)===i||yt(n,s,t(i))}),u===3?new Set(n):n}(e)}function ut(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return _e(e)}var st,X,Ue=typeof Symbol!="undefined"&&typeof Symbol("x")=="symbol",Rr=typeof Map!="undefined",Mr=typeof Set!="undefined",it=typeof Proxy!="undefined"&&Proxy.revocable!==void 0&&typeof Reflect!="undefined",Ft=Ue?Symbol.for("immer-nothing"):((st={})["immer-nothing"]=!0,st),lt=Ue?Symbol.for("immer-draftable"):"__$immer_draftable",S=Ue?Symbol.for("immer-state"):"__$immer_state",Ur=""+Object.prototype.constructor,$e=typeof Reflect!="undefined"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,$r=Object.getOwnPropertyDescriptors||function(e){var t={};return $e(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)}),t},xr={},Ie={get:function(e,t){if(t===S)return e;var r=R(e);if(!Se(r,t))return function(o,u,s){var i,a=ot(u,s);return a?"value"in a?a.value:(i=a.get)===null||i===void 0?void 0:i.call(o.k):void 0}(e,r,t);var n=r[t];return e.I||!U(n)?n:n===ye(e.t,t)?(Fe(e),e.o[t]=we(e.A.h,n,e)):n},has:function(e,t){return t in R(e)},ownKeys:function(e){return Reflect.ownKeys(R(e))},set:function(e,t,r){var n=ot(R(e),t);if(n!=null&&n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=ye(R(e),t),u=o==null?void 0:o[S];if(u&&u.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(Tr(r,o)&&(r!==void 0||Se(e.t,t)))return!0;Fe(e),Pe(e)}return e.o[t]===r&&typeof r!="number"&&(r!==void 0||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return ye(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,Fe(e),Pe(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=R(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty:function(){w(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){w(12)}},B={};J(Ie,function(e,t){B[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),B.deleteProperty=function(e,t){return B.set.call(this,e,t,void 0)},B.set=function(e,t,r){return Ie.set.call(this,e[0],t,r,e[0])};var Hr=function(){function e(r){var n=this;this.g=it,this.F=!0,this.produce=function(o,u,s){if(typeof o=="function"&&typeof u!="function"){var i=u;u=o;var a=n;return function(y){var A=this;y===void 0&&(y=i);for(var T=arguments.length,C=Array(T>1?T-1:0),k=1;k<T;k++)C[k-1]=arguments[k];return a.produce(y,function(fe){var _;return(_=u).call.apply(_,[A,fe].concat(C))})}}var l;if(typeof u!="function"&&w(6),s!==void 0&&typeof s!="function"&&w(7),U(o)){var c=rt(n),v=we(n,o,void 0),h=!0;try{l=u(v),h=!1}finally{h?ie(c):Ve(c)}return typeof Promise!="undefined"&&l instanceof Promise?l.then(function(y){return he(c,s),pe(y,c)},function(y){throw ie(c),y}):(he(c,s),pe(l,c))}if(!o||typeof o!="object"){if((l=u(o))===void 0&&(l=o),l===Ft&&(l=void 0),n.F&&Re(l,!0),s){var f=[],F=[];D("Patches").M(o,l,f,F),s(f,F)}return l}w(21,o)},this.produceWithPatches=function(o,u){if(typeof o=="function")return function(l){for(var c=arguments.length,v=Array(c>1?c-1:0),h=1;h<c;h++)v[h-1]=arguments[h];return n.produceWithPatches(l,function(f){return o.apply(void 0,[f].concat(v))})};var s,i,a=n.produce(o,u,function(l,c){s=l,i=c});return typeof Promise!="undefined"&&a instanceof Promise?a.then(function(l){return[l,s,i]}):[a,s,i]},typeof(r==null?void 0:r.useProxies)=="boolean"&&this.setUseProxies(r.useProxies),typeof(r==null?void 0:r.autoFreeze)=="boolean"&&this.setAutoFreeze(r.autoFreeze)}var t=e.prototype;return t.createDraft=function(r){U(r)||w(8),x(r)&&(r=_r(r));var n=rt(this),o=we(this,r,void 0);return o[S].C=!0,Ve(n),o},t.finishDraft=function(r,n){var o=r&&r[S],u=o.A;return he(u,n),pe(void 0,u)},t.setAutoFreeze=function(r){this.F=r},t.setUseProxies=function(r){r&&!it&&w(20),this.g=r},t.applyPatches=function(r,n){var o;for(o=n.length-1;o>=0;o--){var u=n[o];if(u.path.length===0&&u.op==="replace"){r=u.value;break}}o>-1&&(n=n.slice(o+1));var s=D("Patches").$;return x(r)?s(r,n):this.produce(r,function(i){return s(i,n)})},e}(),V=new Hr,Lr=V.produce;V.produceWithPatches.bind(V);V.setAutoFreeze.bind(V);V.setUseProxies.bind(V);V.applyPatches.bind(V);V.createDraft.bind(V);V.finishDraft.bind(V);const zr=e=>(t,r,n)=>(n.setState=(o,u,...s)=>{const i=typeof o=="function"?Lr(o):o;return t(i,u,...s)},e(n.setState,r,n)),Br=zr,qr=(e,t)=>{if(typeof Object.getPrototypeOf(e).requestSubmit=="function"){e.requestSubmit(t);return}if(t){Kr(e,t),t.click();return}const r=document.createElement("input");r.type="submit",r.hidden=!0,e.appendChild(r),r.click(),e.removeChild(r)};function Kr(e,t){t instanceof HTMLElement||be(TypeError,"parameter 1 is not of type 'HTMLElement'"),"type"in t&&t.type==="submit"||be(TypeError,"The specified element is not a submit button"),"form"in t&&t.form===e||be(DOMException,"The specified element is not owned by this form element","NotFoundError")}function be(e,t,r){throw new e("Failed to execute 'requestSubmit' on 'HTMLFormElement': "+t+".",r)}const g=(e,t)=>{const r=M(e,t);if(r==null){const n=[];return q(e,t,n),n}return j(Array.isArray(r),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`),r},te=(e,t,r)=>{const n=e[t],o=e[r],u=t in e,s=r in e;u?e[r]=n:delete e[r],s?e[t]=o:delete e[t]};function Q(e,t,r,n){return e.length<t&&n&&(e.length=t),arguments.length===4?e.splice(t,r,n):e.splice(t,r)}const re=(e,t,r)=>{const[n]=Q(e,t,1);Q(e,r,0,n)},ne=(e,t,r)=>{Q(e,t,0,r)},oe=(e,t)=>{Q(e,t,1)},ue=(e,t,r)=>{Q(e,t,1,r)},E=(e,t,r)=>{const n=new Set,o=[];for(const[s,i]of Object.entries(t))s.startsWith(e)&&s!==e&&(n.add(s),q(o,s.substring(e.length),i));r(o);for(const s of n)delete t[s];const u=De(o);for(const s of u){const i=M(o,s);t[`${e}${s}`]=i}},De=(e,t="")=>Array.isArray(e)?e.flatMap((r,n)=>De(r,`${t}[${n}]`)):typeof e=="object"?Object.keys(e).flatMap(r=>De(e[r],`${t}.${r}`)):[t],b=()=>{},Wr={isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,isValid:()=>!0,startSubmit:b,endSubmit:b,setTouched:b,setFieldError:b,setFieldErrors:b,clearFieldError:b,currentDefaultValues:{},reset:()=>b,syncFormProps:b,setFormElement:b,validateField:async()=>null,validate:async()=>{throw new Error("Validate called before form was initialized.")},submit:async()=>{throw new Error("Submit called before form was initialized.")},resetFormElement:b,getValues:()=>new FormData,controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:b,unregister:b,setValue:b,getValue:b,kickoffValueUpdate:b,awaitValueUpdate:async()=>{throw new Error("AwaitValueUpdate called before form was initialized.")},array:{push:b,swap:b,move:b,insert:b,unshift:b,remove:b,pop:b,replace:b}}},Gr=(e,t)=>({isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,currentDefaultValues:{},isValid:()=>Object.keys(t().fieldErrors).length===0,startSubmit:()=>e(r=>{r.isSubmitting=!0,r.hasBeenSubmitted=!0}),endSubmit:()=>e(r=>{r.isSubmitting=!1}),setTouched:(r,n)=>e(o=>{o.touchedFields[r]=n}),setFieldError:(r,n)=>e(o=>{o.fieldErrors[r]=n}),setFieldErrors:r=>e(n=>{n.fieldErrors=r}),clearFieldError:r=>e(n=>{delete n.fieldErrors[r]}),reset:()=>e(r=>{var o,u;r.fieldErrors={},r.touchedFields={},r.hasBeenSubmitted=!1;const n=(u=(o=r.formProps)==null?void 0:o.defaultValues)!=null?u:{};r.controlledFields.values=n,r.currentDefaultValues=n}),syncFormProps:r=>e(n=>{n.isHydrated||(n.controlledFields.values=r.defaultValues,n.currentDefaultValues=r.defaultValues),n.formProps=r,n.isHydrated=!0}),setFormElement:r=>{t().formElement!==r&&e(n=>{n.formElement=r})},validateField:async r=>{var s,i,a;const n=t().formElement;j(n,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const o=(s=t().formProps)==null?void 0:s.validator;j(o,"Cannot validator. This is probably a bug in remix-validated-form."),await((a=(i=t().controlledFields).awaitValueUpdate)==null?void 0:a.call(i,r));const{error:u}=await o.validateField(new FormData(n),r);return u?(t().setFieldError(r,u),u):(t().clearFieldError(r),null)},validate:async()=>{var u;const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const n=(u=t().formProps)==null?void 0:u.validator;j(n,"Cannot validator. This is probably a bug in remix-validated-form.");const o=await n.validate(new FormData(r));return o.error&&t().setFieldErrors(o.error.fieldErrors),o},submit:()=>{const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form."),qr(r)},getValues:()=>{var r;return new FormData((r=t().formElement)!=null?r:void 0)},resetFormElement:()=>{var r;return(r=t().formElement)==null?void 0:r.reset()},controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:r=>{e(n=>{var u;const o=(u=n.controlledFields.refCounts[r])!=null?u:0;n.controlledFields.refCounts[r]=o+1})},unregister:r=>{t()===null||t()===void 0||e(n=>{var s,i,a;const o=(s=n.controlledFields.refCounts[r])!=null?s:0;if(o>1){n.controlledFields.refCounts[r]=o-1;return}Object.keys(n.controlledFields.refCounts).some(l=>r.startsWith(l)&&l!==r)||(q(n.controlledFields.values,r,M((i=n.formProps)==null?void 0:i.defaultValues,r)),q(n.currentDefaultValues,r,M((a=n.formProps)==null?void 0:a.defaultValues,r))),delete n.controlledFields.refCounts[r]})},getValue:r=>M(t().controlledFields.values,r),setValue:(r,n)=>{e(o=>{q(o.controlledFields.values,r,n)}),t().controlledFields.kickoffValueUpdate(r)},kickoffValueUpdate:r=>{const n=()=>e(o=>{delete o.controlledFields.valueUpdateResolvers[r],delete o.controlledFields.valueUpdatePromises[r]});e(o=>{const u=new Promise(s=>{o.controlledFields.valueUpdateResolvers[r]=s}).then(n);o.controlledFields.valueUpdatePromises[r]=u})},awaitValueUpdate:async r=>{await t().controlledFields.valueUpdatePromises[r]},array:{push:(r,n)=>{e(o=>{g(o.controlledFields.values,r).push(n),g(o.currentDefaultValues,r).push(n)}),t().controlledFields.kickoffValueUpdate(r)},swap:(r,n,o)=>{e(u=>{te(g(u.controlledFields.values,r),n,o),te(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>te(s,n,o)),E(r,u.fieldErrors,s=>te(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},move:(r,n,o)=>{e(u=>{re(g(u.controlledFields.values,r),n,o),re(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>re(s,n,o)),E(r,u.fieldErrors,s=>re(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},insert:(r,n,o)=>{e(u=>{ne(g(u.controlledFields.values,r),n,o),ne(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>ne(s,n,!1)),E(r,u.fieldErrors,s=>ne(s,n,void 0))}),t().controlledFields.kickoffValueUpdate(r)},remove:(r,n)=>{e(o=>{oe(g(o.controlledFields.values,r),n),oe(g(o.currentDefaultValues,r),n),E(r,o.touchedFields,u=>oe(u,n)),E(r,o.fieldErrors,u=>oe(u,n))}),t().controlledFields.kickoffValueUpdate(r)},pop:r=>{e(n=>{g(n.controlledFields.values,r).pop(),g(n.currentDefaultValues,r).pop(),E(r,n.touchedFields,o=>o.pop()),E(r,n.fieldErrors,o=>o.pop())}),t().controlledFields.kickoffValueUpdate(r)},unshift:(r,n)=>{e(o=>{g(o.controlledFields.values,r).unshift(n),g(o.currentDefaultValues,r).unshift(n),E(r,o.touchedFields,u=>u.unshift(!1)),E(r,o.fieldErrors,u=>u.unshift(void 0))})},replace:(r,n,o)=>{e(u=>{ue(g(u.controlledFields.values,r),n,o),ue(g(u.currentDefaultValues,r),n,o),E(r,u.touchedFields,s=>ue(s,n,o)),E(r,u.fieldErrors,s=>ue(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)}}}}),Oe=Cr()(Br((e,t)=>({forms:{},form:r=>{var n;return(n=t().forms[r])!=null?n:Wr},cleanupForm:r=>{e(n=>{delete n.forms[r]})},registerForm:r=>{t().forms[r]||e(n=>{n.forms[r]=Gr(o=>e(u=>o(u.forms[r])),()=>t().forms[r])})}}))),d=(e,t)=>Oe(r=>t(r.form(e))),O=(e,t)=>{const r=p.useContext(dt);if(e)return{formId:e};if(r)return r;throw new Error(`Unable to determine form for ${t}. Please use it inside a ValidatedForm or pass a 'formId'.`)};function xe({fetcher:e,subaction:t,formId:r}){var o;const n=W.useActionData();return e?(o=e.data)!=null&&o.fieldErrors?e.data:null:n!=null&&n.fieldErrors?typeof r=="string"&&n.formId?n.formId===r?n:null:!t&&!n.subaction||n.subaction===t?n:null:null}const bt=e=>{const t=xe(e),r=d(e.formId,n=>n.isHydrated);return z.from(t==null?void 0:t.fieldErrors,r)},gt=({formId:e})=>{const t=W.useMatches();if(typeof e=="string"){const r=ft(e),n=t.reverse().find(o=>o.data&&r in o.data);return n==null?void 0:n.data[r]}return null},Et=e=>{const{formId:t,defaultValuesProp:r}=e,n=d(t,s=>s.isHydrated),o=xe(e),u=gt(e);return n?z.hydratedData():o!=null&&o.repopulateFields?(j(typeof o.repopulateFields=="object","repopulateFields returned something other than an object"),z.serverData(o.repopulateFields)):r?z.serverData(r):z.serverData(u)},Jr=({fetcher:e})=>{const t=W.useTransition();return e?e.state==="submitting":!!t.submission},Xr=(e,{formId:t})=>{const r=d(t,u=>u.touchedFields[e]),n=d(t,u=>u.setTouched),o=p.useCallback(u=>n(e,u),[e,n]);return[r,o]},St=(e,t)=>{const r=bt(t),n=d(t.formId,o=>o.fieldErrors[e]);return r.map(o=>o==null?void 0:o[e]).hydrateTo(n)},Vt=e=>{const{formId:t}=e;return d(t,r=>r.clearFieldError)},Qr=(e,t)=>d(e,r=>M(r.currentDefaultValues,t)),He=(e,t)=>{const r=Et(t),n=Qr(t.formId,e);return r.map(o=>M(o,e)).hydrateTo(n)},Pt=e=>d(e,t=>t.isSubmitting),wt=e=>d(e,t=>t.isValid()),Le=e=>d(e,t=>t.hasBeenSubmitted),ze=e=>d(e,t=>t.validateField),Zr=e=>d(e,t=>t.validate),Yr=()=>()=>{},It=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.registerReceiveFocus)!=null?n:Yr}),Nr={},en=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.defaultValues)!=null?n:Nr}),tn=({formId:e})=>d(e,t=>t.setTouched),rn=e=>d(e,t=>t.touchedFields),nn=e=>d(e,t=>t.fieldErrors),Dt=e=>d(e,t=>t.setFieldErrors),on=e=>d(e,t=>t.resetFormElement),un=e=>d(e,t=>t.submit),sn=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.action}),ln=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.subaction}),an=e=>d(e,t=>t.getValues),cn=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.getValue(t)),n=d(e.formId,u=>u.isHydrated),o=He(t,e);return n?r:o},Ot=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.valueUpdateResolvers[t]);p.useEffect(()=>{r==null||r()},[r]);const n=d(e.formId,u=>u.controlledFields.register),o=d(e.formId,u=>u.controlledFields.unregister);p.useEffect(()=>(n(t),()=>o(t)),[e.formId,t,n,o])},fn=(e,t)=>{Ot(e,t);const r=d(e.formId,u=>u.controlledFields.setValue),n=p.useCallback(u=>r(t,u),[t,r]);return[cn(e,t),n]},dn=e=>{const t=d(e,r=>r.controlledFields.setValue);return p.useCallback((r,n)=>t(r,n),[t])},Ct=e=>{const t=O(e,"useIsSubmitting");return Pt(t.formId)},At=e=>{const t=O(e,"useIsValid");return wt(t.formId)},mn=(e,t)=>{const{formId:r,handleReceiveFocus:n}=t!=null?t:{},o=O(r,"useField"),u=He(e,o),[s,i]=Xr(e,o),a=St(e,o),l=Vt(o),c=Le(o.formId),v=ze(o.formId),h=It(o.formId);return p.useEffect(()=>{if(n)return h(e,n)},[n,e,h]),p.useMemo(()=>{const F={error:a,clearError:()=>l(e),validate:()=>{v(e)},defaultValue:u,touched:s,setTouched:i},y=or({...F,name:e,hasBeenSubmitted:c,validationBehavior:t==null?void 0:t.validationBehavior});return{...F,getInputProps:y}},[a,l,u,s,i,e,c,t==null?void 0:t.validationBehavior,v])},vn=(e,t)=>{const r=O(t,"useControlField"),[n,o]=fn(r,e);return[n,o]},hn=e=>{const t=O(e,"useControlField");return dn(t.formId)};/**
17
+ */var ae=P.default,pr=vt.exports;function yr(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Fr=typeof Object.is=="function"?Object.is:yr,br=pr.useSyncExternalStore,Er=ae.useRef,gr=ae.useEffect,Sr=ae.useMemo,Vr=ae.useDebugValue;mt.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var u=Er(null);if(u.current===null){var s={hasValue:!1,value:null};u.current=s}else s=u.current;u=Sr(function(){function a(f){if(!l){if(l=!0,c=f,f=n(f),o!==void 0&&s.hasValue){var F=s.value;if(o(F,f))return v=F}return v=f}if(F=v,Fr(c,f))return F;var y=n(f);return o!==void 0&&o(F,y)?F:(c=f,v=y)}var l=!1,c,v,h=r===void 0?null:r;return[function(){return a(t())},h===null?void 0:function(){return a(h())}]},[t,r,n,o]);var i=br(e,u[0],u[1]);return gr(function(){s.hasValue=!0,s.value=i},[i]),Vr(i),i};dt.exports=mt;function Pr(e,t=e.getState,r){const n=dt.exports.useSyncExternalStoreWithSelector(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return p.useDebugValue(n),n}const Ne=e=>{const t=typeof e=="function"?sr(e):e,r=(n,o)=>Pr(t,n,o);return Object.assign(r,t),r},wr=e=>e?Ne(e):Ne;var Ir=wr;function w(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(o){return"'"+o+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function H(e){return!!e&&!!e[S]}function U(e){return!!e&&(function(t){if(!t||typeof t!="object")return!1;var r=Object.getPrototypeOf(t);if(r===null)return!0;var n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Rr}(e)||Array.isArray(e)||!!e[it]||!!e.constructor[it]||Te(e)||je(e))}function G(e,t,r){r===void 0&&(r=!1),L(e)===0?(r?Object.keys:Ue)(e).forEach(function(n){r&&typeof n=="symbol"||t(n,e[n],e)}):e.forEach(function(n,o){return t(o,n,e)})}function L(e){var t=e[S];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:Te(e)?2:je(e)?3:0}function ge(e,t){return L(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Dr(e,t){return L(e)===2?e.get(t):e[t]}function pt(e,t,r){var n=L(e);n===2?e.set(t,r):n===3?(e.delete(t),e.add(r)):e[t]=r}function Or(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Te(e){return jr&&e instanceof Map}function je(e){return kr&&e instanceof Set}function M(e){return e.o||e.t}function ke(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Mr(e);delete t[S];for(var r=Ue(t),n=0;n<r.length;n++){var o=r[n],u=t[o];u.writable===!1&&(u.writable=!0,u.configurable=!0),(u.get||u.set)&&(t[o]={configurable:!0,writable:!0,enumerable:u.enumerable,value:e[o]})}return Object.create(Object.getPrototypeOf(e),t)}function Re(e,t){return t===void 0&&(t=!1),Me(e)||H(e)||!U(e)||(L(e)>1&&(e.set=e.add=e.clear=e.delete=Cr),Object.freeze(e),t&&G(e,function(r,n){return Re(n,!0)},!0)),e}function Cr(){w(2)}function Me(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function D(e){var t=_r[e];return t||w(18,e),t}function et(){return J}function ve(e,t){t&&(D("Patches"),e.u=[],e.s=[],e.v=t)}function se(e){Se(e),e.p.forEach(Ar),e.p=null}function Se(e){e===J&&(J=e.l)}function tt(e){return J={p:[],l:J,h:e,m:!0,_:0}}function Ar(e){var t=e[S];t.i===0||t.i===1?t.j():t.O=!0}function he(e,t){t._=t.p.length;var r=t.p[0],n=e!==void 0&&e!==r;return t.h.g||D("ES5").S(t,e,n),n?(r[S].P&&(se(t),w(4)),U(e)&&(e=ie(t,e),t.l||le(t,e)),t.u&&D("Patches").M(r[S].t,e,t.u,t.s)):e=ie(t,r,[]),se(t),t.u&&t.v(t.u,t.s),e!==yt?e:void 0}function ie(e,t,r){if(Me(t))return t;var n=t[S];if(!n)return G(t,function(u,s){return rt(e,n,t,u,s,r)},!0),t;if(n.A!==e)return t;if(!n.P)return le(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=n.i===4||n.i===5?n.o=ke(n.k):n.o;G(n.i===3?new Set(o):o,function(u,s){return rt(e,n,o,u,s,r)}),le(e,o,!1),r&&e.u&&D("Patches").R(n,r,e.u,e.s)}return n.o}function rt(e,t,r,n,o,u){if(H(o)){var s=ie(e,o,u&&t&&t.i!==3&&!ge(t.D,n)?u.concat(n):void 0);if(pt(r,n,s),!H(s))return;e.m=!1}if(U(o)&&!Me(o)){if(!e.h.F&&e._<1)return;ie(e,o),t&&t.A.l||le(e,o)}}function le(e,t,r){r===void 0&&(r=!1),e.h.F&&e.m&&Re(t,r)}function pe(e,t){var r=e[S];return(r?M(r):e)[t]}function nt(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function Ve(e){e.P||(e.P=!0,e.l&&Ve(e.l))}function ye(e){e.o||(e.o=ke(e.t))}function Pe(e,t,r){var n=Te(t)?D("MapSet").N(t,r):je(t)?D("MapSet").T(t,r):e.g?function(o,u){var s=Array.isArray(o),i={i:s?1:0,A:u?u.A:et(),P:!1,I:!1,D:{},l:u,t:o,k:null,o:null,j:null,C:!1},a=i,l=we;s&&(a=[i],l=B);var c=Proxy.revocable(a,l),v=c.revoke,h=c.proxy;return i.k=h,i.j=v,h}(t,r):D("ES5").J(t,r);return(r?r.A:et()).p.push(n),n}function Tr(e){return H(e)||w(22,e),function t(r){if(!U(r))return r;var n,o=r[S],u=L(r);if(o){if(!o.P&&(o.i<4||!D("ES5").K(o)))return o.t;o.I=!0,n=ot(r,u),o.I=!1}else n=ot(r,u);return G(n,function(s,i){o&&Dr(o.t,s)===i||pt(n,s,t(i))}),u===3?new Set(n):n}(e)}function ot(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return ke(e)}var ut,J,_e=typeof Symbol!="undefined"&&typeof Symbol("x")=="symbol",jr=typeof Map!="undefined",kr=typeof Set!="undefined",st=typeof Proxy!="undefined"&&Proxy.revocable!==void 0&&typeof Reflect!="undefined",yt=_e?Symbol.for("immer-nothing"):((ut={})["immer-nothing"]=!0,ut),it=_e?Symbol.for("immer-draftable"):"__$immer_draftable",S=_e?Symbol.for("immer-state"):"__$immer_state",Rr=""+Object.prototype.constructor,Ue=typeof Reflect!="undefined"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Mr=Object.getOwnPropertyDescriptors||function(e){var t={};return Ue(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)}),t},_r={},we={get:function(e,t){if(t===S)return e;var r=M(e);if(!ge(r,t))return function(o,u,s){var i,a=nt(u,s);return a?"value"in a?a.value:(i=a.get)===null||i===void 0?void 0:i.call(o.k):void 0}(e,r,t);var n=r[t];return e.I||!U(n)?n:n===pe(e.t,t)?(ye(e),e.o[t]=Pe(e.A.h,n,e)):n},has:function(e,t){return t in M(e)},ownKeys:function(e){return Reflect.ownKeys(M(e))},set:function(e,t,r){var n=nt(M(e),t);if(n!=null&&n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=pe(M(e),t),u=o==null?void 0:o[S];if(u&&u.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(Or(r,o)&&(r!==void 0||ge(e.t,t)))return!0;ye(e),Ve(e)}return e.o[t]===r&&typeof r!="number"&&(r!==void 0||t in e.o)||(e.o[t]=r,e.D[t]=!0,!0)},deleteProperty:function(e,t){return pe(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,ye(e),Ve(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=M(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty:function(){w(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){w(12)}},B={};G(we,function(e,t){B[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),B.deleteProperty=function(e,t){return B.set.call(this,e,t,void 0)},B.set=function(e,t,r){return we.set.call(this,e[0],t,r,e[0])};var Ur=function(){function e(r){var n=this;this.g=st,this.F=!0,this.produce=function(o,u,s){if(typeof o=="function"&&typeof u!="function"){var i=u;u=o;var a=n;return function(y){var A=this;y===void 0&&(y=i);for(var T=arguments.length,C=Array(T>1?T-1:0),k=1;k<T;k++)C[k-1]=arguments[k];return a.produce(y,function(ce){var R;return(R=u).call.apply(R,[A,ce].concat(C))})}}var l;if(typeof u!="function"&&w(6),s!==void 0&&typeof s!="function"&&w(7),U(o)){var c=tt(n),v=Pe(n,o,void 0),h=!0;try{l=u(v),h=!1}finally{h?se(c):Se(c)}return typeof Promise!="undefined"&&l instanceof Promise?l.then(function(y){return ve(c,s),he(y,c)},function(y){throw se(c),y}):(ve(c,s),he(l,c))}if(!o||typeof o!="object"){if((l=u(o))===void 0&&(l=o),l===yt&&(l=void 0),n.F&&Re(l,!0),s){var f=[],F=[];D("Patches").M(o,l,f,F),s(f,F)}return l}w(21,o)},this.produceWithPatches=function(o,u){if(typeof o=="function")return function(l){for(var c=arguments.length,v=Array(c>1?c-1:0),h=1;h<c;h++)v[h-1]=arguments[h];return n.produceWithPatches(l,function(f){return o.apply(void 0,[f].concat(v))})};var s,i,a=n.produce(o,u,function(l,c){s=l,i=c});return typeof Promise!="undefined"&&a instanceof Promise?a.then(function(l){return[l,s,i]}):[a,s,i]},typeof(r==null?void 0:r.useProxies)=="boolean"&&this.setUseProxies(r.useProxies),typeof(r==null?void 0:r.autoFreeze)=="boolean"&&this.setAutoFreeze(r.autoFreeze)}var t=e.prototype;return t.createDraft=function(r){U(r)||w(8),H(r)&&(r=Tr(r));var n=tt(this),o=Pe(this,r,void 0);return o[S].C=!0,Se(n),o},t.finishDraft=function(r,n){var o=r&&r[S],u=o.A;return ve(u,n),he(void 0,u)},t.setAutoFreeze=function(r){this.F=r},t.setUseProxies=function(r){r&&!st&&w(20),this.g=r},t.applyPatches=function(r,n){var o;for(o=n.length-1;o>=0;o--){var u=n[o];if(u.path.length===0&&u.op==="replace"){r=u.value;break}}o>-1&&(n=n.slice(o+1));var s=D("Patches").$;return H(r)?s(r,n):this.produce(r,function(i){return s(i,n)})},e}(),V=new Ur,$r=V.produce;V.produceWithPatches.bind(V);V.setAutoFreeze.bind(V);V.setUseProxies.bind(V);V.applyPatches.bind(V);V.createDraft.bind(V);V.finishDraft.bind(V);const xr=e=>(t,r,n)=>(n.setState=(o,u,...s)=>{const i=typeof o=="function"?$r(o):o;return t(i,u,...s)},e(n.setState,r,n)),Hr=xr,Lr=(e,t)=>{if(typeof Object.getPrototypeOf(e).requestSubmit=="function"){e.requestSubmit(t);return}if(t){zr(e,t),t.click();return}const r=document.createElement("input");r.type="submit",r.hidden=!0,e.appendChild(r),r.click(),e.removeChild(r)};function zr(e,t){t instanceof HTMLElement||Fe(TypeError,"parameter 1 is not of type 'HTMLElement'"),"type"in t&&t.type==="submit"||Fe(TypeError,"The specified element is not a submit button"),"form"in t&&t.form===e||Fe(DOMException,"The specified element is not owned by this form element","NotFoundError")}function Fe(e,t,r){throw new e("Failed to execute 'requestSubmit' on 'HTMLFormElement': "+t+".",r)}const E=(e,t)=>{const r=_(e,t);if(r==null){const n=[];return $(e,t,n),n}return j(Array.isArray(r),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`),r},te=(e,t,r)=>{const n=e[t],o=e[r],u=t in e,s=r in e;u?e[r]=n:delete e[r],s?e[t]=o:delete e[t]};function X(e,t,r,n){return e.length<t&&n&&(e.length=t),arguments.length===4?e.splice(t,r,n):e.splice(t,r)}const re=(e,t,r)=>{const[n]=X(e,t,1);X(e,r,0,n)},ne=(e,t,r)=>{X(e,t,0,r)},oe=(e,t)=>{X(e,t,1)},ue=(e,t,r)=>{X(e,t,1,r)},g=(e,t,r)=>{const n=new Set,o=[];for(const[s,i]of Object.entries(t))s.startsWith(e)&&s!==e&&(n.add(s),$(o,s.substring(e.length),i));r(o);for(const s of n)delete t[s];const u=Ie(o);for(const s of u){const i=_(o,s);t[`${e}${s}`]=i}},Ie=(e,t="")=>Array.isArray(e)?e.flatMap((r,n)=>Ie(r,`${t}[${n}]`)):typeof e=="object"?Object.keys(e).flatMap(r=>Ie(e[r],`${t}.${r}`)):[t],b=()=>{},Br={isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,isValid:()=>!0,startSubmit:b,endSubmit:b,setTouched:b,setFieldError:b,setFieldErrors:b,clearFieldError:b,currentDefaultValues:{},reset:()=>b,syncFormProps:b,setFormElement:b,validateField:async()=>null,validate:async()=>{throw new Error("Validate called before form was initialized.")},submit:async()=>{throw new Error("Submit called before form was initialized.")},resetFormElement:b,getValues:()=>new FormData,controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:b,unregister:b,setValue:b,getValue:b,kickoffValueUpdate:b,awaitValueUpdate:async()=>{throw new Error("AwaitValueUpdate called before form was initialized.")},array:{push:b,swap:b,move:b,insert:b,unshift:b,remove:b,pop:b,replace:b}}},qr=(e,t)=>({isHydrated:!1,isSubmitting:!1,hasBeenSubmitted:!1,touchedFields:{},fieldErrors:{},formElement:null,currentDefaultValues:{},isValid:()=>Object.keys(t().fieldErrors).length===0,startSubmit:()=>e(r=>{r.isSubmitting=!0,r.hasBeenSubmitted=!0}),endSubmit:()=>e(r=>{r.isSubmitting=!1}),setTouched:(r,n)=>e(o=>{o.touchedFields[r]=n}),setFieldError:(r,n)=>e(o=>{o.fieldErrors[r]=n}),setFieldErrors:r=>e(n=>{n.fieldErrors=r}),clearFieldError:r=>e(n=>{delete n.fieldErrors[r]}),reset:()=>e(r=>{var o,u;r.fieldErrors={},r.touchedFields={},r.hasBeenSubmitted=!1;const n=(u=(o=r.formProps)==null?void 0:o.defaultValues)!=null?u:{};r.controlledFields.values=n,r.currentDefaultValues=n}),syncFormProps:r=>e(n=>{n.isHydrated||(n.controlledFields.values=r.defaultValues,n.currentDefaultValues=r.defaultValues),n.formProps=r,n.isHydrated=!0}),setFormElement:r=>{t().formElement!==r&&e(n=>{n.formElement=r})},validateField:async r=>{var s,i,a;const n=t().formElement;j(n,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const o=(s=t().formProps)==null?void 0:s.validator;j(o,"Cannot validator. This is probably a bug in remix-validated-form."),await((a=(i=t().controlledFields).awaitValueUpdate)==null?void 0:a.call(i,r));const{error:u}=await o.validateField(new FormData(n),r);return u?(t().setFieldError(r,u),u):(t().clearFieldError(r),null)},validate:async()=>{var u;const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form.");const n=(u=t().formProps)==null?void 0:u.validator;j(n,"Cannot validator. This is probably a bug in remix-validated-form.");const o=await n.validate(new FormData(r));return o.error&&t().setFieldErrors(o.error.fieldErrors),o},submit:()=>{const r=t().formElement;j(r,"Cannot find reference to form. This is probably a bug in remix-validated-form."),Lr(r)},getValues:()=>{var r;return new FormData((r=t().formElement)!=null?r:void 0)},resetFormElement:()=>{var r;return(r=t().formElement)==null?void 0:r.reset()},controlledFields:{values:{},refCounts:{},valueUpdatePromises:{},valueUpdateResolvers:{},register:r=>{e(n=>{var u;const o=(u=n.controlledFields.refCounts[r])!=null?u:0;n.controlledFields.refCounts[r]=o+1})},unregister:r=>{t()===null||t()===void 0||e(n=>{var s,i,a;const o=(s=n.controlledFields.refCounts[r])!=null?s:0;if(o>1){n.controlledFields.refCounts[r]=o-1;return}Object.keys(n.controlledFields.refCounts).some(l=>r.startsWith(l)&&l!==r)||($(n.controlledFields.values,r,_((i=n.formProps)==null?void 0:i.defaultValues,r)),$(n.currentDefaultValues,r,_((a=n.formProps)==null?void 0:a.defaultValues,r))),delete n.controlledFields.refCounts[r]})},getValue:r=>_(t().controlledFields.values,r),setValue:(r,n)=>{e(o=>{$(o.controlledFields.values,r,n)}),t().controlledFields.kickoffValueUpdate(r)},kickoffValueUpdate:r=>{const n=()=>e(o=>{delete o.controlledFields.valueUpdateResolvers[r],delete o.controlledFields.valueUpdatePromises[r]});e(o=>{const u=new Promise(s=>{o.controlledFields.valueUpdateResolvers[r]=s}).then(n);o.controlledFields.valueUpdatePromises[r]=u})},awaitValueUpdate:async r=>{await t().controlledFields.valueUpdatePromises[r]},array:{push:(r,n)=>{e(o=>{E(o.controlledFields.values,r).push(n),E(o.currentDefaultValues,r).push(n)}),t().controlledFields.kickoffValueUpdate(r)},swap:(r,n,o)=>{e(u=>{te(E(u.controlledFields.values,r),n,o),te(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>te(s,n,o)),g(r,u.fieldErrors,s=>te(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},move:(r,n,o)=>{e(u=>{re(E(u.controlledFields.values,r),n,o),re(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>re(s,n,o)),g(r,u.fieldErrors,s=>re(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)},insert:(r,n,o)=>{e(u=>{ne(E(u.controlledFields.values,r),n,o),ne(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>ne(s,n,!1)),g(r,u.fieldErrors,s=>ne(s,n,void 0))}),t().controlledFields.kickoffValueUpdate(r)},remove:(r,n)=>{e(o=>{oe(E(o.controlledFields.values,r),n),oe(E(o.currentDefaultValues,r),n),g(r,o.touchedFields,u=>oe(u,n)),g(r,o.fieldErrors,u=>oe(u,n))}),t().controlledFields.kickoffValueUpdate(r)},pop:r=>{e(n=>{E(n.controlledFields.values,r).pop(),E(n.currentDefaultValues,r).pop(),g(r,n.touchedFields,o=>o.pop()),g(r,n.fieldErrors,o=>o.pop())}),t().controlledFields.kickoffValueUpdate(r)},unshift:(r,n)=>{e(o=>{E(o.controlledFields.values,r).unshift(n),E(o.currentDefaultValues,r).unshift(n),g(r,o.touchedFields,u=>u.unshift(!1)),g(r,o.fieldErrors,u=>u.unshift(void 0))})},replace:(r,n,o)=>{e(u=>{ue(E(u.controlledFields.values,r),n,o),ue(E(u.currentDefaultValues,r),n,o),g(r,u.touchedFields,s=>ue(s,n,o)),g(r,u.fieldErrors,s=>ue(s,n,o))}),t().controlledFields.kickoffValueUpdate(r)}}}}),De=Ir()(Hr((e,t)=>({forms:{},form:r=>{var n;return(n=t().forms[r])!=null?n:Br},cleanupForm:r=>{e(n=>{delete n.forms[r]})},registerForm:r=>{t().forms[r]||e(n=>{n.forms[r]=qr(o=>e(u=>o(u.forms[r])),()=>t().forms[r])})}}))),d=(e,t)=>De(r=>t(r.form(e))),O=(e,t)=>{const r=p.useContext(ft);if(e)return{formId:e};if(r)return r;throw new Error(`Unable to determine form for ${t}. Please use it inside a ValidatedForm or pass a 'formId'.`)};function $e({fetcher:e,subaction:t,formId:r}){var o;const n=K.useActionData();return e?(o=e.data)!=null&&o.fieldErrors?e.data:null:n!=null&&n.fieldErrors?typeof r=="string"&&n.formId?n.formId===r?n:null:!t&&!n.subaction||n.subaction===t?n:null:null}const Ft=e=>{const t=$e(e),r=d(e.formId,n=>n.isHydrated);return z.from(t==null?void 0:t.fieldErrors,r)},bt=({formId:e})=>{const t=K.useMatches();if(typeof e=="string"){const r=ct(e),n=t.reverse().find(o=>o.data&&r in o.data);return n==null?void 0:n.data[r]}return null},Et=e=>{const{formId:t,defaultValuesProp:r}=e,n=d(t,s=>s.isHydrated),o=$e(e),u=bt(e);return n?z.hydratedData():o!=null&&o.repopulateFields?(j(typeof o.repopulateFields=="object","repopulateFields returned something other than an object"),z.serverData(o.repopulateFields)):r?z.serverData(r):z.serverData(u)},Kr=({fetcher:e})=>{const t=K.useTransition();return e?e.state==="submitting":!!t.submission},Wr=(e,{formId:t})=>{const r=d(t,u=>u.touchedFields[e]),n=d(t,u=>u.setTouched),o=p.useCallback(u=>n(e,u),[e,n]);return[r,o]},gt=(e,t)=>{const r=Ft(t),n=d(t.formId,o=>o.fieldErrors[e]);return r.map(o=>o==null?void 0:o[e]).hydrateTo(n)},St=e=>{const{formId:t}=e;return d(t,r=>r.clearFieldError)},Gr=(e,t)=>d(e,r=>_(r.currentDefaultValues,t)),xe=(e,t)=>{const r=Et(t),n=Gr(t.formId,e);return r.map(o=>_(o,e)).hydrateTo(n)},Vt=e=>d(e,t=>t.isSubmitting),Pt=e=>d(e,t=>t.isValid()),He=e=>d(e,t=>t.hasBeenSubmitted),Le=e=>d(e,t=>t.validateField),Jr=e=>d(e,t=>t.validate),Xr=()=>()=>{},wt=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.registerReceiveFocus)!=null?n:Xr}),Qr={},Zr=e=>d(e,t=>{var r,n;return(n=(r=t.formProps)==null?void 0:r.defaultValues)!=null?n:Qr}),Yr=({formId:e})=>d(e,t=>t.setTouched),Nr=e=>d(e,t=>t.touchedFields),en=e=>d(e,t=>t.fieldErrors),It=e=>d(e,t=>t.setFieldErrors),tn=e=>d(e,t=>t.resetFormElement),rn=e=>d(e,t=>t.submit),nn=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.action}),on=e=>d(e,t=>{var r;return(r=t.formProps)==null?void 0:r.subaction}),un=e=>d(e,t=>t.getValues),sn=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.getValue(t)),n=d(e.formId,u=>u.isHydrated),o=xe(t,e);return n?r:o},Dt=(e,t)=>{const r=d(e.formId,u=>u.controlledFields.valueUpdateResolvers[t]);p.useEffect(()=>{r==null||r()},[r]);const n=d(e.formId,u=>u.controlledFields.register),o=d(e.formId,u=>u.controlledFields.unregister);p.useEffect(()=>(n(t),()=>o(t)),[e.formId,t,n,o])},ln=(e,t)=>{Dt(e,t);const r=d(e.formId,u=>u.controlledFields.setValue),n=p.useCallback(u=>r(t,u),[t,r]);return[sn(e,t),n]},an=e=>{const t=d(e,r=>r.controlledFields.setValue);return p.useCallback((r,n)=>t(r,n),[t])},Ot=e=>{const t=O(e,"useIsSubmitting");return Vt(t.formId)},Ct=e=>{const t=O(e,"useIsValid");return Pt(t.formId)},cn=(e,t)=>{const{formId:r,handleReceiveFocus:n}=t!=null?t:{},o=O(r,"useField"),u=xe(e,o),[s,i]=Wr(e,o),a=gt(e,o),l=St(o),c=He(o.formId),v=Le(o.formId),h=wt(o.formId);return p.useEffect(()=>{if(n)return h(e,n)},[n,e,h]),p.useMemo(()=>{const F={error:a,clearError:()=>l(e),validate:()=>{v(e)},defaultValue:u,touched:s,setTouched:i},y=tr({...F,name:e,hasBeenSubmitted:c,validationBehavior:t==null?void 0:t.validationBehavior});return{...F,getInputProps:y}},[a,l,u,s,i,e,c,t==null?void 0:t.validationBehavior,v])},fn=(e,t)=>{const r=O(t,"useControlField"),[n,o]=ln(r,e);return[n,o]},dn=e=>{const t=O(e,"useControlField");return an(t.formId)};/**
18
18
  * @remix-run/server-runtime v1.6.5
19
19
  *
20
20
  * Copyright (c) Remix Software Inc.
@@ -23,5 +23,5 @@
23
23
  * LICENSE.md file in the root directory of this source tree.
24
24
  *
25
25
  * @license MIT
26
- */const pn=(e,t={})=>{let r=typeof t=="number"?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),{...r,headers:n})};function yn(e,t,r){return pn({fieldErrors:e.fieldErrors,subaction:e.subaction,repopulateFields:t,formId:e.formId},{status:422,...r})}const Fn=(e,t)=>({[ft(e)]:t});class Tt{constructor(){this.dict=new Map,this.add=(t,r)=>{this.dict.has(t)?this.dict.get(t).push(r):this.dict.set(t,[r])},this.delete=t=>{this.dict.delete(t)},this.remove=(t,r)=>{if(!this.dict.has(t))return;const n=this.dict.get(t),o=n.indexOf(r);o!==-1&&n.splice(o,1),n.length===0&&this.dict.delete(t)},this.getAll=t=>{var r;return(r=this.dict.get(t))!=null?r:[]},this.entries=()=>this.dict.entries(),this.values=()=>this.dict.values(),this.has=t=>this.dict.has(t)}}const bn=()=>{const e=p.useRef(null);return p.useCallback(()=>(e.current||(e.current=new Tt),e.current),[])};function jt(e,t){const r=p.useRef(!1);p.useEffect(()=>{e&&(r.current=!0),!e&&r.current&&(r.current=!1,t())})}const gn=e=>t=>{e.filter(Boolean).forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})},ge=typeof window!="undefined"?p.useLayoutEffect:p.useEffect,En=e=>{const t=p.useRef(e),r=t.current===e||Ee(t.current,e);return p.useEffect(()=>{r||(t.current=e)}),r?t.current:e},Sn=e=>new FormData(e);function Vn(e){return e!==null}const Pn=(e,t,r)=>{var u;const n=[...r.elements].map(s=>{const i=s instanceof RadioNodeList?s[0]:s;return i instanceof HTMLElement&&"name"in i?i.name:null}).filter(Vn).filter(s=>s in e),o=G(n);for(const s of o){if(t.has(s)){t.getAll(s).forEach(a=>{a()});break}const i=r.elements.namedItem(s);if(!!i){if(i instanceof RadioNodeList){const a=(u=[...i].filter(l=>l instanceof HTMLInputElement).find(l=>l.value===i.value))!=null?u:i[0];if(a&&a instanceof HTMLInputElement){a.focus();break}}if(i instanceof HTMLElement){if(i instanceof HTMLInputElement&&i.type==="hidden")continue;i.focus();break}}}},wn=e=>{const[t]=p.useState(()=>Symbol("remix-validated-form-id"));return e!=null?e:t},In=({resetAfterSubmit:e,formRef:t})=>{const r=Ct(),n=At();return jt(r,()=>{var o;n&&e&&((o=t.current)==null||o.reset())}),null};function Dn(e){let t=!1;return new Proxy(e,{get:(r,n)=>n==="preventDefault"?()=>{t=!0}:n==="defaultPrevented"?t:r[n]})}function On({validator:e,onSubmit:t,children:r,fetcher:n,action:o,defaultValues:u,formRef:s,onReset:i,subaction:a,resetAfterSubmit:l=!1,disableFocusOnError:c,method:v,replace:h,id:f,...F}){var Je;const y=wn(f),A=En(u),T=p.useMemo(()=>({formId:y,action:o,subaction:a,defaultValuesProp:A,fetcher:n}),[o,n,y,A,a]),C=xe(T),k=gt(T),fe=Jr(T),_=p.useRef(null),_t=(Je=n==null?void 0:n.Form)!=null?Je:W.Form,Rt=W.useSubmit(),Z=Dt(y),Mt=d(y,m=>m.setFieldError),Ut=d(y,m=>m.reset),$t=d(y,m=>m.startSubmit),de=d(y,m=>m.endSubmit),Be=d(y,m=>m.syncFormProps),qe=d(y,m=>m.setFormElement),Ke=Oe(m=>m.cleanupForm),We=Oe(m=>m.registerForm),Y=bn(),Ge=p.useCallback((m,N)=>(Y().add(m,N),()=>{Y().remove(m,N)}),[Y]);ge(()=>(We(y),()=>Ke(y)),[Ke,y,We]),ge(()=>{var m;Be({action:o,defaultValues:(m=A!=null?A:k)!=null?m:{},subaction:a,registerReceiveFocus:Ge,validator:e})},[o,A,Ge,a,Be,k,e]),ge(()=>{qe(_.current)},[qe]),p.useEffect(()=>{var m;Z((m=C==null?void 0:C.fieldErrors)!=null?m:{})},[C==null?void 0:C.fieldErrors,Z,Mt]),jt(fe,()=>{de()});const xt=async(m,N,Ht)=>{$t();const I=Ht.submitter,Xe=Sn(m.currentTarget);I!=null&&I.name&&Xe.append(I.name,I.value);const ee=await e.validate(Xe);if(ee.error)Z(ee.error.fieldErrors),de(),c||Pn(ee.error.fieldErrors,Y(),_.current);else{Z({});const Qe=Dn(m);if(await(t==null?void 0:t(ee.data,Qe)),Qe.defaultPrevented){de();return}n?n.submit(I||m.currentTarget):Rt(I||N,{replace:h,method:(I==null?void 0:I.formMethod)||v})}};return P.default.createElement(_t,{ref:gn([_,s]),...F,id:f,action:o,method:v,replace:h,onSubmit:m=>{m.preventDefault(),xt(m,m.currentTarget,m.nativeEvent)},onReset:m=>{i==null||i(m),!m.defaultPrevented&&Ut()}},P.default.createElement(dt.Provider,{value:T},P.default.createElement(P.default.Fragment,null,P.default.createElement(In,{formRef:_,resetAfterSubmit:l}),a&&P.default.createElement("input",{type:"hidden",value:a,name:"subaction"}),f&&P.default.createElement("input",{type:"hidden",value:f,name:K}),r)))}const at=e=>{const t=new Tt;return e.forEach(([r,n])=>t.add(r,n)),[...t.entries()].reduce((r,[n,o])=>Yt(r,n,o.length===1?o[0]:o),{})},ct=e=>"entries"in e&&typeof e.entries=="function"?at([...e.entries()]):at(Object.entries(e)),Cn=e=>Wt(e,[K]);function An(e){return{validate:async t=>{const r=ct(t),n=await e.validate(Cn(r));return n.error?{data:void 0,error:{fieldErrors:n.error,subaction:r.subaction,formId:r[K]},submittedData:r,formId:r[K]}:{data:n.data,error:void 0,submittedData:r,formId:r[K]}},validateField:(t,r)=>e.validateField(ct(t),r)}}const Tn=e=>{const t=O(e,"useFormState"),r=Pt(t.formId),n=Le(t.formId),o=rn(t.formId),u=wt(t.formId),s=sn(t.formId),i=ln(t.formId),a=en(t.formId),c=Et(t).hydrateTo(a),v=nn(t.formId),f=bt(t).hydrateTo(v);return p.useMemo(()=>({action:s,subaction:i,defaultValues:c,fieldErrors:f!=null?f:{},hasBeenSubmitted:n,isSubmitting:r,touchedFields:o,isValid:u}),[s,n,c,f,r,u,i,o])},jn=e=>{const t=O(e,"useFormHelpers"),r=tn(t),n=ze(t.formId),o=Zr(t.formId),u=Vt(t),s=Dt(t.formId),i=on(t.formId),a=un(t.formId),l=an(t.formId);return p.useMemo(()=>({setTouched:r,validateField:n,clearError:u,validate:o,clearAllErrors:()=>s({}),reset:i,submit:a,getValues:l}),[u,i,s,r,a,o,n,l])},kn=e=>{const t=O(e,"useFormContext"),r=Tn(e),{clearError:n,setTouched:o,validateField:u,clearAllErrors:s,validate:i,reset:a,submit:l,getValues:c}=jn(e),v=It(t.formId),h=p.useCallback((...f)=>{f.forEach(F=>{n(F)})},[n]);return p.useMemo(()=>({...r,setFieldTouched:o,validateField:u,clearError:h,registerReceiveFocus:v,clearAllErrors:s,validate:i,reset:a,submit:l,getValues:c}),[s,h,v,a,o,r,l,i,u,c])},kt=(e,t,r)=>{const n=He(t,e);Ot(e,t);const o=Le(e.formId),u=ze(e.formId),s=St(t,e),i={initial:"onSubmit",whenSubmitted:"onChange",...r},a=o?i.whenSubmitted:i.initial,l=p.useCallback(()=>{a==="onChange"&&u(t)},[a,t,u]);j(n==null||Array.isArray(n),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`);const c=d(e.formId,f=>f.controlledFields.array),v=p.useMemo(()=>({push:f=>{c.push(t,f),l()},swap:(f,F)=>{c.swap(t,f,F),l()},move:(f,F)=>{c.move(t,f,F),l()},insert:(f,F)=>{c.insert(t,f,F),l()},unshift:f=>{c.unshift(t,f),l()},remove:f=>{c.remove(t,f),l()},pop:()=>{c.pop(t),l()},replace:(f,F)=>{c.replace(t,f,F),l()}}),[c,t,l]);return[p.useMemo(()=>n!=null?n:[],[n]),v,s]};function _n(e,{formId:t,validationBehavior:r}={}){const n=O(t,"FieldArray");return kt(n,e,r)}const Rn=({name:e,children:t,formId:r,validationBehavior:n})=>{const o=O(r,"FieldArray"),[u,s,i]=kt(o,e,n);return P.default.createElement(P.default.Fragment,null,t(u,s,i))};exports.FieldArray=Rn;exports.ValidatedForm=On;exports.createValidator=An;exports.setFormDefaults=Fn;exports.useControlField=vn;exports.useField=mn;exports.useFieldArray=_n;exports.useFormContext=kn;exports.useIsSubmitting=Ct;exports.useIsValid=At;exports.useUpdateControlledField=hn;exports.validationError=yn;
26
+ */const mn=(e,t={})=>{let r=typeof t=="number"?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),{...r,headers:n})};function vn(e,t,r){return mn({fieldErrors:e.fieldErrors,subaction:e.subaction,repopulateFields:t,formId:e.formId},{status:422,...r})}const hn=(e,t)=>({[ct(e)]:t});class At{constructor(){this.dict=new Map,this.add=(t,r)=>{this.dict.has(t)?this.dict.get(t).push(r):this.dict.set(t,[r])},this.delete=t=>{this.dict.delete(t)},this.remove=(t,r)=>{if(!this.dict.has(t))return;const n=this.dict.get(t),o=n.indexOf(r);o!==-1&&n.splice(o,1),n.length===0&&this.dict.delete(t)},this.getAll=t=>{var r;return(r=this.dict.get(t))!=null?r:[]},this.entries=()=>this.dict.entries(),this.values=()=>this.dict.values(),this.has=t=>this.dict.has(t)}}const pn=()=>{const e=p.useRef(null);return p.useCallback(()=>(e.current||(e.current=new At),e.current),[])};function Tt(e,t){const r=p.useRef(!1);p.useEffect(()=>{e&&(r.current=!0),!e&&r.current&&(r.current=!1,t())})}const yn=e=>t=>{e.filter(Boolean).forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})},be=typeof window!="undefined"?p.useLayoutEffect:p.useEffect,Fn=e=>{const t=p.useRef(e),r=t.current===e||Ee(t.current,e);return p.useEffect(()=>{r||(t.current=e)}),r?t.current:e},bn=e=>new FormData(e);function En(e){return e!==null}const gn=(e,t,r)=>{var u;const n=[...r.elements].map(s=>{const i=s instanceof RadioNodeList?s[0]:s;return i instanceof HTMLElement&&"name"in i?i.name:null}).filter(En).filter(s=>s in e),o=W(n);for(const s of o){if(t.has(s)){t.getAll(s).forEach(a=>{a()});break}const i=r.elements.namedItem(s);if(!!i){if(i instanceof RadioNodeList){const a=(u=[...i].filter(l=>l instanceof HTMLInputElement).find(l=>l.value===i.value))!=null?u:i[0];if(a&&a instanceof HTMLInputElement){a.focus();break}}if(i instanceof HTMLElement){if(i instanceof HTMLInputElement&&i.type==="hidden")continue;i.focus();break}}}},Sn=e=>{const[t]=p.useState(()=>Symbol("remix-validated-form-id"));return e!=null?e:t},Vn=({resetAfterSubmit:e,formRef:t})=>{const r=Ot(),n=Ct();return Tt(r,()=>{var o;n&&e&&((o=t.current)==null||o.reset())}),null};function Pn(e){let t=!1;return new Proxy(e,{get:(r,n)=>n==="preventDefault"?()=>{t=!0}:n==="defaultPrevented"?t:r[n]})}function wn({validator:e,onSubmit:t,children:r,fetcher:n,action:o,defaultValues:u,formRef:s,onReset:i,subaction:a,resetAfterSubmit:l=!1,disableFocusOnError:c,method:v,replace:h,id:f,...F}){var Ge;const y=Sn(f),A=Fn(u),T=p.useMemo(()=>({formId:y,action:o,subaction:a,defaultValuesProp:A,fetcher:n}),[o,n,y,A,a]),C=$e(T),k=bt(T),ce=Kr(T),R=p.useRef(null),kt=(Ge=n==null?void 0:n.Form)!=null?Ge:K.Form,Rt=K.useSubmit(),Z=It(y),Mt=d(y,m=>m.setFieldError),_t=d(y,m=>m.reset),Ut=d(y,m=>m.startSubmit),fe=d(y,m=>m.endSubmit),ze=d(y,m=>m.syncFormProps),Be=d(y,m=>m.setFormElement),qe=De(m=>m.cleanupForm),Ke=De(m=>m.registerForm),Y=pn(),We=p.useCallback((m,N)=>(Y().add(m,N),()=>{Y().remove(m,N)}),[Y]);be(()=>(Ke(y),()=>qe(y)),[qe,y,Ke]),be(()=>{var m;ze({action:o,defaultValues:(m=A!=null?A:k)!=null?m:{},subaction:a,registerReceiveFocus:We,validator:e})},[o,A,We,a,ze,k,e]),be(()=>{Be(R.current)},[Be]),p.useEffect(()=>{var m;Z((m=C==null?void 0:C.fieldErrors)!=null?m:{})},[C==null?void 0:C.fieldErrors,Z,Mt]),Tt(ce,()=>{fe()});const $t=async(m,N,xt)=>{Ut();const I=xt.submitter,Je=bn(m.currentTarget);I!=null&&I.name&&Je.append(I.name,I.value);const ee=await e.validate(Je);if(ee.error)Z(ee.error.fieldErrors),fe(),c||gn(ee.error.fieldErrors,Y(),R.current);else{Z({});const Xe=Pn(m);if(await(t==null?void 0:t(ee.data,Xe)),Xe.defaultPrevented){fe();return}n?n.submit(I||m.currentTarget):Rt(I||N,{replace:h,method:(I==null?void 0:I.formMethod)||v})}};return P.default.createElement(kt,{ref:yn([R,s]),...F,id:f,action:o,method:v,replace:h,onSubmit:m=>{m.preventDefault(),$t(m,m.currentTarget,m.nativeEvent)},onReset:m=>{i==null||i(m),!m.defaultPrevented&&_t()}},P.default.createElement(ft.Provider,{value:T},P.default.createElement(P.default.Fragment,null,P.default.createElement(Vn,{formRef:R,resetAfterSubmit:l}),a&&P.default.createElement("input",{type:"hidden",value:a,name:"subaction"}),f&&P.default.createElement("input",{type:"hidden",value:f,name:q}),r)))}const lt=e=>{const t=new At;return e.forEach(([r,n])=>t.add(r,n)),[...t.entries()].reduce((r,[n,o])=>$(r,n,o.length===1?o[0]:o),{})},at=e=>"entries"in e&&typeof e.entries=="function"?lt([...e.entries()]):lt(Object.entries(e)),In=e=>Kt(e,[q]);function Dn(e){return{validate:async t=>{const r=at(t),n=await e.validate(In(r));return n.error?{data:void 0,error:{fieldErrors:n.error,subaction:r.subaction,formId:r[q]},submittedData:r,formId:r[q]}:{data:n.data,error:void 0,submittedData:r,formId:r[q]}},validateField:(t,r)=>e.validateField(at(t),r)}}const On=e=>{const t=O(e,"useFormState"),r=Vt(t.formId),n=He(t.formId),o=Nr(t.formId),u=Pt(t.formId),s=nn(t.formId),i=on(t.formId),a=Zr(t.formId),c=Et(t).hydrateTo(a),v=en(t.formId),f=Ft(t).hydrateTo(v);return p.useMemo(()=>({action:s,subaction:i,defaultValues:c,fieldErrors:f!=null?f:{},hasBeenSubmitted:n,isSubmitting:r,touchedFields:o,isValid:u}),[s,n,c,f,r,u,i,o])},Cn=e=>{const t=O(e,"useFormHelpers"),r=Yr(t),n=Le(t.formId),o=Jr(t.formId),u=St(t),s=It(t.formId),i=tn(t.formId),a=rn(t.formId),l=un(t.formId);return p.useMemo(()=>({setTouched:r,validateField:n,clearError:u,validate:o,clearAllErrors:()=>s({}),reset:i,submit:a,getValues:l}),[u,i,s,r,a,o,n,l])},An=e=>{const t=O(e,"useFormContext"),r=On(e),{clearError:n,setTouched:o,validateField:u,clearAllErrors:s,validate:i,reset:a,submit:l,getValues:c}=Cn(e),v=wt(t.formId),h=p.useCallback((...f)=>{f.forEach(F=>{n(F)})},[n]);return p.useMemo(()=>({...r,setFieldTouched:o,validateField:u,clearError:h,registerReceiveFocus:v,clearAllErrors:s,validate:i,reset:a,submit:l,getValues:c}),[s,h,v,a,o,r,l,i,u,c])},jt=(e,t,r)=>{const n=xe(t,e);Dt(e,t);const o=He(e.formId),u=Le(e.formId),s=gt(t,e),i={initial:"onSubmit",whenSubmitted:"onChange",...r},a=o?i.whenSubmitted:i.initial,l=p.useCallback(()=>{a==="onChange"&&u(t)},[a,t,u]);j(n==null||Array.isArray(n),`FieldArray: defaultValue value for ${t} must be an array, null, or undefined`);const c=d(e.formId,f=>f.controlledFields.array),v=p.useMemo(()=>({push:f=>{c.push(t,f),l()},swap:(f,F)=>{c.swap(t,f,F),l()},move:(f,F)=>{c.move(t,f,F),l()},insert:(f,F)=>{c.insert(t,f,F),l()},unshift:f=>{c.unshift(t,f),l()},remove:f=>{c.remove(t,f),l()},pop:()=>{c.pop(t),l()},replace:(f,F)=>{c.replace(t,f,F),l()}}),[c,t,l]);return[p.useMemo(()=>n!=null?n:[],[n]),v,s]};function Tn(e,{formId:t,validationBehavior:r}={}){const n=O(t,"FieldArray");return jt(n,e,r)}const jn=({name:e,children:t,formId:r,validationBehavior:n})=>{const o=O(r,"FieldArray"),[u,s,i]=jt(o,e,n);return P.default.createElement(P.default.Fragment,null,t(u,s,i))};exports.FieldArray=jn;exports.ValidatedForm=wn;exports.createValidator=Dn;exports.setFormDefaults=hn;exports.useControlField=fn;exports.useField=cn;exports.useFieldArray=Tn;exports.useFormContext=An;exports.useIsSubmitting=Ot;exports.useIsValid=Ct;exports.useUpdateControlledField=dn;exports.validationError=vn;
27
27
  //# sourceMappingURL=remix-validated-form.cjs.js.map