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

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.
@@ -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