@bioturing/components 0.46.0 → 0.46.1
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/code-block/component.js +58 -58
- package/dist/components/code-block/component.js.map +1 -1
- package/dist/components/collapse/component.js +6 -6
- package/dist/components/collapse/component.js.map +1 -1
- package/dist/components/command-palette/component.d.ts.map +1 -1
- package/dist/components/command-palette/component.js +30 -24
- package/dist/components/command-palette/component.js.map +1 -1
- package/dist/components/drag-drop/droppable.d.ts.map +1 -1
- package/dist/components/drag-drop/droppable.js +72 -68
- package/dist/components/drag-drop/droppable.js.map +1 -1
- package/dist/components/drag-drop/index.d.ts.map +1 -1
- package/dist/components/drag-drop/value.d.ts.map +1 -1
- package/dist/components/drag-drop/value.js +40 -56
- package/dist/components/drag-drop/value.js.map +1 -1
- package/dist/components/toast/component.d.ts.map +1 -1
- package/dist/components/toast/component.js +37 -35
- package/dist/components/toast/component.js.map +1 -1
- package/dist/stats.html +1 -1
- package/package.json +1 -1
|
@@ -1,94 +1,98 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import { memo as
|
|
4
|
-
import { useDroppable as
|
|
5
|
-
import { ArrowsOutCardinalIcon as
|
|
6
|
-
import { useRender as
|
|
7
|
-
import { Value as
|
|
8
|
-
import { uniqWith as
|
|
9
|
-
import { useCls as
|
|
10
|
-
import { clsx as
|
|
11
|
-
const Q =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
2
|
+
import { jsxs as w, jsx as i } from "react/jsx-runtime";
|
|
3
|
+
import { memo as B, useCallback as N, useMemo as z } from "react";
|
|
4
|
+
import { useDroppable as P } from "./hooks.js";
|
|
5
|
+
import { ArrowsOutCardinalIcon as S } from "@bioturing/assets";
|
|
6
|
+
import { useRender as W } from "@base-ui/react/use-render";
|
|
7
|
+
import { Value as F } from "./value.js";
|
|
8
|
+
import { uniqWith as G, isEqual as H } from "es-toolkit";
|
|
9
|
+
import { useCls as I } from "../utils/antdUtils.js";
|
|
10
|
+
import { clsx as J } from "../utils/cn.js";
|
|
11
|
+
const K = (t) => Array.isArray(t) ? t.length > 0 : !!t, Q = {
|
|
12
|
+
value: (t) => K(t) ? { "data-value": "true" } : null,
|
|
13
|
+
onChange: () => null
|
|
14
|
+
}, T = ({
|
|
15
|
+
id: t,
|
|
16
|
+
children: p,
|
|
17
|
+
className: D,
|
|
18
|
+
disabled: x = !1,
|
|
19
|
+
placeholder: c = "Drop items here",
|
|
20
|
+
icon: d = /* @__PURE__ */ i(S, {}),
|
|
21
|
+
render: y,
|
|
22
|
+
onDrop: a,
|
|
23
|
+
validate: h,
|
|
24
|
+
multiple: s,
|
|
22
25
|
value: r,
|
|
23
|
-
onChange:
|
|
24
|
-
maxItems:
|
|
25
|
-
renderValueLabel:
|
|
26
|
+
onChange: e,
|
|
27
|
+
maxItems: m,
|
|
28
|
+
renderValueLabel: f,
|
|
26
29
|
renderValueIcon: l,
|
|
27
|
-
...
|
|
30
|
+
...E
|
|
28
31
|
}) => {
|
|
29
|
-
const
|
|
30
|
-
(
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
const o = I(), M = N(
|
|
33
|
+
(n) => {
|
|
34
|
+
a && a(n), e && e(
|
|
35
|
+
s ? G([...r, n.data], H) : n.data
|
|
33
36
|
);
|
|
34
37
|
},
|
|
35
|
-
[
|
|
36
|
-
), { isOver:
|
|
37
|
-
id:
|
|
38
|
-
disabled:
|
|
39
|
-
onDrop:
|
|
40
|
-
validate:
|
|
41
|
-
}),
|
|
38
|
+
[a, e, s, r]
|
|
39
|
+
), { isOver: O, setNodeRef: R, attributes: j, listeners: q } = P({
|
|
40
|
+
id: t,
|
|
41
|
+
disabled: x,
|
|
42
|
+
onDrop: M,
|
|
43
|
+
validate: h
|
|
44
|
+
}), u = z(
|
|
42
45
|
() => ({
|
|
43
46
|
value: r,
|
|
44
|
-
onChange:
|
|
45
|
-
multiple:
|
|
46
|
-
renderValueLabel:
|
|
47
|
+
onChange: e,
|
|
48
|
+
multiple: s,
|
|
49
|
+
renderValueLabel: f,
|
|
47
50
|
renderValueIcon: l,
|
|
48
|
-
maxItems:
|
|
51
|
+
maxItems: m
|
|
49
52
|
}),
|
|
50
|
-
[r,
|
|
51
|
-
),
|
|
52
|
-
() =>
|
|
53
|
-
/* @__PURE__ */
|
|
54
|
-
/* @__PURE__ */
|
|
53
|
+
[r, e, s, f, l, m]
|
|
54
|
+
), b = z(
|
|
55
|
+
() => p || /* @__PURE__ */ w("div", { className: o("drop-zone-content"), children: [
|
|
56
|
+
/* @__PURE__ */ i("div", { className: o("drop-zone-icon"), children: d }),
|
|
57
|
+
/* @__PURE__ */ i("div", { className: o("drop-zone-text"), children: c })
|
|
55
58
|
] }),
|
|
56
|
-
[
|
|
57
|
-
),
|
|
58
|
-
({ className:
|
|
59
|
+
[p, o, d, c]
|
|
60
|
+
), k = N(
|
|
61
|
+
({ className: n, ...A }) => !r || s && Array.isArray(r) && !r.length ? /* @__PURE__ */ i(
|
|
59
62
|
"div",
|
|
60
63
|
{
|
|
61
|
-
className:
|
|
62
|
-
...
|
|
63
|
-
children:
|
|
64
|
+
className: J(o("drop-zone"), n),
|
|
65
|
+
...A,
|
|
66
|
+
children: b
|
|
64
67
|
}
|
|
65
|
-
) : /* @__PURE__ */
|
|
66
|
-
|
|
68
|
+
) : /* @__PURE__ */ i(
|
|
69
|
+
F,
|
|
67
70
|
{
|
|
68
|
-
...
|
|
69
|
-
className:
|
|
70
|
-
...
|
|
71
|
+
...u,
|
|
72
|
+
className: n,
|
|
73
|
+
...A
|
|
71
74
|
}
|
|
72
75
|
),
|
|
73
|
-
[r,
|
|
76
|
+
[r, s, u, b, o]
|
|
74
77
|
);
|
|
75
|
-
return
|
|
76
|
-
render:
|
|
77
|
-
ref:
|
|
78
|
+
return W({
|
|
79
|
+
render: y ?? k,
|
|
80
|
+
ref: R,
|
|
78
81
|
props: {
|
|
79
|
-
className:
|
|
80
|
-
...
|
|
81
|
-
...
|
|
82
|
-
...
|
|
82
|
+
className: D,
|
|
83
|
+
...j,
|
|
84
|
+
...q,
|
|
85
|
+
...E
|
|
83
86
|
},
|
|
84
87
|
state: {
|
|
85
|
-
isOver:
|
|
88
|
+
isOver: O,
|
|
86
89
|
value: r,
|
|
87
|
-
onChange:
|
|
88
|
-
id:
|
|
89
|
-
}
|
|
90
|
+
onChange: e,
|
|
91
|
+
id: t
|
|
92
|
+
},
|
|
93
|
+
stateAttributesMapping: Q
|
|
90
94
|
});
|
|
91
|
-
}, v =
|
|
95
|
+
}, v = B(T);
|
|
92
96
|
export {
|
|
93
97
|
v as Droppable
|
|
94
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droppable.js","sources":["../../../src/components/drag-drop/droppable.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useMemo, memo } from \"react\";\nimport { useDroppable } from \"./hooks\";\nimport { clsx, useCls } from \"../utils\";\nimport { ArrowsOutCardinalIcon } from \"@bioturing/assets\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport type { Data, DragDropDroppableProps, DraggableInfo } from \"./types\";\nimport { Value } from \"./value\";\nimport { uniqWith, isEqual } from \"es-toolkit\";\n\n/**\n * A drop zone component that can receive draggable items\n * Styled similarly to the Upload component's droppable area\n */\nconst DroppableInner = <T extends Data = Data, M extends boolean = false>({\n id,\n children,\n className,\n disabled = false,\n placeholder = \"Drop items here\",\n icon = <ArrowsOutCardinalIcon />,\n render,\n onDrop,\n validate,\n multiple,\n value,\n onChange,\n maxItems,\n renderValueLabel,\n renderValueIcon,\n ...rest\n}: DragDropDroppableProps<T, M>) => {\n const cls = useCls();\n const handleOnDrop = useCallback(\n (item: DraggableInfo<T>) => {\n if (onDrop) {\n onDrop(item);\n }\n if (onChange) {\n if (multiple) {\n (onChange as (value: T[]) => void)(\n uniqWith([...(value as T[]), item.data], isEqual)\n );\n } else {\n (onChange as (value: T) => void)(item.data);\n }\n }\n },\n [onDrop, onChange, multiple, value]\n );\n const { isOver, setNodeRef, attributes, listeners } = useDroppable({\n id,\n disabled,\n onDrop: handleOnDrop,\n validate,\n });\n\n // memoize value props to avoid re-renders\n const valueProps = useMemo(\n () => ({\n value,\n onChange,\n multiple,\n renderValueLabel,\n renderValueIcon,\n maxItems,\n }),\n [value, onChange, multiple, renderValueLabel, renderValueIcon, maxItems]\n );\n\n // memoize dropzone content\n const dropzoneContent = useMemo(\n () =>\n children || (\n <div className={cls(\"drop-zone-content\")}>\n <div className={cls(\"drop-zone-icon\")}>{icon}</div>\n <div className={cls(\"drop-zone-text\")}>{placeholder}</div>\n </div>\n ),\n [children, cls, icon, placeholder]\n );\n\n // memoize default render tree\n const defaultRender = useCallback<\n (props: Record<string, unknown>) => React.ReactElement\n >(\n ({ className, ...props }) => {\n if (!value || (multiple && Array.isArray(value) && !value.length)) {\n return (\n <div\n className={clsx(cls(\"drop-zone\"), className as string)}\n {...props}\n >\n {dropzoneContent}\n </div>\n );\n }\n // return value when there is a value\n return (\n <Value<T, M>\n {...valueProps}\n className={className as string}\n {...props}\n />\n );\n },\n [value, multiple, valueProps, dropzoneContent, cls]\n );\n\n const renderedElement = useRender({\n render: render ?? defaultRender,\n ref: setNodeRef,\n props: {\n className: className,\n ...attributes,\n ...listeners,\n ...rest,\n },\n state: {\n isOver,\n value,\n onChange: onChange as (value: M extends true ? T[] : T) => void,\n id,\n },\n });\n\n return renderedElement;\n};\n\nexport const Droppable = memo(DroppableInner) as typeof DroppableInner;\n"],"names":["DroppableInner","id","children","className","disabled","placeholder","icon","ArrowsOutCardinalIcon","render","onDrop","validate","multiple","
|
|
1
|
+
{"version":3,"file":"droppable.js","sources":["../../../src/components/drag-drop/droppable.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useMemo, memo } from \"react\";\nimport { useDroppable } from \"./hooks\";\nimport { clsx, useCls } from \"../utils\";\nimport { ArrowsOutCardinalIcon } from \"@bioturing/assets\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport type { Data, DragDropDroppableProps, DraggableInfo } from \"./types\";\nimport { Value } from \"./value\";\nimport { uniqWith, isEqual } from \"es-toolkit\";\n\nconst hasDroppableValue = (value: unknown) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n return Boolean(value);\n};\n\nconst droppableStateAttributesMapping = {\n value: (value: unknown) =>\n hasDroppableValue(value) ? { \"data-value\": \"true\" } : null,\n onChange: () => null,\n};\n\n/**\n * A drop zone component that can receive draggable items\n * Styled similarly to the Upload component's droppable area\n */\nconst DroppableInner = <T extends Data = Data, M extends boolean = false>({\n id,\n children,\n className,\n disabled = false,\n placeholder = \"Drop items here\",\n icon = <ArrowsOutCardinalIcon />,\n render,\n onDrop,\n validate,\n multiple,\n value,\n onChange,\n maxItems,\n renderValueLabel,\n renderValueIcon,\n ...rest\n}: DragDropDroppableProps<T, M>) => {\n const cls = useCls();\n const handleOnDrop = useCallback(\n (item: DraggableInfo<T>) => {\n if (onDrop) {\n onDrop(item);\n }\n if (onChange) {\n if (multiple) {\n (onChange as (value: T[]) => void)(\n uniqWith([...(value as T[]), item.data], isEqual)\n );\n } else {\n (onChange as (value: T) => void)(item.data);\n }\n }\n },\n [onDrop, onChange, multiple, value]\n );\n const { isOver, setNodeRef, attributes, listeners } = useDroppable({\n id,\n disabled,\n onDrop: handleOnDrop,\n validate,\n });\n\n // memoize value props to avoid re-renders\n const valueProps = useMemo(\n () => ({\n value,\n onChange,\n multiple,\n renderValueLabel,\n renderValueIcon,\n maxItems,\n }),\n [value, onChange, multiple, renderValueLabel, renderValueIcon, maxItems]\n );\n\n // memoize dropzone content\n const dropzoneContent = useMemo(\n () =>\n children || (\n <div className={cls(\"drop-zone-content\")}>\n <div className={cls(\"drop-zone-icon\")}>{icon}</div>\n <div className={cls(\"drop-zone-text\")}>{placeholder}</div>\n </div>\n ),\n [children, cls, icon, placeholder]\n );\n\n // memoize default render tree\n const defaultRender = useCallback<\n (props: Record<string, unknown>) => React.ReactElement\n >(\n ({ className, ...props }) => {\n if (!value || (multiple && Array.isArray(value) && !value.length)) {\n return (\n <div\n className={clsx(cls(\"drop-zone\"), className as string)}\n {...props}\n >\n {dropzoneContent}\n </div>\n );\n }\n // return value when there is a value\n return (\n <Value<T, M>\n {...valueProps}\n className={className as string}\n {...props}\n />\n );\n },\n [value, multiple, valueProps, dropzoneContent, cls]\n );\n\n const renderedElement = useRender({\n render: render ?? defaultRender,\n ref: setNodeRef,\n props: {\n className: className,\n ...attributes,\n ...listeners,\n ...rest,\n },\n state: {\n isOver,\n value,\n onChange: onChange as (value: M extends true ? T[] : T) => void,\n id,\n },\n stateAttributesMapping: droppableStateAttributesMapping,\n });\n\n return renderedElement;\n};\n\nexport const Droppable = memo(DroppableInner) as typeof DroppableInner;\n"],"names":["hasDroppableValue","value","droppableStateAttributesMapping","DroppableInner","id","children","className","disabled","placeholder","icon","ArrowsOutCardinalIcon","render","onDrop","validate","multiple","onChange","maxItems","renderValueLabel","renderValueIcon","rest","cls","useCls","handleOnDrop","useCallback","item","uniqWith","isEqual","isOver","setNodeRef","attributes","listeners","useDroppable","valueProps","useMemo","dropzoneContent","jsxs","jsx","defaultRender","props","clsx","Value","useRender","Droppable","memo"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/drag-drop/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,IAAI,IAAI,QAAQ,EAErB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AASjB,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,EAC1D,QAAQ,EAER,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,OAAO,EACf,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CA6BlB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/drag-drop/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,IAAI,IAAI,QAAQ,EAErB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AASjB,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,EAC1D,QAAQ,EAER,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,OAAO,EACf,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CA6BlB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;WAYuoD,CAAC;;CAV3oD,CAAC;AAEH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,QAAQ,EACR,aAAa,GACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/components/drag-drop/value.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/components/drag-drop/value.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA+C,KAAK,YAAY,EAAY,MAAM,OAAO,CAAC;AAOjG,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAGxD,iBAAS,UAAU,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,OAAO,EACnD,EACE,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,GAAG,EAAE,YAAY,CAAC,cAAc,CAAC,2CA2GlC;AAED,eAAO,MAAM,KAAK,EAAmC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,OAAO,EACrF,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;CAAE,KACrE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -1,87 +1,72 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as o, jsxs as
|
|
3
|
-
import { FileIcon as
|
|
4
|
-
import { isEqual as
|
|
5
|
-
import { memo as
|
|
2
|
+
import { jsx as o, jsxs as M, Fragment as h } from "react/jsx-runtime";
|
|
3
|
+
import { FileIcon as T, XIcon as q } from "@bioturing/assets";
|
|
4
|
+
import { isEqual as x } from "es-toolkit";
|
|
5
|
+
import { memo as y, forwardRef as B, useState as C, useCallback as n, cloneElement as I } from "react";
|
|
6
6
|
import { Stack as X } from "../stack/index.js";
|
|
7
7
|
import v from "merge-refs";
|
|
8
8
|
import { Tag as A } from "../tag/component.js";
|
|
9
9
|
import { useCls as D } from "../utils/antdUtils.js";
|
|
10
10
|
import { Truncate as G } from "../truncate/component.js";
|
|
11
11
|
import { IconButton as H } from "../icon-button/component.js";
|
|
12
|
-
|
|
12
|
+
import { clsx as J } from "../utils/cn.js";
|
|
13
|
+
function K({
|
|
13
14
|
value: s,
|
|
14
15
|
onChange: c,
|
|
15
16
|
multiple: t,
|
|
16
|
-
renderValueLabel:
|
|
17
|
-
renderValueIcon:
|
|
17
|
+
renderValueLabel: p,
|
|
18
|
+
renderValueIcon: d,
|
|
18
19
|
className: R,
|
|
19
20
|
style: E,
|
|
20
|
-
maxItems:
|
|
21
|
+
maxItems: i,
|
|
21
22
|
...N
|
|
22
23
|
}, S) {
|
|
23
|
-
const l = D(), [u, g] =
|
|
24
|
-
g(
|
|
25
|
-
}, []),
|
|
26
|
-
(
|
|
27
|
-
const
|
|
28
|
-
return typeof
|
|
29
|
-
G,
|
|
30
|
-
{
|
|
31
|
-
position: "middle",
|
|
32
|
-
className: l("dropzone-value-label"),
|
|
33
|
-
container: u,
|
|
34
|
-
children: r
|
|
35
|
-
}
|
|
36
|
-
) : /* @__PURE__ */ o("span", { className: l("dropzone-value-label"), children: r });
|
|
24
|
+
const l = D(), [u, g] = C(null), k = n((r) => {
|
|
25
|
+
g(r);
|
|
26
|
+
}, []), a = n(
|
|
27
|
+
(r) => {
|
|
28
|
+
const e = p(r);
|
|
29
|
+
return typeof e == "string" ? /* @__PURE__ */ o(G, { position: "middle", className: l("dropzone-value-label"), container: u, children: e }) : /* @__PURE__ */ o("span", { className: l("dropzone-value-label"), children: e });
|
|
37
30
|
},
|
|
38
|
-
[l, u,
|
|
39
|
-
),
|
|
40
|
-
(
|
|
31
|
+
[l, u, p]
|
|
32
|
+
), m = n(
|
|
33
|
+
(r) => I(d(r) || /* @__PURE__ */ o(T, {}), {
|
|
41
34
|
className: l("dropzone-value-icon")
|
|
42
35
|
}),
|
|
43
|
-
[l,
|
|
36
|
+
[l, d]
|
|
44
37
|
), b = n(
|
|
45
|
-
(
|
|
46
|
-
c(
|
|
47
|
-
s.filter((r) => !q(r, e))
|
|
48
|
-
);
|
|
38
|
+
(r) => {
|
|
39
|
+
c(s.filter((e) => !x(e, r)));
|
|
49
40
|
},
|
|
50
41
|
[c, s]
|
|
51
42
|
), z = n(() => {
|
|
52
43
|
t ? c([]) : c?.(null);
|
|
53
|
-
}, [c, t]),
|
|
54
|
-
(
|
|
55
|
-
const
|
|
56
|
-
return /* @__PURE__ */
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/* @__PURE__ */ o(H, { size: "small", onClick: z, children: /* @__PURE__ */ o(
|
|
44
|
+
}, [c, t]), f = n(
|
|
45
|
+
(r) => {
|
|
46
|
+
const e = a(r);
|
|
47
|
+
return /* @__PURE__ */ M(h, { children: [
|
|
48
|
+
m(r),
|
|
49
|
+
e,
|
|
50
|
+
/* @__PURE__ */ o(H, { size: "small", onClick: z, children: /* @__PURE__ */ o(q, {}) })
|
|
60
51
|
] });
|
|
61
52
|
},
|
|
62
|
-
[
|
|
53
|
+
[a, m, z]
|
|
63
54
|
), j = n(
|
|
64
|
-
(
|
|
65
|
-
const F =
|
|
55
|
+
(r) => i == 1 ? f(r[0]) : /* @__PURE__ */ o(h, { children: (r || []).map((e, w) => {
|
|
56
|
+
const F = a(e);
|
|
66
57
|
return /* @__PURE__ */ o(
|
|
67
58
|
A,
|
|
68
59
|
{
|
|
69
|
-
icon:
|
|
60
|
+
icon: m(e),
|
|
70
61
|
size: "large",
|
|
71
62
|
closable: !0,
|
|
72
|
-
onClose: () => b(
|
|
63
|
+
onClose: () => b(e),
|
|
73
64
|
children: F
|
|
74
65
|
},
|
|
75
66
|
w
|
|
76
67
|
);
|
|
77
68
|
}) }),
|
|
78
|
-
[
|
|
79
|
-
i,
|
|
80
|
-
a,
|
|
81
|
-
m,
|
|
82
|
-
d,
|
|
83
|
-
b
|
|
84
|
-
]
|
|
69
|
+
[a, m, i, f, b]
|
|
85
70
|
);
|
|
86
71
|
return /* @__PURE__ */ o(
|
|
87
72
|
X,
|
|
@@ -89,20 +74,19 @@ function J({
|
|
|
89
74
|
ref: v(S, k),
|
|
90
75
|
gap: t ? 4 : 8,
|
|
91
76
|
align: "center",
|
|
92
|
-
wrap: t &&
|
|
93
|
-
className:
|
|
94
|
-
"dropzone-value",
|
|
95
|
-
t && "dropzone-value-multiple",
|
|
77
|
+
wrap: t && i !== 1,
|
|
78
|
+
className: J(
|
|
79
|
+
l("dropzone-value", t && i != 1 && "dropzone-value-multiple"),
|
|
96
80
|
R
|
|
97
81
|
),
|
|
98
82
|
style: E,
|
|
99
83
|
...N,
|
|
100
|
-
children: t ? j(s) :
|
|
84
|
+
children: t ? j(s) : f(s)
|
|
101
85
|
}
|
|
102
86
|
);
|
|
103
87
|
}
|
|
104
|
-
const
|
|
88
|
+
const rr = y(B(K));
|
|
105
89
|
export {
|
|
106
|
-
|
|
90
|
+
rr as Value
|
|
107
91
|
};
|
|
108
92
|
//# sourceMappingURL=value.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value.js","sources":["../../../src/components/drag-drop/value.tsx"],"sourcesContent":["\"use client\";\nimport { FileIcon, XIcon } from \"@bioturing/assets\";\nimport { isEqual } from \"es-toolkit\";\nimport {
|
|
1
|
+
{"version":3,"file":"value.js","sources":["../../../src/components/drag-drop/value.tsx"],"sourcesContent":["\"use client\";\nimport { FileIcon, XIcon } from \"@bioturing/assets\";\nimport { isEqual } from \"es-toolkit\";\nimport { cloneElement, forwardRef, memo, useCallback, type ForwardedRef, useState } from \"react\";\nimport { IconButton } from \"../icon-button\";\nimport { clsx } from \"../utils\";\nimport { Stack } from \"../stack\";\nimport { Tag } from \"../tag\";\nimport { Truncate } from \"../truncate\";\nimport { useCls } from \"../utils\";\nimport { DragDropValueProps, type Data } from \"./types\";\nimport mergeRefs from \"merge-refs\";\n\nfunction ValueInner<T extends Data, M extends boolean>(\n {\n value,\n onChange,\n multiple,\n renderValueLabel,\n renderValueIcon,\n className,\n style,\n maxItems,\n ...rest\n }: DragDropValueProps<T, M>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const cls = useCls();\n\n // todo: make this as reusable hook\n const [containerEl, setContainerEl] = useState<HTMLDivElement>(null);\n const containerRef = useCallback((el: HTMLDivElement | null) => {\n setContainerEl(el);\n }, []);\n\n const renderLabel = useCallback(\n (value: T) => {\n const label = renderValueLabel(value);\n return typeof label === \"string\" ? (\n <Truncate position=\"middle\" className={cls(\"dropzone-value-label\")} container={containerEl}>\n {label}\n </Truncate>\n ) : (\n <span className={cls(\"dropzone-value-label\")}>{label}</span>\n );\n },\n [cls, containerEl, renderValueLabel],\n );\n\n const renderedValueIcon = useCallback(\n (value: T) => {\n return cloneElement(renderValueIcon(value) || <FileIcon />, {\n className: cls(\"dropzone-value-icon\"),\n });\n },\n [cls, renderValueIcon],\n );\n\n const handleResetMultiple = useCallback(\n (singleValue: T) => {\n (onChange as (value: T[]) => void)((value as T[]).filter((v) => !isEqual(v, singleValue)));\n },\n [onChange, value],\n );\n\n const handleResetSingle = useCallback(() => {\n if (multiple) {\n (onChange as (value: T[]) => void)([] as T[]);\n } else {\n onChange?.(null);\n }\n }, [onChange, multiple]);\n\n const renderSingle = useCallback(\n (value: T) => {\n const label = renderLabel(value as T);\n return (\n <>\n {renderedValueIcon(value as T)}\n {label}\n <IconButton size=\"small\" onClick={handleResetSingle}>\n <XIcon />\n </IconButton>\n </>\n );\n },\n [renderLabel, renderedValueIcon, handleResetSingle],\n );\n\n const renderMultiple = useCallback(\n (value: T[]) => {\n if (maxItems == 1) {\n return renderSingle(value[0]);\n }\n return (\n <>\n {((value as T[]) || []).map((singleValue, index) => {\n const label = renderLabel(singleValue);\n return (\n <Tag\n key={index}\n icon={renderedValueIcon(singleValue)}\n size=\"large\"\n closable\n onClose={() => handleResetMultiple(singleValue)}\n >\n {label}\n </Tag>\n );\n })}\n </>\n );\n },\n [renderLabel, renderedValueIcon, maxItems, renderSingle, handleResetMultiple],\n );\n\n return (\n <Stack\n ref={mergeRefs(ref, containerRef)}\n gap={multiple ? 4 : 8}\n align=\"center\"\n wrap={multiple && maxItems !== 1}\n className={clsx(\n cls(\"dropzone-value\", multiple && maxItems != 1 && \"dropzone-value-multiple\"),\n className,\n )}\n style={style}\n {...rest}\n >\n {multiple ? renderMultiple(value as T[]) : renderSingle(value as T)}\n </Stack>\n );\n}\n\nexport const Value = memo(forwardRef(ValueInner)) as <T extends Data, M extends boolean>(\n props: DragDropValueProps<T, M> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReturnType<typeof ValueInner>;\n"],"names":["ValueInner","value","onChange","multiple","renderValueLabel","renderValueIcon","className","style","maxItems","rest","ref","cls","useCls","containerEl","setContainerEl","useState","containerRef","useCallback","el","renderLabel","label","jsx","Truncate","renderedValueIcon","cloneElement","FileIcon","handleResetMultiple","singleValue","v","isEqual","handleResetSingle","renderSingle","jsxs","Fragment","IconButton","XIcon","renderMultiple","index","Tag","Stack","mergeRefs","clsx","Value","memo","forwardRef"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/toast/component.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAS7D,OAAO,aAAa,CAAC;AAErB,iBAAS,UAAU,CAAC,EAClB,KAAK,GACN,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;CAC9C,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/toast/component.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAS7D,OAAO,aAAa,CAAC;AAErB,iBAAS,UAAU,CAAC,EAClB,KAAK,GACN,EAAE;IACD,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;CAC9C,2CAmFA;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAavD;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAE/C;AAED,eAAO,MAAM,KAAK;;;CAGhB,CAAC"}
|
|
@@ -1,41 +1,43 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as c, jsx as r } from "react/jsx-runtime";
|
|
3
|
-
import { XIcon as
|
|
3
|
+
import { XIcon as g, CircleNotchIcon as w, CheckCircleIcon as C, XCircleIcon as I, WarningCircleIcon as T, InfoIcon as k } from "@bioturing/assets";
|
|
4
4
|
import { Toast as e } from "@base-ui/react";
|
|
5
5
|
import { toastManager as a } from "./function.js";
|
|
6
|
-
import { useEffect as
|
|
7
|
-
import { Button as
|
|
8
|
-
import { Modal as
|
|
6
|
+
import { useEffect as b, useCallback as v } from "react";
|
|
7
|
+
import { Button as x } from "../button/component.js";
|
|
8
|
+
import { Modal as P } from "../modal/index.js";
|
|
9
9
|
import './style.css';/* empty css */
|
|
10
|
-
import { isTracebackError as
|
|
11
|
-
import { CodeBlock as
|
|
12
|
-
import { useCls as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
function
|
|
10
|
+
import { isTracebackError as B } from "../utils/isTracebackError.js";
|
|
11
|
+
import { CodeBlock as M } from "../code-block/component.js";
|
|
12
|
+
import { useCls as f } from "../utils/antdUtils.js";
|
|
13
|
+
import { clsx as l } from "../utils/cn.js";
|
|
14
|
+
import { IconButton as j } from "../icon-button/component.js";
|
|
15
|
+
function u({
|
|
16
16
|
toast: o
|
|
17
17
|
}) {
|
|
18
|
-
const t =
|
|
19
|
-
info: /* @__PURE__ */ r(
|
|
20
|
-
warning: /* @__PURE__ */ r(
|
|
21
|
-
error: /* @__PURE__ */ r(
|
|
22
|
-
success: /* @__PURE__ */ r(
|
|
23
|
-
progress: /* @__PURE__ */ r(
|
|
24
|
-
}, i = o.data?.type || "info", s =
|
|
25
|
-
|
|
18
|
+
const t = f(), n = {
|
|
19
|
+
info: /* @__PURE__ */ r(k, { weight: "fill" }),
|
|
20
|
+
warning: /* @__PURE__ */ r(T, { weight: "fill" }),
|
|
21
|
+
error: /* @__PURE__ */ r(I, { weight: "fill" }),
|
|
22
|
+
success: /* @__PURE__ */ r(C, { weight: "fill" }),
|
|
23
|
+
progress: /* @__PURE__ */ r(w, {})
|
|
24
|
+
}, i = o.data?.type || "info", s = B(o?.description);
|
|
25
|
+
b(() => {
|
|
26
26
|
s && a.update(o.id, { timeout: 0 });
|
|
27
27
|
}, [s, o.id]);
|
|
28
|
-
const
|
|
29
|
-
(
|
|
30
|
-
const { children:
|
|
28
|
+
const h = v(
|
|
29
|
+
(N) => {
|
|
30
|
+
const { children: d, className: m, ...p } = N;
|
|
31
31
|
return s ? /* @__PURE__ */ c(
|
|
32
32
|
"div",
|
|
33
33
|
{
|
|
34
|
-
...
|
|
35
|
-
className:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
...p,
|
|
35
|
+
className: l(
|
|
36
|
+
t(
|
|
37
|
+
"toast-description",
|
|
38
|
+
s ? "toast-description-traceback" : ""
|
|
39
|
+
),
|
|
40
|
+
m
|
|
39
41
|
),
|
|
40
42
|
children: [
|
|
41
43
|
/* @__PURE__ */ c("p", { children: [
|
|
@@ -44,13 +46,13 @@ function f({
|
|
|
44
46
|
"Please contact us with error details for support."
|
|
45
47
|
] }),
|
|
46
48
|
/* @__PURE__ */ r("p", { children: /* @__PURE__ */ r(
|
|
47
|
-
|
|
49
|
+
x,
|
|
48
50
|
{
|
|
49
51
|
size: "small",
|
|
50
52
|
onClick: () => {
|
|
51
|
-
|
|
53
|
+
P.open({
|
|
52
54
|
title: "Error details",
|
|
53
|
-
content: /* @__PURE__ */ r(
|
|
55
|
+
content: /* @__PURE__ */ r(M, { children: d }),
|
|
54
56
|
hideOkButton: !0
|
|
55
57
|
}), a.close(o.id);
|
|
56
58
|
},
|
|
@@ -59,7 +61,7 @@ function f({
|
|
|
59
61
|
) })
|
|
60
62
|
]
|
|
61
63
|
}
|
|
62
|
-
) : /* @__PURE__ */ r("p", { ...
|
|
64
|
+
) : /* @__PURE__ */ r("p", { ...p, className: l(t("toast-description"), m), children: d });
|
|
63
65
|
},
|
|
64
66
|
[s, t, o.id]
|
|
65
67
|
);
|
|
@@ -67,19 +69,19 @@ function f({
|
|
|
67
69
|
/* @__PURE__ */ r("span", { className: t("toast-icon-wrap"), children: /* @__PURE__ */ r("span", { className: t("toast-icon", `toast-icon-${i}`), children: n[i] }) }),
|
|
68
70
|
/* @__PURE__ */ c("div", { className: t("toast-content"), children: [
|
|
69
71
|
/* @__PURE__ */ r(e.Title, { className: t("toast-title") }),
|
|
70
|
-
/* @__PURE__ */ r(e.Description, { render:
|
|
72
|
+
/* @__PURE__ */ r(e.Description, { render: h })
|
|
71
73
|
] }),
|
|
72
|
-
/* @__PURE__ */ r(e.Close, { className: t("toast-close"), children: /* @__PURE__ */ r(
|
|
74
|
+
/* @__PURE__ */ r(e.Close, { className: t("toast-close"), children: /* @__PURE__ */ r(j, { as: "span", size: "small", children: /* @__PURE__ */ r(g, {}) }) })
|
|
73
75
|
] });
|
|
74
76
|
}
|
|
75
77
|
function E({ className: o }) {
|
|
76
|
-
const { toasts: t } = e.useToastManager(), n =
|
|
77
|
-
return /* @__PURE__ */ r(e.Portal, { children: /* @__PURE__ */ r(e.Viewport, { className:
|
|
78
|
+
const { toasts: t } = e.useToastManager(), n = f();
|
|
79
|
+
return /* @__PURE__ */ r(e.Portal, { children: /* @__PURE__ */ r(e.Viewport, { className: l(n("toast-viewport"), o), children: t.map((i) => /* @__PURE__ */ r(u, { toast: i }, i.id)) }) });
|
|
78
80
|
}
|
|
79
81
|
function y(o) {
|
|
80
82
|
return /* @__PURE__ */ r(e.Provider, { toastManager: a, ...o });
|
|
81
83
|
}
|
|
82
|
-
const H = Object.assign(
|
|
84
|
+
const H = Object.assign(u, {
|
|
83
85
|
List: E,
|
|
84
86
|
Provider: y
|
|
85
87
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/toast/component.tsx"],"sourcesContent":["\"use client\";\nimport { useCls, clsx } from \"../utils\";\nimport {\n CheckCircleIcon,\n CircleNotchIcon,\n InfoIcon,\n WarningCircleIcon,\n XIcon,\n XCircleIcon,\n} from \"@bioturing/assets\";\nimport { Toast as BaseToast } from \"@base-ui/react\";\nimport { IconButton } from \"../icon-button\";\nimport { ToastData, type ToastProviderProps } from \"./types\";\nimport { toastManager } from \"./function\";\nimport { isTracebackError, type GenericHTMLProps } from \"../utils\";\nimport { useCallback, useEffect } from \"react\";\nimport { Button } from \"../button/component\";\nimport { Modal } from \"../modal\";\nimport { CodeBlock } from \"../code-block\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nfunction InnerToast({\n toast,\n}: {\n toast: BaseToast.Root.ToastObject<ToastData>;\n}) {\n const cls = useCls();\n const toastIconMap = {\n info: <InfoIcon weight=\"fill\" />,\n warning: <WarningCircleIcon weight=\"fill\" />,\n error: <XCircleIcon weight=\"fill\" />,\n success: <CheckCircleIcon weight=\"fill\" />,\n progress: <CircleNotchIcon />,\n };\n const type = toast.data?.type || \"info\";\n const isTraceback = isTracebackError(toast?.description);\n\n // Update manager timeout for traceback to disable auto-dismiss\n useEffect(() => {\n if (isTraceback) {\n toastManager.update(toast.id, { timeout: 0 });\n }\n }, [isTraceback, toast.id]);\n // console.log(toast);\n const renderDescription: BaseToast.Description.Props[\"render\"] = useCallback(\n (props: GenericHTMLProps) => {\n const { children, className, ...rest } = props;\n if (isTraceback) {\n return (\n <div\n {...rest}\n className={
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/toast/component.tsx"],"sourcesContent":["\"use client\";\nimport { useCls, clsx } from \"../utils\";\nimport {\n CheckCircleIcon,\n CircleNotchIcon,\n InfoIcon,\n WarningCircleIcon,\n XIcon,\n XCircleIcon,\n} from \"@bioturing/assets\";\nimport { Toast as BaseToast } from \"@base-ui/react\";\nimport { IconButton } from \"../icon-button\";\nimport { ToastData, type ToastProviderProps } from \"./types\";\nimport { toastManager } from \"./function\";\nimport { isTracebackError, type GenericHTMLProps } from \"../utils\";\nimport { useCallback, useEffect } from \"react\";\nimport { Button } from \"../button/component\";\nimport { Modal } from \"../modal\";\nimport { CodeBlock } from \"../code-block\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nfunction InnerToast({\n toast,\n}: {\n toast: BaseToast.Root.ToastObject<ToastData>;\n}) {\n const cls = useCls();\n const toastIconMap = {\n info: <InfoIcon weight=\"fill\" />,\n warning: <WarningCircleIcon weight=\"fill\" />,\n error: <XCircleIcon weight=\"fill\" />,\n success: <CheckCircleIcon weight=\"fill\" />,\n progress: <CircleNotchIcon />,\n };\n const type = toast.data?.type || \"info\";\n const isTraceback = isTracebackError(toast?.description);\n\n // Update manager timeout for traceback to disable auto-dismiss\n useEffect(() => {\n if (isTraceback) {\n toastManager.update(toast.id, { timeout: 0 });\n }\n }, [isTraceback, toast.id]);\n // console.log(toast);\n const renderDescription: BaseToast.Description.Props[\"render\"] = useCallback(\n (props: GenericHTMLProps) => {\n const { children, className, ...rest } = props;\n if (isTraceback) {\n return (\n <div\n {...rest}\n className={clsx(\n cls(\n \"toast-description\",\n isTraceback ? \"toast-description-traceback\" : \"\"\n ),\n className\n )}\n >\n <p>\n An unexpected error occurred.\n <br />\n Please contact us with error details for support.\n </p>\n <p>\n <Button\n size=\"small\"\n onClick={() => {\n Modal.open({\n title: \"Error details\",\n content: <CodeBlock>{children}</CodeBlock>,\n hideOkButton: true,\n });\n toastManager.close(toast.id);\n }}\n >\n View error details\n </Button>\n </p>\n </div>\n );\n }\n return (\n <p {...rest} className={clsx(cls(\"toast-description\"), className)}>\n {children}\n </p>\n );\n },\n [isTraceback, cls, toast.id]\n );\n return (\n <BaseToast.Root toast={toast} className={cls(\"toast\")}>\n <span className={cls(\"toast-icon-wrap\")}>\n <span className={cls(\"toast-icon\", `toast-icon-${type}`)}>\n {toastIconMap[type]}\n </span>\n </span>\n <div className={cls(\"toast-content\")}>\n <BaseToast.Title className={cls(\"toast-title\")} />\n <BaseToast.Description render={renderDescription} />\n </div>\n <BaseToast.Close className={cls(\"toast-close\")}>\n <IconButton as=\"span\" size=\"small\">\n <XIcon />\n </IconButton>\n </BaseToast.Close>\n </BaseToast.Root>\n );\n}\n\nfunction ToastList({ className }: { className?: string }) {\n const { toasts } = BaseToast.useToastManager();\n const cls = useCls();\n\n return (\n <BaseToast.Portal>\n <BaseToast.Viewport className={clsx(cls(\"toast-viewport\"), className)}>\n {toasts.map((toast) => (\n <InnerToast key={toast.id} toast={toast} />\n ))}\n </BaseToast.Viewport>\n </BaseToast.Portal>\n );\n}\n\nfunction ToastProvider(props: ToastProviderProps) {\n return <BaseToast.Provider toastManager={toastManager} {...props} />;\n}\n\nexport const Toast = Object.assign(InnerToast, {\n List: ToastList,\n Provider: ToastProvider,\n});\n"],"names":["InnerToast","toast","cls","useCls","toastIconMap","jsx","InfoIcon","WarningCircleIcon","XCircleIcon","CheckCircleIcon","CircleNotchIcon","type","isTraceback","isTracebackError","useEffect","toastManager","renderDescription","useCallback","props","children","className","rest","jsxs","clsx","Button","Modal","CodeBlock","BaseToast","IconButton","XIcon","ToastList","toasts","ToastProvider","Toast"],"mappings":"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"}
|