@oneplatformdev/ui 0.0.1-beta.14 → 0.0.1-beta.18
Sign up to get free protection for your applications and to get access to all the features.
- package/Combobox/Combobox.mjs +71 -60
- package/Combobox/Combobox.types.d.ts +7 -0
- package/Dropzone/Dropzone.mjs +58 -62
- package/Dropzone/{FilePreview.mjs → DropzoneFilePreview.mjs} +1 -1
- package/Dropzone/index.mjs +1 -1
- package/FormDropzone/FormDropzone.mjs +12 -13
- package/FormSelect/FormSelect.types.d.ts +1 -1
- package/index.mjs +1 -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/Combobox/Combobox.mjs
CHANGED
@@ -1,109 +1,120 @@
|
|
1
1
|
import { jsx as a, jsxs as t } from "react/jsx-runtime";
|
2
|
-
import n, { useEffect as
|
3
|
-
import { LoadingMask as
|
4
|
-
import { Popover as
|
5
|
-
import { Button as
|
2
|
+
import n, { useRef as U, useEffect as w, useCallback as _ } from "react";
|
3
|
+
import { LoadingMask as B } from "../LoadingMask/LoadingMask.mjs";
|
4
|
+
import { Popover as F, PopoverTrigger as G, PopoverContent as V } from "../Popover/Popover.mjs";
|
5
|
+
import { Button as W } from "../Button/Button.mjs";
|
6
6
|
import "../Button/buttonVariants.mjs";
|
7
|
-
import { Command as
|
8
|
-
import { cn as
|
9
|
-
import { useDebounceCallback as
|
10
|
-
import { X as
|
11
|
-
const
|
12
|
-
var
|
7
|
+
import { Command as X, CommandInput as q, CommandList as z, CommandEmpty as A, CommandGroup as H, CommandItem as J } from "../Command/Command.mjs";
|
8
|
+
import { cn as x } from "@oneplatformdev/utils";
|
9
|
+
import { useDebounceCallback as K } from "@oneplatformdev/hooks";
|
10
|
+
import { X as Q, ChevronsUpDown as Y, Check as Z } from "lucide-react";
|
11
|
+
const ie = (N) => {
|
12
|
+
var y;
|
13
13
|
const {
|
14
14
|
value: o,
|
15
|
-
onChange:
|
16
|
-
placeholder:
|
17
|
-
disabled:
|
18
|
-
searchLabel:
|
19
|
-
fetchOptions:
|
15
|
+
onChange: S,
|
16
|
+
placeholder: k,
|
17
|
+
disabled: L,
|
18
|
+
searchLabel: O,
|
19
|
+
fetchOptions: P,
|
20
20
|
options: r,
|
21
|
-
emptyLabel:
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
emptyLabel: j = "No options",
|
22
|
+
onMount: s
|
23
|
+
} = N, c = U(!1), [l, p] = n.useState(!1), [D, h] = n.useState(""), [f, i] = n.useState([]), [d, b] = n.useState(), [v, C] = n.useState(!1);
|
24
|
+
w(() => {
|
25
|
+
r != null && r.length && i(r);
|
25
26
|
}, [r]);
|
26
|
-
const
|
27
|
-
l || (
|
28
|
-
},
|
29
|
-
|
27
|
+
const M = async () => {
|
28
|
+
l || (g(), h(""));
|
29
|
+
}, g = async (e) => {
|
30
|
+
C(!0);
|
30
31
|
try {
|
31
|
-
const
|
32
|
-
|
33
|
-
} catch (
|
34
|
-
console.error("Unexpected error while get option:",
|
32
|
+
const u = await P(e);
|
33
|
+
i(u);
|
34
|
+
} catch (u) {
|
35
|
+
console.error("Unexpected error while get option:", u);
|
35
36
|
} finally {
|
36
|
-
|
37
|
+
C(!1);
|
37
38
|
}
|
38
|
-
},
|
39
|
-
|
40
|
-
},
|
41
|
-
|
42
|
-
},
|
43
|
-
|
44
|
-
}
|
45
|
-
|
46
|
-
|
39
|
+
}, T = K(g, 1e3), E = (e) => {
|
40
|
+
h(e), T(e);
|
41
|
+
}, m = (e) => {
|
42
|
+
S(e.value), b(e);
|
43
|
+
}, I = () => {
|
44
|
+
m({ value: "", label: "" }), b(void 0);
|
45
|
+
}, R = _(() => {
|
46
|
+
if (!s) {
|
47
|
+
c.current = !0;
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
s({ setOptions: i }).finally(() => {
|
51
|
+
c.current = !0;
|
52
|
+
});
|
53
|
+
}, [s]);
|
54
|
+
return w(() => (R(), () => {
|
55
|
+
c.current = !1;
|
56
|
+
}), []), /* @__PURE__ */ a("div", { className: "w-full", children: /* @__PURE__ */ t(
|
57
|
+
F,
|
47
58
|
{
|
48
59
|
open: l,
|
49
60
|
onOpenChange: (e) => {
|
50
|
-
|
61
|
+
p(e), e && M();
|
51
62
|
},
|
52
63
|
children: [
|
53
|
-
/* @__PURE__ */ a(
|
54
|
-
|
64
|
+
/* @__PURE__ */ a(G, { asChild: !0, className: "border-border", children: /* @__PURE__ */ t(
|
65
|
+
W,
|
55
66
|
{
|
56
67
|
variant: "outline",
|
57
68
|
role: "combobox",
|
58
69
|
"aria-expanded": l,
|
59
|
-
className:
|
70
|
+
className: x(
|
60
71
|
"w-full justify-between font-normal text-sm border bg-input",
|
61
72
|
l ? "border-2 border-sidebar-accent" : "border-border"
|
62
73
|
),
|
63
|
-
disabled:
|
74
|
+
disabled: L,
|
64
75
|
children: [
|
65
|
-
/* @__PURE__ */ a("span", { className: "truncate max-w-[calc(100%-1.5rem)] overflow-hidden whitespace-nowrap", children: o ? ((
|
76
|
+
/* @__PURE__ */ a("span", { className: "truncate max-w-[calc(100%-1.5rem)] overflow-hidden whitespace-nowrap", children: o ? ((y = f.find((e) => e.value === o)) == null ? void 0 : y.label) || (d == null ? void 0 : d.label) : /* @__PURE__ */ a("span", { className: "text-gray-400", children: k }) }),
|
66
77
|
o ? /* @__PURE__ */ a(
|
67
|
-
|
78
|
+
Q,
|
68
79
|
{
|
69
80
|
className: "opacity-50 w-4 h-4 cursor-pointer hover:opacity-100",
|
70
81
|
onClick: (e) => {
|
71
|
-
e.stopPropagation(),
|
82
|
+
e.stopPropagation(), I();
|
72
83
|
}
|
73
84
|
}
|
74
|
-
) : /* @__PURE__ */ a(
|
85
|
+
) : /* @__PURE__ */ a(Y, { className: "opacity-50 w-4 h-4" })
|
75
86
|
]
|
76
87
|
}
|
77
88
|
) }),
|
78
89
|
/* @__PURE__ */ a(
|
79
|
-
|
90
|
+
V,
|
80
91
|
{
|
81
92
|
className: "w-[var(--radix-popper-anchor-width)] max-w-none p-0",
|
82
93
|
align: "start",
|
83
|
-
children: /* @__PURE__ */ t(
|
94
|
+
children: /* @__PURE__ */ t(X, { shouldFilter: !1, children: [
|
84
95
|
/* @__PURE__ */ a(
|
85
|
-
|
96
|
+
q,
|
86
97
|
{
|
87
|
-
placeholder:
|
88
|
-
value:
|
89
|
-
onValueChange:
|
98
|
+
placeholder: O,
|
99
|
+
value: D,
|
100
|
+
onValueChange: E
|
90
101
|
}
|
91
102
|
),
|
92
|
-
/* @__PURE__ */ t(
|
93
|
-
!
|
94
|
-
/* @__PURE__ */ a(
|
95
|
-
|
103
|
+
/* @__PURE__ */ t(z, { children: [
|
104
|
+
!v && /* @__PURE__ */ a(A, { children: j }),
|
105
|
+
/* @__PURE__ */ a(H, { children: v ? /* @__PURE__ */ a("div", { className: "flex justify-center", children: /* @__PURE__ */ a(B, {}) }) : f.map((e) => /* @__PURE__ */ t(
|
106
|
+
J,
|
96
107
|
{
|
97
108
|
value: e.value,
|
98
109
|
onSelect: () => {
|
99
|
-
o === e.value ?
|
110
|
+
o === e.value ? m({ value: "", label: "" }) : m(e), p(!1);
|
100
111
|
},
|
101
112
|
children: [
|
102
113
|
e.label,
|
103
114
|
/* @__PURE__ */ a(
|
104
|
-
|
115
|
+
Z,
|
105
116
|
{
|
106
|
-
className:
|
117
|
+
className: x(
|
107
118
|
"ml-auto",
|
108
119
|
o === e.value ? "opacity-100" : "opacity-0"
|
109
120
|
)
|
@@ -122,5 +133,5 @@ const te = (w) => {
|
|
122
133
|
) });
|
123
134
|
};
|
124
135
|
export {
|
125
|
-
|
136
|
+
ie as Combobox
|
126
137
|
};
|
@@ -1,7 +1,12 @@
|
|
1
|
+
import { Dispatch, SetStateAction } from 'react';
|
2
|
+
|
1
3
|
export interface ComboboxOption {
|
2
4
|
value: string;
|
3
5
|
label: string;
|
4
6
|
}
|
7
|
+
export interface ComboboxPropsOnMountParams {
|
8
|
+
setOptions: Dispatch<SetStateAction<ComboboxOption[]>>;
|
9
|
+
}
|
5
10
|
export interface ComboboxProps {
|
6
11
|
value: string;
|
7
12
|
onChange: (value: string) => void;
|
@@ -12,4 +17,6 @@ export interface ComboboxProps {
|
|
12
17
|
options?: ComboboxOption[];
|
13
18
|
/** CommandEmpty label*/
|
14
19
|
emptyLabel?: string;
|
20
|
+
/** Callback for load data on start component */
|
21
|
+
onMount?: (params: ComboboxPropsOnMountParams) => Promise<ComboboxOption[]>;
|
15
22
|
}
|
package/Dropzone/Dropzone.mjs
CHANGED
@@ -1,106 +1,102 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { forwardRef as L, useState as
|
3
|
-
import { useDropzone as
|
4
|
-
import { Card as
|
5
|
-
import { File as
|
6
|
-
import { cn as
|
7
|
-
import { F as
|
8
|
-
import { isFile as v, extractName 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:
|
13
|
-
maxFiles:
|
14
|
-
onErrors:
|
15
|
-
hideErrors:
|
11
|
+
acceptTypes: y = Y,
|
12
|
+
maxSizeMB: w,
|
13
|
+
maxFiles: a = 1,
|
14
|
+
onErrors: x,
|
15
|
+
hideErrors: b = !1,
|
16
16
|
disabled: p = !1,
|
17
17
|
classNames: l,
|
18
|
-
value:
|
18
|
+
value: u = [],
|
19
19
|
onChangeValue: s,
|
20
|
-
className:
|
20
|
+
className: F,
|
21
21
|
labelDropzonePrompt: z = "Drop files here or click to select",
|
22
|
-
labelOrClickToSelect:
|
22
|
+
labelOrClickToSelect: H = "Click to select files",
|
23
23
|
labelSelectedFiles: D = "Selected Files",
|
24
24
|
labelUploadErrors: I = "Upload Errors",
|
25
25
|
labelFileTooLarge: k = "File is too large",
|
26
|
-
labelInvalidFileType:
|
27
|
-
...
|
26
|
+
labelInvalidFileType: S = "Invalid file type",
|
27
|
+
...E
|
28
28
|
}, P) => {
|
29
|
-
const [c,
|
30
|
-
|
31
|
-
a
|
32
|
-
|
33
|
-
const W = (e, i) => {
|
34
|
-
N(i), g && g(i);
|
35
|
-
const t = [...c, ...e].slice(0, h);
|
36
|
-
a(t), s == null || s(t);
|
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);
|
37
33
|
}, T = (e, i) => {
|
38
34
|
if (p) return;
|
39
35
|
e.stopPropagation();
|
40
|
-
const
|
41
|
-
|
42
|
-
}, { getRootProps: _, getInputProps: A, isDragActive: B } =
|
36
|
+
const r = c.filter((n, f) => f !== i);
|
37
|
+
h(r), s == null || s(r);
|
38
|
+
}, { getRootProps: _, getInputProps: A, isDragActive: B } = M({
|
43
39
|
onDrop: W,
|
44
|
-
accept:
|
45
|
-
maxSize:
|
46
|
-
maxFiles:
|
40
|
+
accept: y.reduce((e, i) => (e[i] = [], e), {}),
|
41
|
+
maxSize: w * 1024 * 1024,
|
42
|
+
maxFiles: a,
|
47
43
|
disabled: p
|
48
44
|
});
|
49
|
-
return /* @__PURE__ */
|
50
|
-
|
45
|
+
return /* @__PURE__ */ t(
|
46
|
+
U,
|
51
47
|
{
|
52
48
|
..._(),
|
53
|
-
...
|
54
|
-
className:
|
49
|
+
...E,
|
50
|
+
className: m(
|
55
51
|
"border-dashed border-2 p-6 text-center flex flex-col items-center justify-center",
|
56
52
|
p && "bg-gray-300 pointer-events-none",
|
57
53
|
d.length > 0 ? "border-red-500" : "border-gray-300",
|
58
54
|
B && "bg-gray-100",
|
59
|
-
|
55
|
+
F
|
60
56
|
),
|
61
57
|
ref: P,
|
62
58
|
children: [
|
63
59
|
/* @__PURE__ */ o("input", { ...A() }),
|
64
|
-
c.length === 0 && d.length === 0 && /* @__PURE__ */
|
60
|
+
c.length === 0 && d.length === 0 && /* @__PURE__ */ t(
|
65
61
|
"div",
|
66
62
|
{
|
67
|
-
className:
|
63
|
+
className: m(
|
68
64
|
"flex flex-col items-center gap-1",
|
69
65
|
l == null ? void 0 : l.idleWrapper
|
70
66
|
),
|
71
67
|
children: [
|
72
|
-
/* @__PURE__ */ o(
|
73
|
-
!p && /* @__PURE__ */ o("
|
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 })
|
74
70
|
]
|
75
71
|
}
|
76
72
|
),
|
77
|
-
c.length > 0 && /* @__PURE__ */
|
78
|
-
/* @__PURE__ */
|
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: [
|
79
75
|
D,
|
80
76
|
":"
|
81
77
|
] }),
|
82
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) => {
|
83
|
-
const
|
84
|
-
return /* @__PURE__ */
|
79
|
+
const r = v(e) ? e.name : q(e), n = v(e) ? (e.size / (1024 * 1024)).toFixed(2) + " MB" : "";
|
80
|
+
return /* @__PURE__ */ t(
|
85
81
|
"li",
|
86
82
|
{
|
87
83
|
className: "flex flex-col items-center gap-2 relative",
|
88
84
|
children: [
|
89
|
-
/* @__PURE__ */
|
90
|
-
/* @__PURE__ */ o(
|
85
|
+
/* @__PURE__ */ t("div", { className: "relative", children: [
|
86
|
+
/* @__PURE__ */ o(X, { item: e, styles: l }),
|
91
87
|
/* @__PURE__ */ o("div", { className: "absolute top-0 right-0 cursor-pointer bg-gray-300 rounded-sm", children: /* @__PURE__ */ o(
|
92
|
-
|
88
|
+
O,
|
93
89
|
{
|
94
90
|
size: 16,
|
95
91
|
strokeWidth: 1,
|
96
92
|
color: "black",
|
97
|
-
onClick: (
|
93
|
+
onClick: (f) => T(f, i)
|
98
94
|
}
|
99
95
|
) })
|
100
96
|
] }),
|
101
|
-
/* @__PURE__ */
|
102
|
-
/* @__PURE__ */ o("span", { className: "max-w-[80px] text-ellipsis overflow-hidden whitespace-nowrap", children:
|
103
|
-
n && /* @__PURE__ */
|
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: [
|
104
100
|
"(",
|
105
101
|
n,
|
106
102
|
")"
|
@@ -112,20 +108,20 @@ const H = L(
|
|
112
108
|
);
|
113
109
|
}) })
|
114
110
|
] }),
|
115
|
-
d.length > 0 && /* @__PURE__ */
|
116
|
-
/* @__PURE__ */
|
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: [
|
117
113
|
I,
|
118
114
|
":"
|
119
115
|
] }),
|
120
|
-
/* @__PURE__ */ o("ul", { className: "mt-2 text-sm text-red-500 list-disc list-inside", children: d.map((e, i) => /* @__PURE__ */
|
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: [
|
121
117
|
e.file.name,
|
122
118
|
" (",
|
123
119
|
(e.file.size / (1024 * 1024)).toFixed(2),
|
124
120
|
" MB)",
|
125
|
-
!
|
126
|
-
|
127
|
-
|
128
|
-
|
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
|
129
125
|
] }, n)) })
|
130
126
|
] }, i)) })
|
131
127
|
] })
|
@@ -134,7 +130,7 @@ const H = L(
|
|
134
130
|
);
|
135
131
|
}
|
136
132
|
);
|
137
|
-
|
133
|
+
G.displayName = "Dropzone";
|
138
134
|
export {
|
139
|
-
|
135
|
+
G as Dropzone
|
140
136
|
};
|
package/Dropzone/index.mjs
CHANGED
@@ -1,22 +1,21 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { FormControl as
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
2
|
+
import { FormControl as a } from "../Form/Form.mjs";
|
3
3
|
import { FormRenderControl as l } from "../Form/FormRenderControl.mjs";
|
4
|
-
import { Dropzone as
|
5
|
-
const h = (
|
6
|
-
const { form:
|
7
|
-
return /* @__PURE__ */
|
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
8
|
l,
|
9
9
|
{
|
10
|
-
form:
|
10
|
+
form: e,
|
11
11
|
label: m,
|
12
12
|
name: t,
|
13
|
-
render: ({ field:
|
14
|
-
|
13
|
+
render: ({ field: r }) => /* @__PURE__ */ o(a, { children: /* @__PURE__ */ o(
|
14
|
+
f,
|
15
15
|
{
|
16
|
-
...
|
17
|
-
...
|
18
|
-
|
19
|
-
onChangeValue: o.onChange
|
16
|
+
...p,
|
17
|
+
...r,
|
18
|
+
onChangeValue: r.onChange
|
20
19
|
}
|
21
20
|
) })
|
22
21
|
}
|
@@ -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.mjs
CHANGED
@@ -78,7 +78,7 @@ 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
82
|
import { FormDropzone as Nn } from "./FormDropzone/FormDropzone.mjs";
|
83
83
|
export {
|
84
84
|
e as Accordion,
|
package/package.json
CHANGED
File without changes
|
File without changes
|