wrong-notebook 2026.10.23 → 2026.10.25-2

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 (1026) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -1
  3. package/.next/build-manifest.json +219 -9
  4. package/.next/prerender-manifest.json +4 -4
  5. package/.next/required-server-files.json +16 -1
  6. package/.next/routes-manifest.json +18 -6
  7. package/.next/server/app/_global-error/page/build-manifest.json +8 -6
  8. package/.next/server/app/_global-error/page.js +9 -8
  9. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +18 -14
  13. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +20 -16
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +18 -14
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -1
  16. package/.next/server/app/_not-found/page/build-manifest.json +8 -6
  17. package/.next/server/app/_not-found/page.js +12 -12
  18. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/admin/page/build-manifest.json +8 -6
  21. package/.next/server/app/admin/page.js +13 -13
  22. package/.next/server/app/admin/page.js.nft.json +1 -1
  23. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/admin/user/[id]/page/build-manifest.json +8 -6
  25. package/.next/server/app/admin/user/[id]/page.js +13 -13
  26. package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
  27. package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/admin/dashboard/route.js +20 -15
  29. package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
  30. package/.next/server/app/api/admin/migrate-tags/route.js +10 -8
  31. package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
  32. package/.next/server/app/api/admin/system-reset/route.js +9 -7
  33. package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
  34. package/.next/server/app/api/admin/users/[id]/detail/route.js +20 -15
  35. package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
  36. package/.next/server/app/api/admin/users/[id]/route.js +10 -7
  37. package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
  38. package/.next/server/app/api/admin/users/route.js +12 -7
  39. package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
  40. package/.next/server/app/api/ai/models/route.js +17 -13
  41. package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
  42. package/.next/server/app/api/ai/test/route.js +18 -14
  43. package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
  44. package/.next/server/app/api/analytics/route.js +12 -8
  45. package/.next/server/app/api/analytics/route.js.nft.json +1 -1
  46. package/.next/server/app/api/analyze/route.js +20 -15
  47. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  48. package/.next/server/app/api/auth/[...nextauth]/route.js +8 -6
  49. package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
  50. package/.next/server/app/api/error-items/[id]/delete/route.js +9 -7
  51. package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
  52. package/.next/server/app/api/error-items/[id]/figure/route.js +19 -14
  53. package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
  54. package/.next/server/app/api/error-items/[id]/fix-latex/route.js +19 -15
  55. package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
  56. package/.next/server/app/api/error-items/[id]/geogebra/route.js +17 -13
  57. package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
  58. package/.next/server/app/api/error-items/[id]/image/route.js +11 -8
  59. package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
  60. package/.next/server/app/api/error-items/[id]/notes/route.js +9 -7
  61. package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
  62. package/.next/server/app/api/error-items/[id]/practice-records/route.js +10 -7
  63. package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
  64. package/.next/server/app/api/error-items/[id]/reanswer/route.js +19 -15
  65. package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
  66. package/.next/server/app/api/error-items/[id]/retag/route.js +21 -15
  67. package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
  68. package/.next/server/app/api/error-items/[id]/route.js +8 -6
  69. package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
  70. package/.next/server/app/api/error-items/[id]/svg-animation/route.js +19 -15
  71. package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
  72. package/.next/server/app/api/error-items/batch-delete/route.js +9 -7
  73. package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
  74. package/.next/server/app/api/error-items/clear/route.js +9 -7
  75. package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
  76. package/.next/server/app/api/error-items/list/route.js +12 -9
  77. package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
  78. package/.next/server/app/api/error-items/route.js +23 -16
  79. package/.next/server/app/api/error-items/route.js.nft.json +1 -1
  80. package/.next/server/app/api/error-items/short/[shortId]/route.js +10 -7
  81. package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
  82. package/.next/server/app/api/error-items/similarity/route.js +11 -8
  83. package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
  84. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +20 -15
  85. package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
  86. package/.next/server/app/api/exams/[id]/results/route.js +21 -15
  87. package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
  88. package/.next/server/app/api/exams/[id]/retry/route.js +20 -15
  89. package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
  90. package/.next/server/app/api/exams/[id]/route.js +18 -13
  91. package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
  92. package/.next/server/app/api/exams/route.js +20 -15
  93. package/.next/server/app/api/exams/route.js.nft.json +1 -1
  94. package/.next/server/app/api/export/route.js +12 -9
  95. package/.next/server/app/api/export/route.js.nft.json +1 -1
  96. package/.next/server/app/api/geogebra-analyze/route.js +19 -14
  97. package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
  98. package/.next/server/app/api/health/route.js +7 -6
  99. package/.next/server/app/api/health/route.js.nft.json +1 -1
  100. package/.next/server/app/api/import/route.js +23 -16
  101. package/.next/server/app/api/import/route.js.nft.json +1 -1
  102. package/.next/server/app/api/logs/frontend/route.js +9 -7
  103. package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
  104. package/.next/server/app/api/notebooks/[id]/retag/route.js +21 -15
  105. package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
  106. package/.next/server/app/api/notebooks/[id]/route.js +9 -8
  107. package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
  108. package/.next/server/app/api/notebooks/route.js +11 -9
  109. package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
  110. package/.next/server/app/api/openclaw/batch-upload/route.js +22 -14
  111. package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
  112. package/.next/server/app/api/practice/generate/route.js +19 -14
  113. package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
  114. package/.next/server/app/api/practice/grade/route/app-paths-manifest.json +3 -0
  115. package/.next/server/app/api/practice/grade/route/build-manifest.json +12 -0
  116. package/.next/server/app/api/practice/grade/route.js +20 -0
  117. package/.next/server/app/api/practice/grade/route.js.nft.json +1 -0
  118. package/.next/server/app/api/practice/grade/route_client-reference-manifest.js +3 -0
  119. package/.next/server/app/api/practice/record/[id]/route.js +20 -14
  120. package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
  121. package/.next/server/app/api/practice/record/route.js +20 -15
  122. package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
  123. package/.next/server/app/api/reanswer/route.js +19 -14
  124. package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
  125. package/.next/server/app/api/register/route.js +9 -6
  126. package/.next/server/app/api/register/route.js.nft.json +1 -1
  127. package/.next/server/app/api/register/status/route.js +10 -7
  128. package/.next/server/app/api/register/status/route.js.nft.json +1 -1
  129. package/.next/server/app/api/review/due/route/app-paths-manifest.json +3 -0
  130. package/.next/server/app/api/review/due/route/build-manifest.json +12 -0
  131. package/.next/server/app/api/review/due/route/server-reference-manifest.json +4 -0
  132. package/.next/server/app/api/review/due/route.js +13 -0
  133. package/.next/server/app/api/review/due/route.js.map +5 -0
  134. package/.next/server/app/api/review/due/route.js.nft.json +1 -0
  135. package/.next/server/app/api/review/due/route_client-reference-manifest.js +3 -0
  136. package/.next/server/app/api/settings/route.js +12 -9
  137. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  138. package/.next/server/app/api/stats/practice/clear/route.js +9 -7
  139. package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
  140. package/.next/server/app/api/stats/practice/route.js +12 -8
  141. package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
  142. package/.next/server/app/api/tags/route.js +9 -8
  143. package/.next/server/app/api/tags/route.js.nft.json +1 -1
  144. package/.next/server/app/api/tags/stats/route.js +10 -7
  145. package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
  146. package/.next/server/app/api/tags/suggestions/route.js +9 -7
  147. package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
  148. package/.next/server/app/api/tasks/route.js +10 -7
  149. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  150. package/.next/server/app/api/user/route.js +11 -9
  151. package/.next/server/app/api/user/route.js.nft.json +1 -1
  152. package/.next/server/app/api/version/route.js +7 -6
  153. package/.next/server/app/api/version/route.js.nft.json +1 -1
  154. package/.next/server/app/error-items/[id]/page/build-manifest.json +8 -6
  155. package/.next/server/app/error-items/[id]/page.js +13 -13
  156. package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
  157. package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/exams/[id]/page/build-manifest.json +8 -6
  159. package/.next/server/app/exams/[id]/page.js +13 -13
  160. package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
  161. package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/exams/[id]/print/page/build-manifest.json +8 -6
  163. package/.next/server/app/exams/[id]/print/page.js +13 -13
  164. package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
  165. package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/exams/page/build-manifest.json +8 -6
  167. package/.next/server/app/exams/page.js +13 -13
  168. package/.next/server/app/exams/page.js.nft.json +1 -1
  169. package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/favicon.ico/route.js +7 -7
  171. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  172. package/.next/server/app/login/page/build-manifest.json +8 -6
  173. package/.next/server/app/login/page.js +13 -13
  174. package/.next/server/app/login/page.js.nft.json +1 -1
  175. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app/manifest.webmanifest/route.js +7 -7
  177. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  178. package/.next/server/app/notebooks/[id]/add/page/build-manifest.json +8 -6
  179. package/.next/server/app/notebooks/[id]/add/page.js +13 -13
  180. package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
  181. package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
  182. package/.next/server/app/notebooks/[id]/page/build-manifest.json +8 -6
  183. package/.next/server/app/notebooks/[id]/page.js +13 -13
  184. package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
  185. package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
  186. package/.next/server/app/notebooks/page/build-manifest.json +8 -6
  187. package/.next/server/app/notebooks/page.js +13 -13
  188. package/.next/server/app/notebooks/page.js.nft.json +1 -1
  189. package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
  190. package/.next/server/app/page/build-manifest.json +8 -6
  191. package/.next/server/app/page.js +13 -13
  192. package/.next/server/app/page.js.nft.json +1 -1
  193. package/.next/server/app/page_client-reference-manifest.js +1 -1
  194. package/.next/server/app/practice/page/build-manifest.json +8 -6
  195. package/.next/server/app/practice/page.js +13 -13
  196. package/.next/server/app/practice/page.js.nft.json +1 -1
  197. package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
  198. package/.next/server/app/print-preview/page/build-manifest.json +8 -6
  199. package/.next/server/app/print-preview/page.js +13 -13
  200. package/.next/server/app/print-preview/page.js.nft.json +1 -1
  201. package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
  202. package/.next/server/app/register/page/build-manifest.json +8 -6
  203. package/.next/server/app/register/page.js +11 -11
  204. package/.next/server/app/register/page.js.nft.json +1 -1
  205. package/.next/server/app/register/page_client-reference-manifest.js +1 -1
  206. package/.next/server/app/review/page/app-paths-manifest.json +3 -0
  207. package/.next/server/app/review/page/build-manifest.json +22 -0
  208. package/.next/server/app/review/page/next-font-manifest.json +11 -0
  209. package/.next/server/app/review/page/server-reference-manifest.json +4 -0
  210. package/.next/server/app/review/page.js +14 -0
  211. package/.next/server/app/review/page.js.map +5 -0
  212. package/.next/server/app/review/page.js.nft.json +1 -0
  213. package/.next/server/app/review/page_client-reference-manifest.js +3 -0
  214. package/.next/server/app/stats/page/build-manifest.json +8 -6
  215. package/.next/server/app/stats/page.js +13 -13
  216. package/.next/server/app/stats/page.js.nft.json +1 -1
  217. package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  218. package/.next/server/app/tags/page/build-manifest.json +8 -6
  219. package/.next/server/app/tags/page.js +13 -13
  220. package/.next/server/app/tags/page.js.nft.json +1 -1
  221. package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
  222. package/.next/server/app-paths-manifest.json +3 -1
  223. package/.next/server/chunks/0ivl_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3ywjhli.js +3 -0
  224. package/.next/server/chunks/1oeh_server_app_api_admin_users_[id]_detail_route_actions_0oe_wktcsiz6j.js +3 -0
  225. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_delete_route_actions_1w26boq5bpk6f.js +3 -0
  226. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_figure_route_actions_0adlts0sguhrk.js +3 -0
  227. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhxtl9kc9.js +3 -0
  228. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uvettiij.js +3 -0
  229. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1oxdmh0.js +3 -0
  230. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2l65i8t.js +3 -0
  231. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3idsy15.js +3 -0
  232. package/.next/server/chunks/1oeh_server_app_api_error-items_batch-delete_route_actions_0hiq_1kd60tc2.js +3 -0
  233. package/.next/server/chunks/1oeh_server_app_api_error-items_short_[shortId]_route_actions_02976v-fif6-5.js +3 -0
  234. package/.next/server/chunks/[externals]__04n7qbralh87n._.js +3 -0
  235. package/.next/server/chunks/[externals]__0jzwjtlwxxyw6._.js +3 -0
  236. package/.next/server/chunks/[externals]__0pot68n2q47fn._.js +3 -0
  237. package/.next/server/chunks/[externals]__1oyo6y4k5ao25._.js +3 -0
  238. package/.next/server/chunks/[externals]__1yyxisf-dquqj._.js +3 -0
  239. package/.next/server/chunks/[externals]_assert_1pwe1ri__g5hw._.js +3 -0
  240. package/.next/server/chunks/[externals]_fs_0pplqgcyv2l7l._.js +3 -0
  241. package/.next/server/chunks/[root-of-the-server]__0-d9f8_x-uokl._.js +3 -0
  242. package/.next/server/chunks/[root-of-the-server]__003ii50e63ws5._.js +3 -0
  243. package/.next/server/chunks/[root-of-the-server]__00atddp_h2wsm._.js +3 -0
  244. package/.next/server/chunks/[root-of-the-server]__00l2rz_disfkg._.js +3 -0
  245. package/.next/server/chunks/[root-of-the-server]__00vnodiir_2d4._.js +3 -0
  246. package/.next/server/chunks/[root-of-the-server]__03_k40ubn0a9g._.js +3 -0
  247. package/.next/server/chunks/[root-of-the-server]__04894g43fsy-j._.js +3 -0
  248. package/.next/server/chunks/[root-of-the-server]__061dm-7_xqjef._.js +3 -0
  249. package/.next/server/chunks/[root-of-the-server]__076sanerpxzzq._.js +3 -0
  250. package/.next/server/chunks/[root-of-the-server]__08ftj1z8v5lqc._.js +3 -0
  251. package/.next/server/chunks/[root-of-the-server]__09-twlny39tdc._.js +3 -0
  252. package/.next/server/chunks/[root-of-the-server]__09mpwfp41rtdc._.js +3 -0
  253. package/.next/server/chunks/[root-of-the-server]__0_qgrtzrjahhc._.js +3 -0
  254. package/.next/server/chunks/[root-of-the-server]__0_t7bbz2btvts._.js +3 -0
  255. package/.next/server/chunks/[root-of-the-server]__0an5a3hedd42o._.js +3 -0
  256. package/.next/server/chunks/[root-of-the-server]__0an9s6-nn3kpq._.js +3 -0
  257. package/.next/server/chunks/[root-of-the-server]__0brc9a9ftklux._.js +3 -0
  258. package/.next/server/chunks/[root-of-the-server]__0dql4kl3n1jq6._.js +3 -0
  259. package/.next/server/chunks/[root-of-the-server]__0fyho53bjgbss._.js +3 -0
  260. package/.next/server/chunks/[root-of-the-server]__0g-kb21pws7qu._.js +3 -0
  261. package/.next/server/chunks/[root-of-the-server]__0hgoyp7m26_hk._.js +3 -0
  262. package/.next/server/chunks/[root-of-the-server]__0hjv7gm7tjgzr._.js +3 -0
  263. package/.next/server/chunks/[root-of-the-server]__0j-pkzf61aot8._.js +3 -0
  264. package/.next/server/chunks/[root-of-the-server]__0k0-mj3lzqicn._.js +3 -0
  265. package/.next/server/chunks/[root-of-the-server]__0l7y2xk1m7h84._.js +3 -0
  266. package/.next/server/chunks/[root-of-the-server]__0ld-3rbaj1m8-._.js +56 -0
  267. package/.next/server/chunks/[root-of-the-server]__0p4dqz2jo4o3r._.js +3 -0
  268. package/.next/server/chunks/[root-of-the-server]__0rg4hkgdxbjou._.js +3 -0
  269. package/.next/server/chunks/[root-of-the-server]__0rk_yxyba4meu._.js +9 -0
  270. package/.next/server/chunks/[root-of-the-server]__0ry-pq8_6mc_0._.js +3 -0
  271. package/.next/server/chunks/[root-of-the-server]__0swyn0_rzg_pb._.js +3 -0
  272. package/.next/server/chunks/[root-of-the-server]__0tua5u4r1xt_r._.js +3 -0
  273. package/.next/server/chunks/[root-of-the-server]__0vtzo5ex73ywq._.js +3 -0
  274. package/.next/server/chunks/[root-of-the-server]__0yd-eoiuoru2o._.js +3 -0
  275. package/.next/server/chunks/[root-of-the-server]__0zjg773epx4r_._.js +3 -0
  276. package/.next/server/chunks/[root-of-the-server]__1-2dj_mbdiqvl._.js +3 -0
  277. package/.next/server/chunks/[root-of-the-server]__1-g3tlhljmfsp._.js +3 -0
  278. package/.next/server/chunks/[root-of-the-server]__1-hc0q3ck7id_._.js +3 -0
  279. package/.next/server/chunks/[root-of-the-server]__1-ti76u3720cd._.js +3 -0
  280. package/.next/server/chunks/[root-of-the-server]__10-um36nto0ht._.js +3 -0
  281. package/.next/server/chunks/[root-of-the-server]__10jwy1-wzrjon._.js +3 -0
  282. package/.next/server/chunks/[root-of-the-server]__123tftn1fdgwu._.js +3 -0
  283. package/.next/server/chunks/[root-of-the-server]__12czp5_up_ywb._.js +3 -0
  284. package/.next/server/chunks/[root-of-the-server]__15eu8gun_s7xv._.js +3 -0
  285. package/.next/server/chunks/[root-of-the-server]__15g3fbcq719hq._.js +3 -0
  286. package/.next/server/chunks/[root-of-the-server]__15tkoe60wvpdf._.js +10 -0
  287. package/.next/server/chunks/[root-of-the-server]__15vjk2wddz8hx._.js +3 -0
  288. package/.next/server/chunks/[root-of-the-server]__18j9-n7s671bt._.js +3 -0
  289. package/.next/server/chunks/[root-of-the-server]__18si67df5ho67._.js +3 -0
  290. package/.next/server/chunks/[root-of-the-server]__1_gkx5xy1-3em._.js +3 -0
  291. package/.next/server/chunks/[root-of-the-server]__1bqziovn_k5u5._.js +3 -0
  292. package/.next/server/chunks/[root-of-the-server]__1bvjyahgm4s-0._.js +3 -0
  293. package/.next/server/chunks/[root-of-the-server]__1cbj5r83fs2up._.js +3 -0
  294. package/.next/server/chunks/[root-of-the-server]__1d25c4t27ht5c._.js +3 -0
  295. package/.next/server/chunks/[root-of-the-server]__1dll9dp1pfrtj._.js +3 -0
  296. package/.next/server/chunks/[root-of-the-server]__1dxa-5wqgxi3y._.js +3 -0
  297. package/.next/server/chunks/[root-of-the-server]__1e_3xwt459gzy._.js +3 -0
  298. package/.next/server/chunks/[root-of-the-server]__1fc23i58z_ao2._.js +122 -0
  299. package/.next/server/chunks/[root-of-the-server]__1i0nyuimhqkda._.js +3 -0
  300. package/.next/server/chunks/[root-of-the-server]__1i75c6j1-yn3y._.js +3 -0
  301. package/.next/server/chunks/[root-of-the-server]__1jtd2ara5taim._.js +6 -0
  302. package/.next/server/chunks/[root-of-the-server]__1jvkc3eu49g96._.js +3 -0
  303. package/.next/server/chunks/[root-of-the-server]__1k0zrfx1r08xk._.js +3 -0
  304. package/.next/server/chunks/[root-of-the-server]__1k_8n_p3i4my_._.js +3 -0
  305. package/.next/server/chunks/[root-of-the-server]__1klj9kp10-bta._.js +3 -0
  306. package/.next/server/chunks/[root-of-the-server]__1n8ih5ow23_12._.js +3 -0
  307. package/.next/server/chunks/[root-of-the-server]__1nmtv65uajre3._.js +10 -0
  308. package/.next/server/chunks/[root-of-the-server]__1q9wd_k6hcd5m._.js +38 -0
  309. package/.next/server/chunks/[root-of-the-server]__1unmu-s-yg7fk._.js +3 -0
  310. package/.next/server/chunks/[root-of-the-server]__1ve3j8ooyhjgv._.js +3 -0
  311. package/.next/server/chunks/[root-of-the-server]__1vgkjjilvagrv._.js +3 -0
  312. package/.next/server/chunks/[root-of-the-server]__1wfua4wupbgjj._.js +3 -0
  313. package/.next/server/chunks/[root-of-the-server]__1wpzmu_3tg_74._.js +3 -0
  314. package/.next/server/chunks/[root-of-the-server]__1ztojnklvdebx._.js +3 -0
  315. package/.next/server/chunks/[root-of-the-server]__1zyka21s1ahtj._.js +3 -0
  316. package/.next/server/chunks/[root-of-the-server]__1zzfvs1z1_tig._.js +3 -0
  317. package/.next/server/chunks/[root-of-the-server]__20khcxfcwy16p._.js +38 -0
  318. package/.next/server/chunks/[turbopack]_runtime.js +146 -16
  319. package/.next/server/chunks/_0-ne-bwuvd_6w._.js +3 -0
  320. package/.next/server/chunks/_011-ll5i30j2e._.js +3 -0
  321. package/.next/server/chunks/_029zt0rilrwvt._.js +3 -0
  322. package/.next/server/chunks/_03ovgh1-4xf3f._.js +3 -0
  323. package/.next/server/chunks/_0431fxnqiloso._.js +3 -0
  324. package/.next/server/chunks/_07amw8ha9rney._.js +3 -0
  325. package/.next/server/chunks/_0_3_65z6ak-5i._.js +3 -0
  326. package/.next/server/chunks/_0_e736ff6uhew._.js +3 -0
  327. package/.next/server/chunks/_0anbzuivml30d._.js +3 -0
  328. package/.next/server/chunks/_0at03z7sgwdv3._.js +3 -0
  329. package/.next/server/chunks/_0axy8rynlghzq._.js +3 -0
  330. package/.next/server/chunks/_0c25unp5_llaq._.js +3 -0
  331. package/.next/server/chunks/_0d66myj_8567o._.js +3 -0
  332. package/.next/server/chunks/_0ekrwj-qx_6uh._.js +36 -0
  333. package/.next/server/chunks/_0geyrqrvyak26._.js +11 -0
  334. package/.next/server/chunks/_0gxi3zrkhyvx_._.js +3 -0
  335. package/.next/server/chunks/_0h1rbua_hqkox._.js +3 -0
  336. package/.next/server/chunks/_0kkvpy2s_y3-n._.js +11 -0
  337. package/.next/server/chunks/_0kreo-8xn80hb._.js +3 -0
  338. package/.next/server/chunks/_0l2j3br2g32zp._.js +3 -0
  339. package/.next/server/chunks/_0lz3t4lsygbtv._.js +19 -0
  340. package/.next/server/chunks/_0mt2ctbvzfero._.js +3 -0
  341. package/.next/server/chunks/_0ne4rbj35w-io._.js +11 -0
  342. package/.next/server/chunks/_0qaoat396e0_3._.js +3 -0
  343. package/.next/server/chunks/_0qsjdkq-39qbo._.js +11 -0
  344. package/.next/server/chunks/_0tl0cy5j96d7h._.js +3 -0
  345. package/.next/server/chunks/_0tz5wpjdgntj3._.js +3 -0
  346. package/.next/server/chunks/_0uxp3uhmyw1h3._.js +3 -0
  347. package/.next/server/chunks/_0wegi_sv1s4wx._.js +3 -0
  348. package/.next/server/chunks/_0x3ltk09eli_f._.js +36 -0
  349. package/.next/server/chunks/_0z0zrluul2idw._.js +3 -0
  350. package/.next/server/chunks/_0zs7jfzzshbfq._.js +3 -0
  351. package/.next/server/chunks/_11w6ynlxuzl55._.js +3 -0
  352. package/.next/server/chunks/_12i51zlq-xxrl._.js +3 -0
  353. package/.next/server/chunks/_12w5k19rc45j_._.js +3 -0
  354. package/.next/server/chunks/_13ffmxv8qrwi0._.js +3 -0
  355. package/.next/server/chunks/_14w9nrdlajz24._.js +3 -0
  356. package/.next/server/chunks/_15fpgekhvv214._.js +3 -0
  357. package/.next/server/chunks/_16jdov0rxh99d._.js +3 -0
  358. package/.next/server/chunks/_17zw8m241gfs3._.js +3 -0
  359. package/.next/server/chunks/_18amra5328v90._.js +3 -0
  360. package/.next/server/chunks/_18hm5aaxkr500._.js +3 -0
  361. package/.next/server/chunks/_1_273cgnpyl9j._.js +3 -0
  362. package/.next/server/chunks/_1_ns7o3cqznv6._.js +3 -0
  363. package/.next/server/chunks/_1a1aqmie1d3u_._.js +3 -0
  364. package/.next/server/chunks/_1a1udq0c4_6ad._.js +3 -0
  365. package/.next/server/chunks/_1b0269xt-c8f7._.js +3 -0
  366. package/.next/server/chunks/_1b7qjlv0nxovi._.js +3 -0
  367. package/.next/server/chunks/_1be-y660a8z-q._.js +3 -0
  368. package/.next/server/chunks/_1cydcmia78z15._.js +3 -0
  369. package/.next/server/chunks/_1e8w9uuebtrcb._.js +3 -0
  370. package/.next/server/chunks/_1ex6ovo_j2jzv._.js +3 -0
  371. package/.next/server/chunks/_1fgb9ve_nfat4._.js +3 -0
  372. package/.next/server/chunks/_1hj7iit2u6xez._.js +3 -0
  373. package/.next/server/chunks/_1lrt8e26anbnm._.js +11 -0
  374. package/.next/server/chunks/_1m-yyz-pl9-03._.js +3 -0
  375. package/.next/server/chunks/_1pvqo-qnv-nqm._.js +3 -0
  376. package/.next/server/chunks/_1q65ai1_dwgjp._.js +3 -0
  377. package/.next/server/chunks/_1s5-ldt8xhtpp._.js +3 -0
  378. package/.next/server/chunks/_1sp0xk1c5jx5r._.js +3 -0
  379. package/.next/server/chunks/_1taeg5t2ai7_x._.js +3 -0
  380. package/.next/server/chunks/_1tjis3pqfxk7_._.js +3 -0
  381. package/.next/server/chunks/_1vtmdpk7p4al9._.js +3 -0
  382. package/.next/server/chunks/_1wulydy4wg9ow._.js +3 -0
  383. package/.next/server/chunks/_1xpj9uk-9zhl8._.js +3 -0
  384. package/.next/server/chunks/_1y5_49ip8l9oe._.js +3 -0
  385. package/.next/server/chunks/_1z_ujac_e_65s._.js +3 -0
  386. package/.next/server/chunks/_211va-dk9519v._.js +3 -0
  387. package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-r2eove.js +3 -0
  388. package/.next/server/chunks/_next-internal_server_app_api_admin_migrate-tags_route_actions_1ztwxhxi2qsxd.js +3 -0
  389. package/.next/server/chunks/_next-internal_server_app_api_admin_system-reset_route_actions_15aseltajrio-.js +3 -0
  390. package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_route_actions_1hhpuc4kr8kus.js +3 -0
  391. package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1e15wl4.js +3 -0
  392. package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-_fbzuj.js +3 -0
  393. package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8zn22_3.js +3 -0
  394. package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17qxwn3t.js +3 -0
  395. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h7r4czj.js +3 -0
  396. package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdks3z54l.js +3 -0
  397. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5ylrz4c3i.js +3 -0
  398. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_notes_route_actions_1cjux7zwbv-yr.js +3 -0
  399. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4nf1m1rv.js +3 -0
  400. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4uxgcnwcc.js +3 -0
  401. package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-b4usht.js +3 -0
  402. package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue0aseaq.js +3 -0
  403. package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0pe68kn6.js +3 -0
  404. package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9-yrnuz.js +3 -0
  405. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_results_route_actions_1v3vhi4cjl6y6.js +3 -0
  406. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f5xqz2a.js +3 -0
  407. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq8qisud.js +3 -0
  408. package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtjquazbz.js +3 -0
  409. package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc9jg57-.js +3 -0
  410. package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_cc6l98n.js +3 -0
  411. package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkbeskq31.js +3 -0
  412. package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04xh42fpe.js +3 -0
  413. package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxeptyjby8s8.js +3 -0
  414. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t80igzxy.js +3 -0
  415. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxgeuqf90.js +3 -0
  416. package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r04tykl.js +3 -0
  417. package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oenvuk9lp.js +3 -0
  418. package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_f0vpz7.js +3 -0
  419. package/.next/server/chunks/_next-internal_server_app_api_practice_grade_route_actions_09b_8m8ydpzgk.js +3 -0
  420. package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiomdy_l4b.js +3 -0
  421. package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__efurdf.js +3 -0
  422. package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_hfqgvy.js +3 -0
  423. package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c4r8obw.js +3 -0
  424. package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sjq7yjzh.js +3 -0
  425. package/.next/server/chunks/_next-internal_server_app_api_review_due_route_actions_1_d8euuffodv6.js +3 -0
  426. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9acuq1z18.js +3 -0
  427. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0hyvj4g.js +3 -0
  428. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-2uzhl0.js +3 -0
  429. package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2pi6m41.js +3 -0
  430. package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc45lqi1.js +3 -0
  431. package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyvywz3qh.js +3 -0
  432. package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_b3dlgw.js +3 -0
  433. package/.next/server/chunks/_next-internal_server_app_api_user_route_actions_1k-4clgaupijh.js +3 -0
  434. package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js +3 -0
  435. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjlssn1kss.js +3 -0
  436. package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz02cjxld.js +3 -0
  437. package/.next/server/chunks/node_modules_@anthropic-ai_sdk_1nnmjtbtp2rc6._.js +3 -0
  438. package/.next/server/chunks/node_modules_next_1zdbrneapig6o._.js +10 -0
  439. package/.next/server/chunks/node_modules_node-fetch_src_utils_multipart-parser_0a9aeam58e52_.js +3 -0
  440. package/.next/server/chunks/node_modules_zod_v4_classic_external_19886v847zvfd.js +3 -0
  441. package/.next/server/chunks/node_modules_zod_v4_classic_external_1h9u5hd8e7zk0.js +57 -0
  442. package/.next/server/chunks/src_0tzpy5j8n_1bx._.js +3 -0
  443. package/.next/server/chunks/src_lib_01n35ubnvj7qr._.js +3 -0
  444. package/.next/server/chunks/src_lib_05svhzm9a162-._.js +3 -0
  445. package/.next/server/chunks/src_lib_0csk5er_yd1v8._.js +3 -0
  446. package/.next/server/chunks/src_lib_0d4p429mhjazy._.js +3 -0
  447. package/.next/server/chunks/src_lib_0if7dmbrjhhw_._.js +3 -0
  448. package/.next/server/chunks/src_lib_0zxy_zn_mlaya._.js +3 -0
  449. package/.next/server/chunks/src_lib_1-tw3_3nqx6ug._.js +3 -0
  450. package/.next/server/chunks/src_lib_15kwif87cuv22._.js +3 -0
  451. package/.next/server/chunks/src_lib_1geq39r7va9gy._.js +3 -0
  452. package/.next/server/chunks/src_lib_1k0xki4wmn54_._.js +3 -0
  453. package/.next/server/chunks/src_lib_1wgxqrl1loni_._.js +3 -0
  454. package/.next/server/chunks/src_lib_1wh1pqmstnzzt._.js +3 -0
  455. package/.next/server/chunks/src_lib_1wm8ay-jqxakc._.js +3 -0
  456. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms4djibp._.js +589 -0
  457. package/.next/server/chunks/src_lib_auth-utils_ts_20i7biv4dj8pm._.js +3 -0
  458. package/.next/server/chunks/src_lib_current-user_ts_20jgxch2zjmt3._.js +3 -0
  459. package/.next/server/chunks/src_lib_date-time_ts_14chb270f3epb._.js +3 -0
  460. package/.next/server/chunks/src_lib_exam_ts_0d3a4q4r41hcf._.js +3 -0
  461. package/.next/server/chunks/src_lib_logger_ts_067l8txrna0gg._.js +3 -0
  462. package/.next/server/chunks/src_lib_mastery_ts_0ybi94uxn8ut6._.js +3 -0
  463. package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-vwl9ue._.js +3 -0
  464. package/.next/server/chunks/src_lib_retag_ts_0eu8ld_86kt3a._.js +3 -0
  465. package/.next/server/chunks/src_lib_tag-recognition_ts_1wkzrdiapau86._.js +3 -0
  466. package/.next/server/chunks/ssr/[root-of-the-server]__03jq7w4crcz_u._.js +3 -0
  467. package/.next/server/chunks/ssr/[root-of-the-server]__070lhtl_a6l81._.js +3 -0
  468. package/.next/server/chunks/ssr/[root-of-the-server]__0egzlmtf23a_j._.js +3 -0
  469. package/.next/server/chunks/ssr/[root-of-the-server]__0fl_sbe1q-l5j._.js +3 -0
  470. package/.next/server/chunks/ssr/[root-of-the-server]__0i73t4kmj3-mp._.js +3 -0
  471. package/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
  472. package/.next/server/chunks/ssr/[root-of-the-server]__0s0807tegp2v8._.js +3 -0
  473. package/.next/server/chunks/ssr/[root-of-the-server]__0snw-y9tp0_06._.js +3 -0
  474. package/.next/server/chunks/ssr/[root-of-the-server]__0u-q2sah-le20._.js +3 -0
  475. package/.next/server/chunks/ssr/[root-of-the-server]__0uulvxrtw9ld4._.js +3 -0
  476. package/.next/server/chunks/ssr/[root-of-the-server]__0x_ihemma9171._.js +3 -0
  477. package/.next/server/chunks/ssr/[root-of-the-server]__0zqp_pztbsqqc._.js +3 -0
  478. package/.next/server/chunks/ssr/[root-of-the-server]__102i99h9qhhnc._.js +3 -0
  479. package/.next/server/chunks/ssr/[root-of-the-server]__18ej8rcn5j4hs._.js +3 -0
  480. package/.next/server/chunks/ssr/[root-of-the-server]__18i084ru7sq9w._.js +3 -0
  481. package/.next/server/chunks/ssr/[root-of-the-server]__18sucwsgl0hdl._.js +3 -0
  482. package/.next/server/chunks/ssr/[root-of-the-server]__1a50a5t_t8z_e._.js +3 -0
  483. package/.next/server/chunks/ssr/[root-of-the-server]__1b9f3v7g4ocyf._.js +3 -0
  484. package/.next/server/chunks/ssr/[root-of-the-server]__1gulcy2-2jrfj._.js +3 -0
  485. package/.next/server/chunks/ssr/[root-of-the-server]__1hcwd0rtvz96c._.js +3 -0
  486. package/.next/server/chunks/ssr/[root-of-the-server]__1i2zrji0j2c3l._.js +3 -0
  487. package/.next/server/chunks/ssr/[root-of-the-server]__1qpe9xti5ipq0._.js +3 -0
  488. package/.next/server/chunks/ssr/[root-of-the-server]__1qpi6ed0efnfg._.js +3 -0
  489. package/.next/server/chunks/ssr/[root-of-the-server]__1qwt10yvul4gg._.js +3 -0
  490. package/.next/server/chunks/ssr/[root-of-the-server]__1upv9f0hlagx7._.js +3 -0
  491. package/.next/server/chunks/ssr/[root-of-the-server]__1urwx866fvhi4._.js +3 -0
  492. package/.next/server/chunks/ssr/[root-of-the-server]__1uw-g6-ij61rl._.js +3 -0
  493. package/.next/server/chunks/ssr/[root-of-the-server]__1vwegr-t8j6qe._.js +3 -0
  494. package/.next/server/chunks/ssr/[root-of-the-server]__1xfc5gf4weasu._.js +3 -0
  495. package/.next/server/chunks/ssr/[root-of-the-server]__1xufj5ntr9bm3._.js +3 -0
  496. package/.next/server/chunks/ssr/[root-of-the-server]__1yy2y09x1rvba._.js +3 -0
  497. package/.next/server/chunks/ssr/[turbopack]_runtime.js +146 -16
  498. package/.next/server/chunks/ssr/_00np6xqvkg6u-._.js +32 -0
  499. package/.next/server/chunks/ssr/_08fq-uch-l1g6._.js +8 -0
  500. package/.next/server/chunks/ssr/_09y2uhjubswp4._.js +3 -0
  501. package/.next/server/chunks/ssr/_0bsjhzelppbjh._.js +3 -0
  502. package/.next/server/chunks/ssr/_0di9wj37_9zhf._.js +3 -0
  503. package/.next/server/chunks/ssr/_0h6qsip9mphaq._.js +3 -0
  504. package/.next/server/chunks/ssr/_0ng735s0jio00._.js +3 -0
  505. package/.next/server/chunks/ssr/_0rd-teluypcd2._.js +3 -0
  506. package/.next/server/chunks/ssr/_0t2jed64ec8vu._.js +3 -0
  507. package/.next/server/chunks/ssr/_0uvml2k65e53w._.js +3 -0
  508. package/.next/server/chunks/ssr/_1-bq77e5afl30._.js +3 -0
  509. package/.next/server/chunks/ssr/_1-sbpqghw1pn7._.js +3 -0
  510. package/.next/server/chunks/ssr/_110r17vqu8gol._.js +3 -0
  511. package/.next/server/chunks/ssr/_14d3enlxi54zl._.js +3 -0
  512. package/.next/server/chunks/ssr/_17edi6l2a0p76._.js +8 -0
  513. package/.next/server/chunks/ssr/_19ktk2l66yngc._.js +3 -0
  514. package/.next/server/chunks/ssr/_1b9b1aq5b_1sj._.js +3 -0
  515. package/.next/server/chunks/ssr/_1f1l6ubybak3a._.js +3 -0
  516. package/.next/server/chunks/ssr/_1g12ubvpxwe-j._.js +3 -0
  517. package/.next/server/chunks/ssr/_1g8mzz6qxv2mr._.js +3 -0
  518. package/.next/server/chunks/ssr/_1i0mdte5du0e1._.js +3 -0
  519. package/.next/server/chunks/ssr/_1pnt2b76-xt6_._.js +3 -0
  520. package/.next/server/chunks/ssr/_1prnv9r-jt4dy._.js +3 -0
  521. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js +3 -0
  522. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js +3 -0
  523. package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickzfofbmo.js +3 -0
  524. package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gsw9br4u.js +3 -0
  525. package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9akl69m75.js +3 -0
  526. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_page_actions_1kushg5crt5ed.js +3 -0
  527. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxqldskme.js +3 -0
  528. package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-jb4_80.js +3 -0
  529. package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0ny9dmg.js +3 -0
  530. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2lc_po5.js +3 -0
  531. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7tmcbrj.js +3 -0
  532. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz034ff8.js +3 -0
  533. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js +3 -0
  534. package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n6gnmoq.js +3 -0
  535. package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaalnnytwbd.js +3 -0
  536. package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-xpplkgy.js +3 -0
  537. package/.next/server/chunks/ssr/_next-internal_server_app_review_page_actions_1gf_x78pgriy6.js +3 -0
  538. package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_ad6s7ee.js +3 -0
  539. package/.next/server/chunks/ssr/_next-internal_server_app_tags_page_actions_20v_n--6ltjkg.js +3 -0
  540. package/.next/server/chunks/ssr/node_modules_0fm0peui_p0ra._.js +3 -0
  541. package/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
  542. package/.next/server/chunks/ssr/node_modules_1y5ym6hiirb6m._.js +3 -0
  543. package/.next/server/chunks/ssr/node_modules_1yow452htx6uk._.js +3 -0
  544. package/.next/server/chunks/ssr/node_modules_@radix-ui_0im69oqv_i2ki._.js +3 -0
  545. package/.next/server/chunks/ssr/node_modules_@radix-ui_0jungqz8-8rpt._.js +3 -0
  546. package/.next/server/chunks/ssr/node_modules_@radix-ui_react-roving-focus_dist_index_mjs_0jdjq3jxbmizo._.js +3 -0
  547. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_15-zi1i74qu9j._.js +3 -0
  548. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1_p6srzucwl-s._.js +3 -0
  549. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1g_su6v6_1gmz._.js +3 -0
  550. package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_printer_0pprvafgadlwd.js +3 -0
  551. package/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
  552. package/.next/server/chunks/ssr/node_modules_next_dist_0ufsi7bhcumza._.js +23 -0
  553. package/.next/server/chunks/ssr/node_modules_next_dist_1g0hsq_f-fygr._.js +14 -0
  554. package/.next/server/chunks/ssr/node_modules_next_dist_1gey_lsf9b_wo._.js +5 -0
  555. package/.next/server/chunks/ssr/node_modules_next_dist_1khq67j4vo9y4._.js +3 -0
  556. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i643j53._.js +33 -0
  557. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +3 -0
  558. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +3 -0
  559. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
  560. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
  561. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-620erc29b8l.js +3 -0
  562. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02t4jbzz34_x5.js +3 -0
  563. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06zp_1r4dyujd.js +3 -0
  564. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07zpyh6_aix9e.js +3 -0
  565. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08b8vpe4ydv2l.js +3 -0
  566. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0927yli_zsjiv.js +3 -0
  567. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ab39qicq17ku.js +3 -0
  568. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dq5iwc4xesq1.js +3 -0
  569. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mfa8uq-ofoud.js +3 -0
  570. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tz1eth8tnoyx.js +3 -0
  571. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14rvnul2svrv8.js +3 -0
  572. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15yshykizhy_t.js +3 -0
  573. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17vx074zs1h7f.js +3 -0
  574. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18uzvmzy5tpu_.js +3 -0
  575. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_196bmtjcgr159.js +3 -0
  576. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1aq9r3iw9g7qi.js +3 -0
  577. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1e1odqisoi2pv.js +3 -0
  578. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1l6unubiwsg9f.js +3 -0
  579. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ya73f4o4_7mr.js +3 -0
  580. package/.next/server/chunks/ssr/src_13u20tdu4gmgj._.js +3 -0
  581. package/.next/server/chunks/ssr/src_1gayunqs8u2e2._.js +3 -0
  582. package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0w90cx_._.js +3 -0
  583. package/.next/server/chunks/ssr/src_app_admin_user_[id]_page_tsx_0zidp-8hr5upa._.js +3 -0
  584. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdmyh7_9q._.js +3 -0
  585. package/.next/server/chunks/ssr/src_app_exams_[id]_page_tsx_0xcjflkgkwzgd._.js +3 -0
  586. package/.next/server/chunks/ssr/src_app_exams_[id]_print_page_tsx_1i-xvhk8ul1l1._.js +35 -0
  587. package/.next/server/chunks/ssr/src_app_exams_page_tsx_17_d4_gy2i1ds._.js +3 -0
  588. package/.next/server/chunks/ssr/src_app_login_page_tsx_0yrgg2z_juzv9._.js +3 -0
  589. package/.next/server/chunks/ssr/src_app_notebooks_[id]_add_page_tsx_179tow1ql6vc_._.js +3 -0
  590. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5-txm8_._.js +3 -0
  591. package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5gnz_40._.js +3 -0
  592. package/.next/server/chunks/ssr/src_app_page_tsx_1chiuahujsxm1._.js +3 -0
  593. package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53v3kpzb._.js +3 -0
  594. package/.next/server/chunks/ssr/src_app_print-preview_page_tsx_001yt-fzrj7tf._.js +3 -0
  595. package/.next/server/chunks/ssr/src_app_register_page_tsx_0l87b3754fa2j._.js +3 -0
  596. package/.next/server/chunks/ssr/src_app_review_page_tsx_1rq4ygvo_szv0._.js +3 -0
  597. package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4hv_zlp._.js +3 -0
  598. package/.next/server/chunks/ssr/src_components_difficulty-stars_tsx_1af9qqfurq7_t._.js +3 -0
  599. package/.next/server/chunks/ssr/src_components_error-list_error-item-card_tsx_1zsiqsrj-jjd7._.js +3 -0
  600. package/.next/server/chunks/ssr/src_components_mastery-panel_tsx_1--j5c7mhomdp._.js +3 -0
  601. package/.next/server/chunks/ssr/src_components_practice-result-picker_tsx_06jytymet6adu._.js +3 -0
  602. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv3nb6xs._.js +193 -0
  603. package/.next/server/chunks/ssr/src_components_settings_duplicate-threshold-setting_tsx_06bbmwo1pkaim._.js +3 -0
  604. package/.next/server/chunks/ssr/src_components_tag-input_tsx_0b9sxffna5c9i._.js +3 -0
  605. package/.next/server/chunks/ssr/src_components_ui_checkbox_tsx_0xdylzmai9n53._.js +3 -0
  606. package/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +3 -0
  607. package/.next/server/chunks/ssr/src_components_ui_tabs_tsx_0skssvsquc-9c._.js +3 -0
  608. package/.next/server/chunks/ssr/src_lib_constants_pagination_ts_02h78dpuabai5._.js +3 -0
  609. package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctny6_q66._.js +3 -0
  610. package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u3yic3e._.js +3 -0
  611. package/.next/server/edge/chunks/_1s0wgnupch4sb._.js +3 -0
  612. package/.next/server/edge/chunks/node_modules_0um8zwzayafzq._.js +13 -0
  613. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_0dxg4rr5z738i.js +3 -0
  614. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_0dzf5yhexv02u.js +3 -0
  615. package/.next/server/instrumentation.js +3 -3
  616. package/.next/server/middleware-build-manifest.js +219 -9
  617. package/.next/server/middleware-manifest.json +11 -11
  618. package/.next/server/next-font-manifest.js +1 -1
  619. package/.next/server/next-font-manifest.json +4 -4
  620. package/.next/server/pages/500.html +1 -1
  621. package/.next/server/preview-props.json +5 -0
  622. package/.next/server/server-reference-manifest.js +1 -1
  623. package/.next/server/server-reference-manifest.json +1 -1
  624. package/.next/static/chunks/00kfvk-buhhsb.js +191 -0
  625. package/.next/static/chunks/08wadcj8wbdsy.js +1 -0
  626. package/.next/static/chunks/093w4w_19h9qh.js +31 -0
  627. package/.next/static/chunks/0_9gv911-tqmk.css +3 -0
  628. package/.next/static/chunks/0a-rekt06v0sv.js +1 -0
  629. package/.next/static/chunks/0aqlzwgn78ncm.js +1 -0
  630. package/.next/static/chunks/0e7mao0hn_nw4.js +1 -0
  631. package/.next/static/chunks/0pdeh9usti0bj.js +3 -0
  632. package/.next/static/chunks/0pvlg-25ddo6e.js +33 -0
  633. package/.next/static/chunks/0ykhi6pk49so-.js +1 -0
  634. package/.next/static/chunks/14a1tth-1ddn-.js +1 -0
  635. package/.next/static/chunks/15e5p9740moee.js +1 -0
  636. package/.next/static/chunks/181--wh89vylg.js +1 -0
  637. package/.next/static/chunks/1_h2h09t_394a.js +1 -0
  638. package/.next/static/chunks/1enxsrqonvvxr.js +1 -0
  639. package/.next/static/chunks/1fl98iro7y1bv.js +1 -0
  640. package/.next/static/chunks/1m3ompn8ev8gr.js +1 -0
  641. package/.next/static/chunks/1wqqkfg03tuu1.js +1 -0
  642. package/.next/static/chunks/23v229-qd9o6o.js +1 -0
  643. package/.next/static/chunks/242x7dx0zu3hf.js +1 -0
  644. package/.next/static/chunks/29m8r4g8_em2g.js +1 -0
  645. package/.next/static/chunks/2a86gw0-qil9m.css +1 -0
  646. package/.next/static/chunks/2ir3p1tlsazez.js +1 -0
  647. package/.next/static/chunks/2l-1t8-pfq4ph.js +1 -0
  648. package/.next/static/chunks/2tayqxc443yyh.js +1 -0
  649. package/.next/static/chunks/2v3rvsf6-bnfs.js +1 -0
  650. package/.next/static/chunks/2wk_a0jmwmybn.js +1 -0
  651. package/.next/static/chunks/2ysjbje-zsbdp.js +1 -0
  652. package/.next/static/chunks/3-u1evjqom016.js +1 -0
  653. package/.next/static/chunks/30eew6y-03vg8.js +1 -0
  654. package/.next/static/chunks/32oh815gi42ey.js +1 -0
  655. package/.next/static/chunks/37jrjuqt8f_ee.js +1 -0
  656. package/.next/static/chunks/37v5zj-q3hku_.js +1 -0
  657. package/.next/static/chunks/3aiz227rfearv.js +1 -0
  658. package/.next/static/chunks/3gvzs1nxarb0s.js +1 -0
  659. package/.next/static/chunks/3mb_v650fie_i.js +22 -0
  660. package/.next/static/chunks/3neepxbq9_bd3.css +1 -0
  661. package/.next/static/chunks/3q82qxm1otmz4.js +6 -0
  662. package/.next/static/chunks/3r4z_6i5z0hd5.js +1 -0
  663. package/.next/static/chunks/3s_9841ksp5zw.js +1 -0
  664. package/.next/static/chunks/3wm2jhitfeeue.js +1 -0
  665. package/.next/static/chunks/turbopack-2c3mg3r-05n1w.js +1 -0
  666. package/package.json +4 -5
  667. package/prisma/migrations/20261024000000_add_last_practice/migration.sql +2 -0
  668. package/prisma/migrations/20261024203954_add_ai_usage/migration.sql +11 -0
  669. package/prisma/schema.prisma +13 -0
  670. package/prisma/seed.db +0 -0
  671. package/server.js +1 -1
  672. package/.next/server/app/latex-test/page/app-paths-manifest.json +0 -3
  673. package/.next/server/app/latex-test/page/build-manifest.json +0 -20
  674. package/.next/server/app/latex-test/page/next-font-manifest.json +0 -11
  675. package/.next/server/app/latex-test/page.js +0 -14
  676. package/.next/server/app/latex-test/page.js.nft.json +0 -1
  677. package/.next/server/app/latex-test/page_client-reference-manifest.js +0 -3
  678. package/.next/server/chunks/1jng_app_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3.js +0 -3
  679. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1.js +0 -3
  680. package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3.js +0 -3
  681. package/.next/server/chunks/[externals]__04n7qbr._.js +0 -3
  682. package/.next/server/chunks/[externals]__0jzwjtl._.js +0 -3
  683. package/.next/server/chunks/[externals]__0pot68n._.js +0 -3
  684. package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +0 -3
  685. package/.next/server/chunks/[root-of-the-server]__0-2l_pu._.js +0 -3
  686. package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +0 -153
  687. package/.next/server/chunks/[root-of-the-server]__00moo9h._.js +0 -3
  688. package/.next/server/chunks/[root-of-the-server]__012xcq-._.js +0 -3
  689. package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +0 -3
  690. package/.next/server/chunks/[root-of-the-server]__02pqrw_._.js +0 -3
  691. package/.next/server/chunks/[root-of-the-server]__033ri9p._.js +0 -3
  692. package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +0 -3
  693. package/.next/server/chunks/[root-of-the-server]__064krqp._.js +0 -3
  694. package/.next/server/chunks/[root-of-the-server]__07iraov._.js +0 -3
  695. package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +0 -3
  696. package/.next/server/chunks/[root-of-the-server]__07q7nsp._.js +0 -3
  697. package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +0 -3
  698. package/.next/server/chunks/[root-of-the-server]__0_unb90._.js +0 -3
  699. package/.next/server/chunks/[root-of-the-server]__0a1zwxf._.js +0 -3
  700. package/.next/server/chunks/[root-of-the-server]__0aefi10._.js +0 -3
  701. package/.next/server/chunks/[root-of-the-server]__0akadps._.js +0 -3
  702. package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +0 -3
  703. package/.next/server/chunks/[root-of-the-server]__0d-37yj._.js +0 -3
  704. package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +0 -3
  705. package/.next/server/chunks/[root-of-the-server]__0dqgi36._.js +0 -3
  706. package/.next/server/chunks/[root-of-the-server]__0dz5c04._.js +0 -3
  707. package/.next/server/chunks/[root-of-the-server]__0e_u82_._.js +0 -3
  708. package/.next/server/chunks/[root-of-the-server]__0f3jyg0._.js +0 -3
  709. package/.next/server/chunks/[root-of-the-server]__0gwwa9b._.js +0 -3
  710. package/.next/server/chunks/[root-of-the-server]__0hars8c._.js +0 -3
  711. package/.next/server/chunks/[root-of-the-server]__0iozebm._.js +0 -3
  712. package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +0 -3
  713. package/.next/server/chunks/[root-of-the-server]__0k3mm05._.js +0 -3
  714. package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +0 -3
  715. package/.next/server/chunks/[root-of-the-server]__0lggrcf._.js +0 -3
  716. package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +0 -3
  717. package/.next/server/chunks/[root-of-the-server]__0m37xyb._.js +0 -3
  718. package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +0 -3
  719. package/.next/server/chunks/[root-of-the-server]__0pa47kn._.js +0 -3
  720. package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +0 -3
  721. package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +0 -3
  722. package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +0 -9
  723. package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +0 -3
  724. package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +0 -3
  725. package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +0 -3
  726. package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +0 -3
  727. package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +0 -3
  728. package/.next/server/chunks/[root-of-the-server]__0w58v6b._.js +0 -3
  729. package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +0 -3
  730. package/.next/server/chunks/[root-of-the-server]__0wsj4a_._.js +0 -3
  731. package/.next/server/chunks/[root-of-the-server]__0wvvsah._.js +0 -3
  732. package/.next/server/chunks/[root-of-the-server]__0xg5h56._.js +0 -3
  733. package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +0 -3
  734. package/.next/server/chunks/[root-of-the-server]__10hs-qn._.js +0 -3
  735. package/.next/server/chunks/[root-of-the-server]__119xork._.js +0 -3
  736. package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +0 -3
  737. package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +0 -3
  738. package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +0 -32
  739. package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +0 -10
  740. package/.next/server/chunks/[root-of-the-server]__15y1l96._.js +0 -3
  741. package/.next/server/chunks/[root-of-the-server]__16hnc6-._.js +0 -3
  742. package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +0 -3
  743. package/.next/server/chunks/[root-of-the-server]__19_wn9u._.js +0 -3
  744. package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +0 -3
  745. package/.next/server/chunks/[root-of-the-server]__1_hp3ol._.js +0 -3
  746. package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +0 -3
  747. package/.next/server/chunks/[root-of-the-server]__1a4-26x._.js +0 -3
  748. package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +0 -3
  749. package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +0 -3
  750. package/.next/server/chunks/[root-of-the-server]__1bl7t8i._.js +0 -3
  751. package/.next/server/chunks/[root-of-the-server]__1c0vatt._.js +0 -3
  752. package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +0 -3
  753. package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +0 -3
  754. package/.next/server/chunks/[root-of-the-server]__1cngnud._.js +0 -3
  755. package/.next/server/chunks/[root-of-the-server]__1d82zkk._.js +0 -3
  756. package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +0 -3
  757. package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +0 -122
  758. package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +0 -3
  759. package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +0 -3
  760. package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +0 -3
  761. package/.next/server/chunks/[root-of-the-server]__1i40psm._.js +0 -3
  762. package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +0 -3
  763. package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +0 -3
  764. package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +0 -6
  765. package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +0 -3
  766. package/.next/server/chunks/[root-of-the-server]__1lbcdia._.js +0 -3
  767. package/.next/server/chunks/[root-of-the-server]__1m86czr._.js +0 -3
  768. package/.next/server/chunks/[root-of-the-server]__1mnpqkx._.js +0 -3
  769. package/.next/server/chunks/[root-of-the-server]__1n4b6nb._.js +0 -3
  770. package/.next/server/chunks/[root-of-the-server]__1nmrlew._.js +0 -3
  771. package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +0 -10
  772. package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +0 -3
  773. package/.next/server/chunks/[root-of-the-server]__1q7yl7l._.js +0 -3
  774. package/.next/server/chunks/[root-of-the-server]__1qv60vg._.js +0 -3
  775. package/.next/server/chunks/[root-of-the-server]__1ry8uat._.js +0 -3
  776. package/.next/server/chunks/[root-of-the-server]__1s2rww3._.js +0 -3
  777. package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +0 -3
  778. package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +0 -3
  779. package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +0 -3
  780. package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +0 -32
  781. package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +0 -3
  782. package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +0 -3
  783. package/.next/server/chunks/_0-eguqv._.js +0 -3
  784. package/.next/server/chunks/_008zx49._.js +0 -3
  785. package/.next/server/chunks/_011-ll5._.js +0 -3
  786. package/.next/server/chunks/_0389uce._.js +0 -3
  787. package/.next/server/chunks/_0431fxn._.js +0 -3
  788. package/.next/server/chunks/_0ekrwj-._.js +0 -36
  789. package/.next/server/chunks/_0gwg6ba._.js +0 -3
  790. package/.next/server/chunks/_0gxi3zr._.js +0 -3
  791. package/.next/server/chunks/_0lz3t4l._.js +0 -19
  792. package/.next/server/chunks/_0n36ev0._.js +0 -3
  793. package/.next/server/chunks/_0oc8oe4._.js +0 -3
  794. package/.next/server/chunks/_0rjzgi0._.js +0 -3
  795. package/.next/server/chunks/_0uxp3uh._.js +0 -3
  796. package/.next/server/chunks/_0x3ltk0._.js +0 -36
  797. package/.next/server/chunks/_10y361h._.js +0 -3
  798. package/.next/server/chunks/_12w5k19._.js +0 -3
  799. package/.next/server/chunks/_13ffmxv._.js +0 -3
  800. package/.next/server/chunks/_14tz_k9._.js +0 -3
  801. package/.next/server/chunks/_15neond._.js +0 -11
  802. package/.next/server/chunks/_16jdov0._.js +0 -3
  803. package/.next/server/chunks/_18amra5._.js +0 -3
  804. package/.next/server/chunks/_1_ns7o3._.js +0 -3
  805. package/.next/server/chunks/_1a1aqmi._.js +0 -3
  806. package/.next/server/chunks/_1a1udq0._.js +0 -3
  807. package/.next/server/chunks/_1b0269x._.js +0 -3
  808. package/.next/server/chunks/_1b7qjlv._.js +0 -3
  809. package/.next/server/chunks/_1be-y66._.js +0 -3
  810. package/.next/server/chunks/_1ex6ovo._.js +0 -3
  811. package/.next/server/chunks/_1fgb9ve._.js +0 -3
  812. package/.next/server/chunks/_1m-yyz-._.js +0 -3
  813. package/.next/server/chunks/_1n1xsqj._.js +0 -3
  814. package/.next/server/chunks/_1oj6gy_._.js +0 -3
  815. package/.next/server/chunks/_1pvqo-q._.js +0 -3
  816. package/.next/server/chunks/_1z_ujac._.js +0 -3
  817. package/.next/server/chunks/_211va-d._.js +0 -3
  818. package/.next/server/chunks/_2194yr7._.js +0 -11
  819. package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.js +0 -3
  820. package/.next/server/chunks/_next-internal_server_app_api_admin_migrate-tags_route_actions_1ztwxhx.js +0 -3
  821. package/.next/server/chunks/_next-internal_server_app_api_admin_system-reset_route_actions_15aselt.js +0 -3
  822. package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_detail_route_actions_0oe_wkt.js +0 -3
  823. package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_route_actions_1hhpuc4.js +0 -3
  824. package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1.js +0 -3
  825. package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-.js +0 -3
  826. package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8.js +0 -3
  827. package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17.js +0 -3
  828. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +0 -3
  829. package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdk.js +0 -3
  830. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_delete_route_actions_1w26boq.js +0 -3
  831. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_figure_route_actions_0adlts0.js +0 -3
  832. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhx.js +0 -3
  833. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uv.js +0 -3
  834. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5yl.js +0 -3
  835. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_notes_route_actions_1cjux7z.js +0 -3
  836. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2.js +0 -3
  837. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4n.js +0 -3
  838. package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4ux.js +0 -3
  839. package/.next/server/chunks/_next-internal_server_app_api_error-items_batch-delete_route_actions_0hiq_1k.js +0 -3
  840. package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-.js +0 -3
  841. package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue.js +0 -3
  842. package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0p.js +0 -3
  843. package/.next/server/chunks/_next-internal_server_app_api_error-items_short_[shortId]_route_actions_02976v-.js +0 -3
  844. package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9.js +0 -3
  845. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_results_route_actions_1v3vhi4.js +0 -3
  846. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f.js +0 -3
  847. package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq.js +0 -3
  848. package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtj.js +0 -3
  849. package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc.js +0 -3
  850. package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_c.js +0 -3
  851. package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +0 -3
  852. package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04x.js +0 -3
  853. package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxepty.js +0 -3
  854. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t8.js +0 -3
  855. package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxg.js +0 -3
  856. package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r.js +0 -3
  857. package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oen.js +0 -3
  858. package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_.js +0 -3
  859. package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiom.js +0 -3
  860. package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__.js +0 -3
  861. package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_.js +0 -3
  862. package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c.js +0 -3
  863. package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sj.js +0 -3
  864. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +0 -3
  865. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0.js +0 -3
  866. package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-.js +0 -3
  867. package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2.js +0 -3
  868. package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc.js +0 -3
  869. package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyv.js +0 -3
  870. package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_.js +0 -3
  871. package/.next/server/chunks/_next-internal_server_app_api_user_route_actions_1k-4clg.js +0 -3
  872. package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30h.js +0 -3
  873. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +0 -3
  874. package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz0.js +0 -3
  875. package/.next/server/chunks/node_modules_next_1zdbrne._.js +0 -10
  876. package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +0 -22
  877. package/.next/server/chunks/src_0tzpy5j._.js +0 -3
  878. package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +0 -562
  879. package/.next/server/chunks/src_lib_date-time_ts_14chb27._.js +0 -3
  880. package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-._.js +0 -3
  881. package/.next/server/chunks/ssr/[externals]_fs_0pplqgc._.js +0 -3
  882. package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +0 -35
  883. package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +0 -3
  884. package/.next/server/chunks/ssr/[root-of-the-server]__05f8wbh._.js +0 -3
  885. package/.next/server/chunks/ssr/[root-of-the-server]__0a0nty7._.js +0 -3
  886. package/.next/server/chunks/ssr/[root-of-the-server]__0ax9dog._.js +0 -3
  887. package/.next/server/chunks/ssr/[root-of-the-server]__0bvtza7._.js +0 -33
  888. package/.next/server/chunks/ssr/[root-of-the-server]__0g_-bym._.js +0 -3
  889. package/.next/server/chunks/ssr/[root-of-the-server]__0gwwr7e._.js +0 -3
  890. package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +0 -3
  891. package/.next/server/chunks/ssr/[root-of-the-server]__0koj8h0._.js +0 -3
  892. package/.next/server/chunks/ssr/[root-of-the-server]__0s87xha._.js +0 -3
  893. package/.next/server/chunks/ssr/[root-of-the-server]__0skyo1a._.js +0 -3
  894. package/.next/server/chunks/ssr/[root-of-the-server]__0snpjfe._.js +0 -3
  895. package/.next/server/chunks/ssr/[root-of-the-server]__0y_e9do._.js +0 -3
  896. package/.next/server/chunks/ssr/[root-of-the-server]__0ybs_4c._.js +0 -3
  897. package/.next/server/chunks/ssr/[root-of-the-server]__14l7peq._.js +0 -3
  898. package/.next/server/chunks/ssr/[root-of-the-server]__1507q8a._.js +0 -3
  899. package/.next/server/chunks/ssr/[root-of-the-server]__15ppb9j._.js +0 -3
  900. package/.next/server/chunks/ssr/[root-of-the-server]__191jn5n._.js +0 -3
  901. package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +0 -33
  902. package/.next/server/chunks/ssr/[root-of-the-server]__1gth76-._.js +0 -3
  903. package/.next/server/chunks/ssr/[root-of-the-server]__1ko_dw5._.js +0 -3
  904. package/.next/server/chunks/ssr/[root-of-the-server]__1l84pks._.js +0 -3
  905. package/.next/server/chunks/ssr/[root-of-the-server]__1m7qw-2._.js +0 -3
  906. package/.next/server/chunks/ssr/[root-of-the-server]__1ma2oml._.js +0 -3
  907. package/.next/server/chunks/ssr/[root-of-the-server]__1o8jotz._.js +0 -3
  908. package/.next/server/chunks/ssr/[root-of-the-server]__1o__w27._.js +0 -3
  909. package/.next/server/chunks/ssr/[root-of-the-server]__1p7f0va._.js +0 -3
  910. package/.next/server/chunks/ssr/[root-of-the-server]__1sg9eoj._.js +0 -3
  911. package/.next/server/chunks/ssr/[root-of-the-server]__1u74hyi._.js +0 -3
  912. package/.next/server/chunks/ssr/[root-of-the-server]__1xsovpr._.js +0 -3
  913. package/.next/server/chunks/ssr/_054yhx9._.js +0 -3
  914. package/.next/server/chunks/ssr/_07ls0n_._.js +0 -3
  915. package/.next/server/chunks/ssr/_0i9hwpv._.js +0 -3
  916. package/.next/server/chunks/ssr/_0iqp5hs._.js +0 -3
  917. package/.next/server/chunks/ssr/_0m1-rq-._.js +0 -3
  918. package/.next/server/chunks/ssr/_0mgbe2b._.js +0 -3
  919. package/.next/server/chunks/ssr/_0nv22wt._.js +0 -3
  920. package/.next/server/chunks/ssr/_0rz2_qb._.js +0 -151
  921. package/.next/server/chunks/ssr/_0sbbx9z._.js +0 -7
  922. package/.next/server/chunks/ssr/_0sf1gd9._.js +0 -3
  923. package/.next/server/chunks/ssr/_0uemk57._.js +0 -3
  924. package/.next/server/chunks/ssr/_0zj7dlu._.js +0 -3
  925. package/.next/server/chunks/ssr/_11ut-6_._.js +0 -3
  926. package/.next/server/chunks/ssr/_17igtpd._.js +0 -3
  927. package/.next/server/chunks/ssr/_1aot_70._.js +0 -3
  928. package/.next/server/chunks/ssr/_1filpif._.js +0 -3
  929. package/.next/server/chunks/ssr/_1jniqsj._.js +0 -3
  930. package/.next/server/chunks/ssr/_1kgnhmo._.js +0 -8
  931. package/.next/server/chunks/ssr/_1lt1lhz._.js +0 -8
  932. package/.next/server/chunks/ssr/_1yeu09q._.js +0 -3
  933. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +0 -3
  934. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +0 -3
  935. package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickz.js +0 -3
  936. package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gs.js +0 -3
  937. package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9ak.js +0 -3
  938. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_page_actions_1kushg5.js +0 -3
  939. package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxq.js +0 -3
  940. package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-.js +0 -3
  941. package/.next/server/chunks/ssr/_next-internal_server_app_latex-test_page_actions_19v7ka0.js +0 -3
  942. package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +0 -3
  943. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2.js +0 -3
  944. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7.js +0 -3
  945. package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz.js +0 -3
  946. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +0 -3
  947. package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n.js +0 -3
  948. package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaaln.js +0 -3
  949. package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-x.js +0 -3
  950. package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_a.js +0 -3
  951. package/.next/server/chunks/ssr/_next-internal_server_app_tags_page_actions_20v_n--.js +0 -3
  952. package/.next/server/chunks/ssr/node_modules_0o2aki7._.js +0 -3
  953. package/.next/server/chunks/ssr/node_modules_1y5ym6h._.js +0 -3
  954. package/.next/server/chunks/ssr/node_modules_next_1lnqo1a._.js +0 -5
  955. package/.next/server/chunks/ssr/node_modules_next_dist_077yo5w._.js +0 -3
  956. package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +0 -6
  957. package/.next/server/chunks/ssr/node_modules_next_dist_1_c-t1n._.js +0 -14
  958. package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +0 -3
  959. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +0 -33
  960. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +0 -3
  961. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +0 -3
  962. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +0 -3
  963. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +0 -3
  964. package/.next/server/chunks/ssr/src_1biegcg._.js +0 -3
  965. package/.next/server/chunks/ssr/src_1gayunq._.js +0 -3
  966. package/.next/server/chunks/ssr/src_1o363ao._.js +0 -3
  967. package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +0 -3
  968. package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +0 -3
  969. package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +0 -3
  970. package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5._.js +0 -3
  971. package/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +0 -3
  972. package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53._.js +0 -3
  973. package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4._.js +0 -3
  974. package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +0 -193
  975. package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctn._.js +0 -3
  976. package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u._.js +0 -3
  977. package/.next/server/edge/chunks/_1s0wgnu._.js +0 -3
  978. package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +0 -13
  979. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1iafar9.js +0 -3
  980. package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1x1n1fx.js +0 -3
  981. package/.next/static/chunks/03gmdewlo3s6u.js +0 -1
  982. package/.next/static/chunks/06q8lm6y95ac4.css +0 -1
  983. package/.next/static/chunks/0_w084ms_lq25.js +0 -22
  984. package/.next/static/chunks/0dzfsm6h13fyr.js +0 -1
  985. package/.next/static/chunks/0ehjiuuxbbhq9.js +0 -1
  986. package/.next/static/chunks/0ij2dqb0qj5ry.js +0 -1
  987. package/.next/static/chunks/0iq53qkw5hvrs.js +0 -1
  988. package/.next/static/chunks/0lxsaj3bivcgo.css +0 -1
  989. package/.next/static/chunks/0m81l71kojx8j.js +0 -1
  990. package/.next/static/chunks/0nckb2-62ooyq.js +0 -1
  991. package/.next/static/chunks/0pwdmc9gw8ben.js +0 -33
  992. package/.next/static/chunks/0snej-v5yglxr.js +0 -1
  993. package/.next/static/chunks/1-7k9gbbjkcml.js +0 -1
  994. package/.next/static/chunks/1c92up8k2x0z4.js +0 -1
  995. package/.next/static/chunks/1cd32rtomdngh.js +0 -1
  996. package/.next/static/chunks/1io3-cth_2-cd.js +0 -1
  997. package/.next/static/chunks/1oiuiyv1cv06v.js +0 -31
  998. package/.next/static/chunks/1t4-pobw0y5cf.js +0 -1
  999. package/.next/static/chunks/1xg811762s1p1.js +0 -1
  1000. package/.next/static/chunks/1z_5sj1wqi06v.js +0 -1
  1001. package/.next/static/chunks/24dymggis4suf.css +0 -3
  1002. package/.next/static/chunks/24jbwfpgmio7x.js +0 -1
  1003. package/.next/static/chunks/27fr34_1v7xyh.js +0 -1
  1004. package/.next/static/chunks/2dlme2fdlkms6.js +0 -1
  1005. package/.next/static/chunks/2eu_bls12m1wj.js +0 -1
  1006. package/.next/static/chunks/2pmzqbg-qabof.js +0 -1
  1007. package/.next/static/chunks/2w2uo9jjxt-re.js +0 -1
  1008. package/.next/static/chunks/2x8e_fbze06sd.js +0 -1
  1009. package/.next/static/chunks/2z1_5umv36es6.js +0 -191
  1010. package/.next/static/chunks/32bl-oqw9oso0.js +0 -1
  1011. package/.next/static/chunks/3b-g5_r9nto3s.js +0 -6
  1012. package/.next/static/chunks/3g1rm2suowncy.js +0 -3
  1013. package/.next/static/chunks/3helovsg02qr4.js +0 -1
  1014. package/.next/static/chunks/3jta6jrk-jubq.js +0 -1
  1015. package/.next/static/chunks/3m4c1r8_2ga_1.js +0 -1
  1016. package/.next/static/chunks/3whzkc6d8oefw.js +0 -1
  1017. package/.next/static/chunks/3yhf6xyypekz6.js +0 -1
  1018. package/.next/static/chunks/3z9gc_02gl8n9.js +0 -1
  1019. package/.next/static/chunks/427wg73nuzpiz.js +0 -5
  1020. package/.next/static/chunks/turbopack-1-0r7_puvz3eq.js +0 -1
  1021. /package/.next/server/app/{latex-test/page → api/practice/grade/route}/server-reference-manifest.json +0 -0
  1022. /package/.next/server/app/{latex-test/page.js.map → api/practice/grade/route.js.map} +0 -0
  1023. /package/.next/server/app/{latex-test → review}/page/react-loadable-manifest.json +0 -0
  1024. /package/.next/static/{Y0pwgmRdVAifh_zukihNt → ZH3ew12HOzoE3JRl8c_8L}/_buildManifest.js +0 -0
  1025. /package/.next/static/{Y0pwgmRdVAifh_zukihNt → ZH3ew12HOzoE3JRl8c_8L}/_clientMiddlewareManifest.js +0 -0
  1026. /package/.next/static/{Y0pwgmRdVAifh_zukihNt → ZH3ew12HOzoE3JRl8c_8L}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[510179,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(875003),e=a.i(50944),f=a.i(550194),g=a.i(557999),h=a.i(529759),i=a.i(986705),j=a.i(291938),k=a.i(630534),l=a.i(596221);let m=(0,a.i(170106).f)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var n=a.i(953722),o=a.i(584362),p=a.i(717545),q=a.i(724669),r=a.i(816201),s=a.i(641710),t=a.i(292e3),u=a.i(405784),v=a.i(767552),w=a.i(177156),x=a.i(839761),y=a.i(699570),z=a.i(251538),A=a.i(591119),B=a.i(786304);function C({data:a,t:c}){let d=[{title:c.admin?.dashboard?.totalUsers||"Total Users",value:a.overview.totalUsers,icon:m,color:"text-blue-500",bgColor:"bg-blue-50 dark:bg-blue-950/30"},{title:c.admin?.dashboard?.totalErrors||"Total Errors",value:a.overview.totalErrorItems,icon:n.f,color:"text-red-500",bgColor:"bg-red-50 dark:bg-red-950/30"},{title:c.admin?.dashboard?.totalPractice||"Total Practice",value:a.overview.totalPracticeRecords,icon:o.f,color:"text-green-500",bgColor:"bg-green-50 dark:bg-green-950/30"},{title:c.admin?.dashboard?.totalNotebooks||"Total Notebooks",value:a.overview.totalSubjects,icon:p.f,color:"text-purple-500",bgColor:"bg-purple-50 dark:bg-purple-950/30"}];return(0,b.jsx)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-4",children:d.map(a=>(0,b.jsx)(A.N,{className:"border-0 shadow-sm",children:(0,b.jsxs)(A.O,{className:"p-4 flex items-center gap-4",children:[(0,b.jsx)("div",{className:`p-3 rounded-xl ${a.bgColor}`,children:(0,b.jsx)(a.icon,{className:`h-6 w-6 ${a.color}`})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:a.title}),(0,b.jsx)("p",{className:"text-2xl font-bold",children:a.value})]})]})},a.title))})}function D({data:a,t:c}){let d=Math.max(...a.dailyTrend.map(a=>a.count),1);return(0,b.jsxs)(A.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(A.Y,{className:"pb-2",children:(0,b.jsxs)(A.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(q.f,{className:"h-4 w-4 text-orange-500"}),c.admin?.dashboard?.recentTrend||"Recent 7-Day Trend"]})}),(0,b.jsx)(A.O,{children:(0,b.jsx)("div",{className:"flex items-end gap-2 h-40",children:a.dailyTrend.map(a=>{let c=d>0?a.count/d*100:0,e=a.date.slice(5).replace("-","/");return(0,b.jsxs)("div",{className:"flex-1 flex flex-col items-center gap-1",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.count>0?a.count:""}),(0,b.jsx)("div",{className:"w-full relative",style:{height:"100px"},children:(0,b.jsx)("div",{className:"absolute bottom-0 w-full bg-gradient-to-t from-orange-500 to-orange-400 rounded-t-md transition-all duration-500 min-h-[4px]",style:{height:`${Math.max(c,4)}%`}})}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:e})]},a.date)})})})]})}function E({data:a,t:c}){let d=a.subjectDistribution.reduce((a,b)=>a+b.count,0),e=["bg-blue-500","bg-green-500","bg-orange-500","bg-purple-500","bg-red-500","bg-cyan-500","bg-yellow-500","bg-pink-500","bg-indigo-500"];return(0,b.jsxs)(A.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(A.Y,{className:"pb-2",children:(0,b.jsxs)(A.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(x.f,{className:"h-4 w-4 text-blue-500"}),c.admin?.dashboard?.subjectDistribution||"Subject Distribution"]})}),(0,b.jsx)(A.O,{children:0===d?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-8 text-center",children:c.admin?.dashboard?.noData||"No Data"}):(0,b.jsx)("div",{className:"space-y-3",children:a.subjectDistribution.map((a,c)=>{let f=d>0?Math.round(a.count/d*100):0;return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex justify-between text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:a.name}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[a.count," (",f,"%)"]})]}),(0,b.jsx)("div",{className:"w-full bg-muted rounded-full h-2.5",children:(0,b.jsx)("div",{className:`h-2.5 rounded-full ${e[c%e.length]} transition-all duration-500`,style:{width:`${f}%`}})})]},a.name)})})})]})}function F({data:a,t:c}){let d=a.masteryDistribution.new+a.masteryDistribution.reviewing+a.masteryDistribution.mastered,e=[{key:"new",label:c.admin?.dashboard?.masteryNew||"To Review",count:a.masteryDistribution.new,icon:t.f,color:"text-red-500",bg:"bg-red-500"},{key:"reviewing",label:c.admin?.dashboard?.masteryReviewing||"Reviewing",count:a.masteryDistribution.reviewing,icon:s.f,color:"text-yellow-500",bg:"bg-yellow-500"},{key:"mastered",label:c.admin?.dashboard?.masteryMastered||"Mastered",count:a.masteryDistribution.mastered,icon:r.f,color:"text-green-500",bg:"bg-green-500"}];return(0,b.jsxs)(A.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(A.Y,{className:"pb-2",children:(0,b.jsxs)(A.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(r.f,{className:"h-4 w-4 text-green-500"}),c.admin?.dashboard?.masteryDistribution||"Mastery Distribution"]})}),(0,b.jsx)(A.O,{children:0===d?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-8 text-center",children:c.admin?.dashboard?.noData||"No Data"}):(0,b.jsx)("div",{className:"space-y-3",children:e.map(a=>{let c=d>0?Math.round(a.count/d*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.5",children:(0,b.jsx)("div",{className:`h-2.5 rounded-full ${a.bg} transition-all duration-500`,style:{width:`${c}%`}})})]},a.key)})})})]})}function G({users:a,onViewDetail:d}){let{timeZone:e}=(0,h.M)(),{t:g}=(0,f.b)(),[j,k]=(0,c.useState)(null);return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{className:"hidden md:block border rounded-lg overflow-hidden",children:(0,b.jsxs)("table",{className:"w-full text-sm",children:[(0,b.jsx)("thead",{className:"bg-muted/50",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"text-left p-3 font-medium",children:g.admin?.dashboard?.userName||"Username"}),(0,b.jsx)("th",{className:"text-left p-3 font-medium",children:g.admin?.dashboard?.email||"Email"}),(0,b.jsx)("th",{className:"text-center p-3 font-medium",children:g.admin?.dashboard?.notebooks||"Notebooks"}),(0,b.jsx)("th",{className:"text-center p-3 font-medium",children:g.admin?.dashboard?.errors||"Errors"}),(0,b.jsx)("th",{className:"text-center p-3 font-medium",children:g.admin?.dashboard?.practice||"Practice"}),(0,b.jsx)("th",{className:"text-center p-3 font-medium",children:g.admin?.dashboard?.status||"Status"}),(0,b.jsx)("th",{className:"text-center p-3 font-medium",children:g.admin?.dashboard?.registeredAt||"Registered At"}),(0,b.jsx)("th",{className:"text-center p-3 font-medium",children:g.admin?.dashboard?.actions||"Actions"})]})}),(0,b.jsx)("tbody",{children:a.map(a=>(0,b.jsxs)("tr",{className:"border-t hover:bg-muted/30 transition-colors",children:[(0,b.jsx)("td",{className:"p-3",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:a.name||"N/A"}),"admin"===a.role&&(0,b.jsx)(B.f,{variant:"default",className:"text-xs",children:g.admin?.admin||"Admin"})]})}),(0,b.jsx)("td",{className:"p-3 text-muted-foreground",children:a.email}),(0,b.jsx)("td",{className:"p-3 text-center",children:a.notebookCount}),(0,b.jsx)("td",{className:"p-3 text-center font-medium",children:a.errorCount}),(0,b.jsx)("td",{className:"p-3 text-center",children:a.practiceCount}),(0,b.jsx)("td",{className:"p-3 text-center",children:(0,b.jsx)(B.f,{variant:a.isActive?"default":"destructive",className:"text-xs",children:a.isActive?g.admin?.active||"Active":g.admin?.disabled||"Disabled"})}),(0,b.jsx)("td",{className:"p-3 text-center text-muted-foreground text-xs",children:(0,i.r)(a.createdAt,"yyyy-MM-dd",e)}),(0,b.jsx)("td",{className:"p-3 text-center",children:(0,b.jsx)(y.f,{variant:"ghost",size:"sm",onClick:()=>d(a.id),title:g.admin?.dashboard?.viewDetail||"View Detail",children:(0,b.jsx)(w.f,{className:"h-4 w-4"})})})]},a.id))})]})}),(0,b.jsx)("div",{className:"md:hidden space-y-3",children:a.map(a=>(0,b.jsx)(A.N,{className:"border-0 shadow-sm",children:(0,b.jsxs)(A.O,{className:"p-4",children:[(0,b.jsxs)("div",{className:"flex justify-between items-start cursor-pointer",onClick:()=>k(j===a.id?null:a.id),children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium",children:a.name||"N/A"}),"admin"===a.role&&(0,b.jsx)(B.f,{variant:"default",className:"text-xs",children:g.admin?.admin||"Admin"})]}),(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:a.email})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(B.f,{variant:a.isActive?"default":"destructive",className:"text-xs",children:a.isActive?g.admin?.active||"Active":g.admin?.disabled||"Disabled"}),j===a.id?(0,b.jsx)(v.f,{className:"h-4 w-4 text-muted-foreground"}):(0,b.jsx)(u.f,{className:"h-4 w-4 text-muted-foreground"})]})]}),j===a.id&&(0,b.jsxs)("div",{className:"mt-3 pt-3 border-t grid grid-cols-3 gap-3 text-center",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-lg font-bold",children:a.notebookCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:g.admin?.dashboard?.notebooks||"Notebooks"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-lg font-bold text-red-500",children:a.errorCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:g.admin?.dashboard?.errors||"Errors"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-lg font-bold text-green-500",children:a.practiceCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:g.admin?.dashboard?.practice||"Practice"})]})]}),j===a.id&&(0,b.jsxs)("div",{className:"mt-3 pt-3 border-t flex justify-between items-center",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,i.r)(a.createdAt,"yyyy-MM-dd",e)}),(0,b.jsxs)(y.f,{variant:"ghost",size:"sm",onClick:()=>d(a.id),children:[(0,b.jsx)(w.f,{className:"h-4 w-4 mr-1"}),g.admin?.dashboard?.viewDetail||"View Detail"]})]})]})},a.id))})]})}a.s(["default",0,function(){let{data:a,status:h}=(0,d.useSession)(),i=(0,e.useRouter)(),{t:n}=(0,f.b)(),[o,p]=(0,c.useState)(null);(0,g.f)(n.admin.dashboard.title);let[q,r]=(0,c.useState)(!0),s=(0,c.useCallback)(async()=>{r(!0);try{let a=await j.f.get("/api/admin/dashboard");p(a)}catch(a){k.f.error("[AdminDashboard]","Failed to fetch dashboard data",{error:a})}finally{r(!1)}},[]);return((0,c.useEffect)(()=>{if("loading"!==h){if(!a?.user||"admin"!==a.user.role)return void i.push("/");s()}},[a,h,i,s]),"loading"===h||q)?(0,b.jsx)("div",{className:"flex items-center justify-center min-h-[60vh]",children:(0,b.jsx)(l.f,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):o?(0,b.jsxs)("div",{className:"max-w-6xl mx-auto space-y-6 px-4 py-6 md:px-8 md:py-8",children:[(0,b.jsx)(z.f,{title:n.admin?.dashboard?.title||"Admin Dashboard",description:n.admin?.dashboard?.subtitle||"View all users and error statistics"}),(0,b.jsx)(C,{data:o,t:n}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsx)(D,{data:o,t:n}),(0,b.jsx)(F,{data:o,t:n})]}),(0,b.jsx)(E,{data:o,t:n}),(0,b.jsxs)(A.N,{className:"border-0 shadow-sm",children:[(0,b.jsxs)(A.Y,{className:"pb-2",children:[(0,b.jsxs)(A.v,{className:"text-lg flex items-center gap-2",children:[(0,b.jsx)(m,{className:"h-5 w-5 text-blue-500"}),n.admin?.dashboard?.userList||"User List"]}),(0,b.jsx)(A.u,{children:n.admin?.dashboard?.userListDesc||"All registered users and their error entry status"})]}),(0,b.jsx)(A.O,{children:(0,b.jsx)(G,{users:o.userStats,onViewDetail:a=>i.push(`/admin/user/${a}`)})})]})]}):(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:n.common?.error||"Error"}),(0,b.jsx)(y.f,{onClick:s,children:n.admin?.dashboard?.retry||"Retry"})]})}],510179)}];
2
+
3
+ //# sourceMappingURL=src_app_admin_page_tsx_0ublbd0w90cx_._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[430818,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(875003),e=a.i(50944),f=a.i(550194),g=a.i(557999),h=a.i(529759),i=a.i(986705),j=a.i(291938),k=a.i(630534),l=a.i(596221),m=a.i(400210),n=a.i(546842),o=a.i(953722),p=a.i(584362),q=a.i(717545),r=a.i(170106);let s=(0,r.f)("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"}]]),t=(0,r.f)("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 u=a.i(816201),v=a.i(641710),w=a.i(292e3),x=a.i(177156),y=a.i(699570),z=a.i(591119),A=a.i(786304);a.s(["default",0,function(){let{timeZone:a}=(0,h.M)(),{data:r,status:B}=(0,d.useSession)(),C=(0,e.useRouter)(),D=(0,e.useParams)(),{t:E}=(0,f.b)(),[F,G]=(0,c.useState)(null);(0,g.f)(E.admin.dashboard.title,F?.user.name||F?.user.email);let[H,I]=(0,c.useState)(!0),J=D.id,K=(0,c.useCallback)(async()=>{I(!0);try{let a=await j.f.get(`/api/admin/users/${J}/detail`);G(a)}catch(a){k.f.error("[AdminUserDetail]","Failed to fetch user detail",{error:a})}finally{I(!1)}},[J]);if((0,c.useEffect)(()=>{if("loading"!==B){if(!r?.user||"admin"!==r.user.role)return void C.push("/");K()}},[r,B,C,K]),"loading"===B||H)return(0,b.jsx)("div",{className:"flex items-center justify-center min-h-[60vh]",children:(0,b.jsx)(l.f,{className:"h-8 w-8 animate-spin text-muted-foreground"})});if(!F)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:E.common?.error||"Error"}),(0,b.jsx)(y.f,{onClick:K,children:E.admin?.dashboard?.retry||"Retry"})]});let L=[{key:"new",label:E.admin?.dashboard?.masteryNew||"To Review",count:F.masteryDistribution.new,icon:w.f,color:"text-red-500"},{key:"reviewing",label:E.admin?.dashboard?.masteryReviewing||"Reviewing",count:F.masteryDistribution.reviewing,icon:v.f,color:"text-yellow-500"},{key:"mastered",label:E.admin?.dashboard?.masteryMastered||"Mastered",count:F.masteryDistribution.mastered,icon:u.f,color:"text-green-500"}],M=F.masteryDistribution.new+F.masteryDistribution.reviewing+F.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)(y.f,{variant:"ghost",size:"sm",onClick:()=>C.push("/admin"),children:[(0,b.jsx)(m.f,{className:"h-4 w-4 mr-1"}),E.common?.back||"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)(n.f,{className:"h-6 w-6 text-blue-500"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-xl font-bold",children:F.user.name||"N/A"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:F.user.email})]}),"admin"===F.user.role&&(0,b.jsx)(A.f,{variant:"default",children:E.admin?.admin||"Admin"}),(0,b.jsx)(A.f,{variant:F.user.isActive?"default":"destructive",children:F.user.isActive?E.admin?.active||"Active":E.admin?.disabled||"Disabled"})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4",children:[(0,b.jsx)(z.N,{className:"border-0 shadow-sm",children:(0,b.jsxs)(z.O,{className:"p-4 text-center",children:[(0,b.jsx)(q.f,{className:"h-5 w-5 text-purple-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:F.notebookCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:E.admin?.dashboard?.notebooks||"Notebooks"})]})}),(0,b.jsx)(z.N,{className:"border-0 shadow-sm",children:(0,b.jsxs)(z.O,{className:"p-4 text-center",children:[(0,b.jsx)(o.f,{className:"h-5 w-5 text-red-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:F.errorCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:E.admin?.dashboard?.errors||"Errors"})]})}),(0,b.jsx)(z.N,{className:"border-0 shadow-sm",children:(0,b.jsxs)(z.O,{className:"p-4 text-center",children:[(0,b.jsx)(p.f,{className:"h-5 w-5 text-green-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:F.practiceCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:E.admin?.dashboard?.practice||"Practice"})]})}),(0,b.jsx)(z.N,{className:"border-0 shadow-sm",children:(0,b.jsxs)(z.O,{className:"p-4 text-center",children:[(0,b.jsx)(s,{className:"h-5 w-5 text-blue-500 mx-auto mb-1"}),(0,b.jsx)("div",{className:"text-2xl font-bold",children:F.recent7DaysCount}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:E.admin?.dashboard?.recent7Days||"Last 7 Days"})]})})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsxs)(z.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(z.Y,{className:"pb-2",children:(0,b.jsxs)(z.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(q.f,{className:"h-4 w-4 text-purple-500"}),E.admin?.dashboard?.userNotebooks||"Notebooks"]})}),(0,b.jsx)(z.O,{children:0===F.notebooks.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:E.admin?.dashboard?.noData||"No Data"}):(0,b.jsx)("div",{className:"space-y-2",children:F.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.jsx)(A.f,{variant:"secondary",className:"text-xs",children:(E.admin?.dashboard?.questionCount||"{count} questions").replace("{count}",String(a.errorCount))})]},a.id))})})]}),(0,b.jsxs)(z.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(z.Y,{className:"pb-2",children:(0,b.jsxs)(z.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(u.f,{className:"h-4 w-4 text-green-500"}),E.admin?.dashboard?.masteryDistribution||"Mastery Distribution"]})}),(0,b.jsx)(z.O,{children:0===M?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:E.admin?.dashboard?.noData||"No Data"}):(0,b.jsx)("div",{className:"space-y-3",children:L.map(a=>{let c=M>0?Math.round(a.count/M*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)})})})]})]}),F.subjectDistribution.length>0&&(0,b.jsxs)(z.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(z.Y,{className:"pb-2",children:(0,b.jsxs)(z.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(t,{className:"h-4 w-4 text-blue-500"}),E.admin?.dashboard?.subjectDistribution||"Subject Distribution"]})}),(0,b.jsx)(z.O,{children:(0,b.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3",children:F.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)(A.f,{variant:"secondary",children:a.count})]},a.name))})})]}),(0,b.jsxs)(z.N,{className:"border-0 shadow-sm",children:[(0,b.jsx)(z.Y,{className:"pb-2",children:(0,b.jsxs)(z.v,{className:"text-base flex items-center gap-2",children:[(0,b.jsx)(x.f,{className:"h-4 w-4 text-orange-500"}),E.admin?.dashboard?.recentErrors||"Recent Error Items"]})}),(0,b.jsx)(z.O,{children:0===F.recentErrorItems.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:E.admin?.dashboard?.noData||"No Data"}):(0,b.jsx)("div",{className:"space-y-2",children:F.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||E.admin?.dashboard?.noQuestionText}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[c.subject&&(0,b.jsx)(A.f,{variant:"outline",className:"text-xs",children:c.subject.name}),"mastered"===c.masteryStatus&&(0,b.jsx)(A.f,{variant:"default",className:"text-xs",children:E.admin?.dashboard?.masteryMastered||"Mastered"}),"reviewing"===c.masteryStatus&&(0,b.jsx)(A.f,{variant:"secondary",className:"text-xs",children:E.admin?.dashboard?.masteryReviewing||"Reviewing"}),"new"===c.masteryStatus&&(0,b.jsx)(A.f,{variant:"outline",className:"text-xs",children:E.admin?.dashboard?.masteryNew||"To Review"})]})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:(0,i.r)(c.createdAt,"yyyy-MM-dd",a)})]},c.id))})})]})]})}],430818)}];
2
+
3
+ //# sourceMappingURL=src_app_admin_user_%5Bid%5D_page_tsx_0zidp-8hr5upa._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[273773,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),e=a.i(50944),f=a.i(400210),g=a.i(170106);let h=(0,g.f)("file-question-mark",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]]);var i=a.i(669520),j=a.i(781560),k=a.i(131368),l=a.i(180032),m=a.i(596221),n=a.i(310395),o=a.i(699570),p=a.i(550194),q=a.i(291938),r=a.i(960927),s=a.i(630534);function t({errorItemId:a,commands:d,onUpdate:e}){let{t:f}=(0,p.b)(),[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(null),k=async()=>{h(!0),j(null);try{let b=await q.f.post(`/api/error-items/${a}/geogebra`,{});b.suitable&&b.commands.length>0?e({geogebraCommands:JSON.stringify(b.commands)}):j(b.description||f.geogebra.notSuitable)}catch(b){s.f.error("[ErrorDetail]","GeoGebra analysis failed",{error:b});let a=(0,r.d)(b)||(0,r.Z)(b);a.includes("AI_AUTH_ERROR")?j(f.geogebra.authFailed):a.includes("AI_CONNECTION")?j(f.geogebra.connectionFailed):j(f.geogebra.analyzeFailed)}finally{h(!1)}},u=async b=>{await q.f.put(`/api/error-items/${a}`,{geogebraCommands:b}),e({geogebraCommands:b})},v=async()=>{await q.f.delete(`/api/error-items/${a}/geogebra`),e({geogebraCommands:null})};return d?(0,b.jsx)(n.f,{commands:d,height:700,showToolBar:!0,showAlgebraInput:!1,showMenuBar:!1,onRegenerate:k,onSaveCommands:u,onDelete:v}):(0,b.jsxs)("div",{className:"rounded-lg border border-dashed p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(l.f,{className:"h-4 w-4"}),(0,b.jsx)("span",{children:f.geogebra.title})]}),(0,b.jsx)(o.f,{variant:"outline",size:"sm",onClick:k,disabled:g,children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.f,{className:"mr-2 h-4 w-4 animate-spin"}),f.geogebra.analyzing]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.f,{className:"mr-2 h-4 w-4"}),f.geogebra.generate]})})]}),i&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:i}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:f.geogebra.hint})]})}function u({src:a,onClose:c}){let{t:d}=(0,p.b)();return a?(0,b.jsx)("div",{className:"fixed inset-0 z-50 bg-black/90 flex items-center justify-center p-4",onClick:c,children:(0,b.jsxs)("div",{className:"relative max-w-7xl max-h-full",children:[(0,b.jsx)("button",{className:"absolute -top-12 right-0 text-white hover:text-gray-300 text-lg font-semibold bg-black/50 px-4 py-2 rounded",onClick:c,children:d.detail?.close||"✕ Close"}),(0,b.jsx)("img",{src:a,alt:"Full size",className:"max-w-full max-h-[90vh] object-contain rounded-lg",onClick:a=>a.stopPropagation()}),(0,b.jsx)("p",{className:"text-center text-white/70 text-sm mt-4",children:d.detail?.clickOutside||"Click outside to close"})]})}):null}var v=a.i(460081),w=a.i(93907),x=a.i(591119);let y=(0,g.f)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var z=a.i(114548),A=a.i(633508);function B({onClick:a,label:c}){let{t:d}=(0,p.b)();return(0,b.jsxs)(o.f,{variant:"ghost",size:"sm",onClick:a,children:[(0,b.jsx)(y,{className:"h-4 w-4 mr-1"}),c||d.common?.edit||"Edit"]})}function C({onSave:a,onCancel:c,children:d}){let{t:e}=(0,p.b)();return(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(o.f,{size:"sm",onClick:a,children:[(0,b.jsx)(z.f,{className:"h-4 w-4 mr-1"}),e.common?.save||"Save"]}),(0,b.jsxs)(o.f,{size:"sm",variant:"outline",onClick:c,children:[(0,b.jsx)(A.X,{className:"h-4 w-4 mr-1"}),e.common?.cancel||"Cancel"]}),d]})}function D({title:a,actions:c}){return(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[a,c]})}var E=a.i(710302);function F({read:a,save:b,logLabel:d,successMessage:e,failureMessage:f}){let{t:g}=(0,p.b)(),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(a),l=async()=>{try{await b(j),i(!1),E.c.success(e||g.common?.messages?.saveSuccess||"Saved successfully")}catch(a){s.f.error("[ErrorDetail]",`Failed to save ${d}`,{error:a}),E.c.error(f||g.common?.messages?.saveFailed||"Save failed")}};return{editing:h,value:j,setValue:k,start:()=>{k(a()),i(!0)},cancel:()=>i(!1),submit:l}}function G({title:a,value:c,onSave:d,logLabel:e,rows:f,placeholder:g,editorLabel:h,emptyText:i,cardClassName:j,titleClassName:k,contentClassName:l,headerActions:m,children:n}){let o=F({read:()=>c||"",save:d,logLabel:e}),p=(0,b.jsx)(v.f,{value:o.value,onChange:o.setValue,placeholder:g,rows:f,className:"w-full font-mono text-sm"});return(0,b.jsxs)(x.N,{className:j,children:[(0,b.jsx)(x.Y,{children:(0,b.jsx)(D,{title:(0,b.jsx)(x.v,{className:k,children:a}),actions:!o.editing&&(0,b.jsxs)("div",{className:"flex flex-wrap justify-end",children:[m,(0,b.jsx)(B,{onClick:o.start})]})})}),(0,b.jsxs)(x.O,{className:"space-y-4",children:[o.editing?(0,b.jsxs)("div",{className:"space-y-3",children:[h?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:h}),p]}):p,(0,b.jsx)(C,{onSave:o.submit,onCancel:o.cancel})]}):!c&&i?(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:i}):(0,b.jsx)(w.f,{content:c,className:l}),n]})]})}var H=a.i(429246);function I({item:a,onUpdate:c}){let{t:d}=(0,p.b)(),e=F({read:()=>a.userNotes||"",save:async b=>{await q.f.patch(`/api/error-items/${a.id}/notes`,{userNotes:b}),c({userNotes:b})},logLabel:"notes",successMessage:d.common?.messages?.noteSaveSuccess||"Notes saved successfully"});return(0,b.jsxs)(x.N,{children:[(0,b.jsx)(x.Y,{children:(0,b.jsx)(D,{title:(0,b.jsx)(x.v,{children:d.detail.yourNotes}),actions:!e.editing&&(0,b.jsx)(B,{onClick:e.start,label:d.detail.editNotes})})}),(0,b.jsx)(x.O,{children:e.editing?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(H.f,{value:e.value,onChange:a=>e.setValue(a.target.value),placeholder:d.detail.notesPlaceholder||"Enter your notes...",rows:5,className:"w-full"}),(0,b.jsx)(C,{onSave:e.submit,onCancel:e.cancel})]}):(0,b.jsx)("div",{className:"whitespace-pre-wrap",children:a.userNotes?(0,b.jsx)("p",{className:"text-foreground",children:a.userNotes}):(0,b.jsx)("p",{className:"text-muted-foreground italic",children:d.detail.noNotes})})})]})}var J=a.i(418943);let K=(0,g.f)("shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);function L({errorItemId:a,onDone:d}){let{t:e}=(0,p.b)(),[f,g]=(0,c.useState)(!1),h=async()=>{g(!0);try{let b=await q.f.post(`/api/error-items/${a}/figure`,{});d(b),b.figureSvg||E.c.warning(e.figure.noFigure)}catch(c){let a=c?.data?.message||"",b=e.errors[a];s.f.error("[RegenerateFigure]","Failed to regenerate figure",{code:a}),E.c.error("NO_ORIGINAL_IMAGE"===a?e.figure.noImage:"string"==typeof b?b:e.figure.failed)}finally{g(!1)}};return(0,b.jsxs)(o.f,{variant:"outline",size:"sm",onClick:h,disabled:f,className:"flex items-center gap-2",children:[f?(0,b.jsx)(m.f,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(K,{className:"h-4 w-4"}),f?e.figure.regenerating:e.figure.regenerate]})}let M=(0,g.f)("image-plus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]);var N=a.i(797521),O=a.i(43542);function P({errorItemId:a,hasImage:d,onDone:e}){let{t:f}=(0,p.b)(),g=(0,c.useRef)(null),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null);(0,c.useEffect)(()=>()=>{j&&URL.revokeObjectURL(j)},[j]);let l=async()=>{(!d||await (0,E.u)(f.replaceImage.confirm))&&g.current?.click()},n=async b=>{k(null),i(!0);try{let c=new File([b],"question-image.jpg",{type:b.type||"image/jpeg"}),d=await (0,O.f)(c),g=await q.f.put(`/api/error-items/${a}/image`,{imageDataUrl:d});e(g.originalImageUrl),E.c.success(f.replaceImage.done)}catch(b){let a=b?.data?.message||"";s.f.error("[ReplaceImage]","Failed to replace original image",{code:a}),E.c.error("INVALID_IMAGE"===a?f.replaceImage.invalid:f.replaceImage.failed)}finally{i(!1)}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("input",{ref:g,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",className:"hidden",onChange:a=>{(a=>{if(a){if(!a.type.startsWith("image/"))return E.c.error(f.replaceImage.invalid);k(URL.createObjectURL(a))}})(a.target.files?.[0]),a.target.value=""}}),j&&(0,b.jsx)(N.f,{imageSrc:j,open:!0,onClose:()=>k(null),onCropComplete:n}),(0,b.jsxs)(o.f,{variant:"outline",size:"sm",onClick:l,disabled:h,className:"flex items-center gap-2",children:[h?(0,b.jsx)(m.f,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(M,{className:"h-4 w-4"}),h?f.replaceImage.uploading:d?f.replaceImage.replace:f.replaceImage.add]})]})}var Q=a.i(350659),R=a.i(866718),S=a.i(580701),T=a.i(851795);function U({item:a,onChanged:c}){let{t:d}=(0,p.b)(),e=d.common?.notSet||"Not set",f=F({read:()=>({subjectId:a.subjectId||null,gradeSemester:a.gradeSemester||"",paperLevel:a.paperLevel||(0,T.f)(a.difficultyStars)||"a"}),save:async b=>{await q.f.put(`/api/error-items/${a.id}`,{...b,subjectId:b.subjectId||null}),await c()},logLabel:"metadata",successMessage:d.common?.messages?.metaUpdateSuccess||"Metadata updated successfully!",failureMessage:d.common?.messages?.updateFailed||"Update failed"}),g=a=>f.setValue({...f.value,...a});return(0,b.jsxs)("div",{className:"space-y-2 pt-4 border-t",children:[(0,b.jsx)(D,{title:(0,b.jsx)("h4",{className:"text-sm font-semibold",children:d.detail?.questionInfo||"Question Info"}),actions:!f.editing&&(0,b.jsx)(B,{onClick:f.start})}),f.editing?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:d.notebooks?.title||"Notebook"}),(0,b.jsx)(Q.f,{value:f.value.subjectId||void 0,onChange:a=>g({subjectId:a})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:d.filter.grade}),(0,b.jsx)(R.f,{value:f.value.gradeSemester,onChange:a=>g({gradeSemester:a.target.value}),placeholder:d.notebook?.gradeSemesterPlaceholder||"e.g. Grade 7, Semester 1"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:d.filter.paperLevel}),(0,b.jsxs)(S.d,{value:f.value.paperLevel,onValueChange:a=>g({paperLevel:a}),children:[(0,b.jsx)(S.P,{children:(0,b.jsx)(S.U,{})}),(0,b.jsxs)(S.r,{children:[(0,b.jsx)(S.T,{value:"a",children:d.editor.paperLevels?.a||"Paper A"}),(0,b.jsx)(S.T,{value:"b",children:d.editor.paperLevels?.b||"Paper B"}),(0,b.jsx)(S.T,{value:"other",children:d.editor.paperLevels?.other||"Other"})]})]})]}),(0,b.jsx)(C,{onSave:f.submit,onCancel:f.cancel})]}):(0,b.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[d.notebooks?.title||"Notebook",":"]}),(0,b.jsx)("span",{className:"font-medium",children:a.subject?.name||e})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[d.filter.grade,":"]}),(0,b.jsx)("span",{className:"font-medium",children:a.gradeSemester||e})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[d.filter.paperLevel,":"]}),(0,b.jsx)("span",{className:"font-medium",children:a.paperLevel?d.editor.paperLevels?.[a.paperLevel]||a.paperLevel:e})]})]})]})}var V=a.i(786304),W=a.i(808406);function X({errorItemId:a,onDone:d,onSuggested:e}){let{t:f}=(0,p.b)(),[g,h]=(0,c.useState)(!1),i=async()=>{h(!0);try{if(e){let b=await q.f.post(`/api/error-items/${a}/retag`,{preview:!0});e(b.tags)}else await q.f.post(`/api/error-items/${a}/retag`,{}),d?.()}catch(c){let a=c?.data?.message||"",b=f.errors[a];s.f.error("[RetagItem]","Failed to regenerate tags",{code:a}),E.c.error("NO_TAGS_SELECTED"===a?f.retag.noTags:"string"==typeof b?b:f.retag.itemFailed)}finally{h(!1)}};return(0,b.jsxs)(o.f,{variant:"ghost",size:"sm",onClick:i,disabled:g,children:[g?(0,b.jsx)(m.f,{className:"h-4 w-4 mr-1 animate-spin"}):(0,b.jsx)(W.f,{className:"h-4 w-4 mr-1"}),e?g?f.retag.suggestRunning:f.retag.suggestButton:g?f.retag.itemRunning:f.retag.itemButton]})}var Y=a.i(699814),Z=a.i(957292),$=a.i(441069);function _({item:a,educationStage:c,onChanged:d}){let{t:e}=(0,p.b)(),f=(0,$.f)(a),g=F({read:()=>(0,$.f)(a),save:async b=>{await q.f.put(`/api/error-items/${a.id}`,{knowledgePoints:b}),await d()},logLabel:"tags",successMessage:e.common?.messages?.tagUpdateSuccess||"Tags updated successfully!",failureMessage:e.common?.messages?.updateFailed||"Update failed"});return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(D,{title:(0,b.jsx)("h4",{className:"text-sm font-semibold",children:e.editor?.tags||"Knowledge Tags"}),actions:!g.editing&&(0,b.jsxs)("div",{className:"flex",children:[(0,b.jsx)(X,{errorItemId:a.id,onDone:d}),(0,b.jsx)(B,{onClick:g.start})]})}),g.editing?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(Y.f,{value:g.value,onChange:g.setValue,placeholder:e.editor?.tagsPlaceholder||"Enter or select knowledge tags...",subject:(0,Z.f)(a.subject?.name||null)||void 0,gradeStage:c}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e.editor?.tagsHint||"Select from standard or custom tags"}),(0,b.jsx)(C,{onSave:g.submit,onCancel:g.cancel,children:(0,b.jsx)(X,{errorItemId:a.id,onSuggested:g.setValue})})]}):(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:f.map(a=>(0,b.jsx)(V.f,{variant:"secondary",children:a},a))})]})}var aa=a.i(141379);let ab=(0,g.f)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function ac({src:a,alt:c,showLabel:d,hideLabel:e,visible:f,onVisibleChange:g,onEnlarge:h,variant:i="ghost",actions:j}){let{t:k}=(0,p.b)();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[a&&(0,b.jsx)(o.f,{variant:i,size:"sm",onClick:()=>g(!f),className:`flex items-center gap-2 ${"ghost"===i?"text-muted-foreground":""}`,children:f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aa.f,{className:"h-4 w-4"}),e]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ab,{className:"h-4 w-4"}),d]})}),j]}),a&&f&&(0,b.jsxs)("div",{className:"mt-4",children:[(0,b.jsx)("img",{src:a,alt:c,className:"w-full rounded-lg border cursor-pointer hover:opacity-90 transition-opacity",onClick:()=>h(a)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-1 text-center",children:k.detail?.clickToEnlarge||"Click to enlarge"})]})]})}function ad({item:a,educationStage:d,saveFields:e,onUpdate:f,reload:g,onEnlarge:h}){let{t:i}=(0,p.b)(),[j,k]=(0,c.useState)(!1),l=F({read:()=>a.questionText,save:a=>e({questionText:a}),logLabel:"question"});return(0,b.jsxs)(x.N,{children:[(0,b.jsx)(x.Y,{children:(0,b.jsx)(D,{title:(0,b.jsx)(x.v,{children:i.detail.question}),actions:!l.editing&&(0,b.jsx)(B,{onClick:l.start})})}),(0,b.jsxs)(x.O,{className:"space-y-4",children:[l.editing?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(v.f,{value:l.value,onChange:l.setValue,placeholder:"Enter question text...",rows:8,className:"w-full font-mono text-sm"}),(0,b.jsx)(C,{onSave:l.submit,onCancel:l.cancel})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(w.f,{content:a.questionText}),(0,b.jsx)(J.f,{svg:a.figureSvg})]}),(0,b.jsx)(_,{item:a,educationStage:d,onChanged:g}),(0,b.jsx)(U,{item:a,onChanged:g}),(0,b.jsx)("div",{className:"pt-3",children:(0,b.jsx)(ac,{src:a.originalImageUrl,alt:i.detail.originalProblem||"Original Problem",showLabel:i.replaceImage?.view||"View original image",hideLabel:i.replaceImage?.hide||"Hide original image",variant:"outline",visible:j,onVisibleChange:k,onEnlarge:h,actions:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(P,{errorItemId:a.id,hasImage:!!a.originalImageUrl,onDone:a=>{f({originalImageUrl:a}),k(!0)}}),a.originalImageUrl&&(0,b.jsx)(L,{errorItemId:a.id,onDone:f})]})})})]})]})}var ae=a.i(992883);function af({item:a,saveFields:d,onEnlarge:e}){let{t:f,language:g}=(0,p.b)(),[h,i]=(0,c.useState)(!1),j=F({read:()=>({text:a.wrongAnswerText||"",status:a.mistakeStatus||"unknown"}),save:({text:a,status:b})=>d({wrongAnswerText:a,mistakeStatus:(0,ae.x)(b,a)}),logLabel:"wrong answer"});return(0,b.jsxs)(x.N,{children:[(0,b.jsx)(x.Y,{children:(0,b.jsx)(D,{title:(0,b.jsx)(x.v,{children:f.editor?.wrongAnswerText||"Wrong Answer / Work"}),actions:!j.editing&&(0,b.jsx)(B,{onClick:j.start})})}),(0,b.jsx)(x.O,{className:"space-y-4",children:j.editing?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:f.editor?.mistakeStatus||"Attempt Status"}),(0,b.jsxs)(S.d,{value:j.value.status,onValueChange:a=>j.setValue({...j.value,status:a}),children:[(0,b.jsx)(S.P,{children:(0,b.jsx)(S.U,{})}),(0,b.jsxs)(S.r,{children:[(0,b.jsx)(S.T,{value:"not_attempted",children:f.editor?.mistakeStatuses?.notAttempted||"Not attempted"}),(0,b.jsx)(S.T,{value:"wrong_attempt",children:f.editor?.mistakeStatuses?.wrongAttempt||"Wrong attempt"}),(0,b.jsx)(S.T,{value:"unknown",children:f.editor?.mistakeStatuses?.unknown||"Unknown"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:f.editor?.wrongAnswerText||"Wrong Answer / Work"}),(0,b.jsx)(v.f,{value:j.value.text,onChange:a=>j.setValue({text:a,status:a.trim()?"wrong_attempt":j.value.status}),rows:5,className:"w-full font-mono text-sm"})]}),(0,b.jsx)(C,{onSave:j.submit,onCancel:j.cancel})]}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(V.f,{variant:"secondary",children:(0,ae.i)(a.mistakeStatus,g)}),a.wrongAnswerText?(0,b.jsx)(w.f,{content:a.wrongAnswerText}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:f.detail?.noMistakeAnalysis||"No mistake analysis yet."}),a.wrongAnswerImageUrl&&(0,b.jsx)("div",{className:"pt-3",children:(0,b.jsx)(ac,{src:a.wrongAnswerImageUrl,alt:f.detail.wrongAnswerImageAlt,showLabel:f.detail.viewImage,hideLabel:f.detail.hideImage,visible:h,onVisibleChange:i,onEnlarge:e})})]})})]})}let ag=(0,g.f)("square-function",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3",key:"m1af9g"}],["path",{d:"M9 11.2h5.7",key:"3zgcl2"}]]);var ah=a.i(948986),ai=a.i(78362);let aj=new Set(["ne","neq","nabla","nu","not","notin","ni","nexists","ngeq","nleq","nmid","nparallel","nsubseteq"]);function ak(a){return a.length>80?`${a.slice(0,80)}…`:a}let al=["questionText","answerText","analysis","wrongAnswerText","mistakeAnalysis"];function am({errorItemId:a,fields:d,onDone:e}){let{t:f}=(0,p.b)(),[g,h]=(0,c.useState)(!1),i=(0,c.useMemo)(()=>Object.values(function(a){let b={};for(let c of al){let d=function(a){if(!a?.trim())return[];let{masked:b,segments:c}=(0,ai.F)(a),d=[];for(let a of c)try{ah.f.renderToString(a.tex,{displayMode:a.displayMode,throwOnError:!0,strict:"ignore"})}catch(c){let b=c instanceof Error?c.message.replace(/^KaTeX parse error:\s*/,""):String(c);d.push({snippet:ak(a.source),message:b})}let e=b.replace(/@@MATH\d+@@/g," "),f=e.replace(/\\\$/g,"").match(/\$/g);f&&d.push({snippet:"$",message:`有 ${f.length} 个未配对的 $ 定界符`});let g=e.match(/\\[()[\]]/g);g&&d.push({snippet:g.join(" "),message:"有未配对的 \\( \\) 或 \\[ \\] 定界符"});let h=[...new Set(e.match(/\\[a-zA-Z]{2,}/g)||[])].filter(a=>!a.startsWith("\\n")||aj.has(a.slice(1)));return h.length>0&&d.push({snippet:ak(h.join(" ")),message:"LaTeX 命令没有放在 $…$ 中,会原样显示"}),d}(a[c]);d.length>0&&(b[c]=d)}return b}(d)).reduce((a,b)=>a+(b?.length??0),0),[d]),j=async()=>{h(!0);try{let b=await q.f.post(`/api/error-items/${a}/fix-latex`,{},{timeout:3e5});e(b.updated);let c=b.fixedFields.map(a=>f.fixLatex.fields[a]).join("、");E.c.info(0===b.issuesBefore?f.fixLatex.noIssues:0===b.fixedFields.length?f.fixLatex.notFixed:0===b.issuesAfter?f.fixLatex.fixedAll.replace("{fields}",c):f.fixLatex.fixedPartly.replace("{fields}",c).replace("{count}",String(b.issuesAfter)))}catch(c){let a=c?.data?.message||"",b=f.errors[a];s.f.error("[FixLatex]","Failed to fix LaTeX",{code:a}),E.c.error("string"==typeof b?b:f.fixLatex.failed)}finally{h(!1)}};return 0!==i||g?(0,b.jsxs)(o.f,{variant:"outline",size:"sm",onClick:j,disabled:g,className:"border-amber-500 text-amber-700 dark:text-amber-400",title:f.fixLatex.issuesFound.replace("{count}",String(i)),children:[g?(0,b.jsx)(m.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(ag,{className:"mr-2 h-4 w-4"}),g?f.fixLatex.running:f.fixLatex.button,!g&&i>0&&(0,b.jsxs)("span",{className:"ml-1",children:["(",i,")"]})]}):null}var an=a.i(946862),ao=a.i(622418),ap=a.i(214491);function aq({errorItemId:a,onDone:d}){let{t:e,language:f}=(0,p.b)(),[g,h]=(0,c.useState)(!1),i=async()=>{if(await (0,E.u)(e.reanswerItem.confirm)){h(!0);try{let b=await q.f.post(`/api/error-items/${a}/reanswer`,{language:f},{timeout:6e5});d(b)}catch(c){let a=c?.data?.message||"",b=e.errors[a];s.f.error("[RegenerateAnswer]","Failed to regenerate answer",{code:a}),E.c.error("NO_QUESTION_TEXT"===a?e.reanswerItem.noQuestionText:"string"==typeof b?b:e.reanswerItem.failed)}finally{h(!1)}}};return(0,b.jsxs)(o.f,{variant:"ghost",size:"sm",onClick:i,disabled:g,children:[g?(0,b.jsx)(m.f,{className:"h-4 w-4 mr-1 animate-spin"}):(0,b.jsx)(ap.f,{className:"h-4 w-4 mr-1"}),g?e.reanswerItem.running:e.reanswerItem.button]})}var ar=a.i(533441);let as=(0,g.f)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);function at({shortId:a,className:d=""}){let{t:e}=(0,p.b)(),[f,g]=(0,c.useState)(!1);if(!a)return null;let h=async b=>{b.preventDefault(),b.stopPropagation();try{await navigator.clipboard.writeText(a),g(!0),setTimeout(()=>g(!1),1500)}catch{window.prompt(e.shortId.copy,a)}};return(0,b.jsxs)("button",{type:"button",onClick:h,title:f?e.shortId.copied:e.shortId.copy,className:`inline-flex items-center gap-1 rounded-md border bg-muted/50 px-2 py-0.5 font-mono text-xs text-muted-foreground hover:text-foreground transition-colors ${d}`,children:[(0,b.jsx)("span",{children:e.shortId.label}),(0,b.jsx)("span",{className:"font-semibold text-foreground",children:a}),f?(0,b.jsx)(ar.f,{className:"h-3 w-3 text-green-600"}):(0,b.jsx)(as,{className:"h-3 w-3"})]})}let au=(0,g.f)("clapperboard",[["path",{d:"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z",key:"1tn4o7"}],["path",{d:"m6.2 5.3 3.1 3.9",key:"iuk76l"}],["path",{d:"m12.4 3.4 3.1 4",key:"6hsd6n"}],["path",{d:"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z",key:"ltgou9"}]]),av=(0,g.f)("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]),aw=(0,g.f)("minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]]),ax=(0,g.f)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]),ay=(0,g.f)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var az=a.i(787654);let aA=/<(?:animate|animateTransform|animateMotion|set)\b[^>]*>/gi;function aB(a,b){let c=a.match(RegExp(`\\s${b}\\s*=\\s*("([^"]*)"|'([^']*)')`,"i"));return c?(c[2]??c[3]??"").trim():null}function aC(a){if(!a)return null;let b=a.trim(),c=b.match(/^(?:(\d+):)?(\d+):(\d+(?:\.\d+)?)$/);if(c)return 3600*Number(c[1]??0)+60*Number(c[2])+Number(c[3]);let d=b.match(/^(\d+(?:\.\d+)?)(h|min|s|ms)?$/);if(!d)return null;let e={h:3600,min:60,s:1,ms:.001}[d[2]??"s"]??1;return Number(d[1])*e}var aD=a.i(368114);function aE(a){let b=Math.max(0,Math.floor(a));return`${Math.floor(b/60)}:${String(b%60).padStart(2,"0")}`}function aF({svg:a}){let{t:d}=(0,p.b)(),e=(0,c.useRef)(null),f=(0,c.useRef)(null),g=(0,c.useRef)(null),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(0),[l,m]=(0,c.useState)(!1),[n,q]=(0,c.useState)(!1),r=l||n,s=(0,c.useMemo)(()=>(function(a){let b=0;for(let c of a.match(aA)||[]){let a=aB(c,"begin"),d=null===a?0:aC(a.split(";")[0]);if(null===d)continue;let e=aB(c,"repeatCount");if("indefinite"!==e&&"indefinite"!==aB(c,"repeatDur"))b=Math.max(b,d+(aC(aB(c,"dur"))??0)*(e&&Number.isFinite(Number(e))?Number(e):1))}return b})(a),[a]),t=(0,c.useMemo)(()=>(function(a){let b=a.match(/<svg\b[^>]*>/i)?.[0]??"",c=aB(b,"viewBox")?.split(/[\s,]+/).map(Number);if(c?.length===4&&c[2]>0&&c[3]>0)return c[2]/c[3];let d=parseFloat(aB(b,"width")??""),e=parseFloat(aB(b,"height")??"");return d>0&&e>0?d/e:1.6})(a),[a]),u=(0,c.useMemo)(()=>`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; img-src data:"><style>html,body{margin:0;height:100%;background:#fff;overflow:hidden}svg{display:block;width:100%;height:100%}</style></head><body>${a}</body></html>`,[a]),v=(0,c.useCallback)(()=>{let a=f.current?.contentDocument;return"function"==typeof a?.getAnimations?a.getAnimations():[]},[]),w=(0,c.useCallback)(()=>{g.current?.pauseAnimations(),v().forEach(a=>a.pause()),i(!1)},[v]),x=(0,c.useCallback)(a=>{g.current?.setCurrentTime(a),v().forEach(b=>{b.currentTime=1e3*a}),k(a)},[v]),y=(0,c.useCallback)(()=>{let a=g.current;a&&(s>0&&a.getCurrentTime()>=s&&x(0),a.unpauseAnimations(),v().forEach(a=>a.play()),i(!0))},[v,s,x]),z=async()=>{if(n)return void q(!1);if(document.fullscreenElement)return void await document.exitFullscreen().catch(()=>void 0);let a=e.current;if(a&&"function"==typeof a.requestFullscreen)try{await a.requestFullscreen();return}catch{}q(!0)};return(0,c.useEffect)(()=>{let a=()=>m(document.fullscreenElement===e.current);return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),(0,c.useEffect)(()=>{if(!n)return;let a=a=>{"Escape"===a.key&&q(!1)},b=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",a),()=>{document.body.style.overflow=b,document.removeEventListener("keydown",a)}},[n]),(0,c.useEffect)(()=>{if(!h)return;let a=0,b=()=>{let c=g.current?.getCurrentTime()??0;if(s>0&&c>=s){g.current?.setCurrentTime(s),w(),k(s);return}k(c),a=requestAnimationFrame(b)};return a=requestAnimationFrame(b),()=>cancelAnimationFrame(a)},[h,s,w]),(0,b.jsxs)("div",{ref:e,className:(0,aD.f)("space-y-2",r&&"flex flex-col items-center justify-center bg-black p-4",n&&"fixed inset-0 z-50"),children:[(0,b.jsx)("iframe",{ref:f,srcDoc:u,sandbox:"allow-same-origin",title:d.svgAnimation.alt,onLoad:()=>{g.current=f.current?.contentDocument?.querySelector("svg")??null,k(0),i(!!g.current)},className:(0,aD.f)("mx-auto block rounded border bg-white",!r&&"w-full max-w-3xl"),style:r?{aspectRatio:t,width:`min(100%, calc((100dvh - 96px) * ${t}))`}:{aspectRatio:t}}),(0,b.jsxs)("div",{className:(0,aD.f)("mx-auto flex w-full items-center gap-2",r?"max-w-5xl text-white":"max-w-3xl"),children:[(0,b.jsx)(o.f,{variant:"outline",size:"sm",className:"h-8 w-8 shrink-0 p-0 text-foreground",onClick:h?w:y,"aria-label":h?d.svgAnimation.pause:d.svgAnimation.play,title:h?d.svgAnimation.pause:d.svgAnimation.play,children:h?(0,b.jsx)(ax,{className:"h-4 w-4"}):(0,b.jsx)(ay,{className:"h-4 w-4"})}),(0,b.jsx)(o.f,{variant:"ghost",size:"sm",className:(0,aD.f)("h-8 w-8 shrink-0 p-0",r&&"text-white hover:bg-white/20 hover:text-white"),onClick:()=>{x(0),y()},"aria-label":d.svgAnimation.replay,title:d.svgAnimation.replay,children:(0,b.jsx)(az.f,{className:"h-4 w-4"})}),s>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("input",{type:"range",min:0,max:s,step:.1,value:Math.min(j,s),onChange:a=>x(Number(a.target.value)),"aria-label":d.svgAnimation.progress,className:"h-2 min-w-0 flex-1 cursor-pointer accent-primary"}),(0,b.jsxs)("span",{className:(0,aD.f)("shrink-0 text-xs tabular-nums",r?"text-white/80":"text-muted-foreground"),children:[aE(j)," / ",aE(s)]})]}),(0,b.jsx)(o.f,{variant:"ghost",size:"sm",className:(0,aD.f)("ml-auto h-8 w-8 shrink-0 p-0",r&&"text-white hover:bg-white/20 hover:text-white"),onClick:z,"aria-label":r?d.svgAnimation.exitFullscreen:d.svgAnimation.fullscreen,title:r?d.svgAnimation.exitFullscreen:d.svgAnimation.fullscreen,children:r?(0,b.jsx)(aw,{className:"h-4 w-4"}):(0,b.jsx)(av,{className:"h-4 w-4"})})]})]})}function aG({errorItemId:a,svgAnimation:d,hasOtherLanguage:e,onChange:f}){let{t:g,language:h}=(0,p.b)(),[k,l]=(0,c.useState)(!1),[n,r]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),v=async()=>{l(!0),u(null);try{let b=await q.f.post(`/api/error-items/${a}/svg-animation`,{language:h},{timeout:6e5});f(h,b.svgAnimation)}catch(c){let a=c?.data?.message||"",b=g.errors[a];s.f.error("[SvgAnimation]","Failed to generate SVG animation",{code:a}),u("NO_QUESTION_TEXT"===a?g.svgAnimation.noQuestionText:"NO_VALID_ANIMATION"===a?g.svgAnimation.invalid:"string"==typeof b?b:g.svgAnimation.failed)}finally{l(!1)}},w=async()=>{if(await (0,E.u)(g.svgAnimation.confirmDelete,{destructive:!0})){r(!0);try{await q.f.delete(`/api/error-items/${a}/svg-animation?language=${h}`),f(h,null),u(null)}catch(a){s.f.error("[SvgAnimation]","Failed to delete SVG animation",{error:a instanceof Error?a.message:String(a)}),E.c.error(g.svgAnimation.deleteFailed)}finally{r(!1)}}};if(!d)return(0,b.jsxs)("div",{className:"rounded-lg border border-dashed p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(au,{className:"h-4 w-4"}),(0,b.jsx)("span",{children:g.svgAnimation.title})]}),(0,b.jsxs)(o.f,{variant:"outline",size:"sm",onClick:v,disabled:k,children:[k?(0,b.jsx)(m.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(au,{className:"mr-2 h-4 w-4"}),k?g.svgAnimation.generating:g.svgAnimation.generate]})]}),t&&(0,b.jsx)("p",{className:"text-xs text-destructive mt-2",children:t}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:e?g.svgAnimation.otherLanguageAvailable:g.svgAnimation.hint})]});let x=k||n;return(0,b.jsxs)("div",{className:"rounded-lg border bg-card",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-3 py-2 border-b bg-muted/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:g.svgAnimation.title}),x&&(0,b.jsx)(m.f,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsxs)(o.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:v,disabled:x,children:[k?(0,b.jsx)(m.f,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(i.f,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:k?g.svgAnimation.generating:g.svgAnimation.regenerate})]}),(0,b.jsxs)(o.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:w,disabled:x,children:[(0,b.jsx)(j.f,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:g.svgAnimation.delete})]})]})]}),t&&(0,b.jsx)("p",{className:"px-3 pt-2 text-xs text-destructive",children:t}),(0,b.jsx)("div",{className:"p-2 sm:p-3",children:(0,b.jsx)(aF,{svg:d})})]})}var aH=a.i(579834),aI=a.i(506376),aJ=a.i(557999);a.s(["default",0,function(){let a=(0,e.useParams)(),g=(0,e.useRouter)(),{t:l,language:m}=(0,p.b)(),[n,r]=(0,c.useState)(null);(0,aJ.f)(l.detail.title,n?.subject?.name,n?.shortId);let[v,w]=(0,c.useState)(!0),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(void 0),[D,F]=(0,c.useState)(!1),[H,J]=(0,c.useState)(!0),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(!1),O=(0,c.useCallback)(async a=>{try{let b=await q.f.get(`/api/error-items/${a}`);r(b)}catch(a){s.f.error("[ErrorDetail]","Failed to fetch error item",{error:a}),E.c.error(l.common?.messages?.loadFailed||"Failed to load item"),g.push("/notebooks")}finally{w(!1)}},[g,l]);(0,c.useEffect)(()=>{q.f.get("/api/user").then(a=>{a&&a.educationStage&&C(a.educationStage),F(!!a?.enableGeogebra),J(a?.enableSvgAnimation!==!1)}).catch(a=>s.f.error("[ErrorDetail]","Failed to fetch user info",{error:a})),a.id&&O(a.id)},[a.id,O]);let P=(0,c.useCallback)(a=>{r(b=>b&&{...b,...a})},[]),Q=async a=>{n&&(await q.f.put(`/api/error-items/${n.id}`,a),P(a))},R=async()=>{n&&await O(n.id)},S=async a=>{if(!n)return;let b=n.difficultyStars??null;P({difficultyStars:a}),N(!0);try{let b=await q.f.put(`/api/error-items/${n.id}`,{difficultyStars:a});P({paperLevel:b.paperLevel})}catch(a){P({difficultyStars:b}),s.f.error("[ErrorDetail]","Failed to save difficulty",{error:a}),E.c.error(l.difficulty.saveFailed)}finally{N(!1)}},T=(0,c.useCallback)((a,b)=>{P({["en"===a?"svgAnimationEn":"svgAnimation"]:b})},[P]),U=async()=>{if(n&&await (0,E.u)(l.common?.messages?.confirmDelete||"Are you sure you want to delete this error item?",{destructive:!0}))try{await q.f.delete(`/api/error-items/${n.id}/delete`),E.c.success(l.common?.messages?.deleteSuccess||"Deleted successfully"),g.push(n.subjectId?`/notebooks/${n.subjectId}`:"/notebooks")}catch(a){s.f.error("[ErrorDetail]","Failed to delete error item",{error:a}),E.c.error(l.common?.messages?.deleteFailed||"Delete failed")}};return v?(0,b.jsx)(aI.f,{label:l.common.loading}):n?(0,b.jsxs)("main",{className:"min-h-screen",children:[(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 px-4 py-6 md:px-8 md:py-8",children:[(0,b.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2",children:[(0,b.jsx)(d.default,{href:n.subjectId?`/notebooks/${n.subjectId}`:"/notebooks",children:(0,b.jsx)(o.f,{variant:"ghost",size:"icon",className:"-ml-2",children:(0,b.jsx)(f.f,{className:"h-5 w-5"})})}),(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:l.detail.title}),(0,b.jsx)(at,{shortId:n.shortId}),(0,b.jsx)(k.f,{size:"md",value:n.difficultyStars,onChange:S,disabled:M})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(am,{errorItemId:n.id,fields:n,onDone:P}),(0,b.jsx)(d.default,{href:`/practice?id=${n.id}`,children:(0,b.jsxs)(o.f,{variant:"outline",size:"sm",children:[(0,b.jsx)(i.f,{className:"mr-2 h-4 w-4"}),l.detail.practice]})}),K&&(0,b.jsx)(ao.x,{status:K,className:"h-8 self-center px-3"}),(0,b.jsxs)(o.f,{variant:"ghost",size:"sm",onClick:U,className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:[(0,b.jsx)(j.f,{className:"mr-2 h-4 w-4"}),l.detail.delete||"Delete"]})]})]}),(0,b.jsx)(ad,{item:n,educationStage:B,saveFields:Q,onUpdate:P,reload:R,onEnlarge:y}),(0,b.jsx)(an.K,{errorItemId:n.id,onMasteryStatusChange:L}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsx)(G,{title:l.detail.correctAnswer,value:n.answerText,onSave:a=>Q({answerText:a}),logLabel:"answer",rows:5,placeholder:"Enter answer...",cardClassName:"border-primary/20",titleClassName:"text-primary",contentClassName:"font-semibold",headerActions:(0,b.jsx)(aq,{errorItemId:n.id,onDone:a=>P({answerText:a.answerText??"",analysis:a.analysis??""})}),children:n.referenceImageUrl&&(0,b.jsx)("div",{className:"pt-3",children:(0,b.jsx)(ac,{src:n.referenceImageUrl,alt:l.detail.referenceImageAlt,showLabel:l.detail.viewImage,hideLabel:l.detail.hideImage,visible:z,onVisibleChange:A,onEnlarge:y})})}),(0,b.jsx)(af,{item:n,saveFields:Q,onEnlarge:y})]}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsx)(G,{title:l.detail.analysis,value:n.analysis,onSave:a=>Q({analysis:a}),logLabel:"analysis",rows:12,placeholder:"Enter analysis..."}),(0,b.jsx)(G,{title:l.detail?.mistakeAnalysis||"Mistake Analysis",value:n.mistakeAnalysis,onSave:a=>Q({mistakeAnalysis:a}),logLabel:"mistake analysis",rows:8,editorLabel:l.editor?.mistakeAnalysis||"Mistake Cause Analysis",emptyText:l.detail?.noMistakeAnalysis||"No mistake analysis yet."})]}),(0,b.jsxs)("div",{className:"space-y-6",children:[H&&(0,b.jsx)(aG,{errorItemId:n.id,svgAnimation:"en"===m?n.svgAnimationEn:n.svgAnimation,hasOtherLanguage:!!("en"===m?n.svgAnimation:n.svgAnimationEn),onChange:T},m),D&&(0,b.jsx)(t,{errorItemId:n.id,commands:n.geogebraCommands,onUpdate:P}),(0,b.jsx)(I,{item:n,onUpdate:P})]})]}),(0,b.jsx)(u,{src:x,onClose:()=>y(null)})]}):(0,b.jsx)(aH.f,{icon:h,title:l.detail.notFound||"Item not found",className:"m-4 md:m-8"})}],273773)}];
2
+
3
+ //# sourceMappingURL=src_app_error-items_%5Bid%5D_page_tsx_04xwwdmyh7_9q._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[108561,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),e=a.i(50944),f=a.i(529759),g=a.i(986705);let h=(0,a.i(170106).f)("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);var i=a.i(596221),j=a.i(771931),k=a.i(787654),l=a.i(114548),m=a.i(781560),n=a.i(699570),o=a.i(866718),p=a.i(695001),q=a.i(506376),r=a.i(405784),s=a.i(767552),t=a.i(633508),u=a.i(786304),v=a.i(591119),w=a.i(93907),x=a.i(946862),y=a.i(226897),z=a.i(418943),A=a.i(669520),B=a.i(214491),C=a.i(550194),D=a.i(291938),E=a.i(630534),F=a.i(710302);function G({paperId:a,question:d,onDone:e}){let{t:f,language:g}=(0,C.b)(),[h,j]=(0,c.useState)(null),k=0===d.attempts.length&&!!d.errorItemId&&"pending"!==d.status,l="ready"===d.status&&!!d.questionText?.trim();if(!k&&!l)return null;let m=async b=>{let c="question"===b?f.exam.regenerateQuestionConfirm:f.exam.regenerateAnswerConfirm;if(await (0,F.u)(c)){j(b);try{let c=await D.f.post(`/api/exams/${a}/questions/${d.id}/regenerate`,{mode:b,language:g},{timeout:6e5});e(c)}catch(d){let a=d?.data?.message||"",c=f.errors[a];E.f.error("[ExamRegenerate]","Failed to regenerate exam question",{mode:b,code:a}),F.c.error("HAS_RESULTS"===a?f.exam.regenerateHasResults:"string"==typeof c?c:f.exam.regenerateFailed)}finally{j(null)}}};return(0,b.jsxs)("div",{className:"flex flex-wrap gap-1",children:[k&&(0,b.jsxs)(n.f,{variant:"ghost",size:"sm",onClick:()=>m("question"),disabled:null!==h,children:["question"===h?(0,b.jsx)(i.f,{className:"mr-1 h-4 w-4 animate-spin"}):(0,b.jsx)(A.f,{className:"mr-1 h-4 w-4"}),"question"===h?f.exam.regenerating:f.exam.regenerateQuestion]}),l&&(0,b.jsxs)(n.f,{variant:"ghost",size:"sm",onClick:()=>m("answer"),disabled:null!==h,children:["answer"===h?(0,b.jsx)(i.f,{className:"mr-1 h-4 w-4 animate-spin"}):(0,b.jsx)(B.f,{className:"mr-1 h-4 w-4"}),"answer"===h?f.exam.regenerating:f.exam.regenerateAnswer]})]})}function H({paperId:a,question:e,editingResult:h,onResultChange:j,onDeleteAttempt:k,onRegenerated:l}){let{t:m}=(0,C.b)(),{timeZone:n}=(0,f.M)(),[o,p]=(0,c.useState)(!1),q=void 0!==h,A=(()=>{if(!e.error)return"";if("SOURCE_DELETED"===e.error)return m.exam.sourceDeleted;let a=e.error.split(":")[0].trim(),b=m.errors[a];return"string"==typeof b?b:e.error})();return(0,b.jsx)(v.N,{children:(0,b.jsxs)(v.O,{className:"space-y-3 pt-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,b.jsxs)("span",{className:"font-semibold",children:[e.order,"."]}),e.errorItemId?(0,b.jsxs)(d.default,{href:`/error-items/${e.errorItemId}`,className:"font-mono text-xs text-primary hover:underline",children:[m.exam.source," ",e.sourceShortId]}):(0,b.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:[e.sourceShortId," · ",m.exam.sourceDeleted]}),e.notebookName&&(0,b.jsx)(u.f,{variant:"secondary",children:e.notebookName})]}),e.attempts.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:e.attempts.map((a,c)=>(0,b.jsxs)(u.f,{variant:"outline",className:`gap-1 font-normal ${x.x[a.result]||""}`,children:[(0,b.jsx)("span",{children:m.exam.attemptLabel.replace("{n}",String(c+1))}),(0,b.jsx)("span",{className:"tabular-nums",children:(0,g.r)(a.createdAt,"MM-dd",n)}),(0,b.jsx)("span",{className:"font-semibold",children:m.mastery.results[a.result]}),q&&k&&(0,b.jsx)("button",{type:"button","aria-label":m.mastery.deleteRecord,className:"-mr-1 rounded hover:bg-black/10",onClick:()=>k(a.id),children:(0,b.jsx)(t.X,{className:"h-3 w-3"})})]},a.id))}),"pending"===e.status&&(0,b.jsxs)("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(i.f,{className:"h-4 w-4 animate-spin"}),m.exam.questionPending]}),"failed"===e.status&&(0,b.jsxs)("p",{className:"text-sm text-destructive",children:[m.exam.questionFailed,A?`:${A}`:""]}),"ready"===e.status&&e.questionText&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(w.f,{content:e.questionText}),(0,b.jsx)(z.f,{svg:e.figureSvg}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",onClick:()=>p(!o),children:[o?(0,b.jsx)(s.f,{className:"h-3 w-3"}):(0,b.jsx)(r.f,{className:"h-3 w-3"}),m.exam.showAnswer]}),o&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[e.answerText&&(0,b.jsx)(w.f,{content:e.answerText,className:"font-semibold"}),e.analysis&&(0,b.jsx)(w.f,{content:e.analysis})]})]}),!q&&l&&(0,b.jsx)(G,{paperId:a,question:e,onDone:l}),q&&"ready"===e.status&&e.errorItemId&&j&&(0,b.jsx)(y.f,{value:h,onChange:j,size:"sm"})]})})}var I=a.i(726319),J=a.i(557999);a.s(["default",0,function(){let{timeZone:a}=(0,f.M)(),r=(0,e.useParams)(),s=(0,e.useRouter)(),{t,language:u}=(0,C.b)(),v=r.id,[w,x]=(0,c.useState)(null);(0,J.f)(t.exam.title,w?.title);let[y,z]=(0,c.useState)(!1),[A,B]=(0,c.useState)(null),[E,G]=(0,c.useState)((0,g.r)(new Date,"yyyy-MM-dd",a)),[K,L]=(0,c.useState)(!1),[M,N]=(0,c.useState)(null),O=(0,c.useCallback)(async()=>{try{x(await D.f.get(`/api/exams/${v}`))}catch{z(!0)}},[v]);if((0,c.useEffect)(()=>{O()},[O]),(0,c.useEffect)(()=>{if(w?.status!=="generating")return;let a=setTimeout(O,3e3);return()=>clearTimeout(a)},[w,O]),y)return(0,b.jsx)("div",{className:"p-8 text-center",children:t.exam.notFound});if(!w)return(0,b.jsx)(q.f,{label:t.common.loading});let P=w.questions.filter(a=>"ready"===a.status).length,Q=w.questions.some(a=>"failed"===a.status),R=w.questions.filter(a=>"ready"===a.status&&a.errorItemId),S=A?R.filter(a=>A[a.id]).length:0,T=async()=>{if(A&&0!==S){L(!0),N(null);try{await D.f.post(`/api/exams/${w.id}/results`,{takenAt:(0,g.$)(E,a),results:R.filter(a=>A[a.id]).map(a=>({questionId:a.id,result:A[a.id]}))}),B(null),N(t.exam.resultsSaved),await O()}catch{N(t.exam.resultsSaveFailed)}finally{L(!1)}}},U=async a=>{if(await (0,F.u)(t.mastery.deleteRecordConfirm,{destructive:!0}))try{await D.f.delete(`/api/practice/record/${a}`),await O()}catch{N(t.mastery.deleteRecordFailed)}},V=async()=>{await D.f.post(`/api/exams/${w.id}/retry`,{language:u}),await O()},W=async()=>{await (0,F.u)(t.exam.deleteConfirm,{destructive:!0})&&(await D.f.delete(`/api/exams/${w.id}`),s.push("/exams"))};return(0,b.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,b.jsxs)("div",{className:"space-y-6 pb-24",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(p.f,{fallbackUrl:"/exams",className:"-ml-2 shrink-0"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 space-y-2",children:[(0,b.jsx)("h1",{className:"text-xl sm:text-2xl font-bold tracking-tight break-words",children:w.title}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(I.f,{status:w.status}),(0,b.jsx)("span",{children:t.exam.progress.replace("{ready}",String(P)).replace("{total}",String(w.questions.length))}),(0,b.jsx)("span",{children:(0,g.r)(w.createdAt,"yyyy-MM-dd HH:mm",a)})]})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(d.default,{href:`/exams/${w.id}/print`,children:(0,b.jsxs)(n.f,{variant:"outline",size:"sm",disabled:0===P,children:[(0,b.jsx)(j.f,{className:"mr-2 h-4 w-4"}),t.exam.print]})}),!A&&R.length>0&&(0,b.jsxs)(n.f,{size:"sm",onClick:()=>{N(null),B({}),G((0,g.r)(new Date,"yyyy-MM-dd",a))},children:[(0,b.jsx)(h,{className:"mr-2 h-4 w-4"}),t.exam.recordResults]}),Q&&"generating"!==w.status&&(0,b.jsxs)(n.f,{variant:"outline",size:"sm",onClick:V,children:[(0,b.jsx)(k.f,{className:"mr-2 h-4 w-4"}),t.exam.retryFailed]}),(0,b.jsxs)(n.f,{variant:"ghost",size:"sm",onClick:W,className:"text-red-600 hover:text-red-700 hover:bg-red-50 sm:ml-auto",children:[(0,b.jsx)(m.f,{className:"mr-2 h-4 w-4"}),t.exam.delete]})]}),w.questions.length<w.requestedCount&&(0,b.jsx)("p",{className:"rounded-md border border-amber-200 bg-amber-50 p-3 text-sm text-amber-800",children:t.exam.fewerThanRequested.replaceAll("{actual}",String(w.questions.length))}),M&&(0,b.jsx)("p",{className:"rounded-md border p-3 text-sm",children:M}),A&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md border bg-muted/30 p-3",children:[(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,b.jsx)("label",{htmlFor:"exam-taken-at",className:"text-sm font-medium",children:t.exam.takenAt}),(0,b.jsx)(o.f,{id:"exam-taken-at",type:"date",value:E,onChange:a=>G(a.target.value),className:"sm:w-48"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:t.exam.recordHint})]}),(0,b.jsx)("div",{className:"space-y-3",children:w.questions.map(a=>(0,b.jsx)(H,{paperId:w.id,question:a,editingResult:A?A[a.id]??null:void 0,onResultChange:b=>B(c=>c?{...c,[a.id]:b}:c),onDeleteAttempt:U,onRegenerated:O},a.id))}),A&&(0,b.jsx)("div",{className:"fixed inset-x-0 bottom-16 z-30 border-t bg-background/95 p-3 backdrop-blur md:bottom-0",children:(0,b.jsxs)("div",{className:"max-w-4xl mx-auto flex items-center justify-end gap-2",children:[0===S&&(0,b.jsx)("span",{className:"mr-auto text-xs text-muted-foreground",children:t.exam.noResultSelected}),(0,b.jsx)(n.f,{variant:"outline",onClick:()=>B(null),disabled:K,children:t.exam.cancel}),(0,b.jsxs)(n.f,{onClick:T,disabled:K||!E||0===S,children:[K?(0,b.jsx)(i.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(l.f,{className:"mr-2 h-4 w-4"}),t.exam.saveResults]})]})})]})})}],108561)}];
2
+
3
+ //# sourceMappingURL=src_app_exams_%5Bid%5D_page_tsx_0xcjflkgkwzgd._.js.map
@@ -0,0 +1,35 @@
1
+ module.exports=[667441,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(284505),f=a.i(771931),g=a.i(699570),h=a.i(315055),i=a.i(695001),j=a.i(93907),k=a.i(418943),l=a.i(550194),m=a.i(557999),n=a.i(291938);let o=`
2
+ .exam-sheet { max-width: 210mm; margin: 0 auto; padding: 16px; color: #111; background: #fff; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; line-height: 1.6; }
3
+ .exam-sheet h1 { text-align: center; font-size: 22px; margin: 0 0 8px; }
4
+ .exam-sheet .exam-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 32px; font-size: 14px; margin-bottom: 20px; }
5
+ .exam-sheet .exam-meta span { min-width: 120px; }
6
+ .exam-sheet .exam-question { break-inside: avoid; page-break-inside: avoid; padding: 12px 0; border-bottom: 1px dashed #ccc; }
7
+ .exam-sheet .exam-question-head { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; }
8
+ .exam-sheet .exam-source { font-family: ui-monospace, Menlo, monospace; font-weight: 400; font-size: 12px; color: #666; white-space: nowrap; }
9
+ .exam-sheet .exam-answer-space { min-height: 120px; }
10
+ .exam-sheet .exam-answer-key { break-before: page; page-break-before: always; padding-top: 8px; }
11
+ .exam-sheet .exam-answer-key h2 { text-align: center; font-size: 18px; margin: 0 0 12px; }
12
+ .exam-sheet .exam-label { font-weight: 600; color: #444; }
13
+ .exam-sheet .markdown-content p { margin: 4px 0; }
14
+ .exam-sheet .markdown-content img { max-width: 100%; }
15
+ .exam-sheet .question-figure { margin: 8px 0; break-inside: avoid; page-break-inside: avoid; }
16
+ .exam-sheet .question-figure img { display: block; margin: 0 auto; max-width: 100%; max-height: 360px; background: #fff; }
17
+ .exam-sheet .markdown-content table { border-collapse: collapse; }
18
+ .exam-sheet .markdown-content td, .exam-sheet .markdown-content th { border: 1px solid #999; padding: 2px 6px; }
19
+ @media print { .exam-sheet { padding: 0; max-width: none; } @page { size: A4; margin: 15mm; } }
20
+ `;function p(a){return a.replace(/[&<>"']/g,a=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[a])}a.s(["default",0,function(){let a=(0,d.useParams)(),{t:q,language:r}=(0,l.b)(),[s,t]=(0,c.useState)(null);(0,m.f)(q.exam.title,s?.title,q.pageTitle.examPrint);let[u,v]=(0,c.useState)(!0),w=(0,c.useRef)(null);if((0,c.useEffect)(()=>{n.f.get(`/api/exams/${a.id}`).then(t).catch(()=>t(null))},[a.id]),!s)return(0,b.jsx)("div",{className:"p-8 text-center",children:q.common.loading});let x=s.questions.filter(a=>"ready"===a.status&&a.questionText);return(0,b.jsxs)("main",{className:"min-h-screen bg-white",children:[(0,b.jsx)("style",{children:o}),(0,b.jsx)("div",{className:"print:hidden sticky top-0 z-10 border-b bg-background p-3 shadow-sm",children:(0,b.jsxs)("div",{className:"max-w-4xl mx-auto flex flex-wrap items-center gap-3",children:[(0,b.jsx)(i.f,{fallbackUrl:`/exams/${s.id}`}),(0,b.jsx)("span",{className:"font-semibold",children:q.exam.printTitle}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(h.f,{checked:u,onCheckedChange:a=>v(!0===a)}),q.exam.includeAnswers]}),(0,b.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,b.jsxs)(g.f,{variant:"outline",size:"sm",onClick:()=>{var a;if(!w.current)return;let b=function(a,b,c="zh-CN"){return`<!doctype html>
21
+ <html lang="${p(c)}">
22
+ <head>
23
+ <meta charset="utf-8">
24
+ <meta name="viewport" content="width=device-width, initial-scale=1">
25
+ <title>${p(a)}</title>
26
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.19.1/dist/katex.min.css">
27
+ <style>body { margin: 0; background: #fff; }${o}</style>
28
+ </head>
29
+ <body>
30
+ ${b}
31
+ </body>
32
+ </html>
33
+ `}(s.title,w.current.outerHTML,"en"===r?"en":"zh-CN"),c=URL.createObjectURL(new Blob([b],{type:"text/html;charset=utf-8"})),d=document.createElement("a");d.href=c,a=s.title,d.download=`${a.replace(/[\\/:*?"<>|\s]+/g,"_").slice(0,80)||"exam"}.html`,d.click(),URL.revokeObjectURL(c)},children:[(0,b.jsx)(e.f,{className:"mr-2 h-4 w-4"}),q.exam.downloadHtml]}),(0,b.jsxs)(g.f,{size:"sm",onClick:()=>window.print(),children:[(0,b.jsx)(f.f,{className:"mr-2 h-4 w-4"}),q.exam.printNow]})]}),x.length<s.questions.length&&(0,b.jsx)("p",{className:"w-full text-xs text-muted-foreground",children:q.exam.notReadyHint})]})}),(0,b.jsxs)("div",{ref:w,className:"exam-sheet",children:[(0,b.jsx)("h1",{children:s.title}),(0,b.jsxs)("div",{className:"exam-meta",children:[(0,b.jsxs)("span",{children:[q.exam.nameLine,":________"]}),(0,b.jsxs)("span",{children:[q.exam.dateLine,":________"]}),(0,b.jsxs)("span",{children:[q.exam.scoreLine,":________"]})]}),x.map((a,c)=>(0,b.jsxs)("section",{className:"exam-question",children:[(0,b.jsxs)("div",{className:"exam-question-head",children:[(0,b.jsxs)("span",{children:[c+1,"."]}),(0,b.jsxs)("span",{className:"exam-source",children:[q.exam.sourceLabel,": ",a.sourceShortId]})]}),(0,b.jsx)(j.f,{content:a.questionText}),(0,b.jsx)(k.f,{svg:a.figureSvg}),(0,b.jsx)("div",{className:"exam-answer-space"})]},a.id)),u&&(0,b.jsxs)("section",{className:"exam-answer-key",children:[(0,b.jsx)("h2",{children:q.exam.answerKey}),x.map((a,c)=>(0,b.jsxs)("div",{className:"exam-question",children:[(0,b.jsxs)("div",{className:"exam-question-head",children:[(0,b.jsxs)("span",{children:[c+1,"."]}),(0,b.jsxs)("span",{className:"exam-source",children:[q.exam.sourceLabel,": ",a.sourceShortId]})]}),a.answerText&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("span",{className:"exam-label",children:[q.exam.answerLabel,":"]}),(0,b.jsx)(j.f,{content:a.answerText})]}),a.analysis&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("span",{className:"exam-label",children:[q.exam.analysisLabel,":"]}),(0,b.jsx)(j.f,{content:a.analysis})]})]},a.id))]})]})]})}],667441)}];
34
+
35
+ //# sourceMappingURL=src_app_exams_%5Bid%5D_print_page_tsx_1i-xvhk8ul1l1._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[790861,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),e=a.i(529759),f=a.i(986705),g=a.i(104720),h=a.i(915618),i=a.i(699570),j=a.i(591119),k=a.i(579834),l=a.i(251538),m=a.i(506376),n=a.i(50944),o=a.i(596221),p=a.i(367295),p=p,q=a.i(315055),r=a.i(866718),s=a.i(870430),t=a.i(699814),u=a.i(550194),v=a.i(291938);let w=["unmastered","mastered","all"],x=["least_practiced","random"],y=["easy","medium","hard","harder"];function z(){let{t:a,language:d}=(0,u.b)(),e=(0,n.useRouter)(),[f,g]=(0,c.useState)([]),[h,k]=(0,c.useState)([]),[l,m]=(0,c.useState)([]),[z,A]=(0,c.useState)("unmastered"),[B,C]=(0,c.useState)("least_practiced"),[D,E]=(0,c.useState)(10),[F,G]=(0,c.useState)("medium"),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(!1),[L,M]=(0,c.useState)(null);(0,c.useEffect)(()=>{v.f.get("/api/notebooks").then(a=>{g(a),1===a.length&&k([a[0].id])}).catch(()=>g([]))},[]);let N=async b=>{if(b.preventDefault(),0===h.length)return void M(a.exam.noNotebook);K(!0),M(null);try{let a=await v.f.post("/api/exams",{subjectIds:h,tagNames:l,scope:z,pickRule:B,count:D,difficulty:F,title:H.trim()||void 0,language:d});e.push(`/exams/${a.id}`)}catch(b){M("NO_SOURCE_ITEMS"===b?.data?.message?a.exam.noSource:a.common.messages?.saveFailed||"Failed"),K(!1)}},O=a.practice.difficulty;return(0,b.jsxs)(j.N,{children:[(0,b.jsx)(j.Y,{children:(0,b.jsx)(j.v,{className:"text-lg",children:a.exam.createTitle})}),(0,b.jsx)(j.O,{children:(0,b.jsxs)("form",{onSubmit:N,className:"space-y-5",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)(s.f,{children:a.exam.notebooks}),f.length>1&&(0,b.jsx)("button",{type:"button",className:"text-xs text-primary hover:underline",onClick:()=>k(h.length===f.length?[]:f.map(a=>a.id)),children:a.exam.selectAll})]}),(0,b.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2",children:f.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2 rounded-md border p-2 text-sm cursor-pointer hover:bg-muted/50",children:[(0,b.jsx)(q.f,{checked:h.includes(a.id),onCheckedChange:()=>{var b;return b=a.id,void k(a=>a.includes(b)?a.filter(a=>a!==b):[...a,b])}}),(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:a._count?.errorItems??""})]},a.id))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.f,{children:a.exam.tags}),(0,b.jsx)(t.f,{value:l,onChange:m,placeholder:a.exam.tagsPlaceholder})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.f,{children:a.exam.scope}),(0,b.jsx)("div",{className:"grid grid-cols-3 gap-1 rounded-md bg-muted p-1",children:w.map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>A(c),className:`rounded px-2 py-1.5 text-sm transition-colors ${z===c?"bg-background shadow-sm font-medium":"text-muted-foreground"}`,children:a.exam.scopes[c]},c))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.f,{htmlFor:"exam-count",children:a.exam.count}),(0,b.jsx)(r.f,{id:"exam-count",type:"number",min:1,max:50,value:D,onChange:a=>E(Math.min(50,Math.max(1,parseInt(a.target.value,10)||1)))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.f,{htmlFor:"exam-difficulty",children:a.exam.difficulty}),(0,b.jsx)("select",{id:"exam-difficulty",value:F,onChange:a=>G(a.target.value),className:"h-9 w-full rounded-md border bg-background px-3 text-sm",children:y.map(a=>(0,b.jsx)("option",{value:a,children:O[a]},a))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.f,{children:a.exam.pickRule}),(0,b.jsx)("div",{className:"grid grid-cols-2 gap-1 rounded-md bg-muted p-1 sm:max-w-sm",children:x.map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>C(c),className:`rounded px-2 py-1.5 text-sm transition-colors ${B===c?"bg-background shadow-sm font-medium":"text-muted-foreground"}`,children:a.exam.pickRules[c]},c))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.exam.pickRuleHints[B]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(s.f,{htmlFor:"exam-title",children:a.exam.titleLabel}),(0,b.jsx)(r.f,{id:"exam-title",value:H,maxLength:100,onChange:a=>I(a.target.value)})]}),L&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:L}),(0,b.jsxs)(i.f,{type:"submit",disabled:J,className:"w-full sm:w-auto",children:[J?(0,b.jsx)(o.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(p.f,{className:"mr-2 h-4 w-4"}),J?a.exam.creating:a.exam.generate]})]})})]})}var A=a.i(726319),B=a.i(557999);a.s(["default",0,function(){let{timeZone:a}=(0,e.M)(),{t:n}=(0,u.b)();(0,B.f)(n.exam.title);let[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1);(0,c.useEffect)(()=>{v.f.get("/api/exams").then(a=>{p(a),0===a.length&&r(!0)}).catch(()=>p([]))},[]);let s=n.practice.difficulty;return(0,b.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(l.f,{title:n.exam.title,description:n.exam.subtitle,actions:!q&&(0,b.jsxs)(i.f,{onClick:()=>r(!0),"aria-label":n.exam.create,children:[(0,b.jsx)(h.f,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:n.exam.create})]})}),q&&(0,b.jsx)(z,{}),(0,b.jsxs)("section",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold",children:n.exam.list}),null===o?(0,b.jsx)(m.f,{}):0===o.length?(0,b.jsx)(k.f,{icon:g.f,title:n.exam.empty,className:"py-10"}):(0,b.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:o.map(c=>(0,b.jsx)(d.default,{href:`/exams/${c.id}`,children:(0,b.jsx)(j.N,{className:"h-full rounded-2xl transition-all hover:-translate-y-0.5 hover:border-primary/40 hover:shadow-md",children:(0,b.jsxs)(j.O,{className:"space-y-2 pt-4",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(g.f,{className:"h-4 w-4 shrink-0 text-primary"}),c.title]}),(0,b.jsx)(A.f,{status:c.status})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:(0,f.r)(c.createdAt,"yyyy-MM-dd HH:mm",a)}),(0,b.jsx)("span",{children:n.exam.questionCount.replace("{count}",String(c.questionCount))}),(0,b.jsx)("span",{children:n.exam.scopes[c.scope]}),(0,b.jsx)("span",{children:s[c.difficulty]||c.difficulty}),(0,b.jsx)("span",{children:c.recordedCount>0?n.exam.recorded:n.exam.notRecorded})]})]})})},c.id))})]})]})})}],790861)}];
2
+
3
+ //# sourceMappingURL=src_app_exams_page_tsx_17_d4_gy2i1ds._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[793482,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(875003),e=a.i(50944),f=a.i(699570),g=a.i(866718),h=a.i(591119),i=a.i(238246),j=a.i(293530),k=a.i(550194),l=a.i(557999);a.s(["default",0,function(){let a=(0,e.useRouter)(),{t:m}=(0,k.b)();(0,l.f)(m.pageTitle.login);let[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),v=async b=>{b.preventDefault(),u(!0),s("");try{let b=await (0,d.signIn)("credentials",{redirect:!1,email:n,password:p});b?.error?s(m.auth?.login?.failed||"Login failed"):(a.push("/"),a.refresh())}catch{s(m.auth?.login?.error||"An error occurred")}finally{u(!1)}};return(0,b.jsx)(j.f,{children:(0,b.jsxs)(h.N,{className:"w-full rounded-2xl border-0 shadow-xl shadow-indigo-500/5 ring-1 ring-border",children:[(0,b.jsx)(h.Y,{children:(0,b.jsx)(h.v,{className:"text-2xl text-center",children:m.auth?.login?.title||"Login"})}),(0,b.jsx)(h.O,{children:(0,b.jsxs)("form",{onSubmit:v,className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"email",className:"text-sm font-medium",children:m.auth?.email||"Email"}),(0,b.jsx)(g.f,{id:"email",name:"email",type:"email",value:n,onChange:a=>o(a.target.value),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"password",className:"text-sm font-medium",children:m.auth?.password||"Password"}),(0,b.jsx)(g.f,{id:"password",name:"password",type:"password",value:p,onChange:a=>q(a.target.value),required:!0})]}),r&&(0,b.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-center text-sm text-destructive",children:r}),(0,b.jsx)(f.f,{type:"submit",size:"lg",className:"w-full",disabled:t,children:t?m.auth?.login?.loggingIn||"Logging in...":m.auth?.login?.action||"Login"}),(0,b.jsxs)("div",{className:"text-center text-sm text-muted-foreground",children:[m.auth?.login?.noAccount||"Don't have an account? ",(0,b.jsx)(i.default,{href:"/register",className:"text-primary hover:underline",children:m.auth?.login?.registerNow||"Register now"})]})]})})]})})}])}];
2
+
3
+ //# sourceMappingURL=src_app_login_page_tsx_0yrgg2z_juzv9._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[754449,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(713513),f=a.i(808406),g=a.i(469808),h=a.i(78287),i=a.i(797521),j=a.i(84535),k=a.i(825320),l=a.i(344774),m=a.i(251538),n=a.i(748106),o=a.i(487410),p=a.i(550194),q=a.i(291938),r=a.i(630534),s=a.i(557999),t=a.i(701111);a.s(["default",0,function(){let a=(0,d.useParams)(),u=(0,d.useRouter)(),v=a.id,{t:w}=(0,p.b)(),[x,y]=(0,c.useState)(null);(0,s.f)(w.notebooks.title,x?.name,w.pageTitle.addError);let[z,A]=(0,c.useState)("image"),B=(0,t.f)({logPrefix:"[AddErrorItem]",analyzeSubjectId:v,importSubjectId:v,textNotebook:{id:v,name:x?.name||""},fixedSubjectId:v});return((0,c.useEffect)(()=>{q.f.get(`/api/notebooks/${v}`).then(a=>y(a)).catch(a=>{r.f.error("[AddErrorItem]","Failed to fetch notebook",{error:a}),u.push("/notebooks")})},[v,u]),x)?(0,b.jsxs)("main",{className:"min-h-screen",children:[(0,b.jsx)(n.f,{status:B.analysisStep}),(0,b.jsxs)("div",{className:`mx-auto space-y-6 px-4 py-6 md:px-8 md:py-8 ${"review"===B.step?"max-w-6xl":"max-w-4xl"}`,children:[(0,b.jsx)(m.f,{backHref:`/notebooks/${v}`,title:w.app.addError,description:x.name}),"upload"===B.step&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(o.f,{options:[{value:"image",icon:e.f,label:w.app?.uploadImage||"Take Photo"},{value:"text",icon:f.f,label:w.app?.manualInput||"Manual Input"}],value:z,onChange:A}),B.lastImported&&(0,b.jsx)(j.f,{imported:B.lastImported,onDismiss:B.dismissImported}),B.batchBlobs?(0,b.jsx)(g.f,{blobs:B.batchBlobs,subjectId:v,timeout:B.aiTimeout,onClose:B.closeBatch}):"image"===z?(0,b.jsx)(l.f,{onImageSelect:B.selectImage,isAnalyzing:B.isBusy}):(0,b.jsx)(k.f,{onSubmit:B.submitText,isAnalyzing:B.isBusy,defaultNotebookName:x.name})]}),"review"===B.step&&B.parsedData&&(0,b.jsx)(h.f,{initialData:B.parsedData,imagePreview:B.currentImage,onSave:B.saveReviewed,onCancel:B.cancelReview,initialSubjectId:v,aiTimeout:B.aiTimeout})]}),(0,b.jsx)(i.f,{imageSrc:B.croppingImage||"",open:B.isCropperOpen,onClose:B.closeCropper,onCropComplete:B.cropComplete,onMultiCropComplete:B.startBatch})]}):(0,b.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,b.jsx)("p",{className:"text-muted-foreground",children:w.common.loading})})}])}];
2
+
3
+ //# sourceMappingURL=src_app_notebooks_%5Bid%5D_add_page_tsx_179tow1ql6vc_._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[701453,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(699570),f=a.i(251538),g=a.i(506376),h=a.i(915618),i=a.i(699464),j=a.i(238246),k=a.i(170106);let l=(0,k.f)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),m=(0,k.f)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var n=a.i(755023),o=a.i(771931);let p=(0,k.f)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var q=a.i(263323),r=a.i(405784);let s=(0,k.f)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var t=a.i(507554),u=a.i(470121),v=a.i(750104),w=a.i(225152),x=a.i(30553),y=a.i(37738),z=a.i(507827),A=a.i(596743),B=a.i(486228),C=a.i(422297),D=a.i(392843),E=a.i(704691),F=a.i(692616),G=a.i(777192),H=a.i(224050),I=a.i(811011),J=a.i(746872),K=a.i(241852),L=a.i(152081),M=Object.defineProperty,N=(a,b)=>M(a,"name",{value:b,configurable:!0}),O=["Enter"," "],P=["ArrowUp","PageDown","End"],Q=["ArrowDown","PageUp","Home",...P],R={ltr:[...O,"ArrowRight"],rtl:[...O,"ArrowLeft"]},S={ltr:["ArrowLeft"],rtl:["ArrowRight"]},T="Menu",[U,V,W]=(0,y.f)(T),[X,Y]=(0,v.f)(T,[W,E.y,H.B]),Z=(0,E.y)(),$=(0,H.B)(),[_,aa]=X(T),[ab,ac]=X(T),ad=N(a=>{let{__scopeMenu:d,open:e=!1,children:f,dir:g,onOpenChange:h,modal:i=!0}=a,j=Z(d),[k,l]=c.useState(null),m=c.useRef(!1),n=(0,J.f)(h),o=(0,z.f)(g);return c.useEffect(()=>{let a=N(()=>{m.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},"handleKeyDown"),b=N(()=>m.current=!1,"handlePointer");return document.addEventListener("keydown",a,{capture:!0}),()=>{document.removeEventListener("keydown",a,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),c.useEffect(()=>{if(!e)return;let a=N(()=>n(!1),"handleBlur");return window.addEventListener("blur",a),()=>window.removeEventListener("blur",a)},[e,n]),(0,b.jsx)(E.F,{...j,children:(0,b.jsx)(_,{scope:d,open:e,onOpenChange:n,content:k,onContentChange:l,children:(0,b.jsx)(ab,{scope:d,onClose:c.useCallback(()=>n(!1),[n]),isUsingKeyboardRef:m,dir:o,modal:i,children:f})})})},"Menu"),ae=c.forwardRef(N(function(a,c){let{__scopeMenu:d,...e}=a,f=Z(d);return(0,b.jsx)(E.g,{...f,...e,ref:c})},"MenuAnchor")),af="MenuPortal",[ag,ah]=X(af,{forceMount:void 0}),ai=N(a=>{let{__scopeMenu:c,forceMount:d,children:e,container:f}=a,g=aa(af,c);return(0,b.jsx)(ag,{scope:c,forceMount:d,children:(0,b.jsx)(G.f,{present:d||g.open,children:(0,b.jsx)(F.f,{asChild:!0,container:f,children:e})})})},"MenuPortal"),aj="MenuContent",[ak,al]=X(aj),am=c.forwardRef(N(function(a,c){let d=ah(aj,a.__scopeMenu),{forceMount:e=d.forceMount,...f}=a,g=aa(aj,a.__scopeMenu),h=ac(aj,a.__scopeMenu);return(0,b.jsx)(U.Provider,{scope:a.__scopeMenu,children:(0,b.jsx)(G.f,{present:e||g.open,children:(0,b.jsx)(U.Slot,{scope:a.__scopeMenu,children:h.modal?(0,b.jsx)(an,{...f,ref:c}):(0,b.jsx)(ao,{...f,ref:c})})})})},"MenuContent")),an=c.forwardRef(N(function(a,d){let e=aa(aj,a.__scopeMenu),f=c.useRef(null),g=(0,u.f)(d,f);return c.useEffect(()=>{let a=f.current;if(a)return(0,K.f)(a)},[]),(0,b.jsx)(aq,{...a,ref:g,trapFocus:e.open,disableOutsidePointerEvents:e.open,disableOutsideScroll:!0,onFocusOutside:(0,t.f)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>e.onOpenChange(!1)})},"MenuRootContentModal")),ao=c.forwardRef(N(function(a,c){let d=aa(aj,a.__scopeMenu);return(0,b.jsx)(aq,{...a,ref:c,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>d.onOpenChange(!1)})},"MenuRootContentNonModal")),ap=(0,I.B)("MenuContent.ScrollLock"),aq=c.forwardRef(N(function(a,d){let{__scopeMenu:e,loop:f=!1,trapFocus:g,onOpenAutoFocus:h,onCloseAutoFocus:i,disableOutsidePointerEvents:j,onEntryFocus:k,onEscapeKeyDown:l,onPointerDownOutside:m,onFocusOutside:n,onInteractOutside:o,onDismiss:p,disableOutsideScroll:q,...r}=a,s=aa(aj,e),v=ac(aj,e),w=Z(e),x=$(e),y=V(e),[z,D]=c.useState(null),F=c.useRef(null),[G,I]=c.useState(null);(0,C.i)(G);let{nodes:J,registry:K}=(0,C.D)(),M=!!(g||q),O=(0,u.f)(d,F,s.onContentChange,I),R=c.useRef(0),S=c.useRef(""),T=c.useRef(0),U=c.useRef(null),W=c.useRef("right"),X=c.useRef(0),Y=c.useMemo(()=>q?[F,...J.map(a=>({current:a}))]:[],[F,J,q]),_=q?L.f:c.Fragment,ab=N(a=>{let b=S.current+a,c=y().filter(a=>!a.disabled),d=document.activeElement,e=c.find(a=>a.ref.current===d)?.textValue,f=aQ(c.map(a=>a.textValue),b,e),g=c.find(a=>a.textValue===f)?.ref.current;function h(a){S.current=a,window.clearTimeout(R.current),""!==a&&(R.current=window.setTimeout(()=>h(""),1e3))}N(h,"updateSearch"),h(b),g&&setTimeout(()=>g.focus())},"handleTypeaheadSearch");c.useEffect(()=>()=>window.clearTimeout(R.current),[]),(0,B.f)();let ad=c.useCallback(a=>W.current===U.current?.side&&aS(a,U.current?.area),[]);return(0,b.jsx)(ak,{scope:e,searchRef:S,onItemEnter:c.useCallback(a=>{ad(a)&&a.preventDefault()},[ad]),onItemLeave:c.useCallback(a=>{ad(a)||(F.current?.focus(),D(null))},[ad]),onTriggerLeave:c.useCallback(a=>{ad(a)&&a.preventDefault()},[ad]),pointerGraceTimerRef:T,onPointerGraceIntentChange:c.useCallback(a=>{U.current=a},[]),children:(0,b.jsx)(C.l,{registry:M?K:null,children:(0,b.jsx)(_,{...q?{as:ap,allowPinchZoom:!0,shards:Y}:void 0,children:(0,b.jsx)(C.v,{asChild:!0,trapped:g,branches:J,onMountAutoFocus:(0,t.f)(h,a=>{a.preventDefault(),F.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:(0,b.jsx)(A.V,{asChild:!0,disableOutsidePointerEvents:j,onEscapeKeyDown:l,onPointerDownOutside:m,onFocusOutside:n,onInteractOutside:o,onDismiss:p,children:(0,b.jsx)(H.F,{asChild:!0,...x,dir:v.dir,orientation:"vertical",loop:f,currentTabStopId:z,onCurrentTabStopIdChange:D,onEntryFocus:(0,t.f)(k,a=>{v.isUsingKeyboardRef.current||a.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,b.jsx)(E.c,{role:"menu","aria-orientation":"vertical","data-state":aL(s.open),"data-radix-menu-content":"",dir:v.dir,...w,...r,ref:O,style:{outline:"none",...r.style},onKeyDown:(0,t.f)(r.onKeyDown,a=>{let b=a.target.closest("[data-radix-menu-content]")===a.currentTarget,c=a.ctrlKey||a.altKey||a.metaKey,d=1===a.key.length;b&&("Tab"===a.key&&a.preventDefault(),!c&&d&&ab(a.key));let e=F.current;if(a.target!==e||!Q.includes(a.key))return;a.preventDefault();let f=y().filter(a=>!a.disabled).map(a=>a.ref.current);P.includes(a.key)&&f.reverse(),aO(f)}),onBlur:(0,t.f)(a.onBlur,a=>{a.currentTarget.contains(a.target)||(window.clearTimeout(R.current),S.current="")}),onPointerMove:(0,t.f)(a.onPointerMove,aT(a=>{let b=a.target,c=X.current!==a.clientX;a.currentTarget.contains(b)&&c&&(W.current=a.clientX>X.current?"right":"left",X.current=a.clientX)}))})})})})})})})},"MenuContentImpl")),ar=c.forwardRef(N(function(a,c){let{__scopeMenu:d,...e}=a;return(0,b.jsx)(x.V.div,{...e,ref:c})},"MenuLabel")),as="MenuItem",at="menu.itemSelect",au=c.forwardRef(N(function(a,d){let{disabled:e=!1,onSelect:f,...g}=a,h=c.useRef(null),i=ac(as,a.__scopeMenu),j=al(as,a.__scopeMenu),k=(0,u.f)(d,h),l=c.useRef(!1),m=N(()=>{let a=h.current;if(!e&&a){let b=new CustomEvent(at,{bubbles:!0,cancelable:!0});a.addEventListener(at,a=>f?.(a),{once:!0}),(0,x.u)(a,b),b.defaultPrevented?l.current=!1:i.onClose()}},"handleSelect");return(0,b.jsx)(av,{...g,ref:k,disabled:e,onClick:(0,t.f)(a.onClick,m),onPointerDown:b=>{a.onPointerDown?.(b),l.current=!0},onPointerUp:(0,t.f)(a.onPointerUp,a=>{l.current||a.currentTarget?.click()}),onKeyDown:(0,t.f)(a.onKeyDown,a=>{e||a.target!==a.currentTarget||(""===j.searchRef.current||" "!==a.key)&&O.includes(a.key)&&(a.currentTarget.click(),a.preventDefault())})})},"MenuItem")),av=c.forwardRef(N(function(a,d){let{__scopeMenu:e,disabled:f=!1,textValue:g,...h}=a,i=al(as,e),j=$(e),k=c.useRef(null),l=(0,u.f)(d,k),[m,n]=c.useState(!1),[o,p]=c.useState("");return c.useEffect(()=>{let a=k.current;a&&p((a.textContent??"").trim())},[h.children]),(0,b.jsx)(U.ItemSlot,{scope:e,disabled:f,textValue:g??o,children:(0,b.jsx)(H.M,{asChild:!0,...j,focusable:!f,children:(0,b.jsx)(x.V.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":f||void 0,"data-disabled":f?"":void 0,...h,ref:l,onPointerMove:(0,t.f)(a.onPointerMove,aT(a=>{f?i.onItemLeave(a):(i.onItemEnter(a),a.defaultPrevented||a.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,t.f)(a.onPointerLeave,aT(a=>i.onItemLeave(a))),onFocus:(0,t.f)(a.onFocus,()=>n(!0)),onBlur:(0,t.f)(a.onBlur,()=>n(!1))})})})},"MenuItemImpl")),aw=c.forwardRef(N(function(a,c){let{checked:d=!1,onCheckedChange:e,...f}=a;return(0,b.jsx)(aB,{scope:a.__scopeMenu,checked:d,children:(0,b.jsx)(au,{role:"menuitemcheckbox","aria-checked":aM(d)?"mixed":d,...f,ref:c,"data-state":aN(d),onSelect:(0,t.f)(f.onSelect,()=>e?.(!!aM(d)||!d),{checkForDefaultPrevented:!1})})})},"MenuCheckboxItem")),[ax,ay]=X("MenuRadioGroup",{value:void 0,onValueChange:N(()=>{},"onValueChange")}),az=c.forwardRef(N(function(a,c){let{value:d,...e}=a,f=ay("MenuRadioItem",a.__scopeMenu),g=d===f.value;return(0,b.jsx)(aB,{scope:a.__scopeMenu,checked:g,children:(0,b.jsx)(au,{role:"menuitemradio","aria-checked":g,...e,ref:c,"data-state":aN(g),onSelect:(0,t.f)(e.onSelect,()=>f.onValueChange?.(d),{checkForDefaultPrevented:!1})})})},"MenuRadioItem")),aA="MenuItemIndicator",[aB,aC]=X(aA,{checked:!1}),aD=c.forwardRef(N(function(a,c){let{__scopeMenu:d,forceMount:e,...f}=a,g=aC(aA,d);return(0,b.jsx)(G.f,{present:e||aM(g.checked)||!0===g.checked,children:(0,b.jsx)(x.V.span,{...f,ref:c,"data-state":aN(g.checked)})})},"MenuItemIndicator")),aE=c.forwardRef(N(function(a,c){let{__scopeMenu:d,...e}=a;return(0,b.jsx)(x.V.div,{role:"separator","aria-orientation":"horizontal",...e,ref:c})},"MenuSeparator")),aF="MenuSub",[aG,aH]=X(aF),aI=(a=>{let{__scopeMenu:d,children:e,open:f=!1,onOpenChange:g}=a,h=aa(aF,d),i=Z(d),[j,k]=c.useState(null),[l,m]=c.useState(null),n=(0,J.f)(g);return c.useEffect(()=>(!1===h.open&&n(!1),()=>n(!1)),[h.open,n]),(0,b.jsx)(E.F,{...i,children:(0,b.jsx)(_,{scope:d,open:f,onOpenChange:n,content:l,onContentChange:m,children:(0,b.jsx)(aG,{scope:d,contentId:(0,D.f)(),triggerId:(0,D.f)(),trigger:j,onTriggerChange:k,children:e})})})},"MenuSubTrigger"),aJ=c.forwardRef(N(function(a,d){let e=aa(aI,a.__scopeMenu),f=ac(aI,a.__scopeMenu),g=aH(aI,a.__scopeMenu),h=al(aI,a.__scopeMenu),i=c.useRef(null),{pointerGraceTimerRef:j,onPointerGraceIntentChange:k}=h,l={__scopeMenu:a.__scopeMenu},m=c.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);c.useEffect(()=>m,[m]),c.useEffect(()=>{let a=j.current;return()=>{window.clearTimeout(a),k(null)}},[j,k]);let n=(0,u.f)(d,g.onTriggerChange);return(0,b.jsx)(ae,{asChild:!0,...l,children:(0,b.jsx)(av,{id:g.triggerId,"aria-haspopup":"menu","aria-expanded":e.open,"aria-controls":e.open?g.contentId:void 0,"data-state":aL(e.open),...a,ref:n,onClick:b=>{a.onClick?.(b),a.disabled||b.defaultPrevented||(b.currentTarget.focus(),e.open||e.onOpenChange(!0))},onPointerMove:(0,t.f)(a.onPointerMove,aT(b=>{h.onItemEnter(b),!b.defaultPrevented&&(a.disabled||e.open||i.current||(h.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{e.onOpenChange(!0),m()},100)))})),onPointerLeave:(0,t.f)(a.onPointerLeave,aT(a=>{m();let b=e.content?.getBoundingClientRect();if(b){let c=e.content?.dataset.side,d="right"===c,f=b[d?"left":"right"],g=b[d?"right":"left"];h.onPointerGraceIntentChange({area:[{x:a.clientX+(d?-5:5),y:a.clientY},{x:f,y:b.top},{x:g,y:b.top},{x:g,y:b.bottom},{x:f,y:b.bottom}],side:c}),window.clearTimeout(j.current),j.current=window.setTimeout(()=>h.onPointerGraceIntentChange(null),300)}else{if(h.onTriggerLeave(a),a.defaultPrevented)return;h.onPointerGraceIntentChange(null)}})),onKeyDown:(0,t.f)(a.onKeyDown,b=>{a.disabled||b.target!==b.currentTarget||(""===h.searchRef.current||" "!==b.key)&&R[f.dir].includes(b.key)&&(e.onOpenChange(!0),e.content?.focus(),b.preventDefault())})})})},"MenuSubTrigger")),aK=c.forwardRef(N(function(a,d){let e=ah(aj,a.__scopeMenu),{forceMount:f=e.forceMount,align:g="start",...h}=a,i=aa(aj,a.__scopeMenu),j=ac(aj,a.__scopeMenu),k=aH("MenuSubContent",a.__scopeMenu),l=c.useRef(null),m=(0,u.f)(d,l);return(0,b.jsx)(U.Provider,{scope:a.__scopeMenu,children:(0,b.jsx)(G.f,{present:f||i.open,children:(0,b.jsx)(U.Slot,{scope:a.__scopeMenu,children:(0,b.jsx)(aq,{id:k.contentId,"aria-labelledby":k.triggerId,...h,ref:m,align:g,side:"rtl"===j.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:a=>{j.isUsingKeyboardRef.current&&l.current?.focus(),a.preventDefault()},onCloseAutoFocus:a=>a.preventDefault(),onFocusOutside:(0,t.f)(a.onFocusOutside,a=>{a.target!==k.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:(0,t.f)(a.onEscapeKeyDown,a=>{j.onClose(),a.preventDefault()}),onKeyDown:(0,t.f)(a.onKeyDown,a=>{let b=a.currentTarget.contains(a.target),c=S[j.dir].includes(a.key);b&&c&&(i.onOpenChange(!1),k.trigger?.focus(),a.preventDefault())})})})})})},"MenuSubContent"));function aL(a){return a?"open":"closed"}function aM(a){return"indeterminate"===a}function aN(a){return aM(a)?"indeterminate":a?"checked":"unchecked"}function aO(a){let b=document.activeElement;for(let c of a)if(c===b||(c.focus(),document.activeElement!==b))return}function aP(a,b){return a.map((c,d)=>a[(b+d)%a.length])}function aQ(a,b,c){let d=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,e=c?a.indexOf(c):-1,f=aP(a,Math.max(e,0));1===d.length&&(f=f.filter(a=>a!==c));let g=f.find(a=>a.toLowerCase().startsWith(d.toLowerCase()));return g!==c?g:void 0}function aR(a,b){let{x:c,y:d}=a,e=!1;for(let a=0,f=b.length-1;a<b.length;f=a++){let g=b[a],h=b[f],i=g.x,j=g.y,k=h.x,l=h.y;j>d!=l>d&&c<(k-i)*(d-j)/(l-j)+i&&(e=!e)}return e}function aS(a,b){return!!b&&aR({x:a.clientX,y:a.clientY},b)}function aT(a){return b=>"mouse"===b.pointerType?a(b):void 0}N(aL,"getOpenState"),N(aM,"isIndeterminate"),N(aN,"getCheckedState"),N(aO,"focusFirst"),N(aP,"wrapArray"),N(aQ,"getNextMatch"),N(aR,"isPointInPolygon"),N(aS,"isPointerInGraceArea"),N(aT,"whenMouse");var aU=Object.defineProperty,aV=(a,b)=>aU(a,"name",{value:b,configurable:!0}),aW="DropdownMenu",[aX,aY]=(0,v.f)(aW,[Y]),aZ=Y(),[a$,a_]=aX(aW),a0=aV(a=>{let{__scopeDropdownMenu:d,children:e,dir:f,open:g,defaultOpen:h,onOpenChange:i,modal:j=!0}=a,k=aZ(d),l=c.useRef(null),[m,n]=(0,w.f)({prop:g,defaultProp:h??!1,onChange:i,caller:aW});return(0,b.jsx)(a$,{scope:d,triggerId:(0,D.f)(),triggerRef:l,contentId:(0,D.f)(),open:m,onOpenChange:n,onOpenToggle:c.useCallback(()=>n(a=>!a),[n]),modal:j,children:(0,b.jsx)(ad,{...k,open:m,onOpenChange:n,dir:f,modal:j,children:e})})},"DropdownMenu"),a1=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,disabled:e=!1,...f}=a,g=a_("DropdownMenuTrigger",d),h=aZ(d),i=(0,u.f)(c,g.triggerRef);return(0,b.jsx)(ae,{asChild:!0,...h,children:(0,b.jsx)(x.V.button,{type:"button",id:g.triggerId,"aria-haspopup":"menu","aria-expanded":g.open,"aria-controls":g.open?g.contentId:void 0,"data-state":g.open?"open":"closed","data-disabled":e?"":void 0,disabled:e,...f,ref:i,onPointerDown:(0,t.f)(a.onPointerDown,a=>{!e&&0===a.button&&!1===a.ctrlKey&&(g.onOpenToggle(),g.open||a.preventDefault())}),onKeyDown:(0,t.f)(a.onKeyDown,a=>{!e&&(["Enter"," "].includes(a.key)&&g.onOpenToggle(),"ArrowDown"===a.key&&g.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(a.key)&&a.preventDefault())})})})},"DropdownMenuTrigger")),a2=aV(a=>{let{__scopeDropdownMenu:c,...d}=a,e=aZ(c);return(0,b.jsx)(ai,{...e,...d})},"DropdownMenuPortal"),a3=c.forwardRef(aV(function(a,d){let{__scopeDropdownMenu:e,...f}=a,g=a_("DropdownMenuContent",e),h=aZ(e),i=c.useRef(!1);return(0,b.jsx)(am,{id:g.contentId,"aria-labelledby":g.triggerId,...h,...f,ref:d,onCloseAutoFocus:(0,t.f)(a.onCloseAutoFocus,a=>{i.current||g.triggerRef.current?.focus(),i.current=!1,a.preventDefault()}),onInteractOutside:(0,t.f)(a.onInteractOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey,d=2===b.button||c;(!g.modal||d)&&(i.current=!0)}),style:{...a.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})},"DropdownMenuContent")),a4=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(ar,{...f,...e,ref:c})},"DropdownMenuLabel")),a5=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(au,{...f,...e,ref:c})},"DropdownMenuItem")),a6=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(aw,{...f,...e,ref:c})},"DropdownMenuCheckboxItem")),a7=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(az,{...f,...e,ref:c})},"DropdownMenuRadioItem")),a8=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(aD,{...f,...e,ref:c})},"DropdownMenuItemIndicator")),a9=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(aE,{...f,...e,ref:c})},"DropdownMenuSeparator")),ba=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(aJ,{...f,...e,ref:c})},"DropdownMenuSubTrigger")),bb=c.forwardRef(aV(function(a,c){let{__scopeDropdownMenu:d,...e}=a,f=aZ(d);return(0,b.jsx)(aK,{...f,...e,ref:c,style:{...a.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})},"DropdownMenuSubContent")),bc=a.i(533441),bd=a.i(50522);let be=(0,k.f)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var bf=a.i(368114);(c.forwardRef(({className:a,inset:c,children:d,...e},f)=>(0,b.jsxs)(ba,{ref:f,className:(0,bf.f)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",c&&"pl-8",a),...e,children:[d,(0,b.jsx)(bd.f,{className:"ml-auto h-4 w-4"})]}))).displayName=ba.displayName,(c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(bb,{ref:d,className:(0,bf.f)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c}))).displayName=bb.displayName;let bg=c.forwardRef(({className:a,sideOffset:c=4,...d},e)=>(0,b.jsx)(a2,{children:(0,b.jsx)(a3,{ref:e,sideOffset:c,className:(0,bf.f)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d})}));bg.displayName=a3.displayName;let bh=c.forwardRef(({className:a,inset:c,...d},e)=>(0,b.jsx)(a5,{ref:e,className:(0,bf.f)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",c&&"pl-8",a),...d}));bh.displayName=a5.displayName,(c.forwardRef(({className:a,children:c,checked:d,...e},f)=>(0,b.jsxs)(a6,{ref:f,className:(0,bf.f)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),checked:d,...e,children:[(0,b.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(a8,{children:(0,b.jsx)(bc.f,{className:"h-4 w-4"})})}),c]}))).displayName=a6.displayName,(c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(a7,{ref:e,className:(0,bf.f)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...d,children:[(0,b.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(a8,{children:(0,b.jsx)(be,{className:"h-2 w-2 fill-current"})})}),c]}))).displayName=a7.displayName;let bi=c.forwardRef(({className:a,inset:c,...d},e)=>(0,b.jsx)(a4,{ref:e,className:(0,bf.f)("px-2 py-1.5 text-sm font-semibold",c&&"pl-8",a),...d}));bi.displayName=a4.displayName;let bj=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a9,{ref:d,className:(0,bf.f)("-mx-1 my-1 h-px bg-muted",a),...c}));bj.displayName=a9.displayName;var bk=a.i(550194);function bl({mastery:a,timeRange:c,onMasteryChange:d,onTimeRangeChange:f}){let{t:g}=(0,bk.b)(),h=[{value:"all",label:g.filter.all||"All"},{value:"new",label:g.filter.review||"To Review"},{value:"reviewing",label:g.filter.reviewing||"Reviewing"},{value:"mastered",label:g.filter.mastered||"Mastered"}],i=[{value:"all",label:g.filter.allTime||"All Time"},{value:"week",label:g.filter.lastWeek||"Last Week"},{value:"month",label:g.filter.lastMonth||"Last Month"}];return(0,b.jsxs)(a0,{children:[(0,b.jsx)(a1,{asChild:!0,children:(0,b.jsxs)(e.f,{variant:"outline",size:"sm",className:"h-10",children:[(0,b.jsx)(s,{className:"mr-2 h-4 w-4"}),g.notebook.filter,(0,b.jsx)(r.f,{className:"ml-2 h-4 w-4"})]})}),(0,b.jsxs)(bg,{align:"end",className:"w-48",children:[(0,b.jsx)(bi,{children:g.filter.masteryStatus||"Mastery Status"}),h.map(({value:c,label:e})=>(0,b.jsxs)(bh,{onClick:()=>d(c),children:[a===c&&"✓ ",e]},c)),(0,b.jsx)(bj,{}),(0,b.jsx)(bi,{children:g.filter.timeRange||"Time Range"}),i.map(({value:a,label:d})=>(0,b.jsxs)(bh,{onClick:()=>f(a),children:[c===a&&"✓ ",d]},a))]})]})}function bm({value:a,onChange:c}){let{t:d}=(0,bk.b)(),f=[{value:"all",label:d.filter.all||"All"},{value:"a",label:d.editor.paperLevels?.a||"Paper A"},{value:"b",label:d.editor.paperLevels?.b||"Paper B"},{value:"other",label:d.editor.paperLevels?.other||"Other"}];return(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:f.map(d=>(0,b.jsx)(e.f,{variant:a===d.value?"default":"outline",size:"sm",className:"rounded-full",onClick:()=>c(d.value),children:d.label},d.value))})}var bn=a.i(781560),bo=a.i(633508),bp=a.i(596221),bq=a.i(814574),br=a.i(225949),bs=a.i(93907),bt=a.i(291938),bu=a.i(630534);function bv({ids:a}){let{t:d}=(0,bk.b)(),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[k,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)(0),[r,s]=a,t=()=>{m(!0),i(null),o(null),q(a=>a+1)};return(0,c.useEffect)(()=>{if(!f||!r||!s)return;let a=!0;return bt.f.post("/api/error-items/similarity",{ids:[r,s]}).then(b=>{a&&i(b)}).catch(b=>{a&&(o("Question text is required for similarity comparison"===b?.data?.message?d.questionSimilarity.missingText:d.questionSimilarity.failed),bu.f.error("[Similarity]","相似度比较失败",{error:b instanceof Error?b.message:String(b)}))}).finally(()=>{a&&m(!1)}),()=>{a=!1}},[f,r,s,p,d.questionSimilarity.failed,d.questionSimilarity.missingText]),(0,b.jsxs)(bq.N,{open:f,onOpenChange:a=>{g(a),a&&t()},children:[(0,b.jsx)(bq.a,{asChild:!0,children:(0,b.jsxs)(e.f,{variant:"outline",disabled:2!==a.length,title:d.questionSimilarity.selectTwo,children:[(0,b.jsx)(l,{className:"mr-2 h-4 w-4"}),d.questionSimilarity.title]})}),(0,b.jsxs)(bq.d,{className:"w-[calc(100vw-2rem)] sm:max-w-3xl max-h-[85vh] overflow-y-auto",children:[(0,b.jsxs)(bq.s,{children:[(0,b.jsx)(bq.F,{children:d.questionSimilarity.title}),(0,b.jsx)(bq.C,{children:d.questionSimilarity.description})]}),k&&(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",role:"status",children:[(0,b.jsx)(bp.f,{className:"h-4 w-4 animate-spin"}),d.common.loading]}),n&&(0,b.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:n}),n&&(0,b.jsx)(e.f,{variant:"outline",onClick:t,children:d.questionSimilarity.retry}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2 rounded-lg bg-muted p-4",role:"status",children:[(0,b.jsx)("p",{className:"text-sm",children:d.questionSimilarity.score}),(0,b.jsxs)("p",{className:"text-3xl font-bold tabular-nums",children:[Number((100*h.similarity).toFixed(4)),"%"]}),(0,b.jsx)("p",{className:"text-sm",children:d.questionSimilarity.threshold.replace("{threshold}",String(h.threshold))}),(0,b.jsx)("p",{className:"text-sm font-medium",children:h.duplicate?d.questionSimilarity.duplicate:d.questionSimilarity.different})]}),(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:h.items.map((a,c)=>(0,b.jsxs)("div",{className:"min-w-0 space-y-2 rounded-lg border p-3",children:[(0,b.jsxs)(j.default,{href:`/error-items/${a.id}`,className:"text-sm font-medium text-primary hover:underline",children:[d.questionSimilarity.question.replace("{index}",String(c+1))," · ",a.shortId||"-"]}),a.notebookName&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.notebookName}),(0,b.jsx)("div",{className:"max-h-56 overflow-auto text-sm",children:(0,b.jsx)(bs.f,{content:a.questionText})})]},a.id))})]}),(0,b.jsx)(br.f,{onSaved:t})]})]})}function bw({selectedIds:a,deleting:c,onCancel:d,onDelete:f}){let{t:g}=(0,bk.b)();return(0,b.jsx)("div",{className:"pb-safe fixed bottom-0 left-0 right-0 z-50 border-t bg-card/95 p-4 shadow-lg backdrop-blur",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-6xl flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1 text-sm text-muted-foreground",children:[(0,b.jsx)("p",{children:g.notebook.selectedCount.replace("{count}",String(a.length))}),(0,b.jsx)("p",{className:"text-xs",children:g.questionSimilarity.selectTwo})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(bv,{ids:a}),(0,b.jsxs)(e.f,{variant:"outline",onClick:d,children:[(0,b.jsx)(bo.X,{className:"mr-2 h-4 w-4"}),g.notebook.cancelSelect]}),(0,b.jsxs)(e.f,{variant:"destructive",onClick:f,disabled:0===a.length||c,children:[(0,b.jsx)(bn.f,{className:"mr-2 h-4 w-4"}),g.notebook.deleteSelected]})]})]})})}var bx=a.i(529759),by=a.i(986705),bz=a.i(580701),bA=a.i(957292);let bB={1:["一年级"],2:["二年级"],3:["三年级"],4:["四年级"],5:["五年级"],6:["六年级"],7:["七年级上","七年级下","七年级"],8:["八年级上","八年级下","八年级"],9:["九年级上","九年级下","九年级"],10:["高一上","高一下","高一"],11:["高二上","高二下","高二"],12:["高三上","高三下","高三"]};function bC({gradeSemester:a,tag:d,subjectName:e,onFilterChange:f,className:g}){let{t:h}=(0,bk.b)(),{timeZone:i}=(0,bx.M)(),[j,k]=(0,c.useState)(a||""),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(d||""),[p,q]=(0,c.useState)([]),[r,s]=(0,c.useState)(!0),[t,u]=(0,c.useState)([]),[v,w]=(0,c.useState)(a);a!==v&&(w(a),void 0!==a&&k(a));let[x,y]=(0,c.useState)(d);d!==x&&(y(d),void 0!==d&&o(d||""));let z=(0,c.useCallback)((a,b)=>{let c=(0,by.c)(new Date,i),d=c.getFullYear(),e=(c.getMonth()+1>=9?d:d-1)-b+1;return"primary"===a?e:"junior_high"===a?e+6:"senior_high"===a?e+9:0},[i]),A=(0,c.useCallback)((a,b)=>{let c=[];return a?"primary"===a?c=[1,2,3,4,5,6]:"junior_high"===a?(c=[7,8,9],b&&z(a,b)>=10&&c.push(10,11,12)):c="senior_high"===a?[10,11,12]:[1,2,3,4,5,6,7,8,9,10,11,12]:c=[1,2,3,4,5,6,7,8,9,10,11,12],c.flatMap(a=>bB[a]||[])},[z]);(0,c.useEffect)(()=>{(async()=>{s(!0);try{let a=await bt.f.get("/api/user"),b=A(a.educationStage,a.enrollmentYear);u(b);let c=e?(0,bA.f)(e):"math";try{let a=await bt.f.get(`/api/tags?subject=${c}`);q(a.tags)}catch(a){bu.f.warn("[KnowledgeFilter]","Failed to fetch tags for subject",{subject:c,error:a}),q([])}}catch(a){bu.f.error("[KnowledgeFilter]","Failed to load filter data",{error:a})}finally{s(!1)}})()},[e,A]);let B=p.find(a=>a.name===j),C=B?.children||[],D=C.find(a=>a.name===l),E=a=>0===a.children.length?[a.name]:a.children.flatMap(a=>E(a)),F=D?[...new Set(E(D))]:[],G=t.filter(a=>p.some(b=>b.name===a));return(0,b.jsxs)("div",{className:`flex gap-2 ${g}`,children:[(0,b.jsxs)(bz.d,{value:j,onValueChange:a=>{k(a),m(""),o(""),f({gradeSemester:"all"===a?void 0:a,chapter:void 0,tag:void 0})},disabled:r,children:[(0,b.jsx)(bz.P,{className:"w-[140px]",children:(0,b.jsx)(bz.U,{placeholder:h.filter?.gradeShort||"Grade"})}),(0,b.jsxs)(bz.r,{children:[(0,b.jsx)(bz.T,{value:"all",children:h.filter?.allGrades||"All grades"}),G.map(a=>(0,b.jsx)(bz.T,{value:a,children:a},a))]})]}),(0,b.jsxs)(bz.d,{value:l,onValueChange:a=>{m(a),o(""),f({gradeSemester:"all"===j?void 0:j,chapter:"all"===a?void 0:a,tag:void 0})},disabled:!j||"all"===j,children:[(0,b.jsx)(bz.P,{className:"w-[180px]",children:(0,b.jsx)(bz.U,{placeholder:h.filter?.chapter||"Chapter"})}),(0,b.jsxs)(bz.r,{children:[(0,b.jsx)(bz.T,{value:"all",children:h.filter?.allChapters||"All chapters"}),C.map(a=>(0,b.jsx)(bz.T,{value:a.name,children:a.name.replace(/^第\d+章\s*/,"")},a.id))]})]}),(0,b.jsxs)(bz.d,{value:n,onValueChange:a=>{o(a),f({gradeSemester:"all"===j?void 0:j,chapter:"all"===l?void 0:l,tag:"all"===a?void 0:a})},disabled:!l||"all"===l,children:[(0,b.jsx)(bz.P,{className:"w-[140px]",children:(0,b.jsx)(bz.U,{placeholder:h.filter?.knowledgePoint||"Tag"})}),(0,b.jsxs)(bz.r,{children:[(0,b.jsx)(bz.T,{value:"all",children:h.filter?.allKnowledgePoints||"All tags"}),F.map(a=>(0,b.jsx)(bz.T,{value:a,children:a},a))]})]})]})}var bD=a.i(786304),bE=a.i(579834),bF=a.i(866718),bG=a.i(882524),bH=a.i(697902);function bI(a){let b=new URLSearchParams;return a.subjectId&&b.append("subjectId",a.subjectId),a.search&&b.append("query",a.search),"all"!==a.mastery&&b.append("mastery",a.mastery),"all"!==a.timeRange&&b.append("timeRange",a.timeRange),a.tag&&b.append("tag",a.tag),a.gradeSemester&&b.append("gradeSemester",a.gradeSemester),a.chapter&&b.append("chapter",a.chapter),"all"!==a.paperLevel&&b.append("paperLevel",a.paperLevel),b}var bJ=a.i(710302),bK=a.i(879188),bL=a.i(83715);function bM({subjectId:a,subjectName:f}={}){let{t:g}=(0,bk.b)(),h=(0,d.useRouter)(),[i,j]=(0,c.useState)([]),[k,r]=(0,c.useState)(!0),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)("all"),[w,x]=(0,c.useState)("all"),[y,z]=(0,c.useState)(""),[A,B]=(0,c.useState)(""),[C,D]=(0,c.useState)("all"),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(1),I=bH.$,[J,K]=(0,c.useState)(0),[L,M]=(0,c.useState)(0),[N,O]=(0,c.useState)(!1),[P,Q]=(0,c.useState)(new Set),[R,S]=(0,c.useState)(!1),T=(0,c.useMemo)(()=>({subjectId:a,search:s,mastery:u,timeRange:w,tag:E,gradeSemester:y,chapter:A,paperLevel:C}),[a,s,u,w,E,y,A,C]),U=()=>{O(!N),Q(new Set)},V=(0,c.useCallback)(async()=>{r(!0);try{let a=bI(T);a.append("page",G.toString()),a.append("pageSize",I.toString());let b=await bt.f.get(`/api/error-items/list?${a.toString()}`);j(b.items),K(b.total),M(b.totalPages)}catch(a){bu.f.error("[ErrorList]","Failed to fetch error items",{error:a})}finally{r(!1)}},[T,G,I]),W=async()=>{if(0===P.size)return;let a=(g.notebook?.confirmBatchDelete||"Delete {count} items?").replace("{count}",P.size.toString());if(await (0,bJ.u)(a,{destructive:!0})){S(!0);try{await bt.f.post("/api/error-items/batch-delete",{ids:Array.from(P)}),bJ.c.success(g.notebook?.batchDeleteSuccess||"Deleted successfully"),O(!1),Q(new Set),V()}catch(a){bu.f.error("[ErrorList]","Batch delete failed",{error:a}),bJ.c.error(g.common?.messages?.deleteFailed||"Delete failed")}finally{S(!1)}}},X=(0,c.useRef)(T);return(0,c.useEffect)(()=>{let a=X.current!==T;(X.current=T,a&&1!==G)?H(1):V()},[G,T,V]),(0,b.jsxs)("div",{className:`space-y-6 ${N?"pb-40 sm:pb-24":""}`,children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row",children:[(0,b.jsxs)("div",{className:"relative w-full lg:flex-1",children:[(0,b.jsx)(p,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(bF.f,{placeholder:g.notebook.search,title:g.shortId.searchHint,className:"h-10 rounded-xl bg-card pl-9",value:s,onChange:a=>t(a.target.value),onKeyDown:async a=>{let b=s.trim();if("Enter"!==a.key||!(0,bL.f)(b))return;let c=await (0,bK.f)(b);c&&h.push(`/error-items/${c}`)}})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(bl,{mastery:u,timeRange:w,onMasteryChange:v,onTimeRangeChange:x}),(0,b.jsxs)(e.f,{variant:"outline",size:"sm",className:"h-10",onClick:()=>h.push(`/print-preview?${bI(T).toString()}`),children:[(0,b.jsx)(o.f,{className:"mr-2 h-4 w-4"}),g.notebook?.exportPrint||"Export for Print"]}),!N&&(0,b.jsxs)(e.f,{variant:"outline",size:"sm",className:"h-10",onClick:U,children:[(0,b.jsx)(l,{className:"mr-2 h-4 w-4"}),g.questionSimilarity.title]}),(0,b.jsxs)(e.f,{variant:N?"secondary":"outline",size:"sm",className:"h-10",onClick:U,children:[(0,b.jsx)(n.f,{className:"mr-2 h-4 w-4"}),N?g.notebook?.cancelSelect||"Cancel":g.notebook?.selectMode||"Select"]})]})]}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 items-stretch sm:items-center",children:[(0,b.jsx)("div",{className:"w-full sm:w-auto",children:(0,b.jsx)(bC,{gradeSemester:y,tag:E,onFilterChange:({gradeSemester:a,chapter:b,tag:c})=>{void 0!==a&&z(a),void 0!==b&&B(b),F(void 0===c?null:c),a?b||B(""):(z(""),B(""),F(null)),H(1)},subjectName:f})}),(0,b.jsx)(bm,{value:C,onChange:D})]}),E&&(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-muted rounded-lg",children:[(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:[g.filter.filteringByTag||"Filtering by tag",":"]}),(0,b.jsxs)(bD.f,{variant:"secondary",className:"cursor-pointer",onClick:()=>F(null),children:[E,(0,b.jsx)("span",{className:"ml-1 text-xs",children:"×"})]})]}),!k&&0===i.length&&(0,b.jsx)(bE.f,{icon:m,title:g.notebook.emptyList,description:g.notebook.emptyListHint}),k&&0===i.length&&(0,b.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6},(a,c)=>(0,b.jsx)("div",{className:"h-44 animate-pulse rounded-2xl bg-muted"},c))}),(0,b.jsx)("div",{className:`grid gap-4 md:grid-cols-2 lg:grid-cols-3 transition-opacity ${k?"opacity-60":""}`,children:i.map(a=>(0,b.jsx)(q.f,{item:a,selectMode:N,selected:P.has(a.id),onToggleSelect:()=>{var b;return b=a.id,void Q(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},selectedTag:E,onTagClick:a=>F(E===a?null:a)},a.id))}),(0,b.jsx)(bG.f,{page:G,totalPages:L,total:J,pageSize:I,onPageChange:H}),N&&(0,b.jsx)(bw,{selectedIds:[...P],deleting:R,onCancel:U,onDelete:W})]})}var bN=a.i(73556),bO=a.i(808406);function bP({notebookId:a,onFinished:d}){let{t:f}=(0,bk.b)(),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(null),k=(0,c.useRef)(!1),l=(0,c.useCallback)(()=>{bt.f.get(`/api/notebooks/${a}/retag`).then(a=>{k.current&&a&&!a.running&&d?.(),k.current=!!a?.running,h(a)}).catch(()=>void 0)},[a,d]);(0,c.useEffect)(l,[l]),(0,c.useEffect)(()=>{if(!g?.running)return;let a=setTimeout(l,2e3);return()=>clearTimeout(a)},[g,l]);let m=async()=>{if(await (0,bJ.u)(f.retag.notebookConfirm)){j(null);try{let b=await bt.f.post(`/api/notebooks/${a}/retag`,{});if(0===b.total)return void j(f.retag.empty);k.current=b.running,h(b)}catch{j(f.retag.itemFailed)}}},n=i??(g?.running?f.retag.progress.replace("{done}",String(g.done)).replace("{total}",String(g.total)):g?.finishedAt&&g.total>0?f.retag.finished.replace("{success}",String(g.total-g.failed)).replace("{failed}",String(g.failed)):null);return(0,b.jsxs)("div",{className:"flex flex-col items-start sm:items-end gap-1",children:[(0,b.jsxs)(e.f,{variant:"outline",size:"sm",onClick:m,disabled:g?.running,"aria-label":f.retag.notebookButton,children:[g?.running?(0,b.jsx)(bp.f,{className:"h-4 w-4 animate-spin sm:mr-2"}):(0,b.jsx)(bO.f,{className:"h-4 w-4 sm:mr-2"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:f.retag.notebookButton})]}),n&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n})]})}var bQ=a.i(468368),bR=a.i(557999);a.s(["default",0,function(){let a=(0,d.useParams)(),k=(0,d.useRouter)(),{t:l}=(0,bk.b)(),[m,n]=(0,c.useState)(null);(0,bR.f)(l.notebooks.title,m?.name);let[o,p]=(0,c.useState)(!0),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(0),u=(0,c.useCallback)(async a=>{try{let b=await bt.f.get(`/api/notebooks/${a}`);n(b)}catch(a){bu.f.error("[NotebookDetail]","Failed to fetch notebook",{error:a}),bJ.c.error(l.notebooks?.notFound||"Notebook not found"),k.push("/notebooks")}finally{p(!1)}},[k,l]);(0,c.useEffect)(()=>{a.id&&u(a.id)},[a.id,u]);let v=async a=>{m&&n(await bt.f.put(`/api/notebooks/${m.id}`,{name:a}))};return o?(0,b.jsx)(g.f,{label:l.common.loading}):m?(0,b.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(f.f,{backHref:"/notebooks",title:m.name,titleAddon:(0,b.jsx)(e.f,{variant:"ghost",size:"icon-sm",className:"shrink-0 text-muted-foreground",onClick:()=>r(!0),title:l.notebooks?.rename||"Rename",children:(0,b.jsx)(i.f,{className:"h-4 w-4"})}),description:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bQ.E,{notebook:m})," · ",(l.notebooks?.totalErrors||"Total {count} errors").replace("{count}",(m._count?.errorItems||0).toString())]}),actions:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bP,{notebookId:m.id,onFinished:()=>t(a=>a+1)}),(0,b.jsx)(j.default,{href:`/notebooks/${m.id}/add`,children:(0,b.jsxs)(e.f,{"aria-label":l.notebooks?.addError||"Add Error",children:[(0,b.jsx)(h.f,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:l.notebooks?.addError||"Add Error"})]})})]})}),(0,b.jsx)(bM,{subjectId:m.id,subjectName:m.name},s),(0,b.jsx)(bN.f,{open:q,onOpenChange:r,currentName:m.name,onRename:v})]})}):null}],701453)}];
2
+
3
+ //# sourceMappingURL=src_app_notebooks_%5Bid%5D_page_tsx_08njm-5-txm8_._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[732204,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(699570),f=a.i(579834),g=a.i(251538),h=a.i(506376),i=a.i(596221),j=a.i(170106);let k=(0,j.f)("locate-fixed",[["line",{x1:"2",x2:"5",y1:"12",y2:"12",key:"bvdh0s"}],["line",{x1:"19",x2:"22",y1:"12",y2:"12",key:"1tbv5k"}],["line",{x1:"12",x2:"12",y1:"2",y2:"5",key:"11lu5j"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}],["circle",{cx:"12",cy:"12",r:"7",key:"fim9np"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var l=a.i(866718),m=a.i(550194),n=a.i(879188),o=a.i(83715);function p(){let{t:a}=(0,m.b)(),f=(0,d.useRouter)(),[g,h]=(0,c.useState)(""),[j,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1),s=async b=>{b.preventDefault();let c=g.trim();if(!(0,o.f)(c))return void p(a.shortId.invalid);r(!0),p(null);let d=await (0,n.f)(c);r(!1),d?f.push(`/error-items/${d}`):p(a.shortId.notFound)};return(0,b.jsxs)("form",{onSubmit:s,className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(l.f,{value:g,onChange:a=>{h(a.target.value),p(null)},placeholder:a.shortId.locatePlaceholder,maxLength:6,className:"font-mono sm:max-w-xs","aria-label":a.shortId.locateTitle}),(0,b.jsxs)(e.f,{type:"submit",variant:"outline",disabled:q||!g.trim(),children:[q?(0,b.jsx)(i.f,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(k,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"ml-2",children:a.shortId.locate})]})]}),j&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:j})]})}var q=a.i(953722),r=a.i(915618);let s=(0,j.f)("atom",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z",key:"1l2ple"}],["path",{d:"M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z",key:"1wam0m"}]]),t=(0,j.f)("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]);var u=a.i(50522);let v=(0,j.f)("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),w=(0,j.f)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),x=(0,j.f)("landmark",[["path",{d:"M10 18v-7",key:"wt116b"}],["path",{d:"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z",key:"1m329m"}],["path",{d:"M14 18v-7",key:"vav6t3"}],["path",{d:"M18 18v-7",key:"aexdmj"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M6 18v-7",key:"1ivflk"}]]);var y=a.i(149625);let z=(0,j.f)("leaf",[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]]);var A=a.i(699464);let B=(0,j.f)("scale",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]),C=(0,j.f)("sigma",[["path",{d:"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",key:"wuwx1p"}]]);var D=a.i(781560),E=a.i(468368),F=a.i(723222);let G={math:{icon:C,className:"bg-blue-100 text-blue-600 dark:bg-blue-500/15 dark:text-blue-300"},english:{icon:y.f,className:"bg-emerald-100 text-emerald-600 dark:bg-emerald-500/15 dark:text-emerald-300"},chinese:{icon:t,className:"bg-rose-100 text-rose-600 dark:bg-rose-500/15 dark:text-rose-300"},physics:{icon:s,className:"bg-amber-100 text-amber-600 dark:bg-amber-500/15 dark:text-amber-300"},chemistry:{icon:v,className:"bg-teal-100 text-teal-600 dark:bg-teal-500/15 dark:text-teal-300"},biology:{icon:z,className:"bg-lime-100 text-lime-700 dark:bg-lime-500/15 dark:text-lime-300"},history:{icon:x,className:"bg-orange-100 text-orange-600 dark:bg-orange-500/15 dark:text-orange-300"},geography:{icon:w,className:"bg-cyan-100 text-cyan-600 dark:bg-cyan-500/15 dark:text-cyan-300"},politics:{icon:B,className:"bg-red-100 text-red-600 dark:bg-red-500/15 dark:text-red-300"}},H={icon:q.f,className:"bg-accent text-accent-foreground"};function I({id:a,name:c,stage:d,subjectKey:f,errorCount:g,onClick:h,onRename:i,onDelete:j,itemLabel:k="items"}){let l=(0,F.v)({name:c,stage:d,subjectKey:f}),{icon:m,className:n}=l.subject?G[l.subject]:H;return(0,b.jsxs)("div",{role:"link",tabIndex:0,className:"group relative flex cursor-pointer items-center gap-4 rounded-2xl border bg-card p-4 shadow-sm transition-all hover:-translate-y-0.5 hover:border-primary/40 hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",onClick:h,onKeyDown:a=>{"Enter"===a.key&&h()},children:[(0,b.jsx)("div",{className:`flex h-12 w-12 shrink-0 items-center justify-center rounded-xl ${n}`,children:(0,b.jsx)(m,{className:"h-6 w-6"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"truncate font-semibold",children:c}),(0,b.jsxs)("p",{className:"mt-0.5 flex items-center gap-1.5 text-sm text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:g}),k,(0,b.jsx)("span",{className:"text-border",children:"|"}),(0,b.jsx)(E.E,{notebook:{name:c,stage:d,subjectKey:f},className:"truncate"})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100 sm:group-focus-within:opacity-100",children:[i&&(0,b.jsx)(e.f,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",onClick:a=>{a.stopPropagation(),i()},children:(0,b.jsx)(A.f,{className:"h-4 w-4"})}),j&&(0,b.jsx)(e.f,{variant:"ghost",size:"icon-sm",onClick:b=>{b.stopPropagation(),j(a)},children:(0,b.jsx)(D.f,{className:`h-4 w-4 ${g>0?"text-muted-foreground":"text-destructive"}`})})]}),(0,b.jsx)(u.f,{className:"hidden h-4 w-4 shrink-0 text-muted-foreground sm:block"})]})}var J=a.i(814574),K=a.i(870430),L=a.i(580701),M=a.i(710302),N=a.i(630534);function O({open:a,onOpenChange:d,onCreate:f}){let[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(F.j),[k,n]=(0,c.useState)(F.W[F.j][0]),[o,p]=(0,c.useState)(!1),{t:q}=(0,m.b)(),{stageLabel:r,subjectLabel:s}=(0,E.O)(),t=async()=>{if(!g.trim())return void M.c.warning(q.notebooks?.dialog?.enterName||"Please enter notebook name");p(!0);try{await f({name:g.trim(),stage:i,subjectKey:k}),h(""),d(!1)}catch(a){N.f.error("[CreateNotebook]","Failed to create notebook",{error:a})}finally{p(!1)}};return(0,b.jsx)(J.N,{open:a,onOpenChange:d,children:(0,b.jsxs)(J.d,{children:[(0,b.jsxs)(J.s,{children:[(0,b.jsx)(J.F,{children:q.notebooks?.dialog?.title||"Create New Notebook"}),(0,b.jsx)(J.C,{children:q.notebooks?.dialog?.desc||"Create separate notebooks for different subjects or chapters"})]}),(0,b.jsxs)("div",{className:"space-y-4 py-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(K.f,{htmlFor:"notebook-stage",children:q.notebooks.dialog.stageLabel}),(0,b.jsxs)(L.d,{value:i,onValueChange:a=>{j(a),F.W[a].includes(k)||n(F.W[a][0])},children:[(0,b.jsx)(L.P,{id:"notebook-stage",children:(0,b.jsx)(L.U,{})}),(0,b.jsx)(L.r,{children:F.c.map(a=>(0,b.jsx)(L.T,{value:a,children:r(a)},a))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(K.f,{htmlFor:"notebook-subject",children:q.notebooks.dialog.subjectLabel}),(0,b.jsxs)(L.d,{value:k,onValueChange:a=>n(a),children:[(0,b.jsx)(L.P,{id:"notebook-subject",children:(0,b.jsx)(L.U,{})}),(0,b.jsx)(L.r,{children:F.W[i].map(a=>(0,b.jsx)(L.T,{value:a,children:s(a)},a))})]})]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:q.notebooks.dialog.scopeHint}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(K.f,{htmlFor:"name",children:q.notebooks?.dialog?.nameLabel||"Notebook Name"}),(0,b.jsx)(l.f,{id:"name",placeholder:q.notebooks?.dialog?.placeholder||"e.g. Math, Physics, Chemistry...",value:g,onChange:a=>h(a.target.value),onKeyDown:a=>"Enter"===a.key&&t()})]})]}),(0,b.jsxs)(J.c,{children:[(0,b.jsx)(e.f,{variant:"outline",onClick:()=>d(!1),children:q.common.cancel}),(0,b.jsx)(e.f,{onClick:t,disabled:o||!g.trim(),children:o?q.notebooks?.dialog?.creating||"Creating...":q.notebooks?.dialog?.create||"Create"})]})]})})}var P=a.i(73556),Q=a.i(291938),R=a.i(557999),S=a.i(960927);a.s(["default",0,function(){let a=(0,d.useRouter)(),{t:i}=(0,m.b)();(0,R.f)(i.notebooks.title);let[j,k]=(0,c.useState)([]),[l,n]=(0,c.useState)(!0),[o,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),v=(0,c.useCallback)(async()=>{try{let a=await Q.f.get("/api/notebooks");k(a)}catch(a){N.f.error("[Notebooks]","Failed to fetch notebooks",{error:a})}finally{n(!1)}},[]);(0,c.useEffect)(()=>{v()},[v]);let w=async a=>{try{await Q.f.post("/api/notebooks",a),await v()}catch(b){N.f.error("[Notebooks]","Failed to create notebook",{error:b});let a=(0,S.d)(b)||i.notebooks?.createError||"Failed to create";M.c.error(a)}},x=async a=>{t&&(await Q.f.put(`/api/notebooks/${t.id}`,{name:a}),u(null),await v())},y=async(a,b,c)=>{if(b>0)return void M.c.warning(i.notebooks?.deleteNotEmpty||"Please clear all items in this notebook first.");if(await (0,M.u)((i.notebooks?.deleteConfirm||"Are you sure?").replace("{name}",c),{destructive:!0}))try{await Q.f.delete(`/api/notebooks/${a}`),await v()}catch(b){N.f.error("[Notebooks]","Failed to delete notebook",{error:b});let a=(0,S.d)(b)||i.notebooks?.deleteError||"Failed to delete";M.c.error(a)}};return l?(0,b.jsx)(h.f,{label:i.common.loading}):(0,b.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(g.f,{title:i.notebooks?.title||"My Notebooks",description:i.notebooks?.subtitle||"Manage your mistakes by subject",actions:(0,b.jsxs)(e.f,{onClick:()=>s(!0),"aria-label":i.notebooks?.create||"New Notebook",children:[(0,b.jsx)(r.f,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:i.notebooks?.create||"New Notebook"})]})}),(0,b.jsx)(p,{}),0===j.length?(0,b.jsx)(f.f,{icon:q.f,title:i.notebooks?.empty||"No notebooks yet.",action:(0,b.jsxs)(e.f,{onClick:()=>s(!0),children:[(0,b.jsx)(r.f,{className:"h-4 w-4"}),i.notebooks?.createFirst||"Create Notebook"]})}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:j.map(c=>(0,b.jsx)(I,{id:c.id,name:c.name,stage:c.stage,subjectKey:c.subjectKey,errorCount:c._count?.errorItems||0,onClick:()=>{var b;return b=c.id,void a.push(`/notebooks/${b}`)},onRename:()=>u(c),onDelete:()=>y(c.id,c._count?.errorItems||0,c.name),itemLabel:i.notebooks?.items||"items"},c.id))}),(0,b.jsx)(O,{open:o,onOpenChange:s,onCreate:w},i.common.loading),(0,b.jsx)(P.f,{open:!!t,onOpenChange:a=>{a||u(null)},currentName:t?.name||"",onRename:x})]})})}],732204)}];
2
+
3
+ //# sourceMappingURL=src_app_notebooks_page_tsx_1p9src5gnz_40._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[240777,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(713513),f=a.i(78823),g=a.i(808406),h=a.i(469808),i=a.i(78287),j=a.i(591119),k=a.i(699570),l=a.i(429246),m=a.i(870430),n=a.i(114548),o=a.i(596221),p=a.i(177156),q=a.i(588767),q=q,r=a.i(787654),s=a.i(550194),t=a.i(93907),u=a.i(699814),v=a.i(350659),w=a.i(580701),x=a.i(957292),y=a.i(710302);function z({onSubmit:a,defaultNotebookId:d,defaultNotebookName:e,isSaving:g}){let{t:h}=(0,s.b)(),[i,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(""),[L,M]=(0,c.useState)("unknown"),[N,O]=(0,c.useState)([]),[P,Q]=(0,c.useState)(d||""),[R,S]=(0,c.useState)(""),[T,U]=(0,c.useState)("a"),V=async()=>{if(B.trim()){if(!P)return void y.c.warning(h.editor.messages?.selectNotebook||"Please select a notebook");await a({questionText:B.trim(),answerText:D.trim(),analysis:F.trim(),wrongAnswerText:H.trim(),mistakeAnalysis:J.trim(),mistakeStatus:L,knowledgePoints:N,subjectId:P,gradeSemester:R||void 0,paperLevel:T})}},W=a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),B.trim()&&P&&!g&&V())},X=[{key:"question",label:h.editor?.question||"Question Text",value:B,setter:C,placeholder:h.directEntry.questionPlaceholder,minHeight:"min-h-[180px]",required:!0},{key:"answer",label:h.editor?.answer||"Answer",value:D,setter:E,placeholder:h.directEntry.answerPlaceholder,minHeight:"min-h-[120px]"},{key:"analysis",label:h.editor?.analysis||"Analysis / Explanation",value:F,setter:G,placeholder:h.directEntry.analysisPlaceholder,minHeight:"min-h-[150px]"},{key:"wrongAnswer",label:h.editor?.wrongAnswerText||"Wrong Answer / Work",value:H,setter:I,placeholder:h.directEntry.wrongAnswerPlaceholder,minHeight:"min-h-[100px]"},{key:"mistakeAnalysis",label:h.editor?.mistakeAnalysis||"Mistake Cause Analysis",value:J,setter:K,placeholder:h.directEntry.mistakeAnalysisPlaceholder,minHeight:"min-h-[100px]"}];return(0,b.jsx)(j.N,{className:"rounded-2xl",children:(0,b.jsxs)(j.O,{className:"p-6 space-y-5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(f.f,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm font-medium",children:h.directEntry.title})]}),(0,b.jsxs)(k.f,{variant:"ghost",size:"sm",onClick:()=>{C(""),E(""),G(""),I(""),K(""),M("unknown"),O([]),S(""),U("a")},disabled:g,className:"text-muted-foreground hover:text-destructive",children:[(0,b.jsx)(r.f,{className:"h-4 w-4 mr-1"}),h.directEntry.reset]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(m.f,{children:[h.editor?.selectNotebook||"Select Notebook"," *"]}),(0,b.jsx)(v.f,{value:P,onChange:Q})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(m.f,{children:h.editor?.gradeSemester||"Grade/Semester"}),(0,b.jsx)("input",{type:"text",value:R,onChange:a=>S(a.target.value),placeholder:h.directEntry.gradeSemesterPlaceholder,className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(m.f,{children:h.editor?.paperLevel||"Paper Level"}),(0,b.jsxs)(w.d,{value:T,onValueChange:U,children:[(0,b.jsx)(w.P,{children:(0,b.jsx)(w.U,{})}),(0,b.jsxs)(w.r,{children:[(0,b.jsx)(w.T,{value:"a",children:h.editor?.paperLevels?.a||"Paper A"}),(0,b.jsx)(w.T,{value:"b",children:h.editor?.paperLevels?.b||"Paper B"}),(0,b.jsx)(w.T,{value:"other",children:h.editor?.paperLevels?.other||"Other"})]})]})]})]}),X.map(a=>(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)(m.f,{className:a.required?"text-primary font-semibold":"",children:[a.label," ",a.required&&"*"]}),(0,b.jsx)(k.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>A(i===a.key?null:a.key),disabled:!a.value,children:i===a.key?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(q.f,{className:"h-3 w-3 mr-1"}),h.directEntry.edit]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.f,{className:"h-3 w-3 mr-1"}),h.directEntry.preview]})})]}),i===a.key?(0,b.jsx)("div",{className:`rounded-md border bg-muted/30 p-4 ${a.minHeight} overflow-auto cursor-pointer`,onClick:()=>A(null),children:(0,b.jsx)(t.f,{content:a.value})}):(0,b.jsx)(l.f,{value:a.value,onChange:b=>a.setter(b.target.value),onKeyDown:W,placeholder:a.placeholder,className:`${a.minHeight} font-mono text-sm resize-y`,disabled:g})]},a.key)),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(m.f,{children:h.editor?.mistakeStatus||"Attempt Status"}),(0,b.jsxs)(w.d,{value:L,onValueChange:a=>M(a),children:[(0,b.jsx)(w.P,{className:"w-[200px]",children:(0,b.jsx)(w.U,{})}),(0,b.jsxs)(w.r,{children:[(0,b.jsx)(w.T,{value:"not_attempted",children:h.editor?.mistakeStatuses?.notAttempted||"Not attempted"}),(0,b.jsx)(w.T,{value:"wrong_attempt",children:h.editor?.mistakeStatuses?.wrongAttempt||"Wrong attempt"}),(0,b.jsx)(w.T,{value:"unknown",children:h.editor?.mistakeStatuses?.unknown||"Unknown"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(m.f,{children:h.editor?.tags||"Knowledge Points (Press Enter to add)"}),(0,b.jsx)(u.f,{value:N,onChange:O,placeholder:h.editor?.tagsPlaceholder||"Enter knowledge tags, select from suggestions...",enterHint:h.editor?.createTagHint,subject:(0,x.f)(e||null)||void 0}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h.editor?.tagsHint||"💡 Tag suggestions will appear as you type"})]}),(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 pt-2",children:[(0,b.jsx)(k.f,{onClick:V,disabled:!B.trim()||!P||g,className:"w-full bg-gradient-to-r from-indigo-600 to-violet-500 hover:from-indigo-700 hover:to-violet-600 text-white font-medium",size:"lg",children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o.f,{className:"mr-2 h-4 w-4 animate-spin"}),h.directEntry.saving]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.f,{className:"mr-2 h-4 w-4"}),h.directEntry.save]})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground text-center",children:h.directEntry.hint})]})]})})}var A=a.i(238246),B=a.i(875003),C=a.i(953722),D=a.i(327999),E=a.i(755023),F=a.i(50429);let G=()=>()=>{};function H({href:a,icon:c,label:d,value:e}){return(0,b.jsxs)(A.default,{href:a,className:"rounded-xl bg-white/15 px-4 py-3 backdrop-blur-sm transition-colors hover:bg-white/20",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-white/75",children:[(0,b.jsx)(c,{className:"h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:d})]}),(0,b.jsx)("div",{className:"mt-1 text-2xl font-bold tabular-nums",children:e??"–"})]})}function I({notebookCount:a,itemCount:d,dueCount:e,targetNotebook:f}){let{t:g,language:h}=(0,s.b)(),{data:i}=(0,B.useSession)(),j=(0,c.useSyncExternalStore)(G,()=>new Date().getHours(),()=>null),k=null===j?g.common.welcome.replace(/[,,\s]+$/,""):j<12?g.home.greetingMorning:j<18?g.home.greetingAfternoon:g.home.greetingEvening,l=i?.user?.name||i?.user?.email||"";return(0,b.jsxs)("section",{className:"relative overflow-hidden rounded-2xl bg-gradient-to-br from-indigo-600 via-indigo-500 to-violet-500 p-5 text-white shadow-lg shadow-indigo-500/20 md:p-7",children:[(0,b.jsx)("div",{className:"pointer-events-none absolute -right-10 -top-12 h-44 w-44 rounded-full bg-white/10 blur-2xl"}),(0,b.jsx)("div",{className:"pointer-events-none absolute -bottom-16 right-24 h-40 w-40 rounded-full bg-fuchsia-300/20 blur-2xl"}),(0,b.jsxs)("div",{className:"relative flex flex-col gap-5 md:flex-row md:items-end md:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("h1",{className:"text-xl font-bold tracking-tight md:text-2xl",children:[k,l&&`${"zh"===h?",":", "}${l}`]}),(0,b.jsx)("p",{className:"max-w-md text-sm text-white/80",children:g.home.heroSubtitle}),f&&(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 rounded-full bg-white/15 px-3 py-1 text-xs font-medium",children:[(0,b.jsx)(F.f,{className:"h-3.5 w-3.5"}),g.home.targetNotebook.replace("{name}",f)]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-3 md:w-96",children:[(0,b.jsx)(H,{href:"/notebooks",icon:C.f,label:g.home.notebookCount,value:a}),(0,b.jsx)(H,{href:"/notebooks",icon:E.f,label:g.home.itemCount,value:d}),(0,b.jsx)(H,{href:"/review",icon:D.f,label:g.home.dueCount,value:e})]})]})]})}var J=a.i(797521),K=a.i(84535),L=a.i(825320),M=a.i(344774),N=a.i(506376),O=a.i(748106),P=a.i(487410),Q=a.i(291938),R=a.i(630534),S=a.i(557999),T=a.i(701111);function U(){let{t:a}=(0,s.b)();(0,S.f)(a.pageTitle.home);let j=(0,d.useSearchParams)().get("notebook"),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)("image"),t=j||m,u=t?k.find(a=>a.id===t):void 0,v=(0,T.f)({logPrefix:"[Home]",analyzeSubjectId:t,importSubjectId:j,textNotebook:u&&{id:u.id,name:u.name},onParsed:a=>{let b=a.subject&&k.find(b=>b.name.includes(a.subject)||a.subject.includes(b.name));b&&n(b.id)}});(0,c.useEffect)(()=>{Q.f.get("/api/notebooks").then(a=>l(a)).catch(a=>R.f.error("[Home]","Failed to fetch notebooks",{error:a})),Q.f.get("/api/review/due?pageSize=1").then(a=>p(a.total)).catch(a=>R.f.error("[Home]","Failed to fetch due reviews",{error:a}))},[]);let w=async a=>{v.setAnalysisStep("saving"),await v.saveQuestion({...a,wrongAnswerText:a.wrongAnswerText||null,mistakeAnalysis:a.mistakeAnalysis||null,mistakeStatus:a.mistakeStatus||"unknown",originalImageUrl:""}),v.setAnalysisStep("idle")},x=k.reduce((a,b)=>a+(b._count?.errorItems||0),0),y=[{value:"image",icon:e.f,label:a.app?.uploadImage||"Take Photo"},{value:"text",icon:g.f,label:a.app?.manualInput||"Manual Input"},{value:"direct",icon:f.f,label:a.app?.directInput||"Manual Entry"}];return(0,b.jsxs)("main",{className:"min-h-screen",children:[(0,b.jsx)(O.f,{status:v.analysisStep}),(0,b.jsxs)("div",{className:`mx-auto space-y-6 px-4 py-6 md:px-8 md:py-8 ${"review"===v.step?"max-w-6xl":"max-w-4xl"}`,children:["upload"===v.step&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(I,{notebookCount:k.length,itemCount:x,dueCount:o,targetNotebook:j?u?.name:void 0}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(P.f,{options:y,value:q,onChange:r}),v.lastImported&&(0,b.jsx)(K.f,{imported:v.lastImported,onDismiss:v.dismissImported}),v.batchBlobs?(0,b.jsx)(h.f,{blobs:v.batchBlobs,subjectId:j,timeout:v.aiTimeout,onClose:v.closeBatch}):"image"===q?(0,b.jsx)(M.f,{onImageSelect:v.selectImage,isAnalyzing:v.isBusy}):"text"===q?(0,b.jsx)(L.f,{onSubmit:v.submitText,isAnalyzing:v.isBusy,defaultNotebookName:u?.name}):(0,b.jsx)(z,{onSubmit:w,defaultNotebookId:t||void 0,defaultNotebookName:u?.name,isSaving:"saving"===v.analysisStep})]})]}),v.croppingImage&&(0,b.jsx)(J.f,{imageSrc:v.croppingImage,open:v.isCropperOpen,onClose:v.closeCropper,onCropComplete:v.cropComplete,onMultiCropComplete:v.startBatch}),"review"===v.step&&v.parsedData&&(0,b.jsx)(i.f,{initialData:v.parsedData,onSave:v.saveReviewed,onCancel:v.cancelReview,imagePreview:v.currentImage,initialSubjectId:t||void 0,aiTimeout:v.aiTimeout})]})]})}a.s(["default",0,function(){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(N.f,{}),children:(0,b.jsx)(U,{})})}],240777)}];
2
+
3
+ //# sourceMappingURL=src_app_page_tsx_1chiuahujsxm1._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[924324,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(699570),f=a.i(591119),g=a.i(596221),h=a.i(669520),i=a.i(816201),j=a.i(177156);let k=(0,a.i(170106).f)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var l=a.i(862722),m=a.i(400210),n=a.i(550194),o=a.i(557999),p=a.i(429246),q=a.i(866718),r=a.i(93907),s=a.i(291938),t=a.i(238246),u=a.i(114548),v=a.i(226897),w=a.i(630534);function x({errorItemId:a,suggested:d,question:h,difficulty:j}){let{t:k}=(0,n.b)(),[l,m]=(0,c.useState)(d),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=async()=>{if(l){p(!0),z(null);try{await s.f.post("/api/practice/record",{errorItemId:a,result:l,difficulty:j,subject:h.subject||null,questionText:h.questionText,answerText:h.answerText,analysis:h.analysis,figureSvg:h.figureSvg??null}),r(!0)}catch(a){w.f.error("[Practice]","Failed to save practice result",{error:a instanceof Error?a.message:String(a)}),z(k.mastery.resultSaveFailed)}finally{p(!1)}}};return(0,b.jsxs)(f.N,{className:q?"border-green-500":"border-primary/40",children:[(0,b.jsx)(f.Y,{children:(0,b.jsx)(f.v,{className:"text-base",children:k.mastery.markResult})}),(0,b.jsxs)(f.O,{className:"space-y-3",children:[(0,b.jsx)(v.f,{value:l,onChange:m,disabled:q||o}),d&&!q&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:k.mastery.suggested}),q?(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 text-sm text-green-700",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.f,{className:"h-4 w-4"}),k.mastery.resultSaved]}),(0,b.jsx)(t.default,{href:`/error-items/${a}`,className:"text-primary hover:underline sm:ml-auto",children:k.mastery.viewQuestion})]}):(0,b.jsxs)(e.f,{onClick:A,disabled:!l||o,className:"w-full sm:w-auto",children:[o?(0,b.jsx)(g.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(u.f,{className:"mr-2 h-4 w-4"}),k.mastery.saveResult]}),y&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y})]})]})}var y=a.i(418943);let z=/^(?:答案?(?:是|为)?|解|answer(?: is)?|the answer is)[::]?/i,A=/^\(?([A-H]{1,4})\)?(?:$|[.、::)]|\s+(?![a-zA-Z]))/;function B(a){return a.replace(/[!-~]/g,a=>String.fromCharCode(a.charCodeAt(0)-65248)).replace(/ /g," ").replace(/\$|\\\(|\\\)|\\\[|\\\]/g,"").replace(/\\(?:text|mathrm)\{([^}]*)\}/g,"$1").replace(/[\s。.,,;;!!]+$/g,"").trim().replace(z,"").replace(/\s+/g,"").toLowerCase()}var C=a.i(960927);function D(){let a=(0,d.useSearchParams)(),t=(0,d.useRouter)(),u=a.get("id"),{t:v,language:D}=(0,n.b)();(0,o.f)(v.practice.title);let[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(null),[S,T]=(0,c.useState)(!1),[U,V]=(0,c.useState)(null),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("medium"),[$,_]=(0,c.useState)(0),[aa,ab]=(0,c.useState)(null),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(!0);(0,c.useEffect)(()=>{s.f.get("/api/settings").then(a=>{ab(a),a.timeouts?.analyze&&w.f.info("[Config]","Loaded timeout settings",{analyze:a.timeouts.analyze})}).catch(a=>w.f.error("[Practice]","Failed to fetch config",{error:a}))},[]);let[ag,ah]=(0,c.useState)("medium");(0,c.useEffect)(()=>{if(!u)return;let a=!1;return s.f.get(`/api/practice/generate?errorItemId=${encodeURIComponent(u)}`).then(({practice:b})=>{!a&&b&&(F(a=>a??{questionText:b.questionText,answerText:b.answerText,analysis:b.analysis,subject:b.subject||"其他",knowledgePoints:[],wrongAnswerText:"",mistakeAnalysis:"",mistakeStatus:"unknown",requiresImage:!1,figureSvg:b.figureSvg??null}),ah(b.difficulty),Z(b.difficulty),ad(b.generatedAt))}).catch(a=>w.f.warn("[Practice]","Failed to load last practice question",{error:a instanceof Error?a.message:String(a)})).finally(()=>{a||af(!1)}),()=>{a=!0}},[u]);let[ai,aj]=(0,c.useState)(null),ak=async()=>{if(u){H(!0),aj(null),L(""),N(""),P(!1),R(null),V(null),X(!1),J(!1);try{let a=aa?.timeouts?.analyze||18e4;w.f.info("[Practice]","Generating question",{timeout:a});let b=await s.f.post("/api/practice/generate",{errorItemId:u,language:D,difficulty:ag},{timeout:a});F(b),Z(ag),ad(b.generatedAt??null),_(a=>a+1)}catch(c){w.f.error("[Practice]","Failed to generate practice question",{error:c});let a=(0,C.d)(c)||"",b=v.practice.errors?.default||"Failed to generate";a.includes("AI_CONNECTION_FAILED")?b=v.errors?.aiConnectionFailed||b:a.includes("AI_RESPONSE_ERROR")?b=v.errors?.aiResponseError||b:a.includes("AI_AUTH_ERROR")?b=v.errors?.aiAuth||b:a.includes("AI_OUTPUT_TRUNCATED")?b=v.errors?.AI_OUTPUT_TRUNCATED||b:a.includes("AI_UNKNOWN_ERROR")&&(b=v.errors?.AI_UNKNOWN_ERROR||b),aj(b)}finally{H(!1)}}},al=async()=>{if(K.trim()&&E&&u){if(P(!0),function(a,b){let c=B(a),d=B(b);if(!c||!d)return null;if(c===d)return!0;let e=b.trim().replace(z,"").trim().match(A),f=c.replace(/^\((.*)\)$/,"$1");if(e&&/^[a-h]{1,4}$/.test(f)){let a=a=>[...a.toLowerCase()].sort().join("");return a(f)===a(e[1])||null}return null}(K,E.answerText)){R(!0),J(!0);return}T(!0);try{let a=await s.f.post("/api/practice/grade",{errorItemId:u,userAnswer:K,language:D},{timeout:aa?.timeouts?.analyze||18e4});R(a.correct),V(a.reason)}catch(a){w.f.warn("[Practice]","Failed to grade answer",{error:a}),R(null),X(!0)}finally{T(!1),J(!0)}}};return u?(0,b.jsxs)("div",{className:"max-w-3xl mx-auto space-y-8",children:[(0,b.jsx)("div",{className:"flex justify-between items-center mb-4",children:(0,b.jsxs)(e.f,{variant:"ghost",onClick:()=>t.back(),children:[(0,b.jsx)(m.f,{className:"mr-2 h-4 w-4"}),v.common?.back||"Back"]})}),(0,b.jsxs)("div",{className:"text-center space-y-4",children:[(0,b.jsx)("h1",{className:"text-3xl font-bold",children:v.practice.title}),(0,b.jsx)("p",{className:"text-muted-foreground",children:v.practice.subtitle}),ai&&(0,b.jsxs)("div",{className:"relative rounded-xl border border-destructive/30 bg-destructive/10 px-4 py-3 text-destructive",role:"alert",children:[(0,b.jsxs)("strong",{className:"font-bold",children:[v.common?.error||"Error",": "]}),(0,b.jsxs)("span",{className:"block whitespace-pre-wrap",children:[" ",ai]})]}),ae&&!E&&(0,b.jsx)("div",{className:"flex justify-center",children:(0,b.jsx)(g.f,{className:"h-6 w-6 animate-spin text-muted-foreground"})}),!E&&!ae&&(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 bg-muted/50 p-2 rounded-lg",children:[(0,b.jsxs)("span",{className:"text-sm font-medium text-muted-foreground",children:[v.practice.difficulty?.label||"Difficulty",":"]}),(0,b.jsx)("div",{className:"flex gap-1",children:[{value:"easy",label:v.practice.difficulty?.easy||"Easy",color:"bg-green-100 text-green-700 hover:bg-green-200"},{value:"medium",label:v.practice.difficulty?.medium||"Medium",color:"bg-blue-100 text-blue-700 hover:bg-blue-200"},{value:"hard",label:v.practice.difficulty?.hard||"Hard",color:"bg-orange-100 text-orange-700 hover:bg-orange-200"},{value:"harder",label:v.practice.difficulty?.harder||"Challenge",color:"bg-red-100 text-red-700 hover:bg-red-200"}].map(a=>(0,b.jsx)("button",{onClick:()=>ah(a.value),className:`px-3 py-1.5 rounded-md text-sm font-medium transition-colors ${ag===a.value?a.color.replace("bg-","bg-opacity-100 bg-").replace("text-","ring-2 ring-offset-1 ring-"):"bg-transparent hover:bg-muted text-muted-foreground"} ${ag===a.value?a.color:""}`,children:a.label},a.value))})]}),(0,b.jsx)(e.f,{size:"lg",onClick:ak,disabled:G,children:G?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.f,{className:"mr-2 h-4 w-4 animate-spin"}),v.practice.generating]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.f,{className:"mr-2 h-4 w-4"}),v.practice.generate]})})]})]}),E&&(0,b.jsxs)("div",{className:"space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500",children:[(0,b.jsxs)(f.N,{className:"border-primary/50 shadow-lg",children:[(0,b.jsx)(f.Y,{children:(0,b.jsxs)(f.v,{className:"flex justify-between items-center",children:[(0,b.jsx)("span",{children:v.app.practiceProblem}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("select",{value:ag,onChange:a=>ah(a.target.value),className:"h-8 text-xs border rounded px-2 bg-background",disabled:G,children:[(0,b.jsx)("option",{value:"easy",children:v.practice.difficulty?.easy||"Easy"}),(0,b.jsx)("option",{value:"medium",children:v.practice.difficulty?.medium||"Medium"}),(0,b.jsx)("option",{value:"hard",children:v.practice.difficulty?.hard||"Hard"}),(0,b.jsx)("option",{value:"harder",children:v.practice.difficulty?.harder||"Challenge"})]}),(0,b.jsx)(e.f,{variant:"ghost",size:"sm",onClick:ak,disabled:G,children:G?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.f,{className:"mr-2 h-4 w-4 animate-spin"}),v.practice.generating]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.f,{className:"mr-2 h-4 w-4"}),v.practice.regenerate]})})]})]})}),(0,b.jsxs)(f.O,{children:[ac&&(0,b.jsx)("p",{className:"mb-3 text-xs text-muted-foreground",children:(v.practice.lastGeneratedAt||"Generated at {time}").replace("{time}",new Date(ac).toLocaleString("zh"===D?"zh-CN":"en-US"))}),(0,b.jsx)(r.f,{content:E.questionText,className:"font-medium"}),(0,b.jsx)(y.f,{svg:E.figureSvg})]})]}),(0,b.jsxs)(f.N,{className:"border-blue-200",children:[(0,b.jsx)(f.Y,{children:(0,b.jsx)(f.v,{className:"text-blue-600",children:v.app.yourAnswer||"Your Answer"})}),(0,b.jsxs)(f.O,{className:"space-y-4",children:[(0,b.jsx)(q.f,{placeholder:v.app.answerPlaceholder||"Enter your answer...",value:K,onChange:a=>L(a.target.value),disabled:O,className:"text-lg"}),(0,b.jsx)(p.f,{placeholder:v.app.notesPlaceholder||"Record your thinking process (optional)...",value:M,onChange:a=>N(a.target.value),disabled:O,rows:3})]})]}),O?S?(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2 text-muted-foreground",role:"status",children:[(0,b.jsx)(g.f,{className:"h-5 w-5 animate-spin"}),v.practice.grading]}):null===Q?W&&(0,b.jsx)("p",{className:"rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800",role:"status",children:v.practice.gradeFailed}):(0,b.jsx)(f.N,{className:Q?"border-green-500 bg-green-50":"border-red-500 bg-red-50",children:(0,b.jsxs)(f.O,{className:"pt-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-3 mb-4",children:Q?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.f,{className:"h-8 w-8 text-green-600"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-xl font-bold text-green-600",children:v.practice.correct||"Correct!"}),(0,b.jsx)("p",{className:"text-green-700",children:v.practice.correctMessage||"Great job, keep it up!"})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.f,{className:"h-8 w-8 text-red-600"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-xl font-bold text-red-600",children:v.practice.incorrect||"Incorrect"}),(0,b.jsx)("p",{className:"text-red-700",children:v.practice.incorrectMessage||"Review the analysis and try again!"})]})]})}),U&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:v.practice.aiGradeReason.replace("{reason}",U)}),M&&(0,b.jsxs)("div",{className:"mt-4 p-3 bg-white rounded-lg border",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-gray-600 mb-1",children:v.practice.yourNotes||"Your Notes:"}),(0,b.jsx)("p",{className:"text-gray-700 whitespace-pre-wrap",children:M})]})]})}):(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row justify-center gap-2",children:[(0,b.jsxs)(e.f,{size:"lg",onClick:al,disabled:!K.trim(),className:"w-full md:w-auto",children:[(0,b.jsx)(k,{className:"mr-2 h-4 w-4"}),v.app.submitAnswer||"Submit Answer"]}),(0,b.jsxs)(e.f,{size:"lg",variant:"outline",onClick:()=>{P(!0),R(null),J(!0)},className:"w-full md:w-auto",children:[(0,b.jsx)(j.f,{className:"mr-2 h-4 w-4"}),v.practice.checkAnswer||"Check Answer"]})]}),I&&(0,b.jsxs)("div",{className:"space-y-6 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsx)(x,{errorItemId:u,suggested:null===Q?null:Q?"correct":"wrong",question:E,difficulty:Y},$),(0,b.jsxs)(f.N,{className:"bg-muted/50",children:[(0,b.jsx)(f.Y,{children:(0,b.jsx)(f.v,{className:"text-green-600",children:v.practice.correctAnswer})}),(0,b.jsx)(f.O,{children:(0,b.jsx)(r.f,{content:E.answerText,className:"font-bold"})})]}),(0,b.jsxs)(f.N,{children:[(0,b.jsx)(f.Y,{children:(0,b.jsx)(f.v,{children:v.practice.detailedAnalysis})}),(0,b.jsx)(f.O,{className:"space-y-4",children:(0,b.jsx)(r.f,{content:E.analysis})})]})]})]})]}):(0,b.jsx)("div",{className:"p-8 text-center",children:v.practice.invalidRequest||"Invalid Request"})}a.s(["default",0,function(){return(0,b.jsx)("main",{className:"min-h-screen px-4 py-6 md:px-8 md:py-8",children:(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"flex justify-center p-8",children:(0,b.jsx)(g.f,{className:"h-8 w-8 animate-spin text-muted-foreground"})}),children:(0,b.jsx)(D,{})})})},"dynamic",0,"force-dynamic"],924324)}];
2
+
3
+ //# sourceMappingURL=src_app_practice_page_tsx_10gnx53v3kpzb._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[771706,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(699570),f=a.i(695001),g=a.i(93907),h=a.i(418943),i=a.i(291938),j=a.i(550194),k=a.i(557999),l=a.i(697902),m=a.i(630534);function n(){var a,n,o,p;let q=(0,d.useSearchParams)(),{t:r}=(0,j.b)(),[s,t]=(0,c.useState)([]);(0,k.f)(r.printPreview.title);let[u,v]=(0,c.useState)(!0),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(!1),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(70),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(new Set),I=(0,c.useCallback)(async()=>{try{let a=new URLSearchParams(q.toString());a.set("pageSize",String(l.A));let b=await i.f.get(`/api/error-items/list?${a.toString()}`);t(b.items),H(new Set(b.items.map(a=>a.id)))}catch(a){m.f.error("[PrintPreview]","Failed to fetch items",{error:a})}finally{v(!1)}},[q]);(0,c.useEffect)(()=>{I()},[I]);let J=s.filter(a=>G.has(a.id)),K=!w&&!y,L=(a=s.length,(n=J.length)===a?String(a):`${n}/${a}`),M=(o=s.length,p=J.length,0===o?"noItems":0===p?"noSelection":null);return u?(0,b.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,b.jsx)("p",{className:"text-muted-foreground",children:r.common.loading})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"print:hidden sticky top-0 z-10 bg-background border-b p-3 sm:p-4 shadow-sm",children:(0,b.jsxs)("div",{className:"max-w-6xl mx-auto space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(f.f,{fallbackUrl:"/notebooks"}),(0,b.jsxs)("h1",{className:"text-lg sm:text-xl font-bold flex-1",children:[r.printPreview?.title||"Print Preview"," (",L," ",r.notebooks?.items||"items",")"]}),(0,b.jsx)(e.f,{onClick:()=>{window.print()},size:"sm",className:"whitespace-nowrap",disabled:0===J.length,children:r.printPreview?.printButton||"Print / Save PDF"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm bg-muted/50 px-2 sm:px-3 py-1 rounded-md",children:[(0,b.jsxs)("span",{className:"whitespace-nowrap text-xs sm:text-sm",children:[r.printPreview?.imageScale||"Image Scale",": ",C,"%"]}),(0,b.jsx)("input",{type:"range",min:"30",max:"100",value:C,onChange:a=>D(Number(a.target.value)),className:"w-16 sm:w-20 accent-primary"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-1 sm:gap-4",children:[(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,b.jsx)("input",{type:"checkbox",checked:E,onChange:a=>F(a.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),r.printPreview?.showQuestionText||"Question Text"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,b.jsx)("input",{type:"checkbox",checked:w,onChange:a=>x(a.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),r.printPreview?.showAnswers||"Show Answers"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,b.jsx)("input",{type:"checkbox",checked:y,onChange:a=>z(a.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),r.printPreview?.showAnalysis||"Show Analysis"]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,b.jsx)("input",{type:"checkbox",checked:A,onChange:a=>B(a.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),r.printPreview?.showTags||"Show Tags"]})]})]}),(0,b.jsxs)("div",{className:"rounded-md border bg-muted/20 p-3 space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"text-sm font-medium",children:[r.printPreview?.selectItems||"Select Items"," (",J.length,"/",s.length,")"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(e.f,{variant:"outline",size:"sm",onClick:()=>{H(new Set(s.map(a=>a.id)))},children:r.printPreview?.selectAll||"Select All"}),(0,b.jsx)(e.f,{variant:"outline",size:"sm",onClick:()=>{H(new Set)},children:r.printPreview?.clearSelection||"Clear Selection"})]})]}),(0,b.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3 max-h-44 overflow-y-auto pr-1",children:s.map((a,c)=>(0,b.jsxs)("label",{className:"flex items-start gap-2 rounded border bg-background p-2 text-xs cursor-pointer hover:border-primary/50",children:[(0,b.jsx)("input",{type:"checkbox",checked:G.has(a.id),onChange:()=>{var b;return b=a.id,void H(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:"mt-0.5 rounded border-gray-300 text-primary focus:ring-primary"}),(0,b.jsxs)("span",{className:"line-clamp-2",children:[(0,b.jsx)("span",{className:"font-semibold",children:r.printPreview?.questionNumber?.replace("{num}",String(c+1))||`Question ${c+1}`}),a.questionText?`:${a.questionText}`:""]})]},a.id))})]})]})}),(0,b.jsxs)("div",{className:"max-w-4xl mx-auto p-8 print:p-0",children:[J.map((a,c)=>{let d=[];if(a.tags&&a.tags.length>0)d=a.tags.map(a=>a.name);else try{d=JSON.parse(a.knowledgePoints||"[]")}catch{d=[]}return(0,b.jsxs)("div",{className:`mb-4 border-b last:border-b-0 print:break-inside-avoid ${K?"pb-20 print:pb-16":"pb-6"}`,children:[(0,b.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-x-4 gap-y-2 leading-7",children:[(0,b.jsx)("span",{className:"text-lg font-bold",children:r.printPreview?.questionNumber?.replace("{num}",String(c+1))||`Question ${c+1}`}),a.shortId&&(0,b.jsx)("span",{className:"font-mono text-sm text-muted-foreground whitespace-nowrap",children:r.printPreview.source.replace("{id}",a.shortId)}),a.subject&&(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:a.subject.name}),a.gradeSemester&&(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:a.gradeSemester}),a.paperLevel&&(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:[r.printPreview?.paperLevel||"Paper Level",": ",a.paperLevel.toUpperCase()]}),A&&d.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"font-semibold",children:[r.printPreview?.knowledgePoints||"Knowledge Points",":"]}),d.map((a,c)=>(0,b.jsx)("span",{className:"px-2 py-1 bg-muted rounded text-sm",children:a},`${a}-${c}`))]})]}),E&&a.questionText?(0,b.jsxs)("div",{className:"mb-4",children:[(0,b.jsx)(g.f,{content:a.questionText}),(0,b.jsx)(h.f,{svg:a.figureSvg})]}):a.originalImageUrl&&(0,b.jsx)("div",{className:"mb-4",children:(0,b.jsx)("img",{src:a.originalImageUrl,alt:r.detail?.originalProblem||"Question Image",className:"h-auto border rounded",style:{maxWidth:`${C}%`}})}),w&&a.answerText&&(0,b.jsxs)("div",{className:"mb-4",children:[(0,b.jsxs)("h3",{className:"font-semibold mb-2",children:[r.printPreview?.referenceAnswer||"Reference Answer",":"]}),(0,b.jsx)(g.f,{content:a.answerText})]}),y&&a.analysis&&(0,b.jsxs)("div",{className:"mb-4",children:[(0,b.jsxs)("h3",{className:"font-semibold mb-2",children:[r.printPreview?.analysis||"Analysis",":"]}),(0,b.jsx)(g.f,{content:a.analysis})]})]},a.id)}),M&&(0,b.jsx)("div",{className:"text-center py-12 text-muted-foreground",children:"noSelection"===M?r.printPreview?.noSelection||"No items selected":r.printPreview?.noItems||"No matching error items"})]})]})}a.s(["default",0,function(){let{t:a}=(0,j.b)();return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:a.common.loading}),children:(0,b.jsx)(n,{})})}],771706)}];
2
+
3
+ //# sourceMappingURL=src_app_print-preview_page_tsx_001yt-fzrj7tf._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[855606,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(699570),f=a.i(866718),g=a.i(591119),h=a.i(238246),i=a.i(293530),j=a.i(550194),k=a.i(557999),l=a.i(529759),m=a.i(986705),n=a.i(177156),o=a.i(141379),p=a.i(596221),q=a.i(292e3),r=a.i(291938),s=a.i(710302),t=a.i(630534),u=a.i(960927);a.s(["default",0,function(){let{timeZone:a}=(0,l.M)(),v=(0,d.useRouter)(),{t:w}=(0,j.b)();(0,k.f)(w.pageTitle.register);let[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)("junior_high"),[H,I]=(0,c.useState)("2025"),[J,K]=(0,c.useState)(""),[L,M]=(0,c.useState)(!1),[N,O]=(0,c.useState)(!1),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(null),T=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/register/status"),b=await a.json();S(b.allowRegistration)}catch(a){t.f.error("[Register]","Failed to check registration status",{error:a}),S(!1)}},[]);(0,c.useEffect)(()=>{T()},[T]);let U=async a=>{if(a.preventDefault(),M(!0),K(""),B!==D){K(w.auth?.register?.passwordMismatch||"Passwords do not match"),M(!1);return}try{await r.f.post("/api/register",{name:x,email:z,password:B,educationStage:F,enrollmentYear:parseInt(H)}),s.c.success(w.auth?.register?.success||"Registration successful! Please login"),v.push("/login")}catch(b){let a=(0,u.d)(b);a="User with this email already exists"===a?w.auth?.register?.emailExists||a:a||w.auth?.register?.failed||"Registration failed",K(a)}finally{M(!1)}};return null===R?(0,b.jsx)(i.f,{children:(0,b.jsx)("div",{className:"flex justify-center",children:(0,b.jsx)(p.f,{className:"h-8 w-8 animate-spin text-primary"})})}):!1===R?(0,b.jsx)(i.f,{children:(0,b.jsxs)(g.N,{className:"w-full rounded-2xl border-0 shadow-xl shadow-indigo-500/5 ring-1 ring-border",children:[(0,b.jsx)(g.Y,{children:(0,b.jsx)(g.v,{className:"text-2xl text-center",children:w.auth?.register?.disabled||"Registration Disabled"})}),(0,b.jsxs)(g.O,{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4 py-6",children:[(0,b.jsx)(q.f,{className:"h-12 w-12 text-muted-foreground"}),(0,b.jsx)("p",{className:"text-center text-muted-foreground",children:w.auth?.register?.disabledMessage||"Registration is currently disabled by administrator. Please contact admin for access."})]}),(0,b.jsx)("div",{className:"text-center",children:(0,b.jsx)(h.default,{href:"/login",className:"text-primary hover:underline",children:w.auth?.register?.backToLogin||"Back to Login"})})]})]})}):(0,b.jsx)(i.f,{children:(0,b.jsxs)(g.N,{className:"w-full rounded-2xl border-0 shadow-xl shadow-indigo-500/5 ring-1 ring-border",children:[(0,b.jsx)(g.Y,{children:(0,b.jsx)(g.v,{className:"text-2xl text-center",children:w.auth?.register?.title||"Create an Account"})}),(0,b.jsx)(g.O,{children:(0,b.jsxs)("form",{onSubmit:U,className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"name",className:"text-sm font-medium",children:w.auth?.name||"Name"}),(0,b.jsx)(f.f,{id:"name",name:"name",type:"text",value:x,onChange:a=>y(a.target.value),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"email",className:"text-sm font-medium",children:w.auth?.email||"Email"}),(0,b.jsx)(f.f,{id:"email",name:"email",type:"email",value:z,onChange:a=>A(a.target.value),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"password",className:"text-sm font-medium",children:w.auth?.password||"Password"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(f.f,{id:"password",name:"password",type:N?"text":"password",value:B,onChange:a=>C(a.target.value),required:!0,minLength:6,className:"pr-10"}),(0,b.jsx)(e.f,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",onClick:()=>O(!N),tabIndex:-1,children:N?(0,b.jsx)(o.f,{className:"h-4 w-4 text-muted-foreground"}):(0,b.jsx)(n.f,{className:"h-4 w-4 text-muted-foreground"})})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"confirmPassword",className:"text-sm font-medium",children:w.auth?.confirmPassword||"Confirm Password"}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(f.f,{id:"confirmPassword",name:"confirmPassword",type:P?"text":"password",value:D,onChange:a=>E(a.target.value),required:!0,minLength:6,className:"pr-10"}),(0,b.jsx)(e.f,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",onClick:()=>Q(!P),tabIndex:-1,children:P?(0,b.jsx)(o.f,{className:"h-4 w-4 text-muted-foreground"}):(0,b.jsx)(n.f,{className:"h-4 w-4 text-muted-foreground"})})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"educationStage",className:"text-sm font-medium",children:w.auth?.educationStage||"Education Stage"}),(0,b.jsxs)("select",{id:"educationStage",name:"educationStage",className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:F,onChange:a=>G(a.target.value),required:!0,children:[(0,b.jsx)("option",{value:"",disabled:!0,children:w.auth?.selectStage||"Select Stage"}),(0,b.jsx)("option",{value:"primary",children:w.auth?.primary||"Primary School"}),(0,b.jsx)("option",{value:"junior_high",children:w.auth?.juniorHigh||"Junior High"}),(0,b.jsx)("option",{value:"senior_high",children:w.auth?.seniorHigh||"Senior High"}),(0,b.jsx)("option",{value:"university",children:w.auth?.university||"University"})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{htmlFor:"enrollmentYear",className:"text-sm font-medium",children:w.auth?.enrollmentYear||"Enrollment Year"}),(0,b.jsx)(f.f,{id:"enrollmentYear",name:"enrollmentYear",type:"number",value:H,onChange:a=>I(a.target.value),placeholder:"YYYY",required:!0,min:1990,max:Number((0,m.r)(new Date,"yyyy",a))})]}),J&&(0,b.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-center text-sm text-destructive",children:J}),(0,b.jsx)(e.f,{type:"submit",size:"lg",className:"w-full",disabled:L,children:L?w.auth?.register?.registering||"Registering...":w.auth?.register?.action||"Register"}),(0,b.jsxs)("div",{className:"text-center text-sm text-muted-foreground",children:[w.auth?.register?.hasAccount||"Already have an account? ",(0,b.jsx)(h.default,{href:"/login",className:"text-primary hover:underline",children:w.auth?.register?.loginHere||"Login here"})]})]})})]})})}])}];
2
+
3
+ //# sourceMappingURL=src_app_register_page_tsx_0l87b3754fa2j._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[947137,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),e=a.i(327999),f=a.i(669520),g=a.i(263323),h=a.i(699570),i=a.i(579834),j=a.i(251538),k=a.i(882524),l=a.i(550194),m=a.i(529759),n=a.i(291938),o=a.i(697902),p=a.i(986705),q=a.i(630534),r=a.i(557999);let s=[1,2,4,7,15,30];a.s(["default",0,function(){let{t:a}=(0,l.b)(),{timeZone:t}=(0,m.M)();(0,r.f)(a.review.title);let[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(1),y=(0,c.useCallback)(async a=>{try{v(await n.f.get(`/api/review/due?page=${a}&pageSize=${o.$}`))}catch(a){q.f.error("[Review]","Failed to fetch due reviews",{error:a})}},[]);(0,c.useEffect)(()=>{y(w)},[w,y]);let z=(0,p.d)(new Date,t).start;return(0,b.jsxs)("main",{className:"mx-auto max-w-6xl space-y-6 px-4 py-6 md:px-8 md:py-8",children:[(0,b.jsx)(j.f,{title:a.review.title,description:a.review.desc,actions:u&&u.total>0&&(0,b.jsx)("span",{className:"rounded-full bg-primary/10 px-3 py-1 text-sm font-medium text-primary",children:a.review.dueCount.replace("{count}",String(u.total))})}),!u&&(0,b.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6},(a,c)=>(0,b.jsx)("div",{className:"h-52 animate-pulse rounded-2xl bg-muted"},c))}),u&&0===u.total&&(0,b.jsx)(i.f,{icon:e.f,title:a.review.empty,description:a.review.emptyHint}),u&&u.items.length>0&&(0,b.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:u.items.map(c=>{let e;return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("div",{className:"flex-1",children:(0,b.jsx)(g.f,{item:c,selectMode:!1,selected:!1,onToggleSelect:()=>{},selectedTag:null,onTagClick:()=>{}})}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 px-1 text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{children:[(e=(0,p.r)(c.nextReviewAt,"MM/dd",t),new Date(c.nextReviewAt)<z?a.review.overdue.replace("{date}",e):a.review.dueOn.replace("{date}",e))," · ",a.review.round.replace("{round}",String(c.reviewStage+1)).replace("{total}",String(s.length))]}),(0,b.jsx)(d.default,{href:`/practice?id=${c.id}`,children:(0,b.jsxs)(h.f,{variant:"outline",size:"sm",className:"h-8",children:[(0,b.jsx)(f.f,{className:"mr-1.5 h-3.5 w-3.5"}),a.review.practice]})})]})]},c.id)})}),u&&(0,b.jsx)(k.f,{page:w,totalPages:u.totalPages,total:u.total,pageSize:u.pageSize,onPageChange:x})]})}],947137)}];
2
+
3
+ //# sourceMappingURL=src_app_review_page_tsx_1rq4ygvo_szv0._.js.map