@wisdomgarden/torque 0.1.2 → 0.2.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/popover/hooks.d.ts +1 -1
- package/dist/components/popover/hooks.js +42 -42
- package/dist/components/popover/index.d.ts +1 -1
- package/dist/components/popover/popover-dropdown.js +56 -61
- package/dist/components/popover/popover-target.js +21 -19
- package/dist/components/popover/popover.d.ts +1 -1
- package/dist/components/popover/popover.js +136 -117
- package/dist/components/popover/popover.types.d.ts +16 -1
- package/dist/components/tab/index.d.ts +1 -1
- package/dist/components/tab/styles/tabs-variables.module.css.js +1 -1
- package/dist/components/tab/styles/tabs.module.css.js +9 -9
- package/dist/components/tab/tabs.types.d.ts +41 -25
- package/dist/components/tab/use-tabs-data-props.d.ts +6 -6
- package/dist/index.css +1 -1
- package/package.json +4 -4
|
@@ -1,175 +1,194 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { offset as
|
|
4
|
-
import { useDirection as
|
|
5
|
-
import
|
|
6
|
-
import { useEscapeClose as
|
|
7
|
-
import { PopoverContext as
|
|
8
|
-
const
|
|
9
|
-
children:
|
|
10
|
-
position:
|
|
11
|
-
offset:
|
|
12
|
-
opened:
|
|
13
|
-
defaultOpened:
|
|
14
|
-
onOpenChange:
|
|
2
|
+
import { jsx as ie } from "react/jsx-runtime";
|
|
3
|
+
import { offset as le, flip as ae, size as de, shift as ue, limitShift as fe, arrow as me, hide as pe, useFloating as ge, autoUpdate as ve } from "@floating-ui/react-dom";
|
|
4
|
+
import { useDirection as he, getFloatingPosition as Ee } from "@mantine/core";
|
|
5
|
+
import B, { useRef as l, useId as xe, useCallback as r, useEffect as J, useMemo as K } from "react";
|
|
6
|
+
import { useEscapeClose as Re } from "./hooks.js";
|
|
7
|
+
import { PopoverContext as Q } from "./popover-context.js";
|
|
8
|
+
const v = 8, Te = ({
|
|
9
|
+
children: W,
|
|
10
|
+
position: X = "bottom",
|
|
11
|
+
offset: C = 8,
|
|
12
|
+
opened: N,
|
|
13
|
+
defaultOpened: Y = !1,
|
|
14
|
+
onOpenChange: T,
|
|
15
15
|
disabled: b = !1,
|
|
16
|
-
withArrow:
|
|
16
|
+
withArrow: i = !1,
|
|
17
17
|
arrowSize: a = 8,
|
|
18
|
-
trigger:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
trigger: I = "click",
|
|
19
|
+
openDelay: L = 0,
|
|
20
|
+
closeDelay: M = 100,
|
|
21
|
+
closeOnClickOutside: S = !0,
|
|
22
|
+
closeOnEscape: Z = !0,
|
|
23
|
+
restoreFocus: z,
|
|
24
|
+
strategy: h = "absolute",
|
|
25
|
+
initialFocusRef: $,
|
|
26
|
+
trapFocus: D = !1,
|
|
27
|
+
preventAutoFocus: G = !1,
|
|
28
|
+
"aria-labelledby": H
|
|
27
29
|
}) => {
|
|
28
|
-
const
|
|
30
|
+
const E = B.useContext(Q), j = E?.registerNestedFloatingElement, x = E ? E.depth + 1 : 0, R = N !== void 0, [ee, te] = B.useState(Y), o = R ? N : ee, d = l(null), u = l(null), f = l(null), F = l(/* @__PURE__ */ new Set()), P = l(void 0), y = xe(), { dir: ne } = he(), n = r(
|
|
29
31
|
(e) => {
|
|
30
|
-
|
|
32
|
+
R || te(e), T?.(e);
|
|
31
33
|
},
|
|
32
|
-
[
|
|
33
|
-
),
|
|
34
|
+
[R, T]
|
|
35
|
+
), w = r(() => n(!1), [n]), k = r(() => n(!o), [o, n]), s = r(() => {
|
|
36
|
+
window.clearTimeout(P.current), P.current = void 0;
|
|
37
|
+
}, []), O = r(
|
|
34
38
|
(e) => {
|
|
35
|
-
|
|
36
|
-
const
|
|
39
|
+
s();
|
|
40
|
+
const t = e ? L : M;
|
|
41
|
+
if (t <= 0) {
|
|
42
|
+
n(e);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
P.current = window.setTimeout(() => n(e), t);
|
|
46
|
+
},
|
|
47
|
+
[s, L, M, n]
|
|
48
|
+
);
|
|
49
|
+
J(() => s, [s]);
|
|
50
|
+
const U = r(
|
|
51
|
+
(e) => {
|
|
52
|
+
F.current.add(e);
|
|
53
|
+
const t = j?.(e);
|
|
37
54
|
return () => {
|
|
38
|
-
|
|
55
|
+
F.current.delete(e), t?.();
|
|
39
56
|
};
|
|
40
57
|
},
|
|
41
|
-
[
|
|
42
|
-
),
|
|
43
|
-
const e =
|
|
44
|
-
return
|
|
45
|
-
|
|
58
|
+
[j]
|
|
59
|
+
), m = r(() => {
|
|
60
|
+
const e = f.current ? [f.current] : [];
|
|
61
|
+
return F.current.forEach((t) => {
|
|
62
|
+
t.isConnected && e.push(t);
|
|
46
63
|
}), Array.from(new Set(e));
|
|
47
64
|
}, []);
|
|
48
|
-
|
|
49
|
-
if (!
|
|
50
|
-
const e = (
|
|
51
|
-
const
|
|
52
|
-
|
|
65
|
+
J(() => {
|
|
66
|
+
if (!S || !o) return;
|
|
67
|
+
const e = (t) => {
|
|
68
|
+
const g = t.composedPath(), c = u.current;
|
|
69
|
+
c && g.includes(c) || m().some((ce) => g.includes(ce)) || w();
|
|
53
70
|
};
|
|
54
71
|
return document.addEventListener("mousedown", e, !0), document.addEventListener("touchstart", e, !0), () => {
|
|
55
72
|
document.removeEventListener("mousedown", e, !0), document.removeEventListener("touchstart", e, !0);
|
|
56
73
|
};
|
|
57
|
-
}, [
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
74
|
+
}, [S, o, w, m]), Re(
|
|
75
|
+
Z,
|
|
76
|
+
o,
|
|
77
|
+
w,
|
|
78
|
+
u,
|
|
79
|
+
y,
|
|
63
80
|
x,
|
|
64
|
-
|
|
81
|
+
z
|
|
65
82
|
);
|
|
66
|
-
const
|
|
83
|
+
const oe = K(
|
|
67
84
|
() => [
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
le(C + (i ? a / 2 : 0)),
|
|
86
|
+
ae({ padding: v }),
|
|
70
87
|
// 必须在 shift 之前:否则 availableHeight 是 shift 推动后的位置算出的(≈整屏),高度约束失效
|
|
71
|
-
|
|
72
|
-
padding:
|
|
73
|
-
apply({ availableWidth: e, availableHeight:
|
|
74
|
-
|
|
88
|
+
de({
|
|
89
|
+
padding: v,
|
|
90
|
+
apply({ availableWidth: e, availableHeight: t, rects: g, elements: c }) {
|
|
91
|
+
c.floating.style.setProperty(
|
|
75
92
|
"--t-popover-available-width",
|
|
76
93
|
`${Math.max(0, e)}px`
|
|
77
|
-
),
|
|
94
|
+
), c.floating.style.setProperty(
|
|
78
95
|
"--t-popover-available-height",
|
|
79
|
-
`${Math.max(0,
|
|
80
|
-
),
|
|
96
|
+
`${Math.max(0, t)}px`
|
|
97
|
+
), c.floating.style.setProperty(
|
|
81
98
|
"--t-popover-reference-width",
|
|
82
|
-
`${
|
|
99
|
+
`${g.reference.width}px`
|
|
83
100
|
);
|
|
84
101
|
}
|
|
85
102
|
}),
|
|
86
|
-
|
|
87
|
-
padding:
|
|
103
|
+
ue({
|
|
104
|
+
padding: v,
|
|
88
105
|
crossAxis: !0,
|
|
89
106
|
mainAxis: !0,
|
|
90
|
-
limiter:
|
|
107
|
+
limiter: fe()
|
|
91
108
|
}),
|
|
92
|
-
...
|
|
109
|
+
...i ? (
|
|
93
110
|
// floating-ui 的 arrow 中间件按设计就是收一个 ref 对象(它在定位阶段自己读
|
|
94
111
|
// .current),不是我们在渲染期读 ref 的值。没有保留该 API 的改写方式。
|
|
95
112
|
// eslint-disable-next-line react-hooks/refs
|
|
96
|
-
[
|
|
113
|
+
[me({ element: d, padding: v })]
|
|
97
114
|
) : [],
|
|
98
|
-
|
|
115
|
+
pe()
|
|
99
116
|
],
|
|
100
|
-
[
|
|
117
|
+
[C, i, a, d]
|
|
101
118
|
), {
|
|
102
|
-
x:
|
|
103
|
-
y:
|
|
119
|
+
x: V,
|
|
120
|
+
y: _,
|
|
104
121
|
refs: p,
|
|
105
|
-
placement:
|
|
106
|
-
middlewareData:
|
|
107
|
-
} =
|
|
108
|
-
open:
|
|
109
|
-
strategy:
|
|
110
|
-
placement:
|
|
111
|
-
middleware:
|
|
112
|
-
whileElementsMounted:
|
|
113
|
-
}),
|
|
122
|
+
placement: re,
|
|
123
|
+
middlewareData: q
|
|
124
|
+
} = ge({
|
|
125
|
+
open: o,
|
|
126
|
+
strategy: h,
|
|
127
|
+
placement: Ee(ne, X),
|
|
128
|
+
middleware: oe,
|
|
129
|
+
whileElementsMounted: ve
|
|
130
|
+
}), A = re.split("-")[0], se = K(
|
|
114
131
|
() => ({
|
|
115
|
-
opened:
|
|
116
|
-
setOpen:
|
|
117
|
-
toggle:
|
|
118
|
-
trigger:
|
|
132
|
+
opened: o,
|
|
133
|
+
setOpen: n,
|
|
134
|
+
toggle: k,
|
|
135
|
+
trigger: I,
|
|
119
136
|
disabled: b,
|
|
120
|
-
id:
|
|
121
|
-
withArrow:
|
|
137
|
+
id: y,
|
|
138
|
+
withArrow: i,
|
|
122
139
|
arrowSize: a,
|
|
123
|
-
x:
|
|
124
|
-
y:
|
|
125
|
-
strategy:
|
|
126
|
-
resolvedSide:
|
|
127
|
-
middlewareData:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
140
|
+
x: V,
|
|
141
|
+
y: _,
|
|
142
|
+
strategy: h,
|
|
143
|
+
resolvedSide: A,
|
|
144
|
+
middlewareData: q,
|
|
145
|
+
scheduleHover: O,
|
|
146
|
+
cancelHoverTimer: s,
|
|
147
|
+
referenceRef: u,
|
|
148
|
+
floatingRef: f,
|
|
149
|
+
arrowRef: d,
|
|
132
150
|
setReference: p.setReference,
|
|
133
151
|
setFloating: p.setFloating,
|
|
134
152
|
depth: x,
|
|
135
|
-
registerNestedFloatingElement:
|
|
136
|
-
getFloatingScopeElements:
|
|
137
|
-
initialFocusRef:
|
|
138
|
-
trapFocus:
|
|
139
|
-
preventAutoFocus:
|
|
140
|
-
ariaLabelledby:
|
|
153
|
+
registerNestedFloatingElement: U,
|
|
154
|
+
getFloatingScopeElements: m,
|
|
155
|
+
initialFocusRef: $,
|
|
156
|
+
trapFocus: D,
|
|
157
|
+
preventAutoFocus: G,
|
|
158
|
+
ariaLabelledby: H
|
|
141
159
|
}),
|
|
142
160
|
[
|
|
143
|
-
t,
|
|
144
161
|
o,
|
|
145
|
-
|
|
146
|
-
|
|
162
|
+
n,
|
|
163
|
+
k,
|
|
164
|
+
I,
|
|
147
165
|
b,
|
|
148
|
-
|
|
149
|
-
|
|
166
|
+
y,
|
|
167
|
+
i,
|
|
150
168
|
a,
|
|
151
|
-
w,
|
|
152
|
-
O,
|
|
153
|
-
v,
|
|
154
169
|
V,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
170
|
+
_,
|
|
171
|
+
h,
|
|
172
|
+
A,
|
|
173
|
+
q,
|
|
174
|
+
O,
|
|
175
|
+
s,
|
|
158
176
|
u,
|
|
159
|
-
|
|
177
|
+
f,
|
|
178
|
+
d,
|
|
160
179
|
p.setReference,
|
|
161
180
|
p.setFloating,
|
|
162
181
|
x,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
182
|
+
U,
|
|
183
|
+
m,
|
|
184
|
+
$,
|
|
185
|
+
D,
|
|
186
|
+
G,
|
|
187
|
+
H
|
|
169
188
|
]
|
|
170
189
|
);
|
|
171
|
-
return /* @__PURE__ */
|
|
190
|
+
return /* @__PURE__ */ ie(Q.Provider, { value: se, children: W });
|
|
172
191
|
};
|
|
173
192
|
export {
|
|
174
|
-
|
|
193
|
+
Te as Popover
|
|
175
194
|
};
|
|
@@ -55,6 +55,18 @@ export interface PopoverProps {
|
|
|
55
55
|
* @default 'click'
|
|
56
56
|
*/
|
|
57
57
|
trigger?: PopoverTrigger;
|
|
58
|
+
/**
|
|
59
|
+
* hover 打开延迟(ms),0 表示立即打开。
|
|
60
|
+
* 仅 `trigger="hover"` 的鼠标移入生效;键盘聚焦始终立即打开。
|
|
61
|
+
* @default 0
|
|
62
|
+
*/
|
|
63
|
+
openDelay?: number;
|
|
64
|
+
/**
|
|
65
|
+
* hover 关闭延迟(ms),留出鼠标从触发元素移动到浮层的时间。
|
|
66
|
+
* 仅 `trigger="hover"` 生效。
|
|
67
|
+
* @default 100
|
|
68
|
+
*/
|
|
69
|
+
closeDelay?: number;
|
|
58
70
|
/**
|
|
59
71
|
* 点击外部区域时关闭
|
|
60
72
|
* @default true
|
|
@@ -188,7 +200,10 @@ export interface PopoverContextValue {
|
|
|
188
200
|
escaped?: boolean;
|
|
189
201
|
};
|
|
190
202
|
};
|
|
191
|
-
|
|
203
|
+
/** hover 触发的延迟开关调度:同一时刻只保留一个待执行任务,延迟为 0 时同步执行 */
|
|
204
|
+
scheduleHover: (next: boolean) => void;
|
|
205
|
+
/** 取消尚未执行的 hover 开关任务 */
|
|
206
|
+
cancelHoverTimer: () => void;
|
|
192
207
|
referenceRef: React.RefObject<HTMLElement | null>;
|
|
193
208
|
floatingRef: React.RefObject<HTMLDivElement | null>;
|
|
194
209
|
arrowRef: React.RefObject<HTMLDivElement | null>;
|
|
@@ -4,4 +4,4 @@ export { TabsPanel } from './subs/tabs-panel';
|
|
|
4
4
|
export { TabsList } from './subs/tabs-list';
|
|
5
5
|
export { TabsLinkTab } from './subs/tabs-link-tab';
|
|
6
6
|
export type { TabsLinkTabProps } from './subs/tabs-link-tab';
|
|
7
|
-
export type { TabsProps, TabListProps, TabProps, TabPanelProps, TabsVariant, TabsLayout, TabValue, } from './tabs.types';
|
|
7
|
+
export type { TabsProps, TabListProps, TabProps, TabPanelProps, TabsVariant, TabsLayout, TabsBgType, TabsOverflow, TabValue, } from './tabs.types';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const t = "
|
|
2
|
+
const t = "_tabs_1kvas_2", a = "_tabList_1kvas_5", s = "_tab_1kvas_2", n = "_tabTruncate_1kvas_76", o = "_tabContent_1kvas_84", _ = "_tabPanel_1kvas_99", e = "_scrollAreaRoot_1kvas_102", c = "_scrollAreaContent_1kvas_106", b = {
|
|
3
3
|
tabs: t,
|
|
4
|
-
tabList:
|
|
5
|
-
tab:
|
|
6
|
-
tabTruncate:
|
|
7
|
-
tabContent:
|
|
4
|
+
tabList: a,
|
|
5
|
+
tab: s,
|
|
6
|
+
tabTruncate: n,
|
|
7
|
+
tabContent: o,
|
|
8
8
|
tabPanel: _,
|
|
9
9
|
scrollAreaRoot: e,
|
|
10
10
|
scrollAreaContent: c
|
|
@@ -13,10 +13,10 @@ export {
|
|
|
13
13
|
b as default,
|
|
14
14
|
c as scrollAreaContent,
|
|
15
15
|
e as scrollAreaRoot,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
s as tab,
|
|
17
|
+
o as tabContent,
|
|
18
|
+
a as tabList,
|
|
19
19
|
_ as tabPanel,
|
|
20
|
-
|
|
20
|
+
n as tabTruncate,
|
|
21
21
|
t as tabs
|
|
22
22
|
};
|
|
@@ -3,29 +3,9 @@ import { TabSize } from '../../common/components.types';
|
|
|
3
3
|
export type TabValue = string | null;
|
|
4
4
|
export type TabsVariant = 'outline' | 'filled' | 'underline';
|
|
5
5
|
export type TabsLayout = 'separated' | 'contained';
|
|
6
|
+
export type TabsBgType = 'gray' | 'white';
|
|
7
|
+
export type TabsOverflow = 'scroll' | 'truncate' | 'wrap';
|
|
6
8
|
export interface BaseTabsProps {
|
|
7
|
-
/**
|
|
8
|
-
* TabsTab 选中时的高亮风格
|
|
9
|
-
* - 'outline': 胶囊形状选中时带主题色边框和浅色背景
|
|
10
|
-
* - 'filled': 胶囊形状选中时为纯主题色实底白字
|
|
11
|
-
* - 'underline': 选中时为文字加底部短下划线
|
|
12
|
-
* @default 'underline'
|
|
13
|
-
*/
|
|
14
|
-
variant?: TabsVariant;
|
|
15
|
-
/**
|
|
16
|
-
* Tabs 列表的外层容器包裹形式 (决定了 TabsList 和 TabsTab 之间的间距和底色关系)
|
|
17
|
-
* - 'separated': 散列式。每个 TabsTab 是独立的胶囊,之间有 gap。
|
|
18
|
-
* - 'contained': 包含式。所有 TabsTab 紧凑地挤在一个带圆角和 padding 的长条背景框内。(替代之前的 segmented)
|
|
19
|
-
* @default 'separated'
|
|
20
|
-
*/
|
|
21
|
-
layout?: TabsLayout;
|
|
22
|
-
/**
|
|
23
|
-
* 胶囊形状未选中状态或容器的背景色,适配灰色和白色外部背景
|
|
24
|
-
* - 'gray': 偏灰色的底色
|
|
25
|
-
* - 'white': 纯白色的底色
|
|
26
|
-
* @default 'white'
|
|
27
|
-
*/
|
|
28
|
-
bgType?: 'gray' | 'white';
|
|
29
9
|
/**
|
|
30
10
|
* 尺寸大小
|
|
31
11
|
* @default 'md'
|
|
@@ -38,7 +18,7 @@ export interface BaseTabsProps {
|
|
|
38
18
|
* 'wrap' 单行放不下时换行,行间距同 TabsList 的 gap,
|
|
39
19
|
* @default 'scroll'
|
|
40
20
|
*/
|
|
41
|
-
overflow?:
|
|
21
|
+
overflow?: TabsOverflow;
|
|
42
22
|
/**
|
|
43
23
|
* 是否在未选中时保持挂载到 DOM 中
|
|
44
24
|
* @default false
|
|
@@ -57,12 +37,47 @@ export interface BaseTabsProps {
|
|
|
57
37
|
*/
|
|
58
38
|
color?: 'brand' | 'air';
|
|
59
39
|
}
|
|
40
|
+
interface UnderlineTabsAppearanceProps {
|
|
41
|
+
/**
|
|
42
|
+
* 文字加底部短下划线的高亮风格。
|
|
43
|
+
* @default 'underline'
|
|
44
|
+
*/
|
|
45
|
+
variant?: 'underline';
|
|
46
|
+
layout?: never;
|
|
47
|
+
bgType?: never;
|
|
48
|
+
}
|
|
49
|
+
interface PillTabsAppearanceProps {
|
|
50
|
+
/**
|
|
51
|
+
* 胶囊形状的高亮风格。
|
|
52
|
+
* - 'outline': 选中时带主题色边框和浅色背景
|
|
53
|
+
* - 'filled': 选中时为纯主题色实底白字
|
|
54
|
+
*/
|
|
55
|
+
variant: Exclude<TabsVariant, 'underline'>;
|
|
56
|
+
/**
|
|
57
|
+
* Tabs 列表的外层容器包裹形式 (决定了 TabsList 和 TabsTab 之间的间距和底色关系)
|
|
58
|
+
* - 'separated': 散列式。每个 TabsTab 是独立的胶囊,之间有 gap。
|
|
59
|
+
* - 'contained': 包含式。所有 TabsTab 紧凑地挤在一个带圆角和 padding 的长条背景框内。(替代之前的 segmented)
|
|
60
|
+
* @default 'separated'
|
|
61
|
+
*/
|
|
62
|
+
layout?: TabsLayout;
|
|
63
|
+
/**
|
|
64
|
+
* 胶囊形状未选中状态或容器的背景色,适配灰色和白色外部背景
|
|
65
|
+
* - 'gray': 偏灰色的底色
|
|
66
|
+
* - 'white': 纯白色的底色
|
|
67
|
+
* @default 'white'
|
|
68
|
+
*/
|
|
69
|
+
bgType?: TabsBgType;
|
|
70
|
+
}
|
|
60
71
|
export interface TabsContextValue extends BaseTabsProps {
|
|
72
|
+
variant: TabsVariant;
|
|
73
|
+
layout: TabsLayout;
|
|
74
|
+
bgType: TabsBgType;
|
|
61
75
|
value: TabValue;
|
|
62
76
|
onChange: (value: TabValue) => void;
|
|
63
77
|
idPrefix: string;
|
|
64
78
|
}
|
|
65
|
-
|
|
79
|
+
type TabsRootProps = Omit<React.ComponentProps<'div'>, 'onChange' | 'value' | 'defaultValue' | 'color'>;
|
|
80
|
+
export type TabsProps = TabsRootProps & BaseTabsProps & (UnderlineTabsAppearanceProps | PillTabsAppearanceProps) & {
|
|
66
81
|
/**
|
|
67
82
|
* 选中的 tab 值 (受控)
|
|
68
83
|
*/
|
|
@@ -76,7 +91,7 @@ export interface TabsProps extends Omit<React.ComponentProps<'div'>, 'onChange'
|
|
|
76
91
|
*/
|
|
77
92
|
onChange?: (value: TabValue) => void;
|
|
78
93
|
children: ReactNode;
|
|
79
|
-
}
|
|
94
|
+
};
|
|
80
95
|
export interface TabListProps extends React.ComponentProps<'div'> {
|
|
81
96
|
/**
|
|
82
97
|
* TabList 滚动模式下跟元素的样式
|
|
@@ -105,3 +120,4 @@ export interface TabProps extends Omit<React.ComponentProps<'button'>, 'value'>
|
|
|
105
120
|
export interface TabPanelProps extends React.ComponentProps<'div'> {
|
|
106
121
|
value: TabValue;
|
|
107
122
|
}
|
|
123
|
+
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const useTabsDataProps: (props:
|
|
3
|
-
'data-variant': import("./tabs.types").TabsVariant
|
|
1
|
+
import { TabsContextValue } from './tabs.types';
|
|
2
|
+
export declare const useTabsDataProps: (props: TabsContextValue) => {
|
|
3
|
+
'data-variant': import("./tabs.types").TabsVariant;
|
|
4
4
|
'data-size': import("../..").SimpleComponentSizeBase | undefined;
|
|
5
|
-
'data-layout': import("./tabs.types").TabsLayout
|
|
6
|
-
'data-bg-type': "
|
|
7
|
-
'data-overflow': "
|
|
5
|
+
'data-layout': import("./tabs.types").TabsLayout;
|
|
6
|
+
'data-bg-type': import("./tabs.types").TabsBgType;
|
|
7
|
+
'data-overflow': import("./tabs.types").TabsOverflow | undefined;
|
|
8
8
|
'data-color': "brand" | "air" | undefined;
|
|
9
9
|
};
|