@cloudtower/eagle 0.35.1 → 0.35.2
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/cjs/UIKitProvider/index.js +5 -10
- package/dist/cjs/core/ConfigProvider/index.js +3 -1
- package/dist/cjs/core/Fields/FieldsTimePicker/index.js +4 -3
- package/dist/cjs/core/ImmersiveDialog/index.js +21 -14
- package/dist/cjs/core/{Modal → LegacyModal}/index.js +7 -3
- package/dist/cjs/core/LegacySelect/index.js +4 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.hooks.js +66 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.js +103 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.style.js +13 -0
- package/dist/cjs/core/LocalUpload/LocalUpload.widget.js +379 -0
- package/dist/cjs/core/MediumDialog/MediumDialog.js +1 -1
- package/dist/cjs/core/SmallDialog/SmallDialog.js +7 -5
- package/dist/cjs/core/Tab/Tab.js +113 -0
- package/dist/cjs/core/Tab/Tab.style.js +17 -0
- package/dist/cjs/core/Tab/Tab.type.js +9 -0
- package/dist/cjs/core/Tab/useTabAdaptiveLayout.js +73 -0
- package/dist/cjs/core/message/message.js +24 -1
- package/dist/cjs/coreX/KubeConfigModal/index.js +4 -4
- package/dist/cjs/hooks/useAntdPatchEnLocales.js +35 -0
- package/dist/cjs/hooks/useLegacyComponentWarning.js +16 -0
- package/dist/cjs/index.js +20 -16
- package/dist/cjs/legacy-antd.js +2 -2
- package/dist/cjs/stats1.html +1 -1
- package/dist/components.css +1926 -1557
- package/dist/esm/UIKitProvider/index.js +5 -10
- package/dist/esm/core/ConfigProvider/index.js +3 -1
- package/dist/esm/core/Fields/FieldsTimePicker/index.js +2 -1
- package/dist/esm/core/ImmersiveDialog/index.js +21 -14
- package/dist/esm/core/{Modal → LegacyModal}/index.js +9 -5
- package/dist/esm/core/LegacySelect/index.js +4 -0
- package/dist/esm/core/LocalUpload/LocalUpload.hooks.js +63 -0
- package/dist/esm/core/LocalUpload/LocalUpload.js +97 -0
- package/dist/esm/core/LocalUpload/LocalUpload.style.js +10 -0
- package/dist/esm/core/LocalUpload/LocalUpload.widget.js +365 -0
- package/dist/esm/core/MediumDialog/MediumDialog.js +1 -1
- package/dist/esm/core/SmallDialog/SmallDialog.js +6 -4
- package/dist/esm/core/Tab/Tab.js +107 -0
- package/dist/esm/core/Tab/Tab.style.js +12 -0
- package/dist/esm/core/Tab/Tab.type.js +7 -0
- package/dist/esm/core/Tab/useTabAdaptiveLayout.js +71 -0
- package/dist/esm/core/message/message.js +24 -1
- package/dist/esm/coreX/KubeConfigModal/index.js +5 -5
- package/dist/esm/hooks/useAntdPatchEnLocales.js +29 -0
- package/dist/esm/hooks/useLegacyComponentWarning.js +14 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/legacy-antd.js +4 -4
- package/dist/esm/stats1.html +1 -1
- package/dist/linaria.merged.scss +1968 -1541
- package/dist/src/core/ImmersiveDialog/type.d.ts +2 -2
- package/dist/src/core/{Modal/modal.type.d.ts → LegacyModal/LegacyModal.type.d.ts} +12 -1
- package/dist/src/core/LegacyModal/index.d.ts +16 -0
- package/dist/src/core/LocalUpload/LocalUpload.d.ts +15 -0
- package/dist/src/core/LocalUpload/LocalUpload.hooks.d.ts +32 -0
- package/dist/src/core/LocalUpload/LocalUpload.style.d.ts +3 -0
- package/dist/src/core/LocalUpload/LocalUpload.type.d.ts +175 -0
- package/dist/src/core/LocalUpload/LocalUpload.widget.d.ts +23 -0
- package/dist/src/core/LocalUpload/index.d.ts +2 -0
- package/dist/src/core/SmallDialog/SmallDialog.type.d.ts +2 -0
- package/dist/src/core/Tab/Tab.d.ts +3 -0
- package/dist/src/core/Tab/Tab.style.d.ts +5 -0
- package/dist/src/core/Tab/Tab.type.d.ts +42 -0
- package/dist/src/core/Tab/index.d.ts +1 -0
- package/dist/src/core/Tab/useTabAdaptiveLayout.d.ts +23 -0
- package/dist/src/core/index.d.ts +4 -2
- package/dist/src/core/message/message.d.ts +5 -0
- package/dist/src/hooks/useAntdPatchEnLocales.d.ts +431 -0
- package/dist/src/hooks/useLegacyComponentWarning.d.ts +2 -0
- package/dist/src/spec/base.d.ts +2 -2
- package/dist/stories/docs/core/ImmersiveDialog.stories.d.ts +5 -1
- package/dist/stories/docs/core/LegacyModal.stories.d.ts +23 -0
- package/dist/stories/docs/core/LocalUpload.stories.d.ts +74 -0
- package/dist/stories/docs/core/MediumDialog.stories.d.ts +5 -1
- package/dist/stories/docs/core/SmallDialog.stories.d.ts +5 -1
- package/dist/stories/docs/core/Tab.stories.d.ts +65 -0
- package/dist/stories/docs/core/WizardDialog.stories.d.ts +2 -1
- package/dist/stories/docs/core/message-group.stories.d.ts +1 -0
- package/dist/style.css +1926 -1557
- package/dist/variables.scss +3 -0
- package/package.json +4 -4
- package/dist/src/core/Modal/index.d.ts +0 -5
- package/dist/stories/docs/core/Modal.stories.d.ts +0 -13
|
@@ -14,12 +14,12 @@ export type ImmersiveDialogProps = React.PropsWithChildren<AntdModalProps & {
|
|
|
14
14
|
showOk?: boolean;
|
|
15
15
|
/** 确定按钮的文本 */
|
|
16
16
|
okText?: string;
|
|
17
|
-
/** 确定按钮的 loading */
|
|
18
|
-
okLoading?: boolean;
|
|
19
17
|
/** 确定按钮的属性 */
|
|
20
18
|
okButtonProps?: ButtonProps;
|
|
21
19
|
/** 错误信息 */
|
|
22
20
|
error?: React.ReactNode;
|
|
21
|
+
/** 是否隐藏 footer */
|
|
22
|
+
hideFooter?: boolean;
|
|
23
23
|
/** 是否展示在 modal footer 的错误图标, 默认展示 */
|
|
24
24
|
showFooterErrorIcon?: boolean;
|
|
25
25
|
/** 确定按钮的回调 */
|
|
@@ -21,7 +21,18 @@ export type WizardSteps = {
|
|
|
21
21
|
/** 是否禁用当前步骤 */
|
|
22
22
|
disabled?: boolean;
|
|
23
23
|
}[];
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated This component is deprecated and will be removed in future versions.
|
|
26
|
+
* Please use the following alternatives:
|
|
27
|
+
* - For standard dialogs: use `MediumDialog` or `SmallDialog`
|
|
28
|
+
* - For fullscreen dialogs: use `ImmersiveDialog`
|
|
29
|
+
* - For wizard-style dialogs: use `WizardDialog`
|
|
30
|
+
* @see MediumDialog
|
|
31
|
+
* @see SmallDialog
|
|
32
|
+
* @see ImmersiveDialog
|
|
33
|
+
* @see WizardDialog
|
|
34
|
+
*/
|
|
35
|
+
export type LegacyModalProps = Omit<AntdModalProps, "okType"> & {
|
|
25
36
|
/** 确认按钮加载状态 */
|
|
26
37
|
confirmLoading?: boolean;
|
|
27
38
|
/** 是否全屏显示 */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LegacyModalProps } from "./LegacyModal.type";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated This component is deprecated and will be removed in future versions.
|
|
5
|
+
* Please use the following alternatives:
|
|
6
|
+
* - For standard dialogs: use `MediumDialog` or `SmallDialog`
|
|
7
|
+
* - For fullscreen dialogs: use `ImmersiveDialog`
|
|
8
|
+
* - For wizard-style dialogs: use `WizardDialog`
|
|
9
|
+
* @see MediumDialog
|
|
10
|
+
* @see SmallDialog
|
|
11
|
+
* @see ImmersiveDialog
|
|
12
|
+
* @see WizardDialog
|
|
13
|
+
*/
|
|
14
|
+
declare const LegacyModal: React.FC<LegacyModalProps>;
|
|
15
|
+
export default LegacyModal;
|
|
16
|
+
export * from "./LegacyModal.type";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { UploadWrapper } from "./LocalUpload.style";
|
|
3
|
+
import type { LocalUploadProps } from "./LocalUpload.type";
|
|
4
|
+
import { UploadButton, UploadDescription, UploadDragger, UploadFileInfo, UploadFileList, UploadLabel } from "./LocalUpload.widget";
|
|
5
|
+
type UploadComponents = {
|
|
6
|
+
Wrapper: typeof UploadWrapper;
|
|
7
|
+
Label: typeof UploadLabel;
|
|
8
|
+
Description: typeof UploadDescription;
|
|
9
|
+
Button: typeof UploadButton;
|
|
10
|
+
Dragger: typeof UploadDragger;
|
|
11
|
+
FileList: typeof UploadFileList;
|
|
12
|
+
FileInfo: typeof UploadFileInfo;
|
|
13
|
+
};
|
|
14
|
+
export declare const LocalUpload: React.ForwardRefExoticComponent<LocalUploadProps & React.RefAttributes<HTMLDivElement>> & UploadComponents;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { LocalUploadButtonProps, LocalUploadDraggerProps, LocalUploadFile } from "./LocalUpload.type";
|
|
2
|
+
/**
|
|
3
|
+
* Custom hook to handle file validation automatically.
|
|
4
|
+
* When files with status "need-validate" are detected, it validates them
|
|
5
|
+
* and updates their status based on the validation result.
|
|
6
|
+
*
|
|
7
|
+
* @param options - Configuration options
|
|
8
|
+
* @param options.fileList - Current file list
|
|
9
|
+
* @param options.setFileList - Function to update file list
|
|
10
|
+
* @param options.validate - Validation function
|
|
11
|
+
* @param options.createNewFile - Whether to create a new File object when updating (for immutability)
|
|
12
|
+
*/
|
|
13
|
+
export declare const useFileValidation: ({ fileList, setFileList, validate, createNewFile, }: {
|
|
14
|
+
fileList: LocalUploadFile[];
|
|
15
|
+
setFileList: (files: LocalUploadFile[]) => void;
|
|
16
|
+
validate?: LocalUploadDraggerProps["validate"] | LocalUploadButtonProps["validate"];
|
|
17
|
+
createNewFile?: boolean | undefined;
|
|
18
|
+
}) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Custom hook to clear error message when file count changes and is within the max count limit.
|
|
21
|
+
* This hook tracks file count changes using a ref to avoid unnecessary updates.
|
|
22
|
+
*
|
|
23
|
+
* @param options - Configuration options
|
|
24
|
+
* @param options.fileList - Current file list
|
|
25
|
+
* @param options.maxCount - Maximum allowed file count
|
|
26
|
+
* @param options.setError - Function to set error message
|
|
27
|
+
*/
|
|
28
|
+
export declare const useFileCountErrorClear: ({ fileList, maxCount, setError, }: {
|
|
29
|
+
fileList: LocalUploadFile[];
|
|
30
|
+
maxCount: number;
|
|
31
|
+
setError: (error: string) => void;
|
|
32
|
+
}) => void;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const UploadWrapper: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Record<never, unknown>>;
|
|
3
|
+
export declare const FileInfoWrapperStyle: import("@linaria/core").LinariaClassName;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { AntdRcFile, AntdUploadProps } from "../../antd";
|
|
3
|
+
/**
|
|
4
|
+
* 上传文件对象
|
|
5
|
+
* 继承自 Antd 的 RcFile,并添加额外的状态和错误信息
|
|
6
|
+
*/
|
|
7
|
+
export interface LocalUploadFile extends AntdRcFile {
|
|
8
|
+
/** 文件唯一标识 */
|
|
9
|
+
uid: string;
|
|
10
|
+
/** 文件大小(字节) */
|
|
11
|
+
size: number;
|
|
12
|
+
/** 文件名 */
|
|
13
|
+
name: string;
|
|
14
|
+
/** 文件类型 */
|
|
15
|
+
type: string;
|
|
16
|
+
/** 备用文件名 */
|
|
17
|
+
fileName?: string | undefined;
|
|
18
|
+
/** 文件状态 */
|
|
19
|
+
fileStatus: "error" | "success" | "need-validate" | "validating";
|
|
20
|
+
/** 自定义数据 */
|
|
21
|
+
data?: any;
|
|
22
|
+
/** 错误信息 */
|
|
23
|
+
error?: string | null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 文件接受类型
|
|
27
|
+
* 限制只能是以 . 开头的文件扩展名
|
|
28
|
+
*/
|
|
29
|
+
export type LocalUploadAccept = `.${string}`;
|
|
30
|
+
/**
|
|
31
|
+
* 上传按钮属性
|
|
32
|
+
*/
|
|
33
|
+
export type LocalUploadButtonProps = Pick<AntdUploadProps, "accept" | "multiple" | "disabled"> & {
|
|
34
|
+
/** 自定义类名 */
|
|
35
|
+
className?: string;
|
|
36
|
+
/** 是否隐藏图标 */
|
|
37
|
+
hideIcon?: boolean;
|
|
38
|
+
/** 文件列表 */
|
|
39
|
+
fileList: LocalUploadFile[];
|
|
40
|
+
/** 设置文件列表 */
|
|
41
|
+
setFileList: (files: LocalUploadFile[]) => void;
|
|
42
|
+
/** 最大文件数量 */
|
|
43
|
+
maxCount?: number;
|
|
44
|
+
/**
|
|
45
|
+
* 文件验证函数
|
|
46
|
+
* @param file 当前文件
|
|
47
|
+
* @param files 文件列表
|
|
48
|
+
* @returns 返回包含错误信息或自定义数据的 Promise
|
|
49
|
+
*/
|
|
50
|
+
validate?: (file: LocalUploadFile, files?: LocalUploadFile[]) => Promise<{
|
|
51
|
+
error?: string;
|
|
52
|
+
data?: any;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* 拖拽上传属性
|
|
57
|
+
*/
|
|
58
|
+
export type LocalUploadDraggerProps = Pick<AntdUploadProps, "accept" | "multiple" | "disabled"> & {
|
|
59
|
+
/** 自定义类名 */
|
|
60
|
+
className?: string;
|
|
61
|
+
/** 文件列表 */
|
|
62
|
+
fileList: LocalUploadFile[];
|
|
63
|
+
/** 设置文件列表 */
|
|
64
|
+
setFileList: (files: LocalUploadFile[]) => void;
|
|
65
|
+
/** 最大文件数量 */
|
|
66
|
+
maxCount?: number;
|
|
67
|
+
/**
|
|
68
|
+
* 文件验证函数
|
|
69
|
+
* @param file 当前文件
|
|
70
|
+
* @param files 文件列表
|
|
71
|
+
* @returns 返回包含错误信息或自定义数据的 Promise
|
|
72
|
+
*/
|
|
73
|
+
validate?: (file: LocalUploadFile, files?: LocalUploadFile[]) => Promise<{
|
|
74
|
+
error?: string;
|
|
75
|
+
data?: any;
|
|
76
|
+
}>;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* 文件列表属性
|
|
80
|
+
*/
|
|
81
|
+
export type LocalUploadFileListProps = {
|
|
82
|
+
/** 自定义类名 */
|
|
83
|
+
className?: string;
|
|
84
|
+
/** 文件列表 */
|
|
85
|
+
fileList: LocalUploadFile[];
|
|
86
|
+
/** 列表展示类型 */
|
|
87
|
+
type?: "list" | "info";
|
|
88
|
+
/** 移除文件回调 */
|
|
89
|
+
removeFile: (id: string) => void;
|
|
90
|
+
/** 是否禁用移除操作 */
|
|
91
|
+
disableRemove?: boolean;
|
|
92
|
+
/** 文件移除事件回调 */
|
|
93
|
+
onRemove?: (file: LocalUploadFile) => void;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* 文件信息展示属性
|
|
97
|
+
*/
|
|
98
|
+
export type LocalUploadFileInfoProps = {
|
|
99
|
+
/** 文件对象 */
|
|
100
|
+
file: {
|
|
101
|
+
/** 文件状态 */
|
|
102
|
+
fileStatus?: "error" | "success" | "need-validate" | "validating";
|
|
103
|
+
/** 文件名 */
|
|
104
|
+
name: string;
|
|
105
|
+
/** 备用文件名 */
|
|
106
|
+
fileName?: string;
|
|
107
|
+
/** 文件大小 */
|
|
108
|
+
size?: number;
|
|
109
|
+
/** 文件唯一标识 */
|
|
110
|
+
uid?: string;
|
|
111
|
+
/** 错误信息 */
|
|
112
|
+
error?: string | null;
|
|
113
|
+
};
|
|
114
|
+
/** 移除文件回调 */
|
|
115
|
+
removeFile: (id: string) => void;
|
|
116
|
+
/** 是否禁用 */
|
|
117
|
+
disabled?: boolean;
|
|
118
|
+
/** 文件移除事件回调 */
|
|
119
|
+
onRemove?: (file: LocalUploadFile) => void;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Upload 组件属性
|
|
123
|
+
*/
|
|
124
|
+
export type LocalUploadProps = {
|
|
125
|
+
/** 自定义类名 */
|
|
126
|
+
className?: string;
|
|
127
|
+
/** 标签 */
|
|
128
|
+
label?: React.ReactNode;
|
|
129
|
+
/** 描述文本 */
|
|
130
|
+
description?: React.ReactNode;
|
|
131
|
+
/** 额外信息 */
|
|
132
|
+
info?: React.ReactNode;
|
|
133
|
+
/** 上传类型:按钮或拖拽 */
|
|
134
|
+
type?: "button" | "dragger";
|
|
135
|
+
/** 列表展示类型 */
|
|
136
|
+
listType?: "list" | "info";
|
|
137
|
+
/** 是否支持多选 */
|
|
138
|
+
multiple?: boolean;
|
|
139
|
+
/** 接受的文件类型 */
|
|
140
|
+
accept?: LocalUploadAccept;
|
|
141
|
+
/** 是否禁用 */
|
|
142
|
+
disabled?: boolean;
|
|
143
|
+
/** 最大文件数量 */
|
|
144
|
+
maxCount?: number;
|
|
145
|
+
/** 文件列表 */
|
|
146
|
+
fileList: LocalUploadFile[];
|
|
147
|
+
/** 设置文件列表 */
|
|
148
|
+
setFileList: (files: LocalUploadFile[]) => void;
|
|
149
|
+
/** 是否禁用文件列表的移除功能 */
|
|
150
|
+
disableRemoveList?: boolean;
|
|
151
|
+
/**
|
|
152
|
+
* 文件验证函数
|
|
153
|
+
* @param file 当前文件
|
|
154
|
+
* @param files 文件列表
|
|
155
|
+
* @returns 返回包含错误信息或自定义数据的 Promise
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* const validate = async (file: LocalUploadFile) => {
|
|
160
|
+
* if (file.size > 5 * 1024 * 1024) {
|
|
161
|
+
* return { error: "文件大小不能超过 5MB" };
|
|
162
|
+
* }
|
|
163
|
+
* return { data: { validated: true } };
|
|
164
|
+
* };
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
validate?: (file: LocalUploadFile, files?: LocalUploadFile[]) => Promise<{
|
|
168
|
+
error?: string;
|
|
169
|
+
data?: any;
|
|
170
|
+
}>;
|
|
171
|
+
/** 按钮属性 */
|
|
172
|
+
buttonProps?: Pick<LocalUploadButtonProps, "className" | "hideIcon">;
|
|
173
|
+
/** 文件移除事件回调 */
|
|
174
|
+
onRemove?: (file: LocalUploadFile) => void;
|
|
175
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { LocalUploadButtonProps, LocalUploadDraggerProps, LocalUploadFile, LocalUploadFileInfoProps, LocalUploadFileListProps } from "./LocalUpload.type";
|
|
3
|
+
export declare const UploadLabel: React.FC<{
|
|
4
|
+
className?: string;
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const UploadDescription: React.FC<{
|
|
8
|
+
className?: string;
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const UploadButton: React.FC<LocalUploadButtonProps & {
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const UploadDragger: React.FC<LocalUploadDraggerProps & {
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const UploadFileInfo: React.FC<LocalUploadFileInfoProps>;
|
|
18
|
+
export declare const FileListItem: React.FC<{
|
|
19
|
+
file: LocalUploadFile;
|
|
20
|
+
removeFile: (id: string) => void;
|
|
21
|
+
onRemove?: (file: LocalUploadFile) => void;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const UploadFileList: React.FC<LocalUploadFileListProps>;
|
|
@@ -34,6 +34,8 @@ export interface SmallDialogProps {
|
|
|
34
34
|
children?: React.ReactNode;
|
|
35
35
|
/** 展示在 modal footer 的错误文案 */
|
|
36
36
|
error?: React.ReactNode;
|
|
37
|
+
/** 是否隐藏 footer */
|
|
38
|
+
hideFooter?: boolean;
|
|
37
39
|
/** 是否展示在 modal footer 的错误图标, 默认展示 */
|
|
38
40
|
showFooterErrorIcon?: boolean;
|
|
39
41
|
/** 确认按钮加载状态 */
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const TabMenuWrapper: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Record<never, unknown>>;
|
|
3
|
+
export declare const TabTitleElStyle: import("@linaria/core").LinariaClassName;
|
|
4
|
+
export declare const MoreThanTooltipStyle: import("@linaria/core").LinariaClassName;
|
|
5
|
+
export declare const IconStyle: import("@linaria/core").LinariaClassName;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Tab 项的数据结构
|
|
4
|
+
*/
|
|
5
|
+
export type TabItem = {
|
|
6
|
+
/** Tab 的唯一标识符 */
|
|
7
|
+
key: string;
|
|
8
|
+
/** Tab 的标题,可以是字符串、ReactNode 或函数 */
|
|
9
|
+
title: string | React.ReactNode | ((props: {
|
|
10
|
+
isActive: boolean;
|
|
11
|
+
}) => React.ReactNode);
|
|
12
|
+
/** Tab 的内容 */
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Tab 组件的属性
|
|
17
|
+
*/
|
|
18
|
+
export type TabProps = {
|
|
19
|
+
/** 外层容器的类名 */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** 内容区域的类名 */
|
|
22
|
+
contentClassName?: string;
|
|
23
|
+
/** 当前选中的 Tab 的 key */
|
|
24
|
+
selectedKey: string;
|
|
25
|
+
/** Tab 列表 */
|
|
26
|
+
tabs: TabItem[];
|
|
27
|
+
/** Tab 切换时的回调 */
|
|
28
|
+
onChange?: (key: string) => void;
|
|
29
|
+
/** 额外的插槽内容,显示在 tab bar 的右侧 */
|
|
30
|
+
extraSlot?: React.ReactNode;
|
|
31
|
+
/** Tab 的大小 */
|
|
32
|
+
size?: "small" | "medium";
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* 激活 Tab 的类型枚举
|
|
36
|
+
*/
|
|
37
|
+
export declare enum ActiveTabType {
|
|
38
|
+
/** 普通类型的 Tab */
|
|
39
|
+
Common = 0,
|
|
40
|
+
/** 在更多菜单中的 Tab */
|
|
41
|
+
More = 1
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Tab";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TabItem } from "../../core/Tab/Tab.type";
|
|
2
|
+
import { RefObject } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Tab 自适应布局 Hook
|
|
5
|
+
*
|
|
6
|
+
* 根据可用空间自动计算哪些 tab 需要隐藏到"更多"菜单中。
|
|
7
|
+
* 当容器尺寸变化、tabs 列表变化或 selectedKey 变化时,会自动重新计算布局。
|
|
8
|
+
*
|
|
9
|
+
* @param tabs - Tab 列表
|
|
10
|
+
* @param tabsRef - Tab 容器的 ref
|
|
11
|
+
* @param extraSlotRef - 额外插槽的 ref(用于计算可用宽度)
|
|
12
|
+
* @param selectedKey - 当前选中的 tab key(用于触发重新计算,当选中项在"更多"菜单中时会影响按钮宽度)
|
|
13
|
+
*
|
|
14
|
+
* @returns moreTabs - 需要隐藏到"更多"菜单的 tabs 列表
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const tabsRef = useRef<HTMLDivElement>(null);
|
|
19
|
+
* const extraSlotRef = useRef<HTMLDivElement>(null);
|
|
20
|
+
* const moreTabs = useTabAdaptiveLayout(tabs, tabsRef, extraSlotRef, selectedKey);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const useTabAdaptiveLayout: (tabs: TabItem[], tabsRef: RefObject<HTMLDivElement>, extraSlotRef: RefObject<HTMLDivElement>, selectedKey?: string) => TabItem[];
|
package/dist/src/core/index.d.ts
CHANGED
|
@@ -44,16 +44,17 @@ export * from "./InputNumber";
|
|
|
44
44
|
export * from "./InputPassword";
|
|
45
45
|
export * from "./InputTagItem";
|
|
46
46
|
export * from "./KitStoreProvider";
|
|
47
|
+
export * from "./LegacyModal";
|
|
47
48
|
export * from "./LegacySelect";
|
|
48
49
|
export * from "./Legend";
|
|
49
50
|
export * from "./LineChart";
|
|
50
51
|
export * from "./Link";
|
|
51
52
|
export * from "./Loading";
|
|
53
|
+
export * from "./LocalUpload";
|
|
52
54
|
export * from "./MediumDialog";
|
|
53
55
|
export * from "./message";
|
|
54
56
|
export * from "./message-group";
|
|
55
57
|
export * from "./Metric";
|
|
56
|
-
export * from "./Modal";
|
|
57
58
|
export * from "./ModalStack";
|
|
58
59
|
export * from "./Overflow";
|
|
59
60
|
export * from "./Pagination";
|
|
@@ -76,6 +77,7 @@ export * from "./StepProgress";
|
|
|
76
77
|
export * from "./Steps";
|
|
77
78
|
export * from "./Styled";
|
|
78
79
|
export * from "./Switch";
|
|
80
|
+
export * from "./Tab";
|
|
79
81
|
export * from "./Table";
|
|
80
82
|
export * from "./TableForm";
|
|
81
83
|
export * from "./Tag";
|
|
@@ -141,6 +143,7 @@ export { default as InputNumber } from "./InputNumber";
|
|
|
141
143
|
export { default as InputPassword } from "./InputPassword";
|
|
142
144
|
export { default as InputTagItem } from "./InputTagItem";
|
|
143
145
|
export { default as KitStoreProvider } from "./KitStoreProvider";
|
|
146
|
+
export { default as LegacyModal } from "./LegacyModal";
|
|
144
147
|
export { default as LegacySelect } from "./LegacySelect";
|
|
145
148
|
export { default as Legend } from "./Legend";
|
|
146
149
|
export { default as LineChart } from "./LineChart";
|
|
@@ -148,7 +151,6 @@ export { default as Link } from "./Link";
|
|
|
148
151
|
export { default as Loading } from "./Loading";
|
|
149
152
|
export { default as message } from "./message";
|
|
150
153
|
export { default as Metric } from "./Metric";
|
|
151
|
-
export { default as Modal } from "./Modal";
|
|
152
154
|
export { default as ModalStack } from "./ModalStack";
|
|
153
155
|
export { default as Nav } from "./Nav";
|
|
154
156
|
export { default as Overflow } from "./Overflow";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { type ConfigProps } from "../ConfigProvider";
|
|
2
3
|
type NoticeType = "info" | "success" | "error" | "warning" | "loading";
|
|
3
4
|
export declare const DEFAULT_DURATION = 3;
|
|
4
5
|
export declare function getKeyThenIncreaseKey(): number;
|
|
@@ -10,6 +11,10 @@ export interface ConfigOptions {
|
|
|
10
11
|
transitionName?: string;
|
|
11
12
|
maxCount?: number;
|
|
12
13
|
rtl?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* ConfigProvider 的配置,用于在 message 中传递 context
|
|
16
|
+
*/
|
|
17
|
+
configProviderProps?: ConfigProps;
|
|
13
18
|
}
|
|
14
19
|
export interface ThenableArgument {
|
|
15
20
|
(val: any): void;
|