@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.
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,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"}
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.4",
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.1",
63
- "react-dom": "19.2.1",
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.2",
71
- "@ultraviolet/themes": "3.0.1",
72
- "@ultraviolet/ui": "3.2.1"
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",