@ultraviolet/form 6.0.4 → 6.0.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.
- package/dist/components/FileInputField/index.d.ts +18 -0
- package/dist/components/FileInputField/index.d.ts.map +1 -0
- package/dist/components/FileInputField/index.js +78 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/package.json +6 -6
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FileInput } from '@ultraviolet/ui';
|
|
2
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
3
|
+
import type { FieldPath, FieldValues } from 'react-hook-form';
|
|
4
|
+
import type { BaseFieldProps } from '../../types';
|
|
5
|
+
type FileInputFieldProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TFieldName> & Omit<ComponentProps<typeof FileInput>, 'error' | 'name' | 'onChangeFiles' | 'label' | 'aria-label'> & {
|
|
6
|
+
label: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* List is a component that displays a list of items based on the columns you provide and the data you pass.
|
|
10
|
+
*/
|
|
11
|
+
type FileInputFieldType = {
|
|
12
|
+
(props: FileInputFieldProps<FieldValues, FieldPath<FieldValues>>): ReactNode;
|
|
13
|
+
List: typeof FileInput.List;
|
|
14
|
+
Button: typeof FileInput.Button;
|
|
15
|
+
};
|
|
16
|
+
export declare const FileInputField: FileInputFieldType;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FileInputField/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAA;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,mBAAmB,CACtB,YAAY,SAAS,WAAW,EAChC,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,IACxC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,GAC1C,IAAI,CACF,cAAc,CAAC,OAAO,SAAS,CAAC,EAChC,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,GAAG,YAAY,CAC5D,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAiFvB;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACxB,CAAC,KAAK,EAAE,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAA;IAC5E,IAAI,EAAE,OAAO,SAAS,CAAC,IAAI,CAAA;IAC3B,MAAM,EAAE,OAAO,SAAS,CAAC,MAAM,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,kBAM5B,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { FileInput } from "@ultraviolet/ui";
|
|
4
|
+
import { useController } from "react-hook-form";
|
|
5
|
+
import { useErrors } from "../../providers/ErrorContext/index.js";
|
|
6
|
+
const FileInputFieldBase = ({
|
|
7
|
+
onChange,
|
|
8
|
+
label,
|
|
9
|
+
required = false,
|
|
10
|
+
name,
|
|
11
|
+
shouldUnregister,
|
|
12
|
+
control,
|
|
13
|
+
variant,
|
|
14
|
+
size,
|
|
15
|
+
title,
|
|
16
|
+
bottom,
|
|
17
|
+
children,
|
|
18
|
+
...props
|
|
19
|
+
}) => {
|
|
20
|
+
const { getError } = useErrors();
|
|
21
|
+
const {
|
|
22
|
+
field,
|
|
23
|
+
fieldState: { error }
|
|
24
|
+
} = useController({
|
|
25
|
+
control,
|
|
26
|
+
name,
|
|
27
|
+
rules: {
|
|
28
|
+
required
|
|
29
|
+
},
|
|
30
|
+
shouldUnregister
|
|
31
|
+
});
|
|
32
|
+
if (variant === "overlay" && children) {
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
FileInput,
|
|
35
|
+
{
|
|
36
|
+
...props,
|
|
37
|
+
error: getError({ label }, error),
|
|
38
|
+
label,
|
|
39
|
+
onChangeFiles: (files) => {
|
|
40
|
+
field.onChange(files);
|
|
41
|
+
onChange?.(files);
|
|
42
|
+
},
|
|
43
|
+
required,
|
|
44
|
+
title,
|
|
45
|
+
variant: "overlay",
|
|
46
|
+
children: typeof children === "function" ? (inputId, inputRef) => children(inputId, inputRef) : children
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
return /* @__PURE__ */ jsx(
|
|
51
|
+
FileInput,
|
|
52
|
+
{
|
|
53
|
+
...props,
|
|
54
|
+
bottom,
|
|
55
|
+
error: getError({ label }, error),
|
|
56
|
+
label,
|
|
57
|
+
onChangeFiles: (files) => {
|
|
58
|
+
field.onChange(files);
|
|
59
|
+
onChange?.(files);
|
|
60
|
+
},
|
|
61
|
+
required,
|
|
62
|
+
size,
|
|
63
|
+
title,
|
|
64
|
+
variant: "dropzone",
|
|
65
|
+
children: typeof children === "function" ? (inputId, inputRef) => children(inputId, inputRef) : children
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
const FileInputField = Object.assign(
|
|
70
|
+
FileInputFieldBase,
|
|
71
|
+
{
|
|
72
|
+
Button: FileInput.Button,
|
|
73
|
+
List: FileInput.List
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
export {
|
|
77
|
+
FileInputField
|
|
78
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { CheckboxField } from './CheckboxField';
|
|
2
2
|
export { CheckboxGroupField } from './CheckboxGroupField';
|
|
3
3
|
export { DateInputField } from './DateInputField';
|
|
4
|
+
export { FileInputField } from './FileInputField';
|
|
4
5
|
export { Form } from './Form';
|
|
5
6
|
export { KeyValueField } from './KeyValueField';
|
|
6
7
|
export { NumberInputField } from './NumberInputField';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,mBAAmB,iBAAiB,CAAA;AACpC,OAAO,EACL,aAAa,EACb,aAAa,EACb,OAAO,EACP,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,MAAM,iBAAiB,CAAA;AACxB,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { useOnFieldChange } from "./hooks/useOnFieldChange.js";
|
|
|
5
5
|
import { CheckboxField } from "./components/CheckboxField/index.js";
|
|
6
6
|
import { CheckboxGroupField } from "./components/CheckboxGroupField/index.js";
|
|
7
7
|
import { DateInputField } from "./components/DateInputField/index.js";
|
|
8
|
+
import { FileInputField } from "./components/FileInputField/index.js";
|
|
8
9
|
import { KeyValueField } from "./components/KeyValueField/index.js";
|
|
9
10
|
import { NumberInputField } from "./components/NumberInputField/index.js";
|
|
10
11
|
import { RadioField } from "./components/RadioField/index.js";
|
|
@@ -30,6 +31,7 @@ export {
|
|
|
30
31
|
CheckboxGroupField,
|
|
31
32
|
DateInputField,
|
|
32
33
|
ErrorProvider,
|
|
34
|
+
FileInputField,
|
|
33
35
|
Form,
|
|
34
36
|
KeyValueField,
|
|
35
37
|
NumberInputField,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultraviolet/form",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.6",
|
|
4
4
|
"description": "Ultraviolet Form",
|
|
5
5
|
"homepage": "https://github.com/scaleway/ultraviolet#readme",
|
|
6
6
|
"repository": {
|
|
@@ -59,17 +59,17 @@
|
|
|
59
59
|
"@types/final-form-focus": "1.1.7",
|
|
60
60
|
"@types/react": "19.2.7",
|
|
61
61
|
"@types/react-dom": "19.2.3",
|
|
62
|
-
"react": "19.2.
|
|
63
|
-
"react-dom": "19.2.
|
|
62
|
+
"react": "19.2.3",
|
|
63
|
+
"react-dom": "19.2.3",
|
|
64
64
|
"@repo/config": "0.0.1",
|
|
65
65
|
"@utils/test": "0.0.1"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@babel/runtime": "7.28.4",
|
|
69
69
|
"react-hook-form": "7.55.0",
|
|
70
|
-
"@ultraviolet/icons": "5.0.
|
|
71
|
-
"@ultraviolet/themes": "3.0.
|
|
72
|
-
"@ultraviolet/ui": "3.
|
|
70
|
+
"@ultraviolet/icons": "5.0.3",
|
|
71
|
+
"@ultraviolet/themes": "3.0.2",
|
|
72
|
+
"@ultraviolet/ui": "3.3.1"
|
|
73
73
|
},
|
|
74
74
|
"scripts": {
|
|
75
75
|
"build:profile": "npx vite-bundle-visualizer -c vite.config.ts",
|