wrong-notebook 2026.10.22-4 → 2026.10.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +0 -1
- package/.next/build-manifest.json +8 -8
- package/.next/prerender-manifest.json +4 -4
- package/.next/routes-manifest.json +0 -8
- 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 +10 -4
- package/.next/server/app/api/admin/dashboard/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/migrate-tags/route.js +3 -3
- package/.next/server/app/api/admin/migrate-tags/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/system-reset/route.js +4 -4
- 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 +11 -4
- 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 +3 -3
- package/.next/server/app/api/admin/users/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/admin/users/route.js +3 -3
- package/.next/server/app/api/admin/users/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/models/route.js +7 -7
- package/.next/server/app/api/ai/models/route.js.nft.json +1 -1
- package/.next/server/app/api/ai/test/route.js +8 -8
- package/.next/server/app/api/ai/test/route.js.nft.json +1 -1
- package/.next/server/app/api/analytics/route.js +5 -5
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route.js +9 -9
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js +3 -3
- package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/delete/route.js +4 -4
- 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 +8 -8
- 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 +9 -9
- 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 +7 -7
- 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 +4 -4
- package/.next/server/app/api/error-items/[id]/image/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/[id]/notes/route.js +4 -4
- 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 +4 -4
- 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 +10 -10
- 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 +8 -8
- 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 +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 +10 -10
- 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 +4 -4
- 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 +4 -4
- package/.next/server/app/api/error-items/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/list/route.js +6 -6
- package/.next/server/app/api/error-items/list/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/route.js +10 -10
- package/.next/server/app/api/error-items/route.js.nft.json +1 -1
- package/.next/server/app/api/error-items/short/[shortId]/route.js +3 -3
- 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 +4 -4
- 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 +9 -9
- 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 +7 -7
- package/.next/server/app/api/exams/[id]/results/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/retry/route.js +9 -9
- package/.next/server/app/api/exams/[id]/retry/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/[id]/route.js +7 -7
- package/.next/server/app/api/exams/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/exams/route.js +9 -9
- package/.next/server/app/api/exams/route.js.nft.json +1 -1
- package/.next/server/app/api/export/route.js +4 -4
- package/.next/server/app/api/export/route.js.nft.json +1 -1
- package/.next/server/app/api/geogebra-analyze/route.js +7 -7
- 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 +9 -9
- package/.next/server/app/api/import/route.js.nft.json +1 -1
- package/.next/server/app/api/logs/frontend/route.js +4 -4
- package/.next/server/app/api/logs/frontend/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/retag/route.js +5 -5
- package/.next/server/app/api/notebooks/[id]/retag/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/[id]/route.js +4 -4
- package/.next/server/app/api/notebooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/notebooks/route.js +3 -3
- package/.next/server/app/api/notebooks/route.js.nft.json +1 -1
- package/.next/server/app/api/openclaw/batch-upload/route.js +9 -9
- package/.next/server/app/api/openclaw/batch-upload/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/generate/route.js +7 -7
- package/.next/server/app/api/practice/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/[id]/route.js +7 -7
- package/.next/server/app/api/practice/record/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/practice/record/route.js +9 -9
- package/.next/server/app/api/practice/record/route.js.nft.json +1 -1
- package/.next/server/app/api/reanswer/route.js +9 -9
- 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 +5 -5
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/clear/route.js +4 -4
- package/.next/server/app/api/stats/practice/clear/route.js.nft.json +1 -1
- package/.next/server/app/api/stats/practice/route.js +3 -3
- package/.next/server/app/api/stats/practice/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/route.js +4 -4
- package/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/stats/route.js +4 -4
- package/.next/server/app/api/tags/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/tags/suggestions/route.js +3 -3
- package/.next/server/app/api/tags/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js +4 -4
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/user/route.js +4 -4
- 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/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/app-paths-manifest.json +0 -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]__0jzwjtl._.js +3 -0
- package/.next/server/chunks/[externals]__0pot68n._.js +1 -1
- package/.next/server/chunks/[externals]_assert_1pwe1ri._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0-2l_pu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__00_hq9v._.js +6 -6
- package/.next/server/chunks/[root-of-the-server]__00moo9h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__012xcq-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01bzczj._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__02pqrw_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__033ri9p._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__04pjde6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__064krqp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__07iraov._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__07jl92a._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__07q7nsp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_t7bbz._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0_unb90._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0a1zwxf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0aefi10._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0akadps._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0cfjgye._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0d-37yj._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0d2kpnm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0dqgi36._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0dz5c04._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0e_u82_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0f3jyg0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0gwwa9b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0hars8c._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0iozebm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0k-5uu2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0k3mm05._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0l-xu_t._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0lggrcf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0m0eall._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0m37xyb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0m8p-6f._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0pa47kn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0r42_o7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rgjh3q._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rk_yxy._.js +3 -3
- package/.next/server/chunks/[root-of-the-server]__0scij0p._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sixhu9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sj18kk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0sp4_zo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0t2o8v-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0w58v6b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0wp40ty._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0wsj4a_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0wvvsah._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0xg5h56._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0zpazf3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__10hs-qn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__119xork._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__11_-ncy._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__11jhplo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__122xu-0._.js +9 -9
- package/.next/server/chunks/[root-of-the-server]__15tkoe6._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__15y1l96._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__16hnc6-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__17i9sje._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__19_wn9u._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_gkx5x._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1_hp3ol._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_ogacf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1a4-26x._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1b6i9mu._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1b_y2wk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bl7t8i._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1c0vatt._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1c7a0rs._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1chx4lo._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1cngnud._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1d82zkk._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ezju_2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1fc23i5._.js +122 -0
- package/.next/server/chunks/[root-of-the-server]__1flnfu4._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1gya7jq._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1hng_h2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1i40psm._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ijkds_._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1j4v2e3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1jtd2ar._.js +2 -2
- package/.next/server/chunks/[root-of-the-server]__1kpo44g._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1lbcdia._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1m86czr._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1mnpqkx._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1n4b6nb._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1nmrlew._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1nmtv65._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1o34kp3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1q7yl7l._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1qv60vg._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1ry8uat._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1s2rww3._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1svvf40._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1tk0-4v._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1v-71me._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vw740y._.js +9 -9
- package/.next/server/chunks/[root-of-the-server]__1x_ud_-._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1yt_xxr._.js +3 -0
- 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/_0ekrwj-._.js +6 -6
- package/.next/server/chunks/_0gwg6ba._.js +1 -1
- package/.next/server/chunks/_0gxi3zr._.js +1 -1
- package/.next/server/chunks/_0lz3t4l._.js +2 -2
- package/.next/server/chunks/_0n36ev0._.js +3 -0
- package/.next/server/chunks/_0oc8oe4._.js +3 -0
- package/.next/server/chunks/_0rjzgi0._.js +3 -0
- package/.next/server/chunks/_0uxp3uh._.js +1 -1
- package/.next/server/chunks/_0x3ltk0._.js +6 -6
- package/.next/server/chunks/_10y361h._.js +3 -0
- 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/_15neond._.js +11 -0
- 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/_1ex6ovo._.js +1 -1
- package/.next/server/chunks/_1fgb9ve._.js +1 -1
- package/.next/server/chunks/_1m-yyz-._.js +1 -1
- package/.next/server/chunks/_1n1xsqj._.js +3 -0
- 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/_2194yr7._.js +11 -0
- 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]_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 +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03psbtz._.js +3 -0
- 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]__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]__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]__0skyo1a._.js +3 -0
- 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/_07ls0n_._.js +1 -1
- package/.next/server/chunks/ssr/_0i9hwpv._.js +1 -1
- 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/_11ut-6_._.js +3 -0
- package/.next/server/chunks/ssr/_17igtpd._.js +1 -1
- package/.next/server/chunks/ssr/_1aot_70._.js +3 -0
- package/.next/server/chunks/ssr/_1filpif._.js +3 -0
- 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 +5 -5
- 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/03gmdewlo3s6u.js +1 -0
- package/.next/static/chunks/06q8lm6y95ac4.css +1 -0
- package/.next/static/chunks/0_w084ms_lq25.js +22 -0
- package/.next/static/chunks/0dzfsm6h13fyr.js +1 -0
- package/.next/static/chunks/0ehjiuuxbbhq9.js +1 -0
- package/.next/static/chunks/0ij2dqb0qj5ry.js +1 -0
- package/.next/static/chunks/0iq53qkw5hvrs.js +1 -0
- package/.next/static/chunks/0m81l71kojx8j.js +1 -0
- package/.next/static/chunks/0nckb2-62ooyq.js +1 -0
- package/.next/static/chunks/0pwdmc9gw8ben.js +33 -0
- package/.next/static/chunks/0snej-v5yglxr.js +1 -0
- package/.next/static/chunks/1-7k9gbbjkcml.js +1 -0
- package/.next/static/chunks/1c92up8k2x0z4.js +1 -0
- package/.next/static/chunks/1cd32rtomdngh.js +1 -0
- package/.next/static/chunks/1io3-cth_2-cd.js +1 -0
- package/.next/static/chunks/1oiuiyv1cv06v.js +31 -0
- package/.next/static/chunks/1t4-pobw0y5cf.js +1 -0
- package/.next/static/chunks/1xg811762s1p1.js +1 -0
- package/.next/static/chunks/1z_5sj1wqi06v.js +1 -0
- package/.next/static/chunks/24dymggis4suf.css +3 -0
- package/.next/static/chunks/24jbwfpgmio7x.js +1 -0
- package/.next/static/chunks/27fr34_1v7xyh.js +1 -0
- package/.next/static/chunks/2dlme2fdlkms6.js +1 -0
- package/.next/static/chunks/2eu_bls12m1wj.js +1 -0
- package/.next/static/chunks/2pmzqbg-qabof.js +1 -0
- package/.next/static/chunks/2w2uo9jjxt-re.js +1 -0
- package/.next/static/chunks/2x8e_fbze06sd.js +1 -0
- package/.next/static/chunks/2z1_5umv36es6.js +191 -0
- package/.next/static/chunks/32bl-oqw9oso0.js +1 -0
- package/.next/static/chunks/3b-g5_r9nto3s.js +6 -0
- package/.next/static/chunks/3g1rm2suowncy.js +3 -0
- package/.next/static/chunks/3helovsg02qr4.js +1 -0
- package/.next/static/chunks/3jta6jrk-jubq.js +1 -0
- package/.next/static/chunks/3m4c1r8_2ga_1.js +1 -0
- package/.next/static/chunks/3whzkc6d8oefw.js +1 -0
- package/.next/static/chunks/3yhf6xyypekz6.js +1 -0
- package/.next/static/chunks/3z9gc_02gl8n9.js +1 -0
- package/.next/static/chunks/427wg73nuzpiz.js +5 -0
- package/.next/static/chunks/turbopack-1-0r7_puvz3eq.js +1 -0
- package/launcher.js +22 -6
- package/package.json +1 -1
- package/prisma/seed.db +0 -0
- package/.next/server/app/api/error-items/[id]/mastery/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/error-items/[id]/mastery/route/build-manifest.json +0 -12
- package/.next/server/app/api/error-items/[id]/mastery/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/error-items/[id]/mastery/route.js +0 -8
- package/.next/server/app/api/error-items/[id]/mastery/route.js.map +0 -5
- package/.next/server/app/api/error-items/[id]/mastery/route.js.nft.json +0 -1
- package/.next/server/app/api/error-items/[id]/mastery/route_client-reference-manifest.js +0 -3
- package/.next/server/chunks/[externals]__1735khz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__02j1w81._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__03nfvnm._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__04tyyvs._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__05s4wut._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__06_nln5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__06h5afw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0be5c5r._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0bqawi0._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0bsw5c9._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0c59gc3._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0cmxmwt._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d5dpu4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0d9ijed._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0e22a4y._.js +0 -122
- package/.next/server/chunks/[root-of-the-server]__0fnyu4s._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0gp88gz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0inxsnu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0j5231l._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0jaawra._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0k-nf6a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0k-p1pj._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0lrdm1u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0lro5a7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0mfjf2y._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0mqorxb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0no6umu._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0nqbham._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0o9gtvd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0obb4y-._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0p3u6_q._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0rmrkd_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0tdibjz._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0u58zap._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0vhjihq._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0vz88er._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0wf9znr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0yc8r2x._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0zv7jom._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11_1z7m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11n87go._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11p4ahb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__131taws._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__13ebiit._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1413v0e._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14dnbrn._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__14jqm9_._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__152lbaw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__16begv4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17duis5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__17q3k-v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__184u6de._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18atlj8._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18c7l6u._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__18zrkky._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__19vj8qy._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1aaux7e._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1cceu4b._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1cn6rlb._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1csfdxc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ezwxao._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1g1wi9i._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1gmc_uw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1h09r50._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1hpwwxw._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1j6mx-v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1jdi-1f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ju8z29._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1kqv61m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1lct0vi._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1loecue._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1m4-ab6._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1mkpya8._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1nwf3ua._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1oup682._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1p8hw44._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1pplzr1._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1rsn804._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1sdtn83._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1u-1vx4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1v6nwhq._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__20465pr._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__207mxv8._.js +0 -3
- package/.next/server/chunks/_0_o8yhv._.js +0 -3
- package/.next/server/chunks/_0c5hvv3._.js +0 -11
- package/.next/server/chunks/_0frix22._.js +0 -11
- package/.next/server/chunks/_0rdo0a4._.js +0 -3
- package/.next/server/chunks/_167vv93._.js +0 -3
- package/.next/server/chunks/_1e1h1f1._.js +0 -3
- package/.next/server/chunks/_1flar98._.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_error-items_[id]_mastery_route_actions_1l5uan6.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0b8kewv._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0icjezr._.js +0 -3
- package/.next/server/chunks/ssr/_062gk85._.js +0 -3
- package/.next/server/chunks/ssr/_0idg05p._.js +0 -3
- package/.next/server/chunks/ssr/_1gu1rou._.js +0 -3
- package/.next/static/chunks/02d-8f2qj7j3j.js +0 -1
- package/.next/static/chunks/02t7qqptint2p.js +0 -1
- package/.next/static/chunks/090a6irxe0c6j.js +0 -1
- package/.next/static/chunks/0bhxyq7e2eqjc.js +0 -5
- package/.next/static/chunks/0if-vqkhyn-zc.js +0 -1
- package/.next/static/chunks/0jf31atbtr1mv.js +0 -1
- package/.next/static/chunks/0te6mr86gdyyi.js +0 -191
- package/.next/static/chunks/0vgthy7v615hq.js +0 -1
- package/.next/static/chunks/1e5n4cprhwujv.js +0 -1
- package/.next/static/chunks/1edfvwc5_eck-.js +0 -31
- package/.next/static/chunks/1f0u19gh5_49z.js +0 -1
- package/.next/static/chunks/1fdj59ys-pend.js +0 -1
- package/.next/static/chunks/1kerqdluzq2l0.js +0 -1
- package/.next/static/chunks/1r4lwlvm7m53v.js +0 -1
- package/.next/static/chunks/1rz1bokv9edzr.js +0 -1
- package/.next/static/chunks/1s-d67d-yroyw.js +0 -1
- package/.next/static/chunks/1tw5_upsy-qj_.js +0 -22
- package/.next/static/chunks/1w1xvldfmcs67.js +0 -6
- package/.next/static/chunks/1zdof8ylzqm8w.js +0 -1
- package/.next/static/chunks/2-k1hjh6ff6y4.js +0 -1
- package/.next/static/chunks/21qpve5q3mjly.js +0 -1
- package/.next/static/chunks/21v32ctwcoxqt.js +0 -1
- package/.next/static/chunks/27-t289uq6_ju.js +0 -3
- package/.next/static/chunks/293-te2b34thz.js +0 -1
- package/.next/static/chunks/2dgleoh5fbs83.js +0 -1
- package/.next/static/chunks/2di_nd6djcxwu.js +0 -1
- package/.next/static/chunks/2mk03owifu2m1.js +0 -33
- package/.next/static/chunks/2qza4p5d9fz_2.js +0 -1
- package/.next/static/chunks/2s4c8fcrdnew4.js +0 -1
- package/.next/static/chunks/2zdqnkem9n6a9.js +0 -1
- package/.next/static/chunks/3-wm04s--suy5.js +0 -1
- package/.next/static/chunks/33t46atd3n2zd.js +0 -1
- package/.next/static/chunks/37yx4gh09tzwc.js +0 -1
- package/.next/static/chunks/3c4-ozf1dxam2.css +0 -1
- package/.next/static/chunks/3gwb465dhjxo9.js +0 -1
- package/.next/static/chunks/3hkgw-uib19xl.js +0 -1
- package/.next/static/chunks/3n-yabfsiog4i.css +0 -3
- package/.next/static/chunks/3umldi5zknsyi.js +0 -1
- package/.next/static/chunks/turbopack-1yjxh4vceobdr.js +0 -1
- /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_buildManifest.js +0 -0
- /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{678uJSzOSzePaLyv5hUv0 → Y0pwgmRdVAifh_zukihNt}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[180032,460081,350659,310395,a=>{"use strict";var b=a.i(170106);let c=(0,b.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"}]]);a.s(["Box",0,c],180032);var d=a.i(187924),e=a.i(572131);let f=(0,b.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 g=a.i(177156),h=a.i(93907),i=a.i(429246),j=a.i(550194),k=a.i(368114);a.s(["MarkdownEditor",0,function({value:a,onChange:b,className:c,...l}){let{t:m}=(0,j.useLanguage)(),[n,o]=(0,e.useState)("source"),p=(0,e.useId)(),q=[{mode:"source",label:m.markdownEditor.source,icon:f},{mode:"preview",label:m.markdownEditor.preview,icon:g.Eye}];return(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)("div",{role:"tablist","aria-label":m.markdownEditor.modeLabel,className:"flex justify-end",children:(0,d.jsx)("div",{className:"inline-flex rounded-md border bg-muted/40 p-0.5",children:q.map(({mode:a,label:b,icon:c})=>(0,d.jsxs)("button",{type:"button",role:"tab","aria-selected":n===a,"aria-controls":p,onClick:()=>o(a),className:(0,k.cn)("flex items-center gap-1 rounded px-2.5 py-1 text-xs transition-colors",n===a?"bg-background font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(c,{className:"h-3.5 w-3.5"}),b]},a))})}),(0,d.jsx)("div",{id:p,role:"tabpanel",children:"source"===n?(0,d.jsx)(i.Textarea,{value:a,onChange:a=>b(a.target.value),className:c,...l}):(0,d.jsx)("div",{className:"min-h-24 cursor-text rounded-md border bg-muted/20 px-3 py-2",onDoubleClick:()=>o("source"),title:m.markdownEditor.doubleClickToEdit,children:a.trim()?(0,d.jsx)(h.MarkdownRenderer,{content:a}):(0,d.jsx)("p",{className:"text-sm italic text-muted-foreground",children:m.markdownEditor.empty})})})]})}],460081);var l=a.i(580701),m=a.i(953722),n=a.i(291938);a.s(["NotebookSelector",0,function({value:a,onChange:b,className:c}){let[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),{t:k}=(0,j.useLanguage)();return(0,e.useEffect)(()=>{(async()=>{try{let a=await n.apiClient.get("/api/notebooks");g(a)}catch(a){console.error("Failed to fetch notebooks:",a)}finally{i(!1)}})()},[]),(0,d.jsxs)(l.Select,{value:a,onValueChange:b,children:[(0,d.jsx)(l.SelectTrigger,{className:c,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(m.BookOpen,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)(l.SelectValue,{placeholder:k.notebooks?.selector?.placeholder||"Select Notebook"})]})}),(0,d.jsx)(l.SelectContent,{children:0===f.length?(0,d.jsx)("div",{className:"p-2 text-sm text-muted-foreground text-center",children:k.notebooks?.selector?.empty||"No notebooks available"}):f.map(a=>(0,d.jsx)(l.SelectItem,{value:a.id,children:a.name},a.id))})]})}],350659);var o=a.i(596221);let p=(0,b.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"}]]),q=(0,b.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 r=a.i(787654),s=a.i(669520),t=a.i(781560),u=a.i(699570),v=a.i(710302);let w=["setcoordsystem","setaxesvisible","setgridvisible","setcolor","setlinethickness","setlinestyle","setpointsize","setpointstyle","setlabelvisible","setcaption","setvisible","setfilling","setvalue","setfixed","setbackgroundcolor"];a.s(["GeogebraDemo",0,function({commands:a,height:b=700,showToolBar:c=!1,showAlgebraInput:f=!1,showMenuBar:g=!1,className:h="",onRegenerate:i,onDelete:k}){let{t:l}=(0,j.useLanguage)(),m=(0,e.useRef)(null),n=(0,e.useRef)(null);(0,e.useRef)(`ggb-${Math.random().toString(36).slice(2,9)}`);let[x,y]=(0,e.useState)(!0),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)(!0),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),H=(0,e.useMemo)(()=>(function(a){if(!a?.trim())return[];let b=a.trim();if(b.startsWith("["))try{let a=JSON.parse(b);if(Array.isArray(a))return a.filter(a=>"string"==typeof a&&""!==a.trim())}catch{}return b.split("\n").map(a=>a.trim()).filter(a=>a&&!a.startsWith("//"))})(a),[a]);(0,e.useEffect)(()=>{},[H,c,f,g]),(0,e.useEffect)(()=>{let a=m.current?.firstElementChild;if(!a)return;let c=B?700:b;a.style.width="100%",a.style.height=`${c}px`;let d=n.current;if(d?.setSize){let b=m.current?.offsetWidth||a.offsetWidth||800;d.setSize(b,c)}},[B,b]);let I=(0,e.useCallback)(()=>{let a=n.current;if(a)try{a.resetConstruction(),setTimeout(()=>{n.current&&function(a,b){for(let c of b)try{if(function(a){let b=a.toLowerCase().trim();return w.some(a=>b.startsWith(a+"("))}(c)){let b=function(a){let b=a.match(/^(\w+)\(([\s\S]+)\)$/);if(!b)return null;try{let a=b[2].trim();if(a.startsWith("[")&&a.endsWith("]"))return{m:b[1],a:JSON.parse(a)};if(/^-?\d+(\.\d+)?$/.test(a))return{m:b[1],a:[Number(a)]};if("true"===a||"false"===a)return{m:b[1],a:["true"===a]};if(a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))return{m:b[1],a:[a.slice(1,-1)]};let c=a.split(",").map(a=>a.trim()).map(a=>/^-?\d+(\.\d+)?$/.test(a)?Number(a):"true"===a||"false"===a?"true"===a:a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'")?a.slice(1,-1):a);return{m:b[1],a:c}}catch{return null}}(c);b&&"function"==typeof a[b.m]&&a[b.m](...b.a)}else{let b=c.trim();b&&!/[<>'"]/.test(b)?a.evalCommand(b):console.warn(`[GGB] Blocked potentially unsafe command: ${c.substring(0,50)}`)}}catch(a){console.warn(`[GGB] Failed: ${c}`,a)}}(n.current,H)},300)}catch(a){console.warn("[GGB] Reset failed",a)}},[H]),J=(0,e.useCallback)(async()=>{if(i&&!D){E(!0);try{await i()}finally{E(!1)}}},[i,D]),K=(0,e.useCallback)(async()=>{if(k&&!F&&await (0,v.confirmDialog)(l.geogebra.confirmDelete,{destructive:!0})){G(!0);try{await k()}catch{v.toast.error(l.geogebra.deleteFailed)}finally{G(!1)}}},[k,F,l]);return 0===H.length?null:(0,d.jsxs)("div",{className:`relative rounded-lg border bg-card ${h}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b bg-muted/30",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"GeoGebra 动态演示"}),x&&(0,d.jsx)(o.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[i&&(0,d.jsxs)(u.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:J,title:"重新生成",disabled:D||x,children:[D?(0,d.jsx)(o.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(s.RefreshCw,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:"重新生成"})]}),k&&(0,d.jsxs)(u.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:K,title:l.geogebra.delete,disabled:F||D,children:[F?(0,d.jsx)(o.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(t.Trash2,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:l.geogebra.delete})]}),(0,d.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:I,title:"重置",disabled:x,children:(0,d.jsx)(r.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,d.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>C(a=>!a),title:B?"缩小":"放大",children:B?(0,d.jsx)(q,{className:"h-3.5 w-3.5"}):(0,d.jsx)(p,{className:"h-3.5 w-3.5"})})]})]}),(0,d.jsx)("div",{ref:m,style:{width:"100%"}}),x&&(0,d.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 rounded-b-lg",style:{top:37},children:(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,d.jsx)(o.Loader2,{className:"h-6 w-6 animate-spin text-primary"}),(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:"加载 GeoGebra..."})]})}),z&&(0,d.jsx)("div",{className:"flex items-center justify-center text-sm text-destructive",style:{minHeight:b},children:z})]})}],310395)},797521,43542,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=c,e=Object.defineProperty,f=(a,b,c)=>{let d;return(d="symbol"!=typeof b?b+"":b)in a?e(a,d,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[d]=c};let g={x:0,y:0,width:0,height:0,unit:"px"},h=(a,b,c)=>Math.min(Math.max(a,b),c),i=(a,b)=>a===b||a.width===b.width&&a.height===b.height&&a.x===b.x&&a.y===b.y&&a.unit===b.unit;function j(a,b,c){return"%"===a.unit?{...g,...a,unit:"%"}:{unit:"%",x:a.x?a.x/b*100:0,y:a.y?a.y/c*100:0,width:a.width?a.width/b*100:0,height:a.height?a.height/c*100:0}}function k(a,b,c){return a.unit?"px"===a.unit?{...g,...a,unit:"px"}:{unit:"px",x:a.x?a.x*b/100:0,y:a.y?a.y*c/100:0,width:a.width?a.width*b/100:0,height:a.height?a.height*c/100:0}:{...g,...a,unit:"px"}}function l(a,b,c,d,e,f=0,g=0,h=d,i=e){let j={...a},k=Math.min(f,d),m=Math.min(g,e),n=Math.min(h,d),o=Math.min(i,e);b&&(b>1?(m=(k=g?g*b:k)/b,n=h*b):(k=(m=f?f/b:m)*b,o=i/b)),j.y<0&&(j.height=Math.max(j.height+j.y,m),j.y=0),j.x<0&&(j.width=Math.max(j.width+j.x,k),j.x=0);let p=d-(j.x+j.width);p<0&&(j.x=Math.min(j.x,d-k),j.width+=p);let q=e-(j.y+j.height);if(q<0&&(j.y=Math.min(j.y,e-m),j.height+=q),j.width<k&&(("sw"===c||"nw"==c)&&(j.x-=k-j.width),j.width=k),j.height<m&&(("nw"===c||"ne"==c)&&(j.y-=m-j.height),j.height=m),j.width>n&&(("sw"===c||"nw"==c)&&(j.x-=n-j.width),j.width=n),j.height>o&&(("nw"===c||"ne"==c)&&(j.y-=o-j.height),j.height=o),b){let a=j.width/j.height;if(a<b){let a=Math.max(j.width/b,m);("nw"===c||"ne"==c)&&(j.y-=a-j.height),j.height=a}else if(a>b){let a=Math.max(j.height*b,k);("sw"===c||"nw"==c)&&(j.x-=a-j.width),j.width=a}}return j}let m={capture:!0,passive:!1},n=0,o=class a extends d.PureComponent{constructor(){super(...arguments),f(this,"docMoveBound",!1),f(this,"mouseDownOnCrop",!1),f(this,"dragStarted",!1),f(this,"evData",{startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0}),f(this,"componentRef",(0,d.createRef)()),f(this,"mediaRef",(0,d.createRef)()),f(this,"resizeObserver"),f(this,"initChangeCalled",!1),f(this,"instanceId",`rc-${n++}`),f(this,"state",{cropIsActive:!1,newCropIsBeingDrawn:!1}),f(this,"onCropPointerDown",a=>{let{crop:b,disabled:c}=this.props,d=this.getBox();if(!b)return;let e=k(b,d.width,d.height);if(c)return;a.cancelable&&a.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let f=a.target.dataset.ord,g=a.clientX,h=a.clientY,i=e.x,j=e.y;if(f){let b=a.clientX-d.x,c=a.clientY-d.y,k=0,l=0;"ne"===f||"e"==f?(k=b-(e.x+e.width),l=c-e.y,i=e.x,j=e.y+e.height):"se"===f||"s"===f?(k=b-(e.x+e.width),l=c-(e.y+e.height),i=e.x,j=e.y):"sw"===f||"w"==f?(k=b-e.x,l=c-(e.y+e.height),i=e.x+e.width,j=e.y):("nw"===f||"n"==f)&&(k=b-e.x,l=c-e.y,i=e.x+e.width,j=e.y+e.height),g=i+d.x+k,h=j+d.y+l}this.evData={startClientX:g,startClientY:h,startCropX:i,startCropY:j,clientX:a.clientX,clientY:a.clientY,isResize:!!f,ord:f},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})}),f(this,"onComponentPointerDown",a=>{let{crop:b,disabled:c,locked:d,keepSelection:e,onChange:f}=this.props,g=this.getBox();if(c||d||e&&b)return;a.cancelable&&a.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let h=a.clientX-g.x,i=a.clientY-g.y,l={unit:"px",x:h,y:i,width:0,height:0};this.evData={startClientX:a.clientX,startClientY:a.clientY,startCropX:h,startCropY:i,clientX:a.clientX,clientY:a.clientY,isResize:!0},this.mouseDownOnCrop=!0,f(k(l,g.width,g.height),j(l,g.width,g.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})}),f(this,"onDocPointerMove",a=>{let b,{crop:c,disabled:d,onChange:e,onDragStart:f}=this.props,g=this.getBox();if(d||!c||!this.mouseDownOnCrop)return;a.cancelable&&a.preventDefault(),this.dragStarted||(this.dragStarted=!0,f&&f(a));let{evData:h}=this;h.clientX=a.clientX,h.clientY=a.clientY,i(c,b=h.isResize?this.resizeCrop():this.dragCrop())||e(k(b,g.width,g.height),j(b,g.width,g.height))}),f(this,"onComponentKeyDown",b=>{let{crop:c,disabled:d,onChange:e,onComplete:f}=this.props;if(d)return;let g=b.key,i=!1;if(!c)return;let l=this.getBox(),m=this.makePixelCrop(l),n=(navigator.platform.match("Mac")?b.metaKey:b.ctrlKey)?a.nudgeStepLarge:b.shiftKey?a.nudgeStepMedium:a.nudgeStep;if("ArrowLeft"===g?(m.x-=n,i=!0):"ArrowRight"===g?(m.x+=n,i=!0):"ArrowUp"===g?(m.y-=n,i=!0):"ArrowDown"===g&&(m.y+=n,i=!0),i){b.cancelable&&b.preventDefault(),m.x=h(m.x,0,l.width-m.width),m.y=h(m.y,0,l.height-m.height);let a=k(m,l.width,l.height),c=j(m,l.width,l.height);e(a,c),f&&f(a,c)}}),f(this,"onHandlerKeyDown",(b,c)=>{var d,e;let f,{aspect:g=0,crop:h,disabled:m,minWidth:n=0,minHeight:o=0,maxWidth:p,maxHeight:q,onChange:r,onComplete:s}=this.props,t=this.getBox();if(m||!h||"ArrowUp"!==b.key&&"ArrowDown"!==b.key&&"ArrowLeft"!==b.key&&"ArrowRight"!==b.key)return;b.stopPropagation(),b.preventDefault();let u=(navigator.platform.match("Mac")?b.metaKey:b.ctrlKey)?a.nudgeStepLarge:b.shiftKey?a.nudgeStepMedium:a.nudgeStep,v=l((d=k(h,t.width,t.height),e=b.key,f={...d},"ArrowLeft"===e?"nw"===c?(f.x-=u,f.y-=u,f.width+=u,f.height+=u):"w"===c?(f.x-=u,f.width+=u):"sw"===c?(f.x-=u,f.width+=u,f.height+=u):"ne"===c?(f.y+=u,f.width-=u,f.height-=u):"e"===c?f.width-=u:"se"===c&&(f.width-=u,f.height-=u):"ArrowRight"===e&&("nw"===c?(f.x+=u,f.y+=u,f.width-=u,f.height-=u):"w"===c?(f.x+=u,f.width-=u):"sw"===c?(f.x+=u,f.width-=u,f.height-=u):"ne"===c?(f.y-=u,f.width+=u,f.height+=u):"e"===c?f.width+=u:"se"===c&&(f.width+=u,f.height+=u)),"ArrowUp"===e?"nw"===c?(f.x-=u,f.y-=u,f.width+=u,f.height+=u):"n"===c?(f.y-=u,f.height+=u):"ne"===c?(f.y-=u,f.width+=u,f.height+=u):"sw"===c?(f.x+=u,f.width-=u,f.height-=u):"s"===c?f.height-=u:"se"===c&&(f.width-=u,f.height-=u):"ArrowDown"===e&&("nw"===c?(f.x+=u,f.y+=u,f.width-=u,f.height-=u):"n"===c?(f.y+=u,f.height-=u):"ne"===c?(f.y+=u,f.width-=u,f.height-=u):"sw"===c?(f.x-=u,f.width+=u,f.height+=u):"s"===c?f.height+=u:"se"===c&&(f.width+=u,f.height+=u)),f),g,c,t.width,t.height,n,o,p,q);if(!i(h,v)){let a=j(v,t.width,t.height);r(v,a),s&&s(v,a)}}),f(this,"onDocPointerDone",a=>{let{crop:b,disabled:c,onComplete:d,onDragEnd:e}=this.props,f=this.getBox();this.unbindDocMove(),!(c||!b)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,e&&e(a),d&&d(k(b,f.width,f.height),j(b,f.width,f.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))}),f(this,"onDragFocus",()=>{var a;null==(a=this.componentRef.current)||a.scrollTo(0,0)})}get document(){return document}getBox(){let a=this.mediaRef.current;if(!a)return{x:0,y:0,width:0,height:0};let{x:b,y:c,width:d,height:e}=a.getBoundingClientRect();return{x:b,y:c,width:d,height:e}}componentDidUpdate(a){let{crop:b,onComplete:c}=this.props;if(c&&!a.crop&&b){let{width:a,height:d}=this.getBox();a&&d&&c(k(b,a,d),j(b,a,d))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,m),this.document.addEventListener("pointerup",this.onDocPointerDone,m),this.document.addEventListener("pointercancel",this.onDocPointerDone,m),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,m),this.document.removeEventListener("pointerup",this.onDocPointerDone,m),this.document.removeEventListener("pointercancel",this.onDocPointerDone,m),this.docMoveBound=!1)}getCropStyle(){let{crop:a}=this.props;if(a)return{top:`${a.y}${a.unit}`,left:`${a.x}${a.unit}`,width:`${a.width}${a.unit}`,height:`${a.height}${a.unit}`}}dragCrop(){let{evData:a}=this,b=this.getBox(),c=this.makePixelCrop(b),d=a.clientX-a.startClientX,e=a.clientY-a.startClientY;return c.x=h(a.startCropX+d,0,b.width-c.width),c.y=h(a.startCropY+e,0,b.height-c.height),c}getPointRegion(a,b,c,d){let e,{evData:f}=this,g=f.clientX-a.x,h=f.clientY-a.y;return e=d&&b?"nw"===b||"n"===b||"ne"===b:h<f.startCropY,(c&&b?"nw"===b||"w"===b||"sw"===b:g<f.startCropX)?e?"nw":"sw":e?"ne":"se"}resolveMinDimensions(a,b,c=0,d=0){let e=Math.min(c,a.width),f=Math.min(d,a.height);return b&&(e||f)?b>1?e?[e,e/b]:[f*b,f]:f?[f*b,f]:[e,e/b]:[e,f]}resizeCrop(){let{evData:b}=this,{aspect:c=0,maxWidth:d,maxHeight:e}=this.props,f=this.getBox(),[g,i]=this.resolveMinDimensions(f,c,this.props.minWidth,this.props.minHeight),j=this.makePixelCrop(f),k=this.getPointRegion(f,b.ord,g,i),m=b.ord||k,n=b.clientX-b.startClientX,o=b.clientY-b.startClientY;(g&&"nw"===m||"w"===m||"sw"===m)&&(n=Math.min(n,-g)),(i&&"nw"===m||"n"===m||"ne"===m)&&(o=Math.min(o,-i));let p={unit:"px",x:0,y:0,width:0,height:0};"ne"===k?(p.x=b.startCropX,p.width=n,c?p.height=p.width/c:p.height=Math.abs(o),p.y=b.startCropY-p.height):"se"===k?(p.x=b.startCropX,p.y=b.startCropY,p.width=n,c?p.height=p.width/c:p.height=o):"sw"===k?(p.x=b.startCropX+n,p.y=b.startCropY,p.width=Math.abs(n),c?p.height=p.width/c:p.height=o):"nw"===k&&(p.x=b.startCropX+n,p.width=Math.abs(n),c?(p.height=p.width/c,p.y=b.startCropY-p.height):(p.height=Math.abs(o),p.y=b.startCropY+o));let q=l(p,c,k,f.width,f.height,g,i,d,e);return c||a.xyOrds.indexOf(m)>-1?j=q:a.xOrds.indexOf(m)>-1?(j.x=q.x,j.width=q.width):a.yOrds.indexOf(m)>-1&&(j.y=q.y,j.height=q.height),j.x=h(j.x,0,f.width-j.width),j.y=h(j.y,0,f.height-j.height),j}renderCropSelection(){let{ariaLabels:b=a.defaultProps.ariaLabels,disabled:c,locked:e,renderSelectionAddon:f,ruleOfThirds:g,crop:h}=this.props,i=this.getCropStyle();if(h)return d.default.createElement("div",{style:i,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":b.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!c&&!e&&d.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},d.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),d.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),d.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),d.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":b.nwDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"nw"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":b.nDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"n"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":b.neDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"ne"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":b.eDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"e"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":b.seDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"se"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":b.sDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"s"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":b.swDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"sw"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":b.wDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"w"),role:"button"})),f&&d.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:a=>a.stopPropagation()},f(this.state)),g&&d.default.createElement(d.default.Fragment,null,d.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),d.default.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(a){return k({...g,...this.props.crop||{}},a.width,a.height)}render(){let{aspect:a,children:b,circularCrop:c,className:e,crop:f,disabled:g,locked:h,style:i,ruleOfThirds:j}=this.props,{cropIsActive:k,newCropIsBeingDrawn:l}=this.state,m=f?this.renderCropSelection():null,n=((...a)=>a.filter(a=>a&&"string"==typeof a).join(" "))("ReactCrop",e,k&&"ReactCrop--active",g&&"ReactCrop--disabled",h&&"ReactCrop--locked",l&&"ReactCrop--new-crop",f&&a&&"ReactCrop--fixed-aspect",f&&c&&"ReactCrop--circular-crop",f&&j&&"ReactCrop--rule-of-thirds",!this.dragStarted&&f&&!f.width&&!f.height&&"ReactCrop--invisible-crop",c&&"ReactCrop--no-animate");return d.default.createElement("div",{ref:this.componentRef,className:n,style:i},d.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},b),f?d.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},d.default.createElement("defs",null,d.default.createElement("mask",{id:`hole-${this.instanceId}`},d.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),c?d.default.createElement("ellipse",{cx:`${f.x+f.width/2}${f.unit}`,cy:`${f.y+f.height/2}${f.unit}`,rx:`${f.width/2}${f.unit}`,ry:`${f.height/2}${f.unit}`,fill:"black"}):d.default.createElement("rect",{x:`${f.x}${f.unit}`,y:`${f.y}${f.unit}`,width:`${f.width}${f.unit}`,height:`${f.height}${f.unit}`,fill:"black"}))),d.default.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,m)}};f(o,"xOrds",["e","w"]),f(o,"yOrds",["n","s"]),f(o,"xyOrds",["nw","ne","se","sw"]),f(o,"nudgeStep",1),f(o,"nudgeStepMedium",10),f(o,"nudgeStepLarge",100),f(o,"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=a.i(699570),q=a.i(814574),r=a.i(633508),s=a.i(550194);async function t(a,b){let{naturalWidth:c,naturalHeight:d}=a;return Promise.all(b.map(b=>new Promise((e,f)=>{let g=document.createElement("canvas"),h=Math.round(b.x*c),i=Math.round(b.y*d);g.width=Math.max(1,Math.round(b.width*c)),g.height=Math.max(1,Math.round(b.height*d));let j=g.getContext("2d");j?(j.drawImage(a,h,i,g.width,g.height,0,0,g.width,g.height),g.toBlob(a=>a?e(a):f(Error("Canvas is empty")),"image/jpeg",.95)):f(Error("Canvas is not supported"))})))}let u=(0,c.forwardRef)(function({imageSrc:a,regions:d,onChange:e},f){let{t:g}=(0,s.useLanguage)(),h=(0,c.useRef)(null),i=(0,c.useRef)(null),[j,k]=(0,c.useState)(null),l=a=>{let b=h.current.getBoundingClientRect();return{x:(a.clientX-b.left)/b.width,y:(a.clientY-b.top)/b.height}},m=()=>{j&&j.width>=.02&&j.height>=.02&&e([...d,j]),i.current=null,k(null)},n=a=>({left:`${100*a.x}%`,top:`${100*a.y}%`,width:`${100*a.width}%`,height:`${100*a.height}%`});return(0,b.jsxs)("div",{className:"relative inline-block select-none",children:[(0,b.jsx)("img",{ref:f,src:a,alt:"",draggable:!1,style:{maxHeight:"65vh",maxWidth:"100%",objectFit:"contain"},className:"block"}),(0,b.jsxs)("div",{ref:h,className:"absolute inset-0 cursor-crosshair",style:{touchAction:"none"},onPointerDown:a=>{0===a.button&&(h.current?.setPointerCapture(a.pointerId),i.current=l(a),k(null))},onPointerMove:a=>{var b,c,d,e;let f,g,h;if(!i.current)return;let j=l(a);k((b=i.current.x,c=i.current.y,d=j.x,e=j.y,g=(f=a=>Math.min(1,Math.max(0,a)))(Math.min(b,d)),h=f(Math.min(c,e)),{x:g,y:h,width:f(Math.max(b,d))-g,height:f(Math.max(c,e))-h}))},onPointerUp:m,onPointerCancel:m,children:[d.map((a,c)=>(0,b.jsxs)("div",{className:"absolute border-2 border-sky-400 bg-sky-400/15",style:n(a),children:[(0,b.jsx)("span",{className:"absolute left-0 top-0 bg-sky-500 px-1.5 text-xs font-bold text-white",children:c+1}),(0,b.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":g.batchImport.removeRegion.replace("{index}",String(c+1)),onPointerDown:a=>a.stopPropagation(),onClick:()=>e(d.filter((a,b)=>b!==c)),children:(0,b.jsx)(r.X,{className:"h-3 w-3"})})]},c)),j&&(0,b.jsx)("div",{className:"absolute border-2 border-dashed border-yellow-300 bg-yellow-300/10",style:n(j)})]})]})});async function v(a,b=1,c=1920,d=.8){return new Promise((e,f)=>{let g=new FileReader;g.onload=g=>{let h=new Image;h.onload=()=>{let g=document.createElement("canvas"),i=g.getContext("2d");if(!i)return void f(Error("无法获取 Canvas 上下文"));let j=h.width,k=h.height;j>c&&(k=k*c/j,j=c),g.width=j,g.height=k,i.drawImage(h,0,0,j,k);let l=d,m=g.toDataURL("image/jpeg",l),n=3*m.length/4/1024/1024;for(;n>b&&l>.1;){l-=.1;let a=3*(m=g.toDataURL("image/jpeg",l)).length/4/1024/1024;if(console.log(`压缩质量: ${l.toFixed(1)}, 大小: ${a.toFixed(2)}MB`),a<=b)break}console.log(`原始文件: ${(a.size/1024/1024).toFixed(2)}MB, 压缩后: ${(3*m.length/4/1024/1024).toFixed(2)}MB`),e(m)},h.onerror=()=>f(Error("图片加载失败")),h.src=g.target?.result},g.onerror=()=>f(Error("文件读取失败")),g.readAsDataURL(a)})}async function w(a){let b=a.size/1024/1024;return(console.log(`文件大小: ${b.toFixed(2)}MB`),b>1)?(console.log("文件超过阈值,开始压缩..."),await v(a,1)):(console.log("文件大小合适,无需压缩"),new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(d.result),d.onerror=c,d.readAsDataURL(a)}))}a.s(["ImageCropper",0,function({imageSrc:a,open:d,onClose:e,onCropComplete:f,onMultiCropComplete:g}){let{t:h}=(0,s.useLanguage)(),[i,j]=(0,c.useState)(),[k,l]=(0,c.useState)(),m=(0,c.useRef)(null),[n,r]=(0,c.useState)("single"),[v,w]=(0,c.useState)({src:a,regions:[]}),x=v.src===a?v.regions:[],y=b=>w({src:a,regions:b}),z=(0,c.useRef)(null),A=async()=>{if(z.current&&0!==x.length&&g)try{g(await t(z.current,x)),y([])}catch(a){console.error(a)}},B=async(a,b)=>{let c=document.createElement("canvas"),d=a.naturalWidth/a.width,e=a.naturalHeight/a.height;c.width=b.width*d,c.height=b.height*e;let f=c.getContext("2d");return f?(f.drawImage(a,b.x*d,b.y*e,b.width*d,b.height*e,0,0,b.width*d,b.height*e),new Promise((a,b)=>{c.toBlob(c=>{c?a(c):b(Error("Canvas is empty"))},"image/jpeg")})):null},C=async()=>{if(k&&m.current)try{let a=await B(m.current,k);a&&f(a)}catch(a){console.error(a)}else if(!k&&a)try{let b=await fetch(a),c=await b.blob();f(c)}catch(a){console.error(a)}};return(0,b.jsx)(q.Dialog,{open:d,onOpenChange:a=>!a&&e(),children:(0,b.jsxs)(q.DialogContent,{className:"max-w-3xl h-[90vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)(q.DialogHeader,{className:"p-4 border-b shrink-0",children:(0,b.jsx)(q.DialogTitle,{children:h.common.cropper?.title||"Crop Image"})}),(0,b.jsx)("div",{className:"flex-1 bg-black w-full overflow-auto flex items-center justify-center p-4",children:"multi"===n?(0,b.jsx)(u,{ref:z,imageSrc:a,regions:x,onChange:y}):(0,b.jsx)(o,{crop:i,onChange:(a,b)=>j(b),onComplete:a=>l(a),className:"max-h-full",children:(0,b.jsx)("img",{ref:m,alt:"Crop me",src:a,onLoad:function(a){let{width:b,height:c}=a.currentTarget;j({unit:"%",x:0,y:0,width:100,height:100}),l({unit:"px",x:0,y:0,width:b,height:c})},style:{maxHeight:"70vh",maxWidth:"100%",objectFit:"contain"}})})}),(0,b.jsxs)("div",{className:"p-4 border-t bg-background shrink-0 space-y-3",children:[g&&(0,b.jsx)("div",{className:"grid grid-cols-2 gap-1 rounded-md bg-muted p-1 sm:w-80",children:["single","multi"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>r(a),className:`rounded px-3 py-1.5 text-sm font-medium transition-colors ${n===a?"bg-background shadow-sm":"text-muted-foreground"}`,children:"single"===a?h.batchImport.singleMode:h.batchImport.multiMode},a))}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"multi"===n?`${h.batchImport.hint} ${h.batchImport.regionCount.replace("{count}",String(x.length))}`:h.common.cropper?.hint||"💡 Drag to adjust crop area"}),(0,b.jsxs)("div",{className:"flex gap-2 justify-end",children:["multi"===n&&x.length>0&&(0,b.jsx)(p.Button,{variant:"ghost",onClick:()=>y([]),children:h.batchImport.clear}),(0,b.jsx)(p.Button,{variant:"outline",onClick:e,children:h.common.cancel||"Cancel"}),"multi"===n?(0,b.jsx)(p.Button,{onClick:A,disabled:0===x.length,children:h.batchImport.start.replace("{count}",String(x.length))}):(0,b.jsx)(p.Button,{onClick:C,children:h.common.confirm||"Confirm"})]})]})]})]})})}],797521),a.s(["processImageFile",0,w],43542)},851795,a=>{"use strict";a.s(["getDefaultPaperLevel",0,function(a){return"number"!=typeof a||!Number.isInteger(a)||a<1||a>5?null:a<=3?"a":"b"}])}];
|
|
1
|
+
module.exports=[72807,60081,50659,10395,a=>{"use strict";var b=a.i(70106);let c=(0,b.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"}]]);a.s(["Box",0,c],72807);var d=a.i(87924),e=a.i(72131);let f=(0,b.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 g=a.i(77156),h=a.i(93907),i=a.i(29246),j=a.i(50194),k=a.i(68114);a.s(["MarkdownEditor",0,function({value:a,onChange:b,className:c,...l}){let{t:m}=(0,j.useLanguage)(),[n,o]=(0,e.useState)("source"),p=(0,e.useId)(),q=[{mode:"source",label:m.markdownEditor.source,icon:f},{mode:"preview",label:m.markdownEditor.preview,icon:g.Eye}];return(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)("div",{role:"tablist","aria-label":m.markdownEditor.modeLabel,className:"flex justify-end",children:(0,d.jsx)("div",{className:"inline-flex rounded-md border bg-muted/40 p-0.5",children:q.map(({mode:a,label:b,icon:c})=>(0,d.jsxs)("button",{type:"button",role:"tab","aria-selected":n===a,"aria-controls":p,onClick:()=>o(a),className:(0,k.cn)("flex items-center gap-1 rounded px-2.5 py-1 text-xs transition-colors",n===a?"bg-background font-medium shadow-sm":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(c,{className:"h-3.5 w-3.5"}),b]},a))})}),(0,d.jsx)("div",{id:p,role:"tabpanel",children:"source"===n?(0,d.jsx)(i.Textarea,{value:a,onChange:a=>b(a.target.value),className:c,...l}):(0,d.jsx)("div",{className:"min-h-24 cursor-text rounded-md border bg-muted/20 px-3 py-2",onDoubleClick:()=>o("source"),title:m.markdownEditor.doubleClickToEdit,children:a.trim()?(0,d.jsx)(h.MarkdownRenderer,{content:a}):(0,d.jsx)("p",{className:"text-sm italic text-muted-foreground",children:m.markdownEditor.empty})})})]})}],60081);var l=a.i(80701),m=a.i(53722),n=a.i(91938);a.s(["NotebookSelector",0,function({value:a,onChange:b,className:c}){let[f,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),{t:k}=(0,j.useLanguage)();return(0,e.useEffect)(()=>{(async()=>{try{let a=await n.apiClient.get("/api/notebooks");g(a)}catch(a){console.error("Failed to fetch notebooks:",a)}finally{i(!1)}})()},[]),(0,d.jsxs)(l.Select,{value:a,onValueChange:b,children:[(0,d.jsx)(l.SelectTrigger,{className:c,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(m.BookOpen,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)(l.SelectValue,{placeholder:k.notebooks?.selector?.placeholder||"Select Notebook"})]})}),(0,d.jsx)(l.SelectContent,{children:0===f.length?(0,d.jsx)("div",{className:"p-2 text-sm text-muted-foreground text-center",children:k.notebooks?.selector?.empty||"No notebooks available"}):f.map(a=>(0,d.jsx)(l.SelectItem,{value:a.id,children:a.name},a.id))})]})}],50659);var o=a.i(96221);let p=(0,b.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"}]]),q=(0,b.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 r=a.i(87654),s=a.i(69520),t=a.i(81560),u=a.i(99570),v=a.i(10302);let w=["setcoordsystem","setaxesvisible","setgridvisible","setcolor","setlinethickness","setlinestyle","setpointsize","setpointstyle","setlabelvisible","setcaption","setvisible","setfilling","setvalue","setfixed","setbackgroundcolor"];a.s(["GeogebraDemo",0,function({commands:a,height:b=700,showToolBar:c=!1,showAlgebraInput:f=!1,showMenuBar:g=!1,className:h="",onRegenerate:i,onDelete:k}){let{t:l}=(0,j.useLanguage)(),m=(0,e.useRef)(null),n=(0,e.useRef)(null);(0,e.useRef)(`ggb-${Math.random().toString(36).slice(2,9)}`);let[x,y]=(0,e.useState)(!0),[z,A]=(0,e.useState)(null),[B,C]=(0,e.useState)(!0),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),H=(0,e.useMemo)(()=>(function(a){if(!a?.trim())return[];let b=a.trim();if(b.startsWith("["))try{let a=JSON.parse(b);if(Array.isArray(a))return a.filter(a=>"string"==typeof a&&""!==a.trim())}catch{}return b.split("\n").map(a=>a.trim()).filter(a=>a&&!a.startsWith("//"))})(a),[a]);(0,e.useEffect)(()=>{},[H,c,f,g]),(0,e.useEffect)(()=>{let a=m.current?.firstElementChild;if(!a)return;let c=B?700:b;a.style.width="100%",a.style.height=`${c}px`;let d=n.current;if(d?.setSize){let b=m.current?.offsetWidth||a.offsetWidth||800;d.setSize(b,c)}},[B,b]);let I=(0,e.useCallback)(()=>{let a=n.current;if(a)try{a.resetConstruction(),setTimeout(()=>{n.current&&function(a,b){for(let c of b)try{if(function(a){let b=a.toLowerCase().trim();return w.some(a=>b.startsWith(a+"("))}(c)){let b=function(a){let b=a.match(/^(\w+)\(([\s\S]+)\)$/);if(!b)return null;try{let a=b[2].trim();if(a.startsWith("[")&&a.endsWith("]"))return{m:b[1],a:JSON.parse(a)};if(/^-?\d+(\.\d+)?$/.test(a))return{m:b[1],a:[Number(a)]};if("true"===a||"false"===a)return{m:b[1],a:["true"===a]};if(a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))return{m:b[1],a:[a.slice(1,-1)]};let c=a.split(",").map(a=>a.trim()).map(a=>/^-?\d+(\.\d+)?$/.test(a)?Number(a):"true"===a||"false"===a?"true"===a:a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'")?a.slice(1,-1):a);return{m:b[1],a:c}}catch{return null}}(c);b&&"function"==typeof a[b.m]&&a[b.m](...b.a)}else{let b=c.trim();b&&!/[<>'"]/.test(b)?a.evalCommand(b):console.warn(`[GGB] Blocked potentially unsafe command: ${c.substring(0,50)}`)}}catch(a){console.warn(`[GGB] Failed: ${c}`,a)}}(n.current,H)},300)}catch(a){console.warn("[GGB] Reset failed",a)}},[H]),J=(0,e.useCallback)(async()=>{if(i&&!D){E(!0);try{await i()}finally{E(!1)}}},[i,D]),K=(0,e.useCallback)(async()=>{if(k&&!F&&await (0,v.confirmDialog)(l.geogebra.confirmDelete,{destructive:!0})){G(!0);try{await k()}catch{v.toast.error(l.geogebra.deleteFailed)}finally{G(!1)}}},[k,F,l]);return 0===H.length?null:(0,d.jsxs)("div",{className:`relative rounded-lg border bg-card ${h}`,children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b bg-muted/30",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"GeoGebra 动态演示"}),x&&(0,d.jsx)(o.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[i&&(0,d.jsxs)(u.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1",onClick:J,title:"重新生成",disabled:D||x,children:[D?(0,d.jsx)(o.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(s.RefreshCw,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:"重新生成"})]}),k&&(0,d.jsxs)(u.Button,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs gap-1 text-destructive hover:text-destructive",onClick:K,title:l.geogebra.delete,disabled:F||D,children:[F?(0,d.jsx)(o.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,d.jsx)(t.Trash2,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:l.geogebra.delete})]}),(0,d.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:I,title:"重置",disabled:x,children:(0,d.jsx)(r.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,d.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0",onClick:()=>C(a=>!a),title:B?"缩小":"放大",children:B?(0,d.jsx)(q,{className:"h-3.5 w-3.5"}):(0,d.jsx)(p,{className:"h-3.5 w-3.5"})})]})]}),(0,d.jsx)("div",{ref:m,style:{width:"100%"}}),x&&(0,d.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 rounded-b-lg",style:{top:37},children:(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,d.jsx)(o.Loader2,{className:"h-6 w-6 animate-spin text-primary"}),(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:"加载 GeoGebra..."})]})}),z&&(0,d.jsx)("div",{className:"flex items-center justify-center text-sm text-destructive",style:{minHeight:b},children:z})]})}],10395)},97521,43542,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=c,e=Object.defineProperty,f=(a,b,c)=>{let d;return(d="symbol"!=typeof b?b+"":b)in a?e(a,d,{enumerable:!0,configurable:!0,writable:!0,value:c}):a[d]=c};let g={x:0,y:0,width:0,height:0,unit:"px"},h=(a,b,c)=>Math.min(Math.max(a,b),c),i=(a,b)=>a===b||a.width===b.width&&a.height===b.height&&a.x===b.x&&a.y===b.y&&a.unit===b.unit;function j(a,b,c){return"%"===a.unit?{...g,...a,unit:"%"}:{unit:"%",x:a.x?a.x/b*100:0,y:a.y?a.y/c*100:0,width:a.width?a.width/b*100:0,height:a.height?a.height/c*100:0}}function k(a,b,c){return a.unit?"px"===a.unit?{...g,...a,unit:"px"}:{unit:"px",x:a.x?a.x*b/100:0,y:a.y?a.y*c/100:0,width:a.width?a.width*b/100:0,height:a.height?a.height*c/100:0}:{...g,...a,unit:"px"}}function l(a,b,c,d,e,f=0,g=0,h=d,i=e){let j={...a},k=Math.min(f,d),m=Math.min(g,e),n=Math.min(h,d),o=Math.min(i,e);b&&(b>1?(m=(k=g?g*b:k)/b,n=h*b):(k=(m=f?f/b:m)*b,o=i/b)),j.y<0&&(j.height=Math.max(j.height+j.y,m),j.y=0),j.x<0&&(j.width=Math.max(j.width+j.x,k),j.x=0);let p=d-(j.x+j.width);p<0&&(j.x=Math.min(j.x,d-k),j.width+=p);let q=e-(j.y+j.height);if(q<0&&(j.y=Math.min(j.y,e-m),j.height+=q),j.width<k&&(("sw"===c||"nw"==c)&&(j.x-=k-j.width),j.width=k),j.height<m&&(("nw"===c||"ne"==c)&&(j.y-=m-j.height),j.height=m),j.width>n&&(("sw"===c||"nw"==c)&&(j.x-=n-j.width),j.width=n),j.height>o&&(("nw"===c||"ne"==c)&&(j.y-=o-j.height),j.height=o),b){let a=j.width/j.height;if(a<b){let a=Math.max(j.width/b,m);("nw"===c||"ne"==c)&&(j.y-=a-j.height),j.height=a}else if(a>b){let a=Math.max(j.height*b,k);("sw"===c||"nw"==c)&&(j.x-=a-j.width),j.width=a}}return j}let m={capture:!0,passive:!1},n=0,o=class a extends d.PureComponent{constructor(){super(...arguments),f(this,"docMoveBound",!1),f(this,"mouseDownOnCrop",!1),f(this,"dragStarted",!1),f(this,"evData",{startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0}),f(this,"componentRef",(0,d.createRef)()),f(this,"mediaRef",(0,d.createRef)()),f(this,"resizeObserver"),f(this,"initChangeCalled",!1),f(this,"instanceId",`rc-${n++}`),f(this,"state",{cropIsActive:!1,newCropIsBeingDrawn:!1}),f(this,"onCropPointerDown",a=>{let{crop:b,disabled:c}=this.props,d=this.getBox();if(!b)return;let e=k(b,d.width,d.height);if(c)return;a.cancelable&&a.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let f=a.target.dataset.ord,g=a.clientX,h=a.clientY,i=e.x,j=e.y;if(f){let b=a.clientX-d.x,c=a.clientY-d.y,k=0,l=0;"ne"===f||"e"==f?(k=b-(e.x+e.width),l=c-e.y,i=e.x,j=e.y+e.height):"se"===f||"s"===f?(k=b-(e.x+e.width),l=c-(e.y+e.height),i=e.x,j=e.y):"sw"===f||"w"==f?(k=b-e.x,l=c-(e.y+e.height),i=e.x+e.width,j=e.y):("nw"===f||"n"==f)&&(k=b-e.x,l=c-e.y,i=e.x+e.width,j=e.y+e.height),g=i+d.x+k,h=j+d.y+l}this.evData={startClientX:g,startClientY:h,startCropX:i,startCropY:j,clientX:a.clientX,clientY:a.clientY,isResize:!!f,ord:f},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})}),f(this,"onComponentPointerDown",a=>{let{crop:b,disabled:c,locked:d,keepSelection:e,onChange:f}=this.props,g=this.getBox();if(c||d||e&&b)return;a.cancelable&&a.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});let h=a.clientX-g.x,i=a.clientY-g.y,l={unit:"px",x:h,y:i,width:0,height:0};this.evData={startClientX:a.clientX,startClientY:a.clientY,startCropX:h,startCropY:i,clientX:a.clientX,clientY:a.clientY,isResize:!0},this.mouseDownOnCrop=!0,f(k(l,g.width,g.height),j(l,g.width,g.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})}),f(this,"onDocPointerMove",a=>{let b,{crop:c,disabled:d,onChange:e,onDragStart:f}=this.props,g=this.getBox();if(d||!c||!this.mouseDownOnCrop)return;a.cancelable&&a.preventDefault(),this.dragStarted||(this.dragStarted=!0,f&&f(a));let{evData:h}=this;h.clientX=a.clientX,h.clientY=a.clientY,i(c,b=h.isResize?this.resizeCrop():this.dragCrop())||e(k(b,g.width,g.height),j(b,g.width,g.height))}),f(this,"onComponentKeyDown",b=>{let{crop:c,disabled:d,onChange:e,onComplete:f}=this.props;if(d)return;let g=b.key,i=!1;if(!c)return;let l=this.getBox(),m=this.makePixelCrop(l),n=(navigator.platform.match("Mac")?b.metaKey:b.ctrlKey)?a.nudgeStepLarge:b.shiftKey?a.nudgeStepMedium:a.nudgeStep;if("ArrowLeft"===g?(m.x-=n,i=!0):"ArrowRight"===g?(m.x+=n,i=!0):"ArrowUp"===g?(m.y-=n,i=!0):"ArrowDown"===g&&(m.y+=n,i=!0),i){b.cancelable&&b.preventDefault(),m.x=h(m.x,0,l.width-m.width),m.y=h(m.y,0,l.height-m.height);let a=k(m,l.width,l.height),c=j(m,l.width,l.height);e(a,c),f&&f(a,c)}}),f(this,"onHandlerKeyDown",(b,c)=>{var d,e;let f,{aspect:g=0,crop:h,disabled:m,minWidth:n=0,minHeight:o=0,maxWidth:p,maxHeight:q,onChange:r,onComplete:s}=this.props,t=this.getBox();if(m||!h||"ArrowUp"!==b.key&&"ArrowDown"!==b.key&&"ArrowLeft"!==b.key&&"ArrowRight"!==b.key)return;b.stopPropagation(),b.preventDefault();let u=(navigator.platform.match("Mac")?b.metaKey:b.ctrlKey)?a.nudgeStepLarge:b.shiftKey?a.nudgeStepMedium:a.nudgeStep,v=l((d=k(h,t.width,t.height),e=b.key,f={...d},"ArrowLeft"===e?"nw"===c?(f.x-=u,f.y-=u,f.width+=u,f.height+=u):"w"===c?(f.x-=u,f.width+=u):"sw"===c?(f.x-=u,f.width+=u,f.height+=u):"ne"===c?(f.y+=u,f.width-=u,f.height-=u):"e"===c?f.width-=u:"se"===c&&(f.width-=u,f.height-=u):"ArrowRight"===e&&("nw"===c?(f.x+=u,f.y+=u,f.width-=u,f.height-=u):"w"===c?(f.x+=u,f.width-=u):"sw"===c?(f.x+=u,f.width-=u,f.height-=u):"ne"===c?(f.y-=u,f.width+=u,f.height+=u):"e"===c?f.width+=u:"se"===c&&(f.width+=u,f.height+=u)),"ArrowUp"===e?"nw"===c?(f.x-=u,f.y-=u,f.width+=u,f.height+=u):"n"===c?(f.y-=u,f.height+=u):"ne"===c?(f.y-=u,f.width+=u,f.height+=u):"sw"===c?(f.x+=u,f.width-=u,f.height-=u):"s"===c?f.height-=u:"se"===c&&(f.width-=u,f.height-=u):"ArrowDown"===e&&("nw"===c?(f.x+=u,f.y+=u,f.width-=u,f.height-=u):"n"===c?(f.y+=u,f.height-=u):"ne"===c?(f.y+=u,f.width-=u,f.height-=u):"sw"===c?(f.x-=u,f.width+=u,f.height+=u):"s"===c?f.height+=u:"se"===c&&(f.width+=u,f.height+=u)),f),g,c,t.width,t.height,n,o,p,q);if(!i(h,v)){let a=j(v,t.width,t.height);r(v,a),s&&s(v,a)}}),f(this,"onDocPointerDone",a=>{let{crop:b,disabled:c,onComplete:d,onDragEnd:e}=this.props,f=this.getBox();this.unbindDocMove(),!(c||!b)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,e&&e(a),d&&d(k(b,f.width,f.height),j(b,f.width,f.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))}),f(this,"onDragFocus",()=>{var a;null==(a=this.componentRef.current)||a.scrollTo(0,0)})}get document(){return document}getBox(){let a=this.mediaRef.current;if(!a)return{x:0,y:0,width:0,height:0};let{x:b,y:c,width:d,height:e}=a.getBoundingClientRect();return{x:b,y:c,width:d,height:e}}componentDidUpdate(a){let{crop:b,onComplete:c}=this.props;if(c&&!a.crop&&b){let{width:a,height:d}=this.getBox();a&&d&&c(k(b,a,d),j(b,a,d))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,m),this.document.addEventListener("pointerup",this.onDocPointerDone,m),this.document.addEventListener("pointercancel",this.onDocPointerDone,m),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,m),this.document.removeEventListener("pointerup",this.onDocPointerDone,m),this.document.removeEventListener("pointercancel",this.onDocPointerDone,m),this.docMoveBound=!1)}getCropStyle(){let{crop:a}=this.props;if(a)return{top:`${a.y}${a.unit}`,left:`${a.x}${a.unit}`,width:`${a.width}${a.unit}`,height:`${a.height}${a.unit}`}}dragCrop(){let{evData:a}=this,b=this.getBox(),c=this.makePixelCrop(b),d=a.clientX-a.startClientX,e=a.clientY-a.startClientY;return c.x=h(a.startCropX+d,0,b.width-c.width),c.y=h(a.startCropY+e,0,b.height-c.height),c}getPointRegion(a,b,c,d){let e,{evData:f}=this,g=f.clientX-a.x,h=f.clientY-a.y;return e=d&&b?"nw"===b||"n"===b||"ne"===b:h<f.startCropY,(c&&b?"nw"===b||"w"===b||"sw"===b:g<f.startCropX)?e?"nw":"sw":e?"ne":"se"}resolveMinDimensions(a,b,c=0,d=0){let e=Math.min(c,a.width),f=Math.min(d,a.height);return b&&(e||f)?b>1?e?[e,e/b]:[f*b,f]:f?[f*b,f]:[e,e/b]:[e,f]}resizeCrop(){let{evData:b}=this,{aspect:c=0,maxWidth:d,maxHeight:e}=this.props,f=this.getBox(),[g,i]=this.resolveMinDimensions(f,c,this.props.minWidth,this.props.minHeight),j=this.makePixelCrop(f),k=this.getPointRegion(f,b.ord,g,i),m=b.ord||k,n=b.clientX-b.startClientX,o=b.clientY-b.startClientY;(g&&"nw"===m||"w"===m||"sw"===m)&&(n=Math.min(n,-g)),(i&&"nw"===m||"n"===m||"ne"===m)&&(o=Math.min(o,-i));let p={unit:"px",x:0,y:0,width:0,height:0};"ne"===k?(p.x=b.startCropX,p.width=n,c?p.height=p.width/c:p.height=Math.abs(o),p.y=b.startCropY-p.height):"se"===k?(p.x=b.startCropX,p.y=b.startCropY,p.width=n,c?p.height=p.width/c:p.height=o):"sw"===k?(p.x=b.startCropX+n,p.y=b.startCropY,p.width=Math.abs(n),c?p.height=p.width/c:p.height=o):"nw"===k&&(p.x=b.startCropX+n,p.width=Math.abs(n),c?(p.height=p.width/c,p.y=b.startCropY-p.height):(p.height=Math.abs(o),p.y=b.startCropY+o));let q=l(p,c,k,f.width,f.height,g,i,d,e);return c||a.xyOrds.indexOf(m)>-1?j=q:a.xOrds.indexOf(m)>-1?(j.x=q.x,j.width=q.width):a.yOrds.indexOf(m)>-1&&(j.y=q.y,j.height=q.height),j.x=h(j.x,0,f.width-j.width),j.y=h(j.y,0,f.height-j.height),j}renderCropSelection(){let{ariaLabels:b=a.defaultProps.ariaLabels,disabled:c,locked:e,renderSelectionAddon:f,ruleOfThirds:g,crop:h}=this.props,i=this.getCropStyle();if(h)return d.default.createElement("div",{style:i,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":b.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!c&&!e&&d.default.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},d.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),d.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),d.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),d.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":b.nwDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"nw"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":b.nDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"n"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":b.neDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"ne"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":b.eDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"e"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":b.seDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"se"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":b.sDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"s"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":b.swDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"sw"),role:"button"}),d.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":b.wDragHandle,onKeyDown:a=>this.onHandlerKeyDown(a,"w"),role:"button"})),f&&d.default.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:a=>a.stopPropagation()},f(this.state)),g&&d.default.createElement(d.default.Fragment,null,d.default.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),d.default.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(a){return k({...g,...this.props.crop||{}},a.width,a.height)}render(){let{aspect:a,children:b,circularCrop:c,className:e,crop:f,disabled:g,locked:h,style:i,ruleOfThirds:j}=this.props,{cropIsActive:k,newCropIsBeingDrawn:l}=this.state,m=f?this.renderCropSelection():null,n=((...a)=>a.filter(a=>a&&"string"==typeof a).join(" "))("ReactCrop",e,k&&"ReactCrop--active",g&&"ReactCrop--disabled",h&&"ReactCrop--locked",l&&"ReactCrop--new-crop",f&&a&&"ReactCrop--fixed-aspect",f&&c&&"ReactCrop--circular-crop",f&&j&&"ReactCrop--rule-of-thirds",!this.dragStarted&&f&&!f.width&&!f.height&&"ReactCrop--invisible-crop",c&&"ReactCrop--no-animate");return d.default.createElement("div",{ref:this.componentRef,className:n,style:i},d.default.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},b),f?d.default.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},d.default.createElement("defs",null,d.default.createElement("mask",{id:`hole-${this.instanceId}`},d.default.createElement("rect",{width:"100%",height:"100%",fill:"white"}),c?d.default.createElement("ellipse",{cx:`${f.x+f.width/2}${f.unit}`,cy:`${f.y+f.height/2}${f.unit}`,rx:`${f.width/2}${f.unit}`,ry:`${f.height/2}${f.unit}`,fill:"black"}):d.default.createElement("rect",{x:`${f.x}${f.unit}`,y:`${f.y}${f.unit}`,width:`${f.width}${f.unit}`,height:`${f.height}${f.unit}`,fill:"black"}))),d.default.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,m)}};f(o,"xOrds",["e","w"]),f(o,"yOrds",["n","s"]),f(o,"xyOrds",["nw","ne","se","sw"]),f(o,"nudgeStep",1),f(o,"nudgeStepMedium",10),f(o,"nudgeStepLarge",100),f(o,"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=a.i(99570),q=a.i(14574),r=a.i(33508),s=a.i(50194);async function t(a,b){let{naturalWidth:c,naturalHeight:d}=a;return Promise.all(b.map(b=>new Promise((e,f)=>{let g=document.createElement("canvas"),h=Math.round(b.x*c),i=Math.round(b.y*d);g.width=Math.max(1,Math.round(b.width*c)),g.height=Math.max(1,Math.round(b.height*d));let j=g.getContext("2d");j?(j.drawImage(a,h,i,g.width,g.height,0,0,g.width,g.height),g.toBlob(a=>a?e(a):f(Error("Canvas is empty")),"image/jpeg",.95)):f(Error("Canvas is not supported"))})))}let u=(0,c.forwardRef)(function({imageSrc:a,regions:d,onChange:e},f){let{t:g}=(0,s.useLanguage)(),h=(0,c.useRef)(null),i=(0,c.useRef)(null),[j,k]=(0,c.useState)(null),l=a=>{let b=h.current.getBoundingClientRect();return{x:(a.clientX-b.left)/b.width,y:(a.clientY-b.top)/b.height}},m=()=>{j&&j.width>=.02&&j.height>=.02&&e([...d,j]),i.current=null,k(null)},n=a=>({left:`${100*a.x}%`,top:`${100*a.y}%`,width:`${100*a.width}%`,height:`${100*a.height}%`});return(0,b.jsxs)("div",{className:"relative inline-block select-none",children:[(0,b.jsx)("img",{ref:f,src:a,alt:"",draggable:!1,style:{maxHeight:"65vh",maxWidth:"100%",objectFit:"contain"},className:"block"}),(0,b.jsxs)("div",{ref:h,className:"absolute inset-0 cursor-crosshair",style:{touchAction:"none"},onPointerDown:a=>{0===a.button&&(h.current?.setPointerCapture(a.pointerId),i.current=l(a),k(null))},onPointerMove:a=>{var b,c,d,e;let f,g,h;if(!i.current)return;let j=l(a);k((b=i.current.x,c=i.current.y,d=j.x,e=j.y,g=(f=a=>Math.min(1,Math.max(0,a)))(Math.min(b,d)),h=f(Math.min(c,e)),{x:g,y:h,width:f(Math.max(b,d))-g,height:f(Math.max(c,e))-h}))},onPointerUp:m,onPointerCancel:m,children:[d.map((a,c)=>(0,b.jsxs)("div",{className:"absolute border-2 border-sky-400 bg-sky-400/15",style:n(a),children:[(0,b.jsx)("span",{className:"absolute left-0 top-0 bg-sky-500 px-1.5 text-xs font-bold text-white",children:c+1}),(0,b.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":g.batchImport.removeRegion.replace("{index}",String(c+1)),onPointerDown:a=>a.stopPropagation(),onClick:()=>e(d.filter((a,b)=>b!==c)),children:(0,b.jsx)(r.X,{className:"h-3 w-3"})})]},c)),j&&(0,b.jsx)("div",{className:"absolute border-2 border-dashed border-yellow-300 bg-yellow-300/10",style:n(j)})]})]})});async function v(a,b=1,c=1920,d=.8){return new Promise((e,f)=>{let g=new FileReader;g.onload=g=>{let h=new Image;h.onload=()=>{let g=document.createElement("canvas"),i=g.getContext("2d");if(!i)return void f(Error("无法获取 Canvas 上下文"));let j=h.width,k=h.height;j>c&&(k=k*c/j,j=c),g.width=j,g.height=k,i.drawImage(h,0,0,j,k);let l=d,m=g.toDataURL("image/jpeg",l),n=3*m.length/4/1024/1024;for(;n>b&&l>.1;){l-=.1;let a=3*(m=g.toDataURL("image/jpeg",l)).length/4/1024/1024;if(console.log(`压缩质量: ${l.toFixed(1)}, 大小: ${a.toFixed(2)}MB`),a<=b)break}console.log(`原始文件: ${(a.size/1024/1024).toFixed(2)}MB, 压缩后: ${(3*m.length/4/1024/1024).toFixed(2)}MB`),e(m)},h.onerror=()=>f(Error("图片加载失败")),h.src=g.target?.result},g.onerror=()=>f(Error("文件读取失败")),g.readAsDataURL(a)})}async function w(a){let b=a.size/1024/1024;return(console.log(`文件大小: ${b.toFixed(2)}MB`),b>1)?(console.log("文件超过阈值,开始压缩..."),await v(a,1)):(console.log("文件大小合适,无需压缩"),new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(d.result),d.onerror=c,d.readAsDataURL(a)}))}a.s(["ImageCropper",0,function({imageSrc:a,open:d,onClose:e,onCropComplete:f,onMultiCropComplete:g}){let{t:h}=(0,s.useLanguage)(),[i,j]=(0,c.useState)(),[k,l]=(0,c.useState)(),m=(0,c.useRef)(null),[n,r]=(0,c.useState)("single"),[v,w]=(0,c.useState)({src:a,regions:[]}),x=v.src===a?v.regions:[],y=b=>w({src:a,regions:b}),z=(0,c.useRef)(null),A=async()=>{if(z.current&&0!==x.length&&g)try{g(await t(z.current,x)),y([])}catch(a){console.error(a)}},B=async(a,b)=>{let c=document.createElement("canvas"),d=a.naturalWidth/a.width,e=a.naturalHeight/a.height;c.width=b.width*d,c.height=b.height*e;let f=c.getContext("2d");return f?(f.drawImage(a,b.x*d,b.y*e,b.width*d,b.height*e,0,0,b.width*d,b.height*e),new Promise((a,b)=>{c.toBlob(c=>{c?a(c):b(Error("Canvas is empty"))},"image/jpeg")})):null},C=async()=>{if(k&&m.current)try{let a=await B(m.current,k);a&&f(a)}catch(a){console.error(a)}else if(!k&&a)try{let b=await fetch(a),c=await b.blob();f(c)}catch(a){console.error(a)}};return(0,b.jsx)(q.Dialog,{open:d,onOpenChange:a=>!a&&e(),children:(0,b.jsxs)(q.DialogContent,{className:"max-w-3xl h-[90vh] flex flex-col p-0 gap-0",children:[(0,b.jsx)(q.DialogHeader,{className:"p-4 border-b shrink-0",children:(0,b.jsx)(q.DialogTitle,{children:h.common.cropper?.title||"Crop Image"})}),(0,b.jsx)("div",{className:"flex-1 bg-black w-full overflow-auto flex items-center justify-center p-4",children:"multi"===n?(0,b.jsx)(u,{ref:z,imageSrc:a,regions:x,onChange:y}):(0,b.jsx)(o,{crop:i,onChange:(a,b)=>j(b),onComplete:a=>l(a),className:"max-h-full",children:(0,b.jsx)("img",{ref:m,alt:"Crop me",src:a,onLoad:function(a){let{width:b,height:c}=a.currentTarget;j({unit:"%",x:0,y:0,width:100,height:100}),l({unit:"px",x:0,y:0,width:b,height:c})},style:{maxHeight:"70vh",maxWidth:"100%",objectFit:"contain"}})})}),(0,b.jsxs)("div",{className:"p-4 border-t bg-background shrink-0 space-y-3",children:[g&&(0,b.jsx)("div",{className:"grid grid-cols-2 gap-1 rounded-md bg-muted p-1 sm:w-80",children:["single","multi"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>r(a),className:`rounded px-3 py-1.5 text-sm font-medium transition-colors ${n===a?"bg-background shadow-sm":"text-muted-foreground"}`,children:"single"===a?h.batchImport.singleMode:h.batchImport.multiMode},a))}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"multi"===n?`${h.batchImport.hint} ${h.batchImport.regionCount.replace("{count}",String(x.length))}`:h.common.cropper?.hint||"💡 Drag to adjust crop area"}),(0,b.jsxs)("div",{className:"flex gap-2 justify-end",children:["multi"===n&&x.length>0&&(0,b.jsx)(p.Button,{variant:"ghost",onClick:()=>y([]),children:h.batchImport.clear}),(0,b.jsx)(p.Button,{variant:"outline",onClick:e,children:h.common.cancel||"Cancel"}),"multi"===n?(0,b.jsx)(p.Button,{onClick:A,disabled:0===x.length,children:h.batchImport.start.replace("{count}",String(x.length))}):(0,b.jsx)(p.Button,{onClick:C,children:h.common.confirm||"Confirm"})]})]})]})]})})}],97521),a.s(["processImageFile",0,w],43542)},51795,a=>{"use strict";a.s(["getDefaultPaperLevel",0,function(a){return"number"!=typeof a||!Number.isInteger(a)||a<1||a>5?null:a<=3?"a":"b"}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0uemk57._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[210,a=>{"use strict";let b=(0,a.i(70106).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],210)},92e3,a=>{"use strict";let b=(0,a.i(70106).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],92e3)},41710,a=>{"use strict";let b=(0,a.i(70106).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",0,b],41710)},84362,17545,a=>{"use strict";var b=a.i(70106);let c=(0,b.default)("pen-tool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]]);a.s(["PenTool",0,c],84362);let d=(0,b.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);a.s(["Layers",0,d],17545)},24669,a=>{"use strict";let b=(0,a.i(70106).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);a.s(["TrendingUp",0,b],24669)},95001,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(99570),e=a.i(210);a.s(["BackButton",0,function({fallbackUrl:a,className:f}){let g=(0,c.useRouter)();return(0,b.jsx)(d.Button,{variant:"ghost",size:"icon",onClick:()=>{g.push(a)},className:f,children:(0,b.jsx)(e.ArrowLeft,{className:"h-5 w-5"})})}])},91119,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.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",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},51538,a=>{"use strict";var b=a.i(87924),c=a.i(95001),d=a.i(68114);a.s(["PageHeader",0,function({title:a,description:e,backHref:f,actions:g,titleAddon:h,className:i}){return(0,b.jsxs)("div",{className:(0,d.cn)("flex items-start gap-3",i),children:[f&&(0,b.jsx)(c.BackButton,{fallbackUrl:f,className:"-ml-2 shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("h1",{className:"truncate text-2xl font-bold tracking-tight sm:text-3xl",children:a}),h]}),e&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground sm:text-base",children:e})]}),g&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:g})]})}])},74484,a=>{"use strict";var b=a.i(72131),c=a.i(50194);a.s(["usePageTitle",0,function(...a){let{t:d}=(0,c.useLanguage)(),e=[d.pageTitle.base,...a.map(a=>"string"==typeof a?a.trim():"").filter(a=>a.length>0)].join("-");(0,b.useEffect)(()=>{document.title=e},[e])}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0zj7dlu._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[210,a=>{"use strict";let b=(0,a.i(70106).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);a.s(["ArrowLeft",0,b],210)},41710,a=>{"use strict";let b=(0,a.i(70106).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",0,b],41710)},8406,a=>{"use strict";let b=(0,a.i(70106).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"}]]);a.s(["Sparkles",0,b],8406)},31368,a=>{"use strict";var b=a.i(87924);let c=(0,a.i(70106).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 d=a.i(50194),e=a.i(68114);let f=[1,2,3,4,5];a.s(["DifficultyStars",0,function({value:a,onChange:g,disabled:h,size:i="sm",showUnrated:j=!0,className:k}){let{t:l}=(0,d.useLanguage)(),m=a??0,n="sm"===i?"h-3.5 w-3.5":"h-5 w-5",o=m?l.difficulty.starsLabel.replace("{n}",String(m)):l.difficulty.unrated;return g?(0,b.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-0.5",k),role:"group","aria-label":`${l.difficulty.label}:${o}`,title:l.difficulty.clearHint,children:[f.map(a=>(0,b.jsx)("button",{type:"button",disabled:h,onClick:()=>g(a===m?null:a),"aria-label":l.difficulty.setStars.replace("{n}",String(a)),"aria-pressed":a<=m,className:"rounded p-0.5 hover:bg-muted disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,b.jsx)(c,{className:(0,e.cn)(n,a<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/40")})},a)),!m&&j&&(0,b.jsx)("span",{className:"ml-1 text-xs text-muted-foreground",children:l.difficulty.unrated})]}):m?(0,b.jsx)("span",{className:(0,e.cn)("inline-flex items-center",k),role:"img","aria-label":`${l.difficulty.label}:${o}`,title:o,children:f.map(a=>(0,b.jsx)(c,{className:(0,e.cn)(n,a<=m?"fill-amber-400 text-amber-400":"text-muted-foreground/30"),"aria-hidden":!0},a))}):j?(0,b.jsx)("span",{className:(0,e.cn)("text-xs text-muted-foreground",k),children:l.difficulty.unrated}):null}],31368)},22418,a=>{"use strict";var b=a.i(87924),c=a.i(16201),d=a.i(41710),e=a.i(69520),f=a.i(86304),g=a.i(50194);let h={new:{className:"bg-warning/15 text-amber-700 dark:text-warning",icon:d.Clock},reviewing:{className:"bg-primary/10 text-primary",icon:e.RefreshCw},mastered:{className:"bg-success/15 text-success",icon:c.CheckCircle}};a.s(["MASTERY_STATUS_BORDER",0,{new:"border-l-warning/70",reviewing:"border-l-primary/60",mastered:"border-l-success/70"},"MasteryStatusBadge",0,function({status:a,className:c=""}){let{t:d}=(0,g.useLanguage)(),{className:e,icon:i}=h[a],j="mastered"===a?d.notebook.mastered:"reviewing"===a?d.notebook.reviewing:d.notebook.review;return(0,b.jsx)(f.Badge,{variant:"secondary",className:`${e} ${c}`,children:(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(i,{className:"h-3 w-3"})," ",j]})})}])},99814,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(33508),e=a.i(86304),f=a.i(66718),g=a.i(91938);a.s(["TagInput",0,function({value:a=[],onChange:h,placeholder:i="Enter tags...",className:j="",enterHint:k,subject:l,gradeStage:m}){let[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)([]),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(0),v=(0,c.useRef)(null),w=(0,c.useRef)(null);(0,c.useEffect)(()=>{n.trim()?x(n):(q([]),s(!1))},[n,l,m]);let x=async b=>{try{let c=new URLSearchParams({q:b});l&&c.append("subject",l),m&&c.append("stage",m);let d=((await g.apiClient.get(`/api/tags/suggestions?${c.toString()}`)).suggestions||[]).filter(b=>!a.includes(b));q(d.slice(0,20)),s(d.length>0),u(0)}catch(a){console.error("Failed to fetch suggestions:",a)}},y=b=>{b.trim()&&!a.includes(b.trim())&&(h([...a,b.trim()]),o(""),q([]),s(!1),u(0))},z=b=>{h(a.filter(a=>a!==b))};return(0,c.useEffect)(()=>{let a=a=>{!w.current||w.current.contains(a.target)||v.current?.contains(a.target)||s(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]),(0,b.jsxs)("div",{className:`relative ${j}`,children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 p-2 border rounded-lg bg-background min-h-[42px]",children:[a.map(a=>(0,b.jsxs)(e.Badge,{variant:"secondary",className:"flex items-center gap-1 px-2 py-1",children:[a,(0,b.jsx)("button",{type:"button",onClick:()=>z(a),className:"hover:text-destructive ml-1",children:(0,b.jsx)(d.X,{className:"h-3 w-3"})})]},a)),(0,b.jsx)(f.Input,{ref:v,type:"text",value:n,onChange:a=>o(a.target.value),onKeyDown:b=>{"Enter"===b.key?(b.preventDefault(),t>=0&&p[t]?y(p[t]):n.trim()&&y(n)):"ArrowDown"===b.key?(b.preventDefault(),u(a=>Math.min(a+1,p.length-1))):"ArrowUp"===b.key?(b.preventDefault(),u(a=>Math.max(a-1,0))):"Escape"===b.key?(s(!1),u(0)):"Backspace"===b.key&&!n&&a.length>0&&z(a[a.length-1])},onFocus:()=>{p.length>0&&s(!0)},placeholder:0===a.length?i:"",className:"flex-1 min-w-[120px] border-none focus-visible:ring-0 focus-visible:ring-offset-0 h-8 px-0"})]}),r&&p.length>0&&(0,b.jsx)("div",{ref:w,className:"absolute z-50 w-full mt-1 bg-popover border rounded-md shadow-md max-h-48 overflow-y-auto",children:p.map((a,c)=>(0,b.jsx)("div",{className:`px-3 py-2 cursor-pointer hover:bg-accent ${c===t?"bg-accent":""}`,onClick:()=>y(a),onMouseEnter:()=>u(c),children:a},a))}),n&&!r&&(0,b.jsx)("div",{className:"text-xs text-muted-foreground mt-1",children:k?`${k} "${n}"`:`Press Enter to create "${n}"`})]})}])},91119,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["Card",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card",className:(0,c.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...d})},"CardContent",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-content",className:(0,c.cn)("px-6",a),...d})},"CardDescription",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-description",className:(0,c.cn)("text-muted-foreground text-sm",a),...d})},"CardHeader",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-header",className:(0,c.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",a),...d})},"CardTitle",0,function({className:a,...d}){return(0,b.jsx)("div",{"data-slot":"card-title",className:(0,c.cn)("leading-none font-semibold",a),...d})}])},79834,a=>{"use strict";var b=a.i(87924),c=a.i(68114);a.s(["EmptyState",0,function({icon:a,title:d,description:e,action:f,className:g}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center justify-center rounded-2xl border border-dashed bg-card/50 px-6 py-14 text-center",g),children:[(0,b.jsx)("div",{className:"mb-4 flex h-14 w-14 items-center justify-center rounded-2xl bg-accent text-accent-foreground",children:(0,b.jsx)(a,{className:"h-7 w-7"})}),(0,b.jsx)("p",{className:"font-medium",children:d}),e&&(0,b.jsx)("p",{className:"mt-1 max-w-sm text-sm text-muted-foreground",children:e}),f&&(0,b.jsx)("div",{className:"mt-5",children:f})]})}])},6376,a=>{"use strict";var b=a.i(87924),c=a.i(96221);a.s(["PageLoading",0,function({label:a}){return(0,b.jsxs)("div",{className:"flex min-h-[50vh] flex-col items-center justify-center gap-3 text-muted-foreground",children:[(0,b.jsx)(c.Loader2,{className:"h-7 w-7 animate-spin text-primary"}),a&&(0,b.jsx)("p",{className:"text-sm",children:a})]})}])},57292,a=>{"use strict";a.i(86705),a.s(["inferSubjectFromName",0,function(a){if(!a)return null;let b=a.toLowerCase();return b.includes("math")||b.includes("数学")?"math":b.includes("physics")||b.includes("物理")?"physics":b.includes("chemistry")||b.includes("化学")?"chemistry":b.includes("biology")||b.includes("生物")?"biology":b.includes("english")||b.includes("英语")?"english":b.includes("chinese")||b.includes("语文")?"chinese":b.includes("history")||b.includes("历史")?"history":b.includes("geography")||b.includes("地理")?"geography":b.includes("politics")||b.includes("政治")?"politics":null}])},92883,a=>{"use strict";function b(a){return"not_attempted"===a||"wrong_attempt"===a||"unknown"===a?a:"unknown"}a.s(["getMistakeStatusLabel",0,function(a,c="zh"){return("en"===c?{not_attempted:"Not attempted",wrong_attempt:"Wrong attempt",unknown:"Unknown"}:{not_attempted:"不会做",wrong_attempt:"做错了",unknown:"未判断"})[b(a)]},"normalizeMistakeStatusForSave",0,function(a,c){return(c||"").trim()?"wrong_attempt":b(a)}])},74484,a=>{"use strict";var b=a.i(72131),c=a.i(50194);a.s(["usePageTitle",0,function(...a){let{t:d}=(0,c.useLanguage)(),e=[d.pageTitle.base,...a.map(a=>"string"==typeof a?a.trim():"").filter(a=>a.length>0)].join("-");(0,b.useEffect)(()=>{document.title=e},[e])}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_11ut-6_._.js.map
|