sa2kit 1.6.43 → 1.6.45
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/AliyunOSSProvider-2FARPAQD.js +15 -0
- package/dist/{AliyunOSSProvider-HCNGDJL7.js.map → AliyunOSSProvider-2FARPAQD.js.map} +1 -1
- package/dist/AliyunOSSProvider-UMVGVBDJ.mjs +9 -0
- package/dist/{AliyunOSSProvider-4W47OFEK.mjs.map → AliyunOSSProvider-UMVGVBDJ.mjs.map} +1 -1
- package/dist/CollisionBalls-BpHufX3H.d.mts +41 -0
- package/dist/CollisionBalls-BpHufX3H.d.ts +41 -0
- package/dist/ConfigService-QR67WYNK.mjs +4 -0
- package/dist/{ConfigService-V6ZK273Z.mjs.map → ConfigService-QR67WYNK.mjs.map} +1 -1
- package/dist/{ConfigService-3DIC6C3Q.js → ConfigService-UYC6ZTCM.js} +3 -3
- package/dist/{ConfigService-3DIC6C3Q.js.map → ConfigService-UYC6ZTCM.js.map} +1 -1
- package/dist/GenericOrderManager-e4WizpNf.d.mts +28 -0
- package/dist/GenericOrderManager-e4WizpNf.d.ts +28 -0
- package/dist/LocalStorageProvider-JQF5WK5H.js +15 -0
- package/dist/{LocalStorageProvider-PP7MA5OT.js.map → LocalStorageProvider-JQF5WK5H.js.map} +1 -1
- package/dist/LocalStorageProvider-PYOHETJV.mjs +9 -0
- package/dist/{LocalStorageProvider-3RVPCQB3.mjs.map → LocalStorageProvider-PYOHETJV.mjs.map} +1 -1
- package/dist/PMXParser-RLBDO7YK.mjs +4 -0
- package/dist/{PMXParser-RNVQL76A.mjs.map → PMXParser-RLBDO7YK.mjs.map} +1 -1
- package/dist/{PMXParser-2VTA737I.js → PMXParser-XHNO2KNI.js} +3 -3
- package/dist/{PMXParser-2VTA737I.js.map → PMXParser-XHNO2KNI.js.map} +1 -1
- package/dist/UniversalFileService-RBV6EN5J.js +15 -0
- package/dist/UniversalFileService-RBV6EN5J.js.map +1 -0
- package/dist/UniversalFileService-TNYKO6JN.mjs +9 -0
- package/dist/UniversalFileService-TNYKO6JN.mjs.map +1 -0
- package/dist/analytics/index.js +1 -1
- package/dist/analytics/index.mjs +1 -1
- package/dist/analytics/server/index.js +1 -1
- package/dist/analytics/server/index.mjs +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.mjs +1 -1
- package/dist/audioDetection/index.js +1 -1
- package/dist/audioDetection/index.mjs +1 -1
- package/dist/auth/client/index.js +1 -1
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.js +1 -1
- package/dist/auth/components/index.mjs +1 -1
- package/dist/auth/hooks/index.js +1 -1
- package/dist/auth/hooks/index.mjs +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.mjs +1 -1
- package/dist/auth/middleware/index.js +1 -1
- package/dist/auth/middleware/index.mjs +1 -1
- package/dist/auth/routes/index.js +1 -1
- package/dist/auth/routes/index.mjs +1 -1
- package/dist/auth/schema/index.js +1 -1
- package/dist/auth/schema/index.mjs +1 -1
- package/dist/auth/services/index.js +1 -1
- package/dist/auth/services/index.mjs +1 -1
- package/dist/calendar/index.js +12 -12
- package/dist/calendar/index.mjs +5 -5
- package/dist/calendar/routes/index.js +1 -1
- package/dist/calendar/routes/index.mjs +1 -1
- package/dist/calendar/server.js +1 -1
- package/dist/calendar/server.mjs +1 -1
- package/dist/chunk-2PS5PIXV.mjs +443 -0
- package/dist/chunk-2PS5PIXV.mjs.map +1 -0
- package/dist/chunk-35CXIK5Y.js +277 -0
- package/dist/chunk-35CXIK5Y.js.map +1 -0
- package/dist/{chunk-GMIUSZXC.mjs → chunk-3JW4X3AC.mjs} +3 -3
- package/dist/{chunk-GMIUSZXC.mjs.map → chunk-3JW4X3AC.mjs.map} +1 -1
- package/dist/chunk-3M6T5KVD.js +453 -0
- package/dist/chunk-3M6T5KVD.js.map +1 -0
- package/dist/chunk-3TNR6IMC.js +168 -0
- package/dist/chunk-3TNR6IMC.js.map +1 -0
- package/dist/chunk-4NFOSCM6.js +34 -0
- package/dist/chunk-4NFOSCM6.js.map +1 -0
- package/dist/{chunk-3NHAT7D4.mjs → chunk-4VJQZSPU.mjs} +4 -3
- package/dist/chunk-4VJQZSPU.mjs.map +1 -0
- package/dist/{chunk-SCDDMIF6.js → chunk-4XXIBWCO.js} +66 -66
- package/dist/{chunk-SCDDMIF6.js.map → chunk-4XXIBWCO.js.map} +1 -1
- package/dist/chunk-6AHYPPUP.js +344 -0
- package/dist/chunk-6AHYPPUP.js.map +1 -0
- package/dist/{chunk-EGJPS7OL.mjs → chunk-6BJ76BYC.mjs} +3 -3
- package/dist/{chunk-EGJPS7OL.mjs.map → chunk-6BJ76BYC.mjs.map} +1 -1
- package/dist/chunk-76V7EKBX.mjs +796 -0
- package/dist/chunk-76V7EKBX.mjs.map +1 -0
- package/dist/chunk-ACLOJXXE.js +195 -0
- package/dist/chunk-ACLOJXXE.js.map +1 -0
- package/dist/chunk-AEXPAH7Z.mjs +32 -0
- package/dist/chunk-AEXPAH7Z.mjs.map +1 -0
- package/dist/chunk-CFGX3EKK.js +560 -0
- package/dist/chunk-CFGX3EKK.js.map +1 -0
- package/dist/{chunk-435LATLS.mjs → chunk-CX5GPCCO.mjs} +3 -4
- package/dist/chunk-CX5GPCCO.mjs.map +1 -0
- package/dist/chunk-D2HXMGXS.js +46 -0
- package/dist/chunk-D2HXMGXS.js.map +1 -0
- package/dist/chunk-DM2GUVUH.js +1201 -0
- package/dist/chunk-DM2GUVUH.js.map +1 -0
- package/dist/{chunk-ZWQJSZEY.js → chunk-DVENFCQY.js} +5 -4
- package/dist/chunk-DVENFCQY.js.map +1 -0
- package/dist/chunk-EONPKLEJ.mjs +163 -0
- package/dist/chunk-EONPKLEJ.mjs.map +1 -0
- package/dist/{chunk-L47ZOYHL.js → chunk-EUIXQPPU.js} +4 -4
- package/dist/{chunk-L47ZOYHL.js.map → chunk-EUIXQPPU.js.map} +1 -1
- package/dist/{chunk-33YOJBQB.js → chunk-JOSNXSA6.js} +3 -4
- package/dist/chunk-JOSNXSA6.js.map +1 -0
- package/dist/chunk-K7WNCB4V.mjs +554 -0
- package/dist/chunk-K7WNCB4V.mjs.map +1 -0
- package/dist/chunk-L4ZYBFB2.mjs +44 -0
- package/dist/chunk-L4ZYBFB2.mjs.map +1 -0
- package/dist/chunk-M4HGHTIC.js +820 -0
- package/dist/chunk-M4HGHTIC.js.map +1 -0
- package/dist/{chunk-HHVDOIPV.js → chunk-MZKATHB7.js} +4 -4
- package/dist/{chunk-HHVDOIPV.js.map → chunk-MZKATHB7.js.map} +1 -1
- package/dist/{chunk-UKT3PLON.mjs → chunk-NXQVTAOP.mjs} +3 -3
- package/dist/{chunk-UKT3PLON.mjs.map → chunk-NXQVTAOP.mjs.map} +1 -1
- package/dist/chunk-OBIPI4GU.mjs +266 -0
- package/dist/chunk-OBIPI4GU.mjs.map +1 -0
- package/dist/chunk-PAX4S7QM.mjs +94 -0
- package/dist/chunk-PAX4S7QM.mjs.map +1 -0
- package/dist/chunk-PXWDQFWV.mjs +192 -0
- package/dist/chunk-PXWDQFWV.mjs.map +1 -0
- package/dist/chunk-QROLPPXP.mjs +5797 -0
- package/dist/chunk-QROLPPXP.mjs.map +1 -0
- package/dist/chunk-TGNUEULF.mjs +1158 -0
- package/dist/chunk-TGNUEULF.mjs.map +1 -0
- package/dist/chunk-VBQFVXOW.mjs +2772 -0
- package/dist/chunk-VBQFVXOW.mjs.map +1 -0
- package/dist/chunk-VLZ5N6XZ.js +5888 -0
- package/dist/chunk-VLZ5N6XZ.js.map +1 -0
- package/dist/chunk-VTGPHE4Z.mjs +322 -0
- package/dist/chunk-VTGPHE4Z.mjs.map +1 -0
- package/dist/chunk-WMJKH4XE.mjs +30 -0
- package/dist/{chunk-BJTO5JO5.mjs.map → chunk-WMJKH4XE.mjs.map} +1 -1
- package/dist/chunk-XYQMAF7H.js +96 -0
- package/dist/chunk-XYQMAF7H.js.map +1 -0
- package/dist/chunk-Z3G3IXEF.js +2814 -0
- package/dist/chunk-Z3G3IXEF.js.map +1 -0
- package/dist/chunk-Z6ZWNWWR.js +35 -0
- package/dist/{chunk-DGUM43GV.js.map → chunk-Z6ZWNWWR.js.map} +1 -1
- package/dist/components/index.d.mts +378 -0
- package/dist/components/index.d.ts +378 -0
- package/dist/components/index.js +414 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +9 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/config/index.js +1 -1
- package/dist/config/index.mjs +1 -1
- package/dist/config/server/index.js +1 -1
- package/dist/config/server/index.mjs +1 -1
- package/dist/fileService-O3W6YXCI.mjs +4 -0
- package/dist/fileService-O3W6YXCI.mjs.map +1 -0
- package/dist/fileService-YUDIYOAS.js +13 -0
- package/dist/fileService-YUDIYOAS.js.map +1 -0
- package/dist/i18n/index.js +7 -7
- package/dist/i18n/index.mjs +1 -1
- package/dist/imageCrop/index.js +1 -1
- package/dist/imageCrop/index.mjs +1 -1
- package/dist/index.d.mts +9 -580
- package/dist/index.d.ts +9 -580
- package/dist/index.js +313 -972
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +104 -790
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.js +8 -8
- package/dist/logger/index.mjs +5 -2
- package/dist/mikuFireworks3D/index.js +17 -17
- package/dist/mikuFireworks3D/index.mjs +2 -2
- package/dist/mikuFireworks3D/server/index.js +1 -1
- package/dist/mikuFireworks3D/server/index.mjs +1 -1
- package/dist/mikuFusionGame/index.js +5 -5
- package/dist/mikuFusionGame/index.mjs +4 -4
- package/dist/mmd/admin/index.js +1 -1
- package/dist/mmd/admin/index.mjs +1 -1
- package/dist/mmd/index.js +2 -2
- package/dist/mmd/index.mjs +2 -2
- package/dist/mmd/server/index.js +1 -1
- package/dist/mmd/server/index.mjs +1 -1
- package/dist/music/index.js +1 -1
- package/dist/music/index.mjs +1 -1
- package/dist/music/server/index.js +1 -1
- package/dist/music/server/index.mjs +1 -1
- package/dist/navigation/index.d.mts +93 -0
- package/dist/navigation/index.d.ts +93 -0
- package/dist/navigation/index.js +29 -0
- package/dist/navigation/index.js.map +1 -0
- package/dist/navigation/index.mjs +4 -0
- package/dist/navigation/index.mjs.map +1 -0
- package/dist/popupConfig-BznThU1O.d.mts +330 -0
- package/dist/popupConfig-BznThU1O.d.ts +330 -0
- package/dist/portfolio/index.d.mts +57 -0
- package/dist/portfolio/index.d.ts +57 -0
- package/dist/portfolio/index.js +35 -0
- package/dist/portfolio/index.js.map +1 -0
- package/dist/portfolio/index.mjs +10 -0
- package/dist/portfolio/index.mjs.map +1 -0
- package/dist/request/index.js +1 -1
- package/dist/request/index.mjs +1 -1
- package/dist/showmasterpiece/index.d.mts +2524 -0
- package/dist/showmasterpiece/index.d.ts +2524 -0
- package/dist/showmasterpiece/index.js +9681 -0
- package/dist/showmasterpiece/index.js.map +1 -0
- package/dist/showmasterpiece/index.mjs +9631 -0
- package/dist/showmasterpiece/index.mjs.map +1 -0
- package/dist/showmasterpiece/migration/index.d.mts +120 -0
- package/dist/showmasterpiece/migration/index.d.ts +120 -0
- package/dist/showmasterpiece/migration/index.js +595 -0
- package/dist/showmasterpiece/migration/index.js.map +1 -0
- package/dist/showmasterpiece/migration/index.mjs +589 -0
- package/dist/showmasterpiece/migration/index.mjs.map +1 -0
- package/dist/showmasterpiece/scripts/index.d.mts +28 -0
- package/dist/showmasterpiece/scripts/index.d.ts +28 -0
- package/dist/showmasterpiece/scripts/index.js +327 -0
- package/dist/showmasterpiece/scripts/index.js.map +1 -0
- package/dist/showmasterpiece/scripts/index.mjs +325 -0
- package/dist/showmasterpiece/scripts/index.mjs.map +1 -0
- package/dist/showmasterpiece/server/index.d.mts +2698 -0
- package/dist/showmasterpiece/server/index.d.ts +2698 -0
- package/dist/showmasterpiece/server/index.js +179 -0
- package/dist/showmasterpiece/server/index.js.map +1 -0
- package/dist/showmasterpiece/server/index.mjs +6 -0
- package/dist/showmasterpiece/server/index.mjs.map +1 -0
- package/dist/storage/index.js +8 -8
- package/dist/storage/index.mjs +2 -2
- package/dist/testYourself/admin/index.js +1 -1
- package/dist/testYourself/admin/index.mjs +1 -1
- package/dist/testYourself/index.js +2 -2
- package/dist/testYourself/index.mjs +2 -2
- package/dist/testYourself/server/index.js +1 -1
- package/dist/testYourself/server/index.mjs +1 -1
- package/dist/universalExport/index.js +154 -1195
- package/dist/universalExport/index.js.map +1 -1
- package/dist/universalExport/index.mjs +2 -1157
- package/dist/universalExport/index.mjs.map +1 -1
- package/dist/universalExport/server/index.js +5 -3
- package/dist/universalExport/server/index.js.map +1 -1
- package/dist/universalExport/server/index.mjs +4 -2
- package/dist/universalExport/server/index.mjs.map +1 -1
- package/dist/universalFile/index.js +10 -7
- package/dist/universalFile/index.js.map +1 -1
- package/dist/universalFile/index.mjs +6 -2
- package/dist/universalFile/index.mjs.map +1 -1
- package/dist/universalFile/server/index.d.mts +592 -265
- package/dist/universalFile/server/index.d.ts +592 -265
- package/dist/universalFile/server/index.js +298 -5637
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +8 -5559
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/dist/utils/index.js +12 -12
- package/dist/utils/index.mjs +3 -3
- package/package.json +36 -1
- package/dist/AliyunOSSProvider-4W47OFEK.mjs +0 -6
- package/dist/AliyunOSSProvider-HCNGDJL7.js +0 -15
- package/dist/ConfigService-V6ZK273Z.mjs +0 -4
- package/dist/LocalStorageProvider-3RVPCQB3.mjs +0 -6
- package/dist/LocalStorageProvider-PP7MA5OT.js +0 -15
- package/dist/PMXParser-RNVQL76A.mjs +0 -4
- package/dist/chunk-25OFOKNF.js +0 -171
- package/dist/chunk-25OFOKNF.js.map +0 -1
- package/dist/chunk-33YOJBQB.js.map +0 -1
- package/dist/chunk-3DXPQ4YV.mjs +0 -165
- package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
- package/dist/chunk-3NHAT7D4.mjs.map +0 -1
- package/dist/chunk-435LATLS.mjs.map +0 -1
- package/dist/chunk-BJTO5JO5.mjs +0 -10
- package/dist/chunk-CIVO4R6N.mjs +0 -37
- package/dist/chunk-CIVO4R6N.mjs.map +0 -1
- package/dist/chunk-DGUM43GV.js +0 -12
- package/dist/chunk-HDMIOOZY.mjs +0 -546
- package/dist/chunk-HDMIOOZY.mjs.map +0 -1
- package/dist/chunk-HJ6MH7J7.js +0 -552
- package/dist/chunk-HJ6MH7J7.js.map +0 -1
- package/dist/chunk-KH6RQ4J5.js +0 -28
- package/dist/chunk-KH6RQ4J5.js.map +0 -1
- package/dist/chunk-Q5EDCKQA.js +0 -336
- package/dist/chunk-Q5EDCKQA.js.map +0 -1
- package/dist/chunk-YOTQG4NP.mjs +0 -314
- package/dist/chunk-YOTQG4NP.mjs.map +0 -1
- package/dist/chunk-ZGVB35L2.mjs +0 -25
- package/dist/chunk-ZGVB35L2.mjs.map +0 -1
- package/dist/chunk-ZRAW3HXA.js +0 -43
- package/dist/chunk-ZRAW3HXA.js.map +0 -1
- package/dist/chunk-ZWQJSZEY.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunk3M6T5KVD_js = require('./chunk-3M6T5KVD.js');
|
|
4
|
+
var chunk35CXIK5Y_js = require('./chunk-35CXIK5Y.js');
|
|
5
|
+
var chunkJOSNXSA6_js = require('./chunk-JOSNXSA6.js');
|
|
6
|
+
var chunk4XXIBWCO_js = require('./chunk-4XXIBWCO.js');
|
|
7
|
+
var chunkMZKATHB7_js = require('./chunk-MZKATHB7.js');
|
|
6
8
|
require('./chunk-24HGREE6.js');
|
|
7
9
|
require('./chunk-GBPLX42J.js');
|
|
8
10
|
require('./chunk-6OWNMJKG.js');
|
|
@@ -10,43 +12,42 @@ require('./chunk-UL6XJGUZ.js');
|
|
|
10
12
|
var chunk5QMBZP7S_js = require('./chunk-5QMBZP7S.js');
|
|
11
13
|
require('./chunk-7VRT55ZD.js');
|
|
12
14
|
require('./chunk-SVWQN2LR.js');
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
+
var chunkDVENFCQY_js = require('./chunk-DVENFCQY.js');
|
|
16
|
+
var chunkEUIXQPPU_js = require('./chunk-EUIXQPPU.js');
|
|
15
17
|
var chunkKO73EBUT_js = require('./chunk-KO73EBUT.js');
|
|
16
18
|
require('./chunk-XJ7ZAGC5.js');
|
|
17
|
-
var
|
|
18
|
-
require('./chunk-
|
|
19
|
-
var
|
|
19
|
+
var chunkACLOJXXE_js = require('./chunk-ACLOJXXE.js');
|
|
20
|
+
require('./chunk-Z6ZWNWWR.js');
|
|
21
|
+
var React3 = require('react');
|
|
20
22
|
var tesseract_js = require('tesseract.js');
|
|
21
23
|
var lucideReact = require('lucide-react');
|
|
22
24
|
var clsx = require('clsx');
|
|
23
|
-
var Link = require('next/link');
|
|
24
|
-
var reactDom = require('react-dom');
|
|
25
25
|
var core = require('@dnd-kit/core');
|
|
26
26
|
var sortable = require('@dnd-kit/sortable');
|
|
27
27
|
var utilities = require('@dnd-kit/utilities');
|
|
28
28
|
|
|
29
29
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
30
30
|
|
|
31
|
-
var
|
|
32
|
-
var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
31
|
+
var React3__default = /*#__PURE__*/_interopDefault(React3);
|
|
33
32
|
|
|
33
|
+
// src/index.ts
|
|
34
|
+
chunkACLOJXXE_js.init_logger();
|
|
34
35
|
var useOCR = (options = {}) => {
|
|
35
|
-
const [state, setState] =
|
|
36
|
+
const [state, setState] = React3.useState({
|
|
36
37
|
isProcessing: false,
|
|
37
38
|
progress: 0,
|
|
38
39
|
status: "idle",
|
|
39
40
|
error: null,
|
|
40
41
|
result: null
|
|
41
42
|
});
|
|
42
|
-
const workerRef =
|
|
43
|
-
const cleanup =
|
|
43
|
+
const workerRef = React3.useRef(null);
|
|
44
|
+
const cleanup = React3.useCallback(async () => {
|
|
44
45
|
if (workerRef.current) {
|
|
45
46
|
await workerRef.current.terminate();
|
|
46
47
|
workerRef.current = null;
|
|
47
48
|
}
|
|
48
49
|
}, []);
|
|
49
|
-
const recognize =
|
|
50
|
+
const recognize = React3.useCallback(
|
|
50
51
|
async (image) => {
|
|
51
52
|
setState((prev) => ({
|
|
52
53
|
...prev,
|
|
@@ -105,7 +106,7 @@ var useOCR = (options = {}) => {
|
|
|
105
106
|
},
|
|
106
107
|
[options]
|
|
107
108
|
);
|
|
108
|
-
|
|
109
|
+
React3.useEffect(() => {
|
|
109
110
|
return () => {
|
|
110
111
|
cleanup();
|
|
111
112
|
};
|
|
@@ -121,8 +122,8 @@ var OCRScanner = ({
|
|
|
121
122
|
className = "",
|
|
122
123
|
language = "eng"
|
|
123
124
|
}) => {
|
|
124
|
-
const [imagePreview, setImagePreview] =
|
|
125
|
-
const fileInputRef =
|
|
125
|
+
const [imagePreview, setImagePreview] = React3.useState(null);
|
|
126
|
+
const fileInputRef = React3.useRef(null);
|
|
126
127
|
const { recognize, isProcessing, progress, status, result, error } = useOCR({
|
|
127
128
|
language
|
|
128
129
|
});
|
|
@@ -158,43 +159,43 @@ var OCRScanner = ({
|
|
|
158
159
|
handleFileChange(mockEvent);
|
|
159
160
|
}
|
|
160
161
|
};
|
|
161
|
-
return /* @__PURE__ */
|
|
162
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
162
163
|
"div",
|
|
163
164
|
{
|
|
164
165
|
className: clsx.clsx("p-6 border-2 border-dashed rounded-xl transition-all", isProcessing ? "border-blue-400 bg-blue-50/10" : "border-gray-200 hover:border-blue-400", className),
|
|
165
166
|
onDragOver: handleDragOver,
|
|
166
167
|
onDrop: handleDrop
|
|
167
168
|
},
|
|
168
|
-
!imagePreview ? /* @__PURE__ */
|
|
169
|
+
!imagePreview ? /* @__PURE__ */ React3__default.default.createElement(
|
|
169
170
|
"div",
|
|
170
171
|
{
|
|
171
172
|
className: "flex flex-col items-center justify-center cursor-pointer space-y-4",
|
|
172
173
|
onClick: () => fileInputRef.current?.click()
|
|
173
174
|
},
|
|
174
|
-
/* @__PURE__ */
|
|
175
|
-
/* @__PURE__ */
|
|
176
|
-
) : /* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "p-4 bg-blue-50 rounded-full text-blue-500" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Upload, { size: 32 })),
|
|
176
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-lg font-medium text-gray-700" }, "\u70B9\u51FB\u6216\u62D6\u62FD\u56FE\u7247\u8FDB\u884C OCR \u8BC6\u522B"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-500" }, "\u652F\u6301 JPG, PNG, WebP"))
|
|
177
|
+
) : /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative group rounded-lg overflow-hidden border border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
177
178
|
"img",
|
|
178
179
|
{
|
|
179
180
|
src: imagePreview,
|
|
180
181
|
alt: "Preview",
|
|
181
182
|
className: clsx.clsx("max-h-64 mx-auto object-contain transition-opacity", isProcessing ? "opacity-50" : "opacity-100")
|
|
182
183
|
}
|
|
183
|
-
), !isProcessing && /* @__PURE__ */
|
|
184
|
+
), !isProcessing && /* @__PURE__ */ React3__default.default.createElement(
|
|
184
185
|
"button",
|
|
185
186
|
{
|
|
186
187
|
onClick: reset,
|
|
187
188
|
className: "absolute top-2 right-2 p-1 bg-white/80 rounded-full hover:bg-white text-gray-600 shadow-sm"
|
|
188
189
|
},
|
|
189
|
-
/* @__PURE__ */
|
|
190
|
-
), isProcessing && /* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ React3__default.default.createElement(lucideReact.X, { size: 18 })
|
|
191
|
+
), isProcessing && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-0 flex flex-col items-center justify-center bg-black/5" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Loader2, { className: "animate-spin text-blue-500 mb-2", size: 32 }), /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-48 bg-gray-200 rounded-full h-1.5 overflow-hidden" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
191
192
|
"div",
|
|
192
193
|
{
|
|
193
194
|
className: "bg-blue-500 h-full transition-all duration-300",
|
|
194
195
|
style: { width: progress * 100 + "%" }
|
|
195
196
|
}
|
|
196
|
-
)), /* @__PURE__ */
|
|
197
|
-
/* @__PURE__ */
|
|
197
|
+
)), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-xs font-medium text-blue-600 mt-2" }, status === "initializing" ? "\u6B63\u5728\u52A0\u8F7D\u5F15\u64CE..." : "\u8BC6\u522B\u4E2D " + Math.round(progress * 100) + "%"))), result && !isProcessing && /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-gray-50 p-4 rounded-lg border border-gray-100 animate-in fade-in slide-in-from-bottom-2" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-2 mb-2 text-gray-600 font-medium" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.FileText, { size: 18 }), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u8BC6\u522B\u7ED3\u679C (\u7F6E\u4FE1\u5EA6: ", Math.round(result.confidence), "%)")), /* @__PURE__ */ React3__default.default.createElement("pre", { className: "text-sm text-gray-800 whitespace-pre-wrap font-sans" }, result.text)), error && /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-3 bg-red-50 text-red-600 text-sm rounded-lg border border-red-100" }, "\u8BC6\u522B\u5931\u8D25: ", error.message)),
|
|
198
|
+
/* @__PURE__ */ React3__default.default.createElement(
|
|
198
199
|
"input",
|
|
199
200
|
{
|
|
200
201
|
type: "file",
|
|
@@ -208,7 +209,7 @@ var OCRScanner = ({
|
|
|
208
209
|
);
|
|
209
210
|
};
|
|
210
211
|
var useBackgroundRemoval = (options = {}) => {
|
|
211
|
-
const [state, setState] =
|
|
212
|
+
const [state, setState] = React3.useState({
|
|
212
213
|
isProcessing: false,
|
|
213
214
|
progress: 0,
|
|
214
215
|
status: "idle",
|
|
@@ -216,7 +217,7 @@ var useBackgroundRemoval = (options = {}) => {
|
|
|
216
217
|
resultBlob: null,
|
|
217
218
|
resultUrl: null
|
|
218
219
|
});
|
|
219
|
-
const remove =
|
|
220
|
+
const remove = React3.useCallback(async (image) => {
|
|
220
221
|
setState((prev) => ({
|
|
221
222
|
...prev,
|
|
222
223
|
isProcessing: true,
|
|
@@ -295,12 +296,12 @@ var useBackgroundRemoval = (options = {}) => {
|
|
|
295
296
|
throw err;
|
|
296
297
|
}
|
|
297
298
|
}, [options]);
|
|
298
|
-
const cleanup =
|
|
299
|
+
const cleanup = React3.useCallback(() => {
|
|
299
300
|
if (state.resultUrl) {
|
|
300
301
|
URL.revokeObjectURL(state.resultUrl);
|
|
301
302
|
}
|
|
302
303
|
}, [state.resultUrl]);
|
|
303
|
-
|
|
304
|
+
React3.useEffect(() => {
|
|
304
305
|
return () => cleanup();
|
|
305
306
|
}, [cleanup]);
|
|
306
307
|
return {
|
|
@@ -313,8 +314,8 @@ var BackgroundRemover = ({
|
|
|
313
314
|
onResult,
|
|
314
315
|
className = ""
|
|
315
316
|
}) => {
|
|
316
|
-
const [imagePreview, setImagePreview] =
|
|
317
|
-
const fileInputRef =
|
|
317
|
+
const [imagePreview, setImagePreview] = React3.useState(null);
|
|
318
|
+
const fileInputRef = React3.useRef(null);
|
|
318
319
|
const { remove, isProcessing, progress, status, resultUrl, error } = useBackgroundRemoval();
|
|
319
320
|
const handleFileChange = async (e) => {
|
|
320
321
|
const file = e.target.files?.[0];
|
|
@@ -342,37 +343,37 @@ var BackgroundRemover = ({
|
|
|
342
343
|
a.download = "removed_background.png";
|
|
343
344
|
a.click();
|
|
344
345
|
};
|
|
345
|
-
return /* @__PURE__ */
|
|
346
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("p-6 border-2 border-dashed rounded-xl transition-all", isProcessing ? "border-purple-400 bg-purple-50/10" : "border-gray-200 hover:border-purple-400", className) }, !imagePreview ? /* @__PURE__ */ React3__default.default.createElement(
|
|
346
347
|
"div",
|
|
347
348
|
{
|
|
348
349
|
className: "flex flex-col items-center justify-center cursor-pointer space-y-4",
|
|
349
350
|
onClick: () => fileInputRef.current?.click()
|
|
350
351
|
},
|
|
351
|
-
/* @__PURE__ */
|
|
352
|
-
/* @__PURE__ */
|
|
353
|
-
) : /* @__PURE__ */
|
|
352
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "p-4 bg-purple-50 rounded-full text-purple-500" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Eraser, { size: 32 })),
|
|
353
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-lg font-medium text-gray-700" }, "\u4E0A\u4F20\u56FE\u7247\u79FB\u9664\u80CC\u666F"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-500" }, "\u5EFA\u8BAE\u4F7F\u7528\u4E3B\u4F53\u660E\u786E\u7684\u56FE\u7247"))
|
|
354
|
+
) : /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u539F\u56FE"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative rounded-lg overflow-hidden border border-gray-200 bg-gray-50" }, /* @__PURE__ */ React3__default.default.createElement("img", { src: imagePreview, alt: "Original", className: "max-h-64 mx-auto object-contain" }))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-xs font-medium text-gray-500 uppercase tracking-wider" }, "\u5904\u7406\u7ED3\u679C"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative rounded-lg overflow-hidden border border-gray-200 bg-grid-slate-100 bg-[size:20px_20px]" }, resultUrl ? /* @__PURE__ */ React3__default.default.createElement("img", { src: resultUrl, alt: "Result", className: "max-h-64 mx-auto object-contain animate-in fade-in zoom-in-95 duration-500" }) : /* @__PURE__ */ React3__default.default.createElement("div", { className: "h-64 flex flex-col items-center justify-center text-gray-400" }, isProcessing ? /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Loader2, { className: "animate-spin text-purple-500 mb-2", size: 32 }), /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-32 bg-gray-200 rounded-full h-1.5 overflow-hidden" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
354
355
|
"div",
|
|
355
356
|
{
|
|
356
357
|
className: "bg-purple-500 h-full transition-all duration-300",
|
|
357
358
|
style: { width: progress * 100 + "%" }
|
|
358
359
|
}
|
|
359
|
-
)), /* @__PURE__ */
|
|
360
|
+
)), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-[10px] mt-2 font-mono uppercase" }, status.replace(/-/g, " "))) : /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm italic" }, "\u7B49\u5F85\u5904\u7406..."))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-between items-center pt-2" }, !isProcessing && /* @__PURE__ */ React3__default.default.createElement(
|
|
360
361
|
"button",
|
|
361
362
|
{
|
|
362
363
|
onClick: reset,
|
|
363
364
|
className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors"
|
|
364
365
|
},
|
|
365
|
-
/* @__PURE__ */
|
|
366
|
+
/* @__PURE__ */ React3__default.default.createElement(lucideReact.X, { size: 16 }),
|
|
366
367
|
"\u91CD\u65B0\u5F00\u59CB"
|
|
367
|
-
), resultUrl && !isProcessing && /* @__PURE__ */
|
|
368
|
+
), resultUrl && !isProcessing && /* @__PURE__ */ React3__default.default.createElement(
|
|
368
369
|
"button",
|
|
369
370
|
{
|
|
370
371
|
onClick: downloadResult,
|
|
371
372
|
className: "flex items-center gap-2 px-6 py-2 bg-purple-600 hover:bg-purple-700 text-white rounded-lg shadow-sm transition-all"
|
|
372
373
|
},
|
|
373
|
-
/* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ React3__default.default.createElement(lucideReact.Download, { size: 16 }),
|
|
374
375
|
"\u4E0B\u8F7D PNG"
|
|
375
|
-
)), error && /* @__PURE__ */
|
|
376
|
+
)), error && /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-3 bg-red-50 text-red-600 text-sm rounded-lg border border-red-100" }, "\u5904\u7406\u5931\u8D25: ", error.message)), /* @__PURE__ */ React3__default.default.createElement(
|
|
376
377
|
"input",
|
|
377
378
|
{
|
|
378
379
|
type: "file",
|
|
@@ -385,14 +386,14 @@ var BackgroundRemover = ({
|
|
|
385
386
|
));
|
|
386
387
|
};
|
|
387
388
|
var useSentimentAnalysis = (options = {}) => {
|
|
388
|
-
const [state, setState] =
|
|
389
|
+
const [state, setState] = React3.useState({
|
|
389
390
|
isProcessing: false,
|
|
390
391
|
status: "idle",
|
|
391
392
|
error: null,
|
|
392
393
|
result: null
|
|
393
394
|
});
|
|
394
|
-
const pipelineRef =
|
|
395
|
-
const analyze =
|
|
395
|
+
const pipelineRef = React3.useRef(null);
|
|
396
|
+
const analyze = React3.useCallback(async (text) => {
|
|
396
397
|
setState((prev) => ({
|
|
397
398
|
...prev,
|
|
398
399
|
isProcessing: true,
|
|
@@ -476,7 +477,7 @@ var SentimentAnalyzer = ({
|
|
|
476
477
|
className = "",
|
|
477
478
|
placeholder = "\u8F93\u5165\u4E00\u6BB5\u4E2D\u6587\u6216\u82F1\u6587\uFF0C\u5206\u6790\u5176\u60C5\u611F\u503E\u5411..."
|
|
478
479
|
}) => {
|
|
479
|
-
const [text, setText] =
|
|
480
|
+
const [text, setText] = React3.useState("");
|
|
480
481
|
const { analyze, isProcessing, status, result, error } = useSentimentAnalysis();
|
|
481
482
|
const handleAnalyze = async () => {
|
|
482
483
|
if (!text.trim() || isProcessing) return;
|
|
@@ -491,11 +492,11 @@ var SentimentAnalyzer = ({
|
|
|
491
492
|
if (!result) return null;
|
|
492
493
|
switch (result.sentiment) {
|
|
493
494
|
case "positive":
|
|
494
|
-
return /* @__PURE__ */
|
|
495
|
+
return /* @__PURE__ */ React3__default.default.createElement(lucideReact.Smile, { className: "text-green-500", size: 24 });
|
|
495
496
|
case "negative":
|
|
496
|
-
return /* @__PURE__ */
|
|
497
|
+
return /* @__PURE__ */ React3__default.default.createElement(lucideReact.Frown, { className: "text-red-500", size: 24 });
|
|
497
498
|
default:
|
|
498
|
-
return /* @__PURE__ */
|
|
499
|
+
return /* @__PURE__ */ React3__default.default.createElement(lucideReact.Meh, { className: "text-yellow-500", size: 24 });
|
|
499
500
|
}
|
|
500
501
|
};
|
|
501
502
|
const getSentimentColor = () => {
|
|
@@ -509,7 +510,7 @@ var SentimentAnalyzer = ({
|
|
|
509
510
|
return "bg-yellow-50 border-yellow-200 text-yellow-700";
|
|
510
511
|
}
|
|
511
512
|
};
|
|
512
|
-
return /* @__PURE__ */
|
|
513
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("p-6 border rounded-xl bg-white dark:bg-gray-800 shadow-sm", className) }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-2 mb-4 text-gray-700 dark:text-gray-300 font-medium" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.MessageSquare, { size: 20 }), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u6587\u672C\u60C5\u611F\u5206\u6790")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
513
514
|
"textarea",
|
|
514
515
|
{
|
|
515
516
|
value: text,
|
|
@@ -518,25 +519,25 @@ var SentimentAnalyzer = ({
|
|
|
518
519
|
className: "w-full h-32 p-4 bg-gray-50 dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all outline-none resize-none text-gray-800 dark:text-gray-200",
|
|
519
520
|
disabled: isProcessing
|
|
520
521
|
}
|
|
521
|
-
), /* @__PURE__ */
|
|
522
|
+
), /* @__PURE__ */ React3__default.default.createElement(
|
|
522
523
|
"button",
|
|
523
524
|
{
|
|
524
525
|
onClick: handleAnalyze,
|
|
525
526
|
disabled: !text.trim() || isProcessing,
|
|
526
527
|
className: "absolute bottom-3 right-3 p-2 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-400 text-white rounded-md transition-colors shadow-sm"
|
|
527
528
|
},
|
|
528
|
-
isProcessing ? /* @__PURE__ */
|
|
529
|
-
)), isProcessing && /* @__PURE__ */
|
|
529
|
+
isProcessing ? /* @__PURE__ */ React3__default.default.createElement(lucideReact.Loader2, { className: "animate-spin", size: 18 }) : /* @__PURE__ */ React3__default.default.createElement(lucideReact.Send, { size: 18 })
|
|
530
|
+
)), isProcessing && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-4 flex items-center gap-2 text-sm text-blue-600 animate-pulse" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Loader2, { size: 14, className: "animate-spin" }), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u6B63\u5728\u5206\u6790 (\u9996\u6B21\u8FD0\u884C\u5C06\u52A0\u8F7D\u6A21\u578B\u8D44\u6E90)...")), result && !isProcessing && /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("mt-4 p-4 border rounded-lg flex items-center gap-4 animate-in fade-in slide-in-from-top-2", getSentimentColor()) }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-2 bg-white rounded-full shadow-sm" }, getSentimentIcon()), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-bold text-lg capitalize" }, result.sentiment), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm opacity-80" }, "\u7F6E\u4FE1\u5EA6: ", (result.score * 100).toFixed(1), "% (", result.label, ")"))), error && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-4 p-3 bg-red-50 text-red-600 text-sm rounded-lg border border-red-100" }, "\u5206\u6790\u5931\u8D25: ", error.message));
|
|
530
531
|
};
|
|
531
532
|
var useTextGeneration = (options = {}) => {
|
|
532
|
-
const [state, setState] =
|
|
533
|
+
const [state, setState] = React3.useState({
|
|
533
534
|
isProcessing: false,
|
|
534
535
|
status: "idle",
|
|
535
536
|
error: null,
|
|
536
537
|
result: null
|
|
537
538
|
});
|
|
538
|
-
const pipelineRef =
|
|
539
|
-
const generate =
|
|
539
|
+
const pipelineRef = React3.useRef(null);
|
|
540
|
+
const generate = React3.useCallback(async (prompt) => {
|
|
540
541
|
console.log("[AI] Generating for prompt:", prompt);
|
|
541
542
|
setState((prev) => ({
|
|
542
543
|
...prev,
|
|
@@ -618,11 +619,11 @@ var useTextGeneration = (options = {}) => {
|
|
|
618
619
|
return { ...state, generate };
|
|
619
620
|
};
|
|
620
621
|
var SmartAssistant = ({ className = "" }) => {
|
|
621
|
-
const [input, setInput] =
|
|
622
|
-
const [chatHistory, setChatHistory] =
|
|
623
|
-
const scrollRef =
|
|
622
|
+
const [input, setInput] = React3.useState("");
|
|
623
|
+
const [chatHistory, setChatHistory] = React3.useState([]);
|
|
624
|
+
const scrollRef = React3.useRef(null);
|
|
624
625
|
const { generate, isProcessing: isGenerating, status: genStatus } = useTextGeneration();
|
|
625
|
-
|
|
626
|
+
React3.useEffect(() => {
|
|
626
627
|
if (scrollRef.current) {
|
|
627
628
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
628
629
|
}
|
|
@@ -666,7 +667,7 @@ AI\u56DE\u5E94\uFF1A"`;
|
|
|
666
667
|
setChatHistory((prev) => [...prev, { role: "assistant", content: "\uFF08\u672C\u5730\u6A21\u578B\u601D\u8003\u8FC7\u5EA6\uFF0C\u6682\u65F6\u4F11\u606F\u4E2D...\uFF09" }]);
|
|
667
668
|
}
|
|
668
669
|
};
|
|
669
|
-
return /* @__PURE__ */
|
|
670
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("flex flex-col h-[500px] bg-white dark:bg-gray-800 rounded-xl shadow-inner border border-gray-100 dark:border-gray-700 overflow-hidden", className) }, /* @__PURE__ */ React3__default.default.createElement("div", { ref: scrollRef, className: "flex-1 overflow-y-auto p-4 space-y-4 bg-gray-50/50 dark:bg-gray-900/50" }, chatHistory.length === 0 && /* @__PURE__ */ React3__default.default.createElement("div", { className: "h-full flex flex-col items-center justify-center text-gray-400 space-y-2" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Bot, { size: 48, className: "opacity-20" }), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm italic text-center px-8 text-gray-400 font-sans" }, "\u4F60\u597D\uFF01\u6211\u662F 100% \u672C\u5730\u8FD0\u884C\u7684 AI\u3002", /* @__PURE__ */ React3__default.default.createElement("br", null), "\u4F60\u53EF\u4EE5\u548C\u6211\u804A\u804A\u5929\uFF0C\u6211\u4F1A\u5C1D\u8BD5\u7406\u89E3\u4F60\u7684\u610F\u601D\u3002")), chatHistory.map((msg, i) => /* @__PURE__ */ React3__default.default.createElement("div", { key: i, className: clsx.clsx("flex", msg.role === "user" ? "justify-end" : "justify-start", "animate-in fade-in slide-in-from-bottom-2") }, /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("flex gap-3 max-w-[85%]", msg.role === "user" ? "flex-row-reverse" : "") }, /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("p-2 rounded-lg h-fit", msg.role === "user" ? "bg-blue-100 text-blue-600" : "bg-white dark:bg-gray-700 shadow-sm border border-gray-100 dark:border-gray-600 text-gray-400") }, msg.role === "user" ? /* @__PURE__ */ React3__default.default.createElement(lucideReact.User, { size: 18 }) : /* @__PURE__ */ React3__default.default.createElement(lucideReact.Bot, { size: 18 })), /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("p-3 rounded-2xl shadow-sm text-sm", msg.role === "user" ? "bg-blue-600 text-white rounded-tr-none" : "bg-white dark:bg-gray-700 text-gray-800 dark:text-gray-200 rounded-tl-none border border-gray-100 dark:border-gray-600 leading-relaxed") }, msg.content)))), isGenerating && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-start" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex gap-3 items-center bg-white dark:bg-gray-700 p-3 rounded-2xl rounded-tl-none border border-gray-100 dark:border-gray-600" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Loader2, { className: "animate-spin text-blue-500", size: 16 }), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-xs text-gray-500 font-medium" }, "\u601D\u8003\u4E2D..."), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-[10px] text-blue-400 font-mono tracking-tighter" }, genStatus))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-4 bg-white dark:bg-gray-800 border-t border-gray-100 dark:border-gray-700" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative flex items-center gap-2" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
670
671
|
"input",
|
|
671
672
|
{
|
|
672
673
|
type: "text",
|
|
@@ -677,14 +678,14 @@ AI\u56DE\u5E94\uFF1A"`;
|
|
|
677
678
|
className: "flex-1 bg-gray-50 dark:bg-gray-900 border-none rounded-full px-5 py-3 pr-12 text-sm focus:ring-2 focus:ring-blue-500 outline-none dark:text-white text-gray-800",
|
|
678
679
|
disabled: isGenerating
|
|
679
680
|
}
|
|
680
|
-
), /* @__PURE__ */
|
|
681
|
+
), /* @__PURE__ */ React3__default.default.createElement(
|
|
681
682
|
"button",
|
|
682
683
|
{
|
|
683
684
|
onClick: handleSend,
|
|
684
685
|
disabled: !input.trim() || isGenerating,
|
|
685
686
|
className: "absolute right-1 p-2.5 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-400 text-white rounded-full transition-all shadow-md active:scale-95 flex items-center justify-center"
|
|
686
687
|
},
|
|
687
|
-
/* @__PURE__ */
|
|
688
|
+
/* @__PURE__ */ React3__default.default.createElement(lucideReact.Send, { size: 18 })
|
|
688
689
|
))));
|
|
689
690
|
};
|
|
690
691
|
var themeStyles = {
|
|
@@ -709,12 +710,12 @@ var ProfileModal = ({
|
|
|
709
710
|
}) => {
|
|
710
711
|
const renderSocialLinks = () => {
|
|
711
712
|
if (!data.socialLinks || data.socialLinks.length === 0) return null;
|
|
712
|
-
return /* @__PURE__ */
|
|
713
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex gap-3 mt-2" }, data.socialLinks.map((link, index) => /* @__PURE__ */ React3__default.default.createElement(
|
|
713
714
|
"a",
|
|
714
715
|
{
|
|
715
716
|
key: index,
|
|
716
717
|
href: link.url,
|
|
717
|
-
className:
|
|
718
|
+
className: chunkDVENFCQY_js.cn(
|
|
718
719
|
"w-8 h-8 flex items-center justify-center rounded-full no-underline transition-all hover:-translate-y-0.5",
|
|
719
720
|
themeName === "dark" ? "bg-gray-800 text-gray-200 hover:bg-gray-700" : "bg-gray-100 text-gray-800 hover:bg-gray-200"
|
|
720
721
|
),
|
|
@@ -728,53 +729,53 @@ var ProfileModal = ({
|
|
|
728
729
|
}
|
|
729
730
|
}
|
|
730
731
|
},
|
|
731
|
-
link.icon ? /* @__PURE__ */
|
|
732
|
+
link.icon ? /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-base" }, link.icon) : /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-[10px] font-semibold" }, link.type)
|
|
732
733
|
)));
|
|
733
734
|
};
|
|
734
735
|
const renderContacts = () => {
|
|
735
736
|
if (!data.contacts || Object.keys(data.contacts).length === 0) return null;
|
|
736
|
-
return /* @__PURE__ */
|
|
737
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: chunkDVENFCQY_js.cn(
|
|
737
738
|
"mt-4 border-t pt-4",
|
|
738
739
|
themeName === "dark" ? "border-gray-800" : "border-gray-100"
|
|
739
|
-
) }, Object.entries(data.contacts).map(([type, value], index) => /* @__PURE__ */
|
|
740
|
+
) }, Object.entries(data.contacts).map(([type, value], index) => /* @__PURE__ */ React3__default.default.createElement(
|
|
740
741
|
"div",
|
|
741
742
|
{
|
|
742
743
|
key: index,
|
|
743
|
-
className:
|
|
744
|
+
className: chunkDVENFCQY_js.cn(
|
|
744
745
|
"flex mb-2 cursor-pointer py-1.5 px-2 rounded transition-colors",
|
|
745
746
|
themeName === "dark" ? "hover:bg-gray-800" : "hover:bg-gray-50"
|
|
746
747
|
),
|
|
747
748
|
onClick: () => onContactClick && onContactClick(type, value)
|
|
748
749
|
},
|
|
749
|
-
/* @__PURE__ */
|
|
750
|
+
/* @__PURE__ */ React3__default.default.createElement("span", { className: chunkDVENFCQY_js.cn(
|
|
750
751
|
"font-medium w-[70px] shrink-0",
|
|
751
752
|
themeName === "dark" ? "text-gray-400" : "text-gray-500"
|
|
752
753
|
) }, type, ":"),
|
|
753
|
-
/* @__PURE__ */
|
|
754
|
+
/* @__PURE__ */ React3__default.default.createElement("span", { className: themeName === "dark" ? "text-gray-200" : "text-gray-800" }, value)
|
|
754
755
|
)));
|
|
755
756
|
};
|
|
756
|
-
return /* @__PURE__ */
|
|
757
|
+
return /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose() }, /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.DialogContent, { className: chunkDVENFCQY_js.cn(
|
|
757
758
|
"sm:max-w-[500px] p-0 overflow-hidden border-none shadow-2xl",
|
|
758
759
|
themeStyles[themeName] || "",
|
|
759
760
|
className
|
|
760
|
-
) }, /* @__PURE__ */
|
|
761
|
+
) }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex gap-5 mb-5" }, showAvatar && /* @__PURE__ */ React3__default.default.createElement(
|
|
761
762
|
"div",
|
|
762
763
|
{
|
|
763
764
|
className: "shrink-0",
|
|
764
765
|
onClick: onAvatarClick,
|
|
765
766
|
style: { cursor: onAvatarClick ? "pointer" : "default" }
|
|
766
767
|
},
|
|
767
|
-
/* @__PURE__ */
|
|
768
|
-
), /* @__PURE__ */
|
|
768
|
+
/* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.Avatar, { className: "border-2 border-primary/10 shadow-sm", style: { width: avatarSize, height: avatarSize } }, data.avatar && /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.AvatarImage, { src: data.avatar, alt: data.name, className: "object-cover" }), /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.AvatarFallback, { className: "text-xl" }, data.name.substring(0, 2).toUpperCase()))
|
|
769
|
+
), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1 min-w-0 flex flex-col justify-center" }, /* @__PURE__ */ React3__default.default.createElement("h2", { className: chunkDVENFCQY_js.cn(
|
|
769
770
|
"text-2xl font-bold m-0 mb-1",
|
|
770
771
|
themeName === "dark" ? "text-white" : "text-gray-900"
|
|
771
|
-
) }, data.name), data.title && /* @__PURE__ */
|
|
772
|
+
) }, data.name), data.title && /* @__PURE__ */ React3__default.default.createElement("div", { className: chunkDVENFCQY_js.cn(
|
|
772
773
|
"text-sm mb-2",
|
|
773
774
|
themeName === "dark" ? "text-gray-400" : "text-gray-500"
|
|
774
|
-
) }, data.title), showSocial && renderSocialLinks())), showBio && data.bio && /* @__PURE__ */
|
|
775
|
+
) }, data.title), showSocial && renderSocialLinks())), showBio && data.bio && /* @__PURE__ */ React3__default.default.createElement("div", { className: chunkDVENFCQY_js.cn(
|
|
775
776
|
"mb-5 leading-relaxed text-sm",
|
|
776
777
|
themeName === "dark" ? "text-gray-300" : "text-gray-600"
|
|
777
|
-
) }, /* @__PURE__ */
|
|
778
|
+
) }, /* @__PURE__ */ React3__default.default.createElement("p", null, data.bio)), showContacts && renderContacts(), data.customContent && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-5" }, data.customContent))));
|
|
778
779
|
};
|
|
779
780
|
var ProfileModal_default = ProfileModal;
|
|
780
781
|
var BadgeList = ({
|
|
@@ -782,13 +783,13 @@ var BadgeList = ({
|
|
|
782
783
|
className = ""
|
|
783
784
|
}) => {
|
|
784
785
|
if (!badges || badges.length === 0) return null;
|
|
785
|
-
return /* @__PURE__ */
|
|
786
|
-
|
|
786
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: chunkDVENFCQY_js.cn("flex flex-wrap gap-2 mt-4", className) }, badges.map((badge, index) => /* @__PURE__ */ React3__default.default.createElement(
|
|
787
|
+
chunk4XXIBWCO_js.Badge,
|
|
787
788
|
{
|
|
788
789
|
key: index,
|
|
789
790
|
variant: badge.type === "default" ? "default" : badge.type
|
|
790
791
|
},
|
|
791
|
-
badge.icon && /* @__PURE__ */
|
|
792
|
+
badge.icon && /* @__PURE__ */ React3__default.default.createElement("span", { className: "mr-1" }, badge.icon),
|
|
792
793
|
badge.label
|
|
793
794
|
)));
|
|
794
795
|
};
|
|
@@ -800,7 +801,7 @@ var Stat = ({
|
|
|
800
801
|
icon,
|
|
801
802
|
className = ""
|
|
802
803
|
}) => {
|
|
803
|
-
return /* @__PURE__ */ React.createElement("div", { className:
|
|
804
|
+
return /* @__PURE__ */ React.createElement("div", { className: chunkDVENFCQY_js.cn("flex flex-col items-center flex-1 text-center", className) }, icon && /* @__PURE__ */ React.createElement("span", { className: "mb-2 text-2xl text-gray-400" }, icon), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "text-lg font-semibold text-gray-800" }, value), /* @__PURE__ */ React.createElement("div", { className: "text-xs text-gray-400 mt-1" }, label)));
|
|
804
805
|
};
|
|
805
806
|
|
|
806
807
|
// src/profile/internal/StatList.tsx
|
|
@@ -809,7 +810,7 @@ var StatList = ({
|
|
|
809
810
|
className = ""
|
|
810
811
|
}) => {
|
|
811
812
|
if (!stats || stats.length === 0) return null;
|
|
812
|
-
return /* @__PURE__ */ React.createElement("div", { className:
|
|
813
|
+
return /* @__PURE__ */ React.createElement("div", { className: chunkDVENFCQY_js.cn("flex justify-between mt-4 pt-4 border-t border-gray-100", className) }, stats.map((stat, index) => /* @__PURE__ */ React.createElement(Stat, { key: index, ...stat })));
|
|
813
814
|
};
|
|
814
815
|
|
|
815
816
|
// src/profile/ProfileButton.tsx
|
|
@@ -839,7 +840,7 @@ var exampleProfileData = {
|
|
|
839
840
|
{ label: "\u7C89\u4E1D", value: 1024 },
|
|
840
841
|
{ label: "\u8BC4\u5206", value: "4.9" }
|
|
841
842
|
],
|
|
842
|
-
customContent: /* @__PURE__ */
|
|
843
|
+
customContent: /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-5 border-t border-gray-100 pt-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-sm font-semibold mb-2" }, "\u4E13\u4E1A\u6280\u80FD"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600 leading-relaxed" }, "\u7CBE\u901AReact\u3001Vue\u3001Angular\u7B49\u524D\u7AEF\u6846\u67B6\uFF0C\u719F\u6089TypeScript\u3001JavaScript\u3001CSS3\u3001HTML5\u7B49\u524D\u7AEF\u6280\u672F\u3002 \u6709\u4E30\u5BCC\u7684\u5927\u578B\u9879\u76EE\u5F00\u53D1\u7ECF\u9A8C\uFF0C\u80FD\u72EC\u7ACB\u8D1F\u8D23\u524D\u7AEF\u67B6\u6784\u8BBE\u8BA1\u3002"))
|
|
843
844
|
};
|
|
844
845
|
var ProfileButton = ({
|
|
845
846
|
data = exampleProfileData,
|
|
@@ -849,7 +850,7 @@ var ProfileButton = ({
|
|
|
849
850
|
className = "",
|
|
850
851
|
modalTheme = "light"
|
|
851
852
|
}) => {
|
|
852
|
-
const [isModalOpen, setIsModalOpen] =
|
|
853
|
+
const [isModalOpen, setIsModalOpen] = React3.useState(false);
|
|
853
854
|
const openModal = () => setIsModalOpen(true);
|
|
854
855
|
const closeModal = () => setIsModalOpen(false);
|
|
855
856
|
const handleContactClick = (type, value) => {
|
|
@@ -859,8 +860,8 @@ var ProfileButton = ({
|
|
|
859
860
|
window.open("tel:" + value);
|
|
860
861
|
}
|
|
861
862
|
};
|
|
862
|
-
return /* @__PURE__ */
|
|
863
|
-
|
|
863
|
+
return /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement(
|
|
864
|
+
chunk4XXIBWCO_js.Button,
|
|
864
865
|
{
|
|
865
866
|
variant,
|
|
866
867
|
size,
|
|
@@ -868,7 +869,7 @@ var ProfileButton = ({
|
|
|
868
869
|
className
|
|
869
870
|
},
|
|
870
871
|
buttonText
|
|
871
|
-
), /* @__PURE__ */
|
|
872
|
+
), /* @__PURE__ */ React3__default.default.createElement(
|
|
872
873
|
ProfileModal_default,
|
|
873
874
|
{
|
|
874
875
|
isOpen: isModalOpen,
|
|
@@ -879,8 +880,8 @@ var ProfileButton = ({
|
|
|
879
880
|
onSocialLinkClick: (url) => window.open(url, "_blank")
|
|
880
881
|
},
|
|
881
882
|
data.customContent,
|
|
882
|
-
data.badges && /* @__PURE__ */
|
|
883
|
-
data.stats && /* @__PURE__ */
|
|
883
|
+
data.badges && /* @__PURE__ */ React3__default.default.createElement(BadgeList, { badges: data.badges }),
|
|
884
|
+
data.stats && /* @__PURE__ */ React3__default.default.createElement(StatList, { stats: data.stats })
|
|
884
885
|
));
|
|
885
886
|
};
|
|
886
887
|
var AutoOpenModal = ({
|
|
@@ -890,8 +891,8 @@ var AutoOpenModal = ({
|
|
|
890
891
|
themeName = "light",
|
|
891
892
|
onClose
|
|
892
893
|
}) => {
|
|
893
|
-
const [isModalOpen, setIsModalOpen] =
|
|
894
|
-
|
|
894
|
+
const [isModalOpen, setIsModalOpen] = React3.useState(false);
|
|
895
|
+
React3.useEffect(() => {
|
|
895
896
|
const timer = setTimeout(() => {
|
|
896
897
|
setIsModalOpen(true);
|
|
897
898
|
}, delay);
|
|
@@ -910,7 +911,7 @@ var AutoOpenModal = ({
|
|
|
910
911
|
window.open("tel:" + value);
|
|
911
912
|
}
|
|
912
913
|
};
|
|
913
|
-
return /* @__PURE__ */
|
|
914
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
914
915
|
ProfileModal_default,
|
|
915
916
|
{
|
|
916
917
|
isOpen: isModalOpen,
|
|
@@ -920,8 +921,8 @@ var AutoOpenModal = ({
|
|
|
920
921
|
onContactClick: handleContactClick,
|
|
921
922
|
onSocialLinkClick: (url) => window.open(url, "_blank")
|
|
922
923
|
},
|
|
923
|
-
data.badges && /* @__PURE__ */
|
|
924
|
-
data.stats && /* @__PURE__ */
|
|
924
|
+
data.badges && /* @__PURE__ */ React3__default.default.createElement(BadgeList, { badges: data.badges }),
|
|
925
|
+
data.stats && /* @__PURE__ */ React3__default.default.createElement(StatList, { stats: data.stats })
|
|
925
926
|
);
|
|
926
927
|
};
|
|
927
928
|
var sizeMap = {
|
|
@@ -945,707 +946,17 @@ var EnhancedAvatar = ({
|
|
|
945
946
|
}) => {
|
|
946
947
|
const sizeClass = typeof size === "string" ? sizeMap[size] : "";
|
|
947
948
|
const customSizeStyle = typeof size === "number" ? { width: size, height: size } : {};
|
|
948
|
-
return /* @__PURE__ */
|
|
949
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: chunkDVENFCQY_js.cn("relative inline-block", className), onClick }, /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.Avatar, { className: chunkDVENFCQY_js.cn(sizeClass, onClick && "cursor-pointer hover:ring-2 hover:ring-blue-500 transition-all"), style: customSizeStyle }, src && /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.AvatarImage, { src, alt: name || "Avatar", className: "object-cover" }), /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.AvatarFallback, { className: "bg-primary/10 text-primary-foreground" }, name ? name.substring(0, 2).toUpperCase() : "??")), mood && /* @__PURE__ */ React3__default.default.createElement(
|
|
949
950
|
"div",
|
|
950
951
|
{
|
|
951
|
-
className:
|
|
952
|
+
className: chunkDVENFCQY_js.cn(
|
|
952
953
|
"absolute bottom-0 right-0 rounded-full border-2 border-white",
|
|
953
954
|
moodColors[mood],
|
|
954
955
|
typeof size === "number" ? size > 60 ? "h-4 w-4" : "h-3 w-3" : size === "large" ? "h-4 w-4" : "h-3 w-3"
|
|
955
956
|
)
|
|
956
957
|
}
|
|
957
|
-
), statusText && /* @__PURE__ */
|
|
958
|
+
), statusText && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute -bottom-6 left-1/2 transform -translate-x-1/2 whitespace-nowrap" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-xs text-muted-foreground" }, statusText)));
|
|
958
959
|
};
|
|
959
|
-
var About = ({
|
|
960
|
-
timelineConfig,
|
|
961
|
-
collisionBallsConfig
|
|
962
|
-
}) => {
|
|
963
|
-
return /* @__PURE__ */ React12__default.default.createElement("section", { id: "about", className: "py-16 bg-white" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React12__default.default.createElement("h2", { className: "text-3xl font-bold text-center mb-12" }, "\u5173\u4E8E\u6211"), /* @__PURE__ */ React12__default.default.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6" }, /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-2xl font-semibold mb-6" }, "\u4E2A\u4EBA\u7ECF\u5386"), /* @__PURE__ */ React12__default.default.createElement(chunkSCDDMIF6_js.Timeline, { items: timelineConfig.items })), /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6" }, /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-2xl font-semibold mb-6" }, "\u6280\u80FD\u5C55\u793A"), /* @__PURE__ */ React12__default.default.createElement("div", { style: { height: "400px", position: "relative" } }, /* @__PURE__ */ React12__default.default.createElement(chunkSCDDMIF6_js.CollisionBalls, { collisionBallsConfig }))))));
|
|
964
|
-
};
|
|
965
|
-
var About_default = About;
|
|
966
|
-
var Contact = () => {
|
|
967
|
-
const [formData, setFormData] = React12.useState({
|
|
968
|
-
name: "",
|
|
969
|
-
email: "",
|
|
970
|
-
message: ""
|
|
971
|
-
});
|
|
972
|
-
const [isSubmitting, setIsSubmitting] = React12.useState(false);
|
|
973
|
-
const [submitStatus, setSubmitStatus] = React12.useState("idle");
|
|
974
|
-
const handleChange = (e) => {
|
|
975
|
-
const { name, value } = e.target;
|
|
976
|
-
setFormData((prev) => ({
|
|
977
|
-
...prev,
|
|
978
|
-
[name]: value
|
|
979
|
-
}));
|
|
980
|
-
};
|
|
981
|
-
const handleSubmit = async (e) => {
|
|
982
|
-
e.preventDefault();
|
|
983
|
-
setIsSubmitting(true);
|
|
984
|
-
setSubmitStatus("idle");
|
|
985
|
-
try {
|
|
986
|
-
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
987
|
-
setSubmitStatus("success");
|
|
988
|
-
setFormData({ name: "", email: "", message: "" });
|
|
989
|
-
} catch (error) {
|
|
990
|
-
setSubmitStatus("error");
|
|
991
|
-
} finally {
|
|
992
|
-
setIsSubmitting(false);
|
|
993
|
-
}
|
|
994
|
-
};
|
|
995
|
-
return /* @__PURE__ */ React12__default.default.createElement("section", { id: "contact", className: "py-16 bg-gray-50" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "max-w-4xl mx-auto px-4 sm:px-6 lg:px-8" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "text-center mb-12" }, /* @__PURE__ */ React12__default.default.createElement("h2", { className: "text-3xl font-bold text-gray-900 sm:text-4xl" }, "\u8054\u7CFB\u6211"), /* @__PURE__ */ React12__default.default.createElement("p", { className: "mt-4 text-lg text-gray-600" }, "\u6709\u4EFB\u4F55\u95EE\u9898\u6216\u5EFA\u8BAE\uFF1F\u8BF7\u968F\u65F6\u8054\u7CFB\u6211")), /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-white rounded-lg shadow-xl p-6 sm:p-8" }, /* @__PURE__ */ React12__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-6" }, /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement("label", { htmlFor: "name", className: "block text-sm font-medium text-gray-700" }, "\u59D3\u540D"), /* @__PURE__ */ React12__default.default.createElement(
|
|
996
|
-
"input",
|
|
997
|
-
{
|
|
998
|
-
type: "text",
|
|
999
|
-
name: "name",
|
|
1000
|
-
id: "name",
|
|
1001
|
-
value: formData.name,
|
|
1002
|
-
onChange: handleChange,
|
|
1003
|
-
required: true,
|
|
1004
|
-
className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm",
|
|
1005
|
-
placeholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u59D3\u540D"
|
|
1006
|
-
}
|
|
1007
|
-
)), /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement("label", { htmlFor: "email", className: "block text-sm font-medium text-gray-700" }, "\u90AE\u7BB1"), /* @__PURE__ */ React12__default.default.createElement(
|
|
1008
|
-
"input",
|
|
1009
|
-
{
|
|
1010
|
-
type: "email",
|
|
1011
|
-
name: "email",
|
|
1012
|
-
id: "email",
|
|
1013
|
-
value: formData.email,
|
|
1014
|
-
onChange: handleChange,
|
|
1015
|
-
required: true,
|
|
1016
|
-
className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm",
|
|
1017
|
-
placeholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u90AE\u7BB1"
|
|
1018
|
-
}
|
|
1019
|
-
)), /* @__PURE__ */ React12__default.default.createElement("div", null, /* @__PURE__ */ React12__default.default.createElement("label", { htmlFor: "message", className: "block text-sm font-medium text-gray-700" }, "\u6D88\u606F"), /* @__PURE__ */ React12__default.default.createElement(
|
|
1020
|
-
"textarea",
|
|
1021
|
-
{
|
|
1022
|
-
name: "message",
|
|
1023
|
-
id: "message",
|
|
1024
|
-
rows: 4,
|
|
1025
|
-
value: formData.message,
|
|
1026
|
-
onChange: handleChange,
|
|
1027
|
-
required: true,
|
|
1028
|
-
className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm",
|
|
1029
|
-
placeholder: "\u8BF7\u8F93\u5165\u60A8\u7684\u6D88\u606F"
|
|
1030
|
-
}
|
|
1031
|
-
)), /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex items-center justify-end" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1032
|
-
"button",
|
|
1033
|
-
{
|
|
1034
|
-
type: "submit",
|
|
1035
|
-
disabled: isSubmitting,
|
|
1036
|
-
className: clsx.clsx("inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white", isSubmitting ? "bg-blue-400 cursor-not-allowed" : "bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500")
|
|
1037
|
-
},
|
|
1038
|
-
isSubmitting ? "\u53D1\u9001\u4E2D..." : "\u53D1\u9001\u6D88\u606F"
|
|
1039
|
-
)), submitStatus === "success" && /* @__PURE__ */ React12__default.default.createElement("div", { className: "rounded-md bg-green-50 p-4" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React12__default.default.createElement("svg", { className: "h-5 w-5 text-green-400", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React12__default.default.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", clipRule: "evenodd" }))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "ml-3" }, /* @__PURE__ */ React12__default.default.createElement("p", { className: "text-sm font-medium text-green-800" }, "\u6D88\u606F\u5DF2\u6210\u529F\u53D1\u9001\uFF01")))), submitStatus === "error" && /* @__PURE__ */ React12__default.default.createElement("div", { className: "rounded-md bg-red-50 p-4" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React12__default.default.createElement("svg", { className: "h-5 w-5 text-red-400", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React12__default.default.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z", clipRule: "evenodd" }))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "ml-3" }, /* @__PURE__ */ React12__default.default.createElement("p", { className: "text-sm font-medium text-red-800" }, "\u53D1\u9001\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")))))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "mt-12 grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6 text-center" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "text-blue-600 mb-4" }, /* @__PURE__ */ React12__default.default.createElement("svg", { className: "h-8 w-8 mx-auto", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React12__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" }))), /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u90AE\u7BB1"), /* @__PURE__ */ React12__default.default.createElement("p", { className: "mt-2 text-gray-600" }, "your.email@example.com")), /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6 text-center" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "text-blue-600 mb-4" }, /* @__PURE__ */ React12__default.default.createElement("svg", { className: "h-8 w-8 mx-auto", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React12__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" }))), /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u7535\u8BDD"), /* @__PURE__ */ React12__default.default.createElement("p", { className: "mt-2 text-gray-600" }, "+86 123 4567 8900")), /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6 text-center" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "text-blue-600 mb-4" }, /* @__PURE__ */ React12__default.default.createElement("svg", { className: "h-8 w-8 mx-auto", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React12__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" }), /* @__PURE__ */ React12__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" }))), /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u5730\u5740"), /* @__PURE__ */ React12__default.default.createElement("p", { className: "mt-2 text-gray-600" }, "\u4E2D\u56FD\uFF0C\u5317\u4EAC")))));
|
|
1040
|
-
};
|
|
1041
|
-
var Contact_default = Contact;
|
|
1042
|
-
var Home = ({ homeConfig, className }) => {
|
|
1043
|
-
const { title, subtitle, buttons, imageSrc } = homeConfig;
|
|
1044
|
-
const [displayText, setDisplayText] = React12.useState("");
|
|
1045
|
-
const [currentIndex, setCurrentIndex] = React12.useState(0);
|
|
1046
|
-
React12.useEffect(() => {
|
|
1047
|
-
if (currentIndex < title.length) {
|
|
1048
|
-
const timer = setTimeout(() => {
|
|
1049
|
-
setDisplayText((prev) => prev + title[currentIndex]);
|
|
1050
|
-
setCurrentIndex((prev) => prev + 1);
|
|
1051
|
-
}, 150);
|
|
1052
|
-
return () => clearTimeout(timer);
|
|
1053
|
-
}
|
|
1054
|
-
return () => {
|
|
1055
|
-
setDisplayText("");
|
|
1056
|
-
setCurrentIndex(0);
|
|
1057
|
-
};
|
|
1058
|
-
}, [currentIndex, title]);
|
|
1059
|
-
return /* @__PURE__ */ React12__default.default.createElement(
|
|
1060
|
-
"section",
|
|
1061
|
-
{
|
|
1062
|
-
id: "home",
|
|
1063
|
-
className: chunkZWQJSZEY_js.cn("min-h-screen flex items-center justify-center py-16 bg-gradient-to-b from-white to-gray-50", className)
|
|
1064
|
-
},
|
|
1065
|
-
/* @__PURE__ */ React12__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex flex-col md:flex-row items-center gap-12" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex-1 text-center md:text-left" }, /* @__PURE__ */ React12__default.default.createElement("h1", { className: "text-4xl md:text-6xl font-bold mb-6 text-gray-900" }, /* @__PURE__ */ React12__default.default.createElement("span", { className: "inline-block" }, displayText), /* @__PURE__ */ React12__default.default.createElement("span", { className: "animate-pulse ml-1 text-blue-500" }, "|")), /* @__PURE__ */ React12__default.default.createElement("p", { className: "text-xl md:text-2xl text-gray-600 mb-8" }, subtitle), /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex flex-wrap gap-4 justify-center md:justify-start" }, buttons.map((button) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1066
|
-
"a",
|
|
1067
|
-
{
|
|
1068
|
-
key: button.link,
|
|
1069
|
-
href: button.link,
|
|
1070
|
-
className: "px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-all duration-300 shadow-md hover:shadow-lg font-medium"
|
|
1071
|
-
},
|
|
1072
|
-
button.text
|
|
1073
|
-
)))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "relative group" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "absolute -inset-1 bg-gradient-to-r from-blue-600 to-purple-600 rounded-lg blur opacity-25 group-hover:opacity-50 transition duration-1000 group-hover:duration-200" }), /* @__PURE__ */ React12__default.default.createElement(
|
|
1074
|
-
"img",
|
|
1075
|
-
{
|
|
1076
|
-
src: imageSrc,
|
|
1077
|
-
alt: "Profile",
|
|
1078
|
-
className: "relative w-full max-w-md mx-auto rounded-lg shadow-xl transform hover:scale-[1.02] transition-transform duration-300 bg-white"
|
|
1079
|
-
}
|
|
1080
|
-
)))))
|
|
1081
|
-
);
|
|
1082
|
-
};
|
|
1083
|
-
var Home_default = Home;
|
|
1084
|
-
var ExperimentCard = ({
|
|
1085
|
-
href,
|
|
1086
|
-
title,
|
|
1087
|
-
description,
|
|
1088
|
-
tags,
|
|
1089
|
-
category,
|
|
1090
|
-
isCompleted,
|
|
1091
|
-
updatedAt,
|
|
1092
|
-
createdAt,
|
|
1093
|
-
className
|
|
1094
|
-
}) => {
|
|
1095
|
-
const formatDate = (dateString) => {
|
|
1096
|
-
if (!dateString) return "";
|
|
1097
|
-
try {
|
|
1098
|
-
const date = new Date(dateString);
|
|
1099
|
-
return date.toLocaleDateString("zh-CN", {
|
|
1100
|
-
year: "numeric",
|
|
1101
|
-
month: "2-digit",
|
|
1102
|
-
day: "2-digit"
|
|
1103
|
-
});
|
|
1104
|
-
} catch (e) {
|
|
1105
|
-
return dateString;
|
|
1106
|
-
}
|
|
1107
|
-
};
|
|
1108
|
-
return /* @__PURE__ */ React12__default.default.createElement(Link__default.default, { href, className: chunkZWQJSZEY_js.cn("block group", className) }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "w-full h-full bg-white rounded-2xl overflow-hidden shadow-md hover:shadow-2xl transition-all duration-300 transform group-hover:-translate-y-1 border border-gray-100 hover:border-gray-200" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "p-6" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex items-start justify-between mb-4" }, /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-xl font-semibold text-gray-900 flex-1 pr-4 leading-tight" }, title), /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex flex-col gap-2 flex-shrink-0" }, /* @__PURE__ */ React12__default.default.createElement("span", { className: chunkZWQJSZEY_js.cn(
|
|
1109
|
-
"px-3 py-1.5 text-xs font-medium rounded-full shadow-sm",
|
|
1110
|
-
category === "utility" ? "bg-gradient-to-r from-green-50 to-green-100 text-green-700 border border-green-200" : "bg-gradient-to-r from-purple-50 to-purple-100 text-purple-700 border border-purple-200"
|
|
1111
|
-
) }, category === "utility" ? "\u{1F527} \u5B9E\u7528\u5DE5\u5177" : "\u{1F3AE} \u4F11\u95F2\u5A31\u4E50"), /* @__PURE__ */ React12__default.default.createElement("span", { className: chunkZWQJSZEY_js.cn(
|
|
1112
|
-
"px-3 py-1.5 text-xs font-medium rounded-full shadow-sm border",
|
|
1113
|
-
isCompleted ? "bg-gradient-to-r from-emerald-50 to-emerald-100 text-emerald-700 border border-emerald-200" : "bg-gradient-to-r from-orange-50 to-orange-100 text-orange-700 border border-orange-200"
|
|
1114
|
-
) }, isCompleted ? "\u2705 \u5DF2\u5B8C\u6210" : "\u{1F6A7} \u8FDB\u884C\u4E2D"))), /* @__PURE__ */ React12__default.default.createElement("p", { className: "text-gray-600 mb-4" }, description), updatedAt && /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex items-center gap-1 mb-3 text-xs text-gray-500" }, /* @__PURE__ */ React12__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React12__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" })), /* @__PURE__ */ React12__default.default.createElement("span", null, "\u66F4\u65B0\u4E8E: ", formatDate(updatedAt)), createdAt && createdAt !== updatedAt && /* @__PURE__ */ React12__default.default.createElement("span", { className: "ml-2 text-gray-400" }, "\u521B\u5EFA\u4E8E: ", formatDate(createdAt))), /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, tags.map((tag) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1115
|
-
"span",
|
|
1116
|
-
{
|
|
1117
|
-
key: tag,
|
|
1118
|
-
className: "px-3 py-1.5 text-xs font-medium bg-gradient-to-r from-gray-50 to-gray-100 text-gray-700 rounded-full border border-gray-200 shadow-sm hover:shadow-md transition-shadow duration-200"
|
|
1119
|
-
},
|
|
1120
|
-
"#",
|
|
1121
|
-
tag
|
|
1122
|
-
))))));
|
|
1123
|
-
};
|
|
1124
|
-
var ProjectCarousel = ({ projects, className }) => {
|
|
1125
|
-
const [currentIndex, setCurrentIndex] = React12.useState(0);
|
|
1126
|
-
const nextSlide = () => {
|
|
1127
|
-
setCurrentIndex(
|
|
1128
|
-
(prevIndex) => prevIndex === projects.length - 1 ? 0 : prevIndex + 1
|
|
1129
|
-
);
|
|
1130
|
-
};
|
|
1131
|
-
const prevSlide = () => {
|
|
1132
|
-
setCurrentIndex(
|
|
1133
|
-
(prevIndex) => prevIndex === 0 ? projects.length - 1 : prevIndex - 1
|
|
1134
|
-
);
|
|
1135
|
-
};
|
|
1136
|
-
return /* @__PURE__ */ React12__default.default.createElement("section", { id: "projects", className: chunkZWQJSZEY_js.cn("py-16 bg-gray-50", className) }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React12__default.default.createElement("h2", { className: "text-3xl font-bold text-center mb-12 text-gray-900" }, "\u9879\u76EE\u5C55\u793A"), /* @__PURE__ */ React12__default.default.createElement("div", { className: "relative max-w-4xl mx-auto" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "relative h-[400px] overflow-hidden rounded-lg shadow-xl" }, projects.map((project, index) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1137
|
-
"div",
|
|
1138
|
-
{
|
|
1139
|
-
key: project.id,
|
|
1140
|
-
className: chunkZWQJSZEY_js.cn(
|
|
1141
|
-
"absolute w-full h-full transition-all duration-500 transform",
|
|
1142
|
-
index === currentIndex ? "translate-x-0 opacity-100" : index < currentIndex ? "-translate-x-full opacity-0" : "translate-x-full opacity-0"
|
|
1143
|
-
)
|
|
1144
|
-
},
|
|
1145
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1146
|
-
ExperimentCard,
|
|
1147
|
-
{
|
|
1148
|
-
href: project.link || "#",
|
|
1149
|
-
title: project.title,
|
|
1150
|
-
description: project.description,
|
|
1151
|
-
tags: project.tags,
|
|
1152
|
-
category: "utility"
|
|
1153
|
-
}
|
|
1154
|
-
)
|
|
1155
|
-
))), /* @__PURE__ */ React12__default.default.createElement(
|
|
1156
|
-
"button",
|
|
1157
|
-
{
|
|
1158
|
-
onClick: prevSlide,
|
|
1159
|
-
className: "absolute left-4 top-1/2 -translate-y-1/2 p-2 rounded-full bg-white/80 hover:bg-white shadow-lg focus:outline-none focus:ring-2 focus:ring-blue-500 transition-all z-[10]"
|
|
1160
|
-
},
|
|
1161
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1162
|
-
"svg",
|
|
1163
|
-
{
|
|
1164
|
-
className: "w-6 h-6 text-gray-600",
|
|
1165
|
-
fill: "none",
|
|
1166
|
-
stroke: "currentColor",
|
|
1167
|
-
viewBox: "0 0 24 24"
|
|
1168
|
-
},
|
|
1169
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1170
|
-
"path",
|
|
1171
|
-
{
|
|
1172
|
-
strokeLinecap: "round",
|
|
1173
|
-
strokeLinejoin: "round",
|
|
1174
|
-
strokeWidth: 2,
|
|
1175
|
-
d: "M15 19l-7-7 7-7"
|
|
1176
|
-
}
|
|
1177
|
-
)
|
|
1178
|
-
)
|
|
1179
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1180
|
-
"button",
|
|
1181
|
-
{
|
|
1182
|
-
onClick: nextSlide,
|
|
1183
|
-
className: "absolute right-4 top-1/2 -translate-y-1/2 p-2 rounded-full bg-white/80 hover:bg-white shadow-lg focus:outline-none focus:ring-2 focus:ring-blue-500 transition-all z-[10]"
|
|
1184
|
-
},
|
|
1185
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1186
|
-
"svg",
|
|
1187
|
-
{
|
|
1188
|
-
className: "w-6 h-6 text-gray-600",
|
|
1189
|
-
fill: "none",
|
|
1190
|
-
stroke: "currentColor",
|
|
1191
|
-
viewBox: "0 0 24 24"
|
|
1192
|
-
},
|
|
1193
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1194
|
-
"path",
|
|
1195
|
-
{
|
|
1196
|
-
strokeLinecap: "round",
|
|
1197
|
-
strokeLinejoin: "round",
|
|
1198
|
-
strokeWidth: 2,
|
|
1199
|
-
d: "M9 5l7 7-7 7"
|
|
1200
|
-
}
|
|
1201
|
-
)
|
|
1202
|
-
)
|
|
1203
|
-
), /* @__PURE__ */ React12__default.default.createElement("div", { className: "absolute bottom-4 left-1/2 transform -translate-x-1/2 flex space-x-2 z-[10]" }, projects.map((_, index) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1204
|
-
"button",
|
|
1205
|
-
{
|
|
1206
|
-
key: index,
|
|
1207
|
-
onClick: () => setCurrentIndex(index),
|
|
1208
|
-
className: chunkZWQJSZEY_js.cn(
|
|
1209
|
-
"w-2 h-2 rounded-full transition-all duration-300",
|
|
1210
|
-
index === currentIndex ? "bg-blue-500 w-4" : "bg-gray-300"
|
|
1211
|
-
)
|
|
1212
|
-
}
|
|
1213
|
-
))))));
|
|
1214
|
-
};
|
|
1215
|
-
var NavigationItemComponent = ({
|
|
1216
|
-
item,
|
|
1217
|
-
direction,
|
|
1218
|
-
isActive,
|
|
1219
|
-
onClick
|
|
1220
|
-
}) => {
|
|
1221
|
-
const handleClick = (e) => {
|
|
1222
|
-
e.preventDefault();
|
|
1223
|
-
onClick(item);
|
|
1224
|
-
};
|
|
1225
|
-
const getItemClasses = () => {
|
|
1226
|
-
const baseClasses = `
|
|
1227
|
-
group relative flex items-center gap-3
|
|
1228
|
-
transition-all duration-300 ease-in-out
|
|
1229
|
-
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50
|
|
1230
|
-
rounded-lg
|
|
1231
|
-
`;
|
|
1232
|
-
const directionClasses = direction === "vertical" ? "px-4 py-3 w-full justify-start" : "px-3 py-2 justify-center";
|
|
1233
|
-
const stateClasses = isActive ? "bg-blue-500 text-white shadow-lg" : item.isExternal ? "text-gray-700 hover:bg-purple-50 hover:text-purple-600 border border-purple-200" : "text-gray-700 hover:bg-blue-50 hover:text-blue-600";
|
|
1234
|
-
return baseClasses + " " + directionClasses + " " + stateClasses;
|
|
1235
|
-
};
|
|
1236
|
-
return /* @__PURE__ */ React12__default.default.createElement(
|
|
1237
|
-
"a",
|
|
1238
|
-
{
|
|
1239
|
-
href: item.href,
|
|
1240
|
-
onClick: handleClick,
|
|
1241
|
-
target: item.target,
|
|
1242
|
-
rel: item.isExternal ? "noopener noreferrer" : void 0,
|
|
1243
|
-
className: getItemClasses()
|
|
1244
|
-
},
|
|
1245
|
-
item.icon && /* @__PURE__ */ React12__default.default.createElement("span", { className: "flex-shrink-0" }, item.icon),
|
|
1246
|
-
/* @__PURE__ */ React12__default.default.createElement("span", { className: clsx.clsx("font-medium", direction === "vertical" ? "text-sm" : "text-xs") }, item.label),
|
|
1247
|
-
item.isExternal && /* @__PURE__ */ React12__default.default.createElement(
|
|
1248
|
-
"svg",
|
|
1249
|
-
{
|
|
1250
|
-
className: "w-3 h-3 opacity-60 group-hover:opacity-100 transition-opacity",
|
|
1251
|
-
fill: "none",
|
|
1252
|
-
stroke: "currentColor",
|
|
1253
|
-
viewBox: "0 0 24 24"
|
|
1254
|
-
},
|
|
1255
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1256
|
-
"path",
|
|
1257
|
-
{
|
|
1258
|
-
strokeLinecap: "round",
|
|
1259
|
-
strokeLinejoin: "round",
|
|
1260
|
-
strokeWidth: 2,
|
|
1261
|
-
d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
|
|
1262
|
-
}
|
|
1263
|
-
)
|
|
1264
|
-
),
|
|
1265
|
-
direction === "vertical" && isActive && /* @__PURE__ */ React12__default.default.createElement("div", { className: "absolute left-1 top-1/2 transform -translate-y-1/2 w-1 h-6 bg-white rounded-full" })
|
|
1266
|
-
);
|
|
1267
|
-
};
|
|
1268
|
-
var NavigationItem_default = NavigationItemComponent;
|
|
1269
|
-
var Navigation = ({
|
|
1270
|
-
config,
|
|
1271
|
-
isOpen,
|
|
1272
|
-
activeItemId,
|
|
1273
|
-
onItemClick,
|
|
1274
|
-
className = ""
|
|
1275
|
-
}) => {
|
|
1276
|
-
const { direction, position, items, avatar, logo } = config;
|
|
1277
|
-
const getContainerClasses = () => {
|
|
1278
|
-
const baseClasses = `
|
|
1279
|
-
fixed z-[90]
|
|
1280
|
-
bg-white/95 backdrop-blur-lg
|
|
1281
|
-
border border-gray-200/50
|
|
1282
|
-
shadow-2xl
|
|
1283
|
-
transition-all duration-500 ease-in-out
|
|
1284
|
-
`;
|
|
1285
|
-
if (direction === "vertical") {
|
|
1286
|
-
const verticalClasses = "h-screen w-64 flex flex-col";
|
|
1287
|
-
const positionClasses = position === "left" ? "left-0 top-0 " + (isOpen ? "translate-x-0" : "-translate-x-full") : "right-0 top-0 " + (isOpen ? "translate-x-0" : "translate-x-full");
|
|
1288
|
-
return baseClasses + " " + verticalClasses + " " + positionClasses;
|
|
1289
|
-
} else {
|
|
1290
|
-
const horizontalClasses = "w-full h-16 flex items-center";
|
|
1291
|
-
const positionClasses = position === "top" ? "top-0 left-0 right-0 " + (isOpen ? "translate-y-0" : "-translate-y-full") : "bottom-0 left-0 right-0 " + (isOpen ? "translate-y-0" : "translate-y-full");
|
|
1292
|
-
return baseClasses + " " + horizontalClasses + " " + positionClasses;
|
|
1293
|
-
}
|
|
1294
|
-
};
|
|
1295
|
-
const getContentClasses = () => {
|
|
1296
|
-
if (direction === "vertical") {
|
|
1297
|
-
return "flex flex-col h-full p-4";
|
|
1298
|
-
} else {
|
|
1299
|
-
return "flex items-center justify-between w-full px-6";
|
|
1300
|
-
}
|
|
1301
|
-
};
|
|
1302
|
-
const getItemsListClasses = () => {
|
|
1303
|
-
if (direction === "vertical") {
|
|
1304
|
-
return "flex flex-col gap-2 flex-1 overflow-y-auto mt-4";
|
|
1305
|
-
} else {
|
|
1306
|
-
return "flex items-center gap-4";
|
|
1307
|
-
}
|
|
1308
|
-
};
|
|
1309
|
-
const handleItemClick = (item) => {
|
|
1310
|
-
if (item.isExternal) {
|
|
1311
|
-
window.open(item.href, item.target || "_blank");
|
|
1312
|
-
} else if (item.href.startsWith("#")) {
|
|
1313
|
-
const element = document.getElementById(item.id);
|
|
1314
|
-
if (element) {
|
|
1315
|
-
element.scrollIntoView({ behavior: "smooth" });
|
|
1316
|
-
}
|
|
1317
|
-
} else {
|
|
1318
|
-
window.location.href = item.href;
|
|
1319
|
-
}
|
|
1320
|
-
onItemClick?.(item);
|
|
1321
|
-
};
|
|
1322
|
-
if (!isOpen) return null;
|
|
1323
|
-
return /* @__PURE__ */ React12__default.default.createElement("nav", { className: clsx.clsx(getContainerClasses(), className) }, /* @__PURE__ */ React12__default.default.createElement("div", { className: getContentClasses() }, logo && /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex items-center justify-center mb-4" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1324
|
-
"img",
|
|
1325
|
-
{
|
|
1326
|
-
src: logo.src,
|
|
1327
|
-
alt: logo.alt || "Logo",
|
|
1328
|
-
className: "h-8 w-auto"
|
|
1329
|
-
}
|
|
1330
|
-
)), direction === "vertical" && /* @__PURE__ */ React12__default.default.createElement("div", { className: "h-12 flex-shrink-0" }), /* @__PURE__ */ React12__default.default.createElement("div", { className: getItemsListClasses() }, items.map((item) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1331
|
-
NavigationItem_default,
|
|
1332
|
-
{
|
|
1333
|
-
key: item.id,
|
|
1334
|
-
item,
|
|
1335
|
-
direction,
|
|
1336
|
-
isActive: activeItemId === item.id,
|
|
1337
|
-
onClick: handleItemClick
|
|
1338
|
-
}
|
|
1339
|
-
))), avatar && direction === "vertical" && /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex items-center justify-center mt-auto pt-4" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1340
|
-
"img",
|
|
1341
|
-
{
|
|
1342
|
-
src: avatar.src,
|
|
1343
|
-
alt: avatar.alt || "Avatar",
|
|
1344
|
-
className: "w-10 h-10 rounded-full border-2 border-gray-200"
|
|
1345
|
-
}
|
|
1346
|
-
)), avatar && direction === "horizontal" && /* @__PURE__ */ React12__default.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1347
|
-
"img",
|
|
1348
|
-
{
|
|
1349
|
-
src: avatar.src,
|
|
1350
|
-
alt: avatar.alt || "Avatar",
|
|
1351
|
-
className: "w-8 h-8 rounded-full border-2 border-gray-200"
|
|
1352
|
-
}
|
|
1353
|
-
))));
|
|
1354
|
-
};
|
|
1355
|
-
var Navigation_default = Navigation;
|
|
1356
|
-
var NavigationToggle = ({
|
|
1357
|
-
isOpen,
|
|
1358
|
-
onClick,
|
|
1359
|
-
position
|
|
1360
|
-
}) => {
|
|
1361
|
-
const getPositionClasses = () => {
|
|
1362
|
-
switch (position) {
|
|
1363
|
-
case "top":
|
|
1364
|
-
return "top-4 left-4";
|
|
1365
|
-
case "bottom":
|
|
1366
|
-
return "bottom-4 left-4";
|
|
1367
|
-
case "left":
|
|
1368
|
-
return "top-4 left-4";
|
|
1369
|
-
case "right":
|
|
1370
|
-
return "top-4 right-4";
|
|
1371
|
-
default:
|
|
1372
|
-
return "top-4 left-4";
|
|
1373
|
-
}
|
|
1374
|
-
};
|
|
1375
|
-
return /* @__PURE__ */ React12__default.default.createElement(
|
|
1376
|
-
"button",
|
|
1377
|
-
{
|
|
1378
|
-
onClick,
|
|
1379
|
-
className: clsx.clsx(
|
|
1380
|
-
"fixed",
|
|
1381
|
-
getPositionClasses(),
|
|
1382
|
-
"z-[100] p-3 rounded-xl bg-white/90 backdrop-blur-md shadow-lg hover:shadow-xl border border-gray-200/50 transition-all duration-300 ease-in-out hover:scale-105 active:scale-95 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50"
|
|
1383
|
-
),
|
|
1384
|
-
"aria-label": isOpen ? "\u5173\u95ED\u5BFC\u822A\u680F" : "\u6253\u5F00\u5BFC\u822A\u680F"
|
|
1385
|
-
},
|
|
1386
|
-
/* @__PURE__ */ React12__default.default.createElement("div", { className: "w-5 h-5 flex flex-col justify-center items-center" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1387
|
-
"span",
|
|
1388
|
-
{
|
|
1389
|
-
className: clsx.clsx(
|
|
1390
|
-
"block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out",
|
|
1391
|
-
isOpen ? "rotate-45 translate-y-0.5" : ""
|
|
1392
|
-
)
|
|
1393
|
-
}
|
|
1394
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1395
|
-
"span",
|
|
1396
|
-
{
|
|
1397
|
-
className: clsx.clsx(
|
|
1398
|
-
"block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1",
|
|
1399
|
-
isOpen ? "opacity-0 scale-0" : "opacity-100 scale-100"
|
|
1400
|
-
)
|
|
1401
|
-
}
|
|
1402
|
-
), /* @__PURE__ */ React12__default.default.createElement(
|
|
1403
|
-
"span",
|
|
1404
|
-
{
|
|
1405
|
-
className: clsx.clsx(
|
|
1406
|
-
"block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1",
|
|
1407
|
-
isOpen ? "-rotate-45 -translate-y-2.5" : ""
|
|
1408
|
-
)
|
|
1409
|
-
}
|
|
1410
|
-
))
|
|
1411
|
-
);
|
|
1412
|
-
};
|
|
1413
|
-
var NavigationToggle_default = NavigationToggle;
|
|
1414
|
-
var FloatingMenu = ({
|
|
1415
|
-
trigger,
|
|
1416
|
-
menu,
|
|
1417
|
-
initialPosition = { x: 20, y: 20 },
|
|
1418
|
-
defaultOpen = false,
|
|
1419
|
-
className = "",
|
|
1420
|
-
menuClassName = "",
|
|
1421
|
-
triggerClassName = "",
|
|
1422
|
-
zIndex = 1e3
|
|
1423
|
-
}) => {
|
|
1424
|
-
const [position, setPosition] = React12.useState(initialPosition);
|
|
1425
|
-
const [isMenuOpen, setIsMenuOpen] = React12.useState(defaultOpen);
|
|
1426
|
-
const [menuDirection, setMenuDirection] = React12.useState("right");
|
|
1427
|
-
const [isDragging, setIsDragging] = React12.useState(false);
|
|
1428
|
-
const [dragOffset, setDragOffset] = React12.useState({ x: 0, y: 0 });
|
|
1429
|
-
const containerRef = React12.useRef(null);
|
|
1430
|
-
const [mounted, setMounted] = React12.useState(false);
|
|
1431
|
-
const [hasDragged, setHasDragged] = React12.useState(false);
|
|
1432
|
-
const dragTimerRef = React12.useRef(null);
|
|
1433
|
-
const mouseDownPosRef = React12.useRef(null);
|
|
1434
|
-
React12.useEffect(() => {
|
|
1435
|
-
setMounted(true);
|
|
1436
|
-
return () => setMounted(false);
|
|
1437
|
-
}, []);
|
|
1438
|
-
React12.useEffect(() => {
|
|
1439
|
-
if (!mounted || !containerRef.current) return;
|
|
1440
|
-
const updateMenuDirection = () => {
|
|
1441
|
-
const rect = containerRef.current?.getBoundingClientRect();
|
|
1442
|
-
if (!rect) return;
|
|
1443
|
-
const windowWidth = window.innerWidth;
|
|
1444
|
-
const middlePoint = windowWidth / 2;
|
|
1445
|
-
setMenuDirection(rect.left < middlePoint ? "right" : "left");
|
|
1446
|
-
};
|
|
1447
|
-
updateMenuDirection();
|
|
1448
|
-
window.addEventListener("resize", updateMenuDirection);
|
|
1449
|
-
window.addEventListener("scroll", updateMenuDirection);
|
|
1450
|
-
return () => {
|
|
1451
|
-
window.removeEventListener("resize", updateMenuDirection);
|
|
1452
|
-
window.removeEventListener("scroll", updateMenuDirection);
|
|
1453
|
-
};
|
|
1454
|
-
}, [mounted]);
|
|
1455
|
-
const handleMouseDown = (e) => {
|
|
1456
|
-
if (!containerRef.current) return;
|
|
1457
|
-
e.stopPropagation();
|
|
1458
|
-
mouseDownPosRef.current = { x: e.clientX, y: e.clientY };
|
|
1459
|
-
const rect = containerRef.current.getBoundingClientRect();
|
|
1460
|
-
setDragOffset({
|
|
1461
|
-
x: e.clientX - rect.left,
|
|
1462
|
-
y: e.clientY - rect.top
|
|
1463
|
-
});
|
|
1464
|
-
setHasDragged(false);
|
|
1465
|
-
setIsDragging(true);
|
|
1466
|
-
};
|
|
1467
|
-
React12.useEffect(() => {
|
|
1468
|
-
if (!isDragging) return;
|
|
1469
|
-
const handleMouseMove = (e) => {
|
|
1470
|
-
if (mouseDownPosRef.current) {
|
|
1471
|
-
const dx = Math.abs(e.clientX - mouseDownPosRef.current.x);
|
|
1472
|
-
const dy = Math.abs(e.clientY - mouseDownPosRef.current.y);
|
|
1473
|
-
if (dx > 3 || dy > 3) {
|
|
1474
|
-
setHasDragged(true);
|
|
1475
|
-
}
|
|
1476
|
-
}
|
|
1477
|
-
const newX = e.clientX - dragOffset.x;
|
|
1478
|
-
const newY = e.clientY - dragOffset.y;
|
|
1479
|
-
const windowWidth = window.innerWidth;
|
|
1480
|
-
const windowHeight = window.innerHeight;
|
|
1481
|
-
setPosition({
|
|
1482
|
-
x: Math.min(Math.max(newX, 0), windowWidth - 50),
|
|
1483
|
-
y: Math.min(Math.max(newY, 0), windowHeight - 50)
|
|
1484
|
-
});
|
|
1485
|
-
};
|
|
1486
|
-
const handleMouseUp = () => {
|
|
1487
|
-
setIsDragging(false);
|
|
1488
|
-
mouseDownPosRef.current = null;
|
|
1489
|
-
if (dragTimerRef.current) {
|
|
1490
|
-
window.clearTimeout(dragTimerRef.current);
|
|
1491
|
-
}
|
|
1492
|
-
dragTimerRef.current = window.setTimeout(() => {
|
|
1493
|
-
setHasDragged(false);
|
|
1494
|
-
}, 300);
|
|
1495
|
-
};
|
|
1496
|
-
document.addEventListener("mousemove", handleMouseMove);
|
|
1497
|
-
document.addEventListener("mouseup", handleMouseUp);
|
|
1498
|
-
return () => {
|
|
1499
|
-
document.removeEventListener("mousemove", handleMouseMove);
|
|
1500
|
-
document.removeEventListener("mouseup", handleMouseUp);
|
|
1501
|
-
};
|
|
1502
|
-
}, [isDragging, dragOffset]);
|
|
1503
|
-
React12.useEffect(() => {
|
|
1504
|
-
return () => {
|
|
1505
|
-
if (dragTimerRef.current) {
|
|
1506
|
-
window.clearTimeout(dragTimerRef.current);
|
|
1507
|
-
}
|
|
1508
|
-
};
|
|
1509
|
-
}, []);
|
|
1510
|
-
const toggleMenu = (e) => {
|
|
1511
|
-
e.stopPropagation();
|
|
1512
|
-
if (hasDragged) {
|
|
1513
|
-
return;
|
|
1514
|
-
}
|
|
1515
|
-
setIsMenuOpen(!isMenuOpen);
|
|
1516
|
-
};
|
|
1517
|
-
React12.useEffect(() => {
|
|
1518
|
-
if (!isMenuOpen) return;
|
|
1519
|
-
const handleClickOutside = (e) => {
|
|
1520
|
-
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
1521
|
-
setIsMenuOpen(false);
|
|
1522
|
-
}
|
|
1523
|
-
};
|
|
1524
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
1525
|
-
return () => {
|
|
1526
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
1527
|
-
};
|
|
1528
|
-
}, [isMenuOpen]);
|
|
1529
|
-
React12.useEffect(() => {
|
|
1530
|
-
if (!mounted) return;
|
|
1531
|
-
const checkBoundaries = () => {
|
|
1532
|
-
const windowWidth = window.innerWidth;
|
|
1533
|
-
const windowHeight = window.innerHeight;
|
|
1534
|
-
setPosition((prev) => {
|
|
1535
|
-
const newX = Math.min(Math.max(prev.x, 0), windowWidth - 50);
|
|
1536
|
-
const newY = Math.min(Math.max(prev.y, 0), windowHeight - 50);
|
|
1537
|
-
if (newX !== prev.x || newY !== prev.y) {
|
|
1538
|
-
return { x: newX, y: newY };
|
|
1539
|
-
}
|
|
1540
|
-
return prev;
|
|
1541
|
-
});
|
|
1542
|
-
};
|
|
1543
|
-
window.addEventListener("resize", checkBoundaries);
|
|
1544
|
-
return () => {
|
|
1545
|
-
window.removeEventListener("resize", checkBoundaries);
|
|
1546
|
-
};
|
|
1547
|
-
}, [mounted]);
|
|
1548
|
-
if (!mounted) return null;
|
|
1549
|
-
return reactDom.createPortal(
|
|
1550
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1551
|
-
"div",
|
|
1552
|
-
{
|
|
1553
|
-
ref: containerRef,
|
|
1554
|
-
className: clsx.clsx("fixed select-none box-border", className),
|
|
1555
|
-
style: {
|
|
1556
|
-
left: position.x + "px",
|
|
1557
|
-
top: position.y + "px",
|
|
1558
|
-
zIndex
|
|
1559
|
-
}
|
|
1560
|
-
},
|
|
1561
|
-
/* @__PURE__ */ React12__default.default.createElement(
|
|
1562
|
-
"div",
|
|
1563
|
-
{
|
|
1564
|
-
className: clsx.clsx(
|
|
1565
|
-
"flex items-center justify-center w-12 h-12 md:w-12 md:h-12 bg-white rounded-full shadow-md hover:shadow-lg cursor-grab active:cursor-grabbing transition-all duration-200 hover:scale-105 active:scale-95",
|
|
1566
|
-
triggerClassName
|
|
1567
|
-
),
|
|
1568
|
-
onMouseDown: handleMouseDown,
|
|
1569
|
-
onClick: toggleMenu
|
|
1570
|
-
},
|
|
1571
|
-
trigger
|
|
1572
|
-
),
|
|
1573
|
-
isMenuOpen && /* @__PURE__ */ React12__default.default.createElement(
|
|
1574
|
-
"div",
|
|
1575
|
-
{
|
|
1576
|
-
className: clsx.clsx(
|
|
1577
|
-
"absolute top-0 bg-white rounded-lg shadow-xl p-3 min-w-[200px] md:min-w-[200px] max-w-[300px] z-[1000] transition-all duration-200",
|
|
1578
|
-
isMenuOpen ? "opacity-100 scale-100" : "opacity-0 scale-95",
|
|
1579
|
-
menuDirection === "left" ? "right-[calc(100%+10px)]" : "left-[calc(100%+10px)]",
|
|
1580
|
-
menuClassName
|
|
1581
|
-
),
|
|
1582
|
-
onClick: (e) => e.stopPropagation(),
|
|
1583
|
-
onMouseDown: (e) => e.stopPropagation(),
|
|
1584
|
-
onMouseUp: (e) => e.stopPropagation(),
|
|
1585
|
-
onTouchStart: (e) => e.stopPropagation(),
|
|
1586
|
-
onTouchMove: (e) => e.stopPropagation(),
|
|
1587
|
-
onTouchEnd: (e) => e.stopPropagation(),
|
|
1588
|
-
onPointerDown: (e) => e.stopPropagation(),
|
|
1589
|
-
onPointerUp: (e) => e.stopPropagation()
|
|
1590
|
-
},
|
|
1591
|
-
menu
|
|
1592
|
-
)
|
|
1593
|
-
),
|
|
1594
|
-
document.body
|
|
1595
|
-
);
|
|
1596
|
-
};
|
|
1597
|
-
var FloatingMenu_default = FloatingMenu;
|
|
1598
|
-
var FloatingMenuExample = () => {
|
|
1599
|
-
const [windowWidth, setWindowWidth] = React12.useState(0);
|
|
1600
|
-
React12.useEffect(() => {
|
|
1601
|
-
setWindowWidth(window.innerWidth);
|
|
1602
|
-
const handleResize = () => setWindowWidth(window.innerWidth);
|
|
1603
|
-
window.addEventListener("resize", handleResize);
|
|
1604
|
-
return () => window.removeEventListener("resize", handleResize);
|
|
1605
|
-
}, []);
|
|
1606
|
-
const menuItems = [
|
|
1607
|
-
{ id: 1, label: "\u9996\u9875", icon: "\u{1F3E0}" },
|
|
1608
|
-
{ id: 2, label: "\u8BBE\u7F6E", icon: "\u2699\uFE0F" },
|
|
1609
|
-
{ id: 3, label: "\u6D88\u606F", icon: "\u{1F4E9}" },
|
|
1610
|
-
{ id: 4, label: "\u5E2E\u52A9", icon: "\u2753" },
|
|
1611
|
-
{ id: 5, label: "\u9000\u51FA", icon: "\u{1F6AA}" }
|
|
1612
|
-
];
|
|
1613
|
-
const handleMenuItemClick = (id) => {
|
|
1614
|
-
console.log("\u70B9\u51FB\u4E86\u83DC\u5355\u9879: " + id);
|
|
1615
|
-
};
|
|
1616
|
-
return /* @__PURE__ */ React12__default.default.createElement("div", { className: "w-full h-screen bg-gray-100 relative p-8" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "max-w-2xl mx-auto bg-white rounded-2xl shadow-sm p-8 mt-12" }, /* @__PURE__ */ React12__default.default.createElement("h1", { className: "text-3xl font-bold mb-4 text-gray-900" }, "\u60AC\u6D6E\u83DC\u5355\u793A\u4F8B"), /* @__PURE__ */ React12__default.default.createElement("p", { className: "text-gray-600 leading-relaxed mb-6" }, "\u8FD9\u662F\u4E00\u4E2A\u53EF\u62D6\u62FD\u7684\u60AC\u6D6E\u83DC\u5355\u7EC4\u4EF6\u793A\u4F8B\u3002\u4F60\u53EF\u4EE5\u5C1D\u8BD5\u62D6\u52A8\u4E0B\u65B9\u7684 ", /* @__PURE__ */ React12__default.default.createElement("span", { className: "font-bold text-blue-600" }, "\u84DD\u8272\u6309\u94AE"), " \u5230\u5904\u79FB\u52A8\u3002"), /* @__PURE__ */ React12__default.default.createElement("div", { className: "bg-blue-50 border-l-4 border-blue-500 p-4 mb-6" }, /* @__PURE__ */ React12__default.default.createElement("p", { className: "text-sm text-blue-700" }, /* @__PURE__ */ React12__default.default.createElement("strong", null, "\u667A\u80FD\u5B9A\u4F4D\uFF1A"), " \u83DC\u5355\u4F1A\u6839\u636E\u6309\u94AE\u5728\u5C4F\u5E55\u4E0A\u7684\u4F4D\u7F6E\u81EA\u52A8\u8C03\u6574\u5F39\u51FA\u65B9\u5411\uFF08\u5411\u5DE6\u6216\u5411\u53F3\uFF09\u3002"))), /* @__PURE__ */ React12__default.default.createElement(
|
|
1617
|
-
FloatingMenu_default,
|
|
1618
|
-
{
|
|
1619
|
-
trigger: /* @__PURE__ */ React12__default.default.createElement("div", { className: "w-12 h-12 bg-blue-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer" }, /* @__PURE__ */ React12__default.default.createElement("span", { className: "text-xl" }, "\u2795")),
|
|
1620
|
-
menu: /* @__PURE__ */ React12__default.default.createElement("div", { className: "w-48 bg-white rounded-xl shadow-xl border border-gray-100 overflow-hidden" }, /* @__PURE__ */ React12__default.default.createElement("div", { className: "px-4 py-3 border-b border-gray-100" }, /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-sm font-bold text-gray-900" }, "\u5FEB\u6377\u83DC\u5355")), /* @__PURE__ */ React12__default.default.createElement("ul", { className: "py-1" }, menuItems.map((item) => /* @__PURE__ */ React12__default.default.createElement(
|
|
1621
|
-
"li",
|
|
1622
|
-
{
|
|
1623
|
-
key: item.id,
|
|
1624
|
-
className: "flex items-center gap-3 px-4 py-2.5 hover:bg-blue-50 text-gray-700 hover:text-blue-600 cursor-pointer transition-colors text-sm",
|
|
1625
|
-
onClick: () => handleMenuItemClick(item.id)
|
|
1626
|
-
},
|
|
1627
|
-
/* @__PURE__ */ React12__default.default.createElement("span", { className: "text-lg" }, item.icon),
|
|
1628
|
-
/* @__PURE__ */ React12__default.default.createElement("span", { className: "font-medium" }, item.label)
|
|
1629
|
-
)))),
|
|
1630
|
-
initialPosition: { x: 100, y: 100 }
|
|
1631
|
-
}
|
|
1632
|
-
), windowWidth > 0 && /* @__PURE__ */ React12__default.default.createElement(
|
|
1633
|
-
FloatingMenu_default,
|
|
1634
|
-
{
|
|
1635
|
-
trigger: /* @__PURE__ */ React12__default.default.createElement("div", { className: "w-12 h-12 bg-purple-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer" }, /* @__PURE__ */ React12__default.default.createElement("span", { className: "text-xl" }, "\u{1F50D}")),
|
|
1636
|
-
menu: /* @__PURE__ */ React12__default.default.createElement("div", { className: "w-64 bg-white rounded-xl shadow-xl border border-gray-100 p-4" }, /* @__PURE__ */ React12__default.default.createElement("h3", { className: "text-sm font-bold text-gray-900 mb-3" }, "\u5FEB\u901F\u641C\u7D22"), /* @__PURE__ */ React12__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React12__default.default.createElement(
|
|
1637
|
-
"input",
|
|
1638
|
-
{
|
|
1639
|
-
type: "text",
|
|
1640
|
-
placeholder: "\u8F93\u5165\u5173\u952E\u5B57...",
|
|
1641
|
-
className: "w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent outline-none"
|
|
1642
|
-
}
|
|
1643
|
-
), /* @__PURE__ */ React12__default.default.createElement("button", { className: "w-full bg-purple-600 text-white py-2 rounded-lg text-sm font-medium hover:bg-purple-700 transition-colors" }, "\u641C\u7D22"))),
|
|
1644
|
-
initialPosition: { x: windowWidth - 100, y: 100 }
|
|
1645
|
-
}
|
|
1646
|
-
));
|
|
1647
|
-
};
|
|
1648
|
-
var FloatingMenuExample_default = FloatingMenuExample;
|
|
1649
960
|
|
|
1650
961
|
// src/testField/utils/index.ts
|
|
1651
962
|
function filterExperiments(experiments, config) {
|
|
@@ -1830,8 +1141,8 @@ var CategoryFilter = ({
|
|
|
1830
1141
|
showCount: true
|
|
1831
1142
|
}
|
|
1832
1143
|
];
|
|
1833
|
-
return /* @__PURE__ */
|
|
1834
|
-
|
|
1144
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
1145
|
+
chunk4XXIBWCO_js.FilterButtonGroup,
|
|
1835
1146
|
{
|
|
1836
1147
|
label: "\u9879\u76EE\u7C7B\u522B",
|
|
1837
1148
|
value: viewMode,
|
|
@@ -1882,8 +1193,8 @@ var CompletionFilterComponent = ({
|
|
|
1882
1193
|
showCount: true
|
|
1883
1194
|
}
|
|
1884
1195
|
];
|
|
1885
|
-
return /* @__PURE__ */
|
|
1886
|
-
|
|
1196
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
1197
|
+
chunk4XXIBWCO_js.FilterButtonGroup,
|
|
1887
1198
|
{
|
|
1888
1199
|
label: "\u5B8C\u6210\u72B6\u6001",
|
|
1889
1200
|
value: completionFilter,
|
|
@@ -1894,11 +1205,11 @@ var CompletionFilterComponent = ({
|
|
|
1894
1205
|
);
|
|
1895
1206
|
};
|
|
1896
1207
|
var PageHeader = ({ counts, className }) => {
|
|
1897
|
-
return /* @__PURE__ */
|
|
1208
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React3__default.default.createElement(chunk4XXIBWCO_js.BackButton, null)), /* @__PURE__ */ React3__default.default.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React3__default.default.createElement("h1", { className: "text-3xl font-bold text-gray-900" }, "\u5B9E\u9A8C\u7530"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-2 text-sm text-gray-600" }, "\u5728\u8FD9\u91CC\uFF0C\u4F60\u53EF\u4EE5\u5C1D\u8BD5\u5404\u79CD\u5B9E\u9A8C\u6027\u7684\u529F\u80FD\u548C\u9879\u76EE"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-4 flex flex-wrap gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React3__default.default.createElement("span", null, "\u603B\u8BA1: ", counts.all, " \u4E2A\u9879\u76EE"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u5B9E\u7528\u5DE5\u5177: ", counts.utility, " \u4E2A"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u4F11\u95F2\u5A31\u4E50: ", counts.leisure, " \u4E2A"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u5DF2\u5B8C\u6210: ", counts.completed, " \u4E2A"))));
|
|
1898
1209
|
};
|
|
1899
1210
|
function defaultExperimentRenderer(item) {
|
|
1900
|
-
return /* @__PURE__ */
|
|
1901
|
-
ExperimentCard,
|
|
1211
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
1212
|
+
chunk35CXIK5Y_js.ExperimentCard,
|
|
1902
1213
|
{
|
|
1903
1214
|
href: item.path,
|
|
1904
1215
|
title: item.title,
|
|
@@ -1919,8 +1230,8 @@ function ExperimentGrid({
|
|
|
1919
1230
|
className = ""
|
|
1920
1231
|
}) {
|
|
1921
1232
|
const itemRenderer = renderItem || ((item) => defaultExperimentRenderer(item));
|
|
1922
|
-
return /* @__PURE__ */
|
|
1923
|
-
|
|
1233
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
1234
|
+
chunk4XXIBWCO_js.Grid,
|
|
1924
1235
|
{
|
|
1925
1236
|
items,
|
|
1926
1237
|
renderItem: itemRenderer,
|
|
@@ -1934,10 +1245,10 @@ function ExperimentItemGrid({
|
|
|
1934
1245
|
experiments,
|
|
1935
1246
|
...props
|
|
1936
1247
|
}) {
|
|
1937
|
-
return /* @__PURE__ */
|
|
1248
|
+
return /* @__PURE__ */ React3__default.default.createElement(ExperimentGrid, { items: experiments, ...props });
|
|
1938
1249
|
}
|
|
1939
1250
|
var EmptyState = ({ searchQuery, onClearSearch, className }) => {
|
|
1940
|
-
return /* @__PURE__ */
|
|
1251
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("text-center py-12", className) }, /* @__PURE__ */ React3__default.default.createElement(
|
|
1941
1252
|
"svg",
|
|
1942
1253
|
{
|
|
1943
1254
|
className: "mx-auto h-12 w-12 text-gray-400",
|
|
@@ -1945,7 +1256,7 @@ var EmptyState = ({ searchQuery, onClearSearch, className }) => {
|
|
|
1945
1256
|
stroke: "currentColor",
|
|
1946
1257
|
viewBox: "0 0 24 24"
|
|
1947
1258
|
},
|
|
1948
|
-
/* @__PURE__ */
|
|
1259
|
+
/* @__PURE__ */ React3__default.default.createElement(
|
|
1949
1260
|
"path",
|
|
1950
1261
|
{
|
|
1951
1262
|
strokeLinecap: "round",
|
|
@@ -1954,7 +1265,7 @@ var EmptyState = ({ searchQuery, onClearSearch, className }) => {
|
|
|
1954
1265
|
d: "M9.172 16.172a4 4 0 015.656 0M9 12h6m-6-4h6m2 5.291A7.962 7.962 0 0112 15c-2.34 0-4.47.904-6.06 2.384"
|
|
1955
1266
|
}
|
|
1956
1267
|
)
|
|
1957
|
-
), /* @__PURE__ */
|
|
1268
|
+
), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "mt-2 text-sm font-medium text-gray-900" }, "\u6CA1\u6709\u627E\u5230\u5339\u914D\u7684\u5B9E\u9A8C\u9879\u76EE"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-1 text-sm text-gray-500" }, searchQuery ? "\u5C1D\u8BD5\u8C03\u6574\u641C\u7D22\u5173\u952E\u8BCD\u6216\u7B5B\u9009\u6761\u4EF6" : "\u5F53\u524D\u5206\u7C7B\u4E0B\u6682\u65E0\u5B9E\u9A8C\u9879\u76EE"), searchQuery && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-4" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
1958
1269
|
"button",
|
|
1959
1270
|
{
|
|
1960
1271
|
onClick: onClearSearch,
|
|
@@ -1976,7 +1287,7 @@ var SortControl = ({
|
|
|
1976
1287
|
{ value: "category", label: "\u7C7B\u522B" },
|
|
1977
1288
|
{ value: "completion", label: "\u5B8C\u6210\u72B6\u6001" }
|
|
1978
1289
|
];
|
|
1979
|
-
return /* @__PURE__ */
|
|
1290
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col sm:flex-row items-start sm:items-center gap-2 sm:gap-4 p-4 bg-white rounded-lg shadow-sm border border-gray-100" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm font-medium text-gray-700" }, "\u6392\u5E8F\u65B9\u5F0F\uFF1A"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, sortOptions.map((option) => /* @__PURE__ */ React3__default.default.createElement(
|
|
1980
1291
|
"button",
|
|
1981
1292
|
{
|
|
1982
1293
|
key: option.value,
|
|
@@ -1984,30 +1295,30 @@ var SortControl = ({
|
|
|
1984
1295
|
onClick: () => onSortByChange(option.value)
|
|
1985
1296
|
},
|
|
1986
1297
|
option.label
|
|
1987
|
-
))), /* @__PURE__ */
|
|
1298
|
+
))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "ml-auto flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
1988
1299
|
"button",
|
|
1989
1300
|
{
|
|
1990
1301
|
className: "flex items-center gap-1 px-3 py-1.5 text-sm rounded-full bg-gray-100 hover:bg-gray-200",
|
|
1991
1302
|
onClick: () => onSortOrderChange(sortOrder === "asc" ? "desc" : "asc")
|
|
1992
1303
|
},
|
|
1993
|
-
sortOrder === "asc" ? /* @__PURE__ */
|
|
1304
|
+
sortOrder === "asc" ? /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12" })), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u5347\u5E8F")) : /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4" })), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u964D\u5E8F"))
|
|
1994
1305
|
)));
|
|
1995
1306
|
};
|
|
1996
1307
|
var SortModeToggle = ({ sortMode, onSortModeChange }) => {
|
|
1997
|
-
return /* @__PURE__ */
|
|
1308
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-3 bg-white p-4 rounded-lg shadow-sm border border-gray-100" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm font-medium text-gray-700" }, "\u6392\u5E8F\u6A21\u5F0F\uFF1A"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex w-full sm:w-auto p-1 bg-gray-100 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
1998
1309
|
"button",
|
|
1999
1310
|
{
|
|
2000
1311
|
className: clsx.clsx("flex-1 sm:flex-initial px-3 py-1.5 text-sm rounded-md transition-colors", sortMode === "auto" ? "bg-white text-blue-700 font-medium shadow-sm" : "text-gray-600 hover:bg-gray-200"),
|
|
2001
1312
|
onClick: () => onSortModeChange("auto")
|
|
2002
1313
|
},
|
|
2003
|
-
/* @__PURE__ */
|
|
2004
|
-
), /* @__PURE__ */
|
|
1314
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-center sm:justify-start space-x-1" }, /* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4" })), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u81EA\u52A8\u6392\u5E8F"))
|
|
1315
|
+
), /* @__PURE__ */ React3__default.default.createElement(
|
|
2005
1316
|
"button",
|
|
2006
1317
|
{
|
|
2007
1318
|
className: clsx.clsx("flex-1 sm:flex-initial px-3 py-1.5 text-sm rounded-md transition-colors", sortMode === "manual" ? "bg-white text-blue-700 font-medium shadow-sm" : "text-gray-600 hover:bg-gray-200"),
|
|
2008
1319
|
onClick: () => onSortModeChange("manual")
|
|
2009
1320
|
},
|
|
2010
|
-
/* @__PURE__ */
|
|
1321
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-center sm:justify-start space-x-1" }, /* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 11.5V14m0-2.5v-6a1.5 1.5 0 113 0m-3 6a1.5 1.5 0 00-3 0v2a7.5 7.5 0 0015 0v-5a1.5 1.5 0 013 0m-6-3V11m0-5.5v-1a1.5 1.5 0 013 0v1m0 0V11m0-5.5a1.5 1.5 0 013 0v3m0 0V11" })), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u624B\u52A8\u6392\u5E8F"))
|
|
2011
1322
|
)));
|
|
2012
1323
|
};
|
|
2013
1324
|
var SortableExperimentItem = ({
|
|
@@ -2032,14 +1343,14 @@ var SortableExperimentItem = ({
|
|
|
2032
1343
|
opacity: isDragging ? 0.8 : 1,
|
|
2033
1344
|
position: "relative"
|
|
2034
1345
|
};
|
|
2035
|
-
return /* @__PURE__ */
|
|
1346
|
+
return /* @__PURE__ */ React3__default.default.createElement(
|
|
2036
1347
|
"div",
|
|
2037
1348
|
{
|
|
2038
1349
|
ref: setNodeRef,
|
|
2039
1350
|
style,
|
|
2040
1351
|
className: "relative group"
|
|
2041
1352
|
},
|
|
2042
|
-
/* @__PURE__ */
|
|
1353
|
+
/* @__PURE__ */ React3__default.default.createElement(
|
|
2043
1354
|
"div",
|
|
2044
1355
|
{
|
|
2045
1356
|
...attributes,
|
|
@@ -2048,10 +1359,10 @@ var SortableExperimentItem = ({
|
|
|
2048
1359
|
onClick: (e) => e.stopPropagation(),
|
|
2049
1360
|
"aria-label": "\u62D6\u52A8\u6392\u5E8F"
|
|
2050
1361
|
},
|
|
2051
|
-
/* @__PURE__ */
|
|
2052
|
-
/* @__PURE__ */
|
|
1362
|
+
/* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5 text-gray-500", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 8h16M4 16h16" })),
|
|
1363
|
+
/* @__PURE__ */ React3__default.default.createElement("span", { className: "absolute top-full mt-1 left-1/2 transform -translate-x-1/2 text-xs bg-gray-800 text-white px-2 py-1 rounded whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity" }, "\u62D6\u52A8\u6392\u5E8F")
|
|
2053
1364
|
),
|
|
2054
|
-
/* @__PURE__ */
|
|
1365
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute right-2 top-2 flex flex-col gap-2 sm:hidden z-[10]" }, /* @__PURE__ */ React3__default.default.createElement(
|
|
2055
1366
|
"button",
|
|
2056
1367
|
{
|
|
2057
1368
|
onClick: (e) => {
|
|
@@ -2062,8 +1373,8 @@ var SortableExperimentItem = ({
|
|
|
2062
1373
|
className: clsx.clsx("w-8 h-8 rounded-full flex items-center justify-center shadow-md", isFirst ? "bg-gray-200 cursor-not-allowed" : "bg-white/80 hover:bg-white active:bg-gray-100"),
|
|
2063
1374
|
"aria-label": "\u5411\u4E0A\u79FB\u52A8"
|
|
2064
1375
|
},
|
|
2065
|
-
/* @__PURE__ */
|
|
2066
|
-
), /* @__PURE__ */
|
|
1376
|
+
/* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: clsx.clsx("h-5 w-5", isFirst ? "text-gray-400" : "text-gray-500"), fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 15l7-7 7 7" }))
|
|
1377
|
+
), /* @__PURE__ */ React3__default.default.createElement(
|
|
2067
1378
|
"button",
|
|
2068
1379
|
{
|
|
2069
1380
|
onClick: (e) => {
|
|
@@ -2074,10 +1385,10 @@ var SortableExperimentItem = ({
|
|
|
2074
1385
|
className: clsx.clsx("w-8 h-8 rounded-full flex items-center justify-center shadow-md", isLast ? "bg-gray-200 cursor-not-allowed" : "bg-white/80 hover:bg-white active:bg-gray-100"),
|
|
2075
1386
|
"aria-label": "\u5411\u4E0B\u79FB\u52A8"
|
|
2076
1387
|
},
|
|
2077
|
-
/* @__PURE__ */
|
|
1388
|
+
/* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: clsx.clsx("h-5 w-5", isLast ? "text-gray-400" : "text-gray-500"), fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))
|
|
2078
1389
|
)),
|
|
2079
|
-
/* @__PURE__ */
|
|
2080
|
-
ExperimentCard,
|
|
1390
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("transition-all", isDragging ? "scale-105 shadow-xl" : "") }, /* @__PURE__ */ React3__default.default.createElement(
|
|
1391
|
+
chunk35CXIK5Y_js.ExperimentCard,
|
|
2081
1392
|
{
|
|
2082
1393
|
href: item.path,
|
|
2083
1394
|
title: item.title,
|
|
@@ -2098,8 +1409,8 @@ var DraggableExperimentGrid = ({
|
|
|
2098
1409
|
onOrderChange,
|
|
2099
1410
|
className = ""
|
|
2100
1411
|
}) => {
|
|
2101
|
-
const [items, setItems] =
|
|
2102
|
-
const [isDragging, setIsDragging] =
|
|
1412
|
+
const [items, setItems] = React3.useState(initialItems);
|
|
1413
|
+
const [isDragging, setIsDragging] = React3.useState(false);
|
|
2103
1414
|
const sensors = core.useSensors(
|
|
2104
1415
|
core.useSensor(core.PointerSensor, {
|
|
2105
1416
|
activationConstraint: {
|
|
@@ -2155,10 +1466,10 @@ var DraggableExperimentGrid = ({
|
|
|
2155
1466
|
});
|
|
2156
1467
|
}
|
|
2157
1468
|
};
|
|
2158
|
-
|
|
1469
|
+
React3__default.default.useEffect(() => {
|
|
2159
1470
|
setItems(initialItems);
|
|
2160
1471
|
}, [initialItems]);
|
|
2161
|
-
return /* @__PURE__ */
|
|
1472
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("relative", className) }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "mb-4 px-4 py-3 bg-blue-50 text-blue-700 rounded-lg border border-blue-200 text-sm" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start sm:items-center" }, /* @__PURE__ */ React3__default.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5 mr-2 flex-shrink-0 mt-0.5 sm:mt-0", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React3__default.default.createElement("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "mb-1" }, "\u62D6\u62FD\u5361\u7247\u53EF\u4EE5\u81EA\u5B9A\u4E49\u6392\u5E8F\u3002\u70B9\u51FB\u5361\u7247\u53EF\u4EE5\u8BBF\u95EE\u5BF9\u5E94\u7684\u5B9E\u9A8C\u9879\u76EE\u3002"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-xs text-blue-600 sm:hidden" }, "\u70B9\u51FB\u5361\u7247\u53F3\u4E0A\u89D2\u7684\u4E0A\u4E0B\u7BAD\u5934\u6309\u94AE\u8C03\u6574\u987A\u5E8F"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-xs text-blue-600 hidden sm:block" }, "\u957F\u6309\u5361\u7247\u53F3\u4E0A\u89D2\u7684\u62D6\u52A8\u56FE\u6807\u8FDB\u884C\u6392\u5E8F")))), /* @__PURE__ */ React3__default.default.createElement(
|
|
2162
1473
|
core.DndContext,
|
|
2163
1474
|
{
|
|
2164
1475
|
sensors,
|
|
@@ -2166,13 +1477,13 @@ var DraggableExperimentGrid = ({
|
|
|
2166
1477
|
onDragStart: handleDragStart,
|
|
2167
1478
|
onDragEnd: handleDragEnd
|
|
2168
1479
|
},
|
|
2169
|
-
/* @__PURE__ */
|
|
1480
|
+
/* @__PURE__ */ React3__default.default.createElement(
|
|
2170
1481
|
sortable.SortableContext,
|
|
2171
1482
|
{
|
|
2172
1483
|
items: items.map((item) => item.id),
|
|
2173
1484
|
strategy: sortable.rectSortingStrategy
|
|
2174
1485
|
},
|
|
2175
|
-
/* @__PURE__ */
|
|
1486
|
+
/* @__PURE__ */ React3__default.default.createElement("div", { className: clsx.clsx("grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 md:gap-6", isDragging ? "cursor-grabbing" : "") }, items.map((item, index) => /* @__PURE__ */ React3__default.default.createElement(
|
|
2176
1487
|
SortableExperimentItem,
|
|
2177
1488
|
{
|
|
2178
1489
|
key: item.id,
|
|
@@ -2199,7 +1510,7 @@ var PermissionGuard = ({
|
|
|
2199
1510
|
return true;
|
|
2200
1511
|
};
|
|
2201
1512
|
if (!hasPermission()) {
|
|
2202
|
-
return fallback || /* @__PURE__ */
|
|
1513
|
+
return fallback || /* @__PURE__ */ React3__default.default.createElement("div", { className: "min-h-screen bg-gray-50 flex items-center justify-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "max-w-md w-full bg-white rounded-lg shadow-lg p-8 text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-center mb-4" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.Shield, { className: "w-12 h-12 text-red-500" })), /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900 mb-2" }, "\u9700\u8981\u767B\u5F55"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 mb-4" }, "\u8BF7\u5148\u767B\u5F55\u4EE5\u8BBF\u95EE\u5B9E\u9A8C\u7530\u529F\u80FD\u3002"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-center text-sm text-gray-500 mb-4" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.AlertTriangle, { className: "w-4 h-4 mr-1" }), "\u5B9E\u9A8C\u7530\u5BF9\u6240\u6709\u6CE8\u518C\u7528\u6237\u5F00\u653E"), /* @__PURE__ */ React3__default.default.createElement(
|
|
2203
1514
|
"button",
|
|
2204
1515
|
{
|
|
2205
1516
|
onClick: () => window.history.back(),
|
|
@@ -2208,7 +1519,7 @@ var PermissionGuard = ({
|
|
|
2208
1519
|
"\u8FD4\u56DE\u4E0A\u4E00\u9875"
|
|
2209
1520
|
)));
|
|
2210
1521
|
}
|
|
2211
|
-
return /* @__PURE__ */
|
|
1522
|
+
return /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, children);
|
|
2212
1523
|
};
|
|
2213
1524
|
var UserInfoBar = ({ apiClient }) => {
|
|
2214
1525
|
const { user, logout, isLoggedIn } = chunk5QMBZP7S_js.useAuth(apiClient);
|
|
@@ -2223,524 +1534,564 @@ var UserInfoBar = ({ apiClient }) => {
|
|
|
2223
1534
|
if (!isLoggedIn || !user) {
|
|
2224
1535
|
return null;
|
|
2225
1536
|
}
|
|
2226
|
-
return /* @__PURE__ */
|
|
1537
|
+
return /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white border-b border-gray-200 px-4 py-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.User, { className: "w-5 h-5 text-gray-600" }), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm font-medium text-gray-900" }, user.name || user.email || "\u7528\u6237"), user.role && /* @__PURE__ */ React3__default.default.createElement("span", { className: "inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800" }, user.role))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-1 text-sm text-gray-500" }, /* @__PURE__ */ React3__default.default.createElement(lucideReact.FlaskConical, { className: "w-4 h-4" }), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u5B9E\u9A8C\u7530")), /* @__PURE__ */ React3__default.default.createElement(
|
|
2227
1538
|
"button",
|
|
2228
1539
|
{
|
|
2229
1540
|
onClick: handleLogout,
|
|
2230
1541
|
className: "inline-flex items-center px-3 py-1.5 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500"
|
|
2231
1542
|
},
|
|
2232
|
-
/* @__PURE__ */
|
|
1543
|
+
/* @__PURE__ */ React3__default.default.createElement(lucideReact.LogOut, { className: "w-4 h-4 mr-1" }),
|
|
2233
1544
|
"\u767B\u51FA"
|
|
2234
1545
|
))));
|
|
2235
1546
|
};
|
|
2236
1547
|
|
|
1548
|
+
Object.defineProperty(exports, "FloatingMenu", {
|
|
1549
|
+
enumerable: true,
|
|
1550
|
+
get: function () { return chunk3M6T5KVD_js.FloatingMenu_default; }
|
|
1551
|
+
});
|
|
1552
|
+
Object.defineProperty(exports, "FloatingMenuExample", {
|
|
1553
|
+
enumerable: true,
|
|
1554
|
+
get: function () { return chunk3M6T5KVD_js.FloatingMenuExample_default; }
|
|
1555
|
+
});
|
|
1556
|
+
Object.defineProperty(exports, "Navigation", {
|
|
1557
|
+
enumerable: true,
|
|
1558
|
+
get: function () { return chunk3M6T5KVD_js.Navigation_default; }
|
|
1559
|
+
});
|
|
1560
|
+
Object.defineProperty(exports, "NavigationItem", {
|
|
1561
|
+
enumerable: true,
|
|
1562
|
+
get: function () { return chunk3M6T5KVD_js.NavigationItem_default; }
|
|
1563
|
+
});
|
|
1564
|
+
Object.defineProperty(exports, "NavigationToggle", {
|
|
1565
|
+
enumerable: true,
|
|
1566
|
+
get: function () { return chunk3M6T5KVD_js.NavigationToggle_default; }
|
|
1567
|
+
});
|
|
1568
|
+
Object.defineProperty(exports, "About", {
|
|
1569
|
+
enumerable: true,
|
|
1570
|
+
get: function () { return chunk35CXIK5Y_js.About_default; }
|
|
1571
|
+
});
|
|
1572
|
+
Object.defineProperty(exports, "Contact", {
|
|
1573
|
+
enumerable: true,
|
|
1574
|
+
get: function () { return chunk35CXIK5Y_js.Contact_default; }
|
|
1575
|
+
});
|
|
1576
|
+
Object.defineProperty(exports, "ExperimentCard", {
|
|
1577
|
+
enumerable: true,
|
|
1578
|
+
get: function () { return chunk35CXIK5Y_js.ExperimentCard; }
|
|
1579
|
+
});
|
|
1580
|
+
Object.defineProperty(exports, "Home", {
|
|
1581
|
+
enumerable: true,
|
|
1582
|
+
get: function () { return chunk35CXIK5Y_js.Home_default; }
|
|
1583
|
+
});
|
|
1584
|
+
Object.defineProperty(exports, "ProjectCarousel", {
|
|
1585
|
+
enumerable: true,
|
|
1586
|
+
get: function () { return chunk35CXIK5Y_js.ProjectCarousel; }
|
|
1587
|
+
});
|
|
2237
1588
|
Object.defineProperty(exports, "DANMAKU_MAX_LENGTH", {
|
|
2238
1589
|
enumerable: true,
|
|
2239
|
-
get: function () { return
|
|
1590
|
+
get: function () { return chunkJOSNXSA6_js.DANMAKU_MAX_LENGTH; }
|
|
2240
1591
|
});
|
|
2241
1592
|
Object.defineProperty(exports, "DANMAKU_TRACK_COUNT", {
|
|
2242
1593
|
enumerable: true,
|
|
2243
|
-
get: function () { return
|
|
1594
|
+
get: function () { return chunkJOSNXSA6_js.DANMAKU_TRACK_COUNT; }
|
|
2244
1595
|
});
|
|
2245
1596
|
Object.defineProperty(exports, "DEFAULT_MAX_ACTIVE_FIREWORKS", {
|
|
2246
1597
|
enumerable: true,
|
|
2247
|
-
get: function () { return
|
|
1598
|
+
get: function () { return chunkJOSNXSA6_js.DEFAULT_MAX_ACTIVE_FIREWORKS; }
|
|
2248
1599
|
});
|
|
2249
1600
|
Object.defineProperty(exports, "DEFAULT_MAX_PARTICLES", {
|
|
2250
1601
|
enumerable: true,
|
|
2251
|
-
get: function () { return
|
|
1602
|
+
get: function () { return chunkJOSNXSA6_js.DEFAULT_MAX_PARTICLES; }
|
|
2252
1603
|
});
|
|
2253
1604
|
Object.defineProperty(exports, "DanmakuPanel", {
|
|
2254
1605
|
enumerable: true,
|
|
2255
|
-
get: function () { return
|
|
1606
|
+
get: function () { return chunkJOSNXSA6_js.DanmakuPanel; }
|
|
2256
1607
|
});
|
|
2257
1608
|
Object.defineProperty(exports, "FIREWORK_KIND_LABELS", {
|
|
2258
1609
|
enumerable: true,
|
|
2259
|
-
get: function () { return
|
|
1610
|
+
get: function () { return chunkJOSNXSA6_js.FIREWORK_KIND_LABELS; }
|
|
2260
1611
|
});
|
|
2261
1612
|
Object.defineProperty(exports, "FireworksCanvas", {
|
|
2262
1613
|
enumerable: true,
|
|
2263
|
-
get: function () { return
|
|
1614
|
+
get: function () { return chunkJOSNXSA6_js.FireworksCanvas; }
|
|
2264
1615
|
});
|
|
2265
1616
|
Object.defineProperty(exports, "FireworksControlPanel", {
|
|
2266
1617
|
enumerable: true,
|
|
2267
|
-
get: function () { return
|
|
1618
|
+
get: function () { return chunkJOSNXSA6_js.FireworksControlPanel; }
|
|
2268
1619
|
});
|
|
2269
1620
|
Object.defineProperty(exports, "MIKU_PALETTE", {
|
|
2270
1621
|
enumerable: true,
|
|
2271
|
-
get: function () { return
|
|
1622
|
+
get: function () { return chunkJOSNXSA6_js.MIKU_PALETTE; }
|
|
2272
1623
|
});
|
|
2273
1624
|
Object.defineProperty(exports, "MikuFireworks3D", {
|
|
2274
1625
|
enumerable: true,
|
|
2275
|
-
get: function () { return
|
|
1626
|
+
get: function () { return chunkJOSNXSA6_js.MikuFireworks3D; }
|
|
2276
1627
|
});
|
|
2277
1628
|
Object.defineProperty(exports, "NORMAL_PALETTE", {
|
|
2278
1629
|
enumerable: true,
|
|
2279
|
-
get: function () { return
|
|
1630
|
+
get: function () { return chunkJOSNXSA6_js.NORMAL_PALETTE; }
|
|
2280
1631
|
});
|
|
2281
1632
|
Object.defineProperty(exports, "WebSocketTransport", {
|
|
2282
1633
|
enumerable: true,
|
|
2283
|
-
get: function () { return
|
|
1634
|
+
get: function () { return chunkJOSNXSA6_js.WebSocketTransport; }
|
|
2284
1635
|
});
|
|
2285
1636
|
Object.defineProperty(exports, "useDanmakuController", {
|
|
2286
1637
|
enumerable: true,
|
|
2287
|
-
get: function () { return
|
|
1638
|
+
get: function () { return chunkJOSNXSA6_js.useDanmakuController; }
|
|
2288
1639
|
});
|
|
2289
1640
|
Object.defineProperty(exports, "useFireworksEngine", {
|
|
2290
1641
|
enumerable: true,
|
|
2291
|
-
get: function () { return
|
|
1642
|
+
get: function () { return chunkJOSNXSA6_js.useFireworksEngine; }
|
|
2292
1643
|
});
|
|
2293
1644
|
Object.defineProperty(exports, "useFireworksRealtime", {
|
|
2294
1645
|
enumerable: true,
|
|
2295
|
-
get: function () { return
|
|
1646
|
+
get: function () { return chunkJOSNXSA6_js.useFireworksRealtime; }
|
|
2296
1647
|
});
|
|
2297
1648
|
Object.defineProperty(exports, "AlertDialog", {
|
|
2298
1649
|
enumerable: true,
|
|
2299
|
-
get: function () { return
|
|
1650
|
+
get: function () { return chunk4XXIBWCO_js.Dialog; }
|
|
2300
1651
|
});
|
|
2301
1652
|
Object.defineProperty(exports, "AlertDialogAction", {
|
|
2302
1653
|
enumerable: true,
|
|
2303
|
-
get: function () { return
|
|
1654
|
+
get: function () { return chunk4XXIBWCO_js.AlertDialogAction; }
|
|
2304
1655
|
});
|
|
2305
1656
|
Object.defineProperty(exports, "AlertDialogCancel", {
|
|
2306
1657
|
enumerable: true,
|
|
2307
|
-
get: function () { return
|
|
1658
|
+
get: function () { return chunk4XXIBWCO_js.AlertDialogCancel; }
|
|
2308
1659
|
});
|
|
2309
1660
|
Object.defineProperty(exports, "AlertDialogContent", {
|
|
2310
1661
|
enumerable: true,
|
|
2311
|
-
get: function () { return
|
|
1662
|
+
get: function () { return chunk4XXIBWCO_js.AlertDialogContent; }
|
|
2312
1663
|
});
|
|
2313
1664
|
Object.defineProperty(exports, "AlertDialogDescription", {
|
|
2314
1665
|
enumerable: true,
|
|
2315
|
-
get: function () { return
|
|
1666
|
+
get: function () { return chunk4XXIBWCO_js.DialogDescription; }
|
|
2316
1667
|
});
|
|
2317
1668
|
Object.defineProperty(exports, "AlertDialogFooter", {
|
|
2318
1669
|
enumerable: true,
|
|
2319
|
-
get: function () { return
|
|
1670
|
+
get: function () { return chunk4XXIBWCO_js.DialogFooter; }
|
|
2320
1671
|
});
|
|
2321
1672
|
Object.defineProperty(exports, "AlertDialogHeader", {
|
|
2322
1673
|
enumerable: true,
|
|
2323
|
-
get: function () { return
|
|
1674
|
+
get: function () { return chunk4XXIBWCO_js.DialogHeader; }
|
|
2324
1675
|
});
|
|
2325
1676
|
Object.defineProperty(exports, "AlertDialogOverlay", {
|
|
2326
1677
|
enumerable: true,
|
|
2327
|
-
get: function () { return
|
|
1678
|
+
get: function () { return chunk4XXIBWCO_js.DialogOverlay; }
|
|
2328
1679
|
});
|
|
2329
1680
|
Object.defineProperty(exports, "AlertDialogPortal", {
|
|
2330
1681
|
enumerable: true,
|
|
2331
|
-
get: function () { return
|
|
1682
|
+
get: function () { return chunk4XXIBWCO_js.DialogPortal; }
|
|
2332
1683
|
});
|
|
2333
1684
|
Object.defineProperty(exports, "AlertDialogTitle", {
|
|
2334
1685
|
enumerable: true,
|
|
2335
|
-
get: function () { return
|
|
1686
|
+
get: function () { return chunk4XXIBWCO_js.DialogTitle; }
|
|
2336
1687
|
});
|
|
2337
1688
|
Object.defineProperty(exports, "AlertDialogTrigger", {
|
|
2338
1689
|
enumerable: true,
|
|
2339
|
-
get: function () { return
|
|
1690
|
+
get: function () { return chunk4XXIBWCO_js.DialogTrigger; }
|
|
2340
1691
|
});
|
|
2341
1692
|
Object.defineProperty(exports, "Avatar", {
|
|
2342
1693
|
enumerable: true,
|
|
2343
|
-
get: function () { return
|
|
1694
|
+
get: function () { return chunk4XXIBWCO_js.Avatar; }
|
|
2344
1695
|
});
|
|
2345
1696
|
Object.defineProperty(exports, "AvatarFallback", {
|
|
2346
1697
|
enumerable: true,
|
|
2347
|
-
get: function () { return
|
|
1698
|
+
get: function () { return chunk4XXIBWCO_js.AvatarFallback; }
|
|
2348
1699
|
});
|
|
2349
1700
|
Object.defineProperty(exports, "AvatarImage", {
|
|
2350
1701
|
enumerable: true,
|
|
2351
|
-
get: function () { return
|
|
1702
|
+
get: function () { return chunk4XXIBWCO_js.AvatarImage; }
|
|
2352
1703
|
});
|
|
2353
1704
|
Object.defineProperty(exports, "BackButton", {
|
|
2354
1705
|
enumerable: true,
|
|
2355
|
-
get: function () { return
|
|
1706
|
+
get: function () { return chunk4XXIBWCO_js.BackButton; }
|
|
2356
1707
|
});
|
|
2357
1708
|
Object.defineProperty(exports, "Badge", {
|
|
2358
1709
|
enumerable: true,
|
|
2359
|
-
get: function () { return
|
|
1710
|
+
get: function () { return chunk4XXIBWCO_js.Badge; }
|
|
2360
1711
|
});
|
|
2361
1712
|
Object.defineProperty(exports, "Button", {
|
|
2362
1713
|
enumerable: true,
|
|
2363
|
-
get: function () { return
|
|
1714
|
+
get: function () { return chunk4XXIBWCO_js.Button; }
|
|
2364
1715
|
});
|
|
2365
1716
|
Object.defineProperty(exports, "Card", {
|
|
2366
1717
|
enumerable: true,
|
|
2367
|
-
get: function () { return
|
|
1718
|
+
get: function () { return chunk4XXIBWCO_js.Card; }
|
|
2368
1719
|
});
|
|
2369
1720
|
Object.defineProperty(exports, "CardContent", {
|
|
2370
1721
|
enumerable: true,
|
|
2371
|
-
get: function () { return
|
|
1722
|
+
get: function () { return chunk4XXIBWCO_js.CardContent; }
|
|
2372
1723
|
});
|
|
2373
1724
|
Object.defineProperty(exports, "CardDescription", {
|
|
2374
1725
|
enumerable: true,
|
|
2375
|
-
get: function () { return
|
|
1726
|
+
get: function () { return chunk4XXIBWCO_js.CardDescription; }
|
|
2376
1727
|
});
|
|
2377
1728
|
Object.defineProperty(exports, "CardFooter", {
|
|
2378
1729
|
enumerable: true,
|
|
2379
|
-
get: function () { return
|
|
1730
|
+
get: function () { return chunk4XXIBWCO_js.CardFooter; }
|
|
2380
1731
|
});
|
|
2381
1732
|
Object.defineProperty(exports, "CardHeader", {
|
|
2382
1733
|
enumerable: true,
|
|
2383
|
-
get: function () { return
|
|
1734
|
+
get: function () { return chunk4XXIBWCO_js.CardHeader; }
|
|
2384
1735
|
});
|
|
2385
1736
|
Object.defineProperty(exports, "CardTitle", {
|
|
2386
1737
|
enumerable: true,
|
|
2387
|
-
get: function () { return
|
|
1738
|
+
get: function () { return chunk4XXIBWCO_js.CardTitle; }
|
|
2388
1739
|
});
|
|
2389
1740
|
Object.defineProperty(exports, "CollisionBalls", {
|
|
2390
1741
|
enumerable: true,
|
|
2391
|
-
get: function () { return
|
|
1742
|
+
get: function () { return chunk4XXIBWCO_js.CollisionBalls; }
|
|
2392
1743
|
});
|
|
2393
1744
|
Object.defineProperty(exports, "ConfirmModal", {
|
|
2394
1745
|
enumerable: true,
|
|
2395
|
-
get: function () { return
|
|
1746
|
+
get: function () { return chunk4XXIBWCO_js.ConfirmModal; }
|
|
2396
1747
|
});
|
|
2397
1748
|
Object.defineProperty(exports, "Dialog", {
|
|
2398
1749
|
enumerable: true,
|
|
2399
|
-
get: function () { return
|
|
1750
|
+
get: function () { return chunk4XXIBWCO_js.Dialog; }
|
|
2400
1751
|
});
|
|
2401
1752
|
Object.defineProperty(exports, "DialogClose", {
|
|
2402
1753
|
enumerable: true,
|
|
2403
|
-
get: function () { return
|
|
1754
|
+
get: function () { return chunk4XXIBWCO_js.DialogClose; }
|
|
2404
1755
|
});
|
|
2405
1756
|
Object.defineProperty(exports, "DialogContent", {
|
|
2406
1757
|
enumerable: true,
|
|
2407
|
-
get: function () { return
|
|
1758
|
+
get: function () { return chunk4XXIBWCO_js.DialogContent; }
|
|
2408
1759
|
});
|
|
2409
1760
|
Object.defineProperty(exports, "DialogDescription", {
|
|
2410
1761
|
enumerable: true,
|
|
2411
|
-
get: function () { return
|
|
1762
|
+
get: function () { return chunk4XXIBWCO_js.DialogDescription; }
|
|
2412
1763
|
});
|
|
2413
1764
|
Object.defineProperty(exports, "DialogFooter", {
|
|
2414
1765
|
enumerable: true,
|
|
2415
|
-
get: function () { return
|
|
1766
|
+
get: function () { return chunk4XXIBWCO_js.DialogFooter; }
|
|
2416
1767
|
});
|
|
2417
1768
|
Object.defineProperty(exports, "DialogHeader", {
|
|
2418
1769
|
enumerable: true,
|
|
2419
|
-
get: function () { return
|
|
1770
|
+
get: function () { return chunk4XXIBWCO_js.DialogHeader; }
|
|
2420
1771
|
});
|
|
2421
1772
|
Object.defineProperty(exports, "DialogOverlay", {
|
|
2422
1773
|
enumerable: true,
|
|
2423
|
-
get: function () { return
|
|
1774
|
+
get: function () { return chunk4XXIBWCO_js.DialogOverlay; }
|
|
2424
1775
|
});
|
|
2425
1776
|
Object.defineProperty(exports, "DialogPortal", {
|
|
2426
1777
|
enumerable: true,
|
|
2427
|
-
get: function () { return
|
|
1778
|
+
get: function () { return chunk4XXIBWCO_js.DialogPortal; }
|
|
2428
1779
|
});
|
|
2429
1780
|
Object.defineProperty(exports, "DialogTitle", {
|
|
2430
1781
|
enumerable: true,
|
|
2431
|
-
get: function () { return
|
|
1782
|
+
get: function () { return chunk4XXIBWCO_js.DialogTitle; }
|
|
2432
1783
|
});
|
|
2433
1784
|
Object.defineProperty(exports, "DialogTrigger", {
|
|
2434
1785
|
enumerable: true,
|
|
2435
|
-
get: function () { return
|
|
1786
|
+
get: function () { return chunk4XXIBWCO_js.DialogTrigger; }
|
|
2436
1787
|
});
|
|
2437
1788
|
Object.defineProperty(exports, "DropdownMenu", {
|
|
2438
1789
|
enumerable: true,
|
|
2439
|
-
get: function () { return
|
|
1790
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenu; }
|
|
2440
1791
|
});
|
|
2441
1792
|
Object.defineProperty(exports, "DropdownMenuCheckboxItem", {
|
|
2442
1793
|
enumerable: true,
|
|
2443
|
-
get: function () { return
|
|
1794
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuCheckboxItem; }
|
|
2444
1795
|
});
|
|
2445
1796
|
Object.defineProperty(exports, "DropdownMenuContent", {
|
|
2446
1797
|
enumerable: true,
|
|
2447
|
-
get: function () { return
|
|
1798
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuContent; }
|
|
2448
1799
|
});
|
|
2449
1800
|
Object.defineProperty(exports, "DropdownMenuGroup", {
|
|
2450
1801
|
enumerable: true,
|
|
2451
|
-
get: function () { return
|
|
1802
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuGroup; }
|
|
2452
1803
|
});
|
|
2453
1804
|
Object.defineProperty(exports, "DropdownMenuItem", {
|
|
2454
1805
|
enumerable: true,
|
|
2455
|
-
get: function () { return
|
|
1806
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuItem; }
|
|
2456
1807
|
});
|
|
2457
1808
|
Object.defineProperty(exports, "DropdownMenuLabel", {
|
|
2458
1809
|
enumerable: true,
|
|
2459
|
-
get: function () { return
|
|
1810
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuLabel; }
|
|
2460
1811
|
});
|
|
2461
1812
|
Object.defineProperty(exports, "DropdownMenuPortal", {
|
|
2462
1813
|
enumerable: true,
|
|
2463
|
-
get: function () { return
|
|
1814
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuPortal; }
|
|
2464
1815
|
});
|
|
2465
1816
|
Object.defineProperty(exports, "DropdownMenuRadioGroup", {
|
|
2466
1817
|
enumerable: true,
|
|
2467
|
-
get: function () { return
|
|
1818
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuRadioGroup; }
|
|
2468
1819
|
});
|
|
2469
1820
|
Object.defineProperty(exports, "DropdownMenuRadioItem", {
|
|
2470
1821
|
enumerable: true,
|
|
2471
|
-
get: function () { return
|
|
1822
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuRadioItem; }
|
|
2472
1823
|
});
|
|
2473
1824
|
Object.defineProperty(exports, "DropdownMenuSeparator", {
|
|
2474
1825
|
enumerable: true,
|
|
2475
|
-
get: function () { return
|
|
1826
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuSeparator; }
|
|
2476
1827
|
});
|
|
2477
1828
|
Object.defineProperty(exports, "DropdownMenuShortcut", {
|
|
2478
1829
|
enumerable: true,
|
|
2479
|
-
get: function () { return
|
|
1830
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuShortcut; }
|
|
2480
1831
|
});
|
|
2481
1832
|
Object.defineProperty(exports, "DropdownMenuSub", {
|
|
2482
1833
|
enumerable: true,
|
|
2483
|
-
get: function () { return
|
|
1834
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuSub; }
|
|
2484
1835
|
});
|
|
2485
1836
|
Object.defineProperty(exports, "DropdownMenuSubContent", {
|
|
2486
1837
|
enumerable: true,
|
|
2487
|
-
get: function () { return
|
|
1838
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuSubContent; }
|
|
2488
1839
|
});
|
|
2489
1840
|
Object.defineProperty(exports, "DropdownMenuSubTrigger", {
|
|
2490
1841
|
enumerable: true,
|
|
2491
|
-
get: function () { return
|
|
1842
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuSubTrigger; }
|
|
2492
1843
|
});
|
|
2493
1844
|
Object.defineProperty(exports, "DropdownMenuTrigger", {
|
|
2494
1845
|
enumerable: true,
|
|
2495
|
-
get: function () { return
|
|
1846
|
+
get: function () { return chunk4XXIBWCO_js.DropdownMenuTrigger; }
|
|
2496
1847
|
});
|
|
2497
1848
|
Object.defineProperty(exports, "FilterButtonGroup", {
|
|
2498
1849
|
enumerable: true,
|
|
2499
|
-
get: function () { return
|
|
1850
|
+
get: function () { return chunk4XXIBWCO_js.FilterButtonGroup; }
|
|
2500
1851
|
});
|
|
2501
1852
|
Object.defineProperty(exports, "GenericOrderManager", {
|
|
2502
1853
|
enumerable: true,
|
|
2503
|
-
get: function () { return
|
|
1854
|
+
get: function () { return chunk4XXIBWCO_js.GenericOrderManager; }
|
|
2504
1855
|
});
|
|
2505
1856
|
Object.defineProperty(exports, "Grid", {
|
|
2506
1857
|
enumerable: true,
|
|
2507
|
-
get: function () { return
|
|
1858
|
+
get: function () { return chunk4XXIBWCO_js.Grid; }
|
|
2508
1859
|
});
|
|
2509
1860
|
Object.defineProperty(exports, "Input", {
|
|
2510
1861
|
enumerable: true,
|
|
2511
|
-
get: function () { return
|
|
1862
|
+
get: function () { return chunk4XXIBWCO_js.Input; }
|
|
2512
1863
|
});
|
|
2513
1864
|
Object.defineProperty(exports, "Label", {
|
|
2514
1865
|
enumerable: true,
|
|
2515
|
-
get: function () { return
|
|
1866
|
+
get: function () { return chunk4XXIBWCO_js.Label; }
|
|
2516
1867
|
});
|
|
2517
1868
|
Object.defineProperty(exports, "Modal", {
|
|
2518
1869
|
enumerable: true,
|
|
2519
|
-
get: function () { return
|
|
1870
|
+
get: function () { return chunk4XXIBWCO_js.Modal; }
|
|
2520
1871
|
});
|
|
2521
1872
|
Object.defineProperty(exports, "Popover", {
|
|
2522
1873
|
enumerable: true,
|
|
2523
|
-
get: function () { return
|
|
1874
|
+
get: function () { return chunk4XXIBWCO_js.Popover; }
|
|
2524
1875
|
});
|
|
2525
1876
|
Object.defineProperty(exports, "PopoverAnchor", {
|
|
2526
1877
|
enumerable: true,
|
|
2527
|
-
get: function () { return
|
|
1878
|
+
get: function () { return chunk4XXIBWCO_js.PopoverAnchor; }
|
|
2528
1879
|
});
|
|
2529
1880
|
Object.defineProperty(exports, "PopoverContent", {
|
|
2530
1881
|
enumerable: true,
|
|
2531
|
-
get: function () { return
|
|
1882
|
+
get: function () { return chunk4XXIBWCO_js.PopoverContent; }
|
|
2532
1883
|
});
|
|
2533
1884
|
Object.defineProperty(exports, "PopoverTrigger", {
|
|
2534
1885
|
enumerable: true,
|
|
2535
|
-
get: function () { return
|
|
1886
|
+
get: function () { return chunk4XXIBWCO_js.PopoverTrigger; }
|
|
2536
1887
|
});
|
|
2537
1888
|
Object.defineProperty(exports, "Progress", {
|
|
2538
1889
|
enumerable: true,
|
|
2539
|
-
get: function () { return
|
|
1890
|
+
get: function () { return chunk4XXIBWCO_js.Progress; }
|
|
2540
1891
|
});
|
|
2541
1892
|
Object.defineProperty(exports, "ScrollArea", {
|
|
2542
1893
|
enumerable: true,
|
|
2543
|
-
get: function () { return
|
|
1894
|
+
get: function () { return chunk4XXIBWCO_js.ScrollArea; }
|
|
2544
1895
|
});
|
|
2545
1896
|
Object.defineProperty(exports, "ScrollBar", {
|
|
2546
1897
|
enumerable: true,
|
|
2547
|
-
get: function () { return
|
|
1898
|
+
get: function () { return chunk4XXIBWCO_js.ScrollBar; }
|
|
2548
1899
|
});
|
|
2549
1900
|
Object.defineProperty(exports, "SearchBox", {
|
|
2550
1901
|
enumerable: true,
|
|
2551
|
-
get: function () { return
|
|
1902
|
+
get: function () { return chunk4XXIBWCO_js.SearchBox; }
|
|
2552
1903
|
});
|
|
2553
1904
|
Object.defineProperty(exports, "SearchResultHint", {
|
|
2554
1905
|
enumerable: true,
|
|
2555
|
-
get: function () { return
|
|
1906
|
+
get: function () { return chunk4XXIBWCO_js.SearchResultHint; }
|
|
2556
1907
|
});
|
|
2557
1908
|
Object.defineProperty(exports, "Select", {
|
|
2558
1909
|
enumerable: true,
|
|
2559
|
-
get: function () { return
|
|
1910
|
+
get: function () { return chunk4XXIBWCO_js.Select; }
|
|
2560
1911
|
});
|
|
2561
1912
|
Object.defineProperty(exports, "SelectContent", {
|
|
2562
1913
|
enumerable: true,
|
|
2563
|
-
get: function () { return
|
|
1914
|
+
get: function () { return chunk4XXIBWCO_js.SelectContent; }
|
|
2564
1915
|
});
|
|
2565
1916
|
Object.defineProperty(exports, "SelectGroup", {
|
|
2566
1917
|
enumerable: true,
|
|
2567
|
-
get: function () { return
|
|
1918
|
+
get: function () { return chunk4XXIBWCO_js.SelectGroup; }
|
|
2568
1919
|
});
|
|
2569
1920
|
Object.defineProperty(exports, "SelectItem", {
|
|
2570
1921
|
enumerable: true,
|
|
2571
|
-
get: function () { return
|
|
1922
|
+
get: function () { return chunk4XXIBWCO_js.SelectItem; }
|
|
2572
1923
|
});
|
|
2573
1924
|
Object.defineProperty(exports, "SelectLabel", {
|
|
2574
1925
|
enumerable: true,
|
|
2575
|
-
get: function () { return
|
|
1926
|
+
get: function () { return chunk4XXIBWCO_js.SelectLabel; }
|
|
2576
1927
|
});
|
|
2577
1928
|
Object.defineProperty(exports, "SelectScrollDownButton", {
|
|
2578
1929
|
enumerable: true,
|
|
2579
|
-
get: function () { return
|
|
1930
|
+
get: function () { return chunk4XXIBWCO_js.SelectScrollDownButton; }
|
|
2580
1931
|
});
|
|
2581
1932
|
Object.defineProperty(exports, "SelectScrollUpButton", {
|
|
2582
1933
|
enumerable: true,
|
|
2583
|
-
get: function () { return
|
|
1934
|
+
get: function () { return chunk4XXIBWCO_js.SelectScrollUpButton; }
|
|
2584
1935
|
});
|
|
2585
1936
|
Object.defineProperty(exports, "SelectSeparator", {
|
|
2586
1937
|
enumerable: true,
|
|
2587
|
-
get: function () { return
|
|
1938
|
+
get: function () { return chunk4XXIBWCO_js.SelectSeparator; }
|
|
2588
1939
|
});
|
|
2589
1940
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
2590
1941
|
enumerable: true,
|
|
2591
|
-
get: function () { return
|
|
1942
|
+
get: function () { return chunk4XXIBWCO_js.SelectTrigger; }
|
|
2592
1943
|
});
|
|
2593
1944
|
Object.defineProperty(exports, "SelectValue", {
|
|
2594
1945
|
enumerable: true,
|
|
2595
|
-
get: function () { return
|
|
1946
|
+
get: function () { return chunk4XXIBWCO_js.SelectValue; }
|
|
2596
1947
|
});
|
|
2597
1948
|
Object.defineProperty(exports, "Separator", {
|
|
2598
1949
|
enumerable: true,
|
|
2599
|
-
get: function () { return
|
|
1950
|
+
get: function () { return chunk4XXIBWCO_js.Separator; }
|
|
2600
1951
|
});
|
|
2601
1952
|
Object.defineProperty(exports, "Sheet", {
|
|
2602
1953
|
enumerable: true,
|
|
2603
|
-
get: function () { return
|
|
1954
|
+
get: function () { return chunk4XXIBWCO_js.Dialog; }
|
|
2604
1955
|
});
|
|
2605
1956
|
Object.defineProperty(exports, "SheetClose", {
|
|
2606
1957
|
enumerable: true,
|
|
2607
|
-
get: function () { return
|
|
1958
|
+
get: function () { return chunk4XXIBWCO_js.DialogClose; }
|
|
2608
1959
|
});
|
|
2609
1960
|
Object.defineProperty(exports, "SheetContent", {
|
|
2610
1961
|
enumerable: true,
|
|
2611
|
-
get: function () { return
|
|
1962
|
+
get: function () { return chunk4XXIBWCO_js.SheetContent; }
|
|
2612
1963
|
});
|
|
2613
1964
|
Object.defineProperty(exports, "SheetDescription", {
|
|
2614
1965
|
enumerable: true,
|
|
2615
|
-
get: function () { return
|
|
1966
|
+
get: function () { return chunk4XXIBWCO_js.SheetDescription; }
|
|
2616
1967
|
});
|
|
2617
1968
|
Object.defineProperty(exports, "SheetFooter", {
|
|
2618
1969
|
enumerable: true,
|
|
2619
|
-
get: function () { return
|
|
1970
|
+
get: function () { return chunk4XXIBWCO_js.SheetFooter; }
|
|
2620
1971
|
});
|
|
2621
1972
|
Object.defineProperty(exports, "SheetHeader", {
|
|
2622
1973
|
enumerable: true,
|
|
2623
|
-
get: function () { return
|
|
1974
|
+
get: function () { return chunk4XXIBWCO_js.SheetHeader; }
|
|
2624
1975
|
});
|
|
2625
1976
|
Object.defineProperty(exports, "SheetOverlay", {
|
|
2626
1977
|
enumerable: true,
|
|
2627
|
-
get: function () { return
|
|
1978
|
+
get: function () { return chunk4XXIBWCO_js.DialogOverlay; }
|
|
2628
1979
|
});
|
|
2629
1980
|
Object.defineProperty(exports, "SheetPortal", {
|
|
2630
1981
|
enumerable: true,
|
|
2631
|
-
get: function () { return
|
|
1982
|
+
get: function () { return chunk4XXIBWCO_js.DialogPortal; }
|
|
2632
1983
|
});
|
|
2633
1984
|
Object.defineProperty(exports, "SheetTitle", {
|
|
2634
1985
|
enumerable: true,
|
|
2635
|
-
get: function () { return
|
|
1986
|
+
get: function () { return chunk4XXIBWCO_js.SheetTitle; }
|
|
2636
1987
|
});
|
|
2637
1988
|
Object.defineProperty(exports, "SheetTrigger", {
|
|
2638
1989
|
enumerable: true,
|
|
2639
|
-
get: function () { return
|
|
1990
|
+
get: function () { return chunk4XXIBWCO_js.DialogTrigger; }
|
|
2640
1991
|
});
|
|
2641
1992
|
Object.defineProperty(exports, "Tabs", {
|
|
2642
1993
|
enumerable: true,
|
|
2643
|
-
get: function () { return
|
|
1994
|
+
get: function () { return chunk4XXIBWCO_js.Tabs; }
|
|
2644
1995
|
});
|
|
2645
1996
|
Object.defineProperty(exports, "TabsContent", {
|
|
2646
1997
|
enumerable: true,
|
|
2647
|
-
get: function () { return
|
|
1998
|
+
get: function () { return chunk4XXIBWCO_js.TabsContent; }
|
|
2648
1999
|
});
|
|
2649
2000
|
Object.defineProperty(exports, "TabsList", {
|
|
2650
2001
|
enumerable: true,
|
|
2651
|
-
get: function () { return
|
|
2002
|
+
get: function () { return chunk4XXIBWCO_js.TabsList; }
|
|
2652
2003
|
});
|
|
2653
2004
|
Object.defineProperty(exports, "TabsTrigger", {
|
|
2654
2005
|
enumerable: true,
|
|
2655
|
-
get: function () { return
|
|
2006
|
+
get: function () { return chunk4XXIBWCO_js.TabsTrigger; }
|
|
2656
2007
|
});
|
|
2657
2008
|
Object.defineProperty(exports, "Textarea", {
|
|
2658
2009
|
enumerable: true,
|
|
2659
|
-
get: function () { return
|
|
2010
|
+
get: function () { return chunk4XXIBWCO_js.Textarea; }
|
|
2660
2011
|
});
|
|
2661
2012
|
Object.defineProperty(exports, "Timeline", {
|
|
2662
2013
|
enumerable: true,
|
|
2663
|
-
get: function () { return
|
|
2014
|
+
get: function () { return chunk4XXIBWCO_js.Timeline; }
|
|
2664
2015
|
});
|
|
2665
2016
|
Object.defineProperty(exports, "Tooltip", {
|
|
2666
2017
|
enumerable: true,
|
|
2667
|
-
get: function () { return
|
|
2018
|
+
get: function () { return chunk4XXIBWCO_js.Tooltip; }
|
|
2668
2019
|
});
|
|
2669
2020
|
Object.defineProperty(exports, "TooltipContent", {
|
|
2670
2021
|
enumerable: true,
|
|
2671
|
-
get: function () { return
|
|
2022
|
+
get: function () { return chunk4XXIBWCO_js.TooltipContent; }
|
|
2672
2023
|
});
|
|
2673
2024
|
Object.defineProperty(exports, "TooltipProvider", {
|
|
2674
2025
|
enumerable: true,
|
|
2675
|
-
get: function () { return
|
|
2026
|
+
get: function () { return chunk4XXIBWCO_js.TooltipProvider; }
|
|
2676
2027
|
});
|
|
2677
2028
|
Object.defineProperty(exports, "TooltipTrigger", {
|
|
2678
2029
|
enumerable: true,
|
|
2679
|
-
get: function () { return
|
|
2030
|
+
get: function () { return chunk4XXIBWCO_js.TooltipTrigger; }
|
|
2680
2031
|
});
|
|
2681
2032
|
Object.defineProperty(exports, "badgeVariants", {
|
|
2682
2033
|
enumerable: true,
|
|
2683
|
-
get: function () { return
|
|
2034
|
+
get: function () { return chunk4XXIBWCO_js.badgeVariants; }
|
|
2684
2035
|
});
|
|
2685
2036
|
Object.defineProperty(exports, "buttonVariants", {
|
|
2686
2037
|
enumerable: true,
|
|
2687
|
-
get: function () { return
|
|
2038
|
+
get: function () { return chunk4XXIBWCO_js.buttonVariants; }
|
|
2688
2039
|
});
|
|
2689
2040
|
Object.defineProperty(exports, "ImageMappingPanel", {
|
|
2690
2041
|
enumerable: true,
|
|
2691
|
-
get: function () { return
|
|
2042
|
+
get: function () { return chunkMZKATHB7_js.ImageMappingPanel; }
|
|
2692
2043
|
});
|
|
2693
2044
|
Object.defineProperty(exports, "LocalImageMappingPanel", {
|
|
2694
2045
|
enumerable: true,
|
|
2695
|
-
get: function () { return
|
|
2046
|
+
get: function () { return chunkMZKATHB7_js.LocalImageMappingPanel; }
|
|
2696
2047
|
});
|
|
2697
2048
|
Object.defineProperty(exports, "arrayUtils", {
|
|
2698
2049
|
enumerable: true,
|
|
2699
|
-
get: function () { return
|
|
2050
|
+
get: function () { return chunkDVENFCQY_js.arrayUtils; }
|
|
2700
2051
|
});
|
|
2701
2052
|
Object.defineProperty(exports, "cn", {
|
|
2702
2053
|
enumerable: true,
|
|
2703
|
-
get: function () { return
|
|
2054
|
+
get: function () { return chunkDVENFCQY_js.cn; }
|
|
2704
2055
|
});
|
|
2705
2056
|
Object.defineProperty(exports, "debugUtils", {
|
|
2706
2057
|
enumerable: true,
|
|
2707
|
-
get: function () { return
|
|
2058
|
+
get: function () { return chunkDVENFCQY_js.debugUtils; }
|
|
2708
2059
|
});
|
|
2709
2060
|
Object.defineProperty(exports, "errorUtils", {
|
|
2710
2061
|
enumerable: true,
|
|
2711
|
-
get: function () { return
|
|
2062
|
+
get: function () { return chunkDVENFCQY_js.errorUtils; }
|
|
2712
2063
|
});
|
|
2713
2064
|
Object.defineProperty(exports, "fileUtils", {
|
|
2714
2065
|
enumerable: true,
|
|
2715
|
-
get: function () { return
|
|
2066
|
+
get: function () { return chunkDVENFCQY_js.fileUtils; }
|
|
2716
2067
|
});
|
|
2717
2068
|
Object.defineProperty(exports, "formatTime", {
|
|
2718
2069
|
enumerable: true,
|
|
2719
|
-
get: function () { return
|
|
2070
|
+
get: function () { return chunkDVENFCQY_js.formatTime; }
|
|
2720
2071
|
});
|
|
2721
2072
|
Object.defineProperty(exports, "japaneseUtils", {
|
|
2722
2073
|
enumerable: true,
|
|
2723
|
-
get: function () { return
|
|
2074
|
+
get: function () { return chunkDVENFCQY_js.japaneseUtils; }
|
|
2724
2075
|
});
|
|
2725
2076
|
Object.defineProperty(exports, "stringUtils", {
|
|
2726
2077
|
enumerable: true,
|
|
2727
|
-
get: function () { return
|
|
2078
|
+
get: function () { return chunkDVENFCQY_js.stringUtils; }
|
|
2728
2079
|
});
|
|
2729
2080
|
Object.defineProperty(exports, "validators", {
|
|
2730
2081
|
enumerable: true,
|
|
2731
|
-
get: function () { return
|
|
2082
|
+
get: function () { return chunkDVENFCQY_js.validators; }
|
|
2732
2083
|
});
|
|
2733
2084
|
Object.defineProperty(exports, "useAsyncStorage", {
|
|
2734
2085
|
enumerable: true,
|
|
2735
|
-
get: function () { return
|
|
2086
|
+
get: function () { return chunkEUIXQPPU_js.useAsyncStorage; }
|
|
2736
2087
|
});
|
|
2737
2088
|
Object.defineProperty(exports, "useElectronStorage", {
|
|
2738
2089
|
enumerable: true,
|
|
2739
|
-
get: function () { return
|
|
2090
|
+
get: function () { return chunkEUIXQPPU_js.useElectronStorage; }
|
|
2740
2091
|
});
|
|
2741
2092
|
Object.defineProperty(exports, "useTaroStorage", {
|
|
2742
2093
|
enumerable: true,
|
|
2743
|
-
get: function () { return
|
|
2094
|
+
get: function () { return chunkEUIXQPPU_js.useTaroStorage; }
|
|
2744
2095
|
});
|
|
2745
2096
|
Object.defineProperty(exports, "useLocalStorage", {
|
|
2746
2097
|
enumerable: true,
|
|
@@ -2752,48 +2103,38 @@ Object.defineProperty(exports, "useStorage", {
|
|
|
2752
2103
|
});
|
|
2753
2104
|
Object.defineProperty(exports, "ConsoleLoggerAdapter", {
|
|
2754
2105
|
enumerable: true,
|
|
2755
|
-
get: function () { return
|
|
2106
|
+
get: function () { return chunkACLOJXXE_js.ConsoleLoggerAdapter; }
|
|
2756
2107
|
});
|
|
2757
2108
|
Object.defineProperty(exports, "LogLevel", {
|
|
2758
2109
|
enumerable: true,
|
|
2759
|
-
get: function () { return
|
|
2110
|
+
get: function () { return chunkACLOJXXE_js.LogLevel; }
|
|
2760
2111
|
});
|
|
2761
2112
|
Object.defineProperty(exports, "Logger", {
|
|
2762
2113
|
enumerable: true,
|
|
2763
|
-
get: function () { return
|
|
2114
|
+
get: function () { return chunkACLOJXXE_js.Logger; }
|
|
2764
2115
|
});
|
|
2765
2116
|
Object.defineProperty(exports, "createLogger", {
|
|
2766
2117
|
enumerable: true,
|
|
2767
|
-
get: function () { return
|
|
2118
|
+
get: function () { return chunkACLOJXXE_js.createLogger; }
|
|
2768
2119
|
});
|
|
2769
2120
|
Object.defineProperty(exports, "logger", {
|
|
2770
2121
|
enumerable: true,
|
|
2771
|
-
get: function () { return
|
|
2122
|
+
get: function () { return chunkACLOJXXE_js.logger; }
|
|
2772
2123
|
});
|
|
2773
|
-
exports.About = About_default;
|
|
2774
2124
|
exports.AutoOpenModal = AutoOpenModal;
|
|
2775
2125
|
exports.BackgroundRemover = BackgroundRemover;
|
|
2776
2126
|
exports.CategoryFilter = CategoryFilter;
|
|
2777
2127
|
exports.CompletionFilterComponent = CompletionFilterComponent;
|
|
2778
|
-
exports.Contact = Contact_default;
|
|
2779
2128
|
exports.DraggableExperimentGrid = DraggableExperimentGrid;
|
|
2780
2129
|
exports.EmptyState = EmptyState;
|
|
2781
2130
|
exports.EnhancedAvatar = EnhancedAvatar;
|
|
2782
|
-
exports.ExperimentCard = ExperimentCard;
|
|
2783
2131
|
exports.ExperimentGrid = ExperimentGrid;
|
|
2784
2132
|
exports.ExperimentItemGrid = ExperimentItemGrid;
|
|
2785
|
-
exports.FloatingMenu = FloatingMenu_default;
|
|
2786
|
-
exports.FloatingMenuExample = FloatingMenuExample_default;
|
|
2787
|
-
exports.Home = Home_default;
|
|
2788
|
-
exports.Navigation = Navigation_default;
|
|
2789
|
-
exports.NavigationItem = NavigationItem_default;
|
|
2790
|
-
exports.NavigationToggle = NavigationToggle_default;
|
|
2791
2133
|
exports.OCRScanner = OCRScanner;
|
|
2792
2134
|
exports.PageHeader = PageHeader;
|
|
2793
2135
|
exports.PermissionGuard = PermissionGuard;
|
|
2794
2136
|
exports.ProfileButton = ProfileButton;
|
|
2795
2137
|
exports.ProfileModal = ProfileModal;
|
|
2796
|
-
exports.ProjectCarousel = ProjectCarousel;
|
|
2797
2138
|
exports.SentimentAnalyzer = SentimentAnalyzer;
|
|
2798
2139
|
exports.SmartAssistant = SmartAssistant;
|
|
2799
2140
|
exports.SortControl = SortControl;
|