remix-validated-form 5.1.4 → 5.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/dist/index.cjs.js +4 -1
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.esm.js +4 -1
  5. package/dist/index.esm.js.map +1 -1
  6. package/package.json +1 -4
  7. package/.turbo/turbo-dev.log +0 -0
  8. package/.turbo/turbo-typecheck.log +0 -1
  9. package/browser/ValidatedForm.d.ts +0 -50
  10. package/browser/ValidatedForm.js +0 -210
  11. package/browser/hooks.d.ts +0 -67
  12. package/browser/hooks.js +0 -84
  13. package/browser/index.d.ts +0 -7
  14. package/browser/index.js +0 -7
  15. package/browser/internal/MultiValueMap.d.ts +0 -11
  16. package/browser/internal/MultiValueMap.js +0 -43
  17. package/browser/internal/constants.d.ts +0 -3
  18. package/browser/internal/constants.js +0 -3
  19. package/browser/internal/flatten.d.ts +0 -1
  20. package/browser/internal/flatten.js +0 -7
  21. package/browser/internal/formContext.d.ts +0 -12
  22. package/browser/internal/formContext.js +0 -2
  23. package/browser/internal/getInputProps.d.ts +0 -29
  24. package/browser/internal/getInputProps.js +0 -51
  25. package/browser/internal/hooks.d.ts +0 -35
  26. package/browser/internal/hooks.js +0 -118
  27. package/browser/internal/hydratable.d.ts +0 -14
  28. package/browser/internal/hydratable.js +0 -14
  29. package/browser/internal/logic/getCheckboxChecked.d.ts +0 -1
  30. package/browser/internal/logic/getCheckboxChecked.js +0 -9
  31. package/browser/internal/logic/getRadioChecked.d.ts +0 -1
  32. package/browser/internal/logic/getRadioChecked.js +0 -15
  33. package/browser/internal/logic/nestedObjectToPathObject.d.ts +0 -1
  34. package/browser/internal/logic/nestedObjectToPathObject.js +0 -47
  35. package/browser/internal/logic/requestSubmit.d.ts +0 -5
  36. package/browser/internal/logic/requestSubmit.js +0 -66
  37. package/browser/internal/reset.d.ts +0 -28
  38. package/browser/internal/reset.js +0 -13
  39. package/browser/internal/state/arrayUtil.d.ts +0 -12
  40. package/browser/internal/state/arrayUtil.js +0 -350
  41. package/browser/internal/state/atomUtils.d.ts +0 -38
  42. package/browser/internal/state/atomUtils.js +0 -5
  43. package/browser/internal/state/cleanup.d.ts +0 -2
  44. package/browser/internal/state/cleanup.js +0 -6
  45. package/browser/internal/state/controlledFieldStore.d.ts +0 -26
  46. package/browser/internal/state/controlledFieldStore.js +0 -70
  47. package/browser/internal/state/controlledFields.d.ts +0 -7
  48. package/browser/internal/state/controlledFields.js +0 -36
  49. package/browser/internal/state/createFormStore.d.ts +0 -79
  50. package/browser/internal/state/createFormStore.js +0 -306
  51. package/browser/internal/state/fieldArray.d.ts +0 -28
  52. package/browser/internal/state/fieldArray.js +0 -74
  53. package/browser/internal/state/storeFamily.d.ts +0 -9
  54. package/browser/internal/state/storeFamily.js +0 -18
  55. package/browser/internal/state/storeHooks.d.ts +0 -3
  56. package/browser/internal/state/storeHooks.js +0 -4
  57. package/browser/internal/state/types.d.ts +0 -1
  58. package/browser/internal/state/types.js +0 -1
  59. package/browser/internal/state.d.ts +0 -343
  60. package/browser/internal/state.js +0 -64
  61. package/browser/internal/submissionCallbacks.d.ts +0 -1
  62. package/browser/internal/submissionCallbacks.js +0 -13
  63. package/browser/internal/util.d.ts +0 -5
  64. package/browser/internal/util.js +0 -32
  65. package/browser/server.d.ts +0 -21
  66. package/browser/server.js +0 -27
  67. package/browser/unreleased/formStateHooks.d.ts +0 -64
  68. package/browser/unreleased/formStateHooks.js +0 -76
  69. package/browser/userFacingFormContext.d.ts +0 -85
  70. package/browser/userFacingFormContext.js +0 -41
  71. package/browser/validation/createValidator.d.ts +0 -7
  72. package/browser/validation/createValidator.js +0 -43
  73. package/browser/validation/types.d.ts +0 -58
  74. package/browser/validation/types.js +0 -1
  75. package/stats.html +0 -4044
@@ -1,85 +0,0 @@
1
- import { FieldErrors, TouchedFields, ValidationResult } from "./validation/types";
2
- export type FormContextValue = {
3
- /**
4
- * All the errors in all the fields in the form.
5
- */
6
- fieldErrors: FieldErrors;
7
- /**
8
- * Clear the errors of the specified fields.
9
- */
10
- clearError: (...names: string[]) => void;
11
- /**
12
- * Validate the specified field.
13
- */
14
- validateField: (fieldName: string) => Promise<string | null>;
15
- /**
16
- * The `action` prop of the form.
17
- */
18
- action?: string;
19
- /**
20
- * The `subaction` prop of the form.
21
- */
22
- subaction?: string;
23
- /**
24
- * Whether or not the form is submitting.
25
- */
26
- isSubmitting: boolean;
27
- /**
28
- * Whether or not a submission has been attempted.
29
- * This is true once the form has been submitted, even if there were validation errors.
30
- * Resets to false when the form is reset.
31
- */
32
- hasBeenSubmitted: boolean;
33
- /**
34
- * Whether or not the form is valid.
35
- */
36
- isValid: boolean;
37
- /**
38
- * The default values of the form.
39
- */
40
- defaultValues?: {
41
- [fieldName: string]: any;
42
- };
43
- /**
44
- * Register a custom focus handler to be used when
45
- * the field needs to receive focus due to a validation error.
46
- */
47
- registerReceiveFocus: (fieldName: string, handler: () => void) => () => void;
48
- /**
49
- * Any fields that have been touched by the user.
50
- */
51
- touchedFields: TouchedFields;
52
- /**
53
- * Change the touched state of the specified field.
54
- */
55
- setFieldTouched: (fieldName: string, touched: boolean) => void;
56
- /**
57
- * Validate the whole form and populate any errors.
58
- */
59
- validate: () => Promise<ValidationResult<unknown>>;
60
- /**
61
- * Clears all errors on the form.
62
- */
63
- clearAllErrors: () => void;
64
- /**
65
- * Resets the form.
66
- *
67
- * _Note_: The equivalent behavior can be achieved by calling formElement.reset()
68
- * or clicking a button element with `type="reset"`.
69
- */
70
- reset: () => void;
71
- /**
72
- * Submits the form, running all validations first.
73
- *
74
- * _Note_: This is equivalent to clicking a button element with `type="submit"` or calling formElement.submit().
75
- */
76
- submit: () => void;
77
- /**
78
- * Returns the current form values as FormData
79
- */
80
- getValues: () => FormData;
81
- };
82
- /**
83
- * Provides access to some of the internal state of the form.
84
- */
85
- export declare const useFormContext: (formId?: string) => FormContextValue;
@@ -1,41 +0,0 @@
1
- import { useCallback, useMemo } from "react";
2
- import { useInternalFormContext, useRegisterReceiveFocus, } from "./internal/hooks";
3
- import { useFormHelpers, useFormState } from "./unreleased/formStateHooks";
4
- /**
5
- * Provides access to some of the internal state of the form.
6
- */
7
- export const useFormContext = (formId) => {
8
- // Try to access context so we get our error specific to this hook if it's not there
9
- const context = useInternalFormContext(formId, "useFormContext");
10
- const state = useFormState(formId);
11
- const { clearError: internalClearError, setTouched, validateField, clearAllErrors, validate, reset, submit, getValues, } = useFormHelpers(formId);
12
- const registerReceiveFocus = useRegisterReceiveFocus(context.formId);
13
- const clearError = useCallback((...names) => {
14
- names.forEach((name) => {
15
- internalClearError(name);
16
- });
17
- }, [internalClearError]);
18
- return useMemo(() => ({
19
- ...state,
20
- setFieldTouched: setTouched,
21
- validateField,
22
- clearError,
23
- registerReceiveFocus,
24
- clearAllErrors,
25
- validate,
26
- reset,
27
- submit,
28
- getValues,
29
- }), [
30
- clearAllErrors,
31
- clearError,
32
- registerReceiveFocus,
33
- reset,
34
- setTouched,
35
- state,
36
- submit,
37
- validate,
38
- validateField,
39
- getValues,
40
- ]);
41
- };
@@ -1,7 +0,0 @@
1
- import { CreateValidatorArg, Validator } from "..";
2
- /**
3
- * Used to create a validator for a form.
4
- * It provides built-in handling for unflattening nested objects and
5
- * extracting the values from FormData.
6
- */
7
- export declare function createValidator<T>(validator: CreateValidatorArg<T>): Validator<T>;
@@ -1,43 +0,0 @@
1
- import * as R from "remeda";
2
- import { FORM_ID_FIELD } from "../internal/constants";
3
- import { objectFromPathEntries } from "../internal/flatten";
4
- const preprocessFormData = (data) => {
5
- // A slightly janky way of determining if the data is a FormData object
6
- // since node doesn't really have FormData
7
- if ("entries" in data && typeof data.entries === "function")
8
- return objectFromPathEntries([...data.entries()]);
9
- return objectFromPathEntries(Object.entries(data));
10
- };
11
- const omitInternalFields = (data) => R.omit(data, [FORM_ID_FIELD]);
12
- /**
13
- * Used to create a validator for a form.
14
- * It provides built-in handling for unflattening nested objects and
15
- * extracting the values from FormData.
16
- */
17
- export function createValidator(validator) {
18
- return {
19
- validate: async (value) => {
20
- const data = preprocessFormData(value);
21
- const result = await validator.validate(omitInternalFields(data));
22
- if (result.error) {
23
- return {
24
- data: undefined,
25
- error: {
26
- fieldErrors: result.error,
27
- subaction: data.subaction,
28
- formId: data[FORM_ID_FIELD],
29
- },
30
- submittedData: data,
31
- formId: data[FORM_ID_FIELD],
32
- };
33
- }
34
- return {
35
- data: result.data,
36
- error: undefined,
37
- submittedData: data,
38
- formId: data[FORM_ID_FIELD],
39
- };
40
- },
41
- validateField: (data, field) => validator.validateField(preprocessFormData(data), field),
42
- };
43
- }
@@ -1,58 +0,0 @@
1
- export type FieldErrors = Record<string, string>;
2
- export type TouchedFields = Record<string, boolean>;
3
- export type GenericObject = {
4
- [key: string]: any;
5
- };
6
- export type ValidatorError = {
7
- subaction?: string;
8
- formId?: string;
9
- fieldErrors: FieldErrors;
10
- };
11
- export type ValidationErrorResponseData = {
12
- subaction?: string;
13
- formId?: string;
14
- fieldErrors: FieldErrors;
15
- repopulateFields?: unknown;
16
- };
17
- export type BaseResult = {
18
- submittedData: GenericObject;
19
- formId?: string;
20
- };
21
- export type ErrorResult = BaseResult & {
22
- error: ValidatorError;
23
- data: undefined;
24
- };
25
- export type SuccessResult<DataType> = BaseResult & {
26
- data: DataType;
27
- error: undefined;
28
- };
29
- /**
30
- * The result when validating a form.
31
- */
32
- export type ValidationResult<DataType> = SuccessResult<DataType> | ErrorResult;
33
- /**
34
- * The result when validating an individual field in a form.
35
- */
36
- export type ValidateFieldResult = {
37
- error?: string;
38
- };
39
- /**
40
- * A `Validator` can be passed to the `validator` prop of a `ValidatedForm`.
41
- */
42
- export type Validator<DataType> = {
43
- validate: (unvalidatedData: GenericObject) => Promise<ValidationResult<DataType>>;
44
- validateField: (unvalidatedData: GenericObject, field: string) => Promise<ValidateFieldResult>;
45
- };
46
- export type Valid<DataType> = {
47
- data: DataType;
48
- error: undefined;
49
- };
50
- export type Invalid = {
51
- error: FieldErrors;
52
- data: undefined;
53
- };
54
- export type CreateValidatorArg<DataType> = {
55
- validate: (unvalidatedData: GenericObject) => Promise<Valid<DataType> | Invalid>;
56
- validateField: (unvalidatedData: GenericObject, field: string) => Promise<ValidateFieldResult>;
57
- };
58
- export type ValidatorData<T extends Validator<any>> = T extends Validator<infer U> ? U : never;
@@ -1 +0,0 @@
1
- export {};