sa2kit 1.0.0 → 1.0.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/UniversalFileService-CEZRJ87g.d.mts +727 -0
- package/dist/UniversalFileService-CEZRJ87g.d.ts +727 -0
- package/dist/api/index.d.mts +248 -0
- package/dist/api/index.d.ts +248 -0
- package/dist/api/index.js +294 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/index.mjs +290 -0
- package/dist/api/index.mjs.map +1 -0
- package/dist/auth/client/index.d.mts +52 -3
- package/dist/auth/client/index.d.ts +52 -3
- package/dist/auth/components/index.d.mts +149 -4
- package/dist/auth/components/index.d.ts +149 -4
- package/dist/auth/components/index.js +243 -9
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/components/index.mjs +237 -4
- package/dist/auth/components/index.mjs.map +1 -1
- package/dist/auth/hooks/index.d.mts +31 -2
- package/dist/auth/hooks/index.d.ts +31 -2
- package/dist/auth/index.d.mts +5 -5
- package/dist/auth/index.d.ts +5 -5
- package/dist/auth/index.js +49 -17
- package/dist/auth/index.mjs +1 -1
- package/dist/auth/routes/index.d.mts +103 -5
- package/dist/auth/routes/index.d.ts +103 -5
- package/dist/auth/routes/index.js +37 -5
- package/dist/auth/routes/index.mjs +1 -1
- package/dist/chunk-42IJ7HEI.js +573 -0
- package/dist/chunk-42IJ7HEI.js.map +1 -0
- package/dist/chunk-7XLFSPDG.mjs +31 -0
- package/dist/chunk-7XLFSPDG.mjs.map +1 -0
- package/dist/chunk-GCVOKQZP.js +36 -0
- package/dist/chunk-GCVOKQZP.js.map +1 -0
- package/dist/chunk-IBLB7ARJ.mjs +560 -0
- package/dist/chunk-IBLB7ARJ.mjs.map +1 -0
- package/dist/{chunk-6FNUWAIV.js → chunk-LX4XX6W7.js} +54 -8
- package/dist/chunk-LX4XX6W7.js.map +1 -0
- package/dist/{chunk-HXFFYNIF.mjs → chunk-T5OZHYVM.mjs} +54 -8
- package/dist/chunk-T5OZHYVM.mjs.map +1 -0
- package/dist/config/server/index.d.mts +1533 -0
- package/dist/config/server/index.d.ts +1533 -0
- package/dist/config/server/index.js +1177 -0
- package/dist/config/server/index.js.map +1 -0
- package/dist/config/server/index.mjs +1138 -0
- package/dist/config/server/index.mjs.map +1 -0
- package/dist/i18n/index.d.mts +2 -1
- package/dist/i18n/index.d.ts +2 -1
- package/dist/i18n/index.js +125 -61
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/index.mjs +126 -62
- package/dist/i18n/index.mjs.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.mjs +1 -1
- package/dist/mmd/index.d.mts +346 -0
- package/dist/mmd/index.d.ts +346 -0
- package/dist/mmd/index.js +1535 -0
- package/dist/mmd/index.js.map +1 -0
- package/dist/mmd/index.mjs +1503 -0
- package/dist/mmd/index.mjs.map +1 -0
- package/dist/storage/index.d.mts +1 -0
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.js +9 -9
- package/dist/storage/index.mjs +1 -1
- package/dist/{index-8VoHap_4.d.mts → types-CroexXnI.d.ts} +38 -44
- package/dist/{index-8VoHap_4.d.ts → types-DmsXCWvm.d.mts} +38 -44
- package/dist/{types-DAxQ1MeY.d.ts → types-Dt0oqeFM.d.mts} +1 -1
- package/dist/{types-DT8LVCvE.d.mts → types-zK6kDzDQ.d.ts} +1 -1
- package/dist/universalExport/index.js +17 -32
- package/dist/universalExport/index.js.map +1 -1
- package/dist/universalExport/index.mjs +2 -29
- package/dist/universalExport/index.mjs.map +1 -1
- package/dist/universalExport/server/index.d.mts +849 -8
- package/dist/universalExport/server/index.d.ts +849 -8
- package/dist/universalExport/server/index.js +1382 -2
- package/dist/universalExport/server/index.js.map +1 -1
- package/dist/universalExport/server/index.mjs +1355 -3
- package/dist/universalExport/server/index.mjs.map +1 -1
- package/dist/universalFile/index.d.mts +54 -3
- package/dist/universalFile/index.d.ts +54 -3
- package/dist/universalFile/index.js +272 -0
- package/dist/universalFile/index.js.map +1 -1
- package/dist/universalFile/index.mjs +267 -1
- package/dist/universalFile/index.mjs.map +1 -1
- package/dist/universalFile/server/index.d.mts +2541 -469
- package/dist/universalFile/server/index.d.ts +2541 -469
- package/dist/universalFile/server/index.js +830 -64
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +803 -66
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/package.json +47 -23
- package/dist/chunk-6FNUWAIV.js.map +0 -1
- package/dist/chunk-APY57REU.js +0 -300
- package/dist/chunk-APY57REU.js.map +0 -1
- package/dist/chunk-C64RY2OW.mjs +0 -295
- package/dist/chunk-C64RY2OW.mjs.map +0 -1
- package/dist/chunk-HXFFYNIF.mjs.map +0 -1
- package/dist/types-CoGG1rNV.d.mts +0 -258
- package/dist/types-CoGG1rNV.d.ts +0 -258
- package/dist/types-DW9qar-w.d.mts +0 -52
- package/dist/types-DW9qar-w.d.ts +0 -52
|
@@ -1,7 +1,56 @@
|
|
|
1
1
|
import { S as StorageAdapter } from '../../types-BaZccpvk.mjs';
|
|
2
2
|
import { R as RequestAdapter } from '../../types-CbTsi9CZ.mjs';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Auth Client - Types
|
|
6
|
+
* API 客户端类型定义
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* API 响应类型
|
|
10
|
+
*/
|
|
11
|
+
interface ApiResponse<T = any> {
|
|
12
|
+
success: boolean;
|
|
13
|
+
data?: T;
|
|
14
|
+
error?: string;
|
|
15
|
+
message?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 用户类型
|
|
19
|
+
*/
|
|
20
|
+
interface User {
|
|
21
|
+
id: string;
|
|
22
|
+
email: string;
|
|
23
|
+
username: string;
|
|
24
|
+
role: string;
|
|
25
|
+
nickname?: string;
|
|
26
|
+
avatar?: string;
|
|
27
|
+
image?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 认证响应类型
|
|
31
|
+
*/
|
|
32
|
+
interface AuthResponse {
|
|
33
|
+
user: User;
|
|
34
|
+
token: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 存储键名
|
|
38
|
+
*/
|
|
39
|
+
declare const STORAGE_KEYS: {
|
|
40
|
+
readonly AUTH_TOKEN: "auth_token";
|
|
41
|
+
readonly USER_DATA: "user_data";
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* API 路由
|
|
45
|
+
*/
|
|
46
|
+
declare const API_ROUTES: {
|
|
47
|
+
readonly AUTH: {
|
|
48
|
+
readonly LOGIN: "/auth/login";
|
|
49
|
+
readonly REGISTER: "/auth/register";
|
|
50
|
+
readonly LOGOUT: "/auth/logout";
|
|
51
|
+
readonly ME: "/auth/me";
|
|
52
|
+
};
|
|
53
|
+
};
|
|
5
54
|
|
|
6
55
|
/**
|
|
7
56
|
* Auth Client - Base API Client
|
|
@@ -101,4 +150,4 @@ declare class BaseApiClient {
|
|
|
101
150
|
delete<T = any>(url: string): Promise<ApiResponse<T>>;
|
|
102
151
|
}
|
|
103
152
|
|
|
104
|
-
export { ApiResponse, AuthResponse, BaseApiClient, User };
|
|
153
|
+
export { API_ROUTES, type ApiResponse, type AuthResponse, BaseApiClient, STORAGE_KEYS, type User };
|
|
@@ -1,7 +1,56 @@
|
|
|
1
1
|
import { S as StorageAdapter } from '../../types-BaZccpvk.js';
|
|
2
2
|
import { R as RequestAdapter } from '../../types-CbTsi9CZ.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Auth Client - Types
|
|
6
|
+
* API 客户端类型定义
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* API 响应类型
|
|
10
|
+
*/
|
|
11
|
+
interface ApiResponse<T = any> {
|
|
12
|
+
success: boolean;
|
|
13
|
+
data?: T;
|
|
14
|
+
error?: string;
|
|
15
|
+
message?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 用户类型
|
|
19
|
+
*/
|
|
20
|
+
interface User {
|
|
21
|
+
id: string;
|
|
22
|
+
email: string;
|
|
23
|
+
username: string;
|
|
24
|
+
role: string;
|
|
25
|
+
nickname?: string;
|
|
26
|
+
avatar?: string;
|
|
27
|
+
image?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 认证响应类型
|
|
31
|
+
*/
|
|
32
|
+
interface AuthResponse {
|
|
33
|
+
user: User;
|
|
34
|
+
token: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 存储键名
|
|
38
|
+
*/
|
|
39
|
+
declare const STORAGE_KEYS: {
|
|
40
|
+
readonly AUTH_TOKEN: "auth_token";
|
|
41
|
+
readonly USER_DATA: "user_data";
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* API 路由
|
|
45
|
+
*/
|
|
46
|
+
declare const API_ROUTES: {
|
|
47
|
+
readonly AUTH: {
|
|
48
|
+
readonly LOGIN: "/auth/login";
|
|
49
|
+
readonly REGISTER: "/auth/register";
|
|
50
|
+
readonly LOGOUT: "/auth/logout";
|
|
51
|
+
readonly ME: "/auth/me";
|
|
52
|
+
};
|
|
53
|
+
};
|
|
5
54
|
|
|
6
55
|
/**
|
|
7
56
|
* Auth Client - Base API Client
|
|
@@ -101,4 +150,4 @@ declare class BaseApiClient {
|
|
|
101
150
|
delete<T = any>(url: string): Promise<ApiResponse<T>>;
|
|
102
151
|
}
|
|
103
152
|
|
|
104
|
-
export { ApiResponse, AuthResponse, BaseApiClient, User };
|
|
153
|
+
export { API_ROUTES, type ApiResponse, type AuthResponse, BaseApiClient, STORAGE_KEYS, type User };
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { H as HeadlessLoginFormProps, a as HeadlessRegisterFormProps } from '../../types-
|
|
3
|
-
export { B as BaseFormProps, L as LoginFormState, R as RegisterFormState } from '../../types-
|
|
4
|
-
import '
|
|
2
|
+
import { H as HeadlessLoginFormProps, a as HeadlessRegisterFormProps } from '../../types-Dt0oqeFM.mjs';
|
|
3
|
+
export { B as BaseFormProps, L as LoginFormState, R as RegisterFormState } from '../../types-Dt0oqeFM.mjs';
|
|
4
|
+
import { BaseApiClient } from '../client/index.mjs';
|
|
5
|
+
import { a as User } from '../../types-DmsXCWvm.mjs';
|
|
6
|
+
import '../../types-BaZccpvk.mjs';
|
|
7
|
+
import '../../types-CbTsi9CZ.mjs';
|
|
8
|
+
import '../../enums-Dume-V5Y.mjs';
|
|
9
|
+
import 'drizzle-orm/pg-core';
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* Auth Components - LoginForm (Headless)
|
|
@@ -79,4 +84,144 @@ declare function LoginForm({ apiClient, onSuccess, onError, children }: Headless
|
|
|
79
84
|
*/
|
|
80
85
|
declare function RegisterForm({ apiClient, onSuccess, onError, children, }: HeadlessRegisterFormProps): React__default.JSX.Element;
|
|
81
86
|
|
|
82
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Admin Login Page Component
|
|
89
|
+
* 完整的管理后台登录页面组件
|
|
90
|
+
*
|
|
91
|
+
* 功能:
|
|
92
|
+
* - 邮箱密码登录
|
|
93
|
+
* - 开发环境测试账户自动填充
|
|
94
|
+
* - Analytics 埋点集成
|
|
95
|
+
* - 角色权限检查
|
|
96
|
+
* - 响应式设计
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
interface AdminLoginPageProps {
|
|
100
|
+
/**
|
|
101
|
+
* API 客户端实例
|
|
102
|
+
*/
|
|
103
|
+
apiClient: BaseApiClient;
|
|
104
|
+
/**
|
|
105
|
+
* 登录成功后的回调
|
|
106
|
+
*/
|
|
107
|
+
onLoginSuccess?: (user: User) => void;
|
|
108
|
+
/**
|
|
109
|
+
* 登录失败的回调
|
|
110
|
+
*/
|
|
111
|
+
onLoginError?: (error: string) => void;
|
|
112
|
+
/**
|
|
113
|
+
* 权限检查函数(可选)
|
|
114
|
+
* 返回 true 表示有权限,false 表示无权限
|
|
115
|
+
*/
|
|
116
|
+
checkPermission?: (user: User) => boolean;
|
|
117
|
+
/**
|
|
118
|
+
* 权限不足时的错误消息
|
|
119
|
+
*/
|
|
120
|
+
permissionDeniedMessage?: string;
|
|
121
|
+
/**
|
|
122
|
+
* 开发环境配置
|
|
123
|
+
*/
|
|
124
|
+
devConfig?: {
|
|
125
|
+
/**
|
|
126
|
+
* 是否启用开发模式功能(自动填充等)
|
|
127
|
+
*/
|
|
128
|
+
enabled?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 测试账户邮箱
|
|
131
|
+
*/
|
|
132
|
+
testEmail?: string;
|
|
133
|
+
/**
|
|
134
|
+
* 测试账户密码
|
|
135
|
+
*/
|
|
136
|
+
testPassword?: string;
|
|
137
|
+
/**
|
|
138
|
+
* 自动填充延迟(毫秒)
|
|
139
|
+
*/
|
|
140
|
+
autoFillDelay?: number;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* 页面文本配置
|
|
144
|
+
*/
|
|
145
|
+
texts?: {
|
|
146
|
+
appName?: string;
|
|
147
|
+
appDescription?: string;
|
|
148
|
+
pageTitle?: string;
|
|
149
|
+
pageSubtitle?: string;
|
|
150
|
+
emailLabel?: string;
|
|
151
|
+
emailPlaceholder?: string;
|
|
152
|
+
passwordLabel?: string;
|
|
153
|
+
passwordPlaceholder?: string;
|
|
154
|
+
loginButton?: string;
|
|
155
|
+
loggingInButton?: string;
|
|
156
|
+
fillTestAccount?: string;
|
|
157
|
+
copyCredentials?: string;
|
|
158
|
+
devModeLabel?: string;
|
|
159
|
+
testAccountInfo?: string;
|
|
160
|
+
testAccountFilled?: string;
|
|
161
|
+
footer?: string;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Analytics 集成(可选)
|
|
165
|
+
*/
|
|
166
|
+
analytics?: {
|
|
167
|
+
/**
|
|
168
|
+
* 页面访问埋点
|
|
169
|
+
*/
|
|
170
|
+
trackPageView?: (data: Record<string, any>) => void;
|
|
171
|
+
/**
|
|
172
|
+
* 登录成功埋点
|
|
173
|
+
*/
|
|
174
|
+
trackLoginSuccess?: (user: User) => void;
|
|
175
|
+
/**
|
|
176
|
+
* 登录失败埋点
|
|
177
|
+
*/
|
|
178
|
+
trackLoginFailed?: (error: string, email: string) => void;
|
|
179
|
+
/**
|
|
180
|
+
* 权限拒绝埋点
|
|
181
|
+
*/
|
|
182
|
+
trackPermissionDenied?: (user: User) => void;
|
|
183
|
+
/**
|
|
184
|
+
* 设置用户信息
|
|
185
|
+
*/
|
|
186
|
+
setUser?: (user: {
|
|
187
|
+
userId: string;
|
|
188
|
+
email: string;
|
|
189
|
+
role: string;
|
|
190
|
+
}) => void;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* UI 组件(可选,用于自定义样式)
|
|
194
|
+
*/
|
|
195
|
+
components?: {
|
|
196
|
+
Container?: React__default.ComponentType<{
|
|
197
|
+
children: React__default.ReactNode;
|
|
198
|
+
}>;
|
|
199
|
+
Card?: React__default.ComponentType<{
|
|
200
|
+
children: React__default.ReactNode;
|
|
201
|
+
}>;
|
|
202
|
+
Input?: React__default.ComponentType<any>;
|
|
203
|
+
Button?: React__default.ComponentType<any>;
|
|
204
|
+
Alert?: React__default.ComponentType<{
|
|
205
|
+
children: React__default.ReactNode;
|
|
206
|
+
}>;
|
|
207
|
+
Badge?: React__default.ComponentType<{
|
|
208
|
+
children: React__default.ReactNode;
|
|
209
|
+
variant?: string;
|
|
210
|
+
}>;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* className 配置(用于 Tailwind CSS)
|
|
214
|
+
*/
|
|
215
|
+
classNames?: {
|
|
216
|
+
container?: string;
|
|
217
|
+
card?: string;
|
|
218
|
+
header?: string;
|
|
219
|
+
form?: string;
|
|
220
|
+
input?: string;
|
|
221
|
+
button?: string;
|
|
222
|
+
alert?: string;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
declare function AdminLoginPage(props: AdminLoginPageProps): React__default.JSX.Element;
|
|
226
|
+
|
|
227
|
+
export { AdminLoginPage, type AdminLoginPageProps, HeadlessLoginFormProps, HeadlessRegisterFormProps, LoginForm, RegisterForm };
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { H as HeadlessLoginFormProps, a as HeadlessRegisterFormProps } from '../../types-
|
|
3
|
-
export { B as BaseFormProps, L as LoginFormState, R as RegisterFormState } from '../../types-
|
|
4
|
-
import '
|
|
2
|
+
import { H as HeadlessLoginFormProps, a as HeadlessRegisterFormProps } from '../../types-zK6kDzDQ.js';
|
|
3
|
+
export { B as BaseFormProps, L as LoginFormState, R as RegisterFormState } from '../../types-zK6kDzDQ.js';
|
|
4
|
+
import { BaseApiClient } from '../client/index.js';
|
|
5
|
+
import { a as User } from '../../types-CroexXnI.js';
|
|
6
|
+
import '../../types-BaZccpvk.js';
|
|
7
|
+
import '../../types-CbTsi9CZ.js';
|
|
8
|
+
import '../../enums-Dume-V5Y.js';
|
|
9
|
+
import 'drizzle-orm/pg-core';
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* Auth Components - LoginForm (Headless)
|
|
@@ -79,4 +84,144 @@ declare function LoginForm({ apiClient, onSuccess, onError, children }: Headless
|
|
|
79
84
|
*/
|
|
80
85
|
declare function RegisterForm({ apiClient, onSuccess, onError, children, }: HeadlessRegisterFormProps): React__default.JSX.Element;
|
|
81
86
|
|
|
82
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Admin Login Page Component
|
|
89
|
+
* 完整的管理后台登录页面组件
|
|
90
|
+
*
|
|
91
|
+
* 功能:
|
|
92
|
+
* - 邮箱密码登录
|
|
93
|
+
* - 开发环境测试账户自动填充
|
|
94
|
+
* - Analytics 埋点集成
|
|
95
|
+
* - 角色权限检查
|
|
96
|
+
* - 响应式设计
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
interface AdminLoginPageProps {
|
|
100
|
+
/**
|
|
101
|
+
* API 客户端实例
|
|
102
|
+
*/
|
|
103
|
+
apiClient: BaseApiClient;
|
|
104
|
+
/**
|
|
105
|
+
* 登录成功后的回调
|
|
106
|
+
*/
|
|
107
|
+
onLoginSuccess?: (user: User) => void;
|
|
108
|
+
/**
|
|
109
|
+
* 登录失败的回调
|
|
110
|
+
*/
|
|
111
|
+
onLoginError?: (error: string) => void;
|
|
112
|
+
/**
|
|
113
|
+
* 权限检查函数(可选)
|
|
114
|
+
* 返回 true 表示有权限,false 表示无权限
|
|
115
|
+
*/
|
|
116
|
+
checkPermission?: (user: User) => boolean;
|
|
117
|
+
/**
|
|
118
|
+
* 权限不足时的错误消息
|
|
119
|
+
*/
|
|
120
|
+
permissionDeniedMessage?: string;
|
|
121
|
+
/**
|
|
122
|
+
* 开发环境配置
|
|
123
|
+
*/
|
|
124
|
+
devConfig?: {
|
|
125
|
+
/**
|
|
126
|
+
* 是否启用开发模式功能(自动填充等)
|
|
127
|
+
*/
|
|
128
|
+
enabled?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 测试账户邮箱
|
|
131
|
+
*/
|
|
132
|
+
testEmail?: string;
|
|
133
|
+
/**
|
|
134
|
+
* 测试账户密码
|
|
135
|
+
*/
|
|
136
|
+
testPassword?: string;
|
|
137
|
+
/**
|
|
138
|
+
* 自动填充延迟(毫秒)
|
|
139
|
+
*/
|
|
140
|
+
autoFillDelay?: number;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* 页面文本配置
|
|
144
|
+
*/
|
|
145
|
+
texts?: {
|
|
146
|
+
appName?: string;
|
|
147
|
+
appDescription?: string;
|
|
148
|
+
pageTitle?: string;
|
|
149
|
+
pageSubtitle?: string;
|
|
150
|
+
emailLabel?: string;
|
|
151
|
+
emailPlaceholder?: string;
|
|
152
|
+
passwordLabel?: string;
|
|
153
|
+
passwordPlaceholder?: string;
|
|
154
|
+
loginButton?: string;
|
|
155
|
+
loggingInButton?: string;
|
|
156
|
+
fillTestAccount?: string;
|
|
157
|
+
copyCredentials?: string;
|
|
158
|
+
devModeLabel?: string;
|
|
159
|
+
testAccountInfo?: string;
|
|
160
|
+
testAccountFilled?: string;
|
|
161
|
+
footer?: string;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Analytics 集成(可选)
|
|
165
|
+
*/
|
|
166
|
+
analytics?: {
|
|
167
|
+
/**
|
|
168
|
+
* 页面访问埋点
|
|
169
|
+
*/
|
|
170
|
+
trackPageView?: (data: Record<string, any>) => void;
|
|
171
|
+
/**
|
|
172
|
+
* 登录成功埋点
|
|
173
|
+
*/
|
|
174
|
+
trackLoginSuccess?: (user: User) => void;
|
|
175
|
+
/**
|
|
176
|
+
* 登录失败埋点
|
|
177
|
+
*/
|
|
178
|
+
trackLoginFailed?: (error: string, email: string) => void;
|
|
179
|
+
/**
|
|
180
|
+
* 权限拒绝埋点
|
|
181
|
+
*/
|
|
182
|
+
trackPermissionDenied?: (user: User) => void;
|
|
183
|
+
/**
|
|
184
|
+
* 设置用户信息
|
|
185
|
+
*/
|
|
186
|
+
setUser?: (user: {
|
|
187
|
+
userId: string;
|
|
188
|
+
email: string;
|
|
189
|
+
role: string;
|
|
190
|
+
}) => void;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* UI 组件(可选,用于自定义样式)
|
|
194
|
+
*/
|
|
195
|
+
components?: {
|
|
196
|
+
Container?: React__default.ComponentType<{
|
|
197
|
+
children: React__default.ReactNode;
|
|
198
|
+
}>;
|
|
199
|
+
Card?: React__default.ComponentType<{
|
|
200
|
+
children: React__default.ReactNode;
|
|
201
|
+
}>;
|
|
202
|
+
Input?: React__default.ComponentType<any>;
|
|
203
|
+
Button?: React__default.ComponentType<any>;
|
|
204
|
+
Alert?: React__default.ComponentType<{
|
|
205
|
+
children: React__default.ReactNode;
|
|
206
|
+
}>;
|
|
207
|
+
Badge?: React__default.ComponentType<{
|
|
208
|
+
children: React__default.ReactNode;
|
|
209
|
+
variant?: string;
|
|
210
|
+
}>;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* className 配置(用于 Tailwind CSS)
|
|
214
|
+
*/
|
|
215
|
+
classNames?: {
|
|
216
|
+
container?: string;
|
|
217
|
+
card?: string;
|
|
218
|
+
header?: string;
|
|
219
|
+
form?: string;
|
|
220
|
+
input?: string;
|
|
221
|
+
button?: string;
|
|
222
|
+
alert?: string;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
declare function AdminLoginPage(props: AdminLoginPageProps): React__default.JSX.Element;
|
|
226
|
+
|
|
227
|
+
export { AdminLoginPage, type AdminLoginPageProps, HeadlessLoginFormProps, HeadlessRegisterFormProps, LoginForm, RegisterForm };
|