9remote 3.0.39 → 3.0.43
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/dist/cli.cjs +86 -86
- package/dist/extension/background.js +197 -81
- package/dist/extension/manifest.json +6 -5
- package/dist/extension/popup.html +7 -0
- package/dist/extension/popup.js +6 -0
- package/dist/extension/runner.js +606 -0
- package/dist/ptyDaemon.cjs +5 -5
- package/dist/server.cjs +254 -250
- package/dist/ui/assets/index-DQvkcQ8W.js +8 -0
- package/dist/ui/index.html +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +4 -4
- package/dist/web/__next._full.txt +29 -23
- package/dist/web/__next._head.txt +4 -4
- package/dist/web/__next._index.txt +13 -10
- package/dist/web/__next._tree.txt +3 -3
- package/dist/web/_next/static/AhLhl9t958vI0woNHnp3P/_buildManifest.js +1 -0
- package/dist/web/_next/static/chunks/{0fb7b532.2e7a08a3edb2d789.js → 025762a4.c49f8207624e1667.js} +1 -1
- package/dist/web/_next/static/chunks/101.bfb3898573e4245d.js +1 -0
- package/dist/web/_next/static/chunks/1342.3d5707800ea67dcb.js +1 -0
- package/dist/web/_next/static/chunks/153.d7a869e0874f32e0.js +1 -0
- package/dist/web/_next/static/chunks/1561.8d395206716b3967.js +1 -0
- package/dist/web/_next/static/chunks/{4314.6bbd89507909cad1.js → 1599.ed9aa4b461112c1a.js} +1 -1
- package/dist/web/_next/static/chunks/1694.7c4e72f21d4ce34c.js +1 -0
- package/dist/web/_next/static/chunks/1772-ef73c166e83f5eff.js +1 -0
- package/dist/web/_next/static/chunks/1878.724a4af779f951aa.js +138 -0
- package/dist/web/_next/static/chunks/1879.0252e2bd9153348f.js +1 -0
- package/dist/web/_next/static/chunks/1920-5ead25286846df83.js +1 -0
- package/dist/web/_next/static/chunks/1968-4d2969f0b7112e0b.js +32 -0
- package/dist/web/_next/static/chunks/2004.f975891d8a569296.js +24 -0
- package/dist/web/_next/static/chunks/2094.05efbc3414828946.js +1 -0
- package/dist/web/_next/static/chunks/2209.2ee6023fed2ac7a5.js +1 -0
- package/dist/web/_next/static/chunks/236.88ef102773dd3a91.js +1 -0
- package/dist/web/_next/static/chunks/2369.22023f63f0eaf8db.js +1 -0
- package/dist/web/_next/static/chunks/{6420.bfa7bc86d03dcefc.js → 2401.73a0315a75c7b051.js} +1 -1
- package/dist/web/_next/static/chunks/2427.3a468cdfabd25124.js +1 -0
- package/dist/web/_next/static/chunks/2436.da0ef064f744b8af.js +115 -0
- package/dist/web/_next/static/chunks/{1222.16edfbb0beb9081f.js → 2488.87361126358794fd.js} +1 -1
- package/dist/web/_next/static/chunks/2561.6c8eb8cf71429d5d.js +36 -0
- package/dist/web/_next/static/chunks/2581.d09a7f19c64e4b97.js +1 -0
- package/dist/web/_next/static/chunks/{8044.5f87392585c9f3e4.js → 2615.86c58079ec7c597c.js} +1 -1
- package/dist/web/_next/static/chunks/2934.0caeb8b2d8b67139.js +1 -0
- package/dist/web/_next/static/chunks/{6274.a3795ca6dacb3d62.js → 3011.fc80a2aad3ef8778.js} +2 -2
- package/dist/web/_next/static/chunks/3255.3c96f02d5eb06783.js +23 -0
- package/dist/web/_next/static/chunks/3284.e56b0102fb9a3920.js +62 -0
- package/dist/web/_next/static/chunks/3301.1f7e2bd5ccb55064.js +1 -0
- package/dist/web/_next/static/chunks/3314.b5b5b3cca99d832e.js +1 -0
- package/dist/web/_next/static/chunks/{20154aaa.868648f838e03bf1.js → 33d0405b.71576a1f83124ecd.js} +1 -1
- package/dist/web/_next/static/chunks/3428.8818e0ef88c0e743.js +1 -0
- package/dist/web/_next/static/chunks/{3429.e69c6bd48e1207a9.js → 3443.8d771dadb470603c.js} +1 -1
- package/dist/web/_next/static/chunks/{6742.88fddf128fbeb43d.js → 3704.bf80aa0d55f950d0.js} +1 -1
- package/dist/web/_next/static/chunks/3916.141fb720bd1eee40.js +148 -0
- package/dist/web/_next/static/chunks/3973.e5c2013e2abeefd3.js +93 -0
- package/dist/web/_next/static/chunks/4065.7616cbd8f37a68e6.js +1 -0
- package/dist/web/_next/static/chunks/{9299.e37149b455be7e9d.js → 4129.a93c19870036f647.js} +1 -1
- package/dist/web/_next/static/chunks/{6730.88fc6f2ccc49496c.js → 4171.b0e5c6dc86bc8a5f.js} +1 -1
- package/dist/web/_next/static/chunks/4330.a8740b63075e6886.js +1 -0
- package/dist/web/_next/static/chunks/4378.a0629cfcbc20c406.js +1 -0
- package/dist/web/_next/static/chunks/4553.cad71717d538a2e5.js +1 -0
- package/dist/web/_next/static/chunks/4589.9bd287581ccd378b.js +1 -0
- package/dist/web/_next/static/chunks/4594.53636acacf285911.js +34 -0
- package/dist/web/_next/static/chunks/466.908e4592c2b93997.js +77 -0
- package/dist/web/_next/static/chunks/468.2e48222bf3517040.js +1 -0
- package/dist/web/_next/static/chunks/4712.b7062faa67f544b5.js +1 -0
- package/dist/web/_next/static/chunks/{9675.be4a175f92aa2f26.js → 4724.e0dffedb6972b738.js} +1 -1
- package/dist/web/_next/static/chunks/482.a0b5af31d7354a82.js +1 -0
- package/dist/web/_next/static/chunks/4929.fce0c23972476c66.js +1 -0
- package/dist/web/_next/static/chunks/4964.5a41b2d776aee556.js +1 -0
- package/dist/web/_next/static/chunks/499.cf81a39b9e6ce4a4.js +94 -0
- package/dist/web/_next/static/chunks/{0a7753a9.4cb02a98e2e453b9.js → 4ff7191e.d68cdd8504937de5.js} +1 -1
- package/dist/web/_next/static/chunks/5035.f7175d1037807b62.js +90 -0
- package/dist/web/_next/static/chunks/5198.b8e3a08cb60bc349.js +1 -0
- package/dist/web/_next/static/chunks/5421.430fa3a5488e15a9.js +21 -0
- package/dist/web/_next/static/chunks/{9871-c277aedb0437cb82.js → 556-a8f04c41c5663ee8.js} +1 -1
- package/dist/web/_next/static/chunks/5587-fc5af8c76df14222.js +1 -0
- package/dist/web/_next/static/chunks/5710.b055a101d6b51ff3.js +27 -0
- package/dist/web/_next/static/chunks/{2180.edcf5dc3d77ceee8.js → 5714.122f8cb7296bc9e1.js} +1 -1
- package/dist/web/_next/static/chunks/{1243.3f23d89283c156ea.js → 5757.2c157c0924cea1c2.js} +1 -1
- package/dist/web/_next/static/chunks/{3346-23aafd4add63869a.js → 5957-3d5d92b58dcc7d4e.js} +1 -1
- package/dist/web/_next/static/chunks/{565f33a6-fd3410bd29f39fdf.js → 5b8e7b36-a2678128cd5bdf5e.js} +1 -1
- package/dist/web/_next/static/chunks/6141-132d206408947c60.js +1 -0
- package/dist/web/_next/static/chunks/{7424.c8c9f85c8ea65885.js → 6181.6bdde6f59e3f2cea.js} +1 -1
- package/dist/web/_next/static/chunks/6221-cf883148bf8a4c1e.js +11 -0
- package/dist/web/_next/static/chunks/{3552.8dd9a3d2c3bcef65.js → 6372.51e578b15d566c0e.js} +2 -2
- package/dist/web/_next/static/chunks/6405.39e8b42a56b88bb5.js +1 -0
- package/dist/web/_next/static/chunks/641.7b1b12ccc56b3b3c.js +1 -0
- package/dist/web/_next/static/chunks/{6647.740ec32a32201eab.js → 6418.a86ca6012f0867ff.js} +1 -1
- package/dist/web/_next/static/chunks/{4924.3f5c77a103ac69a9.js → 6435.6aef0f9f1cc65be6.js} +1 -1
- package/dist/web/_next/static/chunks/6439.f02105d3687113e7.js +1 -0
- package/dist/web/_next/static/chunks/647.527b9a09373aab91.js +1 -0
- package/dist/web/_next/static/chunks/{8115.68d46fb961c724e0.js → 6470.7057ef6894a7f625.js} +16 -16
- package/dist/web/_next/static/chunks/{7507.77d9ac9eb03518f7.js → 6485.6ae2f3966cc25c9e.js} +1 -1
- package/dist/web/_next/static/chunks/{6987.743a63813c6288ce.js → 6512.cc81f46437639a0e.js} +2 -2
- package/dist/web/_next/static/chunks/6520.73f10855f9d4b5a8.js +1 -0
- package/dist/web/_next/static/chunks/668.1ddcf2e38071ae57.js +24 -0
- package/dist/web/_next/static/chunks/6815.8126ae5481c3bfd8.js +1 -0
- package/dist/web/_next/static/chunks/6925-af784cffb03dd330.js +1 -0
- package/dist/web/_next/static/chunks/6e6d0562.6ebb8f7db67bd943.js +122 -0
- package/dist/web/_next/static/chunks/7058.affbacca3457f5a7.js +41 -0
- package/dist/web/_next/static/chunks/7207.72d8a01e77112af2.js +1 -0
- package/dist/web/_next/static/chunks/{4090.441fa61655da9b38.js → 7359.b09680f38f75e105.js} +1 -1
- package/dist/web/_next/static/chunks/7369.a824cc623274cf63.js +1 -0
- package/dist/web/_next/static/chunks/7489.24938d89538cd03e.js +1 -0
- package/dist/web/_next/static/chunks/{9641.f6f2982fc4b4735f.js → 7576.273c3d0faf5c3d02.js} +1 -1
- package/dist/web/_next/static/chunks/7620.5c5935fd937c0e84.js +1 -0
- package/dist/web/_next/static/chunks/{1228.c4aa83586b3730b6.js → 7646.1c26e96ee36bc317.js} +1 -1
- package/dist/web/_next/static/chunks/7712.cd8c3dc2d794d714.js +1 -0
- package/dist/web/_next/static/chunks/{2038.b77e2c3d38385a76.js → 7812.aabc856212c93434.js} +1 -1
- package/dist/web/_next/static/chunks/804.38f05d79313a8dcc.js +104 -0
- package/dist/web/_next/static/chunks/8126-8e53bfff5a06af4e.js +1 -0
- package/dist/web/_next/static/chunks/820-99036fb63c5462c8.js +1 -0
- package/dist/web/_next/static/chunks/8304.936a74abe6f0a288.js +1 -0
- package/dist/web/_next/static/chunks/8314.7ff9d72cd8613f75.js +226 -0
- package/dist/web/_next/static/chunks/8390.5eda620e73ea6c5c.js +74 -0
- package/dist/web/_next/static/chunks/860.f7885efc630bcfd7.js +1 -0
- package/dist/web/_next/static/chunks/87c73c54-e11922cda838f8cc.js +1 -0
- package/dist/web/_next/static/chunks/887.15090f9a6a142a10.js +1 -0
- package/dist/web/_next/static/chunks/8977.1ab6ed8e2c098cf0.js +1 -0
- package/dist/web/_next/static/chunks/9121-897f98b646fc2ac0.js +1 -0
- package/dist/web/_next/static/chunks/9491-6dc334192080d071.js +86 -0
- package/dist/web/_next/static/chunks/951ed0e8.98070dce91103a63.js +1 -0
- package/dist/web/_next/static/chunks/9651.d199fbbbc3de43b8.js +215 -0
- package/dist/web/_next/static/chunks/9692.dd07a90166f5e6ff.js +1 -0
- package/dist/web/_next/static/chunks/{6075.a6b8434732056526.js → 9700.c47024f592537718.js} +1 -1
- package/dist/web/_next/static/chunks/9711.cf7aaa7fa6ec7dd7.js +287 -0
- package/dist/web/_next/static/chunks/9736.63b4a559c8a23186.js +1 -0
- package/dist/web/_next/static/chunks/{bbfbfb6c.069db3c4cc981ed3.js → 98f82933.0c4f9e5e83926351.js} +1 -1
- package/dist/web/_next/static/chunks/{da9a53d6.df25e193f1f5bcae.js → a36ae3fc.d666935373d1f579.js} +4 -4
- package/dist/web/_next/static/chunks/{adcd17ec-9a2791632136b67b.js → ab6c8a12-9dac45de556d8a8d.js} +1 -1
- package/dist/web/_next/static/chunks/app/_global-error/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/_not-found/page-9f829d2c4beb1840.js +1 -0
- package/dist/web/_next/static/chunks/app/admin/access/page-45f45ad529e5b691.js +5 -0
- package/dist/web/_next/static/chunks/app/admin/login/page-382072b5b43d3c29.js +1 -0
- package/dist/web/_next/static/chunks/app/admin/ota/page-293c0743bd60f454.js +5 -0
- package/dist/web/_next/static/chunks/app/admin/page-fc676dae451dd646.js +5 -0
- package/dist/web/_next/static/chunks/app/admin/turn/page-2ab33033fc7f0919.js +5 -0
- package/dist/web/_next/static/chunks/app/download/{page-2811ea822a1e586a.js → page-a65d1c7fcf6397af.js} +1 -1
- package/dist/web/_next/static/chunks/app/layout-f1429d22e935695f.js +1 -0
- package/dist/web/_next/static/chunks/app/login/page-a5dd37d1cbbb394e.js +1 -0
- package/dist/web/_next/static/chunks/app/{page-8387dba850541259.js → page-1e67d8a5f3775276.js} +3 -3
- package/dist/web/_next/static/chunks/app/workspace/browse/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/editor/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/files/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/git/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/layout-336820247249f65c.js +20 -0
- package/dist/web/_next/static/chunks/app/workspace/mobile/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/pair/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/remote/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/welcome/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/app/workspace/workspaces/page-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/b2b4fb58.d2a067fe7df4a0d0.js +1 -0
- package/dist/web/_next/static/chunks/baeaa4ff-8eac34d2e07d1bb3.js +1 -0
- package/dist/web/_next/static/chunks/{7c89255b.f727562586fa21cc.js → c2d9a0c9.b4e0bb73c2ed317c.js} +1 -1
- package/dist/web/_next/static/chunks/{a012e9f0.7dbb2fe05ec0b816.js → ccfb6294.add4177b76c37868.js} +11 -11
- package/dist/web/_next/static/chunks/{c7ea4e13.6153499d4c2fb1f2.js → db261188.134a04dd616706a4.js} +1 -1
- package/dist/web/_next/static/chunks/framework-59d2d1720fc2b396.js +1 -0
- package/dist/web/_next/static/chunks/main-app-72391b47e9393c1b.js +1 -0
- package/dist/web/_next/static/chunks/main-e10b0dbebb4de0a8.js +5 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-48f06b4c48a1eef3.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-2ece09c883187d82.js +1 -0
- package/dist/web/_next/static/chunks/webpack-dd1f7a5ae02e5d84.js +1 -0
- package/dist/web/_next/static/css/{b496025c9cd768cc.css → 15730e9f7c5c55ef.css} +1 -1
- package/dist/web/_next/static/css/7b03063e80720027.css +1 -0
- package/dist/web/_not-found/__next._full.txt +23 -19
- package/dist/web/_not-found/__next._head.txt +4 -4
- package/dist/web/_not-found/__next._index.txt +10 -10
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/dist/web/_not-found/__next._not-found.txt +3 -3
- package/dist/web/_not-found/__next._tree.txt +3 -3
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +23 -19
- package/dist/web/admin/__next._full.txt +32 -25
- package/dist/web/admin/__next._head.txt +4 -4
- package/dist/web/admin/__next._index.txt +13 -10
- package/dist/web/admin/__next._tree.txt +3 -3
- package/dist/web/admin/__next.admin.__PAGE__.txt +4 -4
- package/dist/web/admin/__next.admin.txt +3 -3
- package/dist/web/admin/access/__next._full.txt +33 -25
- package/dist/web/admin/access/__next._head.txt +4 -4
- package/dist/web/admin/access/__next._index.txt +13 -10
- package/dist/web/admin/access/__next._tree.txt +3 -3
- package/dist/web/admin/access/__next.admin.access.__PAGE__.txt +4 -4
- package/dist/web/admin/access/__next.admin.access.txt +3 -3
- package/dist/web/admin/access/__next.admin.txt +3 -3
- package/dist/web/admin/access.html +1 -1
- package/dist/web/admin/access.txt +33 -25
- package/dist/web/admin/login/__next._full.txt +33 -25
- package/dist/web/admin/login/__next._head.txt +4 -4
- package/dist/web/admin/login/__next._index.txt +13 -10
- package/dist/web/admin/login/__next._tree.txt +3 -3
- package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +4 -4
- package/dist/web/admin/login/__next.admin.login.txt +3 -3
- package/dist/web/admin/login/__next.admin.txt +3 -3
- package/dist/web/admin/login.html +1 -1
- package/dist/web/admin/login.txt +33 -25
- package/dist/web/admin/ota/__next._full.txt +33 -25
- package/dist/web/admin/ota/__next._head.txt +4 -4
- package/dist/web/admin/ota/__next._index.txt +13 -10
- package/dist/web/admin/ota/__next._tree.txt +3 -3
- package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +4 -4
- package/dist/web/admin/ota/__next.admin.ota.txt +3 -3
- package/dist/web/admin/ota/__next.admin.txt +3 -3
- package/dist/web/admin/ota.html +1 -1
- package/dist/web/admin/ota.txt +33 -25
- package/dist/web/admin/turn/__next._full.txt +33 -25
- package/dist/web/admin/turn/__next._head.txt +4 -4
- package/dist/web/admin/turn/__next._index.txt +13 -10
- package/dist/web/admin/turn/__next._tree.txt +3 -3
- package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +4 -4
- package/dist/web/admin/turn/__next.admin.turn.txt +3 -3
- package/dist/web/admin/turn/__next.admin.txt +3 -3
- package/dist/web/admin/turn.html +1 -1
- package/dist/web/admin/turn.txt +33 -25
- package/dist/web/admin.html +1 -1
- package/dist/web/admin.txt +32 -25
- package/dist/web/download/__next._full.txt +29 -22
- package/dist/web/download/__next._head.txt +4 -4
- package/dist/web/download/__next._index.txt +13 -10
- package/dist/web/download/__next._tree.txt +3 -3
- package/dist/web/download/__next.download.__PAGE__.txt +3 -3
- package/dist/web/download/__next.download.txt +3 -3
- package/dist/web/download.html +1 -1
- package/dist/web/download.txt +29 -22
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +29 -23
- package/dist/web/login/__next._full.txt +32 -25
- package/dist/web/login/__next._head.txt +4 -4
- package/dist/web/login/__next._index.txt +13 -10
- package/dist/web/login/__next._tree.txt +3 -3
- package/dist/web/login/__next.login.__PAGE__.txt +4 -4
- package/dist/web/login/__next.login.txt +3 -3
- package/dist/web/login.html +1 -1
- package/dist/web/login.txt +32 -25
- package/dist/web/workspace/__next._full.txt +29 -22
- package/dist/web/workspace/__next._head.txt +4 -4
- package/dist/web/workspace/__next._index.txt +13 -10
- package/dist/web/workspace/__next._tree.txt +3 -3
- package/dist/web/workspace/__next.workspace.__PAGE__.txt +2 -2
- package/dist/web/workspace/__next.workspace.txt +5 -5
- package/dist/web/workspace/browse/__next._full.txt +32 -24
- package/dist/web/workspace/browse/__next._head.txt +4 -4
- package/dist/web/workspace/browse/__next._index.txt +13 -10
- package/dist/web/workspace/browse/__next._tree.txt +3 -3
- package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +2 -2
- package/dist/web/workspace/browse/__next.workspace.browse.txt +3 -3
- package/dist/web/workspace/browse/__next.workspace.txt +5 -5
- package/dist/web/workspace/browse.html +1 -1
- package/dist/web/workspace/browse.txt +32 -24
- package/dist/web/workspace/editor/__next._full.txt +32 -24
- package/dist/web/workspace/editor/__next._head.txt +4 -4
- package/dist/web/workspace/editor/__next._index.txt +13 -10
- package/dist/web/workspace/editor/__next._tree.txt +3 -3
- package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +2 -2
- package/dist/web/workspace/editor/__next.workspace.editor.txt +3 -3
- package/dist/web/workspace/editor/__next.workspace.txt +5 -5
- package/dist/web/workspace/editor.html +1 -1
- package/dist/web/workspace/editor.txt +32 -24
- package/dist/web/workspace/files/__next._full.txt +32 -24
- package/dist/web/workspace/files/__next._head.txt +4 -4
- package/dist/web/workspace/files/__next._index.txt +13 -10
- package/dist/web/workspace/files/__next._tree.txt +3 -3
- package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +2 -2
- package/dist/web/workspace/files/__next.workspace.files.txt +3 -3
- package/dist/web/workspace/files/__next.workspace.txt +5 -5
- package/dist/web/workspace/files.html +1 -1
- package/dist/web/workspace/files.txt +32 -24
- package/dist/web/workspace/git/__next._full.txt +32 -24
- package/dist/web/workspace/git/__next._head.txt +4 -4
- package/dist/web/workspace/git/__next._index.txt +13 -10
- package/dist/web/workspace/git/__next._tree.txt +3 -3
- package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +2 -2
- package/dist/web/workspace/git/__next.workspace.git.txt +3 -3
- package/dist/web/workspace/git/__next.workspace.txt +5 -5
- package/dist/web/workspace/git.html +1 -1
- package/dist/web/workspace/git.txt +32 -24
- package/dist/web/workspace/mobile/__next._full.txt +32 -24
- package/dist/web/workspace/mobile/__next._head.txt +4 -4
- package/dist/web/workspace/mobile/__next._index.txt +13 -10
- package/dist/web/workspace/mobile/__next._tree.txt +3 -3
- package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +2 -2
- package/dist/web/workspace/mobile/__next.workspace.mobile.txt +3 -3
- package/dist/web/workspace/mobile/__next.workspace.txt +5 -5
- package/dist/web/workspace/mobile.html +1 -1
- package/dist/web/workspace/mobile.txt +32 -24
- package/dist/web/workspace/pair/__next._full.txt +32 -24
- package/dist/web/workspace/pair/__next._head.txt +4 -4
- package/dist/web/workspace/pair/__next._index.txt +13 -10
- package/dist/web/workspace/pair/__next._tree.txt +3 -3
- package/dist/web/workspace/pair/__next.workspace.pair.__PAGE__.txt +2 -2
- package/dist/web/workspace/pair/__next.workspace.pair.txt +3 -3
- package/dist/web/workspace/pair/__next.workspace.txt +5 -5
- package/dist/web/workspace/pair.html +1 -1
- package/dist/web/workspace/pair.txt +32 -24
- package/dist/web/workspace/remote/__next._full.txt +32 -24
- package/dist/web/workspace/remote/__next._head.txt +4 -4
- package/dist/web/workspace/remote/__next._index.txt +13 -10
- package/dist/web/workspace/remote/__next._tree.txt +3 -3
- package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +2 -2
- package/dist/web/workspace/remote/__next.workspace.remote.txt +3 -3
- package/dist/web/workspace/remote/__next.workspace.txt +5 -5
- package/dist/web/workspace/remote.html +1 -1
- package/dist/web/workspace/remote.txt +32 -24
- package/dist/web/workspace/terminal/default/__next._full.txt +33 -27
- package/dist/web/workspace/terminal/default/__next._head.txt +4 -4
- package/dist/web/workspace/terminal/default/__next._index.txt +13 -10
- package/dist/web/workspace/terminal/default/__next._tree.txt +3 -3
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +2 -2
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +3 -3
- package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +3 -3
- package/dist/web/workspace/terminal/default/__next.workspace.txt +5 -5
- package/dist/web/workspace/terminal/default.html +1 -1
- package/dist/web/workspace/terminal/default.txt +33 -27
- package/dist/web/workspace/welcome/__next._full.txt +32 -24
- package/dist/web/workspace/welcome/__next._head.txt +4 -4
- package/dist/web/workspace/welcome/__next._index.txt +13 -10
- package/dist/web/workspace/welcome/__next._tree.txt +3 -3
- package/dist/web/workspace/welcome/__next.workspace.txt +5 -5
- package/dist/web/workspace/welcome/__next.workspace.welcome.__PAGE__.txt +2 -2
- package/dist/web/workspace/welcome/__next.workspace.welcome.txt +3 -3
- package/dist/web/workspace/welcome.html +1 -1
- package/dist/web/workspace/welcome.txt +32 -24
- package/dist/web/workspace/workspaces/__next._full.txt +32 -24
- package/dist/web/workspace/workspaces/__next._head.txt +4 -4
- package/dist/web/workspace/workspaces/__next._index.txt +13 -10
- package/dist/web/workspace/workspaces/__next._tree.txt +3 -3
- package/dist/web/workspace/workspaces/__next.workspace.txt +5 -5
- package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +2 -2
- package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +3 -3
- package/dist/web/workspace/workspaces.html +1 -1
- package/dist/web/workspace/workspaces.txt +32 -24
- package/dist/web/workspace.html +1 -1
- package/dist/web/workspace.txt +29 -22
- package/package.json +5 -5
- package/dist/ui/assets/index-BKC13tXO.js +0 -8
- package/dist/web/_next/static/chunks/1050-b9af41e8856b58c0.js +0 -1
- package/dist/web/_next/static/chunks/132.71f657e5a607b7d3.js +0 -1
- package/dist/web/_next/static/chunks/133.1106654a28b5afda.js +0 -1
- package/dist/web/_next/static/chunks/1385.086b560acb0d7a68.js +0 -115
- package/dist/web/_next/static/chunks/1642.cac26d30ac331cb4.js +0 -1
- package/dist/web/_next/static/chunks/1733.f06c240b3ef8a428.js +0 -77
- package/dist/web/_next/static/chunks/1750.ea89a41e86ac2790.js +0 -1
- package/dist/web/_next/static/chunks/1763.28beedca593b5e19.js +0 -138
- package/dist/web/_next/static/chunks/179.b9e8f385bd414d1c.js +0 -62
- package/dist/web/_next/static/chunks/1838.7c8990f903e3524a.js +0 -215
- package/dist/web/_next/static/chunks/2112.d72eefbdf81659b3.js +0 -23
- package/dist/web/_next/static/chunks/2125.61c6e4a3541e30ad.js +0 -1
- package/dist/web/_next/static/chunks/2129.61afb2f4ff59e46a.js +0 -24
- package/dist/web/_next/static/chunks/213.ae43f03862ad9cc1.js +0 -1
- package/dist/web/_next/static/chunks/2179.3f55be0b79e3cca7.js +0 -1
- package/dist/web/_next/static/chunks/2264.0fc1474d26067a01.js +0 -1
- package/dist/web/_next/static/chunks/2376.ed6302a91a9de1ae.js +0 -36
- package/dist/web/_next/static/chunks/2545.3ff192a933baf11e.js +0 -1
- package/dist/web/_next/static/chunks/2620.d17f4fac0eec88a5.js +0 -1
- package/dist/web/_next/static/chunks/2847.d3124853ca727b78.js +0 -1
- package/dist/web/_next/static/chunks/2849.d810c3fdb2054b14.js +0 -1
- package/dist/web/_next/static/chunks/3189.64c6546d621eec0b.js +0 -1
- package/dist/web/_next/static/chunks/3348-9ef29f9cedf6c0df.js +0 -1
- package/dist/web/_next/static/chunks/3514.20bd03c8194dec25.js +0 -1
- package/dist/web/_next/static/chunks/3606.b59e695fd05b4eb3.js +0 -74
- package/dist/web/_next/static/chunks/3736.4a5662ceeecc6acb.js +0 -94
- package/dist/web/_next/static/chunks/392.842b338137824bb8.js +0 -1
- package/dist/web/_next/static/chunks/4136-d7c1ff2da0833b42.js +0 -86
- package/dist/web/_next/static/chunks/4300-a66b52c9e1a27db3.js +0 -1
- package/dist/web/_next/static/chunks/4303.54c4aa0b89834fc6.js +0 -1
- package/dist/web/_next/static/chunks/4551.d0d6723cacfb90b9.js +0 -226
- package/dist/web/_next/static/chunks/4566.d8e009823b8647d1.js +0 -90
- package/dist/web/_next/static/chunks/4643.1e356e007756e19d.js +0 -1
- package/dist/web/_next/static/chunks/4930.42e564644c94a93b.js +0 -1
- package/dist/web/_next/static/chunks/5155.d7e8db52ab4c95e0.js +0 -27
- package/dist/web/_next/static/chunks/5158-267908d069475cdc.js +0 -32
- package/dist/web/_next/static/chunks/543.5636e97aa68eb9c8.js +0 -41
- package/dist/web/_next/static/chunks/5506.98304a1821200439.js +0 -1
- package/dist/web/_next/static/chunks/5622.5ead5e748ecedbd1.js +0 -1
- package/dist/web/_next/static/chunks/5708.22b4531ceebf3eca.js +0 -1
- package/dist/web/_next/static/chunks/5788-f0c87f9c14fa0ff9.js +0 -1
- package/dist/web/_next/static/chunks/5804.ff72a927135eb74c.js +0 -93
- package/dist/web/_next/static/chunks/588.78e2528ff24df85c.js +0 -287
- package/dist/web/_next/static/chunks/6001.e5bcb28bb9ce6571.js +0 -1
- package/dist/web/_next/static/chunks/6180.82fa683aa16f21df.js +0 -1
- package/dist/web/_next/static/chunks/6276.aa48f74970f7ef3d.js +0 -1
- package/dist/web/_next/static/chunks/6419.34fdd4aa97c5cc5d.js +0 -1
- package/dist/web/_next/static/chunks/6552-cebe84e4399a184f.js +0 -1
- package/dist/web/_next/static/chunks/6739.22a05398bfd34922.js +0 -1
- package/dist/web/_next/static/chunks/674.b2f5d5fc3fb84c4a.js +0 -1
- package/dist/web/_next/static/chunks/7202.dad90ce4a1d78f67.js +0 -1
- package/dist/web/_next/static/chunks/7233.0f252f6c1cce8058.js +0 -1
- package/dist/web/_next/static/chunks/7248.d89bf328a0dc1b4c.js +0 -1
- package/dist/web/_next/static/chunks/7263.6f224c3924155294.js +0 -1
- package/dist/web/_next/static/chunks/7341.6958eac888a96823.js +0 -34
- package/dist/web/_next/static/chunks/7811.19082afa63eb73ba.js +0 -1
- package/dist/web/_next/static/chunks/7853.d01982fa0afc1ee2.js +0 -24
- package/dist/web/_next/static/chunks/7908.432ab9feeb9ae756.js +0 -1
- package/dist/web/_next/static/chunks/7960.2754ce9111bef59e.js +0 -1
- package/dist/web/_next/static/chunks/7967.6c62be01fad1603c.js +0 -1
- package/dist/web/_next/static/chunks/8054.feeb01b8acdb31d4.js +0 -1
- package/dist/web/_next/static/chunks/817.cd0f4d221eca4c8b.js +0 -104
- package/dist/web/_next/static/chunks/8207-45554e2570bc59e6.js +0 -1
- package/dist/web/_next/static/chunks/8467.c2c0273ac5e97e34.js +0 -1
- package/dist/web/_next/static/chunks/8495.d6cea1be03635fa8.js +0 -148
- package/dist/web/_next/static/chunks/8638.f44546e4532d76e8.js +0 -1
- package/dist/web/_next/static/chunks/8669-8d1fb8dce08c886d.js +0 -11
- package/dist/web/_next/static/chunks/8716.1ad6febb58e8560e.js +0 -1
- package/dist/web/_next/static/chunks/8762-e88a7f91d20d82bd.js +0 -1
- package/dist/web/_next/static/chunks/8839.1ad64faf06fb4a33.js +0 -1
- package/dist/web/_next/static/chunks/8922-4c589850b01d2e12.js +0 -1
- package/dist/web/_next/static/chunks/910.43be9c3be85c7fa0.js +0 -21
- package/dist/web/_next/static/chunks/925.7cfb725e605559a0.js +0 -1
- package/dist/web/_next/static/chunks/9259.97e2f3306fc149c7.js +0 -1
- package/dist/web/_next/static/chunks/9387.96263a2d1602a078.js +0 -1
- package/dist/web/_next/static/chunks/9568-0bfadca4fcb105aa.js +0 -1
- package/dist/web/_next/static/chunks/9860.05fa134ae44699e0.js +0 -1
- package/dist/web/_next/static/chunks/9b87412a.d2cfae4121762dec.js +0 -122
- package/dist/web/_next/static/chunks/a096f98a-5a93977f5f5de413.js +0 -1
- package/dist/web/_next/static/chunks/ab1da478.d051e56375dab6d8.js +0 -1
- package/dist/web/_next/static/chunks/app/_global-error/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/_not-found/page-877523282abd5a7c.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/access/page-65febd13b3d1fc91.js +0 -5
- package/dist/web/_next/static/chunks/app/admin/login/page-8ff8150184b7ccaa.js +0 -1
- package/dist/web/_next/static/chunks/app/admin/ota/page-d8766baa3680522d.js +0 -5
- package/dist/web/_next/static/chunks/app/admin/page-6237b1487c05f33e.js +0 -5
- package/dist/web/_next/static/chunks/app/admin/turn/page-6a6b695b67d59451.js +0 -5
- package/dist/web/_next/static/chunks/app/dev/question/page-c7128ddf798789f1.js +0 -1
- package/dist/web/_next/static/chunks/app/layout-a0e78c8427f97e4f.js +0 -1
- package/dist/web/_next/static/chunks/app/login/page-2a046d10af50c87a.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/browse/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/editor/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/files/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/git/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/layout-9b28454945238595.js +0 -20
- package/dist/web/_next/static/chunks/app/workspace/mobile/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/pair/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/remote/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/welcome/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/app/workspace/workspaces/page-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/c7879cf7-0d16fce1674078f9.js +0 -1
- package/dist/web/_next/static/chunks/cdcce140.7a440644c3dd52b8.js +0 -1
- package/dist/web/_next/static/chunks/framework-42053c69543a55f9.js +0 -1
- package/dist/web/_next/static/chunks/main-255c95c36766ce86.js +0 -5
- package/dist/web/_next/static/chunks/main-app-1831d4f902c3fcb9.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-76800531999827bd.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-e656bb9bc0f3fd3d.js +0 -1
- package/dist/web/_next/static/chunks/webpack-beef15eb580fc66b.js +0 -1
- package/dist/web/_next/static/css/c48f9629be2a67b4.css +0 -1
- package/dist/web/_next/static/hFRLMLaLieW6POo9cLvLQ/_buildManifest.js +0 -1
- package/dist/web/dev/question/__next._full.txt +0 -29
- package/dist/web/dev/question/__next._head.txt +0 -6
- package/dist/web/dev/question/__next._index.txt +0 -12
- package/dist/web/dev/question/__next._tree.txt +0 -6
- package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +0 -9
- package/dist/web/dev/question/__next.dev.question.txt +0 -5
- package/dist/web/dev/question/__next.dev.txt +0 -5
- package/dist/web/dev/question.html +0 -1
- package/dist/web/dev/question.txt +0 -29
- /package/dist/web/_next/static/{hFRLMLaLieW6POo9cLvLQ → AhLhl9t958vI0woNHnp3P}/_ssgManifest.js +0 -0
- /package/dist/web/_next/static/chunks/{1311.8c6b8930e22ceea0.js → 6153.8c6b8930e22ceea0.js} +0 -0
- /package/dist/web/_next/static/chunks/{3692.8c6b8930e22ceea0.js → 8534.8c6b8930e22ceea0.js} +0 -0
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[540],{7116:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>b});var a=s(73365),r=s(1521),l=s(38334),n=s(80186),d=s(96042),i=s(64683),c=s(39457),o=s(24945),x=s(57042);let m={keyId:"",secret:"",label:"",scope:"both"},u=["both","dev","prod"];function b(){let{can:e,me:t,loading:s}=(0,o.b)(),{get:b,post:h,patch:p,del:f}=(0,c.Z)(),[g,j]=(0,r.useState)([]),[y,N]=(0,r.useState)(m),[v,w]=(0,r.useState)(!0),[k,C]=(0,r.useState)(!1),[A,S]=(0,r.useState)(""),[T,z]=(0,r.useState)(null),R=e(x.Jj.turnManage),$=(0,r.useCallback)(async()=>{w(!0);try{let e=await b(x.lb.turn);j(e.items||[])}catch(e){S(e.message)}finally{w(!1)}},[b]);(0,r.useEffect)(()=>{!s&&t&&$()},[s,t,$]);let U=async()=>{S(""),C(!0),z(null);try{await h(x.lb.turn,y),z(y.secret),N(m),await $()}catch(e){S(e.message)}finally{C(!1)}},V=async e=>{try{await p(`${x.lb.turn}/${e.id}`,{enabled:!e.enabled}),$()}catch(e){S(e.message)}},D=async(e,t)=>{try{await p(`${x.lb.turn}/${e.id}`,{scope:t}),$()}catch(e){S(e.message)}},O=async e=>{if(confirm("Delete this TURN key? Clients using it fall back to STUN-only."))try{await f(`${x.lb.turn}/${e}`),$()}catch(e){S(e.message)}};return(0,a.jsx)(l.A,{children:(0,a.jsxs)("div",{className:"space-y-8 max-w-5xl",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h1",{className:"text-2xl font-bold tracking-tight text-text login-hero-grad flex items-center gap-2.5",children:[(0,a.jsx)(i.kV,{size:24,className:"text-brand-500"}),(0,a.jsx)("span",{children:"TURN Keys"})]}),(0,a.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Rotate Cloudflare TURN credentials for cross-network WebRTC relay"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("a",{href:"https://dash.cloudflare.com/?to=/:account/realtime/turn",target:"_blank",rel:"noreferrer noopener",className:"inline-flex items-center gap-2 px-3.5 py-1.5 rounded-xl bg-brand-500 hover:bg-brand-600 text-white text-xs font-semibold transition-colors shadow-[0_4px_12px_-4px_rgba(255,87,10,0.5)]",children:[(0,a.jsx)(i.Gr,{size:13}),(0,a.jsx)("span",{children:"Create on Cloudflare"})]}),(0,a.jsxs)("button",{onClick:$,disabled:v,className:"inline-flex items-center gap-2 px-3.5 py-1.5 rounded-xl bg-surface-2 hover:bg-surface-3 border border-border-subtle text-xs font-medium text-text transition-colors disabled:opacity-50",children:[(0,a.jsx)(i.e9,{size:13,className:v?"animate-spin text-brand-500":""}),(0,a.jsx)("span",{children:"Refresh"})]})]})]}),(0,a.jsx)("p",{className:"text-xs text-text-muted bg-surface-2/60 border border-border-subtle rounded-xl p-3",children:"Up to 1,000 keys. 1,000 GB/month free per Cloudflare account (shared with SFU) — more keys do not add quota."}),A&&(0,a.jsx)("p",{className:"text-xs text-danger bg-red-500/10 p-3 rounded-xl border border-red-500/20",children:A}),T&&(0,a.jsxs)("div",{className:"card-glass p-4 space-y-2 border border-brand-500/30",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text",children:"Key added — secret stored. Copy it if you need it elsewhere:"}),(0,a.jsx)("button",{onClick:()=>z(null),className:"text-text-muted hover:text-text",children:(0,a.jsx)(i.X,{size:14})})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("code",{className:"flex-1 text-[11px] font-mono text-text-muted bg-surface-2 rounded-lg px-3 py-2 break-all",children:T}),(0,a.jsx)("button",{onClick:()=>navigator.clipboard?.writeText(T),className:"p-2 rounded-lg bg-surface-2 hover:bg-surface-3 text-text-muted hover:text-text transition-colors","aria-label":"Copy secret",children:(0,a.jsx)(i.QR,{size:14})})]})]}),R&&(0,a.jsxs)("div",{className:"card-glass p-5 sm:p-6 space-y-4",children:[(0,a.jsxs)("h2",{className:"text-sm font-semibold tracking-tight text-text flex items-center gap-2 border-b border-border-subtle/60 pb-3",children:[(0,a.jsx)(i.FW,{size:16,className:"text-brand-500"}),(0,a.jsx)("span",{children:"Add TURN Key"})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,a.jsx)(d.A,{label:"Key ID",value:y.keyId,onChange:e=>N({...y,keyId:e.target.value.trim()}),placeholder:"32-char hex from Cloudflare dashboard"}),(0,a.jsx)(d.A,{label:"API Token / Secret",type:"password",value:y.secret,onChange:e=>N({...y,secret:e.target.value.trim()}),placeholder:"Bearer secret"}),(0,a.jsx)(d.A,{label:"Label",value:y.label,onChange:e=>N({...y,label:e.target.value}),placeholder:"e.g. acc-1 (which Cloudflare account)"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-xs font-mono uppercase tracking-wider text-text-muted mb-1.5",children:"Scope"}),(0,a.jsx)("select",{className:"w-full px-3 py-2 text-xs border border-border-subtle rounded-xl bg-surface-2/80 text-text focus:outline-none focus:ring-2 focus:ring-brand-500/30",value:y.scope,onChange:e=>N({...y,scope:e.target.value}),children:u.map(e=>(0,a.jsx)("option",{value:e,children:e},e))})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(n.A,{onClick:U,disabled:k||!y.keyId||!y.secret,children:k?"Validating with Cloudflare...":"Add Key"}),(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:["Scope ",(0,a.jsx)("span",{className:"font-mono",children:"dev"})," = credentials for pages on dev.9remote.cc only."]})]})]}),v?(0,a.jsxs)("div",{className:"card-glass p-12 text-center text-text-muted text-xs",children:[(0,a.jsx)(i.e9,{size:20,className:"mx-auto mb-2 animate-spin text-brand-500"}),"Loading keys..."]}):0===g.length?(0,a.jsxs)("div",{className:"card-glass p-12 text-center",children:[(0,a.jsx)("div",{className:"w-12 h-12 rounded-2xl bg-surface-2 flex items-center justify-center mx-auto mb-3 text-text-subtle",children:(0,a.jsx)(i.kV,{size:24})}),(0,a.jsx)("h3",{className:"text-sm font-semibold text-text",children:"No TURN keys configured"}),(0,a.jsxs)("p",{className:"text-text-muted text-xs mt-1",children:["Clients fall back to the deployed ",(0,a.jsx)("code",{className:"font-mono text-brand-500",children:"TURN_KEY_ID"})," secret, or STUN-only if that is gone."]})]}):(0,a.jsx)("div",{className:"card-glass overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full text-sm text-left",children:[(0,a.jsx)("thead",{className:"bg-surface-2/60 border-b border-border-subtle text-[11px] font-mono uppercase tracking-wider text-text-muted",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-4 py-3",children:"Key"}),(0,a.jsx)("th",{className:"px-4 py-3",children:"Scope"}),(0,a.jsx)("th",{className:"px-4 py-3",children:"Last Used"}),(0,a.jsx)("th",{className:"px-4 py-3",children:"Status"}),R&&(0,a.jsx)("th",{className:"px-4 py-3 text-right",children:"Actions"})]})}),(0,a.jsx)("tbody",{className:"divide-y divide-border-subtle/50",children:g.map(e=>(0,a.jsxs)("tr",{className:"hover:bg-surface-2/40 transition-colors",children:[(0,a.jsxs)("td",{className:"px-4 py-3.5",children:[(0,a.jsxs)("div",{className:"font-mono text-xs text-text",children:[e.keyId.slice(0,12),"…"]}),(0,a.jsxs)("div",{className:"text-[10px] text-text-subtle font-mono mt-0.5",children:[e.label||"(no label)"," \xb7 secret ",e.secretTail]})]}),(0,a.jsx)("td",{className:"px-4 py-3.5",children:R?(0,a.jsx)("select",{className:"px-2 py-1 text-[11px] font-mono border border-border-subtle rounded-lg bg-surface-2/80 text-text focus:outline-none",value:e.scope,onChange:t=>D(e,t.target.value),children:u.map(e=>(0,a.jsx)("option",{value:e,children:e},e))}):(0,a.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-mono bg-surface-2 border border-border-subtle text-text",children:e.scope})}),(0,a.jsx)("td",{className:"px-4 py-3.5 text-xs text-text-muted font-mono",children:(e=>{if(!e)return"never";try{return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}})(e.lastUsedAt)}),(0,a.jsx)("td",{className:"px-4 py-3.5",children:e.enabled?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-0.5 rounded-full text-xs font-medium bg-emerald-500/10 text-emerald-500 border border-emerald-500/20",children:[(0,a.jsx)(i.aJ,{size:13}),(0,a.jsx)("span",{children:"Active"})]}):(0,a.jsx)("span",{className:"text-xs font-mono text-text-subtle px-2 py-0.5 rounded bg-surface-2",children:"Disabled"})}),R&&(0,a.jsxs)("td",{className:"px-4 py-3.5 text-right whitespace-nowrap",children:[(0,a.jsx)("button",{onClick:()=>V(e),className:"text-xs font-semibold text-brand-500 hover:text-brand-400 px-2.5 py-1 rounded-lg hover:bg-brand-500/10 transition-colors",children:e.enabled?"Disable":"Enable"}),(0,a.jsx)("button",{onClick:()=>O(e.id),className:"ml-1 p-1.5 rounded-lg text-text-muted hover:text-danger hover:bg-red-500/10 transition-colors","aria-label":"Delete key",children:(0,a.jsx)(i.TB,{size:14})})]})]},e.id))})]})})]})})}},24945:(e,t,s)=>{"use strict";s.d(t,{b:()=>d});var a=s(1521),r=s(29717),l=s(57042),n=s(39457);function d({redirectIfUnauthed:e=!0}={}){let t=(0,r.useRouter)(),{get:s,post:i}=(0,n.Z)(),[c,o]=(0,a.useState)(null),[x,m]=(0,a.useState)(!0),u=(0,a.useCallback)(async()=>{try{let e=await s(l.lb.me);o(e)}catch{o(null),e&&t.replace("/admin/login")}finally{m(!1)}},[s,e,t]);(0,a.useEffect)(()=>{u()},[u]);let b=(0,a.useCallback)(async()=>{await i(l.lb.logout,{}),t.replace("/admin/login")},[i,t]),h=(0,a.useCallback)(e=>Array.isArray(c?.permissions)&&c.permissions.includes(e),[c]);return{me:c,loading:x,logout:b,can:h,refresh:u}}},29717:(e,t,s)=>{"use strict";var a=s(21505);s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}}),s.o(a,"useSearchParams")&&s.d(t,{useSearchParams:function(){return a.useSearchParams}})},38334:(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var a=s(73365),r=s(28913),l=s(1521),n=s(99568),d=s(29717),i=s(45111),c=s(59893),o=s(90753),x=s(30240),m=s(64683),u=s(24945);let b=[{href:"/admin",label:"Dashboard",icon:m.Hx,exact:!0},{href:"/admin/access",label:"Access",icon:m.zW},{href:"/admin/ota",label:"OTA Updates",icon:m.lP,needsOta:!0},{href:"/admin/turn",label:"TURN Keys",icon:m.kV}];function h({children:e}){let t=(0,d.usePathname)(),{me:s,loading:p,logout:f}=(0,u.b)(),[g,j]=(0,l.useState)(!1);if(p||!s)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{}),(0,a.jsx)(c.A,{children:(0,a.jsx)("div",{className:"card-glass p-8 max-w-sm w-full flex flex-col items-center justify-center",children:(0,a.jsx)(i.A,{size:"lg",text:"Loading admin..."})})})]});let y=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"p-4 border-b border-border-subtle flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,a.jsx)("div",{className:"w-6 h-6 shrink-0 rounded-md flex items-center justify-center font-bold text-sm bg-brand-500 text-white",children:"9"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("h1",{className:"text-sm font-bold tracking-tight text-text truncate",children:"9Remote Admin"}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 mt-0.5",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted truncate",children:s.username}),(0,a.jsx)("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-full bg-surface-2 text-text-muted border border-border-subtle",children:s.modeName||s.modeId})]})]})]}),(0,a.jsx)("button",{onClick:()=>j(!1),className:"md:hidden p-1.5 -mr-1.5 text-text-muted hover:text-text rounded-[6px] hover:bg-surface-2 transition-colors","aria-label":"Close menu",children:(0,a.jsx)(m.X,{size:18})})]}),(0,a.jsxs)("nav",{className:"flex-1 px-3.5 py-3 space-y-0.5 overflow-y-auto",children:[(0,a.jsx)("div",{className:"pl-[3.5px] py-1.5 text-[10px] font-mono uppercase tracking-wider text-text-subtle",children:"Navigation"}),b.filter(e=>!e.needsOta||s.otaEnabled).map(e=>{let s=e.icon,r=e.exact?t===e.href:t.startsWith(e.href);return(0,a.jsxs)(n,{href:e.href,onClick:()=>j(!1),className:`
|
|
2
|
-
flex items-center gap-2.5 -ml-3.5 w-[calc(100%+0.875rem)] pl-[17px] pr-3 py-1.5
|
|
3
|
-
rounded-[6px] text-xs font-medium text-left transition-colors duration-150
|
|
4
|
-
${r?"bg-surface-3 text-text font-semibold":"text-text-muted hover:bg-surface-2 hover:text-text"}
|
|
5
|
-
`,children:[(0,a.jsx)(s,{size:15,className:r?"text-text":"text-text-subtle"}),(0,a.jsx)("span",{className:"flex-1",children:e.label}),r&&(0,a.jsx)("span",{className:"w-1 h-1 rounded-full bg-text-muted"})]},e.href)})]}),(0,a.jsx)("div",{className:"p-3.5 border-t border-border-subtle",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.A,{className:"border border-border-subtle hover:bg-surface-2 rounded-[6px]"}),(0,a.jsxs)("button",{onClick:f,className:"flex-1 flex items-center justify-center gap-2 px-3 py-1.5 rounded-[6px] text-xs font-medium text-text-muted hover:bg-red-500/10 hover:text-danger transition-colors",children:[(0,a.jsx)(m.nU,{size:15}),"Logout"]})]})})]});return(0,a.jsxs)("div",{className:"jsx-b56c084163c9c8c1 min-h-screen text-text relative selection:bg-brand-500/20",children:[(0,a.jsx)(x.A,{}),(0,a.jsxs)("header",{className:"jsx-b56c084163c9c8c1 md:hidden sticky top-0 z-30 flex items-center justify-between px-4 py-2.5 bg-surface/80 backdrop-blur-md border-b border-border-subtle",children:[(0,a.jsx)("button",{onClick:()=>j(!0),"aria-label":"Open menu",className:"jsx-b56c084163c9c8c1 p-1.5 -ml-1.5 text-text-muted hover:text-text rounded-[6px] hover:bg-surface-2",children:(0,a.jsx)(m.W1,{size:20})}),(0,a.jsxs)("div",{className:"jsx-b56c084163c9c8c1 flex items-center gap-2",children:[(0,a.jsx)("div",{className:"jsx-b56c084163c9c8c1 w-6 h-6 rounded-md flex items-center justify-center font-bold text-xs bg-brand-500 text-white",children:"9"}),(0,a.jsx)("h1",{className:"jsx-b56c084163c9c8c1 text-sm font-semibold tracking-tight",children:"9Remote Admin"})]}),(0,a.jsx)(o.A,{className:"rounded-[6px]"})]}),(0,a.jsx)("aside",{className:"jsx-b56c084163c9c8c1 hidden md:flex fixed inset-y-0 left-0 w-60 border-r border-border-subtle bg-surface/80 backdrop-blur-xl flex-col z-20",children:y}),g&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{onClick:()=>j(!1),className:"jsx-b56c084163c9c8c1 md:hidden fixed inset-0 z-40 bg-black/60 backdrop-blur-[2px] fade-in"}),(0,a.jsx)("aside",{style:{animation:"slideInFromLeft 0.22s cubic-bezier(0.22, 1, 0.36, 1) forwards"},className:"jsx-b56c084163c9c8c1 md:hidden fixed inset-y-0 left-0 z-50 w-72 max-w-[85%] bg-surface/95 backdrop-blur-2xl border-r border-border-subtle flex flex-col slide-in-right",children:y})]}),(0,a.jsx)("main",{className:"jsx-b56c084163c9c8c1 md:ml-60 p-4 sm:p-6 lg:p-8 min-h-screen relative z-10 max-w-7xl",children:e}),(0,a.jsx)(r,{id:"b56c084163c9c8c1",children:"@keyframes slideInFromLeft{from{transform:translatex(-100%);opacity:0}to{transform:translatex(0);opacity:1}}"})]})}},39457:(e,t,s)=>{"use strict";s.d(t,{Z:()=>l});var a=s(1521);async function r(e,t={}){let s=await fetch(e,{...t,headers:{"Content-Type":"application/json",...t.headers||{}},credentials:"include"}),a=await s.json().catch(()=>({}));if(!s.ok)throw Error(a?.error||`Request failed (${s.status})`);return a}function l(){let e=(0,a.useCallback)(e=>r(e),[]),t=(0,a.useCallback)((e,t)=>r(e,{method:"POST",body:JSON.stringify(t||{})}),[]);return{get:e,post:t,patch:(0,a.useCallback)((e,t)=>r(e,{method:"PATCH",body:JSON.stringify(t||{})}),[]),del:(0,a.useCallback)(e=>r(e,{method:"DELETE"}),[])}}},45111:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(73365);function r({size:e="md",text:t,className:s=""}){return(0,a.jsxs)("div",{className:`flex flex-col items-center justify-center gap-3 ${s}`,children:[(0,a.jsx)("div",{className:`animate-spin rounded-full border-brand-500 border-t-transparent ${{sm:"h-4 w-4 border-2",md:"h-8 w-8 border-2",lg:"h-12 w-12 border-b-2"}[e]}`}),t&&(0,a.jsx)("p",{className:"text-brand-500 text-sm font-medium",children:t})]})}},56631:(e,t,s)=>{Promise.resolve().then(s.bind(s,7116))},57042:(e,t,s)=>{"use strict";s.d(t,{GS:()=>c,Jj:()=>a,Qh:()=>n,WD:()=>r,Wm:()=>d,lb:()=>x,rK:()=>o,vq:()=>l,xp:()=>i});let a={sessionView:"session.view",sessionDelete:"session.delete",modeView:"mode.view",modeManage:"mode.manage",adminView:"admin.view",adminManage:"admin.manage",otaView:"ota.view",otaManage:"ota.manage",turnView:"turn.view",turnManage:"turn.manage",logView:"log.view"};Object.values(a);let r={"session.view":"View sessions","session.delete":"Delete sessions","admin.view":"View admins","admin.manage":"Create/edit admins","mode.view":"View modes","mode.manage":"Create/edit modes","ota.view":"View OTA updates","ota.manage":"Manage OTA updates","turn.view":"View TURN keys","turn.manage":"Manage TURN keys","log.view":"View login audit"},l=[{label:"Sessions",keys:["session.view","session.delete"]},{label:"Admins",keys:["admin.view","admin.manage"]},{label:"Modes",keys:["mode.view","mode.manage"]},{label:"OTA & TURN",keys:["ota.view","ota.manage","turn.view","turn.manage"]},{label:"Audit",keys:["log.view"]}],n=18e5,d=20,i=[10,20,50,100],c=["createdAt","lastAccessAt","expiresAt","machineId"],o=[{key:"loyal",label:"Loyal",minMs:6048e5,color:"text-success"},{key:"returning",label:"Returning",minMs:864e5,color:"text-brand-500"},{key:"active",label:"Active",minMs:3e5,color:"text-brand-400"},{key:"new",label:"New",minMs:0,color:"text-text-muted"}],x={login:"/api/admin/login",logout:"/api/admin/logout",me:"/api/admin/me",sessions:"/api/admin/sessions",stats:"/api/admin/stats",modes:"/api/admin/modes",admins:"/api/admin/admins",ota:"/api/admin/ota",turn:"/api/admin/turn",logins:"/api/admin/logins",turnstile:"/api/admin/turnstile"}},59893:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(73365);function r({children:e,centered:t=!0,className:s=""}){return(0,a.jsx)("div",{className:`min-h-screen ${t?"flex items-center justify-center p-4":""} ${s}`,children:e})}},80186:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(73365);function r({children:e,variant:t="primary",size:s="md",disabled:l=!1,loading:n=!1,onClick:d,className:i="",...c}){let o=`font-semibold rounded-brand transition-all duration-150 ease-out transform active:scale-[0.97] ${{primary:"bg-brand-500 hover:bg-brand-600 disabled:bg-surface-3 disabled:text-text-muted text-white shadow-sm",secondary:"bg-surface-2 hover:bg-surface-3 disabled:bg-surface disabled:text-text-muted text-text",danger:"bg-red-500 hover:bg-red-600 disabled:bg-surface-3 disabled:text-text-muted text-white",success:"bg-green-600 hover:bg-green-700 disabled:bg-surface-3 disabled:text-text-muted text-white"}[t]} ${{sm:"px-3 py-1.5 text-sm",md:"px-4 py-2 text-base",lg:"px-6 py-3 text-lg"}[s]} ${l||n?"cursor-not-allowed":""} ${i}`;return(0,a.jsx)("button",{onClick:d,disabled:l||n,className:o,...c,children:n?(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:[(0,a.jsx)("span",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-white"}),e]}):e})}},96042:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(73365);function r({label:e,type:t="text",value:s,onChange:l,onKeyDown:n,placeholder:d,disabled:i=!1,error:c,className:o="",...x}){let m=c?"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500":"focus:ring-2 focus:ring-brand-500/40",u=`w-full px-4 py-3 bg-surface-2 rounded-brand text-text placeholder-text-muted focus:outline-none transition-all duration-150 ease-out ${m} ${i?"opacity-50 cursor-not-allowed":""} ${o}`;return(0,a.jsxs)("div",{className:"w-full",children:[e&&(0,a.jsx)("label",{className:"block text-sm font-medium text-text mb-2",children:e}),(0,a.jsx)("input",{type:t,value:s,onChange:l,onKeyDown:n,placeholder:d,disabled:i,className:u,...x}),c&&(0,a.jsx)("p",{className:"mt-1 text-sm text-red-400",children:c})]})}}},e=>{e.O(0,[8207,9568,8922,9871,2347,5158,7358],()=>e(e.s=56631)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[967],{8910:(e,A,o)=>{"use strict";function t(e=10){if(!window.__TAURI__){if(window.ReactNativeWebView&&/Android/i.test(navigator.userAgent)){try{window.ReactNativeWebView.postMessage(JSON.stringify({type:"HAPTIC",style:"selection"}))}catch{}return}if(navigator.vibrate)return void navigator.vibrate(e);if("u">typeof document){if(!("u">typeof navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||window.DEVICE_INFO?.platform==="ios"||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1)))return;let e=document.createElement("div"),A=Math.random().toString(36).slice(2);e.innerHTML=`<input type="checkbox" id="${A}" switch /><label for="${A}"></label>`,e.setAttribute("style","display:none !important;opacity:0 !important;visibility:hidden !important;"),document.body.appendChild(e),e.querySelector("label").click(),setTimeout(()=>e.remove(),100)}}}o.d(A,{e:()=>t})},58506:(e,A,o)=>{"use strict";o.r(A),o.d(A,{default:()=>a});var t=o(73365),i=o(6552);let n=[{question:"Which background should the pane use?",multiSelect:!1,options:[{label:"Keep the global pool",description:"Every pane follows the workspace setting."},{label:"Pin a wallpaper",description:"Only this session gets its own image."},{label:"Solid colour",description:"No image, just the theme surface."}]}],r=[{question:"Which panes should the new layout open?",multiSelect:!0,options:[{label:"Terminal",description:"A shell in the workspace root."},{label:"AI chat",description:"The agent pane for the active engine."},{label:"Files",description:"The explorer panel on the right."}]},{question:"Anything else to note?",options:[{label:"No",description:"Just open them."}]}];function a(){return(0,t.jsxs)("div",{className:"min-h-screen bg-bg p-6 flex flex-col gap-6 max-w-md",children:[(0,t.jsx)(i.J,{questions:n,onResolve:()=>{}}),(0,t.jsx)(i.J,{questions:r,onResolve:()=>{}}),(0,t.jsx)(i.J,{questions:n,answers:'User has answered your questions: "Which background should the pane use?"="Pin a wallpaper".'})]})}},61436:(e,A,o)=>{Promise.resolve().then(o.bind(o,58506))},64683:(e,A,o)=>{"use strict";o.d(A,{$o:()=>eN.A,AX:()=>ef.A,Ay:()=>Al,BK:()=>e7.A,BZ:()=>$.A,Bm:()=>J.A,Cp:()=>B.A,Do:()=>a.A,F1:()=>l.A,FE:()=>e3.A,FW:()=>eq.A,Fc:()=>eW.A,GD:()=>W.A,GO:()=>eg.A,Gr:()=>U.A,Gv:()=>eb.A,Hx:()=>en.A,Ir:()=>c.A,J4:()=>e1.A,JG:()=>m.A,JU:()=>D.A,Jl:()=>h.A,Kq:()=>Ar.A,LM:()=>es.A,Lt:()=>M.A,M6:()=>eY.A,MA:()=>s.A,Mr:()=>eE.A,P6:()=>eA.A,QR:()=>S.A,Qp:()=>r.A,RI:()=>i.A,TB:()=>e0.A,Ud:()=>Z.A,VA:()=>ew.A,Vn:()=>eB.A,W1:()=>eh.A,WE:()=>v.A,We:()=>e5.A,Wn:()=>k.A,X:()=>An.A,X_:()=>R.A,ZH:()=>_.A,ZU:()=>e9.A,Ze:()=>eT.A,Zr:()=>G.A,_O:()=>Ae.A,_V:()=>ee.A,a4:()=>ev.A,aJ:()=>u.A,ak:()=>K.A,bE:()=>e4.A,bd:()=>e6.A,cC:()=>p.A,c_:()=>w.A,dJ:()=>H.A,de:()=>Ai.A,dx:()=>V.A,e6:()=>ek.A,e9:()=>eH.A,eM:()=>eD.A,ek:()=>eK.A,es:()=>eC.A,f2:()=>X.A,f5:()=>L.A,gH:()=>eU.A,h1:()=>ed.A,iU:()=>N.A,jG:()=>e_.A,jj:()=>em.A,jl:()=>b.A,jz:()=>ex.A,kU:()=>O.A,kV:()=>eo.A,kr:()=>el.A,kt:()=>eJ.A,lM:()=>e2.A,lP:()=>eP.A,m0:()=>y.A,mN:()=>Q.A,nU:()=>ep.A,qz:()=>z.A,rX:()=>f.A,s3:()=>et.A,sU:()=>e$.A,sv:()=>j.A,ue:()=>eS.A,vR:()=>eL.A,vW:()=>ej.A,vd:()=>I.A,vj:()=>eV.A,vv:()=>er.A,wB:()=>eX.A,wO:()=>eQ.A,ww:()=>Y.A,xq:()=>eu.A,xv:()=>eF.A,y8:()=>ea.A,yQ:()=>g.A,yU:()=>eR.A,yd:()=>n.A,zP:()=>d.A,zW:()=>AA.A});var t=o(73365),i=o(87821),n=o(21878),r=o(79376),a=o(61659),l=o(6504),s=o(19307),c=o(74739),p=o(29967),d=o(17836),u=o(67494),h=o(66687),g=o(95188),m=o(54453),w=o(34582),f=o(70453),v=o(10949),b=o(64570),y=o(31258),P=o(59907),C=o(13374),k=o(17406),S=o(46431),M=o(29260),x=o(88433),F=o(49553),L=o(20478),U=o(17568),O=o(87831),R=o(1916),T=o(29418),_=o(18272),W=o(10550),q=o(9271),E=o(14251),N=o(50068),j=o(98173),H=o(10194),I=o(70362),J=o(17909),D=o(59437),G=o(33109),V=o(48433),B=o(86877),z=o(34271),X=o(60919),Z=o(35723),K=o(41046),Q=o(64629),$=o(6534),Y=o(5370),ee=o(59711),eA=o(39831),eo=o(9560),et=o(44159),ei=o(41098),en=o(20021),er=o(14797),ea=o(15504),el=o(93292),es=o(92165),ec=o(94304),ep=o(40789),ed=o(64871),eu=o(31805),eh=o(19621),eg=o(40081),em=o(38781),ew=o(88768),ef=o(68395),ev=o(88793),eb=o(25406),ey=o(10998),eP=o(64446),eC=o(12925),ek=o(93354),eS=o(73243),eM=o(89317),ex=o(12283),eF=o(1578),eL=o(90612),eU=o(43959),eO=o(24337),eR=o(76621),eT=o(59833),e_=o(67236),eW=o(37266),eq=o(97038),eE=o(72147),eN=o(68859),ej=o(93285),eH=o(20178),eI=o(65062),eJ=o(87030),eD=o(67519),eG=o(457),eV=o(58450),eB=o(48088),ez=o(56023),eX=o(59311),eZ=o(38177),eK=o(60659),eQ=o(1838),e$=o(34969),eY=o(42685),e1=o(99707),e3=o(6830),e8=o(20248),e6=o(11384),e5=o(50211),e7=o(64342),e0=o(60151),e2=o(81610),e9=o(11990),e4=o(52715),Ae=o(49387),AA=o(894),Ao=o(2031),At=o(58573),Ai=o(51328),An=o(3382),Ar=o(57717);let Aa={AlertCircle:i.A,ArrowDown:n.A,ArrowRight:r.A,ArrowUp:a.A,ArrowUpRight:l.A,Ban:s.A,Bell:c.A,Bot:p.A,Bug:d.A,Check:u.A,CheckCircle2:h.A,ChevronDown:g.A,ChevronLeft:m.A,ChevronRight:w.A,ChevronUp:f.A,ChevronsDownUp:v.A,Circle:b.A,ClipboardPaste:y.A,Command:P.A,Compass:C.A,Columns2:k.A,Copy:S.A,CornerDownLeft:M.A,Crown:x.A,Delete:F.A,Download:L.A,ExternalLink:U.A,Eye:O.A,EyeOff:R.A,Facebook:T.A,File:_.A,FileCode:W.A,FileJson:q.A,FilePlus:E.A,FileText:N.A,Files:j.A,Filter:H.A,Folder:I.A,FolderOpen:J.A,FolderPlus:D.A,GitBranch:G.A,GitFork:V.A,Github:B.A,Globe:z.A,GripVertical:X.A,Hand:Z.A,HardDrive:K.A,HelpCircle:Q.A,History:$.A,Home:Y.A,Image:ee.A,ImageOff:eA.A,KeyRound:eo.A,Keyboard:et.A,Laptop:ei.A,LayoutDashboard:en.A,Link2:er.A,ListChecks:ea.A,Loader2:el.A,Lock:es.A,LogIn:ec.A,LogOut:ep.A,Maximize2:ed.A,Minimize2:eu.A,Menu:eh.A,Mic:eg.A,MicOff:em.A,Monitor:ew.A,Moon:ef.A,MoreHorizontal:ev.A,MoreVertical:eb.A,MousePointer2:ey.A,Package:eP.A,Palette:eC.A,PanelLeft:ek.A,PanelLeftClose:eS.A,PanelLeftOpen:eM.A,PanelRight:ex.A,Paperclip:eF.A,Pause:eL.A,Pencil:eU.A,Pi:eO.A,Pin:eR.A,PinOff:eT.A,Play:e_.A,Plug:eW.A,Plus:eq.A,Power:eE.A,PowerOff:eN.A,QrCode:ej.A,RefreshCw:eH.A,Replace:eI.A,RotateCw:eJ.A,Save:eD.A,Scissors:eG.A,Search:eV.A,Send:eB.A,SendHorizontal:ez.A,Settings:eX.A,Share:eZ.A,Shield:eK.A,Smartphone:eQ.A,Sparkles:e$.A,Square:eY.A,SquarePen:e1.A,Star:e3.A,StickyNote:e8.A,Sun:e6.A,Target:e5.A,Terminal:e7.A,Trash2:e0.A,Triangle:e2.A,Type:e9.A,Undo2:e4.A,Upload:Ae.A,Users:AA.A,Volume2:Ao.A,VolumeX:At.A,Wallpaper:Ai.A,X:An.A,Zap:Ar.A};function Al({name:e,size:A=20,className:o="",...i}){let n=Aa[e];return n?(0,t.jsx)(n,{size:A,className:o,strokeWidth:2,...i}):(console.warn(`Icon "${e}" not found in the icon registry`),null)}}},e=>{e.O(0,[8207,6552,2347,5158,7358],()=>e(e.s=61436)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{20894:()=>{},30346:(e,t,a)=>{"use strict";a.d(t,{default:()=>s});var r=a(73365),l=a(1521),c=a(78762);let n=/9Remote-Mobile\/(\d+(?:\.\d+){0,2})/i,u=/^\d+(?:\.\d+){0,2}$/,i={android:"market://details?id=cc.remote9.app",ios:"itms-apps://apps.apple.com/app/id6796664210"};function o(){return"u"<typeof navigator?"android":window.DEVICE_INFO?.platform?window.DEVICE_INFO.platform:/iPhone|iPad|iPod/i.test(navigator.userAgent)||/^iP/.test(navigator.platform||"")||window.webkit?.messageHandlers?"ios":"android"}function s(){let{t:e}=(0,c.s)(),[t,a]=(0,l.useState)(!1);if((0,l.useEffect)(()=>{let e=navigator.userAgent;if(!window.ReactNativeWebView&&!n.test(String(e||"")))return;let t=o(),r=!1;return(async()=>{try{let l=await fetch(`/api/version?platform=${t}&_t=${Date.now()}`);if(!l.ok||r)return;let c=await l.json(),i=c?.minAppVersion;if(r||!i)return;let o=function(e,t){let a=t?.version;if("string"==typeof a&&u.test(a))return a;let r=n.exec(String(e||""));return r?r[1]:null}(e,window.DEVICE_INFO);(null===o||function(e,t){if(!u.test(String(e))||!u.test(String(t)))return!1;let a=String(e).split(".").map(Number),r=String(t).split(".").map(Number);for(let e=0;e<3;e++){let t=(a[e]||0)-(r[e]||0);if(0!==t)return t<0}return!1}(o,i))&&a(!0)}catch{}})(),()=>{r=!0}},[]),!t)return null;let s=i[o()]||i.android;return(0,r.jsxs)("div",{className:"fixed inset-0 z-[300] flex flex-col items-center justify-center gap-4 bg-[#0b0d0c] px-8 text-center",children:[(0,r.jsx)("span",{className:"material-symbols-rounded text-[56px] text-[#E56A4A]",children:"system_update_alt"}),(0,r.jsx)("h2",{className:"text-lg font-semibold text-white",children:e("appUpdate.title")}),(0,r.jsx)("p",{className:"max-w-xs text-sm text-white/60",children:e("appUpdate.body")}),(0,r.jsx)("a",{href:s,className:"mt-2 rounded-brand bg-[#E56A4A] px-6 py-2.5 text-sm font-semibold text-white",children:e("appUpdate.action")})]})}},32453:(e,t,a)=>{Promise.resolve().then(a.bind(a,72569)),Promise.resolve().then(a.bind(a,64457)),Promise.resolve().then(a.bind(a,24608)),Promise.resolve().then(a.t.bind(a,41453,23)),Promise.resolve().then(a.t.bind(a,45474,23)),Promise.resolve().then(a.t.bind(a,75550,23)),Promise.resolve().then(a.t.bind(a,20894,23)),Promise.resolve().then(a.bind(a,30346)),Promise.resolve().then(a.bind(a,95223)),Promise.resolve().then(a.bind(a,59584)),Promise.resolve().then(a.bind(a,44976))},44976:(e,t,a)=>{"use strict";a.d(t,{D:()=>s,ThemeProvider:()=>o});var r=a(73365),l=a(1521),c=a(79063);let n=(0,l.createContext)({theme:c.SS,setTheme:()=>{},toggleTheme:()=>{}}),u=e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),t.style.colorScheme=e;try{let t=window.__TAURI__?.window?.getCurrentWindow?.();t&&(t.setTheme?.(e)?.catch?.(()=>{}),t.setBackgroundColor?.("light"===e?"#e7e7e9":"#2a2a2a")?.catch?.(()=>{}))}catch{}},i=e=>{if(window.ReactNativeWebView)try{window.ReactNativeWebView.postMessage(JSON.stringify({type:"THEME_CHANGE",theme:e}))}catch(e){}};function o({children:e}){let[t,a]=(0,l.useState)(c.SS);(0,l.useEffect)(()=>{let e=localStorage.getItem(c.AQ)||localStorage.getItem("9remote-theme"),t=c.$.includes(e)?e:c.SS;a(t),u(t),i(t)},[]);let s=(0,l.useCallback)(e=>{c.$.includes(e)&&(a(e),u(e),i(e),localStorage.setItem(c.AQ,e),localStorage.setItem("9remote-theme",e))},[]),F=(0,l.useCallback)(()=>{s("dark"===t?"light":"dark")},[t,s]);return(0,r.jsx)(n.Provider,{value:{theme:t,setTheme:s,toggleTheme:F},children:e})}let s=()=>(0,l.useContext)(n)},59584:(e,t,a)=>{"use strict";a.d(t,{default:()=>n});var r=a(73365),l=a(1521);let c=()=>()=>{};function n({id:e,html:t}){return(0,l.useSyncExternalStore)(c,()=>!1,()=>!0)?(0,r.jsx)("script",{id:e,dangerouslySetInnerHTML:{__html:t}}):null}},79063:(e,t,a)=>{"use strict";a.d(t,{$:()=>r,AQ:()=>c,In:()=>s,SS:()=>l,aC:()=>u,g4:()=>o});let r=["dark","light"],l="dark",c="app_theme_v2";function n(e){return{background:e.bg,foreground:e.text,cursor:e.accent||e.peach||e.blue,cursorAccent:e.bg,selectionBackground:e.surface1,black:e.surfaceDim||e.bg,red:e.red,green:e.green,yellow:e.yellow,blue:e.blue,magenta:e.mauve,cyan:e.teal,white:e.subtext0||e.text,brightBlack:e.overlay0,brightRed:e.red,brightGreen:e.green,brightYellow:e.yellow,brightBlue:e.blue,brightMagenta:e.mauve,brightCyan:e.teal,brightWhite:e.text}}let u={dark:n({bg:"#1A1A1A",surface0:"#232323",surface1:"#2A2A2A",surfaceDim:"#101010",overlay0:"#5C5C5C",text:"#FFFFFF",subtext0:"#A0A0A0",red:"#FF8080",green:"#99FFE4",yellow:"#FFC799",blue:"#B0B0B0",mauve:"#FFD1A8",teal:"#66DDCC",peach:"#FFC799",accent:"#FFC799"}),light:n({bg:"#F5F5F5",surface0:"#E8E8E8",surface1:"#DDDDDD",surfaceDim:"#EFEFEF",overlay0:"#999999",text:"#1A1A1A",subtext0:"#5A5A5A",red:"#D9534F",green:"#2A9D8F",yellow:"#E07A3C",blue:"#6B6B6B",mauve:"#C97B5A",teal:"#3A9B8E",peach:"#E07A3C",accent:"#E07A3C"})},i={catppuccinMocha:n({bg:"#181825",surface0:"#31324A",surface1:"#45475A",surfaceDim:"#1E1E2E",overlay0:"#6C708E",text:"#CDD6F4",subtext0:"#A6ADC8",red:"#F38BA8",green:"#A6E3A1",yellow:"#F9E2AF",blue:"#89B4FA",mauve:"#CBA7F7",teal:"#94E2D5",peach:"#FAB387",accent:"#89B4FA"}),monokaiPro:n({bg:"#2D2A2E",surface0:"#353034",surface1:"#3D383C",surfaceDim:"#221F22",overlay0:"#72696A",text:"#FFF1F3",subtext0:"#C8C5C8",red:"#FD6883",green:"#ADDA78",yellow:"#F9CC6C",blue:"#F38D70",mauve:"#A8A9EB",teal:"#85DACC",peach:"#F38D70",accent:"#A8A9EB"}),gruvboxMaterial:n({bg:"#282828",surface0:"#3C3836",surface1:"#504945",surfaceDim:"#1D2021",overlay0:"#928374",text:"#D4BE98",subtext0:"#A89984",red:"#EA6962",green:"#A9B665",yellow:"#D8A657",blue:"#7DAEA3",mauve:"#D3869B",teal:"#89B482",peach:"#E78A4E",accent:"#E78A4E"}),dracula:n({bg:"#282A36",surface0:"#44475A",surface1:"#6272A4",surfaceDim:"#282A36",overlay0:"#6272A4",text:"#F8F8F2",subtext0:"#D2D2DC",red:"#FF5555",green:"#50FA7B",yellow:"#F1FA8C",blue:"#8BE9FD",mauve:"#FF79C6",teal:"#8BE9FD",peach:"#FFB86C",accent:"#BD93F9"}),everforest:n({bg:"#2D353B",surface0:"#343F44",surface1:"#3D484D",surfaceDim:"#232A2E",overlay0:"#7A8478",text:"#D3C6AA",subtext0:"#9DA9A0",red:"#E67E80",green:"#A7C080",yellow:"#DBBC7F",blue:"#7FBBB3",mauve:"#D699B6",teal:"#83C092",peach:"#E69875",accent:"#A7C080"}),linear:n({bg:"#08090A",surface0:"#0F1011",surface1:"#141516",surfaceDim:"#010102",overlay0:"#3E3E44",text:"#F7F8F8",subtext0:"#B4B4B8",red:"#F34E52",green:"#27A644",yellow:"#E4F222",blue:"#8FA6FF",mauve:"#8B5CF6",teal:"#02B8CC",peach:"#F7BF8B",accent:"#5E6AD2"}),synthwave:n({bg:"#262335",surface0:"#241B2F",surface1:"#34294F",surfaceDim:"#171520",overlay0:"#9D8BCA",text:"#FFFFFF",subtext0:"#FFFFFF99",red:"#FE4450",green:"#72F1B8",yellow:"#FEDE5D",blue:"#03EDF9",mauve:"#FF7EDB",teal:"#03EDF9",peach:"#F97E72",accent:"#FF7EDB"}),poimandres:n({bg:"#1B1E28",surface0:"#303340",surface1:"#3A4050",surfaceDim:"#14161F",overlay0:"#506477",text:"#E4F0FB",subtext0:"#A6ACCD",red:"#D0679D",green:"#5DE4C7",yellow:"#FFFAC2",blue:"#ADD7FF",mauve:"#F087BD",teal:"#5DE4C7",peach:"#F087BD",accent:"#5DE4C7"}),ayuMirage:n({bg:"#1F2430",surface0:"#212733",surface1:"#272D3A",surfaceDim:"#161B26",overlay0:"#686868",text:"#CBCCC6",subtext0:"#9A9B95",red:"#F08778",green:"#53BF97",yellow:"#FDCC60",blue:"#60B8D6",mauve:"#EC7171",teal:"#98E6CA",peach:"#FFA759",accent:"#FFCC66"}),githubDarkDimmed:n({bg:"#22272E",surface0:"#2D333B",surface1:"#373E47",surfaceDim:"#1C2128",overlay0:"#545D68",text:"#CDD9E5",subtext0:"#909DAB",red:"#F47067",green:"#57AB5A",yellow:"#C69026",blue:"#539BF5",mauve:"#B083F0",teal:"#39C5CF",peach:"#DAAA3F",accent:"#539BF5"}),palenight:n({bg:"#292D3E",surface0:"#313553",surface1:"#3A3F5F",surfaceDim:"#1F2233",overlay0:"#676E95",text:"#D0D0D0",subtext0:"#A0A0C0",red:"#E05252",green:"#2BE8A8",yellow:"#FFCB6B",blue:"#3FD0E0",mauve:"#C792EA",teal:"#3FD0E0",peach:"#FFCB6B",accent:"#82AAFF"}),nordDark:n({bg:"#2E3440",surface0:"#3B4252",surface1:"#434C5E",surfaceDim:"#232831",overlay0:"#4C566A",text:"#ECEFF4",subtext0:"#D8DEE9",red:"#BF616A",green:"#A3BE8C",yellow:"#EBCB8B",blue:"#81A1C1",mauve:"#B48EAD",teal:"#88C0D0",peach:"#D08770",accent:"#88C0D0"}),horizon:n({bg:"#1C1E26",surface0:"#232530",surface1:"#2E303E",surfaceDim:"#16161C",overlay0:"#6B6F8A",text:"#E0E0E0",subtext0:"#C5C8DA",red:"#E95678",green:"#29D398",yellow:"#FAB795",blue:"#26BBD9",mauve:"#EE64AC",teal:"#59E1E3",peach:"#FAB795",accent:"#EE64AC"}),kanagawaDragon:n({bg:"#181616",surface0:"#1D1C1C",surface1:"#252424",surfaceDim:"#0D0C0C",overlay0:"#7A6F7A",text:"#C5C9C5",subtext0:"#A6A69C",red:"#C4746E",green:"#87A987",yellow:"#E6C384",blue:"#8BA4B0",mauve:"#938AA9",teal:"#7AA89F",peach:"#FFA066",accent:"#8BA4B0"}),catppuccinLatte:n({bg:"#EFF1F5",surface0:"#CCD0DA",surface1:"#BCC0CC",surfaceDim:"#E6E9EF",overlay0:"#9CA0B0",text:"#4C4F69",subtext0:"#6C6F85",red:"#D20F39",green:"#40A02B",yellow:"#DF8E1D",blue:"#1E66F5",mauve:"#8839EF",teal:"#179299",peach:"#FE640B",accent:"#1E66F5"}),gruvboxLight:n({bg:"#FBF1C7",surface0:"#EBDBB2",surface1:"#D5C4A1",surfaceDim:"#F2E5BC",overlay0:"#928374",text:"#3C3836",subtext0:"#504945",red:"#9D0006",green:"#79740E",yellow:"#B57614",blue:"#076678",mauve:"#8F3F71",teal:"#427B58",peach:"#AF3A03",accent:"#B57614"}),githubLight:n({bg:"#FFFFFF",surface0:"#F6F8FA",surface1:"#EAEEF2",surfaceDim:"#EFF2F5",overlay0:"#8C959F",text:"#24292F",subtext0:"#57606A",red:"#CF222E",green:"#1A7F37",yellow:"#9A6700",blue:"#0969DA",mauve:"#8250DF",teal:"#1B7C83",peach:"#BC4C00",accent:"#0969DA"}),everforestLight:n({bg:"#FDF6E3",surface0:"#F4F0D9",surface1:"#EFEBD4",surfaceDim:"#E6E2CC",overlay0:"#9DA9A0",text:"#5C6A72",subtext0:"#7A8478",red:"#F85552",green:"#8DA101",yellow:"#DFA000",blue:"#3A94C5",mauve:"#DF69BA",teal:"#35A77C",peach:"#F57D3A",accent:"#8DA101"}),ayuLight:n({bg:"#FCFCFC",surface0:"#F3F3F3",surface1:"#E8E8E8",surfaceDim:"#F7F7F7",overlay0:"#C1C1C1",text:"#5C6166",subtext0:"#8A8F94",red:"#E7666A",green:"#80AB24",yellow:"#EBA54D",blue:"#4196DF",mauve:"#9870C3",teal:"#51B891",peach:"#E78F4D",accent:"#FF8552"}),tokyoDay:n({bg:"#D6D8DF",surface0:"#C8CBD4",surface1:"#B5B8C5",surfaceDim:"#E1E3EA",overlay0:"#9699AE",text:"#343B58",subtext0:"#565C70",red:"#C24242",green:"#41A6B5",yellow:"#8F5E15",blue:"#2959AA",mauve:"#7B43BA",teal:"#006C86",peach:"#D68910",accent:"#2959AA"}),roseDawn:n({bg:"#FAF4ED",surface0:"#F2E9E1",surface1:"#E9DDD2",surfaceDim:"#F5EBE0",overlay0:"#9893A5",text:"#576279",subtext0:"#797593",red:"#B4637A",green:"#618774",yellow:"#EA9D34",blue:"#286983",mauve:"#907AA9",teal:"#56949F",peach:"#D7827E",accent:"#D7827E"}),lavenderMist:n({bg:"#F6F3FB",surface0:"#EAE5F5",surface1:"#DDD6EE",surfaceDim:"#F0ECF8",overlay0:"#9B95B8",text:"#4A4467",subtext0:"#6B6491",red:"#C95D77",green:"#5FA17A",yellow:"#D9A441",blue:"#5B7FBE",mauve:"#8B7AB8",teal:"#5FA6A8",peach:"#D08A66",accent:"#8B7AB8"}),mintCream:n({bg:"#ECF6F0",surface0:"#DCEEE3",surface1:"#C9E3D2",surfaceDim:"#E2F1E9",overlay0:"#7FA396",text:"#2F4A40",subtext0:"#4E6B5F",red:"#C76B6B",green:"#3FA17A",yellow:"#C9A93E",blue:"#4A8DB8",mauve:"#9B6FA8",teal:"#3FA17A",peach:"#D58560",accent:"#3FA17A"})},o=[{key:"catppuccinMocha",label:"Catppuccin Mocha",mode:"dark"},{key:"monokaiPro",label:"Monokai Pro",mode:"dark"},{key:"dracula",label:"Dracula",mode:"dark"},{key:"everforest",label:"Everforest",mode:"dark"},{key:"gruvboxMaterial",label:"Gruvbox Material",mode:"dark"},{key:"linear",label:"Linear",mode:"dark"},{key:"synthwave",label:"Synthwave '84",mode:"dark"},{key:"poimandres",label:"Poimandres",mode:"dark"},{key:"ayuMirage",label:"Ayu Mirage",mode:"dark"},{key:"githubDarkDimmed",label:"GitHub Dimmed",mode:"dark"},{key:"palenight",label:"Palenight",mode:"dark"},{key:"nordDark",label:"Nord",mode:"dark"},{key:"horizon",label:"Horizon",mode:"dark"},{key:"kanagawaDragon",label:"Kanagawa Dragon",mode:"dark"},{key:"catppuccinLatte",label:"Catppuccin Latte",mode:"light"},{key:"gruvboxLight",label:"Gruvbox Light",mode:"light"},{key:"githubLight",label:"GitHub Light",mode:"light"},{key:"everforestLight",label:"Everforest Light",mode:"light"},{key:"ayuLight",label:"Ayu Light",mode:"light"},{key:"tokyoDay",label:"Tokyo Day",mode:"light"},{key:"roseDawn",label:"Rose Dawn",mode:"light"},{key:"lavenderMist",label:"Lavender Mist",mode:"light"},{key:"mintCream",label:"Mint Cream",mode:"light"}];function s(e,t){let a="light"===e?i.everforestLight:i.palenight;return t&&"default"!==t&&o.find(a=>a.key===t&&a.mode===e)&&i[t]||a}},95223:(e,t,a)=>{"use strict";a.d(t,{default:()=>l});var r=a(1521);function l(){let[e,t]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=window.matchMedia("(pointer: coarse) and (max-width: 900px)"),a=window.matchMedia("(orientation: landscape)"),r=()=>{t(e.matches),l(a.matches)};return r(),e.addEventListener("change",r),a.addEventListener("change",r),()=>{e.removeEventListener("change",r),a.removeEventListener("change",r)}},[]),(0,r.useEffect)(()=>{let t=!!window.ReactNativeWebView||/9Remote-Mobile/i.test(navigator.userAgent);if(!e||t)return;let a=!1;return(async()=>{try{await window.screen?.orientation?.lock?.("portrait"),a=!0}catch{}})(),()=>{a&&window.screen?.orientation?.unlock?.()}},[e]),null}}},e=>{e.O(0,[3285,611,8669,8762,2347,5158,7358],()=>e(e.s=32453)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{9973:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>J});var a=s(73365),n=s(1521),r=s(29717),l=s(20464),o=s(4018),i=s(2163),c=s(59893),d=s(64683),x=s(11865),m=s(80186),u=s(45111),p=s(42174),h=s(30240),g=s(8910),b=s(78762),f=s(52345),j=s(18057);function y({className:e="",showLabel:t=!0}){let{locale:s}=(0,b.s)(),[r,l]=(0,n.useState)(!1),o=f.dI.find(e=>e.code===s)||f.dI[0];return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>{(0,g.e)(),l(!0)},className:`flex items-center gap-1.5 bg-surface-2 hover:bg-surface-3 rounded-brand text-text text-sm px-2 py-1 transition-all duration-150 ease-out active:scale-[0.96] ${e}`,title:o.label,children:[(0,a.jsx)("img",{src:`https://flagcdn.com/w40/${o.country}.png`,alt:o.label,className:"w-[17px] h-[12px] object-cover rounded-[2px]",loading:"lazy"}),t&&(0,a.jsx)("span",{className:"hidden sm:inline",children:o.code.toUpperCase()})]}),(0,a.jsx)(j.A,{isOpen:r,onClose:()=>l(!1)})]})}var v=s(90753),w=s(38415),N=s(23346);let k=null;async function C(){k||(k=N.Ay.ready),await k}async function S(e,t){await C();let s=N.Ay.from_base64(e,N.Ay.base64_variants.ORIGINAL),a=N.Ay.from_string(t),n=N.Ay.crypto_box_seal(a,s);return N.Ay.to_base64(n,N.Ay.base64_variants.ORIGINAL)}function _(e=24){let t=new Uint8Array(e);return crypto.getRandomValues(t),Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}let A="9remote_github_token",L="9remote:githubTokenChange";async function z(e,t,s={}){let a=await fetch(`${w.pe}${t}`,{...s,headers:{...{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},...s.headers||{}}});if(!a.ok){let e=await a.text().catch(()=>"");throw Error(`GitHub ${a.status}: ${e||a.statusText}`)}return 204===a.status?null:a.json()}function I(){let[e,t]=(0,n.useState)(()=>localStorage.getItem(A)||""),[s,a]=(0,n.useState)(!1),[r,l]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=()=>{t(localStorage.getItem(A)||"")};return window.addEventListener(L,e),window.addEventListener("storage",e),()=>{window.removeEventListener(L,e),window.removeEventListener("storage",e)}},[!0]);let o=(0,n.useCallback)(e=>{t(e),e?localStorage.setItem(A,e):localStorage.removeItem(A),window.dispatchEvent(new Event(L))},[!0]),i=(0,n.useCallback)(()=>{o("")},[o]),c=(0,n.useCallback)(async(t=e)=>z(t,w.no.user),[e]),d=(0,n.useCallback)(async()=>{a(!0),l(null);try{return(await z(e,w.no.codespaces)).codespaces||[]}catch(e){return l(e.message),[]}finally{a(!1)}},[e]),x=(0,n.useCallback)(async t=>z(e,w.no.codespaceByName(t)),[e]),m=(0,n.useCallback)(async t=>z(e,w.no.startCodespace(t),{method:"POST"}),[e]),u=(0,n.useCallback)(async()=>z(e,w.no.userReposList),[e]),p=(0,n.useCallback)(async(t,s)=>z(e,w.no.createCodespaceForRepo(t,s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),[e]),h=(0,n.useCallback)(async(t,s)=>{let a=await z(e,w.no.codespaceSecretsPublicKey),n=await S(a.key,s);await z(e,w.no.codespaceSecret(w.Gf),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({encrypted_value:n,key_id:a.key_id,selected_repository_ids:[t]})})},[e]),g=(0,n.useCallback)(async(t,s)=>{let a=w.no.repoContents(t,s,w.Hu),n=!1;try{await z(e,a),n=!0}catch{}if(n)return{existed:!0};let r=JSON.stringify(w.cu,null,2);return await z(e,a,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:"Add 9remote devcontainer",content:btoa(unescape(encodeURIComponent(r)))})}),{existed:!1}},[e]),b=(0,n.useCallback)(async(e,t)=>{for(let s=0;s<w.ij;s++){let s=await x(e);if(t?.(s.state),s.state===w.Gi.available)return s;await new Promise(e=>setTimeout(e,w.Nn))}throw Error("Codespace start timeout")},[x]);return{token:e,setToken:o,clearToken:i,loading:s,error:r,getUser:c,listCodespaces:d,getCodespace:x,startCodespace:m,waitUntilAvailable:b,listRepos:u,createCodespace:p,ensureDevcontainer:g,setApiKeySecret:h,generateApiKey:_}}function K({isOpen:e,onClose:t,onCreated:s}){let{listRepos:r,createCodespace:l,ensureDevcontainer:o,setApiKeySecret:i,generateApiKey:c,error:x}=I(),[p,h]=(0,n.useState)([]),[g,b]=(0,n.useState)(!1),[f,j]=(0,n.useState)(null),[y,v]=(0,n.useState)(""),[w,N]=(0,n.useState)(null),[k,C]=(0,n.useState)("");(0,n.useEffect)(()=>{e&&(N(null),b(!0),r().then(e=>h(Array.isArray(e)?e:[])).catch(e=>N(e.message)).finally(()=>b(!1)))},[e,r]),(0,n.useEffect)(()=>{if(!e||f)return;let s=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t?.())};return window.addEventListener("keydown",s,!0),()=>window.removeEventListener("keydown",s,!0)},[e,f,t]);let S=(0,n.useMemo)(()=>{let e=y.trim().toLowerCase();return e?p.filter(t=>t.full_name.toLowerCase().includes(e)):p},[p,y]),_=async e=>{j(e.full_name),N(null),C("Generating API key...");try{let t=c();C("Setting codespace secret..."),await i(e.id,t),C("Setting up devcontainer..."),await o(e.owner.login,e.name),C("Creating codespace...");let a=await l(e.owner.login,e.name);s({codespace:a,apiKey:t})}catch(e){N(e.message)}finally{j(null),C("")}};return e?(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-[2px] p-4",onClick:t,children:(0,a.jsxs)("div",{className:"card-elev p-6 max-w-md w-full max-h-[80dvh] flex flex-col border border-border",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h3",{className:"text-lg font-bold text-text",children:"Select repository"}),(0,a.jsx)("button",{onClick:t,className:"p-1 text-text-muted hover:text-text",children:(0,a.jsx)(d.X,{size:20})})]}),(0,a.jsxs)("div",{className:"relative mb-3",children:[(0,a.jsx)(d.vj,{size:16,className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-muted"}),(0,a.jsx)("input",{type:"text",value:y,onChange:e=>v(e.target.value),placeholder:"Search repos...",className:"w-full pl-9 pr-3 py-2 bg-surface-2 rounded-brand text-text placeholder-text-muted focus:outline-none focus:ring-2 focus:ring-brand-500/40 text-sm"})]}),(w||x)&&(0,a.jsxs)("div",{className:"flex items-start gap-2 mb-3 p-2 bg-danger/10 rounded-brand text-xs text-danger",children:[(0,a.jsx)(d.RI,{size:14,className:"flex-shrink-0 mt-0.5"}),(0,a.jsx)("span",{className:"break-words",children:w||x})]}),(0,a.jsx)("div",{className:"flex-1 overflow-auto space-y-1",children:g?(0,a.jsx)(u.A,{text:"Loading repos..."}):0===S.length?(0,a.jsx)("div",{className:"text-center py-6 text-text-muted text-sm",children:"No repos"}):S.map(e=>{let t=f===e.full_name;return(0,a.jsxs)("div",{className:"p-2 bg-surface-2 hover:bg-surface-3 rounded-brand transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("div",{className:"text-sm text-text font-medium truncate",title:e.full_name,children:e.full_name}),e.private&&(0,a.jsx)("span",{className:"text-xs text-text-muted",children:"private"})]}),(0,a.jsxs)(m.A,{variant:"primary",onClick:()=>_(e),disabled:!!f,loading:t,className:"!py-1 !px-2 text-xs",children:[(0,a.jsx)(d.FW,{size:12}),"Create"]})]}),t&&k&&(0,a.jsx)("div",{className:"mt-1 text-xs text-text-muted",children:k})]},e.id)})})]})}):null}let E="9remote_codespace_keys";function R(){try{return JSON.parse(localStorage.getItem(E)||"{}")}catch{return{}}}function M({onConnect:e,onLogout:t}){let{listCodespaces:s,startCodespace:r,waitUntilAvailable:l,loading:o,error:i,getUser:c}=I(),[x,p]=(0,n.useState)([]),[h,g]=(0,n.useState)(null),[b,f]=(0,n.useState)(null),[j,y]=(0,n.useState)(""),[v,N]=(0,n.useState)(!1),k=(0,n.useCallback)(async()=>{try{let e=await c();g(e)}catch{}p(await s())},[c,s]);(0,n.useEffect)(()=>{k()},[k]);let C=async t=>{var s;let a=(s=t.name,R()[s]||null);if(!a){y("No saved key for this codespace. Recreate it from web to enable auto-connect."),f(t.name),setTimeout(()=>{f(null),y("")},4e3);return}f(t.name),y("");try{let s=t;t.state!==w.Gi.available&&(y("Starting codespace..."),await r(t.name),s=await l(t.name,e=>{y(`State: ${e}`)})),e(s,a)}catch(e){y(`Error: ${e.message}`)}finally{f(null)}};return(0,a.jsxs)("div",{className:"card-elev p-8 max-w-md w-full border border-border",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,a.jsx)("div",{className:"p-2 bg-brand-500/10 rounded-brand",children:(0,a.jsx)(d.Cp,{className:"text-brand-500",size:24})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("h2",{className:"text-xl font-bold text-text",children:"Codespaces"}),h&&(0,a.jsxs)("p",{className:"text-sm text-text-muted truncate",children:["@",h.login]})]}),(0,a.jsx)("button",{onClick:()=>N(!0),className:"p-2 text-text-muted hover:text-text hover:bg-surface-2 rounded-brand transition-colors",title:"New codespace",children:(0,a.jsx)(d.FW,{size:18})}),(0,a.jsx)("button",{onClick:k,disabled:o,className:"p-2 text-text-muted hover:text-text hover:bg-surface-2 rounded-brand transition-colors",title:"Refresh",children:(0,a.jsx)(d.e9,{size:18,className:o?"animate-spin":""})}),(0,a.jsx)("button",{onClick:t,className:"p-2 text-text-muted hover:text-text hover:bg-surface-2 rounded-brand transition-colors",title:"Logout",children:(0,a.jsx)(d.nU,{size:18})})]}),i&&(0,a.jsxs)("div",{className:"flex items-start gap-2 mb-4 p-3 bg-danger/10 rounded-brand text-sm text-danger",children:[(0,a.jsx)(d.RI,{size:16,className:"flex-shrink-0 mt-0.5"}),(0,a.jsx)("span",{className:"break-words",children:i})]}),o&&0===x.length?(0,a.jsx)(u.A,{text:"Loading codespaces..."}):0===x.length?(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)("p",{className:"text-text-muted text-sm mb-4",children:"No codespaces yet."}),(0,a.jsxs)(m.A,{variant:"primary",onClick:()=>N(!0),children:[(0,a.jsx)(d.FW,{size:16}),"Create new codespace"]})]}):(0,a.jsx)("div",{className:"space-y-2",children:x.map(e=>{let t=b===e.name,s=e.state===w.Gi.available;return(0,a.jsxs)("div",{className:"bg-surface-2 rounded-brand p-3 hover:bg-surface-3 transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("div",{className:"text-text font-medium truncate",title:e.display_name||e.name,children:e.display_name||e.name}),(0,a.jsxs)("div",{className:"text-xs text-text-muted truncate",title:`${e.repository?.full_name} \xb7 ${e.state}`,children:[e.repository?.full_name," \xb7 ",e.state]})]}),(0,a.jsxs)(m.A,{variant:"primary",onClick:()=>C(e),disabled:t,loading:t,className:"!py-1.5 !px-3 text-sm",children:[(0,a.jsx)(d.jG,{size:14}),s?"Connect":"Start"]})]}),t&&j&&(0,a.jsx)("div",{className:"mt-2 text-xs text-text-muted",children:j})]},e.name)})}),(0,a.jsx)(K,{isOpen:v,onClose:()=>N(!1),onCreated:({codespace:e,apiKey:t})=>{var s;let a;s=e.name,(a=R())[s]=t,localStorage.setItem(E,JSON.stringify(a)),N(!1),k()}})]})}var T=s(97711),O=s(90084),P=s(86129),U=s(11155),F=s(2805),$=s(75687),D=s(73426),G=s(90076);function W(){let{t:e}=(0,b.s)(),[t,s]=(0,n.useState)(""),[g,f]=(0,n.useState)(!0),[j,N]=(0,n.useState)([]),[k,C]=(0,n.useState)(!1),[S,_]=(0,n.useState)(!1),[A,L]=(0,n.useState)("local"),[z,K]=(0,n.useState)(null),[E,R]=(0,n.useState)(""),[W,B]=(0,n.useState)(null),[J,H]=(0,n.useState)(null),[Q,V]=(0,n.useState)(null),X="3.0.39",{token:q,clearToken:Y}=I(),{getAuth:Z,setAuth:ee}=(0,T.Fo)(),et=(0,r.useSearchParams)(),es=(0,r.useRouter)(),{loading:ea,error:en,setError:er,authenticateWithToken:el,authenticateWithApiKey:eo}=(0,l.As)(),[ei,ec]=(0,n.useState)(!1),{loadKeys:ed,saveKey:ex,removeKey:em,renameKey:eu,hasStoredKeys:ep,updateLastLogin:eh}=(0,o.u)(),eg=(0,n.useMemo)(()=>j.some(e=>(0,U.PF)(e.key)),[j]),eb=(0,n.useMemo)(()=>et.get("t"),[et]),[ef]=(0,n.useState)(()=>{try{let e=sessionStorage.getItem("9remote_url_pairing");if(e)return e;let t=(0,$.k)(window.location.hash)||(0,$.k)(window.location.search);if(t?.tempKey)return sessionStorage.setItem("9remote_url_pairing",t.tempKey+(t.tail||"")),t.tempKey+(t.tail||"")}catch{}return null}),ej=!!eb||!!ef,ey=(0,n.useRef)(!1);(0,n.useEffect)(()=>{ey.current||eb||ef||sessionStorage.getItem(P.Jd)||(0,F._r)()&&window.location.port===String(G._8)||"1"===sessionStorage.getItem("9remote_manual_disconnect")||Z()?.apiKey&&(ey.current=!0,es.replace("/workspace/"))},[eb,ef,Z,es]),(0,n.useEffect)(()=>{if(window.location.hash||window.location.search){let e=(0,$.k)(window.location.hash)||(0,$.k)(window.location.search);e?.tempKey&&window.history.replaceState(null,"",window.location.pathname)}f("false"!==localStorage.getItem("9remote_remember_key_preference")),N(ed()),C(!0),sessionStorage.getItem(P.Jd)&&(sessionStorage.removeItem(P.Jd),ec(!0)),q&&L("github"),(0,F._r)()&&window.location.port===String(G._8)&&fetch("/api/ui/state").then(e=>e.ok?e.json():null).then(e=>{if(e?.permanentKey){V(e.permanentKey);let t="remote"===et.get("mode");if(t)try{sessionStorage.setItem("9remote_manual_disconnect","1")}catch{}if(!(t||"1"===sessionStorage.getItem("9remote_manual_disconnect"))){let t=e.permanentKey,s=(0,U.Uo)(t),a=(0,U.Cj)(t);(0,O.LG)(s,{tail:a}),ee({apiKey:s,tunnelUrl:window.location.origin,mode:"local",tempKey:null,localIp:null}),es.push("/workspace/")}}}).catch(()=>{})},[ed,q,es,ee,et]);let ev=(0,n.useCallback)(async e=>{let t=(0,$.k)(e);(0,D.U)("false"!==localStorage.getItem("9remote_remember_key_preference"));let s=await el(t?.tempKey||e,!0,t?.tail);try{sessionStorage.removeItem("9remote_url_pairing")}catch{}s.success&&(0,D.zm)(t,{remember:"false"!==localStorage.getItem("9remote_remember_key_preference")})},[el]),ew=(0,n.useRef)(!1);(0,n.useEffect)(()=>{(eb||ef)&&(ew.current||(ew.current=!0,eb?el(eb):ev(ef)))},[eb,ef,el,ev]);let eN=async()=>{let s=t.trim();if(!s)return;if((0,U.PF)(s))return void er(e("login.legacyKeyError"));let a=(0,$.k)(s),n=!!a?.tempKey,r=n?a.tempKey:(0,U.Uo)(s),l=n?a.tail:(0,U.Cj)(s);if(n&&(0,D.U)(g),(n?await el(a.tempKey,!0,a.tail):await eo(s)).success){if(n)return void(0,D.zm)(a,{remember:g});l&&(0,O.LG)(r,{tail:l}),g&&sessionStorage.setItem(P.El,s),es.push("/workspace/")}},ek=async t=>{let s;if(!t)return;if((0,U.PF)(t))return void er(e("login.legacyKeyError"));let a=(0,U.Cj)(t);a&&(0,O.LG)((0,U.Uo)(t),{tail:a});let n=a?t:(0,O.$4)(t);H(t);try{s=await eo(n)}finally{H(null)}s?.success&&(n!==t&&ex(n),eh(t),es.push("/workspace/"))},eC=e=>{eu(e,E.trim()),N(ed()),K(null)},eS=()=>{K(null)},e_=async e=>{let t=(0,$.k)(e);return!!t?.tempKey&&((0,D.U)("false"!==localStorage.getItem("9remote_remember_key_preference")),!!(await el(t.tempKey,!0,t.tail)).success&&((0,D.zm)(t,{remember:"false"!==localStorage.getItem("9remote_remember_key_preference")}),!0))};return ej&&ea?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{}),(0,a.jsx)(c.A,{children:(0,a.jsx)("div",{className:"card-elev p-8 max-w-md w-full border border-border",children:(0,a.jsx)(u.A,{size:"lg",text:e("login.authenticating")})})})]}):"github"===A&&q?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{}),(0,a.jsx)(c.A,{children:(0,a.jsx)(M,{onConnect:(e,t)=>{let s=(0,w.xO)(e.name);ee({apiKey:(0,U.Uo)(t),tunnelUrl:s,mode:"remote"}),es.push("/workspace/")},onLogout:()=>{Y()}})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{}),k&&(0,F._r)()&&(0,a.jsxs)("a",{href:"/",className:"fixed top-4 left-4 z-50 inline-flex items-center gap-2 px-3 py-1.5 text-xs font-medium text-text hover:text-white bg-surface-2/90 hover:bg-surface-3 border border-border-subtle rounded-brand-lg backdrop-blur-md transition-all shadow-sm active:scale-[0.97]",title:"Back to Host QR",children:[(0,a.jsx)(d.Ay,{name:"ChevronLeft",size:15,className:"opacity-70"}),(0,a.jsx)(d.Ay,{name:"QrCode",size:15,className:"text-brand-500"}),(0,a.jsx)("span",{children:"Host QR"})]}),(0,a.jsxs)("div",{className:"min-h-screen grid lg:grid-cols-2",children:[(0,a.jsxs)("section",{className:"hidden lg:flex flex-col justify-between px-12 xl:px-20 py-12 relative overflow-hidden",children:[(0,a.jsx)("div",{className:"login-hero-glow","aria-hidden":!0}),(0,a.jsxs)("div",{className:"my-auto max-w-xl relative z-10",children:[(0,a.jsxs)("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-surface-2/60 border border-border-subtle font-mono text-[11px] text-text-muted mb-7",children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-brand-500 animate-pulse-glow"}),e("login.termConnected")," \xb7 ",e("login.termTunnel")]}),(0,a.jsxs)("h1",{className:"text-6xl xl:text-7xl font-extrabold tracking-tight leading-[0.98] mb-6 text-text",children:[e("login.heroLine1"),(0,a.jsx)("br",{}),e("login.heroLine2"),(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"login-hero-grad",children:e("login.heroLine3")})]}),(0,a.jsx)("p",{className:"text-text-muted text-base lg:text-lg leading-relaxed max-w-md mb-8",children:e("login.tagline")}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2 mb-9",children:["Terminal","Desktop","Files","WebRTC low-latency","iOS \xb7 Android \xb7 Web"].map(e=>(0,a.jsx)("span",{className:"font-mono text-xs text-text-muted px-3 py-1.5 rounded-full border border-border-subtle",children:e},e))}),(0,a.jsxs)("div",{className:"rounded-xl border border-border-subtle bg-surface-2/60 overflow-hidden max-w-md shadow-lg",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-2 border-b border-border-subtle",children:[(0,a.jsx)("span",{className:"w-2.5 h-2.5 rounded-full bg-[#ff5f57]"}),(0,a.jsx)("span",{className:"w-2.5 h-2.5 rounded-full bg-[#febc2e]"}),(0,a.jsx)("span",{className:"w-2.5 h-2.5 rounded-full bg-[#28c840]"}),(0,a.jsx)("span",{className:"ml-2 font-mono text-[10px] text-text-subtle",children:"dev@mac — zsh"})]}),(0,a.jsxs)("div",{className:"p-3.5 font-mono text-[12px] leading-relaxed",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-subtle",children:"➜"})," 9remote start"]}),(0,a.jsx)("div",{className:"text-text-subtle",children:"↳ tunnel up \xb7 pairing open"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-brand-500",children:"[ok]"})," ",(0,a.jsx)("span",{className:"text-text",children:"machine"})," ",(0,a.jsx)("span",{className:"text-text-subtle",children:"macbook-pro-m3"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-brand-500",children:"[ok]"})," ",(0,a.jsx)("span",{className:"text-text",children:"pty"})," ",(0,a.jsx)("span",{className:"text-text-subtle",children:"daemon v3.1 \xb7 12 warm"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-[#6aab6a]",children:"●"})," ",(0,a.jsx)("span",{className:"text-text-subtle",children:"waiting for phone…"})," ",(0,a.jsx)("span",{className:"inline-block w-[7px] h-[13px] bg-brand-500 align-middle animate-cursor-blink"})]})]})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-x-5 gap-y-1 font-mono text-[11px] text-text-subtle pt-8 relative z-10",children:[(0,a.jsx)("span",{children:"› PTY persistent"}),(0,a.jsx)("span",{children:"› end-to-end encrypted"}),(0,a.jsx)("span",{children:"› open source"})]})]}),(0,a.jsxs)("section",{className:"flex items-center justify-center p-6 sm:p-10 lg:border-l lg:border-border-subtle lg:bg-surface-1 relative",children:[(0,a.jsx)("div",{className:"login-mobile-glow lg:hidden","aria-hidden":!0}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-sm space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,a.jsx)("img",{src:"/icon-192.png",alt:"9Remote Logo",className:"w-10 h-10 rounded-[11px] object-contain shadow-lg shadow-brand-500/20"}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("h1",{className:"text-[22px] font-bold tracking-tight text-text leading-none",children:"9Remote"}),X&&(0,a.jsxs)("p",{className:"font-mono text-[11px] text-text-subtle mt-1",children:["v",X]})]}),(0,a.jsx)(y,{}),(0,a.jsx)(v.A,{})]}),(0,a.jsx)("p",{className:"text-text-muted text-lg font-medium leading-snug pr-4 mb-6 lg:hidden",children:e("login.tagline")}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-2.5",children:[(0,a.jsx)(d.Ay,{name:"KeyRound",className:"text-text-muted opacity-70",size:14}),(0,a.jsx)("span",{className:"text-[13px] font-semibold text-text",children:e("login.accessKey")})]}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{id:"accessKeyInput",type:"text",value:t,onChange:e=>{let t=e.target.value;s(t.length<=P.qM?t.toUpperCase():t.toLowerCase())},onKeyDown:e=>"Enter"===e.key&&t&&eN(),placeholder:e("login.placeholder"),className:"w-full pl-3.5 pr-20 py-3 bg-surface-2 border border-border-subtle rounded-[10px] font-mono text-sm text-text placeholder-text-subtle focus:outline-none focus:border-brand-500 focus:ring-2 focus:ring-brand-500/20 transition-all duration-150"}),(0,a.jsxs)("div",{className:"absolute right-2.5 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[t&&(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>{s("")},className:"w-7 h-7 grid place-items-center rounded-[7px] text-text-subtle hover:bg-surface-3 hover:text-text transition-colors",type:"button",children:(0,a.jsx)(d.X,{size:16})})}),(0,a.jsx)("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>_(!0),className:"w-7 h-7 grid place-items-center rounded-[7px] text-text-subtle hover:bg-surface-3 hover:text-brand-500 transition-colors",type:"button","aria-label":e("login.scanQr"),children:(0,a.jsx)(d.Ay,{name:"QrCode",size:16})})]})]}),(en||ei)&&(0,a.jsx)("p",{className:"mt-2 text-xs font-mono text-danger",children:"agent-offline"===en?e("login.agentOffline"):en&&"wrong-key-tail"!==en?en:e("login.invalidKeyTail")}),(0,a.jsxs)("label",{className:"flex items-center gap-2.5 cursor-pointer mt-4 select-none",children:[(0,a.jsx)("input",{type:"checkbox",checked:g,onChange:e=>{var t;return f(t=e.target.checked),void(localStorage.setItem("9remote_remember_key_preference",t),!t&&(0,T.U0)())},className:"w-[15px] h-[15px] accent-brand-500"}),(0,a.jsx)("span",{className:"text-[13px] text-text-muted",children:e("login.rememberKey")})]}),(0,a.jsx)(m.A,{variant:"primary",onClick:eN,loading:ea,className:"btn-cta w-full mt-4",children:(0,a.jsxs)("span",{className:"inline-flex items-center justify-center gap-2",children:[e("login.connect"),(0,a.jsx)(d.Ay,{name:"ArrowRight",size:16})]})}),k&&j.length>0&&(0,a.jsxs)("div",{className:"mt-5 pt-5 border-t border-border-subtle",children:[(0,a.jsx)("div",{className:"font-mono text-[11px] uppercase tracking-wider text-text-subtle mb-1 px-1",children:e("login.savedKeys")}),eg&&(0,a.jsxs)("div",{className:"my-2.5 px-3 py-2.5 bg-amber-500/10 border border-amber-500/30 rounded-brand-lg flex items-start gap-2.5",children:[(0,a.jsx)(d.Ay,{name:"AlertCircle",size:16,className:"text-amber-500 shrink-0 mt-0.5"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"text-xs font-medium text-text",children:e("login.legacyKeyUpdateRequired")}),(0,a.jsx)("div",{className:"text-xs text-text-muted mt-0.5",children:e("login.legacyKeyUpdateHint")}),(0,a.jsx)("code",{className:"inline-block mt-1.5 px-2 py-0.5 bg-surface-2 border border-border text-text text-xs rounded font-mono select-all",children:"npm i -g 9remote@latest"})]})]}),j.map(t=>{let s=z===t.id,n=J===t.key,r=(0,U.PF)(t.key);return(0,a.jsxs)("div",{className:`flex items-center gap-3 px-1 py-2 rounded-[10px] hover:bg-surface-2 transition-colors cursor-pointer ${r?"opacity-85":""}`,onClick:()=>!s&&!n&&ek(t.key),role:"button",tabIndex:0,children:[(0,a.jsx)("div",{className:`w-12 h-12 rounded-[12px] bg-surface-2 border ${r?"border-amber-500/40 text-amber-500":"border-border-subtle text-text-muted"} grid place-items-center flex-shrink-0`,children:(0,a.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round",className:"w-[26px] h-[26px]",children:[(0,a.jsx)("rect",{x:"2",y:"4",width:"20",height:"13",rx:"2"}),(0,a.jsx)("line",{x1:"2",y1:"20",x2:"22",y2:"20"})]})}),(0,a.jsx)("div",{className:"flex-1 min-w-0",children:s?(0,a.jsxs)("div",{className:"flex items-center gap-1",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("input",{autoFocus:!0,value:E,onChange:e=>R(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eC(t.id),"Escape"===e.key&&eS()},placeholder:e("login.namePlaceholder"),className:"flex-1 min-w-0 bg-surface-2 border border-brand-500 rounded-md text-text text-[13px] px-2 py-1 outline-none"}),(0,a.jsx)("button",{onClick:()=>eC(t.id),className:"w-6 h-6 grid place-items-center rounded-md bg-brand-500 text-white","aria-label":e("common.done"),children:(0,a.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",className:"w-3 h-3",children:(0,a.jsx)("polyline",{points:"20 6 9 17 4 12"})})}),(0,a.jsx)("button",{onClick:eS,className:"w-6 h-6 grid place-items-center rounded-md bg-surface-2 text-text-muted","aria-label":e("common.cancel"),children:(0,a.jsx)(d.X,{size:13})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-[13px] font-medium text-text truncate",title:t.label||e("agentSwitcher.unnamed"),children:t.label||e("agentSwitcher.unnamed")}),r&&(0,a.jsx)("span",{className:"shrink-0 px-1.5 py-0.5 text-[9px] font-semibold font-mono uppercase rounded bg-amber-500/15 text-amber-500 border border-amber-500/30",children:e("login.updateRequired")})]}),(0,a.jsx)("div",{className:"font-mono text-[11px] text-text-subtle mt-0.5 truncate",children:(0,i.o)(t.key)})]})}),!s&&(0,a.jsx)("span",{className:"font-mono text-[11px] text-text-subtle whitespace-nowrap",children:n?e("agentSwitcher.connecting"):(t=>{if(!t)return"";try{let s=new Date(t),a=new Date-s,n=Math.floor(a/6e4),r=Math.floor(a/36e5),l=Math.floor(a/864e5);if(n<1)return e("login.justNow");if(n<60)return e("login.minutesAgo",{n:n});if(r<24)return e("login.hoursAgo",{n:r});if(l<7)return e("login.daysAgo",{n:l});return s.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return""}})(t.lastLoginDate)}),!s&&(0,a.jsxs)("div",{className:"flex gap-0.5",onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("button",{onClick:()=>{K(t.id),R(t.label||"")},title:e("common.edit"),className:"w-[26px] h-[26px] grid place-items-center rounded-[7px] text-text-subtle hover:bg-surface-3 hover:text-text transition-colors",children:(0,a.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"w-3.5 h-3.5",children:[(0,a.jsx)("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),(0,a.jsx)("path",{d:"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z"})]})}),(0,a.jsx)("button",{onClick:()=>B(t),title:e("common.delete"),className:"w-[26px] h-[26px] grid place-items-center rounded-[7px] text-text-subtle hover:bg-surface-3 hover:text-danger transition-colors",children:(0,a.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"w-3.5 h-3.5",children:[(0,a.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,a.jsx)("path",{d:"M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})]},t.id)})]}),(0,a.jsxs)("div",{className:"flex items-center justify-center gap-2 pt-1 text-text-subtle",children:[(0,a.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"w-3.5 h-3.5",children:(0,a.jsx)("path",{d:"M12 2l9 4v6c0 5-3.8 9.7-9 11-5.2-1.3-9-6-9-11V6l9-4z"})}),(0,a.jsx)("span",{className:"font-mono text-[11px]",children:e("login.secureTitle")})]})]})]})]}),(0,a.jsx)(x.A,{isOpen:S,onClose:()=>_(!1),onScan:e_}),(0,a.jsx)(p.A,{isOpen:!!W,onClose:()=>B(null),onConfirm:()=>{W&&(em(W.id),N(ed()))},title:e("login.deleteKeyTitle"),message:e("login.deleteKeyConfirm",{name:W?.label}),confirmText:e("common.delete")})]})}function B(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{}),(0,a.jsx)(c.A,{children:(0,a.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,a.jsx)(u.A,{text:"Loading..."}),(0,a.jsx)("a",{href:"/login",className:"text-sm text-text-muted hover:text-brand-500 underline underline-offset-4 transition-colors",children:"Reload"})]})})]})}function J(){return(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)(B,{}),children:(0,a.jsx)(W,{})})}},59893:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});var a=s(73365);function n({children:e,centered:t=!0,className:s=""}){return(0,a.jsx)("div",{className:`min-h-screen ${t?"flex items-center justify-center p-4":""} ${s}`,children:e})}},66859:(e,t,s)=>{Promise.resolve().then(s.bind(s,9973))},90753:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var a=s(73365),n=s(44976),r=s(8910);let l=({size:e=18})=>(0,a.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"4"}),(0,a.jsx)("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"})]}),o=({size:e=18})=>(0,a.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})});function i({className:e="",size:t=18}){let{theme:s,toggleTheme:c}=(0,n.D)(),d="dark"===s;return(0,a.jsx)("button",{type:"button",onClick:()=>{(0,r.e)(),c()},"aria-label":d?"Switch to light theme":"Switch to dark theme",title:d?"Light mode":"Dark mode",className:`p-1.5 rounded-brand transition-colors text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-surface-2)] ${e}`,children:d?(0,a.jsx)(l,{size:t}):(0,a.jsx)(o,{size:t})})}}},e=>{e.O(0,[1236,8207,1050,3346,8922,8762,5788,2347,5158,7358],()=>e(e.s=66859)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1447,4896,5348,5711,6364,6399,6819,6913,6988,7427,7711,7851,8167,8655,8983,9603],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1447,4896,5348,5711,6364,6399,6819,6913,6988,7427,7711,7851,8167,8655,8983,9603],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1447,4896,5348,5711,6364,6399,6819,6913,6988,7427,7711,7851,8167,8655,8983,9603],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1447,4896,5348,5711,6364,6399,6819,6913,6988,7427,7711,7851,8167,8655,8983,9603],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|