wrong-notebook 2026.10.22-4 → 2026.10.23

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 (688) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +0 -1
  3. package/.next/build-manifest.json +8 -8
  4. package/.next/prerender-manifest.json +4 -4
  5. package/.next/routes-manifest.json +0 -8
  6. package/.next/server/app/_global-error/page/build-manifest.json +5 -5
  7. package/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +8 -8
  12. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +7 -7
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/build-manifest.json +5 -5
  16. package/.next/server/app/_not-found/page.js +2 -2
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/admin/page/build-manifest.json +5 -5
  20. package/.next/server/app/admin/page.js +2 -2
  21. package/.next/server/app/admin/page.js.nft.json +1 -1
  22. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/admin/user/[id]/page/build-manifest.json +5 -5
  24. package/.next/server/app/admin/user/[id]/page.js +2 -2
  25. package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
  26. package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/admin/dashboard/route.js +10 -4
  28. package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
  29. package/.next/server/app/api/admin/migrate-tags/route.js +3 -3
  30. package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
  31. package/.next/server/app/api/admin/system-reset/route.js +4 -4
  32. package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
  33. package/.next/server/app/api/admin/users/[id]/detail/route.js +11 -4
  34. package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
  35. package/.next/server/app/api/admin/users/[id]/route.js +3 -3
  36. package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  37. package/.next/server/app/api/admin/users/route.js +3 -3
  38. package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  39. package/.next/server/app/api/ai/models/route.js +7 -7
  40. package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
  41. package/.next/server/app/api/ai/test/route.js +8 -8
  42. package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
  43. package/.next/server/app/api/analytics/route.js +5 -5
  44. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  45. package/.next/server/app/api/analyze/route.js +9 -9
  46. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  47. package/.next/server/app/api/auth/[...nextauth]/route.js +3 -3
  48. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/error-items/[id]/delete/route.js +4 -4
  50. package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
  51. package/.next/server/app/api/error-items/[id]/figure/route.js +8 -8
  52. package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
  53. package/.next/server/app/api/error-items/[id]/fix-latex/route.js +9 -9
  54. package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
  55. package/.next/server/app/api/error-items/[id]/geogebra/route.js +7 -7
  56. package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
  57. package/.next/server/app/api/error-items/[id]/image/route.js +4 -4
  58. package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
  59. package/.next/server/app/api/error-items/[id]/notes/route.js +4 -4
  60. package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
  61. package/.next/server/app/api/error-items/[id]/practice-records/route.js +4 -4
  62. package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
  63. package/.next/server/app/api/error-items/[id]/reanswer/route.js +10 -10
  64. package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
  65. package/.next/server/app/api/error-items/[id]/retag/route.js +8 -8
  66. package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
  67. package/.next/server/app/api/error-items/[id]/route.js +1 -1
  68. package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
  69. package/.next/server/app/api/error-items/[id]/svg-animation/route.js +10 -10
  70. package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
  71. package/.next/server/app/api/error-items/batch-delete/route.js +4 -4
  72. package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
  73. package/.next/server/app/api/error-items/clear/route.js +4 -4
  74. package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
  75. package/.next/server/app/api/error-items/list/route.js +6 -6
  76. package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
  77. package/.next/server/app/api/error-items/route.js +10 -10
  78. package/.next/server/app/api/error-items/route.js.nft.json +1 -1
  79. package/.next/server/app/api/error-items/short/[shortId]/route.js +3 -3
  80. package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
  81. package/.next/server/app/api/error-items/similarity/route.js +4 -4
  82. package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
  83. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +9 -9
  84. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
  85. package/.next/server/app/api/exams/[id]/results/route.js +7 -7
  86. package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
  87. package/.next/server/app/api/exams/[id]/retry/route.js +9 -9
  88. package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
  89. package/.next/server/app/api/exams/[id]/route.js +7 -7
  90. package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
  91. package/.next/server/app/api/exams/route.js +9 -9
  92. package/.next/server/app/api/exams/route.js.nft.json +1 -1
  93. package/.next/server/app/api/export/route.js +4 -4
  94. package/.next/server/app/api/export/route.js.nft.json +1 -1
  95. package/.next/server/app/api/geogebra-analyze/route.js +7 -7
  96. package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
  97. package/.next/server/app/api/health/route.js +2 -2
  98. package/.next/server/app/api/health/route.js.nft.json +1 -1
  99. package/.next/server/app/api/import/route.js +9 -9
  100. package/.next/server/app/api/import/route.js.nft.json +1 -1
  101. package/.next/server/app/api/logs/frontend/route.js +4 -4
  102. package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
  103. package/.next/server/app/api/notebooks/[id]/retag/route.js +5 -5
  104. package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
  105. package/.next/server/app/api/notebooks/[id]/route.js +4 -4
  106. package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
  107. package/.next/server/app/api/notebooks/route.js +3 -3
  108. package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
  109. package/.next/server/app/api/openclaw/batch-upload/route.js +9 -9
  110. package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
  111. package/.next/server/app/api/practice/generate/route.js +7 -7
  112. package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
  113. package/.next/server/app/api/practice/record/[id]/route.js +7 -7
  114. package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
  115. package/.next/server/app/api/practice/record/route.js +9 -9
  116. package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
  117. package/.next/server/app/api/reanswer/route.js +9 -9
  118. package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
  119. package/.next/server/app/api/register/route.js.nft.json +1 -1
  120. package/.next/server/app/api/register/status/route.js +2 -2
  121. package/.next/server/app/api/register/status/route.js.nft.json +1 -1
  122. package/.next/server/app/api/settings/route.js +5 -5
  123. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  124. package/.next/server/app/api/stats/practice/clear/route.js +4 -4
  125. package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
  126. package/.next/server/app/api/stats/practice/route.js +3 -3
  127. package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
  128. package/.next/server/app/api/tags/route.js +4 -4
  129. package/.next/server/app/api/tags/route.js.nft.json +1 -1
  130. package/.next/server/app/api/tags/stats/route.js +4 -4
  131. package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
  132. package/.next/server/app/api/tags/suggestions/route.js +3 -3
  133. package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
  134. package/.next/server/app/api/tasks/route.js +4 -4
  135. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  136. package/.next/server/app/api/user/route.js +4 -4
  137. package/.next/server/app/api/user/route.js.nft.json +1 -1
  138. package/.next/server/app/api/version/route.js +2 -2
  139. package/.next/server/app/api/version/route.js.nft.json +1 -1
  140. package/.next/server/app/error-items/[id]/page/build-manifest.json +5 -5
  141. package/.next/server/app/error-items/[id]/page.js +2 -2
  142. package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
  143. package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
  144. package/.next/server/app/exams/[id]/page/build-manifest.json +5 -5
  145. package/.next/server/app/exams/[id]/page.js +2 -2
  146. package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
  147. package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
  148. package/.next/server/app/exams/[id]/print/page/build-manifest.json +5 -5
  149. package/.next/server/app/exams/[id]/print/page.js +2 -2
  150. package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
  151. package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/exams/page/build-manifest.json +5 -5
  153. package/.next/server/app/exams/page.js +2 -2
  154. package/.next/server/app/exams/page.js.nft.json +1 -1
  155. package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/favicon.ico/route.js +2 -2
  157. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  158. package/.next/server/app/latex-test/page/build-manifest.json +5 -5
  159. package/.next/server/app/latex-test/page.js +2 -2
  160. package/.next/server/app/latex-test/page.js.nft.json +1 -1
  161. package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/login/page/build-manifest.json +5 -5
  163. package/.next/server/app/login/page.js +2 -2
  164. package/.next/server/app/login/page.js.nft.json +1 -1
  165. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  167. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  168. package/.next/server/app/notebooks/[id]/add/page/build-manifest.json +5 -5
  169. package/.next/server/app/notebooks/[id]/add/page.js +2 -2
  170. package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
  171. package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
  172. package/.next/server/app/notebooks/[id]/page/build-manifest.json +5 -5
  173. package/.next/server/app/notebooks/[id]/page.js +2 -2
  174. package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
  175. package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app/notebooks/page/build-manifest.json +5 -5
  177. package/.next/server/app/notebooks/page.js +2 -2
  178. package/.next/server/app/notebooks/page.js.nft.json +1 -1
  179. package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
  180. package/.next/server/app/page/build-manifest.json +5 -5
  181. package/.next/server/app/page.js +2 -2
  182. package/.next/server/app/page.js.nft.json +1 -1
  183. package/.next/server/app/page_client-reference-manifest.js +1 -1
  184. package/.next/server/app/practice/page/build-manifest.json +5 -5
  185. package/.next/server/app/practice/page.js +2 -2
  186. package/.next/server/app/practice/page.js.nft.json +1 -1
  187. package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
  188. package/.next/server/app/print-preview/page/build-manifest.json +5 -5
  189. package/.next/server/app/print-preview/page.js +2 -2
  190. package/.next/server/app/print-preview/page.js.nft.json +1 -1
  191. package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
  192. package/.next/server/app/register/page/build-manifest.json +5 -5
  193. package/.next/server/app/register/page.js.nft.json +1 -1
  194. package/.next/server/app/register/page_client-reference-manifest.js +1 -1
  195. package/.next/server/app/stats/page/build-manifest.json +5 -5
  196. package/.next/server/app/stats/page.js +2 -2
  197. package/.next/server/app/stats/page.js.nft.json +1 -1
  198. package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  199. package/.next/server/app/tags/page/build-manifest.json +5 -5
  200. package/.next/server/app/tags/page.js +2 -2
  201. package/.next/server/app/tags/page.js.nft.json +1 -1
  202. package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
  203. package/.next/server/app-paths-manifest.json +0 -1
  204. package/.next/server/chunks/1jng_app_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3.js +1 -1
  205. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1.js +1 -1
  206. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3.js +1 -1
  207. package/.next/server/chunks/[externals]__04n7qbr._.js +1 -1
  208. package/.next/server/chunks/[externals]__0jzwjtl._.js +3 -0
  209. package/.next/server/chunks/[externals]__0pot68n._.js +1 -1
  210. package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__0-2l_pu._.js +3 -0
  212. package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +6 -6
  213. package/.next/server/chunks/[root-of-the-server]__00moo9h._.js +3 -0
  214. package/.next/server/chunks/[root-of-the-server]__012xcq-._.js +3 -0
  215. package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
  216. package/.next/server/chunks/[root-of-the-server]__02pqrw_._.js +3 -0
  217. package/.next/server/chunks/[root-of-the-server]__033ri9p._.js +3 -0
  218. package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +3 -0
  219. package/.next/server/chunks/[root-of-the-server]__064krqp._.js +3 -0
  220. package/.next/server/chunks/[root-of-the-server]__07iraov._.js +3 -0
  221. package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
  222. package/.next/server/chunks/[root-of-the-server]__07q7nsp._.js +3 -0
  223. package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +1 -1
  224. package/.next/server/chunks/[root-of-the-server]__0_unb90._.js +3 -0
  225. package/.next/server/chunks/[root-of-the-server]__0a1zwxf._.js +3 -0
  226. package/.next/server/chunks/[root-of-the-server]__0aefi10._.js +3 -0
  227. package/.next/server/chunks/[root-of-the-server]__0akadps._.js +1 -1
  228. package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +3 -0
  229. package/.next/server/chunks/[root-of-the-server]__0d-37yj._.js +3 -0
  230. package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +3 -0
  231. package/.next/server/chunks/[root-of-the-server]__0dqgi36._.js +3 -0
  232. package/.next/server/chunks/[root-of-the-server]__0dz5c04._.js +3 -0
  233. package/.next/server/chunks/[root-of-the-server]__0e_u82_._.js +3 -0
  234. package/.next/server/chunks/[root-of-the-server]__0f3jyg0._.js +3 -0
  235. package/.next/server/chunks/[root-of-the-server]__0gwwa9b._.js +3 -0
  236. package/.next/server/chunks/[root-of-the-server]__0hars8c._.js +3 -0
  237. package/.next/server/chunks/[root-of-the-server]__0iozebm._.js +3 -0
  238. package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +3 -0
  239. package/.next/server/chunks/[root-of-the-server]__0k3mm05._.js +3 -0
  240. package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +3 -0
  241. package/.next/server/chunks/[root-of-the-server]__0lggrcf._.js +3 -0
  242. package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +3 -0
  243. package/.next/server/chunks/[root-of-the-server]__0m37xyb._.js +3 -0
  244. package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
  245. package/.next/server/chunks/[root-of-the-server]__0pa47kn._.js +3 -0
  246. package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +3 -0
  247. package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +3 -0
  248. package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +3 -3
  249. package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +3 -0
  250. package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +3 -0
  251. package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +3 -0
  252. package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +3 -0
  253. package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +3 -0
  254. package/.next/server/chunks/[root-of-the-server]__0w58v6b._.js +3 -0
  255. package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +3 -0
  256. package/.next/server/chunks/[root-of-the-server]__0wsj4a_._.js +3 -0
  257. package/.next/server/chunks/[root-of-the-server]__0wvvsah._.js +3 -0
  258. package/.next/server/chunks/[root-of-the-server]__0xg5h56._.js +3 -0
  259. package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +3 -0
  260. package/.next/server/chunks/[root-of-the-server]__10hs-qn._.js +3 -0
  261. package/.next/server/chunks/[root-of-the-server]__119xork._.js +3 -0
  262. package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
  263. package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +3 -0
  264. package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +9 -9
  265. package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +1 -1
  266. package/.next/server/chunks/[root-of-the-server]__15y1l96._.js +3 -0
  267. package/.next/server/chunks/[root-of-the-server]__16hnc6-._.js +3 -0
  268. package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +3 -0
  269. package/.next/server/chunks/[root-of-the-server]__19_wn9u._.js +3 -0
  270. package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +1 -1
  271. package/.next/server/chunks/[root-of-the-server]__1_hp3ol._.js +3 -0
  272. package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +3 -0
  273. package/.next/server/chunks/[root-of-the-server]__1a4-26x._.js +3 -0
  274. package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +3 -0
  275. package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +3 -0
  276. package/.next/server/chunks/[root-of-the-server]__1bl7t8i._.js +3 -0
  277. package/.next/server/chunks/[root-of-the-server]__1c0vatt._.js +3 -0
  278. package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +3 -0
  279. package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +3 -0
  280. package/.next/server/chunks/[root-of-the-server]__1cngnud._.js +3 -0
  281. package/.next/server/chunks/[root-of-the-server]__1d82zkk._.js +3 -0
  282. package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +3 -0
  283. package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +122 -0
  284. package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +3 -0
  285. package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +3 -0
  286. package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +3 -0
  287. package/.next/server/chunks/[root-of-the-server]__1i40psm._.js +3 -0
  288. package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +3 -0
  289. package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +3 -0
  290. package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +2 -2
  291. package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
  292. package/.next/server/chunks/[root-of-the-server]__1lbcdia._.js +3 -0
  293. package/.next/server/chunks/[root-of-the-server]__1m86czr._.js +3 -0
  294. package/.next/server/chunks/[root-of-the-server]__1mnpqkx._.js +3 -0
  295. package/.next/server/chunks/[root-of-the-server]__1n4b6nb._.js +3 -0
  296. package/.next/server/chunks/[root-of-the-server]__1nmrlew._.js +3 -0
  297. package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +1 -1
  298. package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +3 -0
  299. package/.next/server/chunks/[root-of-the-server]__1q7yl7l._.js +3 -0
  300. package/.next/server/chunks/[root-of-the-server]__1qv60vg._.js +3 -0
  301. package/.next/server/chunks/[root-of-the-server]__1ry8uat._.js +3 -0
  302. package/.next/server/chunks/[root-of-the-server]__1s2rww3._.js +3 -0
  303. package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +3 -0
  304. package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +3 -0
  305. package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +3 -0
  306. package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +9 -9
  307. package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +3 -0
  308. package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +3 -0
  309. package/.next/server/chunks/_0-eguqv._.js +1 -1
  310. package/.next/server/chunks/_008zx49._.js +1 -1
  311. package/.next/server/chunks/_011-ll5._.js +1 -1
  312. package/.next/server/chunks/_0389uce._.js +1 -1
  313. package/.next/server/chunks/_0431fxn._.js +1 -1
  314. package/.next/server/chunks/_0ekrwj-._.js +6 -6
  315. package/.next/server/chunks/_0gwg6ba._.js +1 -1
  316. package/.next/server/chunks/_0gxi3zr._.js +1 -1
  317. package/.next/server/chunks/_0lz3t4l._.js +2 -2
  318. package/.next/server/chunks/_0n36ev0._.js +3 -0
  319. package/.next/server/chunks/_0oc8oe4._.js +3 -0
  320. package/.next/server/chunks/_0rjzgi0._.js +3 -0
  321. package/.next/server/chunks/_0uxp3uh._.js +1 -1
  322. package/.next/server/chunks/_0x3ltk0._.js +6 -6
  323. package/.next/server/chunks/_10y361h._.js +3 -0
  324. package/.next/server/chunks/_12w5k19._.js +1 -1
  325. package/.next/server/chunks/_13ffmxv._.js +1 -1
  326. package/.next/server/chunks/_14tz_k9._.js +1 -1
  327. package/.next/server/chunks/_15neond._.js +11 -0
  328. package/.next/server/chunks/_16jdov0._.js +1 -1
  329. package/.next/server/chunks/_18amra5._.js +1 -1
  330. package/.next/server/chunks/_1_ns7o3._.js +1 -1
  331. package/.next/server/chunks/_1a1aqmi._.js +1 -1
  332. package/.next/server/chunks/_1a1udq0._.js +1 -1
  333. package/.next/server/chunks/_1b0269x._.js +1 -1
  334. package/.next/server/chunks/_1b7qjlv._.js +1 -1
  335. package/.next/server/chunks/_1be-y66._.js +1 -1
  336. package/.next/server/chunks/_1ex6ovo._.js +1 -1
  337. package/.next/server/chunks/_1fgb9ve._.js +1 -1
  338. package/.next/server/chunks/_1m-yyz-._.js +1 -1
  339. package/.next/server/chunks/_1n1xsqj._.js +3 -0
  340. package/.next/server/chunks/_1oj6gy_._.js +1 -1
  341. package/.next/server/chunks/_1pvqo-q._.js +1 -1
  342. package/.next/server/chunks/_1z_ujac._.js +1 -1
  343. package/.next/server/chunks/_211va-d._.js +1 -1
  344. package/.next/server/chunks/_2194yr7._.js +11 -0
  345. package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.js +1 -1
  346. package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_detail_route_actions_0oe_wkt.js +1 -1
  347. package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1.js +1 -1
  348. package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-.js +1 -1
  349. package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8.js +1 -1
  350. package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17.js +1 -1
  351. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +1 -1
  352. package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdk.js +1 -1
  353. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_figure_route_actions_0adlts0.js +1 -1
  354. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhx.js +1 -1
  355. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uv.js +1 -1
  356. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5yl.js +1 -1
  357. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2.js +1 -1
  358. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4n.js +1 -1
  359. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4ux.js +1 -1
  360. package/.next/server/chunks/_next-internal_server_app_api_error-items_batch-delete_route_actions_0hiq_1k.js +1 -1
  361. package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-.js +1 -1
  362. package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue.js +1 -1
  363. package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0p.js +1 -1
  364. package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9.js +1 -1
  365. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f.js +1 -1
  366. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq.js +1 -1
  367. package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtj.js +1 -1
  368. package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc.js +1 -1
  369. package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_c.js +1 -1
  370. package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +1 -1
  371. package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04x.js +1 -1
  372. package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxepty.js +1 -1
  373. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t8.js +1 -1
  374. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxg.js +1 -1
  375. package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r.js +1 -1
  376. package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oen.js +1 -1
  377. package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_.js +1 -1
  378. package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiom.js +1 -1
  379. package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__.js +1 -1
  380. package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_.js +1 -1
  381. package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c.js +1 -1
  382. package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sj.js +1 -1
  383. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +1 -1
  384. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0.js +1 -1
  385. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-.js +1 -1
  386. package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2.js +1 -1
  387. package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc.js +1 -1
  388. package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyv.js +1 -1
  389. package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_.js +1 -1
  390. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +1 -1
  391. package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz0.js +1 -1
  392. package/.next/server/chunks/node_modules_next_1zdbrne._.js +1 -1
  393. package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +3 -3
  394. package/.next/server/chunks/src_0tzpy5j._.js +1 -1
  395. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +1 -1
  396. package/.next/server/chunks/src_lib_date-time_ts_14chb27._.js +1 -1
  397. package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-._.js +1 -1
  398. package/.next/server/chunks/ssr/[externals]_fs_0pplqgc._.js +1 -1
  399. package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +3 -3
  400. package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +3 -0
  401. package/.next/server/chunks/ssr/[root-of-the-server]__05f8wbh._.js +1 -1
  402. package/.next/server/chunks/ssr/[root-of-the-server]__0a0nty7._.js +1 -1
  403. package/.next/server/chunks/ssr/[root-of-the-server]__0ax9dog._.js +1 -1
  404. package/.next/server/chunks/ssr/[root-of-the-server]__0bvtza7._.js +2 -2
  405. package/.next/server/chunks/ssr/[root-of-the-server]__0g_-bym._.js +1 -1
  406. package/.next/server/chunks/ssr/[root-of-the-server]__0gwwr7e._.js +1 -1
  407. package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +1 -1
  408. package/.next/server/chunks/ssr/[root-of-the-server]__0koj8h0._.js +1 -1
  409. package/.next/server/chunks/ssr/[root-of-the-server]__0s87xha._.js +1 -1
  410. package/.next/server/chunks/ssr/[root-of-the-server]__0skyo1a._.js +3 -0
  411. package/.next/server/chunks/ssr/[root-of-the-server]__0snpjfe._.js +1 -1
  412. package/.next/server/chunks/ssr/[root-of-the-server]__0y_e9do._.js +1 -1
  413. package/.next/server/chunks/ssr/[root-of-the-server]__0ybs_4c._.js +1 -1
  414. package/.next/server/chunks/ssr/[root-of-the-server]__14l7peq._.js +1 -1
  415. package/.next/server/chunks/ssr/[root-of-the-server]__1507q8a._.js +1 -1
  416. package/.next/server/chunks/ssr/[root-of-the-server]__15ppb9j._.js +1 -1
  417. package/.next/server/chunks/ssr/[root-of-the-server]__191jn5n._.js +1 -1
  418. package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +2 -2
  419. package/.next/server/chunks/ssr/[root-of-the-server]__1gth76-._.js +1 -1
  420. package/.next/server/chunks/ssr/[root-of-the-server]__1ko_dw5._.js +1 -1
  421. package/.next/server/chunks/ssr/[root-of-the-server]__1l84pks._.js +1 -1
  422. package/.next/server/chunks/ssr/[root-of-the-server]__1m7qw-2._.js +1 -1
  423. package/.next/server/chunks/ssr/[root-of-the-server]__1ma2oml._.js +1 -1
  424. package/.next/server/chunks/ssr/[root-of-the-server]__1o8jotz._.js +1 -1
  425. package/.next/server/chunks/ssr/[root-of-the-server]__1o__w27._.js +1 -1
  426. package/.next/server/chunks/ssr/[root-of-the-server]__1p7f0va._.js +1 -1
  427. package/.next/server/chunks/ssr/[root-of-the-server]__1sg9eoj._.js +1 -1
  428. package/.next/server/chunks/ssr/[root-of-the-server]__1u74hyi._.js +1 -1
  429. package/.next/server/chunks/ssr/[root-of-the-server]__1xsovpr._.js +1 -1
  430. package/.next/server/chunks/ssr/_054yhx9._.js +1 -1
  431. package/.next/server/chunks/ssr/_07ls0n_._.js +1 -1
  432. package/.next/server/chunks/ssr/_0i9hwpv._.js +1 -1
  433. package/.next/server/chunks/ssr/_0iqp5hs._.js +1 -1
  434. package/.next/server/chunks/ssr/_0m1-rq-._.js +1 -1
  435. package/.next/server/chunks/ssr/_0mgbe2b._.js +1 -1
  436. package/.next/server/chunks/ssr/_0nv22wt._.js +1 -1
  437. package/.next/server/chunks/ssr/_0rz2_qb._.js +5 -5
  438. package/.next/server/chunks/ssr/_0sbbx9z._.js +2 -2
  439. package/.next/server/chunks/ssr/_0sf1gd9._.js +1 -1
  440. package/.next/server/chunks/ssr/_0uemk57._.js +1 -1
  441. package/.next/server/chunks/ssr/_0zj7dlu._.js +1 -1
  442. package/.next/server/chunks/ssr/_11ut-6_._.js +3 -0
  443. package/.next/server/chunks/ssr/_17igtpd._.js +1 -1
  444. package/.next/server/chunks/ssr/_1aot_70._.js +3 -0
  445. package/.next/server/chunks/ssr/_1filpif._.js +3 -0
  446. package/.next/server/chunks/ssr/_1jniqsj._.js +1 -1
  447. package/.next/server/chunks/ssr/_1kgnhmo._.js +2 -2
  448. package/.next/server/chunks/ssr/_1lt1lhz._.js +2 -2
  449. package/.next/server/chunks/ssr/_1yeu09q._.js +1 -1
  450. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +1 -1
  451. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +1 -1
  452. package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickz.js +1 -1
  453. package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gs.js +1 -1
  454. package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9ak.js +1 -1
  455. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxq.js +1 -1
  456. package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-.js +1 -1
  457. package/.next/server/chunks/ssr/_next-internal_server_app_latex-test_page_actions_19v7ka0.js +1 -1
  458. package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +1 -1
  459. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2.js +1 -1
  460. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7.js +1 -1
  461. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz.js +1 -1
  462. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +1 -1
  463. package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n.js +1 -1
  464. package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaaln.js +1 -1
  465. package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-x.js +1 -1
  466. package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_a.js +1 -1
  467. package/.next/server/chunks/ssr/node_modules_0o2aki7._.js +1 -1
  468. package/.next/server/chunks/ssr/node_modules_1y5ym6h._.js +1 -1
  469. package/.next/server/chunks/ssr/node_modules_next_1lnqo1a._.js +3 -3
  470. package/.next/server/chunks/ssr/node_modules_next_dist_077yo5w._.js +1 -1
  471. package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +2 -2
  472. package/.next/server/chunks/ssr/node_modules_next_dist_1_c-t1n._.js +4 -4
  473. package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  474. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +2 -2
  475. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +1 -1
  476. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +1 -1
  477. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +1 -1
  478. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +1 -1
  479. package/.next/server/chunks/ssr/src_1biegcg._.js +1 -1
  480. package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
  481. package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
  482. package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +1 -1
  483. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
  484. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
  485. package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5._.js +1 -1
  486. package/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +1 -1
  487. package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53._.js +1 -1
  488. package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4._.js +1 -1
  489. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +2 -2
  490. package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctn._.js +1 -1
  491. package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u._.js +1 -1
  492. package/.next/server/edge/chunks/_1s0wgnu._.js +1 -1
  493. package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +3 -3
  494. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1iafar9.js +1 -1
  495. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1x1n1fx.js +1 -1
  496. package/.next/server/instrumentation.js +2 -2
  497. package/.next/server/middleware-build-manifest.js +8 -8
  498. package/.next/server/middleware-manifest.json +5 -5
  499. package/.next/server/pages/500.html +1 -1
  500. package/.next/server/server-reference-manifest.js +1 -1
  501. package/.next/server/server-reference-manifest.json +1 -1
  502. package/.next/static/chunks/03gmdewlo3s6u.js +1 -0
  503. package/.next/static/chunks/06q8lm6y95ac4.css +1 -0
  504. package/.next/static/chunks/0_w084ms_lq25.js +22 -0
  505. package/.next/static/chunks/0dzfsm6h13fyr.js +1 -0
  506. package/.next/static/chunks/0ehjiuuxbbhq9.js +1 -0
  507. package/.next/static/chunks/0ij2dqb0qj5ry.js +1 -0
  508. package/.next/static/chunks/0iq53qkw5hvrs.js +1 -0
  509. package/.next/static/chunks/0m81l71kojx8j.js +1 -0
  510. package/.next/static/chunks/0nckb2-62ooyq.js +1 -0
  511. package/.next/static/chunks/0pwdmc9gw8ben.js +33 -0
  512. package/.next/static/chunks/0snej-v5yglxr.js +1 -0
  513. package/.next/static/chunks/1-7k9gbbjkcml.js +1 -0
  514. package/.next/static/chunks/1c92up8k2x0z4.js +1 -0
  515. package/.next/static/chunks/1cd32rtomdngh.js +1 -0
  516. package/.next/static/chunks/1io3-cth_2-cd.js +1 -0
  517. package/.next/static/chunks/1oiuiyv1cv06v.js +31 -0
  518. package/.next/static/chunks/1t4-pobw0y5cf.js +1 -0
  519. package/.next/static/chunks/1xg811762s1p1.js +1 -0
  520. package/.next/static/chunks/1z_5sj1wqi06v.js +1 -0
  521. package/.next/static/chunks/24dymggis4suf.css +3 -0
  522. package/.next/static/chunks/24jbwfpgmio7x.js +1 -0
  523. package/.next/static/chunks/27fr34_1v7xyh.js +1 -0
  524. package/.next/static/chunks/2dlme2fdlkms6.js +1 -0
  525. package/.next/static/chunks/2eu_bls12m1wj.js +1 -0
  526. package/.next/static/chunks/2pmzqbg-qabof.js +1 -0
  527. package/.next/static/chunks/2w2uo9jjxt-re.js +1 -0
  528. package/.next/static/chunks/2x8e_fbze06sd.js +1 -0
  529. package/.next/static/chunks/2z1_5umv36es6.js +191 -0
  530. package/.next/static/chunks/32bl-oqw9oso0.js +1 -0
  531. package/.next/static/chunks/3b-g5_r9nto3s.js +6 -0
  532. package/.next/static/chunks/3g1rm2suowncy.js +3 -0
  533. package/.next/static/chunks/3helovsg02qr4.js +1 -0
  534. package/.next/static/chunks/3jta6jrk-jubq.js +1 -0
  535. package/.next/static/chunks/3m4c1r8_2ga_1.js +1 -0
  536. package/.next/static/chunks/3whzkc6d8oefw.js +1 -0
  537. package/.next/static/chunks/3yhf6xyypekz6.js +1 -0
  538. package/.next/static/chunks/3z9gc_02gl8n9.js +1 -0
  539. package/.next/static/chunks/427wg73nuzpiz.js +5 -0
  540. package/.next/static/chunks/turbopack-1-0r7_puvz3eq.js +1 -0
  541. package/launcher.js +22 -6
  542. package/package.json +1 -1
  543. package/prisma/seed.db +0 -0
  544. package/.next/server/app/api/error-items/[id]/mastery/route/app-paths-manifest.json +0 -3
  545. package/.next/server/app/api/error-items/[id]/mastery/route/build-manifest.json +0 -12
  546. package/.next/server/app/api/error-items/[id]/mastery/route/server-reference-manifest.json +0 -4
  547. package/.next/server/app/api/error-items/[id]/mastery/route.js +0 -8
  548. package/.next/server/app/api/error-items/[id]/mastery/route.js.map +0 -5
  549. package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +0 -1
  550. package/.next/server/app/api/error-items/[id]/mastery/route_client-reference-manifest.js +0 -3
  551. package/.next/server/chunks/[externals]__1735khz._.js +0 -3
  552. package/.next/server/chunks/[root-of-the-server]__02j1w81._.js +0 -3
  553. package/.next/server/chunks/[root-of-the-server]__03nfvnm._.js +0 -3
  554. package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +0 -3
  555. package/.next/server/chunks/[root-of-the-server]__05s4wut._.js +0 -3
  556. package/.next/server/chunks/[root-of-the-server]__06_nln5._.js +0 -3
  557. package/.next/server/chunks/[root-of-the-server]__06h5afw._.js +0 -3
  558. package/.next/server/chunks/[root-of-the-server]__0be5c5r._.js +0 -3
  559. package/.next/server/chunks/[root-of-the-server]__0bqawi0._.js +0 -3
  560. package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +0 -3
  561. package/.next/server/chunks/[root-of-the-server]__0c59gc3._.js +0 -3
  562. package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +0 -3
  563. package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +0 -3
  564. package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +0 -3
  565. package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +0 -122
  566. package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +0 -3
  567. package/.next/server/chunks/[root-of-the-server]__0gp88gz._.js +0 -3
  568. package/.next/server/chunks/[root-of-the-server]__0inxsnu._.js +0 -3
  569. package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +0 -3
  570. package/.next/server/chunks/[root-of-the-server]__0jaawra._.js +0 -3
  571. package/.next/server/chunks/[root-of-the-server]__0k-nf6a._.js +0 -3
  572. package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +0 -3
  573. package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +0 -3
  574. package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +0 -3
  575. package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +0 -3
  576. package/.next/server/chunks/[root-of-the-server]__0mqorxb._.js +0 -3
  577. package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +0 -3
  578. package/.next/server/chunks/[root-of-the-server]__0nqbham._.js +0 -3
  579. package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +0 -3
  580. package/.next/server/chunks/[root-of-the-server]__0obb4y-._.js +0 -3
  581. package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +0 -3
  582. package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +0 -3
  583. package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +0 -3
  584. package/.next/server/chunks/[root-of-the-server]__0u58zap._.js +0 -3
  585. package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +0 -3
  586. package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +0 -3
  587. package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +0 -3
  588. package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +0 -3
  589. package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +0 -3
  590. package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +0 -3
  591. package/.next/server/chunks/[root-of-the-server]__11n87go._.js +0 -3
  592. package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +0 -3
  593. package/.next/server/chunks/[root-of-the-server]__131taws._.js +0 -3
  594. package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +0 -3
  595. package/.next/server/chunks/[root-of-the-server]__1413v0e._.js +0 -3
  596. package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +0 -3
  597. package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +0 -3
  598. package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +0 -3
  599. package/.next/server/chunks/[root-of-the-server]__16begv4._.js +0 -3
  600. package/.next/server/chunks/[root-of-the-server]__17duis5._.js +0 -3
  601. package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +0 -3
  602. package/.next/server/chunks/[root-of-the-server]__184u6de._.js +0 -3
  603. package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +0 -3
  604. package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +0 -3
  605. package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +0 -3
  606. package/.next/server/chunks/[root-of-the-server]__19vj8qy._.js +0 -3
  607. package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +0 -3
  608. package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +0 -3
  609. package/.next/server/chunks/[root-of-the-server]__1cn6rlb._.js +0 -3
  610. package/.next/server/chunks/[root-of-the-server]__1csfdxc._.js +0 -3
  611. package/.next/server/chunks/[root-of-the-server]__1ezwxao._.js +0 -3
  612. package/.next/server/chunks/[root-of-the-server]__1g1wi9i._.js +0 -3
  613. package/.next/server/chunks/[root-of-the-server]__1gmc_uw._.js +0 -3
  614. package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +0 -3
  615. package/.next/server/chunks/[root-of-the-server]__1hpwwxw._.js +0 -3
  616. package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +0 -3
  617. package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +0 -3
  618. package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +0 -3
  619. package/.next/server/chunks/[root-of-the-server]__1kqv61m._.js +0 -3
  620. package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +0 -3
  621. package/.next/server/chunks/[root-of-the-server]__1loecue._.js +0 -3
  622. package/.next/server/chunks/[root-of-the-server]__1m4-ab6._.js +0 -3
  623. package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +0 -3
  624. package/.next/server/chunks/[root-of-the-server]__1nwf3ua._.js +0 -3
  625. package/.next/server/chunks/[root-of-the-server]__1oup682._.js +0 -3
  626. package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +0 -3
  627. package/.next/server/chunks/[root-of-the-server]__1pplzr1._.js +0 -3
  628. package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +0 -3
  629. package/.next/server/chunks/[root-of-the-server]__1sdtn83._.js +0 -3
  630. package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +0 -3
  631. package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +0 -3
  632. package/.next/server/chunks/[root-of-the-server]__20465pr._.js +0 -3
  633. package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +0 -3
  634. package/.next/server/chunks/_0_o8yhv._.js +0 -3
  635. package/.next/server/chunks/_0c5hvv3._.js +0 -11
  636. package/.next/server/chunks/_0frix22._.js +0 -11
  637. package/.next/server/chunks/_0rdo0a4._.js +0 -3
  638. package/.next/server/chunks/_167vv93._.js +0 -3
  639. package/.next/server/chunks/_1e1h1f1._.js +0 -3
  640. package/.next/server/chunks/_1flar98._.js +0 -3
  641. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +0 -3
  642. package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +0 -3
  643. package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +0 -3
  644. package/.next/server/chunks/ssr/_062gk85._.js +0 -3
  645. package/.next/server/chunks/ssr/_0idg05p._.js +0 -3
  646. package/.next/server/chunks/ssr/_1gu1rou._.js +0 -3
  647. package/.next/static/chunks/02d-8f2qj7j3j.js +0 -1
  648. package/.next/static/chunks/02t7qqptint2p.js +0 -1
  649. package/.next/static/chunks/090a6irxe0c6j.js +0 -1
  650. package/.next/static/chunks/0bhxyq7e2eqjc.js +0 -5
  651. package/.next/static/chunks/0if-vqkhyn-zc.js +0 -1
  652. package/.next/static/chunks/0jf31atbtr1mv.js +0 -1
  653. package/.next/static/chunks/0te6mr86gdyyi.js +0 -191
  654. package/.next/static/chunks/0vgthy7v615hq.js +0 -1
  655. package/.next/static/chunks/1e5n4cprhwujv.js +0 -1
  656. package/.next/static/chunks/1edfvwc5_eck-.js +0 -31
  657. package/.next/static/chunks/1f0u19gh5_49z.js +0 -1
  658. package/.next/static/chunks/1fdj59ys-pend.js +0 -1
  659. package/.next/static/chunks/1kerqdluzq2l0.js +0 -1
  660. package/.next/static/chunks/1r4lwlvm7m53v.js +0 -1
  661. package/.next/static/chunks/1rz1bokv9edzr.js +0 -1
  662. package/.next/static/chunks/1s-d67d-yroyw.js +0 -1
  663. package/.next/static/chunks/1tw5_upsy-qj_.js +0 -22
  664. package/.next/static/chunks/1w1xvldfmcs67.js +0 -6
  665. package/.next/static/chunks/1zdof8ylzqm8w.js +0 -1
  666. package/.next/static/chunks/2-k1hjh6ff6y4.js +0 -1
  667. package/.next/static/chunks/21qpve5q3mjly.js +0 -1
  668. package/.next/static/chunks/21v32ctwcoxqt.js +0 -1
  669. package/.next/static/chunks/27-t289uq6_ju.js +0 -3
  670. package/.next/static/chunks/293-te2b34thz.js +0 -1
  671. package/.next/static/chunks/2dgleoh5fbs83.js +0 -1
  672. package/.next/static/chunks/2di_nd6djcxwu.js +0 -1
  673. package/.next/static/chunks/2mk03owifu2m1.js +0 -33
  674. package/.next/static/chunks/2qza4p5d9fz_2.js +0 -1
  675. package/.next/static/chunks/2s4c8fcrdnew4.js +0 -1
  676. package/.next/static/chunks/2zdqnkem9n6a9.js +0 -1
  677. package/.next/static/chunks/3-wm04s--suy5.js +0 -1
  678. package/.next/static/chunks/33t46atd3n2zd.js +0 -1
  679. package/.next/static/chunks/37yx4gh09tzwc.js +0 -1
  680. package/.next/static/chunks/3c4-ozf1dxam2.css +0 -1
  681. package/.next/static/chunks/3gwb465dhjxo9.js +0 -1
  682. package/.next/static/chunks/3hkgw-uib19xl.js +0 -1
  683. package/.next/static/chunks/3n-yabfsiog4i.css +0 -3
  684. package/.next/static/chunks/3umldi5zknsyi.js +0 -1
  685. package/.next/static/chunks/turbopack-1yjxh4vceobdr.js +0 -1
  686. /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_buildManifest.js +0 -0
  687. /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_clientMiddlewareManifest.js +0 -0
  688. /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55682,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},90809,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=u?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}},54394,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return a},getAccessFallbackErrorTypeByStatus:function(){return s},getAccessFallbackHTTPStatus:function(){return l},isHTTPAccessFallbackError:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},i=new Set(Object.values(u)),a="NEXT_HTTP_ERROR_FALLBACK";function c(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===a&&i.has(Number(r))}function l(e){return Number(e.digest.split(";")[1])}function s(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65713,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=e.r(68391);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},14502,(e,t,r)=>{"use strict";let n,o;Object.defineProperty(r,"__esModule",{value:!0});var u={useDynamicRouteParams:function(){return n},useDynamicSearchParams:function(){return o}};for(var i in u)Object.defineProperty(r,i,{enumerable:!0,get:u[i]});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13957,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return i},useServerInsertedHTML:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),i=u.default.createContext(null);function a(e){let t=(0,u.useContext)(i);t&&t(e)}},22783,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79854,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22683,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1174",enumerable:!1,configurable:!0})}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={REDIRECT_ERROR_CODE:function(){return i},isRedirectError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(76963),i="NEXT_REDIRECT";function a(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),a=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(a)&&a in u.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76963,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24063,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return c},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return s},redirect:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(76963),i=e.r(68391),a=e.r(1425);function c(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(i.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${i.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function l(e,t){throw c(e,t??=a.actionAsyncStorage?.getStore()?.isAction?"push":"replace",u.RedirectStatusCode.TemporaryRedirect)}function s(e,t="replace"){throw c(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,i.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1425,(e,t,r)=>{"use strict";let n,o,u;Object.defineProperty(r,"__esModule",{value:!0});var i={actionAsyncStorage:function(){return n},workAsyncStorage:function(){return o},workUnitAsyncStorage:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92838,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function i(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15507,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(32061),o=e.r(65713);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92805,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return d},forbidden:function(){return c.forbidden},notFound:function(){return a.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return l.unauthorized},unstable_isUnrecognizedActionError:function(){return f},unstable_rethrow:function(){return s.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(3680),i=e.r(24063),a=e.r(22783),c=e.r(79854),l=e.r(22683),s=e.r(15507);function f(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let d={push:"push",replace:"replace"};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76562,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return a.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return s.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return f.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return h},usePathname:function(){return v},useRouter:function(){return m},useSearchParams:function(){return b},useSelectedLayoutSegment:function(){return O},useSelectedLayoutSegments:function(){return g},useServerInsertedHTML:function(){return s.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),i=e.r(8372),a=e.r(61994),c=e.r(13258),l=e.r(14502),s=e.r(13957),f=e.r(92838),d=e.r(92805),{instrumentParamsForClientValidation:p,instrumentSearchParamsForClientValidation:y,expectCompleteParamsInClientValidation:_}={};function b(){l.useDynamicSearchParams?.("useSearchParams()");let e=(0,u.useContext)(a.SearchParamsContext);return(0,u.useMemo)(()=>e?new a.ReadonlyURLSearchParams(e):null,[e])}function v(){return l.useDynamicRouteParams?.("usePathname()"),(0,u.useContext)(a.PathnameContext)}function m(){let e=(0,u.useContext)(i.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});let t=(0,u.useContext)(i.LayoutRouterContext),r=t?.parentCacheNode.bfcacheId??0;return(0,u.useMemo)(()=>({back:e.back,forward:e.forward,refresh:e.refresh,hmrRefresh:e.hmrRefresh,push:e.push,replace:e.replace,prefetch:e.prefetch,experimental_gesturePush:e.experimental_gesturePush,bfcacheId:"_b_"+r+"_"}),[e,r])}function h(){return l.useDynamicRouteParams?.("useParams()"),(0,u.useContext)(a.PathParamsContext)}function g(e="children"){l.useDynamicRouteParams?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(i.LayoutRouterContext);return t?(0,c.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function O(e="children"){l.useDynamicRouteParams?.("useSelectedLayoutSegment()"),(0,u.useContext)(a.NavigationPromisesContext);let t=g(e);return(0,c.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},35451,(e,t,r)=>{var n={156:function(e){var t,r,n,o=e.exports={};function u(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:u}catch(e){t=u}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===u||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var c=[],l=!1,s=-1;function f(){l&&n&&(l=!1,n.length?c=n.concat(c):s=-1,c.length&&d())}function d(){if(!l){var e=a(f);l=!0;for(var t=c.length;t;){for(n=c,c=[];++s<t;)n&&n[s].run();s=-1,t=c.length}n=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new p(e,t)),1!==c.length||l||a(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},o={};function u(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},i=!0;try{n[e](r,r.exports,u),i=!1}finally{i&&delete o[e]}return r.exports}u.ab="/ROOT/node_modules/next/dist/compiled/process/",t.exports=u(156)},47167,(e,t,r)=>{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(35451)},18800,(e,t,r)=>{"use strict";var n=e.r(71645);function o(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function u(){}var i={d:{f:u,r:function(){throw Error(o(522))},D:u,C:u,L:u,m:u,X:u,S:u,M:u},p:0,findDOMNode:null},a=Symbol.for("react.portal"),c=Symbol.for("react.recoverable"),l=Symbol.for("react.optimistic_key"),s=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,r.browser=function(){var e=Error(o(603));return Object.defineProperty(e,"$$typeof",{value:c}),e},r.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(o(299));return function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:a,key:null==n?null:n===l?l:""+n,children:e,containerInfo:t,implementation:r}}(e,t,null,r)},r.flushSync=function(e){var t=s.T,r=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=r,i.d.f()}},r.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,i.d.C(e,t))},r.prefetchDNS=function(e){"string"==typeof e&&i.d.D(e)},r.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=f(r,t.crossOrigin),o="string"==typeof t.integrity?t.integrity:void 0,u="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?i.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:o,fetchPriority:u}):"script"===r&&i.d.X(e,{crossOrigin:n,integrity:o,fetchPriority:u,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},r.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=f(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0})}}else null==t&&i.d.M(e)},r.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=f(r,t.crossOrigin);i.d.L(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},r.preloadModule=function(e,t){if("string"==typeof e)if(t){var r=f(t.as,t.crossOrigin);i.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0})}else i.d.m(e)},r.requestFormReset=function(e){i.d.r(e)},r.unstable_batchedUpdates=function(e,t){return e(t)},r.useFormState=function(e,t,r){return s.H.useFormState(e,t,r)},r.useFormStatus=function(){return s.H.useHostTransitionStatus()},r.version="19.3.0-canary-cbb046ab-20260731"},74080,(e,t,r)=>{"use strict";e.i(47167),!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(18800)},45689,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var u in r={},t)"key"!==u&&(r[u]=t[u]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},18050,(e,t,r)=>{"use strict";e.i(47167),t.exports=e.r(45689)},50740,(e,t,r)=>{"use strict";var n=e.i(47167),o=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),b=Symbol.for("react.view_transition"),v=Symbol.iterator,m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function O(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||m}function R(){}function E(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||m}O.prototype.isReactComponent={},O.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},O.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},R.prototype=O.prototype;var P=E.prototype=new R;P.constructor=E,h(P,O.prototype),P.isPureReactComponent=!0;var S=Array.isArray;function j(){}var T={H:null,A:null,T:null,S:null},C=Object.prototype.hasOwnProperty;function x(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function M(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var w=/\/+/g;function A(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function L(e,t,r){if(null==e)return e;var n=[],i=0;return!function e(t,r,n,i,a){var c,l,s,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case u:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,i,a)}}if(d)return a=a(t),d=""===i?"."+A(t,0):i,S(a)?(n="",null!=d&&(n=d.replace(w,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(M(a)&&(c=a,l=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(w,"$&/")+"/")+d,a=x(c.type,l,c.props)),r.push(a)),1;d=0;var p=""===i?".":i+":";if(S(t))for(var _=0;_<t.length;_++)f=p+A(i=t[_],_),d+=e(i,r,n,f,a);else if("function"==typeof(_=null===(s=t)||"object"!=typeof s?null:"function"==typeof(s=v&&s[v]||s["@@iterator"])?s:null))for(t=_.call(t),_=0;!(i=t.next()).done;)f=p+A(i=i.value,_++),d+=e(i,r,n,f,a);else if("object"===f){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(j,j):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),r,n,i,a);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(r=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return d}(e,n,"","",function(e){return t.call(r,e,i++)}),n}function N(e){if(-1===e._status){var t=(0,e._result)();t.then(function(r){(0===e._status||-1===e._status)&&(e._status=1,e._result=r,void 0===t.status&&(t.status="fulfilled",t.value=r))},function(r){(0===e._status||-1===e._status)&&(e._status=2,e._result=r,void 0===t.status&&(t.status="rejected",t.reason=r))}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var D="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof n.default&&"function"==typeof n.default.emit)return void n.default.emit("uncaughtException",e);console.error(e)};function H(e){var t=T.T,r={};r.types=null!==t?t.types:null,T.T=r;try{var n=e(),o=T.S;null!==o&&o(r,n),"object"==typeof n&&null!==n&&"function"==typeof n.then&&n.then(j,D)}catch(e){D(e)}finally{null!==t&&null!==r.types&&(t.types=r.types),T.T=t}}function U(e){var t=T.T;if(null!==t){var r=t.types;null===r?t.types=[e]:-1===r.indexOf(e)&&r.push(e)}else H(U.bind(null,e))}r.Activity=_,r.Children={map:L,forEach:function(e,t,r){L(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return L(e,function(){t++}),t},toArray:function(e){return L(e,function(e){return e})||[]},only:function(e){if(!M(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},r.Component=O,r.Fragment=i,r.Profiler=c,r.PureComponent=E,r.StrictMode=a,r.Suspense=d,r.ViewTransition=b,r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,r.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},r.addTransitionType=U,r.cache=function(e){return function(){return e.apply(null,arguments)}},r.cacheSignal=function(){return null},r.cloneElement=function(e,t,r){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var n=h({},e.props),o=e.key;if(null!=t)for(u in void 0!==t.key&&(o=""+t.key),t)C.call(t,u)&&"key"!==u&&"__self"!==u&&"__source"!==u&&("ref"!==u||void 0!==t.ref)&&(n[u]=t[u]);var u=arguments.length-2;if(1===u)n.children=r;else if(1<u){for(var i=Array(u),a=0;a<u;a++)i[a]=arguments[a+2];n.children=i}return x(e.type,o,n)},r.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},r.createElement=function(e,t,r){var n,o={},u=null;if(null!=t)for(n in void 0!==t.key&&(u=""+t.key),t)C.call(t,n)&&"key"!==n&&"__self"!==n&&"__source"!==n&&(o[n]=t[n]);var i=arguments.length-2;if(1===i)o.children=r;else if(1<i){for(var a=Array(i),c=0;c<i;c++)a[c]=arguments[c+2];o.children=a}if(e&&e.defaultProps)for(n in i=e.defaultProps)void 0===o[n]&&(o[n]=i[n]);return x(e,u,o)},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:f,render:e}},r.isValidElement=M,r.lazy=function(e){return{$$typeof:y,_payload:{_status:-1,_result:e},_init:N}},r.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},r.startTransition=H,r.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},r.use=function(e){return T.H.use(e)},r.useActionState=function(e,t,r){return T.H.useActionState(e,t,r)},r.useCallback=function(e,t){return T.H.useCallback(e,t)},r.useContext=function(e){return T.H.useContext(e)},r.useDebugValue=function(){},r.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},r.useEffect=function(e,t){return T.H.useEffect(e,t)},r.useEffectEvent=function(e){return T.H.useEffectEvent(e)},r.useId=function(){return T.H.useId()},r.useImperativeHandle=function(e,t,r){return T.H.useImperativeHandle(e,t,r)},r.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},r.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},r.useMemo=function(e,t){return T.H.useMemo(e,t)},r.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},r.useReducer=function(e,t,r){return T.H.useReducer(e,t,r)},r.useRef=function(e){return T.H.useRef(e)},r.useState=function(e){return T.H.useState(e)},r.useSyncExternalStore=function(e,t,r){return T.H.useSyncExternalStore(e,t,r)},r.useTransition=function(){return T.H.useTransition()},r.version="19.3.0-canary-cbb046ab-20260731"},71645,(e,t,r)=>{"use strict";e.i(47167),t.exports=e.r(50740)},8372,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return i},GlobalLayoutRouterContext:function(){return c},LayoutRouterContext:function(){return a},MissingSlotContext:function(){return s},TemplateContext:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(55682)._(e.r(71645)),i=u.default.createContext(null),a=u.default.createContext(null),c=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(new Set)},61994,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return c},ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return f}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(71645),i=e.r(3680),a=(0,u.createContext)(null),c=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function f(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},32061,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return i},isBailoutToCSRError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class i extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function a(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},13258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},NOT_FOUND_SEGMENT_KEY:function(){return d},PAGE_SEGMENT_KEY:function(){return s},addSearchParamsIfPageSegment:function(){return c},computeSelectedLayoutSegment:function(){return l},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let i;if(n)i=t[1][r];else{let e=t[1];i=e.children??Object.values(e)[0]}if(!i)return o;let a=u(i[0]);return!a||a.startsWith(s)?o:(o.push(a),e(i,r,!1,o))}},isGroupSegment:function(){return i},isParallelRouteSegment:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function i(e){return"("===e[0]&&e.endsWith(")")}function a(e){return e.startsWith("@")&&"@children"!==e}function c(e,t){if(e.includes(s)){let e=JSON.stringify(t);return"{}"!==e?s+"?"+e:s}return e}function l(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let s="__PAGE__",f="__DEFAULT__",d="/_not-found"}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],71689)},3116,e=>{"use strict";let t=(0,e.i(75254).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock",0,t],3116)},56909,e=>{"use strict";let t=(0,e.i(75254).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],56909)},8821,e=>{"use strict";let t=(0,e.i(75254).default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);e.s(["default",0,t])},91686,68983,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(22016),r=e.i(15519),i=e.i(30691),n=e.i(64659),l=e.i(55900),d=e.i(31278),c=e.i(7233),o=e.i(83086),m=e.i(27612),u=e.i(87486),x=e.i(19455),h=e.i(15288),g=e.i(11445),p=e.i(56909),f=e.i(93479),y=e.i(93733),b=e.i(11110),j=e.i(41931);function v({errorItemId:e,onSaved:s,onCancel:n}){let{t:l}=(0,b.useLanguage)(),{timeZone:c}=(0,r.useTimeZone)(),o=(0,i.formatDateTime)(new Date,"yyyy-MM-dd",c),[m,u]=(0,a.useState)(null),[h,g]=(0,a.useState)(o),[N,w]=(0,a.useState)(!1),[k,C]=(0,a.useState)(null),T=async()=>{if(m&&h){w(!0),C(null);try{await j.apiClient.post("/api/practice/record",{errorItemId:e,result:m,source:"manual",takenAt:(0,i.answeredDateToISOString)(h,c)}),s()}catch{C(l.mastery.resultSaveFailed)}finally{w(!1)}}};return(0,t.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,t.jsx)(y.PracticeResultPicker,{value:m,onChange:u,disabled:N}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:`practice-date-${e}`,className:"text-sm font-medium",children:l.mastery.recordDate}),(0,t.jsx)(f.Input,{id:`practice-date-${e}`,type:"date",value:h,max:o,onChange:e=>g(e.target.value),className:"sm:w-48"}),(0,t.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:n,disabled:N,className:"flex-1 sm:flex-none",children:l.exam.cancel}),(0,t.jsxs)(x.Button,{size:"sm",onClick:T,disabled:N||!m||!h,className:"flex-1 sm:flex-none",children:[N?(0,t.jsx)(d.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,t.jsx)(p.Save,{className:"mr-2 h-4 w-4"}),l.mastery.saveResult]})]})]}),k&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:k})]})}var N=e.i(49704),w=e.i(94114);let k={correct:"bg-green-100 text-green-700 border-green-200",wrong:"bg-red-100 text-red-700 border-red-200",not_attempted:"bg-amber-100 text-amber-700 border-amber-200"};e.s(["MasteryPanel",0,function({errorItemId:e,onMasteryStatusChange:p}){let{timeZone:f}=(0,r.useTimeZone)(),{t:y}=(0,b.useLanguage)(),[C,T]=(0,a.useState)(null),[S,M]=(0,a.useState)(null),[R,A]=(0,a.useState)(0),[L,$]=(0,a.useState)(!1),B=(0,a.useCallback)(()=>{j.apiClient.get(`/api/error-items/${e}/practice-records`).then(e=>{T(e),p?.(e.masteryStatus)}).catch(()=>void 0)},[e,p]);(0,a.useEffect)(B,[B]);let D=()=>{A(0),B()},E=async e=>{if(await (0,w.confirmDialog)(y.mastery.deleteRecordConfirm,{destructive:!0}))try{await j.apiClient.delete(`/api/practice/record/${e}`),D()}catch{w.toast.error(y.mastery.deleteRecordFailed)}},H=C?.records[0],P=!!H&&(!C?.masteryEvaluatedAt||new Date(H.createdAt)>new Date(C.masteryEvaluatedAt));if((0,a.useEffect)(()=>{if(!P||R>=20)return;let e=setTimeout(()=>{A(e=>e+1),B()},4e3);return()=>clearTimeout(e)},[P,R,B]),!C)return null;let I=C.masteryProbability,U=null===I?null:Math.round(100*I),_=null===U?"":null!==I&&I>=.5?"bg-green-500":U>=30?"bg-amber-500":"bg-red-500",q=y.practice.difficulty;return(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(h.CardHeader,{children:(0,t.jsxs)(h.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(o.Sparkles,{className:"h-4 w-4 text-primary"}),y.mastery.probability]})}),(0,t.jsxs)(h.CardContent,{className:"space-y-4",children:[null===U?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:P?y.mastery.pending:y.mastery.notEvaluated}):(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,t.jsxs)("span",{className:"text-3xl font-bold",children:[U,"%"]}),(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[P&&(0,t.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}),(0,t.jsx)(u.Badge,{variant:"outline",children:"ai"===C.masterySource?y.mastery.aiEvaluated:y.mastery.estimated})]})]}),(0,t.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:`h-full ${_} transition-all`,style:{width:`${U}%`}})}),C.masteryReason&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:C.masteryReason}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:y.mastery.thresholdHint})]}),(0,t.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold",children:y.mastery.history}),!L&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>$(!0),children:[(0,t.jsx)(c.Plus,{className:"mr-1 h-4 w-4"}),y.mastery.addRecord]})]}),L&&(0,t.jsx)(v,{errorItemId:e,onCancel:()=>$(!1),onSaved:()=>{$(!1),D()}}),0===C.records.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground italic",children:y.mastery.noHistory}):(0,t.jsx)("ul",{className:"divide-y rounded-md border",children:C.records.map(e=>(0,t.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>M(S===e.id?null:e.id),children:[(0,t.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,i.formatDateTime)(e.createdAt,"yyyy-MM-dd HH:mm",f)}),(0,t.jsx)(u.Badge,{variant:"outline",className:k[e.result]||"",children:y.mastery.results[e.result]||e.result}),e.difficulty&&(0,t.jsx)(u.Badge,{variant:"secondary",children:q[e.difficulty]||e.difficulty}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e.exam?`${y.mastery.sources.exam} \xb7 ${e.exam.title}`:y.mastery.sources[e.source]||y.mastery.sources.practice}),e.questionText&&(0,t.jsx)("span",{className:"ml-auto text-muted-foreground",children:S===e.id?(0,t.jsx)(l.ChevronUp,{className:"h-4 w-4"}):(0,t.jsx)(n.ChevronDown,{className:"h-4 w-4"})})]}),(0,t.jsx)("button",{type:"button","aria-label":y.mastery.deleteRecord,title:y.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>E(e.id),children:(0,t.jsx)(m.Trash2,{className:"h-4 w-4"})})]}),S===e.id&&e.questionText&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,t.jsx)(g.MarkdownRenderer,{content:e.questionText}),(0,t.jsx)(N.QuestionFigure,{svg:e.figureSvg}),e.wrongAnswerText&&(0,t.jsxs)("div",{className:"border-t pt-2",children:[(0,t.jsx)("p",{className:"mb-1 font-medium",children:y.editor.wrongAnswerText}),(0,t.jsx)(g.MarkdownRenderer,{content:e.wrongAnswerText})]}),e.mistakeAnalysis&&(0,t.jsxs)("div",{className:"border-t pt-2",children:[(0,t.jsx)("p",{className:"mb-1 font-medium",children:y.editor.mistakeAnalysis}),(0,t.jsx)(g.MarkdownRenderer,{content:e.mistakeAnalysis})]}),e.originalImageUrl&&(0,t.jsx)("img",{src:e.originalImageUrl,alt:y.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),e.answerText&&(0,t.jsx)("div",{className:"border-t pt-2",children:(0,t.jsx)(g.MarkdownRenderer,{content:e.answerText,className:"font-semibold"})}),e.exam&&(0,t.jsx)(s.default,{href:`/exams/${e.exam.paperId}`,className:"text-xs text-primary hover:underline",children:e.exam.title})]})]},e.id))})]})]})]})},"RESULT_BADGE_CLASS",0,k],91686);var C=e.i(8821);e.s(["WandSparkles",()=>C.default],68983)},46968,e=>{"use strict";var t=e.i(18050),a=e.i(69638),s=e.i(3116),r=e.i(16715),i=e.i(87486),n=e.i(11110);let l={new:{className:"bg-warning/15 text-amber-700 dark:text-warning",icon:s.Clock},reviewing:{className:"bg-primary/10 text-primary",icon:r.RefreshCw},mastered:{className:"bg-success/15 text-success",icon:a.CheckCircle}};e.s(["MASTERY_STATUS_BORDER",0,{new:"border-l-warning/70",reviewing:"border-l-primary/60",mastered:"border-l-success/70"},"MasteryStatusBadge",0,function({status:e,className:a=""}){let{t:s}=(0,n.useLanguage)(),{className:r,icon:d}=l[e],c="mastered"===e?s.notebook.mastered:"reviewing"===e?s.notebook.reviewing:s.notebook.review;return(0,t.jsx)(i.Badge,{variant:"secondary",className:`${r} ${a}`,children:(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(d,{className:"h-3 w-3"})," ",c]})})}])},93733,e=>{"use strict";var t=e.i(18050),a=e.i(69638);let s=(0,e.i(75254).default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var r=e.i(73884),i=e.i(11110);let n=[{value:"correct",icon:a.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:r.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:s,active:"border-amber-600 bg-amber-50 text-amber-700"}];e.s(["PracticeResultPicker",0,function({value:e,onChange:a,disabled:s,size:r="md"}){let{t:l}=(0,i.useLanguage)(),d="sm"===r?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,t.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:n.map(({value:i,icon:n,active:c})=>(0,t.jsxs)("button",{type:"button",role:"radio","aria-checked":e===i,disabled:s,onClick:()=>a(i),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${d} ${e===i?c:"border-input hover:bg-muted"}`,children:[(0,t.jsx)(n,{className:"sm"===r?"h-3 w-3":"h-4 w-4"}),l.mastery.results[i]]},i))})}],93733)},49704,e=>{"use strict";var t=e.i(18050),a=e.i(11110),s=e.i(75157);e.s(["QuestionFigure",0,function({svg:e,className:r}){let{t:i}=(0,a.useLanguage)();return e?(0,t.jsx)("figure",{className:(0,s.cn)("question-figure my-3",r),children:(0,t.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:i.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],49704)},15288,e=>{"use strict";var t=e.i(18050),a=e.i(75157);e.s(["Card",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...s})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",e),...s})},"CardDescription",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",e),...s})}])},12505,e=>{"use strict";var t=e.i(18050),a=e.i(75157);e.s(["EmptyState",0,function({icon:e,title:s,description:r,action:i,className:n}){return(0,t.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center justify-center rounded-2xl border border-dashed bg-card/50 px-6 py-14 text-center",n),children:[(0,t.jsx)("div",{className:"mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent text-accent-foreground",children:(0,t.jsx)(e,{className:"h-7 w-7"})}),(0,t.jsx)("p",{className:"font-medium",children:s}),r&&(0,t.jsx)("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:r}),i&&(0,t.jsx)("div",{className:"mt-5",children:i})]})}])},86963,e=>{"use strict";var t=e.i(18050),a=e.i(31278);e.s(["PageLoading",0,function({label:e}){return(0,t.jsxs)("div",{className:"flex min-h-[50vh] flex-col items-center justify-center gap-3 text-muted-foreground",children:[(0,t.jsx)(a.Loader2,{className:"h-7 w-7 animate-spin text-primary"}),e&&(0,t.jsx)("p",{className:"text-sm",children:e})]})}])},35209,e=>{"use strict";var t=e.i(71645),a=e.i(11110);e.s(["usePageTitle",0,function(...e){let{t:s}=(0,a.useLanguage)(),r=[s.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,t.useEffect)(()=>{document.title=r},[r])}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],71689)},3281,e=>{"use strict";let t=(0,e.i(75254).default)("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]);e.s(["Printer",0,t],3281)},56909,e=>{"use strict";let t=(0,e.i(75254).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],56909)},83086,e=>{"use strict";let t=(0,e.i(75254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],83086)},8821,e=>{"use strict";let t=(0,e.i(75254).default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);e.s(["default",0,t])},65602,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(22016),r=e.i(18566),i=e.i(15519),n=e.i(30691);let l=(0,e.i(75254).default)("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);var d=e.i(31278),c=e.i(3281),o=e.i(67240),m=e.i(56909),u=e.i(27612),x=e.i(19455),h=e.i(93479),p=e.i(90546),g=e.i(86963),f=e.i(64659),y=e.i(55900),j=e.i(37727),b=e.i(87486),v=e.i(15288),N=e.i(11445),w=e.i(91686),k=e.i(93733),C=e.i(49704),S=e.i(16715),T=e.i(68983),R=e.i(11110),M=e.i(41931),q=e.i(1276),A=e.i(94114);function L({paperId:e,question:s,onDone:r}){let{t:i,language:n}=(0,R.useLanguage)(),[l,c]=(0,a.useState)(null),o=0===s.attempts.length&&!!s.errorItemId&&"pending"!==s.status,m="ready"===s.status&&!!s.questionText?.trim();if(!o&&!m)return null;let u=async t=>{let a="question"===t?i.exam.regenerateQuestionConfirm:i.exam.regenerateAnswerConfirm;if(await (0,A.confirmDialog)(a)){c(t);try{let a=await M.apiClient.post(`/api/exams/${e}/questions/${s.id}/regenerate`,{mode:t,language:n},{timeout:6e5});r(a)}catch(s){let e=s?.data?.message||"",a=i.errors[e];q.frontendLogger.error("[ExamRegenerate]","Failed to regenerate exam question",{mode:t,code:e}),A.toast.error("HAS_RESULTS"===e?i.exam.regenerateHasResults:"string"==typeof a?a:i.exam.regenerateFailed)}finally{c(null)}}};return(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[o&&(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:()=>u("question"),disabled:null!==l,children:["question"===l?(0,t.jsx)(d.Loader2,{className:"mr-1 h-4 w-4 animate-spin"}):(0,t.jsx)(S.RefreshCw,{className:"mr-1 h-4 w-4"}),"question"===l?i.exam.regenerating:i.exam.regenerateQuestion]}),m&&(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:()=>u("answer"),disabled:null!==l,children:["answer"===l?(0,t.jsx)(d.Loader2,{className:"mr-1 h-4 w-4 animate-spin"}):(0,t.jsx)(T.WandSparkles,{className:"mr-1 h-4 w-4"}),"answer"===l?i.exam.regenerating:i.exam.regenerateAnswer]})]})}function D({paperId:e,question:r,editingResult:l,onResultChange:c,onDeleteAttempt:o,onRegenerated:m}){let{t:u}=(0,R.useLanguage)(),{timeZone:x}=(0,i.useTimeZone)(),[h,p]=(0,a.useState)(!1),g=void 0!==l,S=(()=>{if(!r.error)return"";if("SOURCE_DELETED"===r.error)return u.exam.sourceDeleted;let e=r.error.split(":")[0].trim(),t=u.errors[e];return"string"==typeof t?t:r.error})();return(0,t.jsx)(v.Card,{children:(0,t.jsxs)(v.CardContent,{className:"space-y-3 pt-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,t.jsxs)("span",{className:"font-semibold",children:[r.order,"."]}),r.errorItemId?(0,t.jsxs)(s.default,{href:`/error-items/${r.errorItemId}`,className:"font-mono text-xs text-primary hover:underline",children:[u.exam.source," ",r.sourceShortId]}):(0,t.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:[r.sourceShortId," · ",u.exam.sourceDeleted]}),r.notebookName&&(0,t.jsx)(b.Badge,{variant:"secondary",children:r.notebookName})]}),r.attempts.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:r.attempts.map((e,a)=>(0,t.jsxs)(b.Badge,{variant:"outline",className:`gap-1 font-normal ${w.RESULT_BADGE_CLASS[e.result]||""}`,children:[(0,t.jsx)("span",{children:u.exam.attemptLabel.replace("{n}",String(a+1))}),(0,t.jsx)("span",{className:"tabular-nums",children:(0,n.formatDateTime)(e.createdAt,"MM-dd",x)}),(0,t.jsx)("span",{className:"font-semibold",children:u.mastery.results[e.result]}),g&&o&&(0,t.jsx)("button",{type:"button","aria-label":u.mastery.deleteRecord,className:"-mr-1 rounded hover:bg-black/10",onClick:()=>o(e.id),children:(0,t.jsx)(j.X,{className:"h-3 w-3"})})]},e.id))}),"pending"===r.status&&(0,t.jsxs)("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(d.Loader2,{className:"h-4 w-4 animate-spin"}),u.exam.questionPending]}),"failed"===r.status&&(0,t.jsxs)("p",{className:"text-sm text-destructive",children:[u.exam.questionFailed,S?`:${S}`:""]}),"ready"===r.status&&r.questionText&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.MarkdownRenderer,{content:r.questionText}),(0,t.jsx)(C.QuestionFigure,{svg:r.figureSvg}),(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",onClick:()=>p(!h),children:[h?(0,t.jsx)(y.ChevronUp,{className:"h-3 w-3"}):(0,t.jsx)(f.ChevronDown,{className:"h-3 w-3"}),u.exam.showAnswer]}),h&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[r.answerText&&(0,t.jsx)(N.MarkdownRenderer,{content:r.answerText,className:"font-semibold"}),r.analysis&&(0,t.jsx)(N.MarkdownRenderer,{content:r.analysis})]})]}),!g&&m&&(0,t.jsx)(L,{paperId:e,question:r,onDone:m}),g&&"ready"===r.status&&r.errorItemId&&c&&(0,t.jsx)(k.PracticeResultPicker,{value:l,onChange:c,size:"sm"})]})})}var B=e.i(63661),I=e.i(35209);e.s(["default",0,function(){let{timeZone:e}=(0,i.useTimeZone)(),f=(0,r.useParams)(),y=(0,r.useRouter)(),{t:j,language:b}=(0,R.useLanguage)(),v=f.id,[N,w]=(0,a.useState)(null);(0,I.usePageTitle)(j.exam.title,N?.title);let[k,C]=(0,a.useState)(!1),[S,T]=(0,a.useState)(null),[q,L]=(0,a.useState)((0,n.formatDateTime)(new Date,"yyyy-MM-dd",e)),[$,E]=(0,a.useState)(!1),[H,P]=(0,a.useState)(null),z=(0,a.useCallback)(async()=>{try{w(await M.apiClient.get(`/api/exams/${v}`))}catch{C(!0)}},[v]);if((0,a.useEffect)(()=>{z()},[z]),(0,a.useEffect)(()=>{if(N?.status!=="generating")return;let e=setTimeout(z,3e3);return()=>clearTimeout(e)},[N,z]),k)return(0,t.jsx)("div",{className:"p-8 text-center",children:j.exam.notFound});if(!N)return(0,t.jsx)(g.PageLoading,{label:j.common.loading});let F=N.questions.filter(e=>"ready"===e.status).length,U=N.questions.some(e=>"failed"===e.status),_=N.questions.filter(e=>"ready"===e.status&&e.errorItemId),O=S?_.filter(e=>S[e.id]).length:0,Q=async()=>{if(S&&0!==O){E(!0),P(null);try{await M.apiClient.post(`/api/exams/${N.id}/results`,{takenAt:(0,n.answeredDateToISOString)(q,e),results:_.filter(e=>S[e.id]).map(e=>({questionId:e.id,result:S[e.id]}))}),T(null),P(j.exam.resultsSaved),await z()}catch{P(j.exam.resultsSaveFailed)}finally{E(!1)}}},V=async e=>{if(await (0,A.confirmDialog)(j.mastery.deleteRecordConfirm,{destructive:!0}))try{await M.apiClient.delete(`/api/practice/record/${e}`),await z()}catch{P(j.mastery.deleteRecordFailed)}},Z=async()=>{await M.apiClient.post(`/api/exams/${N.id}/retry`,{language:b}),await z()},G=async()=>{await (0,A.confirmDialog)(j.exam.deleteConfirm,{destructive:!0})&&(await M.apiClient.delete(`/api/exams/${N.id}`),y.push("/exams"))};return(0,t.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,t.jsxs)("div",{className:"space-y-6 pb-24",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(p.BackButton,{fallbackUrl:"/exams",className:"-ml-2 shrink-0"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 space-y-2",children:[(0,t.jsx)("h1",{className:"text-xl sm:text-2xl font-bold tracking-tight break-words",children:N.title}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(B.ExamStatusBadge,{status:N.status}),(0,t.jsx)("span",{children:j.exam.progress.replace("{ready}",String(F)).replace("{total}",String(N.questions.length))}),(0,t.jsx)("span",{children:(0,n.formatDateTime)(N.createdAt,"yyyy-MM-dd HH:mm",e)})]})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(s.default,{href:`/exams/${N.id}/print`,children:(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",disabled:0===F,children:[(0,t.jsx)(c.Printer,{className:"mr-2 h-4 w-4"}),j.exam.print]})}),!S&&_.length>0&&(0,t.jsxs)(x.Button,{size:"sm",onClick:()=>{P(null),T({}),L((0,n.formatDateTime)(new Date,"yyyy-MM-dd",e))},children:[(0,t.jsx)(l,{className:"mr-2 h-4 w-4"}),j.exam.recordResults]}),U&&"generating"!==N.status&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:Z,children:[(0,t.jsx)(o.RotateCcw,{className:"mr-2 h-4 w-4"}),j.exam.retryFailed]}),(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:G,className:"text-red-600 hover:text-red-700 hover:bg-red-50 sm:ml-auto",children:[(0,t.jsx)(u.Trash2,{className:"mr-2 h-4 w-4"}),j.exam.delete]})]}),N.questions.length<N.requestedCount&&(0,t.jsx)("p",{className:"rounded-md border border-amber-200 bg-amber-50 p-3 text-sm text-amber-800",children:j.exam.fewerThanRequested.replaceAll("{actual}",String(N.questions.length))}),H&&(0,t.jsx)("p",{className:"rounded-md border p-3 text-sm",children:H}),S&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border bg-muted/30 p-3",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:"exam-taken-at",className:"text-sm font-medium",children:j.exam.takenAt}),(0,t.jsx)(h.Input,{id:"exam-taken-at",type:"date",value:q,onChange:e=>L(e.target.value),className:"sm:w-48"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:j.exam.recordHint})]}),(0,t.jsx)("div",{className:"space-y-3",children:N.questions.map(e=>(0,t.jsx)(D,{paperId:N.id,question:e,editingResult:S?S[e.id]??null:void 0,onResultChange:t=>T(a=>a?{...a,[e.id]:t}:a),onDeleteAttempt:V,onRegenerated:z},e.id))}),S&&(0,t.jsx)("div",{className:"fixed inset-x-0 bottom-16 z-30 border-t bg-background/95 p-3 backdrop-blur md:bottom-0",children:(0,t.jsxs)("div",{className:"max-w-4xl mx-auto flex items-center justify-end gap-2",children:[0===O&&(0,t.jsx)("span",{className:"mr-auto text-xs text-muted-foreground",children:j.exam.noResultSelected}),(0,t.jsx)(x.Button,{variant:"outline",onClick:()=>T(null),disabled:$,children:j.exam.cancel}),(0,t.jsxs)(x.Button,{onClick:Q,disabled:$||!q||0===O,children:[$?(0,t.jsx)(d.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,t.jsx)(m.Save,{className:"mr-2 h-4 w-4"}),j.exam.saveResults]})]})})]})})}],65602)},63661,e=>{"use strict";var t=e.i(18050),a=e.i(87486),s=e.i(11110);let r={generating:"bg-blue-100 text-blue-700 border-blue-200",ready:"bg-green-100 text-green-700 border-green-200",partial:"bg-amber-100 text-amber-700 border-amber-200",failed:"bg-red-100 text-red-700 border-red-200"};e.s(["ExamStatusBadge",0,function({status:e}){let{t:i}=(0,s.useLanguage)();return(0,t.jsx)(a.Badge,{variant:"outline",className:r[e],children:i.exam.status[e]})}])},91686,68983,e=>{"use strict";var t=e.i(18050),a=e.i(71645),s=e.i(22016),r=e.i(15519),i=e.i(30691),n=e.i(64659),l=e.i(55900),d=e.i(31278),c=e.i(7233),o=e.i(83086),m=e.i(27612),u=e.i(87486),x=e.i(19455),h=e.i(15288),p=e.i(11445),g=e.i(56909),f=e.i(93479),y=e.i(93733),j=e.i(11110),b=e.i(41931);function v({errorItemId:e,onSaved:s,onCancel:n}){let{t:l}=(0,j.useLanguage)(),{timeZone:c}=(0,r.useTimeZone)(),o=(0,i.formatDateTime)(new Date,"yyyy-MM-dd",c),[m,u]=(0,a.useState)(null),[h,p]=(0,a.useState)(o),[N,w]=(0,a.useState)(!1),[k,C]=(0,a.useState)(null),S=async()=>{if(m&&h){w(!0),C(null);try{await b.apiClient.post("/api/practice/record",{errorItemId:e,result:m,source:"manual",takenAt:(0,i.answeredDateToISOString)(h,c)}),s()}catch{C(l.mastery.resultSaveFailed)}finally{w(!1)}}};return(0,t.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,t.jsx)(y.PracticeResultPicker,{value:m,onChange:u,disabled:N}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:`practice-date-${e}`,className:"text-sm font-medium",children:l.mastery.recordDate}),(0,t.jsx)(f.Input,{id:`practice-date-${e}`,type:"date",value:h,max:o,onChange:e=>p(e.target.value),className:"sm:w-48"}),(0,t.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:n,disabled:N,className:"flex-1 sm:flex-none",children:l.exam.cancel}),(0,t.jsxs)(x.Button,{size:"sm",onClick:S,disabled:N||!m||!h,className:"flex-1 sm:flex-none",children:[N?(0,t.jsx)(d.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,t.jsx)(g.Save,{className:"mr-2 h-4 w-4"}),l.mastery.saveResult]})]})]}),k&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:k})]})}var N=e.i(49704),w=e.i(94114);let k={correct:"bg-green-100 text-green-700 border-green-200",wrong:"bg-red-100 text-red-700 border-red-200",not_attempted:"bg-amber-100 text-amber-700 border-amber-200"};e.s(["MasteryPanel",0,function({errorItemId:e,onMasteryStatusChange:g}){let{timeZone:f}=(0,r.useTimeZone)(),{t:y}=(0,j.useLanguage)(),[C,S]=(0,a.useState)(null),[T,R]=(0,a.useState)(null),[M,q]=(0,a.useState)(0),[A,L]=(0,a.useState)(!1),D=(0,a.useCallback)(()=>{b.apiClient.get(`/api/error-items/${e}/practice-records`).then(e=>{S(e),g?.(e.masteryStatus)}).catch(()=>void 0)},[e,g]);(0,a.useEffect)(D,[D]);let B=()=>{q(0),D()},I=async e=>{if(await (0,w.confirmDialog)(y.mastery.deleteRecordConfirm,{destructive:!0}))try{await b.apiClient.delete(`/api/practice/record/${e}`),B()}catch{w.toast.error(y.mastery.deleteRecordFailed)}},$=C?.records[0],E=!!$&&(!C?.masteryEvaluatedAt||new Date($.createdAt)>new Date(C.masteryEvaluatedAt));if((0,a.useEffect)(()=>{if(!E||M>=20)return;let e=setTimeout(()=>{q(e=>e+1),D()},4e3);return()=>clearTimeout(e)},[E,M,D]),!C)return null;let H=C.masteryProbability,P=null===H?null:Math.round(100*H),z=null===P?"":null!==H&&H>=.5?"bg-green-500":P>=30?"bg-amber-500":"bg-red-500",F=y.practice.difficulty;return(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(h.CardHeader,{children:(0,t.jsxs)(h.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(o.Sparkles,{className:"h-4 w-4 text-primary"}),y.mastery.probability]})}),(0,t.jsxs)(h.CardContent,{className:"space-y-4",children:[null===P?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:E?y.mastery.pending:y.mastery.notEvaluated}):(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,t.jsxs)("span",{className:"text-3xl font-bold",children:[P,"%"]}),(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[E&&(0,t.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}),(0,t.jsx)(u.Badge,{variant:"outline",children:"ai"===C.masterySource?y.mastery.aiEvaluated:y.mastery.estimated})]})]}),(0,t.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:`h-full ${z} transition-all`,style:{width:`${P}%`}})}),C.masteryReason&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:C.masteryReason}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:y.mastery.thresholdHint})]}),(0,t.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold",children:y.mastery.history}),!A&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>L(!0),children:[(0,t.jsx)(c.Plus,{className:"mr-1 h-4 w-4"}),y.mastery.addRecord]})]}),A&&(0,t.jsx)(v,{errorItemId:e,onCancel:()=>L(!1),onSaved:()=>{L(!1),B()}}),0===C.records.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground italic",children:y.mastery.noHistory}):(0,t.jsx)("ul",{className:"divide-y rounded-md border",children:C.records.map(e=>(0,t.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>R(T===e.id?null:e.id),children:[(0,t.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,i.formatDateTime)(e.createdAt,"yyyy-MM-dd HH:mm",f)}),(0,t.jsx)(u.Badge,{variant:"outline",className:k[e.result]||"",children:y.mastery.results[e.result]||e.result}),e.difficulty&&(0,t.jsx)(u.Badge,{variant:"secondary",children:F[e.difficulty]||e.difficulty}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e.exam?`${y.mastery.sources.exam} \xb7 ${e.exam.title}`:y.mastery.sources[e.source]||y.mastery.sources.practice}),e.questionText&&(0,t.jsx)("span",{className:"ml-auto text-muted-foreground",children:T===e.id?(0,t.jsx)(l.ChevronUp,{className:"h-4 w-4"}):(0,t.jsx)(n.ChevronDown,{className:"h-4 w-4"})})]}),(0,t.jsx)("button",{type:"button","aria-label":y.mastery.deleteRecord,title:y.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>I(e.id),children:(0,t.jsx)(m.Trash2,{className:"h-4 w-4"})})]}),T===e.id&&e.questionText&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,t.jsx)(p.MarkdownRenderer,{content:e.questionText}),(0,t.jsx)(N.QuestionFigure,{svg:e.figureSvg}),e.wrongAnswerText&&(0,t.jsxs)("div",{className:"border-t pt-2",children:[(0,t.jsx)("p",{className:"mb-1 font-medium",children:y.editor.wrongAnswerText}),(0,t.jsx)(p.MarkdownRenderer,{content:e.wrongAnswerText})]}),e.mistakeAnalysis&&(0,t.jsxs)("div",{className:"border-t pt-2",children:[(0,t.jsx)("p",{className:"mb-1 font-medium",children:y.editor.mistakeAnalysis}),(0,t.jsx)(p.MarkdownRenderer,{content:e.mistakeAnalysis})]}),e.originalImageUrl&&(0,t.jsx)("img",{src:e.originalImageUrl,alt:y.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),e.answerText&&(0,t.jsx)("div",{className:"border-t pt-2",children:(0,t.jsx)(p.MarkdownRenderer,{content:e.answerText,className:"font-semibold"})}),e.exam&&(0,t.jsx)(s.default,{href:`/exams/${e.exam.paperId}`,className:"text-xs text-primary hover:underline",children:e.exam.title})]})]},e.id))})]})]})]})},"RESULT_BADGE_CLASS",0,k],91686);var C=e.i(8821);e.s(["WandSparkles",()=>C.default],68983)},93733,e=>{"use strict";var t=e.i(18050),a=e.i(69638);let s=(0,e.i(75254).default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var r=e.i(73884),i=e.i(11110);let n=[{value:"correct",icon:a.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:r.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:s,active:"border-amber-600 bg-amber-50 text-amber-700"}];e.s(["PracticeResultPicker",0,function({value:e,onChange:a,disabled:s,size:r="md"}){let{t:l}=(0,i.useLanguage)(),d="sm"===r?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,t.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:n.map(({value:i,icon:n,active:c})=>(0,t.jsxs)("button",{type:"button",role:"radio","aria-checked":e===i,disabled:s,onClick:()=>a(i),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${d} ${e===i?c:"border-input hover:bg-muted"}`,children:[(0,t.jsx)(n,{className:"sm"===r?"h-3 w-3":"h-4 w-4"}),l.mastery.results[i]]},i))})}],93733)},49704,e=>{"use strict";var t=e.i(18050),a=e.i(11110),s=e.i(75157);e.s(["QuestionFigure",0,function({svg:e,className:r}){let{t:i}=(0,a.useLanguage)();return e?(0,t.jsx)("figure",{className:(0,s.cn)("question-figure my-3",r),children:(0,t.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:i.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],49704)},90546,e=>{"use strict";var t=e.i(18050),a=e.i(18566),s=e.i(19455),r=e.i(71689);e.s(["BackButton",0,function({fallbackUrl:e,className:i}){let n=(0,a.useRouter)();return(0,t.jsx)(s.Button,{variant:"ghost",size:"icon",onClick:()=>{n.push(e)},className:i,children:(0,t.jsx)(r.ArrowLeft,{className:"h-5 w-5"})})}])},15288,e=>{"use strict";var t=e.i(18050),a=e.i(75157);e.s(["Card",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...s})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",e),...s})},"CardDescription",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",e),...s})}])},86963,e=>{"use strict";var t=e.i(18050),a=e.i(31278);e.s(["PageLoading",0,function({label:e}){return(0,t.jsxs)("div",{className:"flex min-h-[50vh] flex-col items-center justify-center gap-3 text-muted-foreground",children:[(0,t.jsx)(a.Loader2,{className:"h-7 w-7 animate-spin text-primary"}),e&&(0,t.jsx)("p",{className:"text-sm",children:e})]})}])},35209,e=>{"use strict";var t=e.i(71645),a=e.i(11110);e.s(["usePageTitle",0,function(...e){let{t:s}=(0,a.useLanguage)(),r=[s.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,t.useEffect)(()=>{document.title=r},[r])}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,72664,41176,38465,3198,e=>{"use strict";var t=e.i(75254);let i=(0,t.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);e.s(["Box",0,i],72664);var r=e.i(18050),n=e.i(71645);let a=(0,t.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);var s=e.i(86536),o=e.i(11445),l=e.i(24687),h=e.i(11110),d=e.i(75157);e.s(["MarkdownEditor",0,function({value:e,onChange:t,className:i,...c}){let{t:u}=(0,h.useLanguage)(),[m,g]=(0,n.useState)("source"),p=(0,n.useId)(),w=[{mode:"source",label:u.markdownEditor.source,icon:a},{mode:"preview",label:u.markdownEditor.preview,icon:s.Eye}];return(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("div",{role:"tablist","aria-label":u.markdownEditor.modeLabel,className:"flex justify-end",children:(0,r.jsx)("div",{className:"inline-flex rounded-md border bg-muted/40 p-0.5",children:w.map(({mode:e,label:t,icon:i})=>(0,r.jsxs)("button",{type:"button",role:"tab","aria-selected":m===e,"aria-controls":p,onClick:()=>g(e),className:(0,d.cn)("flex items-center gap-1 rounded px-2.5 py-1 text-xs transition-colors",m===e?"bg-background font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,r.jsx)(i,{className:"h-3.5 w-3.5"}),t]},e))})}),(0,r.jsx)("div",{id:p,role:"tabpanel",children:"source"===m?(0,r.jsx)(l.Textarea,{value:e,onChange:e=>t(e.target.value),className:i,...c}):(0,r.jsx)("div",{className:"min-h-24 cursor-text rounded-md border bg-muted/20 px-3 py-2",onDoubleClick:()=>g("source"),title:u.markdownEditor.doubleClickToEdit,children:e.trim()?(0,r.jsx)(o.MarkdownRenderer,{content:e}):(0,r.jsx)("p",{className:"text-sm italic text-muted-foreground",children:u.markdownEditor.empty})})})]})}],41176);var c=e.i(67489),u=e.i(10980),m=e.i(41931);e.s(["NotebookSelector",0,function({value:e,onChange:t,className:i}){let[a,s]=(0,n.useState)([]),[o,l]=(0,n.useState)(!0),{t:d}=(0,h.useLanguage)();return(0,n.useEffect)(()=>{(async()=>{try{let e=await m.apiClient.get("/api/notebooks");s(e)}catch(e){console.error("Failed to fetch notebooks:",e)}finally{l(!1)}})()},[]),(0,r.jsxs)(c.Select,{value:e,onValueChange:t,children:[(0,r.jsx)(c.SelectTrigger,{className:i,children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(u.BookOpen,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)(c.SelectValue,{placeholder:d.notebooks?.selector?.placeholder||"Select Notebook"})]})}),(0,r.jsx)(c.SelectContent,{children:0===a.length?(0,r.jsx)("div",{className:"p-2 text-sm text-muted-foreground text-center",children:d.notebooks?.selector?.empty||"No notebooks available"}):a.map(e=>(0,r.jsx)(c.SelectItem,{value:e.id,children:e.name},e.id))})]})}],38465);var g=e.i(31278);let p=(0,t.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),w=(0,t.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var x=e.i(67240),f=e.i(16715),y=e.i(27612),b=e.i(19455),v=e.i(94114);let C=null,k=["setcoordsystem","setaxesvisible","setgridvisible","setcolor","setlinethickness","setlinestyle","setpointsize","setpointstyle","setlabelvisible","setcaption","setvisible","setfilling","setvalue","setfixed","setbackgroundcolor"];function D(e,t){for(let i of t)try{if(function(e){let t=e.toLowerCase().trim();return k.some(e=>t.startsWith(e+"("))}(i)){let t=function(e){let t=e.match(/^(\w+)\(([\s\S]+)\)$/);if(!t)return null;try{let e=t[2].trim();if(e.startsWith("[")&&e.endsWith("]"))return{m:t[1],a:JSON.parse(e)};if(/^-?\d+(\.\d+)?$/.test(e))return{m:t[1],a:[Number(e)]};if("true"===e||"false"===e)return{m:t[1],a:["true"===e]};if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return{m:t[1],a:[e.slice(1,-1)]};let i=e.split(",").map(e=>e.trim()).map(e=>/^-?\d+(\.\d+)?$/.test(e)?Number(e):"true"===e||"false"===e?"true"===e:e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e);return{m:t[1],a:i}}catch{return null}}(i);t&&"function"==typeof e[t.m]&&e[t.m](...t.a)}else{let t=i.trim();t&&!/[<>'"]/.test(t)?e.evalCommand(t):console.warn(`[GGB] Blocked potentially unsafe command: ${i.substring(0,50)}`)}}catch(e){console.warn(`[GGB] Failed: ${i}`,e)}}e.s(["GeogebraDemo",0,function({commands:e,height:t=700,showToolBar:i=!1,showAlgebraInput:a=!1,showMenuBar:s=!1,className:o="",onRegenerate:l,onDelete:d}){let{t:c}=(0,h.useLanguage)(),u=(0,n.useRef)(null),m=(0,n.useRef)(null),k=(0,n.useRef)(`ggb-${Math.random().toString(36).slice(2,9)}`),[j,N]=(0,n.useState)(!0),[M,R]=(0,n.useState)(null),[S,E]=(0,n.useState)(!0),[$,B]=(0,n.useState)(!1),[L,P]=(0,n.useState)(!1),_=(0,n.useMemo)(()=>(function(e){if(!e?.trim())return[];let t=e.trim();if(t.startsWith("["))try{let e=JSON.parse(t);if(Array.isArray(e))return e.filter(e=>"string"==typeof e&&""!==e.trim())}catch{}return t.split("\n").map(e=>e.trim()).filter(e=>e&&!e.startsWith("//"))})(e),[e]);(0,n.useEffect)(()=>{if(0===_.length)return;let e=!1,r=k.current;return(C||(C=new Promise((e,t)=>{if(window.GGBApplet)return void e();let i=document.createElement("script");i.src="https://www.geogebra.org/apps/deployggb.js",i.async=!0,i.onload=()=>e(),i.onerror=()=>{C=null,t(Error("Failed to load GeoGebra"))},document.head.appendChild(i)}))).then(()=>{if(e)return;let n=window.GGBApplet;if(!n){R("GeoGebra 未正确加载"),N(!1);return}let o=u.current;if(o){o.innerHTML=`<div id="${r}" style="width:100%;height:${t}px"></div>`;try{new n({appName:"classic",width:"100%",height:t,showToolBar:i,showAlgebraInput:a,showMenuBar:s,showResetIcon:!0,enableRightClick:!0,enableShiftDragZoom:!0,language:"zh",appletOnLoad:i=>{if(e)return;m.current=i;let r=u.current?.firstElementChild;if(r){r.style.width="100%";let e=u.current?.offsetWidth||r.offsetWidth||800;i.setSize(e,t)}D(i,_),N(!1)}},!0).inject(r)}catch(t){console.error("[GGB] Init failed:",t),e||(R("GeoGebra 初始化失败"),N(!1))}}}).catch(t=>{console.error("[GGB] Script load failed:",t),e||(R("无法加载 GeoGebra 组件"),N(!1))}),()=>{e=!0;try{let e=m.current;e&&"function"==typeof e.remove&&e.remove()}catch(e){console.warn("[GGB] Cleanup failed:",e)}m.current=null,u.current&&(u.current.innerHTML="")}},[_,i,a,s]),(0,n.useEffect)(()=>{let e=u.current?.firstElementChild;if(!e)return;let i=S?700:t;e.style.width="100%",e.style.height=`${i}px`;let r=m.current;if(r?.setSize){let t=u.current?.offsetWidth||e.offsetWidth||800;r.setSize(t,i)}},[S,t]);let I=(0,n.useCallback)(()=>{let e=m.current;if(e)try{e.resetConstruction(),setTimeout(()=>{m.current&&D(m.current,_)},300)}catch(e){console.warn("[GGB] Reset failed",e)}},[_]),H=(0,n.useCallback)(async()=>{if(l&&!$){B(!0);try{await l()}finally{B(!1)}}},[l,$]),A=(0,n.useCallback)(async()=>{if(d&&!L&&await (0,v.confirmDialog)(c.geogebra.confirmDelete,{destructive:!0})){P(!0);try{await d()}catch{v.toast.error(c.geogebra.deleteFailed)}finally{P(!1)}}},[d,L,c]);return 0===_.length?null:(0,r.jsxs)("div",{className:`relative rounded-lg border bg-card ${o}`,children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b bg-muted/30",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"GeoGebra 动态演示"}),j&&(0,r.jsx)(g.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[l&&(0,r.jsxs)(b.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:H,title:"重新生成",disabled:$||j,children:[$?(0,r.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(f.RefreshCw,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:"重新生成"})]}),d&&(0,r.jsxs)(b.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:A,title:c.geogebra.delete,disabled:L||$,children:[L?(0,r.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(y.Trash2,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:c.geogebra.delete})]}),(0,r.jsx)(b.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:I,title:"重置",disabled:j,children:(0,r.jsx)(x.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(b.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>E(e=>!e),title:S?"缩小":"放大",children:S?(0,r.jsx)(w,{className:"h-3.5 w-3.5"}):(0,r.jsx)(p,{className:"h-3.5 w-3.5"})})]})]}),(0,r.jsx)("div",{ref:u,style:{width:"100%"}}),j&&(0,r.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 rounded-b-lg",style:{top:37},children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,r.jsx)(g.Loader2,{className:"h-6 w-6 animate-spin text-primary"}),(0,r.jsx)("span",{className:"text-sm text-muted-foreground",children:"加载 GeoGebra..."})]})}),M&&(0,r.jsx)("div",{className:"flex items-center justify-center text-sm text-destructive",style:{minHeight:t},children:M})]})}],3198)},56909,e=>{"use strict";let t=(0,e.i(75254).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],56909)},83086,e=>{"use strict";let t=(0,e.i(75254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],83086)},69937,e=>{"use strict";var t=e.i(18050);let i=(0,e.i(75254).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var r=e.i(11110),n=e.i(75157);let a=[1,2,3,4,5];e.s(["DifficultyStars",0,function({value:e,onChange:s,disabled:o,size:l="sm",showUnrated:h=!0,className:d}){let{t:c}=(0,r.useLanguage)(),u=e??0,m="sm"===l?"h-3.5 w-3.5":"h-5 w-5",g=u?c.difficulty.starsLabel.replace("{n}",String(u)):c.difficulty.unrated;return s?(0,t.jsxs)("span",{className:(0,n.cn)("inline-flex items-center gap-0.5",d),role:"group","aria-label":`${c.difficulty.label}:${g}`,title:c.difficulty.clearHint,children:[a.map(e=>(0,t.jsx)("button",{type:"button",disabled:o,onClick:()=>s(e===u?null:e),"aria-label":c.difficulty.setStars.replace("{n}",String(e)),"aria-pressed":e<=u,className:"rounded p-0.5 hover:bg-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,t.jsx)(i,{className:(0,n.cn)(m,e<=u?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},e)),!u&&h&&(0,t.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:c.difficulty.unrated})]}):u?(0,t.jsx)("span",{className:(0,n.cn)("inline-flex items-center",d),role:"img","aria-label":`${c.difficulty.label}:${g}`,title:g,children:a.map(e=>(0,t.jsx)(i,{className:(0,n.cn)(m,e<=u?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},e))}):h?(0,t.jsx)("span",{className:(0,n.cn)("text-xs text-muted-foreground",d),children:c.difficulty.unrated}):null}],69937)},12130,28928,e=>{"use strict";var t=e.i(18050),i=e.i(71645),r=i,n=Object.defineProperty,a=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?n(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};let s={x:0,y:0,width:0,height:0,unit:"px"},o=(e,t,i)=>Math.min(Math.max(e,t),i),l=(e,t)=>e===t||e.width===t.width&&e.height===t.height&&e.x===t.x&&e.y===t.y&&e.unit===t.unit;function h(e,t,i){return"%"===e.unit?{...s,...e,unit:"%"}:{unit:"%",x:e.x?e.x/t*100:0,y:e.y?e.y/i*100:0,width:e.width?e.width/t*100:0,height:e.height?e.height/i*100:0}}function d(e,t,i){return e.unit?"px"===e.unit?{...s,...e,unit:"px"}:{unit:"px",x:e.x?e.x*t/100:0,y:e.y?e.y*i/100:0,width:e.width?e.width*t/100:0,height:e.height?e.height*i/100:0}:{...s,...e,unit:"px"}}function c(e,t,i,r,n,a=0,s=0,o=r,l=n){let h={...e},d=Math.min(a,r),u=Math.min(s,n),m=Math.min(o,r),g=Math.min(l,n);t&&(t>1?(u=(d=s?s*t:d)/t,m=o*t):(d=(u=a?a/t:u)*t,g=l/t)),h.y<0&&(h.height=Math.max(h.height+h.y,u),h.y=0),h.x<0&&(h.width=Math.max(h.width+h.x,d),h.x=0);let p=r-(h.x+h.width);p<0&&(h.x=Math.min(h.x,r-d),h.width+=p);let w=n-(h.y+h.height);if(w<0&&(h.y=Math.min(h.y,n-u),h.height+=w),h.width<d&&(("sw"===i||"nw"==i)&&(h.x-=d-h.width),h.width=d),h.height<u&&(("nw"===i||"ne"==i)&&(h.y-=u-h.height),h.height=u),h.width>m&&(("sw"===i||"nw"==i)&&(h.x-=m-h.width),h.width=m),h.height>g&&(("nw"===i||"ne"==i)&&(h.y-=g-h.height),h.height=g),t){let e=h.width/h.height;if(e<t){let e=Math.max(h.width/t,u);("nw"===i||"ne"==i)&&(h.y-=e-h.height),h.height=e}else if(e>t){let e=Math.max(h.height*t,d);("sw"===i||"nw"==i)&&(h.x-=e-h.width),h.width=e}}return h}let u={capture:!0,passive:!1},m=0,g=class e extends r.PureComponent{constructor(){super(...arguments),a(this,"docMoveBound",!1),a(this,"mouseDownOnCrop",!1),a(this,"dragStarted",!1),a(this,"evData",{startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0}),a(this,"componentRef",(0,r.createRef)()),a(this,"mediaRef",(0,r.createRef)()),a(this,"resizeObserver"),a(this,"initChangeCalled",!1),a(this,"instanceId",`rc-${m++}`),a(this,"state",{cropIsActive:!1,newCropIsBeingDrawn:!1}),a(this,"onCropPointerDown",e=>{let{crop:t,disabled:i}=this.props,r=this.getBox();if(!t)return;let n=d(t,r.width,r.height);if(i)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let a=e.target.dataset.ord,s=e.clientX,o=e.clientY,l=n.x,h=n.y;if(a){let t=e.clientX-r.x,i=e.clientY-r.y,d=0,c=0;"ne"===a||"e"==a?(d=t-(n.x+n.width),c=i-n.y,l=n.x,h=n.y+n.height):"se"===a||"s"===a?(d=t-(n.x+n.width),c=i-(n.y+n.height),l=n.x,h=n.y):"sw"===a||"w"==a?(d=t-n.x,c=i-(n.y+n.height),l=n.x+n.width,h=n.y):("nw"===a||"n"==a)&&(d=t-n.x,c=i-n.y,l=n.x+n.width,h=n.y+n.height),s=l+r.x+d,o=h+r.y+c}this.evData={startClientX:s,startClientY:o,startCropX:l,startCropY:h,clientX:e.clientX,clientY:e.clientY,isResize:!!a,ord:a},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})}),a(this,"onComponentPointerDown",e=>{let{crop:t,disabled:i,locked:r,keepSelection:n,onChange:a}=this.props,s=this.getBox();if(i||r||n&&t)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let o=e.clientX-s.x,l=e.clientY-s.y,c={unit:"px",x:o,y:l,width:0,height:0};this.evData={startClientX:e.clientX,startClientY:e.clientY,startCropX:o,startCropY:l,clientX:e.clientX,clientY:e.clientY,isResize:!0},this.mouseDownOnCrop=!0,a(d(c,s.width,s.height),h(c,s.width,s.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})}),a(this,"onDocPointerMove",e=>{let t,{crop:i,disabled:r,onChange:n,onDragStart:a}=this.props,s=this.getBox();if(r||!i||!this.mouseDownOnCrop)return;e.cancelable&&e.preventDefault(),this.dragStarted||(this.dragStarted=!0,a&&a(e));let{evData:o}=this;o.clientX=e.clientX,o.clientY=e.clientY,l(i,t=o.isResize?this.resizeCrop():this.dragCrop())||n(d(t,s.width,s.height),h(t,s.width,s.height))}),a(this,"onComponentKeyDown",t=>{let{crop:i,disabled:r,onChange:n,onComplete:a}=this.props;if(r)return;let s=t.key,l=!1;if(!i)return;let c=this.getBox(),u=this.makePixelCrop(c),m=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?e.nudgeStepLarge:t.shiftKey?e.nudgeStepMedium:e.nudgeStep;if("ArrowLeft"===s?(u.x-=m,l=!0):"ArrowRight"===s?(u.x+=m,l=!0):"ArrowUp"===s?(u.y-=m,l=!0):"ArrowDown"===s&&(u.y+=m,l=!0),l){t.cancelable&&t.preventDefault(),u.x=o(u.x,0,c.width-u.width),u.y=o(u.y,0,c.height-u.height);let e=d(u,c.width,c.height),i=h(u,c.width,c.height);n(e,i),a&&a(e,i)}}),a(this,"onHandlerKeyDown",(t,i)=>{var r,n;let a,{aspect:s=0,crop:o,disabled:u,minWidth:m=0,minHeight:g=0,maxWidth:p,maxHeight:w,onChange:x,onComplete:f}=this.props,y=this.getBox();if(u||!o||"ArrowUp"!==t.key&&"ArrowDown"!==t.key&&"ArrowLeft"!==t.key&&"ArrowRight"!==t.key)return;t.stopPropagation(),t.preventDefault();let b=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?e.nudgeStepLarge:t.shiftKey?e.nudgeStepMedium:e.nudgeStep,v=c((r=d(o,y.width,y.height),n=t.key,a={...r},"ArrowLeft"===n?"nw"===i?(a.x-=b,a.y-=b,a.width+=b,a.height+=b):"w"===i?(a.x-=b,a.width+=b):"sw"===i?(a.x-=b,a.width+=b,a.height+=b):"ne"===i?(a.y+=b,a.width-=b,a.height-=b):"e"===i?a.width-=b:"se"===i&&(a.width-=b,a.height-=b):"ArrowRight"===n&&("nw"===i?(a.x+=b,a.y+=b,a.width-=b,a.height-=b):"w"===i?(a.x+=b,a.width-=b):"sw"===i?(a.x+=b,a.width-=b,a.height-=b):"ne"===i?(a.y-=b,a.width+=b,a.height+=b):"e"===i?a.width+=b:"se"===i&&(a.width+=b,a.height+=b)),"ArrowUp"===n?"nw"===i?(a.x-=b,a.y-=b,a.width+=b,a.height+=b):"n"===i?(a.y-=b,a.height+=b):"ne"===i?(a.y-=b,a.width+=b,a.height+=b):"sw"===i?(a.x+=b,a.width-=b,a.height-=b):"s"===i?a.height-=b:"se"===i&&(a.width-=b,a.height-=b):"ArrowDown"===n&&("nw"===i?(a.x+=b,a.y+=b,a.width-=b,a.height-=b):"n"===i?(a.y+=b,a.height-=b):"ne"===i?(a.y+=b,a.width-=b,a.height-=b):"sw"===i?(a.x-=b,a.width+=b,a.height+=b):"s"===i?a.height+=b:"se"===i&&(a.width+=b,a.height+=b)),a),s,i,y.width,y.height,m,g,p,w);if(!l(o,v)){let e=h(v,y.width,y.height);x(v,e),f&&f(v,e)}}),a(this,"onDocPointerDone",e=>{let{crop:t,disabled:i,onComplete:r,onDragEnd:n}=this.props,a=this.getBox();this.unbindDocMove(),!(i||!t)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,n&&n(e),r&&r(d(t,a.width,a.height),h(t,a.width,a.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))}),a(this,"onDragFocus",()=>{var e;null==(e=this.componentRef.current)||e.scrollTo(0,0)})}get document(){return document}getBox(){let e=this.mediaRef.current;if(!e)return{x:0,y:0,width:0,height:0};let{x:t,y:i,width:r,height:n}=e.getBoundingClientRect();return{x:t,y:i,width:r,height:n}}componentDidUpdate(e){let{crop:t,onComplete:i}=this.props;if(i&&!e.crop&&t){let{width:e,height:r}=this.getBox();e&&r&&i(d(t,e,r),h(t,e,r))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,u),this.document.addEventListener("pointerup",this.onDocPointerDone,u),this.document.addEventListener("pointercancel",this.onDocPointerDone,u),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,u),this.document.removeEventListener("pointerup",this.onDocPointerDone,u),this.document.removeEventListener("pointercancel",this.onDocPointerDone,u),this.docMoveBound=!1)}getCropStyle(){let{crop:e}=this.props;if(e)return{top:`${e.y}${e.unit}`,left:`${e.x}${e.unit}`,width:`${e.width}${e.unit}`,height:`${e.height}${e.unit}`}}dragCrop(){let{evData:e}=this,t=this.getBox(),i=this.makePixelCrop(t),r=e.clientX-e.startClientX,n=e.clientY-e.startClientY;return i.x=o(e.startCropX+r,0,t.width-i.width),i.y=o(e.startCropY+n,0,t.height-i.height),i}getPointRegion(e,t,i,r){let n,{evData:a}=this,s=a.clientX-e.x,o=a.clientY-e.y;return n=r&&t?"nw"===t||"n"===t||"ne"===t:o<a.startCropY,(i&&t?"nw"===t||"w"===t||"sw"===t:s<a.startCropX)?n?"nw":"sw":n?"ne":"se"}resolveMinDimensions(e,t,i=0,r=0){let n=Math.min(i,e.width),a=Math.min(r,e.height);return t&&(n||a)?t>1?n?[n,n/t]:[a*t,a]:a?[a*t,a]:[n,n/t]:[n,a]}resizeCrop(){let{evData:t}=this,{aspect:i=0,maxWidth:r,maxHeight:n}=this.props,a=this.getBox(),[s,l]=this.resolveMinDimensions(a,i,this.props.minWidth,this.props.minHeight),h=this.makePixelCrop(a),d=this.getPointRegion(a,t.ord,s,l),u=t.ord||d,m=t.clientX-t.startClientX,g=t.clientY-t.startClientY;(s&&"nw"===u||"w"===u||"sw"===u)&&(m=Math.min(m,-s)),(l&&"nw"===u||"n"===u||"ne"===u)&&(g=Math.min(g,-l));let p={unit:"px",x:0,y:0,width:0,height:0};"ne"===d?(p.x=t.startCropX,p.width=m,i?p.height=p.width/i:p.height=Math.abs(g),p.y=t.startCropY-p.height):"se"===d?(p.x=t.startCropX,p.y=t.startCropY,p.width=m,i?p.height=p.width/i:p.height=g):"sw"===d?(p.x=t.startCropX+m,p.y=t.startCropY,p.width=Math.abs(m),i?p.height=p.width/i:p.height=g):"nw"===d&&(p.x=t.startCropX+m,p.width=Math.abs(m),i?(p.height=p.width/i,p.y=t.startCropY-p.height):(p.height=Math.abs(g),p.y=t.startCropY+g));let w=c(p,i,d,a.width,a.height,s,l,r,n);return i||e.xyOrds.indexOf(u)>-1?h=w:e.xOrds.indexOf(u)>-1?(h.x=w.x,h.width=w.width):e.yOrds.indexOf(u)>-1&&(h.y=w.y,h.height=w.height),h.x=o(h.x,0,a.width-h.width),h.y=o(h.y,0,a.height-h.height),h}renderCropSelection(){let{ariaLabels:t=e.defaultProps.ariaLabels,disabled:i,locked:n,renderSelectionAddon:a,ruleOfThirds:s,crop:o}=this.props,l=this.getCropStyle();if(o)return r.default.createElement("div",{style:l,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!i&&!n&&r.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},r.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),r.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),r.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),r.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":t.nwDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"nw"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":t.nDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"n"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":t.neDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"ne"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":t.eDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"e"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":t.seDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"se"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":t.sDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"s"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":t.swDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"sw"),role:"button"}),r.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":t.wDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"w"),role:"button"})),a&&r.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:e=>e.stopPropagation()},a(this.state)),s&&r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),r.default.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(e){return d({...s,...this.props.crop||{}},e.width,e.height)}render(){let{aspect:e,children:t,circularCrop:i,className:n,crop:a,disabled:s,locked:o,style:l,ruleOfThirds:h}=this.props,{cropIsActive:d,newCropIsBeingDrawn:c}=this.state,u=a?this.renderCropSelection():null,m=((...e)=>e.filter(e=>e&&"string"==typeof e).join(" "))("ReactCrop",n,d&&"ReactCrop--active",s&&"ReactCrop--disabled",o&&"ReactCrop--locked",c&&"ReactCrop--new-crop",a&&e&&"ReactCrop--fixed-aspect",a&&i&&"ReactCrop--circular-crop",a&&h&&"ReactCrop--rule-of-thirds",!this.dragStarted&&a&&!a.width&&!a.height&&"ReactCrop--invisible-crop",i&&"ReactCrop--no-animate");return r.default.createElement("div",{ref:this.componentRef,className:m,style:l},r.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},t),a?r.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},r.default.createElement("defs",null,r.default.createElement("mask",{id:`hole-${this.instanceId}`},r.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),i?r.default.createElement("ellipse",{cx:`${a.x+a.width/2}${a.unit}`,cy:`${a.y+a.height/2}${a.unit}`,rx:`${a.width/2}${a.unit}`,ry:`${a.height/2}${a.unit}`,fill:"black"}):r.default.createElement("rect",{x:`${a.x}${a.unit}`,y:`${a.y}${a.unit}`,width:`${a.width}${a.unit}`,height:`${a.height}${a.unit}`,fill:"black"}))),r.default.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,u)}};a(g,"xOrds",["e","w"]),a(g,"yOrds",["n","s"]),a(g,"xyOrds",["nw","ne","se","sw"]),a(g,"nudgeStep",1),a(g,"nudgeStepMedium",10),a(g,"nudgeStepLarge",100),a(g,"defaultProps",{ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}});var p=e.i(19455),w=e.i(76639),x=e.i(37727),f=e.i(11110);async function y(e,t){let{naturalWidth:i,naturalHeight:r}=e;return Promise.all(t.map(t=>new Promise((n,a)=>{let s=document.createElement("canvas"),o=Math.round(t.x*i),l=Math.round(t.y*r);s.width=Math.max(1,Math.round(t.width*i)),s.height=Math.max(1,Math.round(t.height*r));let h=s.getContext("2d");h?(h.drawImage(e,o,l,s.width,s.height,0,0,s.width,s.height),s.toBlob(e=>e?n(e):a(Error("Canvas is empty")),"image/jpeg",.95)):a(Error("Canvas is not supported"))})))}let b=(0,i.forwardRef)(function({imageSrc:e,regions:r,onChange:n},a){let{t:s}=(0,f.useLanguage)(),o=(0,i.useRef)(null),l=(0,i.useRef)(null),[h,d]=(0,i.useState)(null),c=e=>{let t=o.current.getBoundingClientRect();return{x:(e.clientX-t.left)/t.width,y:(e.clientY-t.top)/t.height}},u=()=>{h&&h.width>=.02&&h.height>=.02&&n([...r,h]),l.current=null,d(null)},m=e=>({left:`${100*e.x}%`,top:`${100*e.y}%`,width:`${100*e.width}%`,height:`${100*e.height}%`});return(0,t.jsxs)("div",{className:"relative inline-block select-none",children:[(0,t.jsx)("img",{ref:a,src:e,alt:"",draggable:!1,style:{maxHeight:"65vh",maxWidth:"100%",objectFit:"contain"},className:"block"}),(0,t.jsxs)("div",{ref:o,className:"absolute inset-0 cursor-crosshair",style:{touchAction:"none"},onPointerDown:e=>{0===e.button&&(o.current?.setPointerCapture(e.pointerId),l.current=c(e),d(null))},onPointerMove:e=>{var t,i,r,n;let a,s,o;if(!l.current)return;let h=c(e);d((t=l.current.x,i=l.current.y,r=h.x,n=h.y,s=(a=e=>Math.min(1,Math.max(0,e)))(Math.min(t,r)),o=a(Math.min(i,n)),{x:s,y:o,width:a(Math.max(t,r))-s,height:a(Math.max(i,n))-o}))},onPointerUp:u,onPointerCancel:u,children:[r.map((e,i)=>(0,t.jsxs)("div",{className:"absolute border-2 border-sky-400 bg-sky-400/15",style:m(e),children:[(0,t.jsx)("span",{className:"absolute left-0 top-0 bg-sky-500 px-1.5 text-xs font-bold text-white",children:i+1}),(0,t.jsx)("button",{type:"button",className:"absolute -right-3 -top-3 flex h-6 w-6 items-center justify-center rounded-full bg-red-500 text-white shadow","aria-label":s.batchImport.removeRegion.replace("{index}",String(i+1)),onPointerDown:e=>e.stopPropagation(),onClick:()=>n(r.filter((e,t)=>t!==i)),children:(0,t.jsx)(x.X,{className:"h-3 w-3"})})]},i)),h&&(0,t.jsx)("div",{className:"absolute border-2 border-dashed border-yellow-300 bg-yellow-300/10",style:m(h)})]})]})});async function v(e,t=1,i=1920,r=.8){return new Promise((n,a)=>{let s=new FileReader;s.onload=s=>{let o=new Image;o.onload=()=>{let s=document.createElement("canvas"),l=s.getContext("2d");if(!l)return void a(Error("无法获取 Canvas 上下文"));let h=o.width,d=o.height;h>i&&(d=d*i/h,h=i),s.width=h,s.height=d,l.drawImage(o,0,0,h,d);let c=r,u=s.toDataURL("image/jpeg",c),m=3*u.length/4/1024/1024;for(;m>t&&c>.1;){c-=.1;let e=3*(u=s.toDataURL("image/jpeg",c)).length/4/1024/1024;if(console.log(`压缩质量: ${c.toFixed(1)}, 大小: ${e.toFixed(2)}MB`),e<=t)break}console.log(`原始文件: ${(e.size/1024/1024).toFixed(2)}MB, 压缩后: ${(3*u.length/4/1024/1024).toFixed(2)}MB`),n(u)},o.onerror=()=>a(Error("图片加载失败")),o.src=s.target?.result},s.onerror=()=>a(Error("文件读取失败")),s.readAsDataURL(e)})}async function C(e){let t=e.size/1024/1024;return(console.log(`文件大小: ${t.toFixed(2)}MB`),t>1)?(console.log("文件超过阈值,开始压缩..."),await v(e,1)):(console.log("文件大小合适,无需压缩"),new Promise((t,i)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=i,r.readAsDataURL(e)}))}e.s(["ImageCropper",0,function({imageSrc:e,open:r,onClose:n,onCropComplete:a,onMultiCropComplete:s}){let{t:o}=(0,f.useLanguage)(),[l,h]=(0,i.useState)(),[d,c]=(0,i.useState)(),u=(0,i.useRef)(null),[m,x]=(0,i.useState)("single"),[v,C]=(0,i.useState)({src:e,regions:[]}),k=v.src===e?v.regions:[],D=t=>C({src:e,regions:t}),j=(0,i.useRef)(null),N=async()=>{if(j.current&&0!==k.length&&s)try{s(await y(j.current,k)),D([])}catch(e){console.error(e)}},M=async(e,t)=>{let i=document.createElement("canvas"),r=e.naturalWidth/e.width,n=e.naturalHeight/e.height;i.width=t.width*r,i.height=t.height*n;let a=i.getContext("2d");return a?(a.drawImage(e,t.x*r,t.y*n,t.width*r,t.height*n,0,0,t.width*r,t.height*n),new Promise((e,t)=>{i.toBlob(i=>{i?e(i):t(Error("Canvas is empty"))},"image/jpeg")})):null},R=async()=>{if(d&&u.current)try{let e=await M(u.current,d);e&&a(e)}catch(e){console.error(e)}else if(!d&&e)try{let t=await fetch(e),i=await t.blob();a(i)}catch(e){console.error(e)}};return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:e=>!e&&n(),children:(0,t.jsxs)(w.DialogContent,{className:"max-w-3xl h-[90vh] flex flex-col p-0 gap-0",children:[(0,t.jsx)(w.DialogHeader,{className:"p-4 border-b shrink-0",children:(0,t.jsx)(w.DialogTitle,{children:o.common.cropper?.title||"Crop Image"})}),(0,t.jsx)("div",{className:"flex-1 bg-black w-full overflow-auto flex items-center justify-center p-4",children:"multi"===m?(0,t.jsx)(b,{ref:j,imageSrc:e,regions:k,onChange:D}):(0,t.jsx)(g,{crop:l,onChange:(e,t)=>h(t),onComplete:e=>c(e),className:"max-h-full",children:(0,t.jsx)("img",{ref:u,alt:"Crop me",src:e,onLoad:function(e){let{width:t,height:i}=e.currentTarget;h({unit:"%",x:0,y:0,width:100,height:100}),c({unit:"px",x:0,y:0,width:t,height:i})},style:{maxHeight:"70vh",maxWidth:"100%",objectFit:"contain"}})})}),(0,t.jsxs)("div",{className:"p-4 border-t bg-background shrink-0 space-y-3",children:[s&&(0,t.jsx)("div",{className:"grid grid-cols-2 gap-1 rounded-md bg-muted p-1 sm:w-80",children:["single","multi"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>x(e),className:`rounded px-3 py-1.5 text-sm font-medium transition-colors ${m===e?"bg-background shadow-sm":"text-muted-foreground"}`,children:"single"===e?o.batchImport.singleMode:o.batchImport.multiMode},e))}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"multi"===m?`${o.batchImport.hint} ${o.batchImport.regionCount.replace("{count}",String(k.length))}`:o.common.cropper?.hint||"💡 Drag to adjust crop area"}),(0,t.jsxs)("div",{className:"flex gap-2 justify-end",children:["multi"===m&&k.length>0&&(0,t.jsx)(p.Button,{variant:"ghost",onClick:()=>D([]),children:o.batchImport.clear}),(0,t.jsx)(p.Button,{variant:"outline",onClick:n,children:o.common.cancel||"Cancel"}),"multi"===m?(0,t.jsx)(p.Button,{onClick:N,disabled:0===k.length,children:o.batchImport.start.replace("{count}",String(k.length))}):(0,t.jsx)(p.Button,{onClick:R,children:o.common.confirm||"Confirm"})]})]})]})]})})}],12130),e.s(["processImageFile",0,C],28928)},49704,e=>{"use strict";var t=e.i(18050),i=e.i(11110),r=e.i(75157);e.s(["QuestionFigure",0,function({svg:e,className:n}){let{t:a}=(0,i.useLanguage)();return e?(0,t.jsx)("figure",{className:(0,r.cn)("question-figure my-3",n),children:(0,t.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:a.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],49704)},88218,e=>{"use strict";var t=e.i(18050),i=e.i(71645),r=e.i(37727),n=e.i(87486),a=e.i(93479),s=e.i(41931);e.s(["TagInput",0,function({value:e=[],onChange:o,placeholder:l="Enter tags...",className:h="",enterHint:d,subject:c,gradeStage:u}){let[m,g]=(0,i.useState)(""),[p,w]=(0,i.useState)([]),[x,f]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),v=(0,i.useRef)(null),C=(0,i.useRef)(null);(0,i.useEffect)(()=>{m.trim()?k(m):(w([]),f(!1))},[m,c,u]);let k=async t=>{try{let i=new URLSearchParams({q:t});c&&i.append("subject",c),u&&i.append("stage",u);let r=((await s.apiClient.get(`/api/tags/suggestions?${i.toString()}`)).suggestions||[]).filter(t=>!e.includes(t));w(r.slice(0,20)),f(r.length>0),b(0)}catch(e){console.error("Failed to fetch suggestions:",e)}},D=t=>{t.trim()&&!e.includes(t.trim())&&(o([...e,t.trim()]),g(""),w([]),f(!1),b(0))},j=t=>{o(e.filter(e=>e!==t))};return(0,i.useEffect)(()=>{let e=e=>{!C.current||C.current.contains(e.target)||v.current?.contains(e.target)||f(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,t.jsxs)("div",{className:`relative ${h}`,children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 p-2 border rounded-lg bg-background min-h-[42px]",children:[e.map(e=>(0,t.jsxs)(n.Badge,{variant:"secondary",className:"flex items-center gap-1 px-2 py-1",children:[e,(0,t.jsx)("button",{type:"button",onClick:()=>j(e),className:"hover:text-destructive ml-1",children:(0,t.jsx)(r.X,{className:"h-3 w-3"})})]},e)),(0,t.jsx)(a.Input,{ref:v,type:"text",value:m,onChange:e=>g(e.target.value),onKeyDown:t=>{"Enter"===t.key?(t.preventDefault(),y>=0&&p[y]?D(p[y]):m.trim()&&D(m)):"ArrowDown"===t.key?(t.preventDefault(),b(e=>Math.min(e+1,p.length-1))):"ArrowUp"===t.key?(t.preventDefault(),b(e=>Math.max(e-1,0))):"Escape"===t.key?(f(!1),b(0)):"Backspace"===t.key&&!m&&e.length>0&&j(e[e.length-1])},onFocus:()=>{p.length>0&&f(!0)},placeholder:0===e.length?l:"",className:"flex-1 min-w-[120px] border-none focus-visible:ring-0 focus-visible:ring-offset-0 h-8 px-0"})]}),x&&p.length>0&&(0,t.jsx)("div",{ref:C,className:"absolute z-50 w-full mt-1 bg-popover border rounded-md shadow-md max-h-48 overflow-y-auto",children:p.map((e,i)=>(0,t.jsx)("div",{className:`px-3 py-2 cursor-pointer hover:bg-accent ${i===y?"bg-accent":""}`,onClick:()=>D(e),onMouseEnter:()=>b(i),children:e},e))}),m&&!x&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:d?`${d} "${m}"`:`Press Enter to create "${m}"`})]})}])},52122,e=>{"use strict";e.i(30691),e.s(["inferSubjectFromName",0,function(e){if(!e)return null;let t=e.toLowerCase();return t.includes("math")||t.includes("数学")?"math":t.includes("physics")||t.includes("物理")?"physics":t.includes("chemistry")||t.includes("化学")?"chemistry":t.includes("biology")||t.includes("生物")?"biology":t.includes("english")||t.includes("英语")?"english":t.includes("chinese")||t.includes("语文")?"chinese":t.includes("history")||t.includes("历史")?"history":t.includes("geography")||t.includes("地理")?"geography":t.includes("politics")||t.includes("政治")?"politics":null}])},62825,e=>{"use strict";function t(e){return"not_attempted"===e||"wrong_attempt"===e||"unknown"===e?e:"unknown"}e.s(["getMistakeStatusLabel",0,function(e,i="zh"){return("en"===i?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[t(e)]},"normalizeMistakeStatusForSave",0,function(e,i){return(i||"").trim()?"wrong_attempt":t(e)}])},43710,e=>{"use strict";e.s(["getDefaultPaperLevel",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,71689,e=>{"use strict";let a=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,a],71689)},56909,e=>{"use strict";let a=(0,e.i(75254).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,a],56909)},52109,e=>{"use strict";var a=e.i(18050),t=e.i(71645),r=e.i(18566),s=e.i(19455),i=e.i(15288),l=e.i(31278),c=e.i(16715),n=e.i(69638),d=e.i(86536);let o=(0,e.i(75254).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var u=e.i(73884),m=e.i(71689),x=e.i(11110),h=e.i(35209),g=e.i(24687),p=e.i(93479),f=e.i(11445),j=e.i(41931),b=e.i(22016),v=e.i(56909),N=e.i(93733),y=e.i(1276);function C({errorItemId:e,suggested:r,question:c,difficulty:d}){let{t:o}=(0,x.useLanguage)(),[u,m]=(0,t.useState)(r),[h,g]=(0,t.useState)(!1),[p,f]=(0,t.useState)(!1),[w,k]=(0,t.useState)(null),R=async()=>{if(u){g(!0),k(null);try{await j.apiClient.post("/api/practice/record",{errorItemId:e,result:u,difficulty:d,subject:c.subject||null,questionText:c.questionText,answerText:c.answerText,analysis:c.analysis,figureSvg:c.figureSvg??null}),f(!0)}catch(e){y.frontendLogger.error("[Practice]","Failed to save practice result",{error:e instanceof Error?e.message:String(e)}),k(o.mastery.resultSaveFailed)}finally{g(!1)}}};return(0,a.jsxs)(i.Card,{className:p?"border-green-500":"border-primary/40",children:[(0,a.jsx)(i.CardHeader,{children:(0,a.jsx)(i.CardTitle,{className:"text-base",children:o.mastery.markResult})}),(0,a.jsxs)(i.CardContent,{className:"space-y-3",children:[(0,a.jsx)(N.PracticeResultPicker,{value:u,onChange:m,disabled:p||h}),r&&!p&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:o.mastery.suggested}),p?(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 text-sm text-green-700",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)(n.CheckCircle,{className:"h-4 w-4"}),o.mastery.resultSaved]}),(0,a.jsx)(b.default,{href:`/error-items/${e}`,className:"text-primary hover:underline sm:ml-auto",children:o.mastery.viewQuestion})]}):(0,a.jsxs)(s.Button,{onClick:R,disabled:!u||h,className:"w-full sm:w-auto",children:[h?(0,a.jsx)(l.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,a.jsx)(v.Save,{className:"mr-2 h-4 w-4"}),o.mastery.saveResult]}),w&&(0,a.jsx)("p",{className:"text-sm text-destructive",children:w})]})]})}var w=e.i(49704);function k(){let e=(0,r.useSearchParams)(),b=(0,r.useRouter)(),v=e.get("id"),{t:N,language:k}=(0,x.useLanguage)();(0,h.usePageTitle)(N.practice.title);let[R,T]=(0,t.useState)(null),[S,A]=(0,t.useState)(!1),[E,L]=(0,t.useState)(!1),[P,_]=(0,t.useState)(""),[I,M]=(0,t.useState)(""),[F,H]=(0,t.useState)(!1),[O,U]=(0,t.useState)(null),[z,q]=(0,t.useState)("medium"),[B,$]=(0,t.useState)(0),[D,K]=(0,t.useState)(null);(0,t.useEffect)(()=>{j.apiClient.get("/api/settings").then(e=>{K(e),e.timeouts?.analyze&&y.frontendLogger.info("[Config]","Loaded timeout settings",{analyze:e.timeouts.analyze})}).catch(e=>console.error(e))},[]);let[Q,W]=(0,t.useState)("medium"),[V,X]=(0,t.useState)(null),G=async()=>{if(v){A(!0),X(null),_(""),M(""),H(!1),U(null),L(!1);try{let e=D?.timeouts?.analyze||18e4;y.frontendLogger.info("[Practice]","Generating question",{timeout:e});let a=await j.apiClient.post("/api/practice/generate",{errorItemId:v,language:k,difficulty:Q},{timeout:e});T(a),q(Q),$(e=>e+1)}catch(t){console.error(t);let e=t.data?.message||"",a=N.practice.errors?.default||"Failed to generate";e.includes("AI_CONNECTION_FAILED")?a=N.errors?.aiConnectionFailed||a:e.includes("AI_RESPONSE_ERROR")?a=N.errors?.aiResponseError||a:e.includes("AI_AUTH_ERROR")?a=N.errors?.aiAuth||a:e.includes("AI_OUTPUT_TRUNCATED")?a=N.errors?.AI_OUTPUT_TRUNCATED||a:e.includes("AI_UNKNOWN_ERROR")&&(a=N.errors?.AI_UNKNOWN_ERROR||a),X(a)}finally{A(!1)}}};return v?(0,a.jsxs)("div",{className:"max-w-3xl mx-auto space-y-8",children:[(0,a.jsx)("div",{className:"flex justify-between items-center mb-4",children:(0,a.jsxs)(s.Button,{variant:"ghost",onClick:()=>b.back(),children:[(0,a.jsx)(m.ArrowLeft,{className:"mr-2 h-4 w-4"}),N.common?.back||"返回"]})}),(0,a.jsxs)("div",{className:"text-center space-y-4",children:[(0,a.jsx)("h1",{className:"text-3xl font-bold",children:N.practice.title}),(0,a.jsx)("p",{className:"text-muted-foreground",children:N.practice.subtitle}),V&&(0,a.jsxs)("div",{className:"relative rounded-xl border border-destructive/30 bg-destructive/10 px-4 py-3 text-destructive",role:"alert",children:[(0,a.jsxs)("strong",{className:"font-bold",children:[N.common?.error||"Error",": "]}),(0,a.jsxs)("span",{className:"block whitespace-pre-wrap",children:[" ",V]})]}),!R&&(0,a.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 bg-muted/50 p-2 rounded-lg",children:[(0,a.jsxs)("span",{className:"text-sm font-medium text-muted-foreground",children:[N.practice.difficulty?.label||"Difficulty",":"]}),(0,a.jsx)("div",{className:"flex gap-1",children:[{value:"easy",label:N.practice.difficulty?.easy||"Easy",color:"bg-green-100 text-green-700 hover:bg-green-200"},{value:"medium",label:N.practice.difficulty?.medium||"Medium",color:"bg-blue-100 text-blue-700 hover:bg-blue-200"},{value:"hard",label:N.practice.difficulty?.hard||"Hard",color:"bg-orange-100 text-orange-700 hover:bg-orange-200"},{value:"harder",label:N.practice.difficulty?.harder||"Challenge",color:"bg-red-100 text-red-700 hover:bg-red-200"}].map(e=>(0,a.jsx)("button",{onClick:()=>W(e.value),className:`px-3 py-1.5 rounded-md text-sm font-medium transition-colors ${Q===e.value?e.color.replace("bg-","bg-opacity-100 bg-").replace("text-","ring-2 ring-offset-1 ring-"):"bg-transparent hover:bg-muted text-muted-foreground"} ${Q===e.value?e.color:""}`,children:e.label},e.value))})]}),(0,a.jsx)(s.Button,{size:"lg",onClick:G,disabled:S,children:S?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),N.practice.generating]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.RefreshCw,{className:"mr-2 h-4 w-4"}),N.practice.generate]})})]})]}),R&&(0,a.jsxs)("div",{className:"space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500",children:[(0,a.jsxs)(i.Card,{className:"border-primary/50 shadow-lg",children:[(0,a.jsx)(i.CardHeader,{children:(0,a.jsxs)(i.CardTitle,{className:"flex justify-between items-center",children:[(0,a.jsx)("span",{children:N.app.practiceProblem}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("select",{value:Q,onChange:e=>W(e.target.value),className:"h-8 text-xs border rounded px-2 bg-background",disabled:S,children:[(0,a.jsx)("option",{value:"easy",children:N.practice.difficulty?.easy||"Easy"}),(0,a.jsx)("option",{value:"medium",children:N.practice.difficulty?.medium||"Medium"}),(0,a.jsx)("option",{value:"hard",children:N.practice.difficulty?.hard||"Hard"}),(0,a.jsx)("option",{value:"harder",children:N.practice.difficulty?.harder||"Challenge"})]}),(0,a.jsx)(s.Button,{variant:"ghost",size:"sm",onClick:G,disabled:S,children:S?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),N.practice.generating]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.RefreshCw,{className:"mr-2 h-4 w-4"}),N.practice.regenerate]})})]})]})}),(0,a.jsxs)(i.CardContent,{children:[(0,a.jsx)(f.MarkdownRenderer,{content:R.questionText,className:"font-medium"}),(0,a.jsx)(w.QuestionFigure,{svg:R.figureSvg})]})]}),(0,a.jsxs)(i.Card,{className:"border-blue-200",children:[(0,a.jsx)(i.CardHeader,{children:(0,a.jsx)(i.CardTitle,{className:"text-blue-600",children:N.app.yourAnswer||"你的答案"})}),(0,a.jsxs)(i.CardContent,{className:"space-y-4",children:[(0,a.jsx)(p.Input,{placeholder:N.app.answerPlaceholder||"输入你的答案...",value:P,onChange:e=>_(e.target.value),disabled:F,className:"text-lg"}),(0,a.jsx)(g.Textarea,{placeholder:N.app.notesPlaceholder||"记录解题思路(可选)...",value:I,onChange:e=>M(e.target.value),disabled:F,rows:3})]})]}),F?null===O?null:(0,a.jsx)(i.Card,{className:O?"border-green-500 bg-green-50":"border-red-500 bg-red-50",children:(0,a.jsxs)(i.CardContent,{className:"pt-6",children:[(0,a.jsx)("div",{className:"flex items-center gap-3 mb-4",children:O?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.CheckCircle,{className:"h-8 w-8 text-green-600"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-xl font-bold text-green-600",children:N.practice.correct||"回答正确!"}),(0,a.jsx)("p",{className:"text-green-700",children:N.practice.correctMessage||"太棒了,继续保持!"})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(u.XCircle,{className:"h-8 w-8 text-red-600"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-xl font-bold text-red-600",children:N.practice.incorrect||"答案有误"}),(0,a.jsx)("p",{className:"text-red-700",children:N.practice.incorrectMessage||"再看看解析,加油!"})]})]})}),I&&(0,a.jsxs)("div",{className:"mt-4 p-3 bg-white rounded-lg border",children:[(0,a.jsx)("p",{className:"text-sm font-medium text-gray-600 mb-1",children:N.practice.yourNotes||"你的笔记:"}),(0,a.jsx)("p",{className:"text-gray-700 whitespace-pre-wrap",children:I})]})]})}):(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row justify-center gap-2",children:[(0,a.jsxs)(s.Button,{size:"lg",onClick:()=>{if(!P.trim()||!R)return;H(!0);let e=e=>e.trim().toLowerCase().replace(/[.,;!]/g,""),a=e(P),t=e(R.answerText),r=a===t;!r&&/^[a-d]$/.test(a)&&(r=t.startsWith(a)),!r&&t.includes(a)&&a.length>1&&(r=!0),U(r),L(!0)},disabled:!P.trim(),className:"w-full md:w-auto",children:[(0,a.jsx)(o,{className:"mr-2 h-4 w-4"}),N.app.submitAnswer||"提交答案"]}),(0,a.jsxs)(s.Button,{size:"lg",variant:"outline",onClick:()=>{H(!0),U(null),L(!0)},className:"w-full md:w-auto",children:[(0,a.jsx)(d.Eye,{className:"mr-2 h-4 w-4"}),N.practice.checkAnswer||"查看答案"]})]}),E&&(0,a.jsxs)("div",{className:"space-y-6 animate-in fade-in slide-in-from-top-2",children:[(0,a.jsx)(C,{errorItemId:v,suggested:null===O?null:O?"correct":"wrong",question:R,difficulty:z},B),(0,a.jsxs)(i.Card,{className:"bg-muted/50",children:[(0,a.jsx)(i.CardHeader,{children:(0,a.jsx)(i.CardTitle,{className:"text-green-600",children:N.practice.correctAnswer})}),(0,a.jsx)(i.CardContent,{children:(0,a.jsx)(f.MarkdownRenderer,{content:R.answerText,className:"font-bold"})})]}),(0,a.jsxs)(i.Card,{children:[(0,a.jsx)(i.CardHeader,{children:(0,a.jsx)(i.CardTitle,{children:N.practice.detailedAnalysis})}),(0,a.jsx)(i.CardContent,{className:"space-y-4",children:(0,a.jsx)(f.MarkdownRenderer,{content:R.analysis})})]})]})]})]}):(0,a.jsx)("div",{className:"p-8 text-center",children:N.practice.invalidRequest||"Invalid Request"})}e.s(["default",0,function(){return(0,a.jsx)("main",{className:"min-h-screen px-4 py-6 md:px-8 md:py-8",children:(0,a.jsx)(t.Suspense,{fallback:(0,a.jsx)("div",{className:"flex justify-center p-8",children:(0,a.jsx)(l.Loader2,{className:"h-8 w-8 animate-spin text-muted-foreground"})}),children:(0,a.jsx)(k,{})})})},"dynamic",0,"force-dynamic"],52109)},93733,e=>{"use strict";var a=e.i(18050),t=e.i(69638);let r=(0,e.i(75254).default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var s=e.i(73884),i=e.i(11110);let l=[{value:"correct",icon:t.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:s.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:r,active:"border-amber-600 bg-amber-50 text-amber-700"}];e.s(["PracticeResultPicker",0,function({value:e,onChange:t,disabled:r,size:s="md"}){let{t:c}=(0,i.useLanguage)(),n="sm"===s?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,a.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:l.map(({value:i,icon:l,active:d})=>(0,a.jsxs)("button",{type:"button",role:"radio","aria-checked":e===i,disabled:r,onClick:()=>t(i),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${n} ${e===i?d:"border-input hover:bg-muted"}`,children:[(0,a.jsx)(l,{className:"sm"===s?"h-3 w-3":"h-4 w-4"}),c.mastery.results[i]]},i))})}],93733)},49704,e=>{"use strict";var a=e.i(18050),t=e.i(11110),r=e.i(75157);e.s(["QuestionFigure",0,function({svg:e,className:s}){let{t:i}=(0,t.useLanguage)();return e?(0,a.jsx)("figure",{className:(0,r.cn)("question-figure my-3",s),children:(0,a.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:i.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],49704)},15288,e=>{"use strict";var a=e.i(18050),t=e.i(75157);e.s(["Card",0,function({className:e,...r}){return(0,a.jsx)("div",{"data-slot":"card",className:(0,t.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...r})},"CardContent",0,function({className:e,...r}){return(0,a.jsx)("div",{"data-slot":"card-content",className:(0,t.cn)("px-6",e),...r})},"CardDescription",0,function({className:e,...r}){return(0,a.jsx)("div",{"data-slot":"card-description",className:(0,t.cn)("text-muted-foreground text-sm",e),...r})},"CardHeader",0,function({className:e,...r}){return(0,a.jsx)("div",{"data-slot":"card-header",className:(0,t.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...r})},"CardTitle",0,function({className:e,...r}){return(0,a.jsx)("div",{"data-slot":"card-title",className:(0,t.cn)("leading-none font-semibold",e),...r})}])},35209,e=>{"use strict";var a=e.i(71645),t=e.i(11110);e.s(["usePageTitle",0,function(...e){let{t:r}=(0,t.useLanguage)(),s=[r.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,a.useEffect)(()=>{document.title=s},[s])}])}]);
@@ -0,0 +1,5 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81140,e=>{"use strict";"u">typeof window&&window.document&&window.document.createElement,e.s(["composeEventHandlers",0,function(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}])},75830,e=>{"use strict";var t=e.i(71645),r=e.i(30030),n=e.i(20783),o=e.i(18050);function i(e){var r;let i,s=(r=e,(i=t.forwardRef((e,r)=>{let{children:o,...i}=e;if(t.isValidElement(o)){var s;let e,a,l=(s=o,(a=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(a=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(i,o.props);return o.type!==t.Fragment&&(u.ref=r?(0,n.composeRefs)(r,l):l),t.cloneElement(o,u)}return t.Children.count(o)>1?t.Children.only(null):null})).displayName=`${r}.SlotClone`,i),l=t.forwardRef((e,r)=>{let{children:n,...i}=e,l=t.Children.toArray(n),u=l.find(a);if(u){let e=u.props.children,n=l.map(r=>r!==u?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,o.jsx)(s,{...i,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,n):null})}return(0,o.jsx)(s,{...i,ref:r,children:n})});return l.displayName=`${e}.Slot`,l}var s=Symbol("radix.slottable");function a(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===s}e.s(["createCollection",0,function(e){let s=e+"CollectionProvider",[a,l]=(0,r.createContextScope)(s),[u,c]=a(s,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:r,children:n}=e,i=t.default.useRef(null),s=t.default.useRef(new Map).current;return(0,o.jsx)(u,{scope:r,itemMap:s,collectionRef:i,children:n})};d.displayName=s;let f=e+"CollectionSlot",p=i(f),m=t.default.forwardRef((e,t)=>{let{scope:r,children:i}=e,s=c(f,r),a=(0,n.useComposedRefs)(t,s.collectionRef);return(0,o.jsx)(p,{ref:a,children:i})});m.displayName=f;let g=e+"CollectionItemSlot",v="data-radix-collection-item",y=i(g),h=t.default.forwardRef((e,r)=>{let{scope:i,children:s,...a}=e,l=t.default.useRef(null),u=(0,n.useComposedRefs)(r,l),d=c(g,i);return t.default.useEffect(()=>(d.itemMap.set(l,{ref:l,...a}),()=>void d.itemMap.delete(l))),(0,o.jsx)(y,{...{[v]:""},ref:u,children:s})});return h.displayName=g,[{Provider:d,Slot:m,ItemSlot:h},function(r){let n=c(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${v}]`));return Array.from(n.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[n.collectionRef,n.itemMap])},l]}],75830)},30030,e=>{"use strict";var t=e.i(71645),r=e.i(18050);e.s(["createContext",0,function(e,n){let o=t.createContext(n),i=e=>{let{children:n,...i}=e,s=t.useMemo(()=>i,Object.values(i));return(0,r.jsx)(o.Provider,{value:s,children:n})};return i.displayName=e+"Provider",[i,function(r){let i=t.useContext(o);if(i)return i;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${e}\``)}]},"createContextScope",0,function(e,n=[]){let o=[],i=()=>{let r=o.map(e=>t.createContext(e));return function(n){let o=n?.[e]||r;return t.useMemo(()=>({[`__scope${e}`]:{...n,[e]:o}}),[n,o])}};return i.scopeName=e,[function(n,i){let s=t.createContext(i),a=o.length;o=[...o,i];let l=n=>{let{scope:o,children:i,...l}=n,u=o?.[e]?.[a]||s,c=t.useMemo(()=>l,Object.values(l));return(0,r.jsx)(u.Provider,{value:c,children:i})};return l.displayName=n+"Provider",[l,function(r,o){let l=o?.[e]?.[a]||s,u=t.useContext(l);if(u)return u;if(void 0!==i)return i;throw Error(`\`${r}\` must be used within \`${n}\``)}]},function(...e){let r=e[0];if(1===e.length)return r;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=n.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return t.useMemo(()=>({[`__scope${r.scopeName}`]:o}),[o])}};return n.scopeName=r.scopeName,n}(i,...n)]}])},86318,e=>{"use strict";var t=e.i(71645);e.i(18050);var r=t.createContext(void 0);e.s(["useDirection",0,function(e){let n=t.useContext(r);return e||n||"ltr"}])},10772,e=>{"use strict";var t=e.i(71645),r=e.i(34620),n=t[" useId ".trim().toString()]||(()=>void 0),o=0;e.s(["useId",0,function(e){let[i,s]=t.useState(n());return(0,r.useLayoutEffect)(()=>{e||s(e=>e??String(o++))},[e]),e||(i?`radix-${i}`:"")}])},30207,e=>{"use strict";var t=e.i(71645);e.s(["useCallbackRef",0,function(e){let r=t.useRef(e);return t.useEffect(()=>{r.current=e}),t.useMemo(()=>(...e)=>r.current?.(...e),[])}])},69340,34620,96626,e=>{"use strict";var t=e.i(71645),r=globalThis?.document?t.useLayoutEffect:()=>{};e.s(["useLayoutEffect",0,r],34620),t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var n=t[" useInsertionEffect ".trim().toString()]||r;Symbol("RADIX:SYNC_STATE"),e.s(["useControllableState",0,function({prop:e,defaultProp:r,onChange:o=()=>{},caller:i}){let[s,a,l]=function({defaultProp:e,onChange:r}){let[o,i]=t.useState(e),s=t.useRef(o),a=t.useRef(r);return n(()=>{a.current=r},[r]),t.useEffect(()=>{s.current!==o&&(a.current?.(o),s.current=o)},[o,s]),[o,i,a]}({defaultProp:r,onChange:o}),u=void 0!==e,c=u?e:s;{let r=t.useRef(void 0!==e);t.useEffect(()=>{let e=r.current;if(e!==u){let t=u?"controlled":"uncontrolled";console.warn(`${i} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}r.current=u},[u,i])}return[c,t.useCallback(t=>{if(u){let r="function"==typeof t?t(e):t;r!==e&&l.current?.(r)}else a(t)},[u,e,a,l])]}],69340);var o=e.i(20783),i=e=>{var n;let i,a,{present:l,children:u}=e,c=function(e){var n,o;let[i,a]=t.useState(),l=t.useRef(null),u=t.useRef(e),c=t.useRef("none"),[d,f]=(n=e?"mounted":"unmounted",o={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},t.useReducer((e,t)=>o[e][t]??e,n));return t.useEffect(()=>{let e=s(l.current);c.current="mounted"===d?e:"none"},[d]),r(()=>{let t=l.current,r=u.current;if(r!==e){let n=c.current,o=s(t);e?f("MOUNT"):"none"===o||t?.display==="none"?f("UNMOUNT"):r&&n!==o?f("ANIMATION_OUT"):f("UNMOUNT"),u.current=e}},[e,f]),r(()=>{if(i){let e,t=i.ownerDocument.defaultView??window,r=r=>{let n=s(l.current).includes(CSS.escape(r.animationName));if(r.target===i&&n&&(f("ANIMATION_END"),!u.current)){let r=i.style.animationFillMode;i.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===i.style.animationFillMode&&(i.style.animationFillMode=r)})}},n=e=>{e.target===i&&(c.current=s(l.current))};return i.addEventListener("animationstart",n),i.addEventListener("animationcancel",r),i.addEventListener("animationend",r),()=>{t.clearTimeout(e),i.removeEventListener("animationstart",n),i.removeEventListener("animationcancel",r),i.removeEventListener("animationend",r)}}f("ANIMATION_END")},[i,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:t.useCallback(e=>{l.current=e?getComputedStyle(e):null,a(e)},[])}}(l),d="function"==typeof u?u({present:c.isPresent}):t.Children.only(u),f=(0,o.useComposedRefs)(c.ref,(n=d,(a=(i=Object.getOwnPropertyDescriptor(n.props,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?n.ref:(a=(i=Object.getOwnPropertyDescriptor(n,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?n.props.ref:n.props.ref||n.ref));return"function"==typeof u||c.isPresent?t.cloneElement(d,{ref:f}):null};function s(e){return e?.animationName||"none"}i.displayName="Presence",e.s(["Presence",0,i],96626)},99682,e=>{"use strict";var t=e.i(71645);e.s(["usePrevious",0,function(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}])},35804,e=>{"use strict";var t=e.i(71645),r=e.i(34620);e.s(["useSize",0,function(e){let[n,o]=t.useState(void 0);return(0,r.useLayoutEffect)(()=>{if(e){o({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,n;if(!Array.isArray(t)||!t.length)return;let i=t[0];if("borderBoxSize"in i){let e=i.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,n=t.blockSize}else r=e.offsetWidth,n=e.offsetHeight;o({width:r,height:n})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}o(void 0)},[e]),n}])},75254,e=>{"use strict";var t=e.i(71645);let r=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,t.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:i=2,absoluteStrokeWidth:s,className:a="",children:l,iconNode:u,...c},d)=>(0,t.createElement)("svg",{ref:d,...o,width:r,height:r,stroke:e,strokeWidth:s?24*Number(i)/Number(r):i,className:n("lucide",a),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(c)&&{"aria-hidden":"true"},...c},[...u.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]]));e.s(["default",0,(e,o)=>{let s=(0,t.forwardRef)(({className:s,...a},l)=>(0,t.createElement)(i,{ref:l,iconNode:o,className:n(`lucide-${r(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,s),...a}));return s.displayName=r(e),s}],75254)},43531,e=>{"use strict";let t=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],43531)},64659,55900,e=>{"use strict";var t=e.i(75254);let r=(0,t.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,r],64659);let n=(0,t.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",0,n],55900)},31278,e=>{"use strict";let t=(0,e.i(75254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],31278)},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],27612)},37727,e=>{"use strict";let t=(0,e.i(75254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],37727)},18566,(e,t,r)=>{t.exports=e.r(76562)},19455,20783,91918,25913,e=>{"use strict";var t=e.i(18050),r=e.i(71645);function n(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function o(...e){return t=>{let r=!1,o=e.map(e=>{let o=n(e,t);return r||"function"!=typeof o||(r=!0),o});if(r)return()=>{for(let t=0;t<o.length;t++){let r=o[t];"function"==typeof r?r():n(e[t],null)}}}}e.s(["composeRefs",0,o,"useComposedRefs",0,function(...e){return r.useCallback(o(...e),e)}],20783);var i=Symbol.for("react.lazy"),s=r[" use ".trim().toString()];function a(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===i&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}function l(e){var n;let i,l=(n=e,(i=r.forwardRef((e,t)=>{let{children:n,...i}=e;if(a(n)&&"function"==typeof s&&(n=s(n._payload)),r.isValidElement(n)){var l;let e,s,a=(l=n,(s=(e=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.ref:(s=(e=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.props.ref:l.props.ref||l.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(i,n.props);return n.type!==r.Fragment&&(u.ref=t?o(t,a):a),r.cloneElement(n,u)}return r.Children.count(n)>1?r.Children.only(null):null})).displayName=`${n}.SlotClone`,i),u=r.forwardRef((e,n)=>{let{children:o,...i}=e;a(o)&&"function"==typeof s&&(o=s(o._payload));let u=r.Children.toArray(o),c=u.find(d);if(c){let e=c.props.children,o=u.map(t=>t!==c?t:r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null);return(0,t.jsx)(l,{...i,ref:n,children:r.isValidElement(e)?r.cloneElement(e,void 0,o):null})}return(0,t.jsx)(l,{...i,ref:n,children:o})});return u.displayName=`${e}.Slot`,u}var u=l("Slot"),c=Symbol("radix.slottable");function d(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===c}e.s(["Slot",0,u,"createSlot",0,l],91918);var f=e.i(7670);let p=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,m=f.clsx,g=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return m(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:i}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==i?void 0:i[e];if(null===t)return null;let s=p(t)||p(n);return o[e][s]}),a=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return m(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...i,...a}[t]):({...i,...a})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)};e.s(["cva",0,g],25913);var v=e.i(75157);let y=g("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});e.s(["Button",0,function({className:e,variant:r,size:n,asChild:o=!1,...i}){return(0,t.jsx)(o?u:"button",{"data-slot":"button",className:(0,v.cn)(y({variant:r,size:n,className:e})),...i})}],19455)},76639,e=>{"use strict";var t=e.i(18050),r=e.i(71645),n=e.i(81140),o=e.i(20783),i=e.i(30030),s=e.i(10772),a=e.i(69340),l=e.i(26330),u=e.i(65491),c=e.i(74606),d=e.i(96626);function f(e){var n;let i,s=(n=e,(i=r.forwardRef((e,t)=>{let{children:n,...i}=e;if(r.isValidElement(n)){var s;let e,a,l=(s=n,(a=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(a=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(i,n.props);return n.type!==r.Fragment&&(u.ref=t?(0,o.composeRefs)(t,l):l),r.cloneElement(n,u)}return r.Children.count(n)>1?r.Children.only(null):null})).displayName=`${n}.SlotClone`,i),a=r.forwardRef((e,n)=>{let{children:o,...i}=e,a=r.Children.toArray(o),l=a.find(m);if(l){let e=l.props.children,o=a.map(t=>t!==l?t:r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null);return(0,t.jsx)(s,{...i,ref:n,children:r.isValidElement(e)?r.cloneElement(e,void 0,o):null})}return(0,t.jsx)(s,{...i,ref:n,children:o})});return a.displayName=`${e}.Slot`,a}e.i(74080);var p=Symbol("radix.slottable");function m(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===p}var g=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{let o=f(`Primitive.${n}`),i=r.forwardRef((e,r)=>{let{asChild:i,...s}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(i?o:n,{...s,ref:r})});return i.displayName=`Primitive.${n}`,{...e,[n]:i}},{}),v=e.i(3536),y=e.i(85369),h=e.i(86312),b="Dialog",[x,w]=(0,i.createContextScope)(b),[N,R]=x(b),C=e=>{let{__scopeDialog:n,children:o,open:i,defaultOpen:l,onOpenChange:u,modal:c=!0}=e,d=r.useRef(null),f=r.useRef(null),[p,m]=(0,a.useControllableState)({prop:i,defaultProp:l??!1,onChange:u,caller:b});return(0,t.jsx)(N,{scope:n,triggerRef:d,contentRef:f,contentId:(0,s.useId)(),titleId:(0,s.useId)(),descriptionId:(0,s.useId)(),open:p,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),modal:c,children:o})};C.displayName=b;var E="DialogTrigger",j=r.forwardRef((e,r)=>{let{__scopeDialog:i,...s}=e,a=R(E,i),l=(0,o.useComposedRefs)(r,a.triggerRef);return(0,t.jsx)(g.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":Z(a.open),...s,ref:l,onClick:(0,n.composeEventHandlers)(e.onClick,a.onOpenToggle)})});j.displayName=E;var O="DialogPortal",[S,D]=x(O,{forceMount:void 0}),k=e=>{let{__scopeDialog:n,forceMount:o,children:i,container:s}=e,a=R(O,n);return(0,t.jsx)(S,{scope:n,forceMount:o,children:r.Children.map(i,e=>(0,t.jsx)(d.Presence,{present:o||a.open,children:(0,t.jsx)(c.Portal,{asChild:!0,container:s,children:e})}))})};k.displayName=O;var I="DialogOverlay",A=r.forwardRef((e,r)=>{let n=D(I,e.__scopeDialog),{forceMount:o=n.forceMount,...i}=e,s=R(I,e.__scopeDialog);return s.modal?(0,t.jsx)(d.Presence,{present:o||s.open,children:(0,t.jsx)(P,{...i,ref:r})}):null});A.displayName=I;var T=f("DialogOverlay.RemoveScroll"),P=r.forwardRef((e,r)=>{let{__scopeDialog:n,...o}=e,i=R(I,n);return(0,t.jsx)(y.RemoveScroll,{as:T,allowPinchZoom:!0,shards:[i.contentRef],children:(0,t.jsx)(g.div,{"data-state":Z(i.open),...o,ref:r,style:{pointerEvents:"auto",...o.style}})})}),_="DialogContent",M=r.forwardRef((e,r)=>{let n=D(_,e.__scopeDialog),{forceMount:o=n.forceMount,...i}=e,s=R(_,e.__scopeDialog);return(0,t.jsx)(d.Presence,{present:o||s.open,children:s.modal?(0,t.jsx)($,{...i,ref:r}):(0,t.jsx)(F,{...i,ref:r})})});M.displayName=_;var $=r.forwardRef((e,i)=>{let s=R(_,e.__scopeDialog),a=r.useRef(null),l=(0,o.useComposedRefs)(i,s.contentRef,a);return r.useEffect(()=>{let e=a.current;if(e)return(0,h.hideOthers)(e)},[]),(0,t.jsx)(W,{...e,ref:l,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),s.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,n.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),F=r.forwardRef((e,n)=>{let o=R(_,e.__scopeDialog),i=r.useRef(!1),s=r.useRef(!1);return(0,t.jsx)(W,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||o.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,s.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,"pointerdown"===t.detail.originalEvent.type&&(s.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&s.current&&t.preventDefault()}})}),W=r.forwardRef((e,n)=>{let{__scopeDialog:i,trapFocus:s,onOpenAutoFocus:a,onCloseAutoFocus:c,...d}=e,f=R(_,i),p=r.useRef(null),m=(0,o.useComposedRefs)(n,p);return(0,v.useFocusGuards)(),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.FocusScope,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:a,onUnmountAutoFocus:c,children:(0,t.jsx)(l.DismissableLayer,{role:"dialog",id:f.contentId,"aria-describedby":f.descriptionId,"aria-labelledby":f.titleId,"data-state":Z(f.open),...d,ref:m,onDismiss:()=>f.onOpenChange(!1)})}),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(X,{titleId:f.titleId}),(0,t.jsx)(G,{contentRef:p,descriptionId:f.descriptionId})]})]})}),z="DialogTitle",U=r.forwardRef((e,r)=>{let{__scopeDialog:n,...o}=e,i=R(z,n);return(0,t.jsx)(g.h2,{id:i.titleId,...o,ref:r})});U.displayName=z;var L="DialogDescription",V=r.forwardRef((e,r)=>{let{__scopeDialog:n,...o}=e,i=R(L,n);return(0,t.jsx)(g.p,{id:i.descriptionId,...o,ref:r})});V.displayName=L;var H="DialogClose",B=r.forwardRef((e,r)=>{let{__scopeDialog:o,...i}=e,s=R(H,o);return(0,t.jsx)(g.button,{type:"button",...i,ref:r,onClick:(0,n.composeEventHandlers)(e.onClick,()=>s.onOpenChange(!1))})});function Z(e){return e?"open":"closed"}B.displayName=H;var q="DialogTitleWarning",[J,K]=(0,i.createContext)(q,{contentName:_,titleName:z,docsSlug:"dialog"}),X=({titleId:e})=>{let t=K(q),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
2
+
3
+ If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
4
+
5
+ For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},G=({contentRef:e,descriptionId:t})=>{let n=K("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},Y=e.i(37727),Q=e.i(75157);let ee=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(A,{ref:n,className:(0,Q.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...r}));ee.displayName=A.displayName;let et=r.forwardRef(({className:e,children:r,...n},o)=>(0,t.jsxs)(k,{children:[(0,t.jsx)(ee,{}),(0,t.jsxs)(M,{ref:o,onPointerDownOutside:e=>{e.preventDefault()},className:(0,Q.cn)("fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border bg-card p-6 shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...n,children:[r,(0,t.jsxs)(B,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,t.jsx)(Y.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));et.displayName=M.displayName;let er=({className:e,...r})=>(0,t.jsx)("div",{className:(0,Q.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...r});er.displayName="DialogHeader";let en=({className:e,...r})=>(0,t.jsx)("div",{className:(0,Q.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...r});en.displayName="DialogFooter";let eo=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(U,{ref:n,className:(0,Q.cn)("text-lg font-semibold leading-none tracking-tight",e),...r}));eo.displayName=U.displayName;let ei=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(V,{ref:n,className:(0,Q.cn)("text-sm text-muted-foreground",e),...r}));ei.displayName=V.displayName,e.s(["Dialog",0,C,"DialogContent",0,et,"DialogDescription",0,ei,"DialogFooter",0,en,"DialogHeader",0,er,"DialogTitle",0,eo,"DialogTrigger",0,j],76639)},93479,e=>{"use strict";var t=e.i(18050),r=e.i(75157);e.s(["Input",0,function({className:e,type:n,...o}){return(0,t.jsx)("input",{type:n,"data-slot":"input",className:(0,r.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...o})}])},41931,e=>{"use strict";class t extends Error{status;statusText;data;constructor(e,t,r){super(`API Error: ${e} ${t}`),this.status=e,this.statusText=t,this.data=r,this.name="ApiError"}}async function r(e,n={}){let{params:o,headers:i,timeout:s=6e4,...a}=n,l=e;if(o){let e=new URLSearchParams(o);l+=`?${e.toString()}`}let u=new AbortController,c=setTimeout(()=>u.abort(),s);try{let e=await fetch(l,{headers:{"Content-Type":"application/json",...i},signal:u.signal,...a});if(clearTimeout(c),!e.ok){let r;try{r=await e.json()}catch{r=await e.text()}throw new t(e.status,e.statusText,r)}if(204===e.status)return{};try{return await e.json()}catch{return{}}}catch(e){if(clearTimeout(c),e instanceof Error&&"AbortError"===e.name)throw new t(408,"Request Timeout",{message:"AI_TIMEOUT_ERROR"});throw e}}e.s(["apiClient",0,{get:(e,t)=>r(e,{...t,method:"GET"}),post:(e,t,n)=>r(e,{...n,method:"POST",body:JSON.stringify(t)}),put:(e,t,n)=>r(e,{...n,method:"PUT",body:JSON.stringify(t)}),patch:(e,t,n)=>r(e,{...n,method:"PATCH",body:JSON.stringify(t)}),delete:(e,t)=>r(e,{...t,method:"DELETE"})}])},94114,e=>{"use strict";let t={success:2500,info:3500,warning:4500,error:5e3},r={toasts:[],confirm:null},n=1,o=new Set;function i(e){r=e,o.forEach(e=>e(r))}function s(e){i({...r,toasts:r.toasts.filter(t=>t.id!==e)})}function a(e,o){let a="string"==typeof o?o:String(o??"");if(!a)return;let l=n++;i({...r,toasts:[...r.toasts.slice(-3),{id:l,type:e,message:a}]}),setTimeout(()=>s(l),t[e])}e.s(["confirmDialog",0,function(e,t={}){return 0===o.size?Promise.resolve("function"==typeof window.confirm&&window.confirm(e)):(r.confirm?.resolve(!1),new Promise(o=>{let s=n++;i({...r,confirm:{...t,id:s,message:e,resolve:e=>{r.confirm?.id===s&&i({...r,confirm:null}),o(e)}}})}))},"dismissToast",0,s,"subscribeFeedback",0,function(e){return o.add(e),e(r),()=>{o.delete(e)}},"toast",0,{success:e=>a("success",e),error:e=>a("error",e),info:e=>a("info",e),warning:e=>a("warning",e)}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/1oiuiyv1cv06v.js","static/chunks/3jta6jrk-jubq.js","static/chunks/0dzfsm6h13fyr.js","static/chunks/0_w084ms_lq25.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;var t,r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=((t=n||{})[t.Runtime=0]="Runtime",t[t.Parent=1]="Parent",t[t.Update=2]="Update",t);let o=new WeakMap;function i(e,t){this.m=e,this.e=t}let l=i.prototype,u=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function c(e,t,r){u.call(e,t)||Object.defineProperty(e,t,r)}function a(e,t){let r=e[t];return r||(r=f(t),e[t]=r),r}function f(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function p(e,t,r){c(e,"__esModule",{value:!0}),s&&c(e,s,{value:"Module"});let n=0;for(;n<t.length;){let r=t[n++],o=t[n++];if("number"==typeof o)if(0===o)c(e,r,{value:t[n++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[n]?c(e,r,{get:o,set:t[n++],enumerable:!0}):c(e,r,{get:o,enumerable:!0})}r||Object.seal(e)}function h(e,t){(null!=t?a(this.c,t):this.m).exports=e}l.s=function(e,t,r){let n,o;null!=t?o=(n=a(this.c,t)).exports:(n=this.m,o=this.e),n.namespaceObject=o,p(o,e,r)},l.j=function(e,t){let r,n;null!=t?n=(r=a(this.c,t)).exports:(r=this.m,n=this.e);let i=function(e,t){let r=o.get(e);if(!r){o.set(e,r=[]);let n=e=>{if("default"!==e){for(let t of r)if(u.call(t,e))return t}};e.exports=e.namespaceObject=new Proxy(t,{get(e,t){if(u.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);let r=n(t);return r&&Reflect.get(r,t)},set:()=>!1,defineProperty:()=>!1,deleteProperty:()=>!1,has:(e,t)=>!!Reflect.has(e,t)||"default"!==t&&"__esModule"!==t&&void 0!==n(t),ownKeys(e){let t=Reflect.ownKeys(e);for(let e of r)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t},getOwnPropertyDescriptor(e,t){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r||"default"===t||"__esModule"===t)return r;let o=n(t);if(o)return{enumerable:!0,configurable:!0,get:()=>Reflect.get(o,t)}}})}return r}(r,n);"object"==typeof e&&null!==e&&i.push(e)},l.v=h,l.n=function(e,t){let r;(r=null!=t?a(this.c,t):this.m).exports=r.namespaceObject=e};let d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,m=[null,d({}),d([]),d(d)];function y(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!m.includes(t);t=d(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),p(t,n),t}function b(e){let t=I(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=y(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function g(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}l.i=b,l.A=function(e){return this.r(e)(b.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return I(e,this.m).exports},l.f=function(e){function t(t){if(t=g(t),u.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=g(t),u.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function w(e,t){throw Error(`Invariant: ${t(e)}`)}O.prototype=URL.prototype,l.U=O,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let j=Symbol("turbopack queues"),k=Symbol("turbopack exports"),v=Symbol("turbopack error");function C(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}function R(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:u}=C(),s=Object.assign(u,{[k]:r.exports,[j]:e=>{n&&e(n),o.forEach(e),s.catch(()=>{})}}),c={get:()=>s,set(e){e!==s&&(s[k]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(j in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[k]:{},[j]:e=>e(t)};return e.then(e=>{r[k]=e,R(t)},e=>{r[v]=e,R(t)}),r}}return{[k]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[v])throw e[v];return e[k]}),{promise:i,resolve:l}=C(),u=Object.assign(()=>l(r),{queueCount:0});function s(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(u.queueCount++,e.push(u)))}return t.map(e=>e[j](s)),u.queueCount?i:r()},function(e){e?l(s[v]=e):i(s[k]),R(n)}),n&&-1===n.status&&(n.status=0)};let U=i.prototype,_="string"==typeof TURBOPACK_CHUNK_BASE_PATH?TURBOPACK_CHUNK_BASE_PATH:"/_next/",P=new Map;l.M=P;let $=new Map,A=new Map,T=new Map;async function E(e,t,r){let n;if("string"==typeof r)return function(e,t,r){return M(e,t,r)}(e,t,q(r));let o=r.included||[],i=o.map(e=>!!P.has(e)||$.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);for(let i of(n=M(e,t,q(r.path)),o))$.has(i)||$.set(i,n);await n}U.l=function(e){return E(n.Parent,this.m.id,e)};let S=Promise.resolve(void 0),x=new WeakMap;function M(t,r,o){let i=e.loadChunkCached(t,o),l=x.get(i);if(void 0===l){let e=x.set.bind(x,i,S);l=i.then(e).catch(e=>{let i;switch(t){case n.Runtime:i=`as a runtime dependency of chunk ${r}`;break;case n.Parent:i=`from module ${r}`;break;case n.Update:i="from an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${o} ${i}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(i,l)}return l}U.L=function(e){var t,r;return t=n.Parent,r=this.m.id,M(t,r,e)};U.R=function(e){let t=this.r(e);return t?.default??t},U.P=function(e){return`/ROOT/${e??""}`},U.F=function(e){return e?`file:///ROOT/${e.split("/").map(encodeURIComponent).join("/")}`:"file:///ROOT/"},U.q=function(e,t){h.call(this,`${e}${r}`,t)};let K=/[^A-Za-z0-9\-_.!~*'()/]/;function q(e,t=_){let n=K.test(e)?e.split("/").map(encodeURIComponent).join("/"):e;return`${t}${n}${r}`}function N(e,t){let r,n=e.indexOf("?");if(-1!==n)r=n;else{let t=e.indexOf("#");r=-1!==t?t:e.length}return r>=t.length&&e.startsWith(t,r-t.length)}U.b=_,U.X=r,U.h=q;function B(e){return N(e,".css")}let L={};l.c=L;let I=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return H(e,n.Parent,t.id)};function H(e,t,r){let n=P.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=f(e),l=o.exports;L[e]=o;let u=new i(o,l);try{n(u,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&y(o.exports,o.namespaceObject),o}function F(t){let r;if(!Array.isArray(t))return e.registerChunk(void 0,t);let n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,u=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(u||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),u=!0),t.set(r,l))}r=o+1}}(t,P)),e.registerChunk(n,r)}let D=new Map;function W(e){let t=D.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,retryAttempts:0,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},D.set(e,t)}return t}function X(e,t,r,n,o){!(null==n||n instanceof DOMException&&"NetworkError"===n.name)||r.retryAttempts>=1||D.get(t)!==r?(D.get(t)===r&&D.delete(t),r.reject(n)):(r.retryAttempts++,setTimeout(()=>{r.resolved||D.get(t)!==r||(o?o():(r.loadingStarted=!1,z(e,t)))},200+Math.floor(401*Math.random())))}function z(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===n.Runtime)return r.loadingStarted=!0,B(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(B(t));else if(N(t,".js")){self.TURBOPACK_NEXT_CHUNK_URLS.push(t);try{importScripts(t)}catch(n){X(e,t,r,n)}}else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let n=decodeURI(t);if(B(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${n}"],link[rel=stylesheet][href^="${n}?"]`).length>0)r.resolve();else{let n=()=>{let o=document.createElement("link");return o.rel="stylesheet",o.crossOrigin=null,o.href=t,o.onerror=()=>{let i=document.createComment("");o.replaceWith(i),X(e,t,r,void 0,()=>i.replaceWith(n()))},o.onload=()=>{r.resolve()},o};document.head.appendChild(n())}else if(N(t,".js")){let o=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${n}"],script[src^="${n}?"]`);if(o.length>0)for(let n of Array.from(o))n.addEventListener("error",()=>{n.remove(),X(e,t,r)},{once:!0});else{let n=document.createElement("script");n.crossOrigin=null,n.src=t,n.onerror=()=>{n.remove(),X(e,t,r)},document.head.appendChild(n)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise}e={async registerChunk(e,t){let r;if(null!=e&&(r=function(e){if("string"==typeof e)return e;let t=decodeURIComponent(e.src.replace(/[?#].*$/,""));return t.startsWith(_)?t.slice(_.length):t}(e),W("string"==typeof e?q(e):e.src).resolve()),null!=t){for(let e of t.otherChunks)W(q("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(e=>{var t;return t=r,E(n.Runtime,t,e)})),t.runtimeModuleIds.length>0)for(let e of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}H(t,n.Runtime,e)}(r,e)}},loadChunkCached:(e,t)=>z(e,t)};var J=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},J.forEach(F)})();
package/launcher.js CHANGED
@@ -49,15 +49,31 @@ function appVersion() {
49
49
  /** NextAuth 会话密钥:首次运行随机生成并保存,之后保持不变,避免重启后登录失效 */
50
50
  function ensureSecret(dataDir) {
51
51
  const file = path.join(dataDir, '.nextauth_secret');
52
- if (fs.existsSync(file)) {
53
- const saved = fs.readFileSync(file, 'utf8').trim();
54
- if (saved) return saved;
55
- }
52
+ const saved = readTextIfExists(file).trim();
53
+ if (saved) return saved;
56
54
  const secret = crypto.randomBytes(32).toString('base64');
57
- fs.writeFileSync(file, secret, { mode: 0o600 });
55
+ try {
56
+ // wx:文件已存在时失败,不覆盖同时启动的另一个进程刚生成的密钥
57
+ fs.writeFileSync(file, secret, { mode: 0o600, flag: 'wx' });
58
+ } catch (error) {
59
+ if (error.code !== 'EEXIST') throw error;
60
+ const other = readTextIfExists(file).trim();
61
+ if (other) return other;
62
+ // 已有的是空文件,直接覆盖
63
+ fs.writeFileSync(file, secret, { mode: 0o600 });
64
+ }
58
65
  return secret;
59
66
  }
60
67
 
68
+ function readTextIfExists(file) {
69
+ try {
70
+ return fs.readFileSync(file, 'utf8');
71
+ } catch (error) {
72
+ if (error.code === 'ENOENT') return '';
73
+ throw error;
74
+ }
75
+ }
76
+
61
77
  /** Prisma 的 SQLite 地址统一使用正斜杠,Windows 盘符路径也可用 */
62
78
  function sqliteUrl(file) {
63
79
  return `file:${file.split(path.sep).join('/')}`;
@@ -181,7 +197,7 @@ function start(options = {}) {
181
197
  require(path.join(APP_DIR, 'server.js'));
182
198
  }
183
199
 
184
- module.exports = { prepare, start, parseArgs, defaultDataDir, sqliteUrl };
200
+ module.exports = { prepare, start, parseArgs, defaultDataDir, sqliteUrl, ensureSecret };
185
201
 
186
202
  if (require.main === module) {
187
203
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrong-notebook",
3
- "version": "2026.10.22-4",
3
+ "version": "2026.10.23",
4
4
  "description": "错题本:上传题目图片,由 AI 识别、解析并标注知识点,支持练习、统计与打印导出",
5
5
  "keywords": [
6
6
  "wrong-notebook",
package/prisma/seed.db CHANGED
Binary file
@@ -1,3 +0,0 @@
1
- {
2
- "/api/error-items/[id]/mastery/route": "app/api/error-items/[id]/mastery/route.js"
3
- }
@@ -1,12 +0,0 @@
1
- {
2
- "devFiles": [],
3
- "ampDevFiles": [],
4
- "polyfillFiles": [],
5
- "lowPriorityFiles": [],
6
- "rootMainFiles": [],
7
- "pages": {},
8
- "ampFirstPages": [],
9
- "rootMainFilesTree": {},
10
- "pagesChunkGroupBootstrapParams": {},
11
- "chunkLoadingGlobal": "TURBOPACK"
12
- }
@@ -1,8 +0,0 @@
1
- var R=require("../../../../../chunks/[turbopack]_runtime.js")("server/app/api/error-items/[id]/mastery/route.js")
2
- R.c("server/chunks/[root-of-the-server]__0yc8r2x._.js")
3
- R.c("server/chunks/node_modules_next_1zdbrne._.js")
4
- R.c("server/chunks/_0ekrwj-._.js")
5
- R.c("server/chunks/[root-of-the-server]__00_hq9v._.js")
6
- R.c("server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js")
7
- R.m(321530)
8
- module.exports=R.m(321530).exports
@@ -1,5 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sections": []
5
- }