sa2kit 1.6.57 → 1.6.59

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 (147) hide show
  1. package/dist/AliyunOSSProvider-KSYW2IOG.js +15 -0
  2. package/dist/{AliyunOSSProvider-2FARPAQD.js.map → AliyunOSSProvider-KSYW2IOG.js.map} +1 -1
  3. package/dist/AliyunOSSProvider-TBK3G7YK.mjs +6 -0
  4. package/dist/{AliyunOSSProvider-UMVGVBDJ.mjs.map → AliyunOSSProvider-TBK3G7YK.mjs.map} +1 -1
  5. package/dist/LocalStorageProvider-2DGYRQAB.mjs +6 -0
  6. package/dist/{LocalStorageProvider-PYOHETJV.mjs.map → LocalStorageProvider-2DGYRQAB.mjs.map} +1 -1
  7. package/dist/LocalStorageProvider-SSRW3ZJW.js +15 -0
  8. package/dist/{LocalStorageProvider-JQF5WK5H.js.map → LocalStorageProvider-SSRW3ZJW.js.map} +1 -1
  9. package/dist/UniversalFileService-336GFY6N.mjs +6 -0
  10. package/dist/{UniversalFileService-TNYKO6JN.mjs.map → UniversalFileService-336GFY6N.mjs.map} +1 -1
  11. package/dist/UniversalFileService-J6ET6KZK.js +15 -0
  12. package/dist/{UniversalFileService-RBV6EN5J.js.map → UniversalFileService-J6ET6KZK.js.map} +1 -1
  13. package/dist/calendar/index.js +11 -11
  14. package/dist/calendar/index.mjs +4 -4
  15. package/dist/chunk-25OFOKNF.js +171 -0
  16. package/dist/chunk-25OFOKNF.js.map +1 -0
  17. package/dist/chunk-3DXPQ4YV.mjs +165 -0
  18. package/dist/chunk-3DXPQ4YV.mjs.map +1 -0
  19. package/dist/{chunk-4VJQZSPU.mjs → chunk-3NHAT7D4.mjs} +3 -4
  20. package/dist/chunk-3NHAT7D4.mjs.map +1 -0
  21. package/dist/{chunk-3JW4X3AC.mjs → chunk-622Y6LTH.mjs} +3 -3
  22. package/dist/{chunk-3JW4X3AC.mjs.map → chunk-622Y6LTH.mjs.map} +1 -1
  23. package/dist/{chunk-HYZ5C6FY.mjs → chunk-7CMGQX3S.mjs} +1199 -1995
  24. package/dist/chunk-7CMGQX3S.mjs.map +1 -0
  25. package/dist/chunk-CIVO4R6N.mjs +37 -0
  26. package/dist/chunk-CIVO4R6N.mjs.map +1 -0
  27. package/dist/{chunk-6BJ76BYC.mjs → chunk-EGJPS7OL.mjs} +3 -3
  28. package/dist/{chunk-6BJ76BYC.mjs.map → chunk-EGJPS7OL.mjs.map} +1 -1
  29. package/dist/{chunk-UR5TU4MW.mjs → chunk-FVDPGX6A.mjs} +3 -3
  30. package/dist/{chunk-UR5TU4MW.mjs.map → chunk-FVDPGX6A.mjs.map} +1 -1
  31. package/dist/chunk-HDMIOOZY.mjs +546 -0
  32. package/dist/chunk-HDMIOOZY.mjs.map +1 -0
  33. package/dist/{chunk-MZKATHB7.js → chunk-HHVDOIPV.js} +4 -4
  34. package/dist/{chunk-MZKATHB7.js.map → chunk-HHVDOIPV.js.map} +1 -1
  35. package/dist/chunk-HJ6MH7J7.js +552 -0
  36. package/dist/chunk-HJ6MH7J7.js.map +1 -0
  37. package/dist/chunk-KH6RQ4J5.js +28 -0
  38. package/dist/chunk-KH6RQ4J5.js.map +1 -0
  39. package/dist/{chunk-53WLQ22S.js → chunk-LJGJPAQ4.js} +6 -6
  40. package/dist/{chunk-53WLQ22S.js.map → chunk-LJGJPAQ4.js.map} +1 -1
  41. package/dist/{chunk-35CXIK5Y.js → chunk-NCOXT7SK.js} +11 -11
  42. package/dist/{chunk-35CXIK5Y.js.map → chunk-NCOXT7SK.js.map} +1 -1
  43. package/dist/chunk-NZZZUMMX.mjs +784 -0
  44. package/dist/chunk-NZZZUMMX.mjs.map +1 -0
  45. package/dist/{chunk-OBIPI4GU.mjs → chunk-OFYBMMWT.mjs} +4 -4
  46. package/dist/{chunk-OBIPI4GU.mjs.map → chunk-OFYBMMWT.mjs.map} +1 -1
  47. package/dist/chunk-Q5EDCKQA.js +336 -0
  48. package/dist/chunk-Q5EDCKQA.js.map +1 -0
  49. package/dist/{chunk-U7AQC2Z7.js → chunk-SKCMZYSQ.js} +1203 -2001
  50. package/dist/chunk-SKCMZYSQ.js.map +1 -0
  51. package/dist/{chunk-6NMIKAE7.mjs → chunk-SNBILYSH.mjs} +5 -5
  52. package/dist/{chunk-6NMIKAE7.mjs.map → chunk-SNBILYSH.mjs.map} +1 -1
  53. package/dist/{chunk-IPY26RQH.js → chunk-UVHPCLP6.js} +5 -5
  54. package/dist/{chunk-IPY26RQH.js.map → chunk-UVHPCLP6.js.map} +1 -1
  55. package/dist/{chunk-V6BXO6ZS.mjs → chunk-UZB4IO3T.mjs} +835 -38
  56. package/dist/chunk-UZB4IO3T.mjs.map +1 -0
  57. package/dist/{chunk-W2NCOORK.js → chunk-WK3HTUID.js} +951 -145
  58. package/dist/chunk-WK3HTUID.js.map +1 -0
  59. package/dist/chunk-YMS6BPXS.js +807 -0
  60. package/dist/chunk-YMS6BPXS.js.map +1 -0
  61. package/dist/chunk-YOTQG4NP.mjs +314 -0
  62. package/dist/chunk-YOTQG4NP.mjs.map +1 -0
  63. package/dist/chunk-ZGVB35L2.mjs +25 -0
  64. package/dist/chunk-ZGVB35L2.mjs.map +1 -0
  65. package/dist/chunk-ZRAW3HXA.js +43 -0
  66. package/dist/chunk-ZRAW3HXA.js.map +1 -0
  67. package/dist/{chunk-4XXIBWCO.js → chunk-ZRWED7Q6.js} +66 -66
  68. package/dist/{chunk-4XXIBWCO.js.map → chunk-ZRWED7Q6.js.map} +1 -1
  69. package/dist/{chunk-DVENFCQY.js → chunk-ZWQJSZEY.js} +4 -5
  70. package/dist/chunk-ZWQJSZEY.js.map +1 -0
  71. package/dist/components/index.js +104 -104
  72. package/dist/components/index.mjs +4 -4
  73. package/dist/index.js +146 -148
  74. package/dist/index.js.map +1 -1
  75. package/dist/index.mjs +8 -11
  76. package/dist/index.mjs.map +1 -1
  77. package/dist/logger/index.js +7 -7
  78. package/dist/logger/index.mjs +1 -4
  79. package/dist/mikuFusionGame/index.js +4 -4
  80. package/dist/mikuFusionGame/index.mjs +3 -3
  81. package/dist/portfolio/index.js +10 -10
  82. package/dist/portfolio/index.mjs +5 -5
  83. package/dist/showmasterpiece/db/index.js +42 -42
  84. package/dist/showmasterpiece/db/index.mjs +1 -1
  85. package/dist/showmasterpiece/index.js +143 -144
  86. package/dist/showmasterpiece/index.js.map +1 -1
  87. package/dist/showmasterpiece/index.mjs +7 -9
  88. package/dist/showmasterpiece/index.mjs.map +1 -1
  89. package/dist/showmasterpiece/logic/index.d.mts +10 -1
  90. package/dist/showmasterpiece/logic/index.d.ts +10 -1
  91. package/dist/showmasterpiece/logic/index.js +19 -19
  92. package/dist/showmasterpiece/logic/index.mjs +2 -2
  93. package/dist/showmasterpiece/server/index.js +42 -42
  94. package/dist/showmasterpiece/server/index.mjs +1 -1
  95. package/dist/showmasterpiece/ui/web/index.js +34 -34
  96. package/dist/showmasterpiece/ui/web/index.mjs +6 -6
  97. package/dist/universalExport/server/index.js +2 -4
  98. package/dist/universalExport/server/index.js.map +1 -1
  99. package/dist/universalExport/server/index.mjs +1 -3
  100. package/dist/universalExport/server/index.mjs.map +1 -1
  101. package/dist/universalFile/index.js +6 -9
  102. package/dist/universalFile/index.js.map +1 -1
  103. package/dist/universalFile/index.mjs +1 -5
  104. package/dist/universalFile/index.mjs.map +1 -1
  105. package/dist/universalFile/server/index.js +31 -64
  106. package/dist/universalFile/server/index.js.map +1 -1
  107. package/dist/universalFile/server/index.mjs +7 -42
  108. package/dist/universalFile/server/index.mjs.map +1 -1
  109. package/dist/utils/index.js +11 -11
  110. package/dist/utils/index.mjs +2 -2
  111. package/package.json +1 -1
  112. package/dist/AliyunOSSProvider-2FARPAQD.js +0 -15
  113. package/dist/AliyunOSSProvider-UMVGVBDJ.mjs +0 -9
  114. package/dist/LocalStorageProvider-JQF5WK5H.js +0 -15
  115. package/dist/LocalStorageProvider-PYOHETJV.mjs +0 -9
  116. package/dist/UniversalFileService-RBV6EN5J.js +0 -15
  117. package/dist/UniversalFileService-TNYKO6JN.mjs +0 -9
  118. package/dist/chunk-4NFOSCM6.js +0 -34
  119. package/dist/chunk-4NFOSCM6.js.map +0 -1
  120. package/dist/chunk-4VJQZSPU.mjs.map +0 -1
  121. package/dist/chunk-6AHYPPUP.js +0 -344
  122. package/dist/chunk-6AHYPPUP.js.map +0 -1
  123. package/dist/chunk-76V7EKBX.mjs +0 -796
  124. package/dist/chunk-76V7EKBX.mjs.map +0 -1
  125. package/dist/chunk-ACLOJXXE.js +0 -195
  126. package/dist/chunk-ACLOJXXE.js.map +0 -1
  127. package/dist/chunk-AEXPAH7Z.mjs +0 -32
  128. package/dist/chunk-AEXPAH7Z.mjs.map +0 -1
  129. package/dist/chunk-CFGX3EKK.js +0 -560
  130. package/dist/chunk-CFGX3EKK.js.map +0 -1
  131. package/dist/chunk-D2HXMGXS.js +0 -46
  132. package/dist/chunk-D2HXMGXS.js.map +0 -1
  133. package/dist/chunk-DVENFCQY.js.map +0 -1
  134. package/dist/chunk-HYZ5C6FY.mjs.map +0 -1
  135. package/dist/chunk-K7WNCB4V.mjs +0 -554
  136. package/dist/chunk-K7WNCB4V.mjs.map +0 -1
  137. package/dist/chunk-L4ZYBFB2.mjs +0 -44
  138. package/dist/chunk-L4ZYBFB2.mjs.map +0 -1
  139. package/dist/chunk-M4HGHTIC.js +0 -820
  140. package/dist/chunk-M4HGHTIC.js.map +0 -1
  141. package/dist/chunk-PXWDQFWV.mjs +0 -192
  142. package/dist/chunk-PXWDQFWV.mjs.map +0 -1
  143. package/dist/chunk-U7AQC2Z7.js.map +0 -1
  144. package/dist/chunk-V6BXO6ZS.mjs.map +0 -1
  145. package/dist/chunk-VTGPHE4Z.mjs +0 -322
  146. package/dist/chunk-VTGPHE4Z.mjs.map +0 -1
  147. package/dist/chunk-W2NCOORK.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkHJ6MH7J7_js = require('./chunk-HJ6MH7J7.js');
4
+ require('./chunk-KH6RQ4J5.js');
5
+ require('./chunk-25OFOKNF.js');
6
+ require('./chunk-Z6ZWNWWR.js');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "AliyunOSSProvider", {
11
+ enumerable: true,
12
+ get: function () { return chunkHJ6MH7J7_js.AliyunOSSProvider; }
13
+ });
14
+ //# sourceMappingURL=AliyunOSSProvider-KSYW2IOG.js.map
15
+ //# sourceMappingURL=AliyunOSSProvider-KSYW2IOG.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"AliyunOSSProvider-2FARPAQD.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"AliyunOSSProvider-KSYW2IOG.js"}
@@ -0,0 +1,6 @@
1
+ export { AliyunOSSProvider } from './chunk-HDMIOOZY.mjs';
2
+ import './chunk-ZGVB35L2.mjs';
3
+ import './chunk-3DXPQ4YV.mjs';
4
+ import './chunk-WMJKH4XE.mjs';
5
+ //# sourceMappingURL=AliyunOSSProvider-TBK3G7YK.mjs.map
6
+ //# sourceMappingURL=AliyunOSSProvider-TBK3G7YK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"AliyunOSSProvider-UMVGVBDJ.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"AliyunOSSProvider-TBK3G7YK.mjs"}
@@ -0,0 +1,6 @@
1
+ export { LocalStorageProvider } from './chunk-YOTQG4NP.mjs';
2
+ import './chunk-ZGVB35L2.mjs';
3
+ import './chunk-3DXPQ4YV.mjs';
4
+ import './chunk-WMJKH4XE.mjs';
5
+ //# sourceMappingURL=LocalStorageProvider-2DGYRQAB.mjs.map
6
+ //# sourceMappingURL=LocalStorageProvider-2DGYRQAB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"LocalStorageProvider-PYOHETJV.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"LocalStorageProvider-2DGYRQAB.mjs"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkQ5EDCKQA_js = require('./chunk-Q5EDCKQA.js');
4
+ require('./chunk-KH6RQ4J5.js');
5
+ require('./chunk-25OFOKNF.js');
6
+ require('./chunk-Z6ZWNWWR.js');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "LocalStorageProvider", {
11
+ enumerable: true,
12
+ get: function () { return chunkQ5EDCKQA_js.LocalStorageProvider; }
13
+ });
14
+ //# sourceMappingURL=LocalStorageProvider-SSRW3ZJW.js.map
15
+ //# sourceMappingURL=LocalStorageProvider-SSRW3ZJW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"LocalStorageProvider-JQF5WK5H.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"LocalStorageProvider-SSRW3ZJW.js"}
@@ -0,0 +1,6 @@
1
+ export { UniversalFileService } from './chunk-NZZZUMMX.mjs';
2
+ import './chunk-3DXPQ4YV.mjs';
3
+ import './chunk-CIVO4R6N.mjs';
4
+ import './chunk-WMJKH4XE.mjs';
5
+ //# sourceMappingURL=UniversalFileService-336GFY6N.mjs.map
6
+ //# sourceMappingURL=UniversalFileService-336GFY6N.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-TNYKO6JN.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-336GFY6N.mjs"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkYMS6BPXS_js = require('./chunk-YMS6BPXS.js');
4
+ require('./chunk-25OFOKNF.js');
5
+ require('./chunk-ZRAW3HXA.js');
6
+ require('./chunk-Z6ZWNWWR.js');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "UniversalFileService", {
11
+ enumerable: true,
12
+ get: function () { return chunkYMS6BPXS_js.UniversalFileService; }
13
+ });
14
+ //# sourceMappingURL=UniversalFileService-J6ET6KZK.js.map
15
+ //# sourceMappingURL=UniversalFileService-J6ET6KZK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-RBV6EN5J.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"UniversalFileService-J6ET6KZK.js"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunk4XXIBWCO_js = require('../chunk-4XXIBWCO.js');
4
- require('../chunk-MZKATHB7.js');
5
- require('../chunk-DVENFCQY.js');
3
+ var chunkZRWED7Q6_js = require('../chunk-ZRWED7Q6.js');
4
+ require('../chunk-HHVDOIPV.js');
5
+ require('../chunk-ZWQJSZEY.js');
6
6
  require('../chunk-KO73EBUT.js');
7
7
  require('../chunk-XJ7ZAGC5.js');
8
- require('../chunk-ACLOJXXE.js');
8
+ require('../chunk-25OFOKNF.js');
9
9
  require('../chunk-Z6ZWNWWR.js');
10
10
  var React2 = require('react');
11
11
  var clsx = require('clsx');
@@ -581,7 +581,7 @@ function EventList({
581
581
  );
582
582
  }));
583
583
  return /* @__PURE__ */ React2__default.default.createElement("div", { className: clsx.clsx("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(
584
- chunk4XXIBWCO_js.SearchBox,
584
+ chunkZRWED7Q6_js.SearchBox,
585
585
  {
586
586
  searchQuery: config.filter.searchText || "",
587
587
  onSearchChange: handleSearchChange,
@@ -645,7 +645,7 @@ function EventList({
645
645
  },
646
646
  "\u4E0B\u4E00\u9875"
647
647
  )))), !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(
648
- chunk4XXIBWCO_js.ConfirmModal,
648
+ chunkZRWED7Q6_js.ConfirmModal,
649
649
  {
650
650
  isOpen: showBatchDeleteConfirm,
651
651
  onClose: () => setShowBatchDeleteConfirm(false),
@@ -1827,7 +1827,7 @@ var ImprovedEventModal = ({
1827
1827
  placeholder: "\u8F93\u5165\u91CD\u590D\u6B21\u6570"
1828
1828
  }
1829
1829
  ))), /* @__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'));
1830
- return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement(chunk4XXIBWCO_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(
1830
+ return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement(chunkZRWED7Q6_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(
1831
1831
  "button",
1832
1832
  {
1833
1833
  type: "button",
@@ -1864,7 +1864,7 @@ var ImprovedEventModal = ({
1864
1864
  /* @__PURE__ */ React2__default.default.createElement("span", { className: "mr-2" }, isEditMode ? "\u{1F4BE}" : "\u2728"),
1865
1865
  isLoading ? "\u4FDD\u5B58\u4E2D..." : isEditMode ? "\u66F4\u65B0\u4E8B\u4EF6" : "\u521B\u5EFA\u4E8B\u4EF6"
1866
1866
  )))))), /* @__PURE__ */ React2__default.default.createElement(
1867
- chunk4XXIBWCO_js.ConfirmModal,
1867
+ chunkZRWED7Q6_js.ConfirmModal,
1868
1868
  {
1869
1869
  isOpen: showDeleteConfirm,
1870
1870
  onClose: () => setShowDeleteConfirm(false),
@@ -3332,7 +3332,7 @@ var EventModal = ({
3332
3332
  onClose();
3333
3333
  };
3334
3334
  return /* @__PURE__ */ React2__default.default.createElement(
3335
- chunk4XXIBWCO_js.Modal,
3335
+ chunkZRWED7Q6_js.Modal,
3336
3336
  {
3337
3337
  isOpen,
3338
3338
  onClose: handleClose,
@@ -3616,7 +3616,7 @@ var EventModal = ({
3616
3616
  isLoading ? "\u4FDD\u5B58\u4E2D..." : isEditMode ? "\u66F4\u65B0\u4E8B\u4EF6" : "\u521B\u5EFA\u4E8B\u4EF6"
3617
3617
  )))),
3618
3618
  /* @__PURE__ */ React2__default.default.createElement(
3619
- chunk4XXIBWCO_js.ConfirmModal,
3619
+ chunkZRWED7Q6_js.ConfirmModal,
3620
3620
  {
3621
3621
  isOpen: showDeleteConfirm,
3622
3622
  onClose: () => setShowDeleteConfirm(false),
@@ -3760,7 +3760,7 @@ var EventDetailPage = ({
3760
3760
  event
3761
3761
  }
3762
3762
  ), /* @__PURE__ */ React2__default.default.createElement(
3763
- chunk4XXIBWCO_js.ConfirmModal,
3763
+ chunkZRWED7Q6_js.ConfirmModal,
3764
3764
  {
3765
3765
  isOpen: showDeleteConfirm,
3766
3766
  onClose: () => setShowDeleteConfirm(false),
@@ -1,9 +1,9 @@
1
- import { SearchBox, ConfirmModal, Modal } from '../chunk-3JW4X3AC.mjs';
2
- import '../chunk-6BJ76BYC.mjs';
3
- import '../chunk-4VJQZSPU.mjs';
1
+ import { SearchBox, ConfirmModal, Modal } from '../chunk-622Y6LTH.mjs';
2
+ import '../chunk-EGJPS7OL.mjs';
3
+ import '../chunk-3NHAT7D4.mjs';
4
4
  import '../chunk-VVWQTO4Y.mjs';
5
5
  import '../chunk-WEEXCPSE.mjs';
6
- import '../chunk-PXWDQFWV.mjs';
6
+ import '../chunk-3DXPQ4YV.mjs';
7
7
  import '../chunk-WMJKH4XE.mjs';
8
8
  import React2, { useState, useMemo, useCallback, useEffect } from 'react';
9
9
  import { clsx } from 'clsx';
@@ -0,0 +1,171 @@
1
+ 'use strict';
2
+
3
+ // src/logger/types.ts
4
+ var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
5
+ LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
6
+ LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
7
+ LogLevel2[LogLevel2["WARN"] = 2] = "WARN";
8
+ LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR";
9
+ LogLevel2[LogLevel2["NONE"] = 4] = "NONE";
10
+ return LogLevel2;
11
+ })(LogLevel || {});
12
+
13
+ // src/logger/console-adapter.ts
14
+ var ConsoleLoggerAdapter = class {
15
+ constructor() {
16
+ this.colors = {
17
+ DEBUG: "\x1B[36m",
18
+ // Cyan
19
+ INFO: "\x1B[32m",
20
+ // Green
21
+ WARN: "\x1B[33m",
22
+ // Yellow
23
+ ERROR: "\x1B[31m",
24
+ // Red
25
+ RESET: "\x1B[0m"
26
+ };
27
+ }
28
+ log(entry) {
29
+ const { level, message, timestamp, data, context, error } = entry;
30
+ let logMessage = "";
31
+ if (timestamp) {
32
+ logMessage += "[" + this.formatTimestamp(timestamp) + "] ";
33
+ }
34
+ const levelName = this.getLevelName(level);
35
+ logMessage += levelName + ": ";
36
+ if (context) {
37
+ logMessage += "[" + context + "] ";
38
+ }
39
+ logMessage += message;
40
+ switch (level) {
41
+ case 0:
42
+ console.debug(this.colorize(logMessage, "DEBUG"), data || "");
43
+ break;
44
+ case 1:
45
+ console.info(this.colorize(logMessage, "INFO"), data || "");
46
+ break;
47
+ case 2:
48
+ console.warn(this.colorize(logMessage, "WARN"), data || "");
49
+ break;
50
+ case 3:
51
+ console.error(this.colorize(logMessage, "ERROR"), data || "");
52
+ if (error) {
53
+ console.error(error);
54
+ }
55
+ break;
56
+ }
57
+ }
58
+ formatTimestamp(date) {
59
+ return date.toISOString();
60
+ }
61
+ getLevelName(level) {
62
+ const names = ["DEBUG", "INFO", "WARN", "ERROR", "NONE"];
63
+ return names[level] || "UNKNOWN";
64
+ }
65
+ colorize(message, level) {
66
+ if (typeof process !== "undefined" && process.stdout?.isTTY) {
67
+ return this.colors[level] + message + this.colors.RESET;
68
+ }
69
+ return message;
70
+ }
71
+ };
72
+
73
+ // src/logger/Logger.ts
74
+ var Logger = class _Logger {
75
+ constructor(config, context) {
76
+ const isProduction = typeof process !== "undefined" ? process.env.NODE_ENV === "production" : false;
77
+ this.config = {
78
+ minLevel: config?.minLevel ?? (isProduction ? 1 : 0),
79
+ // INFO in prod, DEBUG in dev
80
+ enableTimestamp: config?.enableTimestamp ?? true,
81
+ enableContext: config?.enableContext ?? true,
82
+ environment: config?.environment ?? (isProduction ? "production" : "development"),
83
+ adapter: config?.adapter ?? new ConsoleLoggerAdapter()
84
+ };
85
+ this.adapter = this.config.adapter;
86
+ this.context = context;
87
+ }
88
+ /**
89
+ * 创建带上下文的子 Logger
90
+ */
91
+ createChild(context) {
92
+ return new _Logger(this.config, context);
93
+ }
94
+ /**
95
+ * 调试日志
96
+ */
97
+ debug(message, data) {
98
+ this.log(0, message, data);
99
+ }
100
+ /**
101
+ * 信息日志
102
+ */
103
+ info(message, data) {
104
+ this.log(1, message, data);
105
+ }
106
+ /**
107
+ * 警告日志
108
+ */
109
+ warn(message, data) {
110
+ this.log(2, message, data);
111
+ }
112
+ /**
113
+ * 错误日志
114
+ */
115
+ error(message, error) {
116
+ this.log(
117
+ 3,
118
+ // LogLevel.ERROR
119
+ message,
120
+ error instanceof Error ? void 0 : error,
121
+ error instanceof Error ? error : void 0
122
+ );
123
+ }
124
+ /**
125
+ * 核心日志方法
126
+ */
127
+ log(level, message, data, error) {
128
+ if (level < this.config.minLevel) {
129
+ return;
130
+ }
131
+ if (typeof window !== "undefined" && typeof localStorage !== "undefined") {
132
+ const loggerDebug = localStorage.getItem("logger-debug");
133
+ if (loggerDebug === "false" && level < 3) {
134
+ return;
135
+ }
136
+ }
137
+ const entry = {
138
+ level,
139
+ message,
140
+ timestamp: this.config.enableTimestamp ? /* @__PURE__ */ new Date() : void 0,
141
+ data,
142
+ context: this.config.enableContext ? this.context : void 0,
143
+ error
144
+ };
145
+ this.adapter.log(entry);
146
+ }
147
+ /**
148
+ * 设置日志级别
149
+ */
150
+ setLevel(level) {
151
+ this.config.minLevel = level;
152
+ }
153
+ /**
154
+ * 获取当前日志级别
155
+ */
156
+ getLevel() {
157
+ return this.config.minLevel;
158
+ }
159
+ };
160
+ var logger = new Logger();
161
+ function createLogger(context, config) {
162
+ return new Logger(config, context);
163
+ }
164
+
165
+ exports.ConsoleLoggerAdapter = ConsoleLoggerAdapter;
166
+ exports.LogLevel = LogLevel;
167
+ exports.Logger = Logger;
168
+ exports.createLogger = createLogger;
169
+ exports.logger = logger;
170
+ //# sourceMappingURL=chunk-25OFOKNF.js.map
171
+ //# sourceMappingURL=chunk-25OFOKNF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger/types.ts","../src/logger/console-adapter.ts","../src/logger/Logger.ts"],"names":["LogLevel"],"mappings":"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","file":"chunk-25OFOKNF.js","sourcesContent":["/**\n * 日志级别\n */\nexport enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4, // 禁用所有日志\n}\n\n/**\n * 日志条目\n */\nexport interface LogEntry {\n level: LogLevel;\n message: string;\n timestamp: Date;\n data?: any;\n context?: string;\n error?: Error;\n}\n\n/**\n * 日志适配器接口\n * 不同平台实现不同的日志输出方式\n */\nexport interface LoggerAdapter {\n /**\n * 输出日志\n */\n log(entry: LogEntry): void;\n\n /**\n * 批量输出日志(可选)\n */\n logBatch?(entries: LogEntry[]): void;\n}\n\n/**\n * 日志配置\n */\nexport interface LoggerConfig {\n /**\n * 最小日志级别\n * 只有大于等于此级别的日志才会输出\n */\n minLevel: LogLevel;\n\n /**\n * 是否启用时间戳\n */\n enableTimestamp?: boolean;\n\n /**\n * 是否启用上下文(模块名)\n */\n enableContext?: boolean;\n\n /**\n * 环境(development/production)\n */\n environment?: 'development' | 'production';\n\n /**\n * 自定义适配器\n */\n adapter?: LoggerAdapter;\n}\n\n","import type { LoggerAdapter, LogEntry, LogLevel } from './types';\n\n/**\n * 控制台日志适配器\n * 使用 console.info/warn/error 输出日志\n */\nexport class ConsoleLoggerAdapter implements LoggerAdapter {\n private readonly colors = {\n DEBUG: '\\x1b[36m', // Cyan\n INFO: '\\x1b[32m', // Green\n WARN: '\\x1b[33m', // Yellow\n ERROR: '\\x1b[31m', // Red\n RESET: '\\x1b[0m',\n };\n\n log(entry: LogEntry): void {\n const { level, message, timestamp, data, context, error } = entry;\n\n // 构建日志消息\n let logMessage = '';\n\n // 添加时间戳\n if (timestamp) {\n logMessage += '[' + (this.formatTimestamp(timestamp)) + '] ';\n }\n\n // 添加日志级别\n const levelName = this.getLevelName(level);\n logMessage += (levelName) + ': ';\n\n // 添加上下文\n if (context) {\n logMessage += '[' + (context) + '] ';\n }\n\n // 添加消息\n logMessage += message;\n\n // 根据日志级别选择输出方式\n switch (level) {\n case 0: // DEBUG\n console.debug(this.colorize(logMessage, 'DEBUG'), data || '');\n break;\n case 1: // INFO\n console.info(this.colorize(logMessage, 'INFO'), data || '');\n break;\n case 2: // WARN\n console.warn(this.colorize(logMessage, 'WARN'), data || '');\n break;\n case 3: // ERROR\n console.error(this.colorize(logMessage, 'ERROR'), data || '');\n if (error) {\n console.error(error);\n }\n break;\n }\n }\n\n private formatTimestamp(date: Date): string {\n return date.toISOString();\n }\n\n private getLevelName(level: LogLevel): string {\n const names = ['DEBUG', 'INFO', 'WARN', 'ERROR', 'NONE'];\n return names[level] || 'UNKNOWN';\n }\n\n private colorize(message: string, level: keyof typeof this.colors): string {\n // 只在支持颜色的环境中使用颜色\n if (typeof process !== 'undefined' && process.stdout?.isTTY) {\n return (this.colors[level]) + (message) + (this.colors.RESET);\n }\n return message;\n }\n}\n\n","import type { LogLevel, LogEntry, LoggerConfig, LoggerAdapter } from './types';\nimport { ConsoleLoggerAdapter } from './console-adapter';\n\n/**\n * 统一日志管理类\n */\nexport class Logger {\n private config: Required<LoggerConfig>;\n private adapter: LoggerAdapter;\n private context?: string;\n\n constructor(config?: Partial<LoggerConfig>, context?: string) {\n const isProduction =\n typeof process !== 'undefined' ? process.env.NODE_ENV === 'production' : false;\n\n this.config = {\n minLevel: config?.minLevel ?? (isProduction ? 1 : 0), // INFO in prod, DEBUG in dev\n enableTimestamp: config?.enableTimestamp ?? true,\n enableContext: config?.enableContext ?? true,\n environment: config?.environment ?? (isProduction ? 'production' : 'development'),\n adapter: config?.adapter ?? new ConsoleLoggerAdapter(),\n };\n this.adapter = this.config.adapter;\n this.context = context;\n }\n\n /**\n * 创建带上下文的子 Logger\n */\n createChild(context: string): Logger {\n return new Logger(this.config, context);\n }\n\n /**\n * 调试日志\n */\n debug(message: string, data?: any): void {\n this.log(0, message, data); // LogLevel.DEBUG\n }\n\n /**\n * 信息日志\n */\n info(message: string, data?: any): void {\n this.log(1, message, data); // LogLevel.INFO\n }\n\n /**\n * 警告日志\n */\n warn(message: string, data?: any): void {\n this.log(2, message, data); // LogLevel.WARN\n }\n\n /**\n * 错误日志\n */\n error(message: string, error?: Error | any): void {\n this.log(\n 3, // LogLevel.ERROR\n message,\n error instanceof Error ? undefined : error,\n error instanceof Error ? error : undefined\n );\n }\n\n /**\n * 核心日志方法\n */\n private log(level: LogLevel, message: string, data?: any, error?: Error): void {\n // 检查日志级别\n if (level < this.config.minLevel) {\n return;\n }\n\n // 检查动态调试配置(仅在浏览器环境)\n if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {\n const loggerDebug = localStorage.getItem('logger-debug');\n // 如果明确设置为 false,则不输出(但 Error 级别始终输出)\n if (loggerDebug === 'false' && level < 3) {\n // level < ERROR\n return;\n }\n }\n\n const entry: LogEntry = {\n level,\n message,\n timestamp: this.config.enableTimestamp ? new Date() : (undefined as any),\n data,\n context: this.config.enableContext ? this.context : undefined,\n error,\n };\n\n this.adapter.log(entry);\n }\n\n /**\n * 设置日志级别\n */\n setLevel(level: LogLevel): void {\n this.config.minLevel = level;\n }\n\n /**\n * 获取当前日志级别\n */\n getLevel(): LogLevel {\n return this.config.minLevel;\n }\n}\n\n/**\n * 默认全局 Logger 实例\n */\nexport const logger = new Logger();\n\n/**\n * 创建带上下文的 Logger\n */\nexport function createLogger(context: string, config?: Partial<LoggerConfig>): Logger {\n return new Logger(config, context);\n}\n\n"]}
@@ -0,0 +1,165 @@
1
+ // src/logger/types.ts
2
+ var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
3
+ LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG";
4
+ LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
5
+ LogLevel2[LogLevel2["WARN"] = 2] = "WARN";
6
+ LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR";
7
+ LogLevel2[LogLevel2["NONE"] = 4] = "NONE";
8
+ return LogLevel2;
9
+ })(LogLevel || {});
10
+
11
+ // src/logger/console-adapter.ts
12
+ var ConsoleLoggerAdapter = class {
13
+ constructor() {
14
+ this.colors = {
15
+ DEBUG: "\x1B[36m",
16
+ // Cyan
17
+ INFO: "\x1B[32m",
18
+ // Green
19
+ WARN: "\x1B[33m",
20
+ // Yellow
21
+ ERROR: "\x1B[31m",
22
+ // Red
23
+ RESET: "\x1B[0m"
24
+ };
25
+ }
26
+ log(entry) {
27
+ const { level, message, timestamp, data, context, error } = entry;
28
+ let logMessage = "";
29
+ if (timestamp) {
30
+ logMessage += "[" + this.formatTimestamp(timestamp) + "] ";
31
+ }
32
+ const levelName = this.getLevelName(level);
33
+ logMessage += levelName + ": ";
34
+ if (context) {
35
+ logMessage += "[" + context + "] ";
36
+ }
37
+ logMessage += message;
38
+ switch (level) {
39
+ case 0:
40
+ console.debug(this.colorize(logMessage, "DEBUG"), data || "");
41
+ break;
42
+ case 1:
43
+ console.info(this.colorize(logMessage, "INFO"), data || "");
44
+ break;
45
+ case 2:
46
+ console.warn(this.colorize(logMessage, "WARN"), data || "");
47
+ break;
48
+ case 3:
49
+ console.error(this.colorize(logMessage, "ERROR"), data || "");
50
+ if (error) {
51
+ console.error(error);
52
+ }
53
+ break;
54
+ }
55
+ }
56
+ formatTimestamp(date) {
57
+ return date.toISOString();
58
+ }
59
+ getLevelName(level) {
60
+ const names = ["DEBUG", "INFO", "WARN", "ERROR", "NONE"];
61
+ return names[level] || "UNKNOWN";
62
+ }
63
+ colorize(message, level) {
64
+ if (typeof process !== "undefined" && process.stdout?.isTTY) {
65
+ return this.colors[level] + message + this.colors.RESET;
66
+ }
67
+ return message;
68
+ }
69
+ };
70
+
71
+ // src/logger/Logger.ts
72
+ var Logger = class _Logger {
73
+ constructor(config, context) {
74
+ const isProduction = typeof process !== "undefined" ? process.env.NODE_ENV === "production" : false;
75
+ this.config = {
76
+ minLevel: config?.minLevel ?? (isProduction ? 1 : 0),
77
+ // INFO in prod, DEBUG in dev
78
+ enableTimestamp: config?.enableTimestamp ?? true,
79
+ enableContext: config?.enableContext ?? true,
80
+ environment: config?.environment ?? (isProduction ? "production" : "development"),
81
+ adapter: config?.adapter ?? new ConsoleLoggerAdapter()
82
+ };
83
+ this.adapter = this.config.adapter;
84
+ this.context = context;
85
+ }
86
+ /**
87
+ * 创建带上下文的子 Logger
88
+ */
89
+ createChild(context) {
90
+ return new _Logger(this.config, context);
91
+ }
92
+ /**
93
+ * 调试日志
94
+ */
95
+ debug(message, data) {
96
+ this.log(0, message, data);
97
+ }
98
+ /**
99
+ * 信息日志
100
+ */
101
+ info(message, data) {
102
+ this.log(1, message, data);
103
+ }
104
+ /**
105
+ * 警告日志
106
+ */
107
+ warn(message, data) {
108
+ this.log(2, message, data);
109
+ }
110
+ /**
111
+ * 错误日志
112
+ */
113
+ error(message, error) {
114
+ this.log(
115
+ 3,
116
+ // LogLevel.ERROR
117
+ message,
118
+ error instanceof Error ? void 0 : error,
119
+ error instanceof Error ? error : void 0
120
+ );
121
+ }
122
+ /**
123
+ * 核心日志方法
124
+ */
125
+ log(level, message, data, error) {
126
+ if (level < this.config.minLevel) {
127
+ return;
128
+ }
129
+ if (typeof window !== "undefined" && typeof localStorage !== "undefined") {
130
+ const loggerDebug = localStorage.getItem("logger-debug");
131
+ if (loggerDebug === "false" && level < 3) {
132
+ return;
133
+ }
134
+ }
135
+ const entry = {
136
+ level,
137
+ message,
138
+ timestamp: this.config.enableTimestamp ? /* @__PURE__ */ new Date() : void 0,
139
+ data,
140
+ context: this.config.enableContext ? this.context : void 0,
141
+ error
142
+ };
143
+ this.adapter.log(entry);
144
+ }
145
+ /**
146
+ * 设置日志级别
147
+ */
148
+ setLevel(level) {
149
+ this.config.minLevel = level;
150
+ }
151
+ /**
152
+ * 获取当前日志级别
153
+ */
154
+ getLevel() {
155
+ return this.config.minLevel;
156
+ }
157
+ };
158
+ var logger = new Logger();
159
+ function createLogger(context, config) {
160
+ return new Logger(config, context);
161
+ }
162
+
163
+ export { ConsoleLoggerAdapter, LogLevel, Logger, createLogger, logger };
164
+ //# sourceMappingURL=chunk-3DXPQ4YV.mjs.map
165
+ //# sourceMappingURL=chunk-3DXPQ4YV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger/types.ts","../src/logger/console-adapter.ts","../src/logger/Logger.ts"],"names":["LogLevel"],"mappings":"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","file":"chunk-3DXPQ4YV.mjs","sourcesContent":["/**\n * 日志级别\n */\nexport enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4, // 禁用所有日志\n}\n\n/**\n * 日志条目\n */\nexport interface LogEntry {\n level: LogLevel;\n message: string;\n timestamp: Date;\n data?: any;\n context?: string;\n error?: Error;\n}\n\n/**\n * 日志适配器接口\n * 不同平台实现不同的日志输出方式\n */\nexport interface LoggerAdapter {\n /**\n * 输出日志\n */\n log(entry: LogEntry): void;\n\n /**\n * 批量输出日志(可选)\n */\n logBatch?(entries: LogEntry[]): void;\n}\n\n/**\n * 日志配置\n */\nexport interface LoggerConfig {\n /**\n * 最小日志级别\n * 只有大于等于此级别的日志才会输出\n */\n minLevel: LogLevel;\n\n /**\n * 是否启用时间戳\n */\n enableTimestamp?: boolean;\n\n /**\n * 是否启用上下文(模块名)\n */\n enableContext?: boolean;\n\n /**\n * 环境(development/production)\n */\n environment?: 'development' | 'production';\n\n /**\n * 自定义适配器\n */\n adapter?: LoggerAdapter;\n}\n\n","import type { LoggerAdapter, LogEntry, LogLevel } from './types';\n\n/**\n * 控制台日志适配器\n * 使用 console.info/warn/error 输出日志\n */\nexport class ConsoleLoggerAdapter implements LoggerAdapter {\n private readonly colors = {\n DEBUG: '\\x1b[36m', // Cyan\n INFO: '\\x1b[32m', // Green\n WARN: '\\x1b[33m', // Yellow\n ERROR: '\\x1b[31m', // Red\n RESET: '\\x1b[0m',\n };\n\n log(entry: LogEntry): void {\n const { level, message, timestamp, data, context, error } = entry;\n\n // 构建日志消息\n let logMessage = '';\n\n // 添加时间戳\n if (timestamp) {\n logMessage += '[' + (this.formatTimestamp(timestamp)) + '] ';\n }\n\n // 添加日志级别\n const levelName = this.getLevelName(level);\n logMessage += (levelName) + ': ';\n\n // 添加上下文\n if (context) {\n logMessage += '[' + (context) + '] ';\n }\n\n // 添加消息\n logMessage += message;\n\n // 根据日志级别选择输出方式\n switch (level) {\n case 0: // DEBUG\n console.debug(this.colorize(logMessage, 'DEBUG'), data || '');\n break;\n case 1: // INFO\n console.info(this.colorize(logMessage, 'INFO'), data || '');\n break;\n case 2: // WARN\n console.warn(this.colorize(logMessage, 'WARN'), data || '');\n break;\n case 3: // ERROR\n console.error(this.colorize(logMessage, 'ERROR'), data || '');\n if (error) {\n console.error(error);\n }\n break;\n }\n }\n\n private formatTimestamp(date: Date): string {\n return date.toISOString();\n }\n\n private getLevelName(level: LogLevel): string {\n const names = ['DEBUG', 'INFO', 'WARN', 'ERROR', 'NONE'];\n return names[level] || 'UNKNOWN';\n }\n\n private colorize(message: string, level: keyof typeof this.colors): string {\n // 只在支持颜色的环境中使用颜色\n if (typeof process !== 'undefined' && process.stdout?.isTTY) {\n return (this.colors[level]) + (message) + (this.colors.RESET);\n }\n return message;\n }\n}\n\n","import type { LogLevel, LogEntry, LoggerConfig, LoggerAdapter } from './types';\nimport { ConsoleLoggerAdapter } from './console-adapter';\n\n/**\n * 统一日志管理类\n */\nexport class Logger {\n private config: Required<LoggerConfig>;\n private adapter: LoggerAdapter;\n private context?: string;\n\n constructor(config?: Partial<LoggerConfig>, context?: string) {\n const isProduction =\n typeof process !== 'undefined' ? process.env.NODE_ENV === 'production' : false;\n\n this.config = {\n minLevel: config?.minLevel ?? (isProduction ? 1 : 0), // INFO in prod, DEBUG in dev\n enableTimestamp: config?.enableTimestamp ?? true,\n enableContext: config?.enableContext ?? true,\n environment: config?.environment ?? (isProduction ? 'production' : 'development'),\n adapter: config?.adapter ?? new ConsoleLoggerAdapter(),\n };\n this.adapter = this.config.adapter;\n this.context = context;\n }\n\n /**\n * 创建带上下文的子 Logger\n */\n createChild(context: string): Logger {\n return new Logger(this.config, context);\n }\n\n /**\n * 调试日志\n */\n debug(message: string, data?: any): void {\n this.log(0, message, data); // LogLevel.DEBUG\n }\n\n /**\n * 信息日志\n */\n info(message: string, data?: any): void {\n this.log(1, message, data); // LogLevel.INFO\n }\n\n /**\n * 警告日志\n */\n warn(message: string, data?: any): void {\n this.log(2, message, data); // LogLevel.WARN\n }\n\n /**\n * 错误日志\n */\n error(message: string, error?: Error | any): void {\n this.log(\n 3, // LogLevel.ERROR\n message,\n error instanceof Error ? undefined : error,\n error instanceof Error ? error : undefined\n );\n }\n\n /**\n * 核心日志方法\n */\n private log(level: LogLevel, message: string, data?: any, error?: Error): void {\n // 检查日志级别\n if (level < this.config.minLevel) {\n return;\n }\n\n // 检查动态调试配置(仅在浏览器环境)\n if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {\n const loggerDebug = localStorage.getItem('logger-debug');\n // 如果明确设置为 false,则不输出(但 Error 级别始终输出)\n if (loggerDebug === 'false' && level < 3) {\n // level < ERROR\n return;\n }\n }\n\n const entry: LogEntry = {\n level,\n message,\n timestamp: this.config.enableTimestamp ? new Date() : (undefined as any),\n data,\n context: this.config.enableContext ? this.context : undefined,\n error,\n };\n\n this.adapter.log(entry);\n }\n\n /**\n * 设置日志级别\n */\n setLevel(level: LogLevel): void {\n this.config.minLevel = level;\n }\n\n /**\n * 获取当前日志级别\n */\n getLevel(): LogLevel {\n return this.config.minLevel;\n }\n}\n\n/**\n * 默认全局 Logger 实例\n */\nexport const logger = new Logger();\n\n/**\n * 创建带上下文的 Logger\n */\nexport function createLogger(context: string, config?: Partial<LoggerConfig>): Logger {\n return new Logger(config, context);\n}\n\n"]}
@@ -1,4 +1,4 @@
1
- import { init_logger, logger } from './chunk-PXWDQFWV.mjs';
1
+ import { logger } from './chunk-3DXPQ4YV.mjs';
2
2
  import { clsx } from 'clsx';
3
3
  import { twMerge } from 'tailwind-merge';
4
4
 
@@ -262,7 +262,6 @@ var stringUtils = {
262
262
  };
263
263
 
264
264
  // src/utils/debug.ts
265
- init_logger();
266
265
  var debugUtils = {
267
266
  /**
268
267
  * 安全的 JSON 序列化
@@ -358,5 +357,5 @@ function cn(...inputs) {
358
357
  }
359
358
 
360
359
  export { arrayUtils, cn, debugUtils, errorUtils, fileUtils, formatTime, japaneseUtils, stringUtils, validators };
361
- //# sourceMappingURL=chunk-4VJQZSPU.mjs.map
362
- //# sourceMappingURL=chunk-4VJQZSPU.mjs.map
360
+ //# sourceMappingURL=chunk-3NHAT7D4.mjs.map
361
+ //# sourceMappingURL=chunk-3NHAT7D4.mjs.map