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=[715609,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(550194),e=a.i(557999),f=a.i(591119),g=a.i(786304),h=a.i(875083),i=a.i(724669),j=a.i(915618),k=a.i(781560),l=a.i(405784),m=a.i(50522),n=a.i(596221),o=a.i(699570),p=a.i(251538),q=a.i(866718),r=a.i(580701),s=a.i(291938),t=a.i(710302),u=a.i(630534),v=a.i(960927);let w=[{key:"math",name:"数学"},{key:"english",name:"英语"},{key:"physics",name:"物理"},{key:"chemistry",name:"化学"},{key:"biology",name:"生物"},{key:"chinese",name:"语文"},{key:"history",name:"历史"},{key:"geography",name:"地理"},{key:"politics",name:"政治"}];a.s(["default",0,function(){let a,{t:x}=(0,d.b)();(0,e.f)(x.tags.title);let[y,z]=(0,c.useState)([]),[A,B]=(0,c.useState)(!0),[C,D]=(0,c.useState)({math:null,english:null,physics:null,chemistry:null,biology:null,chinese:null,history:null,geography:null,politics:null}),[E,F]=(0,c.useState)([]),[G,H]=(0,c.useState)("math"),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)([]),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)({}),S=(0,c.useCallback)(async a=>{try{let b=await s.f.get(`/api/tags?subject=${a}`);D(c=>({...c,[a]:b.tags}))}catch(b){u.f.error("[Tags]","Failed to fetch tags",{subject:a,error:b})}},[]),T=(0,c.useCallback)(async()=>{try{let a=[];for(let{key:b}of w){let c=(await s.f.get(`/api/tags?subject=${b}&flat=true`)).tags.filter(a=>!a.isSystem).map(a=>({...a,subject:b}));a.push(...c)}F(a)}catch(a){u.f.error("[Tags]","Failed to fetch custom tags",{error:a})}},[]),U=async()=>{try{let a=await s.f.get("/api/tags/stats");z(a.stats)}catch(a){u.f.error("[Tags]","Failed to fetch tag stats",{error:a})}finally{B(!1)}};(0,c.useEffect)(()=>{U(),T(),S("math")},[S,T]),(0,c.useEffect)(()=>{(async()=>{try{let a=(await s.f.get(`/api/tags?subject=${G}`)).tags.filter(a=>a.isSystem).map(a=>({id:a.id,name:a.name}));L(a),J("")}catch(a){u.f.error("[Tags]","Failed to fetch grades",{error:a}),L([])}})()},[G]);let V=async()=>{if(!M.trim())return void t.c.warning(x.tags?.custom?.enterName||"Please enter tag name");P(!0);try{await s.f.post("/api/tags",{name:M.trim(),subject:G,parentId:I&&"none"!==I?I:void 0}),N(""),await T(),await S(G),t.c.success(x.tags?.custom?.success||"Tag added successfully!")}catch(a){(0,v.Z)(a).includes("409")?t.c.warning(x.tags?.custom?.exists||"Tag already exists"):t.c.error("Failed to add tag")}finally{P(!1)}},W=async(a,b,c)=>{if(await (0,t.u)((x.tags?.custom?.deleteConfirm||'Are you sure you want to delete tag "{tag}"?').replace("{tag}",b),{destructive:!0}))try{await s.f.delete(`/api/tags?id=${a}`),await T(),await S(c)}catch(a){u.f.error("[Tags]","Failed to delete tag",{error:a}),t.c.error("Failed to delete tag")}},X=a=>{R(b=>({...b,[a]:!b[a]}))},Y=(a,c=0,d=!1)=>{let e=a.children.length>0,f=Q[a.id],h=16*c;if(!e){let c;return(0,b.jsxs)(g.f,{variant:"outline",className:"cursor-default hover:bg-accent",style:{marginLeft:d?0:h},children:[a.name,(c=y.find(b=>b.tag===a.name))?(0,b.jsxs)("span",{className:"ml-1 text-xs text-muted-foreground",children:["(",c.count,")"]}):null]},a.id)}let i=a.children.filter(a=>a.isSystem);if(0===i.length)return(0,b.jsx)("div",{className:"space-y-2",style:{paddingLeft:h},children:(0,b.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer hover:bg-muted/50 rounded px-2 py-1 -mx-2",onClick:()=>X(a.id),children:[f?(0,b.jsx)(l.f,{className:"h-4 w-4"}):(0,b.jsx)(m.f,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"font-medium text-sm",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",i.length,")"]})]})},a.id);let j=i.every(a=>0===a.children.filter(a=>a.isSystem).length);return(0,b.jsxs)("div",{className:"space-y-2",style:{paddingLeft:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer hover:bg-muted/50 rounded px-2 py-1 -mx-2",onClick:()=>X(a.id),children:[f?(0,b.jsx)(l.f,{className:"h-4 w-4"}):(0,b.jsx)(m.f,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"font-medium text-sm",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",i.length,")"]})]}),f&&(j?(0,b.jsx)("div",{className:"flex flex-wrap gap-2 pl-6",children:i.map(a=>Y(a,0,!0))}):(0,b.jsx)("div",{className:"space-y-2 pl-6",children:i.map(a=>Y(a,0,!1))}))]},a.id)};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)(p.f,{title:x.tags?.title||"Tag Management",description:x.tags?.subtitle||"View and manage knowledge point tags"}),(0,b.jsxs)(h.i,{defaultValue:"standard",className:"w-full",children:[(0,b.jsxs)(h.U,{className:"grid w-full grid-cols-3 mb-6",children:[(0,b.jsx)(h.k,{value:"standard",children:x.tags?.tabs?.standard||"Standard Tags"}),(0,b.jsx)(h.k,{value:"custom",children:x.tags?.tabs?.custom||"Custom Tags"}),(0,b.jsx)(h.k,{value:"stats",children:x.tags?.tabs?.stats||"Usage Statistics"})]}),(0,b.jsx)(h.S,{value:"standard",className:"space-y-4",children:(0,b.jsx)(b.Fragment,{children:w.map(({key:a,name:c})=>{let d=x.tags?.subjects?.[a]||c,e=Q[`subject-${a}`],g=C[a];return(0,b.jsxs)(f.N,{className:"mb-4",children:[(0,b.jsxs)(f.Y,{className:"cursor-pointer hover:bg-muted/50 transition-colors flex flex-row items-center justify-between py-4",onClick:()=>{X(`subject-${a}`),null===g&&S(a)},children:[(0,b.jsxs)(f.v,{className:"text-lg flex items-center gap-2",children:[e?(0,b.jsx)(l.f,{className:"h-5 w-5"}):(0,b.jsx)(m.f,{className:"h-5 w-5"}),d]}),(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:e?x.common?.collapse||"Collapse":x.common?.expand||"Expand"})]}),e&&(0,b.jsx)(f.O,{className:"space-y-4 pt-0",children:null===g?(0,b.jsxs)("div",{className:"text-center py-4 text-muted-foreground",children:[(0,b.jsx)(n.f,{className:"h-5 w-5 animate-spin mx-auto mb-2"}),"Loading..."]}):0===g.filter(a=>a.isSystem).length?(0,b.jsx)("div",{className:"text-center py-4 text-muted-foreground",children:x.tags?.stats?.empty||"No tag usage records yet"}):g.filter(a=>a.isSystem).map(a=>Y(a))})]},a)})})}),(0,b.jsx)(h.S,{value:"custom",children:(a=E.reduce((a,b)=>(a[b.subject]||(a[b.subject]=[]),a[b.subject].push(b),a),{}),(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(f.N,{children:[(0,b.jsx)(f.Y,{children:(0,b.jsx)(f.v,{children:x.tags?.custom?.addTitle||"Add Custom Tag"})}),(0,b.jsxs)(f.O,{children:[(0,b.jsxs)("div",{className:"flex gap-3 flex-wrap",children:[(0,b.jsxs)(r.d,{value:G,onValueChange:a=>H(a),children:[(0,b.jsx)(r.P,{className:"w-[120px]",children:(0,b.jsx)(r.U,{})}),(0,b.jsx)(r.r,{children:w.map(({key:a,name:c})=>(0,b.jsx)(r.T,{value:a,children:x.tags?.subjects?.[a]||c},a))})]}),(0,b.jsxs)(r.d,{value:I,onValueChange:J,children:[(0,b.jsx)(r.P,{className:"w-[140px]",children:(0,b.jsx)(r.U,{placeholder:x.tags?.custom?.selectGrade||"Select Grade"})}),(0,b.jsxs)(r.r,{children:[(0,b.jsx)(r.T,{value:"none",children:x.tags?.custom?.noGrade||"No Grade"}),K.map(a=>(0,b.jsx)(r.T,{value:a.id,children:a.name},a.id))]})]}),(0,b.jsx)(q.f,{placeholder:x.tags?.custom?.placeholder||"Enter tag name...",value:M,onChange:a=>N(a.target.value),onKeyDown:a=>"Enter"===a.key&&V(),className:"flex-1 min-w-[200px]"}),(0,b.jsxs)(o.f,{onClick:V,disabled:O,children:[O?(0,b.jsx)(n.f,{className:"h-4 w-4 mr-1 animate-spin"}):(0,b.jsx)(j.f,{className:"h-4 w-4 mr-1"}),x.tags?.custom?.add||"Add"]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:x.tags?.custom?.hint||"💡 Custom tags will automatically appear in tag suggestions"})]})]}),0===E.length?(0,b.jsx)(f.N,{children:(0,b.jsx)(f.O,{className:"py-12 text-center text-muted-foreground",children:x.tags?.custom?.empty||"No custom tags yet, click above to add!"})}):w.map(({key:c,name:d})=>{let e=a[c];if(!e?.length)return null;let h=e.reduce((a,b)=>{let c=b.parentName||"通用";return a[c]||(a[c]=[]),a[c].push(b),a},{}),i=Object.keys(h).sort((a,b)=>"通用"===a?1:"通用"===b?-1:a.localeCompare(b,"zh"));return(0,b.jsxs)(f.N,{children:[(0,b.jsx)(f.Y,{children:(0,b.jsxs)(f.v,{className:"text-lg",children:[x.tags?.subjects?.[c]||d," (",e.length,")"]})}),(0,b.jsx)(f.O,{className:"space-y-4",children:i.map(a=>(0,b.jsxs)("div",{className:"space-y-2",children:["通用"!==a&&(0,b.jsx)("h4",{className:"text-sm font-semibold text-muted-foreground border-b pb-1 mb-2",children:a}),"通用"===a&&i.length>1&&(0,b.jsx)("h4",{className:"text-sm font-semibold text-muted-foreground border-b pb-1 mb-2",children:x.tags?.otherGroup||"Other"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:h[a].map(a=>(0,b.jsxs)(g.f,{variant:"secondary",className:"px-3 py-1.5 text-sm",children:[a.name,(0,b.jsx)("button",{onClick:()=>W(a.id,a.name,c),className:"ml-2 hover:text-destructive transition-colors",title:x.common?.delete||"Delete",children:(0,b.jsx)(k.f,{className:"h-3 w-3"})})]},a.id))})]},a))})]},c)})]}))}),(0,b.jsx)(h.S,{value:"stats",children:(()=>{if(A)return(0,b.jsx)("div",{className:"text-center py-8",children:x.tags?.stats?.loading||"Loading..."});if(0===y.length)return(0,b.jsx)("div",{className:"text-center py-8 text-muted-foreground",children:x.tags?.stats?.empty||"No tag usage records yet"});let a=y[0]?.count||1;return(0,b.jsxs)(f.N,{children:[(0,b.jsx)(f.Y,{children:(0,b.jsxs)(f.v,{className:"flex items-center gap-2",children:[(0,b.jsx)(i.f,{className:"h-5 w-5"}),x.tags?.stats?.frequency||"Tag Usage Frequency (Top 20)"]})}),(0,b.jsx)(f.O,{className:"space-y-3",children:y.slice(0,20).map(c=>{let d=c.count/a*100;return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:c.tag}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:[c.count," ",x.tags?.stats?.count||"times"]})]}),(0,b.jsx)("div",{className:"h-2 bg-muted rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-primary transition-all",style:{width:`${d}%`}})})]},c.tag)})})]})})()})]})]})}])}];
2
+
3
+ //# sourceMappingURL=src_app_tags_page_tsx_1h2vkk4hv_zlp._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[131368,992883,a=>{"use strict";var b=a.i(187924);let c=(0,a.i(170106).f)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var d=a.i(550194),e=a.i(368114);let f=[1,2,3,4,5];function g(a){return"not_attempted"===a||"wrong_attempt"===a||"unknown"===a?a:"unknown"}a.s(["f",0,function({value:a,onChange:g,disabled:h,size:i="sm",showUnrated:j=!0,className:k}){let{t:l}=(0,d.b)(),m=a??0,n="sm"===i?"h-3.5 w-3.5":"h-5 w-5",o=m?l.difficulty.starsLabel.replace("{n}",String(m)):l.difficulty.unrated;return g?(0,b.jsxs)("span",{className:(0,e.f)("inline-flex items-center gap-0.5",k),role:"group","aria-label":`${l.difficulty.label}:${o}`,title:l.difficulty.clearHint,children:[f.map(a=>(0,b.jsx)("button",{type:"button",disabled:h,onClick:()=>g(a===m?null:a),"aria-label":l.difficulty.setStars.replace("{n}",String(a)),"aria-pressed":a<=m,className:"rounded p-0.5 hover:bg-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,b.jsx)(c,{className:(0,e.f)(n,a<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},a)),!m&&j&&(0,b.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:l.difficulty.unrated})]}):m?(0,b.jsx)("span",{className:(0,e.f)("inline-flex items-center",k),role:"img","aria-label":`${l.difficulty.label}:${o}`,title:o,children:f.map(a=>(0,b.jsx)(c,{className:(0,e.f)(n,a<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},a))}):j?(0,b.jsx)("span",{className:(0,e.f)("text-xs text-muted-foreground",k),children:l.difficulty.unrated}):null}],131368),a.s(["i",0,function(a,b="zh"){return("en"===b?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[g(a)]},"h",0,g,"x",0,function(a,b){return(b||"").trim()?"wrong_attempt":g(a)}],992883)}];
2
+
3
+ //# sourceMappingURL=src_components_difficulty-stars_tsx_1af9qqfurq7_t._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[263323,882524,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),e=a.i(131368),f=a.i(622418),g=a.i(786304),h=a.i(591119),i=a.i(315055),j=a.i(550194),k=a.i(529759),l=a.i(986705),m=a.i(441069),n=a.i(249355),o=a.i(689247);let p={}.hasOwnProperty,q={}.hasOwnProperty;var r=a.i(772073),s=a.i(698970),t=a.i(936279),u=a.i(770974),v=a.i(194069);function w(a){if(60!==a.charCodeAt(0))return;let b=a.charCodeAt(1);if(33===b){let b=a.charCodeAt(2);return 45===b?2:91===b?5:(0,u.B)(b)?4:void 0}if(63===b)return 3;let c=47===b,d=c?2:1,e=d,f=a.charCodeAt(e);if(!(0,u.B)(f))return;for(;45===f||(0,u.O)(f);)f=a.charCodeAt(++e);let g=a.slice(d,e).toLowerCase();return!c&&47!==f&&v.M.includes(g)?1:v.y.includes(g)?6:7}let x=[function(a,b,c,d){if("code"===b.type&&(0,s.f)(b,d)&&("list"===a.type||a.type===b.type&&(0,s.f)(a,d)))return!1;if("spread"in c&&"boolean"==typeof c.spread){if("paragraph"===a.type&&(a.type===b.type||"definition"===b.type||"heading"===b.type&&(0,t.f)(b,d)))return;if("html"===a.type){let b=w(a.value);if(void 0===b||6===b||7===b)return 1}if("paragraph"===a.type&&"html"===b.type){let a=w(b.value);if(void 0===a||7===a)return 1}return+!!c.spread}}],y=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"],z=[{character:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"\r",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:"\n",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:"\r",before:"[\\r\\n]",inConstruct:"phrasing"},{character:"\r",after:"\\r",inConstruct:"phrasing"},{character:"\n",before:"\\n",inConstruct:"phrasing"},{character:"\n",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"!",after:"\\[",inConstruct:"phrasing",notInConstruct:y},{character:'"',inConstruct:"titleQuote"},{atBreak:!0,character:"#"},{character:"#",inConstruct:"headingAtx",after:"(?:[\r\n]|$)"},{character:"&",after:"[#A-Za-z]",inConstruct:"phrasing"},{character:"'",inConstruct:"titleApostrophe"},{character:"(",inConstruct:"destinationRaw"},{before:"\\]",character:"(",inConstruct:"phrasing",notInConstruct:y},{atBreak:!0,before:"\\d+",character:")"},{character:")",inConstruct:"destinationRaw"},{atBreak:!0,character:"*",after:"(?:[ \r\n*])"},{character:"*",inConstruct:"phrasing",notInConstruct:y},{atBreak:!0,character:"+",after:"(?:[ \r\n])"},{atBreak:!0,character:"-",after:"(?:[ \r\n-])"},{atBreak:!0,before:"\\d+",character:".",after:"(?:[ \r\n]|$)"},{atBreak:!0,character:"<",after:"[!/?A-Za-z]"},{character:"<",after:"[!/?A-Za-z]",inConstruct:"phrasing",notInConstruct:y},{character:"<",inConstruct:"destinationLiteral"},{atBreak:!0,character:"="},{atBreak:!0,character:">"},{character:">",inConstruct:"destinationLiteral"},{atBreak:!0,character:"["},{character:"[",inConstruct:"phrasing",notInConstruct:y},{character:"[",inConstruct:["label","reference"]},{character:"\\",after:"[\\r\\n]",inConstruct:"phrasing"},{character:"]",inConstruct:["label","reference"]},{atBreak:!0,character:"_"},{character:"_",inConstruct:"phrasing",notInConstruct:y},{atBreak:!0,character:"`"},{character:"`",inConstruct:["codeFencedLangGraveAccent","codeFencedMetaGraveAccent"]},{character:"`",inConstruct:"phrasing",notInConstruct:y},{atBreak:!0,character:"~"},{character:"<",inConstruct:"autolink"},{character:">",inConstruct:"autolink"},{character:"",inConstruct:"autolink"}],A=-1;for(;++A<33;)z.push({character:String.fromCharCode(A),inConstruct:"autolink"});var B=a.i(355735);function C(a){return a.label||!a.identifier?a.label||"":(0,B.f)(a.identifier)}function D(a){if(!a._compiled){let b=(a.atBreak?"[\\r\\n][\\t ]*":"")+(a.before?"(?:"+a.before+")":"");a._compiled=new RegExp((a.beforeNode?"^":b?"("+b+")":"")+(/[$()*+.?[\\\]^{|}]/.test(a.character)?"\\":"")+a.character+(a.afterNode?"$":a.after?"(?:"+a.after+")":""),a.unicode?"gu":"g")}return a._compiled}var E=a.i(945456);function F(a){let b=a.codePointAt(0);return void 0===b?"":String.fromCodePoint(b)}function G(a){let b=a.codePointAt(a.length-2);return void 0!==b&&b>65535?a.slice(-2):a.slice(-1)}var H=a.i(888183);function I(a,b,c){let d=(0,E.f)(a),e=(0,E.f)(b);return void 0===d?void 0===e?"_"===c?{inside:!0,outside:!0}:{inside:!1,outside:!1}:1===e?{inside:!0,outside:!0}:{inside:!1,outside:!0}:1===d?void 0===e?{inside:!1,outside:!1}:1===e?{inside:!0,outside:!0}:{inside:!1,outside:!1}:void 0===e?{inside:!1,outside:!1}:1===e?{inside:!0,outside:!1}:{inside:!1,outside:!1}}let J=new Map([["*",!1],["_",!0]]);function K(a,b,c){let d=[],e=new Map,f=new Map,g=0;for(;g<a.length;){if(!a[g].attention){g++;continue}let h=a[g].value.charAt(0),i=J.get(h),j=g+1;for(;j<a.length&&a[j].attention&&a[j].value.charAt(0)===h;)j++;let k=g?a[g-1].value:b,l=(0,E.f)(k.charCodeAt(k.length-1)),m=(0,E.f)((j<a.length?a[j].value:c).charCodeAt(0)),n=!m||2===m&&!!l,o=!l||2===l&&!!m,p={tokens:a.slice(g,j),markers:[],start:0,end:0,open:i?n&&(!!l||!o):n,close:i?o&&(!!m||!n):o,split:void 0!==i};for(let a of p.tokens){e.set(a,[...p.tokens]),f.set(a,p);let b=a.value.length;for(;b--;)p.markers.push(a)}p.end=p.markers.length,d.push(p),g=j}for(function(a,b){let c=0;for(;c<a.length;){let d=a[c],e=d.tokens[0].value.charAt(0),f=d.end-d.start,g=d.close&&f?c:0;for(;g--;){let c=a[g],h=c.end-c.start;if(c.tokens[0].value.charAt(0)===e&&c.open&&h&&(d.split?!((c.close||d.open)&&f%3)||(h+f)%3:h===c.markers.length&&h===f)){let a=d.split?h>1&&f>1?2:1:f,e=c.markers.slice(c.end-a,c.end),g=d.markers.slice(d.start,d.start+a),i=e[0],j=g[0];if(i===e[a-1]&&i.value.length===a&&j===g[a-1]&&j.value.length===a&&i.attention===j.attention)b.delete(i),b.delete(j);else{let a=[...new Set([...e,...g])];for(let c of a){let d=b.get(c);d&&d.push(...a)}}c.end-=a,d.start+=a;break}}(-1===g||d.start===d.end)&&c++}}(d,e),g=-1;++g<a.length;){let b=e.get(a[g]);if(b)return{attention:function(a,b,c){let d=new Set;for(let e of a){let a=c.get(e);if(a&&e.attention&&b.some(a=>a.attention===e.attention))for(let b of a.tokens)d.add(b.attention)}let e=[];for(let b of a)b.attention&&d.delete(b.attention)&&e.push(b.attention);return e.reverse(),e}(a,b,f),index:g}}}function L(a,b){let c=a[b?0:a.length-1];if(!c||c.attention)return;let d=b?F(c.value):G(c.value),e=(0,H.f)(d.codePointAt(0));c.value=b?e+c.value.slice(d.length):c.value.slice(0,c.value.length-d.length)+e}function M(a,b,c,d){let e,f=[],g=G(c),h=-1;for(;++h<a.length;){let c=a[h];if("string"==typeof c){let a={value:c,attention:void 0};e&&e===F(c)&&L([a],!0),e=void 0,f.push(a),a.value&&(g=G(a.value));continue}let i=b.get(c)||c.sequences[0],j=i.charAt(0),k=a[h+1],l=g,m=F(void 0===k?d:"string"==typeof k?k:b.get(k)||k.sequences[0]),n=M(c.children,b,i,i),o=n.length>0?n[0].value:"",p=I(l.charCodeAt(l.length-1),o.charCodeAt(0),j);p.inside&&L(n,!0);let q=n.length>0?G(n[n.length-1].value):"",r=I(m.charCodeAt(0),q.charCodeAt(q.length-1),j);r.inside&&L(n,!1),p.outside&&"\n"!==l&&"\r"!==l&&L(f,!1),r.outside&&(e=m),f.push({value:i,attention:c},...n,{value:i,attention:c}),g=i.charAt(i.length-1)}return f}function N(a,b,c){let d=new Map,e=M(a,d,b,c),f=e,g=K(f,b,c);for(;g;){let h=function(a,b,c,d,e){for(let f of c.attention){let g=b.get(f)||f.sequences[0];for(let h of f.sequences){if(h===g)continue;let i=new Map(b);i.set(f,h);let j=M(a,i,d,e),k=K(j,d,e);if(!k||k.index>c.index)return{chosen:i,mistake:k,tokens:j}}}}(a,d,g,b,c);if(!h){f=e;break}d=h.chosen,f=h.tokens,g=h.mistake}let h="";for(let a of f)h+=a.value;return h}let O=/\r?\n|\r/g;function P(a,b){let c,d=[],e=0,f=0;for(;c=O.exec(a);)g(a.slice(e,c.index)),d.push(c[0]),e=c.index+c[0].length,f++;return g(a.slice(e)),d.join("");function g(a){d.push(b(a,f,!a))}}var Q=a.i(289750);let R={}.hasOwnProperty;function S(a,b){return!a||!!b&&("string"==typeof a?a===b.type:a.includes(b.type))}function T(a,b){return a-b}function U(a,b){let c,d=/\\(?=[!-/:-@[-`{-~])/g,e=[],f=[],g=a+b,h=-1,i=0;for(;c=d.exec(g);)e.push(c.index);for(;++h<e.length;)i!==e[h]&&f.push(a.slice(i,e[h])),f.push("\\"),i=e[h];return f.push(a.slice(i)),f.join("")}function V(a){let b=a||{},c=b.now||{},d=b.lineShift||0,e=c.line||1,f=c.column||1;return{move:function(a){let b=a||"",c=b.split(/\r?\n|\r/g),g=c[c.length-1];return e+=c.length-1,f=1===c.length?f+g.length:1+g.length+d,b},current:function(){return{now:{line:e,column:f},lineShift:d}},shift:function(a){d+=a}}}function W(a){throw Error("Cannot handle value `"+a+"`, expected node")}function X(a){throw Error("Cannot handle unknown node `"+a.type+"`")}function Y(a,b){if("definition"===a.type&&a.type===b.type)return 0}function Z(a,b){return N(function a(b,c,d){let e=c.indexStack,f=b.children||[],g=[],h=-1,i=d.before;e.push(-1);let j=c.createTracker(d);for(;++h<f.length;){let k,l=f[h];if(e[e.length-1]=h,h+1<f.length){let a=c.handle.handlers[f[h+1].type];a&&a.peek&&(a=a.peek),k=a?F(a(f[h+1],b,c,{before:"",after:"",...j.current()})):""}else k=d.after;let m=g[g.length-1];"string"==typeof m&&("\r"===i||"\n"===i)&&"html"===l.type&&7!==w(l.value)&&(g[g.length-1]=m.replace(/(\r?\n|\r)$/," "),i=" ",(j=c.createTracker(d)).move(N(g,d.before,d.after)));let n=c.handle.handlers[l.type];if(n&&n.attention){let{construct:b,markers:d,sizes:e}=n.attention(l,c),f=function(a,b,c){if(0===b.length)throw Error("Cannot serialize `"+a+"` as attention without markers, expected one or more markers");if(0===c.length)throw Error("Cannot serialize `"+a+"` as attention without sizes, expected one or more sizes");for(let b of c)if(!Number.isSafeInteger(b)||b<1)throw Error("Cannot serialize `"+a+"` as attention with `"+b+"` as size, expected positive integer");let d=[];for(let e of b){if(1!==e.length)throw Error("Cannot serialize `"+a+"` as attention with `"+e+"` as marker, expected a single ascii character");if(!(0,u.c)(e.charCodeAt(0)))throw Error("Cannot serialize `"+a+"` as attention with `"+e+"` as marker, expected ascii punctuation");for(let a of c)d.push(e.repeat(a))}return d}(l.type,d,e),h=f[0],k=c.enter(b);j.move(h);let m=a(l,c,{...j.current(),before:h,after:h});j.move(N(m,h,h)),j.move(h),k(),g.push({children:m,sequences:f}),i=h.charAt(h.length-1)}else{let a=c.handle(l,b,c,{...j.current(),after:k,before:i});if(!a)continue;j.move(a),g.push(a),i=G(a)}}return e.pop(),g}(a,this,b),b.before,b.after)}function $(a,b){return function(a,b,c){let d=b.indexStack,e=a.children||[],f=b.createTracker(c),g=[],h=-1;for(d.push(-1);++h<e.length;){let c=e[h];d[d.length-1]=h,g.push(f.move(b.handle(c,a,b,{before:"\n",after:"\n",...f.current()}))),"list"!==c.type&&(b.bulletLastUsed=void 0),h<e.length-1&&g.push(f.move(function(a,b,c,d){let e=d.join.length;for(;e--;){let f=d.join[e](a,b,c,d);if(!0===f||1===f)break;if("number"==typeof f)return"\n".repeat(1+f);if(!1===f)return"\n\n<!---->\n\n"}return"\n\n"}(c,e[h+1],a,b)))}return d.pop(),g.join("")}(a,this,b)}function _(a,b){return function(a,b,c){let d=(c.before||"")+(b||"")+(c.after||""),e=[],f=[],g={},h=a.stack.includes("autolink"),i=c.before?c.before.length:0,j=d.length-(c.after?c.after.length:0),k=-1;for(;++k<a.unsafe.length;){let b,f=a.unsafe[k];if(!(0,Q.f)(a.stack,f)||!S(f.beforeNode,c.beforeNode)||!S(f.afterNode,c.afterNode))continue;let h=a.compilePattern(f),l=f.beforeNode?i:0,m=d.slice(l,f.afterNode?j:void 0);for(;b=h.exec(m);){let a="before"in f||!!f.atBreak,c="after"in f,d=l+b.index+(a?b[1].length:0);R.call(g,d)?(g[d].before&&!a&&(g[d].before=!1),g[d].after&&!c&&(g[d].after=!1)):(e.push(d),g[d]={before:a,after:c})}}e.sort(T);let l=i;for(k=-1;++k<e.length;){let a=e[k];if(!(a<l)&&!(a>=j)){if("_"===d.charAt(a)&&a>0&&void 0===(0,E.f)(d.charCodeAt(a-1))&&!R.call(g,a-1)&&!(a-1===i&&/[*_]/.test(d.charAt(i-1)))){let b=a+1;for(;b<j&&"_"===d.charAt(b);)b++;let c=b-a-1;if(e[k+c]===b-1&&b<d.length&&void 0===(0,E.f)(d.charCodeAt(b))&&!R.call(g,b)&&!(b===j-1&&/[*_]/.test(d.charAt(j)))){k+=c;continue}}if((!(a+1<j)||e[k+1]!==a+1||!g[a].after||g[a+1].before||g[a+1].after)&&(e[k-1]!==a-1||!g[a].before||g[a-1].before||g[a-1].after)){if(l!==a){let b=d.slice(l,a);f.push(h?b:U(b,"\\"))}l=a,h?(f.push("%"+d.charCodeAt(a).toString(16).toUpperCase().padStart(2,"0")),l++):!/[!-/:-@[-`{-~]/.test(d.charAt(a))||c.encode&&c.encode.includes(d.charAt(a))?(f.push((0,H.f)(d.charCodeAt(a))),l++):f.push("\\")}}}let m=d.slice(l,j);return f.push(h?m:U(m,c.after)),f.join("")}(this,a,b)}let aa=(0,a.i(632252).f)().use(n.f).use(function(a){let b=this;b.compiler=function(c){var d;let e,f;return d={...b.data("settings"),...a,extensions:b.data("toMarkdownExtensions")||[]},!function a(b,c){var d,e,f,g;let h,i=-1;if(c.extensions)for(;++i<c.extensions.length;)a(b,c.extensions[i]);for(h in c)if(q.call(c,h))switch(h){case"extensions":break;case"unsafe":case"join":d=b[h],(e=c[h])&&d.push(...e);break;case"handlers":f=b[h],(g=c[h])&&Object.assign(f,g);break;default:b.options[h]=c[h]}return b}(e={associationId:C,bulletCurrent:void 0,bulletLastUsed:void 0,containerPhrasing:Z,containerFlow:$,createTracker:V,compilePattern:D,enter:function(a){return e.stack.push(a),function(){e.stack.pop()}},handlers:{...r.f},handle:void 0,indentLines:P,indexStack:[],join:[...x],options:{},safe:_,stack:[],unsafe:[...z]},d||{}),e.options.tightDefinitions&&e.join.push(Y),e.handle=function(a,b){let c=b||{};function d(b,...c){let e=d.invalid,f=d.handlers;if(b&&p.call(b,a)){let c=String(b[a]);e=p.call(f,c)?f[c]:d.unknown}if(e)return e.call(this,b,...c)}return d.handlers=c.handlers||{},d.invalid=c.invalid,d.unknown=c.unknown,d}("type",{invalid:W,unknown:X,handlers:e.handlers}),(f=e.handle((0,o.f)(c)?{type:"root",children:[c]}:c,void 0,e,{before:"\n",after:"\n",now:{line:1,column:1},lineShift:0}))&&10!==f.charCodeAt(f.length-1)&&13!==f.charCodeAt(f.length-1)&&(f+="\n"),f}}).freeze(),ab={blockquote:ah,break:function(){return{type:"text",value:"\n"}},code:ai,definition:ai,delete:ah,emphasis:ah,footnoteReference:ai,footnoteDefinition:ai,heading:function(a){return{type:"paragraph",children:a.children}},html:ai,image:af,imageReference:af,inlineCode:ag,list:ah,listItem:ah,link:ah,linkReference:ah,strong:ah,table:ai,tableCell:ai,text:ag,thematicBreak:ai,toml:ai,yaml:ai},ac={},ad=[];function ae(a){let b={...ab},c=a||ac,d=c.keep||ad,e=c.remove||ad,f=-1;for(;++f<e.length;){let a=e[f];"string"==typeof a?b[a]=ai:b[a[0]]=a[1]}let g={};if(0===d.length)g=b;else{let a;for(a in b)d.includes(a)||(g[a]=b[a]);for(f=-1;++f<d.length;)if(!Object.hasOwn(b,a=d[f]))throw Error("Unknown node type `"+a+"` in `keep`, use a replace tuple with a handle instead: `remove: [['"+a+"', handle]]`")}return function(a){return h(a)};function h(a){let b=a.type,c=a;if(Object.hasOwn(g,b)){let a=g[b];a&&(c=a(c)||void 0)}return(c=Array.isArray(c)?i(c):c)&&"children"in c&&(c.children=i(c.children)),c}function i(a){let b=-1,c=[];for(;++b<a.length;){let d=h(a[b]);Array.isArray(d)?c.push(...i(d)):d&&c.push(d)}var d=c;let e,f=-1,g=[];for(;++f<d.length;){let a=d[f];e&&a.type===e.type&&"value"in a&&"value"in e?e.value+=a.value:(g.push(a),e=a)}return g}}function af(a){let b="title"in a?a.title:"",c=a.alt||b||"";return c?{type:"text",value:c}:void 0}function ag(a){return{type:"text",value:a.value}}function ah(a){return a.children}function ai(){}var aj=a.i(630534),ak=a.i(992883);a.s(["f",0,function({item:a,selectMode:n,selected:o,onToggleSelect:p,selectedTag:q,onTagClick:r}){let s,{t,language:u}=(0,j.b)(),{timeZone:v}=(0,k.M)(),[w,x]=(0,c.useState)(!1),y=(0,m.f)(a),z=y.length-3,A=a.masteryStatus??"new";return(0,b.jsxs)("div",{className:"relative animate-in fade-in duration-300",children:[n&&(0,b.jsx)("div",{className:"absolute top-2 left-2 z-10",onClick:a=>{a.preventDefault(),a.stopPropagation(),p()},children:(0,b.jsx)(i.f,{checked:o,"aria-label":t.questionSimilarity.selectQuestion.replace("{id}",a.shortId||a.id),className:"h-5 w-5 border-2 bg-background shadow-sm"})}),(0,b.jsx)(d.default,{href:n?"#":`/error-items/${a.id}`,onClick:a=>n&&a.preventDefault(),children:(0,b.jsxs)(h.N,{className:`h-full cursor-pointer gap-2 rounded-2xl border-l-4 pt-4 transition-all hover:-translate-y-0.5 hover:shadow-md ${f.o[A]} ${n&&o?"ring-2 ring-primary":"hover:border-primary/40"}`,children:[(0,b.jsx)(h.Y,{className:"pb-0",children:(0,b.jsxs)("div",{className:`flex justify-between items-start ${n?"pl-7":""}`,children:[(0,b.jsx)(f.x,{status:A}),(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:["number"==typeof a.masteryProbability&&(0,b.jsxs)("span",{title:t.mastery.probability,children:[Math.round(100*a.masteryProbability),"%"]}),a.shortId&&(0,b.jsx)("span",{className:"font-mono",children:a.shortId}),(0,l.r)(a.createdAt,"MM/dd",v)]})]})}),(0,b.jsxs)(h.O,{children:[(0,b.jsx)("div",{className:"text-sm line-clamp-3",children:(s=function(a){if(!a)return"";try{let b=a.replace(/\\_/g,"_"),c=aa().use(ae).processSync(b);return b=(b=String(c)).replace(/\\left/g,"").replace(/\\right/g,"").replace(/\\begin\{.*?\}/g,"").replace(/\\end\{.*?\}/g,"").replace(/\\text\{.*?\}/g,"").replace(/\\mbox\{.*?\}/g,"").replace(/\\frac\s*\{([^{}]+)\}\s*\{([^{}]+)\}/g,"$1/$2").replace(/\\sqrt\s*\{([^{}]+)\}/g,"√$1").replace(/\^\{([^{}]+)\}/g,"^$1").replace(/_\{([^{}]+)\}/g,"_$1").replace(/\\times/g,"×").replace(/\\div/g,"÷").replace(/\\cdot/g,"·").replace(/\\le/g,"≤").replace(/\\ge/g,"≥").replace(/\\neq/g,"≠").replace(/\\approx/g,"≈").replace(/\\pm/g,"±").replace(/\\infty/g,"∞").replace(/\\circ/g,"°").replace(/\\triangle/g,"△").replace(/\\angle/g,"∠").replace(/\\because/g,"∵").replace(/\\therefore/g,"∴").replace(/\$/g,"").replace(/\\/g,"").trim()}catch(b){return aj.f.error("[Markdown]","Failed to strip markdown",{error:b}),a}}((a.questionText||"").split("\n\n")[0])).length>80?s.substring(0,80)+"...":s}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-3",children:[(0,b.jsx)(g.f,{variant:"secondary",className:"text-xs",children:(0,ak.i)(a.mistakeStatus,u)}),(0,b.jsx)(e.f,{value:a.difficultyStars,showUnrated:!1})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 mt-3",children:[(w?y:y.slice(0,3)).map(a=>(0,b.jsx)(g.f,{variant:q===a?"default":"outline",className:"text-xs cursor-pointer hover:bg-primary/10 transition-colors",onClick:b=>{b.preventDefault(),r(a)},children:a},a)),z>0&&(0,b.jsx)(g.f,{variant:"secondary",className:"text-xs cursor-pointer hover:bg-secondary/80 transition-colors",title:w?t.notebooks?.collapseTagsTooltip||"Click to collapse":(t.notebooks?.expandTagsTooltip||"Click to expand {count} tags").replace("{count}",z.toString()),onClick:a=>{a.preventDefault(),a.stopPropagation(),x(!w)},children:w?t.notebooks?.collapseTags||"Collapse":(t.notebooks?.expandTags||"+{count} more").replace("{count}",z.toString())})]})]})]})})]})}],263323);var al=a.i(699570),am=a.i(170106);let an=(0,am.f)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var ao=a.i(50522);let ap=(0,am.f)("chevrons-left",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]),aq=(0,am.f)("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]);var ar=a.i(697902);a.s(["f",0,function({page:a,totalPages:c,onPageChange:d,total:e,pageSize:f}){let{t:g}=(0,j.b)();if(c<=1)return null;let h=a>1,i=a<c,k=(()=>{let b=[];if(c<=ar.u)for(let a=1;a<=c;a++)b.push(a);else{b.push(1),a>3&&b.push("ellipsis");let d=Math.max(2,a-1),e=Math.min(c-1,a+1);for(let a=d;a<=e;a++)b.push(a);a<c-2&&b.push("ellipsis"),b.push(c)}return b})();return(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 py-4",children:[void 0!==e&&void 0!==f&&(0,b.jsx)("div",{className:"text-sm text-muted-foreground order-2 sm:order-1",children:(g.pagination?.showing||"Showing {start}-{end} of {total}").replace("{start}",((a-1)*f+1).toString()).replace("{end}",Math.min(a*f,e).toString()).replace("{total}",e.toString())}),(0,b.jsxs)("div",{className:"flex items-center gap-1 order-1 sm:order-2",children:[(0,b.jsx)(al.f,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(1),disabled:!h,title:g.pagination?.first||"First page",children:(0,b.jsx)(ap,{className:"h-4 w-4"})}),(0,b.jsx)(al.f,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(a-1),disabled:!h,title:g.pagination?.prev||"Previous page",children:(0,b.jsx)(an,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"hidden sm:flex items-center gap-1",children:k.map((c,e)=>"ellipsis"===c?(0,b.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},`ellipsis-${e}`):(0,b.jsx)(al.f,{variant:c===a?"default":"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(c),children:c},c))}),(0,b.jsxs)("span",{className:"sm:hidden text-sm px-2",children:[a," / ",c]}),(0,b.jsx)(al.f,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(a+1),disabled:!i,title:g.pagination?.next||"Next page",children:(0,b.jsx)(ao.f,{className:"h-4 w-4"})}),(0,b.jsx)(al.f,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(c),disabled:!i,title:g.pagination?.last||"Last page",children:(0,b.jsx)(aq,{className:"h-4 w-4"})})]})]})}],882524)}];
2
+
3
+ //# sourceMappingURL=src_components_error-list_error-item-card_tsx_1zsiqsrj-jjd7._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[946862,214491,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(405784),h=a.i(767552),i=a.i(596221),j=a.i(915618),k=a.i(808406),l=a.i(781560),m=a.i(786304),n=a.i(699570),o=a.i(591119),p=a.i(93907),q=a.i(114548),r=a.i(866718),s=a.i(226897),t=a.i(550194),u=a.i(291938);function v({errorItemId:a,onSaved:d,onCancel:g}){let{t:h}=(0,t.b)(),{timeZone:j}=(0,e.M)(),k=(0,f.r)(new Date,"yyyy-MM-dd",j),[l,m]=(0,c.useState)(null),[o,p]=(0,c.useState)(k),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=async()=>{if(l&&o){x(!0),z(null);try{await u.f.post("/api/practice/record",{errorItemId:a,result:l,source:"manual",takenAt:(0,f.$)(o,j)}),d()}catch{z(h.mastery.resultSaveFailed)}finally{x(!1)}}};return(0,b.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,b.jsx)(s.f,{value:l,onChange:m,disabled:w}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,b.jsx)("label",{htmlFor:`practice-date-${a}`,className:"text-sm font-medium",children:h.mastery.recordDate}),(0,b.jsx)(r.f,{id:`practice-date-${a}`,type:"date",value:o,max:k,onChange:a=>p(a.target.value),className:"sm:w-48"}),(0,b.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,b.jsx)(n.f,{variant:"outline",size:"sm",onClick:g,disabled:w,className:"flex-1 sm:flex-none",children:h.exam.cancel}),(0,b.jsxs)(n.f,{size:"sm",onClick:A,disabled:w||!l||!o,className:"flex-1 sm:flex-none",children:[w?(0,b.jsx)(i.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(q.f,{className:"mr-2 h-4 w-4"}),h.mastery.saveResult]})]})]}),y&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y})]})}var w=a.i(418943),x=a.i(710302);let y={correct:"bg-green-100 text-green-700 border-green-200",wrong:"bg-red-100 text-red-700 border-red-200",not_attempted:"bg-amber-100 text-amber-700 border-amber-200"};a.s(["K",0,function({errorItemId:a,onMasteryStatusChange:q}){let{timeZone:r}=(0,e.M)(),{t:s}=(0,t.b)(),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null),[D,E]=(0,c.useState)(0),[F,G]=(0,c.useState)(!1),H=(0,c.useCallback)(()=>{u.f.get(`/api/error-items/${a}/practice-records`).then(a=>{A(a),q?.(a.masteryStatus)}).catch(()=>void 0)},[a,q]);(0,c.useEffect)(H,[H]);let I=()=>{E(0),H()},J=async a=>{if(await (0,x.u)(s.mastery.deleteRecordConfirm,{destructive:!0}))try{await u.f.delete(`/api/practice/record/${a}`),I()}catch{x.c.error(s.mastery.deleteRecordFailed)}},K=z?.records[0],L=!!K&&(!z?.masteryEvaluatedAt||new Date(K.createdAt)>new Date(z.masteryEvaluatedAt));if((0,c.useEffect)(()=>{if(!L||D>=20)return;let a=setTimeout(()=>{E(a=>a+1),H()},4e3);return()=>clearTimeout(a)},[L,D,H]),!z)return null;let M=z.masteryProbability,N=null===M?null:Math.round(100*M),O=null===N?"":null!==M&&M>=.5?"bg-green-500":N>=30?"bg-amber-500":"bg-red-500",P=s.practice.difficulty;return(0,b.jsxs)(o.N,{children:[(0,b.jsx)(o.Y,{children:(0,b.jsxs)(o.v,{className:"flex items-center gap-2 text-base",children:[(0,b.jsx)(k.f,{className:"h-4 w-4 text-primary"}),s.mastery.probability]})}),(0,b.jsxs)(o.O,{className:"space-y-4",children:[null===N?(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:L?s.mastery.pending:s.mastery.notEvaluated}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,b.jsxs)("span",{className:"text-3xl font-bold",children:[N,"%"]}),(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[L&&(0,b.jsx)(i.f,{className:"h-3 w-3 animate-spin"}),(0,b.jsx)(m.f,{variant:"outline",children:"ai"===z.masterySource?s.mastery.aiEvaluated:s.mastery.estimated})]})]}),(0,b.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,b.jsx)("div",{className:`h-full ${O} transition-all`,style:{width:`${N}%`}})}),z.masteryReason&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:z.masteryReason}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:s.mastery.thresholdHint})]}),(0,b.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold",children:s.mastery.history}),!F&&(0,b.jsxs)(n.f,{variant:"outline",size:"sm",onClick:()=>G(!0),children:[(0,b.jsx)(j.f,{className:"mr-1 h-4 w-4"}),s.mastery.addRecord]})]}),F&&(0,b.jsx)(v,{errorItemId:a,onCancel:()=>G(!1),onSaved:()=>{G(!1),I()}}),0===z.records.length?(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:s.mastery.noHistory}):(0,b.jsx)("ul",{className:"divide-y rounded-md border",children:z.records.map(a=>(0,b.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>C(B===a.id?null:a.id),children:[(0,b.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,f.r)(a.createdAt,"yyyy-MM-dd HH:mm",r)}),(0,b.jsx)(m.f,{variant:"outline",className:y[a.result]||"",children:s.mastery.results[a.result]||a.result}),a.difficulty&&(0,b.jsx)(m.f,{variant:"secondary",children:P[a.difficulty]||a.difficulty}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:a.exam?`${s.mastery.sources.exam} \xb7 ${a.exam.title}`:s.mastery.sources[a.source]||s.mastery.sources.practice}),a.questionText&&(0,b.jsx)("span",{className:"ml-auto text-muted-foreground",children:B===a.id?(0,b.jsx)(h.f,{className:"h-4 w-4"}):(0,b.jsx)(g.f,{className:"h-4 w-4"})})]}),(0,b.jsx)("button",{type:"button","aria-label":s.mastery.deleteRecord,title:s.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>J(a.id),children:(0,b.jsx)(l.f,{className:"h-4 w-4"})})]}),B===a.id&&a.questionText&&(0,b.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,b.jsx)(p.f,{content:a.questionText}),(0,b.jsx)(w.f,{svg:a.figureSvg}),a.wrongAnswerText&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.wrongAnswerText}),(0,b.jsx)(p.f,{content:a.wrongAnswerText})]}),a.mistakeAnalysis&&(0,b.jsxs)("div",{className:"border-t pt-2",children:[(0,b.jsx)("p",{className:"mb-1 font-medium",children:s.editor.mistakeAnalysis}),(0,b.jsx)(p.f,{content:a.mistakeAnalysis})]}),a.originalImageUrl&&(0,b.jsx)("img",{src:a.originalImageUrl,alt:s.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),a.answerText&&(0,b.jsx)("div",{className:"border-t pt-2",children:(0,b.jsx)(p.f,{content:a.answerText,className:"font-semibold"})}),a.exam&&(0,b.jsx)(d.default,{href:`/exams/${a.exam.paperId}`,className:"text-xs text-primary hover:underline",children:a.exam.title})]})]},a.id))})]})]})]})},"x",0,y],946862);var z=a.i(367295);a.s(["f",()=>z.f],214491)}];
2
+
3
+ //# sourceMappingURL=src_components_mastery-panel_tsx_1--j5c7mhomdp._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[226897,a=>{"use strict";var b=a.i(187924),c=a.i(816201);let d=(0,a.i(170106).f)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var e=a.i(862722),f=a.i(550194);let g=[{value:"correct",icon:c.f,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:e.f,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:d,active:"border-amber-600 bg-amber-50 text-amber-700"}];a.s(["f",0,function({value:a,onChange:c,disabled:d,size:e="md"}){let{t:h}=(0,f.b)(),i="sm"===e?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,b.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:g.map(({value:f,icon:g,active:j})=>(0,b.jsxs)("button",{type:"button",role:"radio","aria-checked":a===f,disabled:d,onClick:()=>c(f),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${i} ${a===f?j:"border-input hover:bg-muted"}`,children:[(0,b.jsx)(g,{className:"sm"===e?"h-3 w-3":"h-4 w-4"}),h.mastery.results[f]]},f))})}],226897)}];
2
+
3
+ //# sourceMappingURL=src_components_practice-result-picker_tsx_06jytymet6adu._.js.map
@@ -0,0 +1,193 @@
1
+ module.exports=[418175,a=>{"use strict";var b=a.i(187924),c=a.i(550194),d=a.i(875003),e=a.i(529759),f=a.i(16644),g=a.i(238246),h=a.i(50944),i=a.i(839761),j=a.i(953722),k=a.i(327999),l=a.i(104720),m=a.i(170106);let n=(0,m.f)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),o=(0,m.f)("circle-plus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]),p=(0,m.f)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),q=(0,m.f)("tags",[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]]);var r=a.i(572131);let s=(0,m.f)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),t=(0,m.f)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),u=(0,m.f)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var v=a.i(149625),w=a.i(596221);let x=(0,m.f)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]),y=(0,m.f)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var z=a.i(546842),A=a.i(699570),B=a.i(814574),C=a.i(875083),D=a.i(986705),E=a.i(786304),F=a.i(507554),G=a.i(470121),H=a.i(750104),I=a.i(225152),J=a.i(3688),K=a.i(30553),L=Object.defineProperty,M=(a,b)=>L(a,"name",{value:b,configurable:!0}),N="Switch",[O,P]=(0,H.f)(N),[Q,R]=O(N);function S(a){let{__scopeSwitch:c,checked:d,children:e,defaultChecked:f,disabled:g,form:h,name:i,onCheckedChange:j,required:k,value:l="on",internal_do_not_use_render:m}=a,[n,o]=(0,I.f)({prop:d,defaultProp:f??!1,onChange:j,caller:N}),[p,q]=r.useState(null),[s,t]=r.useState(null),[u,v]=r.useState(null),w=!p||!!h||!!p.closest("form"),x={checked:n,setChecked:o,disabled:g,control:p,setControl:q,name:i,form:h,value:l,userClick:u,onUserClick:v,required:k,defaultChecked:f,isFormControl:w,bubbleInput:s,setBubbleInput:t};return(0,b.jsx)(Q,{scope:c,...x,children:X(m)?m(x):e})}M(S,"SwitchProvider");var T=r.forwardRef(M(function({__scopeSwitch:a,onClick:c,...d},e){let{control:f,form:g,value:h,disabled:i,checked:j,required:k,setControl:l,setChecked:m,onUserClick:n,isFormControl:o,bubbleInput:p}=R("SwitchTrigger",a),q=(0,G.f)(e,l),s=r.useRef(j);return r.useEffect(()=>{let a=g?f?.ownerDocument.getElementById(g):f?.form;if(a instanceof HTMLFormElement){let b=M(()=>m(s.current),"reset");return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[f,g,m]),(0,b.jsx)(K.V.button,{type:"button",role:"switch","aria-checked":j,"aria-required":k,"data-state":Y(j),"data-disabled":i?"":void 0,disabled:i,value:h,...d,ref:q,onClick:(0,F.f)(c,a=>{let b=a.isPropagationStopped();n({requestedChecked:!j,hasConsumerStoppedPropagation:b}),m(a=>!a),p&&o&&!b&&a.stopPropagation()})})},"SwitchTrigger")),U=r.forwardRef(M(function(a,c){let{__scopeSwitch:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(S,{__scopeSwitch:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(T,{...m,ref:c,__scopeSwitch:d}),a&&(0,b.jsx)(W,{__scopeSwitch:d})]})})},"Switch")),V=r.forwardRef(M(function(a,c){let{__scopeSwitch:d,...e}=a,f=R("SwitchThumb",d);return(0,b.jsx)(K.V.span,{"data-state":Y(f.checked),"data-disabled":f.disabled?"":void 0,...e,ref:c})},"SwitchThumb")),W=r.forwardRef(M(function({__scopeSwitch:a,onClick:c,...d},e){let{control:f,userClick:g,checked:h,defaultChecked:i,required:j,disabled:k,name:l,value:m,form:n,bubbleInput:o,setBubbleInput:p}=R("SwitchBubbleInput",a),q=(0,G.f)(e,p),s=(0,J.f)(f),t=r.useRef(!1),u=r.useRef(h),v=r.useRef(g),w=r.useRef(null);r.useEffect(()=>{if(!o)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(!a)return;let b=u.current!==h;u.current=h;let c=null!==g&&g!==v.current;if(v.current=g,c)w.current=b?null:g,b&&a.call(o,h),o.dispatchEvent(new Event("click",{bubbles:!g.hasConsumerStoppedPropagation}));else if(b){let b=w.current;w.current=null;let c=b?.requestedChecked===h;t.current=!0,a.call(o,h),o.dispatchEvent(new Event("click",{bubbles:!(c&&b.hasConsumerStoppedPropagation)})),t.current=!1}},[o,h,g]);let x=r.useRef(h);return(0,b.jsx)(K.V.input,{type:"checkbox","aria-hidden":!0,defaultChecked:i??x.current,required:j,disabled:k,name:l,value:m,form:n,...d,tabIndex:-1,ref:q,onClick:(0,F.f)(c,a=>{t.current&&a.stopPropagation()}),style:{...d.style,...s,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"SwitchBubbleInput"));function X(a){return"function"==typeof a}function Y(a){return a?"checked":"unchecked"}M(X,"isFunction"),M(Y,"getState");var Z=a.i(368114);let $=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)(U,{className:(0,Z.f)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",a),...c,ref:d,children:(0,b.jsx)(V,{className:(0,Z.f)("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));$.displayName=U.displayName;var _=a.i(866718),aa=a.i(870430);let ab=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{className:"relative w-full overflow-auto",children:(0,b.jsx)("table",{ref:d,className:(0,Z.f)("w-full caption-bottom text-sm",a),...c})}));ab.displayName="Table";let ac=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("thead",{ref:d,className:(0,Z.f)("[&_tr]:border-b",a),...c}));ac.displayName="TableHeader";let ad=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("tbody",{ref:d,className:(0,Z.f)("[&_tr:last-child]:border-0",a),...c}));ad.displayName="TableBody",(r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("tfoot",{ref:d,className:(0,Z.f)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...c}))).displayName="TableFooter";let ae=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("tr",{ref:d,className:(0,Z.f)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...c}));ae.displayName="TableRow";let af=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("th",{ref:d,className:(0,Z.f)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",a),...c}));af.displayName="TableHead";let ag=r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("td",{ref:d,className:(0,Z.f)("p-4 align-middle [&:has([role=checkbox])]:pr-0",a),...c}));ag.displayName="TableCell",(r.forwardRef(({className:a,...c},d)=>(0,b.jsx)("caption",{ref:d,className:(0,Z.f)("mt-4 text-sm text-muted-foreground",a),...c}))).displayName="TableCaption";var ah=a.i(781560);let ai=(0,m.f)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var aj=a.i(816201),ak=a.i(291938),al=a.i(710302),am=a.i(630534),an=a.i(960927);function ao(){let{timeZone:a}=(0,e.M)(),{data:f}=(0,d.useSession)(),{t:g}=(0,c.b)(),[h,i]=(0,r.useState)([]),[j,k]=(0,r.useState)(!0),[l,m]=(0,r.useState)(!1),[n,o]=(0,r.useState)(!1),[p,q]=(0,r.useState)("0"),[s,t]=(0,r.useState)(!1),u=(0,r.useCallback)(async()=>{k(!0);try{let a=await ak.f.get("/api/admin/users");i(a)}catch(a){am.f.error("[UserManagement]","Failed to fetch users",{error:a})}finally{k(!1)}},[]),v=(0,r.useCallback)(async()=>{try{let a=await ak.f.get("/api/settings");m(!0===a.allowRegistration),q(String(a.aiDailyLimit??0))}catch(a){am.f.error("[UserManagement]","Failed to fetch config",{error:a})}},[]);(0,r.useEffect)(()=>{u(),v()},[u,v]);let x=async a=>{o(!0);try{await ak.f.post("/api/settings",{allowRegistration:a}),m(a)}catch(a){am.f.error("[UserManagement]","Failed to update registration setting",{error:a}),al.c.error(g.common.error)}finally{o(!1)}},y=Number(p),z=""!==p.trim()&&Number.isInteger(y)&&y>=0,B=async()=>{if(z){t(!0);try{await ak.f.post("/api/settings",{aiDailyLimit:y}),al.c.success(g.admin.aiDailyLimitSaved)}catch(a){am.f.error("[UserManagement]","Failed to update AI daily limit",{error:a}),al.c.error(g.common.error)}finally{t(!1)}}},C=async a=>{let b=a.isActive?g.admin.confirmDisable:g.admin.confirmEnable;if(await (0,al.u)(b))try{await ak.f.patch(`/api/admin/users/${a.id}`,{isActive:!a.isActive}),u()}catch(a){am.f.error("[UserManagement]","Failed to update user status",{error:a}),al.c.error(g.common.error)}},F=async a=>{if(await (0,al.u)(g.admin.confirmDelete,{destructive:!0}))try{await ak.f.delete(`/api/admin/users/${a.id}`),u()}catch(b){am.f.error("[UserManagement]","Failed to delete user",{error:b});let a=(0,an.d)(b)||g.common.error;al.c.error(a)}};return j?(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)(w.f,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between p-4 border rounded-lg bg-muted/30",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)(aa.f,{className:"text-base",children:g.admin?.allowRegistration||"Allow New Registrations"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:g.admin?.allowRegistrationDesc||"When disabled, new users cannot register"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,b.jsx)(w.f,{className:"h-4 w-4 animate-spin"}),(0,b.jsx)($,{checked:l,onCheckedChange:x,disabled:n})]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3 p-4 border rounded-lg bg-muted/30 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)(aa.f,{htmlFor:"ai-daily-limit",className:"text-base",children:g.admin.aiDailyLimit}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:g.admin.aiDailyLimitDesc})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(_.f,{id:"ai-daily-limit",type:"number",min:0,step:1,inputMode:"numeric",value:p,onChange:a=>q(a.target.value),"aria-invalid":!z,className:"w-24"}),(0,b.jsxs)(A.f,{size:"sm",onClick:B,disabled:s||!z,children:[s&&(0,b.jsx)(w.f,{className:"mr-2 h-4 w-4 animate-spin"}),g.common.save]})]})]}),(0,b.jsx)("div",{className:"sm:hidden space-y-3",children:h.map(c=>(0,b.jsxs)("div",{className:"border rounded-lg p-4 bg-card space-y-3",children:[(0,b.jsxs)("div",{className:"flex justify-between items-start",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:c.name||"N/A"}),(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:c.email})]}),(0,b.jsx)(E.f,{variant:"admin"===c.role?"default":"secondary",children:"admin"===c.role?g.admin.admin:g.admin.user})]}),(0,b.jsxs)("div",{className:"flex justify-between text-sm",children:[(0,b.jsxs)("div",{className:"text-muted-foreground",children:[g.admin.errors,": ",c._count.errorItems," | ",g.admin.practiceCount,": ",c._count.practiceRecords," | ",g.admin.aiUsageToday,": ",c.aiUsageToday]}),(0,b.jsx)(E.f,{variant:c.isActive?"default":"destructive",className:"text-xs",children:c.isActive?g.admin.active:g.admin.disabled})]}),(0,b.jsxs)("div",{className:"flex justify-between items-center pt-2 border-t",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:(0,D.r)(c.createdAt,"yyyy-MM-dd",a)}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(A.f,{variant:"ghost",size:"sm",onClick:()=>C(c),disabled:c.id===f?.user?.id,children:c.isActive?(0,b.jsx)(ai,{className:"h-4 w-4 text-orange-500"}):(0,b.jsx)(aj.f,{className:"h-4 w-4 text-green-500"})}),(0,b.jsx)(A.f,{variant:"ghost",size:"sm",onClick:()=>F(c),disabled:c.id===f?.user?.id,children:(0,b.jsx)(ah.f,{className:"h-4 w-4 text-destructive"})})]})]})]},c.id))}),(0,b.jsx)("div",{className:"hidden sm:block border rounded-lg overflow-hidden",children:(0,b.jsxs)(ab,{children:[(0,b.jsx)(ac,{children:(0,b.jsxs)(ae,{children:[(0,b.jsx)(af,{children:g.admin.nameEmail}),(0,b.jsx)(af,{children:g.admin.role}),(0,b.jsx)(af,{children:g.admin.stats}),(0,b.jsx)(af,{children:g.admin.createdAt}),(0,b.jsx)(af,{children:g.admin.status}),(0,b.jsx)(af,{className:"text-right",children:g.admin.actions})]})}),(0,b.jsx)(ad,{children:h.map(c=>(0,b.jsxs)(ae,{children:[(0,b.jsxs)(ag,{children:[(0,b.jsx)("div",{className:"font-medium",children:c.name||"N/A"}),(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:c.email})]}),(0,b.jsx)(ag,{children:(0,b.jsx)(E.f,{variant:"admin"===c.role?"default":"secondary",children:"admin"===c.role?g.admin.admin:g.admin.user})}),(0,b.jsxs)(ag,{children:[(0,b.jsxs)("div",{className:"text-sm",children:[g.admin.errors,": ",c._count.errorItems]}),(0,b.jsxs)("div",{className:"text-sm",children:[g.admin.practiceCount,": ",c._count.practiceRecords]}),(0,b.jsxs)("div",{className:"text-sm",children:[g.admin.aiUsageToday,": ",c.aiUsageToday]})]}),(0,b.jsx)(ag,{children:(0,D.r)(c.createdAt,"yyyy-MM-dd",a)}),(0,b.jsx)(ag,{children:(0,b.jsx)(E.f,{variant:c.isActive?"default":"destructive",children:c.isActive?g.admin.active:g.admin.disabled})}),(0,b.jsxs)(ag,{className:"text-right space-x-2",children:[(0,b.jsx)(A.f,{variant:"ghost",size:"sm",onClick:()=>C(c),disabled:c.id===f?.user?.id,title:c.isActive?g.admin.disable:g.admin.enable,children:c.isActive?(0,b.jsx)(ai,{className:"h-4 w-4 text-orange-500"}):(0,b.jsx)(aj.f,{className:"h-4 w-4 text-green-500"})}),(0,b.jsx)(A.f,{variant:"ghost",size:"sm",onClick:()=>F(c),disabled:c.id===f?.user?.id,title:g.admin.delete,children:(0,b.jsx)(ah.f,{className:"h-4 w-4 text-destructive"})})]})]},c.id))})]})})]})}let ap=(0,m.f)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),aq=(0,m.f)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),ar=(0,m.f)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]),as=(0,m.f)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);function at(){return null}let au=()=>()=>void 0;function av(){let{t:a}=(0,c.b)(),d=(0,r.useSyncExternalStore)(au,at,()=>null);return d?d.isStandalone?.()?(0,b.jsx)("p",{className:"text-center text-sm text-muted-foreground",children:a.settings?.about?.androidStandalone||"Running on this device. Data is stored only on this device."}):(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsxs)("span",{className:"break-all",children:[a.settings?.about?.androidServer||"Server",": ",d.getServerUrl()]}),(0,b.jsxs)(A.f,{variant:"outline",className:"gap-2",onClick:()=>d.changeServer(),children:[(0,b.jsx)(as,{className:"h-4 w-4"}),a.settings?.about?.changeServer||"Change server"]})]}):null}let aw="https://github.com/margrop/wrong-notebook";function ax(){let{t:a}=(0,c.b)(),[d,e]=(0,r.useState)("");(0,r.useEffect)(()=>{fetch("/api/version").then(a=>a.json()).then(a=>e(a.version)).catch(()=>{})},[]);let f=[{href:aw,icon:aq,label:a.settings?.about?.github||"GitHub Repository"},{href:`${aw}/releases`,icon:ar,label:a.settings?.about?.releaseNotes||"Release Notes"},{href:`${aw}/issues`,icon:x,label:a.settings?.about?.feedback||"Feedback"}];return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-6 py-8 text-center bg-muted/30 rounded-lg border",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("h3",{className:"text-2xl font-bold",children:a.app?.title||"Smart Error Notebook"}),(0,b.jsx)("p",{className:"text-muted-foreground",children:a.settings?.about?.desc||"AI-powered learning assistant"})]}),(0,b.jsxs)("div",{className:"flex items-center space-x-2 text-sm text-muted-foreground border px-4 py-2 rounded-full bg-background",children:[(0,b.jsx)(u,{className:"h-4 w-4"}),(0,b.jsxs)("span",{children:[a.settings?.about?.version||"Version",": v",d||"unknown"]})]}),(0,b.jsx)(av,{}),(0,b.jsx)("div",{className:"flex flex-col sm:flex-row flex-wrap justify-center gap-4 w-full sm:w-auto px-4 sm:px-0",children:f.map(({href:a,icon:c,label:d})=>(0,b.jsx)(A.f,{variant:"outline",asChild:!0,className:"gap-2 w-full sm:w-auto",children:(0,b.jsxs)("a",{href:a,target:"_blank",rel:"noopener noreferrer",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),d,(0,b.jsx)(ap,{className:"h-3 w-3 ml-1 opacity-50"})]})},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-8",children:a.settings?.about?.copyright||"© 2026 margrop · Based on wttwins/wrong-notebook · MIT License"})]})}var ay=a.i(177156),az=a.i(141379);function aA({className:a,...d}){let{t:e}=(0,c.b)(),[f,g]=(0,r.useState)(!1);return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(_.f,{type:f?"text":"password",className:(0,Z.f)("pr-10",a),...d}),(0,b.jsx)(A.f,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",onClick:()=>g(!f),"aria-label":f?e.common.hidePassword:e.common.showPassword,tabIndex:-1,children:f?(0,b.jsx)(az.f,{className:"h-4 w-4 text-muted-foreground"}):(0,b.jsx)(ay.f,{className:"h-4 w-4 text-muted-foreground"})})]})}var aB=a.i(580701);let aC={name:"",email:"",educationStage:"",enrollmentYear:"",password:""};function aD(){let{t:a}=(0,c.b)(),[d,e]=(0,r.useState)(aC),[f,g]=(0,r.useState)(""),[h,i]=(0,r.useState)(!0),[j,k]=(0,r.useState)(!1),l=(0,r.useCallback)(async()=>{try{let a=await ak.f.get("/api/user");e({name:a.name||"",email:a.email||"",educationStage:a.educationStage||"",enrollmentYear:a.enrollmentYear||"",password:""})}catch(a){am.f.error("[AccountSettings]","Failed to fetch profile",{error:a})}finally{i(!1)}},[]);(0,r.useEffect)(()=>{l()},[l]);let m=async()=>{if(d.password&&d.password!==f)return void al.c.error(a.settings?.messages?.passwordMismatch||"Passwords do not match");k(!0);try{let b={name:d.name,email:d.email,educationStage:d.educationStage};d.enrollmentYear&&(b.enrollmentYear=parseInt(d.enrollmentYear.toString())),d.password&&(b.password=d.password),await ak.f.patch("/api/user",b),al.c.success(a.settings?.messages?.profileUpdated||"Profile updated"),e(a=>({...a,password:""})),g(""),window.location.reload()}catch(b){am.f.error("[AccountSettings]","Failed to update profile",{error:(0,an.d)(b)??(0,an.Z)(b)}),al.c.error((0,an.d)(b)||a.settings?.messages?.updateFailed||"Update failed")}finally{k(!1)}};return h?(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)(w.f,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):(0,b.jsxs)("div",{className:"space-y-4 border rounded-lg p-4 bg-muted/30",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:a.auth?.name||"Name"}),(0,b.jsx)(_.f,{value:d.name||"",onChange:a=>e({...d,name:a.target.value})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:a.auth?.email||"Email"}),(0,b.jsx)(_.f,{value:d.email||"",onChange:a=>e({...d,email:a.target.value}),type:"email"})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:a.auth?.educationStage||"Education Stage"}),(0,b.jsxs)(aB.d,{value:d.educationStage||"",onValueChange:a=>e({...d,educationStage:a}),children:[(0,b.jsx)(aB.P,{children:(0,b.jsx)(aB.U,{placeholder:a.auth?.selectStage||"Select Stage"})}),(0,b.jsxs)(aB.r,{children:[(0,b.jsx)(aB.T,{value:"primary",children:a.auth?.primary||"Primary School"}),(0,b.jsx)(aB.T,{value:"junior_high",children:a.auth?.juniorHigh||"Junior High"}),(0,b.jsx)(aB.T,{value:"senior_high",children:a.auth?.seniorHigh||"Senior High"}),(0,b.jsx)(aB.T,{value:"university",children:a.auth?.university||"University"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:a.auth?.enrollmentYear||"Enrollment Year"}),(0,b.jsx)(_.f,{type:"number",value:d.enrollmentYear||"",onChange:a=>e({...d,enrollmentYear:a.target.value}),placeholder:"YYYY"})]})]}),(0,b.jsxs)("div",{className:"space-y-3 pt-2 border-t",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:a.settings?.account?.changePassword||"Change Password (Leave empty to keep)"}),(0,b.jsx)(aA,{value:d.password,onChange:a=>e({...d,password:a.target.value}),placeholder:"******",minLength:6})]}),d.password&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:a.auth?.confirmPassword||"Confirm Password"}),(0,b.jsx)(aA,{value:f,onChange:a=>g(a.target.value),placeholder:"******",minLength:6})]})]}),(0,b.jsxs)(A.f,{onClick:m,disabled:j,className:"w-full",children:[j&&(0,b.jsx)(w.f,{className:"mr-2 h-4 w-4 animate-spin"}),a.settings?.account?.update||"Update Profile"]})]})}let aE=(0,m.f)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var aF=a.i(862722);let aG=(0,m.f)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),aH={minimax:{name:"MiniMax",baseUrl:"https://api.minimax.cn/v1",model:"MiniMax-M3.1-Flash",envPrefix:"MINIMAX",consoleUrl:"https://platform.minimax.cn"},glm:{name:"智谱 GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",model:"glm-5.3-flash",envPrefix:"GLM",consoleUrl:"https://open.bigmodel.cn"},deepseek:{name:"DeepSeek",baseUrl:"https://api.deepseek.com",model:"deepseek-flash",envPrefix:"DEEPSEEK",consoleUrl:"https://platform.deepseek.com"},kimi:{name:"Kimi",baseUrl:"https://api.moonshot.cn/v1",model:"kimi-k3",envPrefix:"KIMI",consoleUrl:"https://platform.kimi.com"}},aI=Object.keys(aH);function aJ(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(aH,a)}function aK({config:a,saving:d,saveButton:e}){let{t:f,language:g}=(0,c.b)(),[h,i]=(0,r.useState)(!1),[j,k]=(0,r.useState)(null),l=a=>f.settings?.ai?.errors?.[a]||a.replace("UNKNOWN:",""),m=async()=>{let b=function(a,b){let c=a.aiProvider;if("openai"===c){let d=a.openai?.instances?.find(b=>b.id===a.openai?.activeInstanceId);return d?.apiKey?{ok:!0,body:{provider:c,apiKey:d.apiKey,baseUrl:d.baseUrl,model:d.model,language:b}}:{ok:!1,error:"API_KEY_REQUIRED"}}if("azure"===c){let d=a.azure;return d?.apiKey&&d.endpoint&&d.deploymentName?{ok:!0,body:{provider:c,apiKey:d.apiKey,endpoint:d.endpoint,deploymentName:d.deploymentName,apiVersion:d.apiVersion,model:d.model,language:b}}:{ok:!1,error:"AZURE_CONFIG_INCOMPLETE"}}if("gemini"===c||"anthropic"===c||aJ(c)){let d=a[c];return d?.apiKey?{ok:!0,body:{provider:c,apiKey:d.apiKey,baseUrl:d.baseUrl,model:d.model,language:b}}:{ok:!1,error:"API_KEY_REQUIRED"}}return{ok:!1,error:"UNSUPPORTED_PROVIDER"}}(a,g);if(!b.ok){if("UNSUPPORTED_PROVIDER"===b.error)return;k({success:!1,textSupport:!1,visionSupport:!1,textError:"AZURE_CONFIG_INCOMPLETE"===b.error?f.settings?.ai?.validationAzureEndpointRequired||"Azure config is incomplete":f.settings?.ai?.validationApiKeyRequired||"API Key is required"});return}i(!0),k(null);try{k(await ak.f.post("/api/ai/test",b.body))}catch(a){am.f.error("[AiConnectionTest]","AI connection test failed",{error:a}),k({success:!1,textSupport:!1,visionSupport:!1,textError:(0,an.Z)(a)})}finally{i(!1)}};return(0,b.jsxs)("div",{className:"space-y-3 pt-3 border-t",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(A.f,{type:"button",variant:"outline",onClick:m,disabled:h||d,className:"flex-1",children:[h?(0,b.jsx)(w.f,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(aG,{className:"mr-2 h-4 w-4"}),h?f.settings?.ai?.testing||"Testing...":f.settings?.ai?.testConnection||"Test Connection"]}),e]}),j&&(0,b.jsxs)("div",{className:`p-3 rounded-md text-sm ${j.success?"bg-green-50 border border-green-200":"bg-red-50 border border-red-200"}`,children:[(0,b.jsx)("div",{className:"flex items-center gap-2 font-medium mb-2",children:j.success?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aE,{className:"h-4 w-4 text-green-600"}),(0,b.jsx)("span",{className:"text-green-700",children:f.settings?.ai?.testSuccess||"Connection Successful"}),j.modelInfo&&(0,b.jsxs)("span",{className:"text-green-600 text-xs",children:["(",j.modelInfo,")"]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aF.f,{className:"h-4 w-4 text-red-600"}),(0,b.jsx)("span",{className:"text-red-700",children:f.settings?.ai?.testFailed||"Connection Failed"})]})}),j.success&&(0,b.jsxs)("div",{className:"space-y-1 text-xs",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[f.settings?.ai?.textSupport||"Text Generation",":"]}),(0,b.jsxs)("span",{className:"text-green-600",children:["✓ ",f.settings?.ai?.supported||"Supported"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[f.settings?.ai?.visionSupport||"Vision/Multimodal",":"]}),j.visionSupport?(0,b.jsxs)("span",{className:"text-green-600",children:["✓ ",f.settings?.ai?.supported||"Supported"]}):(0,b.jsxs)("span",{className:"text-amber-600",children:["✗ ",j.visionError?l(j.visionError):f.settings?.ai?.notSupported||"Not Supported"]})]}),(0,b.jsx)("p",{className:"text-muted-foreground/60 text-[10px] pl-1",children:f.settings?.ai?.testNetworkNote})]}),!j.success&&j.textError&&(0,b.jsx)("p",{className:"text-red-600 text-xs mt-1",children:l(j.textError)})]})]})}var aL=a.i(669520);function aM({provider:a,apiKey:d,baseUrl:e,currentModel:f,onModelChange:g}){let{t:h}=(0,c.b)(),[i,j]=(0,r.useState)([]),[k,l]=(0,r.useState)(!1),[m,n]=(0,r.useState)(null),[o,p]=(0,r.useState)(f||""),[q,s]=(0,r.useState)(!1),[t,u]=(0,r.useState)(f);f!==t&&(u(f),p(f||""));let v=async()=>{if(!d)return void n(h.modelSelector?.enterApiKeyFirst||"Please enter API Key first");l(!0),n(null);try{let b=await ak.f.post("/api/ai/models",{provider:a,apiKey:d,...e&&{baseUrl:e}});if("error"in b&&"string"==typeof b.error){n(b.error),s(!0),j([]);return}j(b.models),0===b.models.length&&(n(h.modelSelector?.noVisionModel||"No vision model found, please enter manually"),s(!0))}catch(b){am.f.error("[ModelSelector]","Failed to fetch models",{error:b});let a=b instanceof Error&&b.message||h.modelSelector?.fetchFailed||"Failed to fetch models";n(a+(h.modelSelector?.enterManually||", please enter manually")),s(!0)}finally{l(!1)}};return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aa.f,{className:"flex-1",children:h.modelSelector?.modelName||"Model Name"}),(0,b.jsx)(A.f,{type:"button",variant:"outline",size:"sm",onClick:v,disabled:k||!d,children:k?(0,b.jsx)(w.f,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(aL.f,{className:"h-3 w-3"})})]}),m&&(0,b.jsx)("p",{className:"text-xs text-yellow-600",children:m}),q||0===i.length?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(_.f,{value:o,onChange:a=>{var b;p(b=a.target.value),g(b)},placeholder:aJ(a)?aH[a].model:"openai"===a?"gpt-6.1-sol":"gemini-1.5-flash"}),i.length>0&&(0,b.jsx)(A.f,{type:"button",variant:"link",size:"sm",className:"h-auto p-0 text-xs",onClick:()=>s(!1),children:h.modelSelector?.selectFromList||"Select from List"})]}):(0,b.jsx)("div",{className:"space-y-2",children:(0,b.jsxs)(aB.d,{value:f,onValueChange:a=>{"_custom"===a?s(!0):(s(!1),p(a),g(a))},children:[(0,b.jsx)(aB.P,{children:(0,b.jsx)(aB.U,{placeholder:h.modelSelector?.selectModel||"Select Model"})}),(0,b.jsxs)(aB.r,{children:[i.map(a=>(0,b.jsxs)(aB.T,{value:a.id,children:[a.name,a.owned_by&&` (${a.owned_by})`]},a.id)),(0,b.jsx)(aB.T,{value:"_custom",children:h.modelSelector?.customInput||"Custom Input..."})]})]})})]})}function aN({value:a,onChange:d}){let{t:e}=(0,c.b)(),f=(b,c)=>d({...a,[b]:c});return(0,b.jsxs)("div",{className:"space-y-3 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:"API Key"}),(0,b.jsx)(aA,{value:a?.apiKey||"",onChange:a=>f("apiKey",a.target.value),placeholder:"sk-ant-..."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:"Base URL (Optional)"}),(0,b.jsx)(_.f,{value:a?.baseUrl||"",onChange:a=>f("baseUrl",a.target.value),placeholder:"https://api.anthropic.com"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e.settings?.ai?.anthropicBaseUrlHint})]}),(0,b.jsx)(aM,{provider:"anthropic",apiKey:a?.apiKey,baseUrl:a?.baseUrl,currentModel:a?.model,onModelChange:a=>f("model",a)})]})}function aO({value:a,onChange:d}){let{t:e}=(0,c.b)(),f=(b,c)=>d({...a,[b]:c}),g=a=>a?.trim()?"":"border-destructive";return(0,b.jsxs)("div",{className:"space-y-3 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(aa.f,{children:[e.settings?.ai?.azureEndpoint||"Azure Endpoint"," ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsx)(_.f,{value:a?.endpoint||"",onChange:a=>f("endpoint",a.target.value),placeholder:e.settings?.ai?.azureEndpointPlaceholder||"https://your-resource.openai.azure.com",className:g(a?.endpoint)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(aa.f,{children:[e.settings?.ai?.azureDeployment||"Deployment Name"," ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsx)(_.f,{value:a?.deploymentName||"",onChange:a=>f("deploymentName",a.target.value),placeholder:e.settings?.ai?.azureDeploymentPlaceholder||"gpt-4o-deployment",className:g(a?.deploymentName)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(aa.f,{children:["API Key ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsx)(aA,{value:a?.apiKey||"",onChange:a=>f("apiKey",a.target.value),placeholder:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",className:g(a?.apiKey)})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:e.settings?.ai?.azureApiVersion||"API Version"}),(0,b.jsx)(_.f,{value:a?.apiVersion||"",onChange:a=>f("apiVersion",a.target.value),placeholder:e.settings?.ai?.azureApiVersionPlaceholder||"2024-02-15-preview"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:e.settings?.ai?.azureModel||"Model Display Name"}),(0,b.jsx)(_.f,{value:a?.model||"",onChange:a=>f("model",a.target.value),placeholder:"gpt-4o"})]})]})}function aP({value:a,onChange:c}){let d=(b,d)=>c({...a,[b]:d});return(0,b.jsxs)("div",{className:"space-y-3 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:"API Key"}),(0,b.jsx)(aA,{value:a?.apiKey||"",onChange:a=>d("apiKey",a.target.value),placeholder:"AIza..."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:"Base URL (Optional)"}),(0,b.jsx)(_.f,{value:a?.baseUrl||"",onChange:a=>d("baseUrl",a.target.value),placeholder:"https://generativelanguage.googleapis.com"})]}),(0,b.jsx)(aM,{provider:"gemini",apiKey:a?.apiKey,baseUrl:a?.baseUrl,currentModel:a?.model,onModelChange:a=>d("model",a)})]})}var aQ=a.i(915618);function aR({value:a,onChange:d}){let{t:e}=(0,c.b)(),f=a?.instances||[],g=a?.activeInstanceId,h=f.find(a=>a.id===g),i=(b,c)=>{d({...a,instances:f.map(a=>a.id===g?{...a,[b]:c}:a)})},j=async()=>{if(!g||!await (0,al.u)(e.settings?.ai?.confirmDelete||"Delete this instance?",{destructive:!0}))return;let a=f.filter(a=>a.id!==g);d({instances:a,activeInstanceId:a[0]?.id})};return(0,b.jsxs)("div",{className:"space-y-3 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)(aa.f,{children:e.settings?.ai?.instances||"Instance"}),(0,b.jsxs)(A.f,{type:"button",variant:"outline",size:"sm",onClick:()=>{if(f.length>=10)return;let a={id:"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)}),name:`Instance ${f.length+1}`,apiKey:"",baseUrl:"https://api.openai.com/v1",model:"gpt-6.1-sol"};d({instances:[...f,a],activeInstanceId:a.id})},disabled:f.length>=10,className:"h-7 px-2 text-xs",children:[(0,b.jsx)(aQ.f,{className:"h-3 w-3 mr-1"}),e.settings?.ai?.addInstance||"Add"]})]}),f.length>0?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(aB.d,{value:g||"",onValueChange:b=>d({...a,activeInstanceId:b}),children:[(0,b.jsx)(aB.P,{className:"flex-1",children:(0,b.jsx)(aB.U,{placeholder:e.settings?.ai?.selectInstance||"Select Instance"})}),(0,b.jsx)(aB.r,{children:f.map(a=>(0,b.jsx)(aB.T,{value:a.id,children:a.name},a.id))})]}),f.length>1&&(0,b.jsx)(A.f,{type:"button",variant:"outline",size:"icon",onClick:j,className:"h-10 w-10 text-destructive hover:text-destructive",children:(0,b.jsx)(ah.f,{className:"h-4 w-4"})})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:e.settings?.ai?.noInstances||"No instances configured. Click 'Add' to create one."}),f.length>=10&&(0,b.jsx)("p",{className:"text-xs text-amber-600",children:e.settings?.ai?.maxInstancesReached||"Maximum instances reached (10)"})]}),h&&(0,b.jsxs)("div",{className:"space-y-3 p-3 border rounded-md bg-background",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(aa.f,{children:[e.settings?.ai?.instanceName||"Instance Name"," ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsx)(_.f,{value:h.name||"",onChange:a=>i("name",a.target.value),placeholder:"e.g. 智谱 GLM-4V",className:h.name?.trim()?"":"border-destructive"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(aa.f,{children:["API Key ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsx)(aA,{value:h.apiKey||"",onChange:a=>i("apiKey",a.target.value),placeholder:"sk-...",className:h.apiKey?.trim()?"":"border-destructive"})]}),(0,b.jsxs)("div",{className:"space-y-2 pt-4 border-t",children:[(0,b.jsxs)(aa.f,{children:["Base URL ",(0,b.jsx)("span",{className:"text-destructive",children:"*"})]}),(0,b.jsx)(_.f,{value:h.baseUrl||"",onChange:a=>i("baseUrl",a.target.value),placeholder:"https://api.openai.com/v1",className:h.baseUrl?.trim()?"":"border-destructive"})]}),(0,b.jsx)(aM,{provider:"openai",apiKey:h.apiKey,baseUrl:h.baseUrl,currentModel:h.model,onModelChange:a=>i("model",a)})]})]})}function aS({provider:a,value:d,onChange:e}){let{t:f}=(0,c.b)(),g=aH[a],h=(a,b)=>e({...d,[a]:b});return(0,b.jsxs)("div",{className:"space-y-3 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:"API Key"}),(0,b.jsx)(aA,{value:d?.apiKey||"",onChange:a=>h("apiKey",a.target.value),placeholder:"sk-..."}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:[f.settings?.ai?.vendorApiKeyHint||"Get an API key from the console:"," ",(0,b.jsx)("a",{href:g.consoleUrl,target:"_blank",rel:"noopener noreferrer",className:"underline break-all",children:g.consoleUrl})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:"Base URL (Optional)"}),(0,b.jsx)(_.f,{value:d?.baseUrl||"",onChange:a=>h("baseUrl",a.target.value),placeholder:g.baseUrl}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f.settings?.ai?.vendorBaseUrlHint})]}),(0,b.jsx)(aM,{provider:a,apiKey:d?.apiKey,baseUrl:d?.baseUrl,currentModel:d?.model||g.model,onModelChange:a=>h("model",a)})]})}function aT({config:a,setConfig:d,loading:e,saving:f,onSave:g}){let{t:h}=(0,c.b)();return e?(0,b.jsx)("div",{className:"flex justify-center py-4",children:(0,b.jsx)(w.f,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):(0,b.jsxs)("div",{className:"space-y-4 border rounded-lg p-4 bg-muted/30",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:h.settings?.tabs?.ai||"AI Provider"}),(0,b.jsxs)(aB.d,{value:a.aiProvider,onValueChange:a=>d(b=>({...b,aiProvider:a})),children:[(0,b.jsx)(aB.P,{children:(0,b.jsx)(aB.U,{})}),(0,b.jsxs)(aB.r,{children:[aI.map(a=>(0,b.jsx)(aB.T,{value:a,children:aH[a].name},a)),(0,b.jsx)(aB.T,{value:"anthropic",children:"Anthropic / Compatible"}),(0,b.jsx)(aB.T,{value:"azure",children:"Azure OpenAI"}),(0,b.jsx)(aB.T,{value:"openai",children:"OpenAI / Compatible"}),(0,b.jsx)(aB.T,{value:"gemini",children:"Google Gemini"})]})]})]}),"openai"===a.aiProvider&&(0,b.jsx)(aR,{value:a.openai,onChange:a=>d(b=>({...b,openai:a}))}),"gemini"===a.aiProvider&&(0,b.jsx)(aP,{value:a.gemini,onChange:a=>d(b=>({...b,gemini:a}))}),"anthropic"===a.aiProvider&&(0,b.jsx)(aN,{value:a.anthropic,onChange:a=>d(b=>({...b,anthropic:a}))}),aJ(a.aiProvider)&&(0,b.jsx)(aS,{provider:a.aiProvider,value:a[a.aiProvider],onChange:a=>d(b=>({...b,[b.aiProvider]:a}))},a.aiProvider),"azure"===a.aiProvider&&(0,b.jsx)(aO,{value:a.azure,onChange:a=>d(b=>({...b,azure:a}))}),(0,b.jsx)(aK,{config:a,saving:f,saveButton:(0,b.jsxs)(A.f,{onClick:g,disabled:f,className:"flex-1",children:[f&&(0,b.jsx)(w.f,{className:"mr-2 h-4 w-4 animate-spin"}),h.settings?.ai?.save||"Save AI Settings"]})})]})}let aU={info:{card:"border-blue-200 bg-blue-50",title:"text-blue-900 font-bold",desc:"text-blue-800 font-medium",button:"bg-blue-100 hover:bg-blue-200 text-blue-900 border-blue-300"},danger:{card:"border-red-200 bg-red-50",title:"text-red-700 font-medium",desc:"text-red-600",button:""},critical:{card:"border-red-600/50 bg-red-100/50",title:"text-red-900 font-bold",desc:"text-red-800 font-medium",button:"bg-red-700 hover:bg-red-800"}};function aV({title:a,description:c,tone:d,busy:e,icon:f,onClick:g}){let h=aU[d];return(0,b.jsxs)("div",{className:`p-4 border rounded-lg ${h.card}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:`text-sm flex items-center gap-2 ${h.title}`,children:a}),(0,b.jsx)(A.f,{variant:"info"===d?"outline":"destructive",size:"sm",onClick:g,disabled:e,className:h.button,children:e?(0,b.jsx)(w.f,{className:"h-4 w-4 animate-spin"}):f})]}),(0,b.jsx)("p",{className:`text-xs mt-2 ${h.desc}`,children:c})]})}function aW({isAdmin:a}){let{t:d}=(0,c.b)(),[e,f]=(0,r.useState)(null),g=async(a,b,c,d)=>{f(a);try{al.c.success(await b()),d&&window.location.reload()}catch(b){am.f.error("[DangerZoneSettings]",`${a} failed`,{error:b}),al.c.error(c)}finally{f(null)}},h=d.settings?.clearSuccess||"Success",i=d.settings?.clearError||"Failed",j=async()=>{await (0,al.u)(d.settings?.migrateTagsConfirm||"This will reset system tags. Confirm?",{destructive:!0})&&await g("migrateTags",async()=>{let a=await ak.f.post("/api/admin/migrate-tags",{});return`${h}: ${a.count||0} tags migrated.`},d.settings?.clearError||"Failed to migrate tags",!1)},k=async()=>{await (0,al.u)(d.settings?.clearDataConfirm||"Are you sure?",{destructive:!0})&&await g("clearPractice",async()=>(await ak.f.delete("/api/stats/practice/clear"),h),i,!0)},l=async()=>{await (0,al.u)(d.settings?.clearErrorDataConfirm||"Are you sure?",{destructive:!0})&&await g("clearErrors",async()=>(await ak.f.delete("/api/error-items/clear"),h),i,!0)},m=async()=>{if(!await (0,al.u)(d.settings?.systemResetConfirm||"WARNING: Deleting ALL data. Undoing is impossible. Are you sure?",{destructive:!0}))return;let a=prompt(d.settings?.systemResetPrompt||"Type 'RESET' to confirm system initialization:","");if("RESET"!==a){null!==a&&al.c.error(d.common?.error||"Confirmation failed");return}await g("systemReset",async()=>(await ak.f.post("/api/admin/system-reset",{}),d.settings?.clearSuccess||"Success - System Reset Complete"),d.settings?.clearError||"Failed to reset system",!0)};return(0,b.jsxs)(b.Fragment,{children:[a&&(0,b.jsx)(aV,{tone:"info",title:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aL.f,{className:"h-4 w-4"}),d.settings?.migrateTags||"Migrate Tags"]}),description:d.settings?.migrateTagsDesc||"Re-populates standard tags from file",busy:"migrateTags"===e,icon:(0,b.jsx)(aL.f,{className:"h-4 w-4"}),onClick:j}),(0,b.jsx)(aV,{tone:"danger",title:d.settings?.clearData||"Clear Practice Data",description:d.settings?.clearDataDesc||"This will permanently delete all practice history. Irreversible.",busy:"clearPractice"===e,icon:(0,b.jsx)(ah.f,{className:"h-4 w-4"}),onClick:k}),(0,b.jsx)(aV,{tone:"danger",title:d.settings?.clearErrorData||"Clear Error Data",description:d.settings?.clearErrorDataDesc||"This will permanently delete all error items. Irreversible.",busy:"clearErrors"===e,icon:(0,b.jsx)(ah.f,{className:"h-4 w-4"}),onClick:l}),a&&(0,b.jsx)(aV,{tone:"critical",title:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{className:"h-4 w-4"}),d.settings?.systemReset||"System Initialization"]}),description:d.settings?.systemResetDesc||"Resets the system to factory state. Deletes ALL data.",busy:"systemReset"===e,icon:(0,b.jsx)(ah.f,{className:"h-4 w-4"}),onClick:m})]})}var aX=a.i(284505);let aY=(0,m.f)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);async function aZ(a,b){let c=await fetch(a);if(!c.ok)throw Error((await c.json().catch(()=>({}))).message||"Export failed");let d=await c.blob(),e=window.URL.createObjectURL(d),f=document.createElement("a");f.href=e;let g=c.headers.get("Content-Disposition")?.match(/filename="(.+)"/);f.download=g?g[1]:b,document.body.appendChild(f),f.click(),document.body.removeChild(f),window.URL.revokeObjectURL(e)}function a$({isAdmin:a}){let{t:d}=(0,c.b)(),[e,f]=(0,r.useState)(!1),[g,h]=(0,r.useState)(!1),[i,j]=(0,r.useState)(null),k=async a=>{if(!a||await (0,al.u)(d.settings?.exportAllConfirm||"Export all users' data? This may take a while.")){f(!0);try{await aZ(a?"/api/export?all=true":"/api/export",a?"wrong-notebook-export-all.json":"wrong-notebook-export.json"),al.c.success(d.settings?.exportSuccess||"Export successful")}catch(b){am.f.error("[DataBackupSettings]",a?"Export all failed":"Export failed",{error:b}),al.c.error(d.settings?.exportFailed||"Export failed")}finally{f(!1)}}},l=async a=>{if(!i)return;let b=a?d.settings?.importAllConfirm||"Import all users' data? This will restore data for all users from the export file.":d.settings?.importConfirm||"Are you sure you want to import?";if(await (0,al.u)(b)){h(!0);try{let b=JSON.parse(await i.text()),{stats:c}=await ak.f.post(a?"/api/import?all=true":"/api/import",b);al.c.success((d.settings?.importResultDesc||"Imported {subjects} notebooks, {tags} tags, {items} error items, {schedules} review schedules, {records} practice records, {papers} exam papers.").replace("{subjects}",String(c.subjectsCreated)).replace("{tags}",String(c.tagsCreated)).replace("{items}",String(c.errorItemsCreated)).replace("{schedules}",String(c.reviewSchedulesCreated)).replace("{records}",String(c.practiceRecordsCreated)).replace("{papers}",String(c.examPapersCreated??0)).replace("{duplicates}",String(c.duplicateErrorItems??0))),j(null),window.location.reload()}catch(b){am.f.error("[DataBackupSettings]",a?"Import all failed":"Import failed",{error:b}),al.c.error(d.settings?.importFailed||"Import failed")}finally{h(!1)}}},m=(a,c)=>a?(0,b.jsx)(w.f,{className:"mr-2 h-4 w-4 animate-spin"}):c;return(0,b.jsxs)("div",{className:"p-4 border border-blue-200 rounded-lg bg-blue-50",children:[(0,b.jsx)("h4",{className:"text-sm font-bold text-blue-900 mb-3",children:d.settings?.dataManagement||"Data Management"}),(0,b.jsxs)("div",{className:"mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsx)("span",{className:"text-sm text-blue-800 font-medium",children:d.settings?.exportData||"Export Data"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>k(!1),disabled:e,className:"bg-blue-100 hover:bg-blue-200 text-blue-900 border-blue-300",children:[m(e,(0,b.jsx)(aX.f,{className:"mr-2 h-4 w-4"})),d.settings?.exportData||"Export"]}),a&&(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>k(!0),disabled:e,className:"bg-orange-100 hover:bg-orange-200 text-orange-900 border-orange-300",children:[m(e,(0,b.jsx)(aX.f,{className:"mr-2 h-4 w-4"})),d.settings?.exportAllData||"Export All"]})]})]}),(0,b.jsx)("p",{className:"text-xs text-blue-700",children:d.settings?.exportDataDesc||"Export all data as JSON file."})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsx)("span",{className:"text-sm text-blue-800 font-medium",children:d.settings?.importData||"Import Data"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"file",accept:".json",onChange:a=>j(a.target.files?.[0]??i),className:"hidden",id:"import-file-input",disabled:g}),(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>document.getElementById("import-file-input")?.click(),disabled:g,className:"bg-blue-100 hover:bg-blue-200 text-blue-900 border-blue-300",children:[m(g,(0,b.jsx)(aY,{className:"mr-2 h-4 w-4"})),i?.name||d.settings?.selectFile||"Select File"]}),i&&(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>l(!1),disabled:g,className:"bg-green-100 hover:bg-green-200 text-green-900 border-green-300",children:[m(g,(0,b.jsx)(aE,{className:"mr-2 h-4 w-4"})),d.settings?.importData||"Import"]}),i&&a&&(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>l(!0),disabled:g,className:"bg-orange-100 hover:bg-orange-200 text-orange-900 border-orange-300",children:[m(g,(0,b.jsx)(aE,{className:"mr-2 h-4 w-4"})),d.settings?.importAllData||"Import All"]})]})]}),(0,b.jsx)("p",{className:"text-xs text-blue-700",children:d.settings?.importDataDesc||"Import data from JSON file. Existing data will be skipped."})]})]})}var a_=a.i(225949);function a0({field:a,label:d,description:e}){let{t:f}=(0,c.b)(),[g,h]=(0,r.useState)(!1),[i,j]=(0,r.useState)(!1),[k,l]=(0,r.useState)(!1),[m,n]=(0,r.useState)(null),o=`preference-${a}`;(0,r.useEffect)(()=>{ak.f.get("/api/user").then(b=>h(!!b[a])).catch(()=>void 0).finally(()=>j(!0))},[a]);let p=async b=>{h(b),l(!0);try{await ak.f.patch("/api/user",{[a]:b}),n(f.importFlow.preferenceSaved)}catch(c){h(!b),n(f.importFlow.preferenceSaveFailed),am.f.error("[Settings]","Failed to save user preference",{field:a,error:c instanceof Error?c.message:String(c)})}finally{l(!1)}};return(0,b.jsxs)("div",{className:"space-y-2 pt-4 border-t",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsx)(aa.f,{htmlFor:o,children:d}),(0,b.jsx)($,{id:o,checked:g,onCheckedChange:p,disabled:!i||k})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e}),m&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:m})]})}function a1(){let{t:a}=(0,c.b)();return(0,b.jsx)(a0,{field:"enableGeogebra",label:a.importFlow.enableGeogebra,description:a.importFlow.enableGeogebraDesc})}function a2(){let{t:a}=(0,c.b)();return(0,b.jsx)(a0,{field:"confirmBeforeImport",label:a.importFlow.confirmBeforeImport,description:a.importFlow.confirmBeforeImportDesc})}function a3(){let{t:a}=(0,c.b)();return(0,b.jsx)(a0,{field:"enableSvgAnimation",label:a.importFlow.enableSvgAnimation,description:a.importFlow.enableSvgAnimationDesc})}function a4({value:a,onChange:d,disabled:e}){let{t:f}=(0,c.b)();return(0,b.jsxs)("div",{className:"space-y-2 pt-4 border-t",children:[(0,b.jsx)(aa.f,{htmlFor:"app-time-zone",children:f.settings.general.timeZoneLabel}),(0,b.jsx)(_.f,{id:"app-time-zone",value:a,onChange:a=>d(a.target.value),disabled:e,list:"app-time-zones",placeholder:"Asia/Shanghai"}),(0,b.jsx)("datalist",{id:"app-time-zones",children:["Asia/Shanghai","Asia/Hong_Kong","Asia/Tokyo","Asia/Singapore","Europe/London","America/New_York","America/Los_Angeles","UTC"].map(a=>(0,b.jsx)("option",{value:a},a))}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:f.settings.general.timeZoneDesc})]})}function a5({config:a,setConfig:d,isAdmin:f,disabled:g}){let{t:h,language:i,setLanguage:j}=(0,c.b)(),{timeZone:k}=(0,e.M)(),l=a=>d(b=>({...b,timeouts:{...b.timeouts,analyze:1e3*a}}));return(0,b.jsxs)("div",{className:"space-y-4 border rounded-lg p-4 bg-muted/30",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(aa.f,{children:h.settings?.language||"Language"}),(0,b.jsxs)(aB.d,{value:i,onValueChange:a=>j(a),children:[(0,b.jsx)(aB.P,{children:(0,b.jsx)(aB.U,{})}),(0,b.jsxs)(aB.r,{children:[(0,b.jsx)(aB.T,{value:"zh",children:"中文 (Chinese)"}),(0,b.jsx)(aB.T,{value:"en",children:"English"})]})]})]}),(0,b.jsx)(a4,{value:a.timeZone??k,onChange:a=>d(b=>({...b,timeZone:a})),disabled:!f||g}),f&&(0,b.jsxs)("div",{className:"space-y-2 pt-4 border-t",children:[(0,b.jsx)(aa.f,{children:h.settings?.general?.timeoutLabel||"AI Analysis Timeout (Seconds)"}),(0,b.jsx)(_.f,{type:"number",value:a.timeouts?.analyze?a.timeouts.analyze/1e3:"",onChange:a=>{let b=""===a.target.value?0:parseInt(a.target.value);l(isNaN(b)?0:b)},onBlur:()=>{let b=(a.timeouts?.analyze||0)/1e3,c=Math.min(600,Math.max(120,b));c!==b&&l(c)},min:120,max:600}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:h.settings?.general?.timeoutDesc||"Increase this value if you experience frequent timeouts during AI analysis."})]}),(0,b.jsx)(a2,{}),(0,b.jsx)(a3,{}),(0,b.jsx)(a1,{}),(0,b.jsx)(a_.f,{})]})}var a6=a.i(429246);let a7={trace:10,debug:20,info:30,warn:40,error:50,fatal:60};function a8(a,b={}){let c,d=a7[a],e=(c=process.env.LOG_LEVEL?.toLowerCase())&&void 0!==a7[c]?a7[c]:a7.info;return(c,f)=>{let g,h;if(d<e)return;let i=new Date;"string"==typeof c?(g={},h=c):(g=c,h=f||"");{let c=JSON.stringify({level:a,time:i.toISOString(),...b,...g,msg:h});switch(a){case"error":case"fatal":console.error(c);break;case"warn":console.warn(c);break;default:console.log(c)}}}}(function a(b={}){return b.module,{trace:a8("trace",b),debug:a8("debug",b),info:a8("info",b),warn:a8("warn",b),error:a8("error",b),fatal:a8("fatal",b),child:c=>a({...b,...c}),box:(a,c,d="📋")=>{console.log(JSON.stringify({level:"info",time:new Date().toISOString(),...b,title:a,..."string"==typeof c?{content:c}:c||{},msg:a}))},divider:(a="-")=>{}}})({env:"production"}).child({module:"ai:prompts"});let a9=`请参考《高思学校竞赛数学导引》(每讲分兴趣篇、拓展篇、超越篇,题目左侧标 1~5 颗星)的星级标准,结合题目所在年级评定难度:
2
+ - 1 星:课本基础题,直接套用概念、公式或简单计算即可(相当于兴趣篇前几题)。
3
+ - 2 星:校内拔高题,需要两三步推理或简单综合(相当于兴趣篇后几题)。
4
+ - 3 星:常规奥数题,小升初、杯赛常见难度,需要掌握该专题的典型方法(相当于拓展篇)。
5
+ - 4 星:较难奥数题,需要构造、分类讨论、转化或多种方法综合(相当于拓展篇末题、超越篇前几题)。
6
+ - 5 星:竞赛压轴题,集训队水平,思路巧妙、步骤长(相当于超越篇难题)。
7
+ 非数学学科按同样的 1~5 级划分:1 星为基础识记,3 星为综合应用,5 星为竞赛或压轴难度。`,ba=`- 输出一个完整的 <svg> 元素,包含 xmlns="http://www.w3.org/2000/svg" 和 viewBox(建议宽 400~600),不要用 Markdown 代码块包裹。
8
+ - 白色背景、黑色线条(stroke="#000",线宽 1.5~2),需要区分的区域可用浅灰填充;不要使用彩色装饰。
9
+ - 按原图比例和相对位置绘制,保留所有标注:顶点字母、数字、长度、角度、单位、箭头和虚线等,文字用 <text>(font-size 14~18)。
10
+ - 只使用基本图形元素:line、polyline、polygon、rect、circle、ellipse、path、text、g、defs、marker。
11
+ - 严禁使用 <image>、<script>、<foreignObject>、外部链接、外部字体或事件属性。`,bb=String.raw`- 行内公式用 $...$,独立公式用 $$...$$;不要用 \(...\) 或 \[...\],每个 $ 必须成对出现。
12
+ - 所有 LaTeX 命令(如 \frac、\sqrt、\times、\angle)都必须写在 $...$ 内,公式外不能出现反斜杠命令。
13
+ - 只使用 KaTeX 支持的命令和环境:方程组用 \begin{cases}...\end{cases},多行推导用 \begin{aligned}...\end{aligned}(放在 $$...$$ 中),不要用 align、eqnarray、\newcommand、\usepackage、\label、\tag 等。
14
+ - 大括号 {} 必须成对,\left 与 \right 必须成对,\begin{...} 与 \end{...} 必须对应。
15
+ - 公式中的中文写在 \text{...} 里,或放到公式外;百分号写成 \%,美元符号写成 \$。
16
+ - 反斜杠只写一个(\frac),不要写成 \\frac;换行符 \\ 只能用在 cases、aligned 等环境里。`,bc=`【角色与核心任务 (ROLE AND CORE TASK)】
17
+ 你是一位世界顶尖的、经验丰富的、专业的跨学科考试分析专家(Interdisciplinary Exam Analysis Expert)。你的核心任务是极致准确地分析用户提供的考试题目图片,全面理解所有文本、图表和隐含约束,并提供一个完整、高度结构化且专业的解决方案。
18
+
19
+ {{language_instruction}}
20
+
21
+ 【核心输出要求 (OUTPUT REQUIREMENTS)】
22
+ 你的响应输出**必须严格遵循以下自定义标签格式**。**严禁**使用 JSON 或 Markdown 代码块。**严禁**对 LaTeX 公式中的反斜杠进行二次转义(如 "\\frac" 是错误的,必须是 "\frac")。
23
+
24
+ 请严格按照以下结构输出内容:
25
+
26
+ <subject>
27
+ 在此处填写学科,必须是以下之一:"数学", "物理", "化学", "生物", "英语", "语文", "历史", "地理", "政治", "其他"。
28
+ </subject>
29
+
30
+ <knowledge_points>
31
+ 在此处填写知识点,使用逗号分隔,例如:知识点1, 知识点2, 知识点3
32
+ </knowledge_points>
33
+
34
+ <requires_image>
35
+ 判断这道题是否需要依赖图片才能正确解答。如果题目包含几何图形、函数图像、实验装置图、电路图等必须看图才能理解的内容,填写 true;如果只需要文字描述即可理解(如英语题、纯文字数学题),填写 false。
36
+ </requires_image>
37
+
38
+ <has_figure>
39
+ 判断题目本身是否带有配图(几何图形、函数图像、示意图、统计图、实验装置图、电路图等;不含学生的作答痕迹和纯文字表格)。有配图填 true,否则填 false。
40
+ </has_figure>
41
+
42
+ <figure_svg>
43
+ 如果 has_figure 为 true,用 SVG 重新绘制题目配图:
44
+ ${ba}
45
+ 如果 has_figure 为 false,请留空。
46
+ </figure_svg>
47
+
48
+ <wrong_answer_text>
49
+ 如果图片中包含学生已经写出的错误解答、错误步骤、草稿或错误答案,请尽量按原样摘录;如果没有看到学生错误解答,请留空。
50
+ </wrong_answer_text>
51
+
52
+ <mistake_status>
53
+ 填写以下值之一:wrong_attempt(图片中有错误解答或错误步骤)、not_attempted(没有错误解答,像是完全不会做或未作答)、unknown(无法判断)。
54
+ </mistake_status>
55
+
56
+ <difficulty_stars>
57
+ 只填写 1 到 5 之间的一个整数,表示题目难度星级。
58
+ ${a9}
59
+ </difficulty_stars>
60
+
61
+ <mistake_analysis>
62
+ 如果图片中包含错误解答,请分析错误可能发生在哪一步、为什么错、导致了什么后果;如果没有错误解答,请留空。
63
+ </mistake_analysis>
64
+
65
+ <question_text>
66
+ 在此处填写题目的完整文本。使用 Markdown 格式。所有数学公式使用 LaTeX 符号(行内 $...$,块级 $$...$$)。
67
+
68
+ 【题干转录规则】
69
+ 1. **逐字照录**:按图片原文转录题干(含题号、分值和标点),不要改写、概括、增删字词或调整语序;看不清的字用 [?] 标注。
70
+ 2. **填空统一**:所有填空处统一写作 ____(4 个下划线),不论原图横线长短。
71
+ 3. **图形描述**:如果题目依赖图形,在题干原文之后空一行,单独写**一段**以「图示:」开头的图形描述;只能使用「图示:」这一种写法(不要写「图示信息」「图示说明」等),描述中不要重复题干已有的文字。题目不依赖图形时不要写图示段落。
72
+
73
+ 【表格处理规则】
74
+ 如果图片中包含表格,必须完整转录表格内容,遵循以下原则:
75
+
76
+ 1. **标准表格**:使用 Markdown 表格语法
77
+ | 列标题1 | 列标题2 | 列标题3 |
78
+ |---------|---------|---------|
79
+ | 数据1 | 数据2 | 数据3 |
80
+
81
+ 2. **复杂表格**(合并单元格/多级表头/不规则布局):
82
+ - 优先尝试用 Markdown 表格近似表示
83
+ - 如果 Markdown 无法准确表达,在表格前用文字说明结构,然后用简化的 Markdown 表格 + 注释
84
+ - 示例:
85
+ > 注:第1行为主标题,横跨3列;第2-3行为数据行
86
+
87
+ | 项目 | 数值A | 数值B |
88
+ |------|-------|-------|
89
+ | 测试1 | 10 | 20 |
90
+ | 测试2 | 15 | 25 |
91
+
92
+ 3. **表格完整性要求**:
93
+ - 必须转录所有单元格内容(包括空单元格用 - 或空格表示)
94
+ - 保留表格标题、单位、注释
95
+ - 保留数据的对齐关系和分组信息
96
+ - 表格中的数学公式使用 LaTeX 语法
97
+
98
+ 4. **表格上下文**:
99
+ - 如果表格有标题或编号(如"表1"),保留在表格前
100
+ - 如果表格后有注释或说明,保留在表格后
101
+ - 保持表格在题目中的位置关系
102
+
103
+ 5. **特殊情况处理**:
104
+ - 图表混合:如果表格旁边有图形,用文字说明位置关系
105
+ - 手写表格:尽力识别手写内容,不确定的用 [?] 标注
106
+ - 模糊表格:如果表格不清晰,在表格前注明"(表格内容可能不完整)"
107
+ </question_text>
108
+
109
+ <answer_text>
110
+ 在此处填写正确答案。使用 Markdown 和 LaTeX 符号。如果答案包含表格,遵循上述【表格处理规则】。
111
+ </answer_text>
112
+
113
+ <analysis>
114
+ 在此处填写详细的步骤解析。
115
+ * 必须使用简体中文。
116
+ * **直接使用标准的 LaTeX 符号**(如 $\frac{1}{2}$),**不要**进行 JSON 转义(不要写成 \\frac)。
117
+ * 如果解析过程需要表格(如列表对比、分步计算表),遵循上述【表格处理规则】。
118
+ </analysis>
119
+
120
+ 【知识点标签列表(KNOWLEDGE POINT LIST)】
121
+ {{knowledge_points_list}}
122
+
123
+ 【标签使用规则 (TAG RULES)】
124
+ - 标签必须与题目实际考查的知识点精准匹配。
125
+ - 每题最多 5 个标签。
126
+
127
+ 【!!! 关键格式与内容约束 (CRITICAL RULES) !!!】
128
+ 1. **格式严格**:必须严格包含上述 12 个 XML 标签,除此之外不要输出任何其他“开场白”或“结束语”。
129
+ 2. **纯文本**:内容作为纯文本处理,**不要转义反斜杠**。
130
+ 3. **内容完整**:如果包含子问题,请在 question_text 中完整列出。
131
+ 4. **禁止图片**:严禁包含任何图片链接或 markdown 图片语法。
132
+ 5. **LaTeX 规范**:
133
+ ${bb}
134
+
135
+ {{grade_instruction}}
136
+ {{provider_hints}}`,bd=`你是一位资深的K12教育题目生成专家,具备跨学科的题目创作能力。你的核心任务是**根据以下原题和知识点,举一反三生成高质量教学题目**,帮助学生巩固知识并拓展解题思路。
137
+ ### 角色定义
138
+ 1. **学科全能专家**
139
+ - 精通K12阶段所有学科(数学/语文/英语/物理/化学/生物/历史/地理/政治)
140
+ - 熟悉各年级课程标准与知识点分布
141
+ - 能准确识别题目考察的核心能力点(计算/推理/分析/应用/创新)
142
+ 2. **题目变异大师**
143
+ - 掌握12种变式技法:条件替换/情境迁移/问题转化/数据重构/图形变形/角色反转/跨学科融合/难度阶梯/开放拓展/陷阱设计/逆向思维/生活应用
144
+ - 确保变式题目保持原题核心考点,改变题目表现形式
145
+ 3. **学情分析师**
146
+ - 预判学生易错点(认知盲区/概念混淆/计算失误/审题偏差)
147
+ - 在变式题目中针对性强化易错点训练
148
+ ### 执行流程
149
+ 1. **接收任务**
150
+ 原题: "{{original_question}}"
151
+ {{language_instruction}}
152
+ DIFFICULTY LEVEL: {{difficulty_level}}
153
+ {{difficulty_instruction}}
154
+ Knowledge Points: {{knowledge_points}}
155
+ 2. **解构分析**
156
+ - 提取核心考点与能力要求
157
+ - 分析题目陷阱与解题路径
158
+ 3. **质量管控**
159
+ - 确保每道题:
160
+ ✓ 覆盖相同核心知识点
161
+ ✓ 保持解题逻辑一致性
162
+ ✓ 答案唯一且可验证
163
+ ✓ 无知识性错误
164
+ ### 输出规范
165
+ 你的响应输出**必须严格遵循以下自定义标签格式**。**严禁**使用 JSON 或 Markdown 代码块。**严禁**返回 \`\`\`json ... \`\`\`。
166
+
167
+ 请严格按照以下结构输出内容(不要包含任何其他文字):
168
+
169
+ <question_text>
170
+ 在此处填写新生成的填空题或解答题。不要包含题号、分值或选择题选项。
171
+ </question_text>
172
+
173
+ <answer_text>
174
+ 在此处填写新题目的正确答案。
175
+ </answer_text>
176
+
177
+ <analysis>
178
+ 在此处填写新题目的详细解析。
179
+ * 必须使用简体中文。
180
+ * **直接使用标准的 LaTeX 符号**(如 $\frac{1}{2}$),**不要**进行 JSON 转义。
181
+ </analysis>
182
+
183
+ {{figure_instruction}}
184
+
185
+ ###关键格式与内容约束 (CRITICAL RULES) !!!
186
+ 1. **纯文本**:内容作为纯文本处理,**不要转义反斜杠**。
187
+ 2. **LaTeX 规范**:
188
+ ${bb}
189
+
190
+ {{grade_instruction}}
191
+ {{provider_hints}}`;var be=a.i(787654);function bf({name:a,description:c}){return(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-start gap-1 sm:gap-2 text-xs py-1",children:[(0,b.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded font-mono text-primary shrink-0 w-fit",children:`{{${a}}}`}),(0,b.jsx)("span",{className:"text-muted-foreground",children:c})]})}function bg(){let{t:a}=(0,c.b)();return(0,b.jsxs)("div",{className:"bg-amber-50 border border-amber-200 rounded-md p-3 flex items-start gap-3 text-amber-900 text-sm mb-4",children:[(0,b.jsx)(s,{className:"h-5 w-5 shrink-0 text-amber-600"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:"font-medium",children:a.settings?.prompts?.caution||"Modify with Caution"}),(0,b.jsx)("p",{className:"text-amber-800/90 text-xs",children:a.settings?.prompts?.warning||"Variables in {{brackets}} are used to inject dynamic content. Please preserve these variables, otherwise the AI providing may fail to get question context or return invalid formats."})]})]})}function bh({config:a,onUpdate:d}){let{t:e}=(0,c.b)(),f=a.prompts?.analyze||bc,g=a.prompts?.similar||bd,h=async a=>{await (0,al.u)(e.settings?.prompts?.resetConfirm||"Are you sure you want to reset to default?",{destructive:!0})&&d(a,"analyze"===a?bc:bd)},i=(a,b)=>{d(a,b)};return(0,b.jsx)("div",{className:"space-y-4 border rounded-lg p-4 bg-muted/30",children:(0,b.jsxs)(C.i,{defaultValue:"analyze",className:"w-full",children:[(0,b.jsxs)(C.U,{className:"grid w-full grid-cols-2",children:[(0,b.jsx)(C.k,{value:"analyze",children:e.settings?.prompts?.analysisTab||"Analysis Prompt"}),(0,b.jsx)(C.k,{value:"similar",children:e.settings?.prompts?.similarTab||"Similar Question Prompt"})]}),(0,b.jsx)(C.S,{value:"analyze",className:"space-y-4 py-4",children:(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(aa.f,{className:"text-base font-semibold",children:e.settings?.prompts?.customAnalysis||"Custom Analysis Template"}),(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>h("analyze"),children:[(0,b.jsx)(be.f,{className:"w-4 h-4 mr-2"}),e.settings?.prompts?.reset||"Reset Default"]})]}),(0,b.jsx)(bg,{}),(0,b.jsxs)("div",{className:"space-y-2 border rounded-md p-3 bg-background",children:[(0,b.jsxs)("h4",{className:"text-xs font-medium flex items-center gap-1.5 mb-2",children:[(0,b.jsx)(u,{className:"h-3.5 w-3.5"}),e.settings?.prompts?.variables||"Available Variables"]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(bf,{name:"language_instruction",description:e.settings?.prompts?.vars?.languageInstruction||"Injects instructions based on target language (e.g., keep English questions in English but analysis in Chinese)."}),(0,b.jsx)(bf,{name:"knowledge_points_list",description:e.settings?.prompts?.vars?.knowledgePointsList||"Injects the standard list of knowledge point tags for the specific subject."}),(0,b.jsx)(bf,{name:"provider_hints",description:e.settings?.prompts?.vars?.providerHints||"System-injected hints (e.g., enforcing JSON format)."})]})]}),(0,b.jsx)(a6.f,{value:f,onChange:a=>i("analyze",a.target.value),className:"font-mono text-xs min-h-[400px]",placeholder:bc})]})}),(0,b.jsx)(C.S,{value:"similar",className:"space-y-4 py-4",children:(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(aa.f,{className:"text-base font-semibold",children:e.settings?.prompts?.customSimilar||"Custom Similar Question Template"}),(0,b.jsxs)(A.f,{variant:"outline",size:"sm",onClick:()=>h("similar"),children:[(0,b.jsx)(be.f,{className:"w-4 h-4 mr-2"}),e.settings?.prompts?.reset||"Reset Default"]})]}),(0,b.jsx)(bg,{}),(0,b.jsxs)("div",{className:"space-y-2 border rounded-md p-3 bg-background",children:[(0,b.jsxs)("h4",{className:"text-xs font-medium flex items-center gap-1.5 mb-2",children:[(0,b.jsx)(u,{className:"h-3.5 w-3.5"}),e.settings?.prompts?.variables||"Available Variables"]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)(bf,{name:"difficulty_level",description:e.settings?.prompts?.vars?.difficultyLevel||"Target difficulty level."}),(0,b.jsx)(bf,{name:"difficulty_instruction",description:e.settings?.prompts?.vars?.difficultyInstruction||"Specific writing instructions for the target difficulty."}),(0,b.jsx)(bf,{name:"original_question",description:e.settings?.prompts?.vars?.originalQuestion||"The full text of the original question."}),(0,b.jsx)(bf,{name:"knowledge_points",description:e.settings?.prompts?.vars?.knowledgePoints||"List of knowledge points to test."}),(0,b.jsx)(bf,{name:"language_instruction",description:e.settings?.prompts?.vars?.languageInstructionShort||"Language formatting instructions."})]})]}),(0,b.jsx)(a6.f,{value:g,onChange:a=>i("similar",a.target.value),className:"font-mono text-xs min-h-[400px]",placeholder:bd})]})})]})})}function bi({value:a,icon:c,label:d}){return(0,b.jsxs)(C.k,{value:a,className:"px-2 sm:px-3",children:[c,(0,b.jsx)("span",{className:"hidden sm:inline",children:d})]})}function bj(){let{setTimeZone:a}=(0,e.M)(),{data:f}=(0,d.useSession)(),g=f?.user?.role==="admin",{t:j}=(0,c.b)(),k=(0,h.useRouter)(),[l,m]=(0,r.useState)(!1),n=(0,r.useRef)(null),[o,q]=(0,r.useState)(!1),[E,F]=(0,r.useState)(!1),[G,H]=(0,r.useState)({aiProvider:"minimax"}),I=(0,r.useCallback)(async()=>{F(!0);try{H(await ak.f.get("/api/settings"))}catch(a){am.f.error("[SettingsDialog]","Failed to fetch settings",{error:a})}finally{F(!1)}},[]);(0,r.useEffect)(()=>{l&&I()},[l,I]);let J=async()=>{let b=function(a,b){if(!(0,D.L)(a.timeZone??D.J))return b.settings.general.invalidTimeZone;if("openai"===a.aiProvider)for(let c of a.openai?.instances||[]){if(!c.name?.trim())return b.settings?.ai?.validationNameRequired||"Instance name is required";if(!c.apiKey?.trim())return b.settings?.ai?.validationApiKeyRequired||"API Key is required";if(!c.baseUrl?.trim())return b.settings?.ai?.validationBaseUrlRequired||"Base URL is required";if(!c.model?.trim())return b.settings?.ai?.validationModelRequired||"Model name is required"}if("azure"===a.aiProvider){if(!a.azure?.endpoint?.trim())return b.settings?.ai?.validationAzureEndpointRequired||"Azure Endpoint is required";if(!a.azure?.deploymentName?.trim())return b.settings?.ai?.validationAzureDeploymentRequired||"Deployment Name is required";if(!a.azure?.apiKey?.trim())return b.settings?.ai?.validationApiKeyRequired||"API Key is required"}return null}(G,j);if(b)return void al.c.error(b);q(!0);try{let b=await ak.f.post("/api/settings",G);H(b),a(b.timeZone||D.J),al.c.success(j.settings?.messages?.saved||"Settings saved"),n.current?.scrollTo({top:0,behavior:"smooth"})}catch(a){am.f.error("[SettingsDialog]","Failed to save settings",{error:a}),al.c.error(j.settings?.messages?.saveFailed||"Failed to save")}finally{q(!1)}},K=a=>(0,b.jsxs)(A.f,{onClick:J,disabled:o,className:"w-full",children:[o&&(0,b.jsx)(w.f,{className:"mr-2 h-4 w-4 animate-spin"}),a]});return(0,b.jsxs)(B.N,{open:l,onOpenChange:m,children:[(0,b.jsx)(B.a,{asChild:!0,children:(0,b.jsxs)(A.f,{variant:"ghost",size:"icon",className:"rounded-full",children:[(0,b.jsx)(y,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"sr-only",children:j.settings?.title||"Settings"})]})}),(0,b.jsxs)(B.d,{ref:n,className:"w-[calc(100vw-2rem)] sm:max-w-[900px] max-h-[85vh] overflow-y-auto",children:[(0,b.jsxs)(B.s,{children:[(0,b.jsx)(B.F,{children:j.settings?.title||"Settings"}),(0,b.jsx)(B.C,{children:j.settings?.desc||"Manage your preferences and data."})]}),(0,b.jsxs)(C.i,{defaultValue:"general",className:"w-full",children:[(0,b.jsxs)(C.U,{className:`grid w-full grid-cols-4 ${g?"sm:grid-cols-7":"sm:grid-cols-4"} gap-1 h-auto`,children:[(0,b.jsx)(bi,{value:"general",icon:(0,b.jsx)(v.f,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.general||"General"}),(0,b.jsx)(bi,{value:"account",icon:(0,b.jsx)(z.f,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.account||"Account"}),g&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bi,{value:"ai",icon:(0,b.jsx)(t,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.ai||"AI Provider"}),(0,b.jsx)(bi,{value:"prompts",icon:(0,b.jsx)(x,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.prompts||"Prompts"}),(0,b.jsx)(bi,{value:"admin",icon:(0,b.jsx)(p,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.admin||"User Management"})]}),(0,b.jsx)(bi,{value:"danger",icon:(0,b.jsx)(s,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.danger||"Danger"}),(0,b.jsx)(bi,{value:"about",icon:(0,b.jsx)(u,{className:"h-4 w-4 sm:mr-2"}),label:j.settings?.tabs?.about||"About"})]}),(0,b.jsxs)(C.S,{value:"general",className:"space-y-4 py-4",children:[(0,b.jsx)(a5,{config:G,setConfig:H,isAdmin:g,disabled:E||o}),g&&K(j.settings?.save||"Save Settings")]}),(0,b.jsx)(C.S,{value:"account",className:"space-y-4 py-4",children:(0,b.jsx)(aD,{})}),(0,b.jsx)(C.S,{value:"ai",className:"space-y-4 py-4",children:(0,b.jsx)(aT,{config:G,setConfig:H,loading:E,saving:o,onSave:J})}),(0,b.jsxs)(C.S,{value:"prompts",className:"space-y-4 py-4",children:[(0,b.jsx)(bh,{config:G,onUpdate:(a,b)=>H(c=>({...c,prompts:{...c.prompts,[a]:b}}))}),K(j.settings?.prompts?.save||"Save Prompt Settings")]}),g&&(0,b.jsxs)(C.S,{value:"admin",className:"space-y-4 py-4",children:[(0,b.jsxs)(A.f,{variant:"outline",className:"w-full justify-start gap-2",onClick:()=>{m(!1),k.push("/admin")},children:[(0,b.jsx)(i.f,{className:"h-4 w-4"}),j.admin?.dashboard?.title||"Admin Dashboard"]}),(0,b.jsx)("div",{className:"border-t pt-4",children:(0,b.jsx)(ao,{})})]}),(0,b.jsx)(C.S,{value:"danger",className:"space-y-4 py-4",children:(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(a$,{isAdmin:g}),(0,b.jsx)(aW,{isAdmin:g})]})}),(0,b.jsx)(C.S,{value:"about",className:"space-y-4 py-4",children:(0,b.jsx)(ax,{})})]})]})]})}let bk=[/^\/login/,/^\/register/,/^\/print-preview/,/^\/exams\/[^/]+\/print/],bl=[{key:"home",href:"/",icon:o,match:a=>"/"===a},{key:"notebooks",href:"/notebooks",icon:j.f,match:a=>a.startsWith("/notebooks")||a.startsWith("/error-items")||a.startsWith("/practice")},{key:"review",href:"/review",icon:k.f,match:a=>a.startsWith("/review")},{key:"tags",href:"/tags",icon:q,match:a=>a.startsWith("/tags")},{key:"stats",href:"/stats",icon:i.f,match:a=>a.startsWith("/stats")},{key:"exams",href:"/exams",icon:l.f,match:a=>a.startsWith("/exams")}];function bm({children:a}){let e=(0,h.usePathname)()||"/",{t:i}=(0,c.b)(),{data:j,status:k}=(0,d.useSession)();if(bk.some(a=>a.test(e))||"unauthenticated"===k)return(0,b.jsx)(b.Fragment,{children:a});let l=j?.user?.role==="admin",m=j?.user?.name||j?.user?.email||"";return(0,b.jsxs)("div",{className:"min-h-screen",children:[(0,b.jsx)("header",{className:"sticky top-0 z-40 border-b bg-card/80 backdrop-blur-md supports-[backdrop-filter]:bg-card/70 print:hidden",children:(0,b.jsxs)("div",{className:"mx-auto flex h-14 max-w-6xl items-center gap-3 px-4 md:h-16 md:px-8",children:[(0,b.jsxs)(g.default,{href:"/",className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(f.default,{src:"/icons/icon.png",alt:"",width:32,height:32,className:"rounded-lg",priority:!0,unoptimized:!0}),(0,b.jsx)("span",{className:"text-base font-semibold tracking-tight",children:i.pageTitle.base})]}),(0,b.jsx)("nav",{className:"ml-4 hidden items-center gap-1 md:flex",children:bl.map(a=>{let c=a.match(e),d=a.icon;return(0,b.jsxs)(g.default,{href:a.href,className:(0,Z.f)("flex items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors",c?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),"aria-current":c?"page":void 0,children:[(0,b.jsx)(d,{className:"h-4 w-4"}),i.nav[a.key]]},a.key)})}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[m&&(0,b.jsxs)("span",{className:"mr-2 hidden max-w-40 items-center gap-2 truncate text-sm text-muted-foreground lg:flex",children:[(0,b.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-primary/10 text-xs font-semibold text-primary",children:m.slice(0,1).toUpperCase()}),(0,b.jsx)("span",{className:"truncate",children:m})]}),l&&(0,b.jsx)(g.default,{href:"/admin",title:i.nav.admin,children:(0,b.jsxs)(A.f,{variant:"ghost",size:"icon",className:"rounded-full",children:[(0,b.jsx)(p,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"sr-only",children:i.nav.admin})]})}),(0,b.jsx)(bj,{}),(0,b.jsx)(A.f,{variant:"ghost",size:"icon",className:"rounded-full text-muted-foreground hover:text-destructive",onClick:()=>(0,d.signOut)({callbackUrl:"/login"}),title:i.app.logout,children:(0,b.jsx)(n,{className:"h-5 w-5"})})]})]})}),(0,b.jsx)("div",{className:"pb-20 md:pb-0",children:a}),(0,b.jsx)("nav",{className:"pb-safe fixed inset-x-0 bottom-0 z-40 border-t bg-card/90 backdrop-blur-md md:hidden print:hidden",children:(0,b.jsx)("div",{className:"grid h-16 grid-cols-6",children:bl.map(a=>{let c=a.match(e),d=a.icon;return(0,b.jsxs)(g.default,{href:a.href,className:(0,Z.f)("flex flex-col items-center justify-center gap-1 text-[11px] font-medium transition-colors",c?"text-primary":"text-muted-foreground"),"aria-current":c?"page":void 0,children:[(0,b.jsx)("span",{className:(0,Z.f)("flex h-7 w-12 items-center justify-center rounded-full transition-colors",c&&"bg-accent"),children:(0,b.jsx)(d,{className:"h-5 w-5"})}),i.nav[a.key]]},a.key)})})})]})}let bn=(0,m.f)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),bo=[/^\/login/,/^\/register/,/^\/print-preview/,/^\/exams\/[^/]+\/print/];function bp(){let{t:a}=(0,c.b)(),{timeZone:f}=(0,e.M)(),{status:i}=(0,d.useSession)(),j=(0,h.usePathname)(),[k,l]=(0,r.useState)(!1),[m,n]=(0,r.useState)([]),[o,p]=(0,r.useState)(()=>Date.now()),q="authenticated"!==i||bo.some(a=>a.test(j||"")),s=(0,r.useCallback)(async()=>{if("u"<typeof document||"hidden"!==document.visibilityState)try{let a=await ak.f.get("/api/tasks");n(a.tasks),p(Date.now())}catch{}},[]);if((0,r.useEffect)(()=>{if(q)return;let a=setTimeout(s,0),b=setInterval(s,k?2e3:15e3);return()=>{clearTimeout(a),clearInterval(b)}},[q,k,s]),q)return null;let t=m.filter(a=>"running"===a.status).length,u=m.some(a=>"running"!==a.status),v=async()=>{try{let a=await ak.f.delete("/api/tasks");n(a.tasks)}catch{}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(A.f,{variant:"outline",size:"icon",className:"fixed bottom-20 right-4 z-40 h-11 w-11 rounded-full shadow-lg md:bottom-6 md:right-6 print:hidden",onClick:()=>l(!0),"aria-label":a.backgroundTasks.title,title:a.backgroundTasks.title,children:[t>0?(0,b.jsx)(w.f,{className:"h-5 w-5 animate-spin"}):(0,b.jsx)(bn,{className:"h-5 w-5"}),t>0&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1 text-xs text-primary-foreground",children:t})]}),(0,b.jsx)(B.N,{open:k,onOpenChange:l,children:(0,b.jsxs)(B.d,{className:"max-h-[85vh] overflow-y-auto sm:max-w-lg",children:[(0,b.jsxs)(B.s,{children:[(0,b.jsx)(B.F,{children:a.backgroundTasks.title}),(0,b.jsx)(B.C,{children:a.backgroundTasks.description})]}),0===m.length?(0,b.jsx)("p",{className:"py-6 text-center text-sm text-muted-foreground",children:a.backgroundTasks.empty}):(0,b.jsx)("ul",{className:"space-y-2",children:m.map(c=>{var d,e;let h;return(0,b.jsx)("li",{className:"rounded-md border p-3 text-sm",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:["running"===c.status&&(0,b.jsx)(w.f,{className:"mt-0.5 h-4 w-4 shrink-0 animate-spin text-primary"}),"succeeded"===c.status&&(0,b.jsx)(aE,{className:"mt-0.5 h-4 w-4 shrink-0 text-green-600"}),"failed"===c.status&&(0,b.jsx)(aF.f,{className:"mt-0.5 h-4 w-4 shrink-0 text-destructive"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsxs)("div",{className:"font-medium",children:[a.backgroundTasks.kinds[c.kind],(0,b.jsxs)("span",{className:"font-normal text-muted-foreground",children:[" · ",a.backgroundTasks.status[c.status]]})]}),c.subject&&(0,b.jsx)("div",{className:"break-words text-muted-foreground",children:c.subject}),c.progress&&c.progress.total>0&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"h-1.5 overflow-hidden rounded bg-muted",children:(0,b.jsx)("div",{className:"h-full bg-primary transition-all",style:{width:`${Math.round(c.progress.done/c.progress.total*100)}%`}})}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[a.backgroundTasks.progress.replace("{done}",String(c.progress.done)).replace("{total}",String(c.progress.total)),c.progress.failed>0&&` \xb7 ${a.backgroundTasks.failedCount.replace("{count}",String(c.progress.failed))}`]})]}),c.error&&(0,b.jsx)("div",{className:"text-xs text-destructive",children:(b=>{if(!b)return null;let c=a.backgroundTasks.errors[b]??a.errors[b];return"string"==typeof c?c:b})(c.error)}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{children:a.backgroundTasks.startedAt.replace("{time}",(0,D.r)(c.startedAt,"HH:mm:ss",f))}),(0,b.jsx)("span",{children:a.backgroundTasks.elapsed.replace("{time}",(d=c.startedAt,e=c.finishedAt,h=Math.max(0,Math.round(((e?Date.parse(e):o)-Date.parse(d))/1e3)),`${Math.floor(h/60)}:${String(h%60).padStart(2,"0")}`))}),c.link&&(0,b.jsx)(g.default,{href:c.link,className:"text-primary hover:underline",onClick:()=>l(!1),children:a.backgroundTasks.view})]})]})]})},c.id)})}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 pt-1",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.backgroundTasks.retentionHint}),u&&(0,b.jsx)(A.f,{variant:"ghost",size:"sm",onClick:v,children:a.backgroundTasks.clearFinished})]})]})})]})}var bq=a.i(633508);let br={success:{icon:aE,className:"text-success"},error:{icon:aF.f,className:"text-destructive"},warning:{icon:s,className:"text-warning"},info:{icon:u,className:"text-primary"}};function bs(){let{t:a}=(0,c.b)(),[d,e]=(0,r.useState)([]),[f,g]=(0,r.useState)(null);return(0,r.useEffect)(()=>(0,al.M)(a=>{e(a.toasts),g(a.confirm)}),[]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"pointer-events-none fixed inset-x-0 top-3 z-[100] flex flex-col items-center gap-2 px-4 print:hidden",role:"status","aria-live":"polite",children:d.map(c=>{let{icon:d,className:e}=br[c.type];return(0,b.jsxs)("div",{className:"pointer-events-auto flex w-full max-w-sm items-start gap-3 rounded-xl border bg-card/95 px-4 py-3 text-sm shadow-lg backdrop-blur animate-in fade-in slide-in-from-top-2 duration-200",children:[(0,b.jsx)(d,{className:(0,Z.f)("mt-0.5 h-4 w-4 shrink-0",e)}),(0,b.jsx)("p",{className:"min-w-0 flex-1 whitespace-pre-line break-words leading-relaxed",children:c.message}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground",onClick:()=>(0,al.p)(c.id),"aria-label":a.common.close,children:(0,b.jsx)(bq.X,{className:"h-3.5 w-3.5"})})]},c.id)})}),(0,b.jsx)(B.N,{open:!!f,onOpenChange:a=>{a||f?.resolve(!1)},children:(0,b.jsxs)(B.d,{className:"sm:max-w-md",children:[(0,b.jsxs)(B.s,{children:[(0,b.jsxs)(B.F,{className:"flex items-center gap-2",children:[f?.destructive&&(0,b.jsx)(s,{className:"h-5 w-5 text-destructive"}),f?.title||a.common.confirmTitle]}),(0,b.jsx)(B.C,{className:"whitespace-pre-line pt-1 text-left leading-relaxed",children:f?.message})]}),(0,b.jsxs)(B.c,{className:"gap-2",children:[(0,b.jsx)(A.f,{variant:"outline",onClick:()=>f?.resolve(!1),children:f?.cancelText||a.common.cancel}),(0,b.jsx)(A.f,{variant:f?.destructive?"destructive":"default",onClick:()=>f?.resolve(!0),autoFocus:!0,children:f?.confirmText||a.common.confirm})]})]})})]})}function bt(){return(0,r.useEffect)(()=>{"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js",{scope:"/"}).catch(a=>{am.f.warn("[PWA]","Service worker registration failed",{error:String(a)})})},[]),null}a.s(["Providers",0,function({children:a,timeZone:f}){return(0,b.jsx)(d.SessionProvider,{children:(0,b.jsx)(c.w,{children:(0,b.jsxs)(e.n,{initialTimeZone:f,children:[(0,b.jsx)(bm,{children:a}),(0,b.jsx)(bp,{}),(0,b.jsx)(bs,{}),(0,b.jsx)(bt,{})]})})})}],418175)}];
192
+
193
+ //# sourceMappingURL=src_components_providers_tsx_09kw-mv3nb6xs._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[225949,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(596221),e=a.i(699570),f=a.i(866718),g=a.i(870430),h=a.i(550194),i=a.i(291938),j=a.i(630534);a.s(["f",0,function({onSaved:a}){let{t:k}=(0,h.b)(),[l,m]=(0,c.useState)(String(90)),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)(!0),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),v=Number(l),w=""!==l.trim()&&Number.isFinite(v)&&v>=1&&v<=100&&1e-6>Math.abs(100*v-Math.round(100*v)),x=(0,c.useCallback)(async()=>{q(!0),u(null);try{let a=(await i.f.get("/api/user")).questionDuplicateThreshold??90;m(String(a)),o(a)}catch(a){u(k.importFlow.thresholdLoadFailed),j.f.error("[Settings]","加载判重阈值失败",{error:a instanceof Error?a.message:String(a)})}finally{q(!1)}},[k.importFlow.thresholdLoadFailed]);(0,c.useEffect)(()=>{x()},[x]);let y=async()=>{if(w&&null!==n){s(!0),u(null);try{let b=(await i.f.patch("/api/user",{questionDuplicateThreshold:v})).questionDuplicateThreshold??v;o(b),m(String(b)),u(k.importFlow.preferenceSaved),a?.(b)}catch(a){u(k.importFlow.preferenceSaveFailed),j.f.error("[Settings]","保存判重阈值失败",{error:a instanceof Error?a.message:String(a)})}finally{s(!1)}}};return(0,b.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,b.jsx)(g.f,{htmlFor:"question-duplicate-threshold",children:k.importFlow.thresholdLabel}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(f.f,{id:"question-duplicate-threshold",type:"number",min:1,max:100,step:.01,value:l,onChange:a=>{m(a.target.value),u(null)},disabled:p||r||null===n,className:"w-28","aria-describedby":"question-duplicate-threshold-hint"}),(0,b.jsx)("span",{"aria-hidden":"true",children:"%"}),(0,b.jsxs)(e.f,{type:"button",size:"sm",variant:"outline",onClick:y,disabled:p||r||null===n||!w||v===n,children:[(p||r)&&(0,b.jsx)(d.f,{className:"mr-2 h-4 w-4 animate-spin"}),k.importFlow.saveThreshold]}),!p&&null===n&&(0,b.jsx)(e.f,{type:"button",size:"sm",variant:"outline",onClick:x,children:k.importFlow.retryLoad})]}),(0,b.jsx)("p",{id:"question-duplicate-threshold-hint",className:"text-xs text-muted-foreground",children:k.importFlow.thresholdDescription}),null!==n&&!w&&(0,b.jsx)("p",{className:"text-xs text-destructive",role:"alert",children:k.importFlow.thresholdInvalid}),t&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",role:"status",children:t})]})}],225949)}];
2
+
3
+ //# sourceMappingURL=src_components_settings_duplicate-threshold-setting_tsx_06bbmwo1pkaim._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[699814,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(633508),e=a.i(786304),f=a.i(866718),g=a.i(291938),h=a.i(630534);a.s(["f",0,function({value:a=[],onChange:i,placeholder:j="Enter tags...",className:k="",enterHint:l,subject:m,gradeStage:n}){let[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)([]),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(0),w=(0,c.useRef)(null),x=(0,c.useRef)(null),y=(0,c.useCallback)(async b=>{try{let c=new URLSearchParams({q:b});m&&c.append("subject",m),n&&c.append("stage",n);let d=((await g.f.get(`/api/tags/suggestions?${c.toString()}`)).suggestions||[]).filter(b=>!a.includes(b));r(d.slice(0,20)),t(d.length>0),v(0)}catch(a){h.f.error("[TagInput]","Failed to fetch suggestions",{error:a})}},[m,n,a]);(0,c.useEffect)(()=>{o.trim()&&y(o)},[o,y]);let z=b=>{b.trim()&&!a.includes(b.trim())&&(i([...a,b.trim()]),p(""),r([]),t(!1),v(0))},A=b=>{i(a.filter(a=>a!==b))};return(0,c.useEffect)(()=>{let a=a=>{!x.current||x.current.contains(a.target)||w.current?.contains(a.target)||t(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]),(0,b.jsxs)("div",{className:`relative ${k}`,children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 p-2 border rounded-lg bg-background min-h-[42px]",children:[a.map(a=>(0,b.jsxs)(e.f,{variant:"secondary",className:"flex items-center gap-1 px-2 py-1",children:[a,(0,b.jsx)("button",{type:"button",onClick:()=>A(a),className:"hover:text-destructive ml-1",children:(0,b.jsx)(d.X,{className:"h-3 w-3"})})]},a)),(0,b.jsx)(f.f,{ref:w,type:"text",value:o,onChange:a=>{p(a.target.value),a.target.value.trim()||(r([]),t(!1))},onKeyDown:b=>{"Enter"===b.key?(b.preventDefault(),u>=0&&q[u]?z(q[u]):o.trim()&&z(o)):"ArrowDown"===b.key?(b.preventDefault(),v(a=>Math.min(a+1,q.length-1))):"ArrowUp"===b.key?(b.preventDefault(),v(a=>Math.max(a-1,0))):"Escape"===b.key?(t(!1),v(0)):"Backspace"===b.key&&!o&&a.length>0&&A(a[a.length-1])},onFocus:()=>{q.length>0&&t(!0)},placeholder:0===a.length?j:"",className:"flex-1 min-w-[120px] border-none focus-visible:ring-0 focus-visible:ring-offset-0 h-8 px-0"})]}),s&&q.length>0&&(0,b.jsx)("div",{ref:x,className:"absolute z-50 w-full mt-1 bg-popover border rounded-md shadow-md max-h-48 overflow-y-auto",children:q.map((a,c)=>(0,b.jsx)("div",{className:`px-3 py-2 cursor-pointer hover:bg-accent ${c===u?"bg-accent":""}`,onClick:()=>z(a),onMouseEnter:()=>v(c),children:a},a))}),o&&!s&&(0,b.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:l?`${l} "${o}"`:`Press Enter to create "${o}"`})]})}])}];
2
+
3
+ //# sourceMappingURL=src_components_tag-input_tsx_0b9sxffna5c9i._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[315055,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(470121),e=a.i(750104),f=a.i(507554),g=a.i(225152),h=a.i(3688),i=a.i(777192),j=a.i(30553),k=Object.defineProperty,l=(a,b)=>k(a,"name",{value:b,configurable:!0}),m="Checkbox",[n,o]=(0,e.f)(m),[p,q]=n(m);function r(a){let{__scopeCheckbox:d,checked:e,children:f,defaultChecked:h,disabled:i,form:j,name:k,onCheckedChange:l,required:n,value:o="on",internal_do_not_use_render:q}=a,[r,s]=(0,g.f)({prop:e,defaultProp:h??!1,onChange:l,caller:m}),[t,u]=c.useState(null),[v,y]=c.useState(null),[z,A]=c.useState(null),B=!t||!!j||!!t.closest("form"),C={checked:r,disabled:i,setChecked:s,control:t,setControl:u,name:k,form:j,value:o,userClick:z,onUserClick:A,required:n,defaultChecked:!x(h)&&h,isFormControl:B,bubbleInput:v,setBubbleInput:y};return(0,b.jsx)(p,{scope:d,...C,children:w(q)?q(C):f})}l(r,"CheckboxProvider");var s=c.forwardRef(l(function({__scopeCheckbox:a,onKeyDown:e,onClick:g,...h},i){let{control:k,value:m,disabled:n,checked:o,required:p,setControl:r,setChecked:s,onUserClick:t,isFormControl:u,bubbleInput:v}=q("CheckboxTrigger",a),w=(0,d.f)(i,r),z=c.useRef(o);return c.useEffect(()=>{let a=k?.form;if(a){let b=l(()=>s(z.current),"reset");return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[k,s]),(0,b.jsx)(j.V.button,{type:"button",role:"checkbox","aria-checked":x(o)?"mixed":o,"aria-required":p,"data-state":y(o),"data-disabled":n?"":void 0,disabled:n,value:m,...h,ref:w,onKeyDown:(0,f.f)(e,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,f.f)(g,a=>{let b=a.isPropagationStopped();t({requestedChecked:!!x(o)||!o,hasConsumerStoppedPropagation:b}),s(a=>!!x(a)||!a),v&&u&&!b&&a.stopPropagation()})})},"CheckboxTrigger")),t=c.forwardRef(l(function(a,c){let{__scopeCheckbox:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(r,{__scopeCheckbox:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{...m,ref:c,__scopeCheckbox:d}),a&&(0,b.jsx)(v,{__scopeCheckbox:d})]})})},"Checkbox")),u=c.forwardRef(l(function(a,c){let{__scopeCheckbox:d,forceMount:e,...f}=a,g=q("CheckboxIndicator",d);return(0,b.jsx)(i.f,{present:e||x(g.checked)||!0===g.checked,children:(0,b.jsx)(j.V.span,{"data-state":y(g.checked),"data-disabled":g.disabled?"":void 0,...f,ref:c,style:{pointerEvents:"none",...a.style}})})},"CheckboxIndicator")),v=c.forwardRef(l(function({__scopeCheckbox:a,onClick:e,...g},i){let{control:k,userClick:l,checked:m,defaultChecked:n,required:o,disabled:p,name:r,value:s,form:t,bubbleInput:u,setBubbleInput:v}=q("CheckboxBubbleInput",a),w=(0,d.f)(i,v),y=(0,h.f)(k),z=c.useRef(!1),A=c.useRef(m),B=c.useRef(l),C=c.useRef(null);c.useEffect(()=>{if(!u)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(!a)return;let b=A.current!==m;A.current=m;let c=null!==l&&l!==B.current;if(B.current=l,c)C.current=b?null:l,b&&(u.indeterminate=x(m),a.call(u,!x(m)&&m)),u.dispatchEvent(new Event("click",{bubbles:!l.hasConsumerStoppedPropagation}));else if(b){let b=C.current;C.current=null;let c=b?.requestedChecked===m;z.current=!0,u.indeterminate=x(m),a.call(u,!x(m)&&m),u.dispatchEvent(new Event("click",{bubbles:!(c&&b.hasConsumerStoppedPropagation)})),z.current=!1}},[u,m,l]);let D=c.useRef(!x(m)&&m);return(0,b.jsx)(j.V.input,{type:"checkbox","aria-hidden":!0,defaultChecked:n??D.current,required:o,disabled:p,name:r,value:s,form:t,...g,tabIndex:-1,ref:w,onClick:(0,f.f)(e,a=>{z.current&&a.stopPropagation()}),style:{...g.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})},"CheckboxBubbleInput"));function w(a){return"function"==typeof a}function x(a){return"indeterminate"===a}function y(a){return x(a)?"indeterminate":a?"checked":"unchecked"}l(w,"isFunction"),l(x,"isIndeterminate"),l(y,"getState");var z=a.i(533441),A=a.i(368114);let B=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(t,{ref:d,className:(0,A.f)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...c,children:(0,b.jsx)(u,{className:(0,A.f)("flex items-center justify-center text-current"),children:(0,b.jsx)(z.f,{className:"h-4 w-4"})})}));B.displayName=t.displayName,a.s(["f",0,B],315055)}];
2
+
3
+ //# sourceMappingURL=src_components_ui_checkbox_tsx_0xdylzmai9n53._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[814574,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(507554),e=a.i(470121),f=a.i(750104),g=a.i(392843),h=a.i(225152),i=a.i(596743),j=a.i(422297),k=a.i(692616),l=a.i(777192),m=a.i(30553),n=a.i(486228),o=a.i(872752),p=a.i(152081),q=a.i(241852),r=a.i(811011),s=Object.defineProperty,t=(a,b)=>s(a,"name",{value:b,configurable:!0}),u="Dialog",[v,w]=(0,f.f)(u),[x,y]=v(u),z=t(a=>{let{__scopeDialog:d,children:e,open:f,defaultOpen:i,onOpenChange:k,modal:l=!0}=a,m=c.useRef(null),n=c.useRef(null),{nodes:o,registry:p}=(0,j.D)(),[q,r]=(0,h.f)({prop:f,defaultProp:i??!1,onChange:k,caller:u}),[s,t]=c.useState(0),[v,w]=c.useState(0);return(0,b.jsx)(x,{scope:d,triggerRef:m,contentRef:n,contentId:(0,g.f)(),titleId:(0,g.f)(),descriptionId:(0,g.f)(),titlePresent:s>0,descriptionPresent:v>0,setTitleCount:t,setDescriptionCount:w,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),modal:l,branchNodes:o,branchRegistry:p,children:e})},"Dialog"),A=c.forwardRef(t(function(a,c){let{__scopeDialog:f,...g}=a,h=y("DialogTrigger",f),i=(0,e.f)(c,h.triggerRef);return(0,b.jsx)(m.V.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.open?h.contentId:void 0,"data-state":S(h.open),...g,ref:i,onClick:(0,d.f)(a.onClick,h.onOpenToggle)})},"DialogTrigger")),B="DialogPortal",[C,D]=v(B,{forceMount:void 0}),E=t(a=>{let{__scopeDialog:d,forceMount:e,children:f,container:g}=a,h=y(B,d);return(0,b.jsx)(C,{scope:d,forceMount:e,children:c.Children.map(f,a=>(0,b.jsx)(l.f,{present:e||h.open,children:(0,b.jsx)(k.f,{asChild:!0,container:g,children:a})}))})},"DialogPortal"),F="DialogOverlay",G=c.forwardRef(t(function(a,c){let d=D(F,a.__scopeDialog),{forceMount:e=d.forceMount,...f}=a,g=y(F,a.__scopeDialog);return g.modal?(0,b.jsx)(l.f,{present:e||g.open,children:(0,b.jsx)(I,{...f,ref:c})}):null},"DialogOverlay")),H=(0,r.B)("DialogOverlay.RemoveScroll"),I=c.forwardRef(t(function(a,d){let{__scopeDialog:f,...g}=a,h=y(F,f),j=(0,i.y)(),k=(0,e.f)(d,j);return(0,b.jsx)(p.f,{as:H,allowPinchZoom:!0,shards:c.useMemo(()=>[h.contentRef,...h.branchNodes.map(a=>({current:a}))],[h.contentRef,h.branchNodes]),children:(0,b.jsx)(m.V.div,{"data-state":S(h.open),...g,ref:k,style:{pointerEvents:"auto",...g.style}})})},"DialogOverlayImpl")),J="DialogContent",K=c.forwardRef(t(function(a,c){let d=D(J,a.__scopeDialog),{forceMount:e=d.forceMount,...f}=a,g=y(J,a.__scopeDialog);return(0,b.jsx)(l.f,{present:e||g.open,children:g.modal?(0,b.jsx)(L,{...f,ref:c}):(0,b.jsx)(M,{...f,ref:c})})},"DialogContent")),L=c.forwardRef(t(function(a,f){let g=y(J,a.__scopeDialog),h=c.useRef(null),i=(0,e.f)(f,g.contentRef,h);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.f)(a)},[]),(0,b.jsx)(N,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:g.open,onCloseAutoFocus:(0,d.f)(a.onCloseAutoFocus,a=>{a.preventDefault(),g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.f)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:(0,d.f)(a.onFocusOutside,a=>a.preventDefault())})},"DialogContentModal")),M=c.forwardRef(t(function(a,d){let e=y(J,a.__scopeDialog),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(N,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})},"DialogContentNonModal")),N=c.forwardRef(t(function(a,c){let{__scopeDialog:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:g,"aria-describedby":h,children:k,...l}=a,m=y(J,d);return(0,n.f)(),(0,b.jsx)(j.l,{registry:m.branchRegistry,children:(0,b.jsx)(j.v,{asChild:!0,loop:!0,trapped:e,branches:m.branchNodes,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,b.jsx)(i.V,{role:"dialog",id:m.contentId,"aria-labelledby":m.titlePresent?m.titleId:void 0,"aria-describedby":m.descriptionPresent?R(h,m.descriptionId):h,"data-state":S(m.open),...l,ref:c,deferPointerDownOutside:!0,onDismiss:()=>m.onOpenChange(!1),children:k})})})},"DialogContentImpl")),O=c.forwardRef(t(function(a,c){let{__scopeDialog:d,...e}=a,f=y("DialogTitle",d),{setTitleCount:g}=f;return(0,o.f)(()=>(g(a=>a+1),()=>g(a=>a-1)),[g]),(0,b.jsx)(m.V.h2,{id:f.titleId,...e,ref:c})},"DialogTitle")),P=c.forwardRef(t(function(a,c){let{__scopeDialog:d,...e}=a,f=y("DialogDescription",d),{setDescriptionCount:g}=f;return(0,o.f)(()=>(g(a=>a+1),()=>g(a=>a-1)),[g]),(0,b.jsx)(m.V.p,{id:f.descriptionId,...e,ref:c})},"DialogDescription")),Q=c.forwardRef(t(function(a,c){let{__scopeDialog:e,...f}=a,g=y("DialogClose",e);return(0,b.jsx)(m.V.button,{type:"button",...f,ref:c,onClick:(0,d.f)(a.onClick,()=>g.onOpenChange(!1))})},"DialogClose"));function R(...a){let b=new Set;for(let c of a)if("string"==typeof c)for(let a of String(c).trim().split(/\s+/))a&&b.add(a);return b.size>0?Array.from(b).join(" "):void 0}function S(a){return a?"open":"closed"}t(R,"concatAriaDescribedby"),t(S,"getState");var T=a.i(633508),U=a.i(368114);let V=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(G,{ref:d,className:(0,U.f)("fixed inset-0 z-50 bg-black/50 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c}));V.displayName=G.displayName;let W=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(E,{children:[(0,b.jsx)(V,{}),(0,b.jsxs)(K,{ref:e,onPointerDownOutside:a=>{a.preventDefault()},className:(0,U.f)("fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border bg-card p-6 shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",a),...d,children:[c,(0,b.jsxs)(Q,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,b.jsx)(T.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));W.displayName=K.displayName;let X=({className:a,...c})=>(0,b.jsx)("div",{className:(0,U.f)("flex flex-col space-y-1.5 text-center sm:text-left",a),...c});X.displayName="DialogHeader";let Y=({className:a,...c})=>(0,b.jsx)("div",{className:(0,U.f)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...c});Y.displayName="DialogFooter";let Z=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(O,{ref:d,className:(0,U.f)("text-lg font-semibold leading-none tracking-tight",a),...c}));Z.displayName=O.displayName;let $=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(P,{ref:d,className:(0,U.f)("text-sm text-muted-foreground",a),...c}));$.displayName=P.displayName,a.s(["N",0,z,"d",0,W,"C",0,$,"c",0,Y,"s",0,X,"F",0,Z,"a",0,A],814574)}];
2
+
3
+ //# sourceMappingURL=src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js.map