wrong-notebook 2026.10.22 → 2026.10.25-1
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 +0 -2
- package/.next/build-manifest.json +208 -9
- package/.next/prerender-manifest.json +4 -4
- package/.next/required-server-files.json +16 -1
- package/.next/routes-manifest.json +0 -14
- 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 -9
- 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 -8
- 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 +10 -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 +19 -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 +20 -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 +20 -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/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/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/manifest.webmanifest.body +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/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 +0 -2
- 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-g6zoywy7s9r._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0-i5scl3dk6sv._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0-odhmcsbillm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__003ii50e63ws5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__02izfhede1ge6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04k4sy605shy8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__082k83j3p6okz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__08p0s4r9g87cn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_a858mm6ofp3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_t7bbz2btvts._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0a-kmd7e0p8db._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0an9s6-nn3kpq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0b6q7yr-sfcet._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0g-kb21pws7qu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0hbqxdkp_1j_7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0hjv7gm7tjgzr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0kva0deskq80y._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0l7y2xk1m7h84._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0l9qwcb4i27ui._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ld-3rbaj1m8-._.js +56 -0
- package/.next/server/chunks/[root-of-the-server]__0majzhfobp3nf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0mc5h4iz6ua87._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0nrxl8lqbzwov._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0nzkvmeik_rk5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0pqggfowif112._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0qvrt0t4xthie._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rbqws43qszln._.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]__0ssrmihfi_u6m._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0w2rkt8xlhqw8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ycg3q_q562tz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ystefe8_e0es._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0zjg773epx4r_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__122xu-0xjk0q5._.js +32 -0
- package/.next/server/chunks/[root-of-the-server]__139pkgh2w4wv7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__13fue_8ln57sk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__14-kwm6jhtwo2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15nya_6vffdj1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15s-n6e06wf6g._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__15tkoe60wvpdf._.js +10 -0
- package/.next/server/chunks/[root-of-the-server]__17rozs-xk_dqd._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__17xqc8-y_hmhm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18j9-n7s671bt._.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]__1_kq0iosz0cgh._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1a8nqxs0k1ue0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1biigyx-bi52y._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bmd4mech7kzj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bswuhivogp5u._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1e_3xwt459gzy._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1epfgldsr-ls5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1fc23i58z_ao2._.js +122 -0
- package/.next/server/chunks/[root-of-the-server]__1hejjxeb6bmtm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1iydd43toz2hx._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1j6jbtj3gauq_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jfwn22nquvq-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jtd2ara5taim._.js +6 -0
- package/.next/server/chunks/[root-of-the-server]__1k73w0dqrm6gg._.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]__1msj6a3i2of1g._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1nmtv65uajre3._.js +10 -0
- package/.next/server/chunks/[root-of-the-server]__1q6zz6-dwz42t._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1qv23loqhxkcf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1rcitv6tfajfz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1tczl61nfeymj._.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]__1vj-su-vkz4ng._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vw740yzcybw7._.js +32 -0
- package/.next/server/chunks/[root-of-the-server]__1y_u-tq43pxmc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1yva3qsip39_n._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1zyka21s1ahtj._.js +3 -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/_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/_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/_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/_14tz_k9desx4n._.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_1ztwxhx.js → _next-internal_server_app_api_admin_migrate-tags_route_actions_1ztwxhxi2qsxd.js} +1 -1
- package/.next/server/chunks/{_next-internal_server_app_api_admin_system-reset_route_actions_15aselt.js → _next-internal_server_app_api_admin_system-reset_route_actions_15aseltajrio-.js} +1 -1
- package/.next/server/chunks/{_next-internal_server_app_api_admin_users_[id]_route_actions_1hhpuc4.js → _next-internal_server_app_api_admin_users_[id]_route_actions_1hhpuc4kr8kus.js} +1 -1
- 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_1cjux7z.js → _next-internal_server_app_api_error-items_[id]_notes_route_actions_1cjux7zwbv-yr.js} +1 -1
- 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_1v3vhi4.js → _next-internal_server_app_api_exams_[id]_results_route_actions_1v3vhi4cjl6y6.js} +1 -1
- 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_zhtj.js → _next-internal_server_app_api_exams_route_actions_1c_zhtjquazbz.js} +2 -2
- package/.next/server/chunks/{_next-internal_server_app_api_export_route_actions_0lpcnjc.js → _next-internal_server_app_api_export_route_actions_0lpcnjc9jg57-.js} +2 -2
- 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_1ryftkb.js → _next-internal_server_app_api_health_route_actions_1ryftkbeskq31.js} +2 -2
- package/.next/server/chunks/{_next-internal_server_app_api_import_route_actions_20ko04x.js → _next-internal_server_app_api_import_route_actions_20ko04xh42fpe.js} +2 -2
- 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_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_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_1nb9ma2.js → _next-internal_server_app_api_tags_route_actions_1nb9ma2pi6m41.js} +2 -2
- 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_.js → _next-internal_server_app_api_tasks_route_actions_123tq1_b3dlgw.js} +2 -2
- package/.next/server/chunks/{_next-internal_server_app_api_user_route_actions_1k-4clg.js → _next-internal_server_app_api_user_route_actions_1k-4clgaupijh.js} +1 -1
- package/.next/server/chunks/{_next-internal_server_app_api_version_route_actions_0kbx30h.js → _next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js} +1 -1
- 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_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_0z36zms._.js → src_lib_ai_prompts_ts_0z36zms4djibp._.js} +52 -51
- 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]__0ujgpq398o2w1._.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]__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]__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/_04qlm-w8tebyc._.js +3 -0
- package/.next/server/chunks/ssr/_065hikzgj3xg_._.js +3 -0
- package/.next/server/chunks/ssr/_08fq-uch-l1g6._.js +8 -0
- package/.next/server/chunks/ssr/_0bsjhzelppbjh._.js +3 -0
- package/.next/server/chunks/ssr/_0h6qsip9mphaq._.js +3 -0
- package/.next/server/chunks/ssr/_0lloy6tp9ov8e._.js +3 -0
- package/.next/server/chunks/ssr/_0pxsg9p6gub85._.js +3 -0
- package/.next/server/chunks/ssr/_0t2jed64ec8vu._.js +3 -0
- package/.next/server/chunks/ssr/_0xey1vceqp1wd._.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/_17igtpd3u0nhq._.js +3 -0
- package/.next/server/chunks/ssr/_19zbvpk25l83u._.js +3 -0
- package/.next/server/chunks/ssr/_1b9b1aq5b_1sj._.js +3 -0
- package/.next/server/chunks/ssr/_1cl6e0rtwi75o._.js +3 -0
- package/.next/server/chunks/ssr/_1em_7aul52rb4._.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/_1wfh-5dxhj11n._.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_0pt47yr.js → _next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js} +2 -2
- package/.next/server/chunks/ssr/{_next-internal_server_app_admin_page_actions_1mcickz.js → _next-internal_server_app_admin_page_actions_1mcickzfofbmo.js} +2 -2
- 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_1kushg5.js → _next-internal_server_app_exams_[id]_page_actions_1kushg5crt5ed.js} +1 -1
- 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-.js → _next-internal_server_app_exams_page_actions_0av69f-jb4_80.js} +2 -2
- package/.next/server/chunks/ssr/{_next-internal_server_app_login_page_actions_04fnjo0.js → _next-internal_server_app_login_page_actions_04fnjo0ny9dmg.js} +2 -2
- 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_06x1kdz.js → _next-internal_server_app_notebooks_page_actions_06x1kdz034ff8.js} +2 -2
- package/.next/server/chunks/ssr/{_next-internal_server_app_page_actions_0hhsz1j.js → _next-internal_server_app_page_actions_0hhsz1jew5ls7.js} +2 -2
- package/.next/server/chunks/ssr/{_next-internal_server_app_practice_page_actions_0cy-h5n.js → _next-internal_server_app_practice_page_actions_0cy-h5n6gnmoq.js} +2 -2
- 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-x.js → _next-internal_server_app_register_page_actions_1op-s-xpplkgy.js} +2 -2
- package/.next/server/chunks/ssr/{_next-internal_server_app_stats_page_actions_1olf1_a.js → _next-internal_server_app_stats_page_actions_1olf1_ad6s7ee.js} +2 -2
- package/.next/server/chunks/ssr/{_next-internal_server_app_tags_page_actions_20v_n--.js → _next-internal_server_app_tags_page_actions_20v_n--6ltjkg.js} +1 -1
- 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_@radix-ui_0im69oqv_i2ki._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_@radix-ui_0zibxpne20gfo._.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_lucide-react_dist_esm_icons_wand-sparkles_1e4rylzm0nkbv.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_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_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_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 +7 -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 +208 -9
- package/.next/server/middleware-manifest.json +13 -13
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +0 -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/{w6W6dMBYlP4wbCdeRcVhA → 0rqQXLDvfc_jhsn1XF-zT}/_clientMiddlewareManifest.js +2 -2
- package/.next/static/chunks/02arashg5z9hy.js +1 -0
- package/.next/static/chunks/030eh13-7xvy7.js +1 -0
- package/.next/static/chunks/06q8lm6y95ac4.css +1 -0
- package/.next/static/chunks/07zxudgwttnwv.js +6 -0
- package/.next/static/chunks/089-9u4pe2h49.js +1 -0
- package/.next/static/chunks/093w4w_19h9qh.js +31 -0
- package/.next/static/chunks/0a-rekt06v0sv.js +1 -0
- package/.next/static/chunks/0dlztx_6_yfcq.js +1 -0
- package/.next/static/chunks/0e7mao0hn_nw4.js +1 -0
- package/.next/static/chunks/0fiebviba_0be.js +33 -0
- package/.next/static/chunks/0ipduzu-11mee.js +1 -0
- package/.next/static/chunks/0myk7euf03qwr.js +1 -0
- package/.next/static/chunks/0s6zcnahk3us4.js +5 -0
- package/.next/static/chunks/0ub8l5nongf_r.js +1 -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/19js5h26_4w0w.js +1 -0
- package/.next/static/chunks/1_h2h09t_394a.js +1 -0
- package/.next/static/chunks/1fhxsoq06x1_e.js +1 -0
- package/.next/static/chunks/1fl98iro7y1bv.js +1 -0
- package/.next/static/chunks/1kq7w30gvsyaq.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/26gl990fowmkx.js +1 -0
- package/.next/static/chunks/2c2gi_zxaaa-j.js +3 -0
- package/.next/static/chunks/2l-1t8-pfq4ph.js +1 -0
- package/.next/static/chunks/2tu_d3t2boag2.js +1 -0
- package/.next/static/chunks/2v3rvsf6-bnfs.js +1 -0
- package/.next/static/chunks/2xlmm9z_sr1_m.js +1 -0
- package/.next/static/chunks/2y8ek6g772mi5.js +191 -0
- package/.next/static/chunks/2ysjbje-zsbdp.js +1 -0
- package/.next/static/chunks/384cc0iojva04.css +3 -0
- package/.next/static/chunks/3mb_v650fie_i.js +22 -0
- package/.next/static/chunks/3r4z_6i5z0hd5.js +1 -0
- package/.next/static/chunks/3sqcsxnhsnxzo.js +1 -0
- package/.next/static/chunks/turbopack-2c3mg3r-05n1w.js +1 -0
- package/LICENSE +22 -0
- package/launcher.js +22 -6
- package/package.json +4 -3
- package/prisma/migrations/20261022000141_add_svg_animation_en/migration.sql +2 -0
- package/prisma/migrations/20261024000000_add_last_practice/migration.sql +2 -0
- package/prisma/schema.prisma +3 -1
- package/prisma/seed.db +0 -0
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/icons/icon-maskable-512.png +0 -0
- package/public/offline.html +61 -0
- package/public/sw.js +84 -0
- package/server.js +1 -1
- package/.next/server/app/api/error-items/[id]/mastery/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/error-items/[id]/mastery/route/build-manifest.json +0 -12
- package/.next/server/app/api/error-items/[id]/mastery/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/error-items/[id]/mastery/route.js +0 -8
- package/.next/server/app/api/error-items/[id]/mastery/route.js.map +0 -5
- package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +0 -1
- package/.next/server/app/api/error-items/[id]/mastery/route_client-reference-manifest.js +0 -3
- 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/react-loadable-manifest.json +0 -1
- package/.next/server/app/latex-test/page/server-reference-manifest.json +0 -4
- package/.next/server/app/latex-test/page.js +0 -14
- package/.next/server/app/latex-test/page.js.map +0 -5
- 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]__0pot68n._.js +0 -3
- package/.next/server/chunks/[externals]__1735khz._.js +0 -3
- package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +0 -153
- package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__02j1w81._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__03nfvnm._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__05s4wut._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__06_nln5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__06h5afw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0akadps._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0be5c5r._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0bqawi0._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0c59gc3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +0 -122
- package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0gp88gz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0inxsnu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0jaawra._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0k-nf6a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0mqorxb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0nqbham._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0obb4y-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +0 -9
- package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0u58zap._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11n87go._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +0 -32
- package/.next/server/chunks/[root-of-the-server]__131taws._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1413v0e._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__16begv4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17duis5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__184u6de._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__19vj8qy._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1cn6rlb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1csfdxc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ezwxao._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1g1wi9i._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1gmc_uw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1hpwwxw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +0 -6
- package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1kqv61m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1loecue._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1m4-ab6._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +0 -10
- package/.next/server/chunks/[root-of-the-server]__1nwf3ua._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1oup682._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1pplzr1._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1sdtn83._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +0 -32
- package/.next/server/chunks/[root-of-the-server]__20465pr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__207mxv8._.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/_0_o8yhv._.js +0 -3
- package/.next/server/chunks/_0c5hvv3._.js +0 -11
- package/.next/server/chunks/_0ekrwj-._.js +0 -36
- package/.next/server/chunks/_0frix22._.js +0 -11
- 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/_0rdo0a4._.js +0 -3
- package/.next/server/chunks/_0uxp3uh._.js +0 -3
- package/.next/server/chunks/_0x3ltk0._.js +0 -36
- 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/_167vv93._.js +0 -3
- 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/_1e1h1f1._.js +0 -3
- package/.next/server/chunks/_1ex6ovo._.js +0 -3
- package/.next/server/chunks/_1fgb9ve._.js +0 -3
- package/.next/server/chunks/_1flar98._.js +0 -3
- package/.next/server/chunks/_1m-yyz-._.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/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.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_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]_mastery_route_actions_1l5uan6.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]_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_geogebra-analyze_route_actions_1xng0_c.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_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_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_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]__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]__0b8kewv._.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]__0icjezr._.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]__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/_12c20v5._.js +0 -3
- package/.next/server/chunks/ssr/_17igtpd._.js +0 -3
- package/.next/server/chunks/ssr/_1filpif._.js +0 -3
- package/.next/server/chunks/ssr/_1gu1rou._.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_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]_print_page_actions_0pxdgxq.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_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_print-preview_page_actions_1jhaaln.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/00pn0o7lymln6.js +0 -1
- package/.next/static/chunks/02521degnqmf0.js +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/0iq53qkw5hvrs.js +0 -1
- package/.next/static/chunks/0m81l71kojx8j.js +0 -1
- package/.next/static/chunks/0nckb2-62ooyq.js +0 -1
- package/.next/static/chunks/0snej-v5yglxr.js +0 -1
- package/.next/static/chunks/1-7k9gbbjkcml.js +0 -1
- package/.next/static/chunks/130ch9mnvb6mp.css +0 -3
- package/.next/static/chunks/17wdtw8hml2n6.js +0 -191
- 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/2a0kgntckcbvf.js +0 -1
- package/.next/static/chunks/2dlme2fdlkms6.js +0 -1
- package/.next/static/chunks/2h-exsnhkfnb8.js +0 -1
- package/.next/static/chunks/2pmzqbg-qabof.js +0 -1
- package/.next/static/chunks/2rmhba08h4qqo.js +0 -33
- package/.next/static/chunks/2s07soqug65hc.js +0 -1
- package/.next/static/chunks/2w2uo9jjxt-re.js +0 -1
- package/.next/static/chunks/2wnnnmbh85mq_.js +0 -1
- package/.next/static/chunks/2yl8a-gxngbuq.js +0 -1
- package/.next/static/chunks/32bl-oqw9oso0.js +0 -1
- package/.next/static/chunks/35cov9g4cgt-v.js +0 -1
- package/.next/static/chunks/3b-g5_r9nto3s.js +0 -6
- package/.next/static/chunks/3c4-ozf1dxam2.css +0 -1
- package/.next/static/chunks/3g1rm2suowncy.js +0 -3
- package/.next/static/chunks/3helovsg02qr4.js +0 -1
- package/.next/static/chunks/3hz1l3qoxv84t.js +0 -1
- package/.next/static/chunks/3jta6jrk-jubq.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/static/{w6W6dMBYlP4wbCdeRcVhA → 0rqQXLDvfc_jhsn1XF-zT}/_buildManifest.js +0 -0
- /package/.next/static/{w6W6dMBYlP4wbCdeRcVhA → 0rqQXLDvfc_jhsn1XF-zT}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871689,e=>{let s=(0,e.i(475254).f)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["f",0,s],871689)},463059,e=>{let s=(0,e.i(475254).f)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["f",0,s],463059)},25652,e=>{let s=(0,e.i(475254).f)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["f",0,s],25652)},907892,e=>{var s=e.i(843476),t=e.i(271645),a=e.i(111110),l=e.i(35209),r=e.i(515288),i=e.i(487486),n=e.i(677572),c=e.i(25652),d=e.i(107233),m=e.i(727612),o=e.i(664659),u=e.i(463059),x=e.i(531278),h=e.i(519455),g=e.i(393842),f=e.i(793479),p=e.i(967489),j=e.i(41931),y=e.i(294114),N=e.i(201276),v=e.i(303163);let b=[{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:"政治"}];e.s(["default",0,function(){let e,{t:w}=(0,a.b)();(0,l.f)(w.tags.title);let[k,S]=(0,t.useState)([]),[T,C]=(0,t.useState)(!0),[O,F]=(0,t.useState)({math:null,english:null,physics:null,chemistry:null,biology:null,chinese:null,history:null,geography:null,politics:null}),[U,$]=(0,t.useState)([]),[E,A]=(0,t.useState)("math"),[G,P]=(0,t.useState)(""),[Y,L]=(0,t.useState)([]),[V,q]=(0,t.useState)(""),[z,K]=(0,t.useState)(!1),[M,R]=(0,t.useState)({}),B=(0,t.useCallback)(async e=>{try{let s=await j.f.get(`/api/tags?subject=${e}`);F(t=>({...t,[e]:s.tags}))}catch(s){N.f.error("[Tags]","Failed to fetch tags",{subject:e,error:s})}},[]),D=(0,t.useCallback)(async()=>{try{let e=[];for(let{key:s}of b){let t=(await j.f.get(`/api/tags?subject=${s}&flat=true`)).tags.filter(e=>!e.isSystem).map(e=>({...e,subject:s}));e.push(...t)}$(e)}catch(e){N.f.error("[Tags]","Failed to fetch custom tags",{error:e})}},[]),_=async()=>{try{let e=await j.f.get("/api/tags/stats");S(e.stats)}catch(e){N.f.error("[Tags]","Failed to fetch tag stats",{error:e})}finally{C(!1)}};(0,t.useEffect)(()=>{_(),D(),B("math")},[B,D]),(0,t.useEffect)(()=>{(async()=>{try{let e=(await j.f.get(`/api/tags?subject=${E}`)).tags.filter(e=>e.isSystem).map(e=>({id:e.id,name:e.name}));L(e),P("")}catch(e){N.f.error("[Tags]","Failed to fetch grades",{error:e}),L([])}})()},[E]);let H=async()=>{if(!V.trim())return void y.c.warning(w.tags?.custom?.enterName||"Please enter tag name");K(!0);try{await j.f.post("/api/tags",{name:V.trim(),subject:E,parentId:G&&"none"!==G?G:void 0}),q(""),await D(),await B(E),y.c.success(w.tags?.custom?.success||"Tag added successfully!")}catch(e){(0,v.Z)(e).includes("409")?y.c.warning(w.tags?.custom?.exists||"Tag already exists"):y.c.error("Failed to add tag")}finally{K(!1)}},I=async(e,s,t)=>{if(await (0,y.u)((w.tags?.custom?.deleteConfirm||'Are you sure you want to delete tag "{tag}"?').replace("{tag}",s),{destructive:!0}))try{await j.f.delete(`/api/tags?id=${e}`),await D(),await B(t)}catch(e){N.f.error("[Tags]","Failed to delete tag",{error:e}),y.c.error("Failed to delete tag")}},Z=e=>{R(s=>({...s,[e]:!s[e]}))},J=(e,t=0,a=!1)=>{let l=e.children.length>0,r=M[e.id],n=16*t;if(!l){let t;return(0,s.jsxs)(i.f,{variant:"outline",className:"cursor-default hover:bg-accent",style:{marginLeft:a?0:n},children:[e.name,(t=k.find(s=>s.tag===e.name))?(0,s.jsxs)("span",{className:"ml-1 text-xs text-muted-foreground",children:["(",t.count,")"]}):null]},e.id)}let c=e.children.filter(e=>e.isSystem);if(0===c.length)return(0,s.jsx)("div",{className:"space-y-2",style:{paddingLeft:n},children:(0,s.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer hover:bg-muted/50 rounded px-2 py-1 -mx-2",onClick:()=>Z(e.id),children:[r?(0,s.jsx)(o.f,{className:"h-4 w-4"}):(0,s.jsx)(u.f,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"font-medium text-sm",children:e.name}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",c.length,")"]})]})},e.id);let d=c.every(e=>0===e.children.filter(e=>e.isSystem).length);return(0,s.jsxs)("div",{className:"space-y-2",style:{paddingLeft:n},children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer hover:bg-muted/50 rounded px-2 py-1 -mx-2",onClick:()=>Z(e.id),children:[r?(0,s.jsx)(o.f,{className:"h-4 w-4"}):(0,s.jsx)(u.f,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"font-medium text-sm",children:e.name}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",c.length,")"]})]}),r&&(d?(0,s.jsx)("div",{className:"flex flex-wrap gap-2 pl-6",children:c.map(e=>J(e,0,!0))}):(0,s.jsx)("div",{className:"space-y-2 pl-6",children:c.map(e=>J(e,0,!1))}))]},e.id)};return(0,s.jsxs)("main",{className:"mx-auto max-w-6xl space-y-6 px-4 py-6 md:px-8 md:py-8",children:[(0,s.jsx)(g.f,{title:w.tags?.title||"Tag Management",description:w.tags?.subtitle||"View and manage knowledge point tags"}),(0,s.jsxs)(n.i,{defaultValue:"standard",className:"w-full",children:[(0,s.jsxs)(n.U,{className:"grid w-full grid-cols-3 mb-6",children:[(0,s.jsx)(n.k,{value:"standard",children:w.tags?.tabs?.standard||"Standard Tags"}),(0,s.jsx)(n.k,{value:"custom",children:w.tags?.tabs?.custom||"Custom Tags"}),(0,s.jsx)(n.k,{value:"stats",children:w.tags?.tabs?.stats||"Usage Statistics"})]}),(0,s.jsx)(n.S,{value:"standard",className:"space-y-4",children:(0,s.jsx)(s.Fragment,{children:b.map(({key:e,name:t})=>{let a=w.tags?.subjects?.[e]||t,l=M[`subject-${e}`],i=O[e];return(0,s.jsxs)(r.N,{className:"mb-4",children:[(0,s.jsxs)(r.Y,{className:"cursor-pointer hover:bg-muted/50 transition-colors flex flex-row items-center justify-between py-4",onClick:()=>{Z(`subject-${e}`),null===i&&B(e)},children:[(0,s.jsxs)(r.v,{className:"text-lg flex items-center gap-2",children:[l?(0,s.jsx)(o.f,{className:"h-5 w-5"}):(0,s.jsx)(u.f,{className:"h-5 w-5"}),a]}),(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:l?w.common?.collapse||"Collapse":w.common?.expand||"Expand"})]}),l&&(0,s.jsx)(r.O,{className:"space-y-4 pt-0",children:null===i?(0,s.jsxs)("div",{className:"text-center py-4 text-muted-foreground",children:[(0,s.jsx)(x.f,{className:"h-5 w-5 animate-spin mx-auto mb-2"}),"Loading..."]}):0===i.filter(e=>e.isSystem).length?(0,s.jsx)("div",{className:"text-center py-4 text-muted-foreground",children:w.tags?.stats?.empty||"No tag usage records yet"}):i.filter(e=>e.isSystem).map(e=>J(e))})]},e)})})}),(0,s.jsx)(n.S,{value:"custom",children:(e=U.reduce((e,s)=>(e[s.subject]||(e[s.subject]=[]),e[s.subject].push(s),e),{}),(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)(r.N,{children:[(0,s.jsx)(r.Y,{children:(0,s.jsx)(r.v,{children:w.tags?.custom?.addTitle||"Add Custom Tag"})}),(0,s.jsxs)(r.O,{children:[(0,s.jsxs)("div",{className:"flex gap-3 flex-wrap",children:[(0,s.jsxs)(p.d,{value:E,onValueChange:e=>A(e),children:[(0,s.jsx)(p.P,{className:"w-[120px]",children:(0,s.jsx)(p.U,{})}),(0,s.jsx)(p.r,{children:b.map(({key:e,name:t})=>(0,s.jsx)(p.T,{value:e,children:w.tags?.subjects?.[e]||t},e))})]}),(0,s.jsxs)(p.d,{value:G,onValueChange:P,children:[(0,s.jsx)(p.P,{className:"w-[140px]",children:(0,s.jsx)(p.U,{placeholder:w.tags?.custom?.selectGrade||"Select Grade"})}),(0,s.jsxs)(p.r,{children:[(0,s.jsx)(p.T,{value:"none",children:w.tags?.custom?.noGrade||"No Grade"}),Y.map(e=>(0,s.jsx)(p.T,{value:e.id,children:e.name},e.id))]})]}),(0,s.jsx)(f.f,{placeholder:w.tags?.custom?.placeholder||"Enter tag name...",value:V,onChange:e=>q(e.target.value),onKeyDown:e=>"Enter"===e.key&&H(),className:"flex-1 min-w-[200px]"}),(0,s.jsxs)(h.f,{onClick:H,disabled:z,children:[z?(0,s.jsx)(x.f,{className:"h-4 w-4 mr-1 animate-spin"}):(0,s.jsx)(d.f,{className:"h-4 w-4 mr-1"}),w.tags?.custom?.add||"Add"]})]}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:w.tags?.custom?.hint||"💡 Custom tags will automatically appear in tag suggestions"})]})]}),0===U.length?(0,s.jsx)(r.N,{children:(0,s.jsx)(r.O,{className:"py-12 text-center text-muted-foreground",children:w.tags?.custom?.empty||"No custom tags yet, click above to add!"})}):b.map(({key:t,name:a})=>{let l=e[t];if(!l?.length)return null;let n=l.reduce((e,s)=>{let t=s.parentName||"通用";return e[t]||(e[t]=[]),e[t].push(s),e},{}),c=Object.keys(n).sort((e,s)=>"通用"===e?1:"通用"===s?-1:e.localeCompare(s,"zh"));return(0,s.jsxs)(r.N,{children:[(0,s.jsx)(r.Y,{children:(0,s.jsxs)(r.v,{className:"text-lg",children:[w.tags?.subjects?.[t]||a," (",l.length,")"]})}),(0,s.jsx)(r.O,{className:"space-y-4",children:c.map(e=>(0,s.jsxs)("div",{className:"space-y-2",children:["通用"!==e&&(0,s.jsx)("h4",{className:"text-sm font-semibold text-muted-foreground border-b pb-1 mb-2",children:e}),"通用"===e&&c.length>1&&(0,s.jsx)("h4",{className:"text-sm font-semibold text-muted-foreground border-b pb-1 mb-2",children:w.tags?.otherGroup||"Other"}),(0,s.jsx)("div",{className:"flex flex-wrap gap-2",children:n[e].map(e=>(0,s.jsxs)(i.f,{variant:"secondary",className:"px-3 py-1.5 text-sm",children:[e.name,(0,s.jsx)("button",{onClick:()=>I(e.id,e.name,t),className:"ml-2 hover:text-destructive transition-colors",title:w.common?.delete||"Delete",children:(0,s.jsx)(m.f,{className:"h-3 w-3"})})]},e.id))})]},e))})]},t)})]}))}),(0,s.jsx)(n.S,{value:"stats",children:(()=>{if(T)return(0,s.jsx)("div",{className:"text-center py-8",children:w.tags?.stats?.loading||"Loading..."});if(0===k.length)return(0,s.jsx)("div",{className:"text-center py-8 text-muted-foreground",children:w.tags?.stats?.empty||"No tag usage records yet"});let e=k[0]?.count||1;return(0,s.jsxs)(r.N,{children:[(0,s.jsx)(r.Y,{children:(0,s.jsxs)(r.v,{className:"flex items-center gap-2",children:[(0,s.jsx)(c.f,{className:"h-5 w-5"}),w.tags?.stats?.frequency||"Tag Usage Frequency (Top 20)"]})}),(0,s.jsx)(r.O,{className:"space-y-3",children:k.slice(0,20).map(t=>{let a=t.count/e*100;return(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,s.jsx)("span",{className:"font-medium",children:t.tag}),(0,s.jsxs)("span",{className:"text-muted-foreground",children:[t.count," ",w.tags?.stats?.count||"times"]})]}),(0,s.jsx)("div",{className:"h-2 bg-muted rounded-full overflow-hidden",children:(0,s.jsx)("div",{className:"h-full bg-primary transition-all",style:{width:`${a}%`}})})]},t.tag)})})]})})()})]})]})}])},590546,e=>{var s=e.i(843476),t=e.i(618566),a=e.i(519455),l=e.i(871689);e.s(["f",0,function({fallbackUrl:e,className:r}){let i=(0,t.useRouter)();return(0,s.jsx)(a.f,{variant:"ghost",size:"icon",onClick:()=>{i.push(e)},className:r,children:(0,s.jsx)(l.f,{className:"h-5 w-5"})})}])},515288,e=>{var s=e.i(843476),t=e.i(975157);e.s(["N",0,function({className:e,...a}){return(0,s.jsx)("div",{"data-slot":"card",className:(0,t.f)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...a})},"O",0,function({className:e,...a}){return(0,s.jsx)("div",{"data-slot":"card-content",className:(0,t.f)("px-6",e),...a})},"u",0,function({className:e,...a}){return(0,s.jsx)("div",{"data-slot":"card-description",className:(0,t.f)("text-muted-foreground text-sm",e),...a})},"Y",0,function({className:e,...a}){return(0,s.jsx)("div",{"data-slot":"card-header",className:(0,t.f)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...a})},"v",0,function({className:e,...a}){return(0,s.jsx)("div",{"data-slot":"card-title",className:(0,t.f)("leading-none font-semibold",e),...a})}])},393842,e=>{var s=e.i(843476),t=e.i(590546),a=e.i(975157);e.s(["f",0,function({title:e,description:l,backHref:r,actions:i,titleAddon:n,className:c}){return(0,s.jsxs)("div",{className:(0,a.f)("flex items-start gap-3",c),children:[r&&(0,s.jsx)(t.f,{fallbackUrl:r,className:"-ml-2 shrink-0"}),(0,s.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)("h1",{className:"truncate text-2xl font-bold tracking-tight sm:text-3xl",children:e}),n]}),l&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground sm:text-base",children:l})]}),i&&(0,s.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:i})]})}])},35209,e=>{var s=e.i(271645),t=e.i(111110);e.s(["f",0,function(...e){let{t:a}=(0,t.b)(),l=[a.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,s.useEffect)(()=>{document.title=l},[l])}])}])})();
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871689,e=>{let t=(0,e.i(475254).f)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["f",0,t],871689)},303281,e=>{let t=(0,e.i(475254).f)("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]);e.s(["f",0,t],303281)},580685,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(618566),s=e.i(440160),i=e.i(303281),r=e.i(519455),l=e.i(257428),o=e.i(590546),c=e.i(511445),d=e.i(149704),m=e.i(111110),x=e.i(35209),f=e.i(41931);let h=`
|
|
2
|
+
.exam-sheet { max-width: 210mm; margin: 0 auto; padding: 16px; color: #111; background: #fff; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; line-height: 1.6; }
|
|
3
|
+
.exam-sheet h1 { text-align: center; font-size: 22px; margin: 0 0 8px; }
|
|
4
|
+
.exam-sheet .exam-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 32px; font-size: 14px; margin-bottom: 20px; }
|
|
5
|
+
.exam-sheet .exam-meta span { min-width: 120px; }
|
|
6
|
+
.exam-sheet .exam-question { break-inside: avoid; page-break-inside: avoid; padding: 12px 0; border-bottom: 1px dashed #ccc; }
|
|
7
|
+
.exam-sheet .exam-question-head { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; }
|
|
8
|
+
.exam-sheet .exam-source { font-family: ui-monospace, Menlo, monospace; font-weight: 400; font-size: 12px; color: #666; white-space: nowrap; }
|
|
9
|
+
.exam-sheet .exam-answer-space { min-height: 120px; }
|
|
10
|
+
.exam-sheet .exam-answer-key { break-before: page; page-break-before: always; padding-top: 8px; }
|
|
11
|
+
.exam-sheet .exam-answer-key h2 { text-align: center; font-size: 18px; margin: 0 0 12px; }
|
|
12
|
+
.exam-sheet .exam-label { font-weight: 600; color: #444; }
|
|
13
|
+
.exam-sheet .markdown-content p { margin: 4px 0; }
|
|
14
|
+
.exam-sheet .markdown-content img { max-width: 100%; }
|
|
15
|
+
.exam-sheet .question-figure { margin: 8px 0; break-inside: avoid; page-break-inside: avoid; }
|
|
16
|
+
.exam-sheet .question-figure img { display: block; margin: 0 auto; max-width: 100%; max-height: 360px; background: #fff; }
|
|
17
|
+
.exam-sheet .markdown-content table { border-collapse: collapse; }
|
|
18
|
+
.exam-sheet .markdown-content td, .exam-sheet .markdown-content th { border: 1px solid #999; padding: 2px 6px; }
|
|
19
|
+
@media print { .exam-sheet { padding: 0; max-width: none; } @page { size: A4; margin: 15mm; } }
|
|
20
|
+
`;function p(e){return e.replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}e.s(["default",0,function(){let e=(0,n.useParams)(),{t:u,language:g}=(0,m.b)(),[b,y]=(0,a.useState)(null);(0,x.f)(u.exam.title,b?.title,u.pageTitle.examPrint);let[j,w]=(0,a.useState)(!0),v=(0,a.useRef)(null);if((0,a.useEffect)(()=>{f.f.get(`/api/exams/${e.id}`).then(y).catch(()=>y(null))},[e.id]),!b)return(0,t.jsx)("div",{className:"p-8 text-center",children:u.common.loading});let k=b.questions.filter(e=>"ready"===e.status&&e.questionText);return(0,t.jsxs)("main",{className:"min-h-screen bg-white",children:[(0,t.jsx)("style",{children:h}),(0,t.jsx)("div",{className:"print:hidden sticky top-0 z-10 border-b bg-background p-3 shadow-sm",children:(0,t.jsxs)("div",{className:"max-w-4xl mx-auto flex flex-wrap items-center gap-3",children:[(0,t.jsx)(o.f,{fallbackUrl:`/exams/${b.id}`}),(0,t.jsx)("span",{className:"font-semibold",children:u.exam.printTitle}),(0,t.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(l.f,{checked:j,onCheckedChange:e=>w(!0===e)}),u.exam.includeAnswers]}),(0,t.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,t.jsxs)(r.f,{variant:"outline",size:"sm",onClick:()=>{var e;if(!v.current)return;let t=function(e,t,a="zh-CN"){return`<!doctype html>
|
|
21
|
+
<html lang="${p(a)}">
|
|
22
|
+
<head>
|
|
23
|
+
<meta charset="utf-8">
|
|
24
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
25
|
+
<title>${p(e)}</title>
|
|
26
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.19.0/dist/katex.min.css">
|
|
27
|
+
<style>body { margin: 0; background: #fff; }${h}</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
${t}
|
|
31
|
+
</body>
|
|
32
|
+
</html>
|
|
33
|
+
`}(b.title,v.current.outerHTML,"en"===g?"en":"zh-CN"),a=URL.createObjectURL(new Blob([t],{type:"text/html;charset=utf-8"})),n=document.createElement("a");n.href=a,e=b.title,n.download=`${e.replace(/[\\/:*?"<>|\s]+/g,"_").slice(0,80)||"exam"}.html`,n.click(),URL.revokeObjectURL(a)},children:[(0,t.jsx)(s.f,{className:"mr-2 h-4 w-4"}),u.exam.downloadHtml]}),(0,t.jsxs)(r.f,{size:"sm",onClick:()=>window.print(),children:[(0,t.jsx)(i.f,{className:"mr-2 h-4 w-4"}),u.exam.printNow]})]}),k.length<b.questions.length&&(0,t.jsx)("p",{className:"w-full text-xs text-muted-foreground",children:u.exam.notReadyHint})]})}),(0,t.jsxs)("div",{ref:v,className:"exam-sheet",children:[(0,t.jsx)("h1",{children:b.title}),(0,t.jsxs)("div",{className:"exam-meta",children:[(0,t.jsxs)("span",{children:[u.exam.nameLine,":________"]}),(0,t.jsxs)("span",{children:[u.exam.dateLine,":________"]}),(0,t.jsxs)("span",{children:[u.exam.scoreLine,":________"]})]}),k.map((e,a)=>(0,t.jsxs)("section",{className:"exam-question",children:[(0,t.jsxs)("div",{className:"exam-question-head",children:[(0,t.jsxs)("span",{children:[a+1,"."]}),(0,t.jsxs)("span",{className:"exam-source",children:[u.exam.sourceLabel,": ",e.sourceShortId]})]}),(0,t.jsx)(c.f,{content:e.questionText}),(0,t.jsx)(d.f,{svg:e.figureSvg}),(0,t.jsx)("div",{className:"exam-answer-space"})]},e.id)),j&&(0,t.jsxs)("section",{className:"exam-answer-key",children:[(0,t.jsx)("h2",{children:u.exam.answerKey}),k.map((e,a)=>(0,t.jsxs)("div",{className:"exam-question",children:[(0,t.jsxs)("div",{className:"exam-question-head",children:[(0,t.jsxs)("span",{children:[a+1,"."]}),(0,t.jsxs)("span",{className:"exam-source",children:[u.exam.sourceLabel,": ",e.sourceShortId]})]}),e.answerText&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"exam-label",children:[u.exam.answerLabel,":"]}),(0,t.jsx)(c.f,{content:e.answerText})]}),e.analysis&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"exam-label",children:[u.exam.analysisLabel,":"]}),(0,t.jsx)(c.f,{content:e.analysis})]})]},e.id))]})]})]})}],580685)},149704,e=>{var t=e.i(843476),a=e.i(111110),n=e.i(975157);e.s(["f",0,function({svg:e,className:s}){let{t:i}=(0,a.b)();return e?(0,t.jsx)("figure",{className:(0,n.f)("question-figure my-3",s),children:(0,t.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:i.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],149704)},590546,e=>{var t=e.i(843476),a=e.i(618566),n=e.i(519455),s=e.i(871689);e.s(["f",0,function({fallbackUrl:e,className:i}){let r=(0,a.useRouter)();return(0,t.jsx)(n.f,{variant:"ghost",size:"icon",onClick:()=>{r.push(e)},className:i,children:(0,t.jsx)(s.f,{className:"h-5 w-5"})})}])},257428,e=>{var t=e.i(843476),a=e.i(271645),n=e.i(820783),s=e.i(30030),i=e.i(981140),r=e.i(369340),l=e.i(999682),o=e.i(635804),c=e.i(296626);e.i(174080);var d=Symbol("radix.slottable");function m(e){return a.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===d}var x=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,s)=>{var i,r;let l,o,c,d=(r=i=`Primitive.${s}`,(l=a.forwardRef((e,t)=>{let{children:s,...i}=e;if(a.isValidElement(s)){var r;let e,l,o=(r=s,(l=(e=Object.getOwnPropertyDescriptor(r.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.ref:(l=(e=Object.getOwnPropertyDescriptor(r,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.props.ref:r.props.ref||r.ref),c=function(e,t){let a={...t};for(let n in t){let s=e[n],i=t[n];/^on[A-Z]/.test(n)?s&&i?a[n]=(...e)=>{let t=i(...e);return s(...e),t}:s&&(a[n]=s):"style"===n?a[n]={...s,...i}:"className"===n&&(a[n]=[s,i].filter(Boolean).join(" "))}return{...e,...a}}(i,s.props);return s.type!==a.Fragment&&(c.ref=t?(0,n.Q)(t,o):o),a.cloneElement(s,c)}return a.Children.count(s)>1?a.Children.only(null):null})).displayName=`${r}.SlotClone`,o=l,(c=a.forwardRef((e,n)=>{let{children:s,...i}=e,r=a.Children.toArray(s),l=r.find(m);if(l){let e=l.props.children,s=r.map(t=>t!==l?t:a.Children.count(e)>1?a.Children.only(null):a.isValidElement(e)?e.props.children:null);return(0,t.jsx)(o,{...i,ref:n,children:a.isValidElement(e)?a.cloneElement(e,void 0,s):null})}return(0,t.jsx)(o,{...i,ref:n,children:s})})).displayName=`${i}.Slot`,c),x=a.forwardRef((e,a)=>{let{asChild:n,...i}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(n?d:s,{...i,ref:a})});return x.displayName=`Primitive.${s}`,{...e,[s]:x}},{}),f="Checkbox",[h,p]=(0,s.c)(f),[u,g]=h(f);function b(e){let{__scopeCheckbox:n,checked:s,children:i,defaultChecked:l,disabled:o,form:c,name:d,onCheckedChange:m,required:x,value:h="on",internal_do_not_use_render:p}=e,[g,b]=(0,r.f)({prop:s,defaultProp:l??!1,onChange:m,caller:f}),[y,j]=a.useState(null),[w,v]=a.useState(null),k=a.useRef(!1),N=!y||!!c||!!y.closest("form"),_={checked:g,disabled:o,setChecked:b,control:y,setControl:j,name:d,form:c,value:h,hasConsumerStoppedPropagationRef:k,required:x,defaultChecked:!C(l)&&l,isFormControl:N,bubbleInput:w,setBubbleInput:v};return(0,t.jsx)(u,{scope:n,..._,children:"function"==typeof p?p(_):i})}var y="CheckboxTrigger",j=a.forwardRef(({__scopeCheckbox:e,onKeyDown:s,onClick:r,...l},o)=>{let{control:c,value:d,disabled:m,checked:f,required:h,setControl:p,setChecked:u,hasConsumerStoppedPropagationRef:b,isFormControl:j,bubbleInput:w}=g(y,e),v=(0,n.j)(o,p),k=a.useRef(f);return a.useEffect(()=>{let e=c?.form;if(e){let t=()=>u(k.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[c,u]),(0,t.jsx)(x.button,{type:"button",role:"checkbox","aria-checked":C(f)?"mixed":f,"aria-required":h,"data-state":R(f),"data-disabled":m?"":void 0,disabled:m,value:d,...l,ref:v,onKeyDown:(0,i.f)(s,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.f)(r,e=>{u(e=>!!C(e)||!e),w&&j&&(b.current=e.isPropagationStopped(),b.current||e.stopPropagation())})})});j.displayName=y;var w=a.forwardRef((e,a)=>{let{__scopeCheckbox:n,name:s,checked:i,defaultChecked:r,required:l,disabled:o,value:c,onCheckedChange:d,form:m,...x}=e;return(0,t.jsx)(b,{__scopeCheckbox:n,checked:i,defaultChecked:r,disabled:o,required:l,onCheckedChange:d,name:s,form:m,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{...x,ref:a,__scopeCheckbox:n}),e&&(0,t.jsx)(_,{__scopeCheckbox:n})]})})});w.displayName=f;var v="CheckboxIndicator",k=a.forwardRef((e,a)=>{let{__scopeCheckbox:n,forceMount:s,...i}=e,r=g(v,n);return(0,t.jsx)(c.f,{present:s||C(r.checked)||!0===r.checked,children:(0,t.jsx)(x.span,{"data-state":R(r.checked),"data-disabled":r.disabled?"":void 0,...i,ref:a,style:{pointerEvents:"none",...e.style}})})});k.displayName=v;var N="CheckboxBubbleInput",_=a.forwardRef(({__scopeCheckbox:e,...s},i)=>{let{control:r,hasConsumerStoppedPropagationRef:c,checked:d,defaultChecked:m,required:f,disabled:h,name:p,value:u,form:b,bubbleInput:y,setBubbleInput:j}=g(N,e),w=(0,n.j)(i,j),v=(0,l.f)(d),k=(0,o.f)(r);a.useEffect(()=>{if(!y)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!c.current;if(v!==d&&e){let a=new Event("click",{bubbles:t});y.indeterminate=C(d),e.call(y,!C(d)&&d),y.dispatchEvent(a)}},[y,v,d,c]);let _=a.useRef(!C(d)&&d);return(0,t.jsx)(x.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??_.current,required:f,disabled:h,name:p,value:u,form:b,...s,tabIndex:-1,ref:w,style:{...s.style,...k,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function C(e){return"indeterminate"===e}function R(e){return C(e)?"indeterminate":e?"checked":"unchecked"}_.displayName=N;var E=e.i(643531),q=e.i(975157);let L=a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(w,{ref:n,className:(0,q.f)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...a,children:(0,t.jsx)(k,{className:(0,q.f)("flex items-center justify-center text-current"),children:(0,t.jsx)(E.f,{className:"h-4 w-4"})})}));L.displayName=w.displayName,e.s(["f",0,L],257428)},35209,e=>{var t=e.i(271645),a=e.i(111110);e.s(["f",0,function(...e){let{t:n}=(0,a.b)(),s=[n.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,t.useEffect)(()=>{document.title=s},[s])}])}])})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,72664,3198,e=>{var t=e.i(475254);let r=(0,t.f)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);e.s(["f",0,r],72664);var i=e.i(843476),n=e.i(271645),a=e.i(531278);let s=(0,t.f)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),o=(0,t.f)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var l=e.i(367240),h=e.i(16715),d=e.i(727612),c=e.i(519455),u=e.i(111110),m=e.i(294114),g=e.i(201276);let p=null,f=["setcoordsystem","setaxesvisible","setgridvisible","setcolor","setlinethickness","setlinestyle","setpointsize","setpointstyle","setlabelvisible","setcaption","setvisible","setfilling","setvalue","setfixed","setbackgroundcolor"];function w(e,t,r){let i=e?.firstElementChild;i&&(i.style.width="100%",i.style.height=`${r}px`,t?.setSize(e?.offsetWidth||i.offsetWidth||800,r))}function x(e,t){for(let r of t)try{if(function(e){let t=e.toLowerCase().trim();return f.some(e=>t.startsWith(e+"("))}(r)){let t=function(e){let t=e.match(/^(\w+)\(([\s\S]+)\)$/);if(!t)return null;try{let e=t[2].trim();if(e.startsWith("[")&&e.endsWith("]"))return{m:t[1],a:JSON.parse(e)};if(/^-?\d+(\.\d+)?$/.test(e))return{m:t[1],a:[Number(e)]};if("true"===e||"false"===e)return{m:t[1],a:["true"===e]};if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return{m:t[1],a:[e.slice(1,-1)]};let r=e.split(",").map(e=>e.trim()).map(e=>/^-?\d+(\.\d+)?$/.test(e)?Number(e):"true"===e||"false"===e?"true"===e:e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e);return{m:t[1],a:r}}catch{return null}}(r),i=t?e[t.m]:void 0;t&&"function"==typeof i&&i.apply(e,t.a)}else{let t=r.trim();t&&!/[<>'"]/.test(t)?e.evalCommand(t):g.f.warn("[GGB]","Blocked potentially unsafe command",{command:r.substring(0,50)})}}catch(e){g.f.warn("[GGB]","Command failed",{command:r,error:e})}}e.s(["f",0,function({commands:e,height:t=700,showToolBar:r=!1,showAlgebraInput:f=!1,showMenuBar:y=!1,className:b="",onRegenerate:v,onDelete:C}){let{t:k}=(0,u.b)(),j=(0,n.useRef)(null),D=(0,n.useRef)(null),N=(0,n.useId)(),M=(0,n.useRef)(`ggb-${N.replace(/[^a-zA-Z0-9_-]/g,"")}`),[R,E]=(0,n.useState)(!0),[S,$]=(0,n.useState)(null),[I,_]=(0,n.useState)(!0),[P,B]=(0,n.useState)(!1),[H,A]=(0,n.useState)(!1),L=(0,n.useMemo)(()=>(function(e){if(!e?.trim())return[];let t=e.trim();if(t.startsWith("["))try{let e=JSON.parse(t);if(Array.isArray(e))return e.filter(e=>"string"==typeof e&&""!==e.trim())}catch{}return t.split("\n").map(e=>e.trim()).filter(e=>e&&!e.startsWith("//"))})(e),[e]);(0,n.useEffect)(()=>{if(0===L.length)return;let e=!1,i=M.current,n=j.current;return(p||(p=new Promise((e,t)=>{if(window.GGBApplet)return void e();let r=document.createElement("script");r.src="https://www.geogebra.org/apps/deployggb.js",r.async=!0,r.onload=()=>e(),r.onerror=()=>{p=null,t(Error("Failed to load GeoGebra"))},document.head.appendChild(r)}))).then(()=>{if(e)return;let a=window.GGBApplet;if(!a){$(k.geogebra.notLoaded),E(!1);return}if(n){n.innerHTML=`<div id="${i}" style="width:100%;height:${t}px"></div>`;try{new a({appName:"classic",width:"100%",height:t,showToolBar:r,showAlgebraInput:f,showMenuBar:y,showResetIcon:!0,enableRightClick:!0,enableShiftDragZoom:!0,language:"zh",appletOnLoad:r=>{e||(D.current=r,w(n,r,t),x(r,L),E(!1))}},!0).inject(i)}catch(t){g.f.error("[GGB]","Init failed",{error:t}),e||($(k.geogebra.initFailed),E(!1))}}}).catch(t=>{g.f.error("[GGB]","Script load failed",{error:t}),e||($(k.geogebra.scriptFailed),E(!1))}),()=>{e=!0;try{let e=D.current;e?.remove&&e.remove()}catch(e){g.f.warn("[GGB]","Cleanup failed",{error:e})}D.current=null,n&&(n.innerHTML="")}},[L,r,f,y]),(0,n.useEffect)(()=>{w(j.current,D.current,I?700:t)},[I,t]);let z=(0,n.useCallback)(()=>{let e=D.current;if(e)try{e.resetConstruction(),setTimeout(()=>{D.current&&x(D.current,L)},300)}catch(e){g.f.warn("[GGB]","Reset failed",{error:e})}},[L]),X=(0,n.useCallback)(async()=>{if(v&&!P){B(!0);try{await v()}finally{B(!1)}}},[v,P]),K=(0,n.useCallback)(async()=>{if(C&&!H&&await (0,m.u)(k.geogebra.confirmDelete,{destructive:!0})){A(!0);try{await C()}catch{m.c.error(k.geogebra.deleteFailed)}finally{A(!1)}}},[C,H,k]);return 0===L.length?null:(0,i.jsxs)("div",{className:`relative rounded-lg border bg-card ${b}`,children:[(0,i.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b bg-muted/30",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:k.geogebra.title}),R&&(0,i.jsx)(a.f,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,i.jsxs)("div",{className:"flex items-center gap-1",children:[v&&(0,i.jsxs)(c.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:X,title:k.geogebra.regenerate,disabled:P||R,children:[P?(0,i.jsx)(a.f,{className:"h-3.5 w-3.5 animate-spin"}):(0,i.jsx)(h.f,{className:"h-3.5 w-3.5"}),(0,i.jsx)("span",{children:k.geogebra.regenerate})]}),C&&(0,i.jsxs)(c.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:K,title:k.geogebra.delete,disabled:H||P,children:[H?(0,i.jsx)(a.f,{className:"h-3.5 w-3.5 animate-spin"}):(0,i.jsx)(d.f,{className:"h-3.5 w-3.5"}),(0,i.jsx)("span",{children:k.geogebra.delete})]}),(0,i.jsx)(c.f,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:z,title:k.geogebra.reset,disabled:R,children:(0,i.jsx)(l.f,{className:"h-3.5 w-3.5"})}),(0,i.jsx)(c.f,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>_(e=>!e),title:I?k.geogebra.shrink:k.geogebra.enlarge,children:I?(0,i.jsx)(o,{className:"h-3.5 w-3.5"}):(0,i.jsx)(s,{className:"h-3.5 w-3.5"})})]})]}),(0,i.jsx)("div",{ref:j,style:{width:"100%"}}),R&&(0,i.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 rounded-b-lg",style:{top:37},children:(0,i.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,i.jsx)(a.f,{className:"h-6 w-6 animate-spin text-primary"}),(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:k.geogebra.loading})]})}),S&&(0,i.jsx)("div",{className:"flex items-center justify-center text-sm text-destructive",style:{minHeight:t},children:S})]})}],3198)},283086,e=>{let t=(0,e.i(475254).f)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["f",0,t],283086)},469937,62825,e=>{var t=e.i(843476);let r=(0,e.i(475254).f)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var i=e.i(111110),n=e.i(975157);let a=[1,2,3,4,5];function s(e){return"not_attempted"===e||"wrong_attempt"===e||"unknown"===e?e:"unknown"}e.s(["f",0,function({value:e,onChange:s,disabled:o,size:l="sm",showUnrated:h=!0,className:d}){let{t:c}=(0,i.b)(),u=e??0,m="sm"===l?"h-3.5 w-3.5":"h-5 w-5",g=u?c.difficulty.starsLabel.replace("{n}",String(u)):c.difficulty.unrated;return s?(0,t.jsxs)("span",{className:(0,n.f)("inline-flex items-center gap-0.5",d),role:"group","aria-label":`${c.difficulty.label}:${g}`,title:c.difficulty.clearHint,children:[a.map(e=>(0,t.jsx)("button",{type:"button",disabled:o,onClick:()=>s(e===u?null:e),"aria-label":c.difficulty.setStars.replace("{n}",String(e)),"aria-pressed":e<=u,className:"rounded p-0.5 hover:bg-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,t.jsx)(r,{className:(0,n.f)(m,e<=u?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},e)),!u&&h&&(0,t.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:c.difficulty.unrated})]}):u?(0,t.jsx)("span",{className:(0,n.f)("inline-flex items-center",d),role:"img","aria-label":`${c.difficulty.label}:${g}`,title:g,children:a.map(e=>(0,t.jsx)(r,{className:(0,n.f)(m,e<=u?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},e))}):h?(0,t.jsx)("span",{className:(0,n.f)("text-xs text-muted-foreground",d),children:c.difficulty.unrated}):null}],469937),e.s(["i",0,function(e,t="zh"){return("en"===t?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[s(e)]},"h",0,s,"x",0,function(e,t){return(t||"").trim()?"wrong_attempt":s(e)}],62825)},12130,e=>{var t=e.i(843476),r=e.i(271645),i=r,n=Object.defineProperty,a=(e,t,r)=>{let i;return(i="symbol"!=typeof t?t+"":t)in e?n(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r};let s={x:0,y:0,width:0,height:0,unit:"px"},o=(e,t,r)=>Math.min(Math.max(e,t),r),l=(e,t)=>e===t||e.width===t.width&&e.height===t.height&&e.x===t.x&&e.y===t.y&&e.unit===t.unit;function h(e,t,r){return"%"===e.unit?{...s,...e,unit:"%"}:{unit:"%",x:e.x?e.x/t*100:0,y:e.y?e.y/r*100:0,width:e.width?e.width/t*100:0,height:e.height?e.height/r*100:0}}function d(e,t,r){return e.unit?"px"===e.unit?{...s,...e,unit:"px"}:{unit:"px",x:e.x?e.x*t/100:0,y:e.y?e.y*r/100:0,width:e.width?e.width*t/100:0,height:e.height?e.height*r/100:0}:{...s,...e,unit:"px"}}function c(e,t,r,i,n,a=0,s=0,o=i,l=n){let h={...e},d=Math.min(a,i),u=Math.min(s,n),m=Math.min(o,i),g=Math.min(l,n);t&&(t>1?(u=(d=s?s*t:d)/t,m=o*t):(d=(u=a?a/t:u)*t,g=l/t)),h.y<0&&(h.height=Math.max(h.height+h.y,u),h.y=0),h.x<0&&(h.width=Math.max(h.width+h.x,d),h.x=0);let p=i-(h.x+h.width);p<0&&(h.x=Math.min(h.x,i-d),h.width+=p);let f=n-(h.y+h.height);if(f<0&&(h.y=Math.min(h.y,n-u),h.height+=f),h.width<d&&(("sw"===r||"nw"==r)&&(h.x-=d-h.width),h.width=d),h.height<u&&(("nw"===r||"ne"==r)&&(h.y-=u-h.height),h.height=u),h.width>m&&(("sw"===r||"nw"==r)&&(h.x-=m-h.width),h.width=m),h.height>g&&(("nw"===r||"ne"==r)&&(h.y-=g-h.height),h.height=g),t){let e=h.width/h.height;if(e<t){let e=Math.max(h.width/t,u);("nw"===r||"ne"==r)&&(h.y-=e-h.height),h.height=e}else if(e>t){let e=Math.max(h.height*t,d);("sw"===r||"nw"==r)&&(h.x-=e-h.width),h.width=e}}return h}let u={capture:!0,passive:!1},m=0,g=class e extends i.PureComponent{constructor(){super(...arguments),a(this,"docMoveBound",!1),a(this,"mouseDownOnCrop",!1),a(this,"dragStarted",!1),a(this,"evData",{startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0}),a(this,"componentRef",(0,i.createRef)()),a(this,"mediaRef",(0,i.createRef)()),a(this,"resizeObserver"),a(this,"initChangeCalled",!1),a(this,"instanceId",`rc-${m++}`),a(this,"state",{cropIsActive:!1,newCropIsBeingDrawn:!1}),a(this,"onCropPointerDown",e=>{let{crop:t,disabled:r}=this.props,i=this.getBox();if(!t)return;let n=d(t,i.width,i.height);if(r)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let a=e.target.dataset.ord,s=e.clientX,o=e.clientY,l=n.x,h=n.y;if(a){let t=e.clientX-i.x,r=e.clientY-i.y,d=0,c=0;"ne"===a||"e"==a?(d=t-(n.x+n.width),c=r-n.y,l=n.x,h=n.y+n.height):"se"===a||"s"===a?(d=t-(n.x+n.width),c=r-(n.y+n.height),l=n.x,h=n.y):"sw"===a||"w"==a?(d=t-n.x,c=r-(n.y+n.height),l=n.x+n.width,h=n.y):("nw"===a||"n"==a)&&(d=t-n.x,c=r-n.y,l=n.x+n.width,h=n.y+n.height),s=l+i.x+d,o=h+i.y+c}this.evData={startClientX:s,startClientY:o,startCropX:l,startCropY:h,clientX:e.clientX,clientY:e.clientY,isResize:!!a,ord:a},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})}),a(this,"onComponentPointerDown",e=>{let{crop:t,disabled:r,locked:i,keepSelection:n,onChange:a}=this.props,s=this.getBox();if(r||i||n&&t)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let o=e.clientX-s.x,l=e.clientY-s.y,c={unit:"px",x:o,y:l,width:0,height:0};this.evData={startClientX:e.clientX,startClientY:e.clientY,startCropX:o,startCropY:l,clientX:e.clientX,clientY:e.clientY,isResize:!0},this.mouseDownOnCrop=!0,a(d(c,s.width,s.height),h(c,s.width,s.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})}),a(this,"onDocPointerMove",e=>{let t,{crop:r,disabled:i,onChange:n,onDragStart:a}=this.props,s=this.getBox();if(i||!r||!this.mouseDownOnCrop)return;e.cancelable&&e.preventDefault(),this.dragStarted||(this.dragStarted=!0,a&&a(e));let{evData:o}=this;o.clientX=e.clientX,o.clientY=e.clientY,l(r,t=o.isResize?this.resizeCrop():this.dragCrop())||n(d(t,s.width,s.height),h(t,s.width,s.height))}),a(this,"onComponentKeyDown",t=>{let{crop:r,disabled:i,onChange:n,onComplete:a}=this.props;if(i)return;let s=t.key,l=!1;if(!r)return;let c=this.getBox(),u=this.makePixelCrop(c),m=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?e.nudgeStepLarge:t.shiftKey?e.nudgeStepMedium:e.nudgeStep;if("ArrowLeft"===s?(u.x-=m,l=!0):"ArrowRight"===s?(u.x+=m,l=!0):"ArrowUp"===s?(u.y-=m,l=!0):"ArrowDown"===s&&(u.y+=m,l=!0),l){t.cancelable&&t.preventDefault(),u.x=o(u.x,0,c.width-u.width),u.y=o(u.y,0,c.height-u.height);let e=d(u,c.width,c.height),r=h(u,c.width,c.height);n(e,r),a&&a(e,r)}}),a(this,"onHandlerKeyDown",(t,r)=>{var i,n;let a,{aspect:s=0,crop:o,disabled:u,minWidth:m=0,minHeight:g=0,maxWidth:p,maxHeight:f,onChange:w,onComplete:x}=this.props,y=this.getBox();if(u||!o||"ArrowUp"!==t.key&&"ArrowDown"!==t.key&&"ArrowLeft"!==t.key&&"ArrowRight"!==t.key)return;t.stopPropagation(),t.preventDefault();let b=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?e.nudgeStepLarge:t.shiftKey?e.nudgeStepMedium:e.nudgeStep,v=c((i=d(o,y.width,y.height),n=t.key,a={...i},"ArrowLeft"===n?"nw"===r?(a.x-=b,a.y-=b,a.width+=b,a.height+=b):"w"===r?(a.x-=b,a.width+=b):"sw"===r?(a.x-=b,a.width+=b,a.height+=b):"ne"===r?(a.y+=b,a.width-=b,a.height-=b):"e"===r?a.width-=b:"se"===r&&(a.width-=b,a.height-=b):"ArrowRight"===n&&("nw"===r?(a.x+=b,a.y+=b,a.width-=b,a.height-=b):"w"===r?(a.x+=b,a.width-=b):"sw"===r?(a.x+=b,a.width-=b,a.height-=b):"ne"===r?(a.y-=b,a.width+=b,a.height+=b):"e"===r?a.width+=b:"se"===r&&(a.width+=b,a.height+=b)),"ArrowUp"===n?"nw"===r?(a.x-=b,a.y-=b,a.width+=b,a.height+=b):"n"===r?(a.y-=b,a.height+=b):"ne"===r?(a.y-=b,a.width+=b,a.height+=b):"sw"===r?(a.x+=b,a.width-=b,a.height-=b):"s"===r?a.height-=b:"se"===r&&(a.width-=b,a.height-=b):"ArrowDown"===n&&("nw"===r?(a.x+=b,a.y+=b,a.width-=b,a.height-=b):"n"===r?(a.y+=b,a.height-=b):"ne"===r?(a.y+=b,a.width-=b,a.height-=b):"sw"===r?(a.x-=b,a.width+=b,a.height+=b):"s"===r?a.height+=b:"se"===r&&(a.width+=b,a.height+=b)),a),s,r,y.width,y.height,m,g,p,f);if(!l(o,v)){let e=h(v,y.width,y.height);w(v,e),x&&x(v,e)}}),a(this,"onDocPointerDone",e=>{let{crop:t,disabled:r,onComplete:i,onDragEnd:n}=this.props,a=this.getBox();this.unbindDocMove(),!(r||!t)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,n&&n(e),i&&i(d(t,a.width,a.height),h(t,a.width,a.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))}),a(this,"onDragFocus",()=>{var e;null==(e=this.componentRef.current)||e.scrollTo(0,0)})}get document(){return document}getBox(){let e=this.mediaRef.current;if(!e)return{x:0,y:0,width:0,height:0};let{x:t,y:r,width:i,height:n}=e.getBoundingClientRect();return{x:t,y:r,width:i,height:n}}componentDidUpdate(e){let{crop:t,onComplete:r}=this.props;if(r&&!e.crop&&t){let{width:e,height:i}=this.getBox();e&&i&&r(d(t,e,i),h(t,e,i))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,u),this.document.addEventListener("pointerup",this.onDocPointerDone,u),this.document.addEventListener("pointercancel",this.onDocPointerDone,u),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,u),this.document.removeEventListener("pointerup",this.onDocPointerDone,u),this.document.removeEventListener("pointercancel",this.onDocPointerDone,u),this.docMoveBound=!1)}getCropStyle(){let{crop:e}=this.props;if(e)return{top:`${e.y}${e.unit}`,left:`${e.x}${e.unit}`,width:`${e.width}${e.unit}`,height:`${e.height}${e.unit}`}}dragCrop(){let{evData:e}=this,t=this.getBox(),r=this.makePixelCrop(t),i=e.clientX-e.startClientX,n=e.clientY-e.startClientY;return r.x=o(e.startCropX+i,0,t.width-r.width),r.y=o(e.startCropY+n,0,t.height-r.height),r}getPointRegion(e,t,r,i){let n,{evData:a}=this,s=a.clientX-e.x,o=a.clientY-e.y;return n=i&&t?"nw"===t||"n"===t||"ne"===t:o<a.startCropY,(r&&t?"nw"===t||"w"===t||"sw"===t:s<a.startCropX)?n?"nw":"sw":n?"ne":"se"}resolveMinDimensions(e,t,r=0,i=0){let n=Math.min(r,e.width),a=Math.min(i,e.height);return t&&(n||a)?t>1?n?[n,n/t]:[a*t,a]:a?[a*t,a]:[n,n/t]:[n,a]}resizeCrop(){let{evData:t}=this,{aspect:r=0,maxWidth:i,maxHeight:n}=this.props,a=this.getBox(),[s,l]=this.resolveMinDimensions(a,r,this.props.minWidth,this.props.minHeight),h=this.makePixelCrop(a),d=this.getPointRegion(a,t.ord,s,l),u=t.ord||d,m=t.clientX-t.startClientX,g=t.clientY-t.startClientY;(s&&"nw"===u||"w"===u||"sw"===u)&&(m=Math.min(m,-s)),(l&&"nw"===u||"n"===u||"ne"===u)&&(g=Math.min(g,-l));let p={unit:"px",x:0,y:0,width:0,height:0};"ne"===d?(p.x=t.startCropX,p.width=m,r?p.height=p.width/r:p.height=Math.abs(g),p.y=t.startCropY-p.height):"se"===d?(p.x=t.startCropX,p.y=t.startCropY,p.width=m,r?p.height=p.width/r:p.height=g):"sw"===d?(p.x=t.startCropX+m,p.y=t.startCropY,p.width=Math.abs(m),r?p.height=p.width/r:p.height=g):"nw"===d&&(p.x=t.startCropX+m,p.width=Math.abs(m),r?(p.height=p.width/r,p.y=t.startCropY-p.height):(p.height=Math.abs(g),p.y=t.startCropY+g));let f=c(p,r,d,a.width,a.height,s,l,i,n);return r||e.xyOrds.indexOf(u)>-1?h=f:e.xOrds.indexOf(u)>-1?(h.x=f.x,h.width=f.width):e.yOrds.indexOf(u)>-1&&(h.y=f.y,h.height=f.height),h.x=o(h.x,0,a.width-h.width),h.y=o(h.y,0,a.height-h.height),h}renderCropSelection(){let{ariaLabels:t=e.defaultProps.ariaLabels,disabled:r,locked:n,renderSelectionAddon:a,ruleOfThirds:s,crop:o}=this.props,l=this.getCropStyle();if(o)return i.default.createElement("div",{style:l,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!r&&!n&&i.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},i.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),i.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),i.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),i.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":t.nwDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"nw"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":t.nDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"n"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":t.neDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"ne"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":t.eDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"e"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":t.seDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"se"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":t.sDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"s"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":t.swDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"sw"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":t.wDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"w"),role:"button"})),a&&i.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:e=>e.stopPropagation()},a(this.state)),s&&i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),i.default.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(e){return d({...s,...this.props.crop||{}},e.width,e.height)}render(){let{aspect:e,children:t,circularCrop:r,className:n,crop:a,disabled:s,locked:o,style:l,ruleOfThirds:h}=this.props,{cropIsActive:d,newCropIsBeingDrawn:c}=this.state,u=a?this.renderCropSelection():null,m=((...e)=>e.filter(e=>e&&"string"==typeof e).join(" "))("ReactCrop",n,d&&"ReactCrop--active",s&&"ReactCrop--disabled",o&&"ReactCrop--locked",c&&"ReactCrop--new-crop",a&&e&&"ReactCrop--fixed-aspect",a&&r&&"ReactCrop--circular-crop",a&&h&&"ReactCrop--rule-of-thirds",!this.dragStarted&&a&&!a.width&&!a.height&&"ReactCrop--invisible-crop",r&&"ReactCrop--no-animate");return i.default.createElement("div",{ref:this.componentRef,className:m,style:l},i.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},t),a?i.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},i.default.createElement("defs",null,i.default.createElement("mask",{id:`hole-${this.instanceId}`},i.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),r?i.default.createElement("ellipse",{cx:`${a.x+a.width/2}${a.unit}`,cy:`${a.y+a.height/2}${a.unit}`,rx:`${a.width/2}${a.unit}`,ry:`${a.height/2}${a.unit}`,fill:"black"}):i.default.createElement("rect",{x:`${a.x}${a.unit}`,y:`${a.y}${a.unit}`,width:`${a.width}${a.unit}`,height:`${a.height}${a.unit}`,fill:"black"}))),i.default.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,u)}};a(g,"xOrds",["e","w"]),a(g,"yOrds",["n","s"]),a(g,"xyOrds",["nw","ne","se","sw"]),a(g,"nudgeStep",1),a(g,"nudgeStepMedium",10),a(g,"nudgeStepLarge",100),a(g,"defaultProps",{ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}});var p=e.i(519455),f=e.i(776639),w=e.i(37727),x=e.i(111110);async function y(e,t){let{naturalWidth:r,naturalHeight:i}=e;return Promise.all(t.map(t=>new Promise((n,a)=>{let s=document.createElement("canvas"),o=Math.round(t.x*r),l=Math.round(t.y*i);s.width=Math.max(1,Math.round(t.width*r)),s.height=Math.max(1,Math.round(t.height*i));let h=s.getContext("2d");h?(h.drawImage(e,o,l,s.width,s.height,0,0,s.width,s.height),s.toBlob(e=>e?n(e):a(Error("Canvas is empty")),"image/jpeg",.95)):a(Error("Canvas is not supported"))})))}let b=(0,r.forwardRef)(function({imageSrc:e,regions:i,onChange:n},a){let{t:s}=(0,x.b)(),o=(0,r.useRef)(null),l=(0,r.useRef)(null),[h,d]=(0,r.useState)(null),c=e=>{let t=o.current.getBoundingClientRect();return{x:(e.clientX-t.left)/t.width,y:(e.clientY-t.top)/t.height}},u=()=>{h&&h.width>=.02&&h.height>=.02&&n([...i,h]),l.current=null,d(null)},m=e=>({left:`${100*e.x}%`,top:`${100*e.y}%`,width:`${100*e.width}%`,height:`${100*e.height}%`});return(0,t.jsxs)("div",{className:"relative inline-block select-none",children:[(0,t.jsx)("img",{ref:a,src:e,alt:"",draggable:!1,style:{maxHeight:"65vh",maxWidth:"100%",objectFit:"contain"},className:"block"}),(0,t.jsxs)("div",{ref:o,className:"absolute inset-0 cursor-crosshair",style:{touchAction:"none"},onPointerDown:e=>{0===e.button&&(o.current?.setPointerCapture(e.pointerId),l.current=c(e),d(null))},onPointerMove:e=>{var t,r,i,n;let a,s,o;if(!l.current)return;let h=c(e);d((t=l.current.x,r=l.current.y,i=h.x,n=h.y,s=(a=e=>Math.min(1,Math.max(0,e)))(Math.min(t,i)),o=a(Math.min(r,n)),{x:s,y:o,width:a(Math.max(t,i))-s,height:a(Math.max(r,n))-o}))},onPointerUp:u,onPointerCancel:u,children:[i.map((e,r)=>(0,t.jsxs)("div",{className:"absolute border-2 border-sky-400 bg-sky-400/15",style:m(e),children:[(0,t.jsx)("span",{className:"absolute left-0 top-0 bg-sky-500 px-1.5 text-xs font-bold text-white",children:r+1}),(0,t.jsx)("button",{type:"button",className:"absolute -right-3 -top-3 flex h-6 w-6 items-center justify-center rounded-full bg-red-500 text-white shadow","aria-label":s.batchImport.removeRegion.replace("{index}",String(r+1)),onPointerDown:e=>e.stopPropagation(),onClick:()=>n(i.filter((e,t)=>t!==r)),children:(0,t.jsx)(w.X,{className:"h-3 w-3"})})]},r)),h&&(0,t.jsx)("div",{className:"absolute border-2 border-dashed border-yellow-300 bg-yellow-300/10",style:m(h)})]})]})});var v=e.i(201276);e.s(["f",0,function({imageSrc:e,open:i,onClose:n,onCropComplete:a,onMultiCropComplete:s}){let{t:o}=(0,x.b)(),[l,h]=(0,r.useState)(),[d,c]=(0,r.useState)(),u=(0,r.useRef)(null),[m,w]=(0,r.useState)("single"),[C,k]=(0,r.useState)({src:e,regions:[]}),j=C.src===e?C.regions:[],D=t=>k({src:e,regions:t}),N=(0,r.useRef)(null),M=async()=>{if(N.current&&0!==j.length&&s)try{s(await y(N.current,j)),D([])}catch(e){v.f.error("[ImageCropper]","Multi-image crop failed",{error:e})}},R=async(e,t)=>{let r=document.createElement("canvas"),i=e.naturalWidth/e.width,n=e.naturalHeight/e.height;r.width=t.width*i,r.height=t.height*n;let a=r.getContext("2d");return a?(a.drawImage(e,t.x*i,t.y*n,t.width*i,t.height*n,0,0,t.width*i,t.height*n),new Promise((e,t)=>{r.toBlob(r=>{r?e(r):t(Error("Canvas is empty"))},"image/jpeg")})):null},E=async()=>{if(d&&u.current)try{let e=await R(u.current,d);e&&a(e)}catch(e){v.f.error("[ImageCropper]","Crop failed",{error:e})}else if(!d&&e)try{let t=await fetch(e),r=await t.blob();a(r)}catch(e){v.f.error("[ImageCropper]","Failed to load original image",{error:e})}};return(0,t.jsx)(f.N,{open:i,onOpenChange:e=>!e&&n(),children:(0,t.jsxs)(f.d,{className:"max-w-3xl h-[90vh] flex flex-col p-0 gap-0",children:[(0,t.jsx)(f.s,{className:"p-4 border-b shrink-0",children:(0,t.jsx)(f.F,{children:o.common.cropper?.title||"Crop Image"})}),(0,t.jsx)("div",{className:"flex-1 bg-black w-full overflow-auto flex items-center justify-center p-4",children:"multi"===m?(0,t.jsx)(b,{ref:N,imageSrc:e,regions:j,onChange:D}):(0,t.jsx)(g,{crop:l,onChange:(e,t)=>h(t),onComplete:e=>c(e),className:"max-h-full",children:(0,t.jsx)("img",{ref:u,alt:"Crop me",src:e,onLoad:function(e){let{width:t,height:r}=e.currentTarget;h({unit:"%",x:0,y:0,width:100,height:100}),c({unit:"px",x:0,y:0,width:t,height:r})},style:{maxHeight:"70vh",maxWidth:"100%",objectFit:"contain"}})})}),(0,t.jsxs)("div",{className:"p-4 border-t bg-background shrink-0 space-y-3",children:[s&&(0,t.jsx)("div",{className:"grid grid-cols-2 gap-1 rounded-md bg-muted p-1 sm:w-80",children:["single","multi"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>w(e),className:`rounded px-3 py-1.5 text-sm font-medium transition-colors ${m===e?"bg-background shadow-sm":"text-muted-foreground"}`,children:"single"===e?o.batchImport.singleMode:o.batchImport.multiMode},e))}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"multi"===m?`${o.batchImport.hint} ${o.batchImport.regionCount.replace("{count}",String(j.length))}`:o.common.cropper?.hint||"💡 Drag to adjust crop area"}),(0,t.jsxs)("div",{className:"flex gap-2 justify-end",children:["multi"===m&&j.length>0&&(0,t.jsx)(p.f,{variant:"ghost",onClick:()=>D([]),children:o.batchImport.clear}),(0,t.jsx)(p.f,{variant:"outline",onClick:n,children:o.common.cancel||"Cancel"}),"multi"===m?(0,t.jsx)(p.f,{onClick:M,disabled:0===j.length,children:o.batchImport.start.replace("{count}",String(j.length))}):(0,t.jsx)(p.f,{onClick:E,children:o.common.confirm||"Confirm"})]})]})]})]})})}],12130)},141176,e=>{var t=e.i(843476),r=e.i(271645);let i=(0,e.i(475254).f)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);var n=e.i(286536),a=e.i(511445),s=e.i(624687),o=e.i(111110),l=e.i(975157);e.s(["f",0,function({value:e,onChange:h,className:d,...c}){let{t:u}=(0,o.b)(),[m,g]=(0,r.useState)("source"),p=(0,r.useId)(),f=[{mode:"source",label:u.markdownEditor.source,icon:i},{mode:"preview",label:u.markdownEditor.preview,icon:n.f}];return(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("div",{role:"tablist","aria-label":u.markdownEditor.modeLabel,className:"flex justify-end",children:(0,t.jsx)("div",{className:"inline-flex rounded-md border bg-muted/40 p-0.5",children:f.map(({mode:e,label:r,icon:i})=>(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":m===e,"aria-controls":p,onClick:()=>g(e),className:(0,l.f)("flex items-center gap-1 rounded px-2.5 py-1 text-xs transition-colors",m===e?"bg-background font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,t.jsx)(i,{className:"h-3.5 w-3.5"}),r]},e))})}),(0,t.jsx)("div",{id:p,role:"tabpanel",children:"source"===m?(0,t.jsx)(s.f,{value:e,onChange:e=>h(e.target.value),className:d,...c}):(0,t.jsx)("div",{className:"min-h-24 cursor-text rounded-md border bg-muted/20 px-3 py-2",onDoubleClick:()=>g("source"),title:u.markdownEditor.doubleClickToEdit,children:e.trim()?(0,t.jsx)(a.f,{content:e}):(0,t.jsx)("p",{className:"text-sm italic text-muted-foreground",children:u.markdownEditor.empty})})})]})}],141176)},438465,e=>{var t=e.i(843476),r=e.i(271645),i=e.i(967489),n=e.i(810980),a=e.i(41931),s=e.i(201276),o=e.i(111110);e.s(["f",0,function({value:e,onChange:l,className:h}){let[d,c]=(0,r.useState)([]),{t:u}=(0,o.b)();return(0,r.useEffect)(()=>{(async()=>{try{let e=await a.f.get("/api/notebooks");c(e)}catch(e){s.f.error("[NotebookSelector]","Failed to fetch notebooks",{error:e})}})()},[]),(0,t.jsxs)(i.d,{value:e,onValueChange:l,children:[(0,t.jsx)(i.P,{className:h,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.f,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)(i.U,{placeholder:u.notebooks?.selector?.placeholder||"Select Notebook"})]})}),(0,t.jsx)(i.r,{children:0===d.length?(0,t.jsx)("div",{className:"p-2 text-sm text-muted-foreground text-center",children:u.notebooks?.selector?.empty||"No notebooks available"}):d.map(e=>(0,t.jsx)(i.T,{value:e.id,children:e.name},e.id))})]})}])},574041,e=>{var t=e.i(843476),r=e.i(271645),i=e.i(37727),n=e.i(487486),a=e.i(793479),s=e.i(41931),o=e.i(201276);e.s(["f",0,function({value:e=[],onChange:l,placeholder:h="Enter tags...",className:d="",enterHint:c,subject:u,gradeStage:m}){let[g,p]=(0,r.useState)(""),[f,w]=(0,r.useState)([]),[x,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)(0),C=(0,r.useRef)(null),k=(0,r.useRef)(null),j=(0,r.useCallback)(async t=>{try{let r=new URLSearchParams({q:t});u&&r.append("subject",u),m&&r.append("stage",m);let i=((await s.f.get(`/api/tags/suggestions?${r.toString()}`)).suggestions||[]).filter(t=>!e.includes(t));w(i.slice(0,20)),y(i.length>0),v(0)}catch(e){o.f.error("[TagInput]","Failed to fetch suggestions",{error:e})}},[u,m,e]);(0,r.useEffect)(()=>{g.trim()&&j(g)},[g,j]);let D=t=>{t.trim()&&!e.includes(t.trim())&&(l([...e,t.trim()]),p(""),w([]),y(!1),v(0))},N=t=>{l(e.filter(e=>e!==t))};return(0,r.useEffect)(()=>{let e=e=>{!k.current||k.current.contains(e.target)||C.current?.contains(e.target)||y(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,t.jsxs)("div",{className:`relative ${d}`,children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 p-2 border rounded-lg bg-background min-h-[42px]",children:[e.map(e=>(0,t.jsxs)(n.f,{variant:"secondary",className:"flex items-center gap-1 px-2 py-1",children:[e,(0,t.jsx)("button",{type:"button",onClick:()=>N(e),className:"hover:text-destructive ml-1",children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},e)),(0,t.jsx)(a.f,{ref:C,type:"text",value:g,onChange:e=>{p(e.target.value),e.target.value.trim()||(w([]),y(!1))},onKeyDown:t=>{"Enter"===t.key?(t.preventDefault(),b>=0&&f[b]?D(f[b]):g.trim()&&D(g)):"ArrowDown"===t.key?(t.preventDefault(),v(e=>Math.min(e+1,f.length-1))):"ArrowUp"===t.key?(t.preventDefault(),v(e=>Math.max(e-1,0))):"Escape"===t.key?(y(!1),v(0)):"Backspace"===t.key&&!g&&e.length>0&&N(e[e.length-1])},onFocus:()=>{f.length>0&&y(!0)},placeholder:0===e.length?h:"",className:"flex-1 min-w-[120px] border-none focus-visible:ring-0 focus-visible:ring-offset-0 h-8 px-0"})]}),x&&f.length>0&&(0,t.jsx)("div",{ref:k,className:"absolute z-50 w-full mt-1 bg-popover border rounded-md shadow-md max-h-48 overflow-y-auto",children:f.map((e,r)=>(0,t.jsx)("div",{className:`px-3 py-2 cursor-pointer hover:bg-accent ${r===b?"bg-accent":""}`,onClick:()=>D(e),onMouseEnter:()=>v(r),children:e},e))}),g&&!x&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:c?`${c} "${g}"`:`Press Enter to create "${g}"`})]})}])},28928,e=>{var t=e.i(201276);async function r(e,i=1,n=1920,a=.8){return new Promise((r,s)=>{let o=new FileReader;o.onload=o=>{let l=new Image;l.onload=()=>{let o=document.createElement("canvas"),h=o.getContext("2d");if(!h)return void s(Error("无法获取 Canvas 上下文"));let d=l.width,c=l.height;d>n&&(c=c*n/d,d=n),o.width=d,o.height=c,h.drawImage(l,0,0,d,c);let u=a,m=o.toDataURL("image/jpeg",u),g=3*m.length/4/1024/1024;for(;g>i&&u>.1;){u-=.1;let e=3*(m=o.toDataURL("image/jpeg",u)).length/4/1024/1024;if(t.f.info("[ImageCompress]","Compression step",{quality:Number(u.toFixed(1)),sizeMB:Number(e.toFixed(2))},{sendToBackend:!1}),e<=i)break}t.f.info("[ImageCompress]","Compression finished",{originalMB:Number((e.size/1024/1024).toFixed(2)),compressedMB:Number((3*m.length/4/1024/1024).toFixed(2))}),r(m)},l.onerror=()=>s(Error("图片加载失败")),l.src=o.target?.result},o.onerror=()=>s(Error("文件读取失败")),o.readAsDataURL(e)})}async function i(e){let i=e.size/1024/1024;return(t.f.info("[ImageCompress]","File size checked",{sizeMB:Number(i.toFixed(2))},{sendToBackend:!1}),i>1)?(t.f.info("[ImageCompress]","File exceeds threshold, compressing",void 0,{sendToBackend:!1}),await r(e,1)):(t.f.info("[ImageCompress]","File size OK, no compression needed",void 0,{sendToBackend:!1}),new Promise((t,r)=>{let i=new FileReader;i.onload=()=>t(i.result),i.onerror=r,i.readAsDataURL(e)}))}e.s(["f",0,i])},952122,e=>{e.i(306831),e.s(["f",0,function(e){if(!e)return null;let t=e.toLowerCase();return t.includes("math")||t.includes("数学")?"math":t.includes("physics")||t.includes("物理")?"physics":t.includes("chemistry")||t.includes("化学")?"chemistry":t.includes("biology")||t.includes("生物")?"biology":t.includes("english")||t.includes("英语")?"english":t.includes("chinese")||t.includes("语文")?"chinese":t.includes("history")||t.includes("历史")?"history":t.includes("geography")||t.includes("地理")?"geography":t.includes("politics")||t.includes("政治")?"politics":null}])},943710,e=>{e.s(["f",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])}])})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63209,e=>{let t=(0,e.i(475254).f)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["f",0,t],63209)},586906,e=>{var t=e.i(843476),s=e.i(271645),a=e.i(618566),r=e.i(519455),i=e.i(793479),l=e.i(515288),n=e.i(522016),o=e.i(480342),d=e.i(111110),c=e.i(35209),u=e.i(215519),m=e.i(306831),h=e.i(286536),x=e.i(77705),g=e.i(531278),f=e.i(63209),p=e.i(41931),j=e.i(294114),v=e.i(201276),b=e.i(303163);e.s(["default",0,function(){let{timeZone:e}=(0,u.M)(),y=(0,a.useRouter)(),{t:N}=(0,d.b)();(0,c.f)(N.pageTitle.register);let[w,S]=(0,s.useState)(""),[k,C]=(0,s.useState)(""),[Y,P]=(0,s.useState)(""),[R,T]=(0,s.useState)(""),[q,F]=(0,s.useState)("junior_high"),[E,A]=(0,s.useState)("2025"),[H,L]=(0,s.useState)(""),[O,_]=(0,s.useState)(!1),[z,U]=(0,s.useState)(!1),[B,D]=(0,s.useState)(!1),[I,M]=(0,s.useState)(null),K=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/register/status"),t=await e.json();M(t.allowRegistration)}catch(e){v.f.error("[Register]","Failed to check registration status",{error:e}),M(!0)}},[]);(0,s.useEffect)(()=>{K()},[K]);let J=async e=>{if(e.preventDefault(),_(!0),L(""),Y!==R){L(N.auth?.register?.passwordMismatch||"Passwords do not match"),_(!1);return}try{await p.f.post("/api/register",{name:w,email:k,password:Y,educationStage:q,enrollmentYear:parseInt(E)}),j.c.success(N.auth?.register?.success||"Registration successful! Please login"),y.push("/login")}catch(t){let e=(0,b.d)(t);e="User with this email already exists"===e?N.auth?.register?.emailExists||e:e||N.auth?.register?.failed||"Registration failed",L(e)}finally{_(!1)}};return null===I?(0,t.jsx)(o.f,{children:(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsx)(g.f,{className:"h-8 w-8 animate-spin text-primary"})})}):!1===I?(0,t.jsx)(o.f,{children:(0,t.jsxs)(l.N,{className:"w-full rounded-2xl border-0 shadow-xl shadow-indigo-500/5 ring-1 ring-border",children:[(0,t.jsx)(l.Y,{children:(0,t.jsx)(l.v,{className:"text-2xl text-center",children:N.auth?.register?.disabled||"Registration Disabled"})}),(0,t.jsxs)(l.O,{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4 py-6",children:[(0,t.jsx)(f.f,{className:"h-12 w-12 text-muted-foreground"}),(0,t.jsx)("p",{className:"text-center text-muted-foreground",children:N.auth?.register?.disabledMessage||"Registration is currently disabled by administrator. Please contact admin for access."})]}),(0,t.jsx)("div",{className:"text-center",children:(0,t.jsx)(n.default,{href:"/login",className:"text-primary hover:underline",children:N.auth?.register?.backToLogin||"Back to Login"})})]})]})}):(0,t.jsx)(o.f,{children:(0,t.jsxs)(l.N,{className:"w-full rounded-2xl border-0 shadow-xl shadow-indigo-500/5 ring-1 ring-border",children:[(0,t.jsx)(l.Y,{children:(0,t.jsx)(l.v,{className:"text-2xl text-center",children:N.auth?.register?.title||"Create an Account"})}),(0,t.jsx)(l.O,{children:(0,t.jsxs)("form",{onSubmit:J,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"name",className:"text-sm font-medium",children:N.auth?.name||"Name"}),(0,t.jsx)(i.f,{id:"name",name:"name",type:"text",value:w,onChange:e=>S(e.target.value),required:!0})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"email",className:"text-sm font-medium",children:N.auth?.email||"Email"}),(0,t.jsx)(i.f,{id:"email",name:"email",type:"email",value:k,onChange:e=>C(e.target.value),required:!0})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"password",className:"text-sm font-medium",children:N.auth?.password||"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(i.f,{id:"password",name:"password",type:z?"text":"password",value:Y,onChange:e=>P(e.target.value),required:!0,minLength:6,className:"pr-10"}),(0,t.jsx)(r.f,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",onClick:()=>U(!z),tabIndex:-1,children:z?(0,t.jsx)(x.f,{className:"h-4 w-4 text-muted-foreground"}):(0,t.jsx)(h.f,{className:"h-4 w-4 text-muted-foreground"})})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"confirmPassword",className:"text-sm font-medium",children:N.auth?.confirmPassword||"Confirm Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(i.f,{id:"confirmPassword",name:"confirmPassword",type:B?"text":"password",value:R,onChange:e=>T(e.target.value),required:!0,minLength:6,className:"pr-10"}),(0,t.jsx)(r.f,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent",onClick:()=>D(!B),tabIndex:-1,children:B?(0,t.jsx)(x.f,{className:"h-4 w-4 text-muted-foreground"}):(0,t.jsx)(h.f,{className:"h-4 w-4 text-muted-foreground"})})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"educationStage",className:"text-sm font-medium",children:N.auth?.educationStage||"Education Stage"}),(0,t.jsxs)("select",{id:"educationStage",name:"educationStage",className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:q,onChange:e=>F(e.target.value),required:!0,children:[(0,t.jsx)("option",{value:"",disabled:!0,children:N.auth?.selectStage||"Select Stage"}),(0,t.jsx)("option",{value:"primary",children:N.auth?.primary||"Primary School"}),(0,t.jsx)("option",{value:"junior_high",children:N.auth?.juniorHigh||"Junior High"}),(0,t.jsx)("option",{value:"senior_high",children:N.auth?.seniorHigh||"Senior High"}),(0,t.jsx)("option",{value:"university",children:N.auth?.university||"University"})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{htmlFor:"enrollmentYear",className:"text-sm font-medium",children:N.auth?.enrollmentYear||"Enrollment Year"}),(0,t.jsx)(i.f,{id:"enrollmentYear",name:"enrollmentYear",type:"number",value:E,onChange:e=>A(e.target.value),placeholder:"YYYY",required:!0,min:1990,max:Number((0,m.r)(new Date,"yyyy",e))})]}),H&&(0,t.jsx)("div",{className:"rounded-lg bg-destructive/10 px-3 py-2 text-center text-sm text-destructive",children:H}),(0,t.jsx)(r.f,{type:"submit",size:"lg",className:"w-full",disabled:O,children:O?N.auth?.register?.registering||"Registering...":N.auth?.register?.action||"Register"}),(0,t.jsxs)("div",{className:"text-center text-sm text-muted-foreground",children:[N.auth?.register?.hasAccount||"Already have an account? ",(0,t.jsx)(n.default,{href:"/login",className:"text-primary hover:underline",children:N.auth?.register?.loginHere||"Login here"})]})]})})]})})}])},480342,e=>{var t=e.i(843476),s=e.i(325164),a=e.i(111110);e.s(["f",0,function({children:e}){let{t:r}=(0,a.b)();return(0,t.jsxs)("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[(0,t.jsx)("div",{className:"pointer-events-none absolute -left-32 -top-32 h-96 w-96 rounded-full bg-indigo-400/25 blur-3xl"}),(0,t.jsx)("div",{className:"pointer-events-none absolute -bottom-40 -right-24 h-[28rem] w-[28rem] rounded-full bg-violet-400/20 blur-3xl"}),(0,t.jsxs)("div",{className:"relative w-full max-w-md space-y-6 py-8",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,t.jsx)(s.default,{src:"/icons/icon.png",alt:"",width:64,height:64,className:"rounded-2xl shadow-lg shadow-indigo-500/30",priority:!0,unoptimized:!0}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xl font-bold tracking-tight",children:r.pageTitle.base}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:r.app.subtitle})]})]}),e]})]})}])},515288,e=>{var t=e.i(843476),s=e.i(975157);e.s(["N",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,s.f)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...a})},"O",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,s.f)("px-6",e),...a})},"u",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,s.f)("text-muted-foreground text-sm",e),...a})},"Y",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,s.f)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...a})},"v",0,function({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,s.f)("leading-none font-semibold",e),...a})}])},35209,e=>{var t=e.i(271645),s=e.i(111110);e.s(["f",0,function(...e){let{t:a}=(0,s.b)(),r=[a.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,t.useEffect)(()=>{document.title=r},[r])}])}])})();
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,981140,e=>{"u">typeof window&&window.document&&window.document.createElement,e.s(["f",0,function(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}])},75830,e=>{var t=e.i(271645),r=e.i(30030),n=e.i(820783),o=e.i(843476);function i(e){var r;let i,a=(r=e,(i=t.forwardRef((e,r)=>{let{children:o,...i}=e;if(t.isValidElement(o)){var a;let e,l,s=(a=o,(l=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(l=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(i,o.props);return o.type!==t.Fragment&&(u.ref=r?(0,n.Q)(r,s):s),t.cloneElement(o,u)}return t.Children.count(o)>1?t.Children.only(null):null})).displayName=`${r}.SlotClone`,i),s=t.forwardRef((e,r)=>{let{children:n,...i}=e,s=t.Children.toArray(n),u=s.find(l);if(u){let e=u.props.children,n=s.map(r=>r!==u?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,o.jsx)(a,{...i,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,n):null})}return(0,o.jsx)(a,{...i,ref:r,children:n})});return s.displayName=`${e}.Slot`,s}var a=Symbol("radix.slottable");function l(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===a}e.s(["f",0,function(e){let a=e+"CollectionProvider",[l,s]=(0,r.c)(a),[u,d]=l(a,{collectionRef:{current:null},itemMap:new Map}),f=e=>{let{scope:r,children:n}=e,i=t.default.useRef(null),a=t.default.useRef(new Map).current;return(0,o.jsx)(u,{scope:r,itemMap:a,collectionRef:i,children:n})};f.displayName=a;let c=e+"CollectionSlot",p=i(c),m=t.default.forwardRef((e,t)=>{let{scope:r,children:i}=e,a=d(c,r),l=(0,n.j)(t,a.collectionRef);return(0,o.jsx)(p,{ref:l,children:i})});m.displayName=c;let h=e+"CollectionItemSlot",g="data-radix-collection-item",y=i(h),v=t.default.forwardRef((e,r)=>{let{scope:i,children:a,...l}=e,s=t.default.useRef(null),u=(0,n.j)(r,s),f=d(h,i);return t.default.useEffect(()=>(f.itemMap.set(s,{ref:s,...l}),()=>void f.itemMap.delete(s))),(0,o.jsx)(y,{...{[g]:""},ref:u,children:a})});return v.displayName=h,[{Provider:f,Slot:m,ItemSlot:v},function(r){let n=d(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${g}]`));return Array.from(n.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[n.collectionRef,n.itemMap])},s]}],75830)},30030,e=>{var t=e.i(271645),r=e.i(843476);e.s(["e",0,function(e,n){let o=t.createContext(n),i=e=>{let{children:n,...i}=e,a=t.useMemo(()=>i,Object.values(i));return(0,r.jsx)(o.Provider,{value:a,children:n})};return i.displayName=e+"Provider",[i,function(r){let i=t.useContext(o);if(i)return i;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${e}\``)}]},"c",0,function(e,n=[]){let o=[],i=()=>{let r=o.map(e=>t.createContext(e));return function(n){let o=n?.[e]||r;return t.useMemo(()=>({[`__scope${e}`]:{...n,[e]:o}}),[n,o])}};return i.scopeName=e,[function(n,i){let a=t.createContext(i),l=o.length;o=[...o,i];let s=n=>{let{scope:o,children:i,...s}=n,u=o?.[e]?.[l]||a,d=t.useMemo(()=>s,Object.values(s));return(0,r.jsx)(u.Provider,{value:d,children:i})};return s.displayName=n+"Provider",[s,function(r,o){let s=o?.[e]?.[l]||a,u=t.useContext(s);if(u)return u;if(void 0!==i)return i;throw Error(`\`${r}\` must be used within \`${n}\``)}]},function(...e){let r=e[0];if(1===e.length)return r;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=n.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return t.useMemo(()=>({[`__scope${r.scopeName}`]:o}),[o])}};return n.scopeName=r.scopeName,n}(i,...n)]}])},586318,e=>{var t=e.i(271645);e.i(843476);var r=t.createContext(void 0);e.s(["f",0,function(e){let n=t.useContext(r);return e||n||"ltr"}])},610772,e=>{var t=e.i(271645),r=e.i(934620),n=t[" useId ".trim().toString()]||(()=>void 0),o=0;e.s(["f",0,function(e){let[i,a]=t.useState(n());return(0,r.f)(()=>{e||a(e=>e??String(o++))},[e]),e||(i?`radix-${i}`:"")}])},30207,e=>{var t=e.i(271645);e.s(["f",0,function(e){let r=t.useRef(e);return t.useEffect(()=>{r.current=e}),t.useMemo(()=>(...e)=>r.current?.(...e),[])}])},369340,934620,296626,e=>{var t=e.i(271645),r=globalThis?.document?t.useLayoutEffect:()=>{};e.s(["f",0,r],934620),t[" useEffectEvent ".trim().toString()],t[" useInsertionEffect ".trim().toString()];var n=t[" useInsertionEffect ".trim().toString()]||r;Symbol("RADIX:SYNC_STATE"),e.s(["f",0,function({prop:e,defaultProp:r,onChange:o=()=>{},caller:i}){let[a,l,s]=function({defaultProp:e,onChange:r}){let[o,i]=t.useState(e),a=t.useRef(o),l=t.useRef(r);return n(()=>{l.current=r},[r]),t.useEffect(()=>{a.current!==o&&(l.current?.(o),a.current=o)},[o,a]),[o,i,l]}({defaultProp:r,onChange:o}),u=void 0!==e,d=u?e:a;{let r=t.useRef(void 0!==e);t.useEffect(()=>{let e=r.current;if(e!==u){let t=u?"controlled":"uncontrolled";console.warn(`${i} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}r.current=u},[u,i])}return[d,t.useCallback(t=>{if(u){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[u,e,l,s])]}],369340);var o=e.i(820783),i=e=>{var n;let i,l,{present:s,children:u}=e,d=function(e){var n,o;let[i,l]=t.useState(),s=t.useRef(null),u=t.useRef(e),d=t.useRef("none"),[f,c]=(n=e?"mounted":"unmounted",o={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},t.useReducer((e,t)=>o[e][t]??e,n));return t.useEffect(()=>{let e=a(s.current);d.current="mounted"===f?e:"none"},[f]),r(()=>{let t=s.current,r=u.current;if(r!==e){let n=d.current,o=a(t);e?c("MOUNT"):"none"===o||t?.display==="none"?c("UNMOUNT"):r&&n!==o?c("ANIMATION_OUT"):c("UNMOUNT"),u.current=e}},[e,c]),r(()=>{if(i){let e,t=i.ownerDocument.defaultView??window,r=r=>{let n=a(s.current).includes(CSS.escape(r.animationName));if(r.target===i&&n&&(c("ANIMATION_END"),!u.current)){let r=i.style.animationFillMode;i.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===i.style.animationFillMode&&(i.style.animationFillMode=r)})}},n=e=>{e.target===i&&(d.current=a(s.current))};return i.addEventListener("animationstart",n),i.addEventListener("animationcancel",r),i.addEventListener("animationend",r),()=>{t.clearTimeout(e),i.removeEventListener("animationstart",n),i.removeEventListener("animationcancel",r),i.removeEventListener("animationend",r)}}c("ANIMATION_END")},[i,c]),{isPresent:["mounted","unmountSuspended"].includes(f),ref:t.useCallback(e=>{s.current=e?getComputedStyle(e):null,l(e)},[])}}(s),f="function"==typeof u?u({present:d.isPresent}):t.Children.only(u),c=(0,o.j)(d.ref,(n=f,(l=(i=Object.getOwnPropertyDescriptor(n.props,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?n.ref:(l=(i=Object.getOwnPropertyDescriptor(n,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?n.props.ref:n.props.ref||n.ref));return"function"==typeof u||d.isPresent?t.cloneElement(f,{ref:c}):null};function a(e){return e?.animationName||"none"}i.displayName="Presence",e.s(["f",0,i],296626)},999682,e=>{var t=e.i(271645);e.s(["f",0,function(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}])},635804,e=>{var t=e.i(271645),r=e.i(934620);e.s(["f",0,function(e){let[n,o]=t.useState(void 0);return(0,r.f)(()=>{if(e){o({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,n;if(!Array.isArray(t)||!t.length)return;let i=t[0];if("borderBoxSize"in i){let e=i.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,n=t.blockSize}else r=e.offsetWidth,n=e.offsetHeight;o({width:r,height:n})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}o(void 0)},[e]),n}])},475254,e=>{var t=e.i(271645);let r=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,t.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:i=2,absoluteStrokeWidth:a,className:l="",children:s,iconNode:u,...d},f)=>(0,t.createElement)("svg",{ref:f,...o,width:r,height:r,stroke:e,strokeWidth:a?24*Number(i)/Number(r):i,className:n("lucide",l),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(d)&&{"aria-hidden":"true"},...d},[...u.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(s)?s:[s]]));e.s(["f",0,(e,o)=>{let a=(0,t.forwardRef)(({className:a,...l},s)=>(0,t.createElement)(i,{ref:s,iconNode:o,className:n(`lucide-${r(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...l}));return a.displayName=r(e),a}],475254)},643531,e=>{let t=(0,e.i(475254).f)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["f",0,t],643531)},664659,655900,e=>{var t=e.i(475254);let r=(0,t.f)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["f",0,r],664659);let n=(0,t.f)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["f",0,n],655900)},531278,e=>{let t=(0,e.i(475254).f)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["f",0,t],531278)},727612,e=>{let t=(0,e.i(475254).f)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["f",0,t],727612)},37727,e=>{let t=(0,e.i(475254).f)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],37727)},776639,e=>{var t=e.i(843476),r=e.i(271645),n=e.i(981140),o=e.i(820783),i=e.i(30030),a=e.i(610772),l=e.i(369340),s=e.i(726330),u=e.i(765491),d=e.i(774606),f=e.i(296626);function c(e){var n;let i,a=(n=e,(i=r.forwardRef((e,t)=>{let{children:n,...i}=e;if(r.isValidElement(n)){var a;let e,l,s=(a=n,(l=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(l=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),u=function(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...i}:"className"===n&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}(i,n.props);return n.type!==r.Fragment&&(u.ref=t?(0,o.Q)(t,s):s),r.cloneElement(n,u)}return r.Children.count(n)>1?r.Children.only(null):null})).displayName=`${n}.SlotClone`,i),l=r.forwardRef((e,n)=>{let{children:o,...i}=e,l=r.Children.toArray(o),s=l.find(m);if(s){let e=s.props.children,o=l.map(t=>t!==s?t:r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null);return(0,t.jsx)(a,{...i,ref:n,children:r.isValidElement(e)?r.cloneElement(e,void 0,o):null})}return(0,t.jsx)(a,{...i,ref:n,children:o})});return l.displayName=`${e}.Slot`,l}e.i(174080);var p=Symbol("radix.slottable");function m(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===p}var h=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{let o=c(`Primitive.${n}`),i=r.forwardRef((e,r)=>{let{asChild:i,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(i?o:n,{...a,ref:r})});return i.displayName=`Primitive.${n}`,{...e,[n]:i}},{}),g=e.i(303536),y=e.i(985369),v=e.i(186312),w="Dialog",[x,b]=(0,i.c)(w),[N,R]=x(w),j=e=>{let{__scopeDialog:n,children:o,open:i,defaultOpen:s,onOpenChange:u,modal:d=!0}=e,f=r.useRef(null),c=r.useRef(null),[p,m]=(0,l.f)({prop:i,defaultProp:s??!1,onChange:u,caller:w});return(0,t.jsx)(N,{scope:n,triggerRef:f,contentRef:c,contentId:(0,a.f)(),titleId:(0,a.f)(),descriptionId:(0,a.f)(),open:p,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),modal:d,children:o})};j.displayName=w;var C="DialogTrigger",E=r.forwardRef((e,r)=>{let{__scopeDialog:i,...a}=e,l=R(C,i),s=(0,o.j)(r,l.triggerRef);return(0,t.jsx)(h.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":Z(l.open),...a,ref:s,onClick:(0,n.f)(e.onClick,l.onOpenToggle)})});E.displayName=C;var O="DialogPortal",[T,S]=x(O,{forceMount:void 0}),D=e=>{let{__scopeDialog:n,forceMount:o,children:i,container:a}=e,l=R(O,n);return(0,t.jsx)(T,{scope:n,forceMount:o,children:r.Children.map(i,e=>(0,t.jsx)(f.f,{present:o||l.open,children:(0,t.jsx)(d.f,{asChild:!0,container:a,children:e})}))})};D.displayName=O;var A="DialogOverlay",M=r.forwardRef((e,r)=>{let n=S(A,e.__scopeDialog),{forceMount:o=n.forceMount,...i}=e,a=R(A,e.__scopeDialog);return a.modal?(0,t.jsx)(f.f,{present:o||a.open,children:(0,t.jsx)(k,{...i,ref:r})}):null});M.displayName=A;var I=c("DialogOverlay.RemoveScroll"),k=r.forwardRef((e,r)=>{let{__scopeDialog:n,...o}=e,i=R(A,n);return(0,t.jsx)(y.f,{as:I,allowPinchZoom:!0,shards:[i.contentRef],children:(0,t.jsx)(h.div,{"data-state":Z(i.open),...o,ref:r,style:{pointerEvents:"auto",...o.style}})})}),P="DialogContent",$=r.forwardRef((e,r)=>{let n=S(P,e.__scopeDialog),{forceMount:o=n.forceMount,...i}=e,a=R(P,e.__scopeDialog);return(0,t.jsx)(f.f,{present:o||a.open,children:a.modal?(0,t.jsx)(_,{...i,ref:r}):(0,t.jsx)(F,{...i,ref:r})})});$.displayName=P;var _=r.forwardRef((e,i)=>{let a=R(P,e.__scopeDialog),l=r.useRef(null),s=(0,o.j)(i,a.contentRef,l);return r.useEffect(()=>{let e=l.current;if(e)return(0,v.f)(e)},[]),(0,t.jsx)(W,{...e,ref:s,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.f)(e.onCloseAutoFocus,e=>{e.preventDefault(),a.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.f)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,n.f)(e.onFocusOutside,e=>e.preventDefault())})}),F=r.forwardRef((e,n)=>{let o=R(P,e.__scopeDialog),i=r.useRef(!1),a=r.useRef(!1);return(0,t.jsx)(W,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||o.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),W=r.forwardRef((e,n)=>{let{__scopeDialog:i,trapFocus:a,onOpenAutoFocus:l,onCloseAutoFocus:d,...f}=e,c=R(P,i),p=r.useRef(null),m=(0,o.j)(n,p);return(0,g.f)(),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.f,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:l,onUnmountAutoFocus:d,children:(0,t.jsx)(s.f,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":Z(c.open),...f,ref:m,onDismiss:()=>c.onOpenChange(!1)})}),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(X,{titleId:c.titleId}),(0,t.jsx)(Q,{contentRef:p,descriptionId:c.descriptionId})]})]})}),U="DialogTitle",B=r.forwardRef((e,r)=>{let{__scopeDialog:n,...o}=e,i=R(U,n);return(0,t.jsx)(h.h2,{id:i.titleId,...o,ref:r})});B.displayName=U;var z="DialogDescription",L=r.forwardRef((e,r)=>{let{__scopeDialog:n,...o}=e,i=R(z,n);return(0,t.jsx)(h.p,{id:i.descriptionId,...o,ref:r})});L.displayName=z;var V="DialogClose",H=r.forwardRef((e,r)=>{let{__scopeDialog:o,...i}=e,a=R(V,o);return(0,t.jsx)(h.button,{type:"button",...i,ref:r,onClick:(0,n.f)(e.onClick,()=>a.onOpenChange(!1))})});function Z(e){return e?"open":"closed"}H.displayName=V;var q="DialogTitleWarning",[J,K]=(0,i.e)(q,{contentName:P,titleName:U,docsSlug:"dialog"}),X=({titleId:e})=>{let t=K(q),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
2
|
+
|
|
3
|
+
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
4
|
+
|
|
5
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=K("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},G=e.i(37727),Y=e.i(975157);let ee=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(M,{ref:n,className:(0,Y.f)("fixed inset-0 z-50 bg-black/50 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...r}));ee.displayName=M.displayName;let et=r.forwardRef(({className:e,children:r,...n},o)=>(0,t.jsxs)(D,{children:[(0,t.jsx)(ee,{}),(0,t.jsxs)($,{ref:o,onPointerDownOutside:e=>{e.preventDefault()},className:(0,Y.f)("fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl border bg-card p-6 shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...n,children:[r,(0,t.jsxs)(H,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,t.jsx)(G.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));et.displayName=$.displayName;let er=({className:e,...r})=>(0,t.jsx)("div",{className:(0,Y.f)("flex flex-col space-y-1.5 text-center sm:text-left",e),...r});er.displayName="DialogHeader";let en=({className:e,...r})=>(0,t.jsx)("div",{className:(0,Y.f)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...r});en.displayName="DialogFooter";let eo=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(B,{ref:n,className:(0,Y.f)("text-lg font-semibold leading-none tracking-tight",e),...r}));eo.displayName=B.displayName;let ei=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(L,{ref:n,className:(0,Y.f)("text-sm text-muted-foreground",e),...r}));ei.displayName=L.displayName,e.s(["N",0,j,"d",0,et,"C",0,ei,"c",0,en,"s",0,er,"F",0,eo,"a",0,E],776639)},793479,e=>{var t=e.i(843476),r=e.i(975157);e.s(["f",0,function({className:e,type:n,...o}){return(0,t.jsx)("input",{type:n,"data-slot":"input",className:(0,r.f)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...o})}])},41931,e=>{class t extends Error{status;statusText;data;constructor(e,t,r){super(`API Error: ${e} ${t}`),this.status=e,this.statusText=t,this.data=r,this.name="ApiError"}}async function r(e,n={}){let{params:o,headers:i,timeout:a=6e4,...l}=n,s=e;if(o){let e=new URLSearchParams(o);s+=`?${e.toString()}`}let u=new AbortController,d=setTimeout(()=>u.abort(),a);try{let e=await fetch(s,{headers:{"Content-Type":"application/json",...i},signal:u.signal,...l});if(clearTimeout(d),!e.ok){let r;try{r=await e.json()}catch{r=await e.text()}throw new t(e.status,e.statusText,r)}if(204===e.status)return{};try{return await e.json()}catch{return{}}}catch(e){if(clearTimeout(d),e instanceof Error&&"AbortError"===e.name)throw new t(408,"Request Timeout",{message:"AI_TIMEOUT_ERROR"});throw e}}e.s(["f",0,{get:(e,t)=>r(e,{...t,method:"GET"}),post:(e,t,n)=>r(e,{...n,method:"POST",body:JSON.stringify(t)}),put:(e,t,n)=>r(e,{...n,method:"PUT",body:JSON.stringify(t)}),patch:(e,t,n)=>r(e,{...n,method:"PATCH",body:JSON.stringify(t)}),delete:(e,t)=>r(e,{...t,method:"DELETE"})}])},294114,e=>{let t={success:2500,info:3500,warning:4500,error:5e3},r={toasts:[],confirm:null},n=1,o=new Set;function i(e){r=e,o.forEach(e=>e(r))}function a(e){i({...r,toasts:r.toasts.filter(t=>t.id!==e)})}function l(e,o){let l="string"==typeof o?o:String(o??"");if(!l)return;let s=n++;i({...r,toasts:[...r.toasts.slice(-3),{id:s,type:e,message:l}]}),setTimeout(()=>a(s),t[e])}e.s(["u",0,function(e,t={}){return 0===o.size?Promise.resolve("function"==typeof window.confirm&&window.confirm(e)):(r.confirm?.resolve(!1),new Promise(o=>{let a=n++;i({...r,confirm:{...t,id:a,message:e,resolve:e=>{r.confirm?.id===a&&i({...r,confirm:null}),o(e)}}})}))},"p",0,a,"M",0,function(e){return o.add(e),e(r),()=>{o.delete(e)}},"c",0,{success:e=>l("success",e),error:e=>l("error",e),info:e=>l("info",e),warning:e=>l("warning",e)}])},201276,e=>{let t=new class{buffer=[];flushTimer=null;addToBuffer(e,t,r,n){let o={level:e,prefix:t,message:r,context:n?Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t instanceof Error?{name:t.name,message:t.message}:t])):n,timestamp:new Date().toISOString(),url:window.location.href,userAgent:"u">typeof navigator?navigator.userAgent:""};(this.buffer.push(o),this.buffer.length>=20)?this.flush():this.scheduleFlush()}scheduleFlush(){this.flushTimer||(this.flushTimer=setTimeout(()=>{this.flush()},1e3))}flush(){if(this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),0===this.buffer.length)return;let e=[...this.buffer];this.buffer=[],this.sendBatch(e)}async sendBatch(e){try{fetch("/api/logs/frontend",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({logs:e})}).catch(e=>{console.warn("Failed to send logs to backend:",e)})}catch{}}info(e,t,r,n={}){console.log(`${e} ${t}`,r||""),!1!==n.sendToBackend&&this.addToBuffer("info",e,t,r)}warn(e,t,r,n={}){console.warn(`${e} ${t}`,r||""),!1!==n.sendToBackend&&this.addToBuffer("warn",e,t,r)}error(e,t,r,n={}){console.error(`${e} ${t}`,r||""),!1!==n.sendToBackend&&this.addToBuffer("error",e,t,r)}forceFlush(){this.flush()}};e.s(["f",0,t])}])})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,72664,3198,e=>{var t=e.i(475254);let r=(0,t.f)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);e.s(["f",0,r],72664);var i=e.i(843476),a=e.i(271645),n=e.i(531278);let s=(0,t.f)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]),o=(0,t.f)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var l=e.i(367240),d=e.i(16715),h=e.i(727612),c=e.i(519455),u=e.i(111110),m=e.i(294114),g=e.i(201276);let p=null,f=["setcoordsystem","setaxesvisible","setgridvisible","setcolor","setlinethickness","setlinestyle","setpointsize","setpointstyle","setlabelvisible","setcaption","setvisible","setfilling","setvalue","setfixed","setbackgroundcolor"];function w(e,t,r){let i=e?.firstElementChild;i&&(i.style.width="100%",i.style.height=`${r}px`,t?.setSize(e?.offsetWidth||i.offsetWidth||800,r))}function x(e,t){for(let r of t)try{if(function(e){let t=e.toLowerCase().trim();return f.some(e=>t.startsWith(e+"("))}(r)){let t=function(e){let t=e.match(/^(\w+)\(([\s\S]+)\)$/);if(!t)return null;try{let e=t[2].trim();if(e.startsWith("[")&&e.endsWith("]"))return{m:t[1],a:JSON.parse(e)};if(/^-?\d+(\.\d+)?$/.test(e))return{m:t[1],a:[Number(e)]};if("true"===e||"false"===e)return{m:t[1],a:["true"===e]};if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return{m:t[1],a:[e.slice(1,-1)]};let r=e.split(",").map(e=>e.trim()).map(e=>/^-?\d+(\.\d+)?$/.test(e)?Number(e):"true"===e||"false"===e?"true"===e:e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e);return{m:t[1],a:r}}catch{return null}}(r),i=t?e[t.m]:void 0;t&&"function"==typeof i&&i.apply(e,t.a)}else{let t=r.trim();t&&!/[<>'"]/.test(t)?e.evalCommand(t):g.f.warn("[GGB]","Blocked potentially unsafe command",{command:r.substring(0,50)})}}catch(e){g.f.warn("[GGB]","Command failed",{command:r,error:e})}}e.s(["f",0,function({commands:e,height:t=700,showToolBar:r=!1,showAlgebraInput:f=!1,showMenuBar:y=!1,className:b="",onRegenerate:v,onDelete:C}){let{t:k}=(0,u.b)(),j=(0,a.useRef)(null),D=(0,a.useRef)(null),N=(0,a.useId)(),M=(0,a.useRef)(`ggb-${N.replace(/[^a-zA-Z0-9_-]/g,"")}`),[R,E]=(0,a.useState)(!0),[S,$]=(0,a.useState)(null),[I,_]=(0,a.useState)(!0),[P,B]=(0,a.useState)(!1),[H,A]=(0,a.useState)(!1),z=(0,a.useMemo)(()=>(function(e){if(!e?.trim())return[];let t=e.trim();if(t.startsWith("["))try{let e=JSON.parse(t);if(Array.isArray(e))return e.filter(e=>"string"==typeof e&&""!==e.trim())}catch{}return t.split("\n").map(e=>e.trim()).filter(e=>e&&!e.startsWith("//"))})(e),[e]);(0,a.useEffect)(()=>{if(0===z.length)return;let e=!1,i=M.current,a=j.current;return(p||(p=new Promise((e,t)=>{if(window.GGBApplet)return void e();let r=document.createElement("script");r.src="https://www.geogebra.org/apps/deployggb.js",r.async=!0,r.onload=()=>e(),r.onerror=()=>{p=null,t(Error("Failed to load GeoGebra"))},document.head.appendChild(r)}))).then(()=>{if(e)return;let n=window.GGBApplet;if(!n){$(k.geogebra.notLoaded),E(!1);return}if(a){a.innerHTML=`<div id="${i}" style="width:100%;height:${t}px"></div>`;try{new n({appName:"classic",width:"100%",height:t,showToolBar:r,showAlgebraInput:f,showMenuBar:y,showResetIcon:!0,enableRightClick:!0,enableShiftDragZoom:!0,language:"zh",appletOnLoad:r=>{e||(D.current=r,w(a,r,t),x(r,z),E(!1))}},!0).inject(i)}catch(t){g.f.error("[GGB]","Init failed",{error:t}),e||($(k.geogebra.initFailed),E(!1))}}}).catch(t=>{g.f.error("[GGB]","Script load failed",{error:t}),e||($(k.geogebra.scriptFailed),E(!1))}),()=>{e=!0;try{let e=D.current;e?.remove&&e.remove()}catch(e){g.f.warn("[GGB]","Cleanup failed",{error:e})}D.current=null,a&&(a.innerHTML="")}},[z,r,f,y]),(0,a.useEffect)(()=>{w(j.current,D.current,I?700:t)},[I,t]);let L=(0,a.useCallback)(()=>{let e=D.current;if(e)try{e.resetConstruction(),setTimeout(()=>{D.current&&x(D.current,z)},300)}catch(e){g.f.warn("[GGB]","Reset failed",{error:e})}},[z]),X=(0,a.useCallback)(async()=>{if(v&&!P){B(!0);try{await v()}finally{B(!1)}}},[v,P]),K=(0,a.useCallback)(async()=>{if(C&&!H&&await (0,m.u)(k.geogebra.confirmDelete,{destructive:!0})){A(!0);try{await C()}catch{m.c.error(k.geogebra.deleteFailed)}finally{A(!1)}}},[C,H,k]);return 0===z.length?null:(0,i.jsxs)("div",{className:`relative rounded-lg border bg-card ${b}`,children:[(0,i.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b bg-muted/30",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:k.geogebra.title}),R&&(0,i.jsx)(n.f,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,i.jsxs)("div",{className:"flex items-center gap-1",children:[v&&(0,i.jsxs)(c.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:X,title:k.geogebra.regenerate,disabled:P||R,children:[P?(0,i.jsx)(n.f,{className:"h-3.5 w-3.5 animate-spin"}):(0,i.jsx)(d.f,{className:"h-3.5 w-3.5"}),(0,i.jsx)("span",{children:k.geogebra.regenerate})]}),C&&(0,i.jsxs)(c.f,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:K,title:k.geogebra.delete,disabled:H||P,children:[H?(0,i.jsx)(n.f,{className:"h-3.5 w-3.5 animate-spin"}):(0,i.jsx)(h.f,{className:"h-3.5 w-3.5"}),(0,i.jsx)("span",{children:k.geogebra.delete})]}),(0,i.jsx)(c.f,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:L,title:k.geogebra.reset,disabled:R,children:(0,i.jsx)(l.f,{className:"h-3.5 w-3.5"})}),(0,i.jsx)(c.f,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>_(e=>!e),title:I?k.geogebra.shrink:k.geogebra.enlarge,children:I?(0,i.jsx)(o,{className:"h-3.5 w-3.5"}):(0,i.jsx)(s,{className:"h-3.5 w-3.5"})})]})]}),(0,i.jsx)("div",{ref:j,style:{width:"100%"}}),R&&(0,i.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 rounded-b-lg",style:{top:37},children:(0,i.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,i.jsx)(n.f,{className:"h-6 w-6 animate-spin text-primary"}),(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:k.geogebra.loading})]})}),S&&(0,i.jsx)("div",{className:"flex items-center justify-center text-sm text-destructive",style:{minHeight:t},children:S})]})}],3198)},356909,e=>{let t=(0,e.i(475254).f)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["f",0,t],356909)},283086,e=>{let t=(0,e.i(475254).f)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["f",0,t],283086)},469937,62825,e=>{var t=e.i(843476);let r=(0,e.i(475254).f)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var i=e.i(111110),a=e.i(975157);let n=[1,2,3,4,5];function s(e){return"not_attempted"===e||"wrong_attempt"===e||"unknown"===e?e:"unknown"}e.s(["f",0,function({value:e,onChange:s,disabled:o,size:l="sm",showUnrated:d=!0,className:h}){let{t:c}=(0,i.b)(),u=e??0,m="sm"===l?"h-3.5 w-3.5":"h-5 w-5",g=u?c.difficulty.starsLabel.replace("{n}",String(u)):c.difficulty.unrated;return s?(0,t.jsxs)("span",{className:(0,a.f)("inline-flex items-center gap-0.5",h),role:"group","aria-label":`${c.difficulty.label}:${g}`,title:c.difficulty.clearHint,children:[n.map(e=>(0,t.jsx)("button",{type:"button",disabled:o,onClick:()=>s(e===u?null:e),"aria-label":c.difficulty.setStars.replace("{n}",String(e)),"aria-pressed":e<=u,className:"rounded p-0.5 hover:bg-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,t.jsx)(r,{className:(0,a.f)(m,e<=u?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},e)),!u&&d&&(0,t.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:c.difficulty.unrated})]}):u?(0,t.jsx)("span",{className:(0,a.f)("inline-flex items-center",h),role:"img","aria-label":`${c.difficulty.label}:${g}`,title:g,children:n.map(e=>(0,t.jsx)(r,{className:(0,a.f)(m,e<=u?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},e))}):d?(0,t.jsx)("span",{className:(0,a.f)("text-xs text-muted-foreground",h),children:c.difficulty.unrated}):null}],469937),e.s(["i",0,function(e,t="zh"){return("en"===t?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[s(e)]},"h",0,s,"x",0,function(e,t){return(t||"").trim()?"wrong_attempt":s(e)}],62825)},12130,e=>{var t=e.i(843476),r=e.i(271645),i=r,a=Object.defineProperty,n=(e,t,r)=>{let i;return(i="symbol"!=typeof t?t+"":t)in e?a(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r};let s={x:0,y:0,width:0,height:0,unit:"px"},o=(e,t,r)=>Math.min(Math.max(e,t),r),l=(e,t)=>e===t||e.width===t.width&&e.height===t.height&&e.x===t.x&&e.y===t.y&&e.unit===t.unit;function d(e,t,r){return"%"===e.unit?{...s,...e,unit:"%"}:{unit:"%",x:e.x?e.x/t*100:0,y:e.y?e.y/r*100:0,width:e.width?e.width/t*100:0,height:e.height?e.height/r*100:0}}function h(e,t,r){return e.unit?"px"===e.unit?{...s,...e,unit:"px"}:{unit:"px",x:e.x?e.x*t/100:0,y:e.y?e.y*r/100:0,width:e.width?e.width*t/100:0,height:e.height?e.height*r/100:0}:{...s,...e,unit:"px"}}function c(e,t,r,i,a,n=0,s=0,o=i,l=a){let d={...e},h=Math.min(n,i),u=Math.min(s,a),m=Math.min(o,i),g=Math.min(l,a);t&&(t>1?(u=(h=s?s*t:h)/t,m=o*t):(h=(u=n?n/t:u)*t,g=l/t)),d.y<0&&(d.height=Math.max(d.height+d.y,u),d.y=0),d.x<0&&(d.width=Math.max(d.width+d.x,h),d.x=0);let p=i-(d.x+d.width);p<0&&(d.x=Math.min(d.x,i-h),d.width+=p);let f=a-(d.y+d.height);if(f<0&&(d.y=Math.min(d.y,a-u),d.height+=f),d.width<h&&(("sw"===r||"nw"==r)&&(d.x-=h-d.width),d.width=h),d.height<u&&(("nw"===r||"ne"==r)&&(d.y-=u-d.height),d.height=u),d.width>m&&(("sw"===r||"nw"==r)&&(d.x-=m-d.width),d.width=m),d.height>g&&(("nw"===r||"ne"==r)&&(d.y-=g-d.height),d.height=g),t){let e=d.width/d.height;if(e<t){let e=Math.max(d.width/t,u);("nw"===r||"ne"==r)&&(d.y-=e-d.height),d.height=e}else if(e>t){let e=Math.max(d.height*t,h);("sw"===r||"nw"==r)&&(d.x-=e-d.width),d.width=e}}return d}let u={capture:!0,passive:!1},m=0,g=class e extends i.PureComponent{constructor(){super(...arguments),n(this,"docMoveBound",!1),n(this,"mouseDownOnCrop",!1),n(this,"dragStarted",!1),n(this,"evData",{startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0}),n(this,"componentRef",(0,i.createRef)()),n(this,"mediaRef",(0,i.createRef)()),n(this,"resizeObserver"),n(this,"initChangeCalled",!1),n(this,"instanceId",`rc-${m++}`),n(this,"state",{cropIsActive:!1,newCropIsBeingDrawn:!1}),n(this,"onCropPointerDown",e=>{let{crop:t,disabled:r}=this.props,i=this.getBox();if(!t)return;let a=h(t,i.width,i.height);if(r)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let n=e.target.dataset.ord,s=e.clientX,o=e.clientY,l=a.x,d=a.y;if(n){let t=e.clientX-i.x,r=e.clientY-i.y,h=0,c=0;"ne"===n||"e"==n?(h=t-(a.x+a.width),c=r-a.y,l=a.x,d=a.y+a.height):"se"===n||"s"===n?(h=t-(a.x+a.width),c=r-(a.y+a.height),l=a.x,d=a.y):"sw"===n||"w"==n?(h=t-a.x,c=r-(a.y+a.height),l=a.x+a.width,d=a.y):("nw"===n||"n"==n)&&(h=t-a.x,c=r-a.y,l=a.x+a.width,d=a.y+a.height),s=l+i.x+h,o=d+i.y+c}this.evData={startClientX:s,startClientY:o,startCropX:l,startCropY:d,clientX:e.clientX,clientY:e.clientY,isResize:!!n,ord:n},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})}),n(this,"onComponentPointerDown",e=>{let{crop:t,disabled:r,locked:i,keepSelection:a,onChange:n}=this.props,s=this.getBox();if(r||i||a&&t)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let o=e.clientX-s.x,l=e.clientY-s.y,c={unit:"px",x:o,y:l,width:0,height:0};this.evData={startClientX:e.clientX,startClientY:e.clientY,startCropX:o,startCropY:l,clientX:e.clientX,clientY:e.clientY,isResize:!0},this.mouseDownOnCrop=!0,n(h(c,s.width,s.height),d(c,s.width,s.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})}),n(this,"onDocPointerMove",e=>{let t,{crop:r,disabled:i,onChange:a,onDragStart:n}=this.props,s=this.getBox();if(i||!r||!this.mouseDownOnCrop)return;e.cancelable&&e.preventDefault(),this.dragStarted||(this.dragStarted=!0,n&&n(e));let{evData:o}=this;o.clientX=e.clientX,o.clientY=e.clientY,l(r,t=o.isResize?this.resizeCrop():this.dragCrop())||a(h(t,s.width,s.height),d(t,s.width,s.height))}),n(this,"onComponentKeyDown",t=>{let{crop:r,disabled:i,onChange:a,onComplete:n}=this.props;if(i)return;let s=t.key,l=!1;if(!r)return;let c=this.getBox(),u=this.makePixelCrop(c),m=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?e.nudgeStepLarge:t.shiftKey?e.nudgeStepMedium:e.nudgeStep;if("ArrowLeft"===s?(u.x-=m,l=!0):"ArrowRight"===s?(u.x+=m,l=!0):"ArrowUp"===s?(u.y-=m,l=!0):"ArrowDown"===s&&(u.y+=m,l=!0),l){t.cancelable&&t.preventDefault(),u.x=o(u.x,0,c.width-u.width),u.y=o(u.y,0,c.height-u.height);let e=h(u,c.width,c.height),r=d(u,c.width,c.height);a(e,r),n&&n(e,r)}}),n(this,"onHandlerKeyDown",(t,r)=>{var i,a;let n,{aspect:s=0,crop:o,disabled:u,minWidth:m=0,minHeight:g=0,maxWidth:p,maxHeight:f,onChange:w,onComplete:x}=this.props,y=this.getBox();if(u||!o||"ArrowUp"!==t.key&&"ArrowDown"!==t.key&&"ArrowLeft"!==t.key&&"ArrowRight"!==t.key)return;t.stopPropagation(),t.preventDefault();let b=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?e.nudgeStepLarge:t.shiftKey?e.nudgeStepMedium:e.nudgeStep,v=c((i=h(o,y.width,y.height),a=t.key,n={...i},"ArrowLeft"===a?"nw"===r?(n.x-=b,n.y-=b,n.width+=b,n.height+=b):"w"===r?(n.x-=b,n.width+=b):"sw"===r?(n.x-=b,n.width+=b,n.height+=b):"ne"===r?(n.y+=b,n.width-=b,n.height-=b):"e"===r?n.width-=b:"se"===r&&(n.width-=b,n.height-=b):"ArrowRight"===a&&("nw"===r?(n.x+=b,n.y+=b,n.width-=b,n.height-=b):"w"===r?(n.x+=b,n.width-=b):"sw"===r?(n.x+=b,n.width-=b,n.height-=b):"ne"===r?(n.y-=b,n.width+=b,n.height+=b):"e"===r?n.width+=b:"se"===r&&(n.width+=b,n.height+=b)),"ArrowUp"===a?"nw"===r?(n.x-=b,n.y-=b,n.width+=b,n.height+=b):"n"===r?(n.y-=b,n.height+=b):"ne"===r?(n.y-=b,n.width+=b,n.height+=b):"sw"===r?(n.x+=b,n.width-=b,n.height-=b):"s"===r?n.height-=b:"se"===r&&(n.width-=b,n.height-=b):"ArrowDown"===a&&("nw"===r?(n.x+=b,n.y+=b,n.width-=b,n.height-=b):"n"===r?(n.y+=b,n.height-=b):"ne"===r?(n.y+=b,n.width-=b,n.height-=b):"sw"===r?(n.x-=b,n.width+=b,n.height+=b):"s"===r?n.height+=b:"se"===r&&(n.width+=b,n.height+=b)),n),s,r,y.width,y.height,m,g,p,f);if(!l(o,v)){let e=d(v,y.width,y.height);w(v,e),x&&x(v,e)}}),n(this,"onDocPointerDone",e=>{let{crop:t,disabled:r,onComplete:i,onDragEnd:a}=this.props,n=this.getBox();this.unbindDocMove(),!(r||!t)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,a&&a(e),i&&i(h(t,n.width,n.height),d(t,n.width,n.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))}),n(this,"onDragFocus",()=>{var e;null==(e=this.componentRef.current)||e.scrollTo(0,0)})}get document(){return document}getBox(){let e=this.mediaRef.current;if(!e)return{x:0,y:0,width:0,height:0};let{x:t,y:r,width:i,height:a}=e.getBoundingClientRect();return{x:t,y:r,width:i,height:a}}componentDidUpdate(e){let{crop:t,onComplete:r}=this.props;if(r&&!e.crop&&t){let{width:e,height:i}=this.getBox();e&&i&&r(h(t,e,i),d(t,e,i))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,u),this.document.addEventListener("pointerup",this.onDocPointerDone,u),this.document.addEventListener("pointercancel",this.onDocPointerDone,u),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,u),this.document.removeEventListener("pointerup",this.onDocPointerDone,u),this.document.removeEventListener("pointercancel",this.onDocPointerDone,u),this.docMoveBound=!1)}getCropStyle(){let{crop:e}=this.props;if(e)return{top:`${e.y}${e.unit}`,left:`${e.x}${e.unit}`,width:`${e.width}${e.unit}`,height:`${e.height}${e.unit}`}}dragCrop(){let{evData:e}=this,t=this.getBox(),r=this.makePixelCrop(t),i=e.clientX-e.startClientX,a=e.clientY-e.startClientY;return r.x=o(e.startCropX+i,0,t.width-r.width),r.y=o(e.startCropY+a,0,t.height-r.height),r}getPointRegion(e,t,r,i){let a,{evData:n}=this,s=n.clientX-e.x,o=n.clientY-e.y;return a=i&&t?"nw"===t||"n"===t||"ne"===t:o<n.startCropY,(r&&t?"nw"===t||"w"===t||"sw"===t:s<n.startCropX)?a?"nw":"sw":a?"ne":"se"}resolveMinDimensions(e,t,r=0,i=0){let a=Math.min(r,e.width),n=Math.min(i,e.height);return t&&(a||n)?t>1?a?[a,a/t]:[n*t,n]:n?[n*t,n]:[a,a/t]:[a,n]}resizeCrop(){let{evData:t}=this,{aspect:r=0,maxWidth:i,maxHeight:a}=this.props,n=this.getBox(),[s,l]=this.resolveMinDimensions(n,r,this.props.minWidth,this.props.minHeight),d=this.makePixelCrop(n),h=this.getPointRegion(n,t.ord,s,l),u=t.ord||h,m=t.clientX-t.startClientX,g=t.clientY-t.startClientY;(s&&"nw"===u||"w"===u||"sw"===u)&&(m=Math.min(m,-s)),(l&&"nw"===u||"n"===u||"ne"===u)&&(g=Math.min(g,-l));let p={unit:"px",x:0,y:0,width:0,height:0};"ne"===h?(p.x=t.startCropX,p.width=m,r?p.height=p.width/r:p.height=Math.abs(g),p.y=t.startCropY-p.height):"se"===h?(p.x=t.startCropX,p.y=t.startCropY,p.width=m,r?p.height=p.width/r:p.height=g):"sw"===h?(p.x=t.startCropX+m,p.y=t.startCropY,p.width=Math.abs(m),r?p.height=p.width/r:p.height=g):"nw"===h&&(p.x=t.startCropX+m,p.width=Math.abs(m),r?(p.height=p.width/r,p.y=t.startCropY-p.height):(p.height=Math.abs(g),p.y=t.startCropY+g));let f=c(p,r,h,n.width,n.height,s,l,i,a);return r||e.xyOrds.indexOf(u)>-1?d=f:e.xOrds.indexOf(u)>-1?(d.x=f.x,d.width=f.width):e.yOrds.indexOf(u)>-1&&(d.y=f.y,d.height=f.height),d.x=o(d.x,0,n.width-d.width),d.y=o(d.y,0,n.height-d.height),d}renderCropSelection(){let{ariaLabels:t=e.defaultProps.ariaLabels,disabled:r,locked:a,renderSelectionAddon:n,ruleOfThirds:s,crop:o}=this.props,l=this.getCropStyle();if(o)return i.default.createElement("div",{style:l,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!r&&!a&&i.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},i.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),i.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),i.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),i.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":t.nwDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"nw"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":t.nDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"n"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":t.neDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"ne"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":t.eDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"e"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":t.seDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"se"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":t.sDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"s"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":t.swDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"sw"),role:"button"}),i.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":t.wDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"w"),role:"button"})),n&&i.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:e=>e.stopPropagation()},n(this.state)),s&&i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),i.default.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(e){return h({...s,...this.props.crop||{}},e.width,e.height)}render(){let{aspect:e,children:t,circularCrop:r,className:a,crop:n,disabled:s,locked:o,style:l,ruleOfThirds:d}=this.props,{cropIsActive:h,newCropIsBeingDrawn:c}=this.state,u=n?this.renderCropSelection():null,m=((...e)=>e.filter(e=>e&&"string"==typeof e).join(" "))("ReactCrop",a,h&&"ReactCrop--active",s&&"ReactCrop--disabled",o&&"ReactCrop--locked",c&&"ReactCrop--new-crop",n&&e&&"ReactCrop--fixed-aspect",n&&r&&"ReactCrop--circular-crop",n&&d&&"ReactCrop--rule-of-thirds",!this.dragStarted&&n&&!n.width&&!n.height&&"ReactCrop--invisible-crop",r&&"ReactCrop--no-animate");return i.default.createElement("div",{ref:this.componentRef,className:m,style:l},i.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},t),n?i.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},i.default.createElement("defs",null,i.default.createElement("mask",{id:`hole-${this.instanceId}`},i.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),r?i.default.createElement("ellipse",{cx:`${n.x+n.width/2}${n.unit}`,cy:`${n.y+n.height/2}${n.unit}`,rx:`${n.width/2}${n.unit}`,ry:`${n.height/2}${n.unit}`,fill:"black"}):i.default.createElement("rect",{x:`${n.x}${n.unit}`,y:`${n.y}${n.unit}`,width:`${n.width}${n.unit}`,height:`${n.height}${n.unit}`,fill:"black"}))),i.default.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,u)}};n(g,"xOrds",["e","w"]),n(g,"yOrds",["n","s"]),n(g,"xyOrds",["nw","ne","se","sw"]),n(g,"nudgeStep",1),n(g,"nudgeStepMedium",10),n(g,"nudgeStepLarge",100),n(g,"defaultProps",{ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}});var p=e.i(519455),f=e.i(776639),w=e.i(37727),x=e.i(111110);async function y(e,t){let{naturalWidth:r,naturalHeight:i}=e;return Promise.all(t.map(t=>new Promise((a,n)=>{let s=document.createElement("canvas"),o=Math.round(t.x*r),l=Math.round(t.y*i);s.width=Math.max(1,Math.round(t.width*r)),s.height=Math.max(1,Math.round(t.height*i));let d=s.getContext("2d");d?(d.drawImage(e,o,l,s.width,s.height,0,0,s.width,s.height),s.toBlob(e=>e?a(e):n(Error("Canvas is empty")),"image/jpeg",.95)):n(Error("Canvas is not supported"))})))}let b=(0,r.forwardRef)(function({imageSrc:e,regions:i,onChange:a},n){let{t:s}=(0,x.b)(),o=(0,r.useRef)(null),l=(0,r.useRef)(null),[d,h]=(0,r.useState)(null),c=e=>{let t=o.current.getBoundingClientRect();return{x:(e.clientX-t.left)/t.width,y:(e.clientY-t.top)/t.height}},u=()=>{d&&d.width>=.02&&d.height>=.02&&a([...i,d]),l.current=null,h(null)},m=e=>({left:`${100*e.x}%`,top:`${100*e.y}%`,width:`${100*e.width}%`,height:`${100*e.height}%`});return(0,t.jsxs)("div",{className:"relative inline-block select-none",children:[(0,t.jsx)("img",{ref:n,src:e,alt:"",draggable:!1,style:{maxHeight:"65vh",maxWidth:"100%",objectFit:"contain"},className:"block"}),(0,t.jsxs)("div",{ref:o,className:"absolute inset-0 cursor-crosshair",style:{touchAction:"none"},onPointerDown:e=>{0===e.button&&(o.current?.setPointerCapture(e.pointerId),l.current=c(e),h(null))},onPointerMove:e=>{var t,r,i,a;let n,s,o;if(!l.current)return;let d=c(e);h((t=l.current.x,r=l.current.y,i=d.x,a=d.y,s=(n=e=>Math.min(1,Math.max(0,e)))(Math.min(t,i)),o=n(Math.min(r,a)),{x:s,y:o,width:n(Math.max(t,i))-s,height:n(Math.max(r,a))-o}))},onPointerUp:u,onPointerCancel:u,children:[i.map((e,r)=>(0,t.jsxs)("div",{className:"absolute border-2 border-sky-400 bg-sky-400/15",style:m(e),children:[(0,t.jsx)("span",{className:"absolute left-0 top-0 bg-sky-500 px-1.5 text-xs font-bold text-white",children:r+1}),(0,t.jsx)("button",{type:"button",className:"absolute -right-3 -top-3 flex h-6 w-6 items-center justify-center rounded-full bg-red-500 text-white shadow","aria-label":s.batchImport.removeRegion.replace("{index}",String(r+1)),onPointerDown:e=>e.stopPropagation(),onClick:()=>a(i.filter((e,t)=>t!==r)),children:(0,t.jsx)(w.X,{className:"h-3 w-3"})})]},r)),d&&(0,t.jsx)("div",{className:"absolute border-2 border-dashed border-yellow-300 bg-yellow-300/10",style:m(d)})]})]})});var v=e.i(201276);e.s(["f",0,function({imageSrc:e,open:i,onClose:a,onCropComplete:n,onMultiCropComplete:s}){let{t:o}=(0,x.b)(),[l,d]=(0,r.useState)(),[h,c]=(0,r.useState)(),u=(0,r.useRef)(null),[m,w]=(0,r.useState)("single"),[C,k]=(0,r.useState)({src:e,regions:[]}),j=C.src===e?C.regions:[],D=t=>k({src:e,regions:t}),N=(0,r.useRef)(null),M=async()=>{if(N.current&&0!==j.length&&s)try{s(await y(N.current,j)),D([])}catch(e){v.f.error("[ImageCropper]","Multi-image crop failed",{error:e})}},R=async(e,t)=>{let r=document.createElement("canvas"),i=e.naturalWidth/e.width,a=e.naturalHeight/e.height;r.width=t.width*i,r.height=t.height*a;let n=r.getContext("2d");return n?(n.drawImage(e,t.x*i,t.y*a,t.width*i,t.height*a,0,0,t.width*i,t.height*a),new Promise((e,t)=>{r.toBlob(r=>{r?e(r):t(Error("Canvas is empty"))},"image/jpeg")})):null},E=async()=>{if(h&&u.current)try{let e=await R(u.current,h);e&&n(e)}catch(e){v.f.error("[ImageCropper]","Crop failed",{error:e})}else if(!h&&e)try{let t=await fetch(e),r=await t.blob();n(r)}catch(e){v.f.error("[ImageCropper]","Failed to load original image",{error:e})}};return(0,t.jsx)(f.N,{open:i,onOpenChange:e=>!e&&a(),children:(0,t.jsxs)(f.d,{className:"max-w-3xl h-[90vh] flex flex-col p-0 gap-0",children:[(0,t.jsx)(f.s,{className:"p-4 border-b shrink-0",children:(0,t.jsx)(f.F,{children:o.common.cropper?.title||"Crop Image"})}),(0,t.jsx)("div",{className:"flex-1 bg-black w-full overflow-auto flex items-center justify-center p-4",children:"multi"===m?(0,t.jsx)(b,{ref:N,imageSrc:e,regions:j,onChange:D}):(0,t.jsx)(g,{crop:l,onChange:(e,t)=>d(t),onComplete:e=>c(e),className:"max-h-full",children:(0,t.jsx)("img",{ref:u,alt:"Crop me",src:e,onLoad:function(e){let{width:t,height:r}=e.currentTarget;d({unit:"%",x:0,y:0,width:100,height:100}),c({unit:"px",x:0,y:0,width:t,height:r})},style:{maxHeight:"70vh",maxWidth:"100%",objectFit:"contain"}})})}),(0,t.jsxs)("div",{className:"p-4 border-t bg-background shrink-0 space-y-3",children:[s&&(0,t.jsx)("div",{className:"grid grid-cols-2 gap-1 rounded-md bg-muted p-1 sm:w-80",children:["single","multi"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>w(e),className:`rounded px-3 py-1.5 text-sm font-medium transition-colors ${m===e?"bg-background shadow-sm":"text-muted-foreground"}`,children:"single"===e?o.batchImport.singleMode:o.batchImport.multiMode},e))}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"multi"===m?`${o.batchImport.hint} ${o.batchImport.regionCount.replace("{count}",String(j.length))}`:o.common.cropper?.hint||"💡 Drag to adjust crop area"}),(0,t.jsxs)("div",{className:"flex gap-2 justify-end",children:["multi"===m&&j.length>0&&(0,t.jsx)(p.f,{variant:"ghost",onClick:()=>D([]),children:o.batchImport.clear}),(0,t.jsx)(p.f,{variant:"outline",onClick:a,children:o.common.cancel||"Cancel"}),"multi"===m?(0,t.jsx)(p.f,{onClick:M,disabled:0===j.length,children:o.batchImport.start.replace("{count}",String(j.length))}):(0,t.jsx)(p.f,{onClick:E,children:o.common.confirm||"Confirm"})]})]})]})]})})}],12130)},141176,e=>{var t=e.i(843476),r=e.i(271645);let i=(0,e.i(475254).f)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);var a=e.i(286536),n=e.i(511445),s=e.i(624687),o=e.i(111110),l=e.i(975157);e.s(["f",0,function({value:e,onChange:d,className:h,...c}){let{t:u}=(0,o.b)(),[m,g]=(0,r.useState)("source"),p=(0,r.useId)(),f=[{mode:"source",label:u.markdownEditor.source,icon:i},{mode:"preview",label:u.markdownEditor.preview,icon:a.f}];return(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("div",{role:"tablist","aria-label":u.markdownEditor.modeLabel,className:"flex justify-end",children:(0,t.jsx)("div",{className:"inline-flex rounded-md border bg-muted/40 p-0.5",children:f.map(({mode:e,label:r,icon:i})=>(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":m===e,"aria-controls":p,onClick:()=>g(e),className:(0,l.f)("flex items-center gap-1 rounded px-2.5 py-1 text-xs transition-colors",m===e?"bg-background font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,t.jsx)(i,{className:"h-3.5 w-3.5"}),r]},e))})}),(0,t.jsx)("div",{id:p,role:"tabpanel",children:"source"===m?(0,t.jsx)(s.f,{value:e,onChange:e=>d(e.target.value),className:h,...c}):(0,t.jsx)("div",{className:"min-h-24 cursor-text rounded-md border bg-muted/20 px-3 py-2",onDoubleClick:()=>g("source"),title:u.markdownEditor.doubleClickToEdit,children:e.trim()?(0,t.jsx)(n.f,{content:e}):(0,t.jsx)("p",{className:"text-sm italic text-muted-foreground",children:u.markdownEditor.empty})})})]})}],141176)},438465,e=>{var t=e.i(843476),r=e.i(271645),i=e.i(967489),a=e.i(810980),n=e.i(41931),s=e.i(201276),o=e.i(111110);e.s(["f",0,function({value:e,onChange:l,className:d}){let[h,c]=(0,r.useState)([]),{t:u}=(0,o.b)();return(0,r.useEffect)(()=>{(async()=>{try{let e=await n.f.get("/api/notebooks");c(e)}catch(e){s.f.error("[NotebookSelector]","Failed to fetch notebooks",{error:e})}})()},[]),(0,t.jsxs)(i.d,{value:e,onValueChange:l,children:[(0,t.jsx)(i.P,{className:d,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(a.f,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)(i.U,{placeholder:u.notebooks?.selector?.placeholder||"Select Notebook"})]})}),(0,t.jsx)(i.r,{children:0===h.length?(0,t.jsx)("div",{className:"p-2 text-sm text-muted-foreground text-center",children:u.notebooks?.selector?.empty||"No notebooks available"}):h.map(e=>(0,t.jsx)(i.T,{value:e.id,children:e.name},e.id))})]})}])},149704,e=>{var t=e.i(843476),r=e.i(111110),i=e.i(975157);e.s(["f",0,function({svg:e,className:a}){let{t:n}=(0,r.b)();return e?(0,t.jsx)("figure",{className:(0,i.f)("question-figure my-3",a),children:(0,t.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:n.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],149704)},574041,e=>{var t=e.i(843476),r=e.i(271645),i=e.i(37727),a=e.i(487486),n=e.i(793479),s=e.i(41931),o=e.i(201276);e.s(["f",0,function({value:e=[],onChange:l,placeholder:d="Enter tags...",className:h="",enterHint:c,subject:u,gradeStage:m}){let[g,p]=(0,r.useState)(""),[f,w]=(0,r.useState)([]),[x,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)(0),C=(0,r.useRef)(null),k=(0,r.useRef)(null),j=(0,r.useCallback)(async t=>{try{let r=new URLSearchParams({q:t});u&&r.append("subject",u),m&&r.append("stage",m);let i=((await s.f.get(`/api/tags/suggestions?${r.toString()}`)).suggestions||[]).filter(t=>!e.includes(t));w(i.slice(0,20)),y(i.length>0),v(0)}catch(e){o.f.error("[TagInput]","Failed to fetch suggestions",{error:e})}},[u,m,e]);(0,r.useEffect)(()=>{g.trim()&&j(g)},[g,j]);let D=t=>{t.trim()&&!e.includes(t.trim())&&(l([...e,t.trim()]),p(""),w([]),y(!1),v(0))},N=t=>{l(e.filter(e=>e!==t))};return(0,r.useEffect)(()=>{let e=e=>{!k.current||k.current.contains(e.target)||C.current?.contains(e.target)||y(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,t.jsxs)("div",{className:`relative ${h}`,children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 p-2 border rounded-lg bg-background min-h-[42px]",children:[e.map(e=>(0,t.jsxs)(a.f,{variant:"secondary",className:"flex items-center gap-1 px-2 py-1",children:[e,(0,t.jsx)("button",{type:"button",onClick:()=>N(e),className:"hover:text-destructive ml-1",children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},e)),(0,t.jsx)(n.f,{ref:C,type:"text",value:g,onChange:e=>{p(e.target.value),e.target.value.trim()||(w([]),y(!1))},onKeyDown:t=>{"Enter"===t.key?(t.preventDefault(),b>=0&&f[b]?D(f[b]):g.trim()&&D(g)):"ArrowDown"===t.key?(t.preventDefault(),v(e=>Math.min(e+1,f.length-1))):"ArrowUp"===t.key?(t.preventDefault(),v(e=>Math.max(e-1,0))):"Escape"===t.key?(y(!1),v(0)):"Backspace"===t.key&&!g&&e.length>0&&N(e[e.length-1])},onFocus:()=>{f.length>0&&y(!0)},placeholder:0===e.length?d:"",className:"flex-1 min-w-[120px] border-none focus-visible:ring-0 focus-visible:ring-offset-0 h-8 px-0"})]}),x&&f.length>0&&(0,t.jsx)("div",{ref:k,className:"absolute z-50 w-full mt-1 bg-popover border rounded-md shadow-md max-h-48 overflow-y-auto",children:f.map((e,r)=>(0,t.jsx)("div",{className:`px-3 py-2 cursor-pointer hover:bg-accent ${r===b?"bg-accent":""}`,onClick:()=>D(e),onMouseEnter:()=>v(r),children:e},e))}),g&&!x&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:c?`${c} "${g}"`:`Press Enter to create "${g}"`})]})}])},28928,e=>{var t=e.i(201276);async function r(e,i=1,a=1920,n=.8){return new Promise((r,s)=>{let o=new FileReader;o.onload=o=>{let l=new Image;l.onload=()=>{let o=document.createElement("canvas"),d=o.getContext("2d");if(!d)return void s(Error("无法获取 Canvas 上下文"));let h=l.width,c=l.height;h>a&&(c=c*a/h,h=a),o.width=h,o.height=c,d.drawImage(l,0,0,h,c);let u=n,m=o.toDataURL("image/jpeg",u),g=3*m.length/4/1024/1024;for(;g>i&&u>.1;){u-=.1;let e=3*(m=o.toDataURL("image/jpeg",u)).length/4/1024/1024;if(t.f.info("[ImageCompress]","Compression step",{quality:Number(u.toFixed(1)),sizeMB:Number(e.toFixed(2))},{sendToBackend:!1}),e<=i)break}t.f.info("[ImageCompress]","Compression finished",{originalMB:Number((e.size/1024/1024).toFixed(2)),compressedMB:Number((3*m.length/4/1024/1024).toFixed(2))}),r(m)},l.onerror=()=>s(Error("图片加载失败")),l.src=o.target?.result},o.onerror=()=>s(Error("文件读取失败")),o.readAsDataURL(e)})}async function i(e){let i=e.size/1024/1024;return(t.f.info("[ImageCompress]","File size checked",{sizeMB:Number(i.toFixed(2))},{sendToBackend:!1}),i>1)?(t.f.info("[ImageCompress]","File exceeds threshold, compressing",void 0,{sendToBackend:!1}),await r(e,1)):(t.f.info("[ImageCompress]","File size OK, no compression needed",void 0,{sendToBackend:!1}),new Promise((t,r)=>{let i=new FileReader;i.onload=()=>t(i.result),i.onerror=r,i.readAsDataURL(e)}))}e.s(["f",0,i])},952122,e=>{e.i(306831),e.s(["f",0,function(e){if(!e)return null;let t=e.toLowerCase();return t.includes("math")||t.includes("数学")?"math":t.includes("physics")||t.includes("物理")?"physics":t.includes("chemistry")||t.includes("化学")?"chemistry":t.includes("biology")||t.includes("生物")?"biology":t.includes("english")||t.includes("英语")?"english":t.includes("chinese")||t.includes("语文")?"chinese":t.includes("history")||t.includes("历史")?"history":t.includes("geography")||t.includes("地理")?"geography":t.includes("politics")||t.includes("政治")?"politics":null}])},943710,e=>{e.s(["f",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])}])})();
|