sa2kit 1.6.7 → 1.6.9

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.
Files changed (139) hide show
  1. package/dist/calendar/index.js +334 -399
  2. package/dist/calendar/index.js.map +1 -1
  3. package/dist/calendar/index.mjs +241 -306
  4. package/dist/calendar/index.mjs.map +1 -1
  5. package/dist/calendar/routes/index.js +21 -21
  6. package/dist/calendar/routes/index.mjs +1 -1
  7. package/dist/calendar/server.js +13 -13
  8. package/dist/calendar/server.mjs +2 -2
  9. package/dist/chunk-4FOBBWXW.mjs +179 -0
  10. package/dist/chunk-4FOBBWXW.mjs.map +1 -0
  11. package/dist/chunk-CDK3DHKM.mjs +634 -0
  12. package/dist/chunk-CDK3DHKM.mjs.map +1 -0
  13. package/dist/chunk-G6WRJ2H2.js +187 -0
  14. package/dist/chunk-G6WRJ2H2.js.map +1 -0
  15. package/dist/{chunk-6WXOA4BE.mjs → chunk-GVVS4IMM.mjs} +2 -2
  16. package/dist/chunk-GVVS4IMM.mjs.map +1 -0
  17. package/dist/chunk-L5PW2YTI.js +647 -0
  18. package/dist/chunk-L5PW2YTI.js.map +1 -0
  19. package/dist/{chunk-AXP7KROR.js → chunk-WC5QFO3T.js} +2 -2
  20. package/dist/chunk-WC5QFO3T.js.map +1 -0
  21. package/dist/index.js +15 -7
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +6 -6
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/mmd/index.js +2 -2
  26. package/dist/mmd/index.mjs +1 -1
  27. package/dist/music/index.js +14 -6
  28. package/dist/music/index.mjs +1 -1
  29. package/package.json +41 -7
  30. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  31. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  32. package/dist/UniversalFileService-BuHN-jrR.d.ts +0 -515
  33. package/dist/UniversalFileService-CGGzYeeF.d.mts +0 -515
  34. package/dist/analytics/index.d.mts +0 -1084
  35. package/dist/analytics/index.d.ts +0 -1084
  36. package/dist/analytics/server/index.d.mts +0 -499
  37. package/dist/analytics/server/index.d.ts +0 -499
  38. package/dist/api/index.d.mts +0 -248
  39. package/dist/api/index.d.ts +0 -248
  40. package/dist/audioDetection/index.d.mts +0 -449
  41. package/dist/audioDetection/index.d.ts +0 -449
  42. package/dist/auth/client/index.d.mts +0 -153
  43. package/dist/auth/client/index.d.ts +0 -153
  44. package/dist/auth/components/index.d.mts +0 -227
  45. package/dist/auth/components/index.d.ts +0 -227
  46. package/dist/auth/hooks/index.d.mts +0 -31
  47. package/dist/auth/hooks/index.d.ts +0 -31
  48. package/dist/auth/index.d.mts +0 -40
  49. package/dist/auth/index.d.ts +0 -40
  50. package/dist/auth/middleware/index.d.mts +0 -75
  51. package/dist/auth/middleware/index.d.ts +0 -75
  52. package/dist/auth/routes/index.d.mts +0 -261
  53. package/dist/auth/routes/index.d.ts +0 -261
  54. package/dist/auth/schema/index.d.mts +0 -789
  55. package/dist/auth/schema/index.d.ts +0 -789
  56. package/dist/auth/services/index.d.mts +0 -48
  57. package/dist/auth/services/index.d.ts +0 -48
  58. package/dist/calendar/index.d.mts +0 -1197
  59. package/dist/calendar/index.d.ts +0 -1197
  60. package/dist/calendar/routes/index.d.mts +0 -118
  61. package/dist/calendar/routes/index.d.ts +0 -118
  62. package/dist/calendar/server.d.mts +0 -1184
  63. package/dist/calendar/server.d.ts +0 -1184
  64. package/dist/chunk-6WXOA4BE.mjs.map +0 -1
  65. package/dist/chunk-AXP7KROR.js.map +0 -1
  66. package/dist/chunk-GAC4J5GX.js +0 -228
  67. package/dist/chunk-GAC4J5GX.js.map +0 -1
  68. package/dist/chunk-IEA55H3G.js +0 -106
  69. package/dist/chunk-IEA55H3G.js.map +0 -1
  70. package/dist/chunk-R2F4BXUU.mjs +0 -100
  71. package/dist/chunk-R2F4BXUU.mjs.map +0 -1
  72. package/dist/chunk-T6TE7GTY.mjs +0 -218
  73. package/dist/chunk-T6TE7GTY.mjs.map +0 -1
  74. package/dist/config/index.d.mts +0 -64
  75. package/dist/config/index.d.ts +0 -64
  76. package/dist/config/server/index.d.mts +0 -1533
  77. package/dist/config/server/index.d.ts +0 -1533
  78. package/dist/drizzle-auth-service-Bxlovhv8.d.ts +0 -145
  79. package/dist/drizzle-auth-service-DZY2F1sv.d.mts +0 -145
  80. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  81. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  82. package/dist/enums-Dume-V5Y.d.mts +0 -16
  83. package/dist/enums-Dume-V5Y.d.ts +0 -16
  84. package/dist/i18n/index.d.mts +0 -417
  85. package/dist/i18n/index.d.ts +0 -417
  86. package/dist/imageCrop/index.d.mts +0 -165
  87. package/dist/imageCrop/index.d.ts +0 -165
  88. package/dist/index-DSel44Ke.d.mts +0 -93
  89. package/dist/index-DSel44Ke.d.ts +0 -93
  90. package/dist/index.d.mts +0 -671
  91. package/dist/index.d.ts +0 -671
  92. package/dist/logger/index.d.mts +0 -125
  93. package/dist/logger/index.d.ts +0 -125
  94. package/dist/mmd/admin/index.d.mts +0 -487
  95. package/dist/mmd/admin/index.d.ts +0 -487
  96. package/dist/mmd/index.d.mts +0 -599
  97. package/dist/mmd/index.d.ts +0 -599
  98. package/dist/mmd/server/index.d.mts +0 -138
  99. package/dist/mmd/server/index.d.ts +0 -138
  100. package/dist/music/index.d.mts +0 -79
  101. package/dist/music/index.d.ts +0 -79
  102. package/dist/music/server/index.d.mts +0 -1
  103. package/dist/music/server/index.d.ts +0 -1
  104. package/dist/request/index.d.mts +0 -51
  105. package/dist/request/index.d.ts +0 -51
  106. package/dist/storage/index.d.mts +0 -75
  107. package/dist/storage/index.d.ts +0 -75
  108. package/dist/testYourself/admin/index.d.mts +0 -58
  109. package/dist/testYourself/admin/index.d.ts +0 -58
  110. package/dist/testYourself/index.d.mts +0 -53
  111. package/dist/testYourself/index.d.ts +0 -53
  112. package/dist/testYourself/server/index.d.mts +0 -1029
  113. package/dist/testYourself/server/index.d.ts +0 -1029
  114. package/dist/types-B60F7EZZ.d.mts +0 -248
  115. package/dist/types-B60F7EZZ.d.ts +0 -248
  116. package/dist/types-BINlP9MK.d.mts +0 -286
  117. package/dist/types-BINlP9MK.d.ts +0 -286
  118. package/dist/types-BaZccpvk.d.mts +0 -48
  119. package/dist/types-BaZccpvk.d.ts +0 -48
  120. package/dist/types-CK4We_aI.d.mts +0 -270
  121. package/dist/types-CK4We_aI.d.ts +0 -270
  122. package/dist/types-CbTsi9CZ.d.mts +0 -31
  123. package/dist/types-CbTsi9CZ.d.ts +0 -31
  124. package/dist/types-CroexXnI.d.ts +0 -99
  125. package/dist/types-DmsXCWvm.d.mts +0 -99
  126. package/dist/types-Dt0oqeFM.d.mts +0 -70
  127. package/dist/types-zK6kDzDQ.d.ts +0 -70
  128. package/dist/universalExport/index.d.mts +0 -235
  129. package/dist/universalExport/index.d.ts +0 -235
  130. package/dist/universalExport/server/index.d.mts +0 -1270
  131. package/dist/universalExport/server/index.d.ts +0 -1270
  132. package/dist/universalFile/index.d.mts +0 -480
  133. package/dist/universalFile/index.d.ts +0 -480
  134. package/dist/universalFile/server/index.d.mts +0 -4516
  135. package/dist/universalFile/server/index.d.ts +0 -4516
  136. package/dist/useElectronStorage-Dj0rcorG.d.mts +0 -65
  137. package/dist/useElectronStorage-DwnNfIhl.d.ts +0 -65
  138. package/dist/utils/index.d.mts +0 -192
  139. package/dist/utils/index.d.ts +0 -192
@@ -1,13 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkIEA55H3G_js = require('../chunk-IEA55H3G.js');
3
+ var chunkG6WRJ2H2_js = require('../chunk-G6WRJ2H2.js');
4
+ require('../chunk-7Z5LLJ3A.js');
5
+ require('../chunk-6PRFP5EG.js');
4
6
  require('../chunk-DGUM43GV.js');
5
- var React3 = require('react');
7
+ var React2 = require('react');
6
8
  var core = require('@dnd-kit/core');
7
9
 
8
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
11
 
10
- var React3__default = /*#__PURE__*/_interopDefault(React3);
12
+ var React2__default = /*#__PURE__*/_interopDefault(React2);
11
13
 
12
14
  // src/calendar/types/index.ts
13
15
  var RecurrenceType = /* @__PURE__ */ ((RecurrenceType3) => {
@@ -266,73 +268,6 @@ function isValidDate(date) {
266
268
  function cloneDate(date) {
267
269
  return new Date(date.getTime());
268
270
  }
269
- var Modal = ({
270
- isOpen,
271
- onClose,
272
- title,
273
- children,
274
- width = 600,
275
- maskClosable = true
276
- }) => {
277
- React3.useEffect(() => {
278
- if (isOpen) {
279
- document.body.style.overflow = "hidden";
280
- } else {
281
- document.body.style.overflow = "unset";
282
- }
283
- return () => {
284
- document.body.style.overflow = "unset";
285
- };
286
- }, [isOpen]);
287
- if (!isOpen) return null;
288
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4" }, /* @__PURE__ */ React3__default.default.createElement(
289
- "div",
290
- {
291
- className: "fixed inset-0 bg-black/50 transition-opacity",
292
- onClick: () => maskClosable && onClose()
293
- }
294
- ), /* @__PURE__ */ React3__default.default.createElement(
295
- "div",
296
- {
297
- className: "bg-white rounded-xl shadow-2xl z-10 overflow-hidden flex flex-col transition-all transform scale-100",
298
- style: { width: typeof width === "number" ? `${width}px` : width, maxWidth: "100%" }
299
- },
300
- title && /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200 flex justify-between items-center" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-xl font-semibold text-gray-900" }, title), /* @__PURE__ */ React3__default.default.createElement("button", { onClick: onClose, className: "text-gray-400 hover:text-gray-600 transition-colors" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-2xl" }, "\xD7"))),
301
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1 overflow-y-auto" }, children)
302
- ));
303
- };
304
- var ConfirmModal = ({
305
- isOpen,
306
- onClose,
307
- onConfirm,
308
- title,
309
- message,
310
- confirmText = "\u786E\u5B9A",
311
- cancelText = "\u53D6\u6D88",
312
- isLoading = false
313
- }) => {
314
- if (!isOpen) return null;
315
- return /* @__PURE__ */ React3__default.default.createElement(Modal, { isOpen, onClose, title, width: 400 }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-6" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 mb-6" }, message), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-end space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
316
- "button",
317
- {
318
- onClick: onClose,
319
- className: "px-4 py-2 text-gray-700 border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors",
320
- disabled: isLoading
321
- },
322
- cancelText
323
- ), /* @__PURE__ */ React3__default.default.createElement(
324
- "button",
325
- {
326
- onClick: onConfirm,
327
- className: "px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition-colors flex items-center",
328
- disabled: isLoading
329
- },
330
- isLoading && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mr-2 w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin" }),
331
- confirmText
332
- ))));
333
- };
334
-
335
- // src/calendar/components/EventList.tsx
336
271
  function EventList({
337
272
  events,
338
273
  config,
@@ -345,11 +280,11 @@ function EventList({
345
280
  loading = false,
346
281
  className = ""
347
282
  }) {
348
- const [selectedEventIds, setSelectedEventIds] = React3.useState(/* @__PURE__ */ new Set());
349
- const [isSelectionMode, setIsSelectionMode] = React3.useState(false);
350
- const [showBatchDeleteConfirm, setShowBatchDeleteConfirm] = React3.useState(false);
351
- const [batchDeleteLoading, setBatchDeleteLoading] = React3.useState(false);
352
- const sortedAndFilteredEvents = React3.useMemo(() => {
283
+ const [selectedEventIds, setSelectedEventIds] = React2.useState(/* @__PURE__ */ new Set());
284
+ const [isSelectionMode, setIsSelectionMode] = React2.useState(false);
285
+ const [showBatchDeleteConfirm, setShowBatchDeleteConfirm] = React2.useState(false);
286
+ const [batchDeleteLoading, setBatchDeleteLoading] = React2.useState(false);
287
+ const sortedAndFilteredEvents = React2.useMemo(() => {
353
288
  let filteredEvents = [...events];
354
289
  if (config.filter.priority) {
355
290
  filteredEvents = filteredEvents.filter((event) => event.priority === config.filter.priority);
@@ -408,13 +343,13 @@ function EventList({
408
343
  });
409
344
  return filteredEvents;
410
345
  }, [events, config]);
411
- const paginatedEvents = React3.useMemo(() => {
346
+ const paginatedEvents = React2.useMemo(() => {
412
347
  const startIndex = (config.currentPage - 1) * config.pageSize;
413
348
  const endIndex = startIndex + config.pageSize;
414
349
  return sortedAndFilteredEvents.slice(startIndex, endIndex);
415
350
  }, [sortedAndFilteredEvents, config.currentPage, config.pageSize]);
416
351
  const totalPages = Math.ceil(sortedAndFilteredEvents.length / config.pageSize);
417
- const handleSelectEvent = React3.useCallback((eventId, selected) => {
352
+ const handleSelectEvent = React2.useCallback((eventId, selected) => {
418
353
  setSelectedEventIds((prev) => {
419
354
  const newSet = new Set(prev);
420
355
  if (selected) {
@@ -425,22 +360,22 @@ function EventList({
425
360
  return newSet;
426
361
  });
427
362
  }, []);
428
- const handleSelectAll = React3.useCallback((selected) => {
363
+ const handleSelectAll = React2.useCallback((selected) => {
429
364
  if (selected) {
430
365
  setSelectedEventIds(new Set(paginatedEvents.map((event) => event.id)));
431
366
  } else {
432
367
  setSelectedEventIds(/* @__PURE__ */ new Set());
433
368
  }
434
369
  }, [paginatedEvents]);
435
- const toggleSelectionMode = React3.useCallback(() => {
370
+ const toggleSelectionMode = React2.useCallback(() => {
436
371
  setIsSelectionMode(!isSelectionMode);
437
372
  setSelectedEventIds(/* @__PURE__ */ new Set());
438
373
  }, [isSelectionMode]);
439
- const exitSelectionMode = React3.useCallback(() => {
374
+ const exitSelectionMode = React2.useCallback(() => {
440
375
  setIsSelectionMode(false);
441
376
  setSelectedEventIds(/* @__PURE__ */ new Set());
442
377
  }, []);
443
- const handleBatchDelete = React3.useCallback(async () => {
378
+ const handleBatchDelete = React2.useCallback(async () => {
444
379
  if (!onBatchDelete || selectedEventIds.size === 0) return;
445
380
  setBatchDeleteLoading(true);
446
381
  try {
@@ -454,10 +389,10 @@ function EventList({
454
389
  setBatchDeleteLoading(false);
455
390
  }
456
391
  }, [onBatchDelete, selectedEventIds]);
457
- const isAllSelected = React3.useMemo(() => {
392
+ const isAllSelected = React2.useMemo(() => {
458
393
  return paginatedEvents.length > 0 && paginatedEvents.every((event) => selectedEventIds.has(event.id));
459
394
  }, [paginatedEvents, selectedEventIds]);
460
- const isPartiallySelected = React3.useMemo(() => {
395
+ const isPartiallySelected = React2.useMemo(() => {
461
396
  return selectedEventIds.size > 0 && !isAllSelected;
462
397
  }, [selectedEventIds.size, isAllSelected]);
463
398
  const getPriorityDisplay = (priority) => {
@@ -520,14 +455,14 @@ function EventList({
520
455
  const renderSortButton = (field, label) => {
521
456
  const isActive = config.sort.field === field;
522
457
  const isAsc = isActive && config.sort.direction === "asc" /* ASC */;
523
- return /* @__PURE__ */ React3__default.default.createElement(
458
+ return /* @__PURE__ */ React2__default.default.createElement(
524
459
  "button",
525
460
  {
526
461
  onClick: () => handleSortChange(field),
527
462
  className: `flex items-center px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${isActive ? "bg-blue-100 text-blue-700" : "text-gray-600 hover:bg-gray-100"}`
528
463
  },
529
464
  label,
530
- /* @__PURE__ */ React3__default.default.createElement(
465
+ /* @__PURE__ */ React2__default.default.createElement(
531
466
  "svg",
532
467
  {
533
468
  className: `ml-1 w-4 h-4 transition-transform ${isActive ? isAsc ? "rotate-180" : "" : "opacity-50"}`,
@@ -535,13 +470,13 @@ function EventList({
535
470
  stroke: "currentColor",
536
471
  viewBox: "0 0 24 24"
537
472
  },
538
- /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
473
+ /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
539
474
  )
540
475
  );
541
476
  };
542
477
  const renderCheckbox = (eventId) => {
543
478
  const isChecked = selectedEventIds.has(eventId);
544
- return /* @__PURE__ */ React3__default.default.createElement(
479
+ return /* @__PURE__ */ React2__default.default.createElement(
545
480
  "input",
546
481
  {
547
482
  type: "checkbox",
@@ -555,7 +490,7 @@ function EventList({
555
490
  );
556
491
  };
557
492
  const renderSelectAllCheckbox = () => {
558
- return /* @__PURE__ */ React3__default.default.createElement(
493
+ return /* @__PURE__ */ React2__default.default.createElement(
559
494
  "input",
560
495
  {
561
496
  type: "checkbox",
@@ -568,17 +503,17 @@ function EventList({
568
503
  }
569
504
  );
570
505
  };
571
- const renderListMode = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, paginatedEvents.map((event) => {
506
+ const renderListMode = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, paginatedEvents.map((event) => {
572
507
  const priorityDisplay = getPriorityDisplay(event.priority);
573
508
  const isSelected = selectedEventIds.has(event.id);
574
- return /* @__PURE__ */ React3__default.default.createElement(
509
+ return /* @__PURE__ */ React2__default.default.createElement(
575
510
  "div",
576
511
  {
577
512
  key: event.id,
578
513
  className: `p-4 rounded-lg border-l-4 cursor-pointer hover:shadow-md transition-all ${getEventColorClass(event.color)} ${isSelected ? "ring-2 ring-blue-500 ring-opacity-50" : ""}`,
579
514
  onClick: () => !isSelectionMode && onEventClick(event)
580
515
  },
581
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start gap-3 flex-1" }, isSelectionMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "pt-1" }, renderCheckbox(event.id)), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-3 mb-2" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, event.title), /* @__PURE__ */ React3__default.default.createElement("span", { className: `px-2 py-1 text-xs font-medium rounded border ${priorityDisplay.color}` }, priorityDisplay.text)), event.description && /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 mb-2 line-clamp-2" }, event.description), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React3__default.default.createElement("span", null, event.startTime.toLocaleDateString("zh-CN"), " ", !event.allDay && event.startTime.toLocaleTimeString("zh-CN", { hour: "2-digit", minute: "2-digit" }))), event.location && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__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__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" })), /* @__PURE__ */ React3__default.default.createElement("span", null, event.location))))), !isSelectionMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-2 ml-4" }, /* @__PURE__ */ React3__default.default.createElement(
516
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start justify-between" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start gap-3 flex-1" }, isSelectionMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "pt-1" }, renderCheckbox(event.id)), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-3 mb-2" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900" }, event.title), /* @__PURE__ */ React2__default.default.createElement("span", { className: `px-2 py-1 text-xs font-medium rounded border ${priorityDisplay.color}` }, priorityDisplay.text)), event.description && /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600 mb-2 line-clamp-2" }, event.description), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-4 text-sm text-gray-500" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React2__default.default.createElement("span", null, event.startTime.toLocaleDateString("zh-CN"), " ", !event.allDay && event.startTime.toLocaleTimeString("zh-CN", { hour: "2-digit", minute: "2-digit" }))), event.location && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__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__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" })), /* @__PURE__ */ React2__default.default.createElement("span", null, event.location))))), !isSelectionMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-2 ml-4" }, /* @__PURE__ */ React2__default.default.createElement(
582
517
  "button",
583
518
  {
584
519
  onClick: (e) => {
@@ -588,8 +523,8 @@ function EventList({
588
523
  className: "p-2 text-gray-400 hover:text-blue-600 hover:bg-blue-50 rounded-lg transition-colors",
589
524
  title: "\u7F16\u8F91\u4E8B\u4EF6"
590
525
  },
591
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" }))
592
- ), /* @__PURE__ */ React3__default.default.createElement(
526
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" }))
527
+ ), /* @__PURE__ */ React2__default.default.createElement(
593
528
  "button",
594
529
  {
595
530
  onClick: (e) => {
@@ -599,24 +534,24 @@ function EventList({
599
534
  className: "p-2 text-gray-400 hover:text-red-600 hover:bg-red-50 rounded-lg transition-colors",
600
535
  title: "\u5220\u9664\u4E8B\u4EF6"
601
536
  },
602
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }))
537
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }))
603
538
  )))
604
539
  );
605
540
  }));
606
- const renderGridMode = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4" }, paginatedEvents.map((event) => {
541
+ const renderGridMode = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4" }, paginatedEvents.map((event) => {
607
542
  const priorityDisplay = getPriorityDisplay(event.priority);
608
543
  const isSelected = selectedEventIds.has(event.id);
609
- return /* @__PURE__ */ React3__default.default.createElement(
544
+ return /* @__PURE__ */ React2__default.default.createElement(
610
545
  "div",
611
546
  {
612
547
  key: event.id,
613
548
  className: `p-4 rounded-lg border cursor-pointer hover:shadow-lg transition-all ${getEventColorClass(event.color)} border-l-4 ${isSelected ? "ring-2 ring-blue-500 ring-opacity-50" : ""}`,
614
549
  onClick: () => !isSelectionMode && onEventClick(event)
615
550
  },
616
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start justify-between mb-3" }, isSelectionMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "pt-1 mr-2" }, renderCheckbox(event.id)), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 flex-1 pr-2" }, event.title), /* @__PURE__ */ React3__default.default.createElement("span", { className: `px-2 py-1 text-xs font-medium rounded border flex-shrink-0 ${priorityDisplay.color}` }, priorityDisplay.text)),
617
- event.description && /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 text-sm mb-3 line-clamp-3" }, event.description),
618
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-2 text-sm text-gray-500" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4 flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React3__default.default.createElement("span", { className: "truncate" }, event.startTime.toLocaleDateString("zh-CN"), " ", !event.allDay && event.startTime.toLocaleTimeString("zh-CN", { hour: "2-digit", minute: "2-digit" }))), event.location && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4 flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__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__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" })), /* @__PURE__ */ React3__default.default.createElement("span", { className: "truncate" }, event.location))),
619
- !isSelectionMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-end gap-2 mt-4 pt-3 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement(
551
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start justify-between mb-3" }, isSelectionMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "pt-1 mr-2" }, renderCheckbox(event.id)), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 flex-1 pr-2" }, event.title), /* @__PURE__ */ React2__default.default.createElement("span", { className: `px-2 py-1 text-xs font-medium rounded border flex-shrink-0 ${priorityDisplay.color}` }, priorityDisplay.text)),
552
+ event.description && /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600 text-sm mb-3 line-clamp-3" }, event.description),
553
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-2 text-sm text-gray-500" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4 flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React2__default.default.createElement("span", { className: "truncate" }, event.startTime.toLocaleDateString("zh-CN"), " ", !event.allDay && event.startTime.toLocaleTimeString("zh-CN", { hour: "2-digit", minute: "2-digit" }))), event.location && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4 flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__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__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" })), /* @__PURE__ */ React2__default.default.createElement("span", { className: "truncate" }, event.location))),
554
+ !isSelectionMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-end gap-2 mt-4 pt-3 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement(
620
555
  "button",
621
556
  {
622
557
  onClick: (e) => {
@@ -626,8 +561,8 @@ function EventList({
626
561
  className: "p-1.5 text-gray-400 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors",
627
562
  title: "\u7F16\u8F91\u4E8B\u4EF6"
628
563
  },
629
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" }))
630
- ), /* @__PURE__ */ React3__default.default.createElement(
564
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" }))
565
+ ), /* @__PURE__ */ React2__default.default.createElement(
631
566
  "button",
632
567
  {
633
568
  onClick: (e) => {
@@ -637,59 +572,59 @@ function EventList({
637
572
  className: "p-1.5 text-gray-400 hover:text-red-600 hover:bg-red-50 rounded transition-colors",
638
573
  title: "\u5220\u9664\u4E8B\u4EF6"
639
574
  },
640
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }))
575
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }))
641
576
  ))
642
577
  );
643
578
  }));
644
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: `space-y-6 ${className}` }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1 max-w-md" }, /* @__PURE__ */ React3__default.default.createElement(
645
- chunkIEA55H3G_js.SearchBox,
579
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: `space-y-6 ${className}` }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-1 max-w-md" }, /* @__PURE__ */ React2__default.default.createElement(
580
+ chunkG6WRJ2H2_js.SearchBox,
646
581
  {
647
582
  searchQuery: config.filter.searchText || "",
648
583
  onSearchChange: handleSearchChange,
649
584
  placeholder: "\u641C\u7D22\u4E8B\u4EF6\u6807\u9898\u3001\u63CF\u8FF0\u6216\u4F4D\u7F6E...",
650
585
  size: "medium"
651
586
  }
652
- )), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-3" }, enableBatchActions && onBatchDelete && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, !isSelectionMode ? /* @__PURE__ */ React3__default.default.createElement(
587
+ )), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-3" }, enableBatchActions && onBatchDelete && /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, !isSelectionMode ? /* @__PURE__ */ React2__default.default.createElement(
653
588
  "button",
654
589
  {
655
590
  onClick: toggleSelectionMode,
656
591
  className: "flex items-center gap-2 px-3 py-2 text-sm font-medium text-gray-700 bg-gray-100 border border-gray-300 rounded-lg hover:bg-gray-200 transition-colors"
657
592
  },
658
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" })),
593
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" })),
659
594
  "\u6279\u91CF\u64CD\u4F5C"
660
- ) : /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React3__default.default.createElement(
595
+ ) : /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React2__default.default.createElement(
661
596
  "button",
662
597
  {
663
598
  onClick: exitSelectionMode,
664
599
  className: "px-3 py-2 text-sm font-medium text-gray-700 bg-gray-100 border border-gray-300 rounded-lg hover:bg-gray-200 transition-colors"
665
600
  },
666
601
  "\u53D6\u6D88"
667
- ), selectedEventIds.size > 0 && /* @__PURE__ */ React3__default.default.createElement(
602
+ ), selectedEventIds.size > 0 && /* @__PURE__ */ React2__default.default.createElement(
668
603
  "button",
669
604
  {
670
605
  onClick: () => setShowBatchDeleteConfirm(true),
671
606
  disabled: batchDeleteLoading,
672
607
  className: "flex items-center gap-2 px-3 py-2 text-sm font-medium text-white bg-red-600 border border-red-600 rounded-lg hover:bg-red-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
673
608
  },
674
- batchDeleteLoading ? /* @__PURE__ */ React3__default.default.createElement("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-white" }) : /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" })),
609
+ batchDeleteLoading ? /* @__PURE__ */ React2__default.default.createElement("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-white" }) : /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" })),
675
610
  "\u5220\u9664\u9009\u4E2D(",
676
611
  selectedEventIds.size,
677
612
  ")"
678
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-700 mr-2" }, "\u663E\u793A\u6A21\u5F0F:"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center bg-gray-100 rounded-lg p-1" }, /* @__PURE__ */ React3__default.default.createElement(
613
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-700 mr-2" }, "\u663E\u793A\u6A21\u5F0F:"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center bg-gray-100 rounded-lg p-1" }, /* @__PURE__ */ React2__default.default.createElement(
679
614
  "button",
680
615
  {
681
616
  onClick: () => handleDisplayModeChange("list" /* LIST */),
682
617
  className: `px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${config.displayMode === "list" /* LIST */ ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`
683
618
  },
684
619
  "\u5217\u8868"
685
- ), /* @__PURE__ */ React3__default.default.createElement(
620
+ ), /* @__PURE__ */ React2__default.default.createElement(
686
621
  "button",
687
622
  {
688
623
  onClick: () => handleDisplayModeChange("grid" /* GRID */),
689
624
  className: `px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${config.displayMode === "grid" /* GRID */ ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`
690
625
  },
691
626
  "\u7F51\u683C"
692
- ))))), isSelectionMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700" }, renderSelectAllCheckbox(), "\u5168\u9009\u5F53\u524D\u9875"), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-600" }, "\u5DF2\u9009\u62E9 ", selectedEventIds.size, " \u4E2A\u4E8B\u4EF6"))), !isSelectionMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-wrap items-center gap-2 mt-4 pt-4 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-700 mr-2" }, "\u6392\u5E8F:"), renderSortButton("startTime" /* START_TIME */, "\u65E5\u671F"), renderSortButton("title" /* TITLE */, "\u6807\u9898"), renderSortButton("priority" /* PRIORITY */, "\u4F18\u5148\u7EA7"), renderSortButton("createdAt" /* CREATED_AT */, "\u521B\u5EFA\u65F6\u95F4"), renderSortButton("updatedAt" /* UPDATED_AT */, "\u66F4\u65B0\u65F6\u95F4"))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm text-gray-600" }, "\u5171 ", sortedAndFilteredEvents.length, " \u4E2A\u4E8B\u4EF6", config.filter.searchText && ` (\u641C\u7D22: "${config.filter.searchText}")`)), loading && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-center py-8" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600" })), !loading && paginatedEvents.length > 0 && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, config.displayMode === "list" /* LIST */ ? renderListMode() : renderGridMode(), totalPages > 1 && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between pt-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm text-gray-600" }, "\u7B2C ", config.currentPage, " \u9875\uFF0C\u5171 ", totalPages, " \u9875"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React3__default.default.createElement(
627
+ ))))), isSelectionMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700" }, renderSelectAllCheckbox(), "\u5168\u9009\u5F53\u524D\u9875"), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-600" }, "\u5DF2\u9009\u62E9 ", selectedEventIds.size, " \u4E2A\u4E8B\u4EF6"))), !isSelectionMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-wrap items-center gap-2 mt-4 pt-4 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-700 mr-2" }, "\u6392\u5E8F:"), renderSortButton("startTime" /* START_TIME */, "\u65E5\u671F"), renderSortButton("title" /* TITLE */, "\u6807\u9898"), renderSortButton("priority" /* PRIORITY */, "\u4F18\u5148\u7EA7"), renderSortButton("createdAt" /* CREATED_AT */, "\u521B\u5EFA\u65F6\u95F4"), renderSortButton("updatedAt" /* UPDATED_AT */, "\u66F4\u65B0\u65F6\u95F4"))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm text-gray-600" }, "\u5171 ", sortedAndFilteredEvents.length, " \u4E2A\u4E8B\u4EF6", config.filter.searchText && ` (\u641C\u7D22: "${config.filter.searchText}")`)), loading && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex justify-center py-8" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600" })), !loading && paginatedEvents.length > 0 && /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, config.displayMode === "list" /* LIST */ ? renderListMode() : renderGridMode(), totalPages > 1 && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between pt-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm text-gray-600" }, "\u7B2C ", config.currentPage, " \u9875\uFF0C\u5171 ", totalPages, " \u9875"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React2__default.default.createElement(
693
628
  "button",
694
629
  {
695
630
  onClick: () => handlePageChange(config.currentPage - 1),
@@ -697,7 +632,7 @@ function EventList({
697
632
  className: "px-3 py-1.5 text-sm border border-gray-300 rounded-lg hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"
698
633
  },
699
634
  "\u4E0A\u4E00\u9875"
700
- ), /* @__PURE__ */ React3__default.default.createElement(
635
+ ), /* @__PURE__ */ React2__default.default.createElement(
701
636
  "button",
702
637
  {
703
638
  onClick: () => handlePageChange(config.currentPage + 1),
@@ -705,8 +640,8 @@ function EventList({
705
640
  className: "px-3 py-1.5 text-sm border border-gray-300 rounded-lg hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"
706
641
  },
707
642
  "\u4E0B\u4E00\u9875"
708
- )))), !loading && paginatedEvents.length === 0 && /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-16 h-16 mx-auto mb-4 text-gray-300", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900 mb-2" }, "\u6682\u65E0\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600" }, config.filter.searchText || config.filter.priority || config.filter.color || config.filter.dateRange ? "\u6CA1\u6709\u627E\u5230\u7B26\u5408\u6761\u4EF6\u7684\u4E8B\u4EF6" : "\u8FD8\u6CA1\u6709\u521B\u5EFA\u4EFB\u4F55\u4E8B\u4EF6")), /* @__PURE__ */ React3__default.default.createElement(
709
- ConfirmModal,
643
+ )))), !loading && paginatedEvents.length === 0 && /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-16 h-16 mx-auto mb-4 text-gray-300", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900 mb-2" }, "\u6682\u65E0\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600" }, config.filter.searchText || config.filter.priority || config.filter.color || config.filter.dateRange ? "\u6CA1\u6709\u627E\u5230\u7B26\u5408\u6761\u4EF6\u7684\u4E8B\u4EF6" : "\u8FD8\u6CA1\u6709\u521B\u5EFA\u4EFB\u4F55\u4E8B\u4EF6")), /* @__PURE__ */ React2__default.default.createElement(
644
+ chunkG6WRJ2H2_js.ConfirmModal,
710
645
  {
711
646
  isOpen: showBatchDeleteConfirm,
712
647
  onClose: () => setShowBatchDeleteConfirm(false),
@@ -1010,13 +945,13 @@ var EventTypeService = class {
1010
945
 
1011
946
  // src/calendar/hooks/useEnhancedEvents.ts
1012
947
  function useEnhancedEvents() {
1013
- const [events, setEvents] = React3.useState([]);
1014
- const [loading, setLoading] = React3.useState(false);
1015
- const [error, setError] = React3.useState();
1016
- const clearError = React3.useCallback(() => {
948
+ const [events, setEvents] = React2.useState([]);
949
+ const [loading, setLoading] = React2.useState(false);
950
+ const [error, setError] = React2.useState();
951
+ const clearError = React2.useCallback(() => {
1017
952
  setError(void 0);
1018
953
  }, []);
1019
- const fetchEvents = React3.useCallback(async (startDate, endDate) => {
954
+ const fetchEvents = React2.useCallback(async (startDate, endDate) => {
1020
955
  setLoading(true);
1021
956
  setError(void 0);
1022
957
  try {
@@ -1064,7 +999,7 @@ function useEnhancedEvents() {
1064
999
  setLoading(false);
1065
1000
  }
1066
1001
  }, []);
1067
- const createEvent = React3.useCallback(async (eventData) => {
1002
+ const createEvent = React2.useCallback(async (eventData) => {
1068
1003
  setLoading(true);
1069
1004
  setError(void 0);
1070
1005
  try {
@@ -1143,7 +1078,7 @@ function useEnhancedEvents() {
1143
1078
  return "daily" /* DAILY */;
1144
1079
  }
1145
1080
  };
1146
- const createEnhancedEvent = React3.useCallback(async (eventData) => {
1081
+ const createEnhancedEvent = React2.useCallback(async (eventData) => {
1147
1082
  setLoading(true);
1148
1083
  setError(void 0);
1149
1084
  try {
@@ -1259,7 +1194,7 @@ function useEnhancedEvents() {
1259
1194
  setLoading(false);
1260
1195
  }
1261
1196
  }, []);
1262
- const updateEvent = React3.useCallback(async (eventId, eventData) => {
1197
+ const updateEvent = React2.useCallback(async (eventId, eventData) => {
1263
1198
  setLoading(true);
1264
1199
  setError(void 0);
1265
1200
  try {
@@ -1305,7 +1240,7 @@ function useEnhancedEvents() {
1305
1240
  setLoading(false);
1306
1241
  }
1307
1242
  }, []);
1308
- const deleteEvent = React3.useCallback(async (eventId, deleteAll = false) => {
1243
+ const deleteEvent = React2.useCallback(async (eventId, deleteAll = false) => {
1309
1244
  setLoading(true);
1310
1245
  setError(void 0);
1311
1246
  try {
@@ -1330,7 +1265,7 @@ function useEnhancedEvents() {
1330
1265
  setLoading(false);
1331
1266
  }
1332
1267
  }, []);
1333
- const batchDeleteEvents = React3.useCallback(async (eventIds) => {
1268
+ const batchDeleteEvents = React2.useCallback(async (eventIds) => {
1334
1269
  setLoading(true);
1335
1270
  setError(void 0);
1336
1271
  try {
@@ -1358,7 +1293,7 @@ function useEnhancedEvents() {
1358
1293
  setLoading(false);
1359
1294
  }
1360
1295
  }, []);
1361
- const updateEventTime = React3.useCallback(async (eventId, newStartTime, newEndTime) => {
1296
+ const updateEventTime = React2.useCallback(async (eventId, newStartTime, newEndTime) => {
1362
1297
  setLoading(true);
1363
1298
  setError(void 0);
1364
1299
  console.log("\u{1F504} updateEventTime \u8C03\u7528:", {
@@ -1456,8 +1391,8 @@ var ImprovedEventModal = ({
1456
1391
  event,
1457
1392
  initialDate
1458
1393
  }) => {
1459
- const [eventType, setEventType] = React3.useState("single" /* SINGLE */);
1460
- const [formData, setFormData] = React3.useState({
1394
+ const [eventType, setEventType] = React2.useState("single" /* SINGLE */);
1395
+ const [formData, setFormData] = React2.useState({
1461
1396
  // 基础信息
1462
1397
  title: "",
1463
1398
  description: "",
@@ -1484,11 +1419,11 @@ var ImprovedEventModal = ({
1484
1419
  useEndDate: true
1485
1420
  // true: 使用结束日期, false: 使用重复次数
1486
1421
  });
1487
- const [isLoading, setIsLoading] = React3.useState(false);
1488
- const [errors, setErrors] = React3.useState({});
1489
- const [showDeleteConfirm, setShowDeleteConfirm] = React3.useState(false);
1422
+ const [isLoading, setIsLoading] = React2.useState(false);
1423
+ const [errors, setErrors] = React2.useState({});
1424
+ const [showDeleteConfirm, setShowDeleteConfirm] = React2.useState(false);
1490
1425
  const isEditMode = !!event;
1491
- React3.useEffect(() => {
1426
+ React2.useEffect(() => {
1492
1427
  if (event) {
1493
1428
  const startDate = new Date(event.startTime);
1494
1429
  const endDate = new Date(event.endTime);
@@ -1653,35 +1588,35 @@ var ImprovedEventModal = ({
1653
1588
  setErrors({});
1654
1589
  onClose();
1655
1590
  };
1656
- const renderEventTypeSelector = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F3AF}"), /* @__PURE__ */ React3__default.default.createElement("label", { className: "text-base font-medium text-gray-900" }, "\u9009\u62E9\u4E8B\u4EF6\u7C7B\u578B")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4" }, /* @__PURE__ */ React3__default.default.createElement(
1591
+ const renderEventTypeSelector = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F3AF}"), /* @__PURE__ */ React2__default.default.createElement("label", { className: "text-base font-medium text-gray-900" }, "\u9009\u62E9\u4E8B\u4EF6\u7C7B\u578B")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4" }, /* @__PURE__ */ React2__default.default.createElement(
1657
1592
  "button",
1658
1593
  {
1659
1594
  type: "button",
1660
1595
  onClick: () => setEventType("single" /* SINGLE */),
1661
1596
  className: `group relative p-4 rounded-xl border-2 transition-all duration-300 transform hover:scale-105 ${eventType === "single" /* SINGLE */ ? "bg-gradient-to-br from-blue-50 to-blue-100 border-blue-300 shadow-lg ring-2 ring-blue-200" : "bg-white border-gray-200 hover:bg-gray-50 hover:border-gray-300 shadow-sm hover:shadow-md"}`
1662
1597
  },
1663
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `text-3xl mb-2 transition-transform duration-300 ${eventType === "single" /* SINGLE */ ? "scale-110" : "group-hover:scale-110"}` }, "\u{1F4C5}"), /* @__PURE__ */ React3__default.default.createElement("div", { className: `font-semibold mb-1 ${eventType === "single" /* SINGLE */ ? "text-blue-700" : "text-gray-900"}` }, "\u5355\u6B21\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u4E00\u6B21\u6027\u4E8B\u4EF6")),
1664
- eventType === "single" /* SINGLE */ && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute top-2 right-2" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-6 h-6 bg-blue-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-white text-sm" }, "\u2713")))
1665
- ), /* @__PURE__ */ React3__default.default.createElement(
1598
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `text-3xl mb-2 transition-transform duration-300 ${eventType === "single" /* SINGLE */ ? "scale-110" : "group-hover:scale-110"}` }, "\u{1F4C5}"), /* @__PURE__ */ React2__default.default.createElement("div", { className: `font-semibold mb-1 ${eventType === "single" /* SINGLE */ ? "text-blue-700" : "text-gray-900"}` }, "\u5355\u6B21\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u4E00\u6B21\u6027\u4E8B\u4EF6")),
1599
+ eventType === "single" /* SINGLE */ && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute top-2 right-2" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-6 h-6 bg-blue-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-white text-sm" }, "\u2713")))
1600
+ ), /* @__PURE__ */ React2__default.default.createElement(
1666
1601
  "button",
1667
1602
  {
1668
1603
  type: "button",
1669
1604
  onClick: () => setEventType("multi_day" /* MULTI_DAY */),
1670
1605
  className: `group relative p-4 rounded-xl border-2 transition-all duration-300 transform hover:scale-105 ${eventType === "multi_day" /* MULTI_DAY */ ? "bg-gradient-to-br from-green-50 to-green-100 border-green-300 shadow-lg ring-2 ring-green-200" : "bg-white border-gray-200 hover:bg-gray-50 hover:border-gray-300 shadow-sm hover:shadow-md"}`
1671
1606
  },
1672
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `text-3xl mb-2 transition-transform duration-300 ${eventType === "multi_day" /* MULTI_DAY */ ? "scale-110" : "group-hover:scale-110"}` }, "\u{1F5D3}\uFE0F"), /* @__PURE__ */ React3__default.default.createElement("div", { className: `font-semibold mb-1 ${eventType === "multi_day" /* MULTI_DAY */ ? "text-green-700" : "text-gray-900"}` }, "\u591A\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u8FDE\u7EED\u591A\u5929")),
1673
- eventType === "multi_day" /* MULTI_DAY */ && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute top-2 right-2" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-6 h-6 bg-green-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-white text-sm" }, "\u2713")))
1674
- ), /* @__PURE__ */ React3__default.default.createElement(
1607
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `text-3xl mb-2 transition-transform duration-300 ${eventType === "multi_day" /* MULTI_DAY */ ? "scale-110" : "group-hover:scale-110"}` }, "\u{1F5D3}\uFE0F"), /* @__PURE__ */ React2__default.default.createElement("div", { className: `font-semibold mb-1 ${eventType === "multi_day" /* MULTI_DAY */ ? "text-green-700" : "text-gray-900"}` }, "\u591A\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u8FDE\u7EED\u591A\u5929")),
1608
+ eventType === "multi_day" /* MULTI_DAY */ && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute top-2 right-2" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-6 h-6 bg-green-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-white text-sm" }, "\u2713")))
1609
+ ), /* @__PURE__ */ React2__default.default.createElement(
1675
1610
  "button",
1676
1611
  {
1677
1612
  type: "button",
1678
1613
  onClick: () => setEventType("recurring" /* RECURRING */),
1679
1614
  className: `group relative p-4 rounded-xl border-2 transition-all duration-300 transform hover:scale-105 ${eventType === "recurring" /* RECURRING */ ? "bg-gradient-to-br from-purple-50 to-purple-100 border-purple-300 shadow-lg ring-2 ring-purple-200" : "bg-white border-gray-200 hover:bg-gray-50 hover:border-gray-300 shadow-sm hover:shadow-md"}`
1680
1615
  },
1681
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `text-3xl mb-2 transition-transform duration-300 ${eventType === "recurring" /* RECURRING */ ? "scale-110" : "group-hover:scale-110"}` }, "\u{1F504}"), /* @__PURE__ */ React3__default.default.createElement("div", { className: `font-semibold mb-1 ${eventType === "recurring" /* RECURRING */ ? "text-purple-700" : "text-gray-900"}` }, "\u91CD\u590D\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u5468\u671F\u6027\u91CD\u590D")),
1682
- eventType === "recurring" /* RECURRING */ && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute top-2 right-2" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-6 h-6 bg-purple-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-white text-sm" }, "\u2713")))
1683
- )), /* @__PURE__ */ React3__default.default.createElement("div", { className: `p-4 rounded-lg transition-all duration-300 ${eventType === "single" /* SINGLE */ ? "bg-blue-50 border border-blue-200" : eventType === "multi_day" /* MULTI_DAY */ ? "bg-green-50 border border-green-200" : "bg-purple-50 border border-purple-200"}` }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-shrink-0 mt-0.5" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, eventType === "single" /* SINGLE */ ? "\u{1F4A1}" : eventType === "multi_day" /* MULTI_DAY */ ? "\u{1F4CB}" : "\u{1F514}")), /* @__PURE__ */ React3__default.default.createElement("div", null, eventType === "single" /* SINGLE */ && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "font-medium text-blue-800 mb-1" }, "\u5355\u6B21\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-blue-700" }, "\u5728\u6307\u5B9A\u7684\u65F6\u95F4\u53D1\u751F\u4E00\u6B21\u7684\u4E8B\u4EF6\uFF0C\u5982\u4F1A\u8BAE\u3001\u7EA6\u4F1A\u3001\u9762\u8BD5\u7B49\u3002\u9002\u5408\u4E00\u6B21\u6027\u7684\u6D3B\u52A8\u5B89\u6392\u3002")), eventType === "multi_day" /* MULTI_DAY */ && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "font-medium text-green-800 mb-1" }, "\u591A\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-green-700" }, "\u6301\u7EED\u591A\u5929\u7684\u5355\u4E2A\u4E8B\u4EF6\uFF0C\u5982\u57F9\u8BAD\u8BFE\u7A0B\u3001\u4F1A\u8BAE\u3001\u5047\u671F\u7B49\u3002\u4F8B\u5982\uFF1A3\u5929\u7684\u57F9\u8BAD\u8BFE\u7A0B\u62161\u5468\u7684\u5047\u671F\u3002")), eventType === "recurring" /* RECURRING */ && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "font-medium text-purple-800 mb-1" }, "\u91CD\u590D\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-purple-700" }, "\u6309\u7167\u89C4\u5F8B\u91CD\u590D\u53D1\u751F\u7684\u4E8B\u4EF6\uFF0C\u5982\u6BCF\u5929\u7684\u6668\u4F1A\u3001\u6BCF\u5468\u7684\u4F8B\u4F1A\u3001\u6BCF\u6708\u7684\u603B\u7ED3\u7B49\u3002\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u521B\u5EFA\u591A\u4E2A\u4E8B\u4EF6\u5B9E\u4F8B\u3002"))))));
1684
- const renderBasicForm = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F4DD}"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u4E8B\u4EF6\u6807\u9898"), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-red-500" }, "*")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
1616
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `text-3xl mb-2 transition-transform duration-300 ${eventType === "recurring" /* RECURRING */ ? "scale-110" : "group-hover:scale-110"}` }, "\u{1F504}"), /* @__PURE__ */ React2__default.default.createElement("div", { className: `font-semibold mb-1 ${eventType === "recurring" /* RECURRING */ ? "text-purple-700" : "text-gray-900"}` }, "\u91CD\u590D\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u5468\u671F\u6027\u91CD\u590D")),
1617
+ eventType === "recurring" /* RECURRING */ && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute top-2 right-2" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-6 h-6 bg-purple-500 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-white text-sm" }, "\u2713")))
1618
+ )), /* @__PURE__ */ React2__default.default.createElement("div", { className: `p-4 rounded-lg transition-all duration-300 ${eventType === "single" /* SINGLE */ ? "bg-blue-50 border border-blue-200" : eventType === "multi_day" /* MULTI_DAY */ ? "bg-green-50 border border-green-200" : "bg-purple-50 border border-purple-200"}` }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-shrink-0 mt-0.5" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, eventType === "single" /* SINGLE */ ? "\u{1F4A1}" : eventType === "multi_day" /* MULTI_DAY */ ? "\u{1F4CB}" : "\u{1F514}")), /* @__PURE__ */ React2__default.default.createElement("div", null, eventType === "single" /* SINGLE */ && /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "font-medium text-blue-800 mb-1" }, "\u5355\u6B21\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-blue-700" }, "\u5728\u6307\u5B9A\u7684\u65F6\u95F4\u53D1\u751F\u4E00\u6B21\u7684\u4E8B\u4EF6\uFF0C\u5982\u4F1A\u8BAE\u3001\u7EA6\u4F1A\u3001\u9762\u8BD5\u7B49\u3002\u9002\u5408\u4E00\u6B21\u6027\u7684\u6D3B\u52A8\u5B89\u6392\u3002")), eventType === "multi_day" /* MULTI_DAY */ && /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "font-medium text-green-800 mb-1" }, "\u591A\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-green-700" }, "\u6301\u7EED\u591A\u5929\u7684\u5355\u4E2A\u4E8B\u4EF6\uFF0C\u5982\u57F9\u8BAD\u8BFE\u7A0B\u3001\u4F1A\u8BAE\u3001\u5047\u671F\u7B49\u3002\u4F8B\u5982\uFF1A3\u5929\u7684\u57F9\u8BAD\u8BFE\u7A0B\u62161\u5468\u7684\u5047\u671F\u3002")), eventType === "recurring" /* RECURRING */ && /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "font-medium text-purple-800 mb-1" }, "\u91CD\u590D\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-purple-700" }, "\u6309\u7167\u89C4\u5F8B\u91CD\u590D\u53D1\u751F\u7684\u4E8B\u4EF6\uFF0C\u5982\u6BCF\u5929\u7684\u6668\u4F1A\u3001\u6BCF\u5468\u7684\u4F8B\u4F1A\u3001\u6BCF\u6708\u7684\u603B\u7ED3\u7B49\u3002\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u521B\u5EFA\u591A\u4E2A\u4E8B\u4EF6\u5B9E\u4F8B\u3002"))))));
1619
+ const renderBasicForm = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F4DD}"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u4E8B\u4EF6\u6807\u9898"), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-red-500" }, "*")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement(
1685
1620
  "input",
1686
1621
  {
1687
1622
  type: "text",
@@ -1690,7 +1625,7 @@ var ImprovedEventModal = ({
1690
1625
  className: "w-full px-4 py-3 border-2 border-gray-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200 placeholder-gray-400 text-gray-900 bg-white hover:border-gray-300",
1691
1626
  placeholder: "\u4E3A\u4F60\u7684\u4E8B\u4EF6\u8D77\u4E2A\u540D\u5B57..."
1692
1627
  }
1693
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `w-2 h-2 rounded-full transition-colors duration-200 ${formData.title.trim() ? "bg-green-400" : "bg-gray-300"}` }))), errors.title && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2 mt-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-red-500 text-sm" }, "\u26A0\uFE0F"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-red-600" }, errors.title))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F4C4}"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u4E8B\u4EF6\u63CF\u8FF0")), /* @__PURE__ */ React3__default.default.createElement(
1628
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `w-2 h-2 rounded-full transition-colors duration-200 ${formData.title.trim() ? "bg-green-400" : "bg-gray-300"}` }))), errors.title && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2 mt-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-red-500 text-sm" }, "\u26A0\uFE0F"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-red-600" }, errors.title))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F4C4}"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u4E8B\u4EF6\u63CF\u8FF0")), /* @__PURE__ */ React2__default.default.createElement(
1694
1629
  "textarea",
1695
1630
  {
1696
1631
  value: formData.description,
@@ -1699,7 +1634,7 @@ var ImprovedEventModal = ({
1699
1634
  className: "w-full px-4 py-3 border-2 border-gray-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200 placeholder-gray-400 text-gray-900 bg-white hover:border-gray-300 resize-none",
1700
1635
  placeholder: "\u63CF\u8FF0\u4E00\u4E0B\u8FD9\u4E2A\u4E8B\u4EF6\u7684\u8BE6\u7EC6\u4FE1\u606F..."
1701
1636
  }
1702
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-between items-center mt-2" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500" }, formData.description.length > 0 && `\u5DF2\u8F93\u5165 ${formData.description.length} \u4E2A\u5B57\u7B26`))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F4CD}"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u5730\u70B9")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
1637
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex justify-between items-center mt-2" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500" }, formData.description.length > 0 && `\u5DF2\u8F93\u5165 ${formData.description.length} \u4E2A\u5B57\u7B26`))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F4CD}"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u5730\u70B9")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement(
1703
1638
  "input",
1704
1639
  {
1705
1640
  type: "text",
@@ -1708,7 +1643,7 @@ var ImprovedEventModal = ({
1708
1643
  className: "w-full px-4 py-3 border-2 border-gray-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200 placeholder-gray-400 text-gray-900 bg-white hover:border-gray-300",
1709
1644
  placeholder: "\u4E8B\u4EF6\u4E3E\u529E\u5730\u70B9..."
1710
1645
  }
1711
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `w-2 h-2 rounded-full transition-colors duration-200 ${formData.location.trim() ? "bg-green-400" : "bg-gray-300"}` })))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-gray-50 rounded-xl p-4" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center justify-between cursor-pointer group" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F305}"), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm font-medium text-gray-900" }, "\u5168\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u4E0D\u8BBE\u7F6E\u5177\u4F53\u65F6\u95F4\uFF0C\u6574\u5929\u6709\u6548"))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
1646
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `w-2 h-2 rounded-full transition-colors duration-200 ${formData.location.trim() ? "bg-green-400" : "bg-gray-300"}` })))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-gray-50 rounded-xl p-4" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center justify-between cursor-pointer group" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F305}"), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm font-medium text-gray-900" }, "\u5168\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u4E0D\u8BBE\u7F6E\u5177\u4F53\u65F6\u95F4\uFF0C\u6574\u5929\u6709\u6548"))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement(
1712
1647
  "input",
1713
1648
  {
1714
1649
  type: "checkbox",
@@ -1717,13 +1652,13 @@ var ImprovedEventModal = ({
1717
1652
  onChange: (e) => handleInputChange("allDay", e.target.checked),
1718
1653
  className: "sr-only"
1719
1654
  }
1720
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: `w-12 h-6 rounded-full transition-colors duration-200 ${formData.allDay ? "bg-blue-500" : "bg-gray-300"}` }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `w-5 h-5 bg-white rounded-full shadow-md transform transition-transform duration-200 ${formData.allDay ? "translate-x-6" : "translate-x-0.5"} translate-y-0.5` }))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F3A8}"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u4E8B\u4EF6\u989C\u8272")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
1655
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: `w-12 h-6 rounded-full transition-colors duration-200 ${formData.allDay ? "bg-blue-500" : "bg-gray-300"}` }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `w-5 h-5 bg-white rounded-full shadow-md transform transition-transform duration-200 ${formData.allDay ? "translate-x-6" : "translate-x-0.5"} translate-y-0.5` }))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F3A8}"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u4E8B\u4EF6\u989C\u8272")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement(
1721
1656
  "div",
1722
1657
  {
1723
1658
  className: "w-12 h-12 rounded-xl border-2 border-gray-200 flex items-center justify-center cursor-pointer hover:scale-105 transition-transform duration-200 shadow-sm",
1724
1659
  style: { backgroundColor: formData.color }
1725
1660
  },
1726
- /* @__PURE__ */ React3__default.default.createElement(
1661
+ /* @__PURE__ */ React2__default.default.createElement(
1727
1662
  "input",
1728
1663
  {
1729
1664
  type: "color",
@@ -1732,7 +1667,7 @@ var ImprovedEventModal = ({
1732
1667
  className: "w-8 h-8 border-none rounded-lg cursor-pointer opacity-0 absolute"
1733
1668
  }
1734
1669
  )
1735
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm font-medium text-gray-900", style: { color: formData.color } }, formData.color.toUpperCase()), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u70B9\u51FB\u8272\u5757\u9009\u62E9\u989C\u8272"))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex space-x-2" }, ["#3b82f6", "#ef4444", "#10b981", "#f59e0b", "#8b5cf6", "#ec4899"].map((color) => /* @__PURE__ */ React3__default.default.createElement(
1670
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm font-medium text-gray-900", style: { color: formData.color } }, formData.color.toUpperCase()), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500" }, "\u70B9\u51FB\u8272\u5757\u9009\u62E9\u989C\u8272"))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex space-x-2" }, ["#3b82f6", "#ef4444", "#10b981", "#f59e0b", "#8b5cf6", "#ec4899"].map((color) => /* @__PURE__ */ React2__default.default.createElement(
1736
1671
  "button",
1737
1672
  {
1738
1673
  key: color,
@@ -1741,12 +1676,12 @@ var ImprovedEventModal = ({
1741
1676
  className: `w-8 h-8 rounded-lg border-2 hover:scale-105 transition-all duration-200 ${formData.color === color ? "border-gray-400 ring-2 ring-gray-200" : "border-gray-200"}`,
1742
1677
  style: { backgroundColor: color }
1743
1678
  }
1744
- ))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u2B50"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u4F18\u5148\u7EA7")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-2" }, [
1679
+ ))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-gray-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u2B50"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u4F18\u5148\u7EA7")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-2" }, [
1745
1680
  { value: "low" /* LOW */, label: "\u4F4E", icon: "\u{1F4D8}", color: "text-blue-600 bg-blue-50 border-blue-200" },
1746
1681
  { value: "normal" /* NORMAL */, label: "\u666E\u901A", icon: "\u{1F4D7}", color: "text-green-600 bg-green-50 border-green-200" },
1747
1682
  { value: "high" /* HIGH */, label: "\u9AD8", icon: "\u{1F4D9}", color: "text-yellow-600 bg-yellow-50 border-yellow-200" },
1748
1683
  { value: "urgent" /* URGENT */, label: "\u7D27\u6025", icon: "\u{1F4D5}", color: "text-red-600 bg-red-50 border-red-200" }
1749
- ].map((priority) => /* @__PURE__ */ React3__default.default.createElement("label", { key: priority.value, className: "flex items-center cursor-pointer group" }, /* @__PURE__ */ React3__default.default.createElement(
1684
+ ].map((priority) => /* @__PURE__ */ React2__default.default.createElement("label", { key: priority.value, className: "flex items-center cursor-pointer group" }, /* @__PURE__ */ React2__default.default.createElement(
1750
1685
  "input",
1751
1686
  {
1752
1687
  type: "radio",
@@ -1756,8 +1691,8 @@ var ImprovedEventModal = ({
1756
1691
  onChange: (e) => handleInputChange("priority", e.target.value),
1757
1692
  className: "sr-only"
1758
1693
  }
1759
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: `flex items-center space-x-3 px-3 py-2 rounded-lg border-2 transition-all duration-200 flex-1 ${formData.priority === priority.value ? priority.color + " ring-2 ring-opacity-20" : "text-gray-600 bg-white border-gray-200 hover:bg-gray-50"}` }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, priority.icon), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm font-medium" }, priority.label), formData.priority === priority.value && /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-auto text-sm" }, "\u2713"))))))));
1760
- const renderSingleEventForm = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, !formData.allDay && /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-blue-50 rounded-xl p-4 border border-blue-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-blue-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F550}"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-red-500" }, "*")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
1694
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: `flex items-center space-x-3 px-3 py-2 rounded-lg border-2 transition-all duration-200 flex-1 ${formData.priority === priority.value ? priority.color + " ring-2 ring-opacity-20" : "text-gray-600 bg-white border-gray-200 hover:bg-gray-50"}` }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, priority.icon), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm font-medium" }, priority.label), formData.priority === priority.value && /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-auto text-sm" }, "\u2713"))))))));
1695
+ const renderSingleEventForm = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, !formData.allDay && /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-blue-50 rounded-xl p-4 border border-blue-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-blue-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F550}"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-red-500" }, "*")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement(
1761
1696
  "input",
1762
1697
  {
1763
1698
  type: "datetime-local",
@@ -1765,7 +1700,7 @@ var ImprovedEventModal = ({
1765
1700
  onChange: (e) => handleInputChange("startTime", e.target.value),
1766
1701
  className: "w-full px-4 py-3 border-2 border-blue-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200 text-gray-900 bg-white hover:border-blue-300"
1767
1702
  }
1768
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-blue-500 text-sm" }, "\u{1F4C5}")))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-blue-900 mb-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-lg" }, "\u{1F555}"), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-red-500" }, "*")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
1703
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-blue-500 text-sm" }, "\u{1F4C5}")))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "group" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center space-x-2 text-sm font-medium text-blue-900 mb-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-lg" }, "\u{1F555}"), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-red-500" }, "*")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement(
1769
1704
  "input",
1770
1705
  {
1771
1706
  type: "datetime-local",
@@ -1773,8 +1708,8 @@ var ImprovedEventModal = ({
1773
1708
  onChange: (e) => handleInputChange("endTime", e.target.value),
1774
1709
  className: "w-full px-4 py-3 border-2 border-blue-200 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200 text-gray-900 bg-white hover:border-blue-300"
1775
1710
  }
1776
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-blue-500 text-sm" }, "\u{1F4C5}"))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-4 p-3 bg-blue-100 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start space-x-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-blue-600 text-sm" }, "\u{1F4A1}"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-blue-700" }, /* @__PURE__ */ React3__default.default.createElement("strong", null, "\u63D0\u793A\uFF1A"), "\u5355\u6B21\u4E8B\u4EF6\u5728\u6307\u5B9A\u7684\u65F6\u95F4\u6BB5\u5185\u53D1\u751F\u4E00\u6B21\u3002\u8BF7\u786E\u4FDD\u7ED3\u675F\u65F6\u95F4\u665A\u4E8E\u5F00\u59CB\u65F6\u95F4\u3002")))), formData.allDay && /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-amber-50 rounded-xl p-4 border border-amber-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-2xl" }, "\u{1F305}"), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "font-medium text-amber-800" }, "\u5168\u5929\u4E8B\u4EF6\u6A21\u5F0F"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-amber-700 mt-1" }, "\u6B64\u4E8B\u4EF6\u5C06\u6301\u7EED\u6574\u5929\uFF0C\u65E0\u9700\u8BBE\u7F6E\u5177\u4F53\u65F6\u95F4\u3002\u4E8B\u4EF6\u5C06\u5728\u9009\u5B9A\u65E5\u671F\u7684\u5168\u5929\u663E\u793A\u3002")))));
1777
- const renderMultiDayEventForm = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65E5\u671F *"), /* @__PURE__ */ React3__default.default.createElement(
1711
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-y-0 right-0 flex items-center pr-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-blue-500 text-sm" }, "\u{1F4C5}"))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "mt-4 p-3 bg-blue-100 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start space-x-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-blue-600 text-sm" }, "\u{1F4A1}"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-blue-700" }, /* @__PURE__ */ React2__default.default.createElement("strong", null, "\u63D0\u793A\uFF1A"), "\u5355\u6B21\u4E8B\u4EF6\u5728\u6307\u5B9A\u7684\u65F6\u95F4\u6BB5\u5185\u53D1\u751F\u4E00\u6B21\u3002\u8BF7\u786E\u4FDD\u7ED3\u675F\u65F6\u95F4\u665A\u4E8E\u5F00\u59CB\u65F6\u95F4\u3002")))), formData.allDay && /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-amber-50 rounded-xl p-4 border border-amber-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-2xl" }, "\u{1F305}"), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "font-medium text-amber-800" }, "\u5168\u5929\u4E8B\u4EF6\u6A21\u5F0F"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-amber-700 mt-1" }, "\u6B64\u4E8B\u4EF6\u5C06\u6301\u7EED\u6574\u5929\uFF0C\u65E0\u9700\u8BBE\u7F6E\u5177\u4F53\u65F6\u95F4\u3002\u4E8B\u4EF6\u5C06\u5728\u9009\u5B9A\u65E5\u671F\u7684\u5168\u5929\u663E\u793A\u3002")))));
1712
+ const renderMultiDayEventForm = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65E5\u671F *"), /* @__PURE__ */ React2__default.default.createElement(
1778
1713
  "input",
1779
1714
  {
1780
1715
  type: "date",
@@ -1782,7 +1717,7 @@ var ImprovedEventModal = ({
1782
1717
  onChange: (e) => handleInputChange("startDate", e.target.value),
1783
1718
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1784
1719
  }
1785
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u65E5\u671F *"), /* @__PURE__ */ React3__default.default.createElement(
1720
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u65E5\u671F *"), /* @__PURE__ */ React2__default.default.createElement(
1786
1721
  "input",
1787
1722
  {
1788
1723
  type: "date",
@@ -1790,7 +1725,7 @@ var ImprovedEventModal = ({
1790
1725
  onChange: (e) => handleInputChange("endDate", e.target.value),
1791
1726
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1792
1727
  }
1793
- ))), !formData.allDay && /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u6BCF\u65E5\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement(
1728
+ ))), !formData.allDay && /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u6BCF\u65E5\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement(
1794
1729
  "input",
1795
1730
  {
1796
1731
  type: "time",
@@ -1798,7 +1733,7 @@ var ImprovedEventModal = ({
1798
1733
  onChange: (e) => handleInputChange("dailyStartTime", e.target.value),
1799
1734
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1800
1735
  }
1801
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u6BCF\u65E5\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement(
1736
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u6BCF\u65E5\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement(
1802
1737
  "input",
1803
1738
  {
1804
1739
  type: "time",
@@ -1806,8 +1741,8 @@ var ImprovedEventModal = ({
1806
1741
  onChange: (e) => handleInputChange("dailyEndTime", e.target.value),
1807
1742
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1808
1743
  }
1809
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-3 bg-blue-50 rounded-lg text-sm text-blue-700" }, /* @__PURE__ */ React3__default.default.createElement("strong", null, "\u793A\u4F8B"), "\uFF1A\u5982\u679C\u60A8\u8981\u521B\u5EFA\u4E00\u4E2A\u4ECE21\u53F7\u523023\u53F7\u7684\u57F9\u8BAD\u8BFE\u7A0B\uFF0C\u7CFB\u7EDF\u5C06\u5728\u8FD9\u4E09\u5929\u5185\u6BCF\u5929\u90FD\u521B\u5EFA\u4E00\u4E2A\u4E8B\u4EF6\u5B9E\u4F8B\u3002"));
1810
- const renderRecurringEventForm = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65E5\u671F *"), /* @__PURE__ */ React3__default.default.createElement(
1744
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "p-3 bg-blue-50 rounded-lg text-sm text-blue-700" }, /* @__PURE__ */ React2__default.default.createElement("strong", null, "\u793A\u4F8B"), "\uFF1A\u5982\u679C\u60A8\u8981\u521B\u5EFA\u4E00\u4E2A\u4ECE21\u53F7\u523023\u53F7\u7684\u57F9\u8BAD\u8BFE\u7A0B\uFF0C\u7CFB\u7EDF\u5C06\u5728\u8FD9\u4E09\u5929\u5185\u6BCF\u5929\u90FD\u521B\u5EFA\u4E00\u4E2A\u4E8B\u4EF6\u5B9E\u4F8B\u3002"));
1745
+ const renderRecurringEventForm = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65E5\u671F *"), /* @__PURE__ */ React2__default.default.createElement(
1811
1746
  "input",
1812
1747
  {
1813
1748
  type: "date",
@@ -1815,7 +1750,7 @@ var ImprovedEventModal = ({
1815
1750
  onChange: (e) => handleInputChange("recurrenceStartDate", e.target.value),
1816
1751
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1817
1752
  }
1818
- )), !formData.allDay && /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65F6\u95F4 *"), /* @__PURE__ */ React3__default.default.createElement(
1753
+ )), !formData.allDay && /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65F6\u95F4 *"), /* @__PURE__ */ React2__default.default.createElement(
1819
1754
  "input",
1820
1755
  {
1821
1756
  type: "datetime-local",
@@ -1823,7 +1758,7 @@ var ImprovedEventModal = ({
1823
1758
  onChange: (e) => handleInputChange("recurrenceStartTime", e.target.value),
1824
1759
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1825
1760
  }
1826
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u65F6\u95F4 *"), /* @__PURE__ */ React3__default.default.createElement(
1761
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u65F6\u95F4 *"), /* @__PURE__ */ React2__default.default.createElement(
1827
1762
  "input",
1828
1763
  {
1829
1764
  type: "datetime-local",
@@ -1831,18 +1766,18 @@ var ImprovedEventModal = ({
1831
1766
  onChange: (e) => handleInputChange("recurrenceEndTime", e.target.value),
1832
1767
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1833
1768
  }
1834
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u91CD\u590D\u6A21\u5F0F *"), /* @__PURE__ */ React3__default.default.createElement(
1769
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u91CD\u590D\u6A21\u5F0F *"), /* @__PURE__ */ React2__default.default.createElement(
1835
1770
  "select",
1836
1771
  {
1837
1772
  value: formData.recurrencePattern,
1838
1773
  onChange: (e) => handleInputChange("recurrencePattern", e.target.value),
1839
1774
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1840
1775
  },
1841
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "daily" /* DAILY */ }, "\u6BCF\u5929"),
1842
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "weekly" /* WEEKLY */ }, "\u6BCF\u5468"),
1843
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "monthly" /* MONTHLY */ }, "\u6BCF\u6708"),
1844
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "yearly" /* YEARLY */ }, "\u6BCF\u5E74")
1845
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u91CD\u590D\u95F4\u9694"), /* @__PURE__ */ React3__default.default.createElement(
1776
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "daily" /* DAILY */ }, "\u6BCF\u5929"),
1777
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "weekly" /* WEEKLY */ }, "\u6BCF\u5468"),
1778
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "monthly" /* MONTHLY */ }, "\u6BCF\u6708"),
1779
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "yearly" /* YEARLY */ }, "\u6BCF\u5E74")
1780
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u91CD\u590D\u95F4\u9694"), /* @__PURE__ */ React2__default.default.createElement(
1846
1781
  "input",
1847
1782
  {
1848
1783
  type: "number",
@@ -1852,7 +1787,7 @@ var ImprovedEventModal = ({
1852
1787
  onChange: (e) => handleInputChange("recurrenceInterval", parseInt(e.target.value) || 1),
1853
1788
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1854
1789
  }
1855
- ))), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u6761\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
1790
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u6761\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
1856
1791
  "input",
1857
1792
  {
1858
1793
  type: "radio",
@@ -1860,7 +1795,7 @@ var ImprovedEventModal = ({
1860
1795
  onChange: () => handleInputChange("useEndDate", true),
1861
1796
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300"
1862
1797
  }
1863
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u7ED3\u675F\u65E5\u671F")), formData.useEndDate && /* @__PURE__ */ React3__default.default.createElement(
1798
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u7ED3\u675F\u65E5\u671F")), formData.useEndDate && /* @__PURE__ */ React2__default.default.createElement(
1864
1799
  "input",
1865
1800
  {
1866
1801
  type: "date",
@@ -1868,7 +1803,7 @@ var ImprovedEventModal = ({
1868
1803
  onChange: (e) => handleInputChange("recurrenceEndDate", e.target.value),
1869
1804
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
1870
1805
  }
1871
- ), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
1806
+ ), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
1872
1807
  "input",
1873
1808
  {
1874
1809
  type: "radio",
@@ -1876,7 +1811,7 @@ var ImprovedEventModal = ({
1876
1811
  onChange: () => handleInputChange("useEndDate", false),
1877
1812
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300"
1878
1813
  }
1879
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u91CD\u590D\u6B21\u6570")), !formData.useEndDate && /* @__PURE__ */ React3__default.default.createElement(
1814
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u91CD\u590D\u6B21\u6570")), !formData.useEndDate && /* @__PURE__ */ React2__default.default.createElement(
1880
1815
  "input",
1881
1816
  {
1882
1817
  type: "number",
@@ -1887,25 +1822,25 @@ var ImprovedEventModal = ({
1887
1822
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
1888
1823
  placeholder: "\u8F93\u5165\u91CD\u590D\u6B21\u6570"
1889
1824
  }
1890
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-3 bg-purple-50 rounded-lg text-sm text-purple-700" }, /* @__PURE__ */ React3__default.default.createElement("strong", null, "\u793A\u4F8B"), '\uFF1A\u9009\u62E9"\u6BCF\u5929\u91CD\u590D3\u6B21"\u5C06\u521B\u5EFA3\u4E2A\u72EC\u7ACB\u7684\u4E8B\u4EF6\u5B9E\u4F8B\uFF0C\u5206\u522B\u5728\u8FDE\u7EED\u76843\u5929\u53D1\u751F\u3002'));
1891
- return /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement(Modal, { isOpen, onClose: handleClose, width: "800px", height: "auto" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200 bg-gradient-to-r from-blue-50 to-indigo-50" }, /* @__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: "w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-blue-600 text-lg" }, isEditMode ? "\u270F\uFE0F" : "\u2795")), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900" }, isEditMode ? "\u7F16\u8F91\u4E8B\u4EF6" : "\u521B\u5EFA\u65B0\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, isEditMode ? "\u4FEE\u6539\u4E8B\u4EF6\u4FE1\u606F" : "\u586B\u5199\u4E8B\u4EF6\u8BE6\u7EC6\u4FE1\u606F"))), /* @__PURE__ */ React3__default.default.createElement(
1825
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "p-3 bg-purple-50 rounded-lg text-sm text-purple-700" }, /* @__PURE__ */ React2__default.default.createElement("strong", null, "\u793A\u4F8B"), '\uFF1A\u9009\u62E9"\u6BCF\u5929\u91CD\u590D3\u6B21"\u5C06\u521B\u5EFA3\u4E2A\u72EC\u7ACB\u7684\u4E8B\u4EF6\u5B9E\u4F8B\uFF0C\u5206\u522B\u5728\u8FDE\u7EED\u76843\u5929\u53D1\u751F\u3002'));
1826
+ return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement(chunkG6WRJ2H2_js.Modal, { isOpen, onClose: handleClose, width: "800px", height: "auto" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200 bg-gradient-to-r from-blue-50 to-indigo-50" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-blue-600 text-lg" }, isEditMode ? "\u270F\uFE0F" : "\u2795")), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900" }, isEditMode ? "\u7F16\u8F91\u4E8B\u4EF6" : "\u521B\u5EFA\u65B0\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, isEditMode ? "\u4FEE\u6539\u4E8B\u4EF6\u4FE1\u606F" : "\u586B\u5199\u4E8B\u4EF6\u8BE6\u7EC6\u4FE1\u606F"))), /* @__PURE__ */ React2__default.default.createElement(
1892
1827
  "button",
1893
1828
  {
1894
1829
  type: "button",
1895
1830
  onClick: handleClose,
1896
1831
  className: "w-8 h-8 flex items-center justify-center rounded-full hover:bg-gray-100 transition-colors"
1897
1832
  },
1898
- /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-gray-400 text-xl" }, "\xD7")
1899
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-6 max-h-[70vh] overflow-y-auto" }, /* @__PURE__ */ React3__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-8" }, !isEditMode && /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-gray-50 rounded-lg p-4" }, renderEventTypeSelector()), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2 mb-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-1 h-6 bg-blue-500 rounded-full" }), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u57FA\u672C\u4FE1\u606F")), renderBasicForm()), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2 mb-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-1 h-6 bg-green-500 rounded-full" }), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u65F6\u95F4\u8BBE\u7F6E")), eventType === "single" /* SINGLE */ && renderSingleEventForm(), eventType === "multi_day" /* MULTI_DAY */ && renderMultiDayEventForm(), eventType === "recurring" /* RECURRING */ && renderRecurringEventForm()), (errors.general || errors.submit) && /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-3" }, errors.general && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start space-x-3 p-4 bg-red-50 border border-red-200 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-red-500 text-lg" }, "\u26A0\uFE0F")), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "text-sm font-medium text-red-800" }, "\u8868\u5355\u9A8C\u8BC1\u9519\u8BEF"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-red-600 mt-1" }, errors.general))), errors.submit && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start space-x-3 p-4 bg-red-50 border border-red-200 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-red-500 text-lg" }, "\u274C")), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "text-sm font-medium text-red-800" }, "\u4FDD\u5B58\u5931\u8D25"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-red-600 mt-1" }, errors.submit)))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-4 border-t border-gray-200 bg-gray-50" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3__default.default.createElement("div", null, isEditMode && onDelete && /* @__PURE__ */ React3__default.default.createElement(
1833
+ /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-gray-400 text-xl" }, "\xD7")
1834
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "px-6 py-6 max-h-[70vh] overflow-y-auto" }, /* @__PURE__ */ React2__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-8" }, !isEditMode && /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-gray-50 rounded-lg p-4" }, renderEventTypeSelector()), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2 mb-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-1 h-6 bg-blue-500 rounded-full" }), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u57FA\u672C\u4FE1\u606F")), renderBasicForm()), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2 mb-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-1 h-6 bg-green-500 rounded-full" }), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u65F6\u95F4\u8BBE\u7F6E")), eventType === "single" /* SINGLE */ && renderSingleEventForm(), eventType === "multi_day" /* MULTI_DAY */ && renderMultiDayEventForm(), eventType === "recurring" /* RECURRING */ && renderRecurringEventForm()), (errors.general || errors.submit) && /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-3" }, errors.general && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start space-x-3 p-4 bg-red-50 border border-red-200 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-red-500 text-lg" }, "\u26A0\uFE0F")), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "text-sm font-medium text-red-800" }, "\u8868\u5355\u9A8C\u8BC1\u9519\u8BEF"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-red-600 mt-1" }, errors.general))), errors.submit && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start space-x-3 p-4 bg-red-50 border border-red-200 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-red-500 text-lg" }, "\u274C")), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "text-sm font-medium text-red-800" }, "\u4FDD\u5B58\u5931\u8D25"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-red-600 mt-1" }, errors.submit)))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "px-6 py-4 border-t border-gray-200 bg-gray-50" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2__default.default.createElement("div", null, isEditMode && onDelete && /* @__PURE__ */ React2__default.default.createElement(
1900
1835
  "button",
1901
1836
  {
1902
1837
  type: "button",
1903
1838
  onClick: () => setShowDeleteConfirm(true),
1904
1839
  className: "inline-flex items-center px-4 py-2 text-sm font-medium text-red-600 bg-white border border-red-300 rounded-lg hover:bg-red-50 hover:border-red-400 transition-all duration-200 shadow-sm hover:shadow-md"
1905
1840
  },
1906
- /* @__PURE__ */ React3__default.default.createElement("span", { className: "mr-2" }, "\u{1F5D1}\uFE0F"),
1841
+ /* @__PURE__ */ React2__default.default.createElement("span", { className: "mr-2" }, "\u{1F5D1}\uFE0F"),
1907
1842
  "\u5220\u9664\u4E8B\u4EF6"
1908
- )), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
1843
+ )), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement(
1909
1844
  "button",
1910
1845
  {
1911
1846
  type: "button",
@@ -1913,7 +1848,7 @@ var ImprovedEventModal = ({
1913
1848
  className: "inline-flex items-center px-6 py-2.5 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50 hover:border-gray-400 transition-all duration-200 shadow-sm hover:shadow-md"
1914
1849
  },
1915
1850
  "\u53D6\u6D88"
1916
- ), /* @__PURE__ */ React3__default.default.createElement(
1851
+ ), /* @__PURE__ */ React2__default.default.createElement(
1917
1852
  "button",
1918
1853
  {
1919
1854
  type: "submit",
@@ -1921,11 +1856,11 @@ var ImprovedEventModal = ({
1921
1856
  onClick: handleSubmit,
1922
1857
  className: "inline-flex items-center px-6 py-2.5 text-sm font-medium text-white bg-gradient-to-r from-blue-600 to-blue-700 border border-blue-600 rounded-lg hover:from-blue-700 hover:to-blue-800 disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 shadow-md hover:shadow-lg transform hover:-translate-y-0.5"
1923
1858
  },
1924
- isLoading && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mr-2 w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin" }),
1925
- /* @__PURE__ */ React3__default.default.createElement("span", { className: "mr-2" }, isEditMode ? "\u{1F4BE}" : "\u2728"),
1859
+ isLoading && /* @__PURE__ */ React2__default.default.createElement("div", { className: "mr-2 w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin" }),
1860
+ /* @__PURE__ */ React2__default.default.createElement("span", { className: "mr-2" }, isEditMode ? "\u{1F4BE}" : "\u2728"),
1926
1861
  isLoading ? "\u4FDD\u5B58\u4E2D..." : isEditMode ? "\u66F4\u65B0\u4E8B\u4EF6" : "\u521B\u5EFA\u4E8B\u4EF6"
1927
- )))))), /* @__PURE__ */ React3__default.default.createElement(
1928
- ConfirmModal,
1862
+ )))))), /* @__PURE__ */ React2__default.default.createElement(
1863
+ chunkG6WRJ2H2_js.ConfirmModal,
1929
1864
  {
1930
1865
  isOpen: showDeleteConfirm,
1931
1866
  onClose: () => setShowDeleteConfirm(false),
@@ -1940,13 +1875,13 @@ var ImprovedEventModal = ({
1940
1875
  };
1941
1876
  var ImprovedEventModal_default = ImprovedEventModal;
1942
1877
  function useEventDrag(events, onEventUpdate) {
1943
- const [dragState, setDragState] = React3.useState({
1878
+ const [dragState, setDragState] = React2.useState({
1944
1879
  isDragging: false,
1945
1880
  draggedEvent: null,
1946
1881
  dragOverDate: null,
1947
1882
  previewTime: null
1948
1883
  });
1949
- const handleDragStart = React3.useCallback((event) => {
1884
+ const handleDragStart = React2.useCallback((event) => {
1950
1885
  const eventId = parseInt(event.active.id);
1951
1886
  const draggedEvent = events.find((e) => e.id === eventId);
1952
1887
  console.log("\u{1F3AF} \u62D6\u62FD\u5F00\u59CB:", {
@@ -1968,7 +1903,7 @@ function useEventDrag(events, onEventUpdate) {
1968
1903
  });
1969
1904
  }
1970
1905
  }, [events]);
1971
- const handleDragOver = React3.useCallback((event) => {
1906
+ const handleDragOver = React2.useCallback((event) => {
1972
1907
  const { over } = event;
1973
1908
  console.log("\u{1F50D} \u62D6\u62FD\u60AC\u505C:", {
1974
1909
  overId: over?.id,
@@ -2023,7 +1958,7 @@ function useEventDrag(events, onEventUpdate) {
2023
1958
  }
2024
1959
  }
2025
1960
  }, [dragState.draggedEvent]);
2026
- const handleDragEnd = React3.useCallback(async (event) => {
1961
+ const handleDragEnd = React2.useCallback(async (event) => {
2027
1962
  const { over } = event;
2028
1963
  console.log("\u{1F3AF} \u62D6\u62FD\u7ED3\u675F:", {
2029
1964
  overId: over?.id,
@@ -2076,7 +2011,7 @@ function useEventDrag(events, onEventUpdate) {
2076
2011
  console.log("\u{1F504} \u91CD\u7F6E\u62D6\u62FD\u72B6\u6001");
2077
2012
  resetDragState();
2078
2013
  }, [dragState.draggedEvent, dragState.dragOverDate, onEventUpdate]);
2079
- const resetDragState = React3.useCallback(() => {
2014
+ const resetDragState = React2.useCallback(() => {
2080
2015
  setDragState({
2081
2016
  isDragging: false,
2082
2017
  draggedEvent: null,
@@ -2114,9 +2049,9 @@ var isDragSupported = () => {
2114
2049
  return "draggable" in document.createElement("div");
2115
2050
  };
2116
2051
  var useDeviceType = () => {
2117
- const [isMobile, setIsMobile] = React3.useState(false);
2118
- const [dragSupported, setDragSupported] = React3.useState(true);
2119
- React3.useEffect(() => {
2052
+ const [isMobile, setIsMobile] = React2.useState(false);
2053
+ const [dragSupported, setDragSupported] = React2.useState(true);
2054
+ React2.useEffect(() => {
2120
2055
  const checkDevice = () => {
2121
2056
  const mobile = isMobileDevice();
2122
2057
  setIsMobile(mobile);
@@ -2179,16 +2114,16 @@ var DraggableEvent = ({
2179
2114
  const getPriorityIndicator = (priority) => {
2180
2115
  switch (priority) {
2181
2116
  case "high":
2182
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-2 h-2 bg-red-500 rounded-full flex-shrink-0", title: "\u9AD8\u4F18\u5148\u7EA7" });
2117
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-2 h-2 bg-red-500 rounded-full flex-shrink-0", title: "\u9AD8\u4F18\u5148\u7EA7" });
2183
2118
  case "medium":
2184
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-2 h-2 bg-yellow-500 rounded-full flex-shrink-0", title: "\u4E2D\u4F18\u5148\u7EA7" });
2119
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-2 h-2 bg-yellow-500 rounded-full flex-shrink-0", title: "\u4E2D\u4F18\u5148\u7EA7" });
2185
2120
  case "low":
2186
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-2 h-2 bg-green-500 rounded-full flex-shrink-0", title: "\u4F4E\u4F18\u5148\u7EA7" });
2121
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-2 h-2 bg-green-500 rounded-full flex-shrink-0", title: "\u4F4E\u4F18\u5148\u7EA7" });
2187
2122
  default:
2188
2123
  return null;
2189
2124
  }
2190
2125
  };
2191
- return /* @__PURE__ */ React3__default.default.createElement(
2126
+ return /* @__PURE__ */ React2__default.default.createElement(
2192
2127
  "div",
2193
2128
  {
2194
2129
  ref: setNodeRef,
@@ -2205,16 +2140,16 @@ var DraggableEvent = ({
2205
2140
  ...dragSupported ? attributes : {},
2206
2141
  onClick
2207
2142
  },
2208
- dragSupported && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute top-1 right-1 opacity-0 group-hover:opacity-100 transition-opacity" }, /* @__PURE__ */ React3__default.default.createElement(
2143
+ dragSupported && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute top-1 right-1 opacity-0 group-hover:opacity-100 transition-opacity" }, /* @__PURE__ */ React2__default.default.createElement(
2209
2144
  "svg",
2210
2145
  {
2211
2146
  className: "w-3 h-3 text-gray-400",
2212
2147
  fill: "currentColor",
2213
2148
  viewBox: "0 0 20 20"
2214
2149
  },
2215
- /* @__PURE__ */ React3__default.default.createElement("path", { d: "M7 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM7 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM7 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4z" })
2150
+ /* @__PURE__ */ React2__default.default.createElement("path", { d: "M7 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM7 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM7 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 8a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM13 14a2 2 0 1 0 0 4 2 2 0 0 0 0-4z" })
2216
2151
  )),
2217
- isMobile && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute top-1 right-1 opacity-70" }, /* @__PURE__ */ React3__default.default.createElement(
2152
+ isMobile && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute top-1 right-1 opacity-70" }, /* @__PURE__ */ React2__default.default.createElement(
2218
2153
  "svg",
2219
2154
  {
2220
2155
  className: "w-3 h-3 text-gray-500",
@@ -2222,7 +2157,7 @@ var DraggableEvent = ({
2222
2157
  stroke: "currentColor",
2223
2158
  viewBox: "0 0 24 24"
2224
2159
  },
2225
- /* @__PURE__ */ React3__default.default.createElement(
2160
+ /* @__PURE__ */ React2__default.default.createElement(
2226
2161
  "path",
2227
2162
  {
2228
2163
  strokeLinecap: "round",
@@ -2232,9 +2167,9 @@ var DraggableEvent = ({
2232
2167
  }
2233
2168
  )
2234
2169
  )),
2235
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-1" }, getPriorityIndicator(event.priority), /* @__PURE__ */ React3__default.default.createElement("span", { className: "font-medium truncate flex-1" }, event.title), !event.allDay && /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-xs opacity-60 whitespace-nowrap" }, formatTime(new Date(event.startTime)))),
2170
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-1" }, getPriorityIndicator(event.priority), /* @__PURE__ */ React2__default.default.createElement("span", { className: "font-medium truncate flex-1" }, event.title), !event.allDay && /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-xs opacity-60 whitespace-nowrap" }, formatTime(new Date(event.startTime)))),
2236
2171
  children,
2237
- isDragActive && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-0 bg-white bg-opacity-20 rounded-lg pointer-events-none" })
2172
+ isDragActive && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-0 bg-white bg-opacity-20 rounded-lg pointer-events-none" })
2238
2173
  );
2239
2174
  };
2240
2175
  var DraggableEvent_default = DraggableEvent;
@@ -2296,19 +2231,19 @@ var DroppableCalendarCell = ({
2296
2231
  }
2297
2232
  return baseClasses.join(" ");
2298
2233
  };
2299
- return /* @__PURE__ */ React3__default.default.createElement(
2234
+ return /* @__PURE__ */ React2__default.default.createElement(
2300
2235
  "div",
2301
2236
  {
2302
2237
  ref: disableDrop ? void 0 : setNodeRef,
2303
2238
  className: getCellClasses(),
2304
2239
  onClick: () => onDateClick?.(date)
2305
2240
  },
2306
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between mb-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: `
2241
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between mb-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: `
2307
2242
  inline-flex items-center justify-center text-sm font-semibold w-6 h-6
2308
2243
  ${!isCurrentMonth ? "text-gray-400" : date.getDay() === 0 || date.getDay() === 6 ? "text-red-600" : "text-gray-900"}
2309
2244
  ${isToday(date) ? "bg-blue-600 text-white rounded-full shadow-md" : ""}
2310
- ` }, date.getDate()), dayEvents.length > 0 && /* @__PURE__ */ React3__default.default.createElement("span", { className: "bg-yellow-500 inline-flex items-center justify-center text-sm font-semibold w-6 h-6 border border-white 'bg-blue-600 text-white rounded-full shadow-md" }, dayEvents.length)),
2311
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-1" }, dayEvents.slice(0, 3).map((event) => /* @__PURE__ */ React3__default.default.createElement(
2245
+ ` }, date.getDate()), dayEvents.length > 0 && /* @__PURE__ */ React2__default.default.createElement("span", { className: "bg-yellow-500 inline-flex items-center justify-center text-sm font-semibold w-6 h-6 border border-white 'bg-blue-600 text-white rounded-full shadow-md" }, dayEvents.length)),
2246
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-1" }, dayEvents.slice(0, 3).map((event) => /* @__PURE__ */ React2__default.default.createElement(
2312
2247
  DraggableEvent_default,
2313
2248
  {
2314
2249
  key: event.id,
@@ -2318,9 +2253,9 @@ var DroppableCalendarCell = ({
2318
2253
  onEventClick?.(event);
2319
2254
  }
2320
2255
  }
2321
- )), dayEvents.length > 3 && /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded" }, "+", dayEvents.length - 3, " \u66F4\u591A")),
2322
- isOver && dragOverPreview && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-blue-50 bg-opacity-90 rounded-lg border-2 border-dashed border-blue-300" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm font-medium text-blue-600 mb-1" }, "\u79FB\u52A8\u5230 ", date.getMonth() + 1, "/", date.getDate()), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-blue-500" }, dragOverPreview))),
2323
- isOver && !dragOverPreview && /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-green-50 bg-opacity-90 rounded-lg border-2 border-dashed border-green-300" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm font-medium text-green-600" }, "\u70B9\u51FB\u521B\u5EFA\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-green-500" }, date.getMonth() + 1, "/", date.getDate())))
2256
+ )), dayEvents.length > 3 && /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500 px-2 py-1 bg-gray-100 rounded" }, "+", dayEvents.length - 3, " \u66F4\u591A")),
2257
+ isOver && dragOverPreview && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-blue-50 bg-opacity-90 rounded-lg border-2 border-dashed border-blue-300" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm font-medium text-blue-600 mb-1" }, "\u79FB\u52A8\u5230 ", date.getMonth() + 1, "/", date.getDate()), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-blue-500" }, dragOverPreview))),
2258
+ isOver && !dragOverPreview && /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-green-50 bg-opacity-90 rounded-lg border-2 border-dashed border-green-300" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm font-medium text-green-600" }, "\u70B9\u51FB\u521B\u5EFA\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-green-500" }, date.getMonth() + 1, "/", date.getDate())))
2324
2259
  );
2325
2260
  };
2326
2261
  var DroppableCalendarCell_default = DroppableCalendarCell;
@@ -2335,7 +2270,7 @@ var DraggableMonthView = ({
2335
2270
  onEventUpdate,
2336
2271
  className = ""
2337
2272
  }) => {
2338
- const [selectedDate, setSelectedDate] = React3.useState(null);
2273
+ const [selectedDate, setSelectedDate] = React2.useState(null);
2339
2274
  const { isMobile, dragSupported } = useDeviceType();
2340
2275
  const {
2341
2276
  dragState,
@@ -2344,14 +2279,14 @@ var DraggableMonthView = ({
2344
2279
  handleDragEnd
2345
2280
  } = useEventDrag(events, dragSupported ? onEventUpdate : async () => {
2346
2281
  });
2347
- const monthDays = React3.useMemo(() => {
2282
+ const monthDays = React2.useMemo(() => {
2348
2283
  const dates = getMonthViewDates(currentDate);
2349
2284
  return dates.map((date) => ({
2350
2285
  date,
2351
2286
  isCurrentMonth: date.getMonth() === currentDate.getMonth()
2352
2287
  }));
2353
2288
  }, [currentDate]);
2354
- const weekDays = React3.useMemo(() => {
2289
+ const weekDays = React2.useMemo(() => {
2355
2290
  return monthDays.slice(0, 7).map(
2356
2291
  (dayData) => getWeekdayName(dayData.date, "zh-CN", "short")
2357
2292
  );
@@ -2369,27 +2304,27 @@ var DraggableMonthView = ({
2369
2304
  setSelectedDate(date);
2370
2305
  onDateClick?.(date);
2371
2306
  };
2372
- const renderCalendarContent = () => /* @__PURE__ */ React3__default.default.createElement("div", { className: "overflow-hidden border border-gray-300 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("table", { className: "w-full table-fixed border-collapse" }, /* @__PURE__ */ React3__default.default.createElement("thead", null, /* @__PURE__ */ React3__default.default.createElement("tr", { className: "bg-gradient-to-r from-gray-50 to-gray-100 border-b-2 border-gray-300" }, weekDays.map((day, index) => /* @__PURE__ */ React3__default.default.createElement(
2307
+ const renderCalendarContent = () => /* @__PURE__ */ React2__default.default.createElement("div", { className: "overflow-hidden border border-gray-300 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("table", { className: "w-full table-fixed border-collapse" }, /* @__PURE__ */ React2__default.default.createElement("thead", null, /* @__PURE__ */ React2__default.default.createElement("tr", { className: "bg-gradient-to-r from-gray-50 to-gray-100 border-b-2 border-gray-300" }, weekDays.map((day, index) => /* @__PURE__ */ React2__default.default.createElement(
2373
2308
  "th",
2374
2309
  {
2375
2310
  key: day,
2376
2311
  className: `p-2 sm:p-3 text-center text-sm font-bold border-r border-gray-300 last:border-r-0 ${index === 5 || index === 6 ? "text-red-600 bg-red-50" : "text-gray-800"}`
2377
2312
  },
2378
2313
  day
2379
- )))), /* @__PURE__ */ React3__default.default.createElement("tbody", null, Array.from({ length: 6 }, (_, weekIndex) => /* @__PURE__ */ React3__default.default.createElement("tr", { key: weekIndex }, Array.from({ length: 7 }, (_2, dayIndex) => {
2314
+ )))), /* @__PURE__ */ React2__default.default.createElement("tbody", null, Array.from({ length: 6 }, (_, weekIndex) => /* @__PURE__ */ React2__default.default.createElement("tr", { key: weekIndex }, Array.from({ length: 7 }, (_2, dayIndex) => {
2380
2315
  const dateIndex = weekIndex * 7 + dayIndex;
2381
2316
  const dayData = monthDays[dateIndex];
2382
2317
  if (!dayData) {
2383
- return /* @__PURE__ */ React3__default.default.createElement("td", { key: dayIndex, className: "h-24 sm:h-32 border-b border-gray-300 border-r border-gray-300 last:border-r-0 bg-gray-100" });
2318
+ return /* @__PURE__ */ React2__default.default.createElement("td", { key: dayIndex, className: "h-24 sm:h-32 border-b border-gray-300 border-r border-gray-300 last:border-r-0 bg-gray-100" });
2384
2319
  }
2385
2320
  const isWeekend2 = dayData.date.getDay() === 0 || dayData.date.getDay() === 6;
2386
- return /* @__PURE__ */ React3__default.default.createElement(
2321
+ return /* @__PURE__ */ React2__default.default.createElement(
2387
2322
  "td",
2388
2323
  {
2389
2324
  key: dayIndex,
2390
2325
  className: `h-24 sm:h-32 border-b border-gray-300 border-r border-gray-300 last:border-r-0 relative ${isWeekend2 ? "bg-red-50" : "bg-white"} hover:bg-blue-50 transition-colors`
2391
2326
  },
2392
- /* @__PURE__ */ React3__default.default.createElement(
2327
+ /* @__PURE__ */ React2__default.default.createElement(
2393
2328
  DroppableCalendarCell_default,
2394
2329
  {
2395
2330
  date: dayData.date,
@@ -2405,30 +2340,30 @@ var DraggableMonthView = ({
2405
2340
  )
2406
2341
  );
2407
2342
  }))))));
2408
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: `bg-white rounded-lg shadow-sm ${className}` }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between p-4 border-b" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-4" }, /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-lg sm:text-xl font-semibold text-gray-900" }, currentDate.getFullYear(), "\u5E74", getMonthName(currentDate)), /* @__PURE__ */ React3__default.default.createElement(
2343
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: `bg-white rounded-lg shadow-sm ${className}` }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between p-4 border-b" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-4" }, /* @__PURE__ */ React2__default.default.createElement("h2", { className: "text-lg sm:text-xl font-semibold text-gray-900" }, currentDate.getFullYear(), "\u5E74", getMonthName(currentDate)), /* @__PURE__ */ React2__default.default.createElement(
2409
2344
  "button",
2410
2345
  {
2411
2346
  onClick: goToToday,
2412
2347
  className: "px-3 py-1 text-sm bg-blue-100 text-blue-600 rounded hover:bg-blue-200 transition-colors"
2413
2348
  },
2414
2349
  "\u4ECA\u5929"
2415
- ), isMobile && /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-xs text-gray-500 bg-gray-100 px-2 py-1 rounded" }, "\u70B9\u51FB\u4E8B\u4EF6\u7F16\u8F91")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement(
2350
+ ), isMobile && /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-xs text-gray-500 bg-gray-100 px-2 py-1 rounded" }, "\u70B9\u51FB\u4E8B\u4EF6\u7F16\u8F91")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement(
2416
2351
  "button",
2417
2352
  {
2418
2353
  onClick: goToPreviousMonth,
2419
2354
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors",
2420
2355
  title: "\u4E0A\u4E2A\u6708"
2421
2356
  },
2422
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))
2423
- ), /* @__PURE__ */ React3__default.default.createElement(
2357
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))
2358
+ ), /* @__PURE__ */ React2__default.default.createElement(
2424
2359
  "button",
2425
2360
  {
2426
2361
  onClick: goToNextMonth,
2427
2362
  className: "p-2 hover:bg-gray-100 rounded-lg transition-colors",
2428
2363
  title: "\u4E0B\u4E2A\u6708"
2429
2364
  },
2430
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }))
2431
- ))), dragSupported ? /* @__PURE__ */ React3__default.default.createElement(
2365
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }))
2366
+ ))), dragSupported ? /* @__PURE__ */ React2__default.default.createElement(
2432
2367
  core.DndContext,
2433
2368
  {
2434
2369
  onDragStart: handleDragStart,
@@ -2436,7 +2371,7 @@ var DraggableMonthView = ({
2436
2371
  onDragEnd: handleDragEnd
2437
2372
  },
2438
2373
  renderCalendarContent(),
2439
- /* @__PURE__ */ React3__default.default.createElement(core.DragOverlay, null, dragState.isDragging && dragState.draggedEvent && /* @__PURE__ */ React3__default.default.createElement("div", { className: "transform rotate-1 scale-105 pointer-events-none" }, /* @__PURE__ */ React3__default.default.createElement(
2374
+ /* @__PURE__ */ React2__default.default.createElement(core.DragOverlay, null, dragState.isDragging && dragState.draggedEvent && /* @__PURE__ */ React2__default.default.createElement("div", { className: "transform rotate-1 scale-105 pointer-events-none" }, /* @__PURE__ */ React2__default.default.createElement(
2440
2375
  DraggableEvent_default,
2441
2376
  {
2442
2377
  event: dragState.draggedEvent,
@@ -2444,7 +2379,7 @@ var DraggableMonthView = ({
2444
2379
  className: "shadow-lg border border-blue-400 bg-opacity-90"
2445
2380
  }
2446
2381
  )))
2447
- ) : renderCalendarContent(), dragSupported && dragState.isDragging && /* @__PURE__ */ React3__default.default.createElement("div", { className: "fixed bottom-4 right-4 bg-blue-600 text-white px-4 py-2 rounded-lg shadow-lg z-50" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4 animate-pulse", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React3__default.default.createElement("path", { d: "M10 12a2 2 0 100-4 2 2 0 000 4z" }), /* @__PURE__ */ React3__default.default.createElement("path", { fillRule: "evenodd", d: "M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z", clipRule: "evenodd" })), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm" }, '\u62D6\u62FD "', dragState.draggedEvent?.title, '" \u5230\u76EE\u6807\u65E5\u671F'))));
2382
+ ) : renderCalendarContent(), dragSupported && dragState.isDragging && /* @__PURE__ */ React2__default.default.createElement("div", { className: "fixed bottom-4 right-4 bg-blue-600 text-white px-4 py-2 rounded-lg shadow-lg z-50" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4 animate-pulse", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React2__default.default.createElement("path", { d: "M10 12a2 2 0 100-4 2 2 0 000 4z" }), /* @__PURE__ */ React2__default.default.createElement("path", { fillRule: "evenodd", d: "M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z", clipRule: "evenodd" })), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm" }, '\u62D6\u62FD "', dragState.draggedEvent?.title, '" \u5230\u76EE\u6807\u65E5\u671F'))));
2448
2383
  };
2449
2384
  var DraggableMonthView_default = DraggableMonthView;
2450
2385
  var COLOR_THEMES = {
@@ -2579,9 +2514,9 @@ var DEFAULT_SETTINGS = {
2579
2514
  }
2580
2515
  };
2581
2516
  function CalendarSettings({ onSettingsChange }) {
2582
- const [settings, setSettings] = React3.useState(DEFAULT_SETTINGS);
2583
- const [activeTab, setActiveTab] = React3.useState("theme");
2584
- React3.useEffect(() => {
2517
+ const [settings, setSettings] = React2.useState(DEFAULT_SETTINGS);
2518
+ const [activeTab, setActiveTab] = React2.useState("theme");
2519
+ React2.useEffect(() => {
2585
2520
  const savedSettings = localStorage.getItem("calendar-settings");
2586
2521
  if (savedSettings) {
2587
2522
  try {
@@ -2605,28 +2540,28 @@ function CalendarSettings({ onSettingsChange }) {
2605
2540
  saveSettings(DEFAULT_SETTINGS);
2606
2541
  };
2607
2542
  const currentTheme = COLOR_THEMES[settings.theme];
2608
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-lg font-semibold text-gray-900" }, "\u65E5\u5386\u8BBE\u7F6E"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600 mt-1" }, "\u81EA\u5B9A\u4E49\u60A8\u7684\u65E5\u5386\u5916\u89C2\u548C\u884C\u4E3A")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "border-b border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("nav", { className: "flex space-x-8 px-6" }, [
2543
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("h2", { className: "text-lg font-semibold text-gray-900" }, "\u65E5\u5386\u8BBE\u7F6E"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600 mt-1" }, "\u81EA\u5B9A\u4E49\u60A8\u7684\u65E5\u5386\u5916\u89C2\u548C\u884C\u4E3A")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "border-b border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("nav", { className: "flex space-x-8 px-6" }, [
2609
2544
  { key: "theme", label: "\u4E3B\u9898\u6837\u5F0F", icon: "\u{1F3A8}" },
2610
2545
  { key: "general", label: "\u5E38\u89C4\u8BBE\u7F6E", icon: "\u2699\uFE0F" },
2611
2546
  { key: "time", label: "\u65F6\u95F4\u8BBE\u7F6E", icon: "\u23F0" }
2612
- ].map(({ key, label, icon }) => /* @__PURE__ */ React3__default.default.createElement(
2547
+ ].map(({ key, label, icon }) => /* @__PURE__ */ React2__default.default.createElement(
2613
2548
  "button",
2614
2549
  {
2615
2550
  key,
2616
2551
  onClick: () => setActiveTab(key),
2617
2552
  className: `py-4 text-sm font-medium border-b-2 transition-colors ${activeTab === key ? "border-blue-500 text-blue-600" : "border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"}`
2618
2553
  },
2619
- /* @__PURE__ */ React3__default.default.createElement("span", { className: "mr-2" }, icon),
2554
+ /* @__PURE__ */ React2__default.default.createElement("span", { className: "mr-2" }, icon),
2620
2555
  label
2621
- )))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-6" }, activeTab === "theme" && /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-md font-medium text-gray-900 mb-4" }, "\u9884\u8BBE\u4E3B\u9898"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4" }, Object.entries(COLOR_THEMES).map(([key, theme]) => /* @__PURE__ */ React3__default.default.createElement(
2556
+ )))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "p-6" }, activeTab === "theme" && /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-md font-medium text-gray-900 mb-4" }, "\u9884\u8BBE\u4E3B\u9898"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4" }, Object.entries(COLOR_THEMES).map(([key, theme]) => /* @__PURE__ */ React2__default.default.createElement(
2622
2557
  "div",
2623
2558
  {
2624
2559
  key,
2625
2560
  onClick: () => updateSettings({ theme: key }),
2626
2561
  className: `p-4 border-2 rounded-lg cursor-pointer transition-all ${settings.theme === key ? "border-blue-500 bg-blue-50" : "border-gray-200 hover:border-gray-300"}`
2627
2562
  },
2628
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between mb-3" }, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "font-medium text-gray-900" }, theme.name), settings.theme === key && /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-blue-500", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React3__default.default.createElement("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" }))),
2629
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex space-x-1 mb-3" }, Object.values(theme.colors).slice(0, 6).map((color, index) => /* @__PURE__ */ React3__default.default.createElement(
2563
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between mb-3" }, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "font-medium text-gray-900" }, theme.name), settings.theme === key && /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-blue-500", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React2__default.default.createElement("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" }))),
2564
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex space-x-1 mb-3" }, Object.values(theme.colors).slice(0, 6).map((color, index) => /* @__PURE__ */ React2__default.default.createElement(
2630
2565
  "div",
2631
2566
  {
2632
2567
  key: index,
@@ -2634,7 +2569,7 @@ function CalendarSettings({ onSettingsChange }) {
2634
2569
  style: { backgroundColor: color }
2635
2570
  }
2636
2571
  ))),
2637
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs" }, /* @__PURE__ */ React3__default.default.createElement(
2572
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs" }, /* @__PURE__ */ React2__default.default.createElement(
2638
2573
  "div",
2639
2574
  {
2640
2575
  className: "grid grid-cols-7 gap-1 p-2 rounded border",
@@ -2643,7 +2578,7 @@ function CalendarSettings({ onSettingsChange }) {
2643
2578
  borderColor: theme.border.calendar
2644
2579
  }
2645
2580
  },
2646
- ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"].map((day, index) => /* @__PURE__ */ React3__default.default.createElement(
2581
+ ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"].map((day, index) => /* @__PURE__ */ React2__default.default.createElement(
2647
2582
  "div",
2648
2583
  {
2649
2584
  key: day,
@@ -2652,7 +2587,7 @@ function CalendarSettings({ onSettingsChange }) {
2652
2587
  },
2653
2588
  day
2654
2589
  )),
2655
- Array.from({ length: 7 }, (_, index) => /* @__PURE__ */ React3__default.default.createElement(
2590
+ Array.from({ length: 7 }, (_, index) => /* @__PURE__ */ React2__default.default.createElement(
2656
2591
  "div",
2657
2592
  {
2658
2593
  key: index,
@@ -2666,7 +2601,7 @@ function CalendarSettings({ onSettingsChange }) {
2666
2601
  index + 1
2667
2602
  ))
2668
2603
  ))
2669
- )))), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-md font-medium text-gray-900 mb-4" }, "\u81EA\u5B9A\u4E49\u989C\u8272"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4" }, Object.entries(currentTheme.colors).map(([key, defaultColor]) => /* @__PURE__ */ React3__default.default.createElement("div", { key, className: "space-y-2" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 capitalize" }, key === "primary" ? "\u4E3B\u8272" : key === "secondary" ? "\u6B21\u8981\u8272" : key === "accent" ? "\u5F3A\u8C03\u8272" : key === "danger" ? "\u5371\u9669\u8272" : key), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement(
2604
+ )))), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-md font-medium text-gray-900 mb-4" }, "\u81EA\u5B9A\u4E49\u989C\u8272"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4" }, Object.entries(currentTheme.colors).map(([key, defaultColor]) => /* @__PURE__ */ React2__default.default.createElement("div", { key, className: "space-y-2" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 capitalize" }, key === "primary" ? "\u4E3B\u8272" : key === "secondary" ? "\u6B21\u8981\u8272" : key === "accent" ? "\u5F3A\u8C03\u8272" : key === "danger" ? "\u5371\u9669\u8272" : key), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement(
2670
2605
  "input",
2671
2606
  {
2672
2607
  type: "color",
@@ -2679,7 +2614,7 @@ function CalendarSettings({ onSettingsChange }) {
2679
2614
  }),
2680
2615
  className: "w-12 h-8 border border-gray-300 rounded cursor-pointer"
2681
2616
  }
2682
- ), /* @__PURE__ */ React3__default.default.createElement(
2617
+ ), /* @__PURE__ */ React2__default.default.createElement(
2683
2618
  "input",
2684
2619
  {
2685
2620
  type: "text",
@@ -2693,23 +2628,23 @@ function CalendarSettings({ onSettingsChange }) {
2693
2628
  className: "flex-1 px-3 py-1 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
2694
2629
  placeholder: defaultColor
2695
2630
  }
2696
- ))))))), activeTab === "general" && /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4E00\u5468\u5F00\u59CB\u4E8E"), /* @__PURE__ */ React3__default.default.createElement(
2631
+ ))))))), activeTab === "general" && /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4E00\u5468\u5F00\u59CB\u4E8E"), /* @__PURE__ */ React2__default.default.createElement(
2697
2632
  "select",
2698
2633
  {
2699
2634
  value: settings.weekStartsOn,
2700
2635
  onChange: (e) => updateSettings({ weekStartsOn: Number(e.target.value) }),
2701
2636
  className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
2702
2637
  },
2703
- WEEK_START_OPTIONS.map((option) => /* @__PURE__ */ React3__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
2704
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u8BED\u8A00"), /* @__PURE__ */ React3__default.default.createElement(
2638
+ WEEK_START_OPTIONS.map((option) => /* @__PURE__ */ React2__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
2639
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u8BED\u8A00"), /* @__PURE__ */ React2__default.default.createElement(
2705
2640
  "select",
2706
2641
  {
2707
2642
  value: settings.language,
2708
2643
  onChange: (e) => updateSettings({ language: e.target.value }),
2709
2644
  className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
2710
2645
  },
2711
- LANGUAGE_OPTIONS.map((option) => /* @__PURE__ */ React3__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
2712
- )), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-md font-medium text-gray-900" }, "\u663E\u793A\u9009\u9879"), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
2646
+ LANGUAGE_OPTIONS.map((option) => /* @__PURE__ */ React2__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
2647
+ )), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-md font-medium text-gray-900" }, "\u663E\u793A\u9009\u9879"), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
2713
2648
  "input",
2714
2649
  {
2715
2650
  type: "checkbox",
@@ -2717,7 +2652,7 @@ function CalendarSettings({ onSettingsChange }) {
2717
2652
  onChange: (e) => updateSettings({ showWeekNumbers: e.target.checked }),
2718
2653
  className: "rounded border-gray-300 text-blue-600 focus:ring-blue-500"
2719
2654
  }
2720
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u663E\u793A\u5468\u6570")), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
2655
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u663E\u793A\u5468\u6570")), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
2721
2656
  "input",
2722
2657
  {
2723
2658
  type: "checkbox",
@@ -2725,7 +2660,7 @@ function CalendarSettings({ onSettingsChange }) {
2725
2660
  onChange: (e) => updateSettings({ showLunarCalendar: e.target.checked }),
2726
2661
  className: "rounded border-gray-300 text-blue-600 focus:ring-blue-500"
2727
2662
  }
2728
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u663E\u793A\u519C\u5386"))), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u9ED8\u8BA4\u4E8B\u4EF6\u65F6\u957F\uFF08\u5206\u949F\uFF09"), /* @__PURE__ */ React3__default.default.createElement(
2663
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u663E\u793A\u519C\u5386"))), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u9ED8\u8BA4\u4E8B\u4EF6\u65F6\u957F\uFF08\u5206\u949F\uFF09"), /* @__PURE__ */ React2__default.default.createElement(
2729
2664
  "input",
2730
2665
  {
2731
2666
  type: "number",
@@ -2736,15 +2671,15 @@ function CalendarSettings({ onSettingsChange }) {
2736
2671
  onChange: (e) => updateSettings({ defaultEventDuration: Number(e.target.value) }),
2737
2672
  className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
2738
2673
  }
2739
- ))), activeTab === "time" && /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u65F6\u95F4\u683C\u5F0F"), /* @__PURE__ */ React3__default.default.createElement(
2674
+ ))), activeTab === "time" && /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u65F6\u95F4\u683C\u5F0F"), /* @__PURE__ */ React2__default.default.createElement(
2740
2675
  "select",
2741
2676
  {
2742
2677
  value: settings.timeFormat,
2743
2678
  onChange: (e) => updateSettings({ timeFormat: e.target.value }),
2744
2679
  className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
2745
2680
  },
2746
- TIME_FORMAT_OPTIONS.map((option) => /* @__PURE__ */ React3__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
2747
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-md font-medium text-gray-900 mb-4" }, "\u5DE5\u4F5C\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement(
2681
+ TIME_FORMAT_OPTIONS.map((option) => /* @__PURE__ */ React2__default.default.createElement("option", { key: option.value, value: option.value }, option.label))
2682
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-md font-medium text-gray-900 mb-4" }, "\u5DE5\u4F5C\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement(
2748
2683
  "input",
2749
2684
  {
2750
2685
  type: "time",
@@ -2757,7 +2692,7 @@ function CalendarSettings({ onSettingsChange }) {
2757
2692
  }),
2758
2693
  className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
2759
2694
  }
2760
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement(
2695
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement(
2761
2696
  "input",
2762
2697
  {
2763
2698
  type: "time",
@@ -2770,14 +2705,14 @@ function CalendarSettings({ onSettingsChange }) {
2770
2705
  }),
2771
2706
  className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
2772
2707
  }
2773
- ))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-between pt-6 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement(
2708
+ ))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex justify-between pt-6 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement(
2774
2709
  "button",
2775
2710
  {
2776
2711
  onClick: resetSettings,
2777
2712
  className: "px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 hover:bg-gray-200 rounded-md transition-colors"
2778
2713
  },
2779
2714
  "\u91CD\u7F6E\u4E3A\u9ED8\u8BA4"
2780
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
2715
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex space-x-3" }, /* @__PURE__ */ React2__default.default.createElement(
2781
2716
  "button",
2782
2717
  {
2783
2718
  onClick: () => {
@@ -2793,7 +2728,7 @@ function CalendarSettings({ onSettingsChange }) {
2793
2728
  className: "px-4 py-2 text-sm font-medium text-blue-600 bg-blue-50 hover:bg-blue-100 rounded-md transition-colors"
2794
2729
  },
2795
2730
  "\u5BFC\u51FA\u8BBE\u7F6E"
2796
- ), /* @__PURE__ */ React3__default.default.createElement("label", { className: "px-4 py-2 text-sm font-medium text-green-600 bg-green-50 hover:bg-green-100 rounded-md transition-colors cursor-pointer" }, "\u5BFC\u5165\u8BBE\u7F6E", /* @__PURE__ */ React3__default.default.createElement(
2731
+ ), /* @__PURE__ */ React2__default.default.createElement("label", { className: "px-4 py-2 text-sm font-medium text-green-600 bg-green-50 hover:bg-green-100 rounded-md transition-colors cursor-pointer" }, "\u5BFC\u5165\u8BBE\u7F6E", /* @__PURE__ */ React2__default.default.createElement(
2797
2732
  "input",
2798
2733
  {
2799
2734
  type: "file",
@@ -2825,14 +2760,14 @@ function CalendarPage({
2825
2760
  onShowLogin,
2826
2761
  headerActions
2827
2762
  }) {
2828
- const [currentDate, setCurrentDate] = React3.useState(/* @__PURE__ */ new Date());
2829
- const [viewType, setViewType] = React3.useState("month" /* MONTH */);
2830
- const [isEventModalOpen, setIsEventModalOpen] = React3.useState(false);
2831
- const [selectedDate, setSelectedDate] = React3.useState(null);
2832
- const [editingEvent, setEditingEvent] = React3.useState(null);
2833
- const [activeTab, setActiveTab] = React3.useState("calendar");
2834
- const [calendarSettings, setCalendarSettings] = React3.useState(null);
2835
- const [eventListConfig, setEventListConfig] = React3.useState({
2763
+ const [currentDate, setCurrentDate] = React2.useState(/* @__PURE__ */ new Date());
2764
+ const [viewType, setViewType] = React2.useState("month" /* MONTH */);
2765
+ const [isEventModalOpen, setIsEventModalOpen] = React2.useState(false);
2766
+ const [selectedDate, setSelectedDate] = React2.useState(null);
2767
+ const [editingEvent, setEditingEvent] = React2.useState(null);
2768
+ const [activeTab, setActiveTab] = React2.useState("calendar");
2769
+ const [calendarSettings, setCalendarSettings] = React2.useState(null);
2770
+ const [eventListConfig, setEventListConfig] = React2.useState({
2836
2771
  displayMode: "list" /* LIST */,
2837
2772
  sort: {
2838
2773
  field: "startTime" /* START_TIME */,
@@ -2855,8 +2790,8 @@ function CalendarPage({
2855
2790
  fetchEvents,
2856
2791
  clearError
2857
2792
  } = useEnhancedEvents();
2858
- React3.useMemo(() => getMonthViewDates(currentDate), [currentDate]);
2859
- React3.useEffect(() => {
2793
+ React2.useMemo(() => getMonthViewDates(currentDate), [currentDate]);
2794
+ React2.useEffect(() => {
2860
2795
  const viewDates = getMonthViewDates(currentDate);
2861
2796
  const viewStart = viewDates[0];
2862
2797
  const viewEnd = viewDates[viewDates.length - 1];
@@ -2872,7 +2807,7 @@ function CalendarPage({
2872
2807
  });
2873
2808
  }
2874
2809
  }, [currentDate, fetchEvents]);
2875
- const sampleEvents = React3.useMemo(() => [
2810
+ const sampleEvents = React2.useMemo(() => [
2876
2811
  { date: "2024-12-15", title: "\u56E2\u961F\u4F1A\u8BAE", color: "blue" },
2877
2812
  { date: "2024-12-20", title: "\u9879\u76EE\u8BC4\u5BA1", color: "green" },
2878
2813
  { date: "2024-12-25", title: "\u5723\u8BDE\u8282", color: "red" },
@@ -3045,7 +2980,7 @@ function CalendarPage({
3045
2980
  const renderCalendarView = () => {
3046
2981
  switch (viewType) {
3047
2982
  case "month" /* MONTH */:
3048
- return /* @__PURE__ */ React3__default.default.createElement(
2983
+ return /* @__PURE__ */ React2__default.default.createElement(
3049
2984
  DraggableMonthView_default,
3050
2985
  {
3051
2986
  events,
@@ -3064,7 +2999,7 @@ function CalendarPage({
3064
2999
  case "day" /* DAY */:
3065
3000
  return renderDayView();
3066
3001
  default:
3067
- return /* @__PURE__ */ React3__default.default.createElement(
3002
+ return /* @__PURE__ */ React2__default.default.createElement(
3068
3003
  DraggableMonthView_default,
3069
3004
  {
3070
3005
  events,
@@ -3082,21 +3017,21 @@ function CalendarPage({
3082
3017
  };
3083
3018
  const renderWeekView = () => {
3084
3019
  const weekDates = getWeekViewDates(currentDate);
3085
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden mb-6" }, /* @__PURE__ */ React3__default.default.createElement("table", { className: "w-full table-fixed" }, /* @__PURE__ */ React3__default.default.createElement("thead", null, /* @__PURE__ */ React3__default.default.createElement("tr", { className: "bg-gray-50" }, weekDates.map((date, index) => {
3020
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden mb-6" }, /* @__PURE__ */ React2__default.default.createElement("table", { className: "w-full table-fixed" }, /* @__PURE__ */ React2__default.default.createElement("thead", null, /* @__PURE__ */ React2__default.default.createElement("tr", { className: "bg-gray-50" }, weekDates.map((date, index) => {
3086
3021
  const isWeekend2 = date.getDay() === 0 || date.getDay() === 6;
3087
- return /* @__PURE__ */ React3__default.default.createElement(
3022
+ return /* @__PURE__ */ React2__default.default.createElement(
3088
3023
  "th",
3089
3024
  {
3090
3025
  key: index,
3091
3026
  className: `p-3 text-center border-b border-gray-200 ${index < 6 ? "border-r border-gray-200" : ""}`
3092
3027
  },
3093
- /* @__PURE__ */ React3__default.default.createElement("div", { className: `text-sm font-medium ${isWeekend2 ? "text-red-600" : "text-gray-700"}` }, getWeekdayName(date, "zh-CN", "short"))
3028
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: `text-sm font-medium ${isWeekend2 ? "text-red-600" : "text-gray-700"}` }, getWeekdayName(date, "zh-CN", "short"))
3094
3029
  );
3095
- }))), /* @__PURE__ */ React3__default.default.createElement("tbody", null, /* @__PURE__ */ React3__default.default.createElement("tr", null, weekDates.map((date, index) => {
3030
+ }))), /* @__PURE__ */ React2__default.default.createElement("tbody", null, /* @__PURE__ */ React2__default.default.createElement("tr", null, weekDates.map((date, index) => {
3096
3031
  const dayEvents = getEventsForDate(date);
3097
3032
  const isTodayDate = isToday(date);
3098
3033
  const isWeekend2 = date.getDay() === 0 || date.getDay() === 6;
3099
- return /* @__PURE__ */ React3__default.default.createElement(
3034
+ return /* @__PURE__ */ React2__default.default.createElement(
3100
3035
  "td",
3101
3036
  {
3102
3037
  key: index,
@@ -3108,7 +3043,7 @@ function CalendarPage({
3108
3043
  ${isTodayDate ? "bg-blue-50" : "bg-white"}
3109
3044
  `
3110
3045
  },
3111
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col h-full p-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col items-center mb-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: `flex items-center justify-center text-lg font-bold w-10 h-10 rounded-full ${isTodayDate ? "bg-blue-600 text-white shadow-md" : isWeekend2 ? "text-red-600 bg-red-50" : "text-gray-900 hover:bg-gray-100"} transition-colors` }, date.getDate()), (index === 0 || date.getDate() === 1) && /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500 mt-1 font-medium" }, date.getMonth() + 1, "\u6708")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1 flex flex-col" }, dayEvents.length > 0 ? /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center mb-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: `inline-flex items-center justify-center w-6 h-6 text-xs font-bold rounded-full ${dayEvents.length > 5 ? "bg-red-100 text-red-700" : dayEvents.length > 2 ? "bg-yellow-100 text-yellow-700" : "bg-green-100 text-green-700"}` }, dayEvents.length)), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-1 overflow-hidden" }, dayEvents.slice(0, 4).map((event, eventIndex) => /* @__PURE__ */ React3__default.default.createElement(
3046
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-col h-full p-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-col items-center mb-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: `flex items-center justify-center text-lg font-bold w-10 h-10 rounded-full ${isTodayDate ? "bg-blue-600 text-white shadow-md" : isWeekend2 ? "text-red-600 bg-red-50" : "text-gray-900 hover:bg-gray-100"} transition-colors` }, date.getDate()), (index === 0 || date.getDate() === 1) && /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500 mt-1 font-medium" }, date.getMonth() + 1, "\u6708")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-1 flex flex-col" }, dayEvents.length > 0 ? /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center mb-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: `inline-flex items-center justify-center w-6 h-6 text-xs font-bold rounded-full ${dayEvents.length > 5 ? "bg-red-100 text-red-700" : dayEvents.length > 2 ? "bg-yellow-100 text-yellow-700" : "bg-green-100 text-green-700"}` }, dayEvents.length)), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-1 overflow-hidden" }, dayEvents.slice(0, 4).map((event, eventIndex) => /* @__PURE__ */ React2__default.default.createElement(
3112
3047
  "div",
3113
3048
  {
3114
3049
  key: eventIndex,
@@ -3122,21 +3057,21 @@ function CalendarPage({
3122
3057
  title: event.title
3123
3058
  },
3124
3059
  event.title
3125
- )), dayEvents.length > 4 && /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-500 text-center py-1 bg-gray-100 rounded" }, "+", dayEvents.length - 4, " \u66F4\u591A"))) : /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1 flex items-center justify-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "w-4 h-4 mx-auto mb-1 opacity-30" }, /* @__PURE__ */ React3__default.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 20 20", className: "text-gray-400" }, /* @__PURE__ */ React3__default.default.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z", clipRule: "evenodd" }))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-400" }, "\u65E0\u4E8B\u4EF6")))))
3060
+ )), dayEvents.length > 4 && /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-500 text-center py-1 bg-gray-100 rounded" }, "+", dayEvents.length - 4, " \u66F4\u591A"))) : /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-1 flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "w-4 h-4 mx-auto mb-1 opacity-30" }, /* @__PURE__ */ React2__default.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 20 20", className: "text-gray-400" }, /* @__PURE__ */ React2__default.default.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z", clipRule: "evenodd" }))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-400" }, "\u65E0\u4E8B\u4EF6")))))
3126
3061
  );
3127
3062
  })))));
3128
3063
  };
3129
3064
  const renderDayView = () => {
3130
3065
  const dayEvents = getEventsForDate(currentDate);
3131
3066
  const isTodayDate = isToday(currentDate);
3132
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden mb-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-gray-50 p-4 border-b border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm text-gray-600 mb-1" }, currentDate.toLocaleDateString("zh-CN", { weekday: "long" })), /* @__PURE__ */ React3__default.default.createElement("div", { className: `text-2xl font-bold ${isTodayDate ? "text-blue-600" : "text-gray-900"}` }, currentDate.getDate(), "\u65E5"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-sm text-gray-600" }, currentDate.toLocaleDateString("zh-CN", { year: "numeric", month: "long" })))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-4" }, /* @__PURE__ */ React3__default.default.createElement(
3067
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden mb-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-gray-50 p-4 border-b border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm text-gray-600 mb-1" }, currentDate.toLocaleDateString("zh-CN", { weekday: "long" })), /* @__PURE__ */ React2__default.default.createElement("div", { className: `text-2xl font-bold ${isTodayDate ? "text-blue-600" : "text-gray-900"}` }, currentDate.getDate(), "\u65E5"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-sm text-gray-600" }, currentDate.toLocaleDateString("zh-CN", { year: "numeric", month: "long" })))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "p-4" }, /* @__PURE__ */ React2__default.default.createElement(
3133
3068
  "button",
3134
3069
  {
3135
3070
  onClick: () => handleDateClick(currentDate),
3136
3071
  className: "w-full mb-4 p-3 border-2 border-dashed border-gray-300 rounded-lg text-gray-600 hover:border-blue-300 hover:text-blue-600 transition-colors"
3137
3072
  },
3138
3073
  "+ \u5728\u6B64\u65E5\u671F\u521B\u5EFA\u4E8B\u4EF6"
3139
- ), dayEvents.length > 0 ? /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-sm font-semibold text-gray-700 mb-3" }, "\u4ECA\u65E5\u4E8B\u4EF6 (", dayEvents.length, ")"), dayEvents.map((event, eventIndex) => /* @__PURE__ */ React3__default.default.createElement(
3074
+ ), dayEvents.length > 0 ? /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-sm font-semibold text-gray-700 mb-3" }, "\u4ECA\u65E5\u4E8B\u4EF6 (", dayEvents.length, ")"), dayEvents.map((event, eventIndex) => /* @__PURE__ */ React2__default.default.createElement(
3140
3075
  "div",
3141
3076
  {
3142
3077
  key: eventIndex,
@@ -3148,11 +3083,11 @@ function CalendarPage({
3148
3083
  ${getEventColorClass(event.color)}
3149
3084
  `
3150
3085
  },
3151
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "font-medium text-sm mb-1" }, event.title),
3152
- event.isRealEvent && event.id && /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-xs text-gray-600" }, "\u70B9\u51FB\u7F16\u8F91\u4E8B\u4EF6")
3153
- ))) : /* @__PURE__ */ React3__default.default.createElement("div", { className: "text-center py-8 text-gray-500" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-12 h-12 mx-auto mb-3 text-gray-300", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React3__default.default.createElement("p", null, "\u4ECA\u65E5\u6682\u65E0\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-xs mt-1" }, "\u70B9\u51FB\u4E0A\u65B9\u6309\u94AE\u521B\u5EFA\u4E8B\u4EF6"))));
3086
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "font-medium text-sm mb-1" }, event.title),
3087
+ event.isRealEvent && event.id && /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-xs text-gray-600" }, "\u70B9\u51FB\u7F16\u8F91\u4E8B\u4EF6")
3088
+ ))) : /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center py-8 text-gray-500" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-12 h-12 mx-auto mb-3 text-gray-300", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React2__default.default.createElement("p", null, "\u4ECA\u65E5\u6682\u65E0\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-xs mt-1" }, "\u70B9\u51FB\u4E0A\u65B9\u6309\u94AE\u521B\u5EFA\u4E8B\u4EF6"))));
3154
3089
  };
3155
- const handleCreateEnhancedEvent = React3.useCallback(async (eventData) => {
3090
+ const handleCreateEnhancedEvent = React2.useCallback(async (eventData) => {
3156
3091
  try {
3157
3092
  const createdEvents = await createEnhancedEvent(eventData);
3158
3093
  setIsEventModalOpen(false);
@@ -3168,42 +3103,42 @@ function CalendarPage({
3168
3103
  alert("\u521B\u5EFA\u4E8B\u4EF6\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");
3169
3104
  }
3170
3105
  }, [createEnhancedEvent]);
3171
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "min-h-screen bg-gray-50" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "max-w-7xl mx-auto p-4 lg:p-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("h1", { className: "text-3xl font-bold text-gray-900 mb-2" }, "\u65E5\u5386\u7BA1\u7406"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600" }, "\u529F\u80FD\u5B8C\u6574\u7684\u65E5\u5386\u5E94\u7528\uFF0C\u652F\u6301\u4E8B\u4EF6\u7BA1\u7406\u3001\u63D0\u9192\u3001\u91CD\u590D\u4E8B\u4EF6\u7B49\u529F\u80FD")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-3" }, headerActions, !headerActions && !isAuthenticated && /* @__PURE__ */ React3__default.default.createElement(
3106
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "min-h-screen bg-gray-50" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "max-w-7xl mx-auto p-4 lg:p-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex justify-between items-start mb-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("h1", { className: "text-3xl font-bold text-gray-900 mb-2" }, "\u65E5\u5386\u7BA1\u7406"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600" }, "\u529F\u80FD\u5B8C\u6574\u7684\u65E5\u5386\u5E94\u7528\uFF0C\u652F\u6301\u4E8B\u4EF6\u7BA1\u7406\u3001\u63D0\u9192\u3001\u91CD\u590D\u4E8B\u4EF6\u7B49\u529F\u80FD")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-3" }, headerActions, !headerActions && !isAuthenticated && /* @__PURE__ */ React2__default.default.createElement(
3172
3107
  "button",
3173
3108
  {
3174
3109
  onClick: onShowLogin,
3175
3110
  className: "px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors"
3176
3111
  },
3177
3112
  "\u767B\u5F55"
3178
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex space-x-1 bg-gray-100 p-1 rounded-lg w-fit" }, /* @__PURE__ */ React3__default.default.createElement(
3113
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex space-x-1 bg-gray-100 p-1 rounded-lg w-fit" }, /* @__PURE__ */ React2__default.default.createElement(
3179
3114
  "button",
3180
3115
  {
3181
3116
  onClick: () => setActiveTab("calendar"),
3182
3117
  className: `px-4 py-2 text-sm font-medium rounded-md transition-colors ${activeTab === "calendar" ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`
3183
3118
  },
3184
3119
  "\u{1F4C5} \u65E5\u5386\u89C6\u56FE"
3185
- ), /* @__PURE__ */ React3__default.default.createElement(
3120
+ ), /* @__PURE__ */ React2__default.default.createElement(
3186
3121
  "button",
3187
3122
  {
3188
3123
  onClick: () => setActiveTab("events"),
3189
3124
  className: `px-4 py-2 text-sm font-medium rounded-md transition-colors ${activeTab === "events" ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`
3190
3125
  },
3191
3126
  "\u{1F4CB} \u4E8B\u4EF6\u5217\u8868"
3192
- ), /* @__PURE__ */ React3__default.default.createElement(
3127
+ ), /* @__PURE__ */ React2__default.default.createElement(
3193
3128
  "button",
3194
3129
  {
3195
3130
  onClick: () => setActiveTab("settings"),
3196
3131
  className: `px-4 py-2 text-sm font-medium rounded-md transition-colors ${activeTab === "settings" ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`
3197
3132
  },
3198
3133
  "\u2699\uFE0F \u8BBE\u7F6E"
3199
- ))), error && /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-red-50 border border-red-200 rounded-lg p-4 mb-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "h-5 w-5 text-red-400 mt-0.5", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React3__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__ */ React3__default.default.createElement("div", { className: "ml-3" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-sm font-medium text-red-800" }, "\u64CD\u4F5C\u5931\u8D25"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-1 text-sm text-red-700" }, error), /* @__PURE__ */ React3__default.default.createElement(
3134
+ ))), error && /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-red-50 border border-red-200 rounded-lg p-4 mb-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "h-5 w-5 text-red-400 mt-0.5", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React2__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__ */ React2__default.default.createElement("div", { className: "ml-3" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-sm font-medium text-red-800" }, "\u64CD\u4F5C\u5931\u8D25"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "mt-1 text-sm text-red-700" }, error), /* @__PURE__ */ React2__default.default.createElement(
3200
3135
  "button",
3201
3136
  {
3202
3137
  onClick: clearError,
3203
3138
  className: "mt-2 text-sm text-red-600 hover:text-red-800 font-medium"
3204
3139
  },
3205
3140
  "\u5173\u95ED"
3206
- )))), activeTab === "calendar" && /* @__PURE__ */ React3__default.default.createElement(React3__default.default.Fragment, null, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-start" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "h-5 w-5 text-blue-400 mt-0.5", 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", { className: "ml-3" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-sm font-medium text-blue-800" }, "\u529F\u80FD\u8BF4\u660E"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-1 text-sm text-blue-700" }, "\u70B9\u51FB\u65E5\u5386\u4E0A\u7684\u4EFB\u610F\u65E5\u671F\u53EF\u4EE5\u521B\u5EFA\u65B0\u4E8B\u4EF6\u3002\u5F53\u524D\u5DF2\u652F\u6301\u5B8C\u6574\u7684\u4E8B\u4EF6\u7BA1\u7406\u529F\u80FD\uFF0C\u5305\u62EC\u521B\u5EFA\u3001\u7F16\u8F91\u3001\u5220\u9664\u7B49\u64CD\u4F5C\u3002", !isAuthenticated && /* @__PURE__ */ React3__default.default.createElement("span", { className: "block mt-2 text-orange-700 font-medium" }, "\u{1F4A1} \u63D0\u793A\uFF1A\u8BF7\u5148\u767B\u5F55\u4EE5\u4F7F\u7528\u5B8C\u6574\u7684\u4E8B\u4EF6\u7BA1\u7406\u529F\u80FD"))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-4 mb-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React3__default.default.createElement("button", { onClick: goToPrevious, className: "p-2 hover:bg-gray-100 rounded-lg transition-colors" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))), /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900 min-w-[160px] text-center" }, getViewTitle()), /* @__PURE__ */ React3__default.default.createElement("button", { onClick: goToNext, className: "p-2 hover:bg-gray-100 rounded-lg transition-colors" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React3__default.default.createElement("button", { onClick: goToToday, className: "px-4 py-2 text-sm font-medium text-blue-600 bg-blue-50 hover:bg-blue-100 rounded-lg transition-colors" }, "\u4ECA\u5929"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center bg-gray-100 rounded-lg p-1" }, ["month", "week", "day"].map((view) => /* @__PURE__ */ React3__default.default.createElement(
3141
+ )))), activeTab === "calendar" && /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-blue-50 border border-blue-200 rounded-lg p-4 mb-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-start" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-shrink-0" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "h-5 w-5 text-blue-400 mt-0.5", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React2__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__ */ React2__default.default.createElement("div", { className: "ml-3" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-sm font-medium text-blue-800" }, "\u529F\u80FD\u8BF4\u660E"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "mt-1 text-sm text-blue-700" }, "\u70B9\u51FB\u65E5\u5386\u4E0A\u7684\u4EFB\u610F\u65E5\u671F\u53EF\u4EE5\u521B\u5EFA\u65B0\u4E8B\u4EF6\u3002\u5F53\u524D\u5DF2\u652F\u6301\u5B8C\u6574\u7684\u4E8B\u4EF6\u7BA1\u7406\u529F\u80FD\uFF0C\u5305\u62EC\u521B\u5EFA\u3001\u7F16\u8F91\u3001\u5220\u9664\u7B49\u64CD\u4F5C\u3002", !isAuthenticated && /* @__PURE__ */ React2__default.default.createElement("span", { className: "block mt-2 text-orange-700 font-medium" }, "\u{1F4A1} \u63D0\u793A\uFF1A\u8BF7\u5148\u767B\u5F55\u4EE5\u4F7F\u7528\u5B8C\u6574\u7684\u4E8B\u4EF6\u7BA1\u7406\u529F\u80FD"))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-4 mb-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React2__default.default.createElement("button", { onClick: goToPrevious, className: "p-2 hover:bg-gray-100 rounded-lg transition-colors" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))), /* @__PURE__ */ React2__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900 min-w-[160px] text-center" }, getViewTitle()), /* @__PURE__ */ React2__default.default.createElement("button", { onClick: goToNext, className: "p-2 hover:bg-gray-100 rounded-lg transition-colors" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React2__default.default.createElement("button", { onClick: goToToday, className: "px-4 py-2 text-sm font-medium text-blue-600 bg-blue-50 hover:bg-blue-100 rounded-lg transition-colors" }, "\u4ECA\u5929"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center bg-gray-100 rounded-lg p-1" }, ["month", "week", "day"].map((view) => /* @__PURE__ */ React2__default.default.createElement(
3207
3142
  "button",
3208
3143
  {
3209
3144
  key: view,
@@ -3211,7 +3146,7 @@ function CalendarPage({
3211
3146
  className: `px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${viewType === CalendarViewType[view.toUpperCase()] ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`
3212
3147
  },
3213
3148
  view === "month" ? "\u6708" : view === "week" ? "\u5468" : "\u65E5"
3214
- )))))), renderCalendarView(), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center mb-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-blue-100 p-3 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-6 h-6 text-blue-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" }))), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "ml-3 text-lg font-semibold text-gray-900" }, "\u4E8B\u4EF6\u7BA1\u7406")), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 text-sm mb-4" }, "\u521B\u5EFA\u3001\u7F16\u8F91\u3001\u5220\u9664\u65E5\u5386\u4E8B\u4EF6\uFF0C\u652F\u6301\u62D6\u62FD\u8C03\u6574\u65F6\u95F4\uFF0C\u591A\u79CD\u989C\u8272\u6807\u8BC6\u3002")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center mb-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-green-100 p-3 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-6 h-6 text-green-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }))), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "ml-3 text-lg font-semibold text-gray-900" }, "\u91CD\u590D\u4E8B\u4EF6")), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 text-sm mb-4" }, "\u652F\u6301\u65E5\u3001\u5468\u3001\u6708\u3001\u5E74\u91CD\u590D\u6A21\u5F0F\uFF0C\u7075\u6D3B\u7684\u91CD\u590D\u89C4\u5219\u914D\u7F6E\u3002")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center mb-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-purple-100 p-3 rounded-lg" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-6 h-6 text-purple-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-5 5v-5zM4 7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v6a2 2 0 01-2 2H6a2 2 0 01-2-2V7z" }))), /* @__PURE__ */ React3__default.default.createElement("h3", { className: "ml-3 text-lg font-semibold text-gray-900" }, "\u667A\u80FD\u63D0\u9192")), /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600 text-sm mb-4" }, "\u90AE\u4EF6\u3001\u901A\u77E5\u3001\u77ED\u4FE1\u591A\u79CD\u63D0\u9192\u65B9\u5F0F\uFF0C\u81EA\u5B9A\u4E49\u63D0\u9192\u65F6\u95F4\u3002"))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 mb-4" }, "\u6280\u672F\u7279\u6027"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center text-sm text-gray-600" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4 text-green-500 mr-3 flex-shrink-0", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React3__default.default.createElement("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" })), "\u5B8C\u6574\u7684TypeScript\u7C7B\u578B\u5B9A\u4E49"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center text-sm text-gray-600" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-4 h-4 text-green-500 mr-3 flex-shrink-0", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React3__default.default.createElement("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" })), "\u54CD\u5E94\u5F0F\u8BBE\u8BA1 (TailwindCSS)")))), activeTab === "events" && /* @__PURE__ */ React3__default.default.createElement(
3149
+ )))))), renderCalendarView(), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center mb-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-blue-100 p-3 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-6 h-6 text-blue-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" }))), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "ml-3 text-lg font-semibold text-gray-900" }, "\u4E8B\u4EF6\u7BA1\u7406")), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600 text-sm mb-4" }, "\u521B\u5EFA\u3001\u7F16\u8F91\u3001\u5220\u9664\u65E5\u5386\u4E8B\u4EF6\uFF0C\u652F\u6301\u62D6\u62FD\u8C03\u6574\u65F6\u95F4\uFF0C\u591A\u79CD\u989C\u8272\u6807\u8BC6\u3002")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center mb-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-green-100 p-3 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-6 h-6 text-green-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }))), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "ml-3 text-lg font-semibold text-gray-900" }, "\u91CD\u590D\u4E8B\u4EF6")), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600 text-sm mb-4" }, "\u652F\u6301\u65E5\u3001\u5468\u3001\u6708\u3001\u5E74\u91CD\u590D\u6A21\u5F0F\uFF0C\u7075\u6D3B\u7684\u91CD\u590D\u89C4\u5219\u914D\u7F6E\u3002")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center mb-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-purple-100 p-3 rounded-lg" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-6 h-6 text-purple-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 17h5l-5 5v-5zM4 7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v6a2 2 0 01-2 2H6a2 2 0 01-2-2V7z" }))), /* @__PURE__ */ React2__default.default.createElement("h3", { className: "ml-3 text-lg font-semibold text-gray-900" }, "\u667A\u80FD\u63D0\u9192")), /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600 text-sm mb-4" }, "\u90AE\u4EF6\u3001\u901A\u77E5\u3001\u77ED\u4FE1\u591A\u79CD\u63D0\u9192\u65B9\u5F0F\uFF0C\u81EA\u5B9A\u4E49\u63D0\u9192\u65F6\u95F4\u3002"))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-sm border border-gray-200 p-6" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-semibold text-gray-900 mb-4" }, "\u6280\u672F\u7279\u6027"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center text-sm text-gray-600" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4 text-green-500 mr-3 flex-shrink-0", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React2__default.default.createElement("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" })), "\u5B8C\u6574\u7684TypeScript\u7C7B\u578B\u5B9A\u4E49"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center text-sm text-gray-600" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-4 h-4 text-green-500 mr-3 flex-shrink-0", fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React2__default.default.createElement("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" })), "\u54CD\u5E94\u5F0F\u8BBE\u8BA1 (TailwindCSS)")))), activeTab === "events" && /* @__PURE__ */ React2__default.default.createElement(
3215
3150
  EventList,
3216
3151
  {
3217
3152
  events,
@@ -3224,12 +3159,12 @@ function CalendarPage({
3224
3159
  enableBatchActions: true,
3225
3160
  loading
3226
3161
  }
3227
- ), activeTab === "settings" && /* @__PURE__ */ React3__default.default.createElement(
3162
+ ), activeTab === "settings" && /* @__PURE__ */ React2__default.default.createElement(
3228
3163
  CalendarSettings,
3229
3164
  {
3230
3165
  onSettingsChange: handleSettingsChange
3231
3166
  }
3232
- )), /* @__PURE__ */ React3__default.default.createElement(
3167
+ )), /* @__PURE__ */ React2__default.default.createElement(
3233
3168
  ImprovedEventModal_default,
3234
3169
  {
3235
3170
  isOpen: isEventModalOpen,
@@ -3249,7 +3184,7 @@ var EventModal = ({
3249
3184
  event,
3250
3185
  initialDate
3251
3186
  }) => {
3252
- const [formData, setFormData] = React3.useState({
3187
+ const [formData, setFormData] = React2.useState({
3253
3188
  title: "",
3254
3189
  description: "",
3255
3190
  startTime: "",
@@ -3272,11 +3207,11 @@ var EventModal = ({
3272
3207
  reminderType: "notification",
3273
3208
  reminderMinutes: void 0
3274
3209
  });
3275
- const [isLoading, setIsLoading] = React3.useState(false);
3276
- const [errors, setErrors] = React3.useState({});
3277
- const [showDeleteConfirm, setShowDeleteConfirm] = React3.useState(false);
3210
+ const [isLoading, setIsLoading] = React2.useState(false);
3211
+ const [errors, setErrors] = React2.useState({});
3212
+ const [showDeleteConfirm, setShowDeleteConfirm] = React2.useState(false);
3278
3213
  const isEditMode = !!event;
3279
- React3.useEffect(() => {
3214
+ React2.useEffect(() => {
3280
3215
  if (event) {
3281
3216
  const startDate = new Date(event.startTime);
3282
3217
  const endDate = new Date(event.endTime);
@@ -3420,8 +3355,8 @@ var EventModal = ({
3420
3355
  resetForm();
3421
3356
  onClose();
3422
3357
  };
3423
- return /* @__PURE__ */ React3__default.default.createElement(
3424
- Modal,
3358
+ return /* @__PURE__ */ React2__default.default.createElement(
3359
+ chunkG6WRJ2H2_js.Modal,
3425
3360
  {
3426
3361
  isOpen,
3427
3362
  onClose: handleClose,
@@ -3429,7 +3364,7 @@ var EventModal = ({
3429
3364
  width: 600,
3430
3365
  maskClosable: false
3431
3366
  },
3432
- /* @__PURE__ */ React3__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "title", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4E8B\u4EF6\u6807\u9898 *"), /* @__PURE__ */ React3__default.default.createElement(
3367
+ /* @__PURE__ */ React2__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "title", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4E8B\u4EF6\u6807\u9898 *"), /* @__PURE__ */ React2__default.default.createElement(
3433
3368
  "input",
3434
3369
  {
3435
3370
  type: "text",
@@ -3439,7 +3374,7 @@ var EventModal = ({
3439
3374
  className: `w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none ${errors.title ? "border-red-500" : "border-gray-300"}`,
3440
3375
  placeholder: "\u8F93\u5165\u4E8B\u4EF6\u6807\u9898"
3441
3376
  }
3442
- ), errors.title && /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-red-500 text-sm mt-1" }, errors.title)), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3377
+ ), errors.title && /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-red-500 text-sm mt-1" }, errors.title)), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3443
3378
  "input",
3444
3379
  {
3445
3380
  type: "checkbox",
@@ -3448,7 +3383,7 @@ var EventModal = ({
3448
3383
  onChange: (e) => handleInputChange("isAllDay", e.target.checked),
3449
3384
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3450
3385
  }
3451
- ), /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "isAllDay", className: "ml-2 text-sm text-gray-700" }, "\u5168\u5929\u4E8B\u4EF6")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "startTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u5F00\u59CB\u65F6\u95F4 *"), /* @__PURE__ */ React3__default.default.createElement(
3386
+ ), /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "isAllDay", className: "ml-2 text-sm text-gray-700" }, "\u5168\u5929\u4E8B\u4EF6")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "startTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u5F00\u59CB\u65F6\u95F4 *"), /* @__PURE__ */ React2__default.default.createElement(
3452
3387
  "input",
3453
3388
  {
3454
3389
  type: formData.isAllDay ? "date" : "datetime-local",
@@ -3460,7 +3395,7 @@ var EventModal = ({
3460
3395
  },
3461
3396
  className: `w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none ${errors.startTime ? "border-red-500" : "border-gray-300"}`
3462
3397
  }
3463
- ), errors.startTime && /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-red-500 text-sm mt-1" }, errors.startTime)), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "endTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u7ED3\u675F\u65F6\u95F4 *"), /* @__PURE__ */ React3__default.default.createElement(
3398
+ ), errors.startTime && /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-red-500 text-sm mt-1" }, errors.startTime)), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "endTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u7ED3\u675F\u65F6\u95F4 *"), /* @__PURE__ */ React2__default.default.createElement(
3464
3399
  "input",
3465
3400
  {
3466
3401
  type: formData.isAllDay ? "date" : "datetime-local",
@@ -3472,7 +3407,7 @@ var EventModal = ({
3472
3407
  },
3473
3408
  className: `w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none ${errors.endTime ? "border-red-500" : "border-gray-300"}`
3474
3409
  }
3475
- ), errors.endTime && /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-red-500 text-sm mt-1" }, errors.endTime))), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "location", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4F4D\u7F6E"), /* @__PURE__ */ React3__default.default.createElement(
3410
+ ), errors.endTime && /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-red-500 text-sm mt-1" }, errors.endTime))), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "location", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4F4D\u7F6E"), /* @__PURE__ */ React2__default.default.createElement(
3476
3411
  "input",
3477
3412
  {
3478
3413
  type: "text",
@@ -3482,7 +3417,7 @@ var EventModal = ({
3482
3417
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none",
3483
3418
  placeholder: "\u8F93\u5165\u4E8B\u4EF6\u4F4D\u7F6E"
3484
3419
  }
3485
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "description", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u63CF\u8FF0"), /* @__PURE__ */ React3__default.default.createElement(
3420
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "description", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u63CF\u8FF0"), /* @__PURE__ */ React2__default.default.createElement(
3486
3421
  "textarea",
3487
3422
  {
3488
3423
  id: "description",
@@ -3492,7 +3427,7 @@ var EventModal = ({
3492
3427
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none resize-none",
3493
3428
  placeholder: "\u8F93\u5165\u4E8B\u4EF6\u63CF\u8FF0"
3494
3429
  }
3495
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "priority", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4F18\u5148\u7EA7"), /* @__PURE__ */ React3__default.default.createElement(
3430
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "priority", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4F18\u5148\u7EA7"), /* @__PURE__ */ React2__default.default.createElement(
3496
3431
  "select",
3497
3432
  {
3498
3433
  id: "priority",
@@ -3500,11 +3435,11 @@ var EventModal = ({
3500
3435
  onChange: (e) => handleInputChange("priority", e.target.value),
3501
3436
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
3502
3437
  },
3503
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "low" /* LOW */ }, "\u4F4E"),
3504
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "normal" /* NORMAL */ }, "\u666E\u901A"),
3505
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "high" /* HIGH */ }, "\u9AD8"),
3506
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "urgent" /* URGENT */ }, "\u7D27\u6025")
3507
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "color", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u989C\u8272\u6807\u7B7E"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement(
3438
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "low" /* LOW */ }, "\u4F4E"),
3439
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "normal" /* NORMAL */ }, "\u666E\u901A"),
3440
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "high" /* HIGH */ }, "\u9AD8"),
3441
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "urgent" /* URGENT */ }, "\u7D27\u6025")
3442
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "color", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u989C\u8272\u6807\u7B7E"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement(
3508
3443
  "input",
3509
3444
  {
3510
3445
  type: "color",
@@ -3513,7 +3448,7 @@ var EventModal = ({
3513
3448
  onChange: (e) => handleInputChange("color", e.target.value),
3514
3449
  className: "w-12 h-10 border border-gray-300 rounded cursor-pointer"
3515
3450
  }
3516
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-600" }, formData.color))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "border-t border-gray-200 pt-4" }, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "text-sm font-medium text-gray-700 mb-3" }, "\u{1F504} \u91CD\u590D\u8BBE\u7F6E"), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "recurrenceType", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u91CD\u590D\u9891\u7387"), /* @__PURE__ */ React3__default.default.createElement(
3451
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-600" }, formData.color))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "border-t border-gray-200 pt-4" }, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "text-sm font-medium text-gray-700 mb-3" }, "\u{1F504} \u91CD\u590D\u8BBE\u7F6E"), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "recurrenceType", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u91CD\u590D\u9891\u7387"), /* @__PURE__ */ React2__default.default.createElement(
3517
3452
  "select",
3518
3453
  {
3519
3454
  id: "recurrenceType",
@@ -3524,12 +3459,12 @@ var EventModal = ({
3524
3459
  },
3525
3460
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
3526
3461
  },
3527
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "none" }, "\u4E0D\u91CD\u590D"),
3528
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "daily" }, "\u6BCF\u5929"),
3529
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "weekly" }, "\u6BCF\u5468"),
3530
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "monthly" }, "\u6BCF\u6708"),
3531
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "yearly" }, "\u6BCF\u5E74")
3532
- )), formData.recurrenceType && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-3" }, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "recurrenceInterval", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u91CD\u590D\u95F4\u9694"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-600" }, "\u6BCF"), /* @__PURE__ */ React3__default.default.createElement(
3462
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "none" }, "\u4E0D\u91CD\u590D"),
3463
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "daily" }, "\u6BCF\u5929"),
3464
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "weekly" }, "\u6BCF\u5468"),
3465
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "monthly" }, "\u6BCF\u6708"),
3466
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "yearly" }, "\u6BCF\u5E74")
3467
+ )), formData.recurrenceType && /* @__PURE__ */ React2__default.default.createElement("div", { className: "mt-3" }, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "recurrenceInterval", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u91CD\u590D\u95F4\u9694"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-600" }, "\u6BCF"), /* @__PURE__ */ React2__default.default.createElement(
3533
3468
  "input",
3534
3469
  {
3535
3470
  type: "number",
@@ -3540,7 +3475,7 @@ var EventModal = ({
3540
3475
  onChange: (e) => handleInputChange("recurrenceInterval", parseInt(e.target.value) || 1),
3541
3476
  className: "w-20 px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none text-center"
3542
3477
  }
3543
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-600" }, formData.recurrenceType === "daily" && "\u5929", formData.recurrenceType === "weekly" && "\u5468", formData.recurrenceType === "monthly" && "\u6708", formData.recurrenceType === "yearly" && "\u5E74"))), formData.recurrenceType && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-3" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u91CD\u590D\u7ED3\u675F"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3478
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-600" }, formData.recurrenceType === "daily" && "\u5929", formData.recurrenceType === "weekly" && "\u5468", formData.recurrenceType === "monthly" && "\u6708", formData.recurrenceType === "yearly" && "\u5E74"))), formData.recurrenceType && /* @__PURE__ */ React2__default.default.createElement("div", { className: "mt-3" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u91CD\u590D\u7ED3\u675F"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3544
3479
  "input",
3545
3480
  {
3546
3481
  type: "radio",
@@ -3552,7 +3487,7 @@ var EventModal = ({
3552
3487
  },
3553
3488
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300"
3554
3489
  }
3555
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u6C38\u4E0D\u7ED3\u675F")), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3490
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u6C38\u4E0D\u7ED3\u675F")), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3556
3491
  "input",
3557
3492
  {
3558
3493
  type: "radio",
@@ -3566,7 +3501,7 @@ var EventModal = ({
3566
3501
  },
3567
3502
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300"
3568
3503
  }
3569
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u7ED3\u675F\u4E8E:"), /* @__PURE__ */ React3__default.default.createElement(
3504
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u7ED3\u675F\u4E8E:"), /* @__PURE__ */ React2__default.default.createElement(
3570
3505
  "input",
3571
3506
  {
3572
3507
  type: "date",
@@ -3578,7 +3513,7 @@ var EventModal = ({
3578
3513
  className: "ml-2 px-2 py-1 border border-gray-300 rounded text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none",
3579
3514
  disabled: !formData.recurrenceEndDate
3580
3515
  }
3581
- )), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3516
+ )), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3582
3517
  "input",
3583
3518
  {
3584
3519
  type: "radio",
@@ -3590,7 +3525,7 @@ var EventModal = ({
3590
3525
  },
3591
3526
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300"
3592
3527
  }
3593
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u91CD\u590D"), /* @__PURE__ */ React3__default.default.createElement(
3528
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u91CD\u590D"), /* @__PURE__ */ React2__default.default.createElement(
3594
3529
  "input",
3595
3530
  {
3596
3531
  type: "number",
@@ -3607,7 +3542,7 @@ var EventModal = ({
3607
3542
  className: "ml-2 w-16 px-2 py-1 border border-gray-300 rounded text-sm text-center focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none",
3608
3543
  disabled: !formData.recurrenceCount || formData.recurrenceCount === 0
3609
3544
  }
3610
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u6B21"))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "border-t border-gray-200 pt-4" }, /* @__PURE__ */ React3__default.default.createElement("h4", { className: "text-sm font-medium text-gray-700 mb-3" }, "\u{1F514} \u63D0\u9192\u8BBE\u7F6E"), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u63D0\u9192\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3545
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u6B21"))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "border-t border-gray-200 pt-4" }, /* @__PURE__ */ React2__default.default.createElement("h4", { className: "text-sm font-medium text-gray-700 mb-3" }, "\u{1F514} \u63D0\u9192\u8BBE\u7F6E"), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u63D0\u9192\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3611
3546
  "input",
3612
3547
  {
3613
3548
  type: "checkbox",
@@ -3621,7 +3556,7 @@ var EventModal = ({
3621
3556
  },
3622
3557
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3623
3558
  }
3624
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u4E8B\u4EF6\u5F00\u59CB\u65F6")), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3559
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u4E8B\u4EF6\u5F00\u59CB\u65F6")), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3625
3560
  "input",
3626
3561
  {
3627
3562
  type: "checkbox",
@@ -3635,7 +3570,7 @@ var EventModal = ({
3635
3570
  },
3636
3571
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3637
3572
  }
3638
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D15\u5206\u949F")), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3573
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D15\u5206\u949F")), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3639
3574
  "input",
3640
3575
  {
3641
3576
  type: "checkbox",
@@ -3649,7 +3584,7 @@ var EventModal = ({
3649
3584
  },
3650
3585
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3651
3586
  }
3652
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D30\u5206\u949F")), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3587
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D30\u5206\u949F")), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3653
3588
  "input",
3654
3589
  {
3655
3590
  type: "checkbox",
@@ -3663,7 +3598,7 @@ var EventModal = ({
3663
3598
  },
3664
3599
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3665
3600
  }
3666
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D1\u5C0F\u65F6")), /* @__PURE__ */ React3__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3601
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D1\u5C0F\u65F6")), /* @__PURE__ */ React2__default.default.createElement("label", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3667
3602
  "input",
3668
3603
  {
3669
3604
  type: "checkbox",
@@ -3677,7 +3612,7 @@ var EventModal = ({
3677
3612
  },
3678
3613
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3679
3614
  }
3680
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D1\u5929"))))), errors.submit && /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-red-50 border border-red-200 rounded-lg p-3" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-red-600 text-sm" }, errors.submit)), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex justify-between pt-4 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", null, isEditMode && onDelete && /* @__PURE__ */ React3__default.default.createElement(
3615
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "ml-2 text-sm text-gray-700" }, "\u63D0\u524D1\u5929"))))), errors.submit && /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-red-50 border border-red-200 rounded-lg p-3" }, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-red-600 text-sm" }, errors.submit)), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex justify-between pt-4 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", null, isEditMode && onDelete && /* @__PURE__ */ React2__default.default.createElement(
3681
3616
  "button",
3682
3617
  {
3683
3618
  type: "button",
@@ -3686,7 +3621,7 @@ var EventModal = ({
3686
3621
  disabled: isLoading
3687
3622
  },
3688
3623
  "\u5220\u9664\u4E8B\u4EF6"
3689
- )), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
3624
+ )), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex space-x-3" }, /* @__PURE__ */ React2__default.default.createElement(
3690
3625
  "button",
3691
3626
  {
3692
3627
  type: "button",
@@ -3695,7 +3630,7 @@ var EventModal = ({
3695
3630
  disabled: isLoading
3696
3631
  },
3697
3632
  "\u53D6\u6D88"
3698
- ), /* @__PURE__ */ React3__default.default.createElement(
3633
+ ), /* @__PURE__ */ React2__default.default.createElement(
3699
3634
  "button",
3700
3635
  {
3701
3636
  type: "submit",
@@ -3704,8 +3639,8 @@ var EventModal = ({
3704
3639
  },
3705
3640
  isLoading ? "\u4FDD\u5B58\u4E2D..." : isEditMode ? "\u66F4\u65B0\u4E8B\u4EF6" : "\u521B\u5EFA\u4E8B\u4EF6"
3706
3641
  )))),
3707
- /* @__PURE__ */ React3__default.default.createElement(
3708
- ConfirmModal,
3642
+ /* @__PURE__ */ React2__default.default.createElement(
3643
+ chunkG6WRJ2H2_js.ConfirmModal,
3709
3644
  {
3710
3645
  isOpen: showDeleteConfirm,
3711
3646
  onClose: () => setShowDeleteConfirm(false),
@@ -3728,13 +3663,13 @@ var EventDetailPage = ({
3728
3663
  onEdit,
3729
3664
  onDelete
3730
3665
  }) => {
3731
- const [event, setEvent] = React3.useState(null);
3732
- const [isLoading, setIsLoading] = React3.useState(true);
3733
- const [isEditModalOpen, setIsEditModalOpen] = React3.useState(false);
3734
- const [showDeleteConfirm, setShowDeleteConfirm] = React3.useState(false);
3735
- const [isDeleting, setIsDeleting] = React3.useState(false);
3666
+ const [event, setEvent] = React2.useState(null);
3667
+ const [isLoading, setIsLoading] = React2.useState(true);
3668
+ const [isEditModalOpen, setIsEditModalOpen] = React2.useState(false);
3669
+ const [showDeleteConfirm, setShowDeleteConfirm] = React2.useState(false);
3670
+ const [isDeleting, setIsDeleting] = React2.useState(false);
3736
3671
  const { events, updateEvent, deleteEvent } = useEvents2();
3737
- React3.useEffect(() => {
3672
+ React2.useEffect(() => {
3738
3673
  const foundEvent = events.find((e) => e.id === eventId);
3739
3674
  if (foundEvent) {
3740
3675
  setEvent(foundEvent);
@@ -3797,10 +3732,10 @@ var EventDetailPage = ({
3797
3732
  }
3798
3733
  };
3799
3734
  if (isLoading) {
3800
- return /* @__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: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto" }), /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-4 text-gray-600" }, "\u52A0\u8F7D\u4E8B\u4EF6\u8BE6\u60C5...")));
3735
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "min-h-screen bg-gray-50 flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto" }), /* @__PURE__ */ React2__default.default.createElement("p", { className: "mt-4 text-gray-600" }, "\u52A0\u8F7D\u4E8B\u4EF6\u8BE6\u60C5...")));
3801
3736
  }
3802
3737
  if (!event) {
3803
- return /* @__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: "text-center" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-600" }, "\u4E8B\u4EF6\u4E0D\u5B58\u5728"), onBack && /* @__PURE__ */ React3__default.default.createElement(
3738
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "min-h-screen bg-gray-50 flex items-center justify-center" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-600" }, "\u4E8B\u4EF6\u4E0D\u5B58\u5728"), onBack && /* @__PURE__ */ React2__default.default.createElement(
3804
3739
  "button",
3805
3740
  {
3806
3741
  onClick: onBack,
@@ -3809,40 +3744,40 @@ var EventDetailPage = ({
3809
3744
  "\u8FD4\u56DE"
3810
3745
  )));
3811
3746
  }
3812
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "min-h-screen bg-gray-50" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "max-w-4xl mx-auto px-4 py-8" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-4" }, onBack && /* @__PURE__ */ React3__default.default.createElement(
3747
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "min-h-screen bg-gray-50" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "max-w-4xl mx-auto px-4 py-8" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-4" }, onBack && /* @__PURE__ */ React2__default.default.createElement(
3813
3748
  "button",
3814
3749
  {
3815
3750
  onClick: onBack,
3816
3751
  className: "p-2 hover:bg-gray-100 rounded-md"
3817
3752
  },
3818
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))
3819
- ), /* @__PURE__ */ React3__default.default.createElement("h1", { className: "text-3xl font-bold text-gray-900" }, "\u4E8B\u4EF6\u8BE6\u60C5")), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
3753
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))
3754
+ ), /* @__PURE__ */ React2__default.default.createElement("h1", { className: "text-3xl font-bold text-gray-900" }, "\u4E8B\u4EF6\u8BE6\u60C5")), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex space-x-3" }, /* @__PURE__ */ React2__default.default.createElement(
3820
3755
  "button",
3821
3756
  {
3822
3757
  onClick: () => setIsEditModalOpen(true),
3823
3758
  className: "px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700"
3824
3759
  },
3825
3760
  "\u7F16\u8F91"
3826
- ), /* @__PURE__ */ React3__default.default.createElement(
3761
+ ), /* @__PURE__ */ React2__default.default.createElement(
3827
3762
  "button",
3828
3763
  {
3829
3764
  onClick: () => setShowDeleteConfirm(true),
3830
3765
  className: "px-4 py-2 bg-red-600 text-white rounded-md hover:bg-red-700"
3831
3766
  },
3832
3767
  "\u5220\u9664"
3833
- )))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-md overflow-hidden" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-2xl font-semibold text-gray-900" }, event.title), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement(
3768
+ )))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-md overflow-hidden" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "px-6 py-4 border-b border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2__default.default.createElement("h2", { className: "text-2xl font-semibold text-gray-900" }, event.title), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement(
3834
3769
  "span",
3835
3770
  {
3836
3771
  className: `px-2 py-1 text-xs font-medium rounded-full ${getPriorityColor(event.priority || "normal")}`
3837
3772
  },
3838
3773
  getPriorityText(event.priority || "normal")
3839
- ), /* @__PURE__ */ React3__default.default.createElement(
3774
+ ), /* @__PURE__ */ React2__default.default.createElement(
3840
3775
  "div",
3841
3776
  {
3842
3777
  className: "w-4 h-4 rounded-full",
3843
3778
  style: { backgroundColor: event.color }
3844
3779
  }
3845
- )))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "px-6 py-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u65F6\u95F4\u4FE1\u606F"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.startTime)), " ", formatTime(new Date(event.startTime))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.endTime)), " ", formatTime(new Date(event.endTime))))), event.allDay && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u5168\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-medium text-blue-600" }, "\u662F"))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-3" }, event.location && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__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__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u5730\u70B9"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-medium" }, event.location))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 4V2a1 1 0 011-1h8a1 1 0 011 1v2M7 4a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2M7 4h10M7 8h10M7 12h10" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u521B\u5EFA\u65F6\u95F4"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.createdAt)), " ", formatTime(new Date(event.createdAt))))), event.updatedAt && event.updatedAt !== event.createdAt && /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" })), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u6700\u540E\u4FEE\u6539"), /* @__PURE__ */ React3__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.updatedAt)), " ", formatTime(new Date(event.updatedAt)))))))), event.description && /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-6 pt-6 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900 mb-3" }, "\u63CF\u8FF0"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "prose max-w-none" }, /* @__PURE__ */ React3__default.default.createElement("p", { className: "text-gray-700 whitespace-pre-wrap" }, event.description)))))), /* @__PURE__ */ React3__default.default.createElement(
3780
+ )))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "px-6 py-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u65F6\u95F4\u4FE1\u606F"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u5F00\u59CB\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.startTime)), " ", formatTime(new Date(event.startTime))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u7ED3\u675F\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.endTime)), " ", formatTime(new Date(event.endTime))))), event.allDay && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z" })), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u5168\u5929\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "font-medium text-blue-600" }, "\u662F"))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-3" }, event.location && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__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__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" })), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u5730\u70B9"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "font-medium" }, event.location))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 4V2a1 1 0 011-1h8a1 1 0 011 1v2M7 4a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2M7 4h10M7 8h10M7 12h10" })), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u521B\u5EFA\u65F6\u95F4"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.createdAt)), " ", formatTime(new Date(event.createdAt))))), event.updatedAt && event.updatedAt !== event.createdAt && /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-5 h-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" })), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u6700\u540E\u4FEE\u6539"), /* @__PURE__ */ React2__default.default.createElement("p", { className: "font-medium" }, formatDate(new Date(event.updatedAt)), " ", formatTime(new Date(event.updatedAt)))))))), event.description && /* @__PURE__ */ React2__default.default.createElement("div", { className: "mt-6 pt-6 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900 mb-3" }, "\u63CF\u8FF0"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "prose max-w-none" }, /* @__PURE__ */ React2__default.default.createElement("p", { className: "text-gray-700 whitespace-pre-wrap" }, event.description)))))), /* @__PURE__ */ React2__default.default.createElement(
3846
3781
  EventModal_default,
3847
3782
  {
3848
3783
  isOpen: isEditModalOpen,
@@ -3850,8 +3785,8 @@ var EventDetailPage = ({
3850
3785
  onSave: handleEditSave,
3851
3786
  event
3852
3787
  }
3853
- ), /* @__PURE__ */ React3__default.default.createElement(
3854
- ConfirmModal,
3788
+ ), /* @__PURE__ */ React2__default.default.createElement(
3789
+ chunkG6WRJ2H2_js.ConfirmModal,
3855
3790
  {
3856
3791
  isOpen: showDeleteConfirm,
3857
3792
  onClose: () => setShowDeleteConfirm(false),
@@ -3872,7 +3807,7 @@ function EventForm({
3872
3807
  onCancel,
3873
3808
  loading = false
3874
3809
  }) {
3875
- const [formData, setFormData] = React3.useState({
3810
+ const [formData, setFormData] = React2.useState({
3876
3811
  title: "",
3877
3812
  description: "",
3878
3813
  startTime: /* @__PURE__ */ new Date(),
@@ -3885,8 +3820,8 @@ function EventForm({
3885
3820
  recurrence: void 0,
3886
3821
  reminders: []
3887
3822
  });
3888
- const [errors, setErrors] = React3.useState({});
3889
- React3.useEffect(() => {
3823
+ const [errors, setErrors] = React2.useState({});
3824
+ React2.useEffect(() => {
3890
3825
  if (initialData) {
3891
3826
  setFormData((prev) => ({
3892
3827
  ...prev,
@@ -3947,14 +3882,14 @@ function EventForm({
3947
3882
  { value: "#6366F1" /* INDIGO */, label: "\u975B\u84DD", class: "bg-indigo-500" },
3948
3883
  { value: "#6B7280" /* GRAY */, label: "\u7070\u8272", class: "bg-gray-500" }
3949
3884
  ];
3950
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6 max-w-2xl mx-auto" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-between mb-6" }, /* @__PURE__ */ React3__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900" }, isEdit ? "\u7F16\u8F91\u4E8B\u4EF6" : "\u521B\u5EFA\u4E8B\u4EF6"), /* @__PURE__ */ React3__default.default.createElement(
3885
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: "bg-white rounded-lg shadow-lg p-6 max-w-2xl mx-auto" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-between mb-6" }, /* @__PURE__ */ React2__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900" }, isEdit ? "\u7F16\u8F91\u4E8B\u4EF6" : "\u521B\u5EFA\u4E8B\u4EF6"), /* @__PURE__ */ React2__default.default.createElement(
3951
3886
  "button",
3952
3887
  {
3953
3888
  onClick: onCancel,
3954
3889
  className: "text-gray-400 hover:text-gray-600 transition-colors"
3955
3890
  },
3956
- /* @__PURE__ */ React3__default.default.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
3957
- )), /* @__PURE__ */ React3__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-6" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "title", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4E8B\u4EF6\u6807\u9898 *"), /* @__PURE__ */ React3__default.default.createElement(
3891
+ /* @__PURE__ */ React2__default.default.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
3892
+ )), /* @__PURE__ */ React2__default.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-6" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "title", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4E8B\u4EF6\u6807\u9898 *"), /* @__PURE__ */ React2__default.default.createElement(
3958
3893
  "input",
3959
3894
  {
3960
3895
  type: "text",
@@ -3964,7 +3899,7 @@ function EventForm({
3964
3899
  className: `w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${errors.title ? "border-red-300" : "border-gray-300"}`,
3965
3900
  placeholder: "\u8BF7\u8F93\u5165\u4E8B\u4EF6\u6807\u9898"
3966
3901
  }
3967
- ), errors.title && /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-1 text-sm text-red-600" }, errors.title)), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "description", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4E8B\u4EF6\u63CF\u8FF0"), /* @__PURE__ */ React3__default.default.createElement(
3902
+ ), errors.title && /* @__PURE__ */ React2__default.default.createElement("p", { className: "mt-1 text-sm text-red-600" }, errors.title)), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "description", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u4E8B\u4EF6\u63CF\u8FF0"), /* @__PURE__ */ React2__default.default.createElement(
3968
3903
  "textarea",
3969
3904
  {
3970
3905
  id: "description",
@@ -3974,7 +3909,7 @@ function EventForm({
3974
3909
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
3975
3910
  placeholder: "\u8BF7\u8F93\u5165\u4E8B\u4EF6\u63CF\u8FF0\uFF08\u53EF\u9009\uFF09"
3976
3911
  }
3977
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "location", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u5730\u70B9"), /* @__PURE__ */ React3__default.default.createElement(
3912
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "location", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u5730\u70B9"), /* @__PURE__ */ React2__default.default.createElement(
3978
3913
  "input",
3979
3914
  {
3980
3915
  type: "text",
@@ -3984,7 +3919,7 @@ function EventForm({
3984
3919
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
3985
3920
  placeholder: "\u8BF7\u8F93\u5165\u4E8B\u4EF6\u5730\u70B9\uFF08\u53EF\u9009\uFF09"
3986
3921
  }
3987
- ))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u65F6\u95F4\u8BBE\u7F6E"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React3__default.default.createElement(
3922
+ ))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u65F6\u95F4\u8BBE\u7F6E"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React2__default.default.createElement(
3988
3923
  "input",
3989
3924
  {
3990
3925
  type: "checkbox",
@@ -3993,7 +3928,7 @@ function EventForm({
3993
3928
  onChange: (e) => handleInputChange("allDay", e.target.checked),
3994
3929
  className: "h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"
3995
3930
  }
3996
- ), /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "allDay", className: "ml-2 text-sm text-gray-700" }, "\u5168\u5929\u4E8B\u4EF6")), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "startTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u5F00\u59CB\u65F6\u95F4 *"), /* @__PURE__ */ React3__default.default.createElement(
3931
+ ), /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "allDay", className: "ml-2 text-sm text-gray-700" }, "\u5168\u5929\u4E8B\u4EF6")), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "startTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u5F00\u59CB\u65F6\u95F4 *"), /* @__PURE__ */ React2__default.default.createElement(
3997
3932
  "input",
3998
3933
  {
3999
3934
  type: formData.allDay ? "date" : "datetime-local",
@@ -4005,7 +3940,7 @@ function EventForm({
4005
3940
  },
4006
3941
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"
4007
3942
  }
4008
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { htmlFor: "endTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u7ED3\u675F\u65F6\u95F4 *"), /* @__PURE__ */ React3__default.default.createElement(
3943
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { htmlFor: "endTime", className: "block text-sm font-medium text-gray-700 mb-1" }, "\u7ED3\u675F\u65F6\u95F4 *"), /* @__PURE__ */ React2__default.default.createElement(
4009
3944
  "input",
4010
3945
  {
4011
3946
  type: formData.allDay ? "date" : "datetime-local",
@@ -4017,7 +3952,7 @@ function EventForm({
4017
3952
  },
4018
3953
  className: `w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${errors.endTime ? "border-red-300" : "border-gray-300"}`
4019
3954
  }
4020
- ), errors.endTime && /* @__PURE__ */ React3__default.default.createElement("p", { className: "mt-1 text-sm text-red-600" }, errors.endTime))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React3__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u5916\u89C2"), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4E8B\u4EF6\u989C\u8272"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-wrap gap-3" }, colorOptions.map((option) => /* @__PURE__ */ React3__default.default.createElement(
3955
+ ), errors.endTime && /* @__PURE__ */ React2__default.default.createElement("p", { className: "mt-1 text-sm text-red-600" }, errors.endTime))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2__default.default.createElement("h3", { className: "text-lg font-medium text-gray-900" }, "\u5916\u89C2"), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4E8B\u4EF6\u989C\u8272"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-wrap gap-3" }, colorOptions.map((option) => /* @__PURE__ */ React2__default.default.createElement(
4021
3956
  "button",
4022
3957
  {
4023
3958
  key: option.value,
@@ -4028,9 +3963,9 @@ function EventForm({
4028
3963
  ${formData.color === option.value ? "border-blue-500 ring-2 ring-blue-200" : "border-gray-200 hover:border-gray-300"}
4029
3964
  `
4030
3965
  },
4031
- /* @__PURE__ */ React3__default.default.createElement("div", { className: `w-4 h-4 rounded-full ${option.class} mr-2` }),
4032
- /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-sm text-gray-700" }, option.label)
4033
- ))))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center justify-end gap-3 pt-6 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement(
3966
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: `w-4 h-4 rounded-full ${option.class} mr-2` }),
3967
+ /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-sm text-gray-700" }, option.label)
3968
+ ))))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center justify-end gap-3 pt-6 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement(
4034
3969
  "button",
4035
3970
  {
4036
3971
  type: "button",
@@ -4038,7 +3973,7 @@ function EventForm({
4038
3973
  className: "px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors"
4039
3974
  },
4040
3975
  "\u53D6\u6D88"
4041
- ), /* @__PURE__ */ React3__default.default.createElement(
3976
+ ), /* @__PURE__ */ React2__default.default.createElement(
4042
3977
  "button",
4043
3978
  {
4044
3979
  type: "submit",
@@ -4053,8 +3988,8 @@ var EventSearch = ({
4053
3988
  onFiltered,
4054
3989
  className = ""
4055
3990
  }) => {
4056
- const [isExpanded, setIsExpanded] = React3.useState(false);
4057
- const [filters, setFilters] = React3.useState({
3991
+ const [isExpanded, setIsExpanded] = React2.useState(false);
3992
+ const [filters, setFilters] = React2.useState({
4058
3993
  keyword: "",
4059
3994
  priority: "all",
4060
3995
  dateRange: {
@@ -4064,14 +3999,14 @@ var EventSearch = ({
4064
3999
  colorFilter: [],
4065
4000
  isAllDay: "all"
4066
4001
  });
4067
- const availableColors = React3.useMemo(() => {
4002
+ const availableColors = React2.useMemo(() => {
4068
4003
  const colors = /* @__PURE__ */ new Set();
4069
4004
  events.forEach((event) => {
4070
4005
  if (event.color) colors.add(event.color);
4071
4006
  });
4072
4007
  return Array.from(colors);
4073
4008
  }, [events]);
4074
- const filteredEvents = React3.useMemo(() => {
4009
+ const filteredEvents = React2.useMemo(() => {
4075
4010
  return events.filter((event) => {
4076
4011
  if (filters.keyword) {
4077
4012
  const keyword = filters.keyword.toLowerCase();
@@ -4108,16 +4043,16 @@ var EventSearch = ({
4108
4043
  return true;
4109
4044
  });
4110
4045
  }, [events, filters]);
4111
- React3__default.default.useEffect(() => {
4046
+ React2__default.default.useEffect(() => {
4112
4047
  onFiltered(filteredEvents);
4113
4048
  }, [filteredEvents, onFiltered]);
4114
- const handleFilterChange = React3.useCallback((key, value) => {
4049
+ const handleFilterChange = React2.useCallback((key, value) => {
4115
4050
  setFilters((prev) => ({
4116
4051
  ...prev,
4117
4052
  [key]: value
4118
4053
  }));
4119
4054
  }, []);
4120
- const resetFilters = React3.useCallback(() => {
4055
+ const resetFilters = React2.useCallback(() => {
4121
4056
  setFilters({
4122
4057
  keyword: "",
4123
4058
  priority: "all",
@@ -4126,7 +4061,7 @@ var EventSearch = ({
4126
4061
  isAllDay: "all"
4127
4062
  });
4128
4063
  }, []);
4129
- const hasActiveFilters = React3.useMemo(() => {
4064
+ const hasActiveFilters = React2.useMemo(() => {
4130
4065
  return filters.keyword !== "" || filters.priority !== "all" || filters.dateRange.start !== "" || filters.dateRange.end !== "" || filters.colorFilter.length > 0 || filters.isAllDay !== "all";
4131
4066
  }, [filters]);
4132
4067
  const getPriorityText = (priority) => {
@@ -4138,7 +4073,7 @@ var EventSearch = ({
4138
4073
  };
4139
4074
  return priorityMap[priority];
4140
4075
  };
4141
- return /* @__PURE__ */ React3__default.default.createElement("div", { className: `bg-white rounded-lg border border-gray-200 ${className}` }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-4 border-b border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React3__default.default.createElement(
4076
+ return /* @__PURE__ */ React2__default.default.createElement("div", { className: `bg-white rounded-lg border border-gray-200 ${className}` }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "p-4 border-b border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "relative" }, /* @__PURE__ */ React2__default.default.createElement(
4142
4077
  "input",
4143
4078
  {
4144
4079
  type: "text",
@@ -4147,14 +4082,14 @@ var EventSearch = ({
4147
4082
  onChange: (e) => handleFilterChange("keyword", e.target.value),
4148
4083
  className: "w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
4149
4084
  }
4150
- ), /* @__PURE__ */ React3__default.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" }, /* @__PURE__ */ React3__default.default.createElement("svg", { className: "h-5 w-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }))))), /* @__PURE__ */ React3__default.default.createElement(
4085
+ ), /* @__PURE__ */ React2__default.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" }, /* @__PURE__ */ React2__default.default.createElement("svg", { className: "h-5 w-5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }))))), /* @__PURE__ */ React2__default.default.createElement(
4151
4086
  "button",
4152
4087
  {
4153
4088
  type: "button",
4154
4089
  onClick: () => setIsExpanded(!isExpanded),
4155
4090
  className: `px-3 py-2 text-sm font-medium rounded-lg transition-colors ${hasActiveFilters ? "bg-blue-100 text-blue-700 border border-blue-300" : "bg-gray-100 text-gray-700 border border-gray-300 hover:bg-gray-200"}`
4156
4091
  },
4157
- /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React3__default.default.createElement(
4092
+ /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React2__default.default.createElement(
4158
4093
  "svg",
4159
4094
  {
4160
4095
  className: `h-4 w-4 transition-transform ${isExpanded ? "rotate-180" : ""}`,
@@ -4162,11 +4097,11 @@ var EventSearch = ({
4162
4097
  stroke: "currentColor",
4163
4098
  viewBox: "0 0 24 24"
4164
4099
  },
4165
- /* @__PURE__ */ React3__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
4166
- ), /* @__PURE__ */ React3__default.default.createElement("span", null, "\u8FC7\u6EE4\u5668"), hasActiveFilters && /* @__PURE__ */ React3__default.default.createElement("span", { className: "inline-flex items-center justify-center w-5 h-5 text-xs font-bold text-white bg-blue-600 rounded-full" }, Object.values(filters).filter(
4100
+ /* @__PURE__ */ React2__default.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" })
4101
+ ), /* @__PURE__ */ React2__default.default.createElement("span", null, "\u8FC7\u6EE4\u5668"), hasActiveFilters && /* @__PURE__ */ React2__default.default.createElement("span", { className: "inline-flex items-center justify-center w-5 h-5 text-xs font-bold text-white bg-blue-600 rounded-full" }, Object.values(filters).filter(
4167
4102
  (v) => v !== "" && v !== "all" && (Array.isArray(v) ? v.length > 0 : true) && (typeof v === "object" && !Array.isArray(v) ? v.start !== "" || v.end !== "" : true)
4168
4103
  ).length))
4169
- ), hasActiveFilters && /* @__PURE__ */ React3__default.default.createElement(
4104
+ ), hasActiveFilters && /* @__PURE__ */ React2__default.default.createElement(
4170
4105
  "button",
4171
4106
  {
4172
4107
  type: "button",
@@ -4174,29 +4109,29 @@ var EventSearch = ({
4174
4109
  className: "px-3 py-2 text-sm font-medium text-red-600 bg-red-50 border border-red-300 rounded-lg hover:bg-red-100 transition-colors"
4175
4110
  },
4176
4111
  "\u91CD\u7F6E"
4177
- )), /* @__PURE__ */ React3__default.default.createElement("div", { className: "mt-3 text-sm text-gray-600" }, "\u5171\u627E\u5230 ", /* @__PURE__ */ React3__default.default.createElement("span", { className: "font-medium text-gray-900" }, filteredEvents.length), " \u4E2A\u4E8B\u4EF6", filteredEvents.length !== events.length && /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-gray-500" }, "\uFF08\u5171 ", events.length, " \u4E2A\uFF09"))), isExpanded && /* @__PURE__ */ React3__default.default.createElement("div", { className: "p-4 bg-gray-50 border-t border-gray-200" }, /* @__PURE__ */ React3__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4" }, /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4F18\u5148\u7EA7"), /* @__PURE__ */ React3__default.default.createElement(
4112
+ )), /* @__PURE__ */ React2__default.default.createElement("div", { className: "mt-3 text-sm text-gray-600" }, "\u5171\u627E\u5230 ", /* @__PURE__ */ React2__default.default.createElement("span", { className: "font-medium text-gray-900" }, filteredEvents.length), " \u4E2A\u4E8B\u4EF6", filteredEvents.length !== events.length && /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-gray-500" }, "\uFF08\u5171 ", events.length, " \u4E2A\uFF09"))), isExpanded && /* @__PURE__ */ React2__default.default.createElement("div", { className: "p-4 bg-gray-50 border-t border-gray-200" }, /* @__PURE__ */ React2__default.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4" }, /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4F18\u5148\u7EA7"), /* @__PURE__ */ React2__default.default.createElement(
4178
4113
  "select",
4179
4114
  {
4180
4115
  value: filters.priority,
4181
4116
  onChange: (e) => handleFilterChange("priority", e.target.value),
4182
4117
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
4183
4118
  },
4184
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "all" }, "\u5168\u90E8\u4F18\u5148\u7EA7"),
4185
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "low" /* LOW */ }, getPriorityText("low" /* LOW */)),
4186
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "normal" /* NORMAL */ }, getPriorityText("normal" /* NORMAL */)),
4187
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "high" /* HIGH */ }, getPriorityText("high" /* HIGH */)),
4188
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "urgent" /* URGENT */ }, getPriorityText("urgent" /* URGENT */))
4189
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4E8B\u4EF6\u7C7B\u578B"), /* @__PURE__ */ React3__default.default.createElement(
4119
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "all" }, "\u5168\u90E8\u4F18\u5148\u7EA7"),
4120
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "low" /* LOW */ }, getPriorityText("low" /* LOW */)),
4121
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "normal" /* NORMAL */ }, getPriorityText("normal" /* NORMAL */)),
4122
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "high" /* HIGH */ }, getPriorityText("high" /* HIGH */)),
4123
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "urgent" /* URGENT */ }, getPriorityText("urgent" /* URGENT */))
4124
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u4E8B\u4EF6\u7C7B\u578B"), /* @__PURE__ */ React2__default.default.createElement(
4190
4125
  "select",
4191
4126
  {
4192
4127
  value: filters.isAllDay,
4193
4128
  onChange: (e) => handleFilterChange("isAllDay", e.target.value),
4194
4129
  className: "w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
4195
4130
  },
4196
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "all" }, "\u5168\u90E8\u7C7B\u578B"),
4197
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "yes" }, "\u5168\u5929\u4E8B\u4EF6"),
4198
- /* @__PURE__ */ React3__default.default.createElement("option", { value: "no" }, "\u5B9A\u65F6\u4E8B\u4EF6")
4199
- )), /* @__PURE__ */ React3__default.default.createElement("div", null, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u989C\u8272\u6807\u7B7E"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, availableColors.map((color) => /* @__PURE__ */ React3__default.default.createElement(
4131
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "all" }, "\u5168\u90E8\u7C7B\u578B"),
4132
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "yes" }, "\u5168\u5929\u4E8B\u4EF6"),
4133
+ /* @__PURE__ */ React2__default.default.createElement("option", { value: "no" }, "\u5B9A\u65F6\u4E8B\u4EF6")
4134
+ )), /* @__PURE__ */ React2__default.default.createElement("div", null, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u989C\u8272\u6807\u7B7E"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex flex-wrap gap-2" }, availableColors.map((color) => /* @__PURE__ */ React2__default.default.createElement(
4200
4135
  "button",
4201
4136
  {
4202
4137
  key: color,
@@ -4209,7 +4144,7 @@ var EventSearch = ({
4209
4144
  style: { backgroundColor: color },
4210
4145
  title: `\u989C\u8272: ${color}`
4211
4146
  }
4212
- )))), /* @__PURE__ */ React3__default.default.createElement("div", { className: "md:col-span-2 lg:col-span-3" }, /* @__PURE__ */ React3__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u65E5\u671F\u8303\u56F4"), /* @__PURE__ */ React3__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React3__default.default.createElement(
4147
+ )))), /* @__PURE__ */ React2__default.default.createElement("div", { className: "md:col-span-2 lg:col-span-3" }, /* @__PURE__ */ React2__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700 mb-2" }, "\u65E5\u671F\u8303\u56F4"), /* @__PURE__ */ React2__default.default.createElement("div", { className: "flex items-center space-x-3" }, /* @__PURE__ */ React2__default.default.createElement(
4213
4148
  "input",
4214
4149
  {
4215
4150
  type: "date",
@@ -4220,7 +4155,7 @@ var EventSearch = ({
4220
4155
  }),
4221
4156
  className: "px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
4222
4157
  }
4223
- ), /* @__PURE__ */ React3__default.default.createElement("span", { className: "text-gray-500" }, "\u81F3"), /* @__PURE__ */ React3__default.default.createElement(
4158
+ ), /* @__PURE__ */ React2__default.default.createElement("span", { className: "text-gray-500" }, "\u81F3"), /* @__PURE__ */ React2__default.default.createElement(
4224
4159
  "input",
4225
4160
  {
4226
4161
  type: "date",
@@ -4235,13 +4170,13 @@ var EventSearch = ({
4235
4170
  };
4236
4171
  var EventSearch_default = EventSearch;
4237
4172
  function useEvents2() {
4238
- const [events, setEvents] = React3.useState([]);
4239
- const [loading, setLoading] = React3.useState(false);
4240
- const [error, setError] = React3.useState();
4241
- const clearError = React3.useCallback(() => {
4173
+ const [events, setEvents] = React2.useState([]);
4174
+ const [loading, setLoading] = React2.useState(false);
4175
+ const [error, setError] = React2.useState();
4176
+ const clearError = React2.useCallback(() => {
4242
4177
  setError(void 0);
4243
4178
  }, []);
4244
- const fetchEvents = React3.useCallback(async (startDate, endDate) => {
4179
+ const fetchEvents = React2.useCallback(async (startDate, endDate) => {
4245
4180
  setLoading(true);
4246
4181
  setError(void 0);
4247
4182
  try {
@@ -4272,7 +4207,7 @@ function useEvents2() {
4272
4207
  setLoading(false);
4273
4208
  }
4274
4209
  }, []);
4275
- const createEvent = React3.useCallback(async (eventData) => {
4210
+ const createEvent = React2.useCallback(async (eventData) => {
4276
4211
  setLoading(true);
4277
4212
  setError(void 0);
4278
4213
  try {
@@ -4324,7 +4259,7 @@ function useEvents2() {
4324
4259
  setLoading(false);
4325
4260
  }
4326
4261
  }, []);
4327
- const updateEvent = React3.useCallback(async (eventId, eventData) => {
4262
+ const updateEvent = React2.useCallback(async (eventId, eventData) => {
4328
4263
  setLoading(true);
4329
4264
  setError(void 0);
4330
4265
  try {
@@ -4370,7 +4305,7 @@ function useEvents2() {
4370
4305
  setLoading(false);
4371
4306
  }
4372
4307
  }, []);
4373
- const deleteEvent = React3.useCallback(async (eventId, deleteAll = false) => {
4308
+ const deleteEvent = React2.useCallback(async (eventId, deleteAll = false) => {
4374
4309
  setLoading(true);
4375
4310
  setError(void 0);
4376
4311
  try {
@@ -4395,7 +4330,7 @@ function useEvents2() {
4395
4330
  setLoading(false);
4396
4331
  }
4397
4332
  }, []);
4398
- const batchDeleteEvents = React3.useCallback(async (eventIds) => {
4333
+ const batchDeleteEvents = React2.useCallback(async (eventIds) => {
4399
4334
  setLoading(true);
4400
4335
  setError(void 0);
4401
4336
  try {