@oneplatformdev/ui 0.0.1-beta.13 → 0.0.1-beta.17
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/Dropzone/Dropzone.d.ts +1 -1
- package/Dropzone/Dropzone.mjs +110 -96
- package/Dropzone/Dropzone.types.d.ts +8 -9
- package/Dropzone/{FilePreview.mjs → DropzoneFilePreview.mjs} +1 -1
- package/Dropzone/index.mjs +1 -1
- package/FormDropzone/FormDropzone.d.ts +4 -0
- package/FormDropzone/FormDropzone.mjs +26 -0
- package/FormDropzone/FormDropzone.types.d.ts +7 -0
- package/FormDropzone/index.d.ts +2 -0
- package/FormDropzone/index.mjs +4 -0
- package/FormDropzone/package.json +7 -0
- package/FormSelect/FormSelect.types.d.ts +1 -1
- package/index.d.ts +1 -0
- package/index.mjs +3 -1
- package/package.json +1 -1
- /package/Dropzone/{FilePreview.d.ts → DropzoneFilePreview.d.ts} +0 -0
- /package/{FilePreview-Dhtv8F4u.js → DropzoneFilePreview-Dhtv8F4u.js} +0 -0
package/Dropzone/Dropzone.d.ts
CHANGED
@@ -12,7 +12,7 @@ import { DropzoneProps } from './Dropzone.types';
|
|
12
12
|
* @param {(errors: FileRejection[]) => void} [props.onErrors] - Callback triggered when file errors occur.
|
13
13
|
* @param {boolean} [props.hideErrors=false] - Whether to hide error messages.
|
14
14
|
* @param {boolean} [props.disabled=false] - Whether the dropzone is disabled.
|
15
|
-
* @param {DropzoneStyles} [props.
|
15
|
+
* @param {DropzoneStyles} [props.classNames] - Custom classNames for different dropzone states.
|
16
16
|
* @param {DropzoneValueItem[]} [props.value=[]] - Current selected files or URLs.
|
17
17
|
* @param {(items: DropzoneValueItem[]) => void} [props.onChangeValue] - Callback triggered when file selection changes.
|
18
18
|
* @param {string} [props.className] - Additional class names for styling.
|
package/Dropzone/Dropzone.mjs
CHANGED
@@ -1,122 +1,136 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { forwardRef as
|
3
|
-
import { useDropzone as
|
4
|
-
import { Card as
|
5
|
-
import { File as j, X as
|
6
|
-
import { cn as
|
7
|
-
import { F as
|
8
|
-
import { isFile as
|
9
|
-
const
|
1
|
+
import { jsxs as t, jsx as o } from "react/jsx-runtime";
|
2
|
+
import { forwardRef as L, useState as g } from "react";
|
3
|
+
import { useDropzone as M } from "react-dropzone";
|
4
|
+
import { Card as U } from "../Card/Card.mjs";
|
5
|
+
import { File as j, X as O } from "lucide-react";
|
6
|
+
import { cn as m } from "@oneplatformdev/utils";
|
7
|
+
import { F as X, D as Y } from "../DropzoneFilePreview-Dhtv8F4u.js";
|
8
|
+
import { isFile as v, extractName as q } from "./DropzoneUtils.mjs";
|
9
|
+
const G = L(
|
10
10
|
({
|
11
|
-
acceptTypes:
|
12
|
-
maxSizeMB:
|
11
|
+
acceptTypes: y = Y,
|
12
|
+
maxSizeMB: w,
|
13
13
|
maxFiles: a = 1,
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
14
|
+
onErrors: x,
|
15
|
+
hideErrors: b = !1,
|
16
|
+
disabled: p = !1,
|
17
|
+
classNames: l,
|
18
|
+
value: u = [],
|
19
|
+
onChangeValue: s,
|
20
|
+
className: F,
|
21
|
+
labelDropzonePrompt: z = "Drop files here or click to select",
|
22
|
+
labelOrClickToSelect: H = "Click to select files",
|
23
|
+
labelSelectedFiles: D = "Selected Files",
|
24
|
+
labelUploadErrors: I = "Upload Errors",
|
25
|
+
labelFileTooLarge: k = "File is too large",
|
26
|
+
labelInvalidFileType: S = "Invalid file type",
|
22
27
|
...E
|
23
|
-
},
|
24
|
-
const [
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}, { getRootProps: k, getInputProps: n, isDragActive: W } = B({
|
38
|
-
onDrop: S,
|
39
|
-
accept: u.reduce((r, m) => (r[m] = [], r), {}),
|
40
|
-
maxSize: b * 1024 * 1024,
|
28
|
+
}, P) => {
|
29
|
+
const [c, h] = g(u), [d, N] = g([]), W = (e, i) => {
|
30
|
+
N(i), x && x(i);
|
31
|
+
const r = [...c, ...e].slice(0, a);
|
32
|
+
h(r), s == null || s(r);
|
33
|
+
}, T = (e, i) => {
|
34
|
+
if (p) return;
|
35
|
+
e.stopPropagation();
|
36
|
+
const r = c.filter((n, f) => f !== i);
|
37
|
+
h(r), s == null || s(r);
|
38
|
+
}, { getRootProps: _, getInputProps: A, isDragActive: B } = M({
|
39
|
+
onDrop: W,
|
40
|
+
accept: y.reduce((e, i) => (e[i] = [], e), {}),
|
41
|
+
maxSize: w * 1024 * 1024,
|
41
42
|
maxFiles: a,
|
42
|
-
disabled:
|
43
|
+
disabled: p
|
43
44
|
});
|
44
|
-
return /* @__PURE__ */
|
45
|
-
|
45
|
+
return /* @__PURE__ */ t(
|
46
|
+
U,
|
46
47
|
{
|
47
|
-
...
|
48
|
+
..._(),
|
48
49
|
...E,
|
49
|
-
className:
|
50
|
+
className: m(
|
50
51
|
"border-dashed border-2 p-6 text-center flex flex-col items-center justify-center",
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
p && "bg-gray-300 pointer-events-none",
|
53
|
+
d.length > 0 ? "border-red-500" : "border-gray-300",
|
54
|
+
B && "bg-gray-100",
|
55
|
+
F
|
55
56
|
),
|
56
|
-
ref:
|
57
|
+
ref: P,
|
57
58
|
children: [
|
58
|
-
/* @__PURE__ */
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
59
|
+
/* @__PURE__ */ o("input", { ...A() }),
|
60
|
+
c.length === 0 && d.length === 0 && /* @__PURE__ */ t(
|
61
|
+
"div",
|
62
|
+
{
|
63
|
+
className: m(
|
64
|
+
"flex flex-col items-center gap-1",
|
65
|
+
l == null ? void 0 : l.idleWrapper
|
66
|
+
),
|
67
|
+
children: [
|
68
|
+
/* @__PURE__ */ o(j, { className: "w-8 h-8 text-gray-500" }),
|
69
|
+
!p && /* @__PURE__ */ o("pre", { className: "font-semibold text-gray-600", children: z })
|
70
|
+
]
|
71
|
+
}
|
72
|
+
),
|
73
|
+
c.length > 0 && /* @__PURE__ */ t("div", { className: m("w-full mt-2", l == null ? void 0 : l.previewWrapper), children: [
|
74
|
+
/* @__PURE__ */ t("pre", { className: "font-semibold text-gray-600", children: [
|
75
|
+
D,
|
69
76
|
":"
|
70
77
|
] }),
|
71
|
-
/* @__PURE__ */
|
72
|
-
const
|
73
|
-
return /* @__PURE__ */
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
{
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
78
|
+
/* @__PURE__ */ o("ul", { className: "mt-2 text-sm text-gray-500 flex flex-wrap gap-4 items-start justify-center", children: c.map((e, i) => {
|
79
|
+
const r = v(e) ? e.name : q(e), n = v(e) ? (e.size / (1024 * 1024)).toFixed(2) + " MB" : "";
|
80
|
+
return /* @__PURE__ */ t(
|
81
|
+
"li",
|
82
|
+
{
|
83
|
+
className: "flex flex-col items-center gap-2 relative",
|
84
|
+
children: [
|
85
|
+
/* @__PURE__ */ t("div", { className: "relative", children: [
|
86
|
+
/* @__PURE__ */ o(X, { item: e, styles: l }),
|
87
|
+
/* @__PURE__ */ o("div", { className: "absolute top-0 right-0 cursor-pointer bg-gray-300 rounded-sm", children: /* @__PURE__ */ o(
|
88
|
+
O,
|
89
|
+
{
|
90
|
+
size: 16,
|
91
|
+
strokeWidth: 1,
|
92
|
+
color: "black",
|
93
|
+
onClick: (f) => T(f, i)
|
94
|
+
}
|
95
|
+
) })
|
96
|
+
] }),
|
97
|
+
/* @__PURE__ */ t("span", { className: "inline-flex flex-col items-center", children: [
|
98
|
+
/* @__PURE__ */ o("span", { className: "max-w-[80px] text-ellipsis overflow-hidden whitespace-nowrap", children: r }),
|
99
|
+
n && /* @__PURE__ */ t("span", { children: [
|
100
|
+
"(",
|
101
|
+
n,
|
102
|
+
")"
|
103
|
+
] })
|
104
|
+
] })
|
105
|
+
]
|
106
|
+
},
|
107
|
+
i
|
108
|
+
);
|
95
109
|
}) })
|
96
110
|
] }),
|
97
|
-
|
98
|
-
/* @__PURE__ */
|
99
|
-
|
111
|
+
d.length > 0 && /* @__PURE__ */ t("div", { className: m("w-full mt-4", l == null ? void 0 : l.errorWrapper), children: [
|
112
|
+
/* @__PURE__ */ t("span", { className: "font-semibold text-red-500", children: [
|
113
|
+
I,
|
100
114
|
":"
|
101
115
|
] }),
|
102
|
-
/* @__PURE__ */
|
103
|
-
|
116
|
+
/* @__PURE__ */ o("ul", { className: "mt-2 text-sm text-red-500 list-disc list-inside", children: d.map((e, i) => /* @__PURE__ */ t("li", { children: [
|
117
|
+
e.file.name,
|
104
118
|
" (",
|
105
|
-
(
|
119
|
+
(e.file.size / (1024 * 1024)).toFixed(2),
|
106
120
|
" MB)",
|
107
|
-
!
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
] },
|
112
|
-
] },
|
121
|
+
!b && /* @__PURE__ */ o("ul", { className: "ml-4 list-disc list-inside", children: e.errors.map((r, n) => /* @__PURE__ */ t("li", { children: [
|
122
|
+
r.code === "file-too-large" && k,
|
123
|
+
r.code === "file-invalid-type" && S,
|
124
|
+
r.code !== "file-too-large" && r.code !== "file-invalid-type" && r.message
|
125
|
+
] }, n)) })
|
126
|
+
] }, i)) })
|
113
127
|
] })
|
114
128
|
]
|
115
129
|
}
|
116
130
|
);
|
117
131
|
}
|
118
132
|
);
|
119
|
-
|
133
|
+
G.displayName = "Dropzone";
|
120
134
|
export {
|
121
|
-
|
135
|
+
G as Dropzone
|
122
136
|
};
|
@@ -6,22 +6,21 @@ export interface FilePreviewProps {
|
|
6
6
|
styles?: Pick<DropzoneStyles, 'previewWraper' | 'previewImage' | 'previewFile'>;
|
7
7
|
}
|
8
8
|
export interface DropzoneTranslations {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
labelDropzonePrompt?: string;
|
10
|
+
labelOrClickToSelect?: string;
|
11
|
+
labelSelectedFiles?: string;
|
12
|
+
labelUploadErrors?: string;
|
13
|
+
labelFileTooLarge?: string;
|
14
|
+
labelInvalidFileType?: string;
|
15
15
|
}
|
16
|
-
export interface DropzoneProps extends React.HTMLAttributes<HTMLDivElement> {
|
16
|
+
export interface DropzoneProps extends DropzoneTranslations, React.HTMLAttributes<HTMLDivElement> {
|
17
17
|
acceptTypes?: string[];
|
18
18
|
maxSizeMB: number;
|
19
|
-
translations: DropzoneTranslations;
|
20
19
|
maxFiles?: number;
|
21
20
|
onErrors?: (errors: FileRejection[]) => void;
|
22
21
|
hideErrors?: boolean;
|
23
22
|
disabled?: boolean;
|
24
|
-
|
23
|
+
classNames?: DropzoneStyles;
|
25
24
|
value?: DropzoneValueItem[];
|
26
25
|
onChangeValue?: (items: DropzoneValueItem[]) => void;
|
27
26
|
}
|
package/Dropzone/index.mjs
CHANGED
@@ -0,0 +1,4 @@
|
|
1
|
+
import { FormDropzoneProps } from './FormDropzone.types';
|
2
|
+
import { FieldValues, UseFormReturn } from 'react-hook-form';
|
3
|
+
|
4
|
+
export declare const FormDropzone: <Data extends FieldValues, Form extends UseFormReturn<Data>>(props: FormDropzoneProps<Data, Form>) => import("react/jsx-runtime").JSX.Element;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
|
+
import { FormControl as a } from "../Form/Form.mjs";
|
3
|
+
import { FormRenderControl as l } from "../Form/FormRenderControl.mjs";
|
4
|
+
import { Dropzone as f } from "../Dropzone/Dropzone.mjs";
|
5
|
+
const h = (n) => {
|
6
|
+
const { form: e, label: m, name: t, ...p } = n;
|
7
|
+
return /* @__PURE__ */ o(
|
8
|
+
l,
|
9
|
+
{
|
10
|
+
form: e,
|
11
|
+
label: m,
|
12
|
+
name: t,
|
13
|
+
render: ({ field: r }) => /* @__PURE__ */ o(a, { children: /* @__PURE__ */ o(
|
14
|
+
f,
|
15
|
+
{
|
16
|
+
...p,
|
17
|
+
...r,
|
18
|
+
onChangeValue: r.onChange
|
19
|
+
}
|
20
|
+
) })
|
21
|
+
}
|
22
|
+
);
|
23
|
+
};
|
24
|
+
export {
|
25
|
+
h as FormDropzone
|
26
|
+
};
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { FormRenderControlExtendProps } from '../Form';
|
2
|
+
import { DropzoneProps } from '../Dropzone';
|
3
|
+
import { UseFormReturn } from 'react-hook-form';
|
4
|
+
import { FieldValues } from 'react-hook-form/dist/types/fields';
|
5
|
+
|
6
|
+
export interface FormDropzoneProps<Data extends FieldValues, Form extends UseFormReturn<Data>> extends FormRenderControlExtendProps<Data, Form>, DropzoneProps {
|
7
|
+
}
|
@@ -3,5 +3,5 @@ import { FormRenderControlExtendProps } from '../Form';
|
|
3
3
|
import { UseFormReturn } from 'react-hook-form';
|
4
4
|
import { FieldValues } from 'react-hook-form/dist/types/fields';
|
5
5
|
|
6
|
-
export interface FormSelectProps<Data extends FieldValues, Form extends UseFormReturn<Data>, ExtendOptionData> extends FormRenderControlExtendProps<Data, Form>, SelectProps<ExtendOptionData> {
|
6
|
+
export interface FormSelectProps<Data extends FieldValues, Form extends UseFormReturn<Data>, ExtendOptionData> extends FormRenderControlExtendProps<Data, Form>, Omit<SelectProps<ExtendOptionData>, 'onChange'> {
|
7
7
|
}
|
package/index.d.ts
CHANGED
package/index.mjs
CHANGED
@@ -78,7 +78,8 @@ import { ToggleGroup as cn, ToggleGroupItem as Mn } from "./ToggleGroup/ToggleGr
|
|
78
78
|
import { TooltipContent as An, TooltipProvider as In, TooltipRoot as wn, TooltipTrigger as hn } from "./Tooltip/TooltipRoot.mjs";
|
79
79
|
import { Tooltip as Fn } from "./Tooltip/Tooltip.mjs";
|
80
80
|
import { Dropzone as Bn } from "./Dropzone/Dropzone.mjs";
|
81
|
-
import { D as Rn, a as kn } from "./
|
81
|
+
import { D as Rn, a as kn } from "./DropzoneFilePreview-Dhtv8F4u.js";
|
82
|
+
import { FormDropzone as Nn } from "./FormDropzone/FormDropzone.mjs";
|
82
83
|
export {
|
83
84
|
e as Accordion,
|
84
85
|
t as AccordionContent,
|
@@ -195,6 +196,7 @@ export {
|
|
195
196
|
Rr as FormControl,
|
196
197
|
Jr as FormDatePicker,
|
197
198
|
kr as FormDescription,
|
199
|
+
Nn as FormDropzone,
|
198
200
|
Hr as FormField,
|
199
201
|
Qr as FormInput,
|
200
202
|
Nr as FormItem,
|
package/package.json
CHANGED
File without changes
|
File without changes
|