@ultraviolet/form 2.13.2 → 2.13.3

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 (73) hide show
  1. package/dist/components/CheckboxField/index.d.ts +10 -0
  2. package/dist/components/CheckboxField/index.js +40 -41
  3. package/dist/components/CheckboxGroupField/index.d.ts +32 -0
  4. package/dist/components/CheckboxGroupField/index.js +59 -53
  5. package/dist/components/DateField/index.d.ts +16 -0
  6. package/dist/components/DateField/index.js +53 -58
  7. package/dist/components/Form/defaultErrors.d.ts +2 -0
  8. package/dist/components/Form/defaultErrors.js +20 -19
  9. package/dist/components/Form/index.d.ts +69 -0
  10. package/dist/components/Form/index.js +52 -57
  11. package/dist/components/KeyValueField/index.d.ts +33 -0
  12. package/dist/components/KeyValueField/index.js +61 -60
  13. package/dist/components/NumberInputField/index.d.ts +13 -0
  14. package/dist/components/NumberInputField/index.js +39 -45
  15. package/dist/components/NumberInputFieldV2/index.d.ts +11 -0
  16. package/dist/components/NumberInputFieldV2/index.js +45 -51
  17. package/dist/components/RadioField/index.d.ts +12 -0
  18. package/dist/components/RadioField/index.js +36 -42
  19. package/dist/components/RadioGroupField/index.d.ts +28 -0
  20. package/dist/components/RadioGroupField/index.js +31 -32
  21. package/dist/components/SelectInputField/index.d.ts +82 -0
  22. package/dist/components/SelectInputField/index.js +90 -83
  23. package/dist/components/SelectInputFieldV2/index.d.ts +7 -0
  24. package/dist/components/SelectInputFieldV2/index.js +60 -60
  25. package/dist/components/SelectableCardField/index.d.ts +9 -0
  26. package/dist/components/SelectableCardField/index.js +49 -44
  27. package/dist/components/SelectableCardGroupField/index.d.ts +42 -0
  28. package/dist/components/SelectableCardGroupField/index.js +42 -41
  29. package/dist/components/Submit/index.d.ts +17 -0
  30. package/dist/components/Submit/index.js +27 -27
  31. package/dist/components/SubmitErrorAlert/index.d.ts +3 -0
  32. package/dist/components/SubmitErrorAlert/index.js +9 -17
  33. package/dist/components/TagInputField/index.d.ts +6 -0
  34. package/dist/components/TagInputField/index.js +35 -38
  35. package/dist/components/TextAreaField/index.d.ts +11 -0
  36. package/dist/components/TextAreaField/index.js +57 -56
  37. package/dist/components/TextInputField/index.d.ts +18 -0
  38. package/dist/components/TextInputField/index.js +82 -81
  39. package/dist/components/TextInputFieldV2/index.d.ts +12 -0
  40. package/dist/components/TextInputFieldV2/index.js +73 -72
  41. package/dist/components/TimeField/index.d.ts +9 -0
  42. package/dist/components/TimeField/index.js +51 -49
  43. package/dist/components/ToggleField/index.d.ts +10 -0
  44. package/dist/components/ToggleField/index.js +32 -31
  45. package/dist/components/ToggleGroupField/index.d.ts +26 -0
  46. package/dist/components/index.d.ts +22 -0
  47. package/dist/constants.d.ts +1 -0
  48. package/dist/constants.js +4 -3
  49. package/dist/hooks/index.d.ts +5 -0
  50. package/dist/hooks/useField.d.ts +34 -0
  51. package/dist/hooks/useField.js +7 -30
  52. package/dist/hooks/useFieldArray.d.ts +21 -0
  53. package/dist/hooks/useFieldArray.js +9 -22
  54. package/dist/hooks/useForm.d.ts +23 -0
  55. package/dist/hooks/useForm.js +8 -25
  56. package/dist/hooks/useFormState.d.ts +39 -0
  57. package/dist/hooks/useFormState.js +6 -23
  58. package/dist/hooks/useOnFieldChange.d.ts +3 -0
  59. package/dist/hooks/useOnFieldChange.js +10 -11
  60. package/dist/index.d.ts +7 -555
  61. package/dist/index.js +66 -29
  62. package/dist/mocks/index.d.ts +1 -0
  63. package/dist/mocks/mockErrors.d.ts +3 -0
  64. package/dist/providers/ErrorContext/index.d.ts +14 -0
  65. package/dist/providers/ErrorContext/index.js +30 -29
  66. package/dist/providers/index.d.ts +1 -0
  67. package/dist/types.d.ts +32 -0
  68. package/dist/validators/index.d.ts +5 -0
  69. package/dist/validators/maxDate.d.ts +1 -0
  70. package/dist/validators/maxDate.js +4 -3
  71. package/dist/validators/minDate.d.ts +1 -0
  72. package/dist/validators/minDate.js +4 -3
  73. package/package.json +11 -5
package/dist/index.js CHANGED
@@ -1,29 +1,66 @@
1
- export { FORM_ERROR } from './constants.js';
2
- export { ErrorProvider, useErrors } from './providers/ErrorContext/index.js';
3
- export { useController, useFieldArray, useForm, useFormContext, useFormState, useWatch } from 'react-hook-form';
4
- export { useFormStateDeprecated } from './hooks/useFormState.js';
5
- export { useFieldDeprecated } from './hooks/useField.js';
6
- export { useFormDeprecated } from './hooks/useForm.js';
7
- export { useFieldArrayDeprecated } from './hooks/useFieldArray.js';
8
- export { useOnFieldChange } from './hooks/useOnFieldChange.js';
9
- export { CheckboxField } from './components/CheckboxField/index.js';
10
- export { CheckboxGroupField } from './components/CheckboxGroupField/index.js';
11
- export { DateField } from './components/DateField/index.js';
12
- export { Form } from './components/Form/index.js';
13
- export { RadioField } from './components/RadioField/index.js';
14
- export { SelectInputField } from './components/SelectInputField/index.js';
15
- export { SelectableCardField } from './components/SelectableCardField/index.js';
16
- export { NumberInputField } from './components/NumberInputField/index.js';
17
- export { NumberInputFieldV2 } from './components/NumberInputFieldV2/index.js';
18
- export { SubmitErrorAlert } from './components/SubmitErrorAlert/index.js';
19
- export { TagInputField } from './components/TagInputField/index.js';
20
- export { TextAreaField } from './components/TextAreaField/index.js';
21
- export { TextInputField } from './components/TextInputField/index.js';
22
- export { TextInputField as TextInputFieldV2 } from './components/TextInputFieldV2/index.js';
23
- export { TimeField } from './components/TimeField/index.js';
24
- export { ToggleField } from './components/ToggleField/index.js';
25
- export { Submit } from './components/Submit/index.js';
26
- export { RadioGroupField } from './components/RadioGroupField/index.js';
27
- export { KeyValueField } from './components/KeyValueField/index.js';
28
- export { SelectableCardGroupField } from './components/SelectableCardGroupField/index.js';
29
- export { SelectInputFieldV2 } from './components/SelectInputFieldV2/index.js';
1
+ import { FORM_ERROR } from "./constants.js";
2
+ import { ErrorProvider, useErrors } from "./providers/ErrorContext/index.js";
3
+ import { useController, useFieldArray, useForm, useFormContext, useFormState, useWatch } from "react-hook-form";
4
+ import { useFormStateDeprecated } from "./hooks/useFormState.js";
5
+ import { useFieldDeprecated } from "./hooks/useField.js";
6
+ import { useFormDeprecated } from "./hooks/useForm.js";
7
+ import { useFieldArrayDeprecated } from "./hooks/useFieldArray.js";
8
+ import { useOnFieldChange } from "./hooks/useOnFieldChange.js";
9
+ import { CheckboxField } from "./components/CheckboxField/index.js";
10
+ import { CheckboxGroupField } from "./components/CheckboxGroupField/index.js";
11
+ import { DateField } from "./components/DateField/index.js";
12
+ import { Form } from "./components/Form/index.js";
13
+ import { RadioField } from "./components/RadioField/index.js";
14
+ import { SelectInputField } from "./components/SelectInputField/index.js";
15
+ import { SelectableCardField } from "./components/SelectableCardField/index.js";
16
+ import { NumberInputField } from "./components/NumberInputField/index.js";
17
+ import { NumberInputFieldV2 } from "./components/NumberInputFieldV2/index.js";
18
+ import { SubmitErrorAlert } from "./components/SubmitErrorAlert/index.js";
19
+ import { TagInputField } from "./components/TagInputField/index.js";
20
+ import { TextAreaField } from "./components/TextAreaField/index.js";
21
+ import { TextInputField } from "./components/TextInputField/index.js";
22
+ import { TextInputField as TextInputField2 } from "./components/TextInputFieldV2/index.js";
23
+ import { TimeField } from "./components/TimeField/index.js";
24
+ import { ToggleField } from "./components/ToggleField/index.js";
25
+ import { Submit } from "./components/Submit/index.js";
26
+ import { RadioGroupField } from "./components/RadioGroupField/index.js";
27
+ import { KeyValueField } from "./components/KeyValueField/index.js";
28
+ import { SelectableCardGroupField } from "./components/SelectableCardGroupField/index.js";
29
+ import { SelectInputFieldV2 } from "./components/SelectInputFieldV2/index.js";
30
+ export {
31
+ CheckboxField,
32
+ CheckboxGroupField,
33
+ DateField,
34
+ ErrorProvider,
35
+ FORM_ERROR,
36
+ Form,
37
+ KeyValueField,
38
+ NumberInputField,
39
+ NumberInputFieldV2,
40
+ RadioField,
41
+ RadioGroupField,
42
+ SelectInputField,
43
+ SelectInputFieldV2,
44
+ SelectableCardField,
45
+ SelectableCardGroupField,
46
+ Submit,
47
+ SubmitErrorAlert,
48
+ TagInputField,
49
+ TextAreaField,
50
+ TextInputField,
51
+ TextInputField2 as TextInputFieldV2,
52
+ TimeField,
53
+ ToggleField,
54
+ useController,
55
+ useErrors,
56
+ useFieldArray,
57
+ useFieldArrayDeprecated,
58
+ useFieldDeprecated,
59
+ useForm,
60
+ useFormContext,
61
+ useFormDeprecated,
62
+ useFormState,
63
+ useFormStateDeprecated,
64
+ useOnFieldChange,
65
+ useWatch
66
+ };
@@ -0,0 +1 @@
1
+ export { mockErrors } from './mockErrors';
@@ -0,0 +1,3 @@
1
+ import type { FormErrors } from '../types';
2
+ export declare const emailRegex: RegExp;
3
+ export declare const mockErrors: FormErrors;
@@ -0,0 +1,14 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { FieldError } from 'react-hook-form';
3
+ import type { MetaField, RequiredErrors } from '../../types';
4
+ type ErrorContextValue = {
5
+ errors: RequiredErrors;
6
+ getError: (meta: MetaField, error?: FieldError) => string | undefined;
7
+ };
8
+ type ErrorProviderProps = {
9
+ children: ReactNode;
10
+ errors: RequiredErrors;
11
+ };
12
+ export declare const ErrorProvider: ({ children, errors }: ErrorProviderProps) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export declare const useErrors: () => ErrorContextValue;
14
+ export {};
@@ -1,35 +1,36 @@
1
- import { useCallback, useMemo, useContext, createContext } from 'react';
2
- import { jsx } from '@emotion/react/jsx-runtime';
3
-
4
- const ErrorContext = /*#__PURE__*/createContext(undefined);
5
- const ErrorProvider = ({
6
- children,
7
- errors
8
- }) => {
9
- const getError = useCallback((meta, error) => {
10
- if (!error) {
11
- return undefined;
12
- }
13
- if (error.message) {
14
- return error.message;
15
- }
16
- return errors?.[error.type]?.(meta);
17
- }, [errors]);
18
- const value = useMemo(() => ({
19
- errors,
20
- getError
21
- }), [errors, getError]);
22
- return jsx(ErrorContext.Provider, {
23
- value: value,
24
- children: children
25
- });
1
+ import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { createContext, useCallback, useMemo, useContext } from "react";
3
+ const ErrorContext = createContext(void 0);
4
+ const ErrorProvider = ({ children, errors }) => {
5
+ const getError = useCallback(
6
+ (meta, error) => {
7
+ if (!error) {
8
+ return void 0;
9
+ }
10
+ if (error.message) {
11
+ return error.message;
12
+ }
13
+ return errors?.[error.type]?.(meta);
14
+ },
15
+ [errors]
16
+ );
17
+ const value = useMemo(
18
+ () => ({
19
+ errors,
20
+ getError
21
+ }),
22
+ [errors, getError]
23
+ );
24
+ return /* @__PURE__ */ jsx(ErrorContext.Provider, { value, children });
26
25
  };
27
26
  const useErrors = () => {
28
27
  const context = useContext(ErrorContext);
29
- if (context === undefined) {
30
- throw new Error('useErrors must be used within an ErrorProvider ');
28
+ if (context === void 0) {
29
+ throw new Error("useErrors must be used within an ErrorProvider ");
31
30
  }
32
31
  return context;
33
32
  };
34
-
35
- export { ErrorProvider, useErrors };
33
+ export {
34
+ ErrorProvider,
35
+ useErrors
36
+ };
@@ -0,0 +1 @@
1
+ export { useErrors, ErrorProvider } from './ErrorContext';
@@ -0,0 +1,32 @@
1
+ import type { FieldError, FieldPath, FieldValues, Path, PathValue, UseControllerProps, Validate } from 'react-hook-form';
2
+ export type MetaField = {
3
+ min?: number | string;
4
+ max?: number | string;
5
+ minLength?: number;
6
+ maxLength?: number;
7
+ regex?: (RegExp | RegExp[])[];
8
+ minDate?: Date;
9
+ maxDate?: Date;
10
+ label: string;
11
+ value?: string | number;
12
+ };
13
+ export type RequiredErrors = {
14
+ [key in FieldError['type']]: (params: MetaField) => string;
15
+ };
16
+ export type FormErrors = {
17
+ [key in 'required' | 'min' | 'max' | 'minLength' | 'maxLength' | 'pattern' | 'minDate' | 'maxDate']: RequiredErrors[key];
18
+ };
19
+ export type BaseFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = {
20
+ name: TName;
21
+ required?: boolean;
22
+ /**
23
+ * @deprecated use rules props instead
24
+ */
25
+ validate?: Validate<PathValue<TFieldValues, Path<TFieldValues>>, TFieldValues>;
26
+ rules?: UseControllerProps<TFieldValues>['rules'];
27
+ defaultValue?: PathValue<TFieldValues, Path<TFieldValues>>;
28
+ label?: string;
29
+ value?: PathValue<TFieldValues, Path<TFieldValues>>;
30
+ onChange?: (value?: PathValue<TFieldValues, TName>) => void;
31
+ shouldUnregister?: UseControllerProps<TFieldValues, TName>['shouldUnregister'];
32
+ };
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ minDate: (minDate?: Date | undefined) => (value: Date) => boolean;
3
+ maxDate: (maxDate?: Date | undefined) => (value: Date) => boolean;
4
+ };
5
+ export default _default;
@@ -0,0 +1 @@
1
+ export declare const maxDateValidator: (maxDate?: Date) => (value: Date) => boolean;
@@ -1,3 +1,4 @@
1
- const maxDateValidator = maxDate => value => value === undefined || maxDate === undefined || value <= maxDate;
2
-
3
- export { maxDateValidator };
1
+ const maxDateValidator = (maxDate) => (value) => value === void 0 || maxDate === void 0 || value <= maxDate;
2
+ export {
3
+ maxDateValidator
4
+ };
@@ -0,0 +1 @@
1
+ export declare const minDateValidator: (minDate?: Date) => (value: Date) => boolean;
@@ -1,3 +1,4 @@
1
- const minDateValidator = minDate => value => value === undefined || minDate === undefined || value >= minDate;
2
-
3
- export { minDateValidator };
1
+ const minDateValidator = (minDate) => (value) => value === void 0 || minDate === void 0 || value >= minDate;
2
+ export {
3
+ minDateValidator
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultraviolet/form",
3
- "version": "2.13.2",
3
+ "version": "2.13.3",
4
4
  "description": "Ultraviolet Form",
5
5
  "homepage": "https://github.com/scaleway/ultraviolet#readme",
6
6
  "repository": {
@@ -27,9 +27,13 @@
27
27
  ],
28
28
  "sideEffects": false,
29
29
  "type": "module",
30
+ "module": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
30
32
  "exports": {
31
- "types": "./dist/index.d.ts",
32
- "default": "./dist/index.js"
33
+ ".": {
34
+ "types": "./dist/index.d.ts",
35
+ "default": "./dist/index.js"
36
+ }
33
37
  },
34
38
  "peerDependencies": {
35
39
  "@emotion/react": "11.11.4",
@@ -53,10 +57,12 @@
53
57
  "@emotion/styled": "11.11.5",
54
58
  "react-select": "5.8.0",
55
59
  "react-hook-form": "7.51.3",
56
- "@ultraviolet/ui": "1.51.1"
60
+ "@ultraviolet/ui": "1.51.2"
57
61
  },
58
62
  "scripts": {
59
- "build": "rollup -c ../../rollup.config.mjs",
63
+ "type:generate": "tsc --declaration -p tsconfig.build.json",
64
+ "build": "vite build --config vite.config.ts && pnpm run type:generate",
65
+ "build:profile": "npx vite-bundle-visualizer -c vite.config.ts",
60
66
  "typecheck": "tsc --noEmit"
61
67
  }
62
68
  }