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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/navigation/NavigationItem.tsx","../../src/navigation/Navigation.tsx","../../src/navigation/NavigationToggle.tsx","../../src/navigation/FloatingMenu.tsx","../../src/navigation/FloatingMenuExample.tsx"],"names":["React","clsx","useState","useRef","useEffect","createPortal"],"mappings":"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","file":"index.js","sourcesContent":[" 'use client';\n\nimport React from 'react';\nimport { NavigationItem, NavigationDirection } from './types';\nimport { clsx } from 'clsx';\n\ninterface NavigationItemProps {\n item: NavigationItem;\n direction: NavigationDirection;\n isActive?: boolean;\n onClick: (item: NavigationItem) => void;\n}\n\nconst NavigationItemComponent: React.FC<NavigationItemProps> = ({\n item,\n direction,\n isActive,\n onClick\n}) => {\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onClick(item);\n };\n\n const getItemClasses = () => {\n const baseClasses = `\n group relative flex items-center gap-3\n transition-all duration-300 ease-in-out\n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50\n rounded-lg\n `;\n\n const directionClasses = direction === 'vertical'\n ? 'px-4 py-3 w-full justify-start'\n : 'px-3 py-2 justify-center';\n\n const stateClasses = isActive\n ? 'bg-blue-500 text-white shadow-lg'\n : item.isExternal\n ? 'text-gray-700 hover:bg-purple-50 hover:text-purple-600 border border-purple-200'\n : 'text-gray-700 hover:bg-blue-50 hover:text-blue-600';\n\n return (baseClasses) + ' ' + (directionClasses) + ' ' + (stateClasses);\n };\n\n return (\n <a\n href={item.href}\n onClick={handleClick}\n target={item.target}\n rel={item.isExternal ? 'noopener noreferrer' : undefined}\n className={getItemClasses()}\n >\n {/* 图标 */}\n {item.icon && (\n <span className=\"flex-shrink-0\">\n {item.icon}\n </span>\n )}\n\n {/* 标签 */}\n <span className={clsx('font-medium', direction === 'vertical' ? 'text-sm' : 'text-xs')}>\n {item.label}\n </span>\n\n {/* 外链图标 */}\n {item.isExternal && (\n <svg\n className=\"w-3 h-3 opacity-60 group-hover:opacity-100 transition-opacity\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n )}\n\n {/* 活动状态指示器 */}\n {direction === 'vertical' && isActive && (\n <div className=\"absolute left-1 top-1/2 transform -translate-y-1/2 w-1 h-6 bg-white rounded-full\" />\n )}\n </a>\n );\n};\n\nexport default NavigationItemComponent;"," 'use client';\n\nimport React from 'react';\nimport NavigationItem from './NavigationItem';\nimport { NavigationProps } from './types';\nimport { clsx } from 'clsx';\n\nconst Navigation: React.FC<NavigationProps> = ({\n config,\n isOpen,\n activeItemId,\n onItemClick,\n className = ''\n}) => {\n const { direction, position, items, avatar, logo } = config;\n\n // 获取导航栏位置和尺寸样式\n const getContainerClasses = () => {\n const baseClasses = `\n fixed z-[90]\n bg-white/95 backdrop-blur-lg\n border border-gray-200/50\n shadow-2xl\n transition-all duration-500 ease-in-out\n `;\n\n // 根据方向和位置确定样式\n if (direction === 'vertical') {\n const verticalClasses = 'h-screen w-64 flex flex-col';\n const positionClasses = position === 'left' \n ? 'left-0 top-0 ' + (isOpen ? 'translate-x-0' : '-translate-x-full')\n : 'right-0 top-0 ' + (isOpen ? 'translate-x-0' : 'translate-x-full');\n \n return (baseClasses) + ' ' + (verticalClasses) + ' ' + (positionClasses);\n } else {\n const horizontalClasses = 'w-full h-16 flex items-center';\n const positionClasses = position === 'top'\n ? 'top-0 left-0 right-0 ' + (isOpen ? 'translate-y-0' : '-translate-y-full')\n : 'bottom-0 left-0 right-0 ' + (isOpen ? 'translate-y-0' : 'translate-y-full');\n \n return (baseClasses) + ' ' + (horizontalClasses) + ' ' + (positionClasses);\n }\n };\n\n // 获取内容布局样式\n const getContentClasses = () => {\n if (direction === 'vertical') {\n return 'flex flex-col h-full p-4';\n } else {\n return 'flex items-center justify-between w-full px-6';\n }\n };\n\n // 获取导航项列表样式\n const getItemsListClasses = () => {\n if (direction === 'vertical') {\n return 'flex flex-col gap-2 flex-1 overflow-y-auto mt-4';\n } else {\n return 'flex items-center gap-4';\n }\n };\n\n const handleItemClick = (item: any) => {\n // 处理页面跳转\n if (item.isExternal) {\n // 外链跳转\n window.open(item.href, item.target || '_blank');\n } else if (item.href.startsWith('#')) {\n // 锚点跳转\n const element = document.getElementById(item.id);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n } else {\n // 内部页面跳转\n window.location.href = item.href;\n }\n\n // 触发回调\n onItemClick?.(item);\n };\n\n if (!isOpen) return null;\n\n return (\n <nav className={clsx(getContainerClasses(), className)}>\n <div className={getContentClasses()}>\n {/* Logo 区域 */}\n {logo && (\n <div className=\"flex items-center justify-center mb-4\">\n <img\n src={logo.src}\n alt={logo.alt || 'Logo'}\n className=\"h-8 w-auto\"\n />\n </div>\n )}\n\n {/* 顶部空间占位(为切换按钮预留) */}\n {direction === 'vertical' && (\n <div className=\"h-12 flex-shrink-0\" />\n )}\n\n {/* 导航项列表 */}\n <div className={getItemsListClasses()}>\n {items.map((item) => (\n <NavigationItem\n key={item.id}\n item={item}\n direction={direction}\n isActive={activeItemId === item.id}\n onClick={handleItemClick}\n />\n ))}\n </div>\n\n {/* 头像区域 */}\n {avatar && direction === 'vertical' && (\n <div className=\"flex items-center justify-center mt-auto pt-4\">\n <img\n src={avatar.src}\n alt={avatar.alt || 'Avatar'}\n className=\"w-10 h-10 rounded-full border-2 border-gray-200\"\n />\n </div>\n )}\n\n {/* 水平布局的头像 */}\n {avatar && direction === 'horizontal' && (\n <div className=\"flex items-center\">\n <img\n src={avatar.src}\n alt={avatar.alt || 'Avatar'}\n className=\"w-8 h-8 rounded-full border-2 border-gray-200\"\n />\n </div>\n )}\n </div>\n </nav>\n );\n};\n\nexport default Navigation;"," 'use client';\n\nimport React from 'react';\nimport { NavigationPosition } from './types';\nimport { clsx } from 'clsx';\n\ninterface NavigationToggleProps {\n isOpen: boolean;\n onClick: () => void;\n position: NavigationPosition;\n}\n\nconst NavigationToggle: React.FC<NavigationToggleProps> = ({\n isOpen,\n onClick,\n position\n}) => {\n const getPositionClasses = () => {\n switch (position) {\n case 'top':\n return 'top-4 left-4';\n case 'bottom':\n return 'bottom-4 left-4';\n case 'left':\n return 'top-4 left-4';\n case 'right':\n return 'top-4 right-4';\n default:\n return 'top-4 left-4';\n }\n };\n\n return (\n <button\n onClick={onClick}\n className={clsx(\n 'fixed',\n getPositionClasses(),\n 'z-[100] p-3 rounded-xl bg-white/90 backdrop-blur-md shadow-lg hover:shadow-xl border border-gray-200/50 transition-all duration-300 ease-in-out hover:scale-105 active:scale-95 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50'\n )}\n aria-label={isOpen ? '关闭导航栏' : '打开导航栏'}\n >\n <div className=\"w-5 h-5 flex flex-col justify-center items-center\">\n <span\n className={clsx(\n 'block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out',\n isOpen ? 'rotate-45 translate-y-0.5' : ''\n )}\n />\n <span\n className={clsx(\n 'block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1',\n isOpen ? 'opacity-0 scale-0' : 'opacity-100 scale-100'\n )}\n />\n <span\n className={clsx(\n 'block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1',\n isOpen ? '-rotate-45 -translate-y-2.5' : ''\n )}\n />\n </div>\n </button>\n );\n};\n\nexport default NavigationToggle;","'use client';\n\nimport React, { useState, useRef, useEffect, ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { clsx } from 'clsx';\n\nexport interface FloatingMenuProps {\n /**\n * 触发按钮的内容\n */\n trigger: ReactNode;\n \n /**\n * 菜单内容\n */\n menu: ReactNode;\n \n /**\n * 初始位置\n */\n initialPosition?: { x: number; y: number };\n \n /**\n * 是否默认打开菜单\n */\n defaultOpen?: boolean;\n \n /**\n * 自定义类名\n */\n className?: string;\n \n /**\n * 菜单类名\n */\n menuClassName?: string;\n \n /**\n * 触发器类名\n */\n triggerClassName?: string;\n \n /**\n * z-index\n */\n zIndex?: number;\n}\n\nconst FloatingMenu: React.FC<FloatingMenuProps> = ({\n trigger,\n menu,\n initialPosition = { x: 20, y: 20 },\n defaultOpen = false,\n className = '',\n menuClassName = '',\n triggerClassName = '',\n zIndex = 1000,\n}) => {\n const [position, setPosition] = useState(initialPosition);\n const [isMenuOpen, setIsMenuOpen] = useState(defaultOpen);\n const [menuDirection, setMenuDirection] = useState<'left' | 'right'>('right');\n const [isDragging, setIsDragging] = useState(false);\n const [dragOffset, setDragOffset] = useState({ x: 0, y: 0 });\n const containerRef = useRef<HTMLDivElement>(null);\n const [mounted, setMounted] = useState(false);\n // 添加一个标志,用于跟踪是否发生了拖动\n const [hasDragged, setHasDragged] = useState(false);\n // 添加一个计时器引用,用于区分点击和拖动\n const dragTimerRef = useRef<number | null>(null);\n // 添加一个引用,记录鼠标按下的初始位置\n const mouseDownPosRef = useRef<{ x: number, y: number } | null>(null);\n\n // 客户端挂载检查\n useEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n // 计算菜单方向\n useEffect(() => {\n if (!mounted || !containerRef.current) return;\n \n const updateMenuDirection = () => {\n const rect = containerRef.current?.getBoundingClientRect();\n if (!rect) return;\n \n const windowWidth = window.innerWidth;\n const middlePoint = windowWidth / 2;\n \n // 如果悬浮窗在屏幕左半部分,菜单向右展开;否则向左展开\n setMenuDirection(rect.left < middlePoint ? 'right' : 'left');\n };\n \n updateMenuDirection();\n \n // 监听窗口大小变化和滚动事件\n window.addEventListener('resize', updateMenuDirection);\n window.addEventListener('scroll', updateMenuDirection);\n \n return () => {\n window.removeEventListener('resize', updateMenuDirection);\n window.removeEventListener('scroll', updateMenuDirection);\n };\n }, [mounted]);\n\n // 处理拖动开始\n const handleMouseDown = (e: React.MouseEvent) => {\n if (!containerRef.current) return;\n \n // 防止触发菜单点击\n e.stopPropagation();\n \n // 记录鼠标按下的初始位置\n mouseDownPosRef.current = { x: e.clientX, y: e.clientY };\n \n const rect = containerRef.current.getBoundingClientRect();\n setDragOffset({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n });\n \n // 重置拖动标志\n setHasDragged(false);\n \n // 设置拖动状态\n setIsDragging(true);\n };\n\n // 处理拖动过程\n useEffect(() => {\n if (!isDragging) return;\n \n const handleMouseMove = (e: MouseEvent) => {\n // 检查是否移动了足够的距离来认为是拖动\n if (mouseDownPosRef.current) {\n const dx = Math.abs(e.clientX - mouseDownPosRef.current.x);\n const dy = Math.abs(e.clientY - mouseDownPosRef.current.y);\n \n // 如果移动距离超过阈值,标记为拖动\n if (dx > 3 || dy > 3) {\n setHasDragged(true);\n }\n }\n \n // 计算新位置并应用边界检查\n const newX = e.clientX - dragOffset.x;\n const newY = e.clientY - dragOffset.y;\n \n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n \n setPosition({\n x: Math.min(Math.max(newX, 0), windowWidth - 50),\n y: Math.min(Math.max(newY, 0), windowHeight - 50)\n });\n };\n \n const handleMouseUp = () => {\n setIsDragging(false);\n \n // 重置鼠标按下位置\n mouseDownPosRef.current = null;\n \n // 设置一个短暂的延时,防止拖动后立即触发点击\n if (dragTimerRef.current) {\n window.clearTimeout(dragTimerRef.current);\n }\n \n dragTimerRef.current = window.setTimeout(() => {\n setHasDragged(false);\n }, 300); // 300ms 后重置拖动状态\n };\n \n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n \n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isDragging, dragOffset]);\n\n // 清理定时器\n useEffect(() => {\n return () => {\n if (dragTimerRef.current) {\n window.clearTimeout(dragTimerRef.current);\n }\n };\n }, []);\n\n // 切换菜单开关\n const toggleMenu = (e: React.MouseEvent) => {\n e.stopPropagation();\n \n // 如果刚刚拖动过,不触发菜单切换\n if (hasDragged) {\n return;\n }\n \n setIsMenuOpen(!isMenuOpen);\n };\n\n // 关闭菜单的点击外部处理\n useEffect(() => {\n if (!isMenuOpen) return;\n \n const handleClickOutside = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsMenuOpen(false);\n }\n };\n \n document.addEventListener('mousedown', handleClickOutside);\n \n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isMenuOpen]);\n\n // 窗口大小变化时的边界检查\n useEffect(() => {\n if (!mounted) return;\n \n const checkBoundaries = () => {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n \n // 确保悬浮窗不会被拖出屏幕\n setPosition(prev => {\n const newX = Math.min(Math.max(prev.x, 0), windowWidth - 50);\n const newY = Math.min(Math.max(prev.y, 0), windowHeight - 50);\n \n // 只有在实际需要调整时才更新位置\n if (newX !== prev.x || newY !== prev.y) {\n return { x: newX, y: newY };\n }\n return prev;\n });\n };\n \n // 只在窗口大小变化时检查边界\n window.addEventListener('resize', checkBoundaries);\n \n return () => {\n window.removeEventListener('resize', checkBoundaries);\n };\n }, [mounted]);\n\n if (!mounted) return null;\n\n return createPortal(\n <div\n ref={containerRef}\n className={clsx('fixed select-none box-border', className)}\n style={{\n left: (position.x) + 'px',\n top: (position.y) + 'px',\n zIndex,\n }}\n >\n {/* 触发器按钮 */}\n <div \n className={clsx(\n 'flex items-center justify-center w-12 h-12 md:w-12 md:h-12 bg-white rounded-full shadow-md hover:shadow-lg cursor-grab active:cursor-grabbing transition-all duration-200 hover:scale-105 active:scale-95',\n triggerClassName\n )}\n onMouseDown={handleMouseDown}\n onClick={toggleMenu}\n >\n {trigger}\n </div>\n \n {/* 菜单内容 */}\n {isMenuOpen && (\n <div \n className={clsx(\n 'absolute top-0 bg-white rounded-lg shadow-xl p-3 min-w-[200px] md:min-w-[200px] max-w-[300px] z-[1000] transition-all duration-200',\n isMenuOpen ? 'opacity-100 scale-100' : 'opacity-0 scale-95',\n menuDirection === 'left' ? 'right-[calc(100%+10px)]' : 'left-[calc(100%+10px)]',\n menuClassName\n )}\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onMouseUp={(e) => e.stopPropagation()}\n onTouchStart={(e) => e.stopPropagation()}\n onTouchMove={(e) => e.stopPropagation()}\n onTouchEnd={(e) => e.stopPropagation()}\n onPointerDown={(e) => e.stopPropagation()}\n onPointerUp={(e) => e.stopPropagation()}\n >\n {menu}\n </div>\n )}\n </div>,\n document.body\n );\n};\n\nexport default FloatingMenu;","'use client';\n\nimport React, { useState, useEffect } from 'react';\nimport FloatingMenu from './FloatingMenu';\n\nexport const FloatingMenuExample: React.FC = () => {\n const [windowWidth, setWindowWidth] = useState(0);\n \n useEffect(() => {\n setWindowWidth(window.innerWidth);\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const menuItems = [\n { id: 1, label: '首页', icon: '🏠' },\n { id: 2, label: '设置', icon: '⚙️' },\n { id: 3, label: '消息', icon: '📩' },\n { id: 4, label: '帮助', icon: '❓' },\n { id: 5, label: '退出', icon: '🚪' },\n ];\n \n const handleMenuItemClick = (id: number) => {\n console.log('点击了菜单项: ' + (id));\n };\n \n return (\n <div className=\"w-full h-screen bg-gray-100 relative p-8\">\n <div className=\"max-w-2xl mx-auto bg-white rounded-2xl shadow-sm p-8 mt-12\">\n <h1 className=\"text-3xl font-bold mb-4 text-gray-900\">悬浮菜单示例</h1>\n <p className=\"text-gray-600 leading-relaxed mb-6\">\n 这是一个可拖拽的悬浮菜单组件示例。你可以尝试拖动下方的 <span className=\"font-bold text-blue-600\">蓝色按钮</span> 到处移动。\n </p>\n <div className=\"bg-blue-50 border-l-4 border-blue-500 p-4 mb-6\">\n <p className=\"text-sm text-blue-700\">\n <strong>智能定位:</strong> 菜单会根据按钮在屏幕上的位置自动调整弹出方向(向左或向右)。\n </p>\n </div>\n </div>\n \n <FloatingMenu\n trigger={\n <div className=\"w-12 h-12 bg-blue-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer\">\n <span className=\"text-xl\">➕</span>\n </div>\n }\n menu={\n <div className=\"w-48 bg-white rounded-xl shadow-xl border border-gray-100 overflow-hidden\">\n <div className=\"px-4 py-3 border-b border-gray-100\">\n <h3 className=\"text-sm font-bold text-gray-900\">快捷菜单</h3>\n </div>\n <ul className=\"py-1\">\n {menuItems.map(item => (\n <li \n key={item.id} \n className=\"flex items-center gap-3 px-4 py-2.5 hover:bg-blue-50 text-gray-700 hover:text-blue-600 cursor-pointer transition-colors text-sm\"\n onClick={() => handleMenuItemClick(item.id)}\n >\n <span className=\"text-lg\">{item.icon}</span>\n <span className=\"font-medium\">{item.label}</span>\n </li>\n ))}\n </ul>\n </div>\n }\n initialPosition={{ x: 100, y: 100 }}\n />\n \n {windowWidth > 0 && (\n <FloatingMenu\n trigger={\n <div className=\"w-12 h-12 bg-purple-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer\">\n <span className=\"text-xl\">🔍</span>\n </div>\n }\n menu={\n <div className=\"w-64 bg-white rounded-xl shadow-xl border border-gray-100 p-4\">\n <h3 className=\"text-sm font-bold text-gray-900 mb-3\">快速搜索</h3>\n <div className=\"space-y-3\">\n <input \n type=\"text\" \n placeholder=\"输入关键字...\" \n className=\"w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent outline-none\"\n />\n <button className=\"w-full bg-purple-600 text-white py-2 rounded-lg text-sm font-medium hover:bg-purple-700 transition-colors\">\n 搜索\n </button>\n </div>\n </div>\n }\n initialPosition={{ x: windowWidth - 100, y: 100 }}\n />\n )}\n </div>\n );\n};\n\nexport default FloatingMenuExample;\n\n"]}
@@ -1,443 +0,0 @@
1
- import React5, { useState, useRef, useEffect } from 'react';
2
- import { clsx } from 'clsx';
3
- import { createPortal } from 'react-dom';
4
-
5
- // src/navigation/Navigation.tsx
6
- var NavigationItemComponent = ({
7
- item,
8
- direction,
9
- isActive,
10
- onClick
11
- }) => {
12
- const handleClick = (e) => {
13
- e.preventDefault();
14
- onClick(item);
15
- };
16
- const getItemClasses = () => {
17
- const baseClasses = `
18
- group relative flex items-center gap-3
19
- transition-all duration-300 ease-in-out
20
- focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50
21
- rounded-lg
22
- `;
23
- const directionClasses = direction === "vertical" ? "px-4 py-3 w-full justify-start" : "px-3 py-2 justify-center";
24
- const stateClasses = isActive ? "bg-blue-500 text-white shadow-lg" : item.isExternal ? "text-gray-700 hover:bg-purple-50 hover:text-purple-600 border border-purple-200" : "text-gray-700 hover:bg-blue-50 hover:text-blue-600";
25
- return baseClasses + " " + directionClasses + " " + stateClasses;
26
- };
27
- return /* @__PURE__ */ React5.createElement(
28
- "a",
29
- {
30
- href: item.href,
31
- onClick: handleClick,
32
- target: item.target,
33
- rel: item.isExternal ? "noopener noreferrer" : void 0,
34
- className: getItemClasses()
35
- },
36
- item.icon && /* @__PURE__ */ React5.createElement("span", { className: "flex-shrink-0" }, item.icon),
37
- /* @__PURE__ */ React5.createElement("span", { className: clsx("font-medium", direction === "vertical" ? "text-sm" : "text-xs") }, item.label),
38
- item.isExternal && /* @__PURE__ */ React5.createElement(
39
- "svg",
40
- {
41
- className: "w-3 h-3 opacity-60 group-hover:opacity-100 transition-opacity",
42
- fill: "none",
43
- stroke: "currentColor",
44
- viewBox: "0 0 24 24"
45
- },
46
- /* @__PURE__ */ React5.createElement(
47
- "path",
48
- {
49
- strokeLinecap: "round",
50
- strokeLinejoin: "round",
51
- strokeWidth: 2,
52
- d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
53
- }
54
- )
55
- ),
56
- direction === "vertical" && isActive && /* @__PURE__ */ React5.createElement("div", { className: "absolute left-1 top-1/2 transform -translate-y-1/2 w-1 h-6 bg-white rounded-full" })
57
- );
58
- };
59
- var NavigationItem_default = NavigationItemComponent;
60
- var Navigation = ({
61
- config,
62
- isOpen,
63
- activeItemId,
64
- onItemClick,
65
- className = ""
66
- }) => {
67
- const { direction, position, items, avatar, logo } = config;
68
- const getContainerClasses = () => {
69
- const baseClasses = `
70
- fixed z-[90]
71
- bg-white/95 backdrop-blur-lg
72
- border border-gray-200/50
73
- shadow-2xl
74
- transition-all duration-500 ease-in-out
75
- `;
76
- if (direction === "vertical") {
77
- const verticalClasses = "h-screen w-64 flex flex-col";
78
- const positionClasses = position === "left" ? "left-0 top-0 " + (isOpen ? "translate-x-0" : "-translate-x-full") : "right-0 top-0 " + (isOpen ? "translate-x-0" : "translate-x-full");
79
- return baseClasses + " " + verticalClasses + " " + positionClasses;
80
- } else {
81
- const horizontalClasses = "w-full h-16 flex items-center";
82
- const positionClasses = position === "top" ? "top-0 left-0 right-0 " + (isOpen ? "translate-y-0" : "-translate-y-full") : "bottom-0 left-0 right-0 " + (isOpen ? "translate-y-0" : "translate-y-full");
83
- return baseClasses + " " + horizontalClasses + " " + positionClasses;
84
- }
85
- };
86
- const getContentClasses = () => {
87
- if (direction === "vertical") {
88
- return "flex flex-col h-full p-4";
89
- } else {
90
- return "flex items-center justify-between w-full px-6";
91
- }
92
- };
93
- const getItemsListClasses = () => {
94
- if (direction === "vertical") {
95
- return "flex flex-col gap-2 flex-1 overflow-y-auto mt-4";
96
- } else {
97
- return "flex items-center gap-4";
98
- }
99
- };
100
- const handleItemClick = (item) => {
101
- if (item.isExternal) {
102
- window.open(item.href, item.target || "_blank");
103
- } else if (item.href.startsWith("#")) {
104
- const element = document.getElementById(item.id);
105
- if (element) {
106
- element.scrollIntoView({ behavior: "smooth" });
107
- }
108
- } else {
109
- window.location.href = item.href;
110
- }
111
- onItemClick?.(item);
112
- };
113
- if (!isOpen) return null;
114
- return /* @__PURE__ */ React5.createElement("nav", { className: clsx(getContainerClasses(), className) }, /* @__PURE__ */ React5.createElement("div", { className: getContentClasses() }, logo && /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-center mb-4" }, /* @__PURE__ */ React5.createElement(
115
- "img",
116
- {
117
- src: logo.src,
118
- alt: logo.alt || "Logo",
119
- className: "h-8 w-auto"
120
- }
121
- )), direction === "vertical" && /* @__PURE__ */ React5.createElement("div", { className: "h-12 flex-shrink-0" }), /* @__PURE__ */ React5.createElement("div", { className: getItemsListClasses() }, items.map((item) => /* @__PURE__ */ React5.createElement(
122
- NavigationItem_default,
123
- {
124
- key: item.id,
125
- item,
126
- direction,
127
- isActive: activeItemId === item.id,
128
- onClick: handleItemClick
129
- }
130
- ))), avatar && direction === "vertical" && /* @__PURE__ */ React5.createElement("div", { className: "flex items-center justify-center mt-auto pt-4" }, /* @__PURE__ */ React5.createElement(
131
- "img",
132
- {
133
- src: avatar.src,
134
- alt: avatar.alt || "Avatar",
135
- className: "w-10 h-10 rounded-full border-2 border-gray-200"
136
- }
137
- )), avatar && direction === "horizontal" && /* @__PURE__ */ React5.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React5.createElement(
138
- "img",
139
- {
140
- src: avatar.src,
141
- alt: avatar.alt || "Avatar",
142
- className: "w-8 h-8 rounded-full border-2 border-gray-200"
143
- }
144
- ))));
145
- };
146
- var Navigation_default = Navigation;
147
- var NavigationToggle = ({
148
- isOpen,
149
- onClick,
150
- position
151
- }) => {
152
- const getPositionClasses = () => {
153
- switch (position) {
154
- case "top":
155
- return "top-4 left-4";
156
- case "bottom":
157
- return "bottom-4 left-4";
158
- case "left":
159
- return "top-4 left-4";
160
- case "right":
161
- return "top-4 right-4";
162
- default:
163
- return "top-4 left-4";
164
- }
165
- };
166
- return /* @__PURE__ */ React5.createElement(
167
- "button",
168
- {
169
- onClick,
170
- className: clsx(
171
- "fixed",
172
- getPositionClasses(),
173
- "z-[100] p-3 rounded-xl bg-white/90 backdrop-blur-md shadow-lg hover:shadow-xl border border-gray-200/50 transition-all duration-300 ease-in-out hover:scale-105 active:scale-95 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50"
174
- ),
175
- "aria-label": isOpen ? "\u5173\u95ED\u5BFC\u822A\u680F" : "\u6253\u5F00\u5BFC\u822A\u680F"
176
- },
177
- /* @__PURE__ */ React5.createElement("div", { className: "w-5 h-5 flex flex-col justify-center items-center" }, /* @__PURE__ */ React5.createElement(
178
- "span",
179
- {
180
- className: clsx(
181
- "block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out",
182
- isOpen ? "rotate-45 translate-y-0.5" : ""
183
- )
184
- }
185
- ), /* @__PURE__ */ React5.createElement(
186
- "span",
187
- {
188
- className: clsx(
189
- "block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1",
190
- isOpen ? "opacity-0 scale-0" : "opacity-100 scale-100"
191
- )
192
- }
193
- ), /* @__PURE__ */ React5.createElement(
194
- "span",
195
- {
196
- className: clsx(
197
- "block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1",
198
- isOpen ? "-rotate-45 -translate-y-2.5" : ""
199
- )
200
- }
201
- ))
202
- );
203
- };
204
- var NavigationToggle_default = NavigationToggle;
205
- var FloatingMenu = ({
206
- trigger,
207
- menu,
208
- initialPosition = { x: 20, y: 20 },
209
- defaultOpen = false,
210
- className = "",
211
- menuClassName = "",
212
- triggerClassName = "",
213
- zIndex = 1e3
214
- }) => {
215
- const [position, setPosition] = useState(initialPosition);
216
- const [isMenuOpen, setIsMenuOpen] = useState(defaultOpen);
217
- const [menuDirection, setMenuDirection] = useState("right");
218
- const [isDragging, setIsDragging] = useState(false);
219
- const [dragOffset, setDragOffset] = useState({ x: 0, y: 0 });
220
- const containerRef = useRef(null);
221
- const [mounted, setMounted] = useState(false);
222
- const [hasDragged, setHasDragged] = useState(false);
223
- const dragTimerRef = useRef(null);
224
- const mouseDownPosRef = useRef(null);
225
- useEffect(() => {
226
- setMounted(true);
227
- return () => setMounted(false);
228
- }, []);
229
- useEffect(() => {
230
- if (!mounted || !containerRef.current) return;
231
- const updateMenuDirection = () => {
232
- const rect = containerRef.current?.getBoundingClientRect();
233
- if (!rect) return;
234
- const windowWidth = window.innerWidth;
235
- const middlePoint = windowWidth / 2;
236
- setMenuDirection(rect.left < middlePoint ? "right" : "left");
237
- };
238
- updateMenuDirection();
239
- window.addEventListener("resize", updateMenuDirection);
240
- window.addEventListener("scroll", updateMenuDirection);
241
- return () => {
242
- window.removeEventListener("resize", updateMenuDirection);
243
- window.removeEventListener("scroll", updateMenuDirection);
244
- };
245
- }, [mounted]);
246
- const handleMouseDown = (e) => {
247
- if (!containerRef.current) return;
248
- e.stopPropagation();
249
- mouseDownPosRef.current = { x: e.clientX, y: e.clientY };
250
- const rect = containerRef.current.getBoundingClientRect();
251
- setDragOffset({
252
- x: e.clientX - rect.left,
253
- y: e.clientY - rect.top
254
- });
255
- setHasDragged(false);
256
- setIsDragging(true);
257
- };
258
- useEffect(() => {
259
- if (!isDragging) return;
260
- const handleMouseMove = (e) => {
261
- if (mouseDownPosRef.current) {
262
- const dx = Math.abs(e.clientX - mouseDownPosRef.current.x);
263
- const dy = Math.abs(e.clientY - mouseDownPosRef.current.y);
264
- if (dx > 3 || dy > 3) {
265
- setHasDragged(true);
266
- }
267
- }
268
- const newX = e.clientX - dragOffset.x;
269
- const newY = e.clientY - dragOffset.y;
270
- const windowWidth = window.innerWidth;
271
- const windowHeight = window.innerHeight;
272
- setPosition({
273
- x: Math.min(Math.max(newX, 0), windowWidth - 50),
274
- y: Math.min(Math.max(newY, 0), windowHeight - 50)
275
- });
276
- };
277
- const handleMouseUp = () => {
278
- setIsDragging(false);
279
- mouseDownPosRef.current = null;
280
- if (dragTimerRef.current) {
281
- window.clearTimeout(dragTimerRef.current);
282
- }
283
- dragTimerRef.current = window.setTimeout(() => {
284
- setHasDragged(false);
285
- }, 300);
286
- };
287
- document.addEventListener("mousemove", handleMouseMove);
288
- document.addEventListener("mouseup", handleMouseUp);
289
- return () => {
290
- document.removeEventListener("mousemove", handleMouseMove);
291
- document.removeEventListener("mouseup", handleMouseUp);
292
- };
293
- }, [isDragging, dragOffset]);
294
- useEffect(() => {
295
- return () => {
296
- if (dragTimerRef.current) {
297
- window.clearTimeout(dragTimerRef.current);
298
- }
299
- };
300
- }, []);
301
- const toggleMenu = (e) => {
302
- e.stopPropagation();
303
- if (hasDragged) {
304
- return;
305
- }
306
- setIsMenuOpen(!isMenuOpen);
307
- };
308
- useEffect(() => {
309
- if (!isMenuOpen) return;
310
- const handleClickOutside = (e) => {
311
- if (containerRef.current && !containerRef.current.contains(e.target)) {
312
- setIsMenuOpen(false);
313
- }
314
- };
315
- document.addEventListener("mousedown", handleClickOutside);
316
- return () => {
317
- document.removeEventListener("mousedown", handleClickOutside);
318
- };
319
- }, [isMenuOpen]);
320
- useEffect(() => {
321
- if (!mounted) return;
322
- const checkBoundaries = () => {
323
- const windowWidth = window.innerWidth;
324
- const windowHeight = window.innerHeight;
325
- setPosition((prev) => {
326
- const newX = Math.min(Math.max(prev.x, 0), windowWidth - 50);
327
- const newY = Math.min(Math.max(prev.y, 0), windowHeight - 50);
328
- if (newX !== prev.x || newY !== prev.y) {
329
- return { x: newX, y: newY };
330
- }
331
- return prev;
332
- });
333
- };
334
- window.addEventListener("resize", checkBoundaries);
335
- return () => {
336
- window.removeEventListener("resize", checkBoundaries);
337
- };
338
- }, [mounted]);
339
- if (!mounted) return null;
340
- return createPortal(
341
- /* @__PURE__ */ React5.createElement(
342
- "div",
343
- {
344
- ref: containerRef,
345
- className: clsx("fixed select-none box-border", className),
346
- style: {
347
- left: position.x + "px",
348
- top: position.y + "px",
349
- zIndex
350
- }
351
- },
352
- /* @__PURE__ */ React5.createElement(
353
- "div",
354
- {
355
- className: clsx(
356
- "flex items-center justify-center w-12 h-12 md:w-12 md:h-12 bg-white rounded-full shadow-md hover:shadow-lg cursor-grab active:cursor-grabbing transition-all duration-200 hover:scale-105 active:scale-95",
357
- triggerClassName
358
- ),
359
- onMouseDown: handleMouseDown,
360
- onClick: toggleMenu
361
- },
362
- trigger
363
- ),
364
- isMenuOpen && /* @__PURE__ */ React5.createElement(
365
- "div",
366
- {
367
- className: clsx(
368
- "absolute top-0 bg-white rounded-lg shadow-xl p-3 min-w-[200px] md:min-w-[200px] max-w-[300px] z-[1000] transition-all duration-200",
369
- isMenuOpen ? "opacity-100 scale-100" : "opacity-0 scale-95",
370
- menuDirection === "left" ? "right-[calc(100%+10px)]" : "left-[calc(100%+10px)]",
371
- menuClassName
372
- ),
373
- onClick: (e) => e.stopPropagation(),
374
- onMouseDown: (e) => e.stopPropagation(),
375
- onMouseUp: (e) => e.stopPropagation(),
376
- onTouchStart: (e) => e.stopPropagation(),
377
- onTouchMove: (e) => e.stopPropagation(),
378
- onTouchEnd: (e) => e.stopPropagation(),
379
- onPointerDown: (e) => e.stopPropagation(),
380
- onPointerUp: (e) => e.stopPropagation()
381
- },
382
- menu
383
- )
384
- ),
385
- document.body
386
- );
387
- };
388
- var FloatingMenu_default = FloatingMenu;
389
- var FloatingMenuExample = () => {
390
- const [windowWidth, setWindowWidth] = useState(0);
391
- useEffect(() => {
392
- setWindowWidth(window.innerWidth);
393
- const handleResize = () => setWindowWidth(window.innerWidth);
394
- window.addEventListener("resize", handleResize);
395
- return () => window.removeEventListener("resize", handleResize);
396
- }, []);
397
- const menuItems = [
398
- { id: 1, label: "\u9996\u9875", icon: "\u{1F3E0}" },
399
- { id: 2, label: "\u8BBE\u7F6E", icon: "\u2699\uFE0F" },
400
- { id: 3, label: "\u6D88\u606F", icon: "\u{1F4E9}" },
401
- { id: 4, label: "\u5E2E\u52A9", icon: "\u2753" },
402
- { id: 5, label: "\u9000\u51FA", icon: "\u{1F6AA}" }
403
- ];
404
- const handleMenuItemClick = (id) => {
405
- console.log("\u70B9\u51FB\u4E86\u83DC\u5355\u9879: " + id);
406
- };
407
- return /* @__PURE__ */ React5.createElement("div", { className: "w-full h-screen bg-gray-100 relative p-8" }, /* @__PURE__ */ React5.createElement("div", { className: "max-w-2xl mx-auto bg-white rounded-2xl shadow-sm p-8 mt-12" }, /* @__PURE__ */ React5.createElement("h1", { className: "text-3xl font-bold mb-4 text-gray-900" }, "\u60AC\u6D6E\u83DC\u5355\u793A\u4F8B"), /* @__PURE__ */ React5.createElement("p", { className: "text-gray-600 leading-relaxed mb-6" }, "\u8FD9\u662F\u4E00\u4E2A\u53EF\u62D6\u62FD\u7684\u60AC\u6D6E\u83DC\u5355\u7EC4\u4EF6\u793A\u4F8B\u3002\u4F60\u53EF\u4EE5\u5C1D\u8BD5\u62D6\u52A8\u4E0B\u65B9\u7684 ", /* @__PURE__ */ React5.createElement("span", { className: "font-bold text-blue-600" }, "\u84DD\u8272\u6309\u94AE"), " \u5230\u5904\u79FB\u52A8\u3002"), /* @__PURE__ */ React5.createElement("div", { className: "bg-blue-50 border-l-4 border-blue-500 p-4 mb-6" }, /* @__PURE__ */ React5.createElement("p", { className: "text-sm text-blue-700" }, /* @__PURE__ */ React5.createElement("strong", null, "\u667A\u80FD\u5B9A\u4F4D\uFF1A"), " \u83DC\u5355\u4F1A\u6839\u636E\u6309\u94AE\u5728\u5C4F\u5E55\u4E0A\u7684\u4F4D\u7F6E\u81EA\u52A8\u8C03\u6574\u5F39\u51FA\u65B9\u5411\uFF08\u5411\u5DE6\u6216\u5411\u53F3\uFF09\u3002"))), /* @__PURE__ */ React5.createElement(
408
- FloatingMenu_default,
409
- {
410
- trigger: /* @__PURE__ */ React5.createElement("div", { className: "w-12 h-12 bg-blue-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer" }, /* @__PURE__ */ React5.createElement("span", { className: "text-xl" }, "\u2795")),
411
- menu: /* @__PURE__ */ React5.createElement("div", { className: "w-48 bg-white rounded-xl shadow-xl border border-gray-100 overflow-hidden" }, /* @__PURE__ */ React5.createElement("div", { className: "px-4 py-3 border-b border-gray-100" }, /* @__PURE__ */ React5.createElement("h3", { className: "text-sm font-bold text-gray-900" }, "\u5FEB\u6377\u83DC\u5355")), /* @__PURE__ */ React5.createElement("ul", { className: "py-1" }, menuItems.map((item) => /* @__PURE__ */ React5.createElement(
412
- "li",
413
- {
414
- key: item.id,
415
- className: "flex items-center gap-3 px-4 py-2.5 hover:bg-blue-50 text-gray-700 hover:text-blue-600 cursor-pointer transition-colors text-sm",
416
- onClick: () => handleMenuItemClick(item.id)
417
- },
418
- /* @__PURE__ */ React5.createElement("span", { className: "text-lg" }, item.icon),
419
- /* @__PURE__ */ React5.createElement("span", { className: "font-medium" }, item.label)
420
- )))),
421
- initialPosition: { x: 100, y: 100 }
422
- }
423
- ), windowWidth > 0 && /* @__PURE__ */ React5.createElement(
424
- FloatingMenu_default,
425
- {
426
- trigger: /* @__PURE__ */ React5.createElement("div", { className: "w-12 h-12 bg-purple-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer" }, /* @__PURE__ */ React5.createElement("span", { className: "text-xl" }, "\u{1F50D}")),
427
- menu: /* @__PURE__ */ React5.createElement("div", { className: "w-64 bg-white rounded-xl shadow-xl border border-gray-100 p-4" }, /* @__PURE__ */ React5.createElement("h3", { className: "text-sm font-bold text-gray-900 mb-3" }, "\u5FEB\u901F\u641C\u7D22"), /* @__PURE__ */ React5.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React5.createElement(
428
- "input",
429
- {
430
- type: "text",
431
- placeholder: "\u8F93\u5165\u5173\u952E\u5B57...",
432
- className: "w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent outline-none"
433
- }
434
- ), /* @__PURE__ */ React5.createElement("button", { className: "w-full bg-purple-600 text-white py-2 rounded-lg text-sm font-medium hover:bg-purple-700 transition-colors" }, "\u641C\u7D22"))),
435
- initialPosition: { x: windowWidth - 100, y: 100 }
436
- }
437
- ));
438
- };
439
- var FloatingMenuExample_default = FloatingMenuExample;
440
-
441
- export { FloatingMenu_default as FloatingMenu, FloatingMenuExample_default as FloatingMenuExample, Navigation_default as Navigation, NavigationItem_default as NavigationItem, NavigationToggle_default as NavigationToggle };
442
- //# sourceMappingURL=index.mjs.map
443
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/navigation/NavigationItem.tsx","../../src/navigation/Navigation.tsx","../../src/navigation/NavigationToggle.tsx","../../src/navigation/FloatingMenu.tsx","../../src/navigation/FloatingMenuExample.tsx"],"names":["React","clsx","useState","useEffect"],"mappings":"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","file":"index.mjs","sourcesContent":[" 'use client';\n\nimport React from 'react';\nimport { NavigationItem, NavigationDirection } from './types';\nimport { clsx } from 'clsx';\n\ninterface NavigationItemProps {\n item: NavigationItem;\n direction: NavigationDirection;\n isActive?: boolean;\n onClick: (item: NavigationItem) => void;\n}\n\nconst NavigationItemComponent: React.FC<NavigationItemProps> = ({\n item,\n direction,\n isActive,\n onClick\n}) => {\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onClick(item);\n };\n\n const getItemClasses = () => {\n const baseClasses = `\n group relative flex items-center gap-3\n transition-all duration-300 ease-in-out\n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50\n rounded-lg\n `;\n\n const directionClasses = direction === 'vertical'\n ? 'px-4 py-3 w-full justify-start'\n : 'px-3 py-2 justify-center';\n\n const stateClasses = isActive\n ? 'bg-blue-500 text-white shadow-lg'\n : item.isExternal\n ? 'text-gray-700 hover:bg-purple-50 hover:text-purple-600 border border-purple-200'\n : 'text-gray-700 hover:bg-blue-50 hover:text-blue-600';\n\n return (baseClasses) + ' ' + (directionClasses) + ' ' + (stateClasses);\n };\n\n return (\n <a\n href={item.href}\n onClick={handleClick}\n target={item.target}\n rel={item.isExternal ? 'noopener noreferrer' : undefined}\n className={getItemClasses()}\n >\n {/* 图标 */}\n {item.icon && (\n <span className=\"flex-shrink-0\">\n {item.icon}\n </span>\n )}\n\n {/* 标签 */}\n <span className={clsx('font-medium', direction === 'vertical' ? 'text-sm' : 'text-xs')}>\n {item.label}\n </span>\n\n {/* 外链图标 */}\n {item.isExternal && (\n <svg\n className=\"w-3 h-3 opacity-60 group-hover:opacity-100 transition-opacity\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n )}\n\n {/* 活动状态指示器 */}\n {direction === 'vertical' && isActive && (\n <div className=\"absolute left-1 top-1/2 transform -translate-y-1/2 w-1 h-6 bg-white rounded-full\" />\n )}\n </a>\n );\n};\n\nexport default NavigationItemComponent;"," 'use client';\n\nimport React from 'react';\nimport NavigationItem from './NavigationItem';\nimport { NavigationProps } from './types';\nimport { clsx } from 'clsx';\n\nconst Navigation: React.FC<NavigationProps> = ({\n config,\n isOpen,\n activeItemId,\n onItemClick,\n className = ''\n}) => {\n const { direction, position, items, avatar, logo } = config;\n\n // 获取导航栏位置和尺寸样式\n const getContainerClasses = () => {\n const baseClasses = `\n fixed z-[90]\n bg-white/95 backdrop-blur-lg\n border border-gray-200/50\n shadow-2xl\n transition-all duration-500 ease-in-out\n `;\n\n // 根据方向和位置确定样式\n if (direction === 'vertical') {\n const verticalClasses = 'h-screen w-64 flex flex-col';\n const positionClasses = position === 'left' \n ? 'left-0 top-0 ' + (isOpen ? 'translate-x-0' : '-translate-x-full')\n : 'right-0 top-0 ' + (isOpen ? 'translate-x-0' : 'translate-x-full');\n \n return (baseClasses) + ' ' + (verticalClasses) + ' ' + (positionClasses);\n } else {\n const horizontalClasses = 'w-full h-16 flex items-center';\n const positionClasses = position === 'top'\n ? 'top-0 left-0 right-0 ' + (isOpen ? 'translate-y-0' : '-translate-y-full')\n : 'bottom-0 left-0 right-0 ' + (isOpen ? 'translate-y-0' : 'translate-y-full');\n \n return (baseClasses) + ' ' + (horizontalClasses) + ' ' + (positionClasses);\n }\n };\n\n // 获取内容布局样式\n const getContentClasses = () => {\n if (direction === 'vertical') {\n return 'flex flex-col h-full p-4';\n } else {\n return 'flex items-center justify-between w-full px-6';\n }\n };\n\n // 获取导航项列表样式\n const getItemsListClasses = () => {\n if (direction === 'vertical') {\n return 'flex flex-col gap-2 flex-1 overflow-y-auto mt-4';\n } else {\n return 'flex items-center gap-4';\n }\n };\n\n const handleItemClick = (item: any) => {\n // 处理页面跳转\n if (item.isExternal) {\n // 外链跳转\n window.open(item.href, item.target || '_blank');\n } else if (item.href.startsWith('#')) {\n // 锚点跳转\n const element = document.getElementById(item.id);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n } else {\n // 内部页面跳转\n window.location.href = item.href;\n }\n\n // 触发回调\n onItemClick?.(item);\n };\n\n if (!isOpen) return null;\n\n return (\n <nav className={clsx(getContainerClasses(), className)}>\n <div className={getContentClasses()}>\n {/* Logo 区域 */}\n {logo && (\n <div className=\"flex items-center justify-center mb-4\">\n <img\n src={logo.src}\n alt={logo.alt || 'Logo'}\n className=\"h-8 w-auto\"\n />\n </div>\n )}\n\n {/* 顶部空间占位(为切换按钮预留) */}\n {direction === 'vertical' && (\n <div className=\"h-12 flex-shrink-0\" />\n )}\n\n {/* 导航项列表 */}\n <div className={getItemsListClasses()}>\n {items.map((item) => (\n <NavigationItem\n key={item.id}\n item={item}\n direction={direction}\n isActive={activeItemId === item.id}\n onClick={handleItemClick}\n />\n ))}\n </div>\n\n {/* 头像区域 */}\n {avatar && direction === 'vertical' && (\n <div className=\"flex items-center justify-center mt-auto pt-4\">\n <img\n src={avatar.src}\n alt={avatar.alt || 'Avatar'}\n className=\"w-10 h-10 rounded-full border-2 border-gray-200\"\n />\n </div>\n )}\n\n {/* 水平布局的头像 */}\n {avatar && direction === 'horizontal' && (\n <div className=\"flex items-center\">\n <img\n src={avatar.src}\n alt={avatar.alt || 'Avatar'}\n className=\"w-8 h-8 rounded-full border-2 border-gray-200\"\n />\n </div>\n )}\n </div>\n </nav>\n );\n};\n\nexport default Navigation;"," 'use client';\n\nimport React from 'react';\nimport { NavigationPosition } from './types';\nimport { clsx } from 'clsx';\n\ninterface NavigationToggleProps {\n isOpen: boolean;\n onClick: () => void;\n position: NavigationPosition;\n}\n\nconst NavigationToggle: React.FC<NavigationToggleProps> = ({\n isOpen,\n onClick,\n position\n}) => {\n const getPositionClasses = () => {\n switch (position) {\n case 'top':\n return 'top-4 left-4';\n case 'bottom':\n return 'bottom-4 left-4';\n case 'left':\n return 'top-4 left-4';\n case 'right':\n return 'top-4 right-4';\n default:\n return 'top-4 left-4';\n }\n };\n\n return (\n <button\n onClick={onClick}\n className={clsx(\n 'fixed',\n getPositionClasses(),\n 'z-[100] p-3 rounded-xl bg-white/90 backdrop-blur-md shadow-lg hover:shadow-xl border border-gray-200/50 transition-all duration-300 ease-in-out hover:scale-105 active:scale-95 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50'\n )}\n aria-label={isOpen ? '关闭导航栏' : '打开导航栏'}\n >\n <div className=\"w-5 h-5 flex flex-col justify-center items-center\">\n <span\n className={clsx(\n 'block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out',\n isOpen ? 'rotate-45 translate-y-0.5' : ''\n )}\n />\n <span\n className={clsx(\n 'block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1',\n isOpen ? 'opacity-0 scale-0' : 'opacity-100 scale-100'\n )}\n />\n <span\n className={clsx(\n 'block w-5 h-0.5 bg-gray-600 rounded-full transform transition-all duration-300 ease-in-out mt-1',\n isOpen ? '-rotate-45 -translate-y-2.5' : ''\n )}\n />\n </div>\n </button>\n );\n};\n\nexport default NavigationToggle;","'use client';\n\nimport React, { useState, useRef, useEffect, ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { clsx } from 'clsx';\n\nexport interface FloatingMenuProps {\n /**\n * 触发按钮的内容\n */\n trigger: ReactNode;\n \n /**\n * 菜单内容\n */\n menu: ReactNode;\n \n /**\n * 初始位置\n */\n initialPosition?: { x: number; y: number };\n \n /**\n * 是否默认打开菜单\n */\n defaultOpen?: boolean;\n \n /**\n * 自定义类名\n */\n className?: string;\n \n /**\n * 菜单类名\n */\n menuClassName?: string;\n \n /**\n * 触发器类名\n */\n triggerClassName?: string;\n \n /**\n * z-index\n */\n zIndex?: number;\n}\n\nconst FloatingMenu: React.FC<FloatingMenuProps> = ({\n trigger,\n menu,\n initialPosition = { x: 20, y: 20 },\n defaultOpen = false,\n className = '',\n menuClassName = '',\n triggerClassName = '',\n zIndex = 1000,\n}) => {\n const [position, setPosition] = useState(initialPosition);\n const [isMenuOpen, setIsMenuOpen] = useState(defaultOpen);\n const [menuDirection, setMenuDirection] = useState<'left' | 'right'>('right');\n const [isDragging, setIsDragging] = useState(false);\n const [dragOffset, setDragOffset] = useState({ x: 0, y: 0 });\n const containerRef = useRef<HTMLDivElement>(null);\n const [mounted, setMounted] = useState(false);\n // 添加一个标志,用于跟踪是否发生了拖动\n const [hasDragged, setHasDragged] = useState(false);\n // 添加一个计时器引用,用于区分点击和拖动\n const dragTimerRef = useRef<number | null>(null);\n // 添加一个引用,记录鼠标按下的初始位置\n const mouseDownPosRef = useRef<{ x: number, y: number } | null>(null);\n\n // 客户端挂载检查\n useEffect(() => {\n setMounted(true);\n return () => setMounted(false);\n }, []);\n\n // 计算菜单方向\n useEffect(() => {\n if (!mounted || !containerRef.current) return;\n \n const updateMenuDirection = () => {\n const rect = containerRef.current?.getBoundingClientRect();\n if (!rect) return;\n \n const windowWidth = window.innerWidth;\n const middlePoint = windowWidth / 2;\n \n // 如果悬浮窗在屏幕左半部分,菜单向右展开;否则向左展开\n setMenuDirection(rect.left < middlePoint ? 'right' : 'left');\n };\n \n updateMenuDirection();\n \n // 监听窗口大小变化和滚动事件\n window.addEventListener('resize', updateMenuDirection);\n window.addEventListener('scroll', updateMenuDirection);\n \n return () => {\n window.removeEventListener('resize', updateMenuDirection);\n window.removeEventListener('scroll', updateMenuDirection);\n };\n }, [mounted]);\n\n // 处理拖动开始\n const handleMouseDown = (e: React.MouseEvent) => {\n if (!containerRef.current) return;\n \n // 防止触发菜单点击\n e.stopPropagation();\n \n // 记录鼠标按下的初始位置\n mouseDownPosRef.current = { x: e.clientX, y: e.clientY };\n \n const rect = containerRef.current.getBoundingClientRect();\n setDragOffset({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n });\n \n // 重置拖动标志\n setHasDragged(false);\n \n // 设置拖动状态\n setIsDragging(true);\n };\n\n // 处理拖动过程\n useEffect(() => {\n if (!isDragging) return;\n \n const handleMouseMove = (e: MouseEvent) => {\n // 检查是否移动了足够的距离来认为是拖动\n if (mouseDownPosRef.current) {\n const dx = Math.abs(e.clientX - mouseDownPosRef.current.x);\n const dy = Math.abs(e.clientY - mouseDownPosRef.current.y);\n \n // 如果移动距离超过阈值,标记为拖动\n if (dx > 3 || dy > 3) {\n setHasDragged(true);\n }\n }\n \n // 计算新位置并应用边界检查\n const newX = e.clientX - dragOffset.x;\n const newY = e.clientY - dragOffset.y;\n \n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n \n setPosition({\n x: Math.min(Math.max(newX, 0), windowWidth - 50),\n y: Math.min(Math.max(newY, 0), windowHeight - 50)\n });\n };\n \n const handleMouseUp = () => {\n setIsDragging(false);\n \n // 重置鼠标按下位置\n mouseDownPosRef.current = null;\n \n // 设置一个短暂的延时,防止拖动后立即触发点击\n if (dragTimerRef.current) {\n window.clearTimeout(dragTimerRef.current);\n }\n \n dragTimerRef.current = window.setTimeout(() => {\n setHasDragged(false);\n }, 300); // 300ms 后重置拖动状态\n };\n \n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n \n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isDragging, dragOffset]);\n\n // 清理定时器\n useEffect(() => {\n return () => {\n if (dragTimerRef.current) {\n window.clearTimeout(dragTimerRef.current);\n }\n };\n }, []);\n\n // 切换菜单开关\n const toggleMenu = (e: React.MouseEvent) => {\n e.stopPropagation();\n \n // 如果刚刚拖动过,不触发菜单切换\n if (hasDragged) {\n return;\n }\n \n setIsMenuOpen(!isMenuOpen);\n };\n\n // 关闭菜单的点击外部处理\n useEffect(() => {\n if (!isMenuOpen) return;\n \n const handleClickOutside = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setIsMenuOpen(false);\n }\n };\n \n document.addEventListener('mousedown', handleClickOutside);\n \n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isMenuOpen]);\n\n // 窗口大小变化时的边界检查\n useEffect(() => {\n if (!mounted) return;\n \n const checkBoundaries = () => {\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n \n // 确保悬浮窗不会被拖出屏幕\n setPosition(prev => {\n const newX = Math.min(Math.max(prev.x, 0), windowWidth - 50);\n const newY = Math.min(Math.max(prev.y, 0), windowHeight - 50);\n \n // 只有在实际需要调整时才更新位置\n if (newX !== prev.x || newY !== prev.y) {\n return { x: newX, y: newY };\n }\n return prev;\n });\n };\n \n // 只在窗口大小变化时检查边界\n window.addEventListener('resize', checkBoundaries);\n \n return () => {\n window.removeEventListener('resize', checkBoundaries);\n };\n }, [mounted]);\n\n if (!mounted) return null;\n\n return createPortal(\n <div\n ref={containerRef}\n className={clsx('fixed select-none box-border', className)}\n style={{\n left: (position.x) + 'px',\n top: (position.y) + 'px',\n zIndex,\n }}\n >\n {/* 触发器按钮 */}\n <div \n className={clsx(\n 'flex items-center justify-center w-12 h-12 md:w-12 md:h-12 bg-white rounded-full shadow-md hover:shadow-lg cursor-grab active:cursor-grabbing transition-all duration-200 hover:scale-105 active:scale-95',\n triggerClassName\n )}\n onMouseDown={handleMouseDown}\n onClick={toggleMenu}\n >\n {trigger}\n </div>\n \n {/* 菜单内容 */}\n {isMenuOpen && (\n <div \n className={clsx(\n 'absolute top-0 bg-white rounded-lg shadow-xl p-3 min-w-[200px] md:min-w-[200px] max-w-[300px] z-[1000] transition-all duration-200',\n isMenuOpen ? 'opacity-100 scale-100' : 'opacity-0 scale-95',\n menuDirection === 'left' ? 'right-[calc(100%+10px)]' : 'left-[calc(100%+10px)]',\n menuClassName\n )}\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onMouseUp={(e) => e.stopPropagation()}\n onTouchStart={(e) => e.stopPropagation()}\n onTouchMove={(e) => e.stopPropagation()}\n onTouchEnd={(e) => e.stopPropagation()}\n onPointerDown={(e) => e.stopPropagation()}\n onPointerUp={(e) => e.stopPropagation()}\n >\n {menu}\n </div>\n )}\n </div>,\n document.body\n );\n};\n\nexport default FloatingMenu;","'use client';\n\nimport React, { useState, useEffect } from 'react';\nimport FloatingMenu from './FloatingMenu';\n\nexport const FloatingMenuExample: React.FC = () => {\n const [windowWidth, setWindowWidth] = useState(0);\n \n useEffect(() => {\n setWindowWidth(window.innerWidth);\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const menuItems = [\n { id: 1, label: '首页', icon: '🏠' },\n { id: 2, label: '设置', icon: '⚙️' },\n { id: 3, label: '消息', icon: '📩' },\n { id: 4, label: '帮助', icon: '❓' },\n { id: 5, label: '退出', icon: '🚪' },\n ];\n \n const handleMenuItemClick = (id: number) => {\n console.log('点击了菜单项: ' + (id));\n };\n \n return (\n <div className=\"w-full h-screen bg-gray-100 relative p-8\">\n <div className=\"max-w-2xl mx-auto bg-white rounded-2xl shadow-sm p-8 mt-12\">\n <h1 className=\"text-3xl font-bold mb-4 text-gray-900\">悬浮菜单示例</h1>\n <p className=\"text-gray-600 leading-relaxed mb-6\">\n 这是一个可拖拽的悬浮菜单组件示例。你可以尝试拖动下方的 <span className=\"font-bold text-blue-600\">蓝色按钮</span> 到处移动。\n </p>\n <div className=\"bg-blue-50 border-l-4 border-blue-500 p-4 mb-6\">\n <p className=\"text-sm text-blue-700\">\n <strong>智能定位:</strong> 菜单会根据按钮在屏幕上的位置自动调整弹出方向(向左或向右)。\n </p>\n </div>\n </div>\n \n <FloatingMenu\n trigger={\n <div className=\"w-12 h-12 bg-blue-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer\">\n <span className=\"text-xl\">➕</span>\n </div>\n }\n menu={\n <div className=\"w-48 bg-white rounded-xl shadow-xl border border-gray-100 overflow-hidden\">\n <div className=\"px-4 py-3 border-b border-gray-100\">\n <h3 className=\"text-sm font-bold text-gray-900\">快捷菜单</h3>\n </div>\n <ul className=\"py-1\">\n {menuItems.map(item => (\n <li \n key={item.id} \n className=\"flex items-center gap-3 px-4 py-2.5 hover:bg-blue-50 text-gray-700 hover:text-blue-600 cursor-pointer transition-colors text-sm\"\n onClick={() => handleMenuItemClick(item.id)}\n >\n <span className=\"text-lg\">{item.icon}</span>\n <span className=\"font-medium\">{item.label}</span>\n </li>\n ))}\n </ul>\n </div>\n }\n initialPosition={{ x: 100, y: 100 }}\n />\n \n {windowWidth > 0 && (\n <FloatingMenu\n trigger={\n <div className=\"w-12 h-12 bg-purple-600 rounded-full flex items-center justify-center text-white shadow-lg cursor-pointer\">\n <span className=\"text-xl\">🔍</span>\n </div>\n }\n menu={\n <div className=\"w-64 bg-white rounded-xl shadow-xl border border-gray-100 p-4\">\n <h3 className=\"text-sm font-bold text-gray-900 mb-3\">快速搜索</h3>\n <div className=\"space-y-3\">\n <input \n type=\"text\" \n placeholder=\"输入关键字...\" \n className=\"w-full px-3 py-2 text-sm border border-gray-200 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent outline-none\"\n />\n <button className=\"w-full bg-purple-600 text-white py-2 rounded-lg text-sm font-medium hover:bg-purple-700 transition-colors\">\n 搜索\n </button>\n </div>\n </div>\n }\n initialPosition={{ x: windowWidth - 100, y: 100 }}\n />\n )}\n </div>\n );\n};\n\nexport default FloatingMenuExample;\n\n"]}