@bioturing/components 0.34.0 → 0.35.3
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/base-menu/component.d.ts +12 -0
- package/dist/components/base-menu/component.d.ts.map +1 -0
- package/dist/components/base-menu/component.js +69 -0
- package/dist/components/base-menu/component.js.map +1 -0
- package/dist/components/base-menu/index.d.ts +18 -0
- package/dist/components/base-menu/index.d.ts.map +1 -0
- package/dist/components/base-menu/index.js +11 -0
- package/dist/components/base-menu/index.js.map +1 -0
- package/dist/components/base-menu/item.css +1 -0
- package/dist/components/base-menu/item.d.ts +47 -0
- package/dist/components/base-menu/item.d.ts.map +1 -0
- package/dist/components/base-menu/item.js +73 -0
- package/dist/components/base-menu/item.js.map +1 -0
- package/dist/components/base-menu/style.css +1 -0
- package/dist/components/breadcrumb/component.d.ts +3 -2
- package/dist/components/breadcrumb/component.d.ts.map +1 -1
- package/dist/components/breadcrumb/component.js +138 -38
- package/dist/components/breadcrumb/component.js.map +1 -1
- package/dist/components/breadcrumb/index.d.ts +1 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -1
- package/dist/components/breadcrumb/item.d.ts +3 -0
- package/dist/components/breadcrumb/item.d.ts.map +1 -0
- package/dist/components/breadcrumb/item.js +19 -0
- package/dist/components/breadcrumb/item.js.map +1 -0
- package/dist/components/breadcrumb/style.css +1 -1
- package/dist/components/breadcrumb/types.d.ts +9 -2
- package/dist/components/breadcrumb/types.d.ts.map +1 -1
- package/dist/components/code-block/types.d.ts +2 -2
- package/dist/components/code-block/types.d.ts.map +1 -1
- package/dist/components/combobox/component.d.ts +3 -26
- package/dist/components/combobox/component.d.ts.map +1 -1
- package/dist/components/combobox/component.js +326 -216
- package/dist/components/combobox/component.js.map +1 -1
- package/dist/components/combobox/style.css +1 -1
- package/dist/components/command-palette/component.js +6 -6
- package/dist/components/command-palette/component.js.map +1 -1
- package/dist/components/dropdown-menu/component.d.ts.map +1 -1
- package/dist/components/dropdown-menu/component.js +90 -87
- package/dist/components/dropdown-menu/component.js.map +1 -1
- package/dist/components/dropdown-menu/divider.d.ts.map +1 -1
- package/dist/components/dropdown-menu/divider.js +17 -10
- package/dist/components/dropdown-menu/divider.js.map +1 -1
- package/dist/components/dropdown-menu/item.d.ts +19 -9
- package/dist/components/dropdown-menu/item.d.ts.map +1 -1
- package/dist/components/dropdown-menu/item.js +82 -131
- package/dist/components/dropdown-menu/item.js.map +1 -1
- package/dist/components/dropdown-menu/style.css +1 -1
- package/dist/components/dropdown-menu/useDropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/useDropdownMenu.js +60 -63
- package/dist/components/dropdown-menu/useDropdownMenu.js.map +1 -1
- package/dist/components/field/component.d.ts +5 -1
- package/dist/components/field/component.d.ts.map +1 -1
- package/dist/components/field/component.js +29 -20
- package/dist/components/field/component.js.map +1 -1
- package/dist/components/popup-panel/component.d.ts.map +1 -1
- package/dist/components/popup-panel/component.js +101 -101
- package/dist/components/popup-panel/component.js.map +1 -1
- package/dist/components/select-trigger/component.d.ts +71 -9
- package/dist/components/select-trigger/component.d.ts.map +1 -1
- package/dist/components/select-trigger/component.js +180 -139
- package/dist/components/select-trigger/component.js.map +1 -1
- package/dist/components/select-trigger/index.d.ts +1 -2
- package/dist/components/select-trigger/index.d.ts.map +1 -1
- package/dist/components/select-trigger/style.css +1 -1
- package/dist/components/table/component.d.ts.map +1 -1
- package/dist/components/table/component.js +53 -52
- package/dist/components/table/component.js.map +1 -1
- package/dist/components/theme-provider/style.css +1 -1
- package/dist/components/truncate/component.d.ts.map +1 -1
- package/dist/components/truncate/component.js +84 -80
- package/dist/components/truncate/component.js.map +1 -1
- package/dist/components/truncate/helpers.d.ts +9 -0
- package/dist/components/truncate/helpers.d.ts.map +1 -1
- package/dist/components/truncate/helpers.js +70 -40
- package/dist/components/truncate/helpers.js.map +1 -1
- package/dist/components/truncate/index.d.ts +1 -0
- package/dist/components/truncate/index.d.ts.map +1 -1
- package/dist/components/truncate/useOverflowDetection.d.ts +19 -0
- package/dist/components/truncate/useOverflowDetection.d.ts.map +1 -0
- package/dist/components/truncate/useOverflowDetection.js +54 -0
- package/dist/components/truncate/useOverflowDetection.js.map +1 -0
- package/dist/components/utils/WithRenderProp.d.ts.map +1 -1
- package/dist/components/utils/WithRenderProp.js +10 -10
- package/dist/components/utils/WithRenderProp.js.map +1 -1
- package/dist/components/utils/client.d.ts +1 -0
- package/dist/components/utils/client.d.ts.map +1 -1
- package/dist/components/utils/createSyntheticClickEvent.d.ts +13 -0
- package/dist/components/utils/createSyntheticClickEvent.d.ts.map +1 -0
- package/dist/components/utils/createSyntheticClickEvent.js +62 -0
- package/dist/components/utils/createSyntheticClickEvent.js.map +1 -0
- package/dist/components/vertical-collapsible-panel/component.d.ts +14 -0
- package/dist/components/vertical-collapsible-panel/component.d.ts.map +1 -1
- package/dist/components/vertical-collapsible-panel/component.js +82 -75
- package/dist/components/vertical-collapsible-panel/component.js.map +1 -1
- package/dist/components/vertical-collapsible-panel/style.css +1 -1
- package/dist/index.js +273 -265
- package/dist/index.js.map +1 -1
- package/dist/stats.html +1 -1
- package/package.json +5 -6
- package/dist/components/dropdown-menu/item.css +0 -1
|
@@ -1,150 +1,191 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { forwardRef as
|
|
6
|
-
import { WithRenderProp as
|
|
2
|
+
import { jsx as n, jsxs as L } from "react/jsx-runtime";
|
|
3
|
+
import { CaretDownIcon as $, XCircleIcon as y } from "@bioturing/assets";
|
|
4
|
+
import K from "merge-refs";
|
|
5
|
+
import { forwardRef as p, useRef as V, useEffect as W, createContext as X, useCallback as q, useContext as B } from "react";
|
|
6
|
+
import { WithRenderProp as h } from "../utils/WithRenderProp.js";
|
|
7
7
|
import './style.css';/* empty css */
|
|
8
|
-
import { useCls as
|
|
9
|
-
import { clsx as
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
import { useCls as C } from "../utils/antdUtils.js";
|
|
9
|
+
import { clsx as w } from "../utils/cn.js";
|
|
10
|
+
const b = X(
|
|
11
|
+
null
|
|
12
|
+
), T = () => {
|
|
13
|
+
const r = B(b);
|
|
14
|
+
if (!r)
|
|
15
|
+
throw new Error(
|
|
16
|
+
"SelectTrigger compound components must be used within SelectTrigger.Root"
|
|
17
|
+
);
|
|
18
|
+
return r;
|
|
19
|
+
}, F = ({
|
|
20
|
+
size: r = "middle",
|
|
21
|
+
disabled: o = !1,
|
|
22
|
+
open: e = !1,
|
|
23
|
+
status: t,
|
|
24
|
+
placeholder: i = "Select...",
|
|
25
|
+
displayValue: s,
|
|
26
|
+
allowClear: m = !1,
|
|
27
|
+
suffixIcon: l,
|
|
28
|
+
clearIcon: c,
|
|
29
|
+
onClear: u,
|
|
30
|
+
onOpenChange: g,
|
|
31
|
+
classNames: a,
|
|
32
|
+
as: f,
|
|
33
|
+
children: E,
|
|
34
|
+
role: k = "combobox",
|
|
35
|
+
className: A,
|
|
36
|
+
...D
|
|
37
|
+
}, j) => {
|
|
38
|
+
const d = C(), v = s != null && s !== "", P = {
|
|
39
|
+
disabled: o,
|
|
40
|
+
open: e,
|
|
41
|
+
hasValue: v,
|
|
42
|
+
size: r,
|
|
43
|
+
status: t,
|
|
17
44
|
value: s,
|
|
18
|
-
|
|
19
|
-
allowClear:
|
|
20
|
-
suffixIcon:
|
|
21
|
-
clearIcon:
|
|
22
|
-
onClear:
|
|
23
|
-
onOpenChange:
|
|
24
|
-
classNames:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
45
|
+
placeholder: i,
|
|
46
|
+
allowClear: m,
|
|
47
|
+
suffixIcon: l,
|
|
48
|
+
clearIcon: c,
|
|
49
|
+
onClear: u,
|
|
50
|
+
onOpenChange: g,
|
|
51
|
+
classNames: a
|
|
52
|
+
}, x = V(null);
|
|
53
|
+
return W(() => {
|
|
54
|
+
const S = x.current;
|
|
55
|
+
if (!S) return;
|
|
56
|
+
const N = (R) => {
|
|
57
|
+
R.key === "ArrowDown" && !o && !e && (R.preventDefault(), g?.(!0));
|
|
58
|
+
};
|
|
59
|
+
return S.addEventListener("keydown", N), () => {
|
|
60
|
+
S.removeEventListener("keydown", N);
|
|
61
|
+
};
|
|
62
|
+
}, [o, e, g]), /* @__PURE__ */ n(b.Provider, { value: P, children: /* @__PURE__ */ n(
|
|
63
|
+
h,
|
|
64
|
+
{
|
|
65
|
+
as: f || "button",
|
|
66
|
+
ref: K(j, x),
|
|
67
|
+
className: w(
|
|
68
|
+
d("select-trigger"),
|
|
69
|
+
d(`select-trigger-${r}`),
|
|
70
|
+
o && d("select-trigger-disabled"),
|
|
71
|
+
e && d("select-trigger-open"),
|
|
72
|
+
t && d(`select-trigger-${t}`),
|
|
73
|
+
m && d("select-trigger-allow-clear"),
|
|
74
|
+
v && d("select-trigger-has-value"),
|
|
75
|
+
a?.trigger,
|
|
76
|
+
A
|
|
77
|
+
),
|
|
78
|
+
role: k,
|
|
79
|
+
"aria-expanded": e,
|
|
80
|
+
...D,
|
|
81
|
+
children: E
|
|
82
|
+
}
|
|
83
|
+
) });
|
|
84
|
+
}, I = p(F), G = ({
|
|
85
|
+
className: r,
|
|
86
|
+
as: o,
|
|
87
|
+
contentRender: e,
|
|
88
|
+
prefix: t,
|
|
89
|
+
suffix: i,
|
|
90
|
+
...s
|
|
91
|
+
}, m) => {
|
|
92
|
+
const { hasValue: l, value: c, placeholder: u, classNames: g } = T(), a = C(), f = l ? c : u;
|
|
93
|
+
return /* @__PURE__ */ L(
|
|
94
|
+
h,
|
|
95
|
+
{
|
|
96
|
+
as: o || "div",
|
|
97
|
+
ref: m,
|
|
98
|
+
state: {
|
|
99
|
+
prefix: t,
|
|
100
|
+
suffix: i
|
|
38
101
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
}, [c, i, b]);
|
|
51
|
-
const L = y(
|
|
52
|
-
(t) => /* @__PURE__ */ g("button", { ...t, children: [
|
|
53
|
-
/* @__PURE__ */ r(
|
|
54
|
-
"span",
|
|
102
|
+
className: w(
|
|
103
|
+
a("select-trigger-content"),
|
|
104
|
+
g?.content,
|
|
105
|
+
r
|
|
106
|
+
),
|
|
107
|
+
...s,
|
|
108
|
+
children: [
|
|
109
|
+
t && /* @__PURE__ */ n("span", { className: a("select-trigger-prefix"), children: t }),
|
|
110
|
+
/* @__PURE__ */ n(
|
|
111
|
+
h,
|
|
55
112
|
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
),
|
|
66
|
-
children: s
|
|
67
|
-
}
|
|
68
|
-
)
|
|
69
|
-
] }) : /* @__PURE__ */ r(
|
|
70
|
-
"span",
|
|
71
|
-
{
|
|
72
|
-
className: o(
|
|
73
|
-
e("select-trigger-placeholder"),
|
|
74
|
-
n?.placeholder
|
|
75
|
-
),
|
|
76
|
-
children: f
|
|
77
|
-
}
|
|
78
|
-
)
|
|
113
|
+
render: e,
|
|
114
|
+
as: "span",
|
|
115
|
+
className: w(
|
|
116
|
+
a("select-trigger-text"),
|
|
117
|
+
!l && a("select-trigger-placeholder"),
|
|
118
|
+
!l && g?.placeholder,
|
|
119
|
+
l && g?.value
|
|
120
|
+
),
|
|
121
|
+
children: f
|
|
79
122
|
}
|
|
80
123
|
),
|
|
81
|
-
/* @__PURE__ */
|
|
82
|
-
"span",
|
|
83
|
-
{
|
|
84
|
-
className: o(e("select-trigger-suffix"), n?.suffix),
|
|
85
|
-
children: [
|
|
86
|
-
a && l && /* @__PURE__ */ r(
|
|
87
|
-
"span",
|
|
88
|
-
{
|
|
89
|
-
className: e("select-trigger-clear"),
|
|
90
|
-
unselectable: "on",
|
|
91
|
-
"aria-hidden": "true",
|
|
92
|
-
onClick: x,
|
|
93
|
-
children: h || /* @__PURE__ */ r("span", { className: e("select-trigger-clear-icon"), children: /* @__PURE__ */ r(P, { weight: "fill" }) })
|
|
94
|
-
}
|
|
95
|
-
),
|
|
96
|
-
(!a || !l) && /* @__PURE__ */ r(
|
|
97
|
-
"span",
|
|
98
|
-
{
|
|
99
|
-
className: e("select-trigger-arrow"),
|
|
100
|
-
unselectable: "on",
|
|
101
|
-
"aria-hidden": "true",
|
|
102
|
-
children: u || /* @__PURE__ */ r("span", { className: e("select-trigger-arrow-icon"), children: /* @__PURE__ */ r(T, { weight: "bold" }) })
|
|
103
|
-
}
|
|
104
|
-
)
|
|
105
|
-
]
|
|
106
|
-
}
|
|
107
|
-
)
|
|
108
|
-
] }),
|
|
109
|
-
[
|
|
110
|
-
l,
|
|
111
|
-
s,
|
|
112
|
-
p,
|
|
113
|
-
f,
|
|
114
|
-
a,
|
|
115
|
-
u,
|
|
116
|
-
h,
|
|
117
|
-
e,
|
|
118
|
-
n,
|
|
119
|
-
x
|
|
124
|
+
i && /* @__PURE__ */ n("span", { className: a("select-trigger-suffix"), children: i })
|
|
120
125
|
]
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
);
|
|
146
|
-
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
}, H = p(G), J = ({ className: r, as: o, onClick: e, ...t }, i) => {
|
|
129
|
+
const { hasValue: s, allowClear: m, clearIcon: l, onClear: c } = T(), u = C(), g = q(
|
|
130
|
+
(f) => {
|
|
131
|
+
f.stopPropagation(), c?.(), e?.(f);
|
|
132
|
+
},
|
|
133
|
+
[c, e]
|
|
134
|
+
);
|
|
135
|
+
if (!m || !s)
|
|
136
|
+
return null;
|
|
137
|
+
const a = l || /* @__PURE__ */ n(y, { weight: "fill" });
|
|
138
|
+
return /* @__PURE__ */ n(
|
|
139
|
+
h,
|
|
140
|
+
{
|
|
141
|
+
as: o || "button",
|
|
142
|
+
ref: i,
|
|
143
|
+
className: w(u("select-trigger-clear"), r),
|
|
144
|
+
onClick: g,
|
|
145
|
+
...t,
|
|
146
|
+
children: a
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}, M = p(J), Q = ({ className: r, as: o, render: e, ...t }, i) => {
|
|
150
|
+
const { open: s, suffixIcon: m, classNames: l } = T(), c = C(), u = m || /* @__PURE__ */ n("span", { className: c("select-trigger-arrow-icon"), children: /* @__PURE__ */ n($, { weight: "bold" }) });
|
|
151
|
+
return /* @__PURE__ */ n(
|
|
152
|
+
h,
|
|
153
|
+
{
|
|
154
|
+
as: o || "span",
|
|
155
|
+
ref: i,
|
|
156
|
+
className: w(
|
|
157
|
+
c("select-trigger-arrow"),
|
|
158
|
+
l?.arrow,
|
|
159
|
+
r
|
|
160
|
+
),
|
|
161
|
+
state: {
|
|
162
|
+
icon: u
|
|
163
|
+
},
|
|
164
|
+
render: e,
|
|
165
|
+
...t,
|
|
166
|
+
children: /* @__PURE__ */ n(
|
|
167
|
+
"span",
|
|
168
|
+
{
|
|
169
|
+
className: w(
|
|
170
|
+
c("select-trigger-arrow"),
|
|
171
|
+
s && c("select-trigger-arrow-open")
|
|
172
|
+
),
|
|
173
|
+
children: u
|
|
174
|
+
}
|
|
175
|
+
)
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}, U = p(Q), ce = Object.assign(I, {
|
|
179
|
+
Root: I,
|
|
180
|
+
Content: H,
|
|
181
|
+
Clear: M,
|
|
182
|
+
Arrow: U
|
|
183
|
+
});
|
|
147
184
|
export {
|
|
148
|
-
|
|
185
|
+
ce as SelectTrigger,
|
|
186
|
+
U as SelectTriggerArrow,
|
|
187
|
+
M as SelectTriggerClear,
|
|
188
|
+
H as SelectTriggerContent,
|
|
189
|
+
I as SelectTriggerRoot
|
|
149
190
|
};
|
|
150
191
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/select-trigger/component.tsx"],"sourcesContent":["\"use client\";\nimport { CaretDownIcon, XCircleIcon } from \"@bioturing/assets\";\nimport mergeRefs from \"merge-refs\";\nimport React, { forwardRef, useCallback, useEffect, useRef } from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { WithRenderProp, WithRenderPropProps } from \"../utils/WithRenderProp\";\nimport { ValidateStatus } from \"antd/es/form/FormItem\";\nimport \"./style.css\";\n\nexport type SelectTriggerState = {\n disabled: boolean;\n open: boolean;\n hasValue: boolean;\n size: \"small\" | \"middle\" | \"large\";\n};\n\nexport interface SelectTriggerProps\n extends Omit<\n WithRenderPropProps<\"button\", SelectTriggerState>,\n \"value\" | \"prefix\"\n > {\n /** Size variant */\n size?: \"small\" | \"middle\" | \"large\";\n /** Whether the component is disabled */\n disabled?: boolean;\n /** Whether the dropdown/popup is open */\n open?: boolean;\n /** Validation status */\n status?: ValidateStatus;\n /** Placeholder text */\n placeholder?: string;\n /** Current value/content to display */\n value?: React.ReactNode;\n /** Prefix content to display before the value (e.g., icon) */\n prefix?: React.ReactNode;\n /** Whether to show clear button when there's a value */\n allowClear?: boolean;\n /** Custom suffix icon (arrow icon) */\n suffixIcon?: React.ReactNode;\n /** Custom clear icon */\n clearIcon?: React.ReactNode;\n /** Clear handler */\n onClear?: () => void;\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n /** Custom class names */\n classNames?: {\n trigger?: string;\n content?: string;\n suffix?: string;\n placeholder?: string;\n value?: string;\n };\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n size = \"middle\",\n disabled = false,\n open = false,\n status,\n placeholder = \"Select...\",\n value,\n prefix,\n allowClear = false,\n suffixIcon,\n clearIcon,\n onClear,\n onOpenChange,\n classNames,\n render,\n role = \"combobox\",\n className,\n ...rest\n },\n ref\n ) => {\n const cls = useCls();\n const hasValue = value !== undefined && value !== null && value !== \"\";\n\n const triggerState: SelectTriggerState = {\n disabled,\n open,\n hasValue,\n size,\n };\n\n const handleClearClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onClear?.();\n },\n [onClear]\n );\n\n // Internal ref for the button element\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // Handle keyboard shortcuts with addEventListener\n useEffect(() => {\n const buttonElement = buttonRef.current;\n if (!buttonElement) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Alt + Down Arrow to open dropdown\n if (e.key === \"ArrowDown\" && !disabled && !open) {\n e.preventDefault();\n onOpenChange?.(true);\n }\n // Escape to close dropdown\n // Comment because Popover would handle it\n // if (e.key === \"Escape\" && open) {\n // e.preventDefault();\n // onOpenChange?.(false);\n // }\n };\n\n buttonElement.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n buttonElement.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [disabled, open, onOpenChange]);\n\n const defaultRender = useCallback(\n (props: React.ComponentPropsWithoutRef<\"button\">) => (\n <button {...props}>\n <span\n className={clsx(cls(\"select-trigger-content\"), classNames?.content)}\n >\n {hasValue ? (\n <span className={cls(\"select-trigger-value-with-prefix\")}>\n {prefix}\n <span\n className={clsx(\n cls(\"select-trigger-value\"),\n classNames?.value\n )}\n >\n {value}\n </span>\n </span>\n ) : (\n <span\n className={clsx(\n cls(\"select-trigger-placeholder\"),\n classNames?.placeholder\n )}\n >\n {placeholder}\n </span>\n )}\n </span>\n <span\n className={clsx(cls(\"select-trigger-suffix\"), classNames?.suffix)}\n >\n {allowClear && hasValue && (\n <span\n className={cls(\"select-trigger-clear\")}\n unselectable=\"on\"\n aria-hidden=\"true\"\n onClick={handleClearClick}\n >\n {clearIcon || (\n <span className={cls(\"select-trigger-clear-icon\")}>\n <XCircleIcon weight=\"fill\" />\n </span>\n )}\n </span>\n )}\n {(!allowClear || !hasValue) && (\n <span\n className={cls(\"select-trigger-arrow\")}\n unselectable=\"on\"\n aria-hidden=\"true\"\n >\n {suffixIcon || (\n <span className={cls(\"select-trigger-arrow-icon\")}>\n <CaretDownIcon weight=\"bold\" />\n </span>\n )}\n </span>\n )}\n </span>\n </button>\n ),\n [\n hasValue,\n value,\n prefix,\n placeholder,\n allowClear,\n suffixIcon,\n clearIcon,\n cls,\n classNames,\n handleClearClick,\n ]\n );\n\n return (\n <WithRenderProp\n as=\"button\"\n ref={mergeRefs(ref, buttonRef)}\n state={triggerState}\n className={clsx(\n cls(\"select-trigger\"),\n cls(`select-trigger-${size}`),\n disabled && cls(\"select-trigger-disabled\"),\n open && cls(\"select-trigger-open\"),\n status && cls(`select-trigger-${status}`),\n classNames?.trigger,\n className\n )}\n disabled={disabled}\n role={role}\n aria-expanded={open}\n render={render || defaultRender}\n {...rest}\n />\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"names":["SelectTrigger","forwardRef","size","disabled","open","status","placeholder","value","prefix","allowClear","suffixIcon","clearIcon","onClear","onOpenChange","classNames","render","role","className","rest","ref","cls","useCls","hasValue","triggerState","handleClearClick","useCallback","e","buttonRef","useRef","useEffect","buttonElement","handleKeyDown","defaultRender","props","jsxs","jsx","clsx","XCircleIcon","CaretDownIcon","WithRenderProp","mergeRefs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/select-trigger/component.tsx"],"sourcesContent":["\"use client\";\nimport { ComponentPropsWithRef, JSX } from \"react\";\nimport { CaretDownIcon, XCircleIcon } from \"@bioturing/assets\";\nimport mergeRefs from \"merge-refs\";\nimport React, {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { WithRenderProp, WithRenderPropProps } from \"../utils/WithRenderProp\";\nimport { ElementTypeToDOMType } from \"../utils/types\";\nimport { ValidateStatus } from \"antd/es/form/FormItem\";\nimport \"./style.css\";\n\n// Context for sharing state between compound components\nexport type SelectTriggerContextType = {\n disabled: boolean;\n open: boolean;\n hasValue: boolean;\n size: \"small\" | \"middle\" | \"large\";\n status?: ValidateStatus;\n value?: React.ReactNode;\n placeholder?: string;\n allowClear: boolean;\n suffixIcon?: React.ReactNode;\n clearIcon?: React.ReactNode;\n onClear?: () => void;\n onOpenChange?: (open: boolean) => void;\n classNames?: {\n trigger?: string;\n content?: string;\n prefix?: string;\n suffix?: string;\n arrow?: string;\n placeholder?: string;\n value?: string;\n };\n};\n\nconst SelectTriggerContext = createContext<SelectTriggerContextType | null>(\n null\n);\n\nconst useSelectTriggerContext = () => {\n const context = useContext(SelectTriggerContext);\n if (!context) {\n throw new Error(\n \"SelectTrigger compound components must be used within SelectTrigger.Root\"\n );\n }\n return context;\n};\n\n// Root component props\nexport type SelectTriggerRootProps<T extends React.ElementType = \"button\"> =\n WithRenderPropProps<T> & {\n /** Size variant */\n size?: \"small\" | \"middle\" | \"large\";\n /** Whether the component is disabled */\n disabled?: boolean;\n /** Whether the dropdown/popup is open */\n open?: boolean;\n /** Validation status */\n status?: ValidateStatus;\n /** Placeholder text */\n placeholder?: string;\n /** Current display value/content */\n displayValue?: React.ReactNode;\n /** Whether to show clear button when there's a value */\n allowClear?: boolean;\n /** Custom suffix icon (arrow icon) */\n suffixIcon?: React.ReactNode;\n /** Custom clear icon */\n clearIcon?: React.ReactNode;\n /** Clear handler */\n onClear?: () => void;\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n /** Custom class names */\n classNames?: {\n trigger?: string;\n content?: string;\n prefix?: string;\n suffix?: string;\n arrow?: string;\n placeholder?: string;\n value?: string;\n };\n };\n\n// Root component - provides context and container\nconst SelectTriggerRootInner = <T extends React.ElementType = \"button\">(\n {\n size = \"middle\",\n disabled = false,\n open = false,\n status,\n placeholder = \"Select...\",\n displayValue,\n allowClear = false,\n suffixIcon,\n clearIcon,\n onClear,\n onOpenChange,\n classNames,\n as,\n children,\n role = \"combobox\",\n className,\n ...rest\n }: SelectTriggerRootProps<T>,\n ref: React.Ref<ElementTypeToDOMType<T>>\n) => {\n const cls = useCls();\n const hasValue =\n displayValue !== undefined && displayValue !== null && displayValue !== \"\";\n\n const contextValue: SelectTriggerContextType = {\n disabled,\n open,\n hasValue,\n size,\n status,\n value: displayValue,\n placeholder,\n allowClear,\n suffixIcon,\n clearIcon,\n onClear,\n onOpenChange,\n classNames,\n };\n\n // Internal ref for the element\n const elementRef = useRef<ElementTypeToDOMType<T>>(null);\n\n // Handle keyboard shortcuts with addEventListener\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Alt + Down Arrow to open dropdown\n if (e.key === \"ArrowDown\" && !disabled && !open) {\n e.preventDefault();\n onOpenChange?.(true);\n }\n };\n\n element.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n element.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [disabled, open, onOpenChange]);\n\n return (\n <SelectTriggerContext.Provider value={contextValue}>\n <WithRenderProp\n as={as || \"button\"}\n ref={mergeRefs(ref, elementRef)}\n className={clsx(\n cls(\"select-trigger\"),\n cls(`select-trigger-${size}`),\n disabled && cls(\"select-trigger-disabled\"),\n open && cls(\"select-trigger-open\"),\n status && cls(`select-trigger-${status}`),\n allowClear && cls(\"select-trigger-allow-clear\"),\n hasValue && cls(\"select-trigger-has-value\"),\n classNames?.trigger,\n className\n )}\n role={role}\n aria-expanded={open}\n {...rest}\n >\n {children}\n </WithRenderProp>\n </SelectTriggerContext.Provider>\n );\n};\n\nexport const SelectTriggerRoot = forwardRef(SelectTriggerRootInner) as <\n T extends React.ElementType = \"button\"\n>(\n props: SelectTriggerRootProps<T> & {\n ref?: ComponentPropsWithRef<T>[\"ref\"];\n }\n) => ReturnType<typeof SelectTriggerRootInner>;\n\n// Content component - displays the main content area\nexport type SelectTriggerContentProps<T extends React.ElementType = \"div\"> =\n WithRenderPropProps<T> & {\n contentRender?: WithRenderPropProps<\n \"span\",\n { prefix: React.ReactNode; suffix: React.ReactNode }\n >[\"render\"];\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n };\n\nconst SelectTriggerContentInner = <T extends React.ElementType = \"div\">(\n {\n className,\n as,\n contentRender,\n prefix,\n suffix,\n ...rest\n }: SelectTriggerContentProps<T>,\n ref: React.ForwardedRef<ElementTypeToDOMType<T>>\n) => {\n const { hasValue, value, placeholder, classNames } =\n useSelectTriggerContext();\n const cls = useCls();\n\n const content = hasValue ? value : placeholder;\n\n return (\n <WithRenderProp\n as={as || \"div\"}\n ref={ref}\n state={{\n prefix,\n suffix,\n }}\n className={clsx(\n cls(\"select-trigger-content\"),\n classNames?.content,\n className\n )}\n {...rest}\n >\n {prefix && <span className={cls(\"select-trigger-prefix\")}>{prefix}</span>}\n <WithRenderProp\n render={contentRender}\n as={\"span\"}\n className={clsx(\n cls(\"select-trigger-text\"),\n !hasValue && cls(\"select-trigger-placeholder\"),\n !hasValue && classNames?.placeholder,\n hasValue && classNames?.value\n )}\n >\n {content}\n </WithRenderProp>\n {suffix && <span className={cls(\"select-trigger-suffix\")}>{suffix}</span>}\n </WithRenderProp>\n );\n};\n\nexport const SelectTriggerContent = forwardRef(SelectTriggerContentInner) as <\n T extends React.ElementType = \"div\"\n>(\n props: SelectTriggerContentProps<T> & {\n ref?: ComponentPropsWithRef<T>[\"ref\"];\n }\n) => ReturnType<typeof SelectTriggerContentInner>;\n\n// Clear component - displays clear button when allowClear is true and hasValue\nexport type SelectTriggerClearProps<T extends React.ElementType = \"button\"> =\n WithRenderPropProps<T>;\n\nconst SelectTriggerClearInner = <T extends React.ElementType = \"button\">(\n { className, as, onClick, ...rest }: SelectTriggerClearProps<T>,\n ref: React.Ref<ElementTypeToDOMType<T>>\n) => {\n const { disabled, hasValue, allowClear, clearIcon, onClear } =\n useSelectTriggerContext();\n const cls = useCls();\n\n const handleClick: React.MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n e.stopPropagation();\n onClear?.();\n onClick?.(e);\n },\n [onClear, onClick]\n );\n\n // Don't render if allowClear is false or there's no value\n if (!allowClear || !hasValue) {\n return null;\n }\n\n const clearElement = clearIcon || <XCircleIcon weight=\"fill\" />;\n\n return (\n <WithRenderProp\n as={as || \"button\"}\n ref={ref}\n className={clsx(cls(\"select-trigger-clear\"), className)}\n onClick={handleClick}\n {...rest}\n >\n {clearElement}\n </WithRenderProp>\n );\n};\n\nexport const SelectTriggerClear = forwardRef(SelectTriggerClearInner) as <\n T extends React.ElementType = \"button\"\n>(\n props: SelectTriggerClearProps<T> & {\n ref?: ComponentPropsWithRef<T>;\n }\n) => ReturnType<typeof SelectTriggerClearInner>;\n\n// Arrow component - displays suffix icon (dropdown arrow)\nexport type SelectTriggerArrowProps<T extends React.ElementType = \"span\"> =\n WithRenderPropProps<T, { icon: React.ReactNode }>;\n\nconst SelectTriggerArrowInner = <T extends React.ElementType = \"span\">(\n { className, as, render, ...rest }: SelectTriggerArrowProps<T>,\n ref: React.ForwardedRef<ElementTypeToDOMType<T>>\n) => {\n const { open, suffixIcon, classNames } = useSelectTriggerContext();\n const cls = useCls();\n\n const arrowElement = suffixIcon || (\n <span className={cls(\"select-trigger-arrow-icon\")}>\n <CaretDownIcon weight=\"bold\" />\n </span>\n );\n\n return (\n <WithRenderProp\n as={as || \"span\"}\n ref={ref}\n className={clsx(\n cls(\"select-trigger-arrow\"),\n classNames?.arrow,\n className\n )}\n state={{\n icon: arrowElement,\n }}\n render={render}\n {...rest}\n >\n <span\n className={clsx(\n cls(\"select-trigger-arrow\"),\n open && cls(\"select-trigger-arrow-open\")\n )}\n >\n {arrowElement}\n </span>\n </WithRenderProp>\n );\n};\n\nexport const SelectTriggerArrow = forwardRef(SelectTriggerArrowInner) as <\n T extends React.ElementType = \"span\"\n>(\n props: SelectTriggerArrowProps<T> & {\n ref?: ComponentPropsWithRef<T>;\n }\n) => ReturnType<typeof SelectTriggerArrowInner>;\n\n// Compound component export\nexport const SelectTrigger = Object.assign(SelectTriggerRoot, {\n Root: SelectTriggerRoot,\n Content: SelectTriggerContent,\n Clear: SelectTriggerClear,\n Arrow: SelectTriggerArrow,\n});\n"],"names":["SelectTriggerContext","createContext","useSelectTriggerContext","context","useContext","SelectTriggerRootInner","size","disabled","open","status","placeholder","displayValue","allowClear","suffixIcon","clearIcon","onClear","onOpenChange","classNames","as","children","role","className","rest","ref","cls","useCls","hasValue","contextValue","elementRef","useRef","useEffect","element","handleKeyDown","e","jsx","WithRenderProp","mergeRefs","clsx","SelectTriggerRoot","forwardRef","SelectTriggerContentInner","contentRender","prefix","suffix","value","content","jsxs","SelectTriggerContent","SelectTriggerClearInner","onClick","handleClick","useCallback","clearElement","XCircleIcon","SelectTriggerClear","SelectTriggerArrowInner","render","arrowElement","CaretDownIcon","SelectTriggerArrow","SelectTrigger"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select-trigger/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/select-trigger/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.ds-select-trigger{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:100%;background-color:var(--ds-control-color-bg);border:1px solid var(--ds-control-color-border);border-radius:var(--ds-control-border-radius);transition:var(--ds-control-transition);text-align:left}.ds-select-trigger:focus,.ds-select-trigger:focus-visible{outline:none}.ds-select-trigger:hover:not(.ds-select-trigger-disabled){border-color:var(--ds-control-color-border-hover)}.ds-select-trigger:focus,.ds-select-trigger:focus-visible,.ds-select-trigger-focused{border:var(--ds-control-border-active);box-shadow:var(--ds-control-shadow-active)}.ds-select-trigger-open{border:var(--ds-control-border-active)}.ds-select-trigger-disabled{background-color:var(--ds-control-color-bg-disabled);border:var(--ds-control-color-border);cursor:not-allowed;color:var(--ds-control-color-text-disabled)}.ds-select-trigger-error{border:var(--ds-control-border-error-active)}.ds-select-trigger-error:focus,.ds-select-trigger-error:focus-visible,.ds-select-trigger-error.ds-select-trigger-focused{border:var(--ds-control-border-error-active);box-shadow:var(--ds-control-shadow-error-active)}.ds-select-trigger-warning{border:var(--ds-control-border-warning-active)}.ds-select-trigger-warning:focus,.ds-select-trigger-warning:focus-visible,.ds-select-trigger-warning.ds-select-trigger-focused{border:var(--ds-control-border-warning-active);box-shadow:var(--ds-control-shadow-warning-active)}.ds-select-trigger-
|
|
1
|
+
@layer components{.ds-select-trigger{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:100%;background-color:var(--ds-control-color-bg);border:1px solid var(--ds-control-color-border);border-radius:var(--ds-control-border-radius);transition:var(--ds-control-transition);text-align:left}.ds-select-trigger:focus,.ds-select-trigger:focus-visible{outline:none}.ds-select-trigger:hover:not(.ds-select-trigger-disabled){border-color:var(--ds-control-color-border-hover)}.ds-select-trigger:focus,.ds-select-trigger:focus-visible,.ds-select-trigger-focused{border:var(--ds-control-border-active);box-shadow:var(--ds-control-shadow-active)}.ds-select-trigger-open{border:var(--ds-control-border-active)}.ds-select-trigger-disabled{background-color:var(--ds-control-color-bg-disabled);border:var(--ds-control-color-border);cursor:not-allowed;color:var(--ds-control-color-text-disabled)}.ds-select-trigger-error{border:var(--ds-control-border-error-active)}.ds-select-trigger-error:focus,.ds-select-trigger-error:focus-visible,.ds-select-trigger-error.ds-select-trigger-focused{border:var(--ds-control-border-error-active);box-shadow:var(--ds-control-shadow-error-active)}.ds-select-trigger-warning{border:var(--ds-control-border-warning-active)}.ds-select-trigger-warning:focus,.ds-select-trigger-warning:focus-visible,.ds-select-trigger-warning.ds-select-trigger-focused{border:var(--ds-control-border-warning-active);box-shadow:var(--ds-control-shadow-warning-active)}.ds-select-trigger-value{flex:1;color:var(--ds-control-color-text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.ds-select-trigger-value-with-prefix{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ds-select-trigger-placeholder{flex:1;color:var(--ds-control-color-text-placeholder);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.ds-select-trigger-suffix{display:flex;align-items:center;justify-content:center;width:var(--ds-control-icon-size);height:var(--ds-control-icon-size);position:relative;font-size:var(--ds-control-icon-size);flex-shrink:0}.ds-select-trigger-arrow,.ds-select-trigger-clear{position:absolute;top:50%;right:var(--ds-trigger-padding-inline);transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--ds-control-color-icon);width:var(--ds-control-icon-size);height:var(--ds-control-icon-size)}.ds-select-trigger-arrow-icon{display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.ds-select-trigger-open .ds-select-trigger-arrow-icon{transform:rotate(180deg)}.ds-select-trigger-clear{pointer-events:none;opacity:0;transition:opacity .2s ease}.ds-select-trigger-clear:hover{color:var(--ds-control-color-icon-hover)}.ds-select-trigger-clear-icon{display:flex;align-items:center;justify-content:center}.ds-select-trigger-allow-clear.ds-select-trigger-has-value:hover .ds-select-trigger-arrow{opacity:0;pointer-events:none}.ds-select-trigger-allow-clear.ds-select-trigger-has-value:hover .ds-select-trigger-clear{pointer-events:auto;opacity:1}.ds-select-trigger-small{--ds-trigger-padding: var(--ds-control-padding-small);--ds-trigger-padding-inline: var(--ds-control-padding-inline-small);--ds-trigger-padding-block: var(--ds-control-padding-block-small);min-height:var(--ds-control-min-height-small);line-height:var(--ds-control-line-height)}.ds-select-trigger-middle{--ds-trigger-padding: var(--ds-control-padding-middle);--ds-trigger-padding-inline: var(--ds-control-padding-inline-middle);--ds-trigger-padding-block: var(--ds-control-padding-block-middle);min-height:var(--ds-control-min-height-middle);line-height:var(--ds-control-line-height)}.ds-select-trigger-large{--ds-trigger-padding: var(--ds-control-padding-large);--ds-trigger-padding-inline: var(--ds-control-padding-inline-large);--ds-trigger-padding-block: var(--ds-control-padding-block-large);min-height:var(--ds-control-min-height-large);line-height:var(--ds-control-line-height)}.ds-select-trigger-content{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden;padding:var(--ds-trigger-padding-block) calc(var(--ds-trigger-padding-inline) + 1rem) var(--ds-trigger-padding-block) var(--ds-trigger-padding-inline)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/table/component.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,IAAI,QAAQ,EAEnB,KAAK,UAAU,IAAI,aAAa,EAChC,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAKvB,OAAO,EAIL,GAAG,EACH,YAAY,EAGb,MAAM,OAAO,CAAC;AAGf,OAAO,aAAa,CAAC;AAGrB,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,CAC5D,SAAQ,aAAa,CAAC,UAAU,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;AAGD,QAAA,MAAM,kBAAkB,GAAI,UAAU,SAAS,MAAM,GAAG,MAAM,EAC5D,0GAUG,UAAU,CAAC,UAAU,CAAC,EACzB,KAAK,GAAG,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/table/component.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,IAAI,QAAQ,EAEnB,KAAK,UAAU,IAAI,aAAa,EAChC,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAKvB,OAAO,EAIL,GAAG,EACH,YAAY,EAGb,MAAM,OAAO,CAAC;AAGf,OAAO,aAAa,CAAC;AAGrB,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,CAC5D,SAAQ,aAAa,CAAC,UAAU,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;AAGD,QAAA,MAAM,kBAAkB,GAAI,UAAU,SAAS,MAAM,GAAG,MAAM,EAC5D,0GAUG,UAAU,CAAC,UAAU,CAAC,EACzB,KAAK,GAAG,CAAC,QAAQ,CAAC,4CAgJnB,CAAC;AAEF,QAAA,MAAM,aAAa,EAAqC,CACtD,UAAU,SAAS,MAAM,GAAG,MAAM,EAElC,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CAAE,KAC7D,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG3C,eAAO,MAAM,KAAK,EASZ,OAAO,aAAa,GAAG;IAC3B,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,OAAO,QAAQ,CAAC,WAAW,CAAC;IACzC,gBAAgB,EAAE,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACnD,aAAa,EAAE,OAAO,QAAQ,CAAC,aAAa,CAAC;IAC7C,aAAa,EAAE,OAAO,QAAQ,CAAC,aAAa,CAAC;IAC7C,gBAAgB,EAAE,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACnD,cAAc,EAAE,OAAO,QAAQ,CAAC,cAAc,CAAC;IAC/C,OAAO,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;CAClC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import
|
|
4
|
-
import { FunnelIcon as z, CaretUpIcon as
|
|
2
|
+
import { jsx as n, jsxs as A, Fragment as U } from "react/jsx-runtime";
|
|
3
|
+
import r from "antd/es/table";
|
|
4
|
+
import { FunnelIcon as z, CaretUpIcon as C, CaretDownIcon as I } from "@bioturing/assets";
|
|
5
5
|
import { Empty as H } from "../empty/component.js";
|
|
6
6
|
import { forwardRef as M, useState as P, useRef as g, useEffect as R, useCallback as D } from "react";
|
|
7
7
|
import './style.css';/* empty css */
|
|
@@ -9,101 +9,102 @@ import { useCls as $ } from "../utils/antdUtils.js";
|
|
|
9
9
|
import { clsx as k } from "../utils/cn.js";
|
|
10
10
|
const q = ({
|
|
11
11
|
columns: u,
|
|
12
|
-
locale:
|
|
13
|
-
emptyDescription:
|
|
12
|
+
locale: d,
|
|
13
|
+
emptyDescription: L,
|
|
14
14
|
loading: s,
|
|
15
|
-
virtual:
|
|
15
|
+
virtual: l,
|
|
16
16
|
scroll: S = {},
|
|
17
17
|
className: T,
|
|
18
18
|
variant: h,
|
|
19
19
|
...y
|
|
20
|
-
},
|
|
21
|
-
const
|
|
22
|
-
|
|
20
|
+
}, i) => {
|
|
21
|
+
const o = $(), [O, _] = P(
|
|
22
|
+
l ? {} : {
|
|
23
23
|
x: "fit-content"
|
|
24
24
|
}
|
|
25
25
|
), a = g(null), E = g(0);
|
|
26
26
|
R(() => {
|
|
27
|
-
if (!a.current || !
|
|
28
|
-
const
|
|
29
|
-
if (!
|
|
30
|
-
const N =
|
|
31
|
-
`.${
|
|
32
|
-
),
|
|
33
|
-
`.${
|
|
27
|
+
if (!a.current || !l) return;
|
|
28
|
+
const e = a.current?.nativeElement, t = e?.parentElement;
|
|
29
|
+
if (!t) return;
|
|
30
|
+
const N = e?.querySelector(
|
|
31
|
+
`.${o("table-thead")}`
|
|
32
|
+
), c = e?.querySelector(
|
|
33
|
+
`.${o("table-pagination")}`
|
|
34
34
|
);
|
|
35
|
-
if (
|
|
36
|
-
const f = getComputedStyle(
|
|
37
|
-
E.current =
|
|
35
|
+
if (c) {
|
|
36
|
+
const f = getComputedStyle(c).marginTop, p = getComputedStyle(c).marginBottom;
|
|
37
|
+
E.current = c.offsetHeight + parseInt(f) + parseInt(p);
|
|
38
38
|
}
|
|
39
|
-
const
|
|
39
|
+
const b = new ResizeObserver((f) => {
|
|
40
40
|
for (const p of f)
|
|
41
41
|
p.target && _({
|
|
42
|
-
y:
|
|
42
|
+
y: t.offsetHeight - (N ? N?.offsetHeight : 0) - E.current
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
|
-
return
|
|
46
|
-
|
|
45
|
+
return t && l && b.observe(t), () => {
|
|
46
|
+
t && l && b.disconnect();
|
|
47
47
|
};
|
|
48
|
-
}, [
|
|
49
|
-
const w = u ? u.map((
|
|
50
|
-
sortIcon: ({ sortOrder:
|
|
48
|
+
}, [l, o]);
|
|
49
|
+
const w = u ? u.map((e) => ({
|
|
50
|
+
sortIcon: ({ sortOrder: t }) => /* @__PURE__ */ n(
|
|
51
51
|
"span",
|
|
52
52
|
{
|
|
53
|
-
className:
|
|
53
|
+
className: o(
|
|
54
54
|
"table-column-sort-icon",
|
|
55
|
-
|
|
55
|
+
t ? `table-column-sort-icon-${t}` : "table-column-sort-icon-none"
|
|
56
56
|
),
|
|
57
|
-
children:
|
|
58
|
-
/* @__PURE__ */
|
|
57
|
+
children: t ? t === "ascend" ? /* @__PURE__ */ n(C, { weight: "fill" }) : /* @__PURE__ */ n(I, { weight: "fill" }) : /* @__PURE__ */ A(U, { children: [
|
|
58
|
+
/* @__PURE__ */ n(C, { weight: "fill" }),
|
|
59
59
|
" ",
|
|
60
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ n(I, { weight: "fill" })
|
|
61
61
|
] })
|
|
62
62
|
}
|
|
63
63
|
),
|
|
64
|
-
filterIcon: (
|
|
65
|
-
|
|
64
|
+
filterIcon: (t) => /* @__PURE__ */ n("span", { className: o("table-column-filter-icon"), children: /* @__PURE__ */ n(z, { weight: "fill" }) }),
|
|
65
|
+
title: (t) => /* @__PURE__ */ n("span", { className: o("table-column-custom-title"), children: typeof e.title == "function" ? e.title(t) : e.title }),
|
|
66
|
+
...e
|
|
66
67
|
})) : void 0, x = {
|
|
67
|
-
emptyText: /* @__PURE__ */
|
|
68
|
-
...
|
|
68
|
+
emptyText: /* @__PURE__ */ n(H, { description: L }),
|
|
69
|
+
...d
|
|
69
70
|
};
|
|
70
71
|
let m;
|
|
71
72
|
typeof s == "boolean" ? m = {
|
|
72
73
|
spinning: s,
|
|
73
|
-
indicator: /* @__PURE__ */
|
|
74
|
+
indicator: /* @__PURE__ */ n("span", { className: o("spin-loader") })
|
|
74
75
|
} : typeof s == "object" && (m = {
|
|
75
76
|
spinning: !0,
|
|
76
|
-
indicator: /* @__PURE__ */
|
|
77
|
+
indicator: /* @__PURE__ */ n("span", { className: o("spin-loader") }),
|
|
77
78
|
...s
|
|
78
79
|
});
|
|
79
80
|
const j = D(
|
|
80
|
-
(
|
|
81
|
-
|
|
81
|
+
(e) => {
|
|
82
|
+
e && (typeof i == "function" && i(e), i && typeof i == "object" && "current" in i && (i.current = e), a.current = e);
|
|
82
83
|
},
|
|
83
|
-
[
|
|
84
|
+
[i]
|
|
84
85
|
);
|
|
85
|
-
return /* @__PURE__ */
|
|
86
|
-
|
|
86
|
+
return /* @__PURE__ */ n(
|
|
87
|
+
r,
|
|
87
88
|
{
|
|
88
89
|
ref: j,
|
|
89
90
|
columns: w,
|
|
90
91
|
loading: m,
|
|
91
92
|
locale: x,
|
|
92
|
-
virtual:
|
|
93
|
+
virtual: l,
|
|
93
94
|
scroll: { ...O, ...S },
|
|
94
|
-
className: k(h === "zebra" ?
|
|
95
|
+
className: k(h === "zebra" ? o("table-zebra") : "", T),
|
|
95
96
|
...y
|
|
96
97
|
}
|
|
97
98
|
);
|
|
98
99
|
}, F = M(q), W = Object.assign(F, {
|
|
99
|
-
Column:
|
|
100
|
-
ColumnGroup:
|
|
101
|
-
SELECTION_COLUMN:
|
|
102
|
-
EXPAND_COLUMN:
|
|
103
|
-
SELECTION_ALL:
|
|
104
|
-
SELECTION_INVERT:
|
|
105
|
-
SELECTION_NONE:
|
|
106
|
-
Summary:
|
|
100
|
+
Column: r.Column,
|
|
101
|
+
ColumnGroup: r.ColumnGroup,
|
|
102
|
+
SELECTION_COLUMN: r.SELECTION_COLUMN,
|
|
103
|
+
EXPAND_COLUMN: r.EXPAND_COLUMN,
|
|
104
|
+
SELECTION_ALL: r.SELECTION_ALL,
|
|
105
|
+
SELECTION_INVERT: r.SELECTION_INVERT,
|
|
106
|
+
SELECTION_NONE: r.SELECTION_NONE,
|
|
107
|
+
Summary: r.Summary
|
|
107
108
|
});
|
|
108
109
|
export {
|
|
109
110
|
W as Table
|