wrong-notebook 2026.10.22-2 → 2026.10.22-3
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/build-manifest.json +8 -8
- package/.next/prerender-manifest.json +4 -4
- package/.next/server/app/_global-error/page/build-manifest.json +5 -5
- package/.next/server/app/_global-error/page.js +2 -2
- 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 +8 -8
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +7 -7
- package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/build-manifest.json +5 -5
- package/.next/server/app/_not-found/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/admin/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/admin/user/[id]/page.js +2 -2
- 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 +2 -2
- package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/migrate-tags/route.js +2 -2
- package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/system-reset/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/route.js +2 -2
- package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/models/route.js +2 -2
- package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/test/route.js +2 -2
- package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
- package/.next/server/app/api/analytics/route.js +2 -2
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route.js +2 -2
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js +2 -2
- package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/delete/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/image/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/mastery/route.js +2 -2
- package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/notes/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/svg-animation/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/list/route.js +2 -2
- package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/route.js +2 -2
- package/.next/server/app/api/error-items/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/short/[shortId]/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +4 -4
- package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/retry/route.js +2 -2
- package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/route.js +2 -2
- package/.next/server/app/api/exams/route.js.nft.json +1 -1
- package/.next/server/app/api/export/route.js +2 -2
- package/.next/server/app/api/export/route.js.nft.json +1 -1
- package/.next/server/app/api/geogebra-analyze/route.js +2 -2
- package/.next/server/app/api/geogebra-analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +2 -2
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/import/route.js +2 -2
- package/.next/server/app/api/import/route.js.nft.json +1 -1
- package/.next/server/app/api/logs/frontend/route.js +2 -2
- package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/retag/route.js +2 -2
- package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/route.js +2 -2
- package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/route.js +2 -2
- package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
- package/.next/server/app/api/openclaw/batch-upload/route.js +2 -2
- package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/generate/route.js +2 -2
- package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/[id]/route.js +2 -2
- package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/route.js +2 -2
- package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
- package/.next/server/app/api/reanswer/route.js +2 -2
- package/.next/server/app/api/reanswer/route.js.nft.json +1 -1
- package/.next/server/app/api/register/route.js.nft.json +1 -1
- package/.next/server/app/api/register/status/route.js +2 -2
- package/.next/server/app/api/register/status/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +2 -2
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/clear/route.js +2 -2
- package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/route.js +2 -2
- package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/route.js +2 -2
- package/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/stats/route.js +2 -2
- package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/suggestions/route.js +2 -2
- package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js +2 -2
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/user/route.js +2 -2
- package/.next/server/app/api/user/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route.js +2 -2
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/error-items/[id]/page/build-manifest.json +5 -5
- package/.next/server/app/error-items/[id]/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/exams/[id]/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/exams/[id]/print/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/exams/page.js +2 -2
- 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 +2 -2
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/latex-test/page/build-manifest.json +5 -5
- package/.next/server/app/latex-test/page.js +2 -2
- package/.next/server/app/latex-test/page.js.nft.json +1 -1
- package/.next/server/app/latex-test/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page/build-manifest.json +5 -5
- package/.next/server/app/login/page.js +2 -2
- 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 +2 -2
- 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 +5 -5
- package/.next/server/app/notebooks/[id]/add/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/notebooks/[id]/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/notebooks/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/practice/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/print-preview/page.js +2 -2
- 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 +5 -5
- 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 +5 -5
- package/.next/server/app/stats/page.js +2 -2
- 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 +5 -5
- package/.next/server/app/tags/page.js +2 -2
- 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/chunks/1jng_app_api_exams_[id]_questions_[questionId]_regenerate_route_actions_1ggead3.js +1 -1
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_practice-records_route_actions_0z2zuf1.js +1 -1
- package/.next/server/chunks/1oeh_server_app_api_error-items_[id]_svg-animation_route_actions_17gckf3.js +1 -1
- package/.next/server/chunks/[externals]__04n7qbr._.js +1 -1
- package/.next/server/chunks/[externals]__0pot68n._.js +1 -1
- package/.next/server/chunks/[externals]__1735khz._.js +1 -1
- package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +6 -6
- package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02j1w81._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__03nfvnm._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__05s4wut._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__06_nln5._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__06h5afw._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0akadps._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0be5c5r._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0bqawi0._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0c59gc3._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +10 -10
- package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0gp88gz._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0inxsnu._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0jaawra._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0k-nf6a._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mqorxb._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0nqbham._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0obb4y-._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0u58zap._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__11n87go._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +9 -9
- package/.next/server/chunks/[root-of-the-server]__131taws._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1413v0e._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__16begv4._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__17duis5._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__184u6de._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__19vj8qy._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1cn6rlb._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1csfdxc._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1ezwxao._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1g1wi9i._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1gmc_uw._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1hpwwxw._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1kqv61m._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1loecue._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1m4-ab6._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1nwf3ua._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1oup682._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1pplzr1._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1sdtn83._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +9 -9
- package/.next/server/chunks/[root-of-the-server]__20465pr._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +1 -1
- package/.next/server/chunks/_0-eguqv._.js +1 -1
- package/.next/server/chunks/_008zx49._.js +1 -1
- package/.next/server/chunks/_011-ll5._.js +1 -1
- package/.next/server/chunks/_0389uce._.js +1 -1
- package/.next/server/chunks/_0431fxn._.js +1 -1
- package/.next/server/chunks/_0_o8yhv._.js +1 -1
- package/.next/server/chunks/_0c5hvv3._.js +4 -4
- package/.next/server/chunks/_0ekrwj-._.js +6 -6
- package/.next/server/chunks/_0frix22._.js +4 -4
- package/.next/server/chunks/_0gwg6ba._.js +1 -1
- package/.next/server/chunks/_0gxi3zr._.js +1 -1
- package/.next/server/chunks/_0lz3t4l._.js +12 -12
- package/.next/server/chunks/_0rdo0a4._.js +1 -1
- package/.next/server/chunks/_0uxp3uh._.js +1 -1
- package/.next/server/chunks/_0x3ltk0._.js +6 -6
- package/.next/server/chunks/_12w5k19._.js +1 -1
- package/.next/server/chunks/_13ffmxv._.js +1 -1
- package/.next/server/chunks/_14tz_k9._.js +1 -1
- package/.next/server/chunks/_167vv93._.js +1 -1
- package/.next/server/chunks/_16jdov0._.js +1 -1
- package/.next/server/chunks/_18amra5._.js +1 -1
- package/.next/server/chunks/_1_ns7o3._.js +1 -1
- package/.next/server/chunks/_1a1aqmi._.js +1 -1
- package/.next/server/chunks/_1a1udq0._.js +1 -1
- package/.next/server/chunks/_1b0269x._.js +1 -1
- package/.next/server/chunks/_1b7qjlv._.js +1 -1
- package/.next/server/chunks/_1be-y66._.js +1 -1
- package/.next/server/chunks/_1e1h1f1._.js +1 -1
- package/.next/server/chunks/_1ex6ovo._.js +1 -1
- package/.next/server/chunks/_1fgb9ve._.js +1 -1
- package/.next/server/chunks/_1flar98._.js +1 -1
- package/.next/server/chunks/_1m-yyz-._.js +1 -1
- package/.next/server/chunks/_1oj6gy_._.js +1 -1
- package/.next/server/chunks/_1pvqo-q._.js +1 -1
- package/.next/server/chunks/_1z_ujac._.js +1 -1
- package/.next/server/chunks/_211va-d._.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_admin_dashboard_route_actions_1ispso-.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_[id]_detail_route_actions_0oe_wkt.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_admin_users_route_actions_0q-rtz1.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_ai_models_route_actions_0w7iwv-.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_ai_test_route_actions_1p0n1q8.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_analytics_route_actions_1e0ou17.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_auth_[___nextauth]_route_actions_08nexdk.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_figure_route_actions_0adlts0.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_fix-latex_route_actions_0hc7dhx.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_geogebra_route_actions_1-ks4uv.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_image_route_actions_1k9n5yl.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_reanswer_route_actions_1-sw0j2.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_retag_route_actions_0ckki4n.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_route_actions_1kbs4ux.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_batch-delete_route_actions_0hiq_1k.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_clear_route_actions_14t_6i-.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_list_route_actions_032x4ue.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_route_actions_1zdvz0p.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_error-items_similarity_route_actions_1i26if9.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_retry_route_actions_1fdi39f.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_exams_[id]_route_actions_1wuidrq.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_exams_route_actions_1c_zhtj.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_export_route_actions_0lpcnjc.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_geogebra-analyze_route_actions_1xng0_c.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_import_route_actions_20ko04x.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_logs_frontend_route_actions_0nxepty.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_retag_route_actions_00su_t8.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_[id]_route_actions_11j3vxg.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_notebooks_route_actions_02cy45r.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_openclaw_batch-upload_route_actions_1zz3oen.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_practice_generate_route_actions_1krr9n_.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_practice_record_[id]_route_actions_0zreiom.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_practice_record_route_actions_0py9z__.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_reanswer_route_actions_04xweh_.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_register_route_actions_0vlzh_c.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_register_status_route_actions_0b52_sj.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_stats_practice_clear_route_actions_1iz6iz0.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_stats_practice_route_actions_1tfoxx-.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_1nb9ma2.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_tags_stats_route_actions_0fmeadc.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_tags_suggestions_route_actions_1xpolyv.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_tasks_route_actions_123tq1_.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +1 -1
- package/.next/server/chunks/_next-internal_server_app_manifest_webmanifest_route_actions_08hcpz0.js +1 -1
- package/.next/server/chunks/node_modules_next_1zdbrne._.js +1 -1
- package/.next/server/chunks/node_modules_zod_v4_classic_external_1-pw2v2.js +3 -3
- package/.next/server/chunks/src_0tzpy5j._.js +1 -1
- package/.next/server/chunks/src_lib_ai_prompts_ts_0z36zms._.js +1 -1
- package/.next/server/chunks/src_lib_date-time_ts_14chb27._.js +1 -1
- package/.next/server/chunks/src_lib_question-deduplication_ts_1p1bik-._.js +1 -1
- package/.next/server/chunks/ssr/[externals]_fs_0pplqgc._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__00gewu3._.js +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__05f8wbh._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0a0nty7._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ax9dog._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0bvtza7._.js +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__0g_-bym._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0gwwr7e._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0hzktoi._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0koj8h0._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0s87xha._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0snpjfe._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0y_e9do._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ybs_4c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__14l7peq._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1507q8a._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__15ppb9j._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__191jn5n._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1f2jx51._.js +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__1gth76-._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ko_dw5._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1l84pks._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1m7qw-2._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ma2oml._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1o8jotz._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1o__w27._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1p7f0va._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1sg9eoj._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1u74hyi._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1xsovpr._.js +1 -1
- package/.next/server/chunks/ssr/_054yhx9._.js +1 -1
- package/.next/server/chunks/ssr/_062gk85._.js +3 -0
- package/.next/server/chunks/ssr/_07ls0n_._.js +1 -1
- package/.next/server/chunks/ssr/_0i9hwpv._.js +1 -1
- package/.next/server/chunks/ssr/_0idg05p._.js +3 -0
- package/.next/server/chunks/ssr/_0iqp5hs._.js +1 -1
- package/.next/server/chunks/ssr/_0m1-rq-._.js +1 -1
- package/.next/server/chunks/ssr/_0mgbe2b._.js +1 -1
- package/.next/server/chunks/ssr/_0nv22wt._.js +1 -1
- package/.next/server/chunks/ssr/_0rz2_qb._.js +5 -5
- package/.next/server/chunks/ssr/_0sbbx9z._.js +2 -2
- package/.next/server/chunks/ssr/_0sf1gd9._.js +1 -1
- package/.next/server/chunks/ssr/_0uemk57._.js +1 -1
- package/.next/server/chunks/ssr/_0zj7dlu._.js +1 -1
- package/.next/server/chunks/ssr/_17igtpd._.js +1 -1
- package/.next/server/chunks/ssr/_1gu1rou._.js +1 -1
- package/.next/server/chunks/ssr/_1jniqsj._.js +1 -1
- package/.next/server/chunks/ssr/_1kgnhmo._.js +2 -2
- package/.next/server/chunks/ssr/_1lt1lhz._.js +2 -2
- package/.next/server/chunks/ssr/_1yeu09q._.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_admin_page_actions_1mcickz.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_admin_user_[id]_page_actions_0baj8gs.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_error-items_[id]_page_actions_0qla9ak.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_[id]_print_page_actions_0pxdgxq.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_exams_page_actions_0av69f-.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_latex-test_page_actions_19v7ka0.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_login_page_actions_04fnjo0.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_add_page_actions_0275ft2.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_[id]_page_actions_1qj0i-7.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_notebooks_page_actions_06x1kdz.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_practice_page_actions_0cy-h5n.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_print-preview_page_actions_1jhaaln.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_register_page_actions_1op-s-x.js +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_stats_page_actions_1olf1_a.js +1 -1
- package/.next/server/chunks/ssr/node_modules_0o2aki7._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_1y5ym6h._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_1lnqo1a._.js +3 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_077yo5w._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +2 -2
- package/.next/server/chunks/ssr/node_modules_next_dist_1_c-t1n._.js +4 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0bew68i._.js +2 -2
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +1 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +1 -1
- package/.next/server/chunks/ssr/src_1biegcg._.js +1 -1
- package/.next/server/chunks/ssr/src_1gayunq._.js +1 -1
- package/.next/server/chunks/ssr/src_1o363ao._.js +1 -1
- package/.next/server/chunks/ssr/src_app_admin_page_tsx_0ublbd0._.js +1 -1
- package/.next/server/chunks/ssr/src_app_error-items_[id]_page_tsx_04xwwdm._.js +1 -1
- package/.next/server/chunks/ssr/src_app_notebooks_[id]_page_tsx_08njm-5._.js +1 -1
- package/.next/server/chunks/ssr/src_app_notebooks_page_tsx_1p9src5._.js +1 -1
- package/.next/server/chunks/ssr/src_app_page_tsx_1chiuah._.js +1 -1
- package/.next/server/chunks/ssr/src_app_practice_page_tsx_10gnx53._.js +1 -1
- package/.next/server/chunks/ssr/src_app_tags_page_tsx_1h2vkk4._.js +1 -1
- package/.next/server/chunks/ssr/src_components_providers_tsx_09kw-mv._.js +2 -2
- package/.next/server/chunks/ssr/src_lib_date-time_ts_0oyqctn._.js +1 -1
- package/.next/server/edge/chunks/[root-of-the-server]__1osrt2u._.js +1 -1
- package/.next/server/edge/chunks/_1s0wgnu._.js +1 -1
- package/.next/server/edge/chunks/node_modules_0g4gi6f._.js +3 -3
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1iafar9.js +1 -1
- package/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_1x1n1fx.js +1 -1
- package/.next/server/instrumentation.js +2 -2
- package/.next/server/middleware-build-manifest.js +8 -8
- package/.next/server/middleware-manifest.json +7 -7
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/02d-8f2qj7j3j.js +1 -0
- package/.next/static/chunks/02t7qqptint2p.js +1 -0
- package/.next/static/chunks/090a6irxe0c6j.js +1 -0
- package/.next/static/chunks/0bhxyq7e2eqjc.js +5 -0
- package/.next/static/chunks/0if-vqkhyn-zc.js +1 -0
- package/.next/static/chunks/0jf31atbtr1mv.js +1 -0
- package/.next/static/chunks/0vgthy7v615hq.js +1 -0
- package/.next/static/chunks/1e5n4cprhwujv.js +1 -0
- package/.next/static/chunks/1edfvwc5_eck-.js +31 -0
- package/.next/static/chunks/1f0u19gh5_49z.js +1 -0
- package/.next/static/chunks/1fdj59ys-pend.js +1 -0
- package/.next/static/chunks/1kerqdluzq2l0.js +1 -0
- package/.next/static/chunks/1r4lwlvm7m53v.js +1 -0
- package/.next/static/chunks/1rz1bokv9edzr.js +1 -0
- package/.next/static/chunks/1s-d67d-yroyw.js +1 -0
- package/.next/static/chunks/1tw5_upsy-qj_.js +22 -0
- package/.next/static/chunks/1w1xvldfmcs67.js +6 -0
- package/.next/static/chunks/1zdof8ylzqm8w.js +1 -0
- package/.next/static/chunks/2-k1hjh6ff6y4.js +1 -0
- package/.next/static/chunks/21qpve5q3mjly.js +1 -0
- package/.next/static/chunks/21v32ctwcoxqt.js +1 -0
- package/.next/static/chunks/27-t289uq6_ju.js +3 -0
- package/.next/static/chunks/293-te2b34thz.js +1 -0
- package/.next/static/chunks/2dgleoh5fbs83.js +1 -0
- package/.next/static/chunks/2di_nd6djcxwu.js +1 -0
- package/.next/static/chunks/2mk03owifu2m1.js +33 -0
- package/.next/static/chunks/2qza4p5d9fz_2.js +1 -0
- package/.next/static/chunks/2s4c8fcrdnew4.js +1 -0
- package/.next/static/chunks/2zdqnkem9n6a9.js +1 -0
- package/.next/static/chunks/3-wm04s--suy5.js +1 -0
- package/.next/static/chunks/33t46atd3n2zd.js +1 -0
- package/.next/static/chunks/37yx4gh09tzwc.js +1 -0
- package/.next/static/chunks/3_ymrkgcp90nl.js +191 -0
- package/.next/static/chunks/3gwb465dhjxo9.js +1 -0
- package/.next/static/chunks/3h1inei-ffe-t.js +1 -0
- package/.next/static/chunks/{130ch9mnvb6mp.css → 3n-yabfsiog4i.css} +1 -1
- package/.next/static/chunks/3umldi5zknsyi.js +1 -0
- package/.next/static/chunks/turbopack-1yjxh4vceobdr.js +1 -0
- package/.next/static/{xZpf28Jr6w9NoYOlVaWKI → lggRjZo2bfOA34ETpQH59}/_clientMiddlewareManifest.js +2 -2
- package/LICENSE +22 -0
- package/package.json +3 -2
- 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/.next/server/chunks/ssr/_12c20v5._.js +0 -3
- package/.next/server/chunks/ssr/_1filpif._.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/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/2f37cahijtel1.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/2vm3br71ud51j.js +0 -1
- package/.next/static/chunks/2w2uo9jjxt-re.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/3g1rm2suowncy.js +0 -3
- package/.next/static/chunks/3helovsg02qr4.js +0 -1
- package/.next/static/chunks/3jta6jrk-jubq.js +0 -1
- package/.next/static/chunks/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/{xZpf28Jr6w9NoYOlVaWKI → lggRjZo2bfOA34ETpQH59}/_buildManifest.js +0 -0
- /package/.next/static/{xZpf28Jr6w9NoYOlVaWKI → lggRjZo2bfOA34ETpQH59}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871689,e=>{"use strict";let s=(0,e.i(475254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,s],871689)},666944,e=>{"use strict";var s=e.i(843476),t=e.i(271645),r=e.i(618566),a=e.i(519455),i=e.i(590546),n=e.i(511445),l=e.i(149704),c=e.i(41931),o=e.i(111110),m=e.i(35209),d=e.i(469817);function p(){var e,p,x,u;let h=(0,r.useSearchParams)(),{t:g}=(0,o.useLanguage)(),[w,f]=(0,t.useState)([]);(0,m.usePageTitle)(g.printPreview.title);let[j,v]=(0,t.useState)(!0),[b,N]=(0,t.useState)(!1),[y,S]=(0,t.useState)(!1),[P,k]=(0,t.useState)(!1),[I,T]=(0,t.useState)(70),[A,C]=(0,t.useState)(!1),[E,L]=(0,t.useState)(new Set);(0,t.useEffect)(()=>{R()},[]);let R=async()=>{try{let e=new URLSearchParams(h.toString());e.set("pageSize",String(d.PRINT_PREVIEW_PAGE_SIZE));let s=await c.apiClient.get(`/api/error-items/list?${e.toString()}`);f(s.items),L(new Set(s.items.map(e=>e.id)))}catch(e){console.error(e)}finally{v(!1)}},B=w.filter(e=>E.has(e.id)),$=!b&&!y,_=(e=w.length,(p=B.length)===e?String(e):`${p}/${e}`),U=(x=w.length,u=B.length,0===x?"noItems":0===u?"noSelection":null);return j?(0,s.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,s.jsx)("p",{className:"text-muted-foreground",children:g.common.loading})}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"print:hidden sticky top-0 z-10 bg-background border-b p-3 sm:p-4 shadow-sm",children:(0,s.jsxs)("div",{className:"max-w-6xl mx-auto space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(i.BackButton,{fallbackUrl:"/notebooks"}),(0,s.jsxs)("h1",{className:"text-lg sm:text-xl font-bold flex-1",children:[g.printPreview?.title||"Print Preview"," (",_," ",g.notebooks?.items||"items",")"]}),(0,s.jsx)(a.Button,{onClick:()=>{window.print()},size:"sm",className:"whitespace-nowrap",disabled:0===B.length,children:g.printPreview?.printButton||"Print / Save PDF"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm bg-muted/50 px-2 sm:px-3 py-1 rounded-md",children:[(0,s.jsxs)("span",{className:"whitespace-nowrap text-xs sm:text-sm",children:[g.printPreview?.imageScale||"Image Scale",": ",I,"%"]}),(0,s.jsx)("input",{type:"range",min:"30",max:"100",value:I,onChange:e=>T(Number(e.target.value)),className:"w-16 sm:w-20 accent-primary"})]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-1 sm:gap-4",children:[(0,s.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,s.jsx)("input",{type:"checkbox",checked:A,onChange:e=>C(e.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),g.printPreview?.showQuestionText||"Question Text"]}),(0,s.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,s.jsx)("input",{type:"checkbox",checked:b,onChange:e=>N(e.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),g.printPreview?.showAnswers||"Show Answers"]}),(0,s.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,s.jsx)("input",{type:"checkbox",checked:y,onChange:e=>S(e.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),g.printPreview?.showAnalysis||"Show Analysis"]}),(0,s.jsxs)("label",{className:"flex items-center gap-1.5 text-xs sm:text-sm cursor-pointer whitespace-nowrap hover:text-primary transition-colors",children:[(0,s.jsx)("input",{type:"checkbox",checked:P,onChange:e=>k(e.target.checked),className:"rounded border-gray-300 text-primary focus:ring-primary w-3.5 h-3.5 sm:w-4 sm:h-4"}),g.printPreview?.showTags||"Show Tags"]})]})]}),(0,s.jsxs)("div",{className:"rounded-md border bg-muted/20 p-3 space-y-2",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,s.jsxs)("div",{className:"text-sm font-medium",children:[g.printPreview?.selectItems||"Select Items"," (",B.length,"/",w.length,")"]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(a.Button,{variant:"outline",size:"sm",onClick:()=>{L(new Set(w.map(e=>e.id)))},children:g.printPreview?.selectAll||"Select All"}),(0,s.jsx)(a.Button,{variant:"outline",size:"sm",onClick:()=>{L(new Set)},children:g.printPreview?.clearSelection||"Clear Selection"})]})]}),(0,s.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3 max-h-44 overflow-y-auto pr-1",children:w.map((e,t)=>(0,s.jsxs)("label",{className:"flex items-start gap-2 rounded border bg-background p-2 text-xs cursor-pointer hover:border-primary/50",children:[(0,s.jsx)("input",{type:"checkbox",checked:E.has(e.id),onChange:()=>{var s;return s=e.id,void L(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})},className:"mt-0.5 rounded border-gray-300 text-primary focus:ring-primary"}),(0,s.jsxs)("span",{className:"line-clamp-2",children:[(0,s.jsx)("span",{className:"font-semibold",children:g.printPreview?.questionNumber?.replace("{num}",String(t+1))||`Question ${t+1}`}),e.questionText?`:${e.questionText}`:""]})]},e.id))})]})]})}),(0,s.jsxs)("div",{className:"max-w-4xl mx-auto p-8 print:p-0",children:[B.map((e,t)=>{let r=[];if(e.tags&&e.tags.length>0)r=e.tags.map(e=>e.name);else try{r=JSON.parse(e.knowledgePoints||"[]")}catch(e){r=[]}return(0,s.jsxs)("div",{className:`mb-4 border-b last:border-b-0 print:break-inside-avoid ${$?"pb-20 print:pb-16":"pb-6"}`,children:[(0,s.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-x-4 gap-y-2 leading-7",children:[(0,s.jsx)("span",{className:"text-lg font-bold",children:g.printPreview?.questionNumber?.replace("{num}",String(t+1))||`Question ${t+1}`}),e.shortId&&(0,s.jsx)("span",{className:"font-mono text-sm text-muted-foreground whitespace-nowrap",children:g.printPreview.source.replace("{id}",e.shortId)}),e.subject&&(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:e.subject.name}),e.gradeSemester&&(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:e.gradeSemester}),e.paperLevel&&(0,s.jsxs)("span",{className:"text-sm text-muted-foreground",children:[g.printPreview?.paperLevel||"Paper Level",": ",e.paperLevel.toUpperCase()]}),P&&r.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("span",{className:"font-semibold",children:[g.printPreview?.knowledgePoints||"Knowledge Points",":"]}),r.map((e,t)=>(0,s.jsx)("span",{className:"px-2 py-1 bg-muted rounded text-sm",children:e},`${e}-${t}`))]})]}),A&&e.questionText?(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsx)(n.MarkdownRenderer,{content:e.questionText}),(0,s.jsx)(l.QuestionFigure,{svg:e.figureSvg})]}):e.originalImageUrl&&(0,s.jsx)("div",{className:"mb-4",children:(0,s.jsx)("img",{src:e.originalImageUrl,alt:g.detail?.originalProblem||"Question Image",className:"h-auto border rounded",style:{maxWidth:`${I}%`}})}),b&&e.answerText&&(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsxs)("h3",{className:"font-semibold mb-2",children:[g.printPreview?.referenceAnswer||"Reference Answer",":"]}),(0,s.jsx)(n.MarkdownRenderer,{content:e.answerText})]}),y&&e.analysis&&(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsxs)("h3",{className:"font-semibold mb-2",children:[g.printPreview?.analysis||"Analysis",":"]}),(0,s.jsx)(n.MarkdownRenderer,{content:e.analysis})]})]},e.id)}),U&&(0,s.jsx)("div",{className:"text-center py-12 text-muted-foreground",children:"noSelection"===U?g.printPreview?.noSelection||"No items selected":g.printPreview?.noItems||"No matching error items"})]})]})}e.s(["default",0,function(){let{t:e}=(0,o.useLanguage)();return(0,s.jsx)(t.Suspense,{fallback:(0,s.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:e.common.loading}),children:(0,s.jsx)(p,{})})}],666944)},149704,e=>{"use strict";var s=e.i(843476),t=e.i(111110),r=e.i(975157);e.s(["QuestionFigure",0,function({svg:e,className:a}){let{t:i}=(0,t.useLanguage)();return e?(0,s.jsx)("figure",{className:(0,r.cn)("question-figure my-3",a),children:(0,s.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=>{"use strict";var s=e.i(843476),t=e.i(618566),r=e.i(519455),a=e.i(871689);e.s(["BackButton",0,function({fallbackUrl:e,className:i}){let n=(0,t.useRouter)();return(0,s.jsx)(r.Button,{variant:"ghost",size:"icon",onClick:()=>{n.push(e)},className:i,children:(0,s.jsx)(a.ArrowLeft,{className:"h-5 w-5"})})}])},469817,e=>{"use strict";e.s(["DEFAULT_PAGE_SIZE",0,18,"MAX_VISIBLE_PAGES",0,5,"PRINT_PREVIEW_PAGE_SIZE",0,200])},35209,e=>{"use strict";var s=e.i(271645),t=e.i(111110);e.s(["usePageTitle",0,function(...e){let{t:r}=(0,t.useLanguage)(),a=[r.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,s.useEffect)(()=>{document.title=a},[a])}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871689,e=>{"use strict";let t=(0,e.i(475254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],871689)},463059,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],463059)},503116,e=>{"use strict";let t=(0,e.i(475254).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock",0,t],503116)},63804,e=>{"use strict";let t=(0,e.i(475254).default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);e.s(["ListChecks",0,t],63804)},788699,e=>{"use strict";let t=(0,e.i(475254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],788699)},303281,e=>{"use strict";let t=(0,e.i(475254).default)("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]);e.s(["Printer",0,t],303281)},283086,e=>{"use strict";let t=(0,e.i(475254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],283086)},469937,e=>{"use strict";var t=e.i(843476);let r=(0,e.i(475254).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var n=e.i(111110),a=e.i(975157);let i=[1,2,3,4,5];e.s(["DifficultyStars",0,function({value:e,onChange:s,disabled:l,size:o="sm",showUnrated:c=!0,className:d}){let{t:u}=(0,n.useLanguage)(),m=e??0,h="sm"===o?"h-3.5 w-3.5":"h-5 w-5",f=m?u.difficulty.starsLabel.replace("{n}",String(m)):u.difficulty.unrated;return s?(0,t.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-0.5",d),role:"group","aria-label":`${u.difficulty.label}:${f}`,title:u.difficulty.clearHint,children:[i.map(e=>(0,t.jsx)("button",{type:"button",disabled:l,onClick:()=>s(e===m?null:e),"aria-label":u.difficulty.setStars.replace("{n}",String(e)),"aria-pressed":e<=m,className:"rounded p-0.5 hover:bg-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,t.jsx)(r,{className:(0,a.cn)(h,e<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},e)),!m&&c&&(0,t.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:u.difficulty.unrated})]}):m?(0,t.jsx)("span",{className:(0,a.cn)("inline-flex items-center",d),role:"img","aria-label":`${u.difficulty.label}:${f}`,title:f,children:i.map(e=>(0,t.jsx)(r,{className:(0,a.cn)(h,e<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},e))}):c?(0,t.jsx)("span",{className:(0,a.cn)("text-xs text-muted-foreground",d),children:u.difficulty.unrated}):null}],469937)},709830,76824,e=>{"use strict";var t=e.i(843476),r=e.i(111110),n=e.i(952122);let a=["primary","junior_high","senior_high"],i="primary",s=["math","english","chinese","physics","chemistry","biology","history","geography","politics"];function l(e){return"string"==typeof e&&s.includes(e)}function o(e){var t;let r=l(e.subjectKey)?e.subjectKey:(0,n.inferSubjectFromName)(e.name);return{stage:"string"==typeof(t=e.stage)&&a.includes(t)?e.stage:i,subject:r&&l(r)?r:null}}function c(){let{t:e}=(0,r.useLanguage)();return{stageLabel:t=>({primary:e.auth.primary,junior_high:e.auth.juniorHigh,senior_high:e.auth.seniorHigh})[t],subjectLabel:t=>e.tags.subjects[t]}}e.s(["DEFAULT_NOTEBOOK_STAGE",0,i,"NOTEBOOK_STAGES",0,a,"STAGE_SUBJECTS",0,{primary:["math","english"],junior_high:s,senior_high:s},"resolveNotebookScope",0,o],76824),e.s(["NotebookScopeLabel",0,function({notebook:e,className:r}){let{stageLabel:n,subjectLabel:a}=c(),i=o(e);return(0,t.jsxs)("span",{className:r,children:[n(i.stage),i.subject?` \xb7 ${a(i.subject)}`:""]})},"useNotebookScopeLabels",0,c],709830)},67153,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(776639),a=e.i(519455),i=e.i(793479),s=e.i(110204),l=e.i(111110),o=e.i(294114);e.s(["RenameNotebookDialog",0,function({open:e,onOpenChange:c,currentName:d,onRename:u}){let[m,h]=(0,r.useState)(d),[f,p]=(0,r.useState)(!1),{t:g}=(0,l.useLanguage)();(0,r.useEffect)(()=>{h(d)},[d]);let x=async()=>{if(!m.trim())return void o.toast.warning(g.notebooks?.renameDialog?.enterName||"Please enter notebook name");p(!0);try{await u(m.trim()),c(!1)}catch(e){console.error(e)}finally{p(!1)}};return(0,t.jsx)(n.Dialog,{open:e,onOpenChange:c,children:(0,t.jsxs)(n.DialogContent,{children:[(0,t.jsx)(n.DialogHeader,{children:(0,t.jsx)(n.DialogTitle,{children:g.notebooks?.renameDialog?.title||"Rename Notebook"})}),(0,t.jsx)("div",{className:"space-y-4 py-4",children:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(s.Label,{htmlFor:"rename-name",children:g.notebooks?.renameDialog?.nameLabel||"New Name"}),(0,t.jsx)(i.Input,{id:"rename-name",placeholder:g.notebooks?.renameDialog?.placeholder||"Enter new notebook name",value:m,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&x()})]})}),(0,t.jsxs)(n.DialogFooter,{children:[(0,t.jsx)(a.Button,{variant:"outline",onClick:()=>c(!1),children:g.common.cancel}),(0,t.jsx)(a.Button,{onClick:x,disabled:f||!m.trim(),children:f?g.notebooks?.renameDialog?.renaming||"Renaming...":g.notebooks?.renameDialog?.rename||"Rename"})]})]})})}])},590546,e=>{"use strict";var t=e.i(843476),r=e.i(618566),n=e.i(519455),a=e.i(871689);e.s(["BackButton",0,function({fallbackUrl:e,className:i}){let s=(0,r.useRouter)();return(0,t.jsx)(n.Button,{variant:"ghost",size:"icon",onClick:()=>{s.push(e)},className:i,children:(0,t.jsx)(a.ArrowLeft,{className:"h-5 w-5"})})}])},515288,e=>{"use strict";var t=e.i(843476),r=e.i(975157);e.s(["Card",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,r.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...n})},"CardContent",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,r.cn)("px-6",e),...n})},"CardDescription",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,r.cn)("text-muted-foreground text-sm",e),...n})},"CardHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,r.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...n})},"CardTitle",0,function({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,r.cn)("leading-none font-semibold",e),...n})}])},257428,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(820783),a=e.i(30030),i=e.i(981140),s=e.i(369340),l=e.i(999682),o=e.i(635804),c=e.i(296626);e.i(174080);var d=Symbol("radix.slottable");function u(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===d}var m=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,a)=>{var i,s;let l,o,c,d=(s=i=`Primitive.${a}`,(l=r.forwardRef((e,t)=>{let{children:a,...i}=e;if(r.isValidElement(a)){var s;let e,l,o=(s=a,(l=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(l=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),c=function(e,t){let r={...t};for(let n in t){let a=e[n],i=t[n];/^on[A-Z]/.test(n)?a&&i?r[n]=(...e)=>{let t=i(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...i}:"className"===n&&(r[n]=[a,i].filter(Boolean).join(" "))}return{...e,...r}}(i,a.props);return a.type!==r.Fragment&&(c.ref=t?(0,n.composeRefs)(t,o):o),r.cloneElement(a,c)}return r.Children.count(a)>1?r.Children.only(null):null})).displayName=`${s}.SlotClone`,o=l,(c=r.forwardRef((e,n)=>{let{children:a,...i}=e,s=r.Children.toArray(a),l=s.find(u);if(l){let e=l.props.children,a=s.map(t=>t!==l?t:r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null);return(0,t.jsx)(o,{...i,ref:n,children:r.isValidElement(e)?r.cloneElement(e,void 0,a):null})}return(0,t.jsx)(o,{...i,ref:n,children:a})})).displayName=`${i}.Slot`,c),m=r.forwardRef((e,r)=>{let{asChild:n,...i}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,t.jsx)(n?d:a,{...i,ref:r})});return m.displayName=`Primitive.${a}`,{...e,[a]:m}},{}),h="Checkbox",[f,p]=(0,a.createContextScope)(h),[g,x]=f(h);function y(e){let{__scopeCheckbox:n,checked:a,children:i,defaultChecked:l,disabled:o,form:c,name:d,onCheckedChange:u,required:m,value:f="on",internal_do_not_use_render:p}=e,[x,y]=(0,s.useControllableState)({prop:a,defaultProp:l??!1,onChange:u,caller:h}),[b,k]=r.useState(null),[j,v]=r.useState(null),N=r.useRef(!1),w=!b||!!c||!!b.closest("form"),C={checked:x,disabled:o,setChecked:y,control:b,setControl:k,name:d,form:c,value:f,hasConsumerStoppedPropagationRef:N,required:m,defaultChecked:!E(l)&&l,isFormControl:w,bubbleInput:j,setBubbleInput:v};return(0,t.jsx)(g,{scope:n,...C,children:"function"==typeof p?p(C):i})}var b="CheckboxTrigger",k=r.forwardRef(({__scopeCheckbox:e,onKeyDown:a,onClick:s,...l},o)=>{let{control:c,value:d,disabled:u,checked:h,required:f,setControl:p,setChecked:g,hasConsumerStoppedPropagationRef:y,isFormControl:k,bubbleInput:j}=x(b,e),v=(0,n.useComposedRefs)(o,p),N=r.useRef(h);return r.useEffect(()=>{let e=c?.form;if(e){let t=()=>g(N.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[c,g]),(0,t.jsx)(m.button,{type:"button",role:"checkbox","aria-checked":E(h)?"mixed":h,"aria-required":f,"data-state":S(h),"data-disabled":u?"":void 0,disabled:u,value:d,...l,ref:v,onKeyDown:(0,i.composeEventHandlers)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.composeEventHandlers)(s,e=>{g(e=>!!E(e)||!e),j&&k&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})})});k.displayName=b;var j=r.forwardRef((e,r)=>{let{__scopeCheckbox:n,name:a,checked:i,defaultChecked:s,required:l,disabled:o,value:c,onCheckedChange:d,form:u,...m}=e;return(0,t.jsx)(y,{__scopeCheckbox:n,checked:i,defaultChecked:s,disabled:o,required:l,onCheckedChange:d,name:a,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k,{...m,ref:r,__scopeCheckbox:n}),e&&(0,t.jsx)(C,{__scopeCheckbox:n})]})})});j.displayName=h;var v="CheckboxIndicator",N=r.forwardRef((e,r)=>{let{__scopeCheckbox:n,forceMount:a,...i}=e,s=x(v,n);return(0,t.jsx)(c.Presence,{present:a||E(s.checked)||!0===s.checked,children:(0,t.jsx)(m.span,{"data-state":S(s.checked),"data-disabled":s.disabled?"":void 0,...i,ref:r,style:{pointerEvents:"none",...e.style}})})});N.displayName=v;var w="CheckboxBubbleInput",C=r.forwardRef(({__scopeCheckbox:e,...a},i)=>{let{control:s,hasConsumerStoppedPropagationRef:c,checked:d,defaultChecked:u,required:h,disabled:f,name:p,value:g,form:y,bubbleInput:b,setBubbleInput:k}=x(w,e),j=(0,n.useComposedRefs)(i,k),v=(0,l.usePrevious)(d),N=(0,o.useSize)(s);r.useEffect(()=>{if(!b)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!c.current;if(v!==d&&e){let r=new Event("click",{bubbles:t});b.indeterminate=E(d),e.call(b,!E(d)&&d),b.dispatchEvent(r)}},[b,v,d,c]);let C=r.useRef(!E(d)&&d);return(0,t.jsx)(m.input,{type:"checkbox","aria-hidden":!0,defaultChecked:u??C.current,required:h,disabled:f,name:p,value:g,form:y,...a,tabIndex:-1,ref:j,style:{...a.style,...N,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function E(e){return"indeterminate"===e}function S(e){return E(e)?"indeterminate":e?"checked":"unchecked"}C.displayName=w;var _=e.i(643531),R=e.i(975157);let L=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(j,{ref:n,className:(0,R.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...r,children:(0,t.jsx)(N,{className:(0,R.cn)("flex items-center justify-center text-current"),children:(0,t.jsx)(_.Check,{className:"h-4 w-4"})})}));L.displayName=j.displayName,e.s(["Checkbox",0,L],257428)},912505,e=>{"use strict";var t=e.i(843476),r=e.i(975157);e.s(["EmptyState",0,function({icon:e,title:n,description:a,action:i,className:s}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col items-center justify-center rounded-2xl border border-dashed bg-card/50 px-6 py-14 text-center",s),children:[(0,t.jsx)("div",{className:"mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent text-accent-foreground",children:(0,t.jsx)(e,{className:"h-7 w-7"})}),(0,t.jsx)("p",{className:"font-medium",children:n}),a&&(0,t.jsx)("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:a}),i&&(0,t.jsx)("div",{className:"mt-5",children:i})]})}])},393842,e=>{"use strict";var t=e.i(843476),r=e.i(590546),n=e.i(975157);e.s(["PageHeader",0,function({title:e,description:a,backHref:i,actions:s,titleAddon:l,className:o}){return(0,t.jsxs)("div",{className:(0,n.cn)("flex items-start gap-3",o),children:[i&&(0,t.jsx)(r.BackButton,{fallbackUrl:i,className:"-ml-2 shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("h1",{className:"truncate text-2xl font-bold tracking-tight sm:text-3xl",children:e}),l]}),a&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground sm:text-base",children:a})]}),s&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:s})]})}])},86963,e=>{"use strict";var t=e.i(843476),r=e.i(531278);e.s(["PageLoading",0,function({label:e}){return(0,t.jsxs)("div",{className:"flex min-h-[50vh] flex-col items-center justify-center gap-3 text-muted-foreground",children:[(0,t.jsx)(r.Loader2,{className:"h-7 w-7 animate-spin text-primary"}),e&&(0,t.jsx)("p",{className:"text-sm",children:e})]})}])},469817,e=>{"use strict";e.s(["DEFAULT_PAGE_SIZE",0,18,"MAX_VISIBLE_PAGES",0,5,"PRINT_PREVIEW_PAGE_SIZE",0,200])},952122,e=>{"use strict";e.i(306831),e.s(["inferSubjectFromName",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}])},62825,e=>{"use strict";function t(e){return"not_attempted"===e||"wrong_attempt"===e||"unknown"===e?e:"unknown"}e.s(["getMistakeStatusLabel",0,function(e,r="zh"){return("en"===r?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[t(e)]},"normalizeMistakeStatusForSave",0,function(e,r){return(r||"").trim()?"wrong_attempt":t(e)}])},35209,e=>{"use strict";var t=e.i(271645),r=e.i(111110);e.s(["usePageTitle",0,function(...e){let{t:n}=(0,r.useLanguage)(),a=[n.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,t.useEffect)(()=>{document.title=a},[a])}])},833547,e=>{"use strict";var t=e.i(41931);async function r(e){try{return(await t.apiClient.get(`/api/error-items/short/${encodeURIComponent(e)}`)).id}catch{return null}}e.s(["locateByShortId",0,r])},747279,e=>{"use strict";let t=RegExp("^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{6}$");e.s(["isShortId",0,function(e){return"string"==typeof e&&t.test(e)}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,72664,141176,438465,3198,e=>{"use strict";var t=e.i(475254);let i=(0,t.default)("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(["Box",0,i],72664);var r=e.i(843476),n=e.i(271645);let a=(0,t.default)("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 s=e.i(286536),o=e.i(511445),l=e.i(624687),h=e.i(111110),d=e.i(975157);e.s(["MarkdownEditor",0,function({value:e,onChange:t,className:i,...c}){let{t:u}=(0,h.useLanguage)(),[m,g]=(0,n.useState)("source"),p=(0,n.useId)(),w=[{mode:"source",label:u.markdownEditor.source,icon:a},{mode:"preview",label:u.markdownEditor.preview,icon:s.Eye}];return(0,r.jsxs)("div",{className:"space-y-1.5",children:[(0,r.jsx)("div",{role:"tablist","aria-label":u.markdownEditor.modeLabel,className:"flex justify-end",children:(0,r.jsx)("div",{className:"inline-flex rounded-md border bg-muted/40 p-0.5",children:w.map(({mode:e,label:t,icon:i})=>(0,r.jsxs)("button",{type:"button",role:"tab","aria-selected":m===e,"aria-controls":p,onClick:()=>g(e),className:(0,d.cn)("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,r.jsx)(i,{className:"h-3.5 w-3.5"}),t]},e))})}),(0,r.jsx)("div",{id:p,role:"tabpanel",children:"source"===m?(0,r.jsx)(l.Textarea,{value:e,onChange:e=>t(e.target.value),className:i,...c}):(0,r.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,r.jsx)(o.MarkdownRenderer,{content:e}):(0,r.jsx)("p",{className:"text-sm italic text-muted-foreground",children:u.markdownEditor.empty})})})]})}],141176);var c=e.i(967489),u=e.i(810980),m=e.i(41931);e.s(["NotebookSelector",0,function({value:e,onChange:t,className:i}){let[a,s]=(0,n.useState)([]),[o,l]=(0,n.useState)(!0),{t:d}=(0,h.useLanguage)();return(0,n.useEffect)(()=>{(async()=>{try{let e=await m.apiClient.get("/api/notebooks");s(e)}catch(e){console.error("Failed to fetch notebooks:",e)}finally{l(!1)}})()},[]),(0,r.jsxs)(c.Select,{value:e,onValueChange:t,children:[(0,r.jsx)(c.SelectTrigger,{className:i,children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(u.BookOpen,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)(c.SelectValue,{placeholder:d.notebooks?.selector?.placeholder||"Select Notebook"})]})}),(0,r.jsx)(c.SelectContent,{children:0===a.length?(0,r.jsx)("div",{className:"p-2 text-sm text-muted-foreground text-center",children:d.notebooks?.selector?.empty||"No notebooks available"}):a.map(e=>(0,r.jsx)(c.SelectItem,{value:e.id,children:e.name},e.id))})]})}],438465);var g=e.i(531278);let p=(0,t.default)("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"}]]),w=(0,t.default)("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 x=e.i(367240),f=e.i(16715),y=e.i(727612),b=e.i(519455),v=e.i(294114);let C=null,k=["setcoordsystem","setaxesvisible","setgridvisible","setcolor","setlinethickness","setlinestyle","setpointsize","setpointstyle","setlabelvisible","setcaption","setvisible","setfilling","setvalue","setfixed","setbackgroundcolor"];function D(e,t){for(let i of t)try{if(function(e){let t=e.toLowerCase().trim();return k.some(e=>t.startsWith(e+"("))}(i)){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 i=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:i}}catch{return null}}(i);t&&"function"==typeof e[t.m]&&e[t.m](...t.a)}else{let t=i.trim();t&&!/[<>'"]/.test(t)?e.evalCommand(t):console.warn(`[GGB] Blocked potentially unsafe command: ${i.substring(0,50)}`)}}catch(e){console.warn(`[GGB] Failed: ${i}`,e)}}e.s(["GeogebraDemo",0,function({commands:e,height:t=700,showToolBar:i=!1,showAlgebraInput:a=!1,showMenuBar:s=!1,className:o="",onRegenerate:l,onDelete:d}){let{t:c}=(0,h.useLanguage)(),u=(0,n.useRef)(null),m=(0,n.useRef)(null),k=(0,n.useRef)(`ggb-${Math.random().toString(36).slice(2,9)}`),[j,N]=(0,n.useState)(!0),[M,R]=(0,n.useState)(null),[S,E]=(0,n.useState)(!0),[$,B]=(0,n.useState)(!1),[L,P]=(0,n.useState)(!1),_=(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===_.length)return;let e=!1,r=k.current;return(C||(C=new Promise((e,t)=>{if(window.GGBApplet)return void e();let i=document.createElement("script");i.src="https://www.geogebra.org/apps/deployggb.js",i.async=!0,i.onload=()=>e(),i.onerror=()=>{C=null,t(Error("Failed to load GeoGebra"))},document.head.appendChild(i)}))).then(()=>{if(e)return;let n=window.GGBApplet;if(!n){R("GeoGebra 未正确加载"),N(!1);return}let o=u.current;if(o){o.innerHTML=`<div id="${r}" style="width:100%;height:${t}px"></div>`;try{new n({appName:"classic",width:"100%",height:t,showToolBar:i,showAlgebraInput:a,showMenuBar:s,showResetIcon:!0,enableRightClick:!0,enableShiftDragZoom:!0,language:"zh",appletOnLoad:i=>{if(e)return;m.current=i;let r=u.current?.firstElementChild;if(r){r.style.width="100%";let e=u.current?.offsetWidth||r.offsetWidth||800;i.setSize(e,t)}D(i,_),N(!1)}},!0).inject(r)}catch(t){console.error("[GGB] Init failed:",t),e||(R("GeoGebra 初始化失败"),N(!1))}}}).catch(t=>{console.error("[GGB] Script load failed:",t),e||(R("无法加载 GeoGebra 组件"),N(!1))}),()=>{e=!0;try{let e=m.current;e&&"function"==typeof e.remove&&e.remove()}catch(e){console.warn("[GGB] Cleanup failed:",e)}m.current=null,u.current&&(u.current.innerHTML="")}},[_,i,a,s]),(0,n.useEffect)(()=>{let e=u.current?.firstElementChild;if(!e)return;let i=S?700:t;e.style.width="100%",e.style.height=`${i}px`;let r=m.current;if(r?.setSize){let t=u.current?.offsetWidth||e.offsetWidth||800;r.setSize(t,i)}},[S,t]);let I=(0,n.useCallback)(()=>{let e=m.current;if(e)try{e.resetConstruction(),setTimeout(()=>{m.current&&D(m.current,_)},300)}catch(e){console.warn("[GGB] Reset failed",e)}},[_]),H=(0,n.useCallback)(async()=>{if(l&&!$){B(!0);try{await l()}finally{B(!1)}}},[l,$]),A=(0,n.useCallback)(async()=>{if(d&&!L&&await (0,v.confirmDialog)(c.geogebra.confirmDelete,{destructive:!0})){P(!0);try{await d()}catch{v.toast.error(c.geogebra.deleteFailed)}finally{P(!1)}}},[d,L,c]);return 0===_.length?null:(0,r.jsxs)("div",{className:`relative rounded-lg border bg-card ${o}`,children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b bg-muted/30",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"GeoGebra 动态演示"}),j&&(0,r.jsx)(g.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[l&&(0,r.jsxs)(b.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:H,title:"重新生成",disabled:$||j,children:[$?(0,r.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(f.RefreshCw,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:"重新生成"})]}),d&&(0,r.jsxs)(b.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:A,title:c.geogebra.delete,disabled:L||$,children:[L?(0,r.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(y.Trash2,{className:"h-3.5 w-3.5"}),(0,r.jsx)("span",{children:c.geogebra.delete})]}),(0,r.jsx)(b.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:I,title:"重置",disabled:j,children:(0,r.jsx)(x.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(b.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>E(e=>!e),title:S?"缩小":"放大",children:S?(0,r.jsx)(w,{className:"h-3.5 w-3.5"}):(0,r.jsx)(p,{className:"h-3.5 w-3.5"})})]})]}),(0,r.jsx)("div",{ref:u,style:{width:"100%"}}),j&&(0,r.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 rounded-b-lg",style:{top:37},children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,r.jsx)(g.Loader2,{className:"h-6 w-6 animate-spin text-primary"}),(0,r.jsx)("span",{className:"text-sm text-muted-foreground",children:"加载 GeoGebra..."})]})}),M&&(0,r.jsx)("div",{className:"flex items-center justify-center text-sm text-destructive",style:{minHeight:t},children:M})]})}],3198)},356909,e=>{"use strict";let t=(0,e.i(475254).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],356909)},283086,e=>{"use strict";let t=(0,e.i(475254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],283086)},469937,e=>{"use strict";var t=e.i(843476);let i=(0,e.i(475254).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var r=e.i(111110),n=e.i(975157);let a=[1,2,3,4,5];e.s(["DifficultyStars",0,function({value:e,onChange:s,disabled:o,size:l="sm",showUnrated:h=!0,className:d}){let{t:c}=(0,r.useLanguage)(),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.cn)("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)(i,{className:(0,n.cn)(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.cn)("inline-flex items-center",d),role:"img","aria-label":`${c.difficulty.label}:${g}`,title:g,children:a.map(e=>(0,t.jsx)(i,{className:(0,n.cn)(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.cn)("text-xs text-muted-foreground",d),children:c.difficulty.unrated}):null}],469937)},12130,28928,e=>{"use strict";var t=e.i(843476),i=e.i(271645),r=i,n=Object.defineProperty,a=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?n(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};let s={x:0,y:0,width:0,height:0,unit:"px"},o=(e,t,i)=>Math.min(Math.max(e,t),i),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,i){return"%"===e.unit?{...s,...e,unit:"%"}:{unit:"%",x:e.x?e.x/t*100:0,y:e.y?e.y/i*100:0,width:e.width?e.width/t*100:0,height:e.height?e.height/i*100:0}}function d(e,t,i){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*i/100:0,width:e.width?e.width*t/100:0,height:e.height?e.height*i/100:0}:{...s,...e,unit:"px"}}function c(e,t,i,r,n,a=0,s=0,o=r,l=n){let h={...e},d=Math.min(a,r),u=Math.min(s,n),m=Math.min(o,r),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=r-(h.x+h.width);p<0&&(h.x=Math.min(h.x,r-d),h.width+=p);let w=n-(h.y+h.height);if(w<0&&(h.y=Math.min(h.y,n-u),h.height+=w),h.width<d&&(("sw"===i||"nw"==i)&&(h.x-=d-h.width),h.width=d),h.height<u&&(("nw"===i||"ne"==i)&&(h.y-=u-h.height),h.height=u),h.width>m&&(("sw"===i||"nw"==i)&&(h.x-=m-h.width),h.width=m),h.height>g&&(("nw"===i||"ne"==i)&&(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"===i||"ne"==i)&&(h.y-=e-h.height),h.height=e}else if(e>t){let e=Math.max(h.height*t,d);("sw"===i||"nw"==i)&&(h.x-=e-h.width),h.width=e}}return h}let u={capture:!0,passive:!1},m=0,g=class e extends r.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,r.createRef)()),a(this,"mediaRef",(0,r.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:i}=this.props,r=this.getBox();if(!t)return;let n=d(t,r.width,r.height);if(i)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-r.x,i=e.clientY-r.y,d=0,c=0;"ne"===a||"e"==a?(d=t-(n.x+n.width),c=i-n.y,l=n.x,h=n.y+n.height):"se"===a||"s"===a?(d=t-(n.x+n.width),c=i-(n.y+n.height),l=n.x,h=n.y):"sw"===a||"w"==a?(d=t-n.x,c=i-(n.y+n.height),l=n.x+n.width,h=n.y):("nw"===a||"n"==a)&&(d=t-n.x,c=i-n.y,l=n.x+n.width,h=n.y+n.height),s=l+r.x+d,o=h+r.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:i,locked:r,keepSelection:n,onChange:a}=this.props,s=this.getBox();if(i||r||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:i,disabled:r,onChange:n,onDragStart:a}=this.props,s=this.getBox();if(r||!i||!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(i,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:i,disabled:r,onChange:n,onComplete:a}=this.props;if(r)return;let s=t.key,l=!1;if(!i)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),i=h(u,c.width,c.height);n(e,i),a&&a(e,i)}}),a(this,"onHandlerKeyDown",(t,i)=>{var r,n;let a,{aspect:s=0,crop:o,disabled:u,minWidth:m=0,minHeight:g=0,maxWidth:p,maxHeight:w,onChange:x,onComplete:f}=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((r=d(o,y.width,y.height),n=t.key,a={...r},"ArrowLeft"===n?"nw"===i?(a.x-=b,a.y-=b,a.width+=b,a.height+=b):"w"===i?(a.x-=b,a.width+=b):"sw"===i?(a.x-=b,a.width+=b,a.height+=b):"ne"===i?(a.y+=b,a.width-=b,a.height-=b):"e"===i?a.width-=b:"se"===i&&(a.width-=b,a.height-=b):"ArrowRight"===n&&("nw"===i?(a.x+=b,a.y+=b,a.width-=b,a.height-=b):"w"===i?(a.x+=b,a.width-=b):"sw"===i?(a.x+=b,a.width-=b,a.height-=b):"ne"===i?(a.y-=b,a.width+=b,a.height+=b):"e"===i?a.width+=b:"se"===i&&(a.width+=b,a.height+=b)),"ArrowUp"===n?"nw"===i?(a.x-=b,a.y-=b,a.width+=b,a.height+=b):"n"===i?(a.y-=b,a.height+=b):"ne"===i?(a.y-=b,a.width+=b,a.height+=b):"sw"===i?(a.x+=b,a.width-=b,a.height-=b):"s"===i?a.height-=b:"se"===i&&(a.width-=b,a.height-=b):"ArrowDown"===n&&("nw"===i?(a.x+=b,a.y+=b,a.width-=b,a.height-=b):"n"===i?(a.y+=b,a.height-=b):"ne"===i?(a.y+=b,a.width-=b,a.height-=b):"sw"===i?(a.x-=b,a.width+=b,a.height+=b):"s"===i?a.height+=b:"se"===i&&(a.width+=b,a.height+=b)),a),s,i,y.width,y.height,m,g,p,w);if(!l(o,v)){let e=h(v,y.width,y.height);x(v,e),f&&f(v,e)}}),a(this,"onDocPointerDone",e=>{let{crop:t,disabled:i,onComplete:r,onDragEnd:n}=this.props,a=this.getBox();this.unbindDocMove(),!(i||!t)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,n&&n(e),r&&r(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:i,width:r,height:n}=e.getBoundingClientRect();return{x:t,y:i,width:r,height:n}}componentDidUpdate(e){let{crop:t,onComplete:i}=this.props;if(i&&!e.crop&&t){let{width:e,height:r}=this.getBox();e&&r&&i(d(t,e,r),h(t,e,r))}}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(),i=this.makePixelCrop(t),r=e.clientX-e.startClientX,n=e.clientY-e.startClientY;return i.x=o(e.startCropX+r,0,t.width-i.width),i.y=o(e.startCropY+n,0,t.height-i.height),i}getPointRegion(e,t,i,r){let n,{evData:a}=this,s=a.clientX-e.x,o=a.clientY-e.y;return n=r&&t?"nw"===t||"n"===t||"ne"===t:o<a.startCropY,(i&&t?"nw"===t||"w"===t||"sw"===t:s<a.startCropX)?n?"nw":"sw":n?"ne":"se"}resolveMinDimensions(e,t,i=0,r=0){let n=Math.min(i,e.width),a=Math.min(r,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:i=0,maxWidth:r,maxHeight:n}=this.props,a=this.getBox(),[s,l]=this.resolveMinDimensions(a,i,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,i?p.height=p.width/i:p.height=Math.abs(g),p.y=t.startCropY-p.height):"se"===d?(p.x=t.startCropX,p.y=t.startCropY,p.width=m,i?p.height=p.width/i:p.height=g):"sw"===d?(p.x=t.startCropX+m,p.y=t.startCropY,p.width=Math.abs(m),i?p.height=p.width/i:p.height=g):"nw"===d&&(p.x=t.startCropX+m,p.width=Math.abs(m),i?(p.height=p.width/i,p.y=t.startCropY-p.height):(p.height=Math.abs(g),p.y=t.startCropY+g));let w=c(p,i,d,a.width,a.height,s,l,r,n);return i||e.xyOrds.indexOf(u)>-1?h=w:e.xOrds.indexOf(u)>-1?(h.x=w.x,h.width=w.width):e.yOrds.indexOf(u)>-1&&(h.y=w.y,h.height=w.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:i,locked:n,renderSelectionAddon:a,ruleOfThirds:s,crop:o}=this.props,l=this.getCropStyle();if(o)return r.default.createElement("div",{style:l,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!i&&!n&&r.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},r.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),r.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),r.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),r.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),r.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"}),r.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"}),r.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"}),r.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"}),r.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"}),r.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"}),r.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"}),r.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&&r.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:e=>e.stopPropagation()},a(this.state)),s&&r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),r.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:i,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&&i&&"ReactCrop--circular-crop",a&&h&&"ReactCrop--rule-of-thirds",!this.dragStarted&&a&&!a.width&&!a.height&&"ReactCrop--invisible-crop",i&&"ReactCrop--no-animate");return r.default.createElement("div",{ref:this.componentRef,className:m,style:l},r.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},t),a?r.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},r.default.createElement("defs",null,r.default.createElement("mask",{id:`hole-${this.instanceId}`},r.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),i?r.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"}):r.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"}))),r.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),w=e.i(776639),x=e.i(37727),f=e.i(111110);async function y(e,t){let{naturalWidth:i,naturalHeight:r}=e;return Promise.all(t.map(t=>new Promise((n,a)=>{let s=document.createElement("canvas"),o=Math.round(t.x*i),l=Math.round(t.y*r);s.width=Math.max(1,Math.round(t.width*i)),s.height=Math.max(1,Math.round(t.height*r));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,i.forwardRef)(function({imageSrc:e,regions:r,onChange:n},a){let{t:s}=(0,f.useLanguage)(),o=(0,i.useRef)(null),l=(0,i.useRef)(null),[h,d]=(0,i.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([...r,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,i,r,n;let a,s,o;if(!l.current)return;let h=c(e);d((t=l.current.x,i=l.current.y,r=h.x,n=h.y,s=(a=e=>Math.min(1,Math.max(0,e)))(Math.min(t,r)),o=a(Math.min(i,n)),{x:s,y:o,width:a(Math.max(t,r))-s,height:a(Math.max(i,n))-o}))},onPointerUp:u,onPointerCancel:u,children:[r.map((e,i)=>(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:i+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(i+1)),onPointerDown:e=>e.stopPropagation(),onClick:()=>n(r.filter((e,t)=>t!==i)),children:(0,t.jsx)(x.X,{className:"h-3 w-3"})})]},i)),h&&(0,t.jsx)("div",{className:"absolute border-2 border-dashed border-yellow-300 bg-yellow-300/10",style:m(h)})]})]})});async function v(e,t=1,i=1920,r=.8){return new Promise((n,a)=>{let s=new FileReader;s.onload=s=>{let o=new Image;o.onload=()=>{let s=document.createElement("canvas"),l=s.getContext("2d");if(!l)return void a(Error("无法获取 Canvas 上下文"));let h=o.width,d=o.height;h>i&&(d=d*i/h,h=i),s.width=h,s.height=d,l.drawImage(o,0,0,h,d);let c=r,u=s.toDataURL("image/jpeg",c),m=3*u.length/4/1024/1024;for(;m>t&&c>.1;){c-=.1;let e=3*(u=s.toDataURL("image/jpeg",c)).length/4/1024/1024;if(console.log(`压缩质量: ${c.toFixed(1)}, 大小: ${e.toFixed(2)}MB`),e<=t)break}console.log(`原始文件: ${(e.size/1024/1024).toFixed(2)}MB, 压缩后: ${(3*u.length/4/1024/1024).toFixed(2)}MB`),n(u)},o.onerror=()=>a(Error("图片加载失败")),o.src=s.target?.result},s.onerror=()=>a(Error("文件读取失败")),s.readAsDataURL(e)})}async function C(e){let t=e.size/1024/1024;return(console.log(`文件大小: ${t.toFixed(2)}MB`),t>1)?(console.log("文件超过阈值,开始压缩..."),await v(e,1)):(console.log("文件大小合适,无需压缩"),new Promise((t,i)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=i,r.readAsDataURL(e)}))}e.s(["ImageCropper",0,function({imageSrc:e,open:r,onClose:n,onCropComplete:a,onMultiCropComplete:s}){let{t:o}=(0,f.useLanguage)(),[l,h]=(0,i.useState)(),[d,c]=(0,i.useState)(),u=(0,i.useRef)(null),[m,x]=(0,i.useState)("single"),[v,C]=(0,i.useState)({src:e,regions:[]}),k=v.src===e?v.regions:[],D=t=>C({src:e,regions:t}),j=(0,i.useRef)(null),N=async()=>{if(j.current&&0!==k.length&&s)try{s(await y(j.current,k)),D([])}catch(e){console.error(e)}},M=async(e,t)=>{let i=document.createElement("canvas"),r=e.naturalWidth/e.width,n=e.naturalHeight/e.height;i.width=t.width*r,i.height=t.height*n;let a=i.getContext("2d");return a?(a.drawImage(e,t.x*r,t.y*n,t.width*r,t.height*n,0,0,t.width*r,t.height*n),new Promise((e,t)=>{i.toBlob(i=>{i?e(i):t(Error("Canvas is empty"))},"image/jpeg")})):null},R=async()=>{if(d&&u.current)try{let e=await M(u.current,d);e&&a(e)}catch(e){console.error(e)}else if(!d&&e)try{let t=await fetch(e),i=await t.blob();a(i)}catch(e){console.error(e)}};return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:e=>!e&&n(),children:(0,t.jsxs)(w.DialogContent,{className:"max-w-3xl h-[90vh] flex flex-col p-0 gap-0",children:[(0,t.jsx)(w.DialogHeader,{className:"p-4 border-b shrink-0",children:(0,t.jsx)(w.DialogTitle,{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:j,imageSrc:e,regions:k,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:i}=e.currentTarget;h({unit:"%",x:0,y:0,width:100,height:100}),c({unit:"px",x:0,y:0,width:t,height:i})},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:()=>x(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(k.length))}`:o.common.cropper?.hint||"💡 Drag to adjust crop area"}),(0,t.jsxs)("div",{className:"flex gap-2 justify-end",children:["multi"===m&&k.length>0&&(0,t.jsx)(p.Button,{variant:"ghost",onClick:()=>D([]),children:o.batchImport.clear}),(0,t.jsx)(p.Button,{variant:"outline",onClick:n,children:o.common.cancel||"Cancel"}),"multi"===m?(0,t.jsx)(p.Button,{onClick:N,disabled:0===k.length,children:o.batchImport.start.replace("{count}",String(k.length))}):(0,t.jsx)(p.Button,{onClick:R,children:o.common.confirm||"Confirm"})]})]})]})]})})}],12130),e.s(["processImageFile",0,C],28928)},149704,e=>{"use strict";var t=e.i(843476),i=e.i(111110),r=e.i(975157);e.s(["QuestionFigure",0,function({svg:e,className:n}){let{t:a}=(0,i.useLanguage)();return e?(0,t.jsx)("figure",{className:(0,r.cn)("question-figure my-3",n),children:(0,t.jsx)("img",{src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`,alt:a.figure.alt,className:"mx-auto block h-auto max-w-full rounded border bg-white p-2",style:{maxHeight:360}})}):null}],149704)},574041,e=>{"use strict";var t=e.i(843476),i=e.i(271645),r=e.i(37727),n=e.i(487486),a=e.i(793479),s=e.i(41931);e.s(["TagInput",0,function({value:e=[],onChange:o,placeholder:l="Enter tags...",className:h="",enterHint:d,subject:c,gradeStage:u}){let[m,g]=(0,i.useState)(""),[p,w]=(0,i.useState)([]),[x,f]=(0,i.useState)(!1),[y,b]=(0,i.useState)(0),v=(0,i.useRef)(null),C=(0,i.useRef)(null);(0,i.useEffect)(()=>{m.trim()?k(m):(w([]),f(!1))},[m,c,u]);let k=async t=>{try{let i=new URLSearchParams({q:t});c&&i.append("subject",c),u&&i.append("stage",u);let r=((await s.apiClient.get(`/api/tags/suggestions?${i.toString()}`)).suggestions||[]).filter(t=>!e.includes(t));w(r.slice(0,20)),f(r.length>0),b(0)}catch(e){console.error("Failed to fetch suggestions:",e)}},D=t=>{t.trim()&&!e.includes(t.trim())&&(o([...e,t.trim()]),g(""),w([]),f(!1),b(0))},j=t=>{o(e.filter(e=>e!==t))};return(0,i.useEffect)(()=>{let e=e=>{!C.current||C.current.contains(e.target)||v.current?.contains(e.target)||f(!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)(n.Badge,{variant:"secondary",className:"flex items-center gap-1 px-2 py-1",children:[e,(0,t.jsx)("button",{type:"button",onClick:()=>j(e),className:"hover:text-destructive ml-1",children:(0,t.jsx)(r.X,{className:"h-3 w-3"})})]},e)),(0,t.jsx)(a.Input,{ref:v,type:"text",value:m,onChange:e=>g(e.target.value),onKeyDown:t=>{"Enter"===t.key?(t.preventDefault(),y>=0&&p[y]?D(p[y]):m.trim()&&D(m)):"ArrowDown"===t.key?(t.preventDefault(),b(e=>Math.min(e+1,p.length-1))):"ArrowUp"===t.key?(t.preventDefault(),b(e=>Math.max(e-1,0))):"Escape"===t.key?(f(!1),b(0)):"Backspace"===t.key&&!m&&e.length>0&&j(e[e.length-1])},onFocus:()=>{p.length>0&&f(!0)},placeholder:0===e.length?l:"",className:"flex-1 min-w-[120px] border-none focus-visible:ring-0 focus-visible:ring-offset-0 h-8 px-0"})]}),x&&p.length>0&&(0,t.jsx)("div",{ref:C,className:"absolute z-50 w-full mt-1 bg-popover border rounded-md shadow-md max-h-48 overflow-y-auto",children:p.map((e,i)=>(0,t.jsx)("div",{className:`px-3 py-2 cursor-pointer hover:bg-accent ${i===y?"bg-accent":""}`,onClick:()=>D(e),onMouseEnter:()=>b(i),children:e},e))}),m&&!x&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:d?`${d} "${m}"`:`Press Enter to create "${m}"`})]})}])},952122,e=>{"use strict";e.i(306831),e.s(["inferSubjectFromName",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}])},62825,e=>{"use strict";function t(e){return"not_attempted"===e||"wrong_attempt"===e||"unknown"===e?e:"unknown"}e.s(["getMistakeStatusLabel",0,function(e,i="zh"){return("en"===i?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[t(e)]},"normalizeMistakeStatusForSave",0,function(e,i){return(i||"").trim()?"wrong_attempt":t(e)}])},943710,e=>{"use strict";e.s(["getDefaultPaperLevel",0,function(e){return"number"!=typeof e||!Number.isInteger(e)||e<1||e>5?null:e<=3?"a":"b"}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871689,e=>{"use strict";let t=(0,e.i(475254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],871689)},303281,e=>{"use strict";let t=(0,e.i(475254).default)("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]);e.s(["Printer",0,t],303281)},356909,e=>{"use strict";let t=(0,e.i(475254).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",0,t],356909)},283086,e=>{"use strict";let t=(0,e.i(475254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],283086)},908821,e=>{"use strict";let t=(0,e.i(475254).default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);e.s(["default",0,t])},591124,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(522016),r=e.i(618566),i=e.i(215519),n=e.i(306831);let l=(0,e.i(475254).default)("clipboard-check",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);var d=e.i(531278),c=e.i(303281),o=e.i(367240),m=e.i(356909),u=e.i(727612),x=e.i(519455),h=e.i(793479),p=e.i(590546),g=e.i(86963),f=e.i(664659),y=e.i(655900),j=e.i(37727),b=e.i(487486),v=e.i(515288),N=e.i(511445),w=e.i(991686),k=e.i(393733),C=e.i(149704),S=e.i(16715),T=e.i(868983),R=e.i(111110),M=e.i(41931),q=e.i(201276),L=e.i(294114);function A({paperId:e,question:s,onDone:r}){let{t:i,language:n}=(0,R.useLanguage)(),[l,c]=(0,a.useState)(null),o=0===s.attempts.length&&!!s.errorItemId&&"pending"!==s.status,m="ready"===s.status&&!!s.questionText?.trim();if(!o&&!m)return null;let u=async t=>{let a="question"===t?i.exam.regenerateQuestionConfirm:i.exam.regenerateAnswerConfirm;if(await (0,L.confirmDialog)(a)){c(t);try{let a=await M.apiClient.post(`/api/exams/${e}/questions/${s.id}/regenerate`,{mode:t,language:n},{timeout:6e5});r(a)}catch(s){let e=s?.data?.message||"",a=i.errors[e];q.frontendLogger.error("[ExamRegenerate]","Failed to regenerate exam question",{mode:t,code:e}),L.toast.error("HAS_RESULTS"===e?i.exam.regenerateHasResults:"string"==typeof a?a:i.exam.regenerateFailed)}finally{c(null)}}};return(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[o&&(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:()=>u("question"),disabled:null!==l,children:["question"===l?(0,t.jsx)(d.Loader2,{className:"mr-1 h-4 w-4 animate-spin"}):(0,t.jsx)(S.RefreshCw,{className:"mr-1 h-4 w-4"}),"question"===l?i.exam.regenerating:i.exam.regenerateQuestion]}),m&&(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:()=>u("answer"),disabled:null!==l,children:["answer"===l?(0,t.jsx)(d.Loader2,{className:"mr-1 h-4 w-4 animate-spin"}):(0,t.jsx)(T.WandSparkles,{className:"mr-1 h-4 w-4"}),"answer"===l?i.exam.regenerating:i.exam.regenerateAnswer]})]})}function D({paperId:e,question:r,editingResult:l,onResultChange:c,onDeleteAttempt:o,onRegenerated:m}){let{t:u}=(0,R.useLanguage)(),{timeZone:x}=(0,i.useTimeZone)(),[h,p]=(0,a.useState)(!1),g=void 0!==l,S=(()=>{if(!r.error)return"";if("SOURCE_DELETED"===r.error)return u.exam.sourceDeleted;let e=r.error.split(":")[0].trim(),t=u.errors[e];return"string"==typeof t?t:r.error})();return(0,t.jsx)(v.Card,{children:(0,t.jsxs)(v.CardContent,{className:"space-y-3 pt-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,t.jsxs)("span",{className:"font-semibold",children:[r.order,"."]}),r.errorItemId?(0,t.jsxs)(s.default,{href:`/error-items/${r.errorItemId}`,className:"font-mono text-xs text-primary hover:underline",children:[u.exam.source," ",r.sourceShortId]}):(0,t.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:[r.sourceShortId," · ",u.exam.sourceDeleted]}),r.notebookName&&(0,t.jsx)(b.Badge,{variant:"secondary",children:r.notebookName})]}),r.attempts.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-xs",children:r.attempts.map((e,a)=>(0,t.jsxs)(b.Badge,{variant:"outline",className:`gap-1 font-normal ${w.RESULT_BADGE_CLASS[e.result]||""}`,children:[(0,t.jsx)("span",{children:u.exam.attemptLabel.replace("{n}",String(a+1))}),(0,t.jsx)("span",{className:"tabular-nums",children:(0,n.formatDateTime)(e.createdAt,"MM-dd",x)}),(0,t.jsx)("span",{className:"font-semibold",children:u.mastery.results[e.result]}),g&&o&&(0,t.jsx)("button",{type:"button","aria-label":u.mastery.deleteRecord,className:"-mr-1 rounded hover:bg-black/10",onClick:()=>o(e.id),children:(0,t.jsx)(j.X,{className:"h-3 w-3"})})]},e.id))}),"pending"===r.status&&(0,t.jsxs)("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(d.Loader2,{className:"h-4 w-4 animate-spin"}),u.exam.questionPending]}),"failed"===r.status&&(0,t.jsxs)("p",{className:"text-sm text-destructive",children:[u.exam.questionFailed,S?`:${S}`:""]}),"ready"===r.status&&r.questionText&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.MarkdownRenderer,{content:r.questionText}),(0,t.jsx)(C.QuestionFigure,{svg:r.figureSvg}),(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",onClick:()=>p(!h),children:[h?(0,t.jsx)(y.ChevronUp,{className:"h-3 w-3"}):(0,t.jsx)(f.ChevronDown,{className:"h-3 w-3"}),u.exam.showAnswer]}),h&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[r.answerText&&(0,t.jsx)(N.MarkdownRenderer,{content:r.answerText,className:"font-semibold"}),r.analysis&&(0,t.jsx)(N.MarkdownRenderer,{content:r.analysis})]})]}),!g&&m&&(0,t.jsx)(A,{paperId:e,question:r,onDone:m}),g&&"ready"===r.status&&r.errorItemId&&c&&(0,t.jsx)(k.PracticeResultPicker,{value:l,onChange:c,size:"sm"})]})})}var B=e.i(663661),I=e.i(35209);e.s(["default",0,function(){let{timeZone:e}=(0,i.useTimeZone)(),f=(0,r.useParams)(),y=(0,r.useRouter)(),{t:j,language:b}=(0,R.useLanguage)(),v=f.id,[N,w]=(0,a.useState)(null);(0,I.usePageTitle)(j.exam.title,N?.title);let[k,C]=(0,a.useState)(!1),[S,T]=(0,a.useState)(null),[q,A]=(0,a.useState)((0,n.formatDateTime)(new Date,"yyyy-MM-dd",e)),[$,E]=(0,a.useState)(!1),[H,P]=(0,a.useState)(null),z=(0,a.useCallback)(async()=>{try{w(await M.apiClient.get(`/api/exams/${v}`))}catch{C(!0)}},[v]);if((0,a.useEffect)(()=>{z()},[z]),(0,a.useEffect)(()=>{if(N?.status!=="generating")return;let e=setTimeout(z,3e3);return()=>clearTimeout(e)},[N,z]),k)return(0,t.jsx)("div",{className:"p-8 text-center",children:j.exam.notFound});if(!N)return(0,t.jsx)(g.PageLoading,{label:j.common.loading});let F=N.questions.filter(e=>"ready"===e.status).length,U=N.questions.some(e=>"failed"===e.status),_=N.questions.filter(e=>"ready"===e.status&&e.errorItemId),O=S?_.filter(e=>S[e.id]).length:0,Q=async()=>{if(S&&0!==O){E(!0),P(null);try{await M.apiClient.post(`/api/exams/${N.id}/results`,{takenAt:(0,n.answeredDateToISOString)(q,e),results:_.filter(e=>S[e.id]).map(e=>({questionId:e.id,result:S[e.id]}))}),T(null),P(j.exam.resultsSaved),await z()}catch{P(j.exam.resultsSaveFailed)}finally{E(!1)}}},V=async e=>{if(await (0,L.confirmDialog)(j.mastery.deleteRecordConfirm,{destructive:!0}))try{await M.apiClient.delete(`/api/practice/record/${e}`),await z()}catch{P(j.mastery.deleteRecordFailed)}},Z=async()=>{await M.apiClient.post(`/api/exams/${N.id}/retry`,{language:b}),await z()},G=async()=>{await (0,L.confirmDialog)(j.exam.deleteConfirm,{destructive:!0})&&(await M.apiClient.delete(`/api/exams/${N.id}`),y.push("/exams"))};return(0,t.jsx)("main",{className:"mx-auto min-h-screen max-w-6xl px-4 py-6 md:px-8 md:py-8",children:(0,t.jsxs)("div",{className:"space-y-6 pb-24",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)(p.BackButton,{fallbackUrl:"/exams",className:"-ml-2 shrink-0"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 space-y-2",children:[(0,t.jsx)("h1",{className:"text-xl sm:text-2xl font-bold tracking-tight break-words",children:N.title}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(B.ExamStatusBadge,{status:N.status}),(0,t.jsx)("span",{children:j.exam.progress.replace("{ready}",String(F)).replace("{total}",String(N.questions.length))}),(0,t.jsx)("span",{children:(0,n.formatDateTime)(N.createdAt,"yyyy-MM-dd HH:mm",e)})]})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(s.default,{href:`/exams/${N.id}/print`,children:(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",disabled:0===F,children:[(0,t.jsx)(c.Printer,{className:"mr-2 h-4 w-4"}),j.exam.print]})}),!S&&_.length>0&&(0,t.jsxs)(x.Button,{size:"sm",onClick:()=>{P(null),T({}),A((0,n.formatDateTime)(new Date,"yyyy-MM-dd",e))},children:[(0,t.jsx)(l,{className:"mr-2 h-4 w-4"}),j.exam.recordResults]}),U&&"generating"!==N.status&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:Z,children:[(0,t.jsx)(o.RotateCcw,{className:"mr-2 h-4 w-4"}),j.exam.retryFailed]}),(0,t.jsxs)(x.Button,{variant:"ghost",size:"sm",onClick:G,className:"text-red-600 hover:text-red-700 hover:bg-red-50 sm:ml-auto",children:[(0,t.jsx)(u.Trash2,{className:"mr-2 h-4 w-4"}),j.exam.delete]})]}),N.questions.length<N.requestedCount&&(0,t.jsx)("p",{className:"rounded-md border border-amber-200 bg-amber-50 p-3 text-sm text-amber-800",children:j.exam.fewerThanRequested.replaceAll("{actual}",String(N.questions.length))}),H&&(0,t.jsx)("p",{className:"rounded-md border p-3 text-sm",children:H}),S&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md border bg-muted/30 p-3",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:"exam-taken-at",className:"text-sm font-medium",children:j.exam.takenAt}),(0,t.jsx)(h.Input,{id:"exam-taken-at",type:"date",value:q,onChange:e=>A(e.target.value),className:"sm:w-48"})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:j.exam.recordHint})]}),(0,t.jsx)("div",{className:"space-y-3",children:N.questions.map(e=>(0,t.jsx)(D,{paperId:N.id,question:e,editingResult:S?S[e.id]??null:void 0,onResultChange:t=>T(a=>a?{...a,[e.id]:t}:a),onDeleteAttempt:V,onRegenerated:z},e.id))}),S&&(0,t.jsx)("div",{className:"fixed inset-x-0 bottom-16 z-30 border-t bg-background/95 p-3 backdrop-blur md:bottom-0",children:(0,t.jsxs)("div",{className:"max-w-4xl mx-auto flex items-center justify-end gap-2",children:[0===O&&(0,t.jsx)("span",{className:"mr-auto text-xs text-muted-foreground",children:j.exam.noResultSelected}),(0,t.jsx)(x.Button,{variant:"outline",onClick:()=>T(null),disabled:$,children:j.exam.cancel}),(0,t.jsxs)(x.Button,{onClick:Q,disabled:$||!q||0===O,children:[$?(0,t.jsx)(d.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,t.jsx)(m.Save,{className:"mr-2 h-4 w-4"}),j.exam.saveResults]})]})})]})})}],591124)},663661,e=>{"use strict";var t=e.i(843476),a=e.i(487486),s=e.i(111110);let r={generating:"bg-blue-100 text-blue-700 border-blue-200",ready:"bg-green-100 text-green-700 border-green-200",partial:"bg-amber-100 text-amber-700 border-amber-200",failed:"bg-red-100 text-red-700 border-red-200"};e.s(["ExamStatusBadge",0,function({status:e}){let{t:i}=(0,s.useLanguage)();return(0,t.jsx)(a.Badge,{variant:"outline",className:r[e],children:i.exam.status[e]})}])},991686,868983,e=>{"use strict";var t=e.i(843476),a=e.i(271645),s=e.i(522016),r=e.i(215519),i=e.i(306831),n=e.i(664659),l=e.i(655900),d=e.i(531278),c=e.i(107233),o=e.i(283086),m=e.i(727612),u=e.i(487486),x=e.i(519455),h=e.i(515288),p=e.i(511445),g=e.i(356909),f=e.i(793479),y=e.i(393733),j=e.i(111110),b=e.i(41931);function v({errorItemId:e,onSaved:s,onCancel:n}){let{t:l}=(0,j.useLanguage)(),{timeZone:c}=(0,r.useTimeZone)(),o=(0,i.formatDateTime)(new Date,"yyyy-MM-dd",c),[m,u]=(0,a.useState)(null),[h,p]=(0,a.useState)(o),[N,w]=(0,a.useState)(!1),[k,C]=(0,a.useState)(null),S=async()=>{if(m&&h){w(!0),C(null);try{await b.apiClient.post("/api/practice/record",{errorItemId:e,result:m,source:"manual",takenAt:(0,i.answeredDateToISOString)(h,c)}),s()}catch{C(l.mastery.resultSaveFailed)}finally{w(!1)}}};return(0,t.jsxs)("div",{className:"space-y-3 rounded-md border bg-muted/30 p-3",children:[(0,t.jsx)(y.PracticeResultPicker,{value:m,onChange:u,disabled:N}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:`practice-date-${e}`,className:"text-sm font-medium",children:l.mastery.recordDate}),(0,t.jsx)(f.Input,{id:`practice-date-${e}`,type:"date",value:h,max:o,onChange:e=>p(e.target.value),className:"sm:w-48"}),(0,t.jsxs)("div",{className:"flex gap-2 sm:ml-auto",children:[(0,t.jsx)(x.Button,{variant:"outline",size:"sm",onClick:n,disabled:N,className:"flex-1 sm:flex-none",children:l.exam.cancel}),(0,t.jsxs)(x.Button,{size:"sm",onClick:S,disabled:N||!m||!h,className:"flex-1 sm:flex-none",children:[N?(0,t.jsx)(d.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}):(0,t.jsx)(g.Save,{className:"mr-2 h-4 w-4"}),l.mastery.saveResult]})]})]}),k&&(0,t.jsx)("p",{className:"text-sm text-destructive",children:k})]})}var N=e.i(149704),w=e.i(294114);let k={correct:"bg-green-100 text-green-700 border-green-200",wrong:"bg-red-100 text-red-700 border-red-200",not_attempted:"bg-amber-100 text-amber-700 border-amber-200"};e.s(["MasteryPanel",0,function({errorItemId:e,onMasteryLevelChange:g}){let{timeZone:f}=(0,r.useTimeZone)(),{t:y}=(0,j.useLanguage)(),[C,S]=(0,a.useState)(null),[T,R]=(0,a.useState)(null),[M,q]=(0,a.useState)(0),[L,A]=(0,a.useState)(!1),D=(0,a.useCallback)(()=>{b.apiClient.get(`/api/error-items/${e}/practice-records`).then(e=>{S(e),g?.(e.masteryLevel)}).catch(()=>void 0)},[e,g]);(0,a.useEffect)(D,[D]);let B=()=>{q(0),D()},I=async e=>{if(await (0,w.confirmDialog)(y.mastery.deleteRecordConfirm,{destructive:!0}))try{await b.apiClient.delete(`/api/practice/record/${e}`),B()}catch{w.toast.error(y.mastery.deleteRecordFailed)}},$=C?.records[0],E=!!$&&(!C?.masteryEvaluatedAt||new Date($.createdAt)>new Date(C.masteryEvaluatedAt));if((0,a.useEffect)(()=>{if(!E||M>=20)return;let e=setTimeout(()=>{q(e=>e+1),D()},4e3);return()=>clearTimeout(e)},[E,M,D]),!C)return null;let H=C.masteryProbability,P=null===H?null:Math.round(100*H),z=null===P?"":P>=80?"bg-green-500":P>=50?"bg-amber-500":"bg-red-500",F=y.practice.difficulty;return(0,t.jsxs)(h.Card,{children:[(0,t.jsx)(h.CardHeader,{children:(0,t.jsxs)(h.CardTitle,{className:"flex items-center gap-2 text-base",children:[(0,t.jsx)(o.Sparkles,{className:"h-4 w-4 text-primary"}),y.mastery.probability]})}),(0,t.jsxs)(h.CardContent,{className:"space-y-4",children:[null===P?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:E?y.mastery.pending:y.mastery.notEvaluated}):(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,t.jsxs)("span",{className:"text-3xl font-bold",children:[P,"%"]}),(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[E&&(0,t.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin"}),(0,t.jsx)(u.Badge,{variant:"outline",children:"ai"===C.masterySource?y.mastery.aiEvaluated:y.mastery.estimated})]})]}),(0,t.jsx)("div",{className:"h-2 w-full rounded-full bg-muted overflow-hidden",children:(0,t.jsx)("div",{className:`h-full ${z} transition-all`,style:{width:`${P}%`}})}),C.masteryReason&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:C.masteryReason}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:y.mastery.thresholdHint})]}),(0,t.jsxs)("div",{className:"space-y-2 border-t pt-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold",children:y.mastery.history}),!L&&(0,t.jsxs)(x.Button,{variant:"outline",size:"sm",onClick:()=>A(!0),children:[(0,t.jsx)(c.Plus,{className:"mr-1 h-4 w-4"}),y.mastery.addRecord]})]}),L&&(0,t.jsx)(v,{errorItemId:e,onCancel:()=>A(!1),onSaved:()=>{A(!1),B()}}),0===C.records.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground italic",children:y.mastery.noHistory}):(0,t.jsx)("ul",{className:"divide-y rounded-md border",children:C.records.map(e=>(0,t.jsxs)("li",{className:"p-3 text-sm space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsxs)("button",{type:"button",className:"flex min-w-0 flex-1 flex-wrap items-center gap-2 text-left",onClick:()=>R(T===e.id?null:e.id),children:[(0,t.jsx)("span",{className:"text-muted-foreground tabular-nums",children:(0,i.formatDateTime)(e.createdAt,"yyyy-MM-dd HH:mm",f)}),(0,t.jsx)(u.Badge,{variant:"outline",className:k[e.result]||"",children:y.mastery.results[e.result]||e.result}),e.difficulty&&(0,t.jsx)(u.Badge,{variant:"secondary",children:F[e.difficulty]||e.difficulty}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:e.exam?`${y.mastery.sources.exam} \xb7 ${e.exam.title}`:y.mastery.sources[e.source]||y.mastery.sources.practice}),e.questionText&&(0,t.jsx)("span",{className:"ml-auto text-muted-foreground",children:T===e.id?(0,t.jsx)(l.ChevronUp,{className:"h-4 w-4"}):(0,t.jsx)(n.ChevronDown,{className:"h-4 w-4"})})]}),(0,t.jsx)("button",{type:"button","aria-label":y.mastery.deleteRecord,title:y.mastery.deleteRecord,className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-red-50 hover:text-red-600",onClick:()=>I(e.id),children:(0,t.jsx)(m.Trash2,{className:"h-4 w-4"})})]}),T===e.id&&e.questionText&&(0,t.jsxs)("div",{className:"space-y-2 rounded-md bg-muted/40 p-3",children:[(0,t.jsx)(p.MarkdownRenderer,{content:e.questionText}),(0,t.jsx)(N.QuestionFigure,{svg:e.figureSvg}),e.wrongAnswerText&&(0,t.jsxs)("div",{className:"border-t pt-2",children:[(0,t.jsx)("p",{className:"mb-1 font-medium",children:y.editor.wrongAnswerText}),(0,t.jsx)(p.MarkdownRenderer,{content:e.wrongAnswerText})]}),e.mistakeAnalysis&&(0,t.jsxs)("div",{className:"border-t pt-2",children:[(0,t.jsx)("p",{className:"mb-1 font-medium",children:y.editor.mistakeAnalysis}),(0,t.jsx)(p.MarkdownRenderer,{content:e.mistakeAnalysis})]}),e.originalImageUrl&&(0,t.jsx)("img",{src:e.originalImageUrl,alt:y.editor.wrongAnswerText,className:"max-h-96 max-w-full rounded object-contain"}),e.answerText&&(0,t.jsx)("div",{className:"border-t pt-2",children:(0,t.jsx)(p.MarkdownRenderer,{content:e.answerText,className:"font-semibold"})}),e.exam&&(0,t.jsx)(s.default,{href:`/exams/${e.exam.paperId}`,className:"text-xs text-primary hover:underline",children:e.exam.title})]})]},e.id))})]})]})]})},"RESULT_BADGE_CLASS",0,k],991686);var C=e.i(908821);e.s(["WandSparkles",()=>C.default],868983)},393733,e=>{"use strict";var t=e.i(843476),a=e.i(269638);let s=(0,e.i(475254).default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var r=e.i(373884),i=e.i(111110);let n=[{value:"correct",icon:a.CheckCircle,active:"border-green-600 bg-green-50 text-green-700"},{value:"wrong",icon:r.XCircle,active:"border-red-600 bg-red-50 text-red-700"},{value:"not_attempted",icon:s,active:"border-amber-600 bg-amber-50 text-amber-700"}];e.s(["PracticeResultPicker",0,function({value:e,onChange:a,disabled:s,size:r="md"}){let{t:l}=(0,i.useLanguage)(),d="sm"===r?"px-2 py-1 text-xs":"px-3 py-2 text-sm";return(0,t.jsx)("div",{className:"grid grid-cols-3 gap-2",role:"radiogroup",children:n.map(({value:i,icon:n,active:c})=>(0,t.jsxs)("button",{type:"button",role:"radio","aria-checked":e===i,disabled:s,onClick:()=>a(i),className:`flex items-center justify-center gap-1 rounded-md border font-medium transition-colors disabled:opacity-60 ${d} ${e===i?c:"border-input hover:bg-muted"}`,children:[(0,t.jsx)(n,{className:"sm"===r?"h-3 w-3":"h-4 w-4"}),l.mastery.results[i]]},i))})}],393733)},149704,e=>{"use strict";var t=e.i(843476),a=e.i(111110),s=e.i(975157);e.s(["QuestionFigure",0,function({svg:e,className:r}){let{t:i}=(0,a.useLanguage)();return e?(0,t.jsx)("figure",{className:(0,s.cn)("question-figure my-3",r),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=>{"use strict";var t=e.i(843476),a=e.i(618566),s=e.i(519455),r=e.i(871689);e.s(["BackButton",0,function({fallbackUrl:e,className:i}){let n=(0,a.useRouter)();return(0,t.jsx)(s.Button,{variant:"ghost",size:"icon",onClick:()=>{n.push(e)},className:i,children:(0,t.jsx)(r.ArrowLeft,{className:"h-5 w-5"})})}])},515288,e=>{"use strict";var t=e.i(843476),a=e.i(975157);e.s(["Card",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...s})},"CardContent",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",e),...s})},"CardDescription",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",e),...s})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",e),...s})}])},86963,e=>{"use strict";var t=e.i(843476),a=e.i(531278);e.s(["PageLoading",0,function({label:e}){return(0,t.jsxs)("div",{className:"flex min-h-[50vh] flex-col items-center justify-center gap-3 text-muted-foreground",children:[(0,t.jsx)(a.Loader2,{className:"h-7 w-7 animate-spin text-primary"}),e&&(0,t.jsx)("p",{className:"text-sm",children:e})]})}])},35209,e=>{"use strict";var t=e.i(271645),a=e.i(111110);e.s(["usePageTitle",0,function(...e){let{t:s}=(0,a.useLanguage)(),r=[s.pageTitle.base,...e.map(e=>"string"==typeof e?e.trim():"").filter(e=>e.length>0)].join("-");(0,t.useEffect)(()=>{document.title=r},[r])}])}]);
|