docs-i18n 0.10.0 → 0.11.0
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/admin/app/lib/auth-client.ts +21 -0
- package/admin/app/lib/auth.server.ts +62 -0
- package/admin/app/routeTree.gen.ts +21 -3
- package/admin/app/routes/index.tsx +68 -8
- package/admin/app/routes/login.tsx +207 -0
- package/admin/app/server.ts +23 -0
- package/admin/app/styles.css +146 -0
- package/admin/app/worker.ts +18 -0
- package/admin/dist/client/assets/auth-client-DqJZaFZR.js +3 -0
- package/admin/dist/client/assets/login-CQjkiBAF.js +1 -0
- package/admin/dist/client/assets/main-bc5tcdGg.js +18 -0
- package/admin/dist/client/assets/routes-CTPOG_v1.js +3 -0
- package/admin/dist/client/assets/{styles-DJ6QEJmN.css → styles-zS0BbO7e.css} +1 -1
- package/admin/dist/client/assets/useNavigate-CEOVvMjz.js +1 -0
- package/admin/dist/server/assets/{react-dom-CpO9xk_L.js → __tanstack-start-server-fn-resolver-qK0Yfvti.js} +83 -507
- package/admin/dist/server/assets/_tanstack-start-manifest_v-BgMVPPt2.js +21 -0
- package/admin/dist/server/assets/adapter-DjXlUL1J.js +2253 -0
- package/admin/dist/server/assets/auth-client-CoUpyQIM.js +807 -0
- package/admin/dist/server/assets/auth-dSAIPjBw.js +72 -0
- package/admin/dist/server/assets/auth.server-BLVDnTCZ.js +31352 -0
- package/admin/dist/server/assets/bun-sqlite-dialect-C8OaCWSL-BNNY-FoT.js +154 -0
- package/admin/dist/server/assets/compiled-query-CnFG_BVV.js +6967 -0
- package/admin/dist/server/assets/d1-sqlite-dialect-sYHNqBte-Bjz-cybU.js +115 -0
- package/admin/dist/server/assets/dist-C3-e8E2B.js +215 -0
- package/admin/dist/server/assets/dist-CUzFWZag.js +6039 -0
- package/admin/dist/server/assets/{init-DJr2glb3.js → dist-DBv71kqn.js} +21 -381
- package/admin/dist/server/assets/error-CASJ5tIm.js +457 -0
- package/admin/dist/server/assets/error-codes-BhMTGvV6.js +1153 -0
- package/admin/dist/server/assets/init-CJJUsPDL.js +49 -0
- package/admin/dist/server/assets/job-manager-D9Ab9hgu.js +179 -0
- package/admin/dist/server/assets/{jobs-bQfYqSk7.js → jobs-DrEe9YOj.js} +18 -5
- package/admin/dist/server/assets/kysely-adapter-YC8RFPyc.js +2 -0
- package/admin/dist/server/assets/login-SqzTMYOZ.js +228 -0
- package/admin/dist/server/assets/migrator-ZpVZslbq.js +2926 -0
- package/admin/dist/server/assets/{misc-DOk3t9vs.js → misc-BSoYldBT.js} +22 -9
- package/admin/dist/server/assets/{models-CBb8Owe5.js → models-CoviNHUP.js} +1 -1
- package/admin/dist/server/assets/node-sqlite-dialect-BJIaP6lL.js +154 -0
- package/admin/dist/server/assets/{router-DlU_fGDK.js → router-D-82slI-.js} +23 -11
- package/admin/dist/server/assets/{routes-BcfX6iub.js → routes-B1pNmxF3.js} +43 -29
- package/admin/dist/server/assets/{routes-pIM0fgUO.js → routes-C9huiZHw.js} +56 -22
- package/admin/dist/server/assets/sqlite-adapter-CL2EidjD.js +69 -0
- package/admin/dist/server/assets/{start-BS52hm79.js → start-BiybVoR2.js} +1 -1
- package/admin/dist/server/assets/status-B1AGLvHn.js +162 -0
- package/admin/dist/server/assets/status-D7PU72hm.js +262 -0
- package/admin/dist/server/assets/string-B4XlckmJ.js +6 -0
- package/admin/dist/server/assets/useNavigate-0H08s_Q2.js +29 -0
- package/admin/dist/server/assets/useRouter-BXJvr8to.js +508 -0
- package/admin/dist/server/server.js +70 -90
- package/admin/package.json +6 -1
- package/admin/server/functions/auth.ts +89 -0
- package/admin/server/functions/jobs.ts +30 -2
- package/admin/server/functions/misc.ts +25 -5
- package/admin/server/functions/status.ts +52 -3
- package/admin/server/index.ts +1 -1
- package/admin/server/init.ts +21 -9
- package/admin/server/services/d1-status.ts +282 -0
- package/admin/vite.config.ts +29 -15
- package/admin/wrangler.jsonc +16 -0
- package/package.json +1 -1
- package/template/content/docs-i18n/en/cli.md +9 -5
- package/template/content/docs-i18n/en/deployment.md +85 -68
- package/template/dist/client/assets/{Doc-CbmLeLjl.js → Doc-BKO69_nz.js} +1 -1
- package/template/dist/client/assets/{DocsLayout-ERG7nrAc.js → DocsLayout-BGugXxEQ.js} +1 -1
- package/template/dist/client/assets/{FileTabs-CCynw0nL.js → FileTabs-4fZriOj4.js} +1 -1
- package/template/dist/client/assets/{Footer-l6Y8-ltB.js → Footer-DYh1AfWA.js} +1 -1
- package/template/dist/client/assets/{FrameworkContent-pNf68F7f.js → FrameworkContent-rVvjxASn.js} +1 -1
- package/template/dist/client/assets/{MarkdownHeadingContext-6I862CKH.js → MarkdownHeadingContext-CdvUDZFU.js} +4 -4
- package/template/dist/client/assets/{PostNotFound-ScC0039d.js → PostNotFound-WoSYGsGu.js} +1 -1
- package/template/dist/client/assets/{_basePickBy-B-GcvGxW.js → _basePickBy-Dd7GuR7A.js} +1 -1
- package/template/dist/client/assets/{_baseUniq-C1WySGZQ.js → _baseUniq-DMxQLGFI.js} +1 -1
- package/template/dist/client/assets/_lang-3AqGszEy.js +1 -0
- package/template/dist/client/assets/_lang._project-COkrIqzH.js +1 -0
- package/template/dist/client/assets/_lang._project._version-B8vRZczu.js +1 -0
- package/template/dist/client/assets/{_lang._project._version.docs-aw08dKvN.js → _lang._project._version.docs-DokNGgvU.js} +1 -1
- package/template/dist/client/assets/{_lang._project._version.docs._-B4Vb_S0V.js → _lang._project._version.docs._-CXCNZzOb.js} +1 -1
- package/template/dist/client/assets/_lang._project._version.docs._-DR0WSQEb.js +1 -0
- package/template/dist/client/assets/_lang._project._version.docs.framework._framework._-C_Grro8r.js +1 -0
- package/template/dist/client/assets/{_lang._project._version.docs.framework._framework.index-DInYPTXM.js → _lang._project._version.docs.framework._framework.index-DsYjXRdj.js} +1 -1
- package/template/dist/client/assets/{_lang._project._version.docs.framework.index-B7EvJmBI.js → _lang._project._version.docs.framework.index-DQX1lBi3.js} +1 -1
- package/template/dist/client/assets/{_lang._project.docs-4oX3ADgu.js → _lang._project.docs-DsYQj9jI.js} +1 -1
- package/template/dist/client/assets/_lang._project.docs._-DlM_D6DD.js +1 -0
- package/template/dist/client/assets/{_lang._project.docs._-emq0IsQw.js → _lang._project.docs._-l2tTjx80.js} +1 -1
- package/template/dist/client/assets/_lang.blog-CEwEtalL.js +1 -0
- package/template/dist/client/assets/_lang.blog-D6YGC3tK.js +1 -0
- package/template/dist/client/assets/_lang.blog._-DgHu4oLy.js +1 -0
- package/template/dist/client/assets/{_lang.blog._-DErizs7q.js → _lang.blog._-Umz18sQE.js} +1 -1
- package/template/dist/client/assets/_lang.blog.index-C8LKUFtD.js +1 -0
- package/template/dist/client/assets/{_lang.blog.index-DZDuDkQr.js → _lang.blog.index-DzUqpOBE.js} +1 -1
- package/template/dist/client/assets/{_lang.docs-CQK0rfqt.js → _lang.docs-CUh3R7DD.js} +1 -1
- package/template/dist/client/assets/{_lang.docs._-BiCvgeV1.js → _lang.docs._-DlgTPy3s.js} +1 -1
- package/template/dist/client/assets/_lang.docs._-DmaQE7lx.js +1 -0
- package/template/dist/client/assets/_lang.docs.framework._framework._-B4C4uDFp.js +1 -0
- package/template/dist/client/assets/{_lang.docs.framework._framework.index-Bu5p5Q_r.js → _lang.docs.framework._framework.index-DTg6Xd3p.js} +1 -1
- package/template/dist/client/assets/{_lang.docs.framework.index-uTDFLagP.js → _lang.docs.framework.index-BQ2enasl.js} +1 -1
- package/template/dist/client/assets/{arc-C16C7aa3.js → arc-DGPgC_QF.js} +1 -1
- package/template/dist/client/assets/{architectureDiagram-2XIMDMQ5-DgSSDH9Z.js → architectureDiagram-2XIMDMQ5-yI53_GAi.js} +1 -1
- package/template/dist/client/assets/{blockDiagram-WCTKOSBZ-Bs8e58Or.js → blockDiagram-WCTKOSBZ-C3tr24zy.js} +1 -1
- package/template/dist/client/assets/{c4Diagram-IC4MRINW-DsGaAPtm.js → c4Diagram-IC4MRINW-DOA-mowm.js} +1 -1
- package/template/dist/client/assets/channel-DzZD7dUQ.js +1 -0
- package/template/dist/client/assets/{chunk-4BX2VUAB-BQdq93Vq.js → chunk-4BX2VUAB-B6NSnNJJ.js} +1 -1
- package/template/dist/client/assets/{chunk-55IACEB6-zjp4uUiZ.js → chunk-55IACEB6-CWYwArBH.js} +1 -1
- package/template/dist/client/assets/{chunk-FMBD7UC4-CEdYlBOF.js → chunk-FMBD7UC4-DSyn2wIW.js} +1 -1
- package/template/dist/client/assets/{chunk-JSJVCQXG-CVkDw9ls.js → chunk-JSJVCQXG-D83nm5W0.js} +1 -1
- package/template/dist/client/assets/{chunk-KX2RTZJC--1vKv-mr.js → chunk-KX2RTZJC-DD7fN9e9.js} +1 -1
- package/template/dist/client/assets/{chunk-NQ4KR5QH-Cpo-W18l.js → chunk-NQ4KR5QH-C3YlYiU5.js} +1 -1
- package/template/dist/client/assets/{chunk-QZHKN3VN-BizWJuB4.js → chunk-QZHKN3VN-B7wBEuCG.js} +1 -1
- package/template/dist/client/assets/{chunk-WL4C6EOR-6lLYa9R1.js → chunk-WL4C6EOR-ByA1FloT.js} +1 -1
- package/template/dist/client/assets/classDiagram-VBA2DB6C-CRozKaUD.js +1 -0
- package/template/dist/client/assets/classDiagram-v2-RAHNMMFH-CRozKaUD.js +1 -0
- package/template/dist/client/assets/clone-CGnOEl4E.js +1 -0
- package/template/dist/client/assets/{cose-bilkent-S5V4N54A-CaD0EGPJ.js → cose-bilkent-S5V4N54A-nt_sXfWc.js} +1 -1
- package/template/dist/client/assets/{dagre-KLK3FWXG-h4F9WtDQ.js → dagre-KLK3FWXG-DUsyMTPd.js} +1 -1
- package/template/dist/client/assets/{diagram-E7M64L7V-CBUSWzH5.js → diagram-E7M64L7V-D5SAypX0.js} +1 -1
- package/template/dist/client/assets/{diagram-IFDJBPK2-C5oMubv0.js → diagram-IFDJBPK2-WhP5c8Vz.js} +1 -1
- package/template/dist/client/assets/{diagram-P4PSJMXO-DdPwwhHR.js → diagram-P4PSJMXO-AMrwIlhf.js} +1 -1
- package/template/dist/client/assets/{erDiagram-INFDFZHY-0U5A-RF0.js → erDiagram-INFDFZHY-BxifSpCV.js} +1 -1
- package/template/dist/client/assets/{flowDiagram-PKNHOUZH-CXN3pvSW.js → flowDiagram-PKNHOUZH-BMAowE9I.js} +1 -1
- package/template/dist/client/assets/{ganttDiagram-A5KZAMGK-DlovlSO7.js → ganttDiagram-A5KZAMGK-Bay-0iRq.js} +1 -1
- package/template/dist/client/assets/{gitGraphDiagram-K3NZZRJ6-Bo-Jjy7v.js → gitGraphDiagram-K3NZZRJ6-Va91W3gw.js} +1 -1
- package/template/dist/client/assets/{graph-C0TauvuO.js → graph-CbBYObK_.js} +1 -1
- package/template/dist/client/assets/{index-iATq4LEm.js → index-CF6qz2tX.js} +1 -1
- package/template/dist/client/assets/{infoDiagram-LFFYTUFH-BbvPzztn.js → infoDiagram-LFFYTUFH-Byd5C-4U.js} +1 -1
- package/template/dist/client/assets/{ishikawaDiagram-PHBUUO56-DKCMONMO.js → ishikawaDiagram-PHBUUO56-DxOKnE1v.js} +1 -1
- package/template/dist/client/assets/{journeyDiagram-4ABVD52K-D9NP_vvu.js → journeyDiagram-4ABVD52K-IRmt7RI4.js} +1 -1
- package/template/dist/client/assets/{kanban-definition-K7BYSVSG-X-u_nWxK.js → kanban-definition-K7BYSVSG-BjTVXn-R.js} +1 -1
- package/template/dist/client/assets/{layout-IeRzBrUX.js → layout-Bbx6A0bC.js} +1 -1
- package/template/dist/client/assets/{linear-DEzVUeiK.js → linear-Df2eAW4A.js} +1 -1
- package/template/dist/client/assets/{main-Csj9i19C.js → main-DqZtiCro.js} +2 -2
- package/template/dist/client/assets/{mermaid.core-CCnh2DG0.js → mermaid.core-BIoiBcAA.js} +4 -4
- package/template/dist/client/assets/{mindmap-definition-YRQLILUH-DgyN4Ft-.js → mindmap-definition-YRQLILUH-Btzz0iIP.js} +1 -1
- package/template/dist/client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/template/dist/client/assets/{pieDiagram-SKSYHLDU-DDVqU_2Q.js → pieDiagram-SKSYHLDU-C2amrGtU.js} +1 -1
- package/template/dist/client/assets/{quadrantDiagram-337W2JSQ-BeUxMqle.js → quadrantDiagram-337W2JSQ-EVgH9VuN.js} +1 -1
- package/template/dist/client/assets/{react-os8EX6z1.js → react-qvbbiZob.js} +1 -1
- package/template/dist/client/assets/{requirementDiagram-Z7DCOOCP-CpzdlyEd.js → requirementDiagram-Z7DCOOCP-BkYPbRis.js} +1 -1
- package/template/dist/client/assets/{sankeyDiagram-WA2Y5GQK-CmSWF6XU.js → sankeyDiagram-WA2Y5GQK-B5EIaP-h.js} +1 -1
- package/template/dist/client/assets/{sequenceDiagram-2WXFIKYE-DarofLka.js → sequenceDiagram-2WXFIKYE-BC33VGOc.js} +1 -1
- package/template/dist/client/assets/{stateDiagram-RAJIS63D-CEio2h-7.js → stateDiagram-RAJIS63D-DiKvWUYb.js} +1 -1
- package/template/dist/client/assets/stateDiagram-v2-FVOUBMTO-DjKMPYGe.js +1 -0
- package/template/dist/client/assets/{timeline-definition-YZTLITO2-By_Wk6uc.js → timeline-definition-YZTLITO2-QiFlgbRA.js} +1 -1
- package/template/dist/client/assets/{treemap-KZPCXAKY-mKcaMbv9.js → treemap-KZPCXAKY-BOYbyS9G.js} +1 -1
- package/template/dist/client/assets/{vennDiagram-LZ73GAT5-Dx_Fh7nH.js → vennDiagram-LZ73GAT5-CqmW7j4r.js} +1 -1
- package/template/dist/client/assets/{xychartDiagram-JWTSCODW-DSAwWbBw.js → xychartDiagram-JWTSCODW-gj6oWX8l.js} +1 -1
- package/template/dist/server/assets/{Doc-B8TJBEmx.js → Doc-9tJiX5y6.js} +3 -3
- package/template/dist/server/assets/{DocsLayout-CnWgvk8u.js → DocsLayout-BTjhU_W5.js} +2 -2
- package/template/dist/server/assets/{Footer-WapWK45U.js → Footer-CefTi2yh.js} +1 -1
- package/template/dist/server/assets/{FrameworkContent-gzqT-Q1n.js → FrameworkContent-BkJvuP04.js} +2 -2
- package/template/dist/server/assets/{MarkdownHeadingContext-Iyk66Y4x.js → MarkdownHeadingContext-37oQpb36.js} +3 -3
- package/template/dist/server/assets/{PostNotFound-GKdNuzsX.js → PostNotFound-BqBZf83v.js} +1 -1
- package/template/dist/server/assets/{_basePickBy-DJ9gzwF8.js → _basePickBy-DZ3TPUta.js} +2 -2
- package/template/dist/server/assets/{_baseUniq-CezmbvU2.js → _baseUniq-DKicWTQT.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs-BOZ34yW7.js → _lang._project._version.docs-U-t4mk5_.js} +3 -3
- package/template/dist/server/assets/{_lang._project._version.docs._-5W2jN7Re.js → _lang._project._version.docs._-DMgnElWM.js} +5 -5
- package/template/dist/server/assets/{_lang._project._version.docs.framework._framework._-DeN_oA8l.js → _lang._project._version.docs.framework._framework._-kBw_9L-F.js} +5 -5
- package/template/dist/server/assets/{_lang._project._version.docs.framework._framework.index-jWKDCQSE.js → _lang._project._version.docs.framework._framework.index-Bsyj0DD5.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs.framework.index-DOT4MtjZ.js → _lang._project._version.docs.framework.index-CmLAP_Io.js} +1 -1
- package/template/dist/server/assets/{_lang._project.docs-r4V9TXuu.js → _lang._project.docs-Bb4ZZ_jr.js} +3 -3
- package/template/dist/server/assets/{_lang._project.docs._-Bge7JaYE.js → _lang._project.docs._-ChrpJ61j.js} +5 -5
- package/template/dist/server/assets/{_lang.blog-DJOfiyA8.js → _lang.blog-8j6IvzvQ.js} +2 -2
- package/template/dist/server/assets/{_lang.blog._-yJSqbX08.js → _lang.blog._-BPzP97Ac.js} +2 -2
- package/template/dist/server/assets/{_lang.blog._-C7iqMj9O.js → _lang.blog._-DNX8UglA.js} +2 -2
- package/template/dist/server/assets/{_lang.blog.index-Df_6_IKx.js → _lang.blog.index-CeZnMJBi.js} +1 -1
- package/template/dist/server/assets/{_lang.blog.index-CrdyROhK.js → _lang.blog.index-DzVKqoC4.js} +2 -2
- package/template/dist/server/assets/{_lang.docs-Jwt4deTW.js → _lang.docs-B4StnHMb.js} +3 -3
- package/template/dist/server/assets/{_lang.docs._-D_DdKLAV.js → _lang.docs._--c0In1AT.js} +5 -5
- package/template/dist/server/assets/{_lang.docs.framework._framework._-BkQaZ_1f.js → _lang.docs.framework._framework._-Be0U7cDg.js} +5 -5
- package/template/dist/server/assets/{_lang.docs.framework._framework.index-BLx8p8IS.js → _lang.docs.framework._framework.index-BZ512aSk.js} +1 -1
- package/template/dist/server/assets/{_lang.docs.framework.index-BytQ_q8T.js → _lang.docs.framework.index-U8z3j4kz.js} +1 -1
- package/template/dist/server/assets/{_tanstack-start-manifest_v-RX6ItZ5S.js → _tanstack-start-manifest_v-DXpQ8503.js} +1 -1
- package/template/dist/server/assets/{arc-BwftnT5H.js → arc-B4h6h_n6.js} +1 -1
- package/template/dist/server/assets/{architecture-PBZL5I3N-KbDVC6gM.js → architecture-PBZL5I3N-CUwqLXkR.js} +6 -6
- package/template/dist/server/assets/{architectureDiagram-2XIMDMQ5-BoLvWxb3.js → architectureDiagram-2XIMDMQ5-CuCoxdBe.js} +6 -6
- package/template/dist/server/assets/{blockDiagram-WCTKOSBZ-GPFcXs-f.js → blockDiagram-WCTKOSBZ-D5PsUOim.js} +6 -6
- package/template/dist/server/assets/{c4Diagram-IC4MRINW-EQwQCspo.js → c4Diagram-IC4MRINW-CXy5xO3o.js} +2 -2
- package/template/dist/server/assets/{channel-CxvwuPH7.js → channel-D0l-mWaF.js} +1 -1
- package/template/dist/server/assets/{chunk-4BX2VUAB-DUgcw5ei.js → chunk-4BX2VUAB-M7FVHMss.js} +1 -1
- package/template/dist/server/assets/{chunk-55IACEB6-Cn15uD91.js → chunk-55IACEB6-D_gDAje5.js} +1 -1
- package/template/dist/server/assets/{chunk-FMBD7UC4-Ck3iyLPu.js → chunk-FMBD7UC4-B5Bebx-Y.js} +1 -1
- package/template/dist/server/assets/{chunk-JSJVCQXG-VAT8yncE.js → chunk-JSJVCQXG-DxBkq-uB.js} +1 -1
- package/template/dist/server/assets/{chunk-KX2RTZJC-B1bd2VmA.js → chunk-KX2RTZJC-BMHm1EGi.js} +1 -1
- package/template/dist/server/assets/{chunk-NQ4KR5QH-CR67GG9C.js → chunk-NQ4KR5QH-Cp28pTwT.js} +3 -3
- package/template/dist/server/assets/{chunk-QZHKN3VN-B9SSazM4.js → chunk-QZHKN3VN-Bq5GZqaR.js} +1 -1
- package/template/dist/server/assets/{chunk-WL4C6EOR-DZ4Pjuao.js → chunk-WL4C6EOR-C9Nj5GdW.js} +5 -5
- package/template/dist/server/assets/{classDiagram-VBA2DB6C-CA6_4Wb2.js → classDiagram-VBA2DB6C-CUchv9T5.js} +6 -6
- package/template/dist/server/assets/{classDiagram-v2-RAHNMMFH-CA6_4Wb2.js → classDiagram-v2-RAHNMMFH-CUchv9T5.js} +6 -6
- package/template/dist/server/assets/{clone-DJHP_iVy.js → clone-CJcTi58S.js} +1 -1
- package/template/dist/server/assets/{cose-bilkent-S5V4N54A-DtU-cN6W.js → cose-bilkent-S5V4N54A-CxvCMhN_.js} +1 -1
- package/template/dist/server/assets/{dagre-KLK3FWXG-yZYrVU4p.js → dagre-KLK3FWXG-B5bQP7FL.js} +6 -6
- package/template/dist/server/assets/{diagram-E7M64L7V-8Yyz0aw0.js → diagram-E7M64L7V-NjHca90S.js} +8 -8
- package/template/dist/server/assets/{diagram-IFDJBPK2-DcxFYI3M.js → diagram-IFDJBPK2-CoTCfBKd.js} +6 -6
- package/template/dist/server/assets/{diagram-P4PSJMXO-CehxUcI0.js → diagram-P4PSJMXO-DHvGgYjH.js} +6 -6
- package/template/dist/server/assets/{erDiagram-INFDFZHY-Bu2p1_Pj.js → erDiagram-INFDFZHY-01crajKr.js} +4 -4
- package/template/dist/server/assets/{flowDiagram-PKNHOUZH-B_eKR7I0.js → flowDiagram-PKNHOUZH-BkUQ_vxg.js} +6 -6
- package/template/dist/server/assets/{ganttDiagram-A5KZAMGK-DP6YEZof.js → ganttDiagram-A5KZAMGK-DvrO-w2P.js} +2 -2
- package/template/dist/server/assets/{gitGraph-HDMCJU4V-Bt0qhVL4.js → gitGraph-HDMCJU4V-h9JNaxB7.js} +6 -6
- package/template/dist/server/assets/{gitGraphDiagram-K3NZZRJ6-DwvkdYrg.js → gitGraphDiagram-K3NZZRJ6-BoKm6Fm-.js} +7 -7
- package/template/dist/server/assets/{graph-BVFNe_k5.js → graph-BoxbfI7Z.js} +2 -2
- package/template/dist/server/assets/{index-DvBGSZeA.js → index-Jfzi6SZW.js} +2 -2
- package/template/dist/server/assets/{info-3K5VOQVL-CFejRnvB.js → info-3K5VOQVL-DgaSHqkS.js} +6 -6
- package/template/dist/server/assets/{infoDiagram-LFFYTUFH-D0v9uyXI.js → infoDiagram-LFFYTUFH-DgV5W8-I.js} +5 -5
- package/template/dist/server/assets/{ishikawaDiagram-PHBUUO56-DZumspL4.js → ishikawaDiagram-PHBUUO56-CqlMQ0Fq.js} +1 -1
- package/template/dist/server/assets/{journeyDiagram-4ABVD52K-nRp_-qZp.js → journeyDiagram-4ABVD52K-D6ySTub8.js} +4 -4
- package/template/dist/server/assets/{kanban-definition-K7BYSVSG-BMKyyzjt.js → kanban-definition-K7BYSVSG-BT8m7Cwk.js} +2 -2
- package/template/dist/server/assets/{layout-mpiN5R-5.js → layout-CkYcErfn.js} +4 -4
- package/template/dist/server/assets/{linear-CqNYgjEx.js → linear-F_0dWGZL.js} +1 -1
- package/template/dist/server/assets/{mermaid-parser.core-B8Uu3QZY.js → mermaid-parser.core-q5MdUJuo.js} +11 -11
- package/template/dist/server/assets/{mermaid.core-BI3nMhNO.js → mermaid.core-DOWTODR1.js} +31 -31
- package/template/dist/server/assets/{mindmap-definition-YRQLILUH-DCoFqLPh.js → mindmap-definition-YRQLILUH-BQxlQqn-.js} +3 -3
- package/template/dist/server/assets/{ordinal-Bcam90FY.js → ordinal-CxptdPJm.js} +1 -1
- package/template/dist/server/assets/{packet-RMMSAZCW-djgonfKN.js → packet-RMMSAZCW-D8FkLZuP.js} +6 -6
- package/template/dist/server/assets/{pie-UPGHQEXC-Dug2t-PE.js → pie-UPGHQEXC-Diw2fHLk.js} +6 -6
- package/template/dist/server/assets/{pieDiagram-SKSYHLDU-CS0_hW4w.js → pieDiagram-SKSYHLDU-B1J4UJZ7.js} +8 -8
- package/template/dist/server/assets/{quadrantDiagram-337W2JSQ-BpQNM0zu.js → quadrantDiagram-337W2JSQ-BvjKLapg.js} +2 -2
- package/template/dist/server/assets/{radar-KQ55EAFF-3ir2W9Wi.js → radar-KQ55EAFF-CcBdPU3n.js} +6 -6
- package/template/dist/server/assets/{requirementDiagram-Z7DCOOCP-D92RyjV4.js → requirementDiagram-Z7DCOOCP-Bgr_wnAs.js} +3 -3
- package/template/dist/server/assets/{router-DPPgDicW.js → router-DxwPl-Dc.js} +18 -18
- package/template/dist/server/assets/{sankeyDiagram-WA2Y5GQK-DCPRB-xO.js → sankeyDiagram-WA2Y5GQK-B0UwtyW3.js} +2 -2
- package/template/dist/server/assets/{sequenceDiagram-2WXFIKYE-C1ab2VvU.js → sequenceDiagram-2WXFIKYE-BbxQJHjO.js} +3 -3
- package/template/dist/server/assets/{stateDiagram-RAJIS63D-GhG1G3ff.js → stateDiagram-RAJIS63D-Cg-uJ_UO.js} +8 -8
- package/template/dist/server/assets/{stateDiagram-v2-FVOUBMTO-C-KtMadV.js → stateDiagram-v2-FVOUBMTO-BWVPrqfa.js} +4 -4
- package/template/dist/server/assets/{timeline-definition-YZTLITO2-DyfAQCd4.js → timeline-definition-YZTLITO2-DCSJT2WT.js} +2 -2
- package/template/dist/server/assets/{treemap-KZPCXAKY-Cn0Cw4Cl.js → treemap-KZPCXAKY-a0nhlKgx.js} +6 -6
- package/template/dist/server/assets/{vennDiagram-LZ73GAT5-D2Ak5JUa.js → vennDiagram-LZ73GAT5-Bk2HQEQq.js} +1 -1
- package/template/dist/server/assets/{xychartDiagram-JWTSCODW-DqoBOs1L.js → xychartDiagram-JWTSCODW-C4svHkt_.js} +3 -3
- package/template/dist/server/server.js +5 -5
- package/admin/dist/client/assets/main-CSFhgz4p.js +0 -17
- package/admin/dist/client/assets/routes-C6bCOSX-.js +0 -3
- package/admin/dist/server/assets/_tanstack-start-manifest_v-BE5XHVZ2.js +0 -17
- package/admin/dist/server/assets/redirect-DtfSYi2g.js +0 -51
- package/admin/dist/server/assets/status-CZz8Rs_7.js +0 -81
- package/template/dist/client/assets/_lang-B3tRf7os.js +0 -1
- package/template/dist/client/assets/_lang._project-CH0inpmY.js +0 -1
- package/template/dist/client/assets/_lang._project._version-CESvrqds.js +0 -1
- package/template/dist/client/assets/_lang._project._version.docs._-BexMyJr9.js +0 -1
- package/template/dist/client/assets/_lang._project._version.docs.framework._framework._-BbQgUWTH.js +0 -1
- package/template/dist/client/assets/_lang._project.docs._-R9bOn492.js +0 -1
- package/template/dist/client/assets/_lang.blog-BViCs72M.js +0 -1
- package/template/dist/client/assets/_lang.blog-DhVkwYEk.js +0 -1
- package/template/dist/client/assets/_lang.blog._-BHdaHDBU.js +0 -1
- package/template/dist/client/assets/_lang.blog.index-CELEUrkj.js +0 -1
- package/template/dist/client/assets/_lang.docs._-axvS_dfl.js +0 -1
- package/template/dist/client/assets/_lang.docs.framework._framework._-D2FAQ0gW.js +0 -1
- package/template/dist/client/assets/channel-Clrp6Lr4.js +0 -1
- package/template/dist/client/assets/classDiagram-VBA2DB6C-Beq6_jEy.js +0 -1
- package/template/dist/client/assets/classDiagram-v2-RAHNMMFH-Beq6_jEy.js +0 -1
- package/template/dist/client/assets/clone-BbBu6MzK.js +0 -1
- package/template/dist/client/assets/ordinal-BENe2yWM.js +0 -1
- package/template/dist/client/assets/stateDiagram-v2-FVOUBMTO-CbfK0_BD.js +0 -1
- /package/admin/dist/server/assets/{createServerRpc-DJq9yo-B.js → createServerRpc-Cyyxq9HQ.js} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{f as e,i as t,t as n,u as r}from"./useNavigate-CEOVvMjz.js";import{_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,p as _,r as v,s as y,t as b,u as x,v as S,x as C,y as w}from"./main-bc5tcdGg.js";import{t as T}from"./auth-client-DqJZaFZR.js";var E=class extends o{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=y(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),O(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return k(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return k(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof _(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!d(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&A(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||_(this.options.enabled,this.#t)!==_(t.enabled,this.#t)||m(this.options.staleTime,this.#t)!==m(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||_(this.options.enabled,this.#t)!==_(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return M(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(c)),t}#g(){this.#b();let e=m(this.options.staleTime,this.#t);if(s.isServer()||this.#r.isStale||!x(e))return;let t=i(this.#r.dataUpdatedAt,e)+1;this.#d=S.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(s.isServer()||_(this.options.enabled,this.#t)===!1||!x(this.#p)||this.#p===0)&&(this.#f=S.setInterval(()=>{(this.options.refetchIntervalInBackground||w.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(S.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(S.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,o=this.#i,s=this.#a,c=e===n?this.#n:e.state,{state:u}=e,d={...u},f=!1,p;if(t._optimisticResults){let i=this.hasListeners(),o=!i&&O(e,t),s=i&&A(e,n,t,r);(o||s)&&(d={...d,...a(u.data,e.options)}),t._optimisticResults===`isRestoring`&&(d.fetchStatus=`idle`)}let{error:m,errorUpdatedAt:h,status:g}=d;p=d.data;let v=!1;if(t.placeholderData!==void 0&&p===void 0&&g===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===s?.placeholderData?(e=i.data,v=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(g=`success`,p=l(i?.data,e,t),f=!0)}if(t.select&&p!==void 0&&!v)if(i&&p===o?.data&&t.select===this.#c)p=this.#l;else try{this.#c=t.select,p=t.select(p),p=l(i?.data,p,t),this.#l=p,this.#s=null}catch(e){this.#s=e}this.#s&&(m=this.#s,p=this.#l,h=Date.now(),g=`error`);let b=d.fetchStatus===`fetching`,x=g===`pending`,S=g===`error`,C=x&&b,w=p!==void 0,T={status:g,fetchStatus:d.fetchStatus,isPending:x,isSuccess:g===`success`,isError:S,isInitialLoading:C,isLoading:C,data:p,dataUpdatedAt:d.dataUpdatedAt,error:m,errorUpdatedAt:h,failureCount:d.fetchFailureCount,failureReason:d.fetchFailureReason,errorUpdateCount:d.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:d.dataUpdateCount>c.dataUpdateCount||d.errorUpdateCount>c.errorUpdateCount,isFetching:b,isRefetching:b&&!x,isLoadingError:S&&!w,isPaused:d.fetchStatus===`paused`,isPlaceholderData:f,isRefetchError:S&&w,isStale:j(e,t),refetch:this.refetch,promise:this.#o,isEnabled:_(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=T.data!==void 0,r=T.status===`error`&&!t,i=e=>{r?e.reject(T.error):t&&e.resolve(T.data)},a=()=>{i(this.#o=T.promise=y())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||T.data!==o.value)&&a();break;case`rejected`:(!r||T.error!==o.reason)&&a();break}}return T}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!d(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){g.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function D(e,t){return _(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function O(e,t){return D(e,t)||e.state.data!==void 0&&k(e,t,t.refetchOnMount)}function k(e,t,n){if(_(t.enabled,e)!==!1&&m(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&j(e,t)}return!1}function A(e,t,n,r){return(e!==t||_(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&j(e,n)}function j(e,t){return _(t.enabled,e)!==!1&&e.isStaleByTime(m(t.staleTime,e))}function M(e,t){return!d(e.getCurrentResult(),t)}var N=class extends o{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),d(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&p(t.mutationKey)!==p(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??f();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){g.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},P=e(r(),1),F=P.createContext(!1),I=()=>P.useContext(F);F.Provider;var L=t();function R(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var z=P.createContext(R()),B=()=>P.useContext(z),V=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?u(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},ee=e=>{P.useEffect(()=>{e.clearReset()},[e])},te=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||u(n,[e.error,r])),H=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},ne=(e,t)=>e.isLoading&&e.isFetching&&!t,U=(e,t)=>e?.suspense&&t.isPending,W=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function G(e,t,n){let r=I(),i=B(),a=v(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let l=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?`isRestoring`:`optimistic`,H(o),V(o,i,l),ee(i);let u=!a.getQueryCache().get(o.queryHash),[d]=P.useState(()=>new t(a,o)),f=d.getOptimisticResult(o),p=!r&&e.subscribed!==!1;if(P.useSyncExternalStore(P.useCallback(e=>{let t=p?d.subscribe(g.batchCalls(e)):c;return d.updateResult(),t},[d,p]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),P.useEffect(()=>{d.setOptions(o)},[o,d]),U(o,f))throw W(o,d,i);if(te({result:f,errorResetBoundary:i,throwOnError:o.throwOnError,query:l,suspense:o.suspense}))throw f.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,f),o.experimental_prefetchInRender&&!s.isServer()&&ne(f,r)&&(u?W(o,d,i):l?.promise)?.catch(c).finally(()=>{d.updateResult()}),o.notifyOnChangeProps?f:d.trackResult(f)}function K(e,t){return G(e,E,t)}function q(e,t){let n=v(t),[r]=P.useState(()=>new N(n,e));P.useEffect(()=>{r.setOptions(e)},[r,e]);let i=P.useSyncExternalStore(P.useCallback(e=>r.subscribe(g.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=P.useCallback((e,t)=>{r.mutate(e,t).catch(c)},[r]);if(i.error&&u(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var J={en:`🇺🇸`,"zh-hans":`🇨🇳`,"zh-hant":`🇭🇰`,ja:`🇯🇵`,ar:`🇸🇦`,de:`🇩🇪`,es:`🇪🇸`,fr:`🇫🇷`,ru:`🇷🇺`};function re(e){return e>=95?`var(--green)`:e>50?`var(--yellow)`:`var(--red)`}function Y(e){return e>=100?`🟢`:e>0?`🟡`:`🔴`}function ie(e){return e.startsWith(`docs/`)?`docs`:e.startsWith(`blog/`)?`blog`:e.startsWith(`learn/`)?`learn`:`other`}function X(e){return e.total>0?e.translated/e.total*100:100}function ae(e){let t=X(e);return t>=100?`complete`:t>0?`partial`:`missing`}function oe(e){let t={name:``,path:``,children:new Map};for(let n of e){let e=n.file.split(`/`),r=t;for(let t=0;t<e.length;t++){let n=e[t];r.children.has(n)||r.children.set(n,{name:n,path:e.slice(0,t+1).join(`/`),children:new Map}),r=r.children.get(n)}r.file=n}return t}function se(e){let t=0,n=0;e.file&&(t+=e.file.translated,n+=e.file.total);for(let r of e.children.values()){let e=se(r);t+=e.translated,n+=e.total}return{translated:t,total:n}}function ce({node:e,depth:t,activeFile:n,selected:r,isEn:i,collapsed:a,onToggleCollapse:o,onSelect:s,onToggle:c}){let l=e.children.size>0&&!e.file,u=a.has(e.path),d=[...e.children.values()].sort((e,t)=>{let n=e.children.size>0&&!e.file;return n===(t.children.size>0&&!t.file)?e.name.localeCompare(t.name):n?-1:1});if(l){let{translated:l,total:f}=se(e),p=f>0?l/f*100:100,m=p>=100?`var(--green)`:p>0?`var(--yellow)`:`var(--red)`;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`file-row tree-dir`,style:{paddingLeft:`${t+.25}rem`},onClick:()=>o(e.path),children:[(0,L.jsx)(`span`,{className:`tree-arrow`,children:u?`▶`:`▼`}),(0,L.jsx)(`span`,{className:`icon`,children:`📁`}),(0,L.jsxs)(`span`,{className:`path`,title:e.path,children:[e.name,`/`]}),(0,L.jsxs)(`span`,{className:`pct`,children:[p.toFixed(0),`%`]}),(0,L.jsx)(`div`,{className:`mini-bar`,children:(0,L.jsx)(`div`,{className:`mini-fill`,style:{width:`${p}%`,background:m}})})]}),!u&&d.map(e=>(0,L.jsx)(ce,{node:e,depth:t+1,activeFile:n,selected:r,isEn:i,collapsed:a,onToggleCollapse:o,onSelect:s,onToggle:c},e.path))]})}let f=e.file;if(!f)return null;f.total-f.translated;let p=f.status===`complete`?`var(--green)`:f.status===`partial`?`var(--yellow)`:`var(--red)`;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`file-row${n===f.file?` active`:``}`,style:{paddingLeft:`${t+.25}rem`},onClick:()=>s(f.file),children:[!i&&(0,L.jsx)(`input`,{type:`checkbox`,checked:r.has(f.file),onChange:e=>{e.stopPropagation(),c(f.file)},onClick:e=>e.stopPropagation()}),(0,L.jsx)(`span`,{className:`icon`,children:Y(f.pct)}),(0,L.jsx)(`span`,{className:`path`,title:f.file,children:e.name}),(0,L.jsxs)(`span`,{className:`pct`,children:[f.pct.toFixed(0),`%`]}),(0,L.jsx)(`div`,{className:`mini-bar`,children:(0,L.jsx)(`div`,{className:`mini-fill`,style:{width:`${f.pct}%`,background:p}})})]}),!u&&d.map(e=>(0,L.jsx)(ce,{node:e,depth:t+1,activeFile:n,selected:r,isEn:i,collapsed:a,onToggleCollapse:o,onSelect:s,onToggle:c},e.path))]})}function le({files:e,lang:t,activeFile:n,selected:r,statusFilter:i,sectionFilter:a,onStatusFilter:o,onSectionFilter:s,onSelect:c,onToggle:l,onSelectAll:u,onClear:d,onTranslateSelected:f}){let[p,m]=(0,P.useState)(`tree`),[h,g]=(0,P.useState)(new Set),[_,v]=(0,P.useState)(``),y=(0,P.useMemo)(()=>{let t=e.map(e=>({...e,pct:X(e),status:ae(e),section:ie(e.file)}));if(i!==`all`&&(t=t.filter(e=>e.status===i)),a!==`all`&&(t=t.filter(e=>e.section===a)),_.trim()){let e=_.trim().toLowerCase();t=t.filter(t=>t.file.toLowerCase().includes(e))}return t},[e,i,a,_]),b=(0,P.useMemo)(()=>oe(y),[y]),x=e=>{g(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},S=t===`en`;return(0,L.jsxs)(`div`,{className:`file-list-wrap`,children:[!S&&r.size>0&&(0,L.jsxs)(`div`,{className:`sel-bar`,children:[(0,L.jsxs)(`span`,{children:[r.size,` selected`]}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-sm`,onClick:f,children:`Translate Selected`}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-sm btn-outline`,onClick:d,children:`Clear`})]}),(0,L.jsxs)(`div`,{className:`file-search`,children:[(0,L.jsx)(`input`,{type:`text`,placeholder:`Search files...`,value:_,onChange:e=>v(e.target.value)}),_&&(0,L.jsx)(`button`,{type:`button`,className:`file-search-clear`,onClick:()=>v(``),children:`✕`})]}),(0,L.jsxs)(`div`,{className:`file-list-hdr`,children:[!S&&(0,L.jsx)(`input`,{type:`checkbox`,checked:y.length>0&&y.every(e=>r.has(e.file)),onChange:e=>{e.target.checked?u(y.map(e=>e.file)):d()},title:`Select all visible`}),(0,L.jsxs)(`strong`,{children:[t,` · `,y.length,` files`]}),(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-xs${p===`list`?` active`:``}`,onClick:()=>m(`list`),title:`List view`,children:`☰`}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-xs${p===`tree`?` active`:``}`,onClick:()=>m(`tree`),title:`Tree view`,children:`🌲`}),(0,L.jsxs)(`select`,{value:i,onChange:e=>o(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All`}),(0,L.jsx)(`option`,{value:`complete`,children:`✅ Complete`}),(0,L.jsx)(`option`,{value:`partial`,children:`🟡 Partial`}),(0,L.jsx)(`option`,{value:`missing`,children:`🔴 Missing`})]}),(0,L.jsxs)(`select`,{value:a,onChange:e=>s(e.target.value),children:[(0,L.jsx)(`option`,{value:`all`,children:`All sections`}),(0,L.jsx)(`option`,{value:`docs`,children:`docs`}),(0,L.jsx)(`option`,{value:`blog`,children:`blog`}),(0,L.jsx)(`option`,{value:`learn`,children:`learn`})]})]}),(0,L.jsxs)(`div`,{className:`file-list-body`,children:[y.length===0&&(0,L.jsx)(`div`,{className:`loading`,children:`No files match filter`}),p===`list`&&y.map(e=>{e.total-e.translated;let t=e.status===`complete`?`var(--green)`:e.status===`partial`?`var(--yellow)`:`var(--red)`;return(0,L.jsxs)(`div`,{className:`file-row${n===e.file?` active`:``}`,onClick:()=>c(e.file),children:[!S&&(0,L.jsx)(`input`,{type:`checkbox`,checked:r.has(e.file),onChange:t=>{t.stopPropagation(),l(e.file)},onClick:e=>e.stopPropagation()}),(0,L.jsx)(`span`,{className:`icon`,children:Y(e.pct)}),(0,L.jsx)(`span`,{className:`path`,title:e.file,children:e.file}),(0,L.jsxs)(`span`,{className:`pct`,children:[e.pct.toFixed(0),`%`]}),(0,L.jsx)(`div`,{className:`mini-bar`,children:(0,L.jsx)(`div`,{className:`mini-fill`,style:{width:`${e.pct}%`,background:t}})})]},e.file)}),p===`tree`&&[...b.children.values()].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>(0,L.jsx)(ce,{node:e,depth:0,activeFile:n,selected:r,isEn:S,collapsed:h,onToggleCollapse:x,onSelect:c,onToggle:l},e.path))]})]})}var ue=h({method:`GET`}).handler(C(`4e218d79545765572808c7eab33b7663d4496209c15406d0b449366905b6b83f`)),de=h({method:`GET`}).handler(C(`843cd8b59095708a5ae78198708db9850f89fd3dd3830ab236f0bd924417692f`)),fe=h({method:`GET`}).handler(C(`e1e7281e45375c67dbe408c58452e7482b139da60e9e361615553227dce95ee0`)),pe=h({method:`POST`}).handler(C(`e1d13d8602339a95f559345ccfc82e9f843dd375ce8e9f580637c241e7e44774`));h({method:`POST`}).handler(C(`1d8e3916f992485c62e62c3693083850b773fdff4ec54277de5a01eb98dab664`));var me=h({method:`GET`}).handler(C(`421de02ce39dde6e27cf4689e837ec072cbd01e63f8cdd5c2a3f42f0bd5ca613`)),he=h({method:`POST`}).handler(C(`c08559ac758aa0d315deaca7a0d7d923a9a44d997c8cb811151417c1f221ddd6`));h({method:`GET`}).handler(C(`8a56694c9d7b29422a3e7d2f6b803be100d79d3853d92d465cb55ed572781e62`));var ge=h({method:`POST`}).handler(C(`88c2855c84e91504070bfecc50ddfa50339d22c305626800b6d9b05d79385d71`)),_e=h({method:`GET`}).handler(C(`5080dc3f2f2309ec6981b94c431969637130c657e8a1dfb10400b4614eecc1ea`)),ve=h({method:`GET`}).handler(C(`a3d81974aeece150d4b02be5b91590b8187442ebea56be4a89dcbf053626d22b`)),ye=h({method:`GET`}).handler(C(`3bf4ba50ca8ccc3c8c60d8f2e53307a320940d68c478df494552066904c5cd74`));h({method:`GET`}).handler(C(`e0b4116f6b2c8d096830102e36458acf9c616a056fcdddda956a4d66984ef58c`));var be=h({method:`POST`}).handler(C(`a054a04356fe9987891efee8b7a11cd2dedb00f6b2e8f26d1c642e001e553d53`)),Z={version:()=>ve(),llmConfig:()=>ye(),status:()=>ue(),fileCoverage:(e,t)=>de({data:{version:e,lang:t}}),fileBlocks:(e,t,n)=>fe({data:{version:e,lang:t,path:n}}),deleteCache:(e,t,n)=>pe({data:{version:e,lang:t,key:n}}),models:()=>_e(),jobs:()=>me(),createJob:e=>he({data:e}),deleteJob:e=>ge({data:{id:e}})};function Q(e){return e===0?`Free`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function $(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:`${(e/1e3).toFixed(0)}k`}var xe=[0,8,16,32,64,128,200,512,1024,2048];function Se({langs:e,versions:t,defaultLang:n,defaultVersion:r,files:i,onClose:a,onSuccess:o}){let[s,c]=(0,P.useState)(n||e[0]),[l,u]=(0,P.useState)(r||t[0]),[d,f]=(0,P.useState)(i?.length||999),[p,m]=(0,P.useState)(3),[h,g]=(0,P.useState)(null),[_,y]=(0,P.useState)(``),[b,x]=(0,P.useState)(``),[S,C]=(0,P.useState)(`context-desc`),[w,T]=(0,P.useState)(0),[E,D]=(0,P.useState)(!0),[O,k]=(0,P.useState)(!1),A=xe[w]*1e3,{data:j}=K({queryKey:[`llmConfig`],queryFn:Z.llmConfig,staleTime:60*1e3}),{data:M,isLoading:N}=K({queryKey:[`models`],queryFn:Z.models,staleTime:300*1e3}),F=(0,P.useMemo)(()=>{if(!M)return[];let e=M.filter(e=>{if(b){let t=b.toLowerCase();if(!e.id.toLowerCase().includes(t)&&!e.name.toLowerCase().includes(t))return!1}return!(E&&!e.isFree||A>0&&e.contextLength<A||O&&!e.supportsJson)});switch(e=[...e],S){case`price-asc`:e.sort((e,t)=>e.promptPrice-t.promptPrice);break;case`price-desc`:e.sort((e,t)=>t.promptPrice-e.promptPrice);break;case`context-desc`:e.sort((e,t)=>t.contextLength-e.contextLength);break;case`name`:e.sort((e,t)=>e.name.localeCompare(t.name));break}return e},[M,b,E,A,O,S]),I=v(),R=q({mutationFn:()=>Z.createJob({lang:s,version:l,max:d,concurrency:p,model:_||void 0,md5:!0,files:i?.length?i:void 0}),onSuccess:()=>{I.invalidateQueries({queryKey:[`jobs`]}),o?o(`✅ Job started: ${s} / ${l}${i?.length?` (${i.length} files)`:``}`):a()},onError:e=>g(e.message)}),z=e.filter(e=>e!==`en`),B=_?M?.find(e=>e.id===_):null;return(0,L.jsx)(`div`,{className:`dialog-overlay`,onClick:e=>{e.target===e.currentTarget&&a()},children:(0,L.jsxs)(`div`,{className:`dialog dialog-wide`,children:[(0,L.jsx)(`h3`,{children:`Start Translation Job`}),h&&(0,L.jsx)(`div`,{className:`dialog-error`,children:h}),j&&!j.hasApiKey&&(0,L.jsxs)(`div`,{className:`dialog-error`,children:[`⚠ No API key found. Set `,(0,L.jsx)(`code`,{children:`OPENROUTER_API_KEY`}),` in `,(0,L.jsx)(`code`,{children:`.env`}),` or configure `,(0,L.jsx)(`code`,{children:`llm.apiKey`}),` in config.`]}),j?.model&&(0,L.jsxs)(`div`,{className:`dialog-mode-hint`,children:[`Default model: `,(0,L.jsx)(`strong`,{children:j.model}),j.provider&&(0,L.jsxs)(`span`,{children:[` (`,j.provider,`)`]})]}),i?.length&&(0,L.jsxs)(`div`,{className:`dialog-mode-hint`,children:[`Translating `,i.length,` selected file`,i.length>1?`s`:``]}),(0,L.jsxs)(`div`,{className:`dialog-grid`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`label`,{children:`Language`}),(0,L.jsx)(`select`,{value:s,onChange:e=>c(e.target.value),children:z.map(e=>(0,L.jsxs)(`option`,{value:e,children:[J[e],` `,e]},e))})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`label`,{children:`Version`}),(0,L.jsx)(`select`,{value:l,onChange:e=>u(e.target.value),children:t.map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`label`,{children:`Max API calls`}),(0,L.jsx)(`input`,{type:`number`,value:d,onChange:e=>f(Number(e.target.value))})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`label`,{children:`Concurrency`}),(0,L.jsx)(`input`,{type:`number`,value:p,onChange:e=>m(Number(e.target.value))})]})]}),(0,L.jsx)(`div`,{className:`dialog-section-hdr`,children:(0,L.jsx)(`span`,{children:`Model`})}),(0,L.jsxs)(`div`,{className:`model-filters`,children:[(0,L.jsx)(`input`,{type:`text`,placeholder:`Search models...`,value:b,onChange:e=>x(e.target.value),className:`model-search-input`}),(0,L.jsxs)(`select`,{value:S,onChange:e=>C(e.target.value),children:[(0,L.jsx)(`option`,{value:`context-desc`,children:`Context ↓`}),(0,L.jsx)(`option`,{value:`price-asc`,children:`Price ↑`}),(0,L.jsx)(`option`,{value:`price-desc`,children:`Price ↓`}),(0,L.jsx)(`option`,{value:`name`,children:`Name A-Z`})]}),(0,L.jsxs)(`label`,{className:`model-filter-check`,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked)}),`Free`]}),(0,L.jsxs)(`label`,{className:`model-filter-check`,title:`Structured JSON output — required for best translation quality`,children:[(0,L.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>k(e.target.checked)}),`JSON mode`]})]}),(0,L.jsxs)(`div`,{className:`model-slider-row`,children:[(0,L.jsxs)(`span`,{className:`model-slider-label`,children:[`Context ≥ `,A===0?`any`:$(A)]}),(0,L.jsx)(`input`,{type:`range`,min:0,max:xe.length-1,value:w,onChange:e=>T(Number(e.target.value)),className:`model-slider`})]}),(0,L.jsxs)(`div`,{className:`model-list`,children:[(0,L.jsx)(`div`,{className:`model-item${_===``?` active`:``}`,onClick:()=>y(``),children:(0,L.jsx)(`span`,{className:`model-name`,children:`Default (from .env)`})}),N&&(0,L.jsx)(`div`,{className:`model-item disabled`,children:`Loading models...`}),F.map(e=>(0,L.jsx)(Ce,{m:e,mode:`single`,active:_===e.id,onClick:()=>y(e.id)},e.id)),!N&&F.length===0&&(0,L.jsx)(`div`,{className:`model-item disabled`,children:`No models match filters`})]}),(0,L.jsxs)(`div`,{className:`model-count`,children:[F.length,` model`,F.length===1?``:`s`,M?` / ${M.length} total`:``]}),B&&(0,L.jsxs)(`div`,{className:`model-info`,children:[(0,L.jsx)(`strong`,{children:B.name}),B.isFree&&(0,L.jsx)(`span`,{className:`badge-free`,children:`FREE`}),B.supportsJson&&(0,L.jsx)(`span`,{className:`badge-json`,children:`JSON`}),(0,L.jsx)(`br`,{}),`In: `,Q(B.promptPrice),`/M · Out:`,` `,Q(B.completionPrice),`/M · Ctx:`,` `,$(B.contextLength),B.maxOutput>0&&` · Max out: ${$(B.maxOutput)}`]}),i&&i.length>0&&(0,L.jsxs)(`div`,{className:`file-list-preview`,children:[(0,L.jsxs)(`strong`,{children:[i.length,` files selected:`]}),i.map(e=>(0,L.jsx)(`div`,{children:e},e))]}),(0,L.jsxs)(`div`,{className:`actions`,children:[(0,L.jsx)(`button`,{type:`button`,className:`btn btn-outline`,onClick:a,children:`Cancel`}),(0,L.jsx)(`button`,{type:`button`,className:`btn`,disabled:R.isPending||j&&!j.hasApiKey,onClick:()=>R.mutate(),children:R.isPending?`Starting...`:j&&!j.hasApiKey?`No API Key`:`Start Job →`})]})]})})}function Ce({m:e,mode:t,active:n,onClick:r}){return(0,L.jsxs)(`div`,{className:`model-item${n?` active`:``}`,onClick:r,children:[t===`rotate`&&(0,L.jsx)(`input`,{type:`checkbox`,checked:n,readOnly:!0,className:`model-check`}),(0,L.jsxs)(`span`,{className:`model-name`,children:[e.isFree&&`🆓 `,e.name]}),(0,L.jsxs)(`span`,{className:`model-meta`,children:[e.supportsJson?`✓ `:``,$(e.contextLength),` ·`,` `,e.isFree?`Free`:`${Q(e.promptPrice)}/${Q(e.completionPrice)}`]})]})}function we(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}function Te({job:e}){let t=v(),n=q({mutationFn:()=>Z.deleteJob(e.id),onSuccess:()=>t.invalidateQueries({queryKey:[`jobs`]})}),r=e.toTranslate>0?e.translatedFiles/e.toTranslate*100:e.status===`completed`?100:0,i=``;e.toTranslate>0?(i=`${e.translatedFiles}/${e.toTranslate} translated`,e.totalFiles&&(i+=` (${e.totalFiles} total)`)):e.totalFiles>0&&(i=`scanning ${e.totalFiles} files...`),e.errorFiles>0&&(i+=` · ${e.errorFiles} errors`);let a=e.status===`running`;return(0,L.jsxs)(`div`,{className:`job-item`,children:[(0,L.jsxs)(`div`,{className:`hdr`,children:[(0,L.jsx)(`span`,{className:`status-badge ${e.status}`,children:e.status}),(0,L.jsxs)(`strong`,{children:[e.lang,`/`,e.version]}),e.currentFile&&(0,L.jsx)(`span`,{style:{color:`var(--fg2)`},children:e.currentFile}),(0,L.jsx)(`span`,{className:`spacer`}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-sm btn-outline`,onClick:()=>n.mutate(),children:a?`⏹`:`🗑`})]}),(0,L.jsx)(`div`,{className:`progress-bar`,children:(0,L.jsx)(`div`,{className:`progress-fill`,style:{width:`${Math.min(100,r)}%`}})}),(0,L.jsxs)(`div`,{className:`job-meta`,children:[i,` · `,new Date(e.startedAt).toLocaleTimeString(),e.finishedAt&&` · done ${new Date(e.finishedAt).toLocaleTimeString()}`,e.exitCode!=null&&e.exitCode!==0&&` · exit ${e.exitCode}`]}),e.logLines&&e.logLines.length>0&&(0,L.jsxs)(`div`,{className:`log-viewer`,children:[(0,L.jsx)(`button`,{type:`button`,className:`log-copy`,title:`Copy logs`,onClick:()=>{navigator.clipboard.writeText(e.logLines.join(`
|
|
2
|
+
`))},children:`📋`}),e.logLines.map((e,t)=>(0,L.jsx)(`div`,{className:e.includes(`stderr`)||e.includes(`rror`)?`err`:void 0,dangerouslySetInnerHTML:{__html:we(e)}},t))]})]})}function Ee(){let e=v(),t=(0,P.useRef)(new Set),{data:n=[]}=K({queryKey:[`jobs`],queryFn:Z.jobs,refetchInterval:3e3});return(0,P.useEffect)(()=>{let r=new Set(n.filter(e=>e.status===`running`).map(e=>e.id));[...t.current].filter(e=>!r.has(e)).length>0&&(e.invalidateQueries({queryKey:[`files`]}),e.invalidateQueries({queryKey:[`fileBlocks`]}),e.invalidateQueries({queryKey:[`status`]})),t.current=r},[n,e]),(0,L.jsxs)(`div`,{className:`jobs-panel`,children:[(0,L.jsx)(`h3`,{children:`Jobs`}),n.length===0?(0,L.jsx)(`span`,{style:{color:`var(--fg2)`,fontSize:`0.85rem`},children:`No jobs`}):n.map(e=>(0,L.jsx)(Te,{job:e},e.id))]})}function De({value:e,color:t,height:n=4}){return(0,L.jsx)(`div`,{className:`bar-bg`,style:{height:n},children:(0,L.jsx)(`div`,{className:`bar-fill`,style:{width:`${Math.min(100,e)}%`,background:t||`var(--accent)`}})})}function Oe({data:e,version:t,selectedLang:n,onSelect:r}){let i=e.data[t];return i?(0,L.jsx)(`div`,{className:`lang-grid`,children:e.langs.map(e=>{if(e===`en`)return(0,L.jsxs)(`div`,{className:`lang-card is-en${n===`en`?` selected`:``}`,onClick:()=>r(`en`),children:[(0,L.jsxs)(`div`,{className:`name`,children:[J.en,` en (source)`]}),(0,L.jsxs)(`div`,{className:`stats`,children:[i.enFileCount,` files`]}),(0,L.jsx)(De,{value:100,color:`var(--green)`})]},`en`);let t=i.langs[e];if(!t)return null;let a=t.totalNodes>0?t.translatedNodes/t.totalNodes*100:0;return(0,L.jsxs)(`div`,{className:`lang-card${n===e?` selected`:``}`,onClick:()=>r(e),children:[(0,L.jsxs)(`div`,{className:`name`,children:[J[e],` `,e]}),(0,L.jsxs)(`div`,{className:`stats`,children:[a.toFixed(1),`%`]}),(0,L.jsx)(De,{value:a,color:re(a)})]},e)})}):null}function ke(e,t,n){let r=e.split(`
|
|
3
|
+
`)[0].match(/^(#{1,6})\s+(.+)/);if(!r)return null;let i=r[2].replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[]\(#[^)]*\)/g,``).replace(/[`*[\]]/g,``).trim();return{id:`${t}-h-${n}`,level:r[1].length,text:i}}function Ae(e,t,n=!1){let r=[];for(let i=0;i<e.length;i++){let a=ke(n&&e[i].translation!=null?e[i].translation:e[i].source,t,i);a&&r.push(a)}return r}function je({version:e,lang:t,file:n,viewMode:r,onViewMode:i,showToc:a,onToggleToc:o,showNodes:s,onToggleNodes:c,onClose:l}){let u=(0,P.useRef)(null),d=t===`en`,f=d?`en`:r,[p,m]=(0,P.useState)(null),[h,g]=(0,P.useState)(null),_=v(),y=q({mutationFn:n=>Z.deleteCache(e,t,n),onSuccess:()=>{_.invalidateQueries({queryKey:[`fileBlocks`,e,t,n]}),_.invalidateQueries({queryKey:[`files`]}),_.invalidateQueries({queryKey:[`status`]}),g(null)}});(0,P.useEffect)(()=>{if(!h)return;let e=()=>g(null);return window.addEventListener(`click`,e),()=>window.removeEventListener(`click`,e)},[h]);let{data:b}=K({queryKey:[`fileBlocks`,e,t,n],queryFn:()=>Z.fileBlocks(e,t,n)}),x=b?.blocks??[],S=f===`split`||f===`en`,C=!d&&(f===`split`||f===`lang`),w=(0,P.useMemo)(()=>Ae(x,`b`),[x]),T=(0,P.useMemo)(()=>Ae(x,`b`,!0),[x]),E=C?T:w,D=s&&x.length>0,O=(0,P.useMemo)(()=>x.filter(e=>e.md5),[x]),k=O.filter(e=>e.translation!=null).length,A=O.length;function j(e){let t=E[e];t&&document.getElementById(t.id)?.scrollIntoView({behavior:`smooth`,block:`start`})}let M=[];D&&M.push(`4.5rem`),S&&M.push(`1fr`),C&&M.push(`1fr`);let N=M.join(` `);return(0,L.jsxs)(`div`,{className:`preview-wrap`,children:[(0,L.jsxs)(`div`,{className:`preview-hdr`,children:[(0,L.jsx)(`a`,{className:`preview-filename`,href:`#`,title:`Click to open in editor`,onClick:t=>{t.preventDefault(),be({data:{file:`content/${e}/${n}`}})},children:n}),!d&&A>0&&(0,L.jsxs)(`span`,{className:`preview-stats`,children:[k,`/`,A,` (`,Math.round(k/A*100),`%)`]}),l&&(0,L.jsx)(`button`,{type:`button`,className:`preview-close`,onClick:l,title:`Close preview`,children:`✕`}),(0,L.jsxs)(`div`,{className:`preview-toggle`,children:[!d&&(0,L.jsx)(`button`,{type:`button`,className:s?`active`:``,onClick:c,title:`Toggle MD5`,children:`#`}),!d&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`button`,{type:`button`,className:f===`split`?`active`:``,onClick:()=>i(`split`),title:`Side by side`,children:`◫`}),(0,L.jsx)(`button`,{type:`button`,className:f===`en`?`active`:``,onClick:()=>i(`en`),title:`EN only`,children:J.en}),(0,L.jsx)(`button`,{type:`button`,className:f===`lang`?`active`:``,onClick:()=>i(`lang`),title:`${t} only`,children:J[t]})]}),(0,L.jsx)(`button`,{type:`button`,className:a?`active`:``,onClick:o,title:`Toggle TOC`,children:`☰`})]})]}),(0,L.jsxs)(`div`,{className:`preview-content-area`,children:[(0,L.jsxs)(`div`,{className:`preview-body-blocks`,ref:u,children:[D&&(0,L.jsxs)(`div`,{className:`block-header`,style:{gridTemplateColumns:N},children:[(0,L.jsx)(`span`,{className:`col-hdr gutter-hdr`,children:`MD5`}),S&&(0,L.jsx)(`span`,{className:`col-hdr`,children:`EN`}),C&&(0,L.jsx)(`span`,{className:`col-hdr`,children:t})]}),x.length===0&&(0,L.jsx)(`div`,{className:`preview-loading`,children:`Loading...`}),x.map((e,t)=>{let n=!e.md5,r=n&&!e.source.trim(),i=e.md5&&e.md5===p,a=ke(e.source,`b`,t);return(0,L.jsxs)(`div`,{id:e.md5?`block-${e.md5.slice(0,8)}`:void 0,className:`block-row${i?` block-highlight`:``}${r?` block-blank`:``}${n&&!r?` block-gap`:``}`,style:{gridTemplateColumns:N},children:[D&&(0,L.jsx)(`span`,{className:`block-gutter`,children:e.md5?(0,L.jsx)(`code`,{className:`gutter-md5 ${e.translation==null?`miss`:`done`}`,title:`${e.type} · ${e.md5}`,children:e.md5.slice(0,6)}):r?(0,L.jsx)(`span`,{className:`gutter-blank`}):(0,L.jsx)(`span`,{className:`gutter-gap`,children:e.type})}),S&&(0,L.jsx)(`pre`,{className:`block-cell${a?` block-heading`:``}`,id:a?.id,children:e.source}),C&&(0,L.jsx)(`pre`,{className:`block-cell${a?` block-heading`:``}${e.md5&&e.translation==null?` block-missing`:``}`,onContextMenu:t=>{!e.md5||d||(t.preventDefault(),g({x:t.clientX,y:t.clientY,md5:e.md5,type:e.type}))},children:e.translation==null?e.source:e.translation})]},t)})]}),a&&E.length>0&&(0,L.jsxs)(`div`,{className:`preview-toc`,children:[(0,L.jsx)(`div`,{className:`preview-toc-title`,children:`On this page`}),E.map((e,t)=>(0,L.jsx)(`a`,{href:`#${e.id}`,className:`h${e.level}`,onClick:e=>{e.preventDefault(),j(t)},children:e.text},e.id))]})]}),h&&(0,L.jsxs)(`div`,{className:`ctx-menu`,style:{left:h.x,top:h.y},onClick:e=>e.stopPropagation(),children:[(0,L.jsxs)(`div`,{className:`ctx-menu-header`,children:[(0,L.jsxs)(`code`,{children:[h.md5.slice(0,12),`…`]}),(0,L.jsx)(`span`,{className:`ctx-menu-type`,children:h.type})]}),(0,L.jsx)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(h.md5),g(null)},children:`📋 Copy MD5`}),(0,L.jsx)(`button`,{type:`button`,className:`ctx-menu-danger`,onClick:()=>y.mutate(h.md5),children:`🗑️ Delete cache`})]})]})}function Me(e){if(!e.some(e=>e.includes(`/`)))return{projects:[{id:`_default`,versions:e}],isMultiProject:!1};let t=new Map;for(let n of e){let e=n.indexOf(`/`),r=e>=0?n.slice(0,e):`_default`,i=e>=0?n.slice(e+1):n;t.has(r)||t.set(r,[]),t.get(r).push(i)}return{projects:Array.from(t.entries()).map(([e,t])=>({id:e,versions:t})),isMultiProject:!0}}function Ne(e){return!e?.user||e.user.isAnonymous?`guest`:e.user.role===`admin`?`admin`:`user`}function Pe(e){if(!e?.user)return`Guest`;let t=e.user;return t.isAnonymous?`Guest`:t.displayName||t.name||t.username||t.email||`User`}function Fe(){let e=b.useSearch(),{session:t}=b.useRouteContext(),r=n({from:`/`}),i=Ne(t),a=Pe(t),o=i===`admin`,s=e.lang||null,c=e.file||null,l=e.files!==`0`,u=e.view||`lang`,d=e.toc!==`0`,f=e.nodes===`1`,p=e.status||`all`,m=e.section||`all`,[h,g]=(0,P.useState)(()=>typeof window>`u`?`dark`:localStorage.getItem(`theme`)===`light`?`light`:`dark`),[_,v]=(0,P.useState)(null);(0,P.useEffect)(()=>{document.documentElement.dataset.theme=h},[h]),(0,P.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>v(null),3e3);return()=>clearTimeout(e)},[_]);let y=(0,P.useCallback)(e=>{r({search:t=>{let n={...t};for(let[t,r]of Object.entries(e))r==null||r===``?delete n[t]:n[t]=r;return n},replace:!0})},[r]),x=(0,P.useCallback)(e=>y({project:e||void 0,v:void 0,lang:void 0,file:void 0}),[y]),S=(0,P.useCallback)(e=>y({v:e||void 0,lang:void 0,file:void 0}),[y]),C=(0,P.useCallback)(e=>y({lang:e||void 0}),[y]),w=(0,P.useCallback)(e=>y({file:e||void 0}),[y]),E=(0,P.useCallback)(e=>y({files:e?void 0:`0`}),[y]),D=(0,P.useCallback)(e=>y({view:e===`lang`?void 0:e}),[y]),O=(0,P.useCallback)(e=>y({nodes:e?`1`:void 0}),[y]),k=(0,P.useCallback)(e=>y({toc:e?void 0:`0`}),[y]),A=(0,P.useCallback)(e=>y({status:e===`all`?void 0:e}),[y]),j=(0,P.useCallback)(e=>y({section:e===`all`?void 0:e}),[y]),[M,N]=(0,P.useState)(new Set),[F,I]=(0,P.useState)(!1),[R,z]=(0,P.useState)(),{data:B}=K({queryKey:[`status`],queryFn:Z.status}),{data:V}=K({queryKey:[`version`],queryFn:Z.version,staleTime:1/0}),{projectList:ee,isMultiProject:te,activeProject:H,activeVersions:ne,version:U}=(0,P.useMemo)(()=>{if(!B)return{projectList:[],isMultiProject:!1,activeProject:null,activeVersions:[],version:`latest`};let t=Me(B.versions),n=t.projects,r=t.isMultiProject,i=r&&(e.project||n[0]?.id)||null;r&&i&&!n.find(e=>e.id===i)&&(i=n[0]?.id||null);let a=r?n.find(e=>e.id===i)?.versions||[]:B.versions,o=e.v||a[0]||`latest`,s=r&&i?`${i}/${o}`:o;return{projectList:n,isMultiProject:r,activeProject:i,activeVersions:a,version:s}},[B,e.project,e.v]),W=te&&H&&U.startsWith(`${H}/`)?U.slice(H.length+1):U,{data:G}=K({queryKey:[`files`,U,s],queryFn:()=>Z.fileCoverage(U,s),enabled:!!s}),q=(0,P.useCallback)(e=>{x(e),N(new Set)},[x]),J=(0,P.useCallback)(e=>{S(e),N(new Set)},[S]),re=(0,P.useCallback)(e=>{C(e),N(new Set)},[C]),Y=(0,P.useCallback)(e=>{N(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ie=(0,P.useCallback)(e=>N(new Set(e)),[]),X=(0,P.useCallback)(()=>N(new Set),[]),ae=(0,P.useCallback)(()=>{if(!o){v(`Only admin users can start translation jobs`);return}z([...M]),I(!0)},[M,o]),oe=(0,P.useCallback)(()=>{if(!o){v(`Only admin users can start translation jobs`);return}z(void 0),I(!0)},[o]),se=(0,P.useCallback)(async()=>{await T.signOut(),r({to:`/login`})},[r]);return B?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`nav`,{children:[(0,L.jsxs)(`h1`,{children:[`Translation Admin `,V?.version&&(0,L.jsxs)(`span`,{className:`version-badge`,children:[`v`,V.version]})]}),(0,L.jsx)(`span`,{className:`spacer`}),o&&(0,L.jsx)(`button`,{type:`button`,className:`btn`,onClick:oe,children:`+ New Job`}),(0,L.jsxs)(`div`,{className:`user-info`,children:[(0,L.jsx)(`span`,{children:a}),(0,L.jsx)(`span`,{className:`user-role ${i}`,children:i})]}),(0,L.jsx)(`button`,{type:`button`,className:`btn-signout`,onClick:se,title:`Sign out`,children:`Sign Out`}),(0,L.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:()=>{let e=h===`light`?`dark`:`light`;g(e),localStorage.setItem(`theme`,e)},title:`Toggle theme`,children:h===`light`?`🌙`:`☀️`})]}),(0,L.jsxs)(`div`,{className:`container`,children:[te&&(0,L.jsx)(`div`,{className:`project-tabs`,children:ee.map(e=>(0,L.jsx)(`button`,{type:`button`,className:`project-tab${e.id===H?` active`:``}`,onClick:()=>q(e.id),children:e.id},e.id))}),(0,L.jsx)(`div`,{className:`tabs`,children:ne.map(e=>(0,L.jsx)(`button`,{type:`button`,className:`tab${e===W?` active`:``}`,onClick:()=>J(e),children:e},e))}),(0,L.jsx)(Oe,{data:B,version:U,selectedLang:s,onSelect:re}),(0,L.jsx)(Ee,{}),s&&G&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`file-panel-toolbar`,children:[(0,L.jsx)(`button`,{type:`button`,className:`btn btn-sm${l?` active`:``}`,onClick:()=>E(!l),children:l?`◀ Hide files`:`▶ Show files`}),c&&(0,L.jsx)(`span`,{className:`file-panel-current`,children:c})]}),(0,L.jsxs)(`div`,{className:`file-panel${l?``:` no-list`}${c?``:` no-preview`}`,children:[l&&(0,L.jsx)(le,{files:G,lang:s,activeFile:c,selected:M,statusFilter:p,sectionFilter:m,onStatusFilter:A,onSectionFilter:j,onSelect:w,onToggle:Y,onSelectAll:ie,onClear:X,onTranslateSelected:ae}),c&&(0,L.jsx)(je,{version:U,lang:s,file:c,viewMode:u,onViewMode:D,showToc:d,onToggleToc:()=>k(!d),showNodes:f,onToggleNodes:()=>O(!f),onClose:()=>w(null)})]})]})]}),_&&(0,L.jsx)(`div`,{className:`toast`,children:_}),F&&o&&(0,L.jsx)(Se,{langs:B.langs,versions:B.versions,defaultLang:s||void 0,defaultVersion:U,files:R,onClose:()=>I(!1),onSuccess:e=>{I(!1),v(e)}})]}):(0,L.jsx)(`div`,{className:`loading`,children:`Loading...`})}export{Fe as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:before,:after{box-sizing:border-box;scrollbar-width:none;margin:0;padding:0}::-webkit-scrollbar{display:none}:root{--bg:#0a0a0a;--fg:#ededed;--fg2:#888;--card:#141414;--border:#282828;--hover:#1c1c1c;--accent:#0070f3;--green:#00c853;--yellow:#ffd600;--red:#ff1744;--btn-fg:#fff;--code-fg:#ccc;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SF Mono", "Fira Code", "Cascadia Code", monospace}[data-theme=light]{--bg:#f5f5f5;--fg:#1a1a1a;--fg2:#666;--card:#fff;--border:#ddd;--hover:#eaeaea;--accent:#0060df;--green:#00873e;--yellow:#b58900;--red:#d32f2f;--btn-fg:#fff;--code-fg:#333}body{font-family:var(--font);background:var(--bg);color:var(--fg);min-height:100vh}nav{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:1rem 2rem;display:flex}nav h1{align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.version-badge{background:var(--accent);color:var(--bg);opacity:.8;border-radius:4px;padding:.15em .5em;font-size:.7rem;font-weight:500}.spacer{flex:1}.hidden{display:none}.loading{text-align:center;color:var(--fg2);padding:2rem}.btn{background:var(--accent);color:var(--btn-fg);cursor:pointer;border:none;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.btn:hover{opacity:.9}.btn-icon{color:var(--fg);background:0 0;padding:.35rem .5rem;font-size:1.1rem;line-height:1}.btn-icon:hover{background:var(--hover);opacity:1}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-outline{border:1px solid var(--border);color:var(--fg2);background:0 0}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.container{max-width:1400px;margin:0 auto;padding:1.5rem}@media (width>=1600px){.container{max-width:1800px}}@media (width>=2000px){.container{max-width:2200px}}.project-tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.project-tab{border:1px solid var(--border);color:var(--fg2);cursor:pointer;text-transform:capitalize;background:0 0;border-radius:9999px;padding:.4rem 1rem;font-size:.8rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.project-tab:hover{background:var(--hover);color:var(--fg)}.project-tab.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.tabs{gap:.5rem;margin-bottom:1.5rem;display:flex}.tab{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem}.tab.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.lang-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.lang-card{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:.5rem;padding:1rem;transition:border-color .15s}.lang-card:hover{border-color:var(--accent)}.lang-card.selected{border-color:var(--accent);background:#0070f310}.lang-card.is-en{border-style:dashed}.lang-card .name{margin-bottom:.5rem;font-size:.9rem;font-weight:600}.lang-card .stats{color:var(--fg2);font-size:.8rem}.bar-bg{background:var(--border);border-radius:2px;height:4px;margin-top:.5rem}.bar-fill{border-radius:2px;height:100%;transition:width .3s}.jobs-panel{border:1px solid var(--border);background:var(--card);border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.jobs-panel h3{margin-bottom:.75rem;font-size:.95rem}.job-item{border:1px solid var(--border);border-radius:.375rem;margin-bottom:.5rem;padding:.75rem;font-size:.85rem}.job-item .hdr{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.status-badge{border-radius:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.status-badge.running{color:var(--accent);background:#0070f320}.status-badge.completed{color:var(--green);background:#00c85320}.status-badge.failed{color:var(--red);background:#ff174420}.status-badge.cancelled{color:var(--yellow);background:#ffd60020}.job-meta{color:var(--fg2);margin-top:.25rem;font-size:.8rem}.progress-bar{background:var(--border);border-radius:2px;max-width:100%;height:3px;margin-top:.5rem;overflow:hidden}.progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.log-viewer{max-height:200px;font-family:var(--mono);color:#aaa;background:#000;border-radius:.375rem;margin-top:.5rem;padding:.75rem;font-size:.7rem;line-height:1.5;overflow-y:auto}.log-viewer .err{color:var(--red)}.file-panel-toolbar{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.file-panel-current{color:var(--fg2);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.btn-sm{padding:.25rem .6rem;font-size:.72rem}.file-panel{grid-template-columns:340px 1fr;gap:.5rem;height:calc(100vh - 70px);margin-bottom:0;display:grid}.file-panel.no-preview,.file-panel.no-list{grid-template-columns:1fr}.file-panel.no-list.no-preview{display:none}@media (width<=900px){.file-panel{grid-template-columns:1fr}}.file-list-wrap{border:1px solid var(--border);border-radius:.5rem;flex-direction:column;display:flex;overflow:hidden}.file-list-hdr{background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.file-list-hdr select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.25rem;padding:.25rem .5rem;font-size:.8rem}.file-list-body{flex:1;overflow-y:auto}.sel-bar{border-bottom:1px solid var(--border);background:#0070f310;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.file-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;padding:.375rem .75rem;font-size:.8rem;transition:background .1s;display:flex}.file-row:hover{background:var(--hover)}.file-row.active{background:#0070f315}.file-row input[type=checkbox]{cursor:pointer;margin-right:.5rem}.file-row .icon{flex-shrink:0;width:.75rem;font-size:.5rem}.file-row .path{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-row .pct{text-align:right;width:2rem;color:var(--fg2);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.65rem}.file-row .miss{color:var(--fg2);flex-shrink:0;margin-left:.25rem;font-size:.6rem}.file-row .mini-bar{background:var(--border);border-radius:1px;flex-shrink:0;width:20px;height:2px;margin-left:.25rem}.file-row .mini-fill{border-radius:2px;height:100%}.file-search{border-bottom:1px solid var(--border);padding:.35rem .5rem;position:relative}.file-search input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--fg);border-radius:.3rem;outline:none;padding:.3rem 1.5rem .3rem .5rem;font-size:.75rem}.file-search input:focus{border-color:var(--accent)}.file-search input::placeholder{color:var(--fg2)}.file-search-clear{color:var(--fg2);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.7rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.tree-dir{color:var(--fg2);font-weight:600}.tree-dir:hover{color:var(--fg)}.tree-arrow{text-align:center;flex-shrink:0;width:1rem;font-size:.6rem}.btn-xs{border:1px solid var(--border);background:var(--bg);color:var(--fg2);cursor:pointer;border-radius:.25rem;padding:.1rem .35rem;font-size:.65rem}.btn-xs.active{background:var(--accent);color:#fff;border-color:var(--accent)}.preview-wrap{border:1px solid var(--border);border-radius:.5rem;grid-template-rows:auto 1fr;height:100%;display:grid;overflow:hidden}.preview-hdr{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600;display:flex}a.preview-filename{text-overflow:ellipsis;white-space:nowrap;color:var(--blue,#58a6ff);cursor:pointer;text-decoration:none;overflow:hidden}a.preview-filename:hover{text-decoration:underline}.preview-close{width:24px;height:24px;color:var(--fg2);cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex}.preview-close:hover{background:var(--hover);color:var(--fg)}.preview-toggle{gap:2px;margin-left:auto;display:flex}.preview-toggle button{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;padding:.2rem .5rem;font-size:.75rem;line-height:1}.preview-toggle button:first-child{border-radius:.25rem 0 0 .25rem}.preview-toggle button:last-child{border-radius:0 .25rem .25rem 0}.preview-toggle button.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.preview-toc{border-left:1px solid var(--border);padding:.5rem 0;font-size:.7rem;line-height:1.7;overflow-y:auto}.preview-toc-title{text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);border-bottom:1px solid var(--border);margin-bottom:.35rem;padding:0 .5rem .35rem;font-size:.65rem;font-weight:700}.preview-toc a{color:var(--fg2);white-space:nowrap;text-overflow:ellipsis;border-radius:.25rem;padding:.1rem .5rem;text-decoration:none;display:block;overflow:hidden}.preview-toc a:hover{color:var(--accent);background:var(--hover)}.preview-toc a.h2{padding-left:.5rem}.preview-toc a.h3{padding-left:1.25rem}.preview-toc a.h4{padding-left:2rem}.preview-content-area{grid-template-columns:1fr;min-height:0;display:grid;overflow:hidden}.preview-content-area:has(.preview-toc){grid-template-columns:1fr 180px}.preview-body-blocks{background:var(--bg);overflow-y:auto}.preview-loading{text-align:center;color:var(--fg2);padding:2rem}.preview-stats{color:var(--fg2);margin-left:.5rem;font-size:.7rem;font-weight:400}.block-header{z-index:2;background:var(--card);border-bottom:1px solid var(--border);display:grid;position:sticky;top:0}.col-hdr{text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);padding:.25rem .5rem;font-size:.6rem;font-weight:700}.gutter-hdr{text-align:right;border-right:1px solid var(--border);background:var(--bg2);padding-right:.4rem}.block-row{border-bottom:1px dashed color-mix(in srgb, var(--border) 50%, transparent);display:grid}.block-row:last-child{border-bottom:none}.block-blank{min-height:1.2rem;max-height:1.2rem;overflow:hidden}.block-gap{opacity:.5}.block-gap .block-gutter{opacity:1}.gutter-blank{height:.5rem;display:block}.gutter-gap{color:var(--fg2);opacity:.5;font-size:.45rem;font-family:var(--mono)}.block-gutter{text-align:right;border-right:1px solid var(--border);background:var(--bg2);-webkit-user-select:none;user-select:none;align-self:stretch;padding:.2rem .4rem .2rem 0}.gutter-md5{font-size:.55rem;font-family:var(--mono);cursor:text;-webkit-user-select:text;user-select:text}.gutter-md5.done{color:var(--green)}.gutter-md5.miss{color:var(--red);font-weight:700}.block-cell{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--code-fg);border-right:1px solid var(--border);margin:0;padding:.2rem .5rem;font-size:.72rem;line-height:1.6}.block-cell:last-child{border-right:none}.block-heading{color:var(--accent);font-weight:700}.block-missing{background:color-mix(in srgb, var(--bg) 95%, var(--red))}.block-highlight{background:color-mix(in srgb, var(--accent) 15%, transparent);transition:background .3s}.dialog-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border:1px solid var(--border);border-radius:.75rem;width:420px;max-width:90vw;padding:1.5rem}.dialog.dialog-wide{width:620px}.dialog-mode-toggle{border:1px solid var(--border);border-radius:.375rem;gap:0;margin-bottom:.75rem;display:flex;overflow:hidden}.dialog-mode-toggle button{color:var(--fg2);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.8rem;font-weight:600}.dialog-mode-toggle button.active{background:var(--accent);color:var(--btn-fg)}.dialog-mode-toggle.small{border:none;gap:2px;margin-bottom:0}.dialog-mode-toggle.small button{border:1px solid var(--border);border-radius:.25rem;padding:.2rem .5rem;font-size:.7rem}.dialog-mode-hint{color:var(--fg2);margin:-.5rem 0 .75rem;font-size:.7rem}.dialog-section-hdr{justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:flex}.dialog-error{color:var(--red);margin-bottom:.5rem;font-size:.85rem}.dialog-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem;display:grid}.model-filters{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem;display:flex}.model-filters select,.model-search-input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.25rem;padding:.3rem .4rem;font-size:.7rem}.model-search-input{flex:1;min-width:100px}.model-filter-check{color:var(--fg2);cursor:pointer;white-space:nowrap;align-items:center;gap:.25rem;font-size:.7rem;display:flex}.model-filter-check input{margin:0}.model-slider-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.model-slider-label{color:var(--fg2);white-space:nowrap;min-width:90px;font-size:.7rem}.model-slider{accent-color:var(--accent);flex:1;height:4px}.model-list{border:1px solid var(--border);background:var(--bg);border-radius:.375rem;max-height:200px;margin-bottom:.25rem;overflow-y:auto}.model-item{cursor:pointer;border-bottom:1px solid var(--border);color:var(--fg);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.72rem;display:flex}.model-item:last-child{border-bottom:none}.model-item:hover{background:var(--hover)}.model-item.active{background:var(--accent);color:var(--btn-fg)}.model-item.disabled{color:var(--fg2);cursor:default;justify-content:center}.model-check{pointer-events:none;flex-shrink:0;margin:0 .3rem 0 0}.model-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.model-meta{color:var(--fg2);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:40%;font-size:.65rem;overflow:hidden}.model-item.active .model-meta{color:#ffffffbf}.model-count{color:var(--fg2);margin-bottom:.5rem;font-size:.65rem}.model-info{color:var(--fg2);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;margin-bottom:.75rem;padding:.5rem .6rem;font-size:.75rem}.model-info strong{color:var(--fg)}.badge-free,.badge-json{vertical-align:middle;border-radius:.2rem;margin-left:.4rem;padding:.1rem .3rem;font-size:.55rem;font-weight:700;display:inline-block}.badge-free{background:var(--green);color:#fff}.badge-json{background:var(--accent);color:#fff}.dialog h3{margin-bottom:1rem}.dialog label{color:var(--fg2);margin:.75rem 0 .25rem;font-size:.85rem;display:block}.dialog input:not([type=checkbox]):not([type=range]),.dialog select{background:var(--bg);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:.375rem;padding:.5rem;font-size:.85rem}.dialog .actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.dialog .file-list-preview{background:var(--bg);max-height:150px;color:var(--fg2);border-radius:.375rem;margin-top:.75rem;padding:.75rem;font-size:.8rem;overflow-y:auto}.toast{background:var(--accent);color:#fff;z-index:200;border-radius:.5rem;padding:.6rem 1.2rem;font-size:.85rem;font-weight:500;animation:.2s ease-out toast-in;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ctx-menu{z-index:300;background:var(--card);border:1px solid var(--border);border-radius:.5rem;min-width:160px;padding:.25rem 0;font-size:.8rem;position:fixed;box-shadow:0 4px 16px #0000004d}.ctx-menu-header{border-bottom:1px solid var(--border);color:var(--fg2);align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.65rem;display:flex}.ctx-menu-header code{font-family:var(--mono)}.ctx-menu-type{background:var(--bg);border:1px solid var(--border);border-radius:.2rem;padding:.05rem .3rem;font-size:.55rem}.ctx-menu button{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:none;padding:.4rem .75rem;font-size:.8rem;display:block}.ctx-menu button:hover{background:var(--hover)}.ctx-menu-danger{color:var(--red)}.ctx-menu-danger:hover{background:color-mix(in srgb, var(--red) 10%, transparent)}.log-viewer{position:relative}.log-copy{float:right;background:var(--card);border:1px solid var(--border);cursor:pointer;opacity:0;z-index:1;border-radius:.25rem;margin-right:.25rem;padding:.15rem .3rem;font-size:.7rem;transition:opacity .15s;position:sticky;top:.25rem}.log-viewer:hover .log-copy{opacity:1}.log-copy:hover{background:var(--hover)}
|
|
1
|
+
*,:before,:after{box-sizing:border-box;scrollbar-width:none;margin:0;padding:0}::-webkit-scrollbar{display:none}:root{--bg:#0a0a0a;--fg:#ededed;--fg2:#888;--card:#141414;--border:#282828;--hover:#1c1c1c;--accent:#0070f3;--green:#00c853;--yellow:#ffd600;--red:#ff1744;--btn-fg:#fff;--code-fg:#ccc;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SF Mono", "Fira Code", "Cascadia Code", monospace}[data-theme=light]{--bg:#f5f5f5;--fg:#1a1a1a;--fg2:#666;--card:#fff;--border:#ddd;--hover:#eaeaea;--accent:#0060df;--green:#00873e;--yellow:#b58900;--red:#d32f2f;--btn-fg:#fff;--code-fg:#333}body{font-family:var(--font);background:var(--bg);color:var(--fg);min-height:100vh}nav{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:1rem 2rem;display:flex}nav h1{align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.version-badge{background:var(--accent);color:var(--bg);opacity:.8;border-radius:4px;padding:.15em .5em;font-size:.7rem;font-weight:500}.spacer{flex:1}.hidden{display:none}.loading{text-align:center;color:var(--fg2);padding:2rem}.btn{background:var(--accent);color:var(--btn-fg);cursor:pointer;border:none;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.btn:hover{opacity:.9}.btn-icon{color:var(--fg);background:0 0;padding:.35rem .5rem;font-size:1.1rem;line-height:1}.btn-icon:hover{background:var(--hover);opacity:1}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-outline{border:1px solid var(--border);color:var(--fg2);background:0 0}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}.container{max-width:1400px;margin:0 auto;padding:1.5rem}@media (width>=1600px){.container{max-width:1800px}}@media (width>=2000px){.container{max-width:2200px}}.project-tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;display:flex}.project-tab{border:1px solid var(--border);color:var(--fg2);cursor:pointer;text-transform:capitalize;background:0 0;border-radius:9999px;padding:.4rem 1rem;font-size:.8rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.project-tab:hover{background:var(--hover);color:var(--fg)}.project-tab.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.tabs{gap:.5rem;margin-bottom:1.5rem;display:flex}.tab{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;border-radius:.375rem;padding:.5rem 1rem;font-size:.85rem}.tab.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.lang-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.lang-card{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:.5rem;padding:1rem;transition:border-color .15s}.lang-card:hover{border-color:var(--accent)}.lang-card.selected{border-color:var(--accent);background:#0070f310}.lang-card.is-en{border-style:dashed}.lang-card .name{margin-bottom:.5rem;font-size:.9rem;font-weight:600}.lang-card .stats{color:var(--fg2);font-size:.8rem}.bar-bg{background:var(--border);border-radius:2px;height:4px;margin-top:.5rem}.bar-fill{border-radius:2px;height:100%;transition:width .3s}.jobs-panel{border:1px solid var(--border);background:var(--card);border-radius:.5rem;margin-bottom:1.5rem;padding:1rem}.jobs-panel h3{margin-bottom:.75rem;font-size:.95rem}.job-item{border:1px solid var(--border);border-radius:.375rem;margin-bottom:.5rem;padding:.75rem;font-size:.85rem}.job-item .hdr{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.status-badge{border-radius:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.status-badge.running{color:var(--accent);background:#0070f320}.status-badge.completed{color:var(--green);background:#00c85320}.status-badge.failed{color:var(--red);background:#ff174420}.status-badge.cancelled{color:var(--yellow);background:#ffd60020}.job-meta{color:var(--fg2);margin-top:.25rem;font-size:.8rem}.progress-bar{background:var(--border);border-radius:2px;max-width:100%;height:3px;margin-top:.5rem;overflow:hidden}.progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.log-viewer{max-height:200px;font-family:var(--mono);color:#aaa;background:#000;border-radius:.375rem;margin-top:.5rem;padding:.75rem;font-size:.7rem;line-height:1.5;overflow-y:auto}.log-viewer .err{color:var(--red)}.file-panel-toolbar{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.file-panel-current{color:var(--fg2);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.btn-sm{padding:.25rem .6rem;font-size:.72rem}.file-panel{grid-template-columns:340px 1fr;gap:.5rem;height:calc(100vh - 70px);margin-bottom:0;display:grid}.file-panel.no-preview,.file-panel.no-list{grid-template-columns:1fr}.file-panel.no-list.no-preview{display:none}@media (width<=900px){.file-panel{grid-template-columns:1fr}}.file-list-wrap{border:1px solid var(--border);border-radius:.5rem;flex-direction:column;display:flex;overflow:hidden}.file-list-hdr{background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.file-list-hdr select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.25rem;padding:.25rem .5rem;font-size:.8rem}.file-list-body{flex:1;overflow-y:auto}.sel-bar{border-bottom:1px solid var(--border);background:#0070f310;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.file-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;padding:.375rem .75rem;font-size:.8rem;transition:background .1s;display:flex}.file-row:hover{background:var(--hover)}.file-row.active{background:#0070f315}.file-row input[type=checkbox]{cursor:pointer;margin-right:.5rem}.file-row .icon{flex-shrink:0;width:.75rem;font-size:.5rem}.file-row .path{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-row .pct{text-align:right;width:2rem;color:var(--fg2);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.65rem}.file-row .miss{color:var(--fg2);flex-shrink:0;margin-left:.25rem;font-size:.6rem}.file-row .mini-bar{background:var(--border);border-radius:1px;flex-shrink:0;width:20px;height:2px;margin-left:.25rem}.file-row .mini-fill{border-radius:2px;height:100%}.file-search{border-bottom:1px solid var(--border);padding:.35rem .5rem;position:relative}.file-search input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--fg);border-radius:.3rem;outline:none;padding:.3rem 1.5rem .3rem .5rem;font-size:.75rem}.file-search input:focus{border-color:var(--accent)}.file-search input::placeholder{color:var(--fg2)}.file-search-clear{color:var(--fg2);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.7rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.tree-dir{color:var(--fg2);font-weight:600}.tree-dir:hover{color:var(--fg)}.tree-arrow{text-align:center;flex-shrink:0;width:1rem;font-size:.6rem}.btn-xs{border:1px solid var(--border);background:var(--bg);color:var(--fg2);cursor:pointer;border-radius:.25rem;padding:.1rem .35rem;font-size:.65rem}.btn-xs.active{background:var(--accent);color:#fff;border-color:var(--accent)}.preview-wrap{border:1px solid var(--border);border-radius:.5rem;grid-template-rows:auto 1fr;height:100%;display:grid;overflow:hidden}.preview-hdr{background:var(--card);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;font-weight:600;display:flex}a.preview-filename{text-overflow:ellipsis;white-space:nowrap;color:var(--blue,#58a6ff);cursor:pointer;text-decoration:none;overflow:hidden}a.preview-filename:hover{text-decoration:underline}.preview-close{width:24px;height:24px;color:var(--fg2);cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex}.preview-close:hover{background:var(--hover);color:var(--fg)}.preview-toggle{gap:2px;margin-left:auto;display:flex}.preview-toggle button{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;padding:.2rem .5rem;font-size:.75rem;line-height:1}.preview-toggle button:first-child{border-radius:.25rem 0 0 .25rem}.preview-toggle button:last-child{border-radius:0 .25rem .25rem 0}.preview-toggle button.active{background:var(--accent);color:var(--btn-fg);border-color:var(--accent)}.preview-toc{border-left:1px solid var(--border);padding:.5rem 0;font-size:.7rem;line-height:1.7;overflow-y:auto}.preview-toc-title{text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);border-bottom:1px solid var(--border);margin-bottom:.35rem;padding:0 .5rem .35rem;font-size:.65rem;font-weight:700}.preview-toc a{color:var(--fg2);white-space:nowrap;text-overflow:ellipsis;border-radius:.25rem;padding:.1rem .5rem;text-decoration:none;display:block;overflow:hidden}.preview-toc a:hover{color:var(--accent);background:var(--hover)}.preview-toc a.h2{padding-left:.5rem}.preview-toc a.h3{padding-left:1.25rem}.preview-toc a.h4{padding-left:2rem}.preview-content-area{grid-template-columns:1fr;min-height:0;display:grid;overflow:hidden}.preview-content-area:has(.preview-toc){grid-template-columns:1fr 180px}.preview-body-blocks{background:var(--bg);overflow-y:auto}.preview-loading{text-align:center;color:var(--fg2);padding:2rem}.preview-stats{color:var(--fg2);margin-left:.5rem;font-size:.7rem;font-weight:400}.block-header{z-index:2;background:var(--card);border-bottom:1px solid var(--border);display:grid;position:sticky;top:0}.col-hdr{text-transform:uppercase;letter-spacing:.05em;color:var(--fg2);padding:.25rem .5rem;font-size:.6rem;font-weight:700}.gutter-hdr{text-align:right;border-right:1px solid var(--border);background:var(--bg2);padding-right:.4rem}.block-row{border-bottom:1px dashed color-mix(in srgb, var(--border) 50%, transparent);display:grid}.block-row:last-child{border-bottom:none}.block-blank{min-height:1.2rem;max-height:1.2rem;overflow:hidden}.block-gap{opacity:.5}.block-gap .block-gutter{opacity:1}.gutter-blank{height:.5rem;display:block}.gutter-gap{color:var(--fg2);opacity:.5;font-size:.45rem;font-family:var(--mono)}.block-gutter{text-align:right;border-right:1px solid var(--border);background:var(--bg2);-webkit-user-select:none;user-select:none;align-self:stretch;padding:.2rem .4rem .2rem 0}.gutter-md5{font-size:.55rem;font-family:var(--mono);cursor:text;-webkit-user-select:text;user-select:text}.gutter-md5.done{color:var(--green)}.gutter-md5.miss{color:var(--red);font-weight:700}.block-cell{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--code-fg);border-right:1px solid var(--border);margin:0;padding:.2rem .5rem;font-size:.72rem;line-height:1.6}.block-cell:last-child{border-right:none}.block-heading{color:var(--accent);font-weight:700}.block-missing{background:color-mix(in srgb, var(--bg) 95%, var(--red))}.block-highlight{background:color-mix(in srgb, var(--accent) 15%, transparent);transition:background .3s}.dialog-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border:1px solid var(--border);border-radius:.75rem;width:420px;max-width:90vw;padding:1.5rem}.dialog.dialog-wide{width:620px}.dialog-mode-toggle{border:1px solid var(--border);border-radius:.375rem;gap:0;margin-bottom:.75rem;display:flex;overflow:hidden}.dialog-mode-toggle button{color:var(--fg2);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.8rem;font-weight:600}.dialog-mode-toggle button.active{background:var(--accent);color:var(--btn-fg)}.dialog-mode-toggle.small{border:none;gap:2px;margin-bottom:0}.dialog-mode-toggle.small button{border:1px solid var(--border);border-radius:.25rem;padding:.2rem .5rem;font-size:.7rem}.dialog-mode-hint{color:var(--fg2);margin:-.5rem 0 .75rem;font-size:.7rem}.dialog-section-hdr{justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:flex}.dialog-error{color:var(--red);margin-bottom:.5rem;font-size:.85rem}.dialog-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem;display:grid}.model-filters{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem;display:flex}.model-filters select,.model-search-input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.25rem;padding:.3rem .4rem;font-size:.7rem}.model-search-input{flex:1;min-width:100px}.model-filter-check{color:var(--fg2);cursor:pointer;white-space:nowrap;align-items:center;gap:.25rem;font-size:.7rem;display:flex}.model-filter-check input{margin:0}.model-slider-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.model-slider-label{color:var(--fg2);white-space:nowrap;min-width:90px;font-size:.7rem}.model-slider{accent-color:var(--accent);flex:1;height:4px}.model-list{border:1px solid var(--border);background:var(--bg);border-radius:.375rem;max-height:200px;margin-bottom:.25rem;overflow-y:auto}.model-item{cursor:pointer;border-bottom:1px solid var(--border);color:var(--fg);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.72rem;display:flex}.model-item:last-child{border-bottom:none}.model-item:hover{background:var(--hover)}.model-item.active{background:var(--accent);color:var(--btn-fg)}.model-item.disabled{color:var(--fg2);cursor:default;justify-content:center}.model-check{pointer-events:none;flex-shrink:0;margin:0 .3rem 0 0}.model-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.model-meta{color:var(--fg2);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:40%;font-size:.65rem;overflow:hidden}.model-item.active .model-meta{color:#ffffffbf}.model-count{color:var(--fg2);margin-bottom:.5rem;font-size:.65rem}.model-info{color:var(--fg2);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;margin-bottom:.75rem;padding:.5rem .6rem;font-size:.75rem}.model-info strong{color:var(--fg)}.badge-free,.badge-json{vertical-align:middle;border-radius:.2rem;margin-left:.4rem;padding:.1rem .3rem;font-size:.55rem;font-weight:700;display:inline-block}.badge-free{background:var(--green);color:#fff}.badge-json{background:var(--accent);color:#fff}.dialog h3{margin-bottom:1rem}.dialog label{color:var(--fg2);margin:.75rem 0 .25rem;font-size:.85rem;display:block}.dialog input:not([type=checkbox]):not([type=range]),.dialog select{background:var(--bg);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:.375rem;padding:.5rem;font-size:.85rem}.dialog .actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.dialog .file-list-preview{background:var(--bg);max-height:150px;color:var(--fg2);border-radius:.375rem;margin-top:.75rem;padding:.75rem;font-size:.8rem;overflow-y:auto}.toast{background:var(--accent);color:#fff;z-index:200;border-radius:.5rem;padding:.6rem 1.2rem;font-size:.85rem;font-weight:500;animation:.2s ease-out toast-in;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ctx-menu{z-index:300;background:var(--card);border:1px solid var(--border);border-radius:.5rem;min-width:160px;padding:.25rem 0;font-size:.8rem;position:fixed;box-shadow:0 4px 16px #0000004d}.ctx-menu-header{border-bottom:1px solid var(--border);color:var(--fg2);align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.65rem;display:flex}.ctx-menu-header code{font-family:var(--mono)}.ctx-menu-type{background:var(--bg);border:1px solid var(--border);border-radius:.2rem;padding:.05rem .3rem;font-size:.55rem}.ctx-menu button{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:none;padding:.4rem .75rem;font-size:.8rem;display:block}.ctx-menu button:hover{background:var(--hover)}.ctx-menu-danger{color:var(--red)}.ctx-menu-danger:hover{background:color-mix(in srgb, var(--red) 10%, transparent)}.log-viewer{position:relative}.log-copy{float:right;background:var(--card);border:1px solid var(--border);cursor:pointer;opacity:0;z-index:1;border-radius:.25rem;margin-right:.25rem;padding:.15rem .3rem;font-size:.7rem;transition:opacity .15s;position:sticky;top:.25rem}.log-viewer:hover .log-copy{opacity:1}.log-copy:hover{background:var(--hover)}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;width:380px;max-width:100%;padding:2rem}.login-card h2{text-align:center;margin-bottom:.25rem;font-size:1.3rem}.login-subtitle{text-align:center;color:var(--fg2);margin-bottom:1.25rem;font-size:.85rem}.login-mode-toggle{border:1px solid var(--border);border-radius:.375rem;gap:0;margin-bottom:1rem;display:flex;overflow:hidden}.login-mode-toggle button{color:var(--fg2);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.login-mode-toggle button.active{background:var(--accent);color:var(--btn-fg)}.login-card label{color:var(--fg2);margin:.75rem 0 .25rem;font-size:.8rem;display:block}.login-card input{background:var(--bg);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:.375rem;outline:none;padding:.55rem .75rem;font-size:.85rem}.login-card input:focus{border-color:var(--accent)}.login-btn{width:100%;margin-top:1rem;padding:.6rem;font-size:.9rem}.login-error{background:color-mix(in srgb, var(--red) 10%, transparent);color:var(--red);border-radius:.375rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.8rem}.login-divider{color:var(--fg2);align-items:center;gap:.75rem;margin:1.25rem 0;font-size:.8rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-hint{text-align:center;color:var(--fg2);margin-top:.75rem;font-size:.75rem}.user-info{color:var(--fg2);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.user-role{text-transform:uppercase;border-radius:.25rem;padding:.1rem .4rem;font-size:.65rem;font-weight:600}.user-role.admin{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent)}.user-role.user{background:color-mix(in srgb, var(--green) 20%, transparent);color:var(--green)}.user-role.guest{background:color-mix(in srgb, var(--yellow) 20%, transparent);color:var(--yellow)}.btn-signout{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;border-radius:.25rem;padding:.3rem .6rem;font-size:.75rem}.btn-signout:hover{border-color:var(--red);color:var(--red)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.4`})),u=o(((e,t)=>{t.exports=l()})),d=c(u(),1),f=d.use,p=typeof window<`u`?d.useLayoutEffect:d.useEffect;function m(e){let t=d.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function h(e,t,n={},r={}){d.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!=`function`)return;let i=new IntersectionObserver(([e])=>{t(e)},n);return i.observe(e.current),()=>{i.disconnect()}},[t,n,r.disabled,e])}function g(e){let t=d.useRef(null);return d.useImperativeHandle(e,()=>t.current,[]),t}var _=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),v=o(((e,t)=>{t.exports=_()})),y=d.createContext(null);function b(e){return d.useContext(y)}function x(e){let t=b();return d.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}export{f as a,p as c,o as d,c as f,v as i,m as l,b as n,g as o,y as r,h as s,x as t,u};
|