@ultraviolet/form 2.13.2 → 2.13.4

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 +17 -35
  3. package/dist/components/CheckboxGroupField/index.d.ts +32 -0
  4. package/dist/components/CheckboxGroupField/index.js +24 -35
  5. package/dist/components/DateField/index.d.ts +16 -0
  6. package/dist/components/DateField/index.js +33 -53
  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 +41 -54
  11. package/dist/components/KeyValueField/index.d.ts +33 -0
  12. package/dist/components/KeyValueField/index.js +23 -56
  13. package/dist/components/NumberInputField/index.d.ts +13 -0
  14. package/dist/components/NumberInputField/index.js +18 -39
  15. package/dist/components/NumberInputFieldV2/index.d.ts +11 -0
  16. package/dist/components/NumberInputFieldV2/index.js +20 -46
  17. package/dist/components/RadioField/index.d.ts +12 -0
  18. package/dist/components/RadioField/index.js +18 -36
  19. package/dist/components/RadioGroupField/index.d.ts +28 -0
  20. package/dist/components/RadioGroupField/index.js +15 -26
  21. package/dist/components/SelectInputField/index.d.ts +82 -0
  22. package/dist/components/SelectInputField/index.js +31 -61
  23. package/dist/components/SelectInputFieldV2/index.d.ts +7 -0
  24. package/dist/components/SelectInputFieldV2/index.js +18 -52
  25. package/dist/components/SelectableCardField/index.d.ts +9 -0
  26. package/dist/components/SelectableCardField/index.js +24 -41
  27. package/dist/components/SelectableCardGroupField/index.d.ts +42 -0
  28. package/dist/components/SelectableCardGroupField/index.js +22 -35
  29. package/dist/components/Submit/index.d.ts +17 -0
  30. package/dist/components/Submit/index.js +9 -23
  31. package/dist/components/SubmitErrorAlert/index.d.ts +3 -0
  32. package/dist/components/SubmitErrorAlert/index.js +7 -11
  33. package/dist/components/TagInputField/index.d.ts +6 -0
  34. package/dist/components/TagInputField/index.js +14 -32
  35. package/dist/components/TextAreaField/index.d.ts +11 -0
  36. package/dist/components/TextAreaField/index.js +25 -52
  37. package/dist/components/TextInputField/index.d.ts +18 -0
  38. package/dist/components/TextInputField/index.js +37 -76
  39. package/dist/components/TextInputFieldV2/index.d.ts +12 -0
  40. package/dist/components/TextInputFieldV2/index.js +30 -66
  41. package/dist/components/TimeField/index.d.ts +9 -0
  42. package/dist/components/TimeField/index.js +23 -46
  43. package/dist/components/ToggleField/index.d.ts +10 -0
  44. package/dist/components/ToggleField/index.js +15 -28
  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 +4 -20
  52. package/dist/hooks/useFieldArray.d.ts +21 -0
  53. package/dist/hooks/useFieldArray.js +6 -9
  54. package/dist/hooks/useForm.d.ts +23 -0
  55. package/dist/hooks/useForm.js +7 -19
  56. package/dist/hooks/useFormState.d.ts +39 -0
  57. package/dist/hooks/useFormState.js +5 -20
  58. package/dist/hooks/useOnFieldChange.d.ts +3 -0
  59. package/dist/hooks/useOnFieldChange.js +6 -6
  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 +11 -13
  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 +12 -6
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,14 +1,13 @@
1
- import { useCallback, useMemo, useContext, createContext } from 'react';
2
- import { jsx } from '@emotion/react/jsx-runtime';
3
-
4
- const ErrorContext = /*#__PURE__*/createContext(undefined);
1
+ import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { createContext, useCallback, useMemo, useContext } from "react";
3
+ const ErrorContext = createContext(void 0);
5
4
  const ErrorProvider = ({
6
5
  children,
7
6
  errors
8
7
  }) => {
9
8
  const getError = useCallback((meta, error) => {
10
9
  if (!error) {
11
- return undefined;
10
+ return void 0;
12
11
  }
13
12
  if (error.message) {
14
13
  return error.message;
@@ -19,17 +18,16 @@ const ErrorProvider = ({
19
18
  errors,
20
19
  getError
21
20
  }), [errors, getError]);
22
- return jsx(ErrorContext.Provider, {
23
- value: value,
24
- children: children
25
- });
21
+ return /* @__PURE__ */ jsx(ErrorContext.Provider, { value, children });
26
22
  };
27
23
  const useErrors = () => {
28
24
  const context = useContext(ErrorContext);
29
- if (context === undefined) {
30
- throw new Error('useErrors must be used within an ErrorProvider ');
25
+ if (context === void 0) {
26
+ throw new Error("useErrors must be used within an ErrorProvider ");
31
27
  }
32
28
  return context;
33
29
  };
34
-
35
- export { ErrorProvider, useErrors };
30
+ export {
31
+ ErrorProvider,
32
+ useErrors
33
+ };
@@ -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.4",
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",
@@ -48,15 +52,17 @@
48
52
  },
49
53
  "dependencies": {
50
54
  "@babel/runtime": "7.24.5",
51
- "@emotion/babel-plugin": "11.11.0",
52
55
  "@emotion/react": "11.11.4",
53
56
  "@emotion/styled": "11.11.5",
54
57
  "react-select": "5.8.0",
55
58
  "react-hook-form": "7.51.3",
56
- "@ultraviolet/ui": "1.51.1"
59
+ "@ultraviolet/ui": "1.51.3"
57
60
  },
58
61
  "scripts": {
59
- "build": "rollup -c ../../rollup.config.mjs",
62
+ "prebuild": "shx rm -rf dist",
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
  }