wrong-notebook 2026.10.22 → 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 (376) 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 +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/routes-manifest.json +0 -8
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  12. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/admin/page.js.nft.json +1 -1
  14. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
  16. package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/admin/dashboard/route.js +8 -2
  18. package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
  19. package/.next/server/app/api/admin/migrate-tags/route.js +1 -1
  20. package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
  21. package/.next/server/app/api/admin/system-reset/route.js +2 -2
  22. package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
  23. package/.next/server/app/api/admin/users/[id]/detail/route.js +9 -2
  24. package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
  25. package/.next/server/app/api/admin/users/[id]/route.js +1 -1
  26. package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/admin/users/route.js +1 -1
  28. package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  29. package/.next/server/app/api/ai/models/route.js +5 -5
  30. package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
  31. package/.next/server/app/api/ai/test/route.js +6 -6
  32. package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
  33. package/.next/server/app/api/analytics/route.js +3 -3
  34. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  35. package/.next/server/app/api/analyze/route.js +7 -7
  36. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  37. package/.next/server/app/api/auth/[...nextauth]/route.js +1 -1
  38. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  39. package/.next/server/app/api/error-items/[id]/delete/route.js +2 -2
  40. package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
  41. package/.next/server/app/api/error-items/[id]/figure/route.js +6 -6
  42. package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
  43. package/.next/server/app/api/error-items/[id]/fix-latex/route.js +7 -7
  44. package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
  45. package/.next/server/app/api/error-items/[id]/geogebra/route.js +7 -7
  46. package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
  47. package/.next/server/app/api/error-items/[id]/image/route.js +2 -2
  48. package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
  49. package/.next/server/app/api/error-items/[id]/notes/route.js +2 -2
  50. package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
  51. package/.next/server/app/api/error-items/[id]/practice-records/route.js +2 -2
  52. package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
  53. package/.next/server/app/api/error-items/[id]/reanswer/route.js +8 -8
  54. package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
  55. package/.next/server/app/api/error-items/[id]/retag/route.js +6 -6
  56. package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
  57. package/.next/server/app/api/error-items/[id]/route.js +1 -1
  58. package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
  59. package/.next/server/app/api/error-items/[id]/svg-animation/route.js +8 -8
  60. package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
  61. package/.next/server/app/api/error-items/batch-delete/route.js +2 -2
  62. package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
  63. package/.next/server/app/api/error-items/clear/route.js +2 -2
  64. package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
  65. package/.next/server/app/api/error-items/list/route.js +4 -4
  66. package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
  67. package/.next/server/app/api/error-items/route.js +8 -8
  68. package/.next/server/app/api/error-items/route.js.nft.json +1 -1
  69. package/.next/server/app/api/error-items/short/[shortId]/route.js +1 -1
  70. package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
  71. package/.next/server/app/api/error-items/similarity/route.js +2 -2
  72. package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
  73. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +7 -7
  74. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
  75. package/.next/server/app/api/exams/[id]/results/route.js +6 -6
  76. package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
  77. package/.next/server/app/api/exams/[id]/retry/route.js +7 -7
  78. package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
  79. package/.next/server/app/api/exams/[id]/route.js +7 -7
  80. package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
  81. package/.next/server/app/api/exams/route.js +7 -7
  82. package/.next/server/app/api/exams/route.js.nft.json +1 -1
  83. package/.next/server/app/api/export/route.js +2 -2
  84. package/.next/server/app/api/export/route.js.nft.json +1 -1
  85. package/.next/server/app/api/geogebra-analyze/route.js +5 -5
  86. package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
  87. package/.next/server/app/api/health/route.js.nft.json +1 -1
  88. package/.next/server/app/api/import/route.js +7 -7
  89. package/.next/server/app/api/import/route.js.nft.json +1 -1
  90. package/.next/server/app/api/logs/frontend/route.js +2 -2
  91. package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
  92. package/.next/server/app/api/notebooks/[id]/retag/route.js +3 -3
  93. package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
  94. package/.next/server/app/api/notebooks/[id]/route.js +2 -2
  95. package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
  96. package/.next/server/app/api/notebooks/route.js +1 -1
  97. package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
  98. package/.next/server/app/api/openclaw/batch-upload/route.js +7 -7
  99. package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
  100. package/.next/server/app/api/practice/generate/route.js +5 -5
  101. package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
  102. package/.next/server/app/api/practice/record/[id]/route.js +5 -5
  103. package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
  104. package/.next/server/app/api/practice/record/route.js +7 -7
  105. package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
  106. package/.next/server/app/api/reanswer/route.js +7 -7
  107. package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
  108. package/.next/server/app/api/register/route.js.nft.json +1 -1
  109. package/.next/server/app/api/register/status/route.js.nft.json +1 -1
  110. package/.next/server/app/api/settings/route.js +3 -3
  111. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  112. package/.next/server/app/api/stats/practice/clear/route.js +2 -2
  113. package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
  114. package/.next/server/app/api/stats/practice/route.js +1 -1
  115. package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
  116. package/.next/server/app/api/tags/route.js +2 -2
  117. package/.next/server/app/api/tags/route.js.nft.json +1 -1
  118. package/.next/server/app/api/tags/stats/route.js +2 -2
  119. package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
  120. package/.next/server/app/api/tags/suggestions/route.js +1 -1
  121. package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
  122. package/.next/server/app/api/tasks/route.js +2 -2
  123. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  124. package/.next/server/app/api/user/route.js +2 -2
  125. package/.next/server/app/api/user/route.js.nft.json +1 -1
  126. package/.next/server/app/api/version/route.js.nft.json +1 -1
  127. package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
  128. package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
  129. package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
  130. package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
  132. package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
  133. package/.next/server/app/exams/page.js.nft.json +1 -1
  134. package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
  135. package/.next/server/app/latex-test/page.js.nft.json +1 -1
  136. package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/login/page.js.nft.json +1 -1
  138. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  139. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  140. package/.next/server/app/manifest.webmanifest.body +1 -1
  141. package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
  142. package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
  143. package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
  144. package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
  145. package/.next/server/app/notebooks/page.js.nft.json +1 -1
  146. package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
  147. package/.next/server/app/page.js.nft.json +1 -1
  148. package/.next/server/app/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/practice/page.js.nft.json +1 -1
  150. package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
  151. package/.next/server/app/print-preview/page.js.nft.json +1 -1
  152. package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/register/page.js.nft.json +1 -1
  154. package/.next/server/app/register/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/stats/page.js.nft.json +1 -1
  156. package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/tags/page.js.nft.json +1 -1
  158. package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app-paths-manifest.json +0 -1
  160. package/.next/server/chunks/{[externals]__1735khz._.js → [externals]__0jzwjtl._.js} +2 -2
  161. package/.next/server/chunks/{[root-of-the-server]__0be5c5r._.js → [root-of-the-server]__0-2l_pu._.js} +1 -1
  162. package/.next/server/chunks/{[root-of-the-server]__02j1w81._.js → [root-of-the-server]__00moo9h._.js} +1 -1
  163. package/.next/server/chunks/{[root-of-the-server]__03nfvnm._.js → [root-of-the-server]__012xcq-._.js} +1 -1
  164. package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
  165. package/.next/server/chunks/{[root-of-the-server]__0bqawi0._.js → [root-of-the-server]__02pqrw_._.js} +1 -1
  166. package/.next/server/chunks/{[root-of-the-server]__0nqbham._.js → [root-of-the-server]__033ri9p._.js} +1 -1
  167. package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +3 -0
  168. package/.next/server/chunks/{[root-of-the-server]__1u-1vx4._.js → [root-of-the-server]__064krqp._.js} +2 -2
  169. package/.next/server/chunks/[root-of-the-server]__07iraov._.js +3 -0
  170. package/.next/server/chunks/{[root-of-the-server]__16begv4._.js → [root-of-the-server]__07q7nsp._.js} +2 -2
  171. package/.next/server/chunks/{[root-of-the-server]__0jaawra._.js → [root-of-the-server]__0_unb90._.js} +1 -1
  172. package/.next/server/chunks/{[root-of-the-server]__0gp88gz._.js → [root-of-the-server]__0a1zwxf._.js} +1 -1
  173. package/.next/server/chunks/{[root-of-the-server]__0k-nf6a._.js → [root-of-the-server]__0aefi10._.js} +2 -2
  174. package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +3 -0
  175. package/.next/server/chunks/{[root-of-the-server]__1hpwwxw._.js → [root-of-the-server]__0d-37yj._.js} +1 -1
  176. package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +3 -0
  177. package/.next/server/chunks/{[root-of-the-server]__0k-p1pj._.js → [root-of-the-server]__0dqgi36._.js} +2 -2
  178. package/.next/server/chunks/{[root-of-the-server]__0mqorxb._.js → [root-of-the-server]__0dz5c04._.js} +2 -2
  179. package/.next/server/chunks/{[root-of-the-server]__0vhjihq._.js → [root-of-the-server]__0e_u82_._.js} +2 -2
  180. package/.next/server/chunks/{[root-of-the-server]__0obb4y-._.js → [root-of-the-server]__0f3jyg0._.js} +2 -2
  181. package/.next/server/chunks/{[root-of-the-server]__1413v0e._.js → [root-of-the-server]__0gwwa9b._.js} +1 -1
  182. package/.next/server/chunks/{[root-of-the-server]__0lrdm1u._.js → [root-of-the-server]__0hars8c._.js} +2 -2
  183. package/.next/server/chunks/{[root-of-the-server]__1h09r50._.js → [root-of-the-server]__0iozebm._.js} +2 -2
  184. package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +3 -0
  185. package/.next/server/chunks/{[root-of-the-server]__1csfdxc._.js → [root-of-the-server]__0k3mm05._.js} +1 -1
  186. package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +3 -0
  187. package/.next/server/chunks/{[root-of-the-server]__0inxsnu._.js → [root-of-the-server]__0lggrcf._.js} +1 -1
  188. package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +3 -0
  189. package/.next/server/chunks/{[root-of-the-server]__06_nln5._.js → [root-of-the-server]__0m37xyb._.js} +2 -2
  190. package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
  191. package/.next/server/chunks/{[root-of-the-server]__1m4-ab6._.js → [root-of-the-server]__0pa47kn._.js} +1 -1
  192. package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +3 -0
  193. package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +3 -0
  194. package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +3 -0
  195. package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +3 -0
  196. package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +3 -0
  197. package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +3 -0
  198. package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +3 -0
  199. package/.next/server/chunks/{[root-of-the-server]__18zrkky._.js → [root-of-the-server]__0w58v6b._.js} +2 -2
  200. package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +3 -0
  201. package/.next/server/chunks/{[root-of-the-server]__0lro5a7._.js → [root-of-the-server]__0wsj4a_._.js} +2 -2
  202. package/.next/server/chunks/{[root-of-the-server]__0u58zap._.js → [root-of-the-server]__0wvvsah._.js} +1 -1
  203. package/.next/server/chunks/{[root-of-the-server]__1v6nwhq._.js → [root-of-the-server]__0xg5h56._.js} +2 -2
  204. package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +3 -0
  205. package/.next/server/chunks/{[root-of-the-server]__06h5afw._.js → [root-of-the-server]__10hs-qn._.js} +1 -1
  206. package/.next/server/chunks/{[root-of-the-server]__1j6mx-v._.js → [root-of-the-server]__119xork._.js} +2 -2
  207. package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
  208. package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +3 -0
  209. package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +5 -5
  210. package/.next/server/chunks/{[root-of-the-server]__0fnyu4s._.js → [root-of-the-server]__15y1l96._.js} +2 -2
  211. package/.next/server/chunks/{[root-of-the-server]__1pplzr1._.js → [root-of-the-server]__16hnc6-._.js} +1 -1
  212. package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +3 -0
  213. package/.next/server/chunks/{[root-of-the-server]__1aaux7e._.js → [root-of-the-server]__19_wn9u._.js} +2 -2
  214. package/.next/server/chunks/{[root-of-the-server]__1cn6rlb._.js → [root-of-the-server]__1_hp3ol._.js} +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +3 -0
  216. package/.next/server/chunks/{[root-of-the-server]__1nwf3ua._.js → [root-of-the-server]__1a4-26x._.js} +2 -2
  217. package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +3 -0
  218. package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +3 -0
  219. package/.next/server/chunks/{[root-of-the-server]__1lct0vi._.js → [root-of-the-server]__1bl7t8i._.js} +2 -2
  220. package/.next/server/chunks/{[root-of-the-server]__1kqv61m._.js → [root-of-the-server]__1c0vatt._.js} +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +3 -0
  222. package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +3 -0
  223. package/.next/server/chunks/{[root-of-the-server]__1sdtn83._.js → [root-of-the-server]__1cngnud._.js} +1 -1
  224. package/.next/server/chunks/{[root-of-the-server]__19vj8qy._.js → [root-of-the-server]__1d82zkk._.js} +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +3 -0
  226. package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +122 -0
  227. package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +3 -0
  228. package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +3 -0
  229. package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +3 -0
  230. package/.next/server/chunks/{[root-of-the-server]__1rsn804._.js → [root-of-the-server]__1i40psm._.js} +2 -2
  231. package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +3 -0
  232. package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +3 -0
  233. package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
  234. package/.next/server/chunks/{[root-of-the-server]__1oup682._.js → [root-of-the-server]__1lbcdia._.js} +1 -1
  235. package/.next/server/chunks/{[root-of-the-server]__1g1wi9i._.js → [root-of-the-server]__1m86czr._.js} +1 -1
  236. package/.next/server/chunks/{[root-of-the-server]__05s4wut._.js → [root-of-the-server]__1mnpqkx._.js} +1 -1
  237. package/.next/server/chunks/{[root-of-the-server]__1cceu4b._.js → [root-of-the-server]__1n4b6nb._.js} +2 -2
  238. package/.next/server/chunks/{[root-of-the-server]__0bsw5c9._.js → [root-of-the-server]__1nmrlew._.js} +2 -2
  239. package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +3 -0
  240. package/.next/server/chunks/{[root-of-the-server]__0c59gc3._.js → [root-of-the-server]__1q7yl7l._.js} +1 -1
  241. package/.next/server/chunks/{[root-of-the-server]__1gmc_uw._.js → [root-of-the-server]__1qv60vg._.js} +1 -1
  242. package/.next/server/chunks/{[root-of-the-server]__1mkpya8._.js → [root-of-the-server]__1ry8uat._.js} +2 -2
  243. package/.next/server/chunks/{[root-of-the-server]__1ezwxao._.js → [root-of-the-server]__1s2rww3._.js} +1 -1
  244. package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +3 -0
  245. package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +3 -0
  246. package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +3 -0
  247. package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +5 -5
  248. package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +3 -0
  249. package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +3 -0
  250. package/.next/server/chunks/_008zx49._.js +1 -1
  251. package/.next/server/chunks/_011-ll5._.js +1 -1
  252. package/.next/server/chunks/_0gxi3zr._.js +1 -1
  253. package/.next/server/chunks/_0lz3t4l._.js +12 -12
  254. package/.next/server/chunks/{_1e1h1f1._.js → _0n36ev0._.js} +1 -1
  255. package/.next/server/chunks/_0oc8oe4._.js +3 -0
  256. package/.next/server/chunks/_0rjzgi0._.js +3 -0
  257. package/.next/server/chunks/_10y361h._.js +3 -0
  258. package/.next/server/chunks/_14tz_k9._.js +1 -1
  259. package/.next/server/chunks/{_0c5hvv3._.js → _15neond._.js} +3 -3
  260. package/.next/server/chunks/_16jdov0._.js +1 -1
  261. package/.next/server/chunks/_1_ns7o3._.js +1 -1
  262. package/.next/server/chunks/_1a1aqmi._.js +1 -1
  263. package/.next/server/chunks/_1b7qjlv._.js +1 -1
  264. package/.next/server/chunks/_1m-yyz-._.js +1 -1
  265. package/.next/server/chunks/_1n1xsqj._.js +3 -0
  266. package/.next/server/chunks/_1z_ujac._.js +1 -1
  267. package/.next/server/chunks/{_0frix22._.js → _2194yr7._.js} +3 -3
  268. package/.next/server/chunks/src_0tzpy5j._.js +1 -1
  269. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +12 -11
  270. package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +1 -1
  271. package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +3 -0
  272. package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +1 -1
  273. package/.next/server/chunks/ssr/[root-of-the-server]__0skyo1a._.js +3 -0
  274. package/.next/server/chunks/ssr/_07ls0n_._.js +1 -1
  275. package/.next/server/chunks/ssr/_0sf1gd9._.js +1 -1
  276. package/.next/server/chunks/ssr/_11ut-6_._.js +3 -0
  277. package/.next/server/chunks/ssr/{_12c20v5._.js → _1aot_70._.js} +1 -1
  278. package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
  279. package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
  280. package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +1 -1
  281. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
  282. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
  283. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +1 -1
  284. package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +1 -1
  285. package/.next/server/middleware-build-manifest.js +3 -3
  286. package/.next/server/middleware-manifest.json +7 -7
  287. package/.next/server/pages/500.html +1 -1
  288. package/.next/server/server-reference-manifest.js +1 -1
  289. package/.next/server/server-reference-manifest.json +1 -1
  290. package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → Y0pwgmRdVAifh_zukihNt}/_clientMiddlewareManifest.js +2 -2
  291. package/.next/static/chunks/03gmdewlo3s6u.js +1 -0
  292. package/.next/static/chunks/06q8lm6y95ac4.css +1 -0
  293. package/.next/static/chunks/0ij2dqb0qj5ry.js +1 -0
  294. package/.next/static/chunks/{2rmhba08h4qqo.js → 0pwdmc9gw8ben.js} +1 -1
  295. package/.next/static/chunks/{35cov9g4cgt-v.js → 1c92up8k2x0z4.js} +1 -1
  296. package/.next/static/chunks/24dymggis4suf.css +3 -0
  297. package/.next/static/chunks/24jbwfpgmio7x.js +1 -0
  298. package/.next/static/chunks/27fr34_1v7xyh.js +1 -0
  299. package/.next/static/chunks/2eu_bls12m1wj.js +1 -0
  300. package/.next/static/chunks/{2yl8a-gxngbuq.js → 2x8e_fbze06sd.js} +1 -1
  301. package/.next/static/chunks/2z1_5umv36es6.js +191 -0
  302. package/.next/static/chunks/3m4c1r8_2ga_1.js +1 -0
  303. package/.next/static/chunks/{2s07soqug65hc.js → 3whzkc6d8oefw.js} +1 -1
  304. package/LICENSE +22 -0
  305. package/launcher.js +22 -6
  306. package/package.json +3 -2
  307. package/prisma/migrations/20261022000141_add_svg_animation_en/migration.sql +2 -0
  308. package/prisma/schema.prisma +2 -1
  309. package/prisma/seed.db +0 -0
  310. package/public/icons/apple-touch-icon.png +0 -0
  311. package/public/icons/icon-192.png +0 -0
  312. package/public/icons/icon-512.png +0 -0
  313. package/public/icons/icon-maskable-512.png +0 -0
  314. package/public/offline.html +61 -0
  315. package/public/sw.js +84 -0
  316. package/.next/server/app/api/error-items/[id]/mastery/route/app-paths-manifest.json +0 -3
  317. package/.next/server/app/api/error-items/[id]/mastery/route/build-manifest.json +0 -12
  318. package/.next/server/app/api/error-items/[id]/mastery/route/server-reference-manifest.json +0 -4
  319. package/.next/server/app/api/error-items/[id]/mastery/route.js +0 -8
  320. package/.next/server/app/api/error-items/[id]/mastery/route.js.map +0 -5
  321. package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +0 -1
  322. package/.next/server/app/api/error-items/[id]/mastery/route_client-reference-manifest.js +0 -3
  323. package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +0 -3
  324. package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +0 -3
  325. package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +0 -3
  326. package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +0 -3
  327. package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +0 -122
  328. package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +0 -3
  329. package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +0 -3
  330. package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +0 -3
  331. package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +0 -3
  332. package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +0 -3
  333. package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +0 -3
  334. package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +0 -3
  335. package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +0 -3
  336. package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +0 -3
  337. package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +0 -3
  338. package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +0 -3
  339. package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +0 -3
  340. package/.next/server/chunks/[root-of-the-server]__11n87go._.js +0 -3
  341. package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +0 -3
  342. package/.next/server/chunks/[root-of-the-server]__131taws._.js +0 -3
  343. package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +0 -3
  344. package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +0 -3
  345. package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +0 -3
  346. package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +0 -3
  347. package/.next/server/chunks/[root-of-the-server]__17duis5._.js +0 -3
  348. package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +0 -3
  349. package/.next/server/chunks/[root-of-the-server]__184u6de._.js +0 -3
  350. package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +0 -3
  351. package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +0 -3
  352. package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +0 -3
  353. package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +0 -3
  354. package/.next/server/chunks/[root-of-the-server]__1loecue._.js +0 -3
  355. package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +0 -3
  356. package/.next/server/chunks/[root-of-the-server]__20465pr._.js +0 -3
  357. package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +0 -3
  358. package/.next/server/chunks/_0_o8yhv._.js +0 -3
  359. package/.next/server/chunks/_0rdo0a4._.js +0 -3
  360. package/.next/server/chunks/_167vv93._.js +0 -3
  361. package/.next/server/chunks/_1flar98._.js +0 -3
  362. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +0 -3
  363. package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +0 -3
  364. package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +0 -3
  365. package/.next/server/chunks/ssr/_1gu1rou._.js +0 -3
  366. package/.next/static/chunks/00pn0o7lymln6.js +0 -1
  367. package/.next/static/chunks/02521degnqmf0.js +0 -1
  368. package/.next/static/chunks/130ch9mnvb6mp.css +0 -3
  369. package/.next/static/chunks/17wdtw8hml2n6.js +0 -191
  370. package/.next/static/chunks/2a0kgntckcbvf.js +0 -1
  371. package/.next/static/chunks/2h-exsnhkfnb8.js +0 -1
  372. package/.next/static/chunks/2wnnnmbh85mq_.js +0 -1
  373. package/.next/static/chunks/3c4-ozf1dxam2.css +0 -1
  374. package/.next/static/chunks/3hz1l3qoxv84t.js +0 -1
  375. /package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → Y0pwgmRdVAifh_zukihNt}/_buildManifest.js +0 -0
  376. /package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → Y0pwgmRdVAifh_zukihNt}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[23322,e=>{"use strict";async function s(){{let{setupGlobalProxy:s}=await e.A(42676);s()}}e.s(["register",0,s])},42676,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__1735khz._.js","server/chunks/[root-of-the-server]__0e22a4y._.js"].map(s=>e.l(s))).then(()=>s(89569)))}];
1
+ module.exports=[23322,e=>{"use strict";async function s(){{let{setupGlobalProxy:s}=await e.A(42676);s()}}e.s(["register",0,s])},42676,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__0jzwjtl._.js","server/chunks/[root-of-the-server]__1fc23i5._.js"].map(s=>e.l(s))).then(()=>s(89569)))}];
2
2
 
3
3
  //# sourceMappingURL=src_0tzpy5j._.js.map
@@ -137,7 +137,7 @@ ${i}
137
137
  ${s}
138
138
 
139
139
  {{grade_instruction}}
140
- {{provider_hints}}`,o=`你是一位资深的K12教育题目生成专家,具备跨学科的题目创作能力。你的核心任务是**根据以下原题和知识点,举一反三生成高质量教学题目**,帮助学生巩固知识并拓展解题思路。
140
+ {{provider_hints}}`,l=`你是一位资深的K12教育题目生成专家,具备跨学科的题目创作能力。你的核心任务是**根据以下原题和知识点,举一反三生成高质量教学题目**,帮助学生巩固知识并拓展解题思路。
141
141
  ### 角色定义
142
142
  1. **学科全能专家**
143
143
  - 精通K12阶段所有学科(数学/语文/英语/物理/化学/生物/历史/地理/政治)
@@ -192,7 +192,7 @@ ${s}
192
192
  ${s}
193
193
 
194
194
  {{grade_instruction}}
195
- {{provider_hints}}`,l=`【角色与核心任务 (ROLE AND CORE TASK)】
195
+ {{provider_hints}}`,o=`【角色与核心任务 (ROLE AND CORE TASK)】
196
196
  你是一位擅长绘制试题插图的老师。请观察用户提供的题目图片,判断题目是否带有配图;如果有,用 SVG 精确地重新绘制该配图。
197
197
 
198
198
  【题目文字(供参考,用于核对图中标注)】
@@ -385,7 +385,8 @@ ${s}
385
385
 
386
386
  【动画要求】
387
387
  - 分 3~6 个步骤,每步 4~6 秒,总时长不超过 40 秒;动画只播放一遍,全部元素使用 fill="freeze",结束时停在完整的解题结论画面。
388
- - 每一步在画面底部的字幕区显示该步的讲解文字(简体中文,每行不超过 24 个字,最多两行),进入下一步时替换为新字幕。
388
+ - 每一步在画面底部的字幕区显示该步的讲解文字({{subtitle_rule}}),进入下一步时替换为新字幕。
389
+ - {{language_instruction}}
389
390
  - 画面与讲解同步:逐步画出辅助线、标出已知条件、高亮正在讲解的部分、移动或变换图形、写出关键算式。几何题按题目条件画图;非几何题用线段图、数轴、表格、示意图或算式推导等合适的形式。
390
391
  - 用 SMIL 动画(<animate>、<set>、<animateTransform>、<animateMotion>)实现,用 begin 属性按时间排列(如 begin="4s");需要先隐藏的元素设 opacity="0" 再用 <animate> 或 <set> 显示。
391
392
  - 公式不要用 LaTeX,用普通文字和 Unicode 符号(如 x\xb2、√2、π、\xd7、\xf7、≤、≥、∠、△、⊥、∥)。
@@ -429,7 +430,7 @@ ${s}
429
430
 
430
431
  【输出格式】
431
432
  只输出一个 JSON 对象,不要输出任何其他内容:
432
- {"probability": 0 到 100 的整数, "reason": "一句话说明判断依据,不超过 60 字"}`,T=`【角色与核心任务 (ROLE AND CORE TASK)】
433
+ {"probability": 0 到 100 的整数, "reason": "一句话说明判断依据,不超过 60 字"}`,h=`【角色与核心任务 (ROLE AND CORE TASK)】
433
434
  你是一位熟悉课程大纲的{{subject}}老师。请阅读下面这道题目及其完整解答过程,从【可选知识点】中选出这道题考查的知识点,并评定题目难度星级。
434
435
 
435
436
  【题目】
@@ -463,7 +464,7 @@ ${i}
463
464
 
464
465
  【输出格式】
465
466
  只输出一个 JSON 对象,不要输出任何其他内容(difficultyStars 为 1~5 的整数):
466
- {"tags": ["知识点1", "知识点2"], "difficultyStars": 3}`;e.s(["LATEX_FIX_TAGS",0,_,"generateAnalyzePrompt",0,function(e,t,i,a,s){var o;let l=(o=a?.prefetchedMathTags)&&o.length>0?o:(console.warn("[prompts] No prefetched tags provided, AI will tag freely"),[]),g=l.length>0?l.map(e=>`"${e}"`).join(", "):"(无可用标签)",d=a?.prefetchedPhysicsTags||[],c=d.length>0?d.map(e=>`"${e}"`).join(", "):"(无可用标签)",_=a?.prefetchedChemistryTags||[],m=_.length>0?_.map(e=>`"${e}"`).join(", "):"(无可用标签)",f=a?.prefetchedBiologyTags||[],p=f.length>0?f.map(e=>`"${e}"`).join(", "):"(无可用标签)",T=a?.prefetchedEnglishTags||[],h=T.length>0?T.map(e=>`"${e}"`).join(", "):"(无可用标签)",w="";if(a?.candidateTags){let{subjectName:e,tags:t}=a.candidateTags;w=`**${e}标签:**
467
+ {"tags": ["知识点1", "知识点2"], "difficultyStars": 3}`;e.s(["LATEX_FIX_TAGS",0,_,"SVG_ANIMATION_REQUEST",0,{zh:"请为上述题目制作 SVG 动画讲解。",en:"Please create the SVG animated explanation for the question above, with all text in English."},"generateAnalyzePrompt",0,function(e,t,i,a,s){var l;let o=(l=a?.prefetchedMathTags)&&l.length>0?l:(console.warn("[prompts] No prefetched tags provided, AI will tag freely"),[]),g=o.length>0?o.map(e=>`"${e}"`).join(", "):"(无可用标签)",d=a?.prefetchedPhysicsTags||[],c=d.length>0?d.map(e=>`"${e}"`).join(", "):"(无可用标签)",_=a?.prefetchedChemistryTags||[],m=_.length>0?_.map(e=>`"${e}"`).join(", "):"(无可用标签)",f=a?.prefetchedBiologyTags||[],p=f.length>0?f.map(e=>`"${e}"`).join(", "):"(无可用标签)",h=a?.prefetchedEnglishTags||[],T=h.length>0?h.map(e=>`"${e}"`).join(", "):"(无可用标签)",w="";if(a?.candidateTags){let{subjectName:e,tags:t}=a.candidateTags;w=`**${e}标签:**
467
468
  本题所在错题本的学段与学科下的全部知识点如下,请使用其中的**精确标签名称**:
468
469
  ${t.length>0?t.map(e=>`"${e}"`).join(", "):"(无可用标签)"}
469
470
 
@@ -495,7 +496,7 @@ ${p}
495
496
  - 必须从上述列表中选择精确匹配的标签
496
497
  - 每题最多 5 个标签`:"英语"===i?`**英语标签 (English Tags):**
497
498
  使用课程大纲中的**精确标签名称**,可选标签如下:
498
- ${h}
499
+ ${T}
499
500
 
500
501
  **重要提示**:
501
502
  - 必须从上述列表中选择精确匹配的标签
@@ -512,7 +513,7 @@ ${m}
512
513
  ${p}
513
514
 
514
515
  **英语标签 (English Tags):**
515
- ${h}`;return u(a?.customTemplate||r,{language_instruction:"zh"===e?"IMPORTANT: For the 'analysis' field, use Simplified Chinese. For 'questionText' and 'answerText', YOU MUST USE THE SAME LANGUAGE AS THE ORIGINAL QUESTION. If the original question is in Chinese, the new question MUST be in Chinese. If the original is in English, keep it in English. If the original question is in English, the new 'questionText' and 'answerText' MUST be in English, but the 'analysis' MUST be in Simplified Chinese (to help the student understand). ":"Please ensure all text fields are in English.",knowledge_points_list:w,grade_instruction:n(s),provider_hints:a?.providerHints||""}).trim()},"generateFigurePrompt",0,function(e){return u(l,{question_text:e?.trim()||"(无题目文字)"}).trim()},"generateGeogebraPrompt",0,function(e,t,n,i){let a=c.replace("{{question_text}}",e).replace("{{answer_text}}",t).replace("{{analysis}}",n);return i?.trim()?a.replace("{{error_feedback}}",`【上次执行错误 (PREVIOUS ERRORS)】
516
+ ${T}`;return u(a?.customTemplate||r,{language_instruction:"zh"===e?"IMPORTANT: For the 'analysis' field, use Simplified Chinese. For 'questionText' and 'answerText', YOU MUST USE THE SAME LANGUAGE AS THE ORIGINAL QUESTION. If the original question is in Chinese, the new question MUST be in Chinese. If the original is in English, keep it in English. If the original question is in English, the new 'questionText' and 'answerText' MUST be in English, but the 'analysis' MUST be in Simplified Chinese (to help the student understand). ":"Please ensure all text fields are in English.",knowledge_points_list:w,grade_instruction:n(s),provider_hints:a?.providerHints||""}).trim()},"generateFigurePrompt",0,function(e){return u(o,{question_text:e?.trim()||"(无题目文字)"}).trim()},"generateGeogebraPrompt",0,function(e,t,n,i){let a=c.replace("{{question_text}}",e).replace("{{answer_text}}",t).replace("{{analysis}}",n);return i?.trim()?a.replace("{{error_feedback}}",`【上次执行错误 (PREVIOUS ERRORS)】
516
517
  上次生成的 GeoGebra 命令执行时出现了以下错误,请分析错误原因并在这次生成中修正:
517
518
  ${i}
518
519
 
@@ -545,17 +546,17 @@ ${n.join("\n\n")}
545
546
  只输出以下标签,每个标签内是修复后的完整内容,不要用 Markdown 代码块包裹,不要输出其他内容:
546
547
 
547
548
  ${i.join("\n\n")}`},"generateMasteryPrompt",0,function(e){let t={correct:"做对",wrong:"做错",not_attempted:"不会做"},n={easy:"简单",medium:"中等",hard:"困难",harder:"挑战"},i={practice:"单题练习",manual:"手动录入",exam:"试卷",duplicate_import:"重复导入做错"},a=e.history.length>0?e.history.map((e,a)=>{let s=e.difficulty?n[e.difficulty]||e.difficulty:"未知";return`${a+1}. ${e.date.slice(0,10)}|难度:${s}|来源:${i[e.source]||e.source}|结果:${t[e.result]||e.result}`}).join("\n"):"暂无练习记录";return u(p,{language_instruction:"en"===e.language?'Write the "reason" field in English.':'"reason" 字段使用简体中文。',question_text:e.questionText||"(无题目文本)",knowledge_points:e.knowledgePoints.length>0?e.knowledgePoints.join("、"):"未标注",mistake_status:{not_attempted:"不会做",wrong_attempt:"做错",unknown:"未知"}[e.mistakeStatus||"unknown"]||"未知",history:a,rule_probability:String(Math.round(100*e.ruleProbability))}).trim()},"generateReanswerPrompt",0,function(e,t,i,a,s){let r=i?`本题学科:${i}`:"请根据题目内容判断学科。";return u(a?.customTemplate||d,{language_instruction:"zh"===e?"IMPORTANT: 解析必须使用简体中文。如果题目是英文,答案保持英文,但解析用中文。":"Please ensure all text fields are in English.",question_text:t,subject_hint:r,knowledge_points_rule:a?.candidateTags?`只能从以下${a.candidateTags.subjectName}知识点中选择 1 到 5 个,必须与名称完全一致,不要改写、不要自创:
548
- ${a.candidateTags.tags.map(e=>`"${e}"`).join(", ")||"(无可用标签)"}`:"",grade_instruction:n(s),provider_hints:a?.providerHints||""}).trim()},"generateSimilarQuestionPrompt",0,function(e,t,i,s="medium",r,l){var d;let c,_={easy:"Make the new question EASIER than the original. Use simpler numbers and more direct concepts.",medium:"Keep the difficulty SIMILAR to the original question.",hard:"Make the new question HARDER than the original. Combine multiple concepts or use more complex numbers.",harder:"Make the new question MUCH HARDER (Challenge Level). Require deeper understanding and multi-step reasoning."}[s],m=u(r?.customTemplate||o,{figure_instruction:(c=(d=r?.originalFigureSvg)?`原题配图如下(SVG),新题若沿用类似图形,必须按新题的条件和数据重新绘制,不要直接照抄:
549
+ ${a.candidateTags.tags.map(e=>`"${e}"`).join(", ")||"(无可用标签)"}`:"",grade_instruction:n(s),provider_hints:a?.providerHints||""}).trim()},"generateSimilarQuestionPrompt",0,function(e,t,i,s="medium",r,o){var d;let c,_={easy:"Make the new question EASIER than the original. Use simpler numbers and more direct concepts.",medium:"Keep the difficulty SIMILAR to the original question.",hard:"Make the new question HARDER than the original. Combine multiple concepts or use more complex numbers.",harder:"Make the new question MUCH HARDER (Challenge Level). Require deeper understanding and multi-step reasoning."}[s],m=u(r?.customTemplate||l,{figure_instruction:(c=(d=r?.originalFigureSvg)?`原题配图如下(SVG),新题若沿用类似图形,必须按新题的条件和数据重新绘制,不要直接照抄:
549
550
  ${d}`:"原题没有配图;只有新题确实需要图形才能理解时才画图。",`<figure_svg>
550
551
  如果新题目需要配图,在此处用 SVG 绘制新题目的配图,图中的字母、数字和标注必须与新题目一致:
551
552
  ${a}
552
553
  ${c}
553
554
  新题目不需要配图时请留空。
554
- </figure_svg>`),difficulty_level:s.toUpperCase(),difficulty_instruction:_,language_instruction:"zh"===e?"IMPORTANT: Provide the output based on the 'Original Question' language. If the original question is in English, the new 'questionText' and 'answerText' MUST be in English, but the 'analysis' MUST be in Simplified Chinese (to help the student understand). If the original is in Chinese, everything MUST be in Simplified Chinese.":"Please ensure the generated question is in English.",original_question:t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),knowledge_points:i.join(", "),grade_instruction:n(l),provider_hints:r?.providerHints||""}).trim();return`${m}
555
+ </figure_svg>`),difficulty_level:s.toUpperCase(),difficulty_instruction:_,language_instruction:"zh"===e?"IMPORTANT: Provide the output based on the 'Original Question' language. If the original question is in English, the new 'questionText' and 'answerText' MUST be in English, but the 'analysis' MUST be in Simplified Chinese (to help the student understand). If the original is in Chinese, everything MUST be in Simplified Chinese.":"Please ensure the generated question is in English.",original_question:t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),knowledge_points:i.join(", "),grade_instruction:n(o),provider_hints:r?.providerHints||""}).trim();return`${m}
555
556
 
556
- ${g}`},"generateSvgAnimationPrompt",0,function(e,t,n,i){return u(f,{question_text:e.trim()||"(无题目文字)",answer_text:t.trim()||"(无)",analysis:n.trim()||"(无)",figure_reference:i?`【题目配图 (FIGURE)】
557
+ ${g}`},"generateSvgAnimationPrompt",0,function(e,t,n,i,a="zh"){return u(f,{subtitle_rule:"en"===a?"英文,每行不超过 48 个字符,最多两行":"简体中文,每行不超过 24 个字,最多两行",language_instruction:"en"===a?"IMPORTANT: All text in the animation (title, labels, table headers, subtitles and conclusions) must be in English. If the question, answer or analysis is in Chinese, translate it into natural English; keep names of points, variables and numbers unchanged.":"动画中的全部文字(标题、标注、表头、字幕和结论)使用简体中文;题目为英文时,题目原文中的专有名词与变量可保留英文。",question_text:e.trim()||"(无题目文字)",answer_text:t.trim()||"(无)",analysis:n.trim()||"(无)",figure_reference:i?`【题目配图 (FIGURE)】
557
558
  题目配图如下(SVG),动画中的图形须与之一致:
558
- ${i}`:""}).trim()},"generateTagSuggestPrompt",0,function(e){let n;return u(T,{subject:e.subject,question_text:e.questionText||"(无题目文本)",answer_text:e.answerText||"(无)",analysis:e.analysis||"(无)",wrong_answer_text:e.wrongAnswerText||"(无)",mistake_analysis:e.mistakeAnalysis||"(无)",grade_instruction:(n=e.gradeSemester?t(e.gradeSemester):null)?`【学生年级】
559
+ ${i}`:""}).trim()},"generateTagSuggestPrompt",0,function(e){let n;return u(h,{subject:e.subject,question_text:e.questionText||"(无题目文本)",answer_text:e.answerText||"(无)",analysis:e.analysis||"(无)",wrong_answer_text:e.wrongAnswerText||"(无)",mistake_analysis:e.mistakeAnalysis||"(无)",grade_instruction:(n=e.gradeSemester?t(e.gradeSemester):null)?`【学生年级】
559
560
  ${n}`:"",allowed_tags:e.allowedTags.map(e=>`"${e}"`).join("、")}).trim()}])}];
560
561
 
561
562
  //# sourceMappingURL=src_lib_ai_prompts_ts_0z36zms._.js.map
@@ -23,7 +23,7 @@ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path
23
23
  <meta charset="utf-8">
24
24
  <meta name="viewport" content="width=device-width, initial-scale=1">
25
25
  <title>${p(a)}</title>
26
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.25/dist/katex.min.css">
26
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.19.0/dist/katex.min.css">
27
27
  <style>body { margin: 0; background: #fff; }${o}</style>
28
28
  </head>
29
29
  <body>
@@ -0,0 +1,3 @@
1
+ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},210,a=>{"use strict";let b=(0,a.i(70106).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],210)},50522,a=>{"use strict";let b=(0,a.i(70106).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],50522)},41710,a=>{"use strict";let b=(0,a.i(70106).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",0,b],41710)},55023,a=>{"use strict";let b=(0,a.i(70106).default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);a.s(["ListChecks",0,b],55023)},99464,a=>{"use strict";let b=(0,a.i(70106).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],99464)},71931,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Printer",0,b],71931)},8406,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Sparkles",0,b],8406)},31368,a=>{"use strict";var b=a.i(87924);let c=(0,a.i(70106).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 d=a.i(50194),e=a.i(68114);let f=[1,2,3,4,5];a.s(["DifficultyStars",0,function({value:a,onChange:g,disabled:h,size:i="sm",showUnrated:j=!0,className:k}){let{t:l}=(0,d.useLanguage)(),m=a??0,n="sm"===i?"h-3.5 w-3.5":"h-5 w-5",o=m?l.difficulty.starsLabel.replace("{n}",String(m)):l.difficulty.unrated;return g?(0,b.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-0.5",k),role:"group","aria-label":`${l.difficulty.label}:${o}`,title:l.difficulty.clearHint,children:[f.map(a=>(0,b.jsx)("button",{type:"button",disabled:h,onClick:()=>g(a===m?null:a),"aria-label":l.difficulty.setStars.replace("{n}",String(a)),"aria-pressed":a<=m,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,b.jsx)(c,{className:(0,e.cn)(n,a<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},a)),!m&&j&&(0,b.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:l.difficulty.unrated})]}):m?(0,b.jsx)("span",{className:(0,e.cn)("inline-flex items-center",k),role:"img","aria-label":`${l.difficulty.label}:${o}`,title:o,children:f.map(a=>(0,b.jsx)(c,{className:(0,e.cn)(n,a<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},a))}):j?(0,b.jsx)("span",{className:(0,e.cn)("text-xs text-muted-foreground",k),children:l.difficulty.unrated}):null}],31368)},22418,a=>{"use strict";var b=a.i(87924),c=a.i(16201),d=a.i(41710),e=a.i(69520),f=a.i(86304),g=a.i(50194);let h={new:{className:"bg-warning/15 text-amber-700 dark:text-warning",icon:d.Clock},reviewing:{className:"bg-primary/10 text-primary",icon:e.RefreshCw},mastered:{className:"bg-success/15 text-success",icon:c.CheckCircle}};a.s(["MASTERY_STATUS_BORDER",0,{new:"border-l-warning/70",reviewing:"border-l-primary/60",mastered:"border-l-success/70"},"MasteryStatusBadge",0,function({status:a,className:c=""}){let{t:d}=(0,g.useLanguage)(),{className:e,icon:i}=h[a],j="mastered"===a?d.notebook.mastered:"reviewing"===a?d.notebook.reviewing:d.notebook.review;return(0,b.jsx)(f.Badge,{variant:"secondary",className:`${e} ${c}`,children:(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(i,{className:"h-3 w-3"})," ",j]})})}])},68368,23222,a=>{"use strict";var b=a.i(87924),c=a.i(50194),d=a.i(57292);let e=["primary","junior_high","senior_high"],f="primary",g=["math","english","chinese","physics","chemistry","biology","history","geography","politics"];function h(a){return"string"==typeof a&&g.includes(a)}function i(a){var b;let c=h(a.subjectKey)?a.subjectKey:(0,d.inferSubjectFromName)(a.name);return{stage:"string"==typeof(b=a.stage)&&e.includes(b)?a.stage:f,subject:c&&h(c)?c:null}}function j(){let{t:a}=(0,c.useLanguage)();return{stageLabel:b=>({primary:a.auth.primary,junior_high:a.auth.juniorHigh,senior_high:a.auth.seniorHigh})[b],subjectLabel:b=>a.tags.subjects[b]}}a.s(["DEFAULT_NOTEBOOK_STAGE",0,f,"NOTEBOOK_STAGES",0,e,"STAGE_SUBJECTS",0,{primary:["math","english"],junior_high:g,senior_high:g},"resolveNotebookScope",0,i],23222),a.s(["NotebookScopeLabel",0,function({notebook:a,className:c}){let{stageLabel:d,subjectLabel:e}=j(),f=i(a);return(0,b.jsxs)("span",{className:c,children:[d(f.stage),f.subject?` \xb7 ${e(f.subject)}`:""]})},"useNotebookScopeLabels",0,j],68368)},73556,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(14574),e=a.i(99570),f=a.i(66718),g=a.i(70430),h=a.i(50194),i=a.i(10302);a.s(["RenameNotebookDialog",0,function({open:a,onOpenChange:j,currentName:k,onRename:l}){let[m,n]=(0,c.useState)(k),[o,p]=(0,c.useState)(!1),{t:q}=(0,h.useLanguage)();(0,c.useEffect)(()=>{n(k)},[k]);let r=async()=>{if(!m.trim())return void i.toast.warning(q.notebooks?.renameDialog?.enterName||"Please enter notebook name");p(!0);try{await l(m.trim()),j(!1)}catch(a){console.error(a)}finally{p(!1)}};return(0,b.jsx)(d.Dialog,{open:a,onOpenChange:j,children:(0,b.jsxs)(d.DialogContent,{children:[(0,b.jsx)(d.DialogHeader,{children:(0,b.jsx)(d.DialogTitle,{children:q.notebooks?.renameDialog?.title||"Rename Notebook"})}),(0,b.jsx)("div",{className:"space-y-4 py-4",children:(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(g.Label,{htmlFor:"rename-name",children:q.notebooks?.renameDialog?.nameLabel||"New Name"}),(0,b.jsx)(f.Input,{id:"rename-name",placeholder:q.notebooks?.renameDialog?.placeholder||"Enter new notebook name",value:m,onChange:a=>n(a.target.value),onKeyDown:a=>"Enter"===a.key&&r()})]})}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>j(!1),children:q.common.cancel}),(0,b.jsx)(e.Button,{onClick:r,disabled:o||!m.trim(),children:o?q.notebooks?.renameDialog?.renaming||"Renaming...":q.notebooks?.renameDialog?.rename||"Rename"})]})]})})}])},95001,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(99570),e=a.i(210);a.s(["BackButton",0,function({fallbackUrl:a,className:f}){let g=(0,c.useRouter)();return(0,b.jsx)(d.Button,{variant:"ghost",size:"icon",onClick:()=>{g.push(a)},className:f,children:(0,b.jsx)(e.ArrowLeft,{className:"h-5 w-5"})})}])},91119,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.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",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},15055,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(70121),e=a.i(50104),f=a.i(7554),g=a.i(25152),h=a.i(77994),i=a.i(3688),j=a.i(77192);a.i(35112);var k=Symbol("radix.slottable");function l(a){return c.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===k}var m=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,e)=>{var f,g;let h,i,j,k=(g=f=`Primitive.${e}`,(h=c.forwardRef((a,b)=>{let{children:e,...f}=a;if(c.isValidElement(e)){var g;let a,h,i=(g=e,(h=(a=Object.getOwnPropertyDescriptor(g.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?g.ref:(h=(a=Object.getOwnPropertyDescriptor(g,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?g.props.ref:g.props.ref||g.ref),j=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(f,e.props);return e.type!==c.Fragment&&(j.ref=b?(0,d.composeRefs)(b,i):i),c.cloneElement(e,j)}return c.Children.count(e)>1?c.Children.only(null):null})).displayName=`${g}.SlotClone`,i=h,(j=c.forwardRef((a,d)=>{let{children:e,...f}=a,g=c.Children.toArray(e),h=g.find(l);if(h){let a=h.props.children,e=g.map(b=>b!==h?b:c.Children.count(a)>1?c.Children.only(null):c.isValidElement(a)?a.props.children:null);return(0,b.jsx)(i,{...f,ref:d,children:c.isValidElement(a)?c.cloneElement(a,void 0,e):null})}return(0,b.jsx)(i,{...f,ref:d,children:e})})).displayName=`${f}.Slot`,j),m=c.forwardRef((a,c)=>{let{asChild:d,...f}=a;return(0,b.jsx)(d?k:e,{...f,ref:c})});return m.displayName=`Primitive.${e}`,{...a,[e]:m}},{}),n="Checkbox",[o,p]=(0,e.createContextScope)(n),[q,r]=o(n);function s(a){let{__scopeCheckbox:d,checked:e,children:f,defaultChecked:h,disabled:i,form:j,name:k,onCheckedChange:l,required:m,value:o="on",internal_do_not_use_render:p}=a,[r,s]=(0,g.useControllableState)({prop:e,defaultProp:h??!1,onChange:l,caller:n}),[t,u]=c.useState(null),[v,w]=c.useState(null),x=c.useRef(!1),y=!t||!!j||!!t.closest("form"),z={checked:r,disabled:i,setChecked:s,control:t,setControl:u,name:k,form:j,value:o,hasConsumerStoppedPropagationRef:x,required:m,defaultChecked:!A(h)&&h,isFormControl:y,bubbleInput:v,setBubbleInput:w};return(0,b.jsx)(q,{scope:d,...z,children:"function"==typeof p?p(z):f})}var t="CheckboxTrigger",u=c.forwardRef(({__scopeCheckbox:a,onKeyDown:e,onClick:g,...h},i)=>{let{control:j,value:k,disabled:l,checked:n,required:o,setControl:p,setChecked:q,hasConsumerStoppedPropagationRef:s,isFormControl:u,bubbleInput:v}=r(t,a),w=(0,d.useComposedRefs)(i,p),x=c.useRef(n);return c.useEffect(()=>{let a=j?.form;if(a){let b=()=>q(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[j,q]),(0,b.jsx)(m.button,{type:"button",role:"checkbox","aria-checked":A(n)?"mixed":n,"aria-required":o,"data-state":B(n),"data-disabled":l?"":void 0,disabled:l,value:k,...h,ref:w,onKeyDown:(0,f.composeEventHandlers)(e,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,f.composeEventHandlers)(g,a=>{q(a=>!!A(a)||!a),v&&u&&(s.current=a.isPropagationStopped(),s.current||a.stopPropagation())})})});u.displayName=t;var v=c.forwardRef((a,c)=>{let{__scopeCheckbox:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(s,{__scopeCheckbox:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(u,{...m,ref:c,__scopeCheckbox:d}),a&&(0,b.jsx)(z,{__scopeCheckbox:d})]})})});v.displayName=n;var w="CheckboxIndicator",x=c.forwardRef((a,c)=>{let{__scopeCheckbox:d,forceMount:e,...f}=a,g=r(w,d);return(0,b.jsx)(j.Presence,{present:e||A(g.checked)||!0===g.checked,children:(0,b.jsx)(m.span,{"data-state":B(g.checked),"data-disabled":g.disabled?"":void 0,...f,ref:c,style:{pointerEvents:"none",...a.style}})})});x.displayName=w;var y="CheckboxBubbleInput",z=c.forwardRef(({__scopeCheckbox:a,...e},f)=>{let{control:g,hasConsumerStoppedPropagationRef:j,checked:k,defaultChecked:l,required:n,disabled:o,name:p,value:q,form:s,bubbleInput:t,setBubbleInput:u}=r(y,a),v=(0,d.useComposedRefs)(f,u),w=(0,h.usePrevious)(k),x=(0,i.useSize)(g);c.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!j.current;if(w!==k&&a){let c=new Event("click",{bubbles:b});t.indeterminate=A(k),a.call(t,!A(k)&&k),t.dispatchEvent(c)}},[t,w,k,j]);let z=c.useRef(!A(k)&&k);return(0,b.jsx)(m.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??z.current,required:n,disabled:o,name:p,value:q,form:s,...e,tabIndex:-1,ref:v,style:{...e.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function A(a){return"indeterminate"===a}function B(a){return A(a)?"indeterminate":a?"checked":"unchecked"}z.displayName=y;var C=a.i(33441),D=a.i(68114);let E=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(v,{ref:d,className:(0,D.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...c,children:(0,b.jsx)(x,{className:(0,D.cn)("flex items-center justify-center text-current"),children:(0,b.jsx)(C.Check,{className:"h-4 w-4"})})}));E.displayName=v.displayName,a.s(["Checkbox",0,E],15055)},79834,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["EmptyState",0,function({icon:a,title:d,description:e,action:f,className:g}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center justify-center rounded-2xl border border-dashed bg-card/50 px-6 py-14 text-center",g),children:[(0,b.jsx)("div",{className:"mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent text-accent-foreground",children:(0,b.jsx)(a,{className:"h-7 w-7"})}),(0,b.jsx)("p",{className:"font-medium",children:d}),e&&(0,b.jsx)("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:e}),f&&(0,b.jsx)("div",{className:"mt-5",children:f})]})}])},51538,a=>{"use strict";var b=a.i(87924),c=a.i(95001),d=a.i(68114);a.s(["PageHeader",0,function({title:a,description:e,backHref:f,actions:g,titleAddon:h,className:i}){return(0,b.jsxs)("div",{className:(0,d.cn)("flex items-start gap-3",i),children:[f&&(0,b.jsx)(c.BackButton,{fallbackUrl:f,className:"-ml-2 shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("h1",{className:"truncate text-2xl font-bold tracking-tight sm:text-3xl",children:a}),h]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground sm:text-base",children:e})]}),g&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:g})]})}])},6376,a=>{"use strict";var b=a.i(87924),c=a.i(96221);a.s(["PageLoading",0,function({label:a}){return(0,b.jsxs)("div",{className:"flex min-h-[50vh] flex-col items-center justify-center gap-3 text-muted-foreground",children:[(0,b.jsx)(c.Loader2,{className:"h-7 w-7 animate-spin text-primary"}),a&&(0,b.jsx)("p",{className:"text-sm",children:a})]})}])},97902,a=>{"use strict";a.s(["DEFAULT_PAGE_SIZE",0,18,"MAX_VISIBLE_PAGES",0,5,"PRINT_PREVIEW_PAGE_SIZE",0,200])},57292,a=>{"use strict";a.i(86705),a.s(["inferSubjectFromName",0,function(a){if(!a)return null;let b=a.toLowerCase();return b.includes("math")||b.includes("数学")?"math":b.includes("physics")||b.includes("物理")?"physics":b.includes("chemistry")||b.includes("化学")?"chemistry":b.includes("biology")||b.includes("生物")?"biology":b.includes("english")||b.includes("英语")?"english":b.includes("chinese")||b.includes("语文")?"chinese":b.includes("history")||b.includes("历史")?"history":b.includes("geography")||b.includes("地理")?"geography":b.includes("politics")||b.includes("政治")?"politics":null}])},92883,a=>{"use strict";function b(a){return"not_attempted"===a||"wrong_attempt"===a||"unknown"===a?a:"unknown"}a.s(["getMistakeStatusLabel",0,function(a,c="zh"){return("en"===c?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[b(a)]},"normalizeMistakeStatusForSave",0,function(a,c){return(c||"").trim()?"wrong_attempt":b(a)}])},74484,a=>{"use strict";var b=a.i(72131),c=a.i(50194);a.s(["usePageTitle",0,function(...a){let{t:d}=(0,c.useLanguage)(),e=[d.pageTitle.base,...a.map(a=>"string"==typeof a?a.trim():"").filter(a=>a.length>0)].join("-");(0,b.useEffect)(()=>{document.title=e},[e])}])},79188,a=>{"use strict";var b=a.i(91938);async function c(a){try{return(await b.apiClient.get(`/api/error-items/short/${encodeURIComponent(a)}`)).id}catch{return null}}a.s(["locateByShortId",0,c])},83715,a=>{"use strict";let b=RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{6}$");a.s(["isShortId",0,function(a){return"string"==typeof a&&b.test(a)}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__03psbtz._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},14548,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Save",0,b],14548)},8406,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Sparkles",0,b],8406)},46862,14491,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(29759),f=a.i(86705),g=a.i(5784),h=a.i(67552),i=a.i(96221),j=a.i(15618),k=a.i(8406),l=a.i(81560),m=a.i(86304),n=a.i(99570),o=a.i(91119),p=a.i(93907),q=a.i(14548),r=a.i(66718),s=a.i(26897),t=a.i(50194),u=a.i(91938);function v({errorItemId:a,onSaved:d,onCancel:g}){let{t:h}=(0,t.useLanguage)(),{timeZone:j}=(0,e.useTimeZone)(),k=(0,f.formatDateTime)(new Date,"yyyy-MM-dd",j),[l,m]=(0,c.useState)(null),[o,p]=(0,c.useState)(k),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=async()=>{if(l&&o){x(!0),z(null);try{await u.apiClient.post("/api/practice/record",{errorItemId:a,result:l,source:"manual",takenAt:(0,f.answeredDateToISOString)(o,j)}),d()}catch{z(h.mastery.resultSaveFailed)}finally{x(!1)}}};return(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,b.jsx)(s.PracticeResultPicker,{value:l,onChange:m,disabled:w}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,b.jsx)("label",{htmlFor:`practice-date-${a}`,className:"text-sm font-medium",children:h.mastery.recordDate}),(0,b.jsx)(r.Input,{id:`practice-date-${a}`,type:"date",value:o,max:k,onChange:a=>p(a.target.value),className:"sm:w-48"}),(0,b.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",onClick:g,disabled:w,className:"flex-1 sm:flex-none",children:h.exam.cancel}),(0,b.jsxs)(n.Button,{size:"sm",onClick:A,disabled:w||!l||!o,className:"flex-1 sm:flex-none",children:[w?(0,b.jsx)(i.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(q.Save,{className:"mr-2 h-4 w-4"}),h.mastery.saveResult]})]})]}),y&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y})]})}var w=a.i(18943),x=a.i(10302);let y={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"};a.s(["MasteryPanel",0,function({errorItemId:a,onMasteryLevelChange:q}){let{timeZone:r}=(0,e.useTimeZone)(),{t:s}=(0,t.useLanguage)(),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(0),[F,G]=(0,c.useState)(!1),H=(0,c.useCallback)(()=>{u.apiClient.get(`/api/error-items/${a}/practice-records`).then(a=>{A(a),q?.(a.masteryLevel)}).catch(()=>void 0)},[a,q]);(0,c.useEffect)(H,[H]);let I=()=>{E(0),H()},J=async a=>{if(await (0,x.confirmDialog)(s.mastery.deleteRecordConfirm,{destructive:!0}))try{await u.apiClient.delete(`/api/practice/record/${a}`),I()}catch{x.toast.error(s.mastery.deleteRecordFailed)}},K=z?.records[0],L=!!K&&(!z?.masteryEvaluatedAt||new Date(K.createdAt)>new Date(z.masteryEvaluatedAt));if((0,c.useEffect)(()=>{if(!L||D>=20)return;let a=setTimeout(()=>{E(a=>a+1),H()},4e3);return()=>clearTimeout(a)},[L,D,H]),!z)return null;let M=z.masteryProbability,N=null===M?null:Math.round(100*M),O=null===N?"":N>=80?"bg-green-500":N>=50?"bg-amber-500":"bg-red-500",P=s.practice.difficulty;return(0,b.jsxs)(o.Card,{children:[(0,b.jsx)(o.CardHeader,{children:(0,b.jsxs)(o.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(k.Sparkles,{className:"h-4 w-4 text-primary"}),s.mastery.probability]})}),(0,b.jsxs)(o.CardContent,{className:"space-y-4",children:[null===N?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:L?s.mastery.pending:s.mastery.notEvaluated}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsxs)("span",{className:"text-3xl font-bold",children:[N,"%"]}),(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[L&&(0,b.jsx)(i.Loader2,{className:"h-3 w-3 animate-spin"}),(0,b.jsx)(m.Badge,{variant:"outline",children:"ai"===z.masterySource?s.mastery.aiEvaluated:s.mastery.estimated})]})]}),(0,b.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,b.jsx)("div",{className:`h-full ${O} transition-all`,style:{width:`${N}%`}})}),z.masteryReason&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:z.masteryReason}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:s.mastery.thresholdHint})]}),(0,b.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold",children:s.mastery.history}),!F&&(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:()=>G(!0),children:[(0,b.jsx)(j.Plus,{className:"mr-1 h-4 w-4"}),s.mastery.addRecord]})]}),F&&(0,b.jsx)(v,{errorItemId:a,onCancel:()=>G(!1),onSaved:()=>{G(!1),I()}}),0===z.records.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:s.mastery.noHistory}):(0,b.jsx)("ul",{className:"divide-y rounded-md border",children:z.records.map(a=>(0,b.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>C(B===a.id?null:a.id),children:[(0,b.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,f.formatDateTime)(a.createdAt,"yyyy-MM-dd HH:mm",r)}),(0,b.jsx)(m.Badge,{variant:"outline",className:y[a.result]||"",children:s.mastery.results[a.result]||a.result}),a.difficulty&&(0,b.jsx)(m.Badge,{variant:"secondary",children:P[a.difficulty]||a.difficulty}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.exam?`${s.mastery.sources.exam} \xb7 ${a.exam.title}`:s.mastery.sources[a.source]||s.mastery.sources.practice}),a.questionText&&(0,b.jsx)("span",{className:"ml-auto text-muted-foreground",children:B===a.id?(0,b.jsx)(h.ChevronUp,{className:"h-4 w-4"}):(0,b.jsx)(g.ChevronDown,{className:"h-4 w-4"})})]}),(0,b.jsx)("button",{type:"button","aria-label":s.mastery.deleteRecord,title:s.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>J(a.id),children:(0,b.jsx)(l.Trash2,{className:"h-4 w-4"})})]}),B===a.id&&a.questionText&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,b.jsx)(p.MarkdownRenderer,{content:a.questionText}),(0,b.jsx)(w.QuestionFigure,{svg:a.figureSvg}),a.wrongAnswerText&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.wrongAnswerText}),(0,b.jsx)(p.MarkdownRenderer,{content:a.wrongAnswerText})]}),a.mistakeAnalysis&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.mistakeAnalysis}),(0,b.jsx)(p.MarkdownRenderer,{content:a.mistakeAnalysis})]}),a.originalImageUrl&&(0,b.jsx)("img",{src:a.originalImageUrl,alt:s.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),a.answerText&&(0,b.jsx)("div",{className:"border-t pt-2",children:(0,b.jsx)(p.MarkdownRenderer,{content:a.answerText,className:"font-semibold"})}),a.exam&&(0,b.jsx)(d.default,{href:`/exams/${a.exam.paperId}`,className:"text-xs text-primary hover:underline",children:a.exam.title})]})]},a.id))})]})]})]})},"RESULT_BADGE_CLASS",0,y],46862);var z=a.i(67295);a.s(["WandSparkles",()=>z.default],14491)},26897,a=>{"use strict";var b=a.i(87924),c=a.i(16201);let d=(0,a.i(70106).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 e=a.i(62722),f=a.i(50194);let g=[{value:"correct",icon:c.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:e.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:d,active:"border-amber-600 bg-amber-50 text-amber-700"}];a.s(["PracticeResultPicker",0,function({value:a,onChange:c,disabled:d,size:e="md"}){let{t:h}=(0,f.useLanguage)(),i="sm"===e?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,b.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:g.map(({value:f,icon:g,active:j})=>(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":a===f,disabled:d,onClick:()=>c(f),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${i} ${a===f?j:"border-input hover:bg-muted"}`,children:[(0,b.jsx)(g,{className:"sm"===e?"h-3 w-3":"h-4 w-4"}),h.mastery.results[f]]},f))})}],26897)},18943,a=>{"use strict";var b=a.i(87924),c=a.i(50194),d=a.i(68114);a.s(["QuestionFigure",0,function({svg:a,className:e}){let{t:f}=(0,c.useLanguage)();return a?(0,b.jsx)("figure",{className:(0,d.cn)("question-figure my-3",e),children:(0,b.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`,alt:f.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],18943)}];
1
+ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},14548,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Save",0,b],14548)},8406,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Sparkles",0,b],8406)},46862,14491,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(29759),f=a.i(86705),g=a.i(5784),h=a.i(67552),i=a.i(96221),j=a.i(15618),k=a.i(8406),l=a.i(81560),m=a.i(86304),n=a.i(99570),o=a.i(91119),p=a.i(93907),q=a.i(14548),r=a.i(66718),s=a.i(26897),t=a.i(50194),u=a.i(91938);function v({errorItemId:a,onSaved:d,onCancel:g}){let{t:h}=(0,t.useLanguage)(),{timeZone:j}=(0,e.useTimeZone)(),k=(0,f.formatDateTime)(new Date,"yyyy-MM-dd",j),[l,m]=(0,c.useState)(null),[o,p]=(0,c.useState)(k),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=async()=>{if(l&&o){x(!0),z(null);try{await u.apiClient.post("/api/practice/record",{errorItemId:a,result:l,source:"manual",takenAt:(0,f.answeredDateToISOString)(o,j)}),d()}catch{z(h.mastery.resultSaveFailed)}finally{x(!1)}}};return(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,b.jsx)(s.PracticeResultPicker,{value:l,onChange:m,disabled:w}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,b.jsx)("label",{htmlFor:`practice-date-${a}`,className:"text-sm font-medium",children:h.mastery.recordDate}),(0,b.jsx)(r.Input,{id:`practice-date-${a}`,type:"date",value:o,max:k,onChange:a=>p(a.target.value),className:"sm:w-48"}),(0,b.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",onClick:g,disabled:w,className:"flex-1 sm:flex-none",children:h.exam.cancel}),(0,b.jsxs)(n.Button,{size:"sm",onClick:A,disabled:w||!l||!o,className:"flex-1 sm:flex-none",children:[w?(0,b.jsx)(i.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(q.Save,{className:"mr-2 h-4 w-4"}),h.mastery.saveResult]})]})]}),y&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y})]})}var w=a.i(18943),x=a.i(10302);let y={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"};a.s(["MasteryPanel",0,function({errorItemId:a,onMasteryStatusChange:q}){let{timeZone:r}=(0,e.useTimeZone)(),{t:s}=(0,t.useLanguage)(),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(0),[F,G]=(0,c.useState)(!1),H=(0,c.useCallback)(()=>{u.apiClient.get(`/api/error-items/${a}/practice-records`).then(a=>{A(a),q?.(a.masteryStatus)}).catch(()=>void 0)},[a,q]);(0,c.useEffect)(H,[H]);let I=()=>{E(0),H()},J=async a=>{if(await (0,x.confirmDialog)(s.mastery.deleteRecordConfirm,{destructive:!0}))try{await u.apiClient.delete(`/api/practice/record/${a}`),I()}catch{x.toast.error(s.mastery.deleteRecordFailed)}},K=z?.records[0],L=!!K&&(!z?.masteryEvaluatedAt||new Date(K.createdAt)>new Date(z.masteryEvaluatedAt));if((0,c.useEffect)(()=>{if(!L||D>=20)return;let a=setTimeout(()=>{E(a=>a+1),H()},4e3);return()=>clearTimeout(a)},[L,D,H]),!z)return null;let M=z.masteryProbability,N=null===M?null:Math.round(100*M),O=null===N?"":null!==M&&M>=.5?"bg-green-500":N>=30?"bg-amber-500":"bg-red-500",P=s.practice.difficulty;return(0,b.jsxs)(o.Card,{children:[(0,b.jsx)(o.CardHeader,{children:(0,b.jsxs)(o.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(k.Sparkles,{className:"h-4 w-4 text-primary"}),s.mastery.probability]})}),(0,b.jsxs)(o.CardContent,{className:"space-y-4",children:[null===N?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:L?s.mastery.pending:s.mastery.notEvaluated}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsxs)("span",{className:"text-3xl font-bold",children:[N,"%"]}),(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[L&&(0,b.jsx)(i.Loader2,{className:"h-3 w-3 animate-spin"}),(0,b.jsx)(m.Badge,{variant:"outline",children:"ai"===z.masterySource?s.mastery.aiEvaluated:s.mastery.estimated})]})]}),(0,b.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,b.jsx)("div",{className:`h-full ${O} transition-all`,style:{width:`${N}%`}})}),z.masteryReason&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:z.masteryReason}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:s.mastery.thresholdHint})]}),(0,b.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold",children:s.mastery.history}),!F&&(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:()=>G(!0),children:[(0,b.jsx)(j.Plus,{className:"mr-1 h-4 w-4"}),s.mastery.addRecord]})]}),F&&(0,b.jsx)(v,{errorItemId:a,onCancel:()=>G(!1),onSaved:()=>{G(!1),I()}}),0===z.records.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:s.mastery.noHistory}):(0,b.jsx)("ul",{className:"divide-y rounded-md border",children:z.records.map(a=>(0,b.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>C(B===a.id?null:a.id),children:[(0,b.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,f.formatDateTime)(a.createdAt,"yyyy-MM-dd HH:mm",r)}),(0,b.jsx)(m.Badge,{variant:"outline",className:y[a.result]||"",children:s.mastery.results[a.result]||a.result}),a.difficulty&&(0,b.jsx)(m.Badge,{variant:"secondary",children:P[a.difficulty]||a.difficulty}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.exam?`${s.mastery.sources.exam} \xb7 ${a.exam.title}`:s.mastery.sources[a.source]||s.mastery.sources.practice}),a.questionText&&(0,b.jsx)("span",{className:"ml-auto text-muted-foreground",children:B===a.id?(0,b.jsx)(h.ChevronUp,{className:"h-4 w-4"}):(0,b.jsx)(g.ChevronDown,{className:"h-4 w-4"})})]}),(0,b.jsx)("button",{type:"button","aria-label":s.mastery.deleteRecord,title:s.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>J(a.id),children:(0,b.jsx)(l.Trash2,{className:"h-4 w-4"})})]}),B===a.id&&a.questionText&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,b.jsx)(p.MarkdownRenderer,{content:a.questionText}),(0,b.jsx)(w.QuestionFigure,{svg:a.figureSvg}),a.wrongAnswerText&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.wrongAnswerText}),(0,b.jsx)(p.MarkdownRenderer,{content:a.wrongAnswerText})]}),a.mistakeAnalysis&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.mistakeAnalysis}),(0,b.jsx)(p.MarkdownRenderer,{content:a.mistakeAnalysis})]}),a.originalImageUrl&&(0,b.jsx)("img",{src:a.originalImageUrl,alt:s.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),a.answerText&&(0,b.jsx)("div",{className:"border-t pt-2",children:(0,b.jsx)(p.MarkdownRenderer,{content:a.answerText,className:"font-semibold"})}),a.exam&&(0,b.jsx)(d.default,{href:`/exams/${a.exam.paperId}`,className:"text-xs text-primary hover:underline",children:a.exam.title})]})]},a.id))})]})]})]})},"RESULT_BADGE_CLASS",0,y],46862);var z=a.i(67295);a.s(["WandSparkles",()=>z.default],14491)},26897,a=>{"use strict";var b=a.i(87924),c=a.i(16201);let d=(0,a.i(70106).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 e=a.i(62722),f=a.i(50194);let g=[{value:"correct",icon:c.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:e.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:d,active:"border-amber-600 bg-amber-50 text-amber-700"}];a.s(["PracticeResultPicker",0,function({value:a,onChange:c,disabled:d,size:e="md"}){let{t:h}=(0,f.useLanguage)(),i="sm"===e?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,b.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:g.map(({value:f,icon:g,active:j})=>(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":a===f,disabled:d,onClick:()=>c(f),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${i} ${a===f?j:"border-input hover:bg-muted"}`,children:[(0,b.jsx)(g,{className:"sm"===e?"h-3 w-3":"h-4 w-4"}),h.mastery.results[f]]},f))})}],26897)},18943,a=>{"use strict";var b=a.i(87924),c=a.i(50194),d=a.i(68114);a.s(["QuestionFigure",0,function({svg:a,className:e}){let{t:f}=(0,c.useLanguage)();return a?(0,b.jsx)("figure",{className:(0,d.cn)("question-figure my-3",e),children:(0,b.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`,alt:f.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],18943)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0hzktoi._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},59639,(a,b,c)=>{b.exports=a.x("node:process",()=>require("node:process"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},14548,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Save",0,b],14548)},67295,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["default",0,b])},46862,14491,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(29759),f=a.i(86705),g=a.i(5784),h=a.i(67552),i=a.i(96221),j=a.i(15618),k=a.i(8406),l=a.i(81560),m=a.i(86304),n=a.i(99570),o=a.i(91119),p=a.i(93907),q=a.i(14548),r=a.i(66718),s=a.i(26897),t=a.i(50194),u=a.i(91938);function v({errorItemId:a,onSaved:d,onCancel:g}){let{t:h}=(0,t.useLanguage)(),{timeZone:j}=(0,e.useTimeZone)(),k=(0,f.formatDateTime)(new Date,"yyyy-MM-dd",j),[l,m]=(0,c.useState)(null),[o,p]=(0,c.useState)(k),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=async()=>{if(l&&o){x(!0),z(null);try{await u.apiClient.post("/api/practice/record",{errorItemId:a,result:l,source:"manual",takenAt:(0,f.answeredDateToISOString)(o,j)}),d()}catch{z(h.mastery.resultSaveFailed)}finally{x(!1)}}};return(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,b.jsx)(s.PracticeResultPicker,{value:l,onChange:m,disabled:w}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,b.jsx)("label",{htmlFor:`practice-date-${a}`,className:"text-sm font-medium",children:h.mastery.recordDate}),(0,b.jsx)(r.Input,{id:`practice-date-${a}`,type:"date",value:o,max:k,onChange:a=>p(a.target.value),className:"sm:w-48"}),(0,b.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,b.jsx)(n.Button,{variant:"outline",size:"sm",onClick:g,disabled:w,className:"flex-1 sm:flex-none",children:h.exam.cancel}),(0,b.jsxs)(n.Button,{size:"sm",onClick:A,disabled:w||!l||!o,className:"flex-1 sm:flex-none",children:[w?(0,b.jsx)(i.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(q.Save,{className:"mr-2 h-4 w-4"}),h.mastery.saveResult]})]})]}),y&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y})]})}var w=a.i(18943),x=a.i(10302);let y={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"};a.s(["MasteryPanel",0,function({errorItemId:a,onMasteryStatusChange:q}){let{timeZone:r}=(0,e.useTimeZone)(),{t:s}=(0,t.useLanguage)(),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(0),[F,G]=(0,c.useState)(!1),H=(0,c.useCallback)(()=>{u.apiClient.get(`/api/error-items/${a}/practice-records`).then(a=>{A(a),q?.(a.masteryStatus)}).catch(()=>void 0)},[a,q]);(0,c.useEffect)(H,[H]);let I=()=>{E(0),H()},J=async a=>{if(await (0,x.confirmDialog)(s.mastery.deleteRecordConfirm,{destructive:!0}))try{await u.apiClient.delete(`/api/practice/record/${a}`),I()}catch{x.toast.error(s.mastery.deleteRecordFailed)}},K=z?.records[0],L=!!K&&(!z?.masteryEvaluatedAt||new Date(K.createdAt)>new Date(z.masteryEvaluatedAt));if((0,c.useEffect)(()=>{if(!L||D>=20)return;let a=setTimeout(()=>{E(a=>a+1),H()},4e3);return()=>clearTimeout(a)},[L,D,H]),!z)return null;let M=z.masteryProbability,N=null===M?null:Math.round(100*M),O=null===N?"":null!==M&&M>=.5?"bg-green-500":N>=30?"bg-amber-500":"bg-red-500",P=s.practice.difficulty;return(0,b.jsxs)(o.Card,{children:[(0,b.jsx)(o.CardHeader,{children:(0,b.jsxs)(o.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(k.Sparkles,{className:"h-4 w-4 text-primary"}),s.mastery.probability]})}),(0,b.jsxs)(o.CardContent,{className:"space-y-4",children:[null===N?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:L?s.mastery.pending:s.mastery.notEvaluated}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsxs)("span",{className:"text-3xl font-bold",children:[N,"%"]}),(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[L&&(0,b.jsx)(i.Loader2,{className:"h-3 w-3 animate-spin"}),(0,b.jsx)(m.Badge,{variant:"outline",children:"ai"===z.masterySource?s.mastery.aiEvaluated:s.mastery.estimated})]})]}),(0,b.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,b.jsx)("div",{className:`h-full ${O} transition-all`,style:{width:`${N}%`}})}),z.masteryReason&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:z.masteryReason}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:s.mastery.thresholdHint})]}),(0,b.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold",children:s.mastery.history}),!F&&(0,b.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:()=>G(!0),children:[(0,b.jsx)(j.Plus,{className:"mr-1 h-4 w-4"}),s.mastery.addRecord]})]}),F&&(0,b.jsx)(v,{errorItemId:a,onCancel:()=>G(!1),onSaved:()=>{G(!1),I()}}),0===z.records.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:s.mastery.noHistory}):(0,b.jsx)("ul",{className:"divide-y rounded-md border",children:z.records.map(a=>(0,b.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>C(B===a.id?null:a.id),children:[(0,b.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,f.formatDateTime)(a.createdAt,"yyyy-MM-dd HH:mm",r)}),(0,b.jsx)(m.Badge,{variant:"outline",className:y[a.result]||"",children:s.mastery.results[a.result]||a.result}),a.difficulty&&(0,b.jsx)(m.Badge,{variant:"secondary",children:P[a.difficulty]||a.difficulty}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.exam?`${s.mastery.sources.exam} \xb7 ${a.exam.title}`:s.mastery.sources[a.source]||s.mastery.sources.practice}),a.questionText&&(0,b.jsx)("span",{className:"ml-auto text-muted-foreground",children:B===a.id?(0,b.jsx)(h.ChevronUp,{className:"h-4 w-4"}):(0,b.jsx)(g.ChevronDown,{className:"h-4 w-4"})})]}),(0,b.jsx)("button",{type:"button","aria-label":s.mastery.deleteRecord,title:s.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>J(a.id),children:(0,b.jsx)(l.Trash2,{className:"h-4 w-4"})})]}),B===a.id&&a.questionText&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,b.jsx)(p.MarkdownRenderer,{content:a.questionText}),(0,b.jsx)(w.QuestionFigure,{svg:a.figureSvg}),a.wrongAnswerText&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.wrongAnswerText}),(0,b.jsx)(p.MarkdownRenderer,{content:a.wrongAnswerText})]}),a.mistakeAnalysis&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.mistakeAnalysis}),(0,b.jsx)(p.MarkdownRenderer,{content:a.mistakeAnalysis})]}),a.originalImageUrl&&(0,b.jsx)("img",{src:a.originalImageUrl,alt:s.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),a.answerText&&(0,b.jsx)("div",{className:"border-t pt-2",children:(0,b.jsx)(p.MarkdownRenderer,{content:a.answerText,className:"font-semibold"})}),a.exam&&(0,b.jsx)(d.default,{href:`/exams/${a.exam.paperId}`,className:"text-xs text-primary hover:underline",children:a.exam.title})]})]},a.id))})]})]})]})},"RESULT_BADGE_CLASS",0,y],46862);var z=a.i(67295);a.s(["WandSparkles",()=>z.default],14491)},26897,a=>{"use strict";var b=a.i(87924),c=a.i(16201);let d=(0,a.i(70106).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 e=a.i(62722),f=a.i(50194);let g=[{value:"correct",icon:c.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:e.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:d,active:"border-amber-600 bg-amber-50 text-amber-700"}];a.s(["PracticeResultPicker",0,function({value:a,onChange:c,disabled:d,size:e="md"}){let{t:h}=(0,f.useLanguage)(),i="sm"===e?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,b.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:g.map(({value:f,icon:g,active:j})=>(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":a===f,disabled:d,onClick:()=>c(f),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${i} ${a===f?j:"border-input hover:bg-muted"}`,children:[(0,b.jsx)(g,{className:"sm"===e?"h-3 w-3":"h-4 w-4"}),h.mastery.results[f]]},f))})}],26897)},18943,a=>{"use strict";var b=a.i(87924),c=a.i(50194),d=a.i(68114);a.s(["QuestionFigure",0,function({svg:a,className:e}){let{t:f}=(0,c.useLanguage)();return a?(0,b.jsx)("figure",{className:(0,d.cn)("question-figure my-3",e),children:(0,b.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`,alt:f.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],18943)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0skyo1a._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[210,a=>{"use strict";let b=(0,a.i(70106).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],210)},92e3,a=>{"use strict";let b=(0,a.i(70106).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],92e3)},41710,a=>{"use strict";let b=(0,a.i(70106).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",0,b],41710)},84362,17545,a=>{"use strict";var b=a.i(70106);let c=(0,b.default)("pen-tool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]]);a.s(["PenTool",0,c],84362);let d=(0,b.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);a.s(["Layers",0,d],17545)},30818,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(75003),e=a.i(50944),f=a.i(50194),g=a.i(74484),h=a.i(29759),i=a.i(86705),j=a.i(91938),k=a.i(96221),l=a.i(210),m=a.i(46842),n=a.i(53722),o=a.i(84362),p=a.i(17545),q=a.i(70106);let r=(0,q.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),s=(0,q.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var t=a.i(16201),u=a.i(41710),v=a.i(92e3),w=a.i(77156),x=a.i(99570),y=a.i(91119),z=a.i(86304);a.s(["default",0,function(){let{timeZone:a}=(0,h.useTimeZone)(),{data:q,status:A}=(0,d.useSession)(),B=(0,e.useRouter)(),C=(0,e.useParams)(),{t:D}=(0,f.useLanguage)(),[E,F]=(0,c.useState)(null);(0,g.usePageTitle)(D.admin.dashboard.title,E?.user.name||E?.user.email);let[G,H]=(0,c.useState)(!0),I=C.id,J=(0,c.useCallback)(async()=>{H(!0);try{let a=await j.apiClient.get(`/api/admin/users/${I}/detail`);F(a)}catch(a){console.error("Failed to fetch user detail",a)}finally{H(!1)}},[I]);if((0,c.useEffect)(()=>{if("loading"!==A){if(!q?.user||"admin"!==q.user.role)return void B.push("/");J()}},[q,A,B,J]),"loading"===A||G)return(0,b.jsx)("div",{className:"flex items-center justify-center min-h-[60vh]",children:(0,b.jsx)(k.Loader2,{className:"h-8 w-8 animate-spin text-muted-foreground"})});if(!E)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-[60vh] gap-4",children:[(0,b.jsx)("p",{className:"text-muted-foreground",children:D.common?.error||"加载失败"}),(0,b.jsx)(x.Button,{onClick:J,children:"重试"})]});let K=[{key:"new",label:D.admin?.dashboard?.masteryNew||"未掌握",count:E.masteryDistribution.new,icon:v.AlertCircle,color:"text-red-500"},{key:"reviewing",label:D.admin?.dashboard?.masteryReviewing||"复习中",count:E.masteryDistribution.reviewing,icon:u.Clock,color:"text-yellow-500"},{key:"mastered",label:D.admin?.dashboard?.masteryMastered||"已掌握",count:E.masteryDistribution.mastered,icon:t.CheckCircle,color:"text-green-500"}],L=E.masteryDistribution.new+E.masteryDistribution.reviewing+E.masteryDistribution.mastered;return(0,b.jsxs)("div",{className:"max-w-5xl mx-auto p-4 sm:p-6 space-y-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:()=>B.push("/admin"),children:[(0,b.jsx)(l.ArrowLeft,{className:"h-4 w-4 mr-1"}),D.common?.back||"返回"]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"p-2 rounded-full bg-blue-50 dark:bg-blue-950/30",children:(0,b.jsx)(m.User,{className:"h-6 w-6 text-blue-500"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-bold",children:E.user.name||"N/A"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:E.user.email})]}),"admin"===E.user.role&&(0,b.jsx)(z.Badge,{variant:"default",children:D.admin?.admin||"管理员"}),(0,b.jsx)(z.Badge,{variant:E.user.isActive?"default":"destructive",children:E.user.isActive?D.admin?.active||"启用":D.admin?.disabled||"禁用"})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4",children:[(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(p.Layers,{className:"h-5 w-5 text-purple-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.notebookCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.notebooks||"错题本"})]})}),(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(n.BookOpen,{className:"h-5 w-5 text-red-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.errorCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.errors||"错题"})]})}),(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(o.PenTool,{className:"h-5 w-5 text-green-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.practiceCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.practice||"练习"})]})}),(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(r,{className:"h-5 w-5 text-blue-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.recent7DaysCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.recent7Days||"近7天录入"})]})})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(p.Layers,{className:"h-4 w-4 text-purple-500"}),D.admin?.dashboard?.userNotebooks||"错题本列表"]})}),(0,b.jsx)(y.CardContent,{children:0===E.notebooks.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:D.admin?.dashboard?.noData||"暂无数据"}):(0,b.jsx)("div",{className:"space-y-2",children:E.notebooks.map(a=>(0,b.jsxs)("div",{className:"flex justify-between items-center p-2 rounded-lg bg-muted/30",children:[(0,b.jsx)("span",{className:"font-medium text-sm",children:a.name}),(0,b.jsxs)(z.Badge,{variant:"secondary",className:"text-xs",children:[a.errorCount," 题"]})]},a.id))})})]}),(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(t.CheckCircle,{className:"h-4 w-4 text-green-500"}),D.admin?.dashboard?.masteryDistribution||"掌握度分布"]})}),(0,b.jsx)(y.CardContent,{children:0===L?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:D.admin?.dashboard?.noData||"暂无数据"}):(0,b.jsx)("div",{className:"space-y-3",children:K.map(a=>{let c=L>0?Math.round(a.count/L*100):0;return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex justify-between text-sm items-center",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(a.icon,{className:`h-4 w-4 ${a.color}`}),a.label]}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[a.count," (",c,"%)"]})]}),(0,b.jsx)("div",{className:"w-full bg-muted rounded-full h-2",children:(0,b.jsx)("div",{className:"h-2 rounded-full bg-current opacity-60 transition-all duration-500",style:{width:`${c}%`}})})]},a.key)})})})]})]}),E.subjectDistribution.length>0&&(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(s,{className:"h-4 w-4 text-blue-500"}),D.admin?.dashboard?.subjectDistribution||"学科错题分布"]})}),(0,b.jsx)(y.CardContent,{children:(0,b.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3",children:E.subjectDistribution.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-muted/30",children:[(0,b.jsx)("span",{className:"font-medium text-sm",children:a.name}),(0,b.jsx)(z.Badge,{variant:"secondary",children:a.count})]},a.name))})})]}),(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(w.Eye,{className:"h-4 w-4 text-orange-500"}),D.admin?.dashboard?.recentErrors||"最近录入的错题"]})}),(0,b.jsx)(y.CardContent,{children:0===E.recentErrorItems.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:D.admin?.dashboard?.noData||"暂无数据"}):(0,b.jsx)("div",{className:"space-y-2",children:E.recentErrorItems.map(c=>(0,b.jsxs)("div",{className:"flex items-start justify-between p-3 rounded-lg bg-muted/30 gap-3",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate",children:c.questionText||c.ocrText||"(无题目文本)"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[c.subject&&(0,b.jsx)(z.Badge,{variant:"outline",className:"text-xs",children:c.subject.name}),2===c.masteryLevel&&(0,b.jsx)(z.Badge,{variant:"default",className:"text-xs",children:D.admin?.dashboard?.masteryMastered||"已掌握"}),1===c.masteryLevel&&(0,b.jsx)(z.Badge,{variant:"secondary",className:"text-xs",children:D.admin?.dashboard?.masteryReviewing||"复习中"}),0===c.masteryLevel&&(0,b.jsx)(z.Badge,{variant:"outline",className:"text-xs",children:D.admin?.dashboard?.masteryNew||"未掌握"})]})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:(0,i.formatDateTime)(c.createdAt,"yyyy-MM-dd",a)})]},c.id))})})]})]})}],30818)},91119,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.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",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},74484,a=>{"use strict";var b=a.i(72131),c=a.i(50194);a.s(["usePageTitle",0,function(...a){let{t:d}=(0,c.useLanguage)(),e=[d.pageTitle.base,...a.map(a=>"string"==typeof a?a.trim():"").filter(a=>a.length>0)].join("-");(0,b.useEffect)(()=>{document.title=e},[e])}])}];
1
+ module.exports=[210,a=>{"use strict";let b=(0,a.i(70106).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],210)},92e3,a=>{"use strict";let b=(0,a.i(70106).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],92e3)},41710,a=>{"use strict";let b=(0,a.i(70106).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",0,b],41710)},84362,17545,a=>{"use strict";var b=a.i(70106);let c=(0,b.default)("pen-tool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]]);a.s(["PenTool",0,c],84362);let d=(0,b.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);a.s(["Layers",0,d],17545)},30818,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(75003),e=a.i(50944),f=a.i(50194),g=a.i(74484),h=a.i(29759),i=a.i(86705),j=a.i(91938),k=a.i(96221),l=a.i(210),m=a.i(46842),n=a.i(53722),o=a.i(84362),p=a.i(17545),q=a.i(70106);let r=(0,q.default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),s=(0,q.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var t=a.i(16201),u=a.i(41710),v=a.i(92e3),w=a.i(77156),x=a.i(99570),y=a.i(91119),z=a.i(86304);a.s(["default",0,function(){let{timeZone:a}=(0,h.useTimeZone)(),{data:q,status:A}=(0,d.useSession)(),B=(0,e.useRouter)(),C=(0,e.useParams)(),{t:D}=(0,f.useLanguage)(),[E,F]=(0,c.useState)(null);(0,g.usePageTitle)(D.admin.dashboard.title,E?.user.name||E?.user.email);let[G,H]=(0,c.useState)(!0),I=C.id,J=(0,c.useCallback)(async()=>{H(!0);try{let a=await j.apiClient.get(`/api/admin/users/${I}/detail`);F(a)}catch(a){console.error("Failed to fetch user detail",a)}finally{H(!1)}},[I]);if((0,c.useEffect)(()=>{if("loading"!==A){if(!q?.user||"admin"!==q.user.role)return void B.push("/");J()}},[q,A,B,J]),"loading"===A||G)return(0,b.jsx)("div",{className:"flex items-center justify-center min-h-[60vh]",children:(0,b.jsx)(k.Loader2,{className:"h-8 w-8 animate-spin text-muted-foreground"})});if(!E)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-[60vh] gap-4",children:[(0,b.jsx)("p",{className:"text-muted-foreground",children:D.common?.error||"加载失败"}),(0,b.jsx)(x.Button,{onClick:J,children:"重试"})]});let K=[{key:"new",label:D.admin?.dashboard?.masteryNew||"待复习",count:E.masteryDistribution.new,icon:v.AlertCircle,color:"text-red-500"},{key:"reviewing",label:D.admin?.dashboard?.masteryReviewing||"复习中",count:E.masteryDistribution.reviewing,icon:u.Clock,color:"text-yellow-500"},{key:"mastered",label:D.admin?.dashboard?.masteryMastered||"已掌握",count:E.masteryDistribution.mastered,icon:t.CheckCircle,color:"text-green-500"}],L=E.masteryDistribution.new+E.masteryDistribution.reviewing+E.masteryDistribution.mastered;return(0,b.jsxs)("div",{className:"max-w-5xl mx-auto p-4 sm:p-6 space-y-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:()=>B.push("/admin"),children:[(0,b.jsx)(l.ArrowLeft,{className:"h-4 w-4 mr-1"}),D.common?.back||"返回"]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("div",{className:"p-2 rounded-full bg-blue-50 dark:bg-blue-950/30",children:(0,b.jsx)(m.User,{className:"h-6 w-6 text-blue-500"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-bold",children:E.user.name||"N/A"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:E.user.email})]}),"admin"===E.user.role&&(0,b.jsx)(z.Badge,{variant:"default",children:D.admin?.admin||"管理员"}),(0,b.jsx)(z.Badge,{variant:E.user.isActive?"default":"destructive",children:E.user.isActive?D.admin?.active||"启用":D.admin?.disabled||"禁用"})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4",children:[(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(p.Layers,{className:"h-5 w-5 text-purple-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.notebookCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.notebooks||"错题本"})]})}),(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(n.BookOpen,{className:"h-5 w-5 text-red-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.errorCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.errors||"错题"})]})}),(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(o.PenTool,{className:"h-5 w-5 text-green-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.practiceCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.practice||"练习"})]})}),(0,b.jsx)(y.Card,{className:"border-0 shadow-sm",children:(0,b.jsxs)(y.CardContent,{className:"p-4 text-center",children:[(0,b.jsx)(r,{className:"h-5 w-5 text-blue-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:E.recent7DaysCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:D.admin?.dashboard?.recent7Days||"近7天录入"})]})})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(p.Layers,{className:"h-4 w-4 text-purple-500"}),D.admin?.dashboard?.userNotebooks||"错题本列表"]})}),(0,b.jsx)(y.CardContent,{children:0===E.notebooks.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:D.admin?.dashboard?.noData||"暂无数据"}):(0,b.jsx)("div",{className:"space-y-2",children:E.notebooks.map(a=>(0,b.jsxs)("div",{className:"flex justify-between items-center p-2 rounded-lg bg-muted/30",children:[(0,b.jsx)("span",{className:"font-medium text-sm",children:a.name}),(0,b.jsxs)(z.Badge,{variant:"secondary",className:"text-xs",children:[a.errorCount," 题"]})]},a.id))})})]}),(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(t.CheckCircle,{className:"h-4 w-4 text-green-500"}),D.admin?.dashboard?.masteryDistribution||"掌握度分布"]})}),(0,b.jsx)(y.CardContent,{children:0===L?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:D.admin?.dashboard?.noData||"暂无数据"}):(0,b.jsx)("div",{className:"space-y-3",children:K.map(a=>{let c=L>0?Math.round(a.count/L*100):0;return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex justify-between text-sm items-center",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(a.icon,{className:`h-4 w-4 ${a.color}`}),a.label]}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[a.count," (",c,"%)"]})]}),(0,b.jsx)("div",{className:"w-full bg-muted rounded-full h-2",children:(0,b.jsx)("div",{className:"h-2 rounded-full bg-current opacity-60 transition-all duration-500",style:{width:`${c}%`}})})]},a.key)})})})]})]}),E.subjectDistribution.length>0&&(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(s,{className:"h-4 w-4 text-blue-500"}),D.admin?.dashboard?.subjectDistribution||"学科错题分布"]})}),(0,b.jsx)(y.CardContent,{children:(0,b.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3",children:E.subjectDistribution.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-muted/30",children:[(0,b.jsx)("span",{className:"font-medium text-sm",children:a.name}),(0,b.jsx)(z.Badge,{variant:"secondary",children:a.count})]},a.name))})})]}),(0,b.jsxs)(y.Card,{className:"border-0 shadow-sm",children:[(0,b.jsx)(y.CardHeader,{className:"pb-2",children:(0,b.jsxs)(y.CardTitle,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(w.Eye,{className:"h-4 w-4 text-orange-500"}),D.admin?.dashboard?.recentErrors||"最近录入的错题"]})}),(0,b.jsx)(y.CardContent,{children:0===E.recentErrorItems.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:D.admin?.dashboard?.noData||"暂无数据"}):(0,b.jsx)("div",{className:"space-y-2",children:E.recentErrorItems.map(c=>(0,b.jsxs)("div",{className:"flex items-start justify-between p-3 rounded-lg bg-muted/30 gap-3",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("p",{className:"text-sm font-medium truncate",children:c.questionText||c.ocrText||"(无题目文本)"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[c.subject&&(0,b.jsx)(z.Badge,{variant:"outline",className:"text-xs",children:c.subject.name}),"mastered"===c.masteryStatus&&(0,b.jsx)(z.Badge,{variant:"default",className:"text-xs",children:D.admin?.dashboard?.masteryMastered||"已掌握"}),"reviewing"===c.masteryStatus&&(0,b.jsx)(z.Badge,{variant:"secondary",className:"text-xs",children:D.admin?.dashboard?.masteryReviewing||"复习中"}),"new"===c.masteryStatus&&(0,b.jsx)(z.Badge,{variant:"outline",className:"text-xs",children:D.admin?.dashboard?.masteryNew||"待复习"})]})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:(0,i.formatDateTime)(c.createdAt,"yyyy-MM-dd",a)})]},c.id))})})]})]})}],30818)},91119,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.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",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},74484,a=>{"use strict";var b=a.i(72131),c=a.i(50194);a.s(["usePageTitle",0,function(...a){let{t:d}=(0,c.useLanguage)(),e=[d.pageTitle.base,...a.map(a=>"string"==typeof a?a.trim():"").filter(a=>a.length>0)].join("-");(0,b.useEffect)(()=>{document.title=e},[e])}])}];
2
2
 
3
3
  //# sourceMappingURL=_07ls0n_._.js.map