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.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +3 -1
- package/.next/build-manifest.json +219 -9
- package/.next/prerender-manifest.json +4 -4
- package/.next/required-server-files.json +16 -1
- package/.next/routes-manifest.json +18 -6
- package/.next/server/app/_global-error/page/build-manifest.json +8 -6
- package/.next/server/app/_global-error/page.js +9 -8
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +18 -14
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +20 -16
- package/.next/server/app/_global-error.segments/_full.segment.rsc +18 -14
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -1
- package/.next/server/app/_not-found/page/build-manifest.json +8 -6
- package/.next/server/app/_not-found/page.js +12 -12
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/page/build-manifest.json +8 -6
- package/.next/server/app/admin/page.js +13 -13
- package/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin/user/[id]/page/build-manifest.json +8 -6
- package/.next/server/app/admin/user/[id]/page.js +13 -13
- package/.next/server/app/admin/user/[id]/page.js.nft.json +1 -1
- package/.next/server/app/admin/user/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/admin/dashboard/route.js +20 -15
- package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/migrate-tags/route.js +10 -8
- package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/system-reset/route.js +9 -7
- package/.next/server/app/api/admin/system-reset/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/[id]/detail/route.js +20 -15
- package/.next/server/app/api/admin/users/[id]/detail/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/[id]/route.js +10 -7
- package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/route.js +12 -7
- package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/models/route.js +17 -13
- package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/test/route.js +18 -14
- package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
- package/.next/server/app/api/analytics/route.js +12 -8
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route.js +20 -15
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js +8 -6
- package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/delete/route.js +9 -7
- package/.next/server/app/api/error-items/[id]/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/figure/route.js +19 -14
- package/.next/server/app/api/error-items/[id]/figure/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/fix-latex/route.js +19 -15
- package/.next/server/app/api/error-items/[id]/fix-latex/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/geogebra/route.js +17 -13
- package/.next/server/app/api/error-items/[id]/geogebra/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/image/route.js +11 -8
- package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/notes/route.js +9 -7
- package/.next/server/app/api/error-items/[id]/notes/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/practice-records/route.js +10 -7
- package/.next/server/app/api/error-items/[id]/practice-records/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/reanswer/route.js +19 -15
- package/.next/server/app/api/error-items/[id]/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/retag/route.js +21 -15
- package/.next/server/app/api/error-items/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/route.js +8 -6
- package/.next/server/app/api/error-items/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js +19 -15
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/batch-delete/route.js +9 -7
- package/.next/server/app/api/error-items/batch-delete/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/clear/route.js +9 -7
- package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/list/route.js +12 -9
- package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/route.js +23 -16
- package/.next/server/app/api/error-items/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/short/[shortId]/route.js +10 -7
- package/.next/server/app/api/error-items/short/[shortId]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/similarity/route.js +11 -8
- package/.next/server/app/api/error-items/similarity/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js +20 -15
- package/.next/server/app/api/exams/[id]/questions/[questionId]/regenerate/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/results/route.js +21 -15
- package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/retry/route.js +20 -15
- package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/route.js +18 -13
- package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/route.js +20 -15
- package/.next/server/app/api/exams/route.js.nft.json +1 -1
- package/.next/server/app/api/export/route.js +12 -9
- package/.next/server/app/api/export/route.js.nft.json +1 -1
- package/.next/server/app/api/geogebra-analyze/route.js +19 -14
- package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +7 -6
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/import/route.js +23 -16
- package/.next/server/app/api/import/route.js.nft.json +1 -1
- package/.next/server/app/api/logs/frontend/route.js +9 -7
- package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/retag/route.js +21 -15
- package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/route.js +9 -8
- package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/route.js +11 -9
- package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
- package/.next/server/app/api/openclaw/batch-upload/route.js +22 -14
- package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/generate/route.js +19 -14
- package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/grade/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/practice/grade/route/build-manifest.json +12 -0
- package/.next/server/app/api/practice/grade/route.js +20 -0
- package/.next/server/app/api/practice/grade/route.js.nft.json +1 -0
- package/.next/server/app/api/practice/grade/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/practice/record/[id]/route.js +20 -14
- package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/route.js +20 -15
- package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
- package/.next/server/app/api/reanswer/route.js +19 -14
- package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/register/route.js +9 -6
- package/.next/server/app/api/register/route.js.nft.json +1 -1
- package/.next/server/app/api/register/status/route.js +10 -7
- package/.next/server/app/api/register/status/route.js.nft.json +1 -1
- package/.next/server/app/api/review/due/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/review/due/route/build-manifest.json +12 -0
- package/.next/server/app/api/review/due/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/review/due/route.js +13 -0
- package/.next/server/app/api/review/due/route.js.map +5 -0
- package/.next/server/app/api/review/due/route.js.nft.json +1 -0
- package/.next/server/app/api/review/due/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/settings/route.js +12 -9
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/clear/route.js +9 -7
- package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/route.js +12 -8
- package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/route.js +9 -8
- package/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/stats/route.js +10 -7
- package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/suggestions/route.js +9 -7
- package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js +10 -7
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/user/route.js +11 -9
- package/.next/server/app/api/user/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js +7 -6
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page/build-manifest.json +8 -6
- package/.next/server/app/error-items/[id]/page.js +13 -13
- package/.next/server/app/error-items/[id]/page.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/[id]/page/build-manifest.json +8 -6
- package/.next/server/app/exams/[id]/page.js +13 -13
- package/.next/server/app/exams/[id]/page.js.nft.json +1 -1
- package/.next/server/app/exams/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/[id]/print/page/build-manifest.json +8 -6
- package/.next/server/app/exams/[id]/print/page.js +13 -13
- package/.next/server/app/exams/[id]/print/page.js.nft.json +1 -1
- package/.next/server/app/exams/[id]/print/page_client-reference-manifest.js +1 -1
- package/.next/server/app/exams/page/build-manifest.json +8 -6
- package/.next/server/app/exams/page.js +13 -13
- package/.next/server/app/exams/page.js.nft.json +1 -1
- package/.next/server/app/exams/page_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js +7 -7
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/login/page/build-manifest.json +8 -6
- package/.next/server/app/login/page.js +13 -13
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route.js +7 -7
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/add/page/build-manifest.json +8 -6
- package/.next/server/app/notebooks/[id]/add/page.js +13 -13
- package/.next/server/app/notebooks/[id]/add/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/add/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/[id]/page/build-manifest.json +8 -6
- package/.next/server/app/notebooks/[id]/page.js +13 -13
- package/.next/server/app/notebooks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/notebooks/page/build-manifest.json +8 -6
- package/.next/server/app/notebooks/page.js +13 -13
- package/.next/server/app/notebooks/page.js.nft.json +1 -1
- package/.next/server/app/notebooks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/build-manifest.json +8 -6
- package/.next/server/app/page.js +13 -13
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/practice/page/build-manifest.json +8 -6
- package/.next/server/app/practice/page.js +13 -13
- package/.next/server/app/practice/page.js.nft.json +1 -1
- package/.next/server/app/practice/page_client-reference-manifest.js +1 -1
- package/.next/server/app/print-preview/page/build-manifest.json +8 -6
- package/.next/server/app/print-preview/page.js +13 -13
- package/.next/server/app/print-preview/page.js.nft.json +1 -1
- package/.next/server/app/print-preview/page_client-reference-manifest.js +1 -1
- package/.next/server/app/register/page/build-manifest.json +8 -6
- package/.next/server/app/register/page.js +11 -11
- package/.next/server/app/register/page.js.nft.json +1 -1
- package/.next/server/app/register/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page/app-paths-manifest.json +3 -0
- package/.next/server/app/review/page/build-manifest.json +22 -0
- package/.next/server/app/review/page/next-font-manifest.json +11 -0
- package/.next/server/app/review/page/server-reference-manifest.json +4 -0
- package/.next/server/app/review/page.js +14 -0
- package/.next/server/app/review/page.js.map +5 -0
- package/.next/server/app/review/page.js.nft.json +1 -0
- package/.next/server/app/review/page_client-reference-manifest.js +3 -0
- package/.next/server/app/stats/page/build-manifest.json +8 -6
- package/.next/server/app/stats/page.js +13 -13
- package/.next/server/app/stats/page.js.nft.json +1 -1
- package/.next/server/app/stats/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tags/page/build-manifest.json +8 -6
- package/.next/server/app/tags/page.js +13 -13
- package/.next/server/app/tags/page.js.nft.json +1 -1
- package/.next/server/app/tags/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -1
- package/.next/server/chunks/0ivl_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3ywjhli.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_admin_users_[id]_detail_route_actions_0oe_wktcsiz6j.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_delete_route_actions_1w26boq5bpk6f.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_figure_route_actions_0adlts0sguhrk.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhxtl9kc9.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uvettiij.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1oxdmh0.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2l65i8t.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3idsy15.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_batch-delete_route_actions_0hiq_1kd60tc2.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_error-items_short_[shortId]_route_actions_02976v-fif6-5.js +3 -0
- package/.next/server/chunks/[externals]__04n7qbralh87n._.js +3 -0
- package/.next/server/chunks/[externals]__0jzwjtlwxxyw6._.js +3 -0
- package/.next/server/chunks/[externals]__0pot68n2q47fn._.js +3 -0
- package/.next/server/chunks/[externals]__1oyo6y4k5ao25._.js +3 -0
- package/.next/server/chunks/[externals]__1yyxisf-dquqj._.js +3 -0
- package/.next/server/chunks/[externals]_assert_1pwe1ri__g5hw._.js +3 -0
- package/.next/server/chunks/[externals]_fs_0pplqgcyv2l7l._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0-d9f8_x-uokl._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__003ii50e63ws5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__00atddp_h2wsm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__00l2rz_disfkg._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__00vnodiir_2d4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__03_k40ubn0a9g._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04894g43fsy-j._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__061dm-7_xqjef._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__076sanerpxzzq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__08ftj1z8v5lqc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__09-twlny39tdc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__09mpwfp41rtdc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_qgrtzrjahhc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_t7bbz2btvts._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0an5a3hedd42o._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0an9s6-nn3kpq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0brc9a9ftklux._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0dql4kl3n1jq6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0fyho53bjgbss._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0g-kb21pws7qu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0hgoyp7m26_hk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0hjv7gm7tjgzr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0j-pkzf61aot8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0k0-mj3lzqicn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0l7y2xk1m7h84._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ld-3rbaj1m8-._.js +56 -0
- package/.next/server/chunks/[root-of-the-server]__0p4dqz2jo4o3r._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rg4hkgdxbjou._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rk_yxyba4meu._.js +9 -0
- package/.next/server/chunks/[root-of-the-server]__0ry-pq8_6mc_0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0swyn0_rzg_pb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0tua5u4r1xt_r._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0vtzo5ex73ywq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0yd-eoiuoru2o._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0zjg773epx4r_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1-2dj_mbdiqvl._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1-g3tlhljmfsp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1-hc0q3ck7id_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1-ti76u3720cd._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__10-um36nto0ht._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__10jwy1-wzrjon._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__123tftn1fdgwu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__12czp5_up_ywb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15eu8gun_s7xv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15g3fbcq719hq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15tkoe60wvpdf._.js +10 -0
- package/.next/server/chunks/[root-of-the-server]__15vjk2wddz8hx._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18j9-n7s671bt._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18si67df5ho67._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_gkx5xy1-3em._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bqziovn_k5u5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bvjyahgm4s-0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1cbj5r83fs2up._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1d25c4t27ht5c._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1dll9dp1pfrtj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1dxa-5wqgxi3y._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1e_3xwt459gzy._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1fc23i58z_ao2._.js +122 -0
- package/.next/server/chunks/[root-of-the-server]__1i0nyuimhqkda._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1i75c6j1-yn3y._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jtd2ara5taim._.js +6 -0
- package/.next/server/chunks/[root-of-the-server]__1jvkc3eu49g96._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1k0zrfx1r08xk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1k_8n_p3i4my_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1klj9kp10-bta._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1n8ih5ow23_12._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1nmtv65uajre3._.js +10 -0
- package/.next/server/chunks/[root-of-the-server]__1q9wd_k6hcd5m._.js +38 -0
- package/.next/server/chunks/[root-of-the-server]__1unmu-s-yg7fk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ve3j8ooyhjgv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vgkjjilvagrv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1wfua4wupbgjj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1wpzmu_3tg_74._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ztojnklvdebx._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1zyka21s1ahtj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1zzfvs1z1_tig._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__20khcxfcwy16p._.js +38 -0
- package/.next/server/chunks/[turbopack]_runtime.js +146 -16
- package/.next/server/chunks/_0-ne-bwuvd_6w._.js +3 -0
- package/.next/server/chunks/_011-ll5i30j2e._.js +3 -0
- package/.next/server/chunks/_029zt0rilrwvt._.js +3 -0
- package/.next/server/chunks/_03ovgh1-4xf3f._.js +3 -0
- package/.next/server/chunks/_0431fxnqiloso._.js +3 -0
- package/.next/server/chunks/_07amw8ha9rney._.js +3 -0
- package/.next/server/chunks/_0_3_65z6ak-5i._.js +3 -0
- package/.next/server/chunks/_0_e736ff6uhew._.js +3 -0
- package/.next/server/chunks/_0anbzuivml30d._.js +3 -0
- package/.next/server/chunks/_0at03z7sgwdv3._.js +3 -0
- package/.next/server/chunks/_0axy8rynlghzq._.js +3 -0
- package/.next/server/chunks/_0c25unp5_llaq._.js +3 -0
- package/.next/server/chunks/_0d66myj_8567o._.js +3 -0
- package/.next/server/chunks/_0ekrwj-qx_6uh._.js +36 -0
- package/.next/server/chunks/_0geyrqrvyak26._.js +11 -0
- package/.next/server/chunks/_0gxi3zrkhyvx_._.js +3 -0
- package/.next/server/chunks/_0h1rbua_hqkox._.js +3 -0
- package/.next/server/chunks/_0kkvpy2s_y3-n._.js +11 -0
- package/.next/server/chunks/_0kreo-8xn80hb._.js +3 -0
- package/.next/server/chunks/_0l2j3br2g32zp._.js +3 -0
- package/.next/server/chunks/_0lz3t4lsygbtv._.js +19 -0
- package/.next/server/chunks/_0mt2ctbvzfero._.js +3 -0
- package/.next/server/chunks/_0ne4rbj35w-io._.js +11 -0
- package/.next/server/chunks/_0qaoat396e0_3._.js +3 -0
- package/.next/server/chunks/_0qsjdkq-39qbo._.js +11 -0
- package/.next/server/chunks/_0tl0cy5j96d7h._.js +3 -0
- package/.next/server/chunks/_0tz5wpjdgntj3._.js +3 -0
- package/.next/server/chunks/_0uxp3uhmyw1h3._.js +3 -0
- package/.next/server/chunks/_0wegi_sv1s4wx._.js +3 -0
- package/.next/server/chunks/_0x3ltk09eli_f._.js +36 -0
- package/.next/server/chunks/_0z0zrluul2idw._.js +3 -0
- package/.next/server/chunks/_0zs7jfzzshbfq._.js +3 -0
- package/.next/server/chunks/_11w6ynlxuzl55._.js +3 -0
- package/.next/server/chunks/_12i51zlq-xxrl._.js +3 -0
- package/.next/server/chunks/_12w5k19rc45j_._.js +3 -0
- package/.next/server/chunks/_13ffmxv8qrwi0._.js +3 -0
- package/.next/server/chunks/_14w9nrdlajz24._.js +3 -0
- package/.next/server/chunks/_15fpgekhvv214._.js +3 -0
- package/.next/server/chunks/_16jdov0rxh99d._.js +3 -0
- package/.next/server/chunks/_17zw8m241gfs3._.js +3 -0
- package/.next/server/chunks/_18amra5328v90._.js +3 -0
- package/.next/server/chunks/_18hm5aaxkr500._.js +3 -0
- package/.next/server/chunks/_1_273cgnpyl9j._.js +3 -0
- package/.next/server/chunks/_1_ns7o3cqznv6._.js +3 -0
- package/.next/server/chunks/_1a1aqmie1d3u_._.js +3 -0
- package/.next/server/chunks/_1a1udq0c4_6ad._.js +3 -0
- package/.next/server/chunks/_1b0269xt-c8f7._.js +3 -0
- package/.next/server/chunks/_1b7qjlv0nxovi._.js +3 -0
- package/.next/server/chunks/_1be-y660a8z-q._.js +3 -0
- package/.next/server/chunks/_1cydcmia78z15._.js +3 -0
- package/.next/server/chunks/_1e8w9uuebtrcb._.js +3 -0
- package/.next/server/chunks/_1ex6ovo_j2jzv._.js +3 -0
- package/.next/server/chunks/_1fgb9ve_nfat4._.js +3 -0
- package/.next/server/chunks/_1hj7iit2u6xez._.js +3 -0
- package/.next/server/chunks/_1lrt8e26anbnm._.js +11 -0
- package/.next/server/chunks/_1m-yyz-pl9-03._.js +3 -0
- package/.next/server/chunks/_1pvqo-qnv-nqm._.js +3 -0
- package/.next/server/chunks/_1q65ai1_dwgjp._.js +3 -0
- package/.next/server/chunks/_1s5-ldt8xhtpp._.js +3 -0
- package/.next/server/chunks/_1sp0xk1c5jx5r._.js +3 -0
- package/.next/server/chunks/_1taeg5t2ai7_x._.js +3 -0
- package/.next/server/chunks/_1tjis3pqfxk7_._.js +3 -0
- package/.next/server/chunks/_1vtmdpk7p4al9._.js +3 -0
- package/.next/server/chunks/_1wulydy4wg9ow._.js +3 -0
- package/.next/server/chunks/_1xpj9uk-9zhl8._.js +3 -0
- package/.next/server/chunks/_1y5_49ip8l9oe._.js +3 -0
- package/.next/server/chunks/_1z_ujac_e_65s._.js +3 -0
- package/.next/server/chunks/_211va-dk9519v._.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-r2eove.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_admin_migrate-tags_route_actions_1ztwxhxi2qsxd.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_admin_system-reset_route_actions_15aseltajrio-.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_route_actions_1hhpuc4kr8kus.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1e15wl4.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-_fbzuj.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8zn22_3.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17qxwn3t.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h7r4czj.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdks3z54l.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5ylrz4c3i.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_notes_route_actions_1cjux7zwbv-yr.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4nf1m1rv.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4uxgcnwcc.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-b4usht.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue0aseaq.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0pe68kn6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9-yrnuz.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_results_route_actions_1v3vhi4cjl6y6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f5xqz2a.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq8qisud.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtjquazbz.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc9jg57-.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_cc6l98n.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkbeskq31.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04xh42fpe.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxeptyjby8s8.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t80igzxy.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxgeuqf90.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r04tykl.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oenvuk9lp.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_f0vpz7.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_practice_grade_route_actions_09b_8m8ydpzgk.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiomdy_l4b.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__efurdf.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_hfqgvy.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c4r8obw.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sjq7yjzh.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_review_due_route_actions_1_d8euuffodv6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9acuq1z18.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0hyvj4g.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-2uzhl0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2pi6m41.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc45lqi1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyvywz3qh.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_b3dlgw.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_user_route_actions_1k-4clgaupijh.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjlssn1kss.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz02cjxld.js +3 -0
- package/.next/server/chunks/node_modules_@anthropic-ai_sdk_1nnmjtbtp2rc6._.js +3 -0
- package/.next/server/chunks/node_modules_next_1zdbrneapig6o._.js +10 -0
- package/.next/server/chunks/node_modules_node-fetch_src_utils_multipart-parser_0a9aeam58e52_.js +3 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_19886v847zvfd.js +3 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_1h9u5hd8e7zk0.js +57 -0
- package/.next/server/chunks/src_0tzpy5j8n_1bx._.js +3 -0
- package/.next/server/chunks/src_lib_01n35ubnvj7qr._.js +3 -0
- package/.next/server/chunks/src_lib_05svhzm9a162-._.js +3 -0
- package/.next/server/chunks/src_lib_0csk5er_yd1v8._.js +3 -0
- package/.next/server/chunks/src_lib_0d4p429mhjazy._.js +3 -0
- package/.next/server/chunks/src_lib_0if7dmbrjhhw_._.js +3 -0
- package/.next/server/chunks/src_lib_0zxy_zn_mlaya._.js +3 -0
- package/.next/server/chunks/src_lib_1-tw3_3nqx6ug._.js +3 -0
- package/.next/server/chunks/src_lib_15kwif87cuv22._.js +3 -0
- package/.next/server/chunks/src_lib_1geq39r7va9gy._.js +3 -0
- package/.next/server/chunks/src_lib_1k0xki4wmn54_._.js +3 -0
- package/.next/server/chunks/src_lib_1wgxqrl1loni_._.js +3 -0
- package/.next/server/chunks/src_lib_1wh1pqmstnzzt._.js +3 -0
- package/.next/server/chunks/src_lib_1wm8ay-jqxakc._.js +3 -0
- package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms4djibp._.js +589 -0
- package/.next/server/chunks/src_lib_auth-utils_ts_20i7biv4dj8pm._.js +3 -0
- package/.next/server/chunks/src_lib_current-user_ts_20jgxch2zjmt3._.js +3 -0
- package/.next/server/chunks/src_lib_date-time_ts_14chb270f3epb._.js +3 -0
- package/.next/server/chunks/src_lib_exam_ts_0d3a4q4r41hcf._.js +3 -0
- package/.next/server/chunks/src_lib_logger_ts_067l8txrna0gg._.js +3 -0
- package/.next/server/chunks/src_lib_mastery_ts_0ybi94uxn8ut6._.js +3 -0
- package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-vwl9ue._.js +3 -0
- package/.next/server/chunks/src_lib_retag_ts_0eu8ld_86kt3a._.js +3 -0
- package/.next/server/chunks/src_lib_tag-recognition_ts_1wkzrdiapau86._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__03jq7w4crcz_u._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__070lhtl_a6l81._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0egzlmtf23a_j._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0fl_sbe1q-l5j._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0i73t4kmj3-mp._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0s0807tegp2v8._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0snw-y9tp0_06._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0u-q2sah-le20._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0uulvxrtw9ld4._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0x_ihemma9171._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0zqp_pztbsqqc._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__102i99h9qhhnc._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__18ej8rcn5j4hs._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__18i084ru7sq9w._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__18sucwsgl0hdl._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1a50a5t_t8z_e._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1b9f3v7g4ocyf._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1gulcy2-2jrfj._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1hcwd0rtvz96c._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1i2zrji0j2c3l._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1qpe9xti5ipq0._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1qpi6ed0efnfg._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1qwt10yvul4gg._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1upv9f0hlagx7._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1urwx866fvhi4._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1uw-g6-ij61rl._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1vwegr-t8j6qe._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1xfc5gf4weasu._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1xufj5ntr9bm3._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1yy2y09x1rvba._.js +3 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +146 -16
- package/.next/server/chunks/ssr/_00np6xqvkg6u-._.js +32 -0
- package/.next/server/chunks/ssr/_08fq-uch-l1g6._.js +8 -0
- package/.next/server/chunks/ssr/_09y2uhjubswp4._.js +3 -0
- package/.next/server/chunks/ssr/_0bsjhzelppbjh._.js +3 -0
- package/.next/server/chunks/ssr/_0di9wj37_9zhf._.js +3 -0
- package/.next/server/chunks/ssr/_0h6qsip9mphaq._.js +3 -0
- package/.next/server/chunks/ssr/_0ng735s0jio00._.js +3 -0
- package/.next/server/chunks/ssr/_0rd-teluypcd2._.js +3 -0
- package/.next/server/chunks/ssr/_0t2jed64ec8vu._.js +3 -0
- package/.next/server/chunks/ssr/_0uvml2k65e53w._.js +3 -0
- package/.next/server/chunks/ssr/_1-bq77e5afl30._.js +3 -0
- package/.next/server/chunks/ssr/_1-sbpqghw1pn7._.js +3 -0
- package/.next/server/chunks/ssr/_110r17vqu8gol._.js +3 -0
- package/.next/server/chunks/ssr/_14d3enlxi54zl._.js +3 -0
- package/.next/server/chunks/ssr/_17edi6l2a0p76._.js +8 -0
- package/.next/server/chunks/ssr/_19ktk2l66yngc._.js +3 -0
- package/.next/server/chunks/ssr/_1b9b1aq5b_1sj._.js +3 -0
- package/.next/server/chunks/ssr/_1f1l6ubybak3a._.js +3 -0
- package/.next/server/chunks/ssr/_1g12ubvpxwe-j._.js +3 -0
- package/.next/server/chunks/ssr/_1g8mzz6qxv2mr._.js +3 -0
- package/.next/server/chunks/ssr/_1i0mdte5du0e1._.js +3 -0
- package/.next/server/chunks/ssr/_1pnt2b76-xt6_._.js +3 -0
- package/.next/server/chunks/ssr/_1prnv9r-jt4dy._.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickzfofbmo.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gsw9br4u.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9akl69m75.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_page_actions_1kushg5crt5ed.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxqldskme.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-jb4_80.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0ny9dmg.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2lc_po5.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7tmcbrj.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz034ff8.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n6gnmoq.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaalnnytwbd.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-xpplkgy.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_review_page_actions_1gf_x78pgriy6.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_ad6s7ee.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_tags_page_actions_20v_n--6ltjkg.js +3 -0
- package/.next/server/chunks/ssr/node_modules_0fm0peui_p0ra._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_1y5ym6hiirb6m._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_1yow452htx6uk._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_@radix-ui_0im69oqv_i2ki._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_@radix-ui_0jungqz8-8rpt._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_@radix-ui_react-roving-focus_dist_index_mjs_0jdjq3jxbmizo._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_15-zi1i74qu9j._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1_p6srzucwl-s._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_1g_su6v6_1gmz._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_printer_0pprvafgadlwd.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0ufsi7bhcumza._.js +23 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1g0hsq_f-fygr._.js +14 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1gey_lsf9b_wo._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1khq67j4vo9y4._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i643j53._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-620erc29b8l.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02t4jbzz34_x5.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06zp_1r4dyujd.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07zpyh6_aix9e.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08b8vpe4ydv2l.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0927yli_zsjiv.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ab39qicq17ku.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dq5iwc4xesq1.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mfa8uq-ofoud.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tz1eth8tnoyx.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14rvnul2svrv8.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15yshykizhy_t.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17vx074zs1h7f.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18uzvmzy5tpu_.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_196bmtjcgr159.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1aq9r3iw9g7qi.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1e1odqisoi2pv.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1l6unubiwsg9f.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ya73f4o4_7mr.js +3 -0
- package/.next/server/chunks/ssr/src_13u20tdu4gmgj._.js +3 -0
- package/.next/server/chunks/ssr/src_1gayunqs8u2e2._.js +3 -0
- package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0w90cx_._.js +3 -0
- package/.next/server/chunks/ssr/src_app_admin_user_[id]_page_tsx_0zidp-8hr5upa._.js +3 -0
- package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdmyh7_9q._.js +3 -0
- package/.next/server/chunks/ssr/src_app_exams_[id]_page_tsx_0xcjflkgkwzgd._.js +3 -0
- package/.next/server/chunks/ssr/src_app_exams_[id]_print_page_tsx_1i-xvhk8ul1l1._.js +35 -0
- package/.next/server/chunks/ssr/src_app_exams_page_tsx_17_d4_gy2i1ds._.js +3 -0
- package/.next/server/chunks/ssr/src_app_login_page_tsx_0yrgg2z_juzv9._.js +3 -0
- package/.next/server/chunks/ssr/src_app_notebooks_[id]_add_page_tsx_179tow1ql6vc_._.js +3 -0
- package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5-txm8_._.js +3 -0
- package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5gnz_40._.js +3 -0
- package/.next/server/chunks/ssr/src_app_page_tsx_1chiuahujsxm1._.js +3 -0
- package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53v3kpzb._.js +3 -0
- package/.next/server/chunks/ssr/src_app_print-preview_page_tsx_001yt-fzrj7tf._.js +3 -0
- package/.next/server/chunks/ssr/src_app_register_page_tsx_0l87b3754fa2j._.js +3 -0
- package/.next/server/chunks/ssr/src_app_review_page_tsx_1rq4ygvo_szv0._.js +3 -0
- package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4hv_zlp._.js +3 -0
- package/.next/server/chunks/ssr/src_components_difficulty-stars_tsx_1af9qqfurq7_t._.js +3 -0
- package/.next/server/chunks/ssr/src_components_error-list_error-item-card_tsx_1zsiqsrj-jjd7._.js +3 -0
- package/.next/server/chunks/ssr/src_components_mastery-panel_tsx_1--j5c7mhomdp._.js +3 -0
- package/.next/server/chunks/ssr/src_components_practice-result-picker_tsx_06jytymet6adu._.js +3 -0
- package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv3nb6xs._.js +193 -0
- package/.next/server/chunks/ssr/src_components_settings_duplicate-threshold-setting_tsx_06bbmwo1pkaim._.js +3 -0
- package/.next/server/chunks/ssr/src_components_tag-input_tsx_0b9sxffna5c9i._.js +3 -0
- package/.next/server/chunks/ssr/src_components_ui_checkbox_tsx_0xdylzmai9n53._.js +3 -0
- package/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +3 -0
- package/.next/server/chunks/ssr/src_components_ui_tabs_tsx_0skssvsquc-9c._.js +3 -0
- package/.next/server/chunks/ssr/src_lib_constants_pagination_ts_02h78dpuabai5._.js +3 -0
- package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctny6_q66._.js +3 -0
- package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u3yic3e._.js +3 -0
- package/.next/server/edge/chunks/_1s0wgnupch4sb._.js +3 -0
- package/.next/server/edge/chunks/node_modules_0um8zwzayafzq._.js +13 -0
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_0dxg4rr5z738i.js +3 -0
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_0dzf5yhexv02u.js +3 -0
- package/.next/server/instrumentation.js +3 -3
- package/.next/server/middleware-build-manifest.js +219 -9
- package/.next/server/middleware-manifest.json +11 -11
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +4 -4
- package/.next/server/pages/500.html +1 -1
- package/.next/server/preview-props.json +5 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/00kfvk-buhhsb.js +191 -0
- package/.next/static/chunks/08wadcj8wbdsy.js +1 -0
- package/.next/static/chunks/093w4w_19h9qh.js +31 -0
- package/.next/static/chunks/0_9gv911-tqmk.css +3 -0
- package/.next/static/chunks/0a-rekt06v0sv.js +1 -0
- package/.next/static/chunks/0aqlzwgn78ncm.js +1 -0
- package/.next/static/chunks/0e7mao0hn_nw4.js +1 -0
- package/.next/static/chunks/0pdeh9usti0bj.js +3 -0
- package/.next/static/chunks/0pvlg-25ddo6e.js +33 -0
- package/.next/static/chunks/0ykhi6pk49so-.js +1 -0
- package/.next/static/chunks/14a1tth-1ddn-.js +1 -0
- package/.next/static/chunks/15e5p9740moee.js +1 -0
- package/.next/static/chunks/181--wh89vylg.js +1 -0
- package/.next/static/chunks/1_h2h09t_394a.js +1 -0
- package/.next/static/chunks/1enxsrqonvvxr.js +1 -0
- package/.next/static/chunks/1fl98iro7y1bv.js +1 -0
- package/.next/static/chunks/1m3ompn8ev8gr.js +1 -0
- package/.next/static/chunks/1wqqkfg03tuu1.js +1 -0
- package/.next/static/chunks/23v229-qd9o6o.js +1 -0
- package/.next/static/chunks/242x7dx0zu3hf.js +1 -0
- package/.next/static/chunks/29m8r4g8_em2g.js +1 -0
- package/.next/static/chunks/2a86gw0-qil9m.css +1 -0
- package/.next/static/chunks/2ir3p1tlsazez.js +1 -0
- package/.next/static/chunks/2l-1t8-pfq4ph.js +1 -0
- package/.next/static/chunks/2tayqxc443yyh.js +1 -0
- package/.next/static/chunks/2v3rvsf6-bnfs.js +1 -0
- package/.next/static/chunks/2wk_a0jmwmybn.js +1 -0
- package/.next/static/chunks/2ysjbje-zsbdp.js +1 -0
- package/.next/static/chunks/3-u1evjqom016.js +1 -0
- package/.next/static/chunks/30eew6y-03vg8.js +1 -0
- package/.next/static/chunks/32oh815gi42ey.js +1 -0
- package/.next/static/chunks/37jrjuqt8f_ee.js +1 -0
- package/.next/static/chunks/37v5zj-q3hku_.js +1 -0
- package/.next/static/chunks/3aiz227rfearv.js +1 -0
- package/.next/static/chunks/3gvzs1nxarb0s.js +1 -0
- package/.next/static/chunks/3mb_v650fie_i.js +22 -0
- package/.next/static/chunks/3neepxbq9_bd3.css +1 -0
- package/.next/static/chunks/3q82qxm1otmz4.js +6 -0
- package/.next/static/chunks/3r4z_6i5z0hd5.js +1 -0
- package/.next/static/chunks/3s_9841ksp5zw.js +1 -0
- package/.next/static/chunks/3wm2jhitfeeue.js +1 -0
- package/.next/static/chunks/turbopack-2c3mg3r-05n1w.js +1 -0
- package/package.json +4 -5
- package/prisma/migrations/20261024000000_add_last_practice/migration.sql +2 -0
- package/prisma/migrations/20261024203954_add_ai_usage/migration.sql +11 -0
- package/prisma/schema.prisma +13 -0
- package/prisma/seed.db +0 -0
- package/server.js +1 -1
- package/.next/server/app/latex-test/page/app-paths-manifest.json +0 -3
- package/.next/server/app/latex-test/page/build-manifest.json +0 -20
- package/.next/server/app/latex-test/page/next-font-manifest.json +0 -11
- package/.next/server/app/latex-test/page.js +0 -14
- package/.next/server/app/latex-test/page.js.nft.json +0 -1
- package/.next/server/app/latex-test/page_client-reference-manifest.js +0 -3
- package/.next/server/chunks/1jng_app_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3.js +0 -3
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1.js +0 -3
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3.js +0 -3
- package/.next/server/chunks/[externals]__04n7qbr._.js +0 -3
- package/.next/server/chunks/[externals]__0jzwjtl._.js +0 -3
- package/.next/server/chunks/[externals]__0pot68n._.js +0 -3
- package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0-2l_pu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +0 -153
- package/.next/server/chunks/[root-of-the-server]__00moo9h._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__012xcq-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__02pqrw_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__033ri9p._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__064krqp._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__07iraov._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__07q7nsp._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0_unb90._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0a1zwxf._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0aefi10._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0akadps._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d-37yj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dqgi36._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dz5c04._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0e_u82_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0f3jyg0._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0gwwa9b._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0hars8c._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0iozebm._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0k3mm05._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0lggrcf._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0m37xyb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0pa47kn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +0 -9
- package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0w58v6b._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wsj4a_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wvvsah._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0xg5h56._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__10hs-qn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__119xork._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +0 -32
- package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__15y1l96._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__16hnc6-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__19_wn9u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1_hp3ol._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1a4-26x._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1bl7t8i._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1c0vatt._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1cngnud._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1d82zkk._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +0 -122
- package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1i40psm._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +0 -6
- package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1lbcdia._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1m86czr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1mnpqkx._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1n4b6nb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1nmrlew._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1q7yl7l._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1qv60vg._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ry8uat._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1s2rww3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +0 -32
- package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +0 -3
- package/.next/server/chunks/_0-eguqv._.js +0 -3
- package/.next/server/chunks/_008zx49._.js +0 -3
- package/.next/server/chunks/_011-ll5._.js +0 -3
- package/.next/server/chunks/_0389uce._.js +0 -3
- package/.next/server/chunks/_0431fxn._.js +0 -3
- package/.next/server/chunks/_0ekrwj-._.js +0 -36
- package/.next/server/chunks/_0gwg6ba._.js +0 -3
- package/.next/server/chunks/_0gxi3zr._.js +0 -3
- package/.next/server/chunks/_0lz3t4l._.js +0 -19
- package/.next/server/chunks/_0n36ev0._.js +0 -3
- package/.next/server/chunks/_0oc8oe4._.js +0 -3
- package/.next/server/chunks/_0rjzgi0._.js +0 -3
- package/.next/server/chunks/_0uxp3uh._.js +0 -3
- package/.next/server/chunks/_0x3ltk0._.js +0 -36
- package/.next/server/chunks/_10y361h._.js +0 -3
- package/.next/server/chunks/_12w5k19._.js +0 -3
- package/.next/server/chunks/_13ffmxv._.js +0 -3
- package/.next/server/chunks/_14tz_k9._.js +0 -3
- package/.next/server/chunks/_15neond._.js +0 -11
- package/.next/server/chunks/_16jdov0._.js +0 -3
- package/.next/server/chunks/_18amra5._.js +0 -3
- package/.next/server/chunks/_1_ns7o3._.js +0 -3
- package/.next/server/chunks/_1a1aqmi._.js +0 -3
- package/.next/server/chunks/_1a1udq0._.js +0 -3
- package/.next/server/chunks/_1b0269x._.js +0 -3
- package/.next/server/chunks/_1b7qjlv._.js +0 -3
- package/.next/server/chunks/_1be-y66._.js +0 -3
- package/.next/server/chunks/_1ex6ovo._.js +0 -3
- package/.next/server/chunks/_1fgb9ve._.js +0 -3
- package/.next/server/chunks/_1m-yyz-._.js +0 -3
- package/.next/server/chunks/_1n1xsqj._.js +0 -3
- package/.next/server/chunks/_1oj6gy_._.js +0 -3
- package/.next/server/chunks/_1pvqo-q._.js +0 -3
- package/.next/server/chunks/_1z_ujac._.js +0 -3
- package/.next/server/chunks/_211va-d._.js +0 -3
- package/.next/server/chunks/_2194yr7._.js +0 -11
- package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_admin_migrate-tags_route_actions_1ztwxhx.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_admin_system-reset_route_actions_15aselt.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_detail_route_actions_0oe_wkt.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_route_actions_1hhpuc4.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdk.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_delete_route_actions_1w26boq.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_figure_route_actions_0adlts0.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhx.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uv.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5yl.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_notes_route_actions_1cjux7z.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4n.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4ux.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_batch-delete_route_actions_0hiq_1k.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0p.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_short_[shortId]_route_actions_02976v-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_results_route_actions_1v3vhi4.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtj.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_c.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04x.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxepty.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t8.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxg.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oen.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiom.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sj.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyv.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_user_route_actions_1k-4clg.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30h.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz0.js +0 -3
- package/.next/server/chunks/node_modules_next_1zdbrne._.js +0 -10
- package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +0 -22
- package/.next/server/chunks/src_0tzpy5j._.js +0 -3
- package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +0 -562
- package/.next/server/chunks/src_lib_date-time_ts_14chb27._.js +0 -3
- package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-._.js +0 -3
- package/.next/server/chunks/ssr/[externals]_fs_0pplqgc._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +0 -35
- package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__05f8wbh._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0a0nty7._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ax9dog._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0bvtza7._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__0g_-bym._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0gwwr7e._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0koj8h0._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0s87xha._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0skyo1a._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0snpjfe._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0y_e9do._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ybs_4c._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__14l7peq._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1507q8a._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__15ppb9j._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__191jn5n._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__1gth76-._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1ko_dw5._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1l84pks._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1m7qw-2._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1ma2oml._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1o8jotz._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1o__w27._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1p7f0va._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1sg9eoj._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1u74hyi._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1xsovpr._.js +0 -3
- package/.next/server/chunks/ssr/_054yhx9._.js +0 -3
- package/.next/server/chunks/ssr/_07ls0n_._.js +0 -3
- package/.next/server/chunks/ssr/_0i9hwpv._.js +0 -3
- package/.next/server/chunks/ssr/_0iqp5hs._.js +0 -3
- package/.next/server/chunks/ssr/_0m1-rq-._.js +0 -3
- package/.next/server/chunks/ssr/_0mgbe2b._.js +0 -3
- package/.next/server/chunks/ssr/_0nv22wt._.js +0 -3
- package/.next/server/chunks/ssr/_0rz2_qb._.js +0 -151
- package/.next/server/chunks/ssr/_0sbbx9z._.js +0 -7
- package/.next/server/chunks/ssr/_0sf1gd9._.js +0 -3
- package/.next/server/chunks/ssr/_0uemk57._.js +0 -3
- package/.next/server/chunks/ssr/_0zj7dlu._.js +0 -3
- package/.next/server/chunks/ssr/_11ut-6_._.js +0 -3
- package/.next/server/chunks/ssr/_17igtpd._.js +0 -3
- package/.next/server/chunks/ssr/_1aot_70._.js +0 -3
- package/.next/server/chunks/ssr/_1filpif._.js +0 -3
- package/.next/server/chunks/ssr/_1jniqsj._.js +0 -3
- package/.next/server/chunks/ssr/_1kgnhmo._.js +0 -8
- package/.next/server/chunks/ssr/_1lt1lhz._.js +0 -8
- package/.next/server/chunks/ssr/_1yeu09q._.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickz.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gs.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9ak.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_page_actions_1kushg5.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxq.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_latex-test_page_actions_19v7ka0.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaaln.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-x.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_a.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_tags_page_actions_20v_n--.js +0 -3
- package/.next/server/chunks/ssr/node_modules_0o2aki7._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_1y5ym6h._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_1lnqo1a._.js +0 -5
- package/.next/server/chunks/ssr/node_modules_next_dist_077yo5w._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +0 -6
- package/.next/server/chunks/ssr/node_modules_next_dist_1_c-t1n._.js +0 -14
- package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +0 -33
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +0 -3
- package/.next/server/chunks/ssr/src_1biegcg._.js +0 -3
- package/.next/server/chunks/ssr/src_1gayunq._.js +0 -3
- package/.next/server/chunks/ssr/src_1o363ao._.js +0 -3
- package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +0 -3
- package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +0 -3
- package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +0 -3
- package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5._.js +0 -3
- package/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +0 -3
- package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53._.js +0 -3
- package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4._.js +0 -3
- package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +0 -193
- package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctn._.js +0 -3
- package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u._.js +0 -3
- package/.next/server/edge/chunks/_1s0wgnu._.js +0 -3
- package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +0 -13
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1iafar9.js +0 -3
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1x1n1fx.js +0 -3
- package/.next/static/chunks/03gmdewlo3s6u.js +0 -1
- package/.next/static/chunks/06q8lm6y95ac4.css +0 -1
- package/.next/static/chunks/0_w084ms_lq25.js +0 -22
- package/.next/static/chunks/0dzfsm6h13fyr.js +0 -1
- package/.next/static/chunks/0ehjiuuxbbhq9.js +0 -1
- package/.next/static/chunks/0ij2dqb0qj5ry.js +0 -1
- package/.next/static/chunks/0iq53qkw5hvrs.js +0 -1
- package/.next/static/chunks/0lxsaj3bivcgo.css +0 -1
- package/.next/static/chunks/0m81l71kojx8j.js +0 -1
- package/.next/static/chunks/0nckb2-62ooyq.js +0 -1
- package/.next/static/chunks/0pwdmc9gw8ben.js +0 -33
- package/.next/static/chunks/0snej-v5yglxr.js +0 -1
- package/.next/static/chunks/1-7k9gbbjkcml.js +0 -1
- package/.next/static/chunks/1c92up8k2x0z4.js +0 -1
- package/.next/static/chunks/1cd32rtomdngh.js +0 -1
- package/.next/static/chunks/1io3-cth_2-cd.js +0 -1
- package/.next/static/chunks/1oiuiyv1cv06v.js +0 -31
- package/.next/static/chunks/1t4-pobw0y5cf.js +0 -1
- package/.next/static/chunks/1xg811762s1p1.js +0 -1
- package/.next/static/chunks/1z_5sj1wqi06v.js +0 -1
- package/.next/static/chunks/24dymggis4suf.css +0 -3
- package/.next/static/chunks/24jbwfpgmio7x.js +0 -1
- package/.next/static/chunks/27fr34_1v7xyh.js +0 -1
- package/.next/static/chunks/2dlme2fdlkms6.js +0 -1
- package/.next/static/chunks/2eu_bls12m1wj.js +0 -1
- package/.next/static/chunks/2pmzqbg-qabof.js +0 -1
- package/.next/static/chunks/2w2uo9jjxt-re.js +0 -1
- package/.next/static/chunks/2x8e_fbze06sd.js +0 -1
- package/.next/static/chunks/2z1_5umv36es6.js +0 -191
- package/.next/static/chunks/32bl-oqw9oso0.js +0 -1
- package/.next/static/chunks/3b-g5_r9nto3s.js +0 -6
- package/.next/static/chunks/3g1rm2suowncy.js +0 -3
- package/.next/static/chunks/3helovsg02qr4.js +0 -1
- package/.next/static/chunks/3jta6jrk-jubq.js +0 -1
- package/.next/static/chunks/3m4c1r8_2ga_1.js +0 -1
- package/.next/static/chunks/3whzkc6d8oefw.js +0 -1
- package/.next/static/chunks/3yhf6xyypekz6.js +0 -1
- package/.next/static/chunks/3z9gc_02gl8n9.js +0 -1
- package/.next/static/chunks/427wg73nuzpiz.js +0 -5
- package/.next/static/chunks/turbopack-1-0r7_puvz3eq.js +0 -1
- /package/.next/server/app/{latex-test/page → api/practice/grade/route}/server-reference-manifest.json +0 -0
- /package/.next/server/app/{latex-test/page.js.map → api/practice/grade/route.js.map} +0 -0
- /package/.next/server/app/{latex-test → review}/page/react-loadable-manifest.json +0 -0
- /package/.next/static/{Y0pwgmRdVAifh_zukihNt → ZH3ew12HOzoE3JRl8c_8L}/_buildManifest.js +0 -0
- /package/.next/static/{Y0pwgmRdVAifh_zukihNt → ZH3ew12HOzoE3JRl8c_8L}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{Y0pwgmRdVAifh_zukihNt → ZH3ew12HOzoE3JRl8c_8L}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[73773,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(99570),f=a.i(79834),g=a.i(6376),h=a.i(91119),i=a.i(86304),j=a.i(210),k=a.i(69520),l=a.i(81560),m=a.i(70106);let n=(0,m.default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var o=a.i(14548),p=a.i(33508),q=a.i(72807),r=a.i(96221),s=a.i(41379);let t=(0,m.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),u=(0,m.default)("file-question-mark",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]]);var v=a.i(29246),w=a.i(38246),x=a.i(50194),y=a.i(74484),z=a.i(93907),A=a.i(60081),B=a.i(99814),C=a.i(66718),D=a.i(80701),E=a.i(91938),F=a.i(57292),G=a.i(92883),H=a.i(50659),I=a.i(10395);let J=(0,m.default)("clapperboard",[["path",{d:"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z",key:"1tn4o7"}],["path",{d:"m6.2 5.3 3.1 3.9",key:"iuk76l"}],["path",{d:"m12.4 3.4 3.1 4",key:"6hsd6n"}],["path",{d:"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z",key:"ltgou9"}]]),K=(0,m.default)("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]),L=(0,m.default)("minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]]),M=(0,m.default)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]),N=(0,m.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var O=a.i(87654);let P=/<(?:animate|animateTransform|animateMotion|set)\b[^>]*>/gi;function Q(a,b){let c=a.match(RegExp(`\\s${b}\\s*=\\s*("([^"]*)"|'([^']*)')`,"i"));return c?(c[2]??c[3]??"").trim():null}function R(a){if(!a)return null;let b=a.trim(),c=b.match(/^(?:(\d+):)?(\d+):(\d+(?:\.\d+)?)$/);if(c)return 3600*Number(c[1]??0)+60*Number(c[2])+Number(c[3]);let d=b.match(/^(\d+(?:\.\d+)?)(h|min|s|ms)?$/);if(!d)return null;let e={h:3600,min:60,s:1,ms:.001}[d[2]??"s"]??1;return Number(d[1])*e}var S=a.i(68114);function T(a){let b=Math.max(0,Math.floor(a));return`${Math.floor(b/60)}:${String(b%60).padStart(2,"0")}`}function U({svg:a}){let{t:d}=(0,x.useLanguage)(),f=(0,c.useRef)(null),g=(0,c.useRef)(null),h=(0,c.useRef)(null),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(0),[m,n]=(0,c.useState)(!1),[o,p]=(0,c.useState)(!1),q=m||o,r=(0,c.useMemo)(()=>(function(a){let b=0;for(let c of a.match(P)||[]){let a=Q(c,"begin"),d=null===a?0:R(a.split(";")[0]);if(null===d)continue;let e=Q(c,"repeatCount");if("indefinite"!==e&&"indefinite"!==Q(c,"repeatDur"))b=Math.max(b,d+(R(Q(c,"dur"))??0)*(e&&Number.isFinite(Number(e))?Number(e):1))}return b})(a),[a]),s=(0,c.useMemo)(()=>(function(a){let b=a.match(/<svg\b[^>]*>/i)?.[0]??"",c=Q(b,"viewBox")?.split(/[\s,]+/).map(Number);if(c?.length===4&&c[2]>0&&c[3]>0)return c[2]/c[3];let d=parseFloat(Q(b,"width")??""),e=parseFloat(Q(b,"height")??"");return d>0&&e>0?d/e:1.6})(a),[a]),t=(0,c.useMemo)(()=>`<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; img-src data:"><style>html,body{margin:0;height:100%;background:#fff;overflow:hidden}svg{display:block;width:100%;height:100%}</style></head><body>${a}</body></html>`,[a]),u=(0,c.useCallback)(()=>{let a=g.current?.contentDocument;return"function"==typeof a?.getAnimations?a.getAnimations():[]},[]),v=(0,c.useCallback)(()=>{h.current?.pauseAnimations(),u().forEach(a=>a.pause()),j(!1)},[u]),w=(0,c.useCallback)(a=>{h.current?.setCurrentTime(a),u().forEach(b=>{b.currentTime=1e3*a}),l(a)},[u]),y=(0,c.useCallback)(()=>{let a=h.current;a&&(r>0&&a.getCurrentTime()>=r&&w(0),a.unpauseAnimations(),u().forEach(a=>a.play()),j(!0))},[u,r,w]),z=async()=>{if(o)return void p(!1);if(document.fullscreenElement)return void await document.exitFullscreen().catch(()=>void 0);let a=f.current;if(a&&"function"==typeof a.requestFullscreen)try{await a.requestFullscreen();return}catch{}p(!0)};return(0,c.useEffect)(()=>{let a=()=>n(document.fullscreenElement===f.current);return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[]),(0,c.useEffect)(()=>{if(!o)return;let a=a=>{"Escape"===a.key&&p(!1)},b=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",a),()=>{document.body.style.overflow=b,document.removeEventListener("keydown",a)}},[o]),(0,c.useEffect)(()=>{if(!i)return;let a=0,b=()=>{let c=h.current?.getCurrentTime()??0;if(r>0&&c>=r){h.current?.setCurrentTime(r),v(),l(r);return}l(c),a=requestAnimationFrame(b)};return a=requestAnimationFrame(b),()=>cancelAnimationFrame(a)},[i,r,v]),(0,b.jsxs)("div",{ref:f,className:(0,S.cn)("space-y-2",q&&"flex flex-col items-center justify-center bg-black p-4",o&&"fixed inset-0 z-50"),children:[(0,b.jsx)("iframe",{ref:g,srcDoc:t,sandbox:"allow-same-origin",title:d.svgAnimation.alt,onLoad:()=>{h.current=g.current?.contentDocument?.querySelector("svg")??null,l(0),j(!!h.current)},className:(0,S.cn)("mx-auto block rounded border bg-white",!q&&"w-full max-w-3xl"),style:q?{aspectRatio:s,width:`min(100%, calc((100dvh - 96px) * ${s}))`}:{aspectRatio:s}}),(0,b.jsxs)("div",{className:(0,S.cn)("mx-auto flex w-full items-center gap-2",q?"max-w-5xl text-white":"max-w-3xl"),children:[(0,b.jsx)(e.Button,{variant:"outline",size:"sm",className:"h-8 w-8 shrink-0 p-0 text-foreground",onClick:i?v:y,"aria-label":i?d.svgAnimation.pause:d.svgAnimation.play,title:i?d.svgAnimation.pause:d.svgAnimation.play,children:i?(0,b.jsx)(M,{className:"h-4 w-4"}):(0,b.jsx)(N,{className:"h-4 w-4"})}),(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",className:(0,S.cn)("h-8 w-8 shrink-0 p-0",q&&"text-white hover:bg-white/20 hover:text-white"),onClick:()=>{w(0),y()},"aria-label":d.svgAnimation.replay,title:d.svgAnimation.replay,children:(0,b.jsx)(O.RotateCcw,{className:"h-4 w-4"})}),r>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("input",{type:"range",min:0,max:r,step:.1,value:Math.min(k,r),onChange:a=>w(Number(a.target.value)),"aria-label":d.svgAnimation.progress,className:"h-2 min-w-0 flex-1 cursor-pointer accent-primary"}),(0,b.jsxs)("span",{className:(0,S.cn)("shrink-0 text-xs tabular-nums",q?"text-white/80":"text-muted-foreground"),children:[T(k)," / ",T(r)]})]}),(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",className:(0,S.cn)("ml-auto h-8 w-8 shrink-0 p-0",q&&"text-white hover:bg-white/20 hover:text-white"),onClick:z,"aria-label":q?d.svgAnimation.exitFullscreen:d.svgAnimation.fullscreen,title:q?d.svgAnimation.exitFullscreen:d.svgAnimation.fullscreen,children:q?(0,b.jsx)(L,{className:"h-4 w-4"}):(0,b.jsx)(K,{className:"h-4 w-4"})})]})]})}var V=a.i(30534),W=a.i(10302);function X({errorItemId:a,svgAnimation:d,hasOtherLanguage:f,onChange:g}){let{t:h,language:i}=(0,x.useLanguage)(),[j,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(null),s=async()=>{m(!0),q(null);try{let b=await E.apiClient.post(`/api/error-items/${a}/svg-animation`,{language:i},{timeout:6e5});g(i,b.svgAnimation)}catch(c){let a=c?.data?.message||"",b=h.errors[a];V.frontendLogger.error("[SvgAnimation]","Failed to generate SVG animation",{code:a}),q("NO_QUESTION_TEXT"===a?h.svgAnimation.noQuestionText:"NO_VALID_ANIMATION"===a?h.svgAnimation.invalid:"string"==typeof b?b:h.svgAnimation.failed)}finally{m(!1)}},t=async()=>{if(await (0,W.confirmDialog)(h.svgAnimation.confirmDelete,{destructive:!0})){o(!0);try{await E.apiClient.delete(`/api/error-items/${a}/svg-animation?language=${i}`),g(i,null),q(null)}catch(a){V.frontendLogger.error("[SvgAnimation]","Failed to delete SVG animation",{error:a instanceof Error?a.message:String(a)}),W.toast.error(h.svgAnimation.deleteFailed)}finally{o(!1)}}};if(!d)return(0,b.jsxs)("div",{className:"rounded-lg border border-dashed p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(J,{className:"h-4 w-4"}),(0,b.jsx)("span",{children:h.svgAnimation.title})]}),(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:s,disabled:j,children:[j?(0,b.jsx)(r.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(J,{className:"mr-2 h-4 w-4"}),j?h.svgAnimation.generating:h.svgAnimation.generate]})]}),p&&(0,b.jsx)("p",{className:"text-xs text-destructive mt-2",children:p}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:f?h.svgAnimation.otherLanguageAvailable:h.svgAnimation.hint})]});let u=j||n;return(0,b.jsxs)("div",{className:"rounded-lg border bg-card",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-3 py-2 border-b bg-muted/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:h.svgAnimation.title}),u&&(0,b.jsx)(r.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:s,disabled:u,children:[j?(0,b.jsx)(r.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(k.RefreshCw,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:j?h.svgAnimation.generating:h.svgAnimation.regenerate})]}),(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:t,disabled:u,children:[(0,b.jsx)(l.Trash2,{className:"h-3.5 w-3.5"}),(0,b.jsx)("span",{children:h.svgAnimation.delete})]})]})]}),p&&(0,b.jsx)("p",{className:"px-3 pt-2 text-xs text-destructive",children:p}),(0,b.jsx)("div",{className:"p-2 sm:p-3",children:(0,b.jsx)(U,{svg:d})})]})}var Y=a.i(33441);let Z=(0,m.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);function $({shortId:a,className:d=""}){let{t:e}=(0,x.useLanguage)(),[f,g]=(0,c.useState)(!1);if(!a)return null;let h=async b=>{b.preventDefault(),b.stopPropagation();try{await navigator.clipboard.writeText(a),g(!0),setTimeout(()=>g(!1),1500)}catch{window.prompt(e.shortId.copy,a)}};return(0,b.jsxs)("button",{type:"button",onClick:h,title:f?e.shortId.copied:e.shortId.copy,className:`inline-flex items-center gap-1 rounded-md border bg-muted/50 px-2 py-0.5 font-mono text-xs text-muted-foreground hover:text-foreground transition-colors ${d}`,children:[(0,b.jsx)("span",{children:e.shortId.label}),(0,b.jsx)("span",{className:"font-semibold text-foreground",children:a}),f?(0,b.jsx)(Y.Check,{className:"h-3 w-3 text-green-600"}):(0,b.jsx)(Z,{className:"h-3 w-3"})]})}var _=a.i(31368),aa=a.i(18943);let ab=(0,m.default)("shapes",[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]]);function ac({errorItemId:a,onDone:d}){let{t:f}=(0,x.useLanguage)(),[g,h]=(0,c.useState)(!1),i=async()=>{h(!0);try{let b=await E.apiClient.post(`/api/error-items/${a}/figure`,{});d(b),b.figureSvg||W.toast.warning(f.figure.noFigure)}catch(c){let a=c?.data?.message||"",b=f.errors[a];V.frontendLogger.error("[RegenerateFigure]","Failed to regenerate figure",{code:a}),W.toast.error("NO_ORIGINAL_IMAGE"===a?f.figure.noImage:"string"==typeof b?b:f.figure.failed)}finally{h(!1)}};return(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:i,disabled:g,className:"flex items-center gap-2",children:[g?(0,b.jsx)(r.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(ab,{className:"h-4 w-4"}),g?f.figure.regenerating:f.figure.regenerate]})}let ad=(0,m.default)("image-plus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]);var ae=a.i(97521),af=a.i(43542);function ag({errorItemId:a,hasImage:d,onDone:f}){let{t:g}=(0,x.useLanguage)(),h=(0,c.useRef)(null),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(null);(0,c.useEffect)(()=>()=>{k&&URL.revokeObjectURL(k)},[k]);let m=async()=>{(!d||await (0,W.confirmDialog)(g.replaceImage.confirm))&&h.current?.click()},n=async b=>{l(null),j(!0);try{let c=new File([b],"question-image.jpg",{type:b.type||"image/jpeg"}),d=await (0,af.processImageFile)(c),e=await E.apiClient.put(`/api/error-items/${a}/image`,{imageDataUrl:d});f(e.originalImageUrl),W.toast.success(g.replaceImage.done)}catch(b){let a=b?.data?.message||"";V.frontendLogger.error("[ReplaceImage]","Failed to replace original image",{code:a}),W.toast.error("INVALID_IMAGE"===a?g.replaceImage.invalid:g.replaceImage.failed)}finally{j(!1)}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("input",{ref:h,type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",className:"hidden",onChange:a=>{(a=>{if(a){if(!a.type.startsWith("image/"))return W.toast.error(g.replaceImage.invalid);l(URL.createObjectURL(a))}})(a.target.files?.[0]),a.target.value=""}}),k&&(0,b.jsx)(ae.ImageCropper,{imageSrc:k,open:!0,onClose:()=>l(null),onCropComplete:n}),(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:m,disabled:i,className:"flex items-center gap-2",children:[i?(0,b.jsx)(r.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(ad,{className:"h-4 w-4"}),i?g.replaceImage.uploading:d?g.replaceImage.replace:g.replaceImage.add]})]})}var ah=a.i(46862),ai=a.i(22418),aj=a.i(8406);function ak({errorItemId:a,onDone:d,onSuggested:f}){let{t:g}=(0,x.useLanguage)(),[h,i]=(0,c.useState)(!1),j=async()=>{i(!0);try{if(f){let b=await E.apiClient.post(`/api/error-items/${a}/retag`,{preview:!0});f(b.tags)}else await E.apiClient.post(`/api/error-items/${a}/retag`,{}),d?.()}catch(c){let a=c?.data?.message||"",b=g.errors[a];V.frontendLogger.error("[RetagItem]","Failed to regenerate tags",{code:a}),W.toast.error("NO_TAGS_SELECTED"===a?g.retag.noTags:"string"==typeof b?b:g.retag.itemFailed)}finally{i(!1)}};return(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:j,disabled:h,children:[h?(0,b.jsx)(r.Loader2,{className:"h-4 w-4 mr-1 animate-spin"}):(0,b.jsx)(aj.Sparkles,{className:"h-4 w-4 mr-1"}),f?h?g.retag.suggestRunning:g.retag.suggestButton:h?g.retag.itemRunning:g.retag.itemButton]})}var al=a.i(14491);function am({errorItemId:a,onDone:d}){let{t:f,language:g}=(0,x.useLanguage)(),[h,i]=(0,c.useState)(!1),j=async()=>{if(await (0,W.confirmDialog)(f.reanswerItem.confirm)){i(!0);try{let b=await E.apiClient.post(`/api/error-items/${a}/reanswer`,{language:g},{timeout:6e5});d(b)}catch(c){let a=c?.data?.message||"",b=f.errors[a];V.frontendLogger.error("[RegenerateAnswer]","Failed to regenerate answer",{code:a}),W.toast.error("NO_QUESTION_TEXT"===a?f.reanswerItem.noQuestionText:"string"==typeof b?b:f.reanswerItem.failed)}finally{i(!1)}}};return(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:j,disabled:h,children:[h?(0,b.jsx)(r.Loader2,{className:"h-4 w-4 mr-1 animate-spin"}):(0,b.jsx)(al.WandSparkles,{className:"h-4 w-4 mr-1"}),h?f.reanswerItem.running:f.reanswerItem.button]})}let an=(0,m.default)("square-function",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["path",{d:"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3",key:"m1af9g"}],["path",{d:"M9 11.2h5.7",key:"3zgcl2"}]]);var ao=a.i(48986),ap=a.i(78362);let aq=new Set(["ne","neq","nabla","nu","not","notin","ni","nexists","ngeq","nleq","nmid","nparallel","nsubseteq"]);function ar(a){return a.length>80?`${a.slice(0,80)}…`:a}let as=["questionText","answerText","analysis","wrongAnswerText","mistakeAnalysis"];function at({errorItemId:a,fields:d,onDone:f}){let{t:g}=(0,x.useLanguage)(),[h,i]=(0,c.useState)(!1),j=(0,c.useMemo)(()=>Object.values(function(a){let b={};for(let c of as){let d=function(a){if(!a?.trim())return[];let{masked:b,segments:c}=(0,ap.extractMathSegments)(a),d=[];for(let a of c)try{ao.default.renderToString(a.tex,{displayMode:a.displayMode,throwOnError:!0,strict:"ignore"})}catch(c){let b=c instanceof Error?c.message.replace(/^KaTeX parse error:\s*/,""):String(c);d.push({snippet:ar(a.source),message:b})}let e=b.replace(/@@MATH\d+@@/g," "),f=e.replace(/\\\$/g,"").match(/\$/g);f&&d.push({snippet:"$",message:`有 ${f.length} 个未配对的 $ 定界符`});let g=e.match(/\\[()[\]]/g);g&&d.push({snippet:g.join(" "),message:"有未配对的 \\( \\) 或 \\[ \\] 定界符"});let h=[...new Set(e.match(/\\[a-zA-Z]{2,}/g)||[])].filter(a=>!a.startsWith("\\n")||aq.has(a.slice(1)));return h.length>0&&d.push({snippet:ar(h.join(" ")),message:"LaTeX 命令没有放在 $…$ 中,会原样显示"}),d}(a[c]);d.length>0&&(b[c]=d)}return b}(d)).reduce((a,b)=>a+(b?.length??0),0),[d]),k=async()=>{i(!0);try{let b=await E.apiClient.post(`/api/error-items/${a}/fix-latex`,{},{timeout:3e5});f(b.updated);let c=b.fixedFields.map(a=>g.fixLatex.fields[a]).join("、");W.toast.info(0===b.issuesBefore?g.fixLatex.noIssues:0===b.fixedFields.length?g.fixLatex.notFixed:0===b.issuesAfter?g.fixLatex.fixedAll.replace("{fields}",c):g.fixLatex.fixedPartly.replace("{fields}",c).replace("{count}",String(b.issuesAfter)))}catch(c){let a=c?.data?.message||"",b=g.errors[a];V.frontendLogger.error("[FixLatex]","Failed to fix LaTeX",{code:a}),W.toast.error("string"==typeof b?b:g.fixLatex.failed)}finally{i(!1)}};return 0!==j||h?(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:k,disabled:h,className:"border-amber-500 text-amber-700 dark:text-amber-400",title:g.fixLatex.issuesFound.replace("{count}",String(j)),children:[h?(0,b.jsx)(r.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(an,{className:"mr-2 h-4 w-4"}),h?g.fixLatex.running:g.fixLatex.button,!h&&j>0&&(0,b.jsxs)("span",{className:"ml-1",children:["(",j,")"]})]}):null}var au=a.i(51795);a.s(["default",0,function(){let a=(0,d.useParams)(),m=(0,d.useRouter)(),{t:J,language:K}=(0,x.useLanguage)(),[L,M]=(0,c.useState)(null);(0,y.usePageTitle)(J.detail.title,L?.subject?.name,L?.shortId);let[N,O]=(0,c.useState)(!0),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(""),[T,U]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)(!1),[ab,ad]=(0,c.useState)([]),[ae,af]=(0,c.useState)(!1),[aj,al]=(0,c.useState)(""),[an,ao]=(0,c.useState)("a"),[ap,aq]=(0,c.useState)(null),[ar,as]=(0,c.useState)(void 0),[av,aw]=(0,c.useState)(!1),[ax,ay]=(0,c.useState)(null),[az,aA]=(0,c.useState)(!1),[aB,aC]=(0,c.useState)(!0),[aD,aE]=(0,c.useState)(!1),[aF,aG]=(0,c.useState)(!1),[aH,aI]=(0,c.useState)(!1),[aJ,aK]=(0,c.useState)(!1),aL=(0,c.useRef)(null);(0,c.useEffect)(()=>{E.apiClient.get("/api/user").then(a=>{a&&a.educationStage&&as(a.educationStage),aA(!!a?.enableGeogebra),aC(a?.enableSvgAnimation!==!1)}).catch(a=>console.error("Failed to fetch user info:",a)),a.id&&aO(a.id)},[a.id]);let[aM,aN]=(0,c.useState)(null),aO=async a=>{try{let b=await E.apiClient.get(`/api/error-items/${a}`);M(b)}catch(a){console.error(a),W.toast.error(J.common?.messages?.loadFailed||"Failed to load item"),m.push("/notebooks")}finally{O(!1)}},aP=async()=>{if(L){aw(!0),ay(null);try{let a=await E.apiClient.post(`/api/error-items/${L.id}/geogebra`,{});a.suitable&&a.commands.length>0?M({...L,geogebraCommands:JSON.stringify(a.commands)}):ay(a.description||"该题目不适合用 GeoGebra 演示")}catch(b){console.error("GeoGebra analysis failed:",b);let a=b?.data?.message||b?.message||"";a.includes("AI_AUTH_ERROR")?ay("AI 认证失败,请检查设置"):a.includes("AI_CONNECTION")?ay("AI 连接失败,请检查网络"):ay("分析失败,请稍后重试")}finally{aw(!1)}}},[aQ,aR]=(0,c.useState)(!1),aS=async a=>{if(!L)return;let b=L.difficultyStars??null;M({...L,difficultyStars:a}),aR(!0);try{let b=await E.apiClient.put(`/api/error-items/${L.id}`,{difficultyStars:a});M(a=>a&&{...a,paperLevel:b.paperLevel})}catch(a){M(a=>a&&{...a,difficultyStars:b}),V.frontendLogger.error("[ErrorDetail]","Failed to save difficulty",{error:a instanceof Error?a.message:String(a)}),W.toast.error(J.difficulty.saveFailed)}finally{aR(!1)}},aT=async a=>{L&&(await E.apiClient.put(`/api/error-items/${L.id}`,{geogebraCommands:a}),M({...L,geogebraCommands:a}))},aU=async()=>{L&&(await E.apiClient.delete(`/api/error-items/${L.id}/geogebra`),M(a=>a&&{...a,geogebraCommands:null}))},aV=(0,c.useCallback)(a=>{M(b=>b&&{...b,answerText:a.answerText??"",analysis:a.analysis??""})},[]),aW=(0,c.useCallback)(a=>{M(b=>b&&{...b,...a})},[]),aX=(0,c.useCallback)((a,b)=>{M(c=>c&&{...c,["en"===a?"svgAnimationEn":"svgAnimation"]:b})},[]),aY=async()=>{if(!L)return;let a=J.common?.messages?.confirmDelete||"Are you sure you want to delete this error item?";if(await (0,W.confirmDialog)(a,{destructive:!0}))try{await E.apiClient.delete(`/api/error-items/${L.id}/delete`),W.toast.success(J.common?.messages?.deleteSuccess||"Deleted successfully"),L.subjectId?m.push(`/notebooks/${L.subjectId}`):m.push("/notebooks")}catch(a){console.error(a),W.toast.error(J.common?.messages?.deleteFailed||"Delete failed")}},aZ=async()=>{try{await E.apiClient.put(`/api/error-items/${L?.id}`,{knowledgePoints:ab}),Z(!1),await aO(a.id),W.toast.success(J.common?.messages?.tagUpdateSuccess||"Tags updated successfully!")}catch(a){console.error("[Frontend] Error updating:",a),W.toast.error(J.common?.messages?.updateFailed||"Update failed")}},a$=async()=>{try{await E.apiClient.put(`/api/error-items/${L?.id}`,{subjectId:ap||null,gradeSemester:aj,paperLevel:an}),af(!1),aO(a.id),W.toast.success(J.common?.messages?.metaUpdateSuccess||"Metadata updated successfully!")}catch(a){console.error(a),W.toast.error(J.common?.messages?.updateFailed||"Update failed")}},[a_,a0]=(0,c.useState)(!1),[a1,a2]=(0,c.useState)(""),[a3,a4]=(0,c.useState)(!1),[a5,a6]=(0,c.useState)(""),[a7,a8]=(0,c.useState)(!1),[a9,ba]=(0,c.useState)(""),[bb,bc]=(0,c.useState)(!1),[bd,be]=(0,c.useState)(!1),[bf,bg]=(0,c.useState)(""),[bh,bi]=(0,c.useState)(""),[bj,bk]=(0,c.useState)("unknown"),bl=async()=>{try{await E.apiClient.put(`/api/error-items/${L?.id}`,{questionText:a1}),a0(!1),L&&M({...L,questionText:a1}),W.toast.success(J.common?.messages?.saveSuccess||"Saved successfully")}catch(a){console.error(a),W.toast.error(J.common?.messages?.saveFailed||"Save failed")}},bm=async()=>{try{await E.apiClient.put(`/api/error-items/${L?.id}`,{answerText:a5}),a4(!1),L&&M({...L,answerText:a5}),W.toast.success(J.common?.messages?.saveSuccess||"Saved successfully")}catch(a){console.error(a),W.toast.error(J.common?.messages?.saveFailed||"Save failed")}},bn=async()=>{try{await E.apiClient.put(`/api/error-items/${L?.id}`,{analysis:a9}),a8(!1),L&&M({...L,analysis:a9}),W.toast.success(J.common?.messages?.saveSuccess||"Saved successfully")}catch(a){console.error(a),W.toast.error(J.common?.messages?.saveFailed||"Save failed")}},bo=async()=>{if(L)try{let a=(0,G.normalizeMistakeStatusForSave)(bj,bf);await E.apiClient.put(`/api/error-items/${L.id}`,{wrongAnswerText:bf,mistakeStatus:a}),bc(!1),M(b=>b&&{...b,wrongAnswerText:bf,mistakeStatus:a}),W.toast.success(J.common?.messages?.saveSuccess||"Saved successfully")}catch(a){console.error(a),W.toast.error(J.common?.messages?.saveFailed||"Save failed")}},bp=async()=>{if(L)try{await E.apiClient.put(`/api/error-items/${L.id}`,{mistakeAnalysis:bh}),be(!1),M(a=>a&&{...a,mistakeAnalysis:bh}),W.toast.success(J.common?.messages?.saveSuccess||"Saved successfully")}catch(a){console.error(a),W.toast.error(J.common?.messages?.saveFailed||"Save failed")}},bq=async()=>{if(L)try{await E.apiClient.patch(`/api/error-items/${L.id}/notes`,{userNotes:R}),M({...L,userNotes:R}),Q(!1),W.toast.success(J.common?.messages?.noteSaveSuccess||"Notes saved successfully")}catch(a){console.error(a),W.toast.error(J.common?.messages?.saveFailed||"Save failed")}};if((0,c.useEffect)(()=>{let a=()=>{aL.current&&(aL.current.getBoundingClientRect().bottom<-50?aK(!0):aK(!1))};return window.addEventListener("scroll",a,{passive:!0}),a(),()=>window.removeEventListener("scroll",a)},[]),N)return(0,b.jsx)(g.PageLoading,{label:J.common.loading});if(!L)return(0,b.jsx)(f.EmptyState,{icon:u,title:J.detail.notFound||"Item not found",className:"m-4 md:m-8"});let br=[];if(L.tags&&L.tags.length>0)br=L.tags.map(a=>a.name);else if(L.knowledgePoints)try{let a=JSON.parse(L.knowledgePoints);br=Array.isArray(a)?a:[]}catch(a){br=[]}return(0,b.jsxs)("main",{className:"min-h-screen",children:[(0,b.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 px-4 py-6 md:px-8 md:py-8",children:[(0,b.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2",children:[(0,b.jsx)(w.default,{href:L.subjectId?`/notebooks/${L.subjectId}`:"/notebooks",children:(0,b.jsx)(e.Button,{variant:"ghost",size:"icon",className:"-ml-2",children:(0,b.jsx)(j.ArrowLeft,{className:"h-5 w-5"})})}),(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:J.detail.title}),(0,b.jsx)($,{shortId:L.shortId}),(0,b.jsx)(_.DifficultyStars,{size:"md",value:L.difficultyStars,onChange:aS,disabled:aQ})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(at,{errorItemId:L.id,fields:L,onDone:aW}),(0,b.jsx)(w.default,{href:`/practice?id=${L.id}`,children:(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",children:[(0,b.jsx)(k.RefreshCw,{className:"mr-2 h-4 w-4"}),J.detail.practice]})}),aM&&(0,b.jsx)(ai.MasteryStatusBadge,{status:aM,className:"h-8 self-center px-3"}),(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:aY,className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:[(0,b.jsx)(l.Trash2,{className:"mr-2 h-4 w-4"}),J.detail.delete||"Delete"]})]})]}),(0,b.jsxs)(h.Card,{children:[(0,b.jsx)(h.CardHeader,{children:(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(h.CardTitle,{children:J.detail.question}),!a_&&(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{L&&(a2(L.questionText),a0(!0))},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]})}),(0,b.jsxs)(h.CardContent,{className:"space-y-4",children:[a_?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(A.MarkdownEditor,{value:a1,onChange:a2,placeholder:"Enter question text...",rows:8,className:"w-full font-mono text-sm"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:bl,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{a0(!1),a2("")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(z.MarkdownRenderer,{content:L.questionText}),(0,b.jsx)(aa.QuestionFigure,{svg:L.figureSvg})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold",children:J.editor?.tags||"Knowledge Tags"}),!Y&&(0,b.jsxs)("div",{className:"flex",children:[(0,b.jsx)(ak,{errorItemId:L.id,onDone:()=>aO(L.id)}),(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{if(L){if(L.tags&&L.tags.length>0)ad(L.tags.map(a=>a.name));else if(L.knowledgePoints)try{let a=JSON.parse(L.knowledgePoints);ad(a)}catch(a){ad([])}else ad([]);Z(!0)}},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]})]}),Y?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(B.TagInput,{value:ab,onChange:ad,placeholder:J.editor?.tagsPlaceholder||"Enter or select knowledge tags...",subject:(0,F.inferSubjectFromName)(L.subject?.name||null)||void 0,gradeStage:ar}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:J.editor?.tagsHint||"Select from standard or custom tags"}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:aZ,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{Z(!1),ad([])},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]}),(0,b.jsx)(ak,{errorItemId:L.id,onSuggested:ad})]})]}):(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:br.map(a=>(0,b.jsx)(i.Badge,{variant:"secondary",children:a},a))})]}),(0,b.jsxs)("div",{className:"space-y-2 pt-4 border-t",children:[(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)("h4",{className:"text-sm font-semibold",children:J.detail?.questionInfo||"Question Info"}),!ae&&(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{L&&(aq(L.subjectId||null),al(L.gradeSemester||""),ao(L.paperLevel||(0,au.getDefaultPaperLevel)(L.difficultyStars)||"a"),af(!0))},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]}),ae?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:J.notebooks?.title||"Notebook"}),(0,b.jsx)(H.NotebookSelector,{value:ap||void 0,onChange:aq})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:J.filter.grade}),(0,b.jsx)(C.Input,{value:aj,onChange:a=>al(a.target.value),placeholder:J.notebook?.gradeSemesterPlaceholder||"e.g. Grade 7, Semester 1"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:J.filter.paperLevel}),(0,b.jsxs)(D.Select,{value:an,onValueChange:ao,children:[(0,b.jsx)(D.SelectTrigger,{children:(0,b.jsx)(D.SelectValue,{})}),(0,b.jsxs)(D.SelectContent,{children:[(0,b.jsx)(D.SelectItem,{value:"a",children:J.editor.paperLevels?.a||"Paper A"}),(0,b.jsx)(D.SelectItem,{value:"b",children:J.editor.paperLevels?.b||"Paper B"}),(0,b.jsx)(D.SelectItem,{value:"other",children:J.editor.paperLevels?.other||"Other"})]})]})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:a$,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{af(!1),aq(null),al(""),ao("a")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]})]})]}):(0,b.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[J.notebooks?.title||"Notebook",":"]}),(0,b.jsx)("span",{className:"font-medium",children:L.subject?.name||J.common?.notSet||"Not set"})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[J.filter.grade,":"]}),(0,b.jsx)("span",{className:"font-medium",children:L.gradeSemester||J.common?.notSet||"Not set"})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsxs)("span",{className:"text-muted-foreground",children:[J.filter.paperLevel,":"]}),(0,b.jsx)("span",{className:"font-medium",children:L.paperLevel?J.editor.paperLevels?.[L.paperLevel]||L.paperLevel:J.common?.notSet||"Not set"})]})]})]}),(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[L.originalImageUrl&&(0,b.jsx)(e.Button,{variant:"outline",size:"sm",onClick:()=>aE(!aD),className:"flex items-center gap-2",children:aD?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.EyeOff,{className:"h-4 w-4"}),J.replaceImage?.hide||"Hide original image"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t,{className:"h-4 w-4"}),J.replaceImage?.view||"View original image"]})}),(0,b.jsx)(ag,{errorItemId:L.id,hasImage:!!L.originalImageUrl,onDone:a=>{M(b=>b&&{...b,originalImageUrl:a}),aE(!0)}}),L.originalImageUrl&&(0,b.jsx)(ac,{errorItemId:L.id,onDone:a=>M(b=>b&&{...b,...a})})]}),L.originalImageUrl&&aD&&(0,b.jsxs)("div",{className:"mt-4",children:[(0,b.jsx)("img",{src:L.originalImageUrl,alt:J.detail.originalProblem||"Original Problem",className:"w-full rounded-lg border cursor-pointer hover:opacity-90 transition-opacity",onClick:()=>U(!0)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-1 text-center",children:J.detail?.clickToEnlarge||"Click to enlarge"})]})]})]})]}),(0,b.jsx)(ah.MasteryPanel,{errorItemId:L.id,onMasteryStatusChange:aN}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsxs)(h.Card,{className:"border-primary/20",children:[(0,b.jsx)(h.CardHeader,{children:(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(h.CardTitle,{className:"text-primary",children:J.detail.correctAnswer}),!a3&&(0,b.jsxs)("div",{className:"flex flex-wrap justify-end",children:[(0,b.jsx)(am,{errorItemId:L.id,onDone:aV}),(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{L&&(a6(L.answerText),a4(!0))},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]})]})}),(0,b.jsxs)(h.CardContent,{className:"space-y-4",children:[a3?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(A.MarkdownEditor,{value:a5,onChange:a6,placeholder:"Enter answer...",rows:5,className:"w-full font-mono text-sm"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:bm,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{a4(!1),a6("")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]})]})]}):(0,b.jsx)(z.MarkdownRenderer,{content:L.answerText,className:"font-semibold"}),L.referenceImageUrl&&(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",onClick:()=>aG(!aF),className:"flex items-center gap-2 text-muted-foreground",children:aF?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.EyeOff,{className:"h-4 w-4"}),"隐藏图片"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t,{className:"h-4 w-4"}),"查看图片"]})}),aF&&(0,b.jsxs)("div",{className:"mt-4",children:[(0,b.jsx)("img",{src:L.referenceImageUrl,alt:"参考图片",className:"w-full rounded-lg border cursor-pointer hover:opacity-90 transition-opacity",onClick:()=>U(!0)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-1 text-center",children:J.detail?.clickToEnlarge||"Click to enlarge"})]})]})]})]}),(0,b.jsxs)(h.Card,{children:[(0,b.jsx)(h.CardHeader,{children:(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(h.CardTitle,{children:J.editor?.wrongAnswerText||"我的答案"}),!bb&&(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{L&&(bg(L.wrongAnswerText||""),bk(L.mistakeStatus||"unknown"),bc(!0))},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]})}),(0,b.jsx)(h.CardContent,{className:"space-y-4",children:bb?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:J.editor?.mistakeStatus||"作答状态"}),(0,b.jsxs)(D.Select,{value:bj,onValueChange:bk,children:[(0,b.jsx)(D.SelectTrigger,{children:(0,b.jsx)(D.SelectValue,{})}),(0,b.jsxs)(D.SelectContent,{children:[(0,b.jsx)(D.SelectItem,{value:"not_attempted",children:J.editor?.mistakeStatuses?.notAttempted||"不会做"}),(0,b.jsx)(D.SelectItem,{value:"wrong_attempt",children:J.editor?.mistakeStatuses?.wrongAttempt||"做错了"}),(0,b.jsx)(D.SelectItem,{value:"unknown",children:J.editor?.mistakeStatuses?.unknown||"未判断"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:J.editor?.wrongAnswerText||"错误解答原文"}),(0,b.jsx)(A.MarkdownEditor,{value:bf,onChange:a=>{bg(a),a.trim()&&bk("wrong_attempt")},rows:5,className:"w-full font-mono text-sm"})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:bo,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{bc(!1),bg(""),bk("unknown")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]})]})]}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(i.Badge,{variant:"secondary",children:(0,G.getMistakeStatusLabel)(L.mistakeStatus,K)}),L.wrongAnswerText?(0,b.jsx)(z.MarkdownRenderer,{content:L.wrongAnswerText}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:J.detail?.noMistakeAnalysis||"暂无错误解答"}),L.wrongAnswerImageUrl&&(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",onClick:()=>aI(!aH),className:"flex items-center gap-2 text-muted-foreground",children:aH?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.EyeOff,{className:"h-4 w-4"}),"隐藏图片"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t,{className:"h-4 w-4"}),"查看图片"]})}),aH&&(0,b.jsxs)("div",{className:"mt-4",children:[(0,b.jsx)("img",{src:L.wrongAnswerImageUrl,alt:"我的答案图片",className:"w-full rounded-lg border cursor-pointer hover:opacity-90 transition-opacity",onClick:()=>U(!0)}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-1 text-center",children:J.detail?.clickToEnlarge||"Click to enlarge"})]})]})]})})]})]}),(0,b.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,b.jsxs)(h.Card,{children:[(0,b.jsx)(h.CardHeader,{children:(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(h.CardTitle,{children:J.detail.analysis}),!a7&&(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{L&&(ba(L.analysis),a8(!0))},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]})}),(0,b.jsx)(h.CardContent,{children:a7?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(A.MarkdownEditor,{value:a9,onChange:ba,placeholder:"Enter analysis...",rows:12,className:"w-full font-mono text-sm"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:bn,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{a8(!1),ba("")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]})]})]}):(0,b.jsx)(z.MarkdownRenderer,{content:L.analysis})})]}),(0,b.jsxs)(h.Card,{children:[(0,b.jsx)(h.CardHeader,{children:(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(h.CardTitle,{children:J.detail?.mistakeAnalysis||"错因分析"}),!bd&&(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{L&&(bi(L.mistakeAnalysis||""),be(!0))},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.common?.edit||"Edit"]})]})}),(0,b.jsx)(h.CardContent,{children:bd?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"text-sm text-muted-foreground",children:J.editor?.mistakeAnalysis||"错因分析"}),(0,b.jsx)(A.MarkdownEditor,{value:bh,onChange:bi,rows:8,className:"w-full font-mono text-sm"})]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:bp,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common?.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{be(!1),bi("")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common?.cancel||"Cancel"]})]})]}):L.mistakeAnalysis?(0,b.jsx)(z.MarkdownRenderer,{content:L.mistakeAnalysis}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground italic",children:J.detail?.noMistakeAnalysis||"暂无错因分析"})})]})]}),(0,b.jsxs)("div",{className:"space-y-6",children:[aB&&(0,b.jsx)(X,{errorItemId:L.id,svgAnimation:"en"===K?L.svgAnimationEn:L.svgAnimation,hasOtherLanguage:!!("en"===K?L.svgAnimation:L.svgAnimationEn),onChange:aX},K),az&&(L.geogebraCommands?(0,b.jsx)(I.GeogebraDemo,{commands:L.geogebraCommands,height:700,showToolBar:!0,showAlgebraInput:!1,showMenuBar:!1,onRegenerate:aP,onSaveCommands:aT,onDelete:aU}):(0,b.jsxs)("div",{className:"rounded-lg border border-dashed p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(q.Box,{className:"h-4 w-4"}),(0,b.jsx)("span",{children:"GeoGebra 动态演示"})]}),(0,b.jsx)(e.Button,{variant:"outline",size:"sm",onClick:()=>aP(),disabled:av,children:av?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(r.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"AI 分析中..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(q.Box,{className:"mr-2 h-4 w-4"}),"生成演示"]})})]}),ax&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:ax}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:"AI 将判断本题是否可以用 GeoGebra 进行动态演示,如适合则自动生成交互式图形"})]})),(0,b.jsxs)(h.Card,{children:[(0,b.jsx)(h.CardHeader,{children:(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)(h.CardTitle,{children:J.detail.yourNotes}),!P&&(0,b.jsxs)(e.Button,{variant:"ghost",size:"sm",onClick:()=>{S(L?.userNotes||""),Q(!0)},children:[(0,b.jsx)(n,{className:"h-4 w-4 mr-1"}),J.detail.editNotes||"Edit"]})]})}),(0,b.jsx)(h.CardContent,{children:P?(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(v.Textarea,{value:R,onChange:a=>S(a.target.value),placeholder:J.detail.notesPlaceholder||"Enter your notes...",rows:5,className:"w-full"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(e.Button,{size:"sm",onClick:bq,children:[(0,b.jsx)(o.Save,{className:"h-4 w-4 mr-1"}),J.common.save||"Save"]}),(0,b.jsxs)(e.Button,{size:"sm",variant:"outline",onClick:()=>{Q(!1),S("")},children:[(0,b.jsx)(p.X,{className:"h-4 w-4 mr-1"}),J.common.cancel||"Cancel"]})]})]}):(0,b.jsx)("div",{className:"whitespace-pre-wrap",children:L.userNotes?(0,b.jsx)("p",{className:"text-foreground",children:L.userNotes}):(0,b.jsx)("p",{className:"text-muted-foreground italic",children:J.detail.noNotes})})})]})]})]}),T&&L?.originalImageUrl&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 bg-black/90 flex items-center justify-center p-4",onClick:()=>U(!1),children:(0,b.jsxs)("div",{className:"relative max-w-7xl max-h-full",children:[(0,b.jsx)("button",{className:"absolute -top-12 right-0 text-white hover:text-gray-300 text-lg font-semibold bg-black/50 px-4 py-2 rounded",onClick:()=>U(!1),children:J.detail?.close||"✕ Close"}),(0,b.jsx)("img",{src:L.originalImageUrl,alt:"Full size",className:"max-w-full max-h-[90vh] object-contain rounded-lg",onClick:a=>a.stopPropagation()}),(0,b.jsx)("p",{className:"text-center text-white/70 text-sm mt-4",children:J.detail?.clickOutside||"Click outside to close"})]})})]})}],73773)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_app_error-items_%5Bid%5D_page_tsx_04xwwdm._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[1453,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(99570),f=a.i(51538),g=a.i(6376),h=a.i(15618),i=a.i(99464),j=a.i(38246),k=a.i(91119),l=a.i(86304),m=a.i(66718),n=a.i(15055),o=a.i(79834),p=a.i(70106);let q=(0,p.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),r=(0,p.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var s=a.i(5784),t=a.i(71931),u=a.i(55023);let v=(0,p.default)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),w=(0,p.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var x=a.i(29759),y=a.i(86705),z=a.i(50194),A=a.i(7554),B=a.i(70121),C=a.i(50104),D=a.i(25152),E=a.i(35112),F=Symbol("radix.slottable");function G(a){return c.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===F}var H=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,d)=>{var e,f;let g,h,i,j=(f=e=`Primitive.${d}`,(g=c.forwardRef((a,b)=>{let{children:d,...e}=a;if(c.isValidElement(d)){var f;let a,g,h=(f=d,(g=(a=Object.getOwnPropertyDescriptor(f.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?f.ref:(g=(a=Object.getOwnPropertyDescriptor(f,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?f.props.ref:f.props.ref||f.ref),i=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(e,d.props);return d.type!==c.Fragment&&(i.ref=b?(0,B.composeRefs)(b,h):h),c.cloneElement(d,i)}return c.Children.count(d)>1?c.Children.only(null):null})).displayName=`${f}.SlotClone`,h=g,(i=c.forwardRef((a,d)=>{let{children:e,...f}=a,g=c.Children.toArray(e),i=g.find(G);if(i){let a=i.props.children,e=g.map(b=>b!==i?b:c.Children.count(a)>1?c.Children.only(null):c.isValidElement(a)?a.props.children:null);return(0,b.jsx)(h,{...f,ref:d,children:c.isValidElement(a)?c.cloneElement(a,void 0,e):null})}return(0,b.jsx)(h,{...f,ref:d,children:e})})).displayName=`${e}.Slot`,i),k=c.forwardRef((a,c)=>{let{asChild:e,...f}=a;return(0,b.jsx)(e?j:d,{...f,ref:c})});return k.displayName=`Primitive.${d}`,{...a,[d]:k}},{}),I=a.i(37738),J=a.i(7827),K=a.i(96743),L=a.i(86228),M=a.i(22297),N=a.i(92843),O=a.i(4691),P=a.i(92616),Q=a.i(77192);function R(a){var d;let e,f=(d=a,(e=c.forwardRef((a,b)=>{let{children:d,...e}=a;if(c.isValidElement(d)){var f;let a,g,h=(f=d,(g=(a=Object.getOwnPropertyDescriptor(f.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?f.ref:(g=(a=Object.getOwnPropertyDescriptor(f,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?f.props.ref:f.props.ref||f.ref),i=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(e,d.props);return d.type!==c.Fragment&&(i.ref=b?(0,B.composeRefs)(b,h):h),c.cloneElement(d,i)}return c.Children.count(d)>1?c.Children.only(null):null})).displayName=`${d}.SlotClone`,e),g=c.forwardRef((a,d)=>{let{children:e,...g}=a,h=c.Children.toArray(e),i=h.find(T);if(i){let a=i.props.children,e=h.map(b=>b!==i?b:c.Children.count(a)>1?c.Children.only(null):c.isValidElement(a)?a.props.children:null);return(0,b.jsx)(f,{...g,ref:d,children:c.isValidElement(a)?c.cloneElement(a,void 0,e):null})}return(0,b.jsx)(f,{...g,ref:d,children:e})});return g.displayName=`${a}.Slot`,g}var S=Symbol("radix.slottable");function T(a){return c.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===S}var U=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,d)=>{let e=R(`Primitive.${d}`),f=c.forwardRef((a,c)=>{let{asChild:f,...g}=a;return(0,b.jsx)(f?e:d,{...g,ref:c})});return f.displayName=`Primitive.${d}`,{...a,[d]:f}},{}),V=a.i(24050),W=a.i(46872),X=a.i(41852),Y=a.i(52081),Z=["Enter"," "],$=["ArrowUp","PageDown","End"],_=["ArrowDown","PageUp","Home",...$],aa={ltr:[...Z,"ArrowRight"],rtl:[...Z,"ArrowLeft"]},ab={ltr:["ArrowLeft"],rtl:["ArrowRight"]},ac="Menu",[ad,ae,af]=(0,I.createCollection)(ac),[ag,ah]=(0,C.createContextScope)(ac,[af,O.createPopperScope,V.createRovingFocusGroupScope]),ai=(0,O.createPopperScope)(),aj=(0,V.createRovingFocusGroupScope)(),[ak,al]=ag(ac),[am,an]=ag(ac),ao=a=>{let{__scopeMenu:d,open:e=!1,children:f,dir:g,onOpenChange:h,modal:i=!0}=a,j=ai(d),[k,l]=c.useState(null),m=c.useRef(!1),n=(0,W.useCallbackRef)(h),o=(0,J.useDirection)(g);return c.useEffect(()=>{let a=()=>{m.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},b=()=>m.current=!1;return document.addEventListener("keydown",a,{capture:!0}),()=>{document.removeEventListener("keydown",a,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),(0,b.jsx)(O.Root,{...j,children:(0,b.jsx)(ak,{scope:d,open:e,onOpenChange:n,content:k,onContentChange:l,children:(0,b.jsx)(am,{scope:d,onClose:c.useCallback(()=>n(!1),[n]),isUsingKeyboardRef:m,dir:o,modal:i,children:f})})})};ao.displayName=ac;var ap=c.forwardRef((a,c)=>{let{__scopeMenu:d,...e}=a,f=ai(d);return(0,b.jsx)(O.Anchor,{...f,...e,ref:c})});ap.displayName="MenuAnchor";var aq="MenuPortal",[ar,as]=ag(aq,{forceMount:void 0}),at=a=>{let{__scopeMenu:c,forceMount:d,children:e,container:f}=a,g=al(aq,c);return(0,b.jsx)(ar,{scope:c,forceMount:d,children:(0,b.jsx)(Q.Presence,{present:d||g.open,children:(0,b.jsx)(P.Portal,{asChild:!0,container:f,children:e})})})};at.displayName=aq;var au="MenuContent",[av,aw]=ag(au),ax=c.forwardRef((a,c)=>{let d=as(au,a.__scopeMenu),{forceMount:e=d.forceMount,...f}=a,g=al(au,a.__scopeMenu),h=an(au,a.__scopeMenu);return(0,b.jsx)(ad.Provider,{scope:a.__scopeMenu,children:(0,b.jsx)(Q.Presence,{present:e||g.open,children:(0,b.jsx)(ad.Slot,{scope:a.__scopeMenu,children:h.modal?(0,b.jsx)(ay,{...f,ref:c}):(0,b.jsx)(az,{...f,ref:c})})})})}),ay=c.forwardRef((a,d)=>{let e=al(au,a.__scopeMenu),f=c.useRef(null),g=(0,B.useComposedRefs)(d,f);return c.useEffect(()=>{let a=f.current;if(a)return(0,X.hideOthers)(a)},[]),(0,b.jsx)(aB,{...a,ref:g,trapFocus:e.open,disableOutsidePointerEvents:e.open,disableOutsideScroll:!0,onFocusOutside:(0,A.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>e.onOpenChange(!1)})}),az=c.forwardRef((a,c)=>{let d=al(au,a.__scopeMenu);return(0,b.jsx)(aB,{...a,ref:c,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>d.onOpenChange(!1)})}),aA=R("MenuContent.ScrollLock"),aB=c.forwardRef((a,d)=>{let{__scopeMenu:e,loop:f=!1,trapFocus:g,onOpenAutoFocus:h,onCloseAutoFocus:i,disableOutsidePointerEvents:j,onEntryFocus:k,onEscapeKeyDown:l,onPointerDownOutside:m,onFocusOutside:n,onInteractOutside:o,onDismiss:p,disableOutsideScroll:q,...r}=a,s=al(au,e),t=an(au,e),u=ai(e),v=aj(e),w=ae(e),[x,y]=c.useState(null),z=c.useRef(null),C=(0,B.useComposedRefs)(d,z,s.onContentChange),D=c.useRef(0),E=c.useRef(""),F=c.useRef(0),G=c.useRef(null),H=c.useRef("right"),I=c.useRef(0),J=q?Y.RemoveScroll:c.Fragment;c.useEffect(()=>()=>window.clearTimeout(D.current),[]),(0,L.useFocusGuards)();let N=c.useCallback(a=>{var b,c;return H.current===G.current?.side&&(b=a,!!(c=G.current?.area)&&function(a,b){let{x:c,y:d}=a,e=!1;for(let a=0,f=b.length-1;a<b.length;f=a++){let g=b[a],h=b[f],i=g.x,j=g.y,k=h.x,l=h.y;j>d!=l>d&&c<(k-i)*(d-j)/(l-j)+i&&(e=!e)}return e}({x:b.clientX,y:b.clientY},c))},[]);return(0,b.jsx)(av,{scope:e,searchRef:E,onItemEnter:c.useCallback(a=>{N(a)&&a.preventDefault()},[N]),onItemLeave:c.useCallback(a=>{N(a)||(z.current?.focus(),y(null))},[N]),onTriggerLeave:c.useCallback(a=>{N(a)&&a.preventDefault()},[N]),pointerGraceTimerRef:F,onPointerGraceIntentChange:c.useCallback(a=>{G.current=a},[]),children:(0,b.jsx)(J,{...q?{as:aA,allowPinchZoom:!0}:void 0,children:(0,b.jsx)(M.FocusScope,{asChild:!0,trapped:g,onMountAutoFocus:(0,A.composeEventHandlers)(h,a=>{a.preventDefault(),z.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:(0,b.jsx)(K.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:j,onEscapeKeyDown:l,onPointerDownOutside:m,onFocusOutside:n,onInteractOutside:o,onDismiss:p,children:(0,b.jsx)(V.Root,{asChild:!0,...v,dir:t.dir,orientation:"vertical",loop:f,currentTabStopId:x,onCurrentTabStopIdChange:y,onEntryFocus:(0,A.composeEventHandlers)(k,a=>{t.isUsingKeyboardRef.current||a.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,b.jsx)(O.Content,{role:"menu","aria-orientation":"vertical","data-state":a_(s.open),"data-radix-menu-content":"",dir:t.dir,...u,...r,ref:C,style:{outline:"none",...r.style},onKeyDown:(0,A.composeEventHandlers)(r.onKeyDown,a=>{let b=a.target.closest("[data-radix-menu-content]")===a.currentTarget,c=a.ctrlKey||a.altKey||a.metaKey,d=1===a.key.length;if(b){var e;let b,f,g,h,i,j;"Tab"===a.key&&a.preventDefault(),!c&&d&&(e=a.key,b=E.current+e,f=w().filter(a=>!a.disabled),g=document.activeElement,h=f.find(a=>a.ref.current===g)?.textValue,i=function(a,b,c){var d;let e=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,f=c?a.indexOf(c):-1,g=(d=Math.max(f,0),a.map((b,c)=>a[(d+c)%a.length]));1===e.length&&(g=g.filter(a=>a!==c));let h=g.find(a=>a.toLowerCase().startsWith(e.toLowerCase()));return h!==c?h:void 0}(f.map(a=>a.textValue),b,h),j=f.find(a=>a.textValue===i)?.ref.current,function a(b){E.current=b,window.clearTimeout(D.current),""!==b&&(D.current=window.setTimeout(()=>a(""),1e3))}(b),j&&setTimeout(()=>j.focus()))}let f=z.current;if(a.target!==f||!_.includes(a.key))return;a.preventDefault();let g=w().filter(a=>!a.disabled).map(a=>a.ref.current);$.includes(a.key)&&g.reverse(),function(a){let b=document.activeElement;for(let c of a)if(c===b||(c.focus(),document.activeElement!==b))return}(g)}),onBlur:(0,A.composeEventHandlers)(a.onBlur,a=>{a.currentTarget.contains(a.target)||(window.clearTimeout(D.current),E.current="")}),onPointerMove:(0,A.composeEventHandlers)(a.onPointerMove,a2(a=>{let b=a.target,c=I.current!==a.clientX;a.currentTarget.contains(b)&&c&&(H.current=a.clientX>I.current?"right":"left",I.current=a.clientX)}))})})})})})})});ax.displayName=au;var aC=c.forwardRef((a,c)=>{let{__scopeMenu:d,...e}=a;return(0,b.jsx)(U.div,{role:"group",...e,ref:c})});aC.displayName="MenuGroup";var aD=c.forwardRef((a,c)=>{let{__scopeMenu:d,...e}=a;return(0,b.jsx)(U.div,{...e,ref:c})});aD.displayName="MenuLabel";var aE="MenuItem",aF="menu.itemSelect",aG=c.forwardRef((a,d)=>{let{disabled:e=!1,onSelect:f,...g}=a,h=c.useRef(null),i=an(aE,a.__scopeMenu),j=aw(aE,a.__scopeMenu),k=(0,B.useComposedRefs)(d,h),l=c.useRef(!1);return(0,b.jsx)(aH,{...g,ref:k,disabled:e,onClick:(0,A.composeEventHandlers)(a.onClick,()=>{let a=h.current;if(!e&&a){let b=new CustomEvent(aF,{bubbles:!0,cancelable:!0});a.addEventListener(aF,a=>f?.(a),{once:!0}),a&&E.flushSync(()=>a.dispatchEvent(b)),b.defaultPrevented?l.current=!1:i.onClose()}}),onPointerDown:b=>{a.onPointerDown?.(b),l.current=!0},onPointerUp:(0,A.composeEventHandlers)(a.onPointerUp,a=>{l.current||a.currentTarget?.click()}),onKeyDown:(0,A.composeEventHandlers)(a.onKeyDown,a=>{let b=""!==j.searchRef.current;e||b&&" "===a.key||Z.includes(a.key)&&(a.currentTarget.click(),a.preventDefault())})})});aG.displayName=aE;var aH=c.forwardRef((a,d)=>{let{__scopeMenu:e,disabled:f=!1,textValue:g,...h}=a,i=aw(aE,e),j=aj(e),k=c.useRef(null),l=(0,B.useComposedRefs)(d,k),[m,n]=c.useState(!1),[o,p]=c.useState("");return c.useEffect(()=>{let a=k.current;a&&p((a.textContent??"").trim())},[h.children]),(0,b.jsx)(ad.ItemSlot,{scope:e,disabled:f,textValue:g??o,children:(0,b.jsx)(V.Item,{asChild:!0,...j,focusable:!f,children:(0,b.jsx)(U.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":f||void 0,"data-disabled":f?"":void 0,...h,ref:l,onPointerMove:(0,A.composeEventHandlers)(a.onPointerMove,a2(a=>{f?i.onItemLeave(a):(i.onItemEnter(a),a.defaultPrevented||a.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,A.composeEventHandlers)(a.onPointerLeave,a2(a=>i.onItemLeave(a))),onFocus:(0,A.composeEventHandlers)(a.onFocus,()=>n(!0)),onBlur:(0,A.composeEventHandlers)(a.onBlur,()=>n(!1))})})})}),aI=c.forwardRef((a,c)=>{let{checked:d=!1,onCheckedChange:e,...f}=a;return(0,b.jsx)(aQ,{scope:a.__scopeMenu,checked:d,children:(0,b.jsx)(aG,{role:"menuitemcheckbox","aria-checked":a0(d)?"mixed":d,...f,ref:c,"data-state":a1(d),onSelect:(0,A.composeEventHandlers)(f.onSelect,()=>e?.(!!a0(d)||!d),{checkForDefaultPrevented:!1})})})});aI.displayName="MenuCheckboxItem";var aJ="MenuRadioGroup",[aK,aL]=ag(aJ,{value:void 0,onValueChange:()=>{}}),aM=c.forwardRef((a,c)=>{let{value:d,onValueChange:e,...f}=a,g=(0,W.useCallbackRef)(e);return(0,b.jsx)(aK,{scope:a.__scopeMenu,value:d,onValueChange:g,children:(0,b.jsx)(aC,{...f,ref:c})})});aM.displayName=aJ;var aN="MenuRadioItem",aO=c.forwardRef((a,c)=>{let{value:d,...e}=a,f=aL(aN,a.__scopeMenu),g=d===f.value;return(0,b.jsx)(aQ,{scope:a.__scopeMenu,checked:g,children:(0,b.jsx)(aG,{role:"menuitemradio","aria-checked":g,...e,ref:c,"data-state":a1(g),onSelect:(0,A.composeEventHandlers)(e.onSelect,()=>f.onValueChange?.(d),{checkForDefaultPrevented:!1})})})});aO.displayName=aN;var aP="MenuItemIndicator",[aQ,aR]=ag(aP,{checked:!1}),aS=c.forwardRef((a,c)=>{let{__scopeMenu:d,forceMount:e,...f}=a,g=aR(aP,d);return(0,b.jsx)(Q.Presence,{present:e||a0(g.checked)||!0===g.checked,children:(0,b.jsx)(U.span,{...f,ref:c,"data-state":a1(g.checked)})})});aS.displayName=aP;var aT=c.forwardRef((a,c)=>{let{__scopeMenu:d,...e}=a;return(0,b.jsx)(U.div,{role:"separator","aria-orientation":"horizontal",...e,ref:c})});aT.displayName="MenuSeparator";var aU=c.forwardRef((a,c)=>{let{__scopeMenu:d,...e}=a,f=ai(d);return(0,b.jsx)(O.Arrow,{...f,...e,ref:c})});aU.displayName="MenuArrow";var[aV,aW]=ag("MenuSub"),aX="MenuSubTrigger",aY=c.forwardRef((a,d)=>{let e=al(aX,a.__scopeMenu),f=an(aX,a.__scopeMenu),g=aW(aX,a.__scopeMenu),h=aw(aX,a.__scopeMenu),i=c.useRef(null),{pointerGraceTimerRef:j,onPointerGraceIntentChange:k}=h,l={__scopeMenu:a.__scopeMenu},m=c.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return c.useEffect(()=>m,[m]),c.useEffect(()=>{let a=j.current;return()=>{window.clearTimeout(a),k(null)}},[j,k]),(0,b.jsx)(ap,{asChild:!0,...l,children:(0,b.jsx)(aH,{id:g.triggerId,"aria-haspopup":"menu","aria-expanded":e.open,"aria-controls":g.contentId,"data-state":a_(e.open),...a,ref:(0,B.composeRefs)(d,g.onTriggerChange),onClick:b=>{a.onClick?.(b),a.disabled||b.defaultPrevented||(b.currentTarget.focus(),e.open||e.onOpenChange(!0))},onPointerMove:(0,A.composeEventHandlers)(a.onPointerMove,a2(b=>{h.onItemEnter(b),!b.defaultPrevented&&(a.disabled||e.open||i.current||(h.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{e.onOpenChange(!0),m()},100)))})),onPointerLeave:(0,A.composeEventHandlers)(a.onPointerLeave,a2(a=>{m();let b=e.content?.getBoundingClientRect();if(b){let c=e.content?.dataset.side,d="right"===c,f=b[d?"left":"right"],g=b[d?"right":"left"];h.onPointerGraceIntentChange({area:[{x:a.clientX+(d?-5:5),y:a.clientY},{x:f,y:b.top},{x:g,y:b.top},{x:g,y:b.bottom},{x:f,y:b.bottom}],side:c}),window.clearTimeout(j.current),j.current=window.setTimeout(()=>h.onPointerGraceIntentChange(null),300)}else{if(h.onTriggerLeave(a),a.defaultPrevented)return;h.onPointerGraceIntentChange(null)}})),onKeyDown:(0,A.composeEventHandlers)(a.onKeyDown,b=>{let c=""!==h.searchRef.current;a.disabled||c&&" "===b.key||aa[f.dir].includes(b.key)&&(e.onOpenChange(!0),e.content?.focus(),b.preventDefault())})})})});aY.displayName=aX;var aZ="MenuSubContent",a$=c.forwardRef((a,d)=>{let e=as(au,a.__scopeMenu),{forceMount:f=e.forceMount,...g}=a,h=al(au,a.__scopeMenu),i=an(au,a.__scopeMenu),j=aW(aZ,a.__scopeMenu),k=c.useRef(null),l=(0,B.useComposedRefs)(d,k);return(0,b.jsx)(ad.Provider,{scope:a.__scopeMenu,children:(0,b.jsx)(Q.Presence,{present:f||h.open,children:(0,b.jsx)(ad.Slot,{scope:a.__scopeMenu,children:(0,b.jsx)(aB,{id:j.contentId,"aria-labelledby":j.triggerId,...g,ref:l,align:"start",side:"rtl"===i.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:a=>{i.isUsingKeyboardRef.current&&k.current?.focus(),a.preventDefault()},onCloseAutoFocus:a=>a.preventDefault(),onFocusOutside:(0,A.composeEventHandlers)(a.onFocusOutside,a=>{a.target!==j.trigger&&h.onOpenChange(!1)}),onEscapeKeyDown:(0,A.composeEventHandlers)(a.onEscapeKeyDown,a=>{i.onClose(),a.preventDefault()}),onKeyDown:(0,A.composeEventHandlers)(a.onKeyDown,a=>{let b=a.currentTarget.contains(a.target),c=ab[i.dir].includes(a.key);b&&c&&(h.onOpenChange(!1),j.trigger?.focus(),a.preventDefault())})})})})})});function a_(a){return a?"open":"closed"}function a0(a){return"indeterminate"===a}function a1(a){return a0(a)?"indeterminate":a?"checked":"unchecked"}function a2(a){return b=>"mouse"===b.pointerType?a(b):void 0}a$.displayName=aZ;var a3="DropdownMenu",[a4,a5]=(0,C.createContextScope)(a3,[ah]),a6=ah(),[a7,a8]=a4(a3),a9=a=>{let{__scopeDropdownMenu:d,children:e,dir:f,open:g,defaultOpen:h,onOpenChange:i,modal:j=!0}=a,k=a6(d),l=c.useRef(null),[m,n]=(0,D.useControllableState)({prop:g,defaultProp:h??!1,onChange:i,caller:a3});return(0,b.jsx)(a7,{scope:d,triggerId:(0,N.useId)(),triggerRef:l,contentId:(0,N.useId)(),open:m,onOpenChange:n,onOpenToggle:c.useCallback(()=>n(a=>!a),[n]),modal:j,children:(0,b.jsx)(ao,{...k,open:m,onOpenChange:n,dir:f,modal:j,children:e})})};a9.displayName=a3;var ba="DropdownMenuTrigger",bb=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,disabled:e=!1,...f}=a,g=a8(ba,d),h=a6(d);return(0,b.jsx)(ap,{asChild:!0,...h,children:(0,b.jsx)(H.button,{type:"button",id:g.triggerId,"aria-haspopup":"menu","aria-expanded":g.open,"aria-controls":g.open?g.contentId:void 0,"data-state":g.open?"open":"closed","data-disabled":e?"":void 0,disabled:e,...f,ref:(0,B.composeRefs)(c,g.triggerRef),onPointerDown:(0,A.composeEventHandlers)(a.onPointerDown,a=>{!e&&0===a.button&&!1===a.ctrlKey&&(g.onOpenToggle(),g.open||a.preventDefault())}),onKeyDown:(0,A.composeEventHandlers)(a.onKeyDown,a=>{!e&&(["Enter"," "].includes(a.key)&&g.onOpenToggle(),"ArrowDown"===a.key&&g.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(a.key)&&a.preventDefault())})})})});bb.displayName=ba;var bc=a=>{let{__scopeDropdownMenu:c,...d}=a,e=a6(c);return(0,b.jsx)(at,{...e,...d})};bc.displayName="DropdownMenuPortal";var bd="DropdownMenuContent",be=c.forwardRef((a,d)=>{let{__scopeDropdownMenu:e,...f}=a,g=a8(bd,e),h=a6(e),i=c.useRef(!1);return(0,b.jsx)(ax,{id:g.contentId,"aria-labelledby":g.triggerId,...h,...f,ref:d,onCloseAutoFocus:(0,A.composeEventHandlers)(a.onCloseAutoFocus,a=>{i.current||g.triggerRef.current?.focus(),i.current=!1,a.preventDefault()}),onInteractOutside:(0,A.composeEventHandlers)(a.onInteractOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey,d=2===b.button||c;(!g.modal||d)&&(i.current=!0)}),style:{...a.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});be.displayName=bd,c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aC,{...f,...e,ref:c})}).displayName="DropdownMenuGroup";var bf=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aD,{...f,...e,ref:c})});bf.displayName="DropdownMenuLabel";var bg=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aG,{...f,...e,ref:c})});bg.displayName="DropdownMenuItem";var bh=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aI,{...f,...e,ref:c})});bh.displayName="DropdownMenuCheckboxItem",c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aM,{...f,...e,ref:c})}).displayName="DropdownMenuRadioGroup";var bi=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aO,{...f,...e,ref:c})});bi.displayName="DropdownMenuRadioItem";var bj=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aS,{...f,...e,ref:c})});bj.displayName="DropdownMenuItemIndicator";var bk=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aT,{...f,...e,ref:c})});bk.displayName="DropdownMenuSeparator",c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aU,{...f,...e,ref:c})}).displayName="DropdownMenuArrow";var bl=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(aY,{...f,...e,ref:c})});bl.displayName="DropdownMenuSubTrigger";var bm=c.forwardRef((a,c)=>{let{__scopeDropdownMenu:d,...e}=a,f=a6(d);return(0,b.jsx)(a$,{...f,...e,ref:c,style:{...a.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});bm.displayName="DropdownMenuSubContent";var bn=a.i(33441),bo=a.i(50522);let bp=(0,p.default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var bq=a.i(68114);c.forwardRef(({className:a,inset:c,children:d,...e},f)=>(0,b.jsxs)(bl,{ref:f,className:(0,bq.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",c&&"pl-8",a),...e,children:[d,(0,b.jsx)(bo.ChevronRight,{className:"ml-auto h-4 w-4"})]})).displayName=bl.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(bm,{ref:d,className:(0,bq.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})).displayName=bm.displayName;let br=c.forwardRef(({className:a,sideOffset:c=4,...d},e)=>(0,b.jsx)(bc,{children:(0,b.jsx)(be,{ref:e,sideOffset:c,className:(0,bq.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d})}));br.displayName=be.displayName;let bs=c.forwardRef(({className:a,inset:c,...d},e)=>(0,b.jsx)(bg,{ref:e,className:(0,bq.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",c&&"pl-8",a),...d}));bs.displayName=bg.displayName,c.forwardRef(({className:a,children:c,checked:d,...e},f)=>(0,b.jsxs)(bh,{ref:f,className:(0,bq.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),checked:d,...e,children:[(0,b.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(bj,{children:(0,b.jsx)(bn.Check,{className:"h-4 w-4"})})}),c]})).displayName=bh.displayName,c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(bi,{ref:e,className:(0,bq.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...d,children:[(0,b.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(bj,{children:(0,b.jsx)(bp,{className:"h-2 w-2 fill-current"})})}),c]})).displayName=bi.displayName;let bt=c.forwardRef(({className:a,inset:c,...d},e)=>(0,b.jsx)(bf,{ref:e,className:(0,bq.cn)("px-2 py-1.5 text-sm font-semibold",c&&"pl-8",a),...d}));bt.displayName=bf.displayName;let bu=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(bk,{ref:d,className:(0,bq.cn)("-mx-1 my-1 h-px bg-muted",a),...c}));bu.displayName=bk.displayName;var bv=a.i(81560),bw=a.i(33508),bx=a.i(96221),by=a.i(14574),bz=a.i(42027),bA=a.i(93907),bB=a.i(91938),bC=a.i(30534);function bD({ids:a}){let{t:d}=(0,z.useLanguage)(),[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(0),[q,r]=a,s=()=>{l(!0),i(null),n(null),p(a=>a+1)};return(0,c.useEffect)(()=>{if(!f||!q||!r)return;let a=!0;return bB.apiClient.post("/api/error-items/similarity",{ids:[q,r]}).then(b=>{a&&i(b)}).catch(b=>{a&&(n("Question text is required for similarity comparison"===b?.data?.message?d.questionSimilarity.missingText:d.questionSimilarity.failed),bC.frontendLogger.error("[Similarity]","相似度比较失败",{error:b instanceof Error?b.message:String(b)}))}).finally(()=>{a&&l(!1)}),()=>{a=!1}},[f,q,r,o,d.questionSimilarity.failed,d.questionSimilarity.missingText]),(0,b.jsxs)(by.Dialog,{open:f,onOpenChange:a=>{g(a),a&&s()},children:[(0,b.jsx)(by.DialogTrigger,{asChild:!0,children:(0,b.jsxs)(e.Button,{variant:"outline",disabled:2!==a.length,title:d.questionSimilarity.selectTwo,children:[(0,b.jsx)(v,{className:"mr-2 h-4 w-4"}),d.questionSimilarity.title]})}),(0,b.jsxs)(by.DialogContent,{className:"w-[calc(100vw-2rem)] sm:max-w-3xl max-h-[85vh] overflow-y-auto",children:[(0,b.jsxs)(by.DialogHeader,{children:[(0,b.jsx)(by.DialogTitle,{children:d.questionSimilarity.title}),(0,b.jsx)(by.DialogDescription,{children:d.questionSimilarity.description})]}),k&&(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",role:"status",children:[(0,b.jsx)(bx.Loader2,{className:"h-4 w-4 animate-spin"}),d.common.loading]}),m&&(0,b.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:m}),m&&(0,b.jsx)(e.Button,{variant:"outline",onClick:s,children:d.questionSimilarity.retry}),h&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"space-y-2 rounded-lg bg-muted p-4",role:"status",children:[(0,b.jsx)("p",{className:"text-sm",children:d.questionSimilarity.score}),(0,b.jsxs)("p",{className:"text-3xl font-bold tabular-nums",children:[Number((100*h.similarity).toFixed(4)),"%"]}),(0,b.jsx)("p",{className:"text-sm",children:d.questionSimilarity.threshold.replace("{threshold}",String(h.threshold))}),(0,b.jsx)("p",{className:"text-sm font-medium",children:h.duplicate?d.questionSimilarity.duplicate:d.questionSimilarity.different})]}),(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:h.items.map((a,c)=>(0,b.jsxs)("div",{className:"min-w-0 space-y-2 rounded-lg border p-3",children:[(0,b.jsxs)(j.default,{href:`/error-items/${a.id}`,className:"text-sm font-medium text-primary hover:underline",children:[d.questionSimilarity.question.replace("{index}",String(c+1))," · ",a.shortId||"-"]}),a.notebookName&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:a.notebookName}),(0,b.jsx)("div",{className:"max-h-56 overflow-auto text-sm",children:(0,b.jsx)(bA.MarkdownRenderer,{content:a.questionText})})]},a.id))})]}),(0,b.jsx)(bz.DuplicateThresholdSetting,{onSaved:s})]})]})}function bE({selectedIds:a,deleting:c,onCancel:d,onDelete:f}){let{t:g}=(0,z.useLanguage)();return(0,b.jsx)("div",{className:"pb-safe fixed bottom-0 left-0 right-0 z-50 border-t bg-card/95 p-4 shadow-lg backdrop-blur",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-6xl flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1 text-sm text-muted-foreground",children:[(0,b.jsx)("p",{children:g.notebook.selectedCount.replace("{count}",String(a.length))}),(0,b.jsx)("p",{className:"text-xs",children:g.questionSimilarity.selectTwo})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(bD,{ids:a}),(0,b.jsxs)(e.Button,{variant:"outline",onClick:d,children:[(0,b.jsx)(bw.X,{className:"mr-2 h-4 w-4"}),g.notebook.cancelSelect]}),(0,b.jsxs)(e.Button,{variant:"destructive",onClick:f,disabled:0===a.length||c,children:[(0,b.jsx)(bv.Trash2,{className:"mr-2 h-4 w-4"}),g.notebook.deleteSelected]})]})]})})}var bF=a.i(31368),bG=a.i(80701),bH=a.i(57292);let bI={1:["一年级"],2:["二年级"],3:["三年级"],4:["四年级"],5:["五年级"],6:["六年级"],7:["七年级上","七年级下","七年级"],8:["八年级上","八年级下","八年级"],9:["九年级上","九年级下","九年级"],10:["高一上","高一下","高一"],11:["高二上","高二下","高二"],12:["高三上","高三下","高三"]};function bJ({gradeSemester:a,tag:d,subjectName:e,onFilterChange:f,className:g}){let{t:h}=(0,z.useLanguage)(),{timeZone:i}=(0,x.useTimeZone)(),[j,k]=(0,c.useState)(a||""),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(d||""),[p,q]=(0,c.useState)([]),[r,s]=(0,c.useState)(!0),[t,u]=(0,c.useState)({}),[v,w]=(0,c.useState)([]);(0,c.useEffect)(()=>{void 0!==a&&k(a)},[a]),(0,c.useEffect)(()=>{void 0!==d&&o(d||"")},[d]);let A=(0,c.useCallback)((a,b)=>{let c=(0,y.getCalendarDate)(new Date,i),d=c.getFullYear(),e=(c.getMonth()+1>=9?d:d-1)-b+1;return"primary"===a?e:"junior_high"===a?e+6:"senior_high"===a?e+9:0},[i]),B=(0,c.useCallback)((a,b)=>{let c=[];return a?"primary"===a?c=[1,2,3,4,5,6]:"junior_high"===a?(c=[7,8,9],b&&A(a,b)>=10&&c.push(10,11,12)):c="senior_high"===a?[10,11,12]:[1,2,3,4,5,6,7,8,9,10,11,12]:c=[1,2,3,4,5,6,7,8,9,10,11,12],c.flatMap(a=>bI[a]||[])},[A]);(0,c.useEffect)(()=>{(async()=>{s(!0);try{let a=await bB.apiClient.get("/api/user");u(a);let b=B(a.educationStage,a.enrollmentYear);w(b);let c=e?(0,bH.inferSubjectFromName)(e):"math";try{let a=await bB.apiClient.get(`/api/tags?subject=${c}`);q(a.tags)}catch(a){console.warn(`Failed to fetch tags for subject ${c}`,a),q([])}}catch(a){console.error("Failed to load filter data:",a)}finally{s(!1)}})()},[e,B]);let C=p.find(a=>a.name===j),D=C?.children||[],E=D.find(a=>a.name===l),F=a=>0===a.children.length?[a.name]:a.children.flatMap(a=>F(a)),G=E?[...new Set(F(E))]:[],H=v.filter(a=>p.some(b=>b.name===a));return(0,b.jsxs)("div",{className:`flex gap-2 ${g}`,children:[(0,b.jsxs)(bG.Select,{value:j,onValueChange:a=>{k(a),m(""),o(""),f({gradeSemester:"all"===a?void 0:a,chapter:void 0,tag:void 0})},disabled:r,children:[(0,b.jsx)(bG.SelectTrigger,{className:"w-[140px]",children:(0,b.jsx)(bG.SelectValue,{placeholder:h.filter?.gradeShort||"Grade"})}),(0,b.jsxs)(bG.SelectContent,{children:[(0,b.jsx)(bG.SelectItem,{value:"all",children:h.filter?.allGrades||"All grades"}),H.map(a=>(0,b.jsx)(bG.SelectItem,{value:a,children:a},a))]})]}),(0,b.jsxs)(bG.Select,{value:l,onValueChange:a=>{m(a),o(""),f({gradeSemester:"all"===j?void 0:j,chapter:"all"===a?void 0:a,tag:void 0})},disabled:!j||"all"===j,children:[(0,b.jsx)(bG.SelectTrigger,{className:"w-[180px]",children:(0,b.jsx)(bG.SelectValue,{placeholder:h.filter?.chapter||"Chapter"})}),(0,b.jsxs)(bG.SelectContent,{children:[(0,b.jsx)(bG.SelectItem,{value:"all",children:h.filter?.allChapters||"All chapters"}),D.map(a=>(0,b.jsx)(bG.SelectItem,{value:a.name,children:a.name.replace(/^第\d+章\s*/,"")},a.id))]})]}),(0,b.jsxs)(bG.Select,{value:n,onValueChange:a=>{o(a),f({gradeSemester:"all"===j?void 0:j,chapter:"all"===l?void 0:l,tag:"all"===a?void 0:a})},disabled:!l||"all"===l,children:[(0,b.jsx)(bG.SelectTrigger,{className:"w-[140px]",children:(0,b.jsx)(bG.SelectValue,{placeholder:h.filter?.knowledgePoint||"Tag"})}),(0,b.jsxs)(bG.SelectContent,{children:[(0,b.jsx)(bG.SelectItem,{value:"all",children:h.filter?.allKnowledgePoints||"All tags"}),G.map(a=>(0,b.jsx)(bG.SelectItem,{value:a,children:a},a))]})]})]})}var bK=a.i(22418),bL=a.i(49355);let bM={}.hasOwnProperty,bN={}.hasOwnProperty;var bO=a.i(72073),bP=a.i(98970),bQ=a.i(36279);let bR=[function(a,b,c,d){if("code"===b.type&&(0,bP.formatCodeAsIndented)(b,d)&&("list"===a.type||a.type===b.type&&(0,bP.formatCodeAsIndented)(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,bQ.formatHeadingAsSetext)(b,d)))return;return+!!c.spread}}],bS=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"],bT=[{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:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"!",after:"\\[",inConstruct:"phrasing",notInConstruct:bS},{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:bS},{atBreak:!0,before:"\\d+",character:")"},{character:")",inConstruct:"destinationRaw"},{atBreak:!0,character:"*",after:"(?:[ \r\n*])"},{character:"*",inConstruct:"phrasing",notInConstruct:bS},{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:bS},{character:"<",inConstruct:"destinationLiteral"},{atBreak:!0,character:"="},{atBreak:!0,character:">"},{character:">",inConstruct:"destinationLiteral"},{atBreak:!0,character:"["},{character:"[",inConstruct:"phrasing",notInConstruct:bS},{character:"[",inConstruct:["label","reference"]},{character:"\\",after:"[\\r\\n]",inConstruct:"phrasing"},{character:"]",inConstruct:["label","reference"]},{atBreak:!0,character:"_"},{character:"_",inConstruct:"phrasing",notInConstruct:bS},{atBreak:!0,character:"`"},{character:"`",inConstruct:["codeFencedLangGraveAccent","codeFencedMetaGraveAccent"]},{character:"`",inConstruct:"phrasing",notInConstruct:bS},{atBreak:!0,character:"~"}];var bU=a.i(55735);function bV(a){return a.label||!a.identifier?a.label||"":(0,bU.decodeString)(a.identifier)}function bW(a){if(!a._compiled){let b=(a.atBreak?"[\\r\\n][\\t ]*":"")+(a.before?"(?:"+a.before+")":"");a._compiled=RegExp((b?"("+b+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(a.character)?"\\":"")+a.character+(a.after?"(?:"+a.after+")":""),"g")}return a._compiled}var bX=a.i(88183);let bY=/\r?\n|\r/g;function bZ(a,b){let c,d=[],e=0,f=0;for(;c=bY.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 b$=a.i(89750);function b_(a,b){return a-b}function b0(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 b1(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 b2(a){throw Error("Cannot handle value `"+a+"`, expected node")}function b3(a){throw Error("Cannot handle unknown node `"+a.type+"`")}function b4(a,b){if("definition"===a.type&&a.type===b.type)return 0}function b5(a,b){return function(a,b,c){let d,e=b.indexStack,f=a.children||[],g=[],h=-1,i=c.before;e.push(-1);let j=b.createTracker(c);for(;++h<f.length;){let k,l=f[h];if(e[e.length-1]=h,h+1<f.length){let c=b.handle.handlers[f[h+1].type];c&&c.peek&&(c=c.peek),k=c?c(f[h+1],a,b,{before:"",after:"",...j.current()}).charAt(0):""}else k=c.after;g.length>0&&("\r"===i||"\n"===i)&&"html"===l.type&&(g[g.length-1]=g[g.length-1].replace(/(\r?\n|\r)$/," "),i=" ",(j=b.createTracker(c)).move(g.join("")));let m=b.handle(l,a,b,{...j.current(),after:k,before:i});d&&d===m.slice(0,1)&&(m=(0,bX.encodeCharacterReference)(d.charCodeAt(0))+m.slice(1));let n=b.attentionEncodeSurroundingInfo;b.attentionEncodeSurroundingInfo=void 0,d=void 0,n&&(g.length>0&&n.before&&i===g[g.length-1].slice(-1)&&(g[g.length-1]=g[g.length-1].slice(0,-1)+(0,bX.encodeCharacterReference)(i.charCodeAt(0))),n.after&&(d=k)),j.move(m),g.push(m),i=m.slice(-1)}return e.pop(),g.join("")}(a,this,b)}function b6(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 b7(a,b){return function(a,b,c){let d=(c.before||"")+(b||"")+(c.after||""),e=[],f=[],g={},h=-1;for(;++h<a.unsafe.length;){let b,c=a.unsafe[h];if(!(0,b$.patternInScope)(a.stack,c))continue;let f=a.compilePattern(c);for(;b=f.exec(d);){let a="before"in c||!!c.atBreak,d="after"in c,f=b.index+(a?b[1].length:0);e.includes(f)?(g[f].before&&!a&&(g[f].before=!1),g[f].after&&!d&&(g[f].after=!1)):(e.push(f),g[f]={before:a,after:d})}}e.sort(b_);let i=c.before?c.before.length:0,j=d.length-(c.after?c.after.length:0);for(h=-1;++h<e.length;){let a=e[h];!(a<i)&&!(a>=j)&&(!(a+1<j)||e[h+1]!==a+1||!g[a].after||g[a+1].before||g[a+1].after)&&(e[h-1]!==a-1||!g[a].before||g[a-1].before||g[a-1].after)&&(i!==a&&f.push(b0(d.slice(i,a),"\\")),i=a,!/[!-/:-@[-`{-~]/.test(d.charAt(a))||c.encode&&c.encode.includes(d.charAt(a))?(f.push((0,bX.encodeCharacterReference)(d.charCodeAt(a))),i++):f.push("\\"))}return f.push(b0(d.slice(i,j),c.after)),f.join("")}(this,a,b)}let b8=(0,a.i(32252).unified)().use(bL.default).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(bN.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:bV,containerPhrasing:b5,containerFlow:b6,createTracker:b1,compilePattern:bW,enter:function(a){return e.stack.push(a),function(){e.stack.pop()}},handlers:{...bO.handle},handle:void 0,indentLines:bZ,indexStack:[],join:[...bR],options:{},safe:b7,stack:[],unsafe:[...bT]},d||{}),e.options.tightDefinitions&&e.join.push(b4),e.handle=function(a,b){let c=b||{};function d(b,...c){let e=d.invalid,f=d.handlers;if(b&&bM.call(b,a)){let c=String(b[a]);e=bM.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:b2,unknown:b3,handlers:e.handlers}),(f=e.handle(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(),b9={blockquote:cf,break:function(){return{type:"text",value:"\n"}},code:cg,definition:cg,delete:cf,emphasis:cf,footnoteReference:cg,footnoteDefinition:cg,heading:function(a){return{type:"paragraph",children:a.children}},html:cg,image:cd,imageReference:cd,inlineCode:ce,list:cf,listItem:cf,link:cf,linkReference:cf,strong:cf,table:cg,tableCell:cg,text:ce,thematicBreak:cg,toml:cg,yaml:cg},ca={},cb=[];function cc(a){let b={...b9},c=a||ca,d=c.keep||cb,e=c.remove||cb,f=-1;for(;++f<e.length;){let a=e[f];"string"==typeof a?b[a]=cg: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 cd(a){let b="title"in a?a.title:"",c=a.alt||b||"";return c?{type:"text",value:c}:void 0}function ce(a){return{type:"text",value:a.value}}function cf(a){return a.children}function cg(){}let ch=(0,p.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),ci=(0,p.default)("chevrons-left",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]),cj=(0,p.default)("chevrons-right",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]);var ck=a.i(97902);function cl({page:a,totalPages:c,onPageChange:d,total:f,pageSize:g}){let{t:h}=(0,z.useLanguage)();if(c<=1)return null;let i=a>1,j=a<c,k=(()=>{let b=[];if(c<=ck.MAX_VISIBLE_PAGES)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!==f&&void 0!==g&&(0,b.jsx)("div",{className:"text-sm text-muted-foreground order-2 sm:order-1",children:(h.pagination?.showing||"Showing {start}-{end} of {total}").replace("{start}",((a-1)*g+1).toString()).replace("{end}",Math.min(a*g,f).toString()).replace("{total}",f.toString())}),(0,b.jsxs)("div",{className:"flex items-center gap-1 order-1 sm:order-2",children:[(0,b.jsx)(e.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(1),disabled:!i,title:h.pagination?.first||"First page",children:(0,b.jsx)(ci,{className:"h-4 w-4"})}),(0,b.jsx)(e.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(a-1),disabled:!i,title:h.pagination?.prev||"Previous page",children:(0,b.jsx)(ch,{className:"h-4 w-4"})}),(0,b.jsx)("div",{className:"hidden sm:flex items-center gap-1",children:k.map((c,f)=>"ellipsis"===c?(0,b.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},`ellipsis-${f}`):(0,b.jsx)(e.Button,{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)(e.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(a+1),disabled:!j,title:h.pagination?.next||"Next page",children:(0,b.jsx)(bo.ChevronRight,{className:"h-4 w-4"})}),(0,b.jsx)(e.Button,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>d(c),disabled:!j,title:h.pagination?.last||"Last page",children:(0,b.jsx)(cj,{className:"h-4 w-4"})})]})]})}var cm=a.i(92883),cn=a.i(83715),co=a.i(79188),cp=a.i(10302);function cq({subjectId:a,subjectName:f}={}){let{timeZone:g}=(0,x.useTimeZone)(),[h,i]=(0,c.useState)([]),[p,A]=(0,c.useState)(!0),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)("all"),[F,G]=(0,c.useState)("all"),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(""),[L,M]=(0,c.useState)("all"),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(new Set),[R,S]=(0,c.useState)(1),[T]=(0,c.useState)(ck.DEFAULT_PAGE_SIZE),[U,V]=(0,c.useState)(0),[W,X]=(0,c.useState)(0),[Y,Z]=(0,c.useState)(!1),[$,_]=(0,c.useState)(new Set),[aa,ab]=(0,c.useState)(!1),{t:ac,language:ad}=(0,z.useLanguage)(),ae=(0,d.useRouter)(),af=()=>{Z(!Y),_(new Set)},ag=async()=>{if(0===$.size)return;let a=(ac.notebook?.confirmBatchDelete||"Delete {count} items?").replace("{count}",$.size.toString());if(await (0,cp.confirmDialog)(a,{destructive:!0})){ab(!0);try{await bB.apiClient.post("/api/error-items/batch-delete",{ids:Array.from($)}),cp.toast.success(ac.notebook?.batchDeleteSuccess||"Deleted successfully"),Z(!1),_(new Set),ai()}catch(a){console.error(a),cp.toast.error(ac.common?.messages?.deleteFailed||"Delete failed")}finally{ab(!1)}}},ah=(0,c.useRef)({search:B,masteryFilter:D,timeFilter:F,selectedTag:N,subjectId:a,gradeFilter:H,chapterFilter:J,paperLevelFilter:L});(0,c.useEffect)(()=>{let b=ah.current,c=b.search!==B||b.masteryFilter!==D||b.timeFilter!==F||b.selectedTag!==N||b.subjectId!==a||b.gradeFilter!==H||b.chapterFilter!==J||b.paperLevelFilter!==L;(ah.current={search:B,masteryFilter:D,timeFilter:F,selectedTag:N,subjectId:a,gradeFilter:H,chapterFilter:J,paperLevelFilter:L},c&&1!==R)?S(1):ai()},[R,B,D,F,N,a,H,J,L]);let ai=async()=>{A(!0);try{let b=new URLSearchParams;a&&b.append("subjectId",a),B&&b.append("query",B),"all"!==D&&b.append("mastery",D),"all"!==F&&b.append("timeRange",F),N&&b.append("tag",N),H&&b.append("gradeSemester",H),J&&b.append("chapter",J),"all"!==L&&b.append("paperLevel",L),b.append("page",R.toString()),b.append("pageSize",T.toString());let c=await bB.apiClient.get(`/api/error-items/list?${b.toString()}`);i(c.items),V(c.total),X(c.totalPages)}catch(a){console.error(a)}finally{A(!1)}};return(0,b.jsxs)("div",{className:`space-y-6 ${Y?"pb-40 sm:pb-24":""}`,children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row",children:[(0,b.jsxs)("div",{className:"relative w-full lg:flex-1",children:[(0,b.jsx)(q,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,b.jsx)(m.Input,{placeholder:ac.notebook.search,title:ac.shortId.searchHint,className:"h-10 rounded-xl bg-card pl-9",value:B,onChange:a=>C(a.target.value),onKeyDown:async a=>{let b=B.trim();if("Enter"!==a.key||!(0,cn.isShortId)(b))return;let c=await (0,co.locateByShortId)(b);c&&ae.push(`/error-items/${c}`)}})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsxs)(a9,{children:[(0,b.jsx)(bb,{asChild:!0,children:(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",className:"h-10",children:[(0,b.jsx)(r,{className:"mr-2 h-4 w-4"}),ac.notebook.filter,(0,b.jsx)(s.ChevronDown,{className:"ml-2 h-4 w-4"})]})}),(0,b.jsxs)(br,{align:"end",className:"w-48",children:[(0,b.jsx)(bt,{children:ac.filter.masteryStatus||"Mastery Status"}),(0,b.jsxs)(bs,{onClick:()=>E("all"),children:["all"===D&&"✓ ",ac.filter.all||"All"]}),(0,b.jsxs)(bs,{onClick:()=>E("new"),children:["new"===D&&"✓ ",ac.filter.review||"To Review"]}),(0,b.jsxs)(bs,{onClick:()=>E("reviewing"),children:["reviewing"===D&&"✓ ",ac.filter.reviewing||"Reviewing"]}),(0,b.jsxs)(bs,{onClick:()=>E("mastered"),children:["mastered"===D&&"✓ ",ac.filter.mastered||"Mastered"]}),(0,b.jsx)(bu,{}),(0,b.jsx)(bt,{children:ac.filter.timeRange||"Time Range"}),(0,b.jsxs)(bs,{onClick:()=>G("all"),children:["all"===F&&"✓ ",ac.filter.allTime||"All Time"]}),(0,b.jsxs)(bs,{onClick:()=>G("week"),children:["week"===F&&"✓ ",ac.filter.lastWeek||"Last Week"]}),(0,b.jsxs)(bs,{onClick:()=>G("month"),children:["month"===F&&"✓ ",ac.filter.lastMonth||"Last Month"]})]})]}),(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",className:"h-10",onClick:()=>{let b=new URLSearchParams;a&&b.append("subjectId",a),B&&b.append("query",B),"all"!==D&&b.append("mastery",D),"all"!==F&&b.append("timeRange",F),N&&b.append("tag",N),H&&b.append("gradeSemester",H),J&&b.append("chapter",J),"all"!==L&&b.append("paperLevel",L),ae.push(`/print-preview?${b.toString()}`)},children:[(0,b.jsx)(t.Printer,{className:"mr-2 h-4 w-4"}),ac.notebook?.exportPrint||"导出打印"]}),!Y&&(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",className:"h-10",onClick:af,children:[(0,b.jsx)(v,{className:"mr-2 h-4 w-4"}),ac.questionSimilarity.title]}),(0,b.jsxs)(e.Button,{variant:Y?"secondary":"outline",size:"sm",className:"h-10",onClick:af,children:[(0,b.jsx)(u.ListChecks,{className:"mr-2 h-4 w-4"}),Y?ac.notebook?.cancelSelect||"取消":ac.notebook?.selectMode||"多选"]})]})]}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 items-stretch sm:items-center",children:[(0,b.jsx)("div",{className:"w-full sm:w-auto",children:(0,b.jsx)(bJ,{gradeSemester:H,tag:N,onFilterChange:({gradeSemester:a,chapter:b,tag:c})=>{void 0!==a&&I(a),void 0!==b&&K(b),O(void 0===c?null:c),a?b||K(""):(I(""),K(""),O(null)),S(1)},subjectName:f})}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(e.Button,{variant:"all"===L?"default":"outline",size:"sm",className:"rounded-full",onClick:()=>M("all"),children:ac.filter.all||"All"}),(0,b.jsx)(e.Button,{variant:"a"===L?"default":"outline",size:"sm",className:"rounded-full",onClick:()=>M("a"),children:ac.editor.paperLevels?.a||"Paper A"}),(0,b.jsx)(e.Button,{variant:"b"===L?"default":"outline",size:"sm",className:"rounded-full",onClick:()=>M("b"),children:ac.editor.paperLevels?.b||"Paper B"}),(0,b.jsx)(e.Button,{variant:"other"===L?"default":"outline",size:"sm",className:"rounded-full",onClick:()=>M("other"),children:ac.editor.paperLevels?.other||"Other"})]})]}),N&&(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-muted rounded-lg",children:[(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:[ac.filter.filteringByTag||"Filtering by tag",":"]}),(0,b.jsxs)(l.Badge,{variant:"secondary",className:"cursor-pointer",onClick:()=>O(null),children:[N,(0,b.jsx)("span",{className:"ml-1 text-xs",children:"×"})]})]}),!p&&0===h.length&&(0,b.jsx)(o.EmptyState,{icon:w,title:ac.notebook.emptyList,description:ac.notebook.emptyListHint}),p&&0===h.length&&(0,b.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6},(a,c)=>(0,b.jsx)("div",{className:"h-44 animate-pulse rounded-2xl bg-muted"},c))}),(0,b.jsx)("div",{className:`grid gap-4 md:grid-cols-2 lg:grid-cols-3 transition-opacity ${p?"opacity-60":""}`,children:h.map(a=>{let c,d=[];if(a.tags&&a.tags.length>0)d=a.tags.map(a=>a.name);else try{d=JSON.parse(a.knowledgePoints||"[]")}catch{d=[]}return(0,b.jsxs)("div",{className:"relative animate-in fade-in duration-300",children:[Y&&(0,b.jsx)("div",{className:"absolute top-2 left-2 z-10",onClick:b=>{var c;return c=a.id,void(b.preventDefault(),b.stopPropagation(),_(a=>{let b=new Set(a);return b.has(c)?b.delete(c):b.add(c),b}))},children:(0,b.jsx)(n.Checkbox,{checked:$.has(a.id),"aria-label":ac.questionSimilarity.selectQuestion.replace("{id}",a.shortId||a.id),className:"h-5 w-5 border-2 bg-background shadow-sm"})}),(0,b.jsx)(j.default,{href:Y?"#":`/error-items/${a.id}`,onClick:a=>Y&&a.preventDefault(),children:(0,b.jsxs)(k.Card,{className:`h-full cursor-pointer gap-2 rounded-2xl border-l-4 pt-4 transition-all hover:-translate-y-0.5 hover:shadow-md ${bK.MASTERY_STATUS_BORDER[a.masteryStatus??"new"]} ${Y&&$.has(a.id)?"ring-2 ring-primary":"hover:border-primary/40"}`,children:[(0,b.jsx)(k.CardHeader,{className:"pb-0",children:(0,b.jsxs)("div",{className:`flex justify-between items-start ${Y?"pl-7":""}`,children:[(0,b.jsx)(bK.MasteryStatusBadge,{status:a.masteryStatus??"new"}),(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:ac.mastery.probability,children:[Math.round(100*a.masteryProbability),"%"]}),a.shortId&&(0,b.jsx)("span",{className:"font-mono",children:a.shortId}),(0,y.formatDateTime)(a.createdAt,"MM/dd",g)]})]})}),(0,b.jsxs)(k.CardContent,{children:[(0,b.jsx)("div",{className:"text-sm line-clamp-3",children:(c=function(a){if(!a)return"";try{let b=a.replace(/\\_/g,"_"),c=b8().use(cc).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 console.error("Failed to strip markdown:",b),a}}((a.questionText||"").split("\n\n")[0])).length>80?c.substring(0,80)+"...":c}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-3",children:[(0,b.jsx)(l.Badge,{variant:"secondary",className:"text-xs",children:(0,cm.getMistakeStatusLabel)(a.mistakeStatus,ad)}),(0,b.jsx)(bF.DifficultyStars,{value:a.difficultyStars,showUnrated:!1})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 mt-3",children:[(P.has(a.id)?d:d.slice(0,3)).map(a=>(0,b.jsx)(l.Badge,{variant:N===a?"default":"outline",className:"text-xs cursor-pointer hover:bg-primary/10 transition-colors",onClick:b=>{b.preventDefault(),O(N===a?null:a)},children:a},a)),d.length>3&&(0,b.jsx)(l.Badge,{variant:"secondary",className:"text-xs cursor-pointer hover:bg-secondary/80 transition-colors",title:P.has(a.id)?ac.notebooks?.collapseTagsTooltip||"Click to collapse":(ac.notebooks?.expandTagsTooltip||"Click to expand {count} tags").replace("{count}",(d.length-3).toString()),onClick:b=>{var c;return c=a.id,void(b.preventDefault(),b.stopPropagation(),Q(a=>{let b=new Set(a);return b.has(c)?b.delete(c):b.add(c),b}))},children:P.has(a.id)?(0,b.jsx)(b.Fragment,{children:ac.notebooks?.collapseTags||"Collapse"}):(0,b.jsx)(b.Fragment,{children:(ac.notebooks?.expandTags||"+{count} more").replace("{count}",(d.length-3).toString())})})]})]})]})})]},a.id)})}),(0,b.jsx)(cl,{page:R,totalPages:W,total:U,pageSize:T,onPageChange:S}),Y&&(0,b.jsx)(bE,{selectedIds:[...$],deleting:aa,onCancel:af,onDelete:ag})]})}var cr=a.i(73556),cs=a.i(8406);function ct({notebookId:a,onFinished:d}){let{t:f}=(0,z.useLanguage)(),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(null),k=(0,c.useRef)(!1),l=(0,c.useCallback)(()=>{bB.apiClient.get(`/api/notebooks/${a}/retag`).then(a=>{k.current&&a&&!a.running&&d?.(),k.current=!!a?.running,h(a)}).catch(()=>void 0)},[a,d]);(0,c.useEffect)(l,[l]),(0,c.useEffect)(()=>{if(!g?.running)return;let a=setTimeout(l,2e3);return()=>clearTimeout(a)},[g,l]);let m=async()=>{if(await (0,cp.confirmDialog)(f.retag.notebookConfirm)){j(null);try{let b=await bB.apiClient.post(`/api/notebooks/${a}/retag`,{});if(0===b.total)return void j(f.retag.empty);k.current=b.running,h(b)}catch{j(f.retag.itemFailed)}}},n=i??(g?.running?f.retag.progress.replace("{done}",String(g.done)).replace("{total}",String(g.total)):g?.finishedAt&&g.total>0?f.retag.finished.replace("{success}",String(g.total-g.failed)).replace("{failed}",String(g.failed)):null);return(0,b.jsxs)("div",{className:"flex flex-col items-start sm:items-end gap-1",children:[(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:m,disabled:g?.running,"aria-label":f.retag.notebookButton,children:[g?.running?(0,b.jsx)(bx.Loader2,{className:"h-4 w-4 animate-spin sm:mr-2"}):(0,b.jsx)(cs.Sparkles,{className:"h-4 w-4 sm:mr-2"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:f.retag.notebookButton})]}),n&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:n})]})}var cu=a.i(68368),cv=a.i(74484);a.s(["default",0,function(){let a=(0,d.useParams)(),k=(0,d.useRouter)(),{t:l}=(0,z.useLanguage)(),[m,n]=(0,c.useState)(null);(0,cv.usePageTitle)(l.notebooks.title,m?.name);let[o,p]=(0,c.useState)(!0),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(0);(0,c.useEffect)(()=>{a.id&&u(a.id)},[a.id]);let u=async a=>{try{let b=await bB.apiClient.get(`/api/notebooks/${a}`);n(b)}catch(a){console.error("Failed to fetch notebook:",a),cp.toast.error(l.notebooks?.notFound||"Notebook not found"),k.push("/notebooks")}finally{p(!1)}},v=async a=>{m&&n(await bB.apiClient.put(`/api/notebooks/${m.id}`,{name:a}))};return o?(0,b.jsx)(g.PageLoading,{label:l.common.loading}):m?(0,b.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(f.PageHeader,{backHref:"/notebooks",title:m.name,titleAddon:(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 text-muted-foreground",onClick:()=>r(!0),title:l.notebooks?.rename||"Rename",children:(0,b.jsx)(i.Pencil,{className:"h-4 w-4"})}),description:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(cu.NotebookScopeLabel,{notebook:m})," · ",(l.notebooks?.totalErrors||"Total {count} errors").replace("{count}",(m._count?.errorItems||0).toString())]}),actions:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ct,{notebookId:m.id,onFinished:()=>t(a=>a+1)}),(0,b.jsx)(j.default,{href:`/notebooks/${m.id}/add`,children:(0,b.jsxs)(e.Button,{"aria-label":l.notebooks?.addError||"Add Error",children:[(0,b.jsx)(h.Plus,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:l.notebooks?.addError||"Add Error"})]})})]})}),(0,b.jsx)(cq,{subjectId:m.id,subjectName:m.name},s),(0,b.jsx)(cr.RenameNotebookDialog,{open:q,onOpenChange:r,currentName:m.name,onRename:v})]})}):null}],1453)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_app_notebooks_%5Bid%5D_page_tsx_08njm-5._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[32204,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(99570),f=a.i(79834),g=a.i(51538),h=a.i(6376),i=a.i(96221),j=a.i(70106);let k=(0,j.default)("locate-fixed",[["line",{x1:"2",x2:"5",y1:"12",y2:"12",key:"bvdh0s"}],["line",{x1:"19",x2:"22",y1:"12",y2:"12",key:"1tbv5k"}],["line",{x1:"12",x2:"12",y1:"2",y2:"5",key:"11lu5j"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}],["circle",{cx:"12",cy:"12",r:"7",key:"fim9np"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var l=a.i(66718),m=a.i(50194),n=a.i(79188),o=a.i(83715);function p(){let{t:a}=(0,m.useLanguage)(),f=(0,d.useRouter)(),[g,h]=(0,c.useState)(""),[j,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1),s=async b=>{b.preventDefault();let c=g.trim();if(!(0,o.isShortId)(c))return void p(a.shortId.invalid);r(!0),p(null);let d=await (0,n.locateByShortId)(c);r(!1),d?f.push(`/error-items/${d}`):p(a.shortId.notFound)};return(0,b.jsxs)("form",{onSubmit:s,className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(l.Input,{value:g,onChange:a=>{h(a.target.value),p(null)},placeholder:a.shortId.locatePlaceholder,maxLength:6,className:"font-mono sm:max-w-xs","aria-label":a.shortId.locateTitle}),(0,b.jsxs)(e.Button,{type:"submit",variant:"outline",disabled:q||!g.trim(),children:[q?(0,b.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(k,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"ml-2",children:a.shortId.locate})]})]}),j&&(0,b.jsx)("p",{className:"text-xs text-destructive",children:j})]})}var q=a.i(53722),r=a.i(15618);let s=(0,j.default)("atom",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z",key:"1l2ple"}],["path",{d:"M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z",key:"1wam0m"}]]),t=(0,j.default)("book-text",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]]);var u=a.i(50522);let v=(0,j.default)("flask-conical",[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]),w=(0,j.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),x=(0,j.default)("landmark",[["path",{d:"M10 18v-7",key:"wt116b"}],["path",{d:"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z",key:"1m329m"}],["path",{d:"M14 18v-7",key:"vav6t3"}],["path",{d:"M18 18v-7",key:"aexdmj"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M6 18v-7",key:"1ivflk"}]]);var y=a.i(33836);let z=(0,j.default)("leaf",[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]]);var A=a.i(99464);let B=(0,j.default)("scale",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]),C=(0,j.default)("sigma",[["path",{d:"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2",key:"wuwx1p"}]]);var D=a.i(81560),E=a.i(68368),F=a.i(23222);let G={math:{icon:C,className:"bg-blue-100 text-blue-600 dark:bg-blue-500/15 dark:text-blue-300"},english:{icon:y.Languages,className:"bg-emerald-100 text-emerald-600 dark:bg-emerald-500/15 dark:text-emerald-300"},chinese:{icon:t,className:"bg-rose-100 text-rose-600 dark:bg-rose-500/15 dark:text-rose-300"},physics:{icon:s,className:"bg-amber-100 text-amber-600 dark:bg-amber-500/15 dark:text-amber-300"},chemistry:{icon:v,className:"bg-teal-100 text-teal-600 dark:bg-teal-500/15 dark:text-teal-300"},biology:{icon:z,className:"bg-lime-100 text-lime-700 dark:bg-lime-500/15 dark:text-lime-300"},history:{icon:x,className:"bg-orange-100 text-orange-600 dark:bg-orange-500/15 dark:text-orange-300"},geography:{icon:w,className:"bg-cyan-100 text-cyan-600 dark:bg-cyan-500/15 dark:text-cyan-300"},politics:{icon:B,className:"bg-red-100 text-red-600 dark:bg-red-500/15 dark:text-red-300"}},H={icon:q.BookOpen,className:"bg-accent text-accent-foreground"};function I({id:a,name:c,stage:d,subjectKey:f,errorCount:g,onClick:h,onRename:i,onDelete:j,itemLabel:k="items"}){let l=(0,F.resolveNotebookScope)({name:c,stage:d,subjectKey:f}),{icon:m,className:n}=l.subject?G[l.subject]:H;return(0,b.jsxs)("div",{role:"link",tabIndex:0,className:"group relative flex cursor-pointer items-center gap-4 rounded-2xl border bg-card p-4 shadow-sm transition-all hover:-translate-y-0.5 hover:border-primary/40 hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",onClick:h,onKeyDown:a=>{"Enter"===a.key&&h()},children:[(0,b.jsx)("div",{className:`flex h-12 w-12 shrink-0 items-center justify-center rounded-xl ${n}`,children:(0,b.jsx)(m,{className:"h-6 w-6"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"truncate font-semibold",children:c}),(0,b.jsxs)("p",{className:"mt-0.5 flex items-center gap-1.5 text-sm text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium tabular-nums text-foreground",children:g}),k,(0,b.jsx)("span",{className:"text-border",children:"|"}),(0,b.jsx)(E.NotebookScopeLabel,{notebook:{name:c,stage:d,subjectKey:f},className:"truncate"})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100 sm:group-focus-within:opacity-100",children:[i&&(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",onClick:a=>{a.stopPropagation(),i()},children:(0,b.jsx)(A.Pencil,{className:"h-4 w-4"})}),j&&(0,b.jsx)(e.Button,{variant:"ghost",size:"icon-sm",onClick:b=>{b.stopPropagation(),j(a)},children:(0,b.jsx)(D.Trash2,{className:`h-4 w-4 ${g>0?"text-muted-foreground":"text-destructive"}`})})]}),(0,b.jsx)(u.ChevronRight,{className:"hidden h-4 w-4 shrink-0 text-muted-foreground sm:block"})]})}var J=a.i(14574),K=a.i(70430),L=a.i(80701),M=a.i(10302);function N({open:a,onOpenChange:d,onCreate:f}){let[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(F.DEFAULT_NOTEBOOK_STAGE),[k,n]=(0,c.useState)(F.STAGE_SUBJECTS[F.DEFAULT_NOTEBOOK_STAGE][0]),[o,p]=(0,c.useState)(!1),{t:q}=(0,m.useLanguage)(),{stageLabel:r,subjectLabel:s}=(0,E.useNotebookScopeLabels)(),t=async()=>{if(!g.trim())return void M.toast.warning(q.notebooks?.dialog?.enterName||"Please enter notebook name");p(!0);try{await f({name:g.trim(),stage:i,subjectKey:k}),h(""),d(!1)}catch(a){console.error(a)}finally{p(!1)}};return(0,b.jsx)(J.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(J.DialogContent,{children:[(0,b.jsxs)(J.DialogHeader,{children:[(0,b.jsx)(J.DialogTitle,{children:q.notebooks?.dialog?.title||"Create New Notebook"}),(0,b.jsx)(J.DialogDescription,{children:q.notebooks?.dialog?.desc||"Create separate notebooks for different subjects or chapters"})]}),(0,b.jsxs)("div",{className:"space-y-4 py-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(K.Label,{htmlFor:"notebook-stage",children:q.notebooks.dialog.stageLabel}),(0,b.jsxs)(L.Select,{value:i,onValueChange:a=>{j(a),F.STAGE_SUBJECTS[a].includes(k)||n(F.STAGE_SUBJECTS[a][0])},children:[(0,b.jsx)(L.SelectTrigger,{id:"notebook-stage",children:(0,b.jsx)(L.SelectValue,{})}),(0,b.jsx)(L.SelectContent,{children:F.NOTEBOOK_STAGES.map(a=>(0,b.jsx)(L.SelectItem,{value:a,children:r(a)},a))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(K.Label,{htmlFor:"notebook-subject",children:q.notebooks.dialog.subjectLabel}),(0,b.jsxs)(L.Select,{value:k,onValueChange:a=>n(a),children:[(0,b.jsx)(L.SelectTrigger,{id:"notebook-subject",children:(0,b.jsx)(L.SelectValue,{})}),(0,b.jsx)(L.SelectContent,{children:F.STAGE_SUBJECTS[i].map(a=>(0,b.jsx)(L.SelectItem,{value:a,children:s(a)},a))})]})]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:q.notebooks.dialog.scopeHint}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(K.Label,{htmlFor:"name",children:q.notebooks?.dialog?.nameLabel||"Notebook Name"}),(0,b.jsx)(l.Input,{id:"name",placeholder:q.notebooks?.dialog?.placeholder||"e.g. Math, Physics, Chemistry...",value:g,onChange:a=>h(a.target.value),onKeyDown:a=>"Enter"===a.key&&t()})]})]}),(0,b.jsxs)(J.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>d(!1),children:q.common.cancel}),(0,b.jsx)(e.Button,{onClick:t,disabled:o||!g.trim(),children:o?q.notebooks?.dialog?.creating||"Creating...":q.notebooks?.dialog?.create||"Create"})]})]})})}var O=a.i(73556),P=a.i(91938),Q=a.i(74484);a.s(["default",0,function(){let a=(0,d.useRouter)(),{t:i}=(0,m.useLanguage)();(0,Q.usePageTitle)(i.notebooks.title);let[j,k]=(0,c.useState)([]),[l,n]=(0,c.useState)(!0),[o,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null);(0,c.useEffect)(()=>{v()},[]);let v=async()=>{try{let a=await P.apiClient.get("/api/notebooks");k(a)}catch(a){console.error("Failed to fetch notebooks:",a)}finally{n(!1)}},w=async a=>{try{await P.apiClient.post("/api/notebooks",a),await v()}catch(b){console.error(b);let a=b.data?.message||i.notebooks?.createError||"Failed to create";M.toast.error(a)}},x=async a=>{t&&(await P.apiClient.put(`/api/notebooks/${t.id}`,{name:a}),u(null),await v())},y=async(a,b,c)=>{if(b>0)return void M.toast.warning(i.notebooks?.deleteNotEmpty||"Please clear all items in this notebook first.");if(await (0,M.confirmDialog)((i.notebooks?.deleteConfirm||"Are you sure?").replace("{name}",c),{destructive:!0}))try{await P.apiClient.delete(`/api/notebooks/${a}`),await v()}catch(b){console.error(b);let a=b.data?.message||i.notebooks?.deleteError||"Failed to delete";M.toast.error(a)}};return l?(0,b.jsx)(h.PageLoading,{label:i.common.loading}):(0,b.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(g.PageHeader,{title:i.notebooks?.title||"My Notebooks",description:i.notebooks?.subtitle||"Manage your mistakes by subject",actions:(0,b.jsxs)(e.Button,{onClick:()=>s(!0),"aria-label":i.notebooks?.create||"New Notebook",children:[(0,b.jsx)(r.Plus,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:i.notebooks?.create||"New Notebook"})]})}),(0,b.jsx)(p,{}),0===j.length?(0,b.jsx)(f.EmptyState,{icon:q.BookOpen,title:i.notebooks?.empty||"No notebooks yet.",action:(0,b.jsxs)(e.Button,{onClick:()=>s(!0),children:[(0,b.jsx)(r.Plus,{className:"h-4 w-4"}),i.notebooks?.createFirst||"Create Notebook"]})}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:j.map(c=>(0,b.jsx)(I,{id:c.id,name:c.name,stage:c.stage,subjectKey:c.subjectKey,errorCount:c._count?.errorItems||0,onClick:()=>{var b;return b=c.id,void a.push(`/notebooks/${b}`)},onRename:()=>u(c),onDelete:()=>y(c.id,c._count?.errorItems||0,c.name),itemLabel:i.notebooks?.items||"items"},c.id))}),(0,b.jsx)(N,{open:o,onOpenChange:s,onCreate:w},i.common.loading),(0,b.jsx)(O.RenameNotebookDialog,{open:!!t,onOpenChange:a=>{a||u(null)},currentName:t?.name||"",onRename:x})]})})}],32204)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_app_notebooks_page_tsx_1p9src5._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[40777,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(44774),f=a.i(78287),g=a.i(97521),h=a.i(38246),i=a.i(75003),j=a.i(53722),k=a.i(55023),l=a.i(50429),m=a.i(50194);let n=()=>()=>{};function o({notebookCount:a,itemCount:d,targetNotebook:e}){let{t:f,language:g}=(0,m.useLanguage)(),{data:p}=(0,i.useSession)(),q=(0,c.useSyncExternalStore)(n,()=>new Date().getHours(),()=>null),r=null===q?f.common.welcome.replace(/[,,\s]+$/,""):q<12?f.home.greetingMorning:q<18?f.home.greetingAfternoon:f.home.greetingEvening,s=p?.user?.name||p?.user?.email||"";return(0,b.jsxs)("section",{className:"relative overflow-hidden rounded-2xl bg-gradient-to-br from-indigo-600 via-indigo-500 to-violet-500 p-5 text-white shadow-lg shadow-indigo-500/20 md:p-7",children:[(0,b.jsx)("div",{className:"pointer-events-none absolute -right-10 -top-12 h-44 w-44 rounded-full bg-white/10 blur-2xl"}),(0,b.jsx)("div",{className:"pointer-events-none absolute -bottom-16 right-24 h-40 w-40 rounded-full bg-fuchsia-300/20 blur-2xl"}),(0,b.jsxs)("div",{className:"relative flex flex-col gap-5 md:flex-row md:items-end md:justify-between",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("h1",{className:"text-xl font-bold tracking-tight md:text-2xl",children:[r,s&&`${"zh"===g?",":", "}${s}`]}),(0,b.jsx)("p",{className:"max-w-md text-sm text-white/80",children:f.home.heroSubtitle}),e&&(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 rounded-full bg-white/15 px-3 py-1 text-xs font-medium",children:[(0,b.jsx)(l.Target,{className:"h-3.5 w-3.5"}),f.home.targetNotebook.replace("{name}",e)]})]}),(0,b.jsxs)(h.default,{href:"/notebooks",className:"grid grid-cols-2 gap-3 md:w-72",children:[(0,b.jsxs)("div",{className:"rounded-xl bg-white/15 px-4 py-3 backdrop-blur-sm transition-colors hover:bg-white/20",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-white/75",children:[(0,b.jsx)(j.BookOpen,{className:"h-3.5 w-3.5"}),f.home.notebookCount]}),(0,b.jsx)("div",{className:"mt-1 text-2xl font-bold tabular-nums",children:a})]}),(0,b.jsxs)("div",{className:"rounded-xl bg-white/15 px-4 py-3 backdrop-blur-sm transition-colors hover:bg-white/20",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-white/75",children:[(0,b.jsx)(k.ListChecks,{className:"h-3.5 w-3.5"}),f.home.itemCount]}),(0,b.jsx)("div",{className:"mt-1 text-2xl font-bold tabular-nums",children:d})]})]})]})]})}var p=a.i(91938),q=a.i(74484),r=a.i(43542),s=a.i(13513),t=a.i(78823),u=a.i(8406),v=a.i(6376),w=a.i(48106),x=a.i(87410),y=a.i(30534),z=a.i(25320),A=a.i(84535),B=a.i(69808),C=a.i(96319),D=a.i(91119),E=a.i(99570),F=a.i(29246),G=a.i(70430),H=a.i(14548),I=a.i(96221),J=a.i(77156),K=a.i(88767),K=K,L=a.i(87654),M=a.i(93907),N=a.i(99814),O=a.i(50659),P=a.i(80701),Q=a.i(57292),R=a.i(10302);function S({onSubmit:a,defaultNotebookId:d,defaultNotebookName:e,isSaving:f}){let{t:g}=(0,m.useLanguage)(),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(""),[l,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,u]=(0,c.useState)(""),[v,w]=(0,c.useState)("unknown"),[x,y]=(0,c.useState)([]),[z,A]=(0,c.useState)(d||""),[B,C]=(0,c.useState)(""),[T,U]=(0,c.useState)("a"),V=async()=>{if(j.trim()){if(!z)return void R.toast.warning(g.editor.messages?.selectNotebook||"请选择错题本");await a({questionText:j.trim(),answerText:l.trim(),analysis:o.trim(),wrongAnswerText:q.trim(),mistakeAnalysis:s.trim(),mistakeStatus:v,knowledgePoints:x,subjectId:z,gradeSemester:B||void 0,paperLevel:T})}},W=a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),j.trim()&&z&&!f&&V())},X=[{key:"question",label:g.editor?.question||"题目内容",value:j,setter:k,placeholder:"输入题目内容...\n支持 Markdown 和 LaTeX 公式\n\n示例:\n# 题目一\n\n已知 $f(x) = x^2 + 2x + 1$,求 $f(3)$ 的值。\n\n**解题要求:**\n1. 写出解题步骤\n2. 给出最终答案",minHeight:"min-h-[180px]",required:!0},{key:"answer",label:g.editor?.answer||"参考答案",value:l,setter:n,placeholder:"输入参考答案...\n\n示例:\n$f(3) = 3^2 + 2 \\times 3 + 1 = 9 + 6 + 1 = 16$",minHeight:"min-h-[120px]"},{key:"analysis",label:g.editor?.analysis||"解题分析",value:o,setter:p,placeholder:"输入解题分析...\n\n示例:\n这是一个**一元二次函数**求值问题。\n\n将 $x=3$ 代入函数表达式:\n$$f(3) = 3^2 + 2 \\times 3 + 1 = 16$$",minHeight:"min-h-[150px]"},{key:"wrongAnswer",label:g.editor?.wrongAnswerText||"错误解答原文",value:q,setter:r,placeholder:"如果有错误解答可以粘贴在这里,没有可留空",minHeight:"min-h-[100px]"},{key:"mistakeAnalysis",label:g.editor?.mistakeAnalysis||"错因分析",value:s,setter:u,placeholder:"分析错误可能发生在哪一步、为什么错...",minHeight:"min-h-[100px]"}];return(0,b.jsx)(D.Card,{className:"rounded-2xl",children:(0,b.jsxs)(D.CardContent,{className:"p-6 space-y-5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(t.PenLine,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm font-medium",children:"直接录入错题内容(支持 Markdown + LaTeX)"})]}),(0,b.jsxs)(E.Button,{variant:"ghost",size:"sm",onClick:()=>{k(""),n(""),p(""),r(""),u(""),w("unknown"),y([]),C(""),U("a")},disabled:f,className:"text-muted-foreground hover:text-destructive",children:[(0,b.jsx)(L.RotateCcw,{className:"h-4 w-4 mr-1"}),"重置"]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)(G.Label,{children:[g.editor?.selectNotebook||"选择错题本"," *"]}),(0,b.jsx)(O.NotebookSelector,{value:z,onChange:A})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(G.Label,{children:g.editor?.gradeSemester||"年级/学期"}),(0,b.jsx)("input",{type:"text",value:B,onChange:a=>C(a.target.value),placeholder:"如:初二上学期",className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(G.Label,{children:g.editor?.paperLevel||"试卷难度"}),(0,b.jsxs)(P.Select,{value:T,onValueChange:U,children:[(0,b.jsx)(P.SelectTrigger,{children:(0,b.jsx)(P.SelectValue,{})}),(0,b.jsxs)(P.SelectContent,{children:[(0,b.jsx)(P.SelectItem,{value:"a",children:g.editor?.paperLevels?.a||"A卷/基础"}),(0,b.jsx)(P.SelectItem,{value:"b",children:g.editor?.paperLevels?.b||"B卷/提高"}),(0,b.jsx)(P.SelectItem,{value:"other",children:g.editor?.paperLevels?.other||"其他"})]})]})]})]}),X.map(a=>(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)(G.Label,{className:a.required?"text-primary font-semibold":"",children:[a.label," ",a.required&&"*"]}),(0,b.jsx)(E.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>i(h===a.key?null:a.key),disabled:!a.value,children:h===a.key?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(K.default,{className:"h-3 w-3 mr-1"}),"编辑"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(J.Eye,{className:"h-3 w-3 mr-1"}),"预览"]})})]}),h===a.key?(0,b.jsx)("div",{className:`rounded-md border bg-muted/30 p-4 ${a.minHeight} overflow-auto cursor-pointer`,onClick:()=>i(null),children:(0,b.jsx)(M.MarkdownRenderer,{content:a.value})}):(0,b.jsx)(F.Textarea,{value:a.value,onChange:b=>a.setter(b.target.value),onKeyDown:W,placeholder:a.placeholder,className:`${a.minHeight} font-mono text-sm resize-y`,disabled:f})]},a.key)),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(G.Label,{children:g.editor?.mistakeStatus||"作答状态"}),(0,b.jsxs)(P.Select,{value:v,onValueChange:a=>w(a),children:[(0,b.jsx)(P.SelectTrigger,{className:"w-[200px]",children:(0,b.jsx)(P.SelectValue,{})}),(0,b.jsxs)(P.SelectContent,{children:[(0,b.jsx)(P.SelectItem,{value:"not_attempted",children:g.editor?.mistakeStatuses?.notAttempted||"不会做"}),(0,b.jsx)(P.SelectItem,{value:"wrong_attempt",children:g.editor?.mistakeStatuses?.wrongAttempt||"做错了"}),(0,b.jsx)(P.SelectItem,{value:"unknown",children:g.editor?.mistakeStatuses?.unknown||"未判断"})]})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(G.Label,{children:g.editor?.tags||"知识点标签"}),(0,b.jsx)(N.TagInput,{value:x,onChange:y,placeholder:g.editor?.tagsPlaceholder||"输入知识点标签...",enterHint:g.editor?.createTagHint,subject:(0,Q.inferSubjectFromName)(e||null)||void 0}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:g.editor?.tagsHint||"💡 输入时会自动匹配已有标签"})]}),(0,b.jsxs)("div",{className:"flex flex-col items-center gap-2 pt-2",children:[(0,b.jsx)(E.Button,{onClick:V,disabled:!j.trim()||!z||f,className:"w-full bg-gradient-to-r from-indigo-600 to-violet-500 hover:from-indigo-700 hover:to-violet-600 text-white font-medium",size:"lg",children:f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(I.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"保存中..."]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.Save,{className:"mr-2 h-4 w-4"}),"直接保存"]})}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground text-center",children:"填写题目和答案后直接保存,无需 AI 分析 · Ctrl+Enter 快捷保存"})]})]})})}function T(){let[a,h]=(0,c.useState)("upload"),[i,j]=(0,c.useState)("idle"),[k,l]=(0,c.useState)(null),[n,v]=(0,c.useState)(null),{t:D,language:E}=(0,m.useLanguage)();(0,q.usePageTitle)(D.pageTitle.home);let F=(0,d.useSearchParams)(),G=(0,d.useRouter)(),H=F.get("notebook"),[I,J]=(0,c.useState)([]),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(null),[O,P]=(0,c.useState)("image"),[Q,T]=(0,c.useState)(null),[U,V]=(0,c.useState)(!1),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)(null),[$,_]=(0,c.useState)(null),aa=M?.timeouts?.analyze||18e4,ab=aa+1e4;(0,c.useEffect)(()=>()=>{Q&&URL.revokeObjectURL(Q)},[Q]),(0,c.useEffect)(()=>{p.apiClient.get("/api/notebooks").then(a=>J(a)).catch(a=>console.error("Failed to fetch notebooks:",a)),(0,C.fetchConfirmBeforeImport)().then(X),p.apiClient.get("/api/settings").then(a=>{N(a),a.timeouts?.analyze&&y.frontendLogger.info("[Config]","Loaded timeout settings",{analyze:a.timeouts.analyze})}).catch(a=>console.error("Failed to fetch config:",a))},[]),(0,c.useEffect)(()=>{if("idle"===i)return;let a=setTimeout(()=>{y.frontendLogger.warn("[Progress]","处理超时,关闭进度提示",{analysisStep:i,safetyTimeout:ab}),j("idle")},ab);return()=>clearTimeout(a)},[i,ab]);let ac=async a=>{V(!1),ad(new File([a],"cropped-image.jpg",{type:"image/jpeg"}))},ad=async a=>{let b=Date.now();y.frontendLogger.info("[HomeAnalyze]","Starting analysis flow",{timeoutSettings:{apiTimeout:aa,safetyTimeout:ab}});try{y.frontendLogger.info("[HomeAnalyze]","Step 1/5: Compressing image"),j("compressing");let c=await (0,r.processImageFile)(a);v(c),y.frontendLogger.info("[HomeAnalyze]","Image compressed successfully",{size:c.length}),y.frontendLogger.info("[HomeAnalyze]","Step 2/5: Calling API endpoint /api/analyze"),j("analyzing");let d=Date.now(),e=await p.apiClient.post("/api/analyze",{imageBase64:c,language:E,subjectId:H||K||void 0},{timeout:aa}),f=Date.now()-d;if(y.frontendLogger.info("[HomeAnalyze]","API response received, validating data",{apiDuration:f}),!e||"object"!=typeof e)throw y.frontendLogger.error("[HomeAnalyze]","Validation failed - invalid response data",{data:e}),Error("Invalid API response: data is null or not an object");if(y.frontendLogger.info("[HomeAnalyze]","Response data validated successfully"),y.frontendLogger.info("[HomeAnalyze]","开始处理 AI 返回结果"),j("processing"),!W){j("saving");let a=await (0,C.saveParsedQuestion)(e,{subjectId:H,imageUrl:c});Z(a),v(null),y.frontendLogger.info("[HomeAnalyze]","Imported without review",{id:a.id});return}y.frontendLogger.info("[HomeAnalyze]","Step 4/5: Setting parsed data and auto-selecting notebook");let g=JSON.stringify(e).length;if(e.subject){let a=I.find(a=>a.name.includes(e.subject)||e.subject.includes(a.name));a&&(L(a.id),y.frontendLogger.info("[HomeAnalyze]","Auto-selected notebook",{notebook:a.name,subject:e.subject}))}let i=Date.now();l(e);let k=Date.now()-i;y.frontendLogger.info("[HomeAnalyze]","Parsed data set successfully",{dataSize:g,setDataDuration:k}),y.frontendLogger.info("[HomeAnalyze]","Step 5/5: Switching to review page");let m=Date.now();h("review");let n=Date.now()-m;y.frontendLogger.info("[HomeAnalyze]","Step switched to review",{setStepDuration:n});let o=Date.now()-b;y.frontendLogger.info("[HomeAnalyze]","Analysis completed successfully",{totalDuration:o})}catch(c){let a=Date.now()-b;y.frontendLogger.error("[HomeError]","Analysis failed",{errorDuration:a,error:c.message||String(c)});try{let a=D.common?.messages?.analysisFailed||"Analysis failed, please try again",b=c?.data?.message;if(b&&"string"==typeof b)if(D.errors&&"object"==typeof D.errors&&b in D.errors){let c=D.errors[b];"string"==typeof c&&(a=c,y.frontendLogger.info("[HomeError]",`Matched error type: ${b}`,{errorMessage:a}))}else a=b,y.frontendLogger.info("[HomeError]","Using backend error message",{errorMessage:a});else c?.message&&(c.message.includes("fetch")||c.message.includes("network")?a=D.errors?.AI_CONNECTION_FAILED||"网络连接失败":"string"==typeof c.data&&(y.frontendLogger.info("[HomeError]","Raw error data",{errorDataPreview:c.data.substring(0,100)}),a+=` (${c.status||"Error"})`));R.toast.error(a)}catch(a){y.frontendLogger.error("[HomeError]","Failed to process error message",{innerError:String(a)}),R.toast.error("Analysis failed. Please try again.")}}finally{y.frontendLogger.info("[HomeAnalyze]","Finally: Resetting analysis state to idle"),j("idle"),y.frontendLogger.info("[HomeAnalyze]","Analysis state reset complete")}},ae=async a=>{y.frontendLogger.info("[HomeSave]","Starting save process",{hasQuestionText:!!a.questionText,hasAnswerText:!!a.answerText,subjectId:a.subjectId,knowledgePointsCount:a.knowledgePoints?.length||0,hasImage:!!n,imageSize:n?.length||0});try{let b=await p.apiClient.post("/api/error-items",{...a,originalImageUrl:n||""});b.duplicate&&y.frontendLogger.info("[HomeSave]","Duplicate submission detected, using existing record"),y.frontendLogger.info("[HomeSave]","Save successful"),h("upload"),l(null),v(null),R.toast.success(b.duplicate?D.importFlow.duplicate:D.common.messages.saveSuccess),b.duplicate?G.push(`/error-items/${b.id}`):a.subjectId&&G.push(`/notebooks/${a.subjectId}`)}catch(a){y.frontendLogger.error("[HomeSave]","Save failed",{errorStatus:a?.status,errorMessage:a?.data?.message||a?.message||String(a),errorData:a?.data}),R.toast.error(D.common?.messages?.saveFailed||"Failed to save")}},af=async a=>{let b=Date.now();y.frontendLogger.info("[HomeTextSubmit]","Starting text-based analysis",{textLength:a.length});try{j("analyzing");let c=H||K,d=c?I.find(a=>a.id===c):void 0,e=await p.apiClient.post("/api/reanswer",{questionText:a,language:E,subject:d?.name||void 0,subjectId:d?.id},{timeout:aa});j("processing");let f={questionText:a,answerText:e.answerText,analysis:e.analysis,knowledgePoints:e.knowledgePoints||[],wrongAnswerText:e.wrongAnswerText||"",mistakeAnalysis:e.mistakeAnalysis||"",mistakeStatus:e.mistakeStatus||"unknown",subject:e.subject||"其他",requiresImage:!1,difficultyStars:e.difficultyStars??null};if(!W){j("saving");let a=await (0,C.saveParsedQuestion)(f,{subjectId:H,imageUrl:null});Z(a);return}v(null),l(f),h("review");let g=Date.now()-b;y.frontendLogger.info("[HomeTextSubmit]","Text analysis completed",{totalDuration:g})}catch(c){let a=Date.now()-b;y.frontendLogger.error("[HomeTextSubmit]","Analysis failed",{errorDuration:a,error:c.message||String(c)});try{let a=D.common?.messages?.analysisFailed||"Analysis failed, please try again",b=c?.data?.message;if(b&&"string"==typeof b)if(D.errors&&"object"==typeof D.errors&&b in D.errors){let c=D.errors[b];"string"==typeof c&&(a=c)}else a=b;R.toast.error(a)}catch{R.toast.error("Analysis failed. Please try again.")}}finally{j("idle")}},ag=async a=>{y.frontendLogger.info("[HomeDirectSave]","Starting direct save",{hasQuestionText:!!a.questionText,hasAnswerText:!!a.answerText,subjectId:a.subjectId});try{j("saving");let b=await p.apiClient.post("/api/error-items",{questionText:a.questionText,answerText:a.answerText,analysis:a.analysis,wrongAnswerText:a.wrongAnswerText||null,mistakeAnalysis:a.mistakeAnalysis||null,mistakeStatus:a.mistakeStatus||"unknown",knowledgePoints:a.knowledgePoints,subjectId:a.subjectId,gradeSemester:a.gradeSemester,paperLevel:a.paperLevel,originalImageUrl:""});b.duplicate&&y.frontendLogger.info("[HomeDirectSave]","Duplicate detected"),y.frontendLogger.info("[HomeDirectSave]","Save successful"),j("idle"),R.toast.success(b.duplicate?D.importFlow.duplicate:D.common.messages.saveSuccess),b.duplicate?G.push(`/error-items/${b.id}`):a.subjectId&&G.push(`/notebooks/${a.subjectId}`)}catch(a){y.frontendLogger.error("[HomeDirectSave]","Save failed",{errorStatus:a?.status,errorMessage:a?.data?.message||a?.message||String(a)}),j("idle"),R.toast.error(D.common?.messages?.saveFailed||"Failed to save")}},ah=H||K,ai=ah?I.find(a=>a.id===ah)?.name:void 0,aj=I.reduce((a,b)=>a+(b._count?.errorItems||0),0),ak=[{value:"image",icon:s.Camera,label:D.app?.uploadImage||"拍照上传"},{value:"text",icon:u.Sparkles,label:D.app?.manualInput||"AI解题"},{value:"direct",icon:t.PenLine,label:D.app?.directInput||"直接录入"}];return(0,b.jsxs)("main",{className:"min-h-screen",children:[(0,b.jsx)(w.ProgressFeedback,{status:i}),(0,b.jsxs)("div",{className:`mx-auto space-y-6 px-4 py-6 md:px-8 md:py-8 ${"review"===a?"max-w-6xl":"max-w-4xl"}`,children:["upload"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(o,{notebookCount:I.length,itemCount:aj,targetNotebook:H?ai:void 0}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(x.SegmentedControl,{options:ak,value:O,onChange:P}),Y&&(0,b.jsx)(A.ImportResultBanner,{imported:Y,onDismiss:()=>Z(null)}),$?(0,b.jsx)(B.BatchImportPanel,{blobs:$,subjectId:H,timeout:aa,onClose:()=>_(null)}):"image"===O?(0,b.jsx)(e.UploadZone,{onImageSelect:a=>{Z(null),T(URL.createObjectURL(a)),V(!0)},isAnalyzing:"idle"!==i}):"text"===O?(0,b.jsx)(z.TextInputZone,{onSubmit:af,isAnalyzing:"idle"!==i,defaultNotebookName:ai}):(0,b.jsx)(S,{onSubmit:ag,defaultNotebookId:ah||void 0,defaultNotebookName:ai,isSaving:"saving"===i})]})]}),Q&&(0,b.jsx)(g.ImageCropper,{imageSrc:Q,open:U,onClose:()=>V(!1),onCropComplete:ac,onMultiCropComplete:a=>{V(!1),Z(null),_(a)}}),"review"===a&&k&&(0,b.jsx)(f.CorrectionEditor,{initialData:k,onSave:ae,onCancel:()=>h("upload"),imagePreview:n,initialSubjectId:H||K||void 0,aiTimeout:aa})]})]})}a.s(["default",0,function(){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(v.PageLoading,{}),children:(0,b.jsx)(T,{})})}],40777)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_app_page_tsx_1chiuah._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[24324,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(99570),f=a.i(91119),g=a.i(96221),h=a.i(69520),i=a.i(16201),j=a.i(77156);let k=(0,a.i(70106).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var l=a.i(62722),m=a.i(210),n=a.i(50194),o=a.i(74484),p=a.i(29246),q=a.i(66718),r=a.i(93907),s=a.i(91938),t=a.i(38246),u=a.i(14548),v=a.i(26897),w=a.i(30534);function x({errorItemId:a,suggested:d,question:h,difficulty:j}){let{t:k}=(0,n.useLanguage)(),[l,m]=(0,c.useState)(d),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(!1),[y,z]=(0,c.useState)(null),A=async()=>{if(l){p(!0),z(null);try{await s.apiClient.post("/api/practice/record",{errorItemId:a,result:l,difficulty:j,subject:h.subject||null,questionText:h.questionText,answerText:h.answerText,analysis:h.analysis,figureSvg:h.figureSvg??null}),r(!0)}catch(a){w.frontendLogger.error("[Practice]","Failed to save practice result",{error:a instanceof Error?a.message:String(a)}),z(k.mastery.resultSaveFailed)}finally{p(!1)}}};return(0,b.jsxs)(f.Card,{className:q?"border-green-500":"border-primary/40",children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsx)(f.CardTitle,{className:"text-base",children:k.mastery.markResult})}),(0,b.jsxs)(f.CardContent,{className:"space-y-3",children:[(0,b.jsx)(v.PracticeResultPicker,{value:l,onChange:m,disabled:q||o}),d&&!q&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:k.mastery.suggested}),q?(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 text-sm text-green-700",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.CheckCircle,{className:"h-4 w-4"}),k.mastery.resultSaved]}),(0,b.jsx)(t.default,{href:`/error-items/${a}`,className:"text-primary hover:underline sm:ml-auto",children:k.mastery.viewQuestion})]}):(0,b.jsxs)(e.Button,{onClick:A,disabled:!l||o,className:"w-full sm:w-auto",children:[o?(0,b.jsx)(g.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,b.jsx)(u.Save,{className:"mr-2 h-4 w-4"}),k.mastery.saveResult]}),y&&(0,b.jsx)("p",{className:"text-sm text-destructive",children:y})]})]})}var y=a.i(18943);function z(){let a=(0,d.useSearchParams)(),t=(0,d.useRouter)(),u=a.get("id"),{t:v,language:z}=(0,n.useLanguage)();(0,o.usePageTitle)(v.practice.title);let[A,B]=(0,c.useState)(null),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)(!1),[M,N]=(0,c.useState)(null),[O,P]=(0,c.useState)("medium"),[Q,R]=(0,c.useState)(0),[S,T]=(0,c.useState)(null);(0,c.useEffect)(()=>{s.apiClient.get("/api/settings").then(a=>{T(a),a.timeouts?.analyze&&w.frontendLogger.info("[Config]","Loaded timeout settings",{analyze:a.timeouts.analyze})}).catch(a=>console.error(a))},[]);let[U,V]=(0,c.useState)("medium"),[W,X]=(0,c.useState)(null),Y=async()=>{if(u){D(!0),X(null),H(""),J(""),L(!1),N(null),F(!1);try{let a=S?.timeouts?.analyze||18e4;w.frontendLogger.info("[Practice]","Generating question",{timeout:a});let b=await s.apiClient.post("/api/practice/generate",{errorItemId:u,language:z,difficulty:U},{timeout:a});B(b),P(U),R(a=>a+1)}catch(c){console.error(c);let a=c.data?.message||"",b=v.practice.errors?.default||"Failed to generate";a.includes("AI_CONNECTION_FAILED")?b=v.errors?.aiConnectionFailed||b:a.includes("AI_RESPONSE_ERROR")?b=v.errors?.aiResponseError||b:a.includes("AI_AUTH_ERROR")?b=v.errors?.aiAuth||b:a.includes("AI_OUTPUT_TRUNCATED")?b=v.errors?.AI_OUTPUT_TRUNCATED||b:a.includes("AI_UNKNOWN_ERROR")&&(b=v.errors?.AI_UNKNOWN_ERROR||b),X(b)}finally{D(!1)}}};return u?(0,b.jsxs)("div",{className:"max-w-3xl mx-auto space-y-8",children:[(0,b.jsx)("div",{className:"flex justify-between items-center mb-4",children:(0,b.jsxs)(e.Button,{variant:"ghost",onClick:()=>t.back(),children:[(0,b.jsx)(m.ArrowLeft,{className:"mr-2 h-4 w-4"}),v.common?.back||"返回"]})}),(0,b.jsxs)("div",{className:"text-center space-y-4",children:[(0,b.jsx)("h1",{className:"text-3xl font-bold",children:v.practice.title}),(0,b.jsx)("p",{className:"text-muted-foreground",children:v.practice.subtitle}),W&&(0,b.jsxs)("div",{className:"relative rounded-xl border border-destructive/30 bg-destructive/10 px-4 py-3 text-destructive",role:"alert",children:[(0,b.jsxs)("strong",{className:"font-bold",children:[v.common?.error||"Error",": "]}),(0,b.jsxs)("span",{className:"block whitespace-pre-wrap",children:[" ",W]})]}),!A&&(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 bg-muted/50 p-2 rounded-lg",children:[(0,b.jsxs)("span",{className:"text-sm font-medium text-muted-foreground",children:[v.practice.difficulty?.label||"Difficulty",":"]}),(0,b.jsx)("div",{className:"flex gap-1",children:[{value:"easy",label:v.practice.difficulty?.easy||"Easy",color:"bg-green-100 text-green-700 hover:bg-green-200"},{value:"medium",label:v.practice.difficulty?.medium||"Medium",color:"bg-blue-100 text-blue-700 hover:bg-blue-200"},{value:"hard",label:v.practice.difficulty?.hard||"Hard",color:"bg-orange-100 text-orange-700 hover:bg-orange-200"},{value:"harder",label:v.practice.difficulty?.harder||"Challenge",color:"bg-red-100 text-red-700 hover:bg-red-200"}].map(a=>(0,b.jsx)("button",{onClick:()=>V(a.value),className:`px-3 py-1.5 rounded-md text-sm font-medium transition-colors ${U===a.value?a.color.replace("bg-","bg-opacity-100 bg-").replace("text-","ring-2 ring-offset-1 ring-"):"bg-transparent hover:bg-muted text-muted-foreground"} ${U===a.value?a.color:""}`,children:a.label},a.value))})]}),(0,b.jsx)(e.Button,{size:"lg",onClick:Y,disabled:C,children:C?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),v.practice.generating]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RefreshCw,{className:"mr-2 h-4 w-4"}),v.practice.generate]})})]})]}),A&&(0,b.jsxs)("div",{className:"space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500",children:[(0,b.jsxs)(f.Card,{className:"border-primary/50 shadow-lg",children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsxs)(f.CardTitle,{className:"flex justify-between items-center",children:[(0,b.jsx)("span",{children:v.app.practiceProblem}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("select",{value:U,onChange:a=>V(a.target.value),className:"h-8 text-xs border rounded px-2 bg-background",disabled:C,children:[(0,b.jsx)("option",{value:"easy",children:v.practice.difficulty?.easy||"Easy"}),(0,b.jsx)("option",{value:"medium",children:v.practice.difficulty?.medium||"Medium"}),(0,b.jsx)("option",{value:"hard",children:v.practice.difficulty?.hard||"Hard"}),(0,b.jsx)("option",{value:"harder",children:v.practice.difficulty?.harder||"Challenge"})]}),(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",onClick:Y,disabled:C,children:C?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),v.practice.generating]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.RefreshCw,{className:"mr-2 h-4 w-4"}),v.practice.regenerate]})})]})]})}),(0,b.jsxs)(f.CardContent,{children:[(0,b.jsx)(r.MarkdownRenderer,{content:A.questionText,className:"font-medium"}),(0,b.jsx)(y.QuestionFigure,{svg:A.figureSvg})]})]}),(0,b.jsxs)(f.Card,{className:"border-blue-200",children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsx)(f.CardTitle,{className:"text-blue-600",children:v.app.yourAnswer||"你的答案"})}),(0,b.jsxs)(f.CardContent,{className:"space-y-4",children:[(0,b.jsx)(q.Input,{placeholder:v.app.answerPlaceholder||"输入你的答案...",value:G,onChange:a=>H(a.target.value),disabled:K,className:"text-lg"}),(0,b.jsx)(p.Textarea,{placeholder:v.app.notesPlaceholder||"记录解题思路(可选)...",value:I,onChange:a=>J(a.target.value),disabled:K,rows:3})]})]}),K?null===M?null:(0,b.jsx)(f.Card,{className:M?"border-green-500 bg-green-50":"border-red-500 bg-red-50",children:(0,b.jsxs)(f.CardContent,{className:"pt-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-3 mb-4",children:M?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.CheckCircle,{className:"h-8 w-8 text-green-600"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-xl font-bold text-green-600",children:v.practice.correct||"回答正确!"}),(0,b.jsx)("p",{className:"text-green-700",children:v.practice.correctMessage||"太棒了,继续保持!"})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.XCircle,{className:"h-8 w-8 text-red-600"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-xl font-bold text-red-600",children:v.practice.incorrect||"答案有误"}),(0,b.jsx)("p",{className:"text-red-700",children:v.practice.incorrectMessage||"再看看解析,加油!"})]})]})}),I&&(0,b.jsxs)("div",{className:"mt-4 p-3 bg-white rounded-lg border",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-gray-600 mb-1",children:v.practice.yourNotes||"你的笔记:"}),(0,b.jsx)("p",{className:"text-gray-700 whitespace-pre-wrap",children:I})]})]})}):(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row justify-center gap-2",children:[(0,b.jsxs)(e.Button,{size:"lg",onClick:()=>{if(!G.trim()||!A)return;L(!0);let a=a=>a.trim().toLowerCase().replace(/[.,;!]/g,""),b=a(G),c=a(A.answerText),d=b===c;!d&&/^[a-d]$/.test(b)&&(d=c.startsWith(b)),!d&&c.includes(b)&&b.length>1&&(d=!0),N(d),F(!0)},disabled:!G.trim(),className:"w-full md:w-auto",children:[(0,b.jsx)(k,{className:"mr-2 h-4 w-4"}),v.app.submitAnswer||"提交答案"]}),(0,b.jsxs)(e.Button,{size:"lg",variant:"outline",onClick:()=>{L(!0),N(null),F(!0)},className:"w-full md:w-auto",children:[(0,b.jsx)(j.Eye,{className:"mr-2 h-4 w-4"}),v.practice.checkAnswer||"查看答案"]})]}),E&&(0,b.jsxs)("div",{className:"space-y-6 animate-in fade-in slide-in-from-top-2",children:[(0,b.jsx)(x,{errorItemId:u,suggested:null===M?null:M?"correct":"wrong",question:A,difficulty:O},Q),(0,b.jsxs)(f.Card,{className:"bg-muted/50",children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsx)(f.CardTitle,{className:"text-green-600",children:v.practice.correctAnswer})}),(0,b.jsx)(f.CardContent,{children:(0,b.jsx)(r.MarkdownRenderer,{content:A.answerText,className:"font-bold"})})]}),(0,b.jsxs)(f.Card,{children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsx)(f.CardTitle,{children:v.practice.detailedAnalysis})}),(0,b.jsx)(f.CardContent,{className:"space-y-4",children:(0,b.jsx)(r.MarkdownRenderer,{content:A.analysis})})]})]})]})]}):(0,b.jsx)("div",{className:"p-8 text-center",children:v.practice.invalidRequest||"Invalid Request"})}a.s(["default",0,function(){return(0,b.jsx)("main",{className:"min-h-screen px-4 py-6 md:px-8 md:py-8",children:(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"flex justify-center p-8",children:(0,b.jsx)(g.Loader2,{className:"h-8 w-8 animate-spin text-muted-foreground"})}),children:(0,b.jsx)(z,{})})})},"dynamic",0,"force-dynamic"],24324)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_app_practice_page_tsx_10gnx53._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[15609,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50194),e=a.i(74484),f=a.i(91119),g=a.i(86304),h=a.i(75083),i=a.i(24669),j=a.i(15618),k=a.i(81560),l=a.i(5784),m=a.i(50522),n=a.i(96221),o=a.i(99570),p=a.i(51538),q=a.i(66718),r=a.i(80701),s=a.i(91938),t=a.i(10302);let u=[{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:v}=(0,d.useLanguage)();(0,e.usePageTitle)(v.tags.title);let[w,x]=(0,c.useState)([]),[y,z]=(0,c.useState)(!0),[A,B]=(0,c.useState)({math:null,english:null,physics:null,chemistry:null,biology:null,chinese:null,history:null,geography:null,politics:null}),[C,D]=(0,c.useState)([]),[E,F]=(0,c.useState)("math"),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)([]),[K,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(!1),[O,P]=(0,c.useState)({}),Q=(0,c.useCallback)(async a=>{try{let b=await s.apiClient.get(`/api/tags?subject=${a}`);B(c=>({...c,[a]:b.tags}))}catch(b){console.error(`Failed to fetch ${a} tags:`,b)}},[]),R=(0,c.useCallback)(async()=>{try{let a=[];for(let{key:b}of u){let c=(await s.apiClient.get(`/api/tags?subject=${b}&flat=true`)).tags.filter(a=>!a.isSystem).map(a=>({...a,subject:b}));a.push(...c)}D(a)}catch(a){console.error("Failed to fetch custom tags:",a)}},[]),S=async()=>{try{let a=await s.apiClient.get("/api/tags/stats");x(a.stats)}catch(a){console.error("Failed to fetch tag stats:",a)}finally{z(!1)}};(0,c.useEffect)(()=>{S(),R(),Q("math")},[Q,R]),(0,c.useEffect)(()=>{(async()=>{try{let a=(await s.apiClient.get(`/api/tags?subject=${E}`)).tags.filter(a=>a.isSystem).map(a=>({id:a.id,name:a.name}));J(a),H("")}catch(a){console.error("Failed to fetch grades:",a),J([])}})()},[E]);let T=async()=>{if(!K.trim())return void t.toast.warning(v.tags?.custom?.enterName||"Please enter tag name");N(!0);try{await s.apiClient.post("/api/tags",{name:K.trim(),subject:E,parentId:G&&"none"!==G?G:void 0}),L(""),await R(),await Q(E),t.toast.success(v.tags?.custom?.success||"Tag added successfully!")}catch(a){a?.message?.includes("409")?t.toast.warning(v.tags?.custom?.exists||"Tag already exists"):t.toast.error("Failed to add tag")}finally{N(!1)}},U=async(a,b,c)=>{if(await (0,t.confirmDialog)((v.tags?.custom?.deleteConfirm||'Are you sure you want to delete tag "{tag}"?').replace("{tag}",b),{destructive:!0}))try{await s.apiClient.delete(`/api/tags?id=${a}`),await R(),await Q(c)}catch(a){console.error("Failed to delete tag:",a),t.toast.error("Failed to delete tag")}},V=a=>{P(b=>({...b,[a]:!b[a]}))},W=(a,c=0,d=!1)=>{let e=a.children.length>0,f=O[a.id],h=16*c;if(!e){let c;return(0,b.jsxs)(g.Badge,{variant:"outline",className:"cursor-default hover:bg-accent",style:{marginLeft:d?0:h},children:[a.name,(c=w.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:()=>V(a.id),children:[f?(0,b.jsx)(l.ChevronDown,{className:"h-4 w-4"}):(0,b.jsx)(m.ChevronRight,{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:()=>V(a.id),children:[f?(0,b.jsx)(l.ChevronDown,{className:"h-4 w-4"}):(0,b.jsx)(m.ChevronRight,{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=>W(a,0,!0))}):(0,b.jsx)("div",{className:"space-y-2 pl-6",children:i.map(a=>W(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.PageHeader,{title:v.tags?.title||"Tag Management",description:v.tags?.subtitle||"View and manage knowledge point tags"}),(0,b.jsxs)(h.Tabs,{defaultValue:"standard",className:"w-full",children:[(0,b.jsxs)(h.TabsList,{className:"grid w-full grid-cols-3 mb-6",children:[(0,b.jsx)(h.TabsTrigger,{value:"standard",children:v.tags?.tabs?.standard||"Standard Tags"}),(0,b.jsx)(h.TabsTrigger,{value:"custom",children:v.tags?.tabs?.custom||"Custom Tags"}),(0,b.jsx)(h.TabsTrigger,{value:"stats",children:v.tags?.tabs?.stats||"Usage Statistics"})]}),(0,b.jsx)(h.TabsContent,{value:"standard",className:"space-y-4",children:(0,b.jsx)(b.Fragment,{children:u.map(({key:a,name:c})=>{let d=v.tags?.subjects?.[a]||c,e=O[`subject-${a}`],g=A[a];return(0,b.jsxs)(f.Card,{className:"mb-4",children:[(0,b.jsxs)(f.CardHeader,{className:"cursor-pointer hover:bg-muted/50 transition-colors flex flex-row items-center justify-between py-4",onClick:()=>{V(`subject-${a}`),null===g&&Q(a)},children:[(0,b.jsxs)(f.CardTitle,{className:"text-lg flex items-center gap-2",children:[e?(0,b.jsx)(l.ChevronDown,{className:"h-5 w-5"}):(0,b.jsx)(m.ChevronRight,{className:"h-5 w-5"}),d]}),(0,b.jsx)("span",{className:"text-sm text-muted-foreground",children:e?v.common?.collapse||"Collapse":v.common?.expand||"Expand"})]}),e&&(0,b.jsx)(f.CardContent,{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.Loader2,{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:v.tags?.stats?.empty||"暂无系统标签"}):g.filter(a=>a.isSystem).map(a=>W(a))})]},a)})})}),(0,b.jsx)(h.TabsContent,{value:"custom",children:(a=C.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.Card,{children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsx)(f.CardTitle,{children:v.tags?.custom?.addTitle||"Add Custom Tag"})}),(0,b.jsxs)(f.CardContent,{children:[(0,b.jsxs)("div",{className:"flex gap-3 flex-wrap",children:[(0,b.jsxs)(r.Select,{value:E,onValueChange:a=>F(a),children:[(0,b.jsx)(r.SelectTrigger,{className:"w-[120px]",children:(0,b.jsx)(r.SelectValue,{})}),(0,b.jsx)(r.SelectContent,{children:u.map(({key:a,name:c})=>(0,b.jsx)(r.SelectItem,{value:a,children:v.tags?.subjects?.[a]||c},a))})]}),(0,b.jsxs)(r.Select,{value:G,onValueChange:H,children:[(0,b.jsx)(r.SelectTrigger,{className:"w-[140px]",children:(0,b.jsx)(r.SelectValue,{placeholder:v.tags?.custom?.selectGrade||"选择年级"})}),(0,b.jsxs)(r.SelectContent,{children:[(0,b.jsx)(r.SelectItem,{value:"none",children:v.tags?.custom?.noGrade||"不选择年级"}),I.map(a=>(0,b.jsx)(r.SelectItem,{value:a.id,children:a.name},a.id))]})]}),(0,b.jsx)(q.Input,{placeholder:v.tags?.custom?.placeholder||"Enter tag name...",value:K,onChange:a=>L(a.target.value),onKeyDown:a=>"Enter"===a.key&&T(),className:"flex-1 min-w-[200px]"}),(0,b.jsxs)(o.Button,{onClick:T,disabled:M,children:[M?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 mr-1 animate-spin"}):(0,b.jsx)(j.Plus,{className:"h-4 w-4 mr-1"}),v.tags?.custom?.add||"Add"]})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:v.tags?.custom?.hint||"💡 Custom tags will automatically appear in tag suggestions"})]})]}),0===C.length?(0,b.jsx)(f.Card,{children:(0,b.jsx)(f.CardContent,{className:"py-12 text-center text-muted-foreground",children:v.tags?.custom?.empty||"No custom tags yet, click above to add!"})}):u.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.Card,{children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsxs)(f.CardTitle,{className:"text-lg",children:[v.tags?.subjects?.[c]||d," (",e.length,")"]})}),(0,b.jsx)(f.CardContent,{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:"其他"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:h[a].map(a=>(0,b.jsxs)(g.Badge,{variant:"secondary",className:"px-3 py-1.5 text-sm",children:[a.name,(0,b.jsx)("button",{onClick:()=>U(a.id,a.name,c),className:"ml-2 hover:text-destructive transition-colors",title:v.common?.delete||"Delete",children:(0,b.jsx)(k.Trash2,{className:"h-3 w-3"})})]},a.id))})]},a))})]},c)})]}))}),(0,b.jsx)(h.TabsContent,{value:"stats",children:(()=>{if(y)return(0,b.jsx)("div",{className:"text-center py-8",children:v.tags?.stats?.loading||"Loading..."});if(0===w.length)return(0,b.jsx)("div",{className:"text-center py-8 text-muted-foreground",children:v.tags?.stats?.empty||"No tag usage records yet"});let a=w[0]?.count||1;return(0,b.jsxs)(f.Card,{children:[(0,b.jsx)(f.CardHeader,{children:(0,b.jsxs)(f.CardTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(i.TrendingUp,{className:"h-5 w-5"}),v.tags?.stats?.frequency||"Tag Usage Frequency (Top 20)"]})}),(0,b.jsx)(f.CardContent,{className:"space-y-3",children:w.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," ",v.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_1h2vkk4._.js.map
|