sa2kit 3.0.0 → 3.2.0

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 (980) hide show
  1. package/README.md +5 -5
  2. package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
  3. package/dist/AliyunOSSProvider-7IOT5U6M.js.map +1 -0
  4. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
  5. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs.map +1 -0
  6. package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
  7. package/dist/LocalStorageProvider-KJKRCKBS.js.map +1 -0
  8. package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
  9. package/dist/LocalStorageProvider-O22465NY.mjs.map +1 -0
  10. package/dist/chunk-2234T4A6.js +303 -0
  11. package/dist/chunk-2234T4A6.js.map +1 -0
  12. package/dist/chunk-36KGNXKW.js +16 -0
  13. package/dist/chunk-36KGNXKW.js.map +1 -0
  14. package/dist/chunk-375C7WL7.js +2695 -0
  15. package/dist/chunk-375C7WL7.js.map +1 -0
  16. package/dist/chunk-3J24Z4MB.js +991 -0
  17. package/dist/chunk-3J24Z4MB.js.map +1 -0
  18. package/dist/chunk-3QCATFQV.js +43 -0
  19. package/dist/chunk-3QCATFQV.js.map +1 -0
  20. package/dist/chunk-3R6JHA6D.js +120 -0
  21. package/dist/chunk-3R6JHA6D.js.map +1 -0
  22. package/dist/chunk-4OXKHV7J.js +43 -0
  23. package/dist/chunk-4OXKHV7J.js.map +1 -0
  24. package/dist/chunk-4PJM4752.js +4 -0
  25. package/dist/chunk-4PJM4752.js.map +1 -0
  26. package/dist/chunk-65JRVC3F.mjs +54 -0
  27. package/dist/chunk-65JRVC3F.mjs.map +1 -0
  28. package/dist/chunk-6HL54I2B.js +336 -0
  29. package/dist/chunk-6HL54I2B.js.map +1 -0
  30. package/dist/chunk-6V2MIQPF.mjs +77 -0
  31. package/dist/chunk-6V2MIQPF.mjs.map +1 -0
  32. package/dist/chunk-6YLCRWKM.mjs +8 -0
  33. package/dist/chunk-6YLCRWKM.mjs.map +1 -0
  34. package/dist/chunk-7CRU2Y5X.mjs +152 -0
  35. package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
  36. package/dist/chunk-7PMT4L4I.js +324 -0
  37. package/dist/chunk-7PMT4L4I.js.map +1 -0
  38. package/dist/chunk-7VVZHFEM.js +88 -0
  39. package/dist/chunk-7VVZHFEM.js.map +1 -0
  40. package/dist/chunk-AWHGIKTQ.js +56 -0
  41. package/dist/chunk-AWHGIKTQ.js.map +1 -0
  42. package/dist/chunk-B3GYF6TY.js +37 -0
  43. package/dist/chunk-B3GYF6TY.js.map +1 -0
  44. package/dist/chunk-BDBJFOXM.mjs +14 -0
  45. package/dist/chunk-BDBJFOXM.mjs.map +1 -0
  46. package/dist/chunk-BTW3SWQN.mjs +25 -0
  47. package/dist/chunk-BTW3SWQN.mjs.map +1 -0
  48. package/dist/chunk-CHYSSZ4E.mjs +734 -0
  49. package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
  50. package/dist/chunk-DO6QYAZV.mjs +298 -0
  51. package/dist/chunk-DO6QYAZV.mjs.map +1 -0
  52. package/dist/chunk-DTR53LQO.mjs +781 -0
  53. package/dist/chunk-DTR53LQO.mjs.map +1 -0
  54. package/dist/chunk-EI2S4XDG.mjs +89 -0
  55. package/dist/chunk-EI2S4XDG.mjs.map +1 -0
  56. package/dist/chunk-EOZHUI46.js +93 -0
  57. package/dist/chunk-EOZHUI46.js.map +1 -0
  58. package/dist/chunk-F2BZIU67.js +184 -0
  59. package/dist/chunk-F2BZIU67.js.map +1 -0
  60. package/dist/chunk-F2TEJSCP.js +756 -0
  61. package/dist/chunk-F2TEJSCP.js.map +1 -0
  62. package/dist/chunk-FCLS5R24.js +148 -0
  63. package/dist/chunk-FCLS5R24.js.map +1 -0
  64. package/dist/chunk-FUA6ZGMI.mjs +376 -0
  65. package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
  66. package/dist/chunk-FY2X3LYR.mjs +3 -0
  67. package/dist/chunk-FY2X3LYR.mjs.map +1 -0
  68. package/dist/chunk-GS4SAW25.mjs +116 -0
  69. package/dist/chunk-GS4SAW25.mjs.map +1 -0
  70. package/dist/chunk-H56ICWUO.js +321 -0
  71. package/dist/chunk-H56ICWUO.js.map +1 -0
  72. package/dist/chunk-HG34SGMN.mjs +546 -0
  73. package/dist/chunk-HG34SGMN.mjs.map +1 -0
  74. package/dist/chunk-HL4H2HF6.js +279 -0
  75. package/dist/chunk-HL4H2HF6.js.map +1 -0
  76. package/dist/chunk-IJIQUMAK.mjs +272 -0
  77. package/dist/chunk-IJIQUMAK.mjs.map +1 -0
  78. package/dist/chunk-KEZFTDZT.mjs +559 -0
  79. package/dist/chunk-KEZFTDZT.mjs.map +1 -0
  80. package/dist/chunk-KHOVC2KL.js +144 -0
  81. package/dist/chunk-KHOVC2KL.js.map +1 -0
  82. package/dist/chunk-KRBSTLKC.js +6154 -0
  83. package/dist/chunk-KRBSTLKC.js.map +1 -0
  84. package/dist/chunk-KVYHCGRY.js +2011 -0
  85. package/dist/chunk-KVYHCGRY.js.map +1 -0
  86. package/dist/chunk-LZ5YTMMP.mjs +41 -0
  87. package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
  88. package/dist/chunk-MJ6XJGAL.js +1551 -0
  89. package/dist/chunk-MJ6XJGAL.js.map +1 -0
  90. package/dist/chunk-MKLXCV4Z.mjs +1510 -0
  91. package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
  92. package/dist/chunk-MMDSZIXD.mjs +286 -0
  93. package/dist/chunk-MMDSZIXD.mjs.map +1 -0
  94. package/dist/chunk-N2O3OX5Y.mjs +243 -0
  95. package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
  96. package/dist/chunk-O6NNSPWD.mjs +35 -0
  97. package/dist/chunk-O6NNSPWD.mjs.map +1 -0
  98. package/dist/chunk-OIRZXSYM.js +80 -0
  99. package/dist/chunk-OIRZXSYM.js.map +1 -0
  100. package/dist/chunk-P7JQRNBJ.mjs +76 -0
  101. package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
  102. package/dist/chunk-PA4ELVGI.js +20 -0
  103. package/dist/chunk-PA4ELVGI.js.map +1 -0
  104. package/dist/chunk-PLIG5257.mjs +2613 -0
  105. package/dist/chunk-PLIG5257.mjs.map +1 -0
  106. package/dist/chunk-QIF4MG5V.mjs +283 -0
  107. package/dist/chunk-QIF4MG5V.mjs.map +1 -0
  108. package/dist/chunk-RHECN4E2.mjs +6077 -0
  109. package/dist/chunk-RHECN4E2.mjs.map +1 -0
  110. package/dist/chunk-RHHTZTIN.mjs +314 -0
  111. package/dist/chunk-RHHTZTIN.mjs.map +1 -0
  112. package/dist/chunk-RRQ2X26Z.js +106 -0
  113. package/dist/chunk-RRQ2X26Z.js.map +1 -0
  114. package/dist/chunk-RST2T54Y.js +836 -0
  115. package/dist/chunk-RST2T54Y.js.map +1 -0
  116. package/dist/chunk-RVNQI6BI.js +249 -0
  117. package/dist/chunk-RVNQI6BI.js.map +1 -0
  118. package/dist/chunk-S3K4LTRI.mjs +226 -0
  119. package/dist/chunk-S3K4LTRI.mjs.map +1 -0
  120. package/dist/chunk-SWZ5XNF6.js +158 -0
  121. package/dist/chunk-SWZ5XNF6.js.map +1 -0
  122. package/dist/chunk-TNJ6LYX7.mjs +18 -0
  123. package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
  124. package/dist/chunk-U7HNBCBS.js +207 -0
  125. package/dist/chunk-U7HNBCBS.js.map +1 -0
  126. package/dist/chunk-UJS3YSD3.mjs +37 -0
  127. package/dist/chunk-UJS3YSD3.mjs.map +1 -0
  128. package/dist/chunk-UJUWDF7M.mjs +336 -0
  129. package/dist/chunk-UJUWDF7M.mjs.map +1 -0
  130. package/dist/chunk-UR5NENGE.js +78 -0
  131. package/dist/chunk-UR5NENGE.js.map +1 -0
  132. package/dist/chunk-V7HGBDCB.mjs +135 -0
  133. package/dist/chunk-V7HGBDCB.mjs.map +1 -0
  134. package/dist/chunk-V7RLIZMN.js +90 -0
  135. package/dist/chunk-V7RLIZMN.js.map +1 -0
  136. package/dist/chunk-VCKXK6V5.js +345 -0
  137. package/dist/chunk-VCKXK6V5.js.map +1 -0
  138. package/dist/chunk-VIEXDTNF.mjs +100 -0
  139. package/dist/chunk-VIEXDTNF.mjs.map +1 -0
  140. package/dist/chunk-VN2DULIA.js +579 -0
  141. package/dist/chunk-VN2DULIA.js.map +1 -0
  142. package/dist/chunk-VNWMRUY6.js +168 -0
  143. package/dist/chunk-VNWMRUY6.js.map +1 -0
  144. package/dist/chunk-VYK4M2D6.mjs +177 -0
  145. package/dist/chunk-VYK4M2D6.mjs.map +1 -0
  146. package/dist/chunk-WB4H6ZUW.mjs +86 -0
  147. package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
  148. package/dist/chunk-WM3AEJ2E.mjs +981 -0
  149. package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
  150. package/dist/chunk-X5GINUGI.mjs +162 -0
  151. package/dist/chunk-X5GINUGI.mjs.map +1 -0
  152. package/dist/chunk-XB7GUEHZ.mjs +82 -0
  153. package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
  154. package/dist/chunk-XE5RGZ3B.js +242 -0
  155. package/dist/chunk-XE5RGZ3B.js.map +1 -0
  156. package/dist/chunk-XNTIMVSL.mjs +193 -0
  157. package/dist/chunk-XNTIMVSL.mjs.map +1 -0
  158. package/dist/chunk-Y7WHUKJF.js +387 -0
  159. package/dist/chunk-Y7WHUKJF.js.map +1 -0
  160. package/dist/chunk-YIRPPMCN.mjs +1916 -0
  161. package/dist/chunk-YIRPPMCN.mjs.map +1 -0
  162. package/dist/chunk-YTGUIRRH.js +10 -0
  163. package/dist/chunk-YTGUIRRH.js.map +1 -0
  164. package/dist/chunk-Z2SNB5LJ.js +28 -0
  165. package/dist/chunk-Z2SNB5LJ.js.map +1 -0
  166. package/dist/chunk-ZOP7YIVX.js +552 -0
  167. package/dist/chunk-ZOP7YIVX.js.map +1 -0
  168. package/dist/chunk-ZUZLWHH5.mjs +146 -0
  169. package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
  170. package/dist/common/ai/llm/core/index.d.mts +70 -0
  171. package/dist/common/ai/llm/core/index.d.ts +70 -0
  172. package/dist/common/ai/llm/core/index.js +54 -0
  173. package/dist/common/ai/llm/core/index.mjs +5 -0
  174. package/dist/common/ai/llm/electron/index.d.mts +6 -0
  175. package/dist/common/ai/llm/electron/index.d.ts +6 -0
  176. package/dist/common/ai/llm/electron/index.js +67 -0
  177. package/dist/common/ai/llm/electron/index.mjs +10 -0
  178. package/dist/common/ai/llm/index.d.mts +3 -0
  179. package/dist/common/ai/llm/index.d.ts +3 -0
  180. package/dist/common/ai/llm/index.js +54 -0
  181. package/dist/common/ai/llm/index.mjs +5 -0
  182. package/dist/common/ai/llm/miniapp/index.d.mts +6 -0
  183. package/dist/common/ai/llm/miniapp/index.d.ts +6 -0
  184. package/dist/common/ai/llm/miniapp/index.js +59 -0
  185. package/dist/common/ai/llm/miniapp/index.mjs +6 -0
  186. package/dist/common/ai/llm/rn/index.d.mts +6 -0
  187. package/dist/common/ai/llm/rn/index.d.ts +6 -0
  188. package/dist/common/ai/llm/rn/index.js +59 -0
  189. package/dist/common/ai/llm/rn/index.mjs +6 -0
  190. package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
  191. package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
  192. package/dist/common/ai/llm/ui/electron/index.js +22 -0
  193. package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
  194. package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
  195. package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
  196. package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
  197. package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
  198. package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
  199. package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
  200. package/dist/common/ai/llm/ui/rn/index.js +14 -0
  201. package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
  202. package/dist/common/ai/llm/ui/web/index.d.mts +15 -0
  203. package/dist/common/ai/llm/ui/web/index.d.ts +15 -0
  204. package/dist/common/ai/llm/ui/web/index.js +21 -0
  205. package/dist/common/ai/llm/ui/web/index.mjs +8 -0
  206. package/dist/common/ai/llm/web/index.d.mts +6 -0
  207. package/dist/common/ai/llm/web/index.d.ts +6 -0
  208. package/dist/common/ai/llm/web/index.js +66 -0
  209. package/dist/common/ai/llm/web/index.mjs +9 -0
  210. package/dist/common/analytics/index.d.mts +2 -0
  211. package/dist/common/analytics/index.d.ts +2 -0
  212. package/dist/common/analytics/index.js +314 -0
  213. package/dist/common/analytics/index.mjs +5 -0
  214. package/dist/common/analytics/server/index.js +529 -0
  215. package/dist/common/analytics/server/index.js.map +1 -0
  216. package/dist/common/analytics/server/index.mjs +525 -0
  217. package/dist/common/analytics/server/index.mjs.map +1 -0
  218. package/dist/common/api/index.d.mts +3 -0
  219. package/dist/common/api/index.d.ts +3 -0
  220. package/dist/common/api/index.js +21 -0
  221. package/dist/common/api/index.mjs +4 -0
  222. package/dist/common/auth/client/index.d.mts +1 -31
  223. package/dist/common/auth/client/index.d.ts +1 -31
  224. package/dist/common/auth/client/index.js +2 -15
  225. package/dist/common/auth/client/index.mjs +1 -2
  226. package/dist/common/auth/components/index.d.mts +5 -239
  227. package/dist/common/auth/components/index.d.ts +5 -239
  228. package/dist/common/auth/components/index.js +878 -49
  229. package/dist/common/auth/components/index.js.map +1 -1
  230. package/dist/common/auth/components/index.mjs +871 -5
  231. package/dist/common/auth/components/index.mjs.map +1 -1
  232. package/dist/common/auth/hooks/index.d.mts +2 -29
  233. package/dist/common/auth/hooks/index.d.ts +2 -29
  234. package/dist/common/auth/hooks/index.js +2 -11
  235. package/dist/common/auth/hooks/index.mjs +1 -2
  236. package/dist/common/auth/index.d.mts +5 -9
  237. package/dist/common/auth/index.d.ts +5 -9
  238. package/dist/common/auth/index.js +5 -26
  239. package/dist/common/auth/index.mjs +3 -4
  240. package/dist/common/auth/rn/index.d.mts +1 -17
  241. package/dist/common/auth/rn/index.d.ts +1 -17
  242. package/dist/common/auth/rn/index.js +2 -34
  243. package/dist/common/auth/rn/index.js.map +1 -1
  244. package/dist/common/auth/rn/index.mjs +2 -31
  245. package/dist/common/auth/rn/index.mjs.map +1 -1
  246. package/dist/common/auth/server/index.d.mts +81 -2
  247. package/dist/common/auth/server/index.d.ts +81 -2
  248. package/dist/common/auth/server/index.js +128 -37
  249. package/dist/common/auth/server/index.js.map +1 -1
  250. package/dist/common/auth/server/index.mjs +124 -1
  251. package/dist/common/auth/server/index.mjs.map +1 -1
  252. package/dist/common/auth/services/index.js +12 -9
  253. package/dist/common/auth/services/index.js.map +1 -1
  254. package/dist/common/auth/services/index.mjs +10 -1
  255. package/dist/common/auth/services/index.mjs.map +1 -1
  256. package/dist/common/components/index.d.mts +4 -0
  257. package/dist/common/components/index.d.ts +4 -0
  258. package/dist/common/components/index.js +414 -0
  259. package/dist/common/components/index.mjs +9 -0
  260. package/dist/common/config/index.d.mts +1 -0
  261. package/dist/common/config/index.d.ts +1 -0
  262. package/dist/common/config/index.js +21 -0
  263. package/dist/common/config/index.mjs +4 -0
  264. package/dist/common/config/server/index.js +1177 -0
  265. package/dist/common/config/server/index.js.map +1 -0
  266. package/dist/common/config/server/index.mjs +1138 -0
  267. package/dist/common/config/server/index.mjs.map +1 -0
  268. package/dist/common/export/index.d.mts +2 -2
  269. package/dist/common/export/index.d.ts +2 -2
  270. package/dist/common/export/index.js +67 -67
  271. package/dist/common/export/index.mjs +3 -3
  272. package/dist/common/export/server/index.d.mts +2 -2
  273. package/dist/common/export/server/index.d.ts +2 -2
  274. package/dist/common/export/server/index.js +76 -48
  275. package/dist/common/export/server/index.mjs +3 -3
  276. package/dist/common/file/index.d.mts +2 -2
  277. package/dist/common/file/index.d.ts +2 -2
  278. package/dist/common/file/index.js +27 -27
  279. package/dist/common/file/index.mjs +5 -5
  280. package/dist/common/file/server/index.d.mts +2 -2
  281. package/dist/common/file/server/index.d.ts +2 -2
  282. package/dist/common/file/server/index.js +58 -50
  283. package/dist/common/file/server/index.mjs +8 -8
  284. package/dist/common/i18n/index.d.mts +2 -0
  285. package/dist/common/i18n/index.d.ts +2 -0
  286. package/dist/common/i18n/index.js +73 -0
  287. package/dist/common/i18n/index.mjs +4 -0
  288. package/dist/common/imageCrop/index.d.mts +2 -0
  289. package/dist/common/imageCrop/index.d.ts +2 -0
  290. package/dist/common/imageCrop/index.js +61 -0
  291. package/dist/common/imageCrop/index.mjs +4 -0
  292. package/dist/common/index.d.mts +17 -20
  293. package/dist/common/index.d.ts +17 -20
  294. package/dist/common/index.js +76 -70
  295. package/dist/common/index.mjs +27 -29
  296. package/dist/common/logger/index.d.mts +1 -1
  297. package/dist/common/logger/index.d.ts +1 -1
  298. package/dist/common/logger/index.js +6 -7
  299. package/dist/common/logger/index.mjs +1 -2
  300. package/dist/common/ossFile/index.d.mts +61 -0
  301. package/dist/common/ossFile/index.d.ts +61 -0
  302. package/dist/common/ossFile/index.js +96 -0
  303. package/dist/common/ossFile/index.mjs +7 -0
  304. package/dist/common/ossFile/server/index.d.mts +94 -0
  305. package/dist/common/ossFile/server/index.d.ts +94 -0
  306. package/dist/common/ossFile/server/index.js +221 -0
  307. package/dist/common/ossFile/server/index.mjs +12 -0
  308. package/dist/common/platform/index.js +8 -8
  309. package/dist/common/platform/index.mjs +4 -4
  310. package/dist/common/request/index.d.mts +1 -1
  311. package/dist/common/request/index.d.ts +1 -1
  312. package/dist/common/request/index.js +5 -7
  313. package/dist/common/request/index.mjs +2 -4
  314. package/dist/common/storage/index.d.mts +1 -1
  315. package/dist/common/storage/index.d.ts +1 -1
  316. package/dist/common/storage/index.js +17 -17
  317. package/dist/common/storage/index.mjs +5 -5
  318. package/dist/common/universalExport/index.d.mts +232 -0
  319. package/dist/common/universalExport/index.d.ts +232 -0
  320. package/dist/common/universalExport/index.js +178 -0
  321. package/dist/common/universalExport/index.mjs +5 -0
  322. package/dist/common/universalExport/server/index.d.mts +1189 -0
  323. package/dist/common/universalExport/server/index.d.ts +1189 -0
  324. package/dist/common/universalExport/server/index.js +151 -0
  325. package/dist/common/universalExport/server/index.mjs +6 -0
  326. package/dist/common/universalFile/index.d.mts +409 -0
  327. package/dist/common/universalFile/index.d.ts +409 -0
  328. package/dist/common/universalFile/index.js +1742 -0
  329. package/dist/common/universalFile/index.js.map +1 -0
  330. package/dist/common/universalFile/index.mjs +1497 -0
  331. package/dist/common/universalFile/index.mjs.map +1 -0
  332. package/dist/common/universalFile/server/index.d.mts +1064 -0
  333. package/dist/common/universalFile/server/index.d.ts +1064 -0
  334. package/dist/common/universalFile/server/index.js +311 -0
  335. package/dist/common/universalFile/server/index.mjs +10 -0
  336. package/dist/common/utils/index.d.mts +1 -1
  337. package/dist/common/utils/index.d.ts +1 -1
  338. package/dist/common/utils/index.js +11 -12
  339. package/dist/common/utils/index.mjs +2 -3
  340. package/dist/index-BRLygK4h.d.ts +67 -0
  341. package/dist/index-BWNK5mH2.d.ts +76 -0
  342. package/dist/index-Bd7cKF1j.d.mts +50 -0
  343. package/dist/index-BiCK6gg6.d.mts +210 -0
  344. package/dist/index-BiCK6gg6.d.ts +210 -0
  345. package/dist/index-C-P2yBTH.d.mts +76 -0
  346. package/dist/index-CT4K2z-O.d.ts +81 -0
  347. package/dist/index-D6RJTGce.d.mts +81 -0
  348. package/dist/index-DA7L9JlE.d.mts +159 -0
  349. package/dist/index-DRQxtCDw.d.ts +50 -0
  350. package/dist/index-DXVph21C.d.mts +201 -0
  351. package/dist/index-DXVph21C.d.ts +201 -0
  352. package/dist/index-DzyK789B.d.mts +67 -0
  353. package/dist/index-FVJZCEtm.d.mts +145 -0
  354. package/dist/index-FVJZCEtm.d.ts +145 -0
  355. package/dist/index-nD9vPCZT.d.ts +159 -0
  356. package/dist/index-nOmIv2BG.d.mts +559 -0
  357. package/dist/index-nOmIv2BG.d.ts +559 -0
  358. package/dist/path-Bzc7hj1N.d.ts +45 -0
  359. package/dist/path-DN_65vhO.d.mts +45 -0
  360. package/dist/utils-Dm3O1rAa.d.mts +366 -0
  361. package/dist/utils-Dm3O1rAa.d.ts +366 -0
  362. package/package.json +293 -348
  363. package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
  364. package/dist/AliyunOSSProvider-4GRL2FJB.js.map +0 -1
  365. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
  366. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs.map +0 -1
  367. package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
  368. package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
  369. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  370. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  371. package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
  372. package/dist/LocalStorageProvider-J5RHV37G.mjs.map +0 -1
  373. package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
  374. package/dist/LocalStorageProvider-PFA2DMIJ.js.map +0 -1
  375. package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
  376. package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
  377. package/dist/ai/llm/core/index.d.mts +0 -70
  378. package/dist/ai/llm/core/index.d.ts +0 -70
  379. package/dist/ai/llm/core/index.js +0 -54
  380. package/dist/ai/llm/core/index.mjs +0 -5
  381. package/dist/ai/llm/electron/index.d.mts +0 -6
  382. package/dist/ai/llm/electron/index.d.ts +0 -6
  383. package/dist/ai/llm/electron/index.js +0 -66
  384. package/dist/ai/llm/electron/index.mjs +0 -9
  385. package/dist/ai/llm/index.d.mts +0 -3
  386. package/dist/ai/llm/index.d.ts +0 -3
  387. package/dist/ai/llm/index.js +0 -54
  388. package/dist/ai/llm/index.mjs +0 -5
  389. package/dist/ai/llm/miniapp/index.d.mts +0 -6
  390. package/dist/ai/llm/miniapp/index.d.ts +0 -6
  391. package/dist/ai/llm/miniapp/index.js +0 -59
  392. package/dist/ai/llm/miniapp/index.mjs +0 -6
  393. package/dist/ai/llm/rn/index.d.mts +0 -6
  394. package/dist/ai/llm/rn/index.d.ts +0 -6
  395. package/dist/ai/llm/rn/index.js +0 -59
  396. package/dist/ai/llm/rn/index.mjs +0 -6
  397. package/dist/ai/llm/ui/electron/index.d.mts +0 -5
  398. package/dist/ai/llm/ui/electron/index.d.ts +0 -5
  399. package/dist/ai/llm/ui/electron/index.js +0 -21
  400. package/dist/ai/llm/ui/electron/index.mjs +0 -8
  401. package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
  402. package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
  403. package/dist/ai/llm/ui/miniapp/index.js +0 -14
  404. package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
  405. package/dist/ai/llm/ui/rn/index.d.mts +0 -9
  406. package/dist/ai/llm/ui/rn/index.d.ts +0 -9
  407. package/dist/ai/llm/ui/rn/index.js +0 -14
  408. package/dist/ai/llm/ui/rn/index.mjs +0 -5
  409. package/dist/ai/llm/ui/web/index.d.mts +0 -15
  410. package/dist/ai/llm/ui/web/index.d.ts +0 -15
  411. package/dist/ai/llm/ui/web/index.js +0 -20
  412. package/dist/ai/llm/ui/web/index.mjs +0 -7
  413. package/dist/ai/llm/web/index.d.mts +0 -6
  414. package/dist/ai/llm/web/index.d.ts +0 -6
  415. package/dist/ai/llm/web/index.js +0 -65
  416. package/dist/ai/llm/web/index.mjs +0 -8
  417. package/dist/analytics/index.d.mts +0 -2
  418. package/dist/analytics/index.d.ts +0 -2
  419. package/dist/analytics/index.js +0 -314
  420. package/dist/analytics/index.mjs +0 -5
  421. package/dist/analytics/server/index.js +0 -529
  422. package/dist/analytics/server/index.js.map +0 -1
  423. package/dist/analytics/server/index.mjs +0 -525
  424. package/dist/analytics/server/index.mjs.map +0 -1
  425. package/dist/api/index.d.mts +0 -3
  426. package/dist/api/index.d.ts +0 -3
  427. package/dist/api/index.js +0 -21
  428. package/dist/api/index.mjs +0 -4
  429. package/dist/audioDetection/index.d.mts +0 -449
  430. package/dist/audioDetection/index.d.ts +0 -449
  431. package/dist/audioDetection/index.js +0 -1244
  432. package/dist/audioDetection/index.js.map +0 -1
  433. package/dist/audioDetection/index.mjs +0 -1227
  434. package/dist/audioDetection/index.mjs.map +0 -1
  435. package/dist/auth/client/index.d.mts +0 -13
  436. package/dist/auth/client/index.d.ts +0 -13
  437. package/dist/auth/client/index.js +0 -26
  438. package/dist/auth/client/index.mjs +0 -5
  439. package/dist/auth/components/index.d.mts +0 -10
  440. package/dist/auth/components/index.d.ts +0 -10
  441. package/dist/auth/components/index.js +0 -70
  442. package/dist/auth/components/index.mjs +0 -9
  443. package/dist/auth/hooks/index.d.mts +0 -13
  444. package/dist/auth/hooks/index.d.ts +0 -13
  445. package/dist/auth/hooks/index.js +0 -28
  446. package/dist/auth/hooks/index.mjs +0 -7
  447. package/dist/auth/index.d.mts +0 -21
  448. package/dist/auth/index.d.ts +0 -21
  449. package/dist/auth/index.js +0 -112
  450. package/dist/auth/index.mjs +0 -11
  451. package/dist/auth/rn/index.d.mts +0 -3133
  452. package/dist/auth/rn/index.d.ts +0 -3133
  453. package/dist/auth/rn/index.js +0 -684
  454. package/dist/auth/rn/index.js.map +0 -1
  455. package/dist/auth/rn/index.mjs +0 -663
  456. package/dist/auth/rn/index.mjs.map +0 -1
  457. package/dist/auth/schema/index.d.mts +0 -4
  458. package/dist/auth/schema/index.d.ts +0 -4
  459. package/dist/auth/schema/index.js +0 -49
  460. package/dist/auth/schema/index.mjs +0 -4
  461. package/dist/auth/services/index.d.mts +0 -1
  462. package/dist/auth/services/index.d.ts +0 -1
  463. package/dist/auth/services/index.js +0 -17
  464. package/dist/auth/services/index.mjs +0 -4
  465. package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
  466. package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
  467. package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
  468. package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
  469. package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
  470. package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
  471. package/dist/business/index.d.mts +0 -2
  472. package/dist/business/index.d.ts +0 -2
  473. package/dist/business/index.js +0 -581
  474. package/dist/business/index.js.map +0 -1
  475. package/dist/business/index.mjs +0 -575
  476. package/dist/business/index.mjs.map +0 -1
  477. package/dist/calendar/index.d.mts +0 -1325
  478. package/dist/calendar/index.d.ts +0 -1325
  479. package/dist/calendar/index.js +0 -5964
  480. package/dist/calendar/index.js.map +0 -1
  481. package/dist/calendar/index.mjs +0 -5878
  482. package/dist/calendar/index.mjs.map +0 -1
  483. package/dist/calendar/routes/index.d.mts +0 -191
  484. package/dist/calendar/routes/index.d.ts +0 -191
  485. package/dist/calendar/routes/index.js +0 -844
  486. package/dist/calendar/routes/index.js.map +0 -1
  487. package/dist/calendar/routes/index.mjs +0 -826
  488. package/dist/calendar/routes/index.mjs.map +0 -1
  489. package/dist/chunk-25OFOKNF.js +0 -171
  490. package/dist/chunk-25OFOKNF.js.map +0 -1
  491. package/dist/chunk-2Y7BKFKZ.js +0 -37
  492. package/dist/chunk-2Y7BKFKZ.js.map +0 -1
  493. package/dist/chunk-3DXPQ4YV.mjs +0 -165
  494. package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
  495. package/dist/chunk-3FRAIS4T.mjs +0 -35
  496. package/dist/chunk-3FRAIS4T.mjs.map +0 -1
  497. package/dist/chunk-3NHAT7D4.mjs +0 -361
  498. package/dist/chunk-3NHAT7D4.mjs.map +0 -1
  499. package/dist/chunk-3Z43XGA4.mjs +0 -54
  500. package/dist/chunk-3Z43XGA4.mjs.map +0 -1
  501. package/dist/chunk-4FDUURSD.js +0 -22
  502. package/dist/chunk-4FDUURSD.js.map +0 -1
  503. package/dist/chunk-4WBCWJSN.js +0 -836
  504. package/dist/chunk-4WBCWJSN.js.map +0 -1
  505. package/dist/chunk-5GBDDXYL.mjs +0 -23
  506. package/dist/chunk-5GBDDXYL.mjs.map +0 -1
  507. package/dist/chunk-5USIS3UM.js +0 -4
  508. package/dist/chunk-5USIS3UM.js.map +0 -1
  509. package/dist/chunk-7E3J7VAD.mjs +0 -3
  510. package/dist/chunk-7E3J7VAD.mjs.map +0 -1
  511. package/dist/chunk-ACUFEDVQ.js +0 -345
  512. package/dist/chunk-ACUFEDVQ.js.map +0 -1
  513. package/dist/chunk-AQPU2AXH.js +0 -756
  514. package/dist/chunk-AQPU2AXH.js.map +0 -1
  515. package/dist/chunk-ATUCZXJY.js +0 -80
  516. package/dist/chunk-ATUCZXJY.js.map +0 -1
  517. package/dist/chunk-B3CZ3HXJ.mjs +0 -126
  518. package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
  519. package/dist/chunk-BCE6RUZV.js +0 -2695
  520. package/dist/chunk-BCE6RUZV.js.map +0 -1
  521. package/dist/chunk-BIHYZA67.mjs +0 -2613
  522. package/dist/chunk-BIHYZA67.mjs.map +0 -1
  523. package/dist/chunk-C6KV7VTZ.mjs +0 -152
  524. package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
  525. package/dist/chunk-CAYOQDBR.js +0 -78
  526. package/dist/chunk-CAYOQDBR.js.map +0 -1
  527. package/dist/chunk-CIVO4R6N.mjs +0 -37
  528. package/dist/chunk-CIVO4R6N.mjs.map +0 -1
  529. package/dist/chunk-CX2GHCAI.mjs +0 -217
  530. package/dist/chunk-CX2GHCAI.mjs.map +0 -1
  531. package/dist/chunk-DIF5VRL3.mjs +0 -73
  532. package/dist/chunk-DIF5VRL3.mjs.map +0 -1
  533. package/dist/chunk-FCEBAWN6.js +0 -18
  534. package/dist/chunk-FCEBAWN6.js.map +0 -1
  535. package/dist/chunk-FHIE5MTC.mjs +0 -541
  536. package/dist/chunk-FHIE5MTC.mjs.map +0 -1
  537. package/dist/chunk-FHLTPXAR.js +0 -56
  538. package/dist/chunk-FHLTPXAR.js.map +0 -1
  539. package/dist/chunk-FIUBFREP.mjs +0 -298
  540. package/dist/chunk-FIUBFREP.mjs.map +0 -1
  541. package/dist/chunk-FOQEQWX5.js +0 -4
  542. package/dist/chunk-FOQEQWX5.js.map +0 -1
  543. package/dist/chunk-FXQOXLDE.js +0 -120
  544. package/dist/chunk-FXQOXLDE.js.map +0 -1
  545. package/dist/chunk-G4NFB2QA.mjs +0 -212
  546. package/dist/chunk-G4NFB2QA.mjs.map +0 -1
  547. package/dist/chunk-G5HJGXGC.mjs +0 -39
  548. package/dist/chunk-G5HJGXGC.mjs.map +0 -1
  549. package/dist/chunk-G6HXNQ2U.mjs +0 -336
  550. package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
  551. package/dist/chunk-G6NSKJMH.js +0 -106
  552. package/dist/chunk-G6NSKJMH.js.map +0 -1
  553. package/dist/chunk-G7UBMCUT.mjs +0 -41
  554. package/dist/chunk-G7UBMCUT.mjs.map +0 -1
  555. package/dist/chunk-GQZHGSRR.js +0 -44
  556. package/dist/chunk-GQZHGSRR.js.map +0 -1
  557. package/dist/chunk-GS7XLKET.js +0 -41
  558. package/dist/chunk-GS7XLKET.js.map +0 -1
  559. package/dist/chunk-GWNBVGDT.mjs +0 -1232
  560. package/dist/chunk-GWNBVGDT.mjs.map +0 -1
  561. package/dist/chunk-HDMIOOZY.mjs +0 -546
  562. package/dist/chunk-HDMIOOZY.mjs.map +0 -1
  563. package/dist/chunk-HJ6MH7J7.js +0 -552
  564. package/dist/chunk-HJ6MH7J7.js.map +0 -1
  565. package/dist/chunk-HJZHQW5R.mjs +0 -146
  566. package/dist/chunk-HJZHQW5R.mjs.map +0 -1
  567. package/dist/chunk-I5ZPEDNR.mjs +0 -734
  568. package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
  569. package/dist/chunk-IBWDBBX5.mjs +0 -16
  570. package/dist/chunk-IBWDBBX5.mjs.map +0 -1
  571. package/dist/chunk-J77KR2EV.mjs +0 -193
  572. package/dist/chunk-J77KR2EV.mjs.map +0 -1
  573. package/dist/chunk-KH6RQ4J5.js +0 -28
  574. package/dist/chunk-KH6RQ4J5.js.map +0 -1
  575. package/dist/chunk-KQ643L7Z.js +0 -144
  576. package/dist/chunk-KQ643L7Z.js.map +0 -1
  577. package/dist/chunk-LFB5EIIM.mjs +0 -31
  578. package/dist/chunk-LFB5EIIM.mjs.map +0 -1
  579. package/dist/chunk-LHJKLUM7.mjs +0 -18
  580. package/dist/chunk-LHJKLUM7.mjs.map +0 -1
  581. package/dist/chunk-MBANGIG3.mjs +0 -781
  582. package/dist/chunk-MBANGIG3.mjs.map +0 -1
  583. package/dist/chunk-MWSAH7ZG.mjs +0 -42
  584. package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
  585. package/dist/chunk-MZOGYD4N.mjs +0 -186
  586. package/dist/chunk-MZOGYD4N.mjs.map +0 -1
  587. package/dist/chunk-NCRP2YHY.mjs +0 -1598
  588. package/dist/chunk-NCRP2YHY.mjs.map +0 -1
  589. package/dist/chunk-NDGHXVGS.js +0 -25
  590. package/dist/chunk-NDGHXVGS.js.map +0 -1
  591. package/dist/chunk-NDPO5OMC.js +0 -563
  592. package/dist/chunk-NDPO5OMC.js.map +0 -1
  593. package/dist/chunk-PBI7FKMB.js +0 -43
  594. package/dist/chunk-PBI7FKMB.js.map +0 -1
  595. package/dist/chunk-Q5EDCKQA.js +0 -336
  596. package/dist/chunk-Q5EDCKQA.js.map +0 -1
  597. package/dist/chunk-Q5VFBPMG.mjs +0 -76
  598. package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
  599. package/dist/chunk-QDUBO567.js +0 -1148
  600. package/dist/chunk-QDUBO567.js.map +0 -1
  601. package/dist/chunk-QP5N3ER6.js +0 -18
  602. package/dist/chunk-QP5N3ER6.js.map +0 -1
  603. package/dist/chunk-QXAOXBVB.mjs +0 -135
  604. package/dist/chunk-QXAOXBVB.mjs.map +0 -1
  605. package/dist/chunk-R2DXTE2L.js +0 -249
  606. package/dist/chunk-R2DXTE2L.js.map +0 -1
  607. package/dist/chunk-RJP2BRJD.mjs +0 -6077
  608. package/dist/chunk-RJP2BRJD.mjs.map +0 -1
  609. package/dist/chunk-RTD2WHQQ.mjs +0 -16
  610. package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
  611. package/dist/chunk-RWCD2CAD.mjs +0 -1132
  612. package/dist/chunk-RWCD2CAD.mjs.map +0 -1
  613. package/dist/chunk-S37OK2QG.js +0 -216
  614. package/dist/chunk-S37OK2QG.js.map +0 -1
  615. package/dist/chunk-S3PUP7N4.js +0 -20
  616. package/dist/chunk-S3PUP7N4.js.map +0 -1
  617. package/dist/chunk-S6YSGVWD.js +0 -224
  618. package/dist/chunk-S6YSGVWD.js.map +0 -1
  619. package/dist/chunk-S732H246.js +0 -6154
  620. package/dist/chunk-S732H246.js.map +0 -1
  621. package/dist/chunk-SFDJNKWC.js +0 -22
  622. package/dist/chunk-SFDJNKWC.js.map +0 -1
  623. package/dist/chunk-SKFEJPMJ.mjs +0 -226
  624. package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
  625. package/dist/chunk-SLKOEYFH.js +0 -303
  626. package/dist/chunk-SLKOEYFH.js.map +0 -1
  627. package/dist/chunk-TC5YU6A4.mjs +0 -243
  628. package/dist/chunk-TC5YU6A4.mjs.map +0 -1
  629. package/dist/chunk-TXMX6PZR.js +0 -190
  630. package/dist/chunk-TXMX6PZR.js.map +0 -1
  631. package/dist/chunk-UCOE6SET.js +0 -148
  632. package/dist/chunk-UCOE6SET.js.map +0 -1
  633. package/dist/chunk-UIYKZ73N.js +0 -36
  634. package/dist/chunk-UIYKZ73N.js.map +0 -1
  635. package/dist/chunk-V7EVKD5G.mjs +0 -116
  636. package/dist/chunk-V7EVKD5G.mjs.map +0 -1
  637. package/dist/chunk-VHN7PF5I.js +0 -20
  638. package/dist/chunk-VHN7PF5I.js.map +0 -1
  639. package/dist/chunk-VMTEDX5H.js +0 -1275
  640. package/dist/chunk-VMTEDX5H.js.map +0 -1
  641. package/dist/chunk-VRN76M56.mjs +0 -3
  642. package/dist/chunk-VRN76M56.mjs.map +0 -1
  643. package/dist/chunk-VXFUXZN5.mjs +0 -20
  644. package/dist/chunk-VXFUXZN5.mjs.map +0 -1
  645. package/dist/chunk-WEEXCPSE.mjs +0 -86
  646. package/dist/chunk-WEEXCPSE.mjs.map +0 -1
  647. package/dist/chunk-WW4GE6CZ.js +0 -1647
  648. package/dist/chunk-WW4GE6CZ.js.map +0 -1
  649. package/dist/chunk-WZDTNDYR.js +0 -207
  650. package/dist/chunk-WZDTNDYR.js.map +0 -1
  651. package/dist/chunk-XBZIS3MV.mjs +0 -13
  652. package/dist/chunk-XBZIS3MV.mjs.map +0 -1
  653. package/dist/chunk-XFOZ56FB.mjs +0 -20
  654. package/dist/chunk-XFOZ56FB.mjs.map +0 -1
  655. package/dist/chunk-XJ7ZAGC5.js +0 -88
  656. package/dist/chunk-XJ7ZAGC5.js.map +0 -1
  657. package/dist/chunk-XUS5ACKR.mjs +0 -100
  658. package/dist/chunk-XUS5ACKR.mjs.map +0 -1
  659. package/dist/chunk-YOTQG4NP.mjs +0 -314
  660. package/dist/chunk-YOTQG4NP.mjs.map +0 -1
  661. package/dist/chunk-Z23HAXHL.js +0 -136
  662. package/dist/chunk-Z23HAXHL.js.map +0 -1
  663. package/dist/chunk-ZGVB35L2.mjs +0 -25
  664. package/dist/chunk-ZGVB35L2.mjs.map +0 -1
  665. package/dist/chunk-ZLYPALF3.js +0 -242
  666. package/dist/chunk-ZLYPALF3.js.map +0 -1
  667. package/dist/chunk-ZM2SZJTZ.js +0 -158
  668. package/dist/chunk-ZM2SZJTZ.js.map +0 -1
  669. package/dist/chunk-ZRAW3HXA.js +0 -43
  670. package/dist/chunk-ZRAW3HXA.js.map +0 -1
  671. package/dist/chunk-ZWQJSZEY.js +0 -371
  672. package/dist/chunk-ZWQJSZEY.js.map +0 -1
  673. package/dist/components/index.d.mts +0 -405
  674. package/dist/components/index.d.ts +0 -405
  675. package/dist/components/index.js +0 -2516
  676. package/dist/components/index.js.map +0 -1
  677. package/dist/components/index.mjs +0 -2396
  678. package/dist/components/index.mjs.map +0 -1
  679. package/dist/config/index.d.mts +0 -1
  680. package/dist/config/index.d.ts +0 -1
  681. package/dist/config/index.js +0 -21
  682. package/dist/config/index.mjs +0 -4
  683. package/dist/config/server/index.js +0 -1177
  684. package/dist/config/server/index.js.map +0 -1
  685. package/dist/config/server/index.mjs +0 -1138
  686. package/dist/config/server/index.mjs.map +0 -1
  687. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  688. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  689. package/dist/festivalCard/index.d.mts +0 -76
  690. package/dist/festivalCard/index.d.ts +0 -76
  691. package/dist/festivalCard/index.js +0 -1492
  692. package/dist/festivalCard/index.js.map +0 -1
  693. package/dist/festivalCard/index.mjs +0 -1475
  694. package/dist/festivalCard/index.mjs.map +0 -1
  695. package/dist/festivalCard/routes/index.d.mts +0 -42
  696. package/dist/festivalCard/routes/index.d.ts +0 -42
  697. package/dist/festivalCard/routes/index.js +0 -361
  698. package/dist/festivalCard/routes/index.js.map +0 -1
  699. package/dist/festivalCard/routes/index.mjs +0 -356
  700. package/dist/festivalCard/routes/index.mjs.map +0 -1
  701. package/dist/festivalCard/server/index.d.mts +0 -120
  702. package/dist/festivalCard/server/index.d.ts +0 -120
  703. package/dist/festivalCard/server/index.js +0 -272
  704. package/dist/festivalCard/server/index.js.map +0 -1
  705. package/dist/festivalCard/server/index.mjs +0 -265
  706. package/dist/festivalCard/server/index.mjs.map +0 -1
  707. package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
  708. package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
  709. package/dist/i18n/index.d.mts +0 -2
  710. package/dist/i18n/index.d.ts +0 -2
  711. package/dist/i18n/index.js +0 -73
  712. package/dist/i18n/index.mjs +0 -4
  713. package/dist/imageCrop/index.d.mts +0 -165
  714. package/dist/imageCrop/index.d.ts +0 -165
  715. package/dist/imageCrop/index.js +0 -560
  716. package/dist/imageCrop/index.js.map +0 -1
  717. package/dist/imageCrop/index.mjs +0 -541
  718. package/dist/imageCrop/index.mjs.map +0 -1
  719. package/dist/index-2G9Dxjvt.d.ts +0 -81
  720. package/dist/index-BcjDRcKp.d.mts +0 -40
  721. package/dist/index-Bjem5rWn.d.mts +0 -17
  722. package/dist/index-BlpXrrTy.d.ts +0 -40
  723. package/dist/index-C5U-2hJq.d.ts +0 -23
  724. package/dist/index-CYuUB8aF.d.mts +0 -67
  725. package/dist/index-CifSBBP2.d.ts +0 -17
  726. package/dist/index-D0K4ehme.d.mts +0 -20
  727. package/dist/index-DLnfKN-a.d.mts +0 -23
  728. package/dist/index-DSel44Ke.d.mts +0 -93
  729. package/dist/index-DSel44Ke.d.ts +0 -93
  730. package/dist/index-DZ5iJtNO.d.mts +0 -102
  731. package/dist/index-DZ5iJtNO.d.ts +0 -102
  732. package/dist/index-Da7qdkgW.d.ts +0 -20
  733. package/dist/index-DrPcMJPc.d.mts +0 -250
  734. package/dist/index-DrPcMJPc.d.ts +0 -250
  735. package/dist/index-WrR57hKT.d.ts +0 -67
  736. package/dist/index-oLUvfqT8.d.ts +0 -20
  737. package/dist/index-pe38RDgC.d.mts +0 -20
  738. package/dist/index-qcOvRVuN.d.mts +0 -81
  739. package/dist/index.d.mts +0 -11590
  740. package/dist/index.d.ts +0 -11590
  741. package/dist/index.js +0 -17679
  742. package/dist/index.js.map +0 -1
  743. package/dist/index.mjs +0 -17403
  744. package/dist/index.mjs.map +0 -1
  745. package/dist/logger/index.d.mts +0 -125
  746. package/dist/logger/index.d.ts +0 -125
  747. package/dist/logger/index.js +0 -29
  748. package/dist/logger/index.mjs +0 -4
  749. package/dist/mikuContest/ui/web/index.d.mts +0 -2
  750. package/dist/mikuContest/ui/web/index.d.ts +0 -2
  751. package/dist/mikuContest/ui/web/index.js +0 -353
  752. package/dist/mikuContest/ui/web/index.js.map +0 -1
  753. package/dist/mikuContest/ui/web/index.mjs +0 -343
  754. package/dist/mikuContest/ui/web/index.mjs.map +0 -1
  755. package/dist/mikuFireworks3D/index.d.mts +0 -268
  756. package/dist/mikuFireworks3D/index.d.ts +0 -268
  757. package/dist/mikuFireworks3D/index.js +0 -1267
  758. package/dist/mikuFireworks3D/index.js.map +0 -1
  759. package/dist/mikuFireworks3D/index.mjs +0 -1228
  760. package/dist/mikuFireworks3D/index.mjs.map +0 -1
  761. package/dist/mikuFusionGame/index.d.mts +0 -117
  762. package/dist/mikuFusionGame/index.d.ts +0 -117
  763. package/dist/mikuFusionGame/index.js +0 -1208
  764. package/dist/mikuFusionGame/index.js.map +0 -1
  765. package/dist/mikuFusionGame/index.mjs +0 -1195
  766. package/dist/mikuFusionGame/index.mjs.map +0 -1
  767. package/dist/mmd/admin/index.d.mts +0 -487
  768. package/dist/mmd/admin/index.d.ts +0 -487
  769. package/dist/mmd/admin/index.js +0 -1058
  770. package/dist/mmd/admin/index.js.map +0 -1
  771. package/dist/mmd/admin/index.mjs +0 -1027
  772. package/dist/mmd/admin/index.mjs.map +0 -1
  773. package/dist/mmd/index.d.mts +0 -2467
  774. package/dist/mmd/index.d.ts +0 -2467
  775. package/dist/mmd/index.js +0 -10119
  776. package/dist/mmd/index.js.map +0 -1
  777. package/dist/mmd/index.mjs +0 -10028
  778. package/dist/mmd/index.mjs.map +0 -1
  779. package/dist/mmd/server/index.d.mts +0 -139
  780. package/dist/mmd/server/index.d.ts +0 -139
  781. package/dist/mmd/server/index.js +0 -424
  782. package/dist/mmd/server/index.js.map +0 -1
  783. package/dist/mmd/server/index.mjs +0 -404
  784. package/dist/mmd/server/index.mjs.map +0 -1
  785. package/dist/music/index.d.mts +0 -74
  786. package/dist/music/index.d.ts +0 -74
  787. package/dist/music/index.js +0 -830
  788. package/dist/music/index.js.map +0 -1
  789. package/dist/music/index.mjs +0 -809
  790. package/dist/music/index.mjs.map +0 -1
  791. package/dist/music/server/index.d.mts +0 -1
  792. package/dist/music/server/index.d.ts +0 -1
  793. package/dist/music/server/index.js +0 -194
  794. package/dist/music/server/index.js.map +0 -1
  795. package/dist/music/server/index.mjs +0 -182
  796. package/dist/music/server/index.mjs.map +0 -1
  797. package/dist/navigation/index.d.mts +0 -93
  798. package/dist/navigation/index.d.ts +0 -93
  799. package/dist/navigation/index.js +0 -453
  800. package/dist/navigation/index.js.map +0 -1
  801. package/dist/navigation/index.mjs +0 -443
  802. package/dist/navigation/index.mjs.map +0 -1
  803. package/dist/ossFile/index.d.mts +0 -61
  804. package/dist/ossFile/index.d.ts +0 -61
  805. package/dist/ossFile/index.js +0 -96
  806. package/dist/ossFile/index.js.map +0 -1
  807. package/dist/ossFile/index.mjs +0 -7
  808. package/dist/ossFile/index.mjs.map +0 -1
  809. package/dist/ossFile/server/index.d.mts +0 -94
  810. package/dist/ossFile/server/index.d.ts +0 -94
  811. package/dist/ossFile/server/index.js +0 -213
  812. package/dist/ossFile/server/index.js.map +0 -1
  813. package/dist/ossFile/server/index.mjs +0 -12
  814. package/dist/ossFile/server/index.mjs.map +0 -1
  815. package/dist/path-DkaHQSyW.d.mts +0 -41
  816. package/dist/path-qjVnH8qU.d.ts +0 -41
  817. package/dist/portfolio/index.d.mts +0 -66
  818. package/dist/portfolio/index.d.ts +0 -66
  819. package/dist/portfolio/index.js +0 -736
  820. package/dist/portfolio/index.js.map +0 -1
  821. package/dist/portfolio/index.mjs +0 -724
  822. package/dist/portfolio/index.mjs.map +0 -1
  823. package/dist/qqbot/server/index.d.mts +0 -216
  824. package/dist/qqbot/server/index.d.ts +0 -216
  825. package/dist/qqbot/server/index.js +0 -394
  826. package/dist/qqbot/server/index.js.map +0 -1
  827. package/dist/qqbot/server/index.mjs +0 -385
  828. package/dist/qqbot/server/index.mjs.map +0 -1
  829. package/dist/qqbot/ui/web/index.d.mts +0 -10
  830. package/dist/qqbot/ui/web/index.d.ts +0 -10
  831. package/dist/qqbot/ui/web/index.js +0 -105
  832. package/dist/qqbot/ui/web/index.js.map +0 -1
  833. package/dist/qqbot/ui/web/index.mjs +0 -99
  834. package/dist/qqbot/ui/web/index.mjs.map +0 -1
  835. package/dist/request/index.d.mts +0 -59
  836. package/dist/request/index.d.ts +0 -59
  837. package/dist/request/index.js +0 -23
  838. package/dist/request/index.js.map +0 -1
  839. package/dist/request/index.mjs +0 -6
  840. package/dist/request/index.mjs.map +0 -1
  841. package/dist/screenReceiver/index.d.mts +0 -86
  842. package/dist/screenReceiver/index.d.ts +0 -86
  843. package/dist/screenReceiver/index.js +0 -281
  844. package/dist/screenReceiver/index.js.map +0 -1
  845. package/dist/screenReceiver/index.mjs +0 -273
  846. package/dist/screenReceiver/index.mjs.map +0 -1
  847. package/dist/session-BCXvGCnm.d.mts +0 -81
  848. package/dist/session-BCXvGCnm.d.ts +0 -81
  849. package/dist/storage/index.d.mts +0 -136
  850. package/dist/storage/index.d.ts +0 -136
  851. package/dist/storage/index.js +0 -48
  852. package/dist/storage/index.js.map +0 -1
  853. package/dist/storage/index.mjs +0 -7
  854. package/dist/storage/index.mjs.map +0 -1
  855. package/dist/testYourself/admin/index.d.mts +0 -58
  856. package/dist/testYourself/admin/index.d.ts +0 -58
  857. package/dist/testYourself/admin/index.js +0 -1009
  858. package/dist/testYourself/admin/index.js.map +0 -1
  859. package/dist/testYourself/admin/index.mjs +0 -1002
  860. package/dist/testYourself/admin/index.mjs.map +0 -1
  861. package/dist/testYourself/index.d.mts +0 -53
  862. package/dist/testYourself/index.d.ts +0 -53
  863. package/dist/testYourself/index.js +0 -2551
  864. package/dist/testYourself/index.js.map +0 -1
  865. package/dist/testYourself/index.mjs +0 -2531
  866. package/dist/testYourself/index.mjs.map +0 -1
  867. package/dist/testYourself/server/index.d.mts +0 -1029
  868. package/dist/testYourself/server/index.d.ts +0 -1029
  869. package/dist/testYourself/server/index.js +0 -825
  870. package/dist/testYourself/server/index.js.map +0 -1
  871. package/dist/testYourself/server/index.mjs +0 -816
  872. package/dist/testYourself/server/index.mjs.map +0 -1
  873. package/dist/types-3ujSNAXb.d.mts +0 -286
  874. package/dist/types-3ujSNAXb.d.ts +0 -286
  875. package/dist/types-B6B210gX.d.mts +0 -270
  876. package/dist/types-B6B210gX.d.ts +0 -270
  877. package/dist/types-Bdnte5EN.d.mts +0 -292
  878. package/dist/types-C_W_CoUD.d.ts +0 -99
  879. package/dist/types-Cs0CLvrH.d.mts +0 -70
  880. package/dist/types-Cs0CLvrH.d.ts +0 -70
  881. package/dist/types-DCRvasyH.d.mts +0 -99
  882. package/dist/types-HorDyIRv.d.mts +0 -303
  883. package/dist/types-HorDyIRv.d.ts +0 -303
  884. package/dist/types-_rFX1atk.d.ts +0 -292
  885. package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
  886. package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
  887. package/dist/universalExport/index.d.mts +0 -312
  888. package/dist/universalExport/index.d.ts +0 -312
  889. package/dist/universalExport/index.js +0 -178
  890. package/dist/universalExport/index.js.map +0 -1
  891. package/dist/universalExport/index.mjs +0 -5
  892. package/dist/universalExport/index.mjs.map +0 -1
  893. package/dist/universalExport/server/index.d.mts +0 -1270
  894. package/dist/universalExport/server/index.d.ts +0 -1270
  895. package/dist/universalExport/server/index.js +0 -123
  896. package/dist/universalExport/server/index.js.map +0 -1
  897. package/dist/universalExport/server/index.mjs +0 -6
  898. package/dist/universalExport/server/index.mjs.map +0 -1
  899. package/dist/universalFile/index.d.mts +0 -409
  900. package/dist/universalFile/index.d.ts +0 -409
  901. package/dist/universalFile/index.js +0 -1742
  902. package/dist/universalFile/index.js.map +0 -1
  903. package/dist/universalFile/index.mjs +0 -1497
  904. package/dist/universalFile/index.mjs.map +0 -1
  905. package/dist/universalFile/server/index.d.mts +0 -1064
  906. package/dist/universalFile/server/index.d.ts +0 -1064
  907. package/dist/universalFile/server/index.js +0 -311
  908. package/dist/universalFile/server/index.js.map +0 -1
  909. package/dist/universalFile/server/index.mjs +0 -10
  910. package/dist/universalFile/server/index.mjs.map +0 -1
  911. package/dist/utils/index.d.mts +0 -192
  912. package/dist/utils/index.d.ts +0 -192
  913. package/dist/utils/index.js +0 -46
  914. package/dist/utils/index.js.map +0 -1
  915. package/dist/utils/index.mjs +0 -5
  916. package/dist/utils/index.mjs.map +0 -1
  917. package/dist/vocaloidBooth/index.d.mts +0 -64
  918. package/dist/vocaloidBooth/index.d.ts +0 -64
  919. package/dist/vocaloidBooth/index.js +0 -376
  920. package/dist/vocaloidBooth/index.js.map +0 -1
  921. package/dist/vocaloidBooth/index.mjs +0 -362
  922. package/dist/vocaloidBooth/index.mjs.map +0 -1
  923. package/dist/vocaloidBooth/server/index.d.mts +0 -111
  924. package/dist/vocaloidBooth/server/index.d.ts +0 -111
  925. package/dist/vocaloidBooth/server/index.js +0 -247
  926. package/dist/vocaloidBooth/server/index.js.map +0 -1
  927. package/dist/vocaloidBooth/server/index.mjs +0 -237
  928. package/dist/vocaloidBooth/server/index.mjs.map +0 -1
  929. package/dist/vocaloidBooth/web/index.d.mts +0 -3
  930. package/dist/vocaloidBooth/web/index.d.ts +0 -3
  931. package/dist/vocaloidBooth/web/index.js +0 -376
  932. package/dist/vocaloidBooth/web/index.js.map +0 -1
  933. package/dist/vocaloidBooth/web/index.mjs +0 -362
  934. package/dist/vocaloidBooth/web/index.mjs.map +0 -1
  935. /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
  936. /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
  937. /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
  938. /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
  939. /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
  940. /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
  941. /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
  942. /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
  943. /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
  944. /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
  945. /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
  946. /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
  947. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
  948. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
  949. /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
  950. /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
  951. /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
  952. /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
  953. /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
  954. /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
  955. /package/dist/{analytics → common/analytics}/index.js.map +0 -0
  956. /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
  957. /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
  958. /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
  959. /package/dist/{api → common/api}/index.js.map +0 -0
  960. /package/dist/{api → common/api}/index.mjs.map +0 -0
  961. /package/dist/{auth/client → common/components}/index.js.map +0 -0
  962. /package/dist/{auth/client → common/components}/index.mjs.map +0 -0
  963. /package/dist/{auth/components → common/config}/index.js.map +0 -0
  964. /package/dist/{auth/components → common/config}/index.mjs.map +0 -0
  965. /package/dist/{config → common/config}/server/index.d.mts +0 -0
  966. /package/dist/{config → common/config}/server/index.d.ts +0 -0
  967. /package/dist/{auth/hooks → common/i18n}/index.js.map +0 -0
  968. /package/dist/{auth/hooks → common/i18n}/index.mjs.map +0 -0
  969. /package/dist/{auth → common/imageCrop}/index.js.map +0 -0
  970. /package/dist/{auth → common/imageCrop}/index.mjs.map +0 -0
  971. /package/dist/{auth/schema → common/ossFile}/index.js.map +0 -0
  972. /package/dist/{auth/schema → common/ossFile}/index.mjs.map +0 -0
  973. /package/dist/{auth/services → common/ossFile/server}/index.js.map +0 -0
  974. /package/dist/{auth/services → common/ossFile/server}/index.mjs.map +0 -0
  975. /package/dist/{config → common/universalExport}/index.js.map +0 -0
  976. /package/dist/{config → common/universalExport}/index.mjs.map +0 -0
  977. /package/dist/{i18n → common/universalExport/server}/index.js.map +0 -0
  978. /package/dist/{i18n → common/universalExport/server}/index.mjs.map +0 -0
  979. /package/dist/{logger → common/universalFile/server}/index.js.map +0 -0
  980. /package/dist/{logger → common/universalFile/server}/index.mjs.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/ai/llm/ui/web/components/AiChatDialog.tsx","../src/common/ai/llm/ui/web/components/AiConfigPage.tsx"],"names":["React","useMemo","useState","useEffect"],"mappings":"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","file":"chunk-IJIQUMAK.mjs","sourcesContent":["'use client';\n\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Button } from '../../../../../components/Button';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from '../../../../../components/Dialog';\nimport { cn } from '../../../../../utils/cn';\nimport { useAiChat } from '../../../hooks/useAiChat';\nimport type { AiChatDialogProps } from '../../types';\n\ntype WebAiChatDialogProps = AiChatDialogProps & {\n className?: string;\n contentClassName?: string;\n};\n\nexport const AiChatDialog: React.FC<WebAiChatDialogProps> = ({\n open,\n onOpenChange,\n client,\n title = 'AI 对话',\n placeholder = '输入你想咨询的问题...',\n systemPrompt,\n template,\n templateVariables,\n initialMessages,\n requestOptions,\n onResponse,\n onError,\n className,\n contentClassName,\n}) => {\n const { messages, sendMessage, isLoading, error } = useAiChat({\n client,\n systemPrompt,\n template,\n initialMessages,\n });\n const [input, setInput] = useState('');\n const listRef = useRef<HTMLDivElement>(null);\n\n const hasMessages = messages.length > 0;\n const helperText = useMemo(() => {\n return template ? '模板已启用,支持 {{input}} 变量。' : '直接输入即可开始对话。';\n }, [template]);\n\n useEffect(() => {\n if (!listRef.current) return;\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }, [messages, open, isLoading]);\n\n const handleSend = async () => {\n const content = input.trim();\n if (!content || isLoading) return;\n setInput('');\n try {\n const response = await sendMessage(content, {\n ...requestOptions,\n template,\n variables: templateVariables,\n });\n onResponse?.(response);\n } catch (err) {\n const nextError = err instanceof Error ? err : new Error(String(err));\n onError?.(nextError);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n handleSend();\n }\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className={cn(\n 'max-w-3xl border border-slate-200 bg-white p-0',\n contentClassName\n )}\n >\n <div className={cn('flex flex-col', className)}>\n <DialogHeader className=\"border-b border-slate-100 px-6 py-4\">\n <DialogTitle className=\"text-base font-semibold text-slate-900\">{title}</DialogTitle>\n </DialogHeader>\n\n <div className=\"flex flex-1 flex-col gap-4 px-6 py-4\">\n <div\n ref={listRef}\n className=\"max-h-[60vh] min-h-[240px] overflow-y-auto rounded-xl border border-slate-100 bg-slate-50/60 p-4\"\n >\n {!hasMessages && (\n <div className=\"flex h-full flex-col items-center justify-center gap-2 text-sm text-slate-400\">\n <span>暂无对话内容</span>\n <span>输入消息开始体验 AI 对话。</span>\n </div>\n )}\n <div className=\"flex flex-col gap-3\">\n {messages.map((message, index) => {\n const isUser = message.role === 'user';\n return (\n <div\n key={`${message.role}-${index}`}\n className={cn(\n 'max-w-[85%] whitespace-pre-wrap rounded-2xl px-4 py-2 text-sm leading-relaxed',\n isUser\n ? 'ml-auto bg-slate-900 text-white'\n : 'mr-auto border border-slate-200 bg-white text-slate-800'\n )}\n >\n {message.content}\n </div>\n );\n })}\n {isLoading && (\n <div className=\"mr-auto max-w-[70%] rounded-2xl border border-slate-200 bg-white px-4 py-2 text-sm text-slate-500\">\n AI 正在思考...\n </div>\n )}\n </div>\n </div>\n\n <div className=\"rounded-xl border border-slate-100 bg-white p-4 shadow-sm\">\n <textarea\n value={input}\n onChange={(event) => setInput(event.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className=\"min-h-[96px] w-full resize-none rounded-lg border border-slate-200 px-3 py-2 text-sm text-slate-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300\"\n />\n <div className=\"mt-3 flex flex-wrap items-center justify-between gap-3\">\n <span className=\"text-xs text-slate-400\">{helperText}</span>\n <Button onClick={handleSend} disabled={!input.trim() || isLoading}>\n {isLoading ? '发送中...' : '发送'}\n </Button>\n </div>\n {error && (\n <div className=\"mt-2 rounded-md border border-rose-200 bg-rose-50 px-3 py-2 text-xs text-rose-600\">\n {error.message || '对话出错,请重试。'}\n </div>\n )}\n </div>\n </div>\n </div>\n </DialogContent>\n </Dialog>\n );\n};\n","'use client';\n\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { Button } from '../../../../../components/Button';\nimport { Input } from '../../../../../components/Input';\nimport { cn } from '../../../../../utils/cn';\nimport type { AiConfigPageProps, AiUiConfig } from '../../types';\n\nconst DEFAULT_AI_CONFIG: AiUiConfig = {\n apiKey: '',\n baseUrl: 'https://api.openai.com/v1',\n model: 'gpt-3.5-turbo',\n systemPrompt: '',\n template: '{{input}}',\n temperature: 0.7,\n topP: 1,\n maxTokens: 1024,\n};\n\nconst mergeConfig = (\n base: AiUiConfig,\n overrides?: Partial<AiUiConfig>,\n stored?: Partial<AiUiConfig>\n): AiUiConfig => {\n return {\n ...base,\n ...(overrides ?? {}),\n ...(stored ?? {}),\n };\n};\n\nexport const AiConfigPage: React.FC<AiConfigPageProps> = ({\n storageKey = 'sa2kit-ai-config',\n initialConfig,\n title = 'AI 配置',\n description = '配置 API Key、模型与提示词模板,用于 AI 对话能力。',\n onSave,\n onChange,\n}) => {\n const baseConfig = useMemo(\n () => mergeConfig(DEFAULT_AI_CONFIG, initialConfig),\n [initialConfig]\n );\n const [config, setConfig] = useState<AiUiConfig>(baseConfig);\n const [status, setStatus] = useState<{ type: 'success' | 'error'; text: string } | null>(null);\n const [showApiKey, setShowApiKey] = useState(false);\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return;\n }\n if (!storageKey) {\n return;\n }\n const storedRaw = localStorage.getItem(storageKey);\n if (!storedRaw) {\n return;\n }\n try {\n const stored = JSON.parse(storedRaw) as Partial<AiUiConfig>;\n setConfig(mergeConfig(DEFAULT_AI_CONFIG, initialConfig, stored));\n } catch (error) {\n console.warn('[AiConfigPage] Failed to parse stored config:', error);\n }\n }, [storageKey, initialConfig]);\n\n const updateConfig = (updates: Partial<AiUiConfig>) => {\n setConfig((prev) => {\n const next = { ...prev, ...updates };\n onChange?.(next);\n return next;\n });\n };\n\n const updateNumber = (key: keyof AiUiConfig, value: string) => {\n const nextValue = Number(value);\n if (Number.isNaN(nextValue)) {\n return;\n }\n updateConfig({ [key]: nextValue } as Partial<AiUiConfig>);\n };\n\n const saveConfig = () => {\n if (typeof window !== 'undefined' && storageKey) {\n try {\n localStorage.setItem(storageKey, JSON.stringify(config));\n } catch (error) {\n setStatus({ type: 'error', text: '保存失败,请检查浏览器存储权限。' });\n return;\n }\n }\n setStatus({ type: 'success', text: '已保存配置。' });\n onSave?.(config);\n };\n\n const resetConfig = () => {\n const next = mergeConfig(DEFAULT_AI_CONFIG, initialConfig);\n setConfig(next);\n onChange?.(next);\n if (typeof window !== 'undefined' && storageKey) {\n localStorage.removeItem(storageKey);\n }\n setStatus({ type: 'success', text: '已恢复默认配置。' });\n };\n\n return (\n <div className=\"w-full rounded-2xl border border-slate-200 bg-white p-6 shadow-sm\">\n <div className=\"flex flex-col gap-2 border-b border-slate-100 pb-4\">\n <h2 className=\"text-xl font-semibold text-slate-900\">{title}</h2>\n <p className=\"text-sm text-slate-500\">{description}</p>\n </div>\n\n <div className=\"mt-6 grid gap-6\">\n <section className=\"rounded-xl border border-slate-100 bg-slate-50/60 p-4\">\n <h3 className=\"text-sm font-semibold text-slate-700\">API 信息</h3>\n <div className=\"mt-4 grid gap-4\">\n <div>\n <label className=\"text-xs font-medium text-slate-500\">Base URL</label>\n <Input\n value={config.baseUrl}\n onChange={(event) => updateConfig({ baseUrl: event.target.value })}\n placeholder=\"https://api.openai.com/v1\"\n className=\"mt-2\"\n />\n </div>\n <div>\n <label className=\"text-xs font-medium text-slate-500\">API Key</label>\n <div className=\"mt-2 flex gap-2\">\n <Input\n value={config.apiKey}\n onChange={(event) => updateConfig({ apiKey: event.target.value })}\n placeholder=\"sk-...\"\n type={showApiKey ? 'text' : 'password'}\n />\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => setShowApiKey((prev) => !prev)}\n >\n {showApiKey ? '隐藏' : '显示'}\n </Button>\n </div>\n </div>\n <div>\n <label className=\"text-xs font-medium text-slate-500\">模型</label>\n <Input\n value={config.model}\n onChange={(event) => updateConfig({ model: event.target.value })}\n placeholder=\"gpt-3.5-turbo\"\n className=\"mt-2\"\n />\n </div>\n </div>\n </section>\n\n <section className=\"rounded-xl border border-slate-100 bg-white p-4 shadow-sm\">\n <h3 className=\"text-sm font-semibold text-slate-700\">提示词与上下文</h3>\n <div className=\"mt-4 grid gap-4\">\n <div>\n <label className=\"text-xs font-medium text-slate-500\">系统提示词</label>\n <textarea\n value={config.systemPrompt}\n onChange={(event) => updateConfig({ systemPrompt: event.target.value })}\n placeholder=\"你是一个专业的 AI 助手...\"\n className=\"mt-2 min-h-[96px] w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300\"\n />\n </div>\n <div>\n <label className=\"text-xs font-medium text-slate-500\">提示词模板</label>\n <textarea\n value={config.template}\n onChange={(event) => updateConfig({ template: event.target.value })}\n placeholder=\"请回答:{{input}}\"\n className=\"mt-2 min-h-[96px] w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-sm text-slate-900 shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300\"\n />\n <p className=\"mt-2 text-xs text-slate-400\">\n 支持变量插入:<code className=\"rounded bg-slate-100 px-1\">{\"{{input}}\"}</code>\n </p>\n </div>\n </div>\n </section>\n\n <section className=\"rounded-xl border border-slate-100 bg-slate-50/60 p-4\">\n <h3 className=\"text-sm font-semibold text-slate-700\">模型参数</h3>\n <div className=\"mt-4 grid gap-4 md:grid-cols-3\">\n <div>\n <label className=\"text-xs font-medium text-slate-500\">Temperature</label>\n <Input\n type=\"number\"\n value={config.temperature}\n onChange={(event) => updateNumber('temperature', event.target.value)}\n className=\"mt-2\"\n />\n </div>\n <div>\n <label className=\"text-xs font-medium text-slate-500\">Top P</label>\n <Input\n type=\"number\"\n value={config.topP}\n onChange={(event) => updateNumber('topP', event.target.value)}\n className=\"mt-2\"\n />\n </div>\n <div>\n <label className=\"text-xs font-medium text-slate-500\">Max Tokens</label>\n <Input\n type=\"number\"\n value={config.maxTokens}\n onChange={(event) => updateNumber('maxTokens', event.target.value)}\n className=\"mt-2\"\n />\n </div>\n </div>\n </section>\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <Button onClick={saveConfig}>保存配置</Button>\n <Button variant=\"outline\" onClick={resetConfig}>\n 恢复默认\n </Button>\n {status && (\n <span\n className={cn(\n 'text-xs',\n status.type === 'success' ? 'text-emerald-600' : 'text-rose-600'\n )}\n >\n {status.text}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -0,0 +1,559 @@
1
+ import { __export } from './chunk-MAI35PU6.mjs';
2
+ import React2, { useState, useRef, useCallback, useEffect } from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { Grid, RefreshCw, Maximize2, Scissors, AlertCircle, Image as Image$1, CheckCircle2, XCircle, Loader2, Download } from 'lucide-react';
5
+ import JSZip from 'jszip';
6
+
7
+ // src/common/imageCrop/index.ts
8
+ var imageCrop_exports = {};
9
+ __export(imageCrop_exports, {
10
+ GridControls: () => GridControls,
11
+ ImageGridCropper: () => ImageGridCropper,
12
+ calculateTotalSize: () => calculateTotalSize,
13
+ constrainOffset: () => constrainOffset,
14
+ cropGridCell: () => cropGridCell,
15
+ cropMultipleCells: () => cropMultipleCells,
16
+ downloadAsZip: () => downloadAsZip,
17
+ downloadBlob: () => downloadBlob,
18
+ downloadMultipleFiles: () => downloadMultipleFiles,
19
+ formatFileSize: () => formatFileSize,
20
+ generateCellPreview: () => generateCellPreview,
21
+ loadImageFromFile: () => loadImageFromFile,
22
+ validateCropArea: () => validateCropArea
23
+ });
24
+
25
+ // src/common/imageCrop/utils/cropUtils.ts
26
+ async function loadImageFromFile(file) {
27
+ return new Promise((resolve, reject) => {
28
+ const reader = new FileReader();
29
+ reader.onload = (e) => {
30
+ const dataUrl = e.target?.result;
31
+ const img = new Image();
32
+ img.onload = () => {
33
+ resolve({
34
+ width: img.naturalWidth,
35
+ height: img.naturalHeight,
36
+ naturalWidth: img.naturalWidth,
37
+ naturalHeight: img.naturalHeight,
38
+ image: img,
39
+ file
40
+ });
41
+ };
42
+ img.onerror = () => {
43
+ reject(new Error("\u56FE\u7247\u52A0\u8F7D\u5931\u8D25"));
44
+ };
45
+ img.src = dataUrl;
46
+ };
47
+ reader.onerror = () => {
48
+ reject(new Error("\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25"));
49
+ };
50
+ reader.readAsDataURL(file);
51
+ });
52
+ }
53
+ async function cropGridCell(imageInfo, cell, cellWidth, cellHeight, options = {}) {
54
+ const {
55
+ format = "image/png",
56
+ quality = 0.92,
57
+ filenamePrefix = "crop"
58
+ } = options;
59
+ if (!imageInfo.image) {
60
+ throw new Error("\u56FE\u7247\u8D44\u6E90\u672A\u52A0\u8F7D");
61
+ }
62
+ const canvas = document.createElement("canvas");
63
+ canvas.width = cellWidth;
64
+ canvas.height = cellHeight;
65
+ const ctx = canvas.getContext("2d");
66
+ if (!ctx) {
67
+ throw new Error("Canvas context \u521B\u5EFA\u5931\u8D25");
68
+ }
69
+ const sourceX = cell.offsetX;
70
+ const sourceY = cell.offsetY;
71
+ const sourceWidth = cellWidth;
72
+ const sourceHeight = cellHeight;
73
+ ctx.drawImage(
74
+ imageInfo.image,
75
+ sourceX,
76
+ sourceY,
77
+ sourceWidth,
78
+ sourceHeight,
79
+ 0,
80
+ 0,
81
+ cellWidth,
82
+ cellHeight
83
+ );
84
+ const blob = await new Promise((resolve, reject) => {
85
+ canvas.toBlob(
86
+ (blob2) => {
87
+ if (blob2) {
88
+ resolve(blob2);
89
+ } else {
90
+ reject(new Error("\u56FE\u7247\u8F6C\u6362\u5931\u8D25"));
91
+ }
92
+ },
93
+ format,
94
+ quality
95
+ );
96
+ });
97
+ const extension = format.split("/")[1] || "png";
98
+ const filename = filenamePrefix + "_r" + cell.row + "_c" + cell.column + "." + extension;
99
+ return {
100
+ blob,
101
+ dataUrl: canvas.toDataURL(format, quality),
102
+ index: cell.row * 1e3 + cell.column,
103
+ // 简单的索引生成
104
+ row: cell.row,
105
+ column: cell.column,
106
+ cell,
107
+ filename
108
+ };
109
+ }
110
+ async function cropMultipleCells(imageInfo, cells, cellWidth, cellHeight, options = {}, onProgress) {
111
+ const results = [];
112
+ for (let i = 0; i < cells.length; i++) {
113
+ const cell = cells[i];
114
+ if (!cell || !cell.selected) continue;
115
+ try {
116
+ const result = await cropGridCell(imageInfo, cell, cellWidth, cellHeight, options);
117
+ results.push(result);
118
+ if (onProgress) {
119
+ onProgress(i + 1, cells.length);
120
+ }
121
+ } catch (error) {
122
+ console.error("\u88C1\u526A\u5355\u5143\u683C (" + cell.row + ", " + cell.column + ") \u5931\u8D25:", error);
123
+ }
124
+ }
125
+ return results;
126
+ }
127
+ async function generateCellPreview(imageInfo, cell, cellWidth, cellHeight, previewSize = 100) {
128
+ const canvas = document.createElement("canvas");
129
+ const scale = Math.min(previewSize / cellWidth, previewSize / cellHeight);
130
+ canvas.width = cellWidth * scale;
131
+ canvas.height = cellHeight * scale;
132
+ const ctx = canvas.getContext("2d");
133
+ if (!ctx || !imageInfo.image) {
134
+ throw new Error("Canvas context \u521B\u5EFA\u5931\u8D25\u6216\u56FE\u7247\u672A\u52A0\u8F7D");
135
+ }
136
+ ctx.drawImage(
137
+ imageInfo.image,
138
+ cell.offsetX,
139
+ cell.offsetY,
140
+ cellWidth,
141
+ cellHeight,
142
+ 0,
143
+ 0,
144
+ canvas.width,
145
+ canvas.height
146
+ );
147
+ return canvas.toDataURL("image/png");
148
+ }
149
+ function validateCropArea(imageWidth, imageHeight, offsetX, offsetY, cropWidth, cropHeight) {
150
+ return offsetX >= 0 && offsetY >= 0 && offsetX + cropWidth <= imageWidth && offsetY + cropHeight <= imageHeight;
151
+ }
152
+ function constrainOffset(imageWidth, imageHeight, offsetX, offsetY, cropWidth, cropHeight) {
153
+ const constrainedX = Math.max(0, Math.min(offsetX, imageWidth - cropWidth));
154
+ const constrainedY = Math.max(0, Math.min(offsetY, imageHeight - cropHeight));
155
+ return {
156
+ offsetX: constrainedX,
157
+ offsetY: constrainedY
158
+ };
159
+ }
160
+ async function downloadAsZip(results, zipFilename = "cropped_images.zip") {
161
+ if (results.length === 0) {
162
+ throw new Error("\u6CA1\u6709\u53EF\u4E0B\u8F7D\u7684\u56FE\u7247");
163
+ }
164
+ const zip = new JSZip();
165
+ results.forEach((result, idx) => {
166
+ const filename = result.filename || "crop_" + idx + ".png";
167
+ zip.file(filename, result.blob);
168
+ });
169
+ const zipBlob = await zip.generateAsync({
170
+ type: "blob",
171
+ compression: "DEFLATE",
172
+ compressionOptions: {
173
+ level: 6
174
+ }
175
+ });
176
+ downloadBlob(zipBlob, zipFilename);
177
+ }
178
+ function downloadBlob(blob, filename) {
179
+ const url = URL.createObjectURL(blob);
180
+ const link = document.createElement("a");
181
+ link.href = url;
182
+ link.download = filename;
183
+ document.body.appendChild(link);
184
+ link.click();
185
+ document.body.removeChild(link);
186
+ setTimeout(() => {
187
+ URL.revokeObjectURL(url);
188
+ }, 100);
189
+ }
190
+ async function downloadMultipleFiles(results, delay = 100) {
191
+ for (let i = 0; i < results.length; i++) {
192
+ const result = results[i];
193
+ if (!result) continue;
194
+ const filename = result.filename || "crop_" + i + ".png";
195
+ downloadBlob(result.blob, filename);
196
+ if (i < results.length - 1) {
197
+ await new Promise((resolve) => setTimeout(resolve, delay));
198
+ }
199
+ }
200
+ }
201
+ function calculateTotalSize(results) {
202
+ return results.reduce((total, result) => total + result.blob.size, 0);
203
+ }
204
+ function formatFileSize(bytes) {
205
+ if (bytes === 0) return "0 B";
206
+ const k = 1024;
207
+ const sizes = ["B", "KB", "MB", "GB"];
208
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
209
+ return (bytes / Math.pow(k, i)).toFixed(2) + " " + sizes[i];
210
+ }
211
+ var GridControls = ({
212
+ config,
213
+ onChange,
214
+ disabled = false,
215
+ maxRows = 20,
216
+ maxColumns = 20,
217
+ maxCellSize = 2e3,
218
+ minCellSize = 10,
219
+ showReset = true,
220
+ onReset
221
+ }) => {
222
+ const handleChange = (field, value) => {
223
+ let constrainedValue = value;
224
+ if (field === "rows") {
225
+ constrainedValue = Math.max(1, Math.min(maxRows, value));
226
+ } else if (field === "columns") {
227
+ constrainedValue = Math.max(1, Math.min(maxColumns, value));
228
+ } else if (field === "cellWidth" || field === "cellHeight") {
229
+ constrainedValue = Math.max(minCellSize, Math.min(maxCellSize, value));
230
+ }
231
+ onChange({
232
+ ...config,
233
+ [field]: constrainedValue
234
+ });
235
+ };
236
+ return /* @__PURE__ */ React2.createElement("div", { className: "space-y-4 p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React2.createElement(Grid, { className: "w-5 h-5 text-blue-500" }), /* @__PURE__ */ React2.createElement("h3", { className: "text-lg font-semibold text-gray-800 dark:text-gray-200" }, "\u7F51\u683C\u8BBE\u7F6E")), showReset && /* @__PURE__ */ React2.createElement(
237
+ "button",
238
+ {
239
+ onClick: onReset,
240
+ disabled,
241
+ className: "flex items-center gap-1 px-3 py-1.5 text-sm text-gray-600 dark:text-gray-400 hover:text-blue-500 dark:hover:text-blue-400 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
242
+ title: "\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u503C"
243
+ },
244
+ /* @__PURE__ */ React2.createElement(RefreshCw, { className: "w-4 h-4" }),
245
+ "\u91CD\u7F6E"
246
+ )), /* @__PURE__ */ React2.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300" }, "\u884C\u6570"), /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React2.createElement(
247
+ "input",
248
+ {
249
+ type: "number",
250
+ min: 1,
251
+ max: maxRows,
252
+ value: config.rows,
253
+ onChange: (e) => handleChange("rows", parseInt(e.target.value) || 1),
254
+ disabled,
255
+ className: "flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed"
256
+ }
257
+ ), /* @__PURE__ */ React2.createElement(
258
+ "input",
259
+ {
260
+ type: "range",
261
+ min: 1,
262
+ max: maxRows,
263
+ value: config.rows,
264
+ onChange: (e) => handleChange("rows", parseInt(e.target.value)),
265
+ disabled,
266
+ className: "flex-1 h-2 bg-gray-200 dark:bg-gray-700 rounded-lg appearance-none cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"
267
+ }
268
+ ))), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300" }, "\u5217\u6570"), /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React2.createElement(
269
+ "input",
270
+ {
271
+ type: "number",
272
+ min: 1,
273
+ max: maxColumns,
274
+ value: config.columns,
275
+ onChange: (e) => handleChange("columns", parseInt(e.target.value) || 1),
276
+ disabled,
277
+ className: "flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed"
278
+ }
279
+ ), /* @__PURE__ */ React2.createElement(
280
+ "input",
281
+ {
282
+ type: "range",
283
+ min: 1,
284
+ max: maxColumns,
285
+ value: config.columns,
286
+ onChange: (e) => handleChange("columns", parseInt(e.target.value)),
287
+ disabled,
288
+ className: "flex-1 h-2 bg-gray-200 dark:bg-gray-700 rounded-lg appearance-none cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"
289
+ }
290
+ )))), /* @__PURE__ */ React2.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700 dark:text-gray-300" }, /* @__PURE__ */ React2.createElement(Maximize2, { className: "w-4 h-4" }), "\u5355\u5143\u683C\u5BBD\u5EA6 (px)"), /* @__PURE__ */ React2.createElement(
291
+ "input",
292
+ {
293
+ type: "number",
294
+ min: minCellSize,
295
+ max: maxCellSize,
296
+ value: config.cellWidth,
297
+ onChange: (e) => handleChange("cellWidth", parseInt(e.target.value) || minCellSize),
298
+ disabled,
299
+ className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed"
300
+ }
301
+ )), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700 dark:text-gray-300" }, /* @__PURE__ */ React2.createElement(Maximize2, { className: "w-4 h-4" }), "\u5355\u5143\u683C\u9AD8\u5EA6 (px)"), /* @__PURE__ */ React2.createElement(
302
+ "input",
303
+ {
304
+ type: "number",
305
+ min: minCellSize,
306
+ max: maxCellSize,
307
+ value: config.cellHeight,
308
+ onChange: (e) => handleChange("cellHeight", parseInt(e.target.value) || minCellSize),
309
+ disabled,
310
+ className: "w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed"
311
+ }
312
+ ))), /* @__PURE__ */ React2.createElement("div", { className: "pt-3 border-t border-gray-200 dark:border-gray-700" }, /* @__PURE__ */ React2.createElement("div", { className: "grid grid-cols-2 gap-4 text-sm text-gray-600 dark:text-gray-400" }, /* @__PURE__ */ React2.createElement("div", { className: "flex justify-between" }, /* @__PURE__ */ React2.createElement("span", null, "\u603B\u5355\u5143\u683C\u6570:"), /* @__PURE__ */ React2.createElement("span", { className: "font-medium text-gray-900 dark:text-gray-100" }, config.rows * config.columns)), /* @__PURE__ */ React2.createElement("div", { className: "flex justify-between" }, /* @__PURE__ */ React2.createElement("span", null, "\u603B\u5C3A\u5BF8:"), /* @__PURE__ */ React2.createElement("span", { className: "font-medium text-gray-900 dark:text-gray-100" }, config.cellWidth * config.columns, " \xD7 ", config.cellHeight * config.rows)))));
313
+ };
314
+
315
+ // src/common/imageCrop/components/ImageGridCropper.tsx
316
+ var ImageGridCropper = ({
317
+ config = {},
318
+ onExportSuccess,
319
+ onExportError,
320
+ className = ""
321
+ }) => {
322
+ const {
323
+ defaultRows = 3,
324
+ defaultColumns = 3,
325
+ defaultCellWidth = 256,
326
+ defaultCellHeight = 256,
327
+ maxRows = 20,
328
+ maxColumns = 20,
329
+ maxCellSize = 2e3,
330
+ minCellSize = 10
331
+ } = config;
332
+ const [imageInfo, setImageInfo] = useState(null);
333
+ const [gridConfig, setGridConfig] = useState({
334
+ rows: defaultRows,
335
+ columns: defaultColumns,
336
+ cellWidth: defaultCellWidth,
337
+ cellHeight: defaultCellHeight
338
+ });
339
+ const [gridCells, setGridCells] = useState([]);
340
+ const [isProcessing, setIsProcessing] = useState(false);
341
+ const [progress, setProgress] = useState({ current: 0, total: 0 });
342
+ const [error, setError] = useState(null);
343
+ const canvasRef = useRef(null);
344
+ const fileInputRef = useRef(null);
345
+ const generateGridCells = useCallback(() => {
346
+ const cells = [];
347
+ const { rows, columns, cellWidth, cellHeight } = gridConfig;
348
+ for (let row = 0; row < rows; row++) {
349
+ for (let col = 0; col < columns; col++) {
350
+ const offsetX = col * cellWidth;
351
+ const offsetY = row * cellHeight;
352
+ cells.push({
353
+ id: "cell_" + row + "_" + col,
354
+ row,
355
+ column: col,
356
+ x: offsetX,
357
+ y: offsetY,
358
+ offsetX,
359
+ offsetY,
360
+ width: cellWidth,
361
+ height: cellHeight,
362
+ selected: true
363
+ // 默认全选
364
+ });
365
+ }
366
+ }
367
+ setGridCells(cells);
368
+ }, [gridConfig]);
369
+ const handleFileSelect = async (event) => {
370
+ const file = event.target.files?.[0];
371
+ if (!file) return;
372
+ if (!file.type.startsWith("image/")) {
373
+ setError("\u8BF7\u9009\u62E9\u56FE\u7247\u6587\u4EF6");
374
+ return;
375
+ }
376
+ try {
377
+ setError(null);
378
+ setIsProcessing(true);
379
+ const info = await loadImageFromFile(file);
380
+ setImageInfo(info);
381
+ generateGridCells();
382
+ } catch (err) {
383
+ const errorMsg = err instanceof Error ? err.message : "\u56FE\u7247\u52A0\u8F7D\u5931\u8D25";
384
+ setError(errorMsg);
385
+ onExportError?.(errorMsg);
386
+ } finally {
387
+ setIsProcessing(false);
388
+ }
389
+ event.target.value = "";
390
+ };
391
+ const drawPreview = useCallback(() => {
392
+ if (!imageInfo || !canvasRef.current) return;
393
+ const canvas = canvasRef.current;
394
+ const ctx = canvas.getContext("2d");
395
+ if (!ctx) return;
396
+ const maxWidth = 800;
397
+ const maxHeight = 600;
398
+ const scale = Math.min(
399
+ maxWidth / imageInfo.width,
400
+ maxHeight / imageInfo.height,
401
+ 1
402
+ );
403
+ canvas.width = imageInfo.width * scale;
404
+ canvas.height = imageInfo.height * scale;
405
+ if (!imageInfo.image) return;
406
+ ctx.drawImage(imageInfo.image, 0, 0, canvas.width, canvas.height);
407
+ ctx.strokeStyle = "rgba(59, 130, 246, 0.6)";
408
+ ctx.lineWidth = 2;
409
+ const { cellWidth, cellHeight } = gridConfig;
410
+ gridCells.forEach((cell) => {
411
+ const x = cell.offsetX * scale;
412
+ const y = cell.offsetY * scale;
413
+ const w = cellWidth * scale;
414
+ const h = cellHeight * scale;
415
+ if (cell.selected) {
416
+ ctx.strokeStyle = "rgba(34, 197, 94, 0.8)";
417
+ } else {
418
+ ctx.strokeStyle = "rgba(156, 163, 175, 0.5)";
419
+ }
420
+ ctx.strokeRect(x, y, w, h);
421
+ ctx.fillStyle = cell.selected ? "rgba(34, 197, 94, 0.9)" : "rgba(156, 163, 175, 0.7)";
422
+ ctx.font = "12px sans-serif";
423
+ ctx.fillText("R" + cell.row + "C" + cell.column, x + 5, y + 15);
424
+ });
425
+ }, [imageInfo, gridConfig, gridCells]);
426
+ const toggleCellSelection = (cellId) => {
427
+ setGridCells(
428
+ (prev) => prev.map(
429
+ (cell) => cell.id === cellId ? { ...cell, selected: !cell.selected } : cell
430
+ )
431
+ );
432
+ };
433
+ const toggleSelectAll = () => {
434
+ const allSelected = gridCells.every((cell) => cell.selected);
435
+ setGridCells(
436
+ (prev) => prev.map((cell) => ({ ...cell, selected: !allSelected }))
437
+ );
438
+ };
439
+ const handleExport = async (options = {}) => {
440
+ if (!imageInfo) {
441
+ setError("\u8BF7\u5148\u4E0A\u4F20\u56FE\u7247");
442
+ return;
443
+ }
444
+ const selectedCells = gridCells.filter((cell) => cell.selected);
445
+ if (selectedCells.length === 0) {
446
+ setError("\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u5355\u5143\u683C");
447
+ return;
448
+ }
449
+ try {
450
+ setError(null);
451
+ setIsProcessing(true);
452
+ setProgress({ current: 0, total: selectedCells.length });
453
+ const results = await cropMultipleCells(
454
+ imageInfo,
455
+ selectedCells,
456
+ gridConfig.cellWidth,
457
+ gridConfig.cellHeight,
458
+ options.cropOptions,
459
+ (current, total) => setProgress({ current, total })
460
+ );
461
+ if (results.length === 0) {
462
+ throw new Error("\u6CA1\u6709\u6210\u529F\u88C1\u526A\u7684\u56FE\u7247");
463
+ }
464
+ const zipFilename = options.zipFilename || "cropped_" + Date.now() + ".zip";
465
+ await downloadAsZip(results, zipFilename);
466
+ onExportSuccess?.(results);
467
+ } catch (err) {
468
+ const errorMsg = err instanceof Error ? err.message : "\u5BFC\u51FA\u5931\u8D25";
469
+ setError(errorMsg);
470
+ onExportError?.(errorMsg);
471
+ } finally {
472
+ setIsProcessing(false);
473
+ setProgress({ current: 0, total: 0 });
474
+ }
475
+ };
476
+ const handleReset = () => {
477
+ setGridConfig({
478
+ rows: defaultRows,
479
+ columns: defaultColumns,
480
+ cellWidth: defaultCellWidth,
481
+ cellHeight: defaultCellHeight
482
+ });
483
+ };
484
+ useEffect(() => {
485
+ if (imageInfo) {
486
+ generateGridCells();
487
+ }
488
+ }, [imageInfo, generateGridCells]);
489
+ useEffect(() => {
490
+ drawPreview();
491
+ }, [drawPreview]);
492
+ const selectedCount = gridCells.filter((cell) => cell.selected).length;
493
+ return /* @__PURE__ */ React2.createElement("div", { className: clsx("w-full space-y-6", className) }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React2.createElement(Scissors, { className: "w-7 h-7 text-blue-500" }), /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement("h2", { className: "text-2xl font-bold text-gray-800 dark:text-gray-200" }, "\u7F51\u683C\u5F0F\u56FE\u7247\u88C1\u526A\u5DE5\u5177"), /* @__PURE__ */ React2.createElement("p", { className: "text-sm text-gray-600 dark:text-gray-400" }, "\u4E0A\u4F20\u56FE\u7247\uFF0C\u8BBE\u7F6E\u7F51\u683C\uFF0C\u88C1\u526A\u5E76\u5BFC\u51FA")))), error && /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-2 p-4 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg" }, /* @__PURE__ */ React2.createElement(AlertCircle, { className: "w-5 h-5 text-red-500" }), /* @__PURE__ */ React2.createElement("p", { className: "text-sm text-red-700 dark:text-red-400" }, error)), /* @__PURE__ */ React2.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2.createElement("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300" }, "\u4E0A\u4F20\u56FE\u7247"), /* @__PURE__ */ React2.createElement(
494
+ "div",
495
+ {
496
+ className: "border-2 border-dashed border-gray-300 dark:border-gray-600 rounded-lg p-8 text-center cursor-pointer hover:border-blue-400 dark:hover:border-blue-500 transition-colors",
497
+ onClick: () => fileInputRef.current?.click()
498
+ },
499
+ /* @__PURE__ */ React2.createElement(Image$1, { className: "w-12 h-12 mx-auto mb-4 text-gray-400" }),
500
+ /* @__PURE__ */ React2.createElement("p", { className: "text-gray-600 dark:text-gray-400 mb-2" }, "\u70B9\u51FB\u9009\u62E9\u56FE\u7247\u6216\u62D6\u62FD\u6587\u4EF6\u5230\u8FD9\u91CC"),
501
+ /* @__PURE__ */ React2.createElement("p", { className: "text-sm text-gray-500" }, "\u652F\u6301 PNG, JPG, WEBP \u7B49\u683C\u5F0F"),
502
+ imageInfo && imageInfo.file && /* @__PURE__ */ React2.createElement("p", { className: "mt-4 text-sm text-green-600 dark:text-green-400" }, "\u2713 \u5DF2\u4E0A\u4F20: ", imageInfo.file.name, " (", imageInfo.width, " \xD7 ", imageInfo.height, ")")
503
+ ), /* @__PURE__ */ React2.createElement(
504
+ "input",
505
+ {
506
+ ref: fileInputRef,
507
+ type: "file",
508
+ accept: "image/*",
509
+ onChange: handleFileSelect,
510
+ className: "hidden"
511
+ }
512
+ )), imageInfo && /* @__PURE__ */ React2.createElement(
513
+ GridControls,
514
+ {
515
+ config: gridConfig,
516
+ onChange: setGridConfig,
517
+ disabled: isProcessing,
518
+ maxRows,
519
+ maxColumns,
520
+ maxCellSize,
521
+ minCellSize,
522
+ onReset: handleReset
523
+ }
524
+ ), imageInfo && /* @__PURE__ */ React2.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React2.createElement("h3", { className: "text-lg font-semibold text-gray-800 dark:text-gray-200" }, "\u9884\u89C8\u4E0E\u8C03\u6574"), /* @__PURE__ */ React2.createElement(
525
+ "button",
526
+ {
527
+ onClick: toggleSelectAll,
528
+ className: "px-4 py-2 text-sm text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-md transition-colors"
529
+ },
530
+ gridCells.every((cell) => cell.selected) ? "\u53D6\u6D88\u5168\u9009" : "\u5168\u9009"
531
+ )), /* @__PURE__ */ React2.createElement("div", { className: "border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden bg-gray-50 dark:bg-gray-900 p-4" }, /* @__PURE__ */ React2.createElement(
532
+ "canvas",
533
+ {
534
+ ref: canvasRef,
535
+ className: "max-w-full mx-auto border border-gray-300 dark:border-gray-600"
536
+ }
537
+ )), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("h4", { className: "text-sm font-medium text-gray-700 dark:text-gray-300" }, "\u5355\u5143\u683C\u5217\u8868 (", selectedCount, "/", gridCells.length, " \u5DF2\u9009\u4E2D)"), /* @__PURE__ */ React2.createElement("div", { className: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2 max-h-64 overflow-y-auto" }, gridCells.map((cell) => /* @__PURE__ */ React2.createElement(
538
+ "div",
539
+ {
540
+ key: cell.id,
541
+ className: clsx("p-3 rounded border", cell.selected ? "border-green-500 bg-green-50 dark:bg-green-900/20" : "border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800", "cursor-pointer transition-colors"),
542
+ onClick: () => toggleCellSelection(cell.id)
543
+ },
544
+ /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between mb-2" }, /* @__PURE__ */ React2.createElement("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300" }, "R", cell.row, " C", cell.column), cell.selected ? /* @__PURE__ */ React2.createElement(CheckCircle2, { className: "w-4 h-4 text-green-500" }) : /* @__PURE__ */ React2.createElement(XCircle, { className: "w-4 h-4 text-gray-400" })),
545
+ /* @__PURE__ */ React2.createElement("div", { className: "text-xs text-gray-500 space-y-1" }, /* @__PURE__ */ React2.createElement("p", null, "X: ", cell.offsetX, "px"), /* @__PURE__ */ React2.createElement("p", null, "Y: ", cell.offsetY, "px"))
546
+ ))))), imageInfo && /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between p-4 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-200 dark:border-blue-800" }, /* @__PURE__ */ React2.createElement("div", { className: "text-sm text-gray-700 dark:text-gray-300" }, /* @__PURE__ */ React2.createElement("p", { className: "font-medium" }, "\u51C6\u5907\u5BFC\u51FA ", selectedCount, " \u4E2A\u88C1\u526A\u56FE\u7247"), isProcessing && /* @__PURE__ */ React2.createElement("p", { className: "text-xs text-gray-600 dark:text-gray-400 mt-1" }, "\u8FDB\u5EA6: ", progress.current, "/", progress.total)), /* @__PURE__ */ React2.createElement(
547
+ "button",
548
+ {
549
+ onClick: () => handleExport(),
550
+ disabled: isProcessing || selectedCount === 0,
551
+ className: "flex items-center gap-2 px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
552
+ },
553
+ isProcessing ? /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Loader2, { className: "w-5 h-5 animate-spin" }), "\u5904\u7406\u4E2D...") : /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Download, { className: "w-5 h-5" }), "\u5BFC\u51FA\u4E3A ZIP")
554
+ )));
555
+ };
556
+
557
+ export { GridControls, ImageGridCropper, calculateTotalSize, constrainOffset, cropGridCell, cropMultipleCells, downloadAsZip, downloadBlob, downloadMultipleFiles, formatFileSize, generateCellPreview, imageCrop_exports, loadImageFromFile, validateCropArea };
558
+ //# sourceMappingURL=chunk-KEZFTDZT.mjs.map
559
+ //# sourceMappingURL=chunk-KEZFTDZT.mjs.map