sa2kit 1.6.9 → 1.6.11
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/ConfigService-BxK06xP6.d.mts +262 -0
- package/dist/ConfigService-BxK06xP6.d.ts +262 -0
- package/dist/UniversalFileService-BuHN-jrR.d.ts +515 -0
- package/dist/UniversalFileService-CGGzYeeF.d.mts +515 -0
- package/dist/analytics/index.d.mts +1084 -0
- package/dist/analytics/index.d.ts +1084 -0
- package/dist/analytics/server/index.d.mts +499 -0
- package/dist/analytics/server/index.d.ts +499 -0
- package/dist/api/index.d.mts +248 -0
- package/dist/api/index.d.ts +248 -0
- package/dist/audioDetection/index.d.mts +449 -0
- package/dist/audioDetection/index.d.ts +449 -0
- package/dist/auth/client/index.d.mts +32 -0
- package/dist/auth/client/index.d.ts +32 -0
- package/dist/auth/client/index.js +4 -4
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.d.mts +227 -0
- package/dist/auth/components/index.d.ts +227 -0
- package/dist/auth/components/index.js +4 -4
- package/dist/auth/components/index.mjs +1 -1
- package/dist/auth/hooks/index.d.mts +31 -0
- package/dist/auth/hooks/index.d.ts +31 -0
- package/dist/auth/hooks/index.js +3 -3
- package/dist/auth/hooks/index.mjs +1 -1
- package/dist/auth/index.d.mts +41 -0
- package/dist/auth/index.d.ts +41 -0
- package/dist/auth/index.js +17 -36
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/index.mjs +3 -33
- package/dist/auth/index.mjs.map +1 -1
- package/dist/auth/middleware/index.d.mts +75 -0
- package/dist/auth/middleware/index.d.ts +75 -0
- package/dist/auth/routes/index.d.mts +261 -0
- package/dist/auth/routes/index.d.ts +261 -0
- package/dist/auth/schema/index.d.mts +789 -0
- package/dist/auth/schema/index.d.ts +789 -0
- package/dist/auth/services/index.d.mts +48 -0
- package/dist/auth/services/index.d.ts +48 -0
- package/dist/base-api-client-B-yUCal3.d.ts +103 -0
- package/dist/base-api-client-BQ8ZPZjk.d.mts +103 -0
- package/dist/calendar/index.d.mts +1197 -0
- package/dist/calendar/index.d.ts +1197 -0
- package/dist/calendar/index.js +8 -8
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +1 -1
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/routes/index.d.mts +118 -0
- package/dist/calendar/routes/index.d.ts +118 -0
- package/dist/calendar/server.d.mts +1184 -0
- package/dist/calendar/server.d.ts +1184 -0
- package/dist/{chunk-ROEYW4A7.js → chunk-5QMBZP7S.js} +2 -2
- package/dist/chunk-5QMBZP7S.js.map +1 -0
- package/dist/chunk-6BZ3QFA5.mjs +33 -0
- package/dist/chunk-6BZ3QFA5.mjs.map +1 -0
- package/dist/{chunk-HEMA7SWK.mjs → chunk-6YKMCPQI.mjs} +2 -2
- package/dist/chunk-6YKMCPQI.mjs.map +1 -0
- package/dist/chunk-BH5TLVS5.mjs +1593 -0
- package/dist/chunk-BH5TLVS5.mjs.map +1 -0
- package/dist/chunk-E72D5KHY.js +1723 -0
- package/dist/chunk-E72D5KHY.js.map +1 -0
- package/dist/chunk-FAHLZIYQ.js +36 -0
- package/dist/chunk-FAHLZIYQ.js.map +1 -0
- package/dist/{chunk-KGRQNEIR.mjs → chunk-KW5JH6V6.mjs} +2 -2
- package/dist/chunk-KW5JH6V6.mjs.map +1 -0
- package/dist/{chunk-O26VCNS3.js → chunk-UOFTHYIH.js} +2 -2
- package/dist/chunk-UOFTHYIH.js.map +1 -0
- package/dist/config/index.d.mts +64 -0
- package/dist/config/index.d.ts +64 -0
- package/dist/config/server/index.d.mts +1533 -0
- package/dist/config/server/index.d.ts +1533 -0
- package/dist/drizzle-auth-service-Bxlovhv8.d.ts +145 -0
- package/dist/drizzle-auth-service-DZY2F1sv.d.mts +145 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +1114 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +1114 -0
- package/dist/enums-Dume-V5Y.d.mts +16 -0
- package/dist/enums-Dume-V5Y.d.ts +16 -0
- package/dist/i18n/index.d.mts +417 -0
- package/dist/i18n/index.d.ts +417 -0
- package/dist/imageCrop/index.d.mts +165 -0
- package/dist/imageCrop/index.d.ts +165 -0
- package/dist/index-DSel44Ke.d.mts +93 -0
- package/dist/index-DSel44Ke.d.ts +93 -0
- package/dist/index.d.mts +933 -0
- package/dist/index.d.ts +933 -0
- package/dist/index.js +1626 -2184
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +708 -1543
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.d.mts +125 -0
- package/dist/logger/index.d.ts +125 -0
- package/dist/mmd/admin/index.d.mts +487 -0
- package/dist/mmd/admin/index.d.ts +487 -0
- package/dist/mmd/index.d.mts +1412 -0
- package/dist/mmd/index.d.ts +1412 -0
- package/dist/mmd/index.js +2695 -625
- package/dist/mmd/index.js.map +1 -1
- package/dist/mmd/index.mjs +2501 -448
- package/dist/mmd/index.mjs.map +1 -1
- package/dist/mmd/server/index.d.mts +138 -0
- package/dist/mmd/server/index.d.ts +138 -0
- package/dist/music/index.d.mts +74 -0
- package/dist/music/index.d.ts +74 -0
- package/dist/music/server/index.d.mts +1 -0
- package/dist/music/server/index.d.ts +1 -0
- package/dist/request/index.d.mts +51 -0
- package/dist/request/index.d.ts +51 -0
- package/dist/storage/index.d.mts +75 -0
- package/dist/storage/index.d.ts +75 -0
- package/dist/testYourself/admin/index.d.mts +58 -0
- package/dist/testYourself/admin/index.d.ts +58 -0
- package/dist/testYourself/index.d.mts +53 -0
- package/dist/testYourself/index.d.ts +53 -0
- package/dist/testYourself/server/index.d.mts +1029 -0
- package/dist/testYourself/server/index.d.ts +1029 -0
- package/dist/types-BB-7_WtE.d.mts +253 -0
- package/dist/types-BB-7_WtE.d.ts +253 -0
- package/dist/types-BINlP9MK.d.mts +286 -0
- package/dist/types-BINlP9MK.d.ts +286 -0
- package/dist/types-BaZccpvk.d.mts +48 -0
- package/dist/types-BaZccpvk.d.ts +48 -0
- package/dist/types-CK4We_aI.d.mts +270 -0
- package/dist/types-CK4We_aI.d.ts +270 -0
- package/dist/types-CbTsi9CZ.d.mts +31 -0
- package/dist/types-CbTsi9CZ.d.ts +31 -0
- package/dist/types-CiYK5Klf.d.mts +99 -0
- package/dist/types-D3R6GzOw.d.mts +70 -0
- package/dist/types-Dlu52uDy.d.ts +99 -0
- package/dist/types-iFeyR443.d.ts +70 -0
- package/dist/universalExport/index.d.mts +235 -0
- package/dist/universalExport/index.d.ts +235 -0
- package/dist/universalExport/server/index.d.mts +1270 -0
- package/dist/universalExport/server/index.d.ts +1270 -0
- package/dist/universalFile/index.d.mts +480 -0
- package/dist/universalFile/index.d.ts +480 -0
- package/dist/universalFile/server/index.d.mts +4516 -0
- package/dist/universalFile/server/index.d.ts +4516 -0
- package/dist/useElectronStorage-Dj0rcorG.d.mts +65 -0
- package/dist/useElectronStorage-DwnNfIhl.d.ts +65 -0
- package/dist/utils/index.d.mts +192 -0
- package/dist/utils/index.d.ts +192 -0
- package/package.json +2 -1
- package/dist/chunk-4FOBBWXW.mjs +0 -179
- package/dist/chunk-4FOBBWXW.mjs.map +0 -1
- package/dist/chunk-G6WRJ2H2.js +0 -187
- package/dist/chunk-G6WRJ2H2.js.map +0 -1
- package/dist/chunk-HEMA7SWK.mjs.map +0 -1
- package/dist/chunk-KGRQNEIR.mjs.map +0 -1
- package/dist/chunk-O26VCNS3.js.map +0 -1
- package/dist/chunk-ROEYW4A7.js.map +0 -1
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,933 @@
|
|
|
1
|
+
export { ConsoleLoggerAdapter, LogEntry, LogLevel, Logger, LoggerAdapter, LoggerConfig, createLogger, logger } from './logger/index.mjs';
|
|
2
|
+
import * as React$1 from 'react';
|
|
3
|
+
import React__default, { ReactNode } from 'react';
|
|
4
|
+
export { arrayUtils, cn, debugUtils, errorUtils, fileUtils, formatTime, japaneseUtils, stringUtils, validators } from './utils/index.mjs';
|
|
5
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
|
+
import { VariantProps } from 'class-variance-authority';
|
|
7
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
8
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
9
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
10
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
11
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
12
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
13
|
+
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
14
|
+
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
15
|
+
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
16
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
17
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
18
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
19
|
+
import { B as BaseApiClient } from './base-api-client-BQ8ZPZjk.mjs';
|
|
20
|
+
export { S as StorageAdapter, a as StorageChangeEvent } from './types-BaZccpvk.mjs';
|
|
21
|
+
export { b as useAsyncStorage, d as useElectronStorage, a as useLocalStorage, u as useStorage, c as useTaroStorage } from './useElectronStorage-Dj0rcorG.mjs';
|
|
22
|
+
import 'clsx';
|
|
23
|
+
import './types-CbTsi9CZ.mjs';
|
|
24
|
+
import './types-CiYK5Klf.mjs';
|
|
25
|
+
import './enums-Dume-V5Y.mjs';
|
|
26
|
+
import 'drizzle-orm/pg-core';
|
|
27
|
+
|
|
28
|
+
interface OCRResult {
|
|
29
|
+
text: string;
|
|
30
|
+
confidence: number;
|
|
31
|
+
words: Array<{
|
|
32
|
+
text: string;
|
|
33
|
+
confidence: number;
|
|
34
|
+
bbox: {
|
|
35
|
+
x0: number;
|
|
36
|
+
y0: number;
|
|
37
|
+
x1: number;
|
|
38
|
+
y1: number;
|
|
39
|
+
};
|
|
40
|
+
}>;
|
|
41
|
+
lines: string[];
|
|
42
|
+
}
|
|
43
|
+
interface OCROptions {
|
|
44
|
+
language?: string;
|
|
45
|
+
logger?: (message: any) => void;
|
|
46
|
+
}
|
|
47
|
+
interface OCRState {
|
|
48
|
+
isProcessing: boolean;
|
|
49
|
+
progress: number;
|
|
50
|
+
status: string;
|
|
51
|
+
error: Error | null;
|
|
52
|
+
result: OCRResult | null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare const useOCR: (options?: OCROptions) => {
|
|
56
|
+
recognize: (image: string | File | Blob | HTMLImageElement | HTMLCanvasElement) => Promise<OCRResult>;
|
|
57
|
+
cleanup: () => Promise<void>;
|
|
58
|
+
isProcessing: boolean;
|
|
59
|
+
progress: number;
|
|
60
|
+
status: string;
|
|
61
|
+
error: Error | null;
|
|
62
|
+
result: OCRResult | null;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
interface OCRScannerProps {
|
|
66
|
+
onResult?: (text: string) => void;
|
|
67
|
+
className?: string;
|
|
68
|
+
language?: string;
|
|
69
|
+
}
|
|
70
|
+
declare const OCRScanner: React__default.FC<OCRScannerProps>;
|
|
71
|
+
|
|
72
|
+
interface BackgroundRemovalOptions {
|
|
73
|
+
progress?: (status: string, progress: number) => void;
|
|
74
|
+
model?: 'medium' | 'small';
|
|
75
|
+
publicPath?: string;
|
|
76
|
+
fetchArgs?: RequestInit;
|
|
77
|
+
}
|
|
78
|
+
interface BackgroundRemovalState {
|
|
79
|
+
isProcessing: boolean;
|
|
80
|
+
progress: number;
|
|
81
|
+
status: string;
|
|
82
|
+
error: Error | null;
|
|
83
|
+
resultBlob: Blob | null;
|
|
84
|
+
resultUrl: string | null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
declare const useBackgroundRemoval: (options?: BackgroundRemovalOptions) => {
|
|
88
|
+
remove: (image: string | File | Blob | HTMLImageElement | URL) => Promise<{
|
|
89
|
+
blob: Blob;
|
|
90
|
+
url: string;
|
|
91
|
+
}>;
|
|
92
|
+
cleanup: () => void;
|
|
93
|
+
isProcessing: boolean;
|
|
94
|
+
progress: number;
|
|
95
|
+
status: string;
|
|
96
|
+
error: Error | null;
|
|
97
|
+
resultBlob: Blob | null;
|
|
98
|
+
resultUrl: string | null;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
interface BackgroundRemoverProps {
|
|
102
|
+
onResult?: (blob: Blob, url: string) => void;
|
|
103
|
+
className?: string;
|
|
104
|
+
}
|
|
105
|
+
declare const BackgroundRemover: React__default.FC<BackgroundRemoverProps>;
|
|
106
|
+
|
|
107
|
+
interface SentimentResult {
|
|
108
|
+
label: string;
|
|
109
|
+
score: number;
|
|
110
|
+
sentiment: 'positive' | 'negative' | 'neutral';
|
|
111
|
+
}
|
|
112
|
+
interface SentimentOptions {
|
|
113
|
+
model?: string;
|
|
114
|
+
language?: 'en' | 'zh' | 'auto';
|
|
115
|
+
}
|
|
116
|
+
interface SentimentState {
|
|
117
|
+
isProcessing: boolean;
|
|
118
|
+
status: string;
|
|
119
|
+
error: Error | null;
|
|
120
|
+
result: SentimentResult | null;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
declare const useSentimentAnalysis: (options?: SentimentOptions) => {
|
|
124
|
+
analyze: (text: string) => Promise<SentimentResult>;
|
|
125
|
+
isProcessing: boolean;
|
|
126
|
+
status: string;
|
|
127
|
+
error: Error | null;
|
|
128
|
+
result: SentimentResult | null;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
interface SentimentAnalyzerProps {
|
|
132
|
+
onResult?: (result: any) => void;
|
|
133
|
+
className?: string;
|
|
134
|
+
placeholder?: string;
|
|
135
|
+
}
|
|
136
|
+
declare const SentimentAnalyzer: React__default.FC<SentimentAnalyzerProps>;
|
|
137
|
+
|
|
138
|
+
interface TextGenerationOptions {
|
|
139
|
+
model?: string;
|
|
140
|
+
max_new_tokens?: number;
|
|
141
|
+
temperature?: number;
|
|
142
|
+
top_p?: number;
|
|
143
|
+
}
|
|
144
|
+
interface TextGenerationState {
|
|
145
|
+
isProcessing: boolean;
|
|
146
|
+
status: string;
|
|
147
|
+
error: Error | null;
|
|
148
|
+
result: string | null;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
declare const useTextGeneration: (options?: TextGenerationOptions) => {
|
|
152
|
+
generate: (prompt: string) => Promise<any>;
|
|
153
|
+
isProcessing: boolean;
|
|
154
|
+
status: string;
|
|
155
|
+
error: Error | null;
|
|
156
|
+
result: string | null;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
interface SmartAssistantProps {
|
|
160
|
+
className?: string;
|
|
161
|
+
}
|
|
162
|
+
declare const SmartAssistant: React__default.FC<SmartAssistantProps>;
|
|
163
|
+
|
|
164
|
+
declare const buttonVariants: (props?: ({
|
|
165
|
+
variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
166
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
167
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
168
|
+
interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
169
|
+
variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
|
|
170
|
+
size?: 'default' | 'sm' | 'lg' | 'icon';
|
|
171
|
+
asChild?: boolean;
|
|
172
|
+
}
|
|
173
|
+
declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
174
|
+
|
|
175
|
+
declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
176
|
+
declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
177
|
+
declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
178
|
+
declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
179
|
+
declare const CardContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
180
|
+
declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
181
|
+
|
|
182
|
+
declare const badgeVariants: (props?: ({
|
|
183
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
|
|
184
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
185
|
+
interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
186
|
+
}
|
|
187
|
+
declare function Badge({ className, variant, ...props }: BadgeProps): React$1.JSX.Element;
|
|
188
|
+
|
|
189
|
+
declare const Input: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
|
|
190
|
+
|
|
191
|
+
declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
192
|
+
|
|
193
|
+
declare const Tabs: React$1.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
194
|
+
declare const TabsList: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
195
|
+
declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
196
|
+
declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
197
|
+
|
|
198
|
+
declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
|
|
199
|
+
declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
200
|
+
declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
201
|
+
declare const DialogClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
202
|
+
declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
203
|
+
declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
204
|
+
declare const DialogHeader: {
|
|
205
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
206
|
+
displayName: string;
|
|
207
|
+
};
|
|
208
|
+
declare const DialogFooter: {
|
|
209
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
210
|
+
displayName: string;
|
|
211
|
+
};
|
|
212
|
+
declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
213
|
+
declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
214
|
+
|
|
215
|
+
declare const AlertDialog: React$1.FC<AlertDialogPrimitive.AlertDialogProps>;
|
|
216
|
+
declare const AlertDialogTrigger: React$1.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
217
|
+
declare const AlertDialogPortal: React$1.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
|
|
218
|
+
declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
219
|
+
declare const AlertDialogContent: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
220
|
+
declare const AlertDialogHeader: {
|
|
221
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
222
|
+
displayName: string;
|
|
223
|
+
};
|
|
224
|
+
declare const AlertDialogFooter: {
|
|
225
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
226
|
+
displayName: string;
|
|
227
|
+
};
|
|
228
|
+
declare const AlertDialogTitle: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
229
|
+
declare const AlertDialogDescription: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
230
|
+
declare const AlertDialogAction: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
231
|
+
declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
232
|
+
|
|
233
|
+
declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
234
|
+
declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
235
|
+
declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
236
|
+
declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
237
|
+
declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
238
|
+
declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
239
|
+
declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
240
|
+
inset?: boolean;
|
|
241
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
242
|
+
declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
243
|
+
declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
244
|
+
declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
245
|
+
inset?: boolean;
|
|
246
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
247
|
+
declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
248
|
+
declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
249
|
+
declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
250
|
+
inset?: boolean;
|
|
251
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
252
|
+
declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
253
|
+
declare const DropdownMenuShortcut: {
|
|
254
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
255
|
+
displayName: string;
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
|
|
259
|
+
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
260
|
+
declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
261
|
+
declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
262
|
+
|
|
263
|
+
declare const Progress: React$1.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
264
|
+
|
|
265
|
+
declare const ScrollArea: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
266
|
+
declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
267
|
+
|
|
268
|
+
declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
|
|
269
|
+
declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
270
|
+
declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
271
|
+
declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
272
|
+
declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
273
|
+
declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
274
|
+
declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
275
|
+
declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
276
|
+
declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
277
|
+
declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
278
|
+
|
|
279
|
+
declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
280
|
+
|
|
281
|
+
declare const Sheet: React$1.FC<DialogPrimitive.DialogProps>;
|
|
282
|
+
declare const SheetTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
283
|
+
declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
284
|
+
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
285
|
+
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
286
|
+
declare const sheetVariants: (props?: ({
|
|
287
|
+
side?: "top" | "bottom" | "left" | "right" | null | undefined;
|
|
288
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
289
|
+
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
290
|
+
}
|
|
291
|
+
declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
292
|
+
declare const SheetHeader: {
|
|
293
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
294
|
+
displayName: string;
|
|
295
|
+
};
|
|
296
|
+
declare const SheetFooter: {
|
|
297
|
+
({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
298
|
+
displayName: string;
|
|
299
|
+
};
|
|
300
|
+
declare const SheetTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
301
|
+
declare const SheetDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
302
|
+
|
|
303
|
+
declare const Textarea: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React$1.RefAttributes<HTMLTextAreaElement>>;
|
|
304
|
+
|
|
305
|
+
declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
306
|
+
declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
|
|
307
|
+
declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
308
|
+
declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
309
|
+
|
|
310
|
+
declare const Avatar: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
311
|
+
declare const AvatarImage: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React$1.RefAttributes<HTMLImageElement>, "ref"> & React$1.RefAttributes<HTMLImageElement>>;
|
|
312
|
+
declare const AvatarFallback: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
313
|
+
|
|
314
|
+
/** 基础网格项接口 */
|
|
315
|
+
interface GridItem {
|
|
316
|
+
id: string;
|
|
317
|
+
[key: string]: any;
|
|
318
|
+
}
|
|
319
|
+
/** 网格列数配置 */
|
|
320
|
+
interface GridColumns {
|
|
321
|
+
/** 小屏幕列数 (640px+) */
|
|
322
|
+
sm?: number;
|
|
323
|
+
/** 中等屏幕列数 (768px+) */
|
|
324
|
+
md?: number;
|
|
325
|
+
/** 大屏幕列数 (1024px+) */
|
|
326
|
+
lg?: number;
|
|
327
|
+
/** 超大屏幕列数 (1280px+) */
|
|
328
|
+
xl?: number;
|
|
329
|
+
}
|
|
330
|
+
/** 网格间距类型 */
|
|
331
|
+
type GridGap = 'sm' | 'md' | 'lg' | 'xl';
|
|
332
|
+
/** 通用网格组件 Props */
|
|
333
|
+
interface GridProps<T extends GridItem> {
|
|
334
|
+
/** 数据项数组 */
|
|
335
|
+
items: T[];
|
|
336
|
+
/** 渲染函数 */
|
|
337
|
+
renderItem: (item: T, index: number) => React__default.ReactNode;
|
|
338
|
+
/** 网格列数配置 */
|
|
339
|
+
columns?: GridColumns;
|
|
340
|
+
/** 间距配置 */
|
|
341
|
+
gap?: GridGap;
|
|
342
|
+
/** 额外的容器类名 */
|
|
343
|
+
className?: string;
|
|
344
|
+
/** 容器样式 */
|
|
345
|
+
style?: React__default.CSSProperties;
|
|
346
|
+
}
|
|
347
|
+
/** 通用网格组件 */
|
|
348
|
+
declare function Grid<T extends GridItem>({ items, renderItem, columns, gap, className, style }: GridProps<T>): React__default.JSX.Element;
|
|
349
|
+
|
|
350
|
+
interface SearchBoxProps {
|
|
351
|
+
searchQuery: string;
|
|
352
|
+
onSearchChange: (query: string) => void;
|
|
353
|
+
placeholder?: string;
|
|
354
|
+
size?: 'small' | 'medium' | 'large';
|
|
355
|
+
}
|
|
356
|
+
declare const SearchBox: React__default.FC<SearchBoxProps>;
|
|
357
|
+
|
|
358
|
+
interface TimelineItem {
|
|
359
|
+
date: string;
|
|
360
|
+
title: string;
|
|
361
|
+
description: string;
|
|
362
|
+
}
|
|
363
|
+
interface TimelineConfig {
|
|
364
|
+
items: TimelineItem[];
|
|
365
|
+
}
|
|
366
|
+
interface TimelineProps {
|
|
367
|
+
items?: TimelineItem[];
|
|
368
|
+
}
|
|
369
|
+
declare const Timeline: React__default.FC<TimelineProps>;
|
|
370
|
+
|
|
371
|
+
interface Ball {
|
|
372
|
+
x: number;
|
|
373
|
+
y: number;
|
|
374
|
+
vx: number;
|
|
375
|
+
vy: number;
|
|
376
|
+
radius: number;
|
|
377
|
+
color: string;
|
|
378
|
+
text?: string;
|
|
379
|
+
isDragging?: boolean;
|
|
380
|
+
}
|
|
381
|
+
interface CollisionBallsConfig {
|
|
382
|
+
balls: {
|
|
383
|
+
id: string;
|
|
384
|
+
label: string;
|
|
385
|
+
color: string;
|
|
386
|
+
size: number;
|
|
387
|
+
}[];
|
|
388
|
+
width: number;
|
|
389
|
+
height: number;
|
|
390
|
+
}
|
|
391
|
+
interface CollisionBallsProps {
|
|
392
|
+
collisionBallsConfig: CollisionBallsConfig;
|
|
393
|
+
}
|
|
394
|
+
declare const CollisionBalls: React__default.FC<CollisionBallsProps>;
|
|
395
|
+
|
|
396
|
+
interface OrderableItem {
|
|
397
|
+
id: number;
|
|
398
|
+
[key: string]: any;
|
|
399
|
+
}
|
|
400
|
+
interface OrderManagerOperations<T extends OrderableItem> {
|
|
401
|
+
loadItems: () => Promise<T[]>;
|
|
402
|
+
moveItemUp: (id: number) => Promise<void>;
|
|
403
|
+
moveItemDown: (id: number) => Promise<void>;
|
|
404
|
+
updateItemOrder: (orders: {
|
|
405
|
+
id: number;
|
|
406
|
+
order: number;
|
|
407
|
+
}[]) => Promise<void>;
|
|
408
|
+
}
|
|
409
|
+
interface GenericOrderManagerProps<T extends OrderableItem> {
|
|
410
|
+
operations: OrderManagerOperations<T>;
|
|
411
|
+
renderItem: (item: T, index: number, isFirst: boolean, isLast: boolean) => React__default.ReactNode;
|
|
412
|
+
className?: string;
|
|
413
|
+
title?: string;
|
|
414
|
+
description?: string;
|
|
415
|
+
onOrderChanged?: () => void;
|
|
416
|
+
emptyMessage?: string;
|
|
417
|
+
loadingMessage?: string;
|
|
418
|
+
}
|
|
419
|
+
declare function GenericOrderManager<T extends OrderableItem>({ operations, renderItem, className, title, description, onOrderChanged, emptyMessage, loadingMessage }: GenericOrderManagerProps<T>): React__default.JSX.Element;
|
|
420
|
+
|
|
421
|
+
interface BackButtonProps {
|
|
422
|
+
href?: string;
|
|
423
|
+
className?: string;
|
|
424
|
+
}
|
|
425
|
+
declare const BackButton: React__default.FC<BackButtonProps>;
|
|
426
|
+
|
|
427
|
+
interface FilterOption<T> {
|
|
428
|
+
value: T;
|
|
429
|
+
label: string;
|
|
430
|
+
icon: string;
|
|
431
|
+
activeColor: {
|
|
432
|
+
bg: string;
|
|
433
|
+
shadow: string;
|
|
434
|
+
};
|
|
435
|
+
count?: number;
|
|
436
|
+
showCount?: boolean;
|
|
437
|
+
}
|
|
438
|
+
interface FilterButtonGroupProps<T> {
|
|
439
|
+
label: string;
|
|
440
|
+
value: T;
|
|
441
|
+
options: FilterOption<T>[];
|
|
442
|
+
onChange: (value: T) => void;
|
|
443
|
+
className?: string;
|
|
444
|
+
}
|
|
445
|
+
declare function FilterButtonGroup<T extends string>({ label, value, options, onChange, className }: FilterButtonGroupProps<T>): React__default.JSX.Element;
|
|
446
|
+
|
|
447
|
+
interface SearchResultHintProps {
|
|
448
|
+
searchQuery: string;
|
|
449
|
+
resultCount: number;
|
|
450
|
+
className?: string;
|
|
451
|
+
}
|
|
452
|
+
declare function SearchResultHint({ searchQuery, resultCount, className }: SearchResultHintProps): React__default.JSX.Element | null;
|
|
453
|
+
|
|
454
|
+
interface ModalProps {
|
|
455
|
+
isOpen: boolean;
|
|
456
|
+
onClose: () => void;
|
|
457
|
+
title?: string;
|
|
458
|
+
width?: number | string;
|
|
459
|
+
className?: string;
|
|
460
|
+
maskClosable?: boolean;
|
|
461
|
+
children: React__default.ReactNode;
|
|
462
|
+
}
|
|
463
|
+
declare const Modal: React__default.FC<ModalProps>;
|
|
464
|
+
interface ConfirmModalProps {
|
|
465
|
+
isOpen: boolean;
|
|
466
|
+
onClose: () => void;
|
|
467
|
+
onConfirm: () => void;
|
|
468
|
+
title?: string;
|
|
469
|
+
message: string;
|
|
470
|
+
confirmText?: string;
|
|
471
|
+
cancelText?: string;
|
|
472
|
+
isLoading?: boolean;
|
|
473
|
+
}
|
|
474
|
+
declare const ConfirmModal: React__default.FC<ConfirmModalProps>;
|
|
475
|
+
|
|
476
|
+
interface SocialLink {
|
|
477
|
+
type: string;
|
|
478
|
+
url: string;
|
|
479
|
+
icon?: ReactNode;
|
|
480
|
+
}
|
|
481
|
+
interface ProfileData {
|
|
482
|
+
name: string;
|
|
483
|
+
avatar?: string;
|
|
484
|
+
title?: string;
|
|
485
|
+
bio?: string;
|
|
486
|
+
contacts?: Record<string, string>;
|
|
487
|
+
socialLinks?: SocialLink[];
|
|
488
|
+
customContent?: ReactNode;
|
|
489
|
+
badges?: ProfileBadge[];
|
|
490
|
+
stats?: Stat[];
|
|
491
|
+
}
|
|
492
|
+
interface ProfileBadge {
|
|
493
|
+
label: string;
|
|
494
|
+
type?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';
|
|
495
|
+
icon?: ReactNode;
|
|
496
|
+
}
|
|
497
|
+
interface Stat {
|
|
498
|
+
label: string;
|
|
499
|
+
value: string | number;
|
|
500
|
+
icon?: ReactNode;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
interface ProfileButtonProps {
|
|
504
|
+
data?: ProfileData;
|
|
505
|
+
buttonText?: string;
|
|
506
|
+
variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
|
|
507
|
+
size?: 'default' | 'sm' | 'lg' | 'icon';
|
|
508
|
+
className?: string;
|
|
509
|
+
modalTheme?: 'light' | 'dark' | 'blue';
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* 个人信息按钮组件,点击后显示个人信息弹窗
|
|
513
|
+
*/
|
|
514
|
+
declare const ProfileButton: React__default.FC<ProfileButtonProps>;
|
|
515
|
+
|
|
516
|
+
interface ProfileModalProps {
|
|
517
|
+
isOpen: boolean;
|
|
518
|
+
onClose: () => void;
|
|
519
|
+
data: ProfileData;
|
|
520
|
+
showAvatar?: boolean;
|
|
521
|
+
showContacts?: boolean;
|
|
522
|
+
showSocial?: boolean;
|
|
523
|
+
showBio?: boolean;
|
|
524
|
+
avatarSize?: number;
|
|
525
|
+
onAvatarClick?: () => void;
|
|
526
|
+
onSocialLinkClick?: (url: string, type: string) => void;
|
|
527
|
+
onContactClick?: (type: string, value: string) => void;
|
|
528
|
+
themeName?: 'light' | 'dark' | 'blue';
|
|
529
|
+
className?: string;
|
|
530
|
+
children?: React__default.ReactNode;
|
|
531
|
+
}
|
|
532
|
+
declare const ProfileModal: React__default.FC<ProfileModalProps>;
|
|
533
|
+
|
|
534
|
+
interface AutoOpenModalProps {
|
|
535
|
+
data: ProfileData;
|
|
536
|
+
delay?: number;
|
|
537
|
+
themeName?: 'light' | 'dark' | 'blue';
|
|
538
|
+
onClose?: () => void;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* 自动打开个人信息弹窗组件
|
|
542
|
+
* 页面加载后自动显示弹窗
|
|
543
|
+
*/
|
|
544
|
+
declare const AutoOpenModal: React__default.FC<AutoOpenModalProps>;
|
|
545
|
+
|
|
546
|
+
interface EnhancedAvatarProps {
|
|
547
|
+
src?: string;
|
|
548
|
+
name?: string;
|
|
549
|
+
size?: 'small' | 'medium' | 'large' | number;
|
|
550
|
+
mood?: 'online' | 'offline' | 'away';
|
|
551
|
+
statusText?: string;
|
|
552
|
+
onClick?: () => void;
|
|
553
|
+
className?: string;
|
|
554
|
+
}
|
|
555
|
+
declare const EnhancedAvatar: React__default.FC<EnhancedAvatarProps>;
|
|
556
|
+
|
|
557
|
+
interface AboutProps {
|
|
558
|
+
timelineConfig: TimelineConfig;
|
|
559
|
+
collisionBallsConfig: CollisionBallsConfig;
|
|
560
|
+
}
|
|
561
|
+
declare const About: React__default.FC<AboutProps>;
|
|
562
|
+
|
|
563
|
+
declare const Contact: React__default.FC;
|
|
564
|
+
|
|
565
|
+
interface HomeConfig {
|
|
566
|
+
title: string;
|
|
567
|
+
subtitle: string;
|
|
568
|
+
buttons: Array<{
|
|
569
|
+
text: string;
|
|
570
|
+
link: string;
|
|
571
|
+
}>;
|
|
572
|
+
imageSrc: string;
|
|
573
|
+
}
|
|
574
|
+
interface HomeProps {
|
|
575
|
+
homeConfig: HomeConfig;
|
|
576
|
+
className?: string;
|
|
577
|
+
}
|
|
578
|
+
declare const Home: React__default.FC<HomeProps>;
|
|
579
|
+
|
|
580
|
+
interface ExperimentCardProps {
|
|
581
|
+
href: string;
|
|
582
|
+
title: string;
|
|
583
|
+
description: string;
|
|
584
|
+
tags: string[];
|
|
585
|
+
category: 'utility' | 'leisure';
|
|
586
|
+
isCompleted?: boolean;
|
|
587
|
+
updatedAt?: string;
|
|
588
|
+
createdAt?: string;
|
|
589
|
+
className?: string;
|
|
590
|
+
}
|
|
591
|
+
declare const ExperimentCard: React__default.FC<ExperimentCardProps>;
|
|
592
|
+
|
|
593
|
+
interface Project {
|
|
594
|
+
id: string;
|
|
595
|
+
title: string;
|
|
596
|
+
description: string;
|
|
597
|
+
image: string;
|
|
598
|
+
link?: string;
|
|
599
|
+
tags: string[];
|
|
600
|
+
}
|
|
601
|
+
interface ProjectCarouselProps {
|
|
602
|
+
projects: Project[];
|
|
603
|
+
className?: string;
|
|
604
|
+
}
|
|
605
|
+
declare const ProjectCarousel: React__default.FC<ProjectCarouselProps>;
|
|
606
|
+
|
|
607
|
+
type NavigationDirection = 'horizontal' | 'vertical';
|
|
608
|
+
type NavigationPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
609
|
+
interface NavigationItem {
|
|
610
|
+
id: string;
|
|
611
|
+
label: string;
|
|
612
|
+
href: string;
|
|
613
|
+
icon?: React.ReactNode;
|
|
614
|
+
isExternal?: boolean;
|
|
615
|
+
target?: '_blank' | '_self';
|
|
616
|
+
}
|
|
617
|
+
interface NavigationConfig {
|
|
618
|
+
direction: NavigationDirection;
|
|
619
|
+
position: NavigationPosition;
|
|
620
|
+
items: NavigationItem[];
|
|
621
|
+
avatar?: {
|
|
622
|
+
src: string;
|
|
623
|
+
alt?: string;
|
|
624
|
+
};
|
|
625
|
+
logo?: {
|
|
626
|
+
src: string;
|
|
627
|
+
alt?: string;
|
|
628
|
+
};
|
|
629
|
+
}
|
|
630
|
+
interface NavigationProps {
|
|
631
|
+
config: NavigationConfig;
|
|
632
|
+
isOpen: boolean;
|
|
633
|
+
onToggle: () => void;
|
|
634
|
+
activeItemId?: string;
|
|
635
|
+
onItemClick?: (item: NavigationItem) => void;
|
|
636
|
+
className?: string;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
declare const Navigation: React__default.FC<NavigationProps>;
|
|
640
|
+
|
|
641
|
+
interface NavigationItemProps {
|
|
642
|
+
item: NavigationItem;
|
|
643
|
+
direction: NavigationDirection;
|
|
644
|
+
isActive?: boolean;
|
|
645
|
+
onClick: (item: NavigationItem) => void;
|
|
646
|
+
}
|
|
647
|
+
declare const NavigationItemComponent: React__default.FC<NavigationItemProps>;
|
|
648
|
+
|
|
649
|
+
interface NavigationToggleProps {
|
|
650
|
+
isOpen: boolean;
|
|
651
|
+
onClick: () => void;
|
|
652
|
+
position: NavigationPosition;
|
|
653
|
+
}
|
|
654
|
+
declare const NavigationToggle: React__default.FC<NavigationToggleProps>;
|
|
655
|
+
|
|
656
|
+
interface FloatingMenuProps {
|
|
657
|
+
/**
|
|
658
|
+
* 触发按钮的内容
|
|
659
|
+
*/
|
|
660
|
+
trigger: ReactNode;
|
|
661
|
+
/**
|
|
662
|
+
* 菜单内容
|
|
663
|
+
*/
|
|
664
|
+
menu: ReactNode;
|
|
665
|
+
/**
|
|
666
|
+
* 初始位置
|
|
667
|
+
*/
|
|
668
|
+
initialPosition?: {
|
|
669
|
+
x: number;
|
|
670
|
+
y: number;
|
|
671
|
+
};
|
|
672
|
+
/**
|
|
673
|
+
* 是否默认打开菜单
|
|
674
|
+
*/
|
|
675
|
+
defaultOpen?: boolean;
|
|
676
|
+
/**
|
|
677
|
+
* 自定义类名
|
|
678
|
+
*/
|
|
679
|
+
className?: string;
|
|
680
|
+
/**
|
|
681
|
+
* 菜单类名
|
|
682
|
+
*/
|
|
683
|
+
menuClassName?: string;
|
|
684
|
+
/**
|
|
685
|
+
* 触发器类名
|
|
686
|
+
*/
|
|
687
|
+
triggerClassName?: string;
|
|
688
|
+
/**
|
|
689
|
+
* z-index
|
|
690
|
+
*/
|
|
691
|
+
zIndex?: number;
|
|
692
|
+
}
|
|
693
|
+
declare const FloatingMenu: React__default.FC<FloatingMenuProps>;
|
|
694
|
+
|
|
695
|
+
declare const FloatingMenuExample: React__default.FC;
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* 实验田模块类型定义
|
|
699
|
+
*/
|
|
700
|
+
/**
|
|
701
|
+
* 实验项目类别
|
|
702
|
+
*/
|
|
703
|
+
type ExperimentCategory = 'utility' | 'leisure';
|
|
704
|
+
/**
|
|
705
|
+
* 实验项目接口
|
|
706
|
+
*/
|
|
707
|
+
interface ExperimentItem {
|
|
708
|
+
/** 项目唯一标识 */
|
|
709
|
+
id: string;
|
|
710
|
+
/** 项目标题 */
|
|
711
|
+
title: string;
|
|
712
|
+
/** 项目描述 */
|
|
713
|
+
description: string;
|
|
714
|
+
/** 项目路径 */
|
|
715
|
+
path: string;
|
|
716
|
+
/** 项目标签 */
|
|
717
|
+
tags: string[];
|
|
718
|
+
/** 项目类别 */
|
|
719
|
+
category: ExperimentCategory;
|
|
720
|
+
/** 是否已完成 */
|
|
721
|
+
isCompleted?: boolean;
|
|
722
|
+
/** 创建时间 */
|
|
723
|
+
createdAt?: string;
|
|
724
|
+
/** 更新时间 */
|
|
725
|
+
updatedAt?: string;
|
|
726
|
+
/** 用户自定义排序索引 */
|
|
727
|
+
userOrder?: number;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* 实验田视图模式
|
|
731
|
+
*/
|
|
732
|
+
type ViewMode = 'all' | 'utility' | 'leisure';
|
|
733
|
+
/**
|
|
734
|
+
* 完成状态筛选选项
|
|
735
|
+
*/
|
|
736
|
+
type CompletionFilter = 'all' | 'completed' | 'incomplete';
|
|
737
|
+
/**
|
|
738
|
+
* 排序模式
|
|
739
|
+
*/
|
|
740
|
+
type SortMode = 'auto' | 'manual';
|
|
741
|
+
/**
|
|
742
|
+
* 实验田搜索和筛选配置
|
|
743
|
+
*/
|
|
744
|
+
interface TestFieldConfig {
|
|
745
|
+
/** 当前视图模式 */
|
|
746
|
+
viewMode: ViewMode;
|
|
747
|
+
/** 搜索查询 */
|
|
748
|
+
searchQuery: string;
|
|
749
|
+
/** 完成状态筛选 */
|
|
750
|
+
completionFilter: CompletionFilter;
|
|
751
|
+
/** 排序方式 */
|
|
752
|
+
sortBy: 'title' | 'category' | 'createdAt' | 'updatedAt' | 'completion';
|
|
753
|
+
/** 排序方向 */
|
|
754
|
+
sortOrder: 'asc' | 'desc';
|
|
755
|
+
/** 排序模式 */
|
|
756
|
+
sortMode: SortMode;
|
|
757
|
+
}
|
|
758
|
+
/**
|
|
759
|
+
* 实验田页面属性
|
|
760
|
+
*/
|
|
761
|
+
interface TestFieldPageProps {
|
|
762
|
+
/** 初始配置 */
|
|
763
|
+
initialConfig?: Partial<TestFieldConfig>;
|
|
764
|
+
/** 实验项目列表 */
|
|
765
|
+
experiments?: ExperimentItem[];
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
interface CategoryFilterProps {
|
|
769
|
+
viewMode: ViewMode;
|
|
770
|
+
onViewModeChange: (mode: ViewMode) => void;
|
|
771
|
+
counts: {
|
|
772
|
+
utility: number;
|
|
773
|
+
leisure: number;
|
|
774
|
+
};
|
|
775
|
+
className?: string;
|
|
776
|
+
}
|
|
777
|
+
declare const CategoryFilter: React__default.FC<CategoryFilterProps>;
|
|
778
|
+
|
|
779
|
+
interface CompletionFilterProps {
|
|
780
|
+
completionFilter: CompletionFilter;
|
|
781
|
+
onCompletionFilterChange: (filter: CompletionFilter) => void;
|
|
782
|
+
counts: {
|
|
783
|
+
all: number;
|
|
784
|
+
completed: number;
|
|
785
|
+
inProgress: number;
|
|
786
|
+
};
|
|
787
|
+
className?: string;
|
|
788
|
+
}
|
|
789
|
+
declare const CompletionFilterComponent: React__default.FC<CompletionFilterProps>;
|
|
790
|
+
|
|
791
|
+
interface PageHeaderProps {
|
|
792
|
+
counts: {
|
|
793
|
+
all: number;
|
|
794
|
+
utility: number;
|
|
795
|
+
leisure: number;
|
|
796
|
+
completed: number;
|
|
797
|
+
};
|
|
798
|
+
className?: string;
|
|
799
|
+
}
|
|
800
|
+
declare const PageHeader: React__default.FC<PageHeaderProps>;
|
|
801
|
+
|
|
802
|
+
/** 实验项目网格项接口 */
|
|
803
|
+
interface ExperimentGridItem extends GridItem {
|
|
804
|
+
title: string;
|
|
805
|
+
description: string;
|
|
806
|
+
path: string;
|
|
807
|
+
tags: string[];
|
|
808
|
+
category: string;
|
|
809
|
+
isCompleted?: boolean;
|
|
810
|
+
updatedAt?: string;
|
|
811
|
+
createdAt?: string;
|
|
812
|
+
}
|
|
813
|
+
/** 实验项目网格组件 Props */
|
|
814
|
+
interface ExperimentGridProps<T extends ExperimentGridItem> {
|
|
815
|
+
/** 数据项数组 */
|
|
816
|
+
items: T[];
|
|
817
|
+
/** 自定义渲染函数(可选) */
|
|
818
|
+
renderItem?: (item: T, index: number) => React__default.ReactNode;
|
|
819
|
+
/** 网格列数配置(可选) */
|
|
820
|
+
columns?: GridColumns;
|
|
821
|
+
/** 间距配置(可选) */
|
|
822
|
+
gap?: GridGap;
|
|
823
|
+
/** 额外的容器类名 */
|
|
824
|
+
className?: string;
|
|
825
|
+
}
|
|
826
|
+
/** 实验项目网格组件 */
|
|
827
|
+
declare function ExperimentGrid<T extends ExperimentGridItem>({ items, renderItem, columns, gap, className }: ExperimentGridProps<T>): React__default.JSX.Element;
|
|
828
|
+
/** 为了向后兼容,导出一个专门用于 ExperimentItem 的组件 */
|
|
829
|
+
declare function ExperimentItemGrid({ experiments, ...props }: Omit<ExperimentGridProps<ExperimentItem>, 'items'> & {
|
|
830
|
+
experiments: ExperimentItem[];
|
|
831
|
+
}): React__default.JSX.Element;
|
|
832
|
+
|
|
833
|
+
interface EmptyStateProps {
|
|
834
|
+
searchQuery: string;
|
|
835
|
+
onClearSearch: () => void;
|
|
836
|
+
className?: string;
|
|
837
|
+
}
|
|
838
|
+
declare const EmptyState: React__default.FC<EmptyStateProps>;
|
|
839
|
+
|
|
840
|
+
interface SortControlProps {
|
|
841
|
+
sortBy: TestFieldConfig['sortBy'];
|
|
842
|
+
sortOrder: TestFieldConfig['sortOrder'];
|
|
843
|
+
onSortByChange: (sortBy: TestFieldConfig['sortBy']) => void;
|
|
844
|
+
onSortOrderChange: (sortOrder: TestFieldConfig['sortOrder']) => void;
|
|
845
|
+
}
|
|
846
|
+
declare const SortControl: React__default.FC<SortControlProps>;
|
|
847
|
+
|
|
848
|
+
interface SortModeToggleProps {
|
|
849
|
+
sortMode: SortMode;
|
|
850
|
+
onSortModeChange: (mode: SortMode) => void;
|
|
851
|
+
}
|
|
852
|
+
declare const SortModeToggle: React__default.FC<SortModeToggleProps>;
|
|
853
|
+
|
|
854
|
+
interface DraggableExperimentGridProps {
|
|
855
|
+
items: ExperimentItem[];
|
|
856
|
+
onOrderChange?: (items: ExperimentItem[]) => void;
|
|
857
|
+
className?: string;
|
|
858
|
+
}
|
|
859
|
+
declare const DraggableExperimentGrid: React__default.FC<DraggableExperimentGridProps>;
|
|
860
|
+
|
|
861
|
+
interface SortableExperimentItemProps {
|
|
862
|
+
item: ExperimentItem;
|
|
863
|
+
onMoveUp?: () => void;
|
|
864
|
+
onMoveDown?: () => void;
|
|
865
|
+
isFirst?: boolean;
|
|
866
|
+
isLast?: boolean;
|
|
867
|
+
}
|
|
868
|
+
declare const SortableExperimentItem: React__default.FC<SortableExperimentItemProps>;
|
|
869
|
+
|
|
870
|
+
interface PermissionGuardProps {
|
|
871
|
+
children: React__default.ReactNode;
|
|
872
|
+
fallback?: React__default.ReactNode;
|
|
873
|
+
apiClient: BaseApiClient;
|
|
874
|
+
}
|
|
875
|
+
declare const PermissionGuard: React__default.FC<PermissionGuardProps>;
|
|
876
|
+
|
|
877
|
+
interface UserInfoBarProps {
|
|
878
|
+
apiClient: BaseApiClient;
|
|
879
|
+
}
|
|
880
|
+
declare const UserInfoBar: React__default.FC<UserInfoBarProps>;
|
|
881
|
+
|
|
882
|
+
/**
|
|
883
|
+
* 实验田模块工具函数
|
|
884
|
+
*/
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* 过滤实验项目
|
|
888
|
+
*/
|
|
889
|
+
declare function filterExperiments(experiments: ExperimentItem[], config: Partial<TestFieldConfig>): ExperimentItem[];
|
|
890
|
+
/**
|
|
891
|
+
* 排序实验项目
|
|
892
|
+
*/
|
|
893
|
+
declare function sortExperiments(experiments: ExperimentItem[], sortBy?: TestFieldConfig['sortBy'], sortOrder?: TestFieldConfig['sortOrder']): ExperimentItem[];
|
|
894
|
+
/**
|
|
895
|
+
* 获取所有标签
|
|
896
|
+
*/
|
|
897
|
+
declare function getAllTags(experiments: ExperimentItem[]): string[];
|
|
898
|
+
/**
|
|
899
|
+
* 根据类别统计实验项目数量
|
|
900
|
+
*/
|
|
901
|
+
declare function getExperimentCounts(experiments: ExperimentItem[]): {
|
|
902
|
+
all: number;
|
|
903
|
+
utility: number;
|
|
904
|
+
leisure: number;
|
|
905
|
+
completed: number;
|
|
906
|
+
inProgress: number;
|
|
907
|
+
};
|
|
908
|
+
/**
|
|
909
|
+
* 验证实验项目数据
|
|
910
|
+
*/
|
|
911
|
+
declare function validateExperiment(experiment: Partial<ExperimentItem>): boolean;
|
|
912
|
+
/**
|
|
913
|
+
* 获取类别显示名称
|
|
914
|
+
*/
|
|
915
|
+
declare function getCategoryDisplayName(category: ViewMode): string;
|
|
916
|
+
/**
|
|
917
|
+
* 获取类别颜色
|
|
918
|
+
*/
|
|
919
|
+
declare function getCategoryColor(category: ExperimentItem['category']): string;
|
|
920
|
+
/**
|
|
921
|
+
* 获取完成状态显示名称
|
|
922
|
+
*/
|
|
923
|
+
declare function getCompletionFilterDisplayName(filter: CompletionFilter): string;
|
|
924
|
+
/**
|
|
925
|
+
* 获取完成状态标签样式
|
|
926
|
+
*/
|
|
927
|
+
declare function getCompletionStatusColor(isCompleted?: boolean): string;
|
|
928
|
+
/**
|
|
929
|
+
* 获取完成状态标签文本
|
|
930
|
+
*/
|
|
931
|
+
declare function getCompletionStatusText(isCompleted?: boolean): string;
|
|
932
|
+
|
|
933
|
+
export { About, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AutoOpenModal, type AutoOpenModalProps, Avatar, AvatarFallback, AvatarImage, BackButton, type BackButtonProps, type BackgroundRemovalOptions, type BackgroundRemovalState, BackgroundRemover, Badge, type BadgeProps, type Ball, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CategoryFilter, CollisionBalls, type CollisionBallsConfig, type CompletionFilter, CompletionFilterComponent, ConfirmModal, type ConfirmModalProps, Contact, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DraggableExperimentGrid, type DraggableExperimentGridProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, EnhancedAvatar, type EnhancedAvatarProps, ExperimentCard, type ExperimentCategory, ExperimentGrid, type ExperimentGridItem, type ExperimentGridProps, type ExperimentItem, ExperimentItemGrid, FilterButtonGroup, type FilterButtonGroupProps, type FilterOption, FloatingMenu, FloatingMenuExample, GenericOrderManager, type GenericOrderManagerProps, Grid, type GridColumns, type GridGap, type GridItem, type GridProps, Home, Input, Label, Modal, type ModalProps, Navigation, type NavigationConfig, type NavigationDirection, NavigationItemComponent as NavigationItem, type NavigationPosition, type NavigationProps, NavigationToggle, type OCROptions, type OCRResult, OCRScanner, type OCRState, type OrderManagerOperations, type OrderableItem, PageHeader, type PageHeaderProps, PermissionGuard, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type ProfileBadge, ProfileButton, type ProfileButtonProps, type ProfileData, ProfileModal, type ProfileModalProps, Progress, ProjectCarousel, ScrollArea, ScrollBar, SearchBox, SearchResultHint, type SearchResultHintProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SentimentAnalyzer, type SentimentOptions, type SentimentResult, type SentimentState, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SmartAssistant, type SocialLink, SortControl, type SortControlProps, type SortMode, SortModeToggle, type SortModeToggleProps, SortableExperimentItem, type SortableExperimentItemProps, type Stat, Tabs, TabsContent, TabsList, TabsTrigger, type TestFieldConfig, type TestFieldPageProps, type TextGenerationOptions, type TextGenerationState, Textarea, Timeline, type TimelineConfig, type TimelineItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserInfoBar, type UserInfoBarProps, type ViewMode, badgeVariants, buttonVariants, filterExperiments, getAllTags, getCategoryColor, getCategoryDisplayName, getCompletionFilterDisplayName, getCompletionStatusColor, getCompletionStatusText, getExperimentCounts, sortExperiments, useBackgroundRemoval, useOCR, useSentimentAnalysis, useTextGeneration, validateExperiment };
|