@jingyi0605/codingns 0.9.5 → 0.9.6
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/bin/codingns.mjs +75 -0
- package/dist/public/assets/{AdaptiveButlerPage-kkJDsnCO.js → AdaptiveButlerPage-khJQh6a_.js} +1 -1
- package/dist/public/assets/{App-DrNI9lWA.js → App-If9gThKM.js} +6 -6
- package/dist/public/assets/{BootstrapPage-QgVH5Mps.js → BootstrapPage-DcfYtoLC.js} +1 -1
- package/dist/public/assets/{ConversationPage-DVk8VfIj.js → ConversationPage-Bfb7GLTM.js} +1 -1
- package/dist/public/assets/{DesktopDetachPreviewPage-BhfP0TpH.js → DesktopDetachPreviewPage-CXUPMcBz.js} +1 -1
- package/dist/public/assets/{DesktopModal-DRmDrv0S.js → DesktopModal-bMdI1jEe.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-DNbJXnSs.js → DesktopWindowPage-D1xwgS-7.js} +1 -1
- package/dist/public/assets/{FileContextPanel---fLO4ve.js → FileContextPanel-C4syif3B.js} +1 -1
- package/dist/public/assets/{GitSidebar-sXUE0TqT.js → GitSidebar-DduL9aTV.js} +1 -1
- package/dist/public/assets/{MobileCreateSessionSheet-BftZ5pvb.js → MobileCreateSessionSheet-DWPBsEx8.js} +1 -1
- package/dist/public/assets/{MobileSheet-nw5SCa3N.js → MobileSheet-BXvQPkxt.js} +1 -1
- package/dist/public/assets/{MobileTopHeaderFrame-DH_D02Wy.js → MobileTopHeaderFrame-vdYOyaaB.js} +1 -1
- package/dist/public/assets/{MobileWorkspaceSwitcherHeader-2K406G5p.js → MobileWorkspaceSwitcherHeader-DT330cAx.js} +1 -1
- package/dist/public/assets/{PluginAccessOverview-BVJihw3D.js → PluginAccessOverview-C77TeZTK.js} +1 -1
- package/dist/public/assets/{PluginContainerPage-CR4vStvr.js → PluginContainerPage-DdSwOCw-.js} +1 -1
- package/dist/public/assets/{PluginDetailPage-CrMX0Mnm.js → PluginDetailPage-BK1yTzvO.js} +1 -1
- package/dist/public/assets/{PluginsListPage-FtIL71Yg.js → PluginsListPage-DAAwSc6W.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-Bt1apX53.js → RelayConnectEntryPage-4Yyo2p8b.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-D-guzPrI.js → ServerSettingsModal-C_DEisHs.js} +1 -1
- package/dist/public/assets/{SessionIndexPage-CX2FppcJ.js → SessionIndexPage-DyMikN_x.js} +1 -1
- package/dist/public/assets/SettingsPage-CDAVsPr3.js +2 -0
- package/dist/public/assets/{TerminalManagerPanel-B5MKGPy-.js → TerminalManagerPanel-4OR47vcf.js} +1 -1
- package/dist/public/assets/{TerminalPage-C2dTNGHK.js → TerminalPage-Pvx396YX.js} +1 -1
- package/dist/public/assets/{TerminalRuntimeFallbackModal-DAqOxFD8.js → TerminalRuntimeFallbackModal-KvG6k4AQ.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-IsNwyE6T.js → ToolFilesPage-DrYHk0N-.js} +1 -1
- package/dist/public/assets/{ToolGitPage-BK1JBERN.js → ToolGitPage-Dz1q-Ns_.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-DwTYUQCK.js → ToolProcessesPage-CRhphOmM.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-BLOy7lPg.js → ToolsHomePage-BJSDLR6T.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CqZKR6EA.js → WorkbenchLandingPage-BlkxdOLC.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-D-U7ghT0.js +1022 -0
- package/dist/public/assets/{WorkbenchModal-BM-OeW-b.js → WorkbenchModal-xbx1o6MO.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-DyWSCHz_.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-htbkGbtW.css +1 -0
- package/dist/public/assets/{WorkspaceDebugDetailPage-BMsEN5iG.js → WorkspaceDebugDetailPage-B4ol2_a5.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-5H9Gosx2.js → WorkspaceDetailPage-DMakfmHR.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-DQiXKgiP.js → WorkspaceHomePage-tmCafatd.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-CgPJq21V.js → client-runtime-manager-Bwau7p1v.js} +1 -1
- package/dist/public/assets/index-DmUJ8tIw.css +1 -0
- package/dist/public/assets/index-_OCkVmfl.js +50 -0
- package/dist/public/assets/{login-direct-candidate-resolver-CGaxAXV8.js → login-direct-candidate-resolver-CKUQ07IA.js} +1 -1
- package/dist/public/assets/{plugin-permission-copy-BR9gWy8b.js → plugin-permission-copy-DIVk5jNp.js} +1 -1
- package/dist/public/assets/{plugins-api-CdCsrG2e.js → plugins-api-DHJVvPZw.js} +1 -1
- package/dist/public/assets/{preferences-service-lOhnlxzP.js → preferences-service-CyxxeBmS.js} +1 -1
- package/dist/public/assets/{relay-entry-CQpxTS8y.js → relay-entry-B5GmiOrR.js} +1 -1
- package/dist/public/assets/{terminal-runtime-meta-oteTx66X.js → terminal-runtime-meta-DBsyT35T.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-Bu2ykZ6s.js → useRegisteredDebugTemplates-wCGD2SLW.js} +1 -1
- package/dist/public/assets/{workbench-navigation-DlgXuFW2.js → workbench-navigation-RyUjchbD.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +1 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +31 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -1
- package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -1
- package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +4 -1
- package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -1
- package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +140 -16
- package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js +8 -7
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +14 -13
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +27 -24
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/auth/auth-controller.d.ts +27 -1
- package/dist/server/modules/auth/auth-controller.js +20 -0
- package/dist/server/modules/auth/auth-controller.js.map +1 -1
- package/dist/server/modules/auth/auth-service.d.ts +32 -1
- package/dist/server/modules/auth/auth-service.js +217 -2
- package/dist/server/modules/auth/auth-service.js.map +1 -1
- package/dist/server/modules/bootstrap/bootstrap-service.js +1 -0
- package/dist/server/modules/bootstrap/bootstrap-service.js.map +1 -1
- package/dist/server/modules/butler/assistant-automation-service.d.ts +1 -1
- package/dist/server/modules/butler/assistant-automation-service.js +9 -10
- package/dist/server/modules/butler/assistant-automation-service.js.map +1 -1
- package/dist/server/modules/butler/butler-action-context-service.js +2 -2
- package/dist/server/modules/butler/butler-action-context-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-action-service.d.ts +5 -5
- package/dist/server/modules/butler/butler-control-action-service.js +19 -19
- package/dist/server/modules/butler/butler-control-action-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +1 -1
- package/dist/server/modules/butler/butler-control-session-service.js +27 -26
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-timer-service.js +4 -5
- package/dist/server/modules/butler/butler-control-timer-service.js.map +1 -1
- package/dist/server/modules/butler/butler-controller.d.ts +2 -2
- package/dist/server/modules/butler/butler-controller.js +19 -17
- package/dist/server/modules/butler/butler-controller.js.map +1 -1
- package/dist/server/modules/butler/butler-profile-service.d.ts +5 -5
- package/dist/server/modules/butler/butler-profile-service.js +17 -16
- package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
- package/dist/server/modules/butler/butler-project-service.d.ts +7 -6
- package/dist/server/modules/butler/butler-project-service.js +35 -21
- package/dist/server/modules/butler/butler-project-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.d.ts +2 -2
- package/dist/server/modules/butler/butler-session-service.js +33 -27
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-summary-service.d.ts +2 -2
- package/dist/server/modules/butler/butler-session-summary-service.js +23 -9
- package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
- package/dist/server/modules/butler/context-aggregator.js +9 -9
- package/dist/server/modules/butler/context-aggregator.js.map +1 -1
- package/dist/server/modules/butler/patrol-execution-service.d.ts +0 -1
- package/dist/server/modules/butler/patrol-execution-service.js +6 -12
- package/dist/server/modules/butler/patrol-execution-service.js.map +1 -1
- package/dist/server/modules/sessions/session-controller.js +3 -3
- package/dist/server/modules/sessions/session-controller.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +8 -3
- package/dist/server/modules/sessions/session-history-service.js +126 -11
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.js +25 -15
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-permission-request-service.js +28 -15
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/workbench/workbench-service.js +9 -9
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workspace/affairs-library-service.d.ts +3 -1
- package/dist/server/modules/workspace/affairs-library-service.js +112 -54
- package/dist/server/modules/workspace/affairs-library-service.js.map +1 -1
- package/dist/server/modules/workspace/affairs-tag-service.d.ts +12 -0
- package/dist/server/modules/workspace/affairs-tag-service.js +527 -2
- package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -1
- package/dist/server/modules/workspace/workspace-controller.d.ts +1 -1
- package/dist/server/modules/workspace/workspace-controller.js +7 -7
- package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
- package/dist/server/modules/workspace/workspace-service.d.ts +7 -0
- package/dist/server/modules/workspace/workspace-service.js +151 -10
- package/dist/server/modules/workspace/workspace-service.js.map +1 -1
- package/dist/server/routes/auth.js +6 -0
- package/dist/server/routes/auth.js.map +1 -1
- package/dist/server/server/create-server.d.ts +4 -0
- package/dist/server/server/create-server.js +26 -0
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/server/start-host.js +20 -0
- package/dist/server/server/start-host.js.map +1 -1
- package/dist/server/shared/http/request-diagnostics.d.ts +56 -0
- package/dist/server/shared/http/request-diagnostics.js +256 -0
- package/dist/server/shared/http/request-diagnostics.js.map +1 -0
- package/dist/server/storage/repositories/auth-token-repository.d.ts +1 -0
- package/dist/server/storage/repositories/auth-token-repository.js +8 -0
- package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
- package/dist/server/storage/repositories/auth-user-repository.d.ts +50 -0
- package/dist/server/storage/repositories/auth-user-repository.js +198 -27
- package/dist/server/storage/repositories/auth-user-repository.js.map +1 -1
- package/dist/server/storage/repositories/butler-control-session-repository.d.ts +4 -1
- package/dist/server/storage/repositories/butler-control-session-repository.js +55 -8
- package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
- package/dist/server/storage/repositories/butler-profile-repository.d.ts +2 -1
- package/dist/server/storage/repositories/butler-profile-repository.js +35 -6
- package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
- package/dist/server/storage/repositories/butler-project-repository.d.ts +2 -0
- package/dist/server/storage/repositories/butler-project-repository.js +38 -4
- package/dist/server/storage/repositories/butler-project-repository.js.map +1 -1
- package/dist/server/storage/repositories/butler-session-repository.d.ts +2 -1
- package/dist/server/storage/repositories/butler-session-repository.js +35 -6
- package/dist/server/storage/repositories/butler-session-repository.js.map +1 -1
- package/dist/server/storage/repositories/session-binding-repository.d.ts +3 -0
- package/dist/server/storage/repositories/session-binding-repository.js +70 -2
- package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
- package/dist/server/storage/repositories/session-index-repository.js +7 -5
- package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
- package/dist/server/storage/repositories/workspace-repository.d.ts +3 -1
- package/dist/server/storage/repositories/workspace-repository.js +24 -10
- package/dist/server/storage/repositories/workspace-repository.js.map +1 -1
- package/dist/server/storage/sqlite/client.js +288 -0
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +33 -9
- package/dist/server/types/domain.d.ts +8 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +34 -7
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +3 -7
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/SettingsPage-BI2Olcvr.js +0 -2
- package/dist/public/assets/WorkbenchLayout-CJHQtwuL.js +0 -1022
- package/dist/public/assets/WorkbenchShellRoute-2bKI6Q9k.js +0 -1
- package/dist/public/assets/WorkbenchShellRoute-BjuZD101.css +0 -1
- package/dist/public/assets/index-BARqMVSw.css +0 -1
- package/dist/public/assets/index-BUoNjVrY.js +0 -50
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-BVUB8gMK.js","assets/event-DvH9tcej.js","assets/ServerSettingsModal-
|
|
2
|
-
var Un=Object.defineProperty;var kn=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Re=(e,t,r)=>kn(e,typeof t!="symbol"?t+"":t,r);import{u as qe,j as p,t as we,a as qt,g as An,r as Fn,b as f,R as Vn,c as Ze,_ as W,d as zn,e as ye,f as Xe,h as Dt,n as $r,i as Kr,k as Bn,l as Hn,m as _t,o as Wn,p as $n,q as Kn,s as Yn,v as Gn,w as Wt,x as Jn,y as Xn,z as qn,A as Qn,B as Zn,I as ea}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-BVUB8gMK.js","assets/event-DvH9tcej.js","assets/ServerSettingsModal-C_DEisHs.js","assets/index-_OCkVmfl.js","assets/index-DmUJ8tIw.css","assets/relay-entry-B5GmiOrR.js","assets/WorkbenchModal-xbx1o6MO.js","assets/DesktopModal-bMdI1jEe.js","assets/BootstrapPage-DcfYtoLC.js","assets/RelayConnectEntryPage-4Yyo2p8b.js","assets/DesktopDetachPreviewPage-CXUPMcBz.js","assets/DesktopWindowPage-D1xwgS-7.js","assets/WorkbenchLayout-D-U7ghT0.js","assets/workbench-navigation-RyUjchbD.js","assets/MobileSheet-BXvQPkxt.js","assets/WorkbenchLayout-BksVkkFF.css","assets/FileContextPanel-C4syif3B.js","assets/GitSidebar-DduL9aTV.js","assets/TerminalManagerPanel-4OR47vcf.js","assets/terminal-runtime-meta-DBsyT35T.js","assets/TerminalRuntimeFallbackModal-KvG6k4AQ.js","assets/TerminalPage-Pvx396YX.js","assets/MobileWorkspaceSwitcherHeader-DT330cAx.js","assets/MobileTopHeaderFrame-vdYOyaaB.js","assets/TerminalPage-6GBZ9nXN.css","assets/WorkbenchShellRoute-DyWSCHz_.js","assets/WorkbenchShellRoute-htbkGbtW.css","assets/WorkbenchLandingPage-BlkxdOLC.js","assets/ConversationPage-Bfb7GLTM.js","assets/styles-JKFlsYFv.js","assets/styles-DkbkRgWw.css","assets/WorkspaceHomePage-tmCafatd.js","assets/butler-records-events-DgWCG364.js","assets/MobileCreateSessionSheet-DWPBsEx8.js","assets/WorkspaceDetailPage-DMakfmHR.js","assets/useRegisteredDebugTemplates-wCGD2SLW.js","assets/WorkspaceDebugDetailPage-B4ol2_a5.js","assets/SessionIndexPage-DyMikN_x.js","assets/ToolsHomePage-BJSDLR6T.js","assets/ToolFilesPage-DrYHk0N-.js","assets/ToolGitPage-Dz1q-Ns_.js","assets/ToolProcessesPage-CRhphOmM.js","assets/PluginsListPage-DAAwSc6W.js","assets/plugins-api-DHJVvPZw.js","assets/PluginDetailPage-BK1yTzvO.js","assets/PluginAccessOverview-C77TeZTK.js","assets/plugin-permission-copy-DIVk5jNp.js","assets/PluginContainerPage-DdSwOCw-.js","assets/AdaptiveButlerPage-khJQh6a_.js","assets/SettingsPage-CDAVsPr3.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var Un=Object.defineProperty;var kn=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Re=(e,t,r)=>kn(e,typeof t!="symbol"?t+"":t,r);import{u as qe,j as p,t as we,a as qt,g as An,r as Fn,b as f,R as Vn,c as Ze,_ as W,d as zn,e as ye,f as Xe,h as Dt,n as $r,i as Kr,k as Bn,l as Hn,m as _t,o as Wn,p as $n,q as Kn,s as Yn,v as Gn,w as Wt,x as Jn,y as Xn,z as qn,A as Qn,B as Zn,I as ea}from"./index-_OCkVmfl.js";function ta(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(n,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const ra=[{id:"zh-CN",labelKey:"locale.zhCN"},{id:"en-US",labelKey:"locale.enUS"}];function na({variant:e="default",className:t}){const r=qe(a=>a.profile.language);function n(a){a!==r&&qt({language:a}).catch(()=>{})}return p.jsxs("label",{className:`language-switcher language-switcher-${e}${t?` ${t}`:""}`,children:[p.jsx("span",{className:"language-switcher-label",children:we("common.language")}),p.jsx("div",{className:"language-switcher-options",role:"group","aria-label":we("common.language"),children:ra.map(a=>p.jsx("button",{type:"button",className:`language-switcher-option${r===a.id?" active":""}`,"aria-pressed":r===a.id,onClick:()=>n(a.id),children:we(a.labelKey)},a.id))})]})}var Yr=Fn();const aa=An(Yr),ia=ta({__proto__:null,default:aa},[Yr]);/**
|
|
3
3
|
* @remix-run/router v1.23.2
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
@@ -8,8 +8,8 @@ var Un=Object.defineProperty;var kn=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,config
|
|
|
8
8
|
* LICENSE.md file in the root directory of this source tree.
|
|
9
9
|
*
|
|
10
10
|
* @license MIT
|
|
11
|
-
*/function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},G.apply(this,arguments)}var te;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(te||(te={}));const wr="popstate";function oa(e){e===void 0&&(e={});function t(n,a){let{pathname:i,search:o,hash:c}=n.location;return ct("",{pathname:i,search:o,hash:c},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:dt(a)}return la(t,r,null,e)}function O(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function He(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function sa(){return Math.random().toString(36).substr(2,8)}function br(e,t){return{usr:e.state,key:e.key,idx:t}}function ct(e,t,r,n){return r===void 0&&(r=null),G({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Me(t):t,{state:r,key:t&&t.key||n||sa()})}function dt(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Me(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function la(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,c=te.Pop,l=null,d=m();d==null&&(d=0,o.replaceState(G({},o.state,{idx:d}),""));function m(){return(o.state||{idx:null}).idx}function g(){c=te.Pop;let D=m(),A=D==null?null:D-d;d=D,l&&l({action:c,location:E.location,delta:A})}function w(D,A){c=te.Push;let L=ct(E.location,D,A);d=m()+1;let Y=br(L,d),re=E.createHref(L);try{o.pushState(Y,"",re)}catch(K){if(K instanceof DOMException&&K.name==="DataCloneError")throw K;a.location.assign(re)}i&&l&&l({action:c,location:E.location,delta:1})}function b(D,A){c=te.Replace;let L=ct(E.location,D,A);d=m();let Y=br(L,d),re=E.createHref(L);o.replaceState(Y,"",re),i&&l&&l({action:c,location:E.location,delta:0})}function P(D){let A=a.location.origin!=="null"?a.location.origin:a.location.href,L=typeof D=="string"?D:dt(D);return L=L.replace(/ $/,"%20"),O(A,"No window.location.(origin|href) available to create URL for href: "+L),new URL(L,A)}let E={get action(){return c},get location(){return e(a,o)},listen(D){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener(wr,g),l=D,()=>{a.removeEventListener(wr,g),l=null}},createHref(D){return t(a,D)},createURL:P,encodeLocation(D){let A=P(D);return{pathname:A.pathname,search:A.search,hash:A.hash}},push:w,replace:b,go(D){return o.go(D)}};return E}var B;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(B||(B={}));const ca=new Set(["lazy","caseSensitive","path","id","index","children"]);function ua(e){return e.index===!0}function Lt(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,i)=>{let o=[...r,String(i)],c=typeof a.id=="string"?a.id:o.join("-");if(O(a.index!==!0||!a.children,"Cannot specify children on an index route"),O(!n[c],'Found a route id collision on id "'+c+`". Route id's must be globally unique within Data Router usages`),ua(a)){let l=G({},a,t(a),{id:c});return n[c]=l,l}else{let l=G({},a,t(a),{id:c,children:void 0});return n[c]=l,a.children&&(l.children=Lt(a.children,t,o,n)),l}})}function Ve(e,t,r){return r===void 0&&(r="/"),Tt(e,t,r,!1)}function Tt(e,t,r,n){let a=typeof t=="string"?Me(t):t,i=ft(a.pathname||"/",r);if(i==null)return null;let o=Gr(e);fa(o);let c=null;for(let l=0;c==null&&l<o.length;++l){let d=Sa(i);c=xa(o[l],d,n)}return c}function da(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function Gr(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(i,o,c)=>{let l={relativePath:c===void 0?i.path||"":c,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};l.relativePath.startsWith("/")&&(O(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let d=Ie([n,l.relativePath]),m=r.concat(l);i.children&&i.children.length>0&&(O(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),Gr(i.children,t,m,d)),!(i.path==null&&!i.index)&&t.push({path:d,score:wa(d,i.index),routesMeta:m})};return e.forEach((i,o)=>{var c;if(i.path===""||!((c=i.path)!=null&&c.includes("?")))a(i,o);else for(let l of Jr(i.path))a(i,o,l)}),t}function Jr(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=Jr(n.join("/")),c=[];return c.push(...o.map(l=>l===""?i:[i,l].join("/"))),a&&c.push(...o),c.map(l=>e.startsWith("/")&&l===""?"/":l)}function fa(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ba(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const ha=/^:[\w-]+$/,pa=3,ma=2,ga=1,va=10,ya=-2,xr=e=>e==="*";function wa(e,t){let r=e.split("/"),n=r.length;return r.some(xr)&&(n+=ya),t&&(n+=ma),r.filter(a=>!xr(a)).reduce((a,i)=>a+(ha.test(i)?pa:i===""?ga:va),n)}function ba(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function xa(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},i="/",o=[];for(let c=0;c<n.length;++c){let l=n[c],d=c===n.length-1,m=i==="/"?t:t.slice(i.length)||"/",g=Er({path:l.relativePath,caseSensitive:l.caseSensitive,end:d},m),w=l.route;if(!g&&d&&r&&!n[n.length-1].route.index&&(g=Er({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},m)),!g)return null;Object.assign(a,g.params),o.push({params:a,pathname:Ie([i,g.pathname]),pathnameBase:Ta(Ie([i,g.pathnameBase])),route:w}),g.pathnameBase!=="/"&&(i=Ie([i,g.pathnameBase]))}return o}function Er(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Ea(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),c=a.slice(1);return{params:n.reduce((d,m,g)=>{let{paramName:w,isOptional:b}=m;if(w==="*"){let E=c[g]||"";o=i.slice(0,i.length-E.length).replace(/(.)\/+$/,"$1")}const P=c[g];return b&&!P?d[w]=void 0:d[w]=(P||"").replace(/%2F/g,"/"),d},{}),pathname:i,pathnameBase:o,pattern:e}}function Ea(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),He(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,c,l)=>(n.push({paramName:c,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Sa(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return He(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ft(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const Ra=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_a=e=>Ra.test(e);function Pa(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Me(e):e,i;if(r)if(_a(r))i=r;else{if(r.includes("//")){let o=r;r=r.replace(/\/\/+/g,"/"),He(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?i=Sr(r.substring(1),"/"):i=Sr(r,t)}else i=t;return{pathname:i,search:Ca(n),hash:Da(a)}}function Sr(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Ft(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function Xr(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Qt(e,t){let r=Xr(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Zt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Me(e):(a=G({},e),O(!a.pathname||!a.pathname.includes("?"),Ft("?","pathname","search",a)),O(!a.pathname||!a.pathname.includes("#"),Ft("#","pathname","hash",a)),O(!a.search||!a.search.includes("#"),Ft("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,c;if(o==null)c=r;else{let g=t.length-1;if(!n&&o.startsWith("..")){let w=o.split("/");for(;w[0]==="..";)w.shift(),g-=1;a.pathname=w.join("/")}c=g>=0?t[g]:"/"}let l=Pa(a,c),d=o&&o!=="/"&&o.endsWith("/"),m=(i||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(d||m)&&(l.pathname+="/"),l}const Ie=e=>e.join("/").replace(/\/\/+/g,"/"),Ta=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ca=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Da=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class jt{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function ut(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const qr=["post","put","patch","delete"],La=new Set(qr),ja=["get",...qr],Na=new Set(ja),Ia=new Set([301,302,303,307,308]),Ma=new Set([307,308]),Vt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Oa={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},at={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},er=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ua=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Qr="remix-router-transitions";function ka(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;O(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let s=e.detectErrorBoundary;a=u=>({hasErrorBoundary:s(u)})}else a=Ua;let i={},o=Lt(e.routes,a,void 0,i),c,l=e.basename||"/",d=e.dataStrategy||za,m=e.patchRoutesOnNavigation,g=G({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),w=null,b=new Set,P=null,E=null,D=null,A=e.hydrationData!=null,L=Ve(o,e.history.location,l),Y=!1,re=null;if(L==null&&!m){let s=le(404,{pathname:e.history.location.pathname}),{matches:u,route:h}=Mr(o);L=u,re={[h.id]:s}}L&&!e.hydrationData&&xt(L,o,e.history.location.pathname).active&&(L=null);let K;if(L)if(L.some(s=>s.route.lazy))K=!1;else if(!L.some(s=>s.route.loader))K=!0;else if(g.v7_partialHydration){let s=e.hydrationData?e.hydrationData.loaderData:null,u=e.hydrationData?e.hydrationData.errors:null;if(u){let h=L.findIndex(y=>u[y.route.id]!==void 0);K=L.slice(0,h+1).every(y=>!Kt(y.route,s,u))}else K=L.every(h=>!Kt(h.route,s,u))}else K=e.hydrationData!=null;else if(K=!1,L=[],g.v7_partialHydration){let s=xt(null,o,e.history.location.pathname);s.active&&s.matches&&(Y=!0,L=s.matches)}let he,v={historyAction:e.history.action,location:e.history.location,matches:L,initialized:K,navigation:Vt,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||re,fetchers:new Map,blockers:new Map},N=te.Pop,F=!1,M,ne=!1,J=new Map,oe=null,ae=!1,se=!1,We=[],$e=new Set,Z=new Map,Pe=0,Te=-1,be=new Map,ce=new Set,Ce=new Map,Oe=new Map,ue=new Set,xe=new Map,me=new Map,Ue;function vt(){if(w=e.history.listen(s=>{let{action:u,location:h,delta:y}=s;if(Ue){Ue(),Ue=void 0;return}He(me.size===0||y!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let x=mr({currentLocation:v.location,nextLocation:h,historyAction:u});if(x&&y!=null){let C=new Promise(j=>{Ue=j});e.history.go(y*-1),bt(x,{state:"blocked",location:h,proceed(){bt(x,{state:"proceeding",proceed:void 0,reset:void 0,location:h}),C.then(()=>e.history.go(y))},reset(){let j=new Map(v.blockers);j.set(x,at),H({blockers:j})}});return}return ke(u,h)}),r){ti(t,J);let s=()=>ri(t,J);t.addEventListener("pagehide",s),oe=()=>t.removeEventListener("pagehide",s)}return v.initialized||ke(te.Pop,v.location,{initialHydration:!0}),he}function V(){w&&w(),oe&&oe(),b.clear(),M&&M.abort(),v.fetchers.forEach((s,u)=>wt(u)),v.blockers.forEach((s,u)=>pr(u))}function de(s){return b.add(s),()=>b.delete(s)}function H(s,u){u===void 0&&(u={}),v=G({},v,s);let h=[],y=[];g.v7_fetcherPersist&&v.fetchers.forEach((x,C)=>{x.state==="idle"&&(ue.has(C)?y.push(C):h.push(C))}),ue.forEach(x=>{!v.fetchers.has(x)&&!Z.has(x)&&y.push(x)}),[...b].forEach(x=>x(v,{deletedFetchers:y,viewTransitionOpts:u.viewTransitionOpts,flushSync:u.flushSync===!0})),g.v7_fetcherPersist?(h.forEach(x=>v.fetchers.delete(x)),y.forEach(x=>wt(x))):y.forEach(x=>ue.delete(x))}function ge(s,u,h){var y,x;let{flushSync:C}=h===void 0?{}:h,j=v.actionData!=null&&v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&v.navigation.state==="loading"&&((y=s.state)==null?void 0:y._isRedirect)!==!0,R;u.actionData?Object.keys(u.actionData).length>0?R=u.actionData:R=null:j?R=v.actionData:R=null;let _=u.loaderData?Nr(v.loaderData,u.loaderData,u.matches||[],u.errors):v.loaderData,S=v.blockers;S.size>0&&(S=new Map(S),S.forEach((U,ie)=>S.set(ie,at)));let T=F===!0||v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&((x=s.state)==null?void 0:x._isRedirect)!==!0;c&&(o=c,c=void 0),ae||N===te.Pop||(N===te.Push?e.history.push(s,s.state):N===te.Replace&&e.history.replace(s,s.state));let I;if(N===te.Pop){let U=J.get(v.location.pathname);U&&U.has(s.pathname)?I={currentLocation:v.location,nextLocation:s}:J.has(s.pathname)&&(I={currentLocation:s,nextLocation:v.location})}else if(ne){let U=J.get(v.location.pathname);U?U.add(s.pathname):(U=new Set([s.pathname]),J.set(v.location.pathname,U)),I={currentLocation:v.location,nextLocation:s}}H(G({},u,{actionData:R,loaderData:_,historyAction:N,location:s,initialized:!0,navigation:Vt,revalidation:"idle",restoreScrollPosition:vr(s,u.matches||v.matches),preventScrollReset:T,blockers:S}),{viewTransitionOpts:I,flushSync:C===!0}),N=te.Pop,F=!1,ne=!1,ae=!1,se=!1,We=[]}async function yt(s,u){if(typeof s=="number"){e.history.go(s);return}let h=$t(v.location,v.matches,l,g.v7_prependBasename,s,g.v7_relativeSplatPath,u==null?void 0:u.fromRouteId,u==null?void 0:u.relative),{path:y,submission:x,error:C}=Rr(g.v7_normalizeFormMethod,!1,h,u),j=v.location,R=ct(v.location,y,u&&u.state);R=G({},R,e.history.encodeLocation(R));let _=u&&u.replace!=null?u.replace:void 0,S=te.Push;_===!0?S=te.Replace:_===!1||x!=null&&pe(x.formMethod)&&x.formAction===v.location.pathname+v.location.search&&(S=te.Replace);let T=u&&"preventScrollReset"in u?u.preventScrollReset===!0:void 0,I=(u&&u.flushSync)===!0,U=mr({currentLocation:j,nextLocation:R,historyAction:S});if(U){bt(U,{state:"blocked",location:R,proceed(){bt(U,{state:"proceeding",proceed:void 0,reset:void 0,location:R}),yt(s,u)},reset(){let ie=new Map(v.blockers);ie.set(U,at),H({blockers:ie})}});return}return await ke(S,R,{submission:x,pendingError:C,preventScrollReset:T,replace:u&&u.replace,enableViewTransition:u&&u.viewTransition,flushSync:I})}function En(){if(Ot(),H({revalidation:"loading"}),v.navigation.state!=="submitting"){if(v.navigation.state==="idle"){ke(v.historyAction,v.location,{startUninterruptedRevalidation:!0});return}ke(N||v.historyAction,v.navigation.location,{overrideNavigation:v.navigation,enableViewTransition:ne===!0})}}async function ke(s,u,h){M&&M.abort(),M=null,N=s,ae=(h&&h.startUninterruptedRevalidation)===!0,Nn(v.location,v.matches),F=(h&&h.preventScrollReset)===!0,ne=(h&&h.enableViewTransition)===!0;let y=c||o,x=h&&h.overrideNavigation,C=h!=null&&h.initialHydration&&v.matches&&v.matches.length>0&&!Y?v.matches:Ve(y,u,l),j=(h&&h.flushSync)===!0;if(C&&v.initialized&&!se&&Ya(v.location,u)&&!(h&&h.submission&&pe(h.submission.formMethod))){ge(u,{matches:C},{flushSync:j});return}let R=xt(C,y,u.pathname);if(R.active&&R.matches&&(C=R.matches),!C){let{error:$,notFoundMatches:z,route:q}=Ut(u.pathname);ge(u,{matches:z,loaderData:{},errors:{[q.id]:$}},{flushSync:j});return}M=new AbortController;let _=Je(e.history,u,M.signal,h&&h.submission),S;if(h&&h.pendingError)S=[ze(C).route.id,{type:B.error,error:h.pendingError}];else if(h&&h.submission&&pe(h.submission.formMethod)){let $=await Sn(_,u,h.submission,C,R.active,{replace:h.replace,flushSync:j});if($.shortCircuited)return;if($.pendingActionResult){let[z,q]=$.pendingActionResult;if(fe(q)&&ut(q.error)&&q.error.status===404){M=null,ge(u,{matches:$.matches,loaderData:{},errors:{[z]:q.error}});return}}C=$.matches||C,S=$.pendingActionResult,x=zt(u,h.submission),j=!1,R.active=!1,_=Je(e.history,_.url,_.signal)}let{shortCircuited:T,matches:I,loaderData:U,errors:ie}=await Rn(_,u,C,R.active,x,h&&h.submission,h&&h.fetcherSubmission,h&&h.replace,h&&h.initialHydration===!0,j,S);T||(M=null,ge(u,G({matches:I||C},Ir(S),{loaderData:U,errors:ie})))}async function Sn(s,u,h,y,x,C){C===void 0&&(C={}),Ot();let j=Za(u,h);if(H({navigation:j},{flushSync:C.flushSync===!0}),x){let S=await Et(y,u.pathname,s.signal);if(S.type==="aborted")return{shortCircuited:!0};if(S.type==="error"){let T=ze(S.partialMatches).route.id;return{matches:S.partialMatches,pendingActionResult:[T,{type:B.error,error:S.error}]}}else if(S.matches)y=S.matches;else{let{notFoundMatches:T,error:I,route:U}=Ut(u.pathname);return{matches:T,pendingActionResult:[U.id,{type:B.error,error:I}]}}}let R,_=lt(y,u);if(!_.route.action&&!_.route.lazy)R={type:B.error,error:le(405,{method:s.method,pathname:u.pathname,routeId:_.route.id})};else if(R=(await et("action",v,s,[_],y,null))[_.route.id],s.signal.aborted)return{shortCircuited:!0};if(Be(R)){let S;return C&&C.replace!=null?S=C.replace:S=Dr(R.response.headers.get("Location"),new URL(s.url),l,e.history)===v.location.pathname+v.location.search,await Ae(s,R,!0,{submission:h,replace:S}),{shortCircuited:!0}}if(Ne(R))throw le(400,{type:"defer-action"});if(fe(R)){let S=ze(y,_.route.id);return(C&&C.replace)!==!0&&(N=te.Push),{matches:y,pendingActionResult:[S.route.id,R]}}return{matches:y,pendingActionResult:[_.route.id,R]}}async function Rn(s,u,h,y,x,C,j,R,_,S,T){let I=x||zt(u,C),U=C||j||Ur(I),ie=!ae&&(!g.v7_partialHydration||!_);if(y){if(ie){let Q=lr(T);H(G({navigation:I},Q!==void 0?{actionData:Q}:{}),{flushSync:S})}let k=await Et(h,u.pathname,s.signal);if(k.type==="aborted")return{shortCircuited:!0};if(k.type==="error"){let Q=ze(k.partialMatches).route.id;return{matches:k.partialMatches,loaderData:{},errors:{[Q]:k.error}}}else if(k.matches)h=k.matches;else{let{error:Q,notFoundMatches:Ye,route:nt}=Ut(u.pathname);return{matches:Ye,loaderData:{},errors:{[nt.id]:Q}}}}let $=c||o,[z,q]=Pr(e.history,v,h,U,u,g.v7_partialHydration&&_===!0,g.v7_skipActionErrorRevalidation,se,We,$e,ue,Ce,ce,$,l,T);if(kt(k=>!(h&&h.some(Q=>Q.route.id===k))||z&&z.some(Q=>Q.route.id===k)),Te=++Pe,z.length===0&&q.length===0){let k=fr();return ge(u,G({matches:h,loaderData:{},errors:T&&fe(T[1])?{[T[0]]:T[1].error}:null},Ir(T),k?{fetchers:new Map(v.fetchers)}:{}),{flushSync:S}),{shortCircuited:!0}}if(ie){let k={};if(!y){k.navigation=I;let Q=lr(T);Q!==void 0&&(k.actionData=Q)}q.length>0&&(k.fetchers=_n(q)),H(k,{flushSync:S})}q.forEach(k=>{Le(k.key),k.controller&&Z.set(k.key,k.controller)});let Ke=()=>q.forEach(k=>Le(k.key));M&&M.signal.addEventListener("abort",Ke);let{loaderResults:tt,fetcherResults:Se}=await cr(v,h,z,q,s);if(s.signal.aborted)return{shortCircuited:!0};M&&M.signal.removeEventListener("abort",Ke),q.forEach(k=>Z.delete(k.key));let ve=Pt(tt);if(ve)return await Ae(s,ve.result,!0,{replace:R}),{shortCircuited:!0};if(ve=Pt(Se),ve)return ce.add(ve.key),await Ae(s,ve.result,!0,{replace:R}),{shortCircuited:!0};let{loaderData:At,errors:rt}=jr(v,h,tt,T,q,Se,xe);xe.forEach((k,Q)=>{k.subscribe(Ye=>{(Ye||k.done)&&xe.delete(Q)})}),g.v7_partialHydration&&_&&v.errors&&(rt=G({},v.errors,rt));let Fe=fr(),St=hr(Te),Rt=Fe||St||q.length>0;return G({matches:h,loaderData:At,errors:rt},Rt?{fetchers:new Map(v.fetchers)}:{})}function lr(s){if(s&&!fe(s[1]))return{[s[0]]:s[1].data};if(v.actionData)return Object.keys(v.actionData).length===0?null:v.actionData}function _n(s){return s.forEach(u=>{let h=v.fetchers.get(u.key),y=it(void 0,h?h.data:void 0);v.fetchers.set(u.key,y)}),new Map(v.fetchers)}function Pn(s,u,h,y){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Le(s);let x=(y&&y.flushSync)===!0,C=c||o,j=$t(v.location,v.matches,l,g.v7_prependBasename,h,g.v7_relativeSplatPath,u,y==null?void 0:y.relative),R=Ve(C,j,l),_=xt(R,C,j);if(_.active&&_.matches&&(R=_.matches),!R){Ee(s,u,le(404,{pathname:j}),{flushSync:x});return}let{path:S,submission:T,error:I}=Rr(g.v7_normalizeFormMethod,!0,j,y);if(I){Ee(s,u,I,{flushSync:x});return}let U=lt(R,S),ie=(y&&y.preventScrollReset)===!0;if(T&&pe(T.formMethod)){Tn(s,u,S,U,R,_.active,x,ie,T);return}Ce.set(s,{routeId:u,path:S}),Cn(s,u,S,U,R,_.active,x,ie,T)}async function Tn(s,u,h,y,x,C,j,R,_){Ot(),Ce.delete(s);function S(ee){if(!ee.route.action&&!ee.route.lazy){let Ge=le(405,{method:_.formMethod,pathname:h,routeId:u});return Ee(s,u,Ge,{flushSync:j}),!0}return!1}if(!C&&S(y))return;let T=v.fetchers.get(s);De(s,ei(_,T),{flushSync:j});let I=new AbortController,U=Je(e.history,h,I.signal,_);if(C){let ee=await Et(x,new URL(U.url).pathname,U.signal,s);if(ee.type==="aborted")return;if(ee.type==="error"){Ee(s,u,ee.error,{flushSync:j});return}else if(ee.matches){if(x=ee.matches,y=lt(x,h),S(y))return}else{Ee(s,u,le(404,{pathname:h}),{flushSync:j});return}}Z.set(s,I);let ie=Pe,z=(await et("action",v,U,[y],x,s))[y.route.id];if(U.signal.aborted){Z.get(s)===I&&Z.delete(s);return}if(g.v7_fetcherPersist&&ue.has(s)){if(Be(z)||fe(z)){De(s,je(void 0));return}}else{if(Be(z))if(Z.delete(s),Te>ie){De(s,je(void 0));return}else return ce.add(s),De(s,it(_)),Ae(U,z,!1,{fetcherSubmission:_,preventScrollReset:R});if(fe(z)){Ee(s,u,z.error);return}}if(Ne(z))throw le(400,{type:"defer-action"});let q=v.navigation.location||v.location,Ke=Je(e.history,q,I.signal),tt=c||o,Se=v.navigation.state!=="idle"?Ve(tt,v.navigation.location,l):v.matches;O(Se,"Didn't find any matches after fetcher action");let ve=++Pe;be.set(s,ve);let At=it(_,z.data);v.fetchers.set(s,At);let[rt,Fe]=Pr(e.history,v,Se,_,q,!1,g.v7_skipActionErrorRevalidation,se,We,$e,ue,Ce,ce,tt,l,[y.route.id,z]);Fe.filter(ee=>ee.key!==s).forEach(ee=>{let Ge=ee.key,yr=v.fetchers.get(Ge),On=it(void 0,yr?yr.data:void 0);v.fetchers.set(Ge,On),Le(Ge),ee.controller&&Z.set(Ge,ee.controller)}),H({fetchers:new Map(v.fetchers)});let St=()=>Fe.forEach(ee=>Le(ee.key));I.signal.addEventListener("abort",St);let{loaderResults:Rt,fetcherResults:k}=await cr(v,Se,rt,Fe,Ke);if(I.signal.aborted)return;I.signal.removeEventListener("abort",St),be.delete(s),Z.delete(s),Fe.forEach(ee=>Z.delete(ee.key));let Q=Pt(Rt);if(Q)return Ae(Ke,Q.result,!1,{preventScrollReset:R});if(Q=Pt(k),Q)return ce.add(Q.key),Ae(Ke,Q.result,!1,{preventScrollReset:R});let{loaderData:Ye,errors:nt}=jr(v,Se,Rt,void 0,Fe,k,xe);if(v.fetchers.has(s)){let ee=je(z.data);v.fetchers.set(s,ee)}hr(ve),v.navigation.state==="loading"&&ve>Te?(O(N,"Expected pending action"),M&&M.abort(),ge(v.navigation.location,{matches:Se,loaderData:Ye,errors:nt,fetchers:new Map(v.fetchers)})):(H({errors:nt,loaderData:Nr(v.loaderData,Ye,Se,nt),fetchers:new Map(v.fetchers)}),se=!1)}async function Cn(s,u,h,y,x,C,j,R,_){let S=v.fetchers.get(s);De(s,it(_,S?S.data:void 0),{flushSync:j});let T=new AbortController,I=Je(e.history,h,T.signal);if(C){let z=await Et(x,new URL(I.url).pathname,I.signal,s);if(z.type==="aborted")return;if(z.type==="error"){Ee(s,u,z.error,{flushSync:j});return}else if(z.matches)x=z.matches,y=lt(x,h);else{Ee(s,u,le(404,{pathname:h}),{flushSync:j});return}}Z.set(s,T);let U=Pe,$=(await et("loader",v,I,[y],x,s))[y.route.id];if(Ne($)&&($=await tr($,I.signal,!0)||$),Z.get(s)===T&&Z.delete(s),!I.signal.aborted){if(ue.has(s)){De(s,je(void 0));return}if(Be($))if(Te>U){De(s,je(void 0));return}else{ce.add(s),await Ae(I,$,!1,{preventScrollReset:R});return}if(fe($)){Ee(s,u,$.error);return}O(!Ne($),"Unhandled fetcher deferred data"),De(s,je($.data))}}async function Ae(s,u,h,y){let{submission:x,fetcherSubmission:C,preventScrollReset:j,replace:R}=y===void 0?{}:y;u.response.headers.has("X-Remix-Revalidate")&&(se=!0);let _=u.response.headers.get("Location");O(_,"Expected a Location header on the redirect Response"),_=Dr(_,new URL(s.url),l,e.history);let S=ct(v.location,_,{_isRedirect:!0});if(r){let z=!1;if(u.response.headers.has("X-Remix-Reload-Document"))z=!0;else if(er.test(_)){const q=e.history.createURL(_);z=q.origin!==t.location.origin||ft(q.pathname,l)==null}if(z){R?t.location.replace(_):t.location.assign(_);return}}M=null;let T=R===!0||u.response.headers.has("X-Remix-Replace")?te.Replace:te.Push,{formMethod:I,formAction:U,formEncType:ie}=v.navigation;!x&&!C&&I&&U&&ie&&(x=Ur(v.navigation));let $=x||C;if(Ma.has(u.response.status)&&$&&pe($.formMethod))await ke(T,S,{submission:G({},$,{formAction:_}),preventScrollReset:j||F,enableViewTransition:h?ne:void 0});else{let z=zt(S,x);await ke(T,S,{overrideNavigation:z,fetcherSubmission:C,preventScrollReset:j||F,enableViewTransition:h?ne:void 0})}}async function et(s,u,h,y,x,C){let j,R={};try{j=await Ba(d,s,u,h,y,x,C,i,a)}catch(_){return y.forEach(S=>{R[S.route.id]={type:B.error,error:_}}),R}for(let[_,S]of Object.entries(j))if(Ga(S)){let T=S.result;R[_]={type:B.redirect,response:$a(T,h,_,x,l,g.v7_relativeSplatPath)}}else R[_]=await Wa(S);return R}async function cr(s,u,h,y,x){let C=s.matches,j=et("loader",s,x,h,u,null),R=Promise.all(y.map(async T=>{if(T.matches&&T.match&&T.controller){let U=(await et("loader",s,Je(e.history,T.path,T.controller.signal),[T.match],T.matches,T.key))[T.match.route.id];return{[T.key]:U}}else return Promise.resolve({[T.key]:{type:B.error,error:le(404,{pathname:T.path})}})})),_=await j,S=(await R).reduce((T,I)=>Object.assign(T,I),{});return await Promise.all([qa(u,_,x.signal,C,s.loaderData),Qa(u,S,y)]),{loaderResults:_,fetcherResults:S}}function Ot(){se=!0,We.push(...kt()),Ce.forEach((s,u)=>{Z.has(u)&&$e.add(u),Le(u)})}function De(s,u,h){h===void 0&&(h={}),v.fetchers.set(s,u),H({fetchers:new Map(v.fetchers)},{flushSync:(h&&h.flushSync)===!0})}function Ee(s,u,h,y){y===void 0&&(y={});let x=ze(v.matches,u);wt(s),H({errors:{[x.route.id]:h},fetchers:new Map(v.fetchers)},{flushSync:(y&&y.flushSync)===!0})}function ur(s){return Oe.set(s,(Oe.get(s)||0)+1),ue.has(s)&&ue.delete(s),v.fetchers.get(s)||Oa}function wt(s){let u=v.fetchers.get(s);Z.has(s)&&!(u&&u.state==="loading"&&be.has(s))&&Le(s),Ce.delete(s),be.delete(s),ce.delete(s),g.v7_fetcherPersist&&ue.delete(s),$e.delete(s),v.fetchers.delete(s)}function Dn(s){let u=(Oe.get(s)||0)-1;u<=0?(Oe.delete(s),ue.add(s),g.v7_fetcherPersist||wt(s)):Oe.set(s,u),H({fetchers:new Map(v.fetchers)})}function Le(s){let u=Z.get(s);u&&(u.abort(),Z.delete(s))}function dr(s){for(let u of s){let h=ur(u),y=je(h.data);v.fetchers.set(u,y)}}function fr(){let s=[],u=!1;for(let h of ce){let y=v.fetchers.get(h);O(y,"Expected fetcher: "+h),y.state==="loading"&&(ce.delete(h),s.push(h),u=!0)}return dr(s),u}function hr(s){let u=[];for(let[h,y]of be)if(y<s){let x=v.fetchers.get(h);O(x,"Expected fetcher: "+h),x.state==="loading"&&(Le(h),be.delete(h),u.push(h))}return dr(u),u.length>0}function Ln(s,u){let h=v.blockers.get(s)||at;return me.get(s)!==u&&me.set(s,u),h}function pr(s){v.blockers.delete(s),me.delete(s)}function bt(s,u){let h=v.blockers.get(s)||at;O(h.state==="unblocked"&&u.state==="blocked"||h.state==="blocked"&&u.state==="blocked"||h.state==="blocked"&&u.state==="proceeding"||h.state==="blocked"&&u.state==="unblocked"||h.state==="proceeding"&&u.state==="unblocked","Invalid blocker state transition: "+h.state+" -> "+u.state);let y=new Map(v.blockers);y.set(s,u),H({blockers:y})}function mr(s){let{currentLocation:u,nextLocation:h,historyAction:y}=s;if(me.size===0)return;me.size>1&&He(!1,"A router only supports one blocker at a time");let x=Array.from(me.entries()),[C,j]=x[x.length-1],R=v.blockers.get(C);if(!(R&&R.state==="proceeding")&&j({currentLocation:u,nextLocation:h,historyAction:y}))return C}function Ut(s){let u=le(404,{pathname:s}),h=c||o,{matches:y,route:x}=Mr(h);return kt(),{notFoundMatches:y,route:x,error:u}}function kt(s){let u=[];return xe.forEach((h,y)=>{(!s||s(y))&&(h.cancel(),u.push(y),xe.delete(y))}),u}function jn(s,u,h){if(P=s,D=u,E=h||null,!A&&v.navigation===Vt){A=!0;let y=vr(v.location,v.matches);y!=null&&H({restoreScrollPosition:y})}return()=>{P=null,D=null,E=null}}function gr(s,u){return E&&E(s,u.map(y=>da(y,v.loaderData)))||s.key}function Nn(s,u){if(P&&D){let h=gr(s,u);P[h]=D()}}function vr(s,u){if(P){let h=gr(s,u),y=P[h];if(typeof y=="number")return y}return null}function xt(s,u,h){if(m)if(s){if(Object.keys(s[0].params).length>0)return{active:!0,matches:Tt(u,h,l,!0)}}else return{active:!0,matches:Tt(u,h,l,!0)||[]};return{active:!1,matches:null}}async function Et(s,u,h,y){if(!m)return{type:"success",matches:s};let x=s;for(;;){let C=c==null,j=c||o,R=i;try{await m({signal:h,path:u,matches:x,fetcherKey:y,patch:(T,I)=>{h.aborted||Cr(T,I,j,R,a)}})}catch(T){return{type:"error",error:T,partialMatches:x}}finally{C&&!h.aborted&&(o=[...o])}if(h.aborted)return{type:"aborted"};let _=Ve(j,u,l);if(_)return{type:"success",matches:_};let S=Tt(j,u,l,!0);if(!S||x.length===S.length&&x.every((T,I)=>T.route.id===S[I].route.id))return{type:"success",matches:null};x=S}}function In(s){i={},c=Lt(s,a,void 0,i)}function Mn(s,u){let h=c==null;Cr(s,u,c||o,i,a),h&&(o=[...o],H({}))}return he={get basename(){return l},get future(){return g},get state(){return v},get routes(){return o},get window(){return t},initialize:vt,subscribe:de,enableScrollRestoration:jn,navigate:yt,fetch:Pn,revalidate:En,createHref:s=>e.history.createHref(s),encodeLocation:s=>e.history.encodeLocation(s),getFetcher:ur,deleteFetcher:Dn,dispose:V,getBlocker:Ln,deleteBlocker:pr,patchRoutes:Mn,_internalFetchControllers:Z,_internalActiveDeferreds:xe,_internalSetRoutes:In},he}function Aa(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function $t(e,t,r,n,a,i,o,c){let l,d;if(o){l=[];for(let g of t)if(l.push(g),g.route.id===o){d=g;break}}else l=t,d=t[t.length-1];let m=Zt(a||".",Qt(l,i),ft(e.pathname,r)||e.pathname,c==="path");if(a==null&&(m.search=e.search,m.hash=e.hash),(a==null||a===""||a===".")&&d){let g=rr(m.search);if(d.route.index&&!g)m.search=m.search?m.search.replace(/^\?/,"?index&"):"?index";else if(!d.route.index&&g){let w=new URLSearchParams(m.search),b=w.getAll("index");w.delete("index"),b.filter(E=>E).forEach(E=>w.append("index",E));let P=w.toString();m.search=P?"?"+P:""}}return n&&r!=="/"&&(m.pathname=m.pathname==="/"?r:Ie([r,m.pathname])),dt(m)}function Rr(e,t,r,n){if(!n||!Aa(n))return{path:r};if(n.formMethod&&!Xa(n.formMethod))return{path:r,error:le(405,{method:n.formMethod})};let a=()=>({path:r,error:le(400,{type:"invalid-body"})}),i=n.formMethod||"get",o=e?i.toUpperCase():i.toLowerCase(),c=tn(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!pe(o))return a();let w=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((b,P)=>{let[E,D]=P;return""+b+E+"="+D+`
|
|
12
|
-
`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:w}}}else if(n.formEncType==="application/json"){if(!pe(o))return a();try{let w=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:c,formEncType:n.formEncType,formData:void 0,json:w,text:void 0}}}catch{return a()}}}O(typeof FormData=="function","FormData is not available in this environment");let l,d;if(n.formData)l=Yt(n.formData),d=n.formData;else if(n.body instanceof FormData)l=Yt(n.body),d=n.body;else if(n.body instanceof URLSearchParams)l=n.body,d=Lr(l);else if(n.body==null)l=new URLSearchParams,d=new FormData;else try{l=new URLSearchParams(n.body),d=Lr(l)}catch{return a()}let m={formMethod:o,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:d,json:void 0,text:void 0};if(pe(m.formMethod))return{path:r,submission:m};let g=Me(r);return t&&g.search&&rr(g.search)&&l.append("index",""),g.search="?"+l,{path:dt(g),submission:m}}function _r(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(a=>a.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function Pr(e,t,r,n,a,i,o,c,l,d,m,g,w,b,P,E){let D=E?fe(E[1])?E[1].error:E[1].data:void 0,A=e.createURL(t.location),L=e.createURL(a),Y=r;i&&t.errors?Y=_r(r,Object.keys(t.errors)[0],!0):E&&fe(E[1])&&(Y=_r(r,E[0]));let re=E?E[1].statusCode:void 0,K=o&&re&&re>=400,he=Y.filter((N,F)=>{let{route:M}=N;if(M.lazy)return!0;if(M.loader==null)return!1;if(i)return Kt(M,t.loaderData,t.errors);if(Fa(t.loaderData,t.matches[F],N)||l.some(oe=>oe===N.route.id))return!0;let ne=t.matches[F],J=N;return Tr(N,G({currentUrl:A,currentParams:ne.params,nextUrl:L,nextParams:J.params},n,{actionResult:D,actionStatus:re,defaultShouldRevalidate:K?!1:c||A.pathname+A.search===L.pathname+L.search||A.search!==L.search||Zr(ne,J)}))}),v=[];return g.forEach((N,F)=>{if(i||!r.some(ae=>ae.route.id===N.routeId)||m.has(F))return;let M=Ve(b,N.path,P);if(!M){v.push({key:F,routeId:N.routeId,path:N.path,matches:null,match:null,controller:null});return}let ne=t.fetchers.get(F),J=lt(M,N.path),oe=!1;w.has(F)?oe=!1:d.has(F)?(d.delete(F),oe=!0):ne&&ne.state!=="idle"&&ne.data===void 0?oe=c:oe=Tr(J,G({currentUrl:A,currentParams:t.matches[t.matches.length-1].params,nextUrl:L,nextParams:r[r.length-1].params},n,{actionResult:D,actionStatus:re,defaultShouldRevalidate:K?!1:c})),oe&&v.push({key:F,routeId:N.routeId,path:N.path,matches:M,match:J,controller:new AbortController})}),[he,v]}function Kt(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Fa(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function Zr(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Tr(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function Cr(e,t,r,n,a){var i;let o;if(e){let d=n[e];O(d,"No route found to patch children into: routeId = "+e),d.children||(d.children=[]),o=d.children}else o=r;let c=t.filter(d=>!o.some(m=>en(d,m))),l=Lt(c,a,[e||"_","patch",String(((i=o)==null?void 0:i.length)||"0")],n);o.push(...l)}function en(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(i=>en(r,i))}):!1}async function Va(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];O(a,"No route found in manifest");let i={};for(let o in n){let l=a[o]!==void 0&&o!=="hasErrorBoundary";He(!l,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!l&&!ca.has(o)&&(i[o]=n[o])}Object.assign(a,i),Object.assign(a,G({},t(a),{lazy:void 0}))}async function za(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,i,o)=>Object.assign(a,{[r[o].route.id]:i}),{})}async function Ba(e,t,r,n,a,i,o,c,l,d){let m=i.map(b=>b.route.lazy?Va(b.route,l,c):void 0),g=i.map((b,P)=>{let E=m[P],D=a.some(L=>L.route.id===b.route.id);return G({},b,{shouldLoad:D,resolve:async L=>(L&&n.method==="GET"&&(b.route.lazy||b.route.loader)&&(D=!0),D?Ha(t,n,b,E,L,d):Promise.resolve({type:B.data,result:void 0}))})}),w=await e({matches:g,request:n,params:i[0].params,fetcherKey:o,context:d});try{await Promise.all(m)}catch{}return w}async function Ha(e,t,r,n,a,i){let o,c,l=d=>{let m,g=new Promise((P,E)=>m=E);c=()=>m(),t.signal.addEventListener("abort",c);let w=P=>typeof d!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):d({request:t,params:r.params,context:i},...P!==void 0?[P]:[]),b=(async()=>{try{return{type:"data",result:await(a?a(E=>w(E)):w())}}catch(P){return{type:"error",result:P}}})();return Promise.race([b,g])};try{let d=r.route[e];if(n)if(d){let m,[g]=await Promise.all([l(d).catch(w=>{m=w}),n]);if(m!==void 0)throw m;o=g}else if(await n,d=r.route[e],d)o=await l(d);else if(e==="action"){let m=new URL(t.url),g=m.pathname+m.search;throw le(405,{method:t.method,pathname:g,routeId:r.route.id})}else return{type:B.data,result:void 0};else if(d)o=await l(d);else{let m=new URL(t.url),g=m.pathname+m.search;throw le(404,{pathname:g})}O(o.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(d){return{type:B.error,result:d}}finally{c&&t.signal.removeEventListener("abort",c)}return o}async function Wa(e){let{result:t,type:r}=e;if(rn(t)){let g;try{let w=t.headers.get("Content-Type");w&&/\bapplication\/json\b/.test(w)?t.body==null?g=null:g=await t.json():g=await t.text()}catch(w){return{type:B.error,error:w}}return r===B.error?{type:B.error,error:new jt(t.status,t.statusText,g),statusCode:t.status,headers:t.headers}:{type:B.data,data:g,statusCode:t.status,headers:t.headers}}if(r===B.error){if(Or(t)){var n,a;if(t.data instanceof Error){var i,o;return{type:B.error,error:t.data,statusCode:(i=t.init)==null?void 0:i.status,headers:(o=t.init)!=null&&o.headers?new Headers(t.init.headers):void 0}}return{type:B.error,error:new jt(((n=t.init)==null?void 0:n.status)||500,void 0,t.data),statusCode:ut(t)?t.status:void 0,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}}return{type:B.error,error:t,statusCode:ut(t)?t.status:void 0}}if(Ja(t)){var c,l;return{type:B.deferred,deferredData:t,statusCode:(c=t.init)==null?void 0:c.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}if(Or(t)){var d,m;return{type:B.data,data:t.data,statusCode:(d=t.init)==null?void 0:d.status,headers:(m=t.init)!=null&&m.headers?new Headers(t.init.headers):void 0}}return{type:B.data,data:t}}function $a(e,t,r,n,a,i){let o=e.headers.get("Location");if(O(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!er.test(o)){let c=n.slice(0,n.findIndex(l=>l.route.id===r)+1);o=$t(new URL(t.url),c,a,!0,o,i),e.headers.set("Location",o)}return e}function Dr(e,t,r,n){let a=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(er.test(e)){let i=e,o=i.startsWith("//")?new URL(t.protocol+i):new URL(i);if(a.includes(o.protocol))throw new Error("Invalid redirect location");let c=ft(o.pathname,r)!=null;if(o.origin===t.origin&&c)return o.pathname+o.search+o.hash}try{let i=n.createURL(e);if(a.includes(i.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Je(e,t,r,n){let a=e.createURL(tn(t)).toString(),i={signal:r};if(n&&pe(n.formMethod)){let{formMethod:o,formEncType:c}=n;i.method=o.toUpperCase(),c==="application/json"?(i.headers=new Headers({"Content-Type":c}),i.body=JSON.stringify(n.json)):c==="text/plain"?i.body=n.text:c==="application/x-www-form-urlencoded"&&n.formData?i.body=Yt(n.formData):i.body=n.formData}return new Request(a,i)}function Yt(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Lr(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Ka(e,t,r,n,a){let i={},o=null,c,l=!1,d={},m=r&&fe(r[1])?r[1].error:void 0;return e.forEach(g=>{if(!(g.route.id in t))return;let w=g.route.id,b=t[w];if(O(!Be(b),"Cannot handle redirect results in processLoaderData"),fe(b)){let P=b.error;m!==void 0&&(P=m,m=void 0),o=o||{};{let E=ze(e,w);o[E.route.id]==null&&(o[E.route.id]=P)}i[w]=void 0,l||(l=!0,c=ut(b.error)?b.error.status:500),b.headers&&(d[w]=b.headers)}else Ne(b)?(n.set(w,b.deferredData),i[w]=b.deferredData.data,b.statusCode!=null&&b.statusCode!==200&&!l&&(c=b.statusCode),b.headers&&(d[w]=b.headers)):(i[w]=b.data,b.statusCode&&b.statusCode!==200&&!l&&(c=b.statusCode),b.headers&&(d[w]=b.headers))}),m!==void 0&&r&&(o={[r[0]]:m},i[r[0]]=void 0),{loaderData:i,errors:o,statusCode:c||200,loaderHeaders:d}}function jr(e,t,r,n,a,i,o){let{loaderData:c,errors:l}=Ka(t,r,n,o);return a.forEach(d=>{let{key:m,match:g,controller:w}=d,b=i[m];if(O(b,"Did not find corresponding fetcher result"),!(w&&w.signal.aborted))if(fe(b)){let P=ze(e.matches,g==null?void 0:g.route.id);l&&l[P.route.id]||(l=G({},l,{[P.route.id]:b.error})),e.fetchers.delete(m)}else if(Be(b))O(!1,"Unhandled fetcher revalidation redirect");else if(Ne(b))O(!1,"Unhandled fetcher deferred data");else{let P=je(b.data);e.fetchers.set(m,P)}}),{loaderData:c,errors:l}}function Nr(e,t,r,n){let a=G({},t);for(let i of r){let o=i.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&i.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function Ir(e){return e?fe(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function ze(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Mr(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function le(e,t){let{pathname:r,routeId:n,method:a,type:i,message:o}=t===void 0?{}:t,c="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(c="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"?l="defer() is not supported in actions":i==="invalid-body"&&(l="Unable to encode submission body")):e===403?(c="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(c="Not Found",l='No route matches URL "'+r+'"'):e===405&&(c="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new jt(e||500,c,new Error(l),!0)}function Pt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Be(a))return{key:n,result:a}}}function tn(e){let t=typeof e=="string"?Me(e):e;return dt(G({},t,{hash:""}))}function Ya(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Ga(e){return rn(e.result)&&Ia.has(e.result.status)}function Ne(e){return e.type===B.deferred}function fe(e){return e.type===B.error}function Be(e){return(e&&e.type)===B.redirect}function Or(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Ja(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function rn(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Xa(e){return Na.has(e.toLowerCase())}function pe(e){return La.has(e.toLowerCase())}async function qa(e,t,r,n,a){let i=Object.entries(t);for(let o=0;o<i.length;o++){let[c,l]=i[o],d=e.find(w=>(w==null?void 0:w.route.id)===c);if(!d)continue;let m=n.find(w=>w.route.id===d.route.id),g=m!=null&&!Zr(m,d)&&(a&&a[d.route.id])!==void 0;Ne(l)&&g&&await tr(l,r,!1).then(w=>{w&&(t[c]=w)})}}async function Qa(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:i,controller:o}=r[n],c=t[a];e.find(d=>(d==null?void 0:d.route.id)===i)&&Ne(c)&&(O(o,"Expected an AbortController for revalidating fetcher deferred result"),await tr(c,o.signal,!0).then(d=>{d&&(t[a]=d)}))}}async function tr(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:B.data,data:e.deferredData.unwrappedData}}catch(a){return{type:B.error,error:a}}return{type:B.data,data:e.deferredData.data}}}function rr(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function lt(e,t){let r=typeof t=="string"?Me(t).search:t.search;if(e[e.length-1].route.index&&rr(r||""))return e[e.length-1];let n=Xr(e);return n[n.length-1]}function Ur(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:i,json:o}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(i!=null)return{formMethod:t,formAction:r,formEncType:n,formData:i,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function zt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Za(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function it(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ei(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function je(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ti(e,t){try{let r=e.sessionStorage.getItem(Qr);if(r){let n=JSON.parse(r);for(let[a,i]of Object.entries(n||{}))i&&Array.isArray(i)&&t.set(a,new Set(i||[]))}}catch{}}function ri(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Qr,JSON.stringify(r))}catch(n){He(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
|
|
11
|
+
*/function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},G.apply(this,arguments)}var re;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(re||(re={}));const wr="popstate";function oa(e){e===void 0&&(e={});function t(n,a){let{pathname:i,search:o,hash:c}=n.location;return ct("",{pathname:i,search:o,hash:c},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:dt(a)}return la(t,r,null,e)}function O(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function He(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function sa(){return Math.random().toString(36).substr(2,8)}function br(e,t){return{usr:e.state,key:e.key,idx:t}}function ct(e,t,r,n){return r===void 0&&(r=null),G({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Me(t):t,{state:r,key:t&&t.key||n||sa()})}function dt(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Me(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function la(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,c=re.Pop,l=null,d=m();d==null&&(d=0,o.replaceState(G({},o.state,{idx:d}),""));function m(){return(o.state||{idx:null}).idx}function g(){c=re.Pop;let D=m(),F=D==null?null:D-d;d=D,l&&l({action:c,location:E.location,delta:F})}function w(D,F){c=re.Push;let L=ct(E.location,D,F);d=m()+1;let Y=br(L,d),ee=E.createHref(L);try{o.pushState(Y,"",ee)}catch(K){if(K instanceof DOMException&&K.name==="DataCloneError")throw K;a.location.assign(ee)}i&&l&&l({action:c,location:E.location,delta:1})}function b(D,F){c=re.Replace;let L=ct(E.location,D,F);d=m();let Y=br(L,d),ee=E.createHref(L);o.replaceState(Y,"",ee),i&&l&&l({action:c,location:E.location,delta:0})}function P(D){let F=a.location.origin!=="null"?a.location.origin:a.location.href,L=typeof D=="string"?D:dt(D);return L=L.replace(/ $/,"%20"),O(F,"No window.location.(origin|href) available to create URL for href: "+L),new URL(L,F)}let E={get action(){return c},get location(){return e(a,o)},listen(D){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener(wr,g),l=D,()=>{a.removeEventListener(wr,g),l=null}},createHref(D){return t(a,D)},createURL:P,encodeLocation(D){let F=P(D);return{pathname:F.pathname,search:F.search,hash:F.hash}},push:w,replace:b,go(D){return o.go(D)}};return E}var B;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(B||(B={}));const ca=new Set(["lazy","caseSensitive","path","id","index","children"]);function ua(e){return e.index===!0}function Lt(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,i)=>{let o=[...r,String(i)],c=typeof a.id=="string"?a.id:o.join("-");if(O(a.index!==!0||!a.children,"Cannot specify children on an index route"),O(!n[c],'Found a route id collision on id "'+c+`". Route id's must be globally unique within Data Router usages`),ua(a)){let l=G({},a,t(a),{id:c});return n[c]=l,l}else{let l=G({},a,t(a),{id:c,children:void 0});return n[c]=l,a.children&&(l.children=Lt(a.children,t,o,n)),l}})}function Ve(e,t,r){return r===void 0&&(r="/"),Tt(e,t,r,!1)}function Tt(e,t,r,n){let a=typeof t=="string"?Me(t):t,i=ft(a.pathname||"/",r);if(i==null)return null;let o=Gr(e);fa(o);let c=null;for(let l=0;c==null&&l<o.length;++l){let d=Sa(i);c=xa(o[l],d,n)}return c}function da(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function Gr(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(i,o,c)=>{let l={relativePath:c===void 0?i.path||"":c,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};l.relativePath.startsWith("/")&&(O(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let d=Ie([n,l.relativePath]),m=r.concat(l);i.children&&i.children.length>0&&(O(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),Gr(i.children,t,m,d)),!(i.path==null&&!i.index)&&t.push({path:d,score:wa(d,i.index),routesMeta:m})};return e.forEach((i,o)=>{var c;if(i.path===""||!((c=i.path)!=null&&c.includes("?")))a(i,o);else for(let l of Jr(i.path))a(i,o,l)}),t}function Jr(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=Jr(n.join("/")),c=[];return c.push(...o.map(l=>l===""?i:[i,l].join("/"))),a&&c.push(...o),c.map(l=>e.startsWith("/")&&l===""?"/":l)}function fa(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ba(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const ha=/^:[\w-]+$/,pa=3,ma=2,ga=1,va=10,ya=-2,xr=e=>e==="*";function wa(e,t){let r=e.split("/"),n=r.length;return r.some(xr)&&(n+=ya),t&&(n+=ma),r.filter(a=>!xr(a)).reduce((a,i)=>a+(ha.test(i)?pa:i===""?ga:va),n)}function ba(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function xa(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},i="/",o=[];for(let c=0;c<n.length;++c){let l=n[c],d=c===n.length-1,m=i==="/"?t:t.slice(i.length)||"/",g=Er({path:l.relativePath,caseSensitive:l.caseSensitive,end:d},m),w=l.route;if(!g&&d&&r&&!n[n.length-1].route.index&&(g=Er({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},m)),!g)return null;Object.assign(a,g.params),o.push({params:a,pathname:Ie([i,g.pathname]),pathnameBase:Ta(Ie([i,g.pathnameBase])),route:w}),g.pathnameBase!=="/"&&(i=Ie([i,g.pathnameBase]))}return o}function Er(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Ea(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),c=a.slice(1);return{params:n.reduce((d,m,g)=>{let{paramName:w,isOptional:b}=m;if(w==="*"){let E=c[g]||"";o=i.slice(0,i.length-E.length).replace(/(.)\/+$/,"$1")}const P=c[g];return b&&!P?d[w]=void 0:d[w]=(P||"").replace(/%2F/g,"/"),d},{}),pathname:i,pathnameBase:o,pattern:e}}function Ea(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),He(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,c,l)=>(n.push({paramName:c,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Sa(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return He(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ft(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const Ra=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_a=e=>Ra.test(e);function Pa(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Me(e):e,i;if(r)if(_a(r))i=r;else{if(r.includes("//")){let o=r;r=r.replace(/\/\/+/g,"/"),He(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?i=Sr(r.substring(1),"/"):i=Sr(r,t)}else i=t;return{pathname:i,search:Ca(n),hash:Da(a)}}function Sr(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Ft(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function Xr(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Qt(e,t){let r=Xr(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Zt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Me(e):(a=G({},e),O(!a.pathname||!a.pathname.includes("?"),Ft("?","pathname","search",a)),O(!a.pathname||!a.pathname.includes("#"),Ft("#","pathname","hash",a)),O(!a.search||!a.search.includes("#"),Ft("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,c;if(o==null)c=r;else{let g=t.length-1;if(!n&&o.startsWith("..")){let w=o.split("/");for(;w[0]==="..";)w.shift(),g-=1;a.pathname=w.join("/")}c=g>=0?t[g]:"/"}let l=Pa(a,c),d=o&&o!=="/"&&o.endsWith("/"),m=(i||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(d||m)&&(l.pathname+="/"),l}const Ie=e=>e.join("/").replace(/\/\/+/g,"/"),Ta=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ca=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Da=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class jt{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function ut(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const qr=["post","put","patch","delete"],La=new Set(qr),ja=["get",...qr],Na=new Set(ja),Ia=new Set([301,302,303,307,308]),Ma=new Set([307,308]),Vt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Oa={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},at={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},er=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ua=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Qr="remix-router-transitions";function ka(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;O(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let s=e.detectErrorBoundary;a=u=>({hasErrorBoundary:s(u)})}else a=Ua;let i={},o=Lt(e.routes,a,void 0,i),c,l=e.basename||"/",d=e.dataStrategy||za,m=e.patchRoutesOnNavigation,g=G({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),w=null,b=new Set,P=null,E=null,D=null,F=e.hydrationData!=null,L=Ve(o,e.history.location,l),Y=!1,ee=null;if(L==null&&!m){let s=le(404,{pathname:e.history.location.pathname}),{matches:u,route:h}=Mr(o);L=u,ee={[h.id]:s}}L&&!e.hydrationData&&xt(L,o,e.history.location.pathname).active&&(L=null);let K;if(L)if(L.some(s=>s.route.lazy))K=!1;else if(!L.some(s=>s.route.loader))K=!0;else if(g.v7_partialHydration){let s=e.hydrationData?e.hydrationData.loaderData:null,u=e.hydrationData?e.hydrationData.errors:null;if(u){let h=L.findIndex(y=>u[y.route.id]!==void 0);K=L.slice(0,h+1).every(y=>!Kt(y.route,s,u))}else K=L.every(h=>!Kt(h.route,s,u))}else K=e.hydrationData!=null;else if(K=!1,L=[],g.v7_partialHydration){let s=xt(null,o,e.history.location.pathname);s.active&&s.matches&&(Y=!0,L=s.matches)}let he,v={historyAction:e.history.action,location:e.history.location,matches:L,initialized:K,navigation:Vt,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||ee,fetchers:new Map,blockers:new Map},N=re.Pop,V=!1,M,ne=!1,J=new Map,oe=null,ae=!1,se=!1,We=[],$e=new Set,Z=new Map,Pe=0,Te=-1,be=new Map,ce=new Set,Ce=new Map,Oe=new Map,ue=new Set,xe=new Map,me=new Map,Ue;function vt(){if(w=e.history.listen(s=>{let{action:u,location:h,delta:y}=s;if(Ue){Ue(),Ue=void 0;return}He(me.size===0||y!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let x=mr({currentLocation:v.location,nextLocation:h,historyAction:u});if(x&&y!=null){let C=new Promise(j=>{Ue=j});e.history.go(y*-1),bt(x,{state:"blocked",location:h,proceed(){bt(x,{state:"proceeding",proceed:void 0,reset:void 0,location:h}),C.then(()=>e.history.go(y))},reset(){let j=new Map(v.blockers);j.set(x,at),H({blockers:j})}});return}return ke(u,h)}),r){ti(t,J);let s=()=>ri(t,J);t.addEventListener("pagehide",s),oe=()=>t.removeEventListener("pagehide",s)}return v.initialized||ke(re.Pop,v.location,{initialHydration:!0}),he}function k(){w&&w(),oe&&oe(),b.clear(),M&&M.abort(),v.fetchers.forEach((s,u)=>wt(u)),v.blockers.forEach((s,u)=>pr(u))}function de(s){return b.add(s),()=>b.delete(s)}function H(s,u){u===void 0&&(u={}),v=G({},v,s);let h=[],y=[];g.v7_fetcherPersist&&v.fetchers.forEach((x,C)=>{x.state==="idle"&&(ue.has(C)?y.push(C):h.push(C))}),ue.forEach(x=>{!v.fetchers.has(x)&&!Z.has(x)&&y.push(x)}),[...b].forEach(x=>x(v,{deletedFetchers:y,viewTransitionOpts:u.viewTransitionOpts,flushSync:u.flushSync===!0})),g.v7_fetcherPersist?(h.forEach(x=>v.fetchers.delete(x)),y.forEach(x=>wt(x))):y.forEach(x=>ue.delete(x))}function ge(s,u,h){var y,x;let{flushSync:C}=h===void 0?{}:h,j=v.actionData!=null&&v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&v.navigation.state==="loading"&&((y=s.state)==null?void 0:y._isRedirect)!==!0,R;u.actionData?Object.keys(u.actionData).length>0?R=u.actionData:R=null:j?R=v.actionData:R=null;let _=u.loaderData?Nr(v.loaderData,u.loaderData,u.matches||[],u.errors):v.loaderData,S=v.blockers;S.size>0&&(S=new Map(S),S.forEach((U,ie)=>S.set(ie,at)));let T=V===!0||v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&((x=s.state)==null?void 0:x._isRedirect)!==!0;c&&(o=c,c=void 0),ae||N===re.Pop||(N===re.Push?e.history.push(s,s.state):N===re.Replace&&e.history.replace(s,s.state));let I;if(N===re.Pop){let U=J.get(v.location.pathname);U&&U.has(s.pathname)?I={currentLocation:v.location,nextLocation:s}:J.has(s.pathname)&&(I={currentLocation:s,nextLocation:v.location})}else if(ne){let U=J.get(v.location.pathname);U?U.add(s.pathname):(U=new Set([s.pathname]),J.set(v.location.pathname,U)),I={currentLocation:v.location,nextLocation:s}}H(G({},u,{actionData:R,loaderData:_,historyAction:N,location:s,initialized:!0,navigation:Vt,revalidation:"idle",restoreScrollPosition:vr(s,u.matches||v.matches),preventScrollReset:T,blockers:S}),{viewTransitionOpts:I,flushSync:C===!0}),N=re.Pop,V=!1,ne=!1,ae=!1,se=!1,We=[]}async function yt(s,u){if(typeof s=="number"){e.history.go(s);return}let h=$t(v.location,v.matches,l,g.v7_prependBasename,s,g.v7_relativeSplatPath,u==null?void 0:u.fromRouteId,u==null?void 0:u.relative),{path:y,submission:x,error:C}=Rr(g.v7_normalizeFormMethod,!1,h,u),j=v.location,R=ct(v.location,y,u&&u.state);R=G({},R,e.history.encodeLocation(R));let _=u&&u.replace!=null?u.replace:void 0,S=re.Push;_===!0?S=re.Replace:_===!1||x!=null&&pe(x.formMethod)&&x.formAction===v.location.pathname+v.location.search&&(S=re.Replace);let T=u&&"preventScrollReset"in u?u.preventScrollReset===!0:void 0,I=(u&&u.flushSync)===!0,U=mr({currentLocation:j,nextLocation:R,historyAction:S});if(U){bt(U,{state:"blocked",location:R,proceed(){bt(U,{state:"proceeding",proceed:void 0,reset:void 0,location:R}),yt(s,u)},reset(){let ie=new Map(v.blockers);ie.set(U,at),H({blockers:ie})}});return}return await ke(S,R,{submission:x,pendingError:C,preventScrollReset:T,replace:u&&u.replace,enableViewTransition:u&&u.viewTransition,flushSync:I})}function En(){if(Ot(),H({revalidation:"loading"}),v.navigation.state!=="submitting"){if(v.navigation.state==="idle"){ke(v.historyAction,v.location,{startUninterruptedRevalidation:!0});return}ke(N||v.historyAction,v.navigation.location,{overrideNavigation:v.navigation,enableViewTransition:ne===!0})}}async function ke(s,u,h){M&&M.abort(),M=null,N=s,ae=(h&&h.startUninterruptedRevalidation)===!0,Nn(v.location,v.matches),V=(h&&h.preventScrollReset)===!0,ne=(h&&h.enableViewTransition)===!0;let y=c||o,x=h&&h.overrideNavigation,C=h!=null&&h.initialHydration&&v.matches&&v.matches.length>0&&!Y?v.matches:Ve(y,u,l),j=(h&&h.flushSync)===!0;if(C&&v.initialized&&!se&&Ya(v.location,u)&&!(h&&h.submission&&pe(h.submission.formMethod))){ge(u,{matches:C},{flushSync:j});return}let R=xt(C,y,u.pathname);if(R.active&&R.matches&&(C=R.matches),!C){let{error:$,notFoundMatches:z,route:q}=Ut(u.pathname);ge(u,{matches:z,loaderData:{},errors:{[q.id]:$}},{flushSync:j});return}M=new AbortController;let _=Je(e.history,u,M.signal,h&&h.submission),S;if(h&&h.pendingError)S=[ze(C).route.id,{type:B.error,error:h.pendingError}];else if(h&&h.submission&&pe(h.submission.formMethod)){let $=await Sn(_,u,h.submission,C,R.active,{replace:h.replace,flushSync:j});if($.shortCircuited)return;if($.pendingActionResult){let[z,q]=$.pendingActionResult;if(fe(q)&&ut(q.error)&&q.error.status===404){M=null,ge(u,{matches:$.matches,loaderData:{},errors:{[z]:q.error}});return}}C=$.matches||C,S=$.pendingActionResult,x=zt(u,h.submission),j=!1,R.active=!1,_=Je(e.history,_.url,_.signal)}let{shortCircuited:T,matches:I,loaderData:U,errors:ie}=await Rn(_,u,C,R.active,x,h&&h.submission,h&&h.fetcherSubmission,h&&h.replace,h&&h.initialHydration===!0,j,S);T||(M=null,ge(u,G({matches:I||C},Ir(S),{loaderData:U,errors:ie})))}async function Sn(s,u,h,y,x,C){C===void 0&&(C={}),Ot();let j=Za(u,h);if(H({navigation:j},{flushSync:C.flushSync===!0}),x){let S=await Et(y,u.pathname,s.signal);if(S.type==="aborted")return{shortCircuited:!0};if(S.type==="error"){let T=ze(S.partialMatches).route.id;return{matches:S.partialMatches,pendingActionResult:[T,{type:B.error,error:S.error}]}}else if(S.matches)y=S.matches;else{let{notFoundMatches:T,error:I,route:U}=Ut(u.pathname);return{matches:T,pendingActionResult:[U.id,{type:B.error,error:I}]}}}let R,_=lt(y,u);if(!_.route.action&&!_.route.lazy)R={type:B.error,error:le(405,{method:s.method,pathname:u.pathname,routeId:_.route.id})};else if(R=(await et("action",v,s,[_],y,null))[_.route.id],s.signal.aborted)return{shortCircuited:!0};if(Be(R)){let S;return C&&C.replace!=null?S=C.replace:S=Dr(R.response.headers.get("Location"),new URL(s.url),l,e.history)===v.location.pathname+v.location.search,await Ae(s,R,!0,{submission:h,replace:S}),{shortCircuited:!0}}if(Ne(R))throw le(400,{type:"defer-action"});if(fe(R)){let S=ze(y,_.route.id);return(C&&C.replace)!==!0&&(N=re.Push),{matches:y,pendingActionResult:[S.route.id,R]}}return{matches:y,pendingActionResult:[_.route.id,R]}}async function Rn(s,u,h,y,x,C,j,R,_,S,T){let I=x||zt(u,C),U=C||j||Ur(I),ie=!ae&&(!g.v7_partialHydration||!_);if(y){if(ie){let Q=lr(T);H(G({navigation:I},Q!==void 0?{actionData:Q}:{}),{flushSync:S})}let A=await Et(h,u.pathname,s.signal);if(A.type==="aborted")return{shortCircuited:!0};if(A.type==="error"){let Q=ze(A.partialMatches).route.id;return{matches:A.partialMatches,loaderData:{},errors:{[Q]:A.error}}}else if(A.matches)h=A.matches;else{let{error:Q,notFoundMatches:Ye,route:nt}=Ut(u.pathname);return{matches:Ye,loaderData:{},errors:{[nt.id]:Q}}}}let $=c||o,[z,q]=Pr(e.history,v,h,U,u,g.v7_partialHydration&&_===!0,g.v7_skipActionErrorRevalidation,se,We,$e,ue,Ce,ce,$,l,T);if(kt(A=>!(h&&h.some(Q=>Q.route.id===A))||z&&z.some(Q=>Q.route.id===A)),Te=++Pe,z.length===0&&q.length===0){let A=fr();return ge(u,G({matches:h,loaderData:{},errors:T&&fe(T[1])?{[T[0]]:T[1].error}:null},Ir(T),A?{fetchers:new Map(v.fetchers)}:{}),{flushSync:S}),{shortCircuited:!0}}if(ie){let A={};if(!y){A.navigation=I;let Q=lr(T);Q!==void 0&&(A.actionData=Q)}q.length>0&&(A.fetchers=_n(q)),H(A,{flushSync:S})}q.forEach(A=>{Le(A.key),A.controller&&Z.set(A.key,A.controller)});let Ke=()=>q.forEach(A=>Le(A.key));M&&M.signal.addEventListener("abort",Ke);let{loaderResults:tt,fetcherResults:Se}=await cr(v,h,z,q,s);if(s.signal.aborted)return{shortCircuited:!0};M&&M.signal.removeEventListener("abort",Ke),q.forEach(A=>Z.delete(A.key));let ve=Pt(tt);if(ve)return await Ae(s,ve.result,!0,{replace:R}),{shortCircuited:!0};if(ve=Pt(Se),ve)return ce.add(ve.key),await Ae(s,ve.result,!0,{replace:R}),{shortCircuited:!0};let{loaderData:At,errors:rt}=jr(v,h,tt,T,q,Se,xe);xe.forEach((A,Q)=>{A.subscribe(Ye=>{(Ye||A.done)&&xe.delete(Q)})}),g.v7_partialHydration&&_&&v.errors&&(rt=G({},v.errors,rt));let Fe=fr(),St=hr(Te),Rt=Fe||St||q.length>0;return G({matches:h,loaderData:At,errors:rt},Rt?{fetchers:new Map(v.fetchers)}:{})}function lr(s){if(s&&!fe(s[1]))return{[s[0]]:s[1].data};if(v.actionData)return Object.keys(v.actionData).length===0?null:v.actionData}function _n(s){return s.forEach(u=>{let h=v.fetchers.get(u.key),y=it(void 0,h?h.data:void 0);v.fetchers.set(u.key,y)}),new Map(v.fetchers)}function Pn(s,u,h,y){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Le(s);let x=(y&&y.flushSync)===!0,C=c||o,j=$t(v.location,v.matches,l,g.v7_prependBasename,h,g.v7_relativeSplatPath,u,y==null?void 0:y.relative),R=Ve(C,j,l),_=xt(R,C,j);if(_.active&&_.matches&&(R=_.matches),!R){Ee(s,u,le(404,{pathname:j}),{flushSync:x});return}let{path:S,submission:T,error:I}=Rr(g.v7_normalizeFormMethod,!0,j,y);if(I){Ee(s,u,I,{flushSync:x});return}let U=lt(R,S),ie=(y&&y.preventScrollReset)===!0;if(T&&pe(T.formMethod)){Tn(s,u,S,U,R,_.active,x,ie,T);return}Ce.set(s,{routeId:u,path:S}),Cn(s,u,S,U,R,_.active,x,ie,T)}async function Tn(s,u,h,y,x,C,j,R,_){Ot(),Ce.delete(s);function S(te){if(!te.route.action&&!te.route.lazy){let Ge=le(405,{method:_.formMethod,pathname:h,routeId:u});return Ee(s,u,Ge,{flushSync:j}),!0}return!1}if(!C&&S(y))return;let T=v.fetchers.get(s);De(s,ei(_,T),{flushSync:j});let I=new AbortController,U=Je(e.history,h,I.signal,_);if(C){let te=await Et(x,new URL(U.url).pathname,U.signal,s);if(te.type==="aborted")return;if(te.type==="error"){Ee(s,u,te.error,{flushSync:j});return}else if(te.matches){if(x=te.matches,y=lt(x,h),S(y))return}else{Ee(s,u,le(404,{pathname:h}),{flushSync:j});return}}Z.set(s,I);let ie=Pe,z=(await et("action",v,U,[y],x,s))[y.route.id];if(U.signal.aborted){Z.get(s)===I&&Z.delete(s);return}if(g.v7_fetcherPersist&&ue.has(s)){if(Be(z)||fe(z)){De(s,je(void 0));return}}else{if(Be(z))if(Z.delete(s),Te>ie){De(s,je(void 0));return}else return ce.add(s),De(s,it(_)),Ae(U,z,!1,{fetcherSubmission:_,preventScrollReset:R});if(fe(z)){Ee(s,u,z.error);return}}if(Ne(z))throw le(400,{type:"defer-action"});let q=v.navigation.location||v.location,Ke=Je(e.history,q,I.signal),tt=c||o,Se=v.navigation.state!=="idle"?Ve(tt,v.navigation.location,l):v.matches;O(Se,"Didn't find any matches after fetcher action");let ve=++Pe;be.set(s,ve);let At=it(_,z.data);v.fetchers.set(s,At);let[rt,Fe]=Pr(e.history,v,Se,_,q,!1,g.v7_skipActionErrorRevalidation,se,We,$e,ue,Ce,ce,tt,l,[y.route.id,z]);Fe.filter(te=>te.key!==s).forEach(te=>{let Ge=te.key,yr=v.fetchers.get(Ge),On=it(void 0,yr?yr.data:void 0);v.fetchers.set(Ge,On),Le(Ge),te.controller&&Z.set(Ge,te.controller)}),H({fetchers:new Map(v.fetchers)});let St=()=>Fe.forEach(te=>Le(te.key));I.signal.addEventListener("abort",St);let{loaderResults:Rt,fetcherResults:A}=await cr(v,Se,rt,Fe,Ke);if(I.signal.aborted)return;I.signal.removeEventListener("abort",St),be.delete(s),Z.delete(s),Fe.forEach(te=>Z.delete(te.key));let Q=Pt(Rt);if(Q)return Ae(Ke,Q.result,!1,{preventScrollReset:R});if(Q=Pt(A),Q)return ce.add(Q.key),Ae(Ke,Q.result,!1,{preventScrollReset:R});let{loaderData:Ye,errors:nt}=jr(v,Se,Rt,void 0,Fe,A,xe);if(v.fetchers.has(s)){let te=je(z.data);v.fetchers.set(s,te)}hr(ve),v.navigation.state==="loading"&&ve>Te?(O(N,"Expected pending action"),M&&M.abort(),ge(v.navigation.location,{matches:Se,loaderData:Ye,errors:nt,fetchers:new Map(v.fetchers)})):(H({errors:nt,loaderData:Nr(v.loaderData,Ye,Se,nt),fetchers:new Map(v.fetchers)}),se=!1)}async function Cn(s,u,h,y,x,C,j,R,_){let S=v.fetchers.get(s);De(s,it(_,S?S.data:void 0),{flushSync:j});let T=new AbortController,I=Je(e.history,h,T.signal);if(C){let z=await Et(x,new URL(I.url).pathname,I.signal,s);if(z.type==="aborted")return;if(z.type==="error"){Ee(s,u,z.error,{flushSync:j});return}else if(z.matches)x=z.matches,y=lt(x,h);else{Ee(s,u,le(404,{pathname:h}),{flushSync:j});return}}Z.set(s,T);let U=Pe,$=(await et("loader",v,I,[y],x,s))[y.route.id];if(Ne($)&&($=await tr($,I.signal,!0)||$),Z.get(s)===T&&Z.delete(s),!I.signal.aborted){if(ue.has(s)){De(s,je(void 0));return}if(Be($))if(Te>U){De(s,je(void 0));return}else{ce.add(s),await Ae(I,$,!1,{preventScrollReset:R});return}if(fe($)){Ee(s,u,$.error);return}O(!Ne($),"Unhandled fetcher deferred data"),De(s,je($.data))}}async function Ae(s,u,h,y){let{submission:x,fetcherSubmission:C,preventScrollReset:j,replace:R}=y===void 0?{}:y;u.response.headers.has("X-Remix-Revalidate")&&(se=!0);let _=u.response.headers.get("Location");O(_,"Expected a Location header on the redirect Response"),_=Dr(_,new URL(s.url),l,e.history);let S=ct(v.location,_,{_isRedirect:!0});if(r){let z=!1;if(u.response.headers.has("X-Remix-Reload-Document"))z=!0;else if(er.test(_)){const q=e.history.createURL(_);z=q.origin!==t.location.origin||ft(q.pathname,l)==null}if(z){R?t.location.replace(_):t.location.assign(_);return}}M=null;let T=R===!0||u.response.headers.has("X-Remix-Replace")?re.Replace:re.Push,{formMethod:I,formAction:U,formEncType:ie}=v.navigation;!x&&!C&&I&&U&&ie&&(x=Ur(v.navigation));let $=x||C;if(Ma.has(u.response.status)&&$&&pe($.formMethod))await ke(T,S,{submission:G({},$,{formAction:_}),preventScrollReset:j||V,enableViewTransition:h?ne:void 0});else{let z=zt(S,x);await ke(T,S,{overrideNavigation:z,fetcherSubmission:C,preventScrollReset:j||V,enableViewTransition:h?ne:void 0})}}async function et(s,u,h,y,x,C){let j,R={};try{j=await Ba(d,s,u,h,y,x,C,i,a)}catch(_){return y.forEach(S=>{R[S.route.id]={type:B.error,error:_}}),R}for(let[_,S]of Object.entries(j))if(Ga(S)){let T=S.result;R[_]={type:B.redirect,response:$a(T,h,_,x,l,g.v7_relativeSplatPath)}}else R[_]=await Wa(S);return R}async function cr(s,u,h,y,x){let C=s.matches,j=et("loader",s,x,h,u,null),R=Promise.all(y.map(async T=>{if(T.matches&&T.match&&T.controller){let U=(await et("loader",s,Je(e.history,T.path,T.controller.signal),[T.match],T.matches,T.key))[T.match.route.id];return{[T.key]:U}}else return Promise.resolve({[T.key]:{type:B.error,error:le(404,{pathname:T.path})}})})),_=await j,S=(await R).reduce((T,I)=>Object.assign(T,I),{});return await Promise.all([qa(u,_,x.signal,C,s.loaderData),Qa(u,S,y)]),{loaderResults:_,fetcherResults:S}}function Ot(){se=!0,We.push(...kt()),Ce.forEach((s,u)=>{Z.has(u)&&$e.add(u),Le(u)})}function De(s,u,h){h===void 0&&(h={}),v.fetchers.set(s,u),H({fetchers:new Map(v.fetchers)},{flushSync:(h&&h.flushSync)===!0})}function Ee(s,u,h,y){y===void 0&&(y={});let x=ze(v.matches,u);wt(s),H({errors:{[x.route.id]:h},fetchers:new Map(v.fetchers)},{flushSync:(y&&y.flushSync)===!0})}function ur(s){return Oe.set(s,(Oe.get(s)||0)+1),ue.has(s)&&ue.delete(s),v.fetchers.get(s)||Oa}function wt(s){let u=v.fetchers.get(s);Z.has(s)&&!(u&&u.state==="loading"&&be.has(s))&&Le(s),Ce.delete(s),be.delete(s),ce.delete(s),g.v7_fetcherPersist&&ue.delete(s),$e.delete(s),v.fetchers.delete(s)}function Dn(s){let u=(Oe.get(s)||0)-1;u<=0?(Oe.delete(s),ue.add(s),g.v7_fetcherPersist||wt(s)):Oe.set(s,u),H({fetchers:new Map(v.fetchers)})}function Le(s){let u=Z.get(s);u&&(u.abort(),Z.delete(s))}function dr(s){for(let u of s){let h=ur(u),y=je(h.data);v.fetchers.set(u,y)}}function fr(){let s=[],u=!1;for(let h of ce){let y=v.fetchers.get(h);O(y,"Expected fetcher: "+h),y.state==="loading"&&(ce.delete(h),s.push(h),u=!0)}return dr(s),u}function hr(s){let u=[];for(let[h,y]of be)if(y<s){let x=v.fetchers.get(h);O(x,"Expected fetcher: "+h),x.state==="loading"&&(Le(h),be.delete(h),u.push(h))}return dr(u),u.length>0}function Ln(s,u){let h=v.blockers.get(s)||at;return me.get(s)!==u&&me.set(s,u),h}function pr(s){v.blockers.delete(s),me.delete(s)}function bt(s,u){let h=v.blockers.get(s)||at;O(h.state==="unblocked"&&u.state==="blocked"||h.state==="blocked"&&u.state==="blocked"||h.state==="blocked"&&u.state==="proceeding"||h.state==="blocked"&&u.state==="unblocked"||h.state==="proceeding"&&u.state==="unblocked","Invalid blocker state transition: "+h.state+" -> "+u.state);let y=new Map(v.blockers);y.set(s,u),H({blockers:y})}function mr(s){let{currentLocation:u,nextLocation:h,historyAction:y}=s;if(me.size===0)return;me.size>1&&He(!1,"A router only supports one blocker at a time");let x=Array.from(me.entries()),[C,j]=x[x.length-1],R=v.blockers.get(C);if(!(R&&R.state==="proceeding")&&j({currentLocation:u,nextLocation:h,historyAction:y}))return C}function Ut(s){let u=le(404,{pathname:s}),h=c||o,{matches:y,route:x}=Mr(h);return kt(),{notFoundMatches:y,route:x,error:u}}function kt(s){let u=[];return xe.forEach((h,y)=>{(!s||s(y))&&(h.cancel(),u.push(y),xe.delete(y))}),u}function jn(s,u,h){if(P=s,D=u,E=h||null,!F&&v.navigation===Vt){F=!0;let y=vr(v.location,v.matches);y!=null&&H({restoreScrollPosition:y})}return()=>{P=null,D=null,E=null}}function gr(s,u){return E&&E(s,u.map(y=>da(y,v.loaderData)))||s.key}function Nn(s,u){if(P&&D){let h=gr(s,u);P[h]=D()}}function vr(s,u){if(P){let h=gr(s,u),y=P[h];if(typeof y=="number")return y}return null}function xt(s,u,h){if(m)if(s){if(Object.keys(s[0].params).length>0)return{active:!0,matches:Tt(u,h,l,!0)}}else return{active:!0,matches:Tt(u,h,l,!0)||[]};return{active:!1,matches:null}}async function Et(s,u,h,y){if(!m)return{type:"success",matches:s};let x=s;for(;;){let C=c==null,j=c||o,R=i;try{await m({signal:h,path:u,matches:x,fetcherKey:y,patch:(T,I)=>{h.aborted||Cr(T,I,j,R,a)}})}catch(T){return{type:"error",error:T,partialMatches:x}}finally{C&&!h.aborted&&(o=[...o])}if(h.aborted)return{type:"aborted"};let _=Ve(j,u,l);if(_)return{type:"success",matches:_};let S=Tt(j,u,l,!0);if(!S||x.length===S.length&&x.every((T,I)=>T.route.id===S[I].route.id))return{type:"success",matches:null};x=S}}function In(s){i={},c=Lt(s,a,void 0,i)}function Mn(s,u){let h=c==null;Cr(s,u,c||o,i,a),h&&(o=[...o],H({}))}return he={get basename(){return l},get future(){return g},get state(){return v},get routes(){return o},get window(){return t},initialize:vt,subscribe:de,enableScrollRestoration:jn,navigate:yt,fetch:Pn,revalidate:En,createHref:s=>e.history.createHref(s),encodeLocation:s=>e.history.encodeLocation(s),getFetcher:ur,deleteFetcher:Dn,dispose:k,getBlocker:Ln,deleteBlocker:pr,patchRoutes:Mn,_internalFetchControllers:Z,_internalActiveDeferreds:xe,_internalSetRoutes:In},he}function Aa(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function $t(e,t,r,n,a,i,o,c){let l,d;if(o){l=[];for(let g of t)if(l.push(g),g.route.id===o){d=g;break}}else l=t,d=t[t.length-1];let m=Zt(a||".",Qt(l,i),ft(e.pathname,r)||e.pathname,c==="path");if(a==null&&(m.search=e.search,m.hash=e.hash),(a==null||a===""||a===".")&&d){let g=rr(m.search);if(d.route.index&&!g)m.search=m.search?m.search.replace(/^\?/,"?index&"):"?index";else if(!d.route.index&&g){let w=new URLSearchParams(m.search),b=w.getAll("index");w.delete("index"),b.filter(E=>E).forEach(E=>w.append("index",E));let P=w.toString();m.search=P?"?"+P:""}}return n&&r!=="/"&&(m.pathname=m.pathname==="/"?r:Ie([r,m.pathname])),dt(m)}function Rr(e,t,r,n){if(!n||!Aa(n))return{path:r};if(n.formMethod&&!Xa(n.formMethod))return{path:r,error:le(405,{method:n.formMethod})};let a=()=>({path:r,error:le(400,{type:"invalid-body"})}),i=n.formMethod||"get",o=e?i.toUpperCase():i.toLowerCase(),c=tn(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!pe(o))return a();let w=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((b,P)=>{let[E,D]=P;return""+b+E+"="+D+`
|
|
12
|
+
`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:w}}}else if(n.formEncType==="application/json"){if(!pe(o))return a();try{let w=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:c,formEncType:n.formEncType,formData:void 0,json:w,text:void 0}}}catch{return a()}}}O(typeof FormData=="function","FormData is not available in this environment");let l,d;if(n.formData)l=Yt(n.formData),d=n.formData;else if(n.body instanceof FormData)l=Yt(n.body),d=n.body;else if(n.body instanceof URLSearchParams)l=n.body,d=Lr(l);else if(n.body==null)l=new URLSearchParams,d=new FormData;else try{l=new URLSearchParams(n.body),d=Lr(l)}catch{return a()}let m={formMethod:o,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:d,json:void 0,text:void 0};if(pe(m.formMethod))return{path:r,submission:m};let g=Me(r);return t&&g.search&&rr(g.search)&&l.append("index",""),g.search="?"+l,{path:dt(g),submission:m}}function _r(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(a=>a.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function Pr(e,t,r,n,a,i,o,c,l,d,m,g,w,b,P,E){let D=E?fe(E[1])?E[1].error:E[1].data:void 0,F=e.createURL(t.location),L=e.createURL(a),Y=r;i&&t.errors?Y=_r(r,Object.keys(t.errors)[0],!0):E&&fe(E[1])&&(Y=_r(r,E[0]));let ee=E?E[1].statusCode:void 0,K=o&&ee&&ee>=400,he=Y.filter((N,V)=>{let{route:M}=N;if(M.lazy)return!0;if(M.loader==null)return!1;if(i)return Kt(M,t.loaderData,t.errors);if(Fa(t.loaderData,t.matches[V],N)||l.some(oe=>oe===N.route.id))return!0;let ne=t.matches[V],J=N;return Tr(N,G({currentUrl:F,currentParams:ne.params,nextUrl:L,nextParams:J.params},n,{actionResult:D,actionStatus:ee,defaultShouldRevalidate:K?!1:c||F.pathname+F.search===L.pathname+L.search||F.search!==L.search||Zr(ne,J)}))}),v=[];return g.forEach((N,V)=>{if(i||!r.some(ae=>ae.route.id===N.routeId)||m.has(V))return;let M=Ve(b,N.path,P);if(!M){v.push({key:V,routeId:N.routeId,path:N.path,matches:null,match:null,controller:null});return}let ne=t.fetchers.get(V),J=lt(M,N.path),oe=!1;w.has(V)?oe=!1:d.has(V)?(d.delete(V),oe=!0):ne&&ne.state!=="idle"&&ne.data===void 0?oe=c:oe=Tr(J,G({currentUrl:F,currentParams:t.matches[t.matches.length-1].params,nextUrl:L,nextParams:r[r.length-1].params},n,{actionResult:D,actionStatus:ee,defaultShouldRevalidate:K?!1:c})),oe&&v.push({key:V,routeId:N.routeId,path:N.path,matches:M,match:J,controller:new AbortController})}),[he,v]}function Kt(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Fa(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function Zr(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Tr(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function Cr(e,t,r,n,a){var i;let o;if(e){let d=n[e];O(d,"No route found to patch children into: routeId = "+e),d.children||(d.children=[]),o=d.children}else o=r;let c=t.filter(d=>!o.some(m=>en(d,m))),l=Lt(c,a,[e||"_","patch",String(((i=o)==null?void 0:i.length)||"0")],n);o.push(...l)}function en(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(i=>en(r,i))}):!1}async function Va(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];O(a,"No route found in manifest");let i={};for(let o in n){let l=a[o]!==void 0&&o!=="hasErrorBoundary";He(!l,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!l&&!ca.has(o)&&(i[o]=n[o])}Object.assign(a,i),Object.assign(a,G({},t(a),{lazy:void 0}))}async function za(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,i,o)=>Object.assign(a,{[r[o].route.id]:i}),{})}async function Ba(e,t,r,n,a,i,o,c,l,d){let m=i.map(b=>b.route.lazy?Va(b.route,l,c):void 0),g=i.map((b,P)=>{let E=m[P],D=a.some(L=>L.route.id===b.route.id);return G({},b,{shouldLoad:D,resolve:async L=>(L&&n.method==="GET"&&(b.route.lazy||b.route.loader)&&(D=!0),D?Ha(t,n,b,E,L,d):Promise.resolve({type:B.data,result:void 0}))})}),w=await e({matches:g,request:n,params:i[0].params,fetcherKey:o,context:d});try{await Promise.all(m)}catch{}return w}async function Ha(e,t,r,n,a,i){let o,c,l=d=>{let m,g=new Promise((P,E)=>m=E);c=()=>m(),t.signal.addEventListener("abort",c);let w=P=>typeof d!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):d({request:t,params:r.params,context:i},...P!==void 0?[P]:[]),b=(async()=>{try{return{type:"data",result:await(a?a(E=>w(E)):w())}}catch(P){return{type:"error",result:P}}})();return Promise.race([b,g])};try{let d=r.route[e];if(n)if(d){let m,[g]=await Promise.all([l(d).catch(w=>{m=w}),n]);if(m!==void 0)throw m;o=g}else if(await n,d=r.route[e],d)o=await l(d);else if(e==="action"){let m=new URL(t.url),g=m.pathname+m.search;throw le(405,{method:t.method,pathname:g,routeId:r.route.id})}else return{type:B.data,result:void 0};else if(d)o=await l(d);else{let m=new URL(t.url),g=m.pathname+m.search;throw le(404,{pathname:g})}O(o.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(d){return{type:B.error,result:d}}finally{c&&t.signal.removeEventListener("abort",c)}return o}async function Wa(e){let{result:t,type:r}=e;if(rn(t)){let g;try{let w=t.headers.get("Content-Type");w&&/\bapplication\/json\b/.test(w)?t.body==null?g=null:g=await t.json():g=await t.text()}catch(w){return{type:B.error,error:w}}return r===B.error?{type:B.error,error:new jt(t.status,t.statusText,g),statusCode:t.status,headers:t.headers}:{type:B.data,data:g,statusCode:t.status,headers:t.headers}}if(r===B.error){if(Or(t)){var n,a;if(t.data instanceof Error){var i,o;return{type:B.error,error:t.data,statusCode:(i=t.init)==null?void 0:i.status,headers:(o=t.init)!=null&&o.headers?new Headers(t.init.headers):void 0}}return{type:B.error,error:new jt(((n=t.init)==null?void 0:n.status)||500,void 0,t.data),statusCode:ut(t)?t.status:void 0,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}}return{type:B.error,error:t,statusCode:ut(t)?t.status:void 0}}if(Ja(t)){var c,l;return{type:B.deferred,deferredData:t,statusCode:(c=t.init)==null?void 0:c.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}if(Or(t)){var d,m;return{type:B.data,data:t.data,statusCode:(d=t.init)==null?void 0:d.status,headers:(m=t.init)!=null&&m.headers?new Headers(t.init.headers):void 0}}return{type:B.data,data:t}}function $a(e,t,r,n,a,i){let o=e.headers.get("Location");if(O(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!er.test(o)){let c=n.slice(0,n.findIndex(l=>l.route.id===r)+1);o=$t(new URL(t.url),c,a,!0,o,i),e.headers.set("Location",o)}return e}function Dr(e,t,r,n){let a=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(er.test(e)){let i=e,o=i.startsWith("//")?new URL(t.protocol+i):new URL(i);if(a.includes(o.protocol))throw new Error("Invalid redirect location");let c=ft(o.pathname,r)!=null;if(o.origin===t.origin&&c)return o.pathname+o.search+o.hash}try{let i=n.createURL(e);if(a.includes(i.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Je(e,t,r,n){let a=e.createURL(tn(t)).toString(),i={signal:r};if(n&&pe(n.formMethod)){let{formMethod:o,formEncType:c}=n;i.method=o.toUpperCase(),c==="application/json"?(i.headers=new Headers({"Content-Type":c}),i.body=JSON.stringify(n.json)):c==="text/plain"?i.body=n.text:c==="application/x-www-form-urlencoded"&&n.formData?i.body=Yt(n.formData):i.body=n.formData}return new Request(a,i)}function Yt(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Lr(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Ka(e,t,r,n,a){let i={},o=null,c,l=!1,d={},m=r&&fe(r[1])?r[1].error:void 0;return e.forEach(g=>{if(!(g.route.id in t))return;let w=g.route.id,b=t[w];if(O(!Be(b),"Cannot handle redirect results in processLoaderData"),fe(b)){let P=b.error;m!==void 0&&(P=m,m=void 0),o=o||{};{let E=ze(e,w);o[E.route.id]==null&&(o[E.route.id]=P)}i[w]=void 0,l||(l=!0,c=ut(b.error)?b.error.status:500),b.headers&&(d[w]=b.headers)}else Ne(b)?(n.set(w,b.deferredData),i[w]=b.deferredData.data,b.statusCode!=null&&b.statusCode!==200&&!l&&(c=b.statusCode),b.headers&&(d[w]=b.headers)):(i[w]=b.data,b.statusCode&&b.statusCode!==200&&!l&&(c=b.statusCode),b.headers&&(d[w]=b.headers))}),m!==void 0&&r&&(o={[r[0]]:m},i[r[0]]=void 0),{loaderData:i,errors:o,statusCode:c||200,loaderHeaders:d}}function jr(e,t,r,n,a,i,o){let{loaderData:c,errors:l}=Ka(t,r,n,o);return a.forEach(d=>{let{key:m,match:g,controller:w}=d,b=i[m];if(O(b,"Did not find corresponding fetcher result"),!(w&&w.signal.aborted))if(fe(b)){let P=ze(e.matches,g==null?void 0:g.route.id);l&&l[P.route.id]||(l=G({},l,{[P.route.id]:b.error})),e.fetchers.delete(m)}else if(Be(b))O(!1,"Unhandled fetcher revalidation redirect");else if(Ne(b))O(!1,"Unhandled fetcher deferred data");else{let P=je(b.data);e.fetchers.set(m,P)}}),{loaderData:c,errors:l}}function Nr(e,t,r,n){let a=G({},t);for(let i of r){let o=i.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&i.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function Ir(e){return e?fe(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function ze(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Mr(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function le(e,t){let{pathname:r,routeId:n,method:a,type:i,message:o}=t===void 0?{}:t,c="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(c="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"?l="defer() is not supported in actions":i==="invalid-body"&&(l="Unable to encode submission body")):e===403?(c="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(c="Not Found",l='No route matches URL "'+r+'"'):e===405&&(c="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new jt(e||500,c,new Error(l),!0)}function Pt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Be(a))return{key:n,result:a}}}function tn(e){let t=typeof e=="string"?Me(e):e;return dt(G({},t,{hash:""}))}function Ya(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Ga(e){return rn(e.result)&&Ia.has(e.result.status)}function Ne(e){return e.type===B.deferred}function fe(e){return e.type===B.error}function Be(e){return(e&&e.type)===B.redirect}function Or(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Ja(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function rn(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Xa(e){return Na.has(e.toLowerCase())}function pe(e){return La.has(e.toLowerCase())}async function qa(e,t,r,n,a){let i=Object.entries(t);for(let o=0;o<i.length;o++){let[c,l]=i[o],d=e.find(w=>(w==null?void 0:w.route.id)===c);if(!d)continue;let m=n.find(w=>w.route.id===d.route.id),g=m!=null&&!Zr(m,d)&&(a&&a[d.route.id])!==void 0;Ne(l)&&g&&await tr(l,r,!1).then(w=>{w&&(t[c]=w)})}}async function Qa(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:i,controller:o}=r[n],c=t[a];e.find(d=>(d==null?void 0:d.route.id)===i)&&Ne(c)&&(O(o,"Expected an AbortController for revalidating fetcher deferred result"),await tr(c,o.signal,!0).then(d=>{d&&(t[a]=d)}))}}async function tr(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:B.data,data:e.deferredData.unwrappedData}}catch(a){return{type:B.error,error:a}}return{type:B.data,data:e.deferredData.data}}}function rr(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function lt(e,t){let r=typeof t=="string"?Me(t).search:t.search;if(e[e.length-1].route.index&&rr(r||""))return e[e.length-1];let n=Xr(e);return n[n.length-1]}function Ur(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:i,json:o}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(i!=null)return{formMethod:t,formAction:r,formEncType:n,formData:i,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function zt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Za(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function it(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ei(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function je(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ti(e,t){try{let r=e.sessionStorage.getItem(Qr);if(r){let n=JSON.parse(r);for(let[a,i]of Object.entries(n||{}))i&&Array.isArray(i)&&t.set(a,new Set(i||[]))}}catch{}}function ri(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Qr,JSON.stringify(r))}catch(n){He(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
|
|
13
13
|
* React Router v6.30.3
|
|
14
14
|
*
|
|
15
15
|
* Copyright (c) Remix Software Inc.
|
|
@@ -18,7 +18,7 @@ var Un=Object.defineProperty;var kn=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,config
|
|
|
18
18
|
* LICENSE.md file in the root directory of this source tree.
|
|
19
19
|
*
|
|
20
20
|
* @license MIT
|
|
21
|
-
*/function Nt(){return Nt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Nt.apply(this,arguments)}const Mt=f.createContext(null),nn=f.createContext(null),ht=f.createContext(null),nr=f.createContext(null),_e=f.createContext({outlet:null,matches:[],isDataRoute:!1}),an=f.createContext(null);function pt(){return f.useContext(nr)!=null}function mt(){return pt()||O(!1),f.useContext(nr).location}function on(e){f.useContext(ht).static||f.useLayoutEffect(e)}function ar(){let{isDataRoute:e}=f.useContext(_e);return e?gi():ni()}function ni(){pt()||O(!1);let e=f.useContext(Mt),{basename:t,future:r,navigator:n}=f.useContext(ht),{matches:a}=f.useContext(_e),{pathname:i}=mt(),o=JSON.stringify(Qt(a,r.v7_relativeSplatPath)),c=f.useRef(!1);return on(()=>{c.current=!0}),f.useCallback(function(d,m){if(m===void 0&&(m={}),!c.current)return;if(typeof d=="number"){n.go(d);return}let g=Zt(d,JSON.parse(o),i,m.relative==="path");e==null&&t!=="/"&&(g.pathname=g.pathname==="/"?t:Ie([t,g.pathname])),(m.replace?n.replace:n.push)(g,m.state,m)},[t,n,o,i,e])}const ai=f.createContext(null);function ii(e){let t=f.useContext(_e).outlet;return t&&f.createElement(ai.Provider,{value:e},t)}function qo(){let{matches:e}=f.useContext(_e),t=e[e.length-1];return t?t.params:{}}function oi(e,t,r,n){pt()||O(!1);let{navigator:a}=f.useContext(ht),{matches:i}=f.useContext(_e),o=i[i.length-1],c=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let d=mt(),m;m=d;let g=m.pathname||"/",w=g;if(l!=="/"){let E=l.replace(/^\//,"").split("/");w="/"+g.replace(/^\//,"").split("/").slice(E.length).join("/")}let b=Ve(e,{pathname:w});return di(b&&b.map(E=>Object.assign({},E,{params:Object.assign({},c,E.params),pathname:Ie([l,a.encodeLocation?a.encodeLocation(E.pathname).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?l:Ie([l,a.encodeLocation?a.encodeLocation(E.pathnameBase).pathname:E.pathnameBase])})),i,r,n)}function si(){let e=mi(),t=ut(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),r?f.createElement("pre",{style:a},r):null,null)}const li=f.createElement(si,null);class ci extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?f.createElement(_e.Provider,{value:this.props.routeContext},f.createElement(an.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function ui(e){let{routeContext:t,match:r,children:n}=e,a=f.useContext(Mt);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),f.createElement(_e.Provider,{value:t},n)}function di(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,c=(a=r)==null?void 0:a.errors;if(c!=null){let m=o.findIndex(g=>g.route.id&&(c==null?void 0:c[g.route.id])!==void 0);m>=0||O(!1),o=o.slice(0,Math.min(o.length,m+1))}let l=!1,d=-1;if(r&&n&&n.v7_partialHydration)for(let m=0;m<o.length;m++){let g=o[m];if((g.route.HydrateFallback||g.route.hydrateFallbackElement)&&(d=m),g.route.id){let{loaderData:w,errors:b}=r,P=g.route.loader&&w[g.route.id]===void 0&&(!b||b[g.route.id]===void 0);if(g.route.lazy||P){l=!0,d>=0?o=o.slice(0,d+1):o=[o[0]];break}}}return o.reduceRight((m,g,w)=>{let b,P=!1,E=null,D=null;r&&(b=c&&g.route.id?c[g.route.id]:void 0,E=g.route.errorElement||li,l&&(d<0&&w===0?(vi("route-fallback"),P=!0,D=null):d===w&&(P=!0,D=g.route.hydrateFallbackElement||null)));let
|
|
21
|
+
*/function Nt(){return Nt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Nt.apply(this,arguments)}const Mt=f.createContext(null),nn=f.createContext(null),ht=f.createContext(null),nr=f.createContext(null),_e=f.createContext({outlet:null,matches:[],isDataRoute:!1}),an=f.createContext(null);function pt(){return f.useContext(nr)!=null}function mt(){return pt()||O(!1),f.useContext(nr).location}function on(e){f.useContext(ht).static||f.useLayoutEffect(e)}function ar(){let{isDataRoute:e}=f.useContext(_e);return e?gi():ni()}function ni(){pt()||O(!1);let e=f.useContext(Mt),{basename:t,future:r,navigator:n}=f.useContext(ht),{matches:a}=f.useContext(_e),{pathname:i}=mt(),o=JSON.stringify(Qt(a,r.v7_relativeSplatPath)),c=f.useRef(!1);return on(()=>{c.current=!0}),f.useCallback(function(d,m){if(m===void 0&&(m={}),!c.current)return;if(typeof d=="number"){n.go(d);return}let g=Zt(d,JSON.parse(o),i,m.relative==="path");e==null&&t!=="/"&&(g.pathname=g.pathname==="/"?t:Ie([t,g.pathname])),(m.replace?n.replace:n.push)(g,m.state,m)},[t,n,o,i,e])}const ai=f.createContext(null);function ii(e){let t=f.useContext(_e).outlet;return t&&f.createElement(ai.Provider,{value:e},t)}function qo(){let{matches:e}=f.useContext(_e),t=e[e.length-1];return t?t.params:{}}function oi(e,t,r,n){pt()||O(!1);let{navigator:a}=f.useContext(ht),{matches:i}=f.useContext(_e),o=i[i.length-1],c=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let d=mt(),m;m=d;let g=m.pathname||"/",w=g;if(l!=="/"){let E=l.replace(/^\//,"").split("/");w="/"+g.replace(/^\//,"").split("/").slice(E.length).join("/")}let b=Ve(e,{pathname:w});return di(b&&b.map(E=>Object.assign({},E,{params:Object.assign({},c,E.params),pathname:Ie([l,a.encodeLocation?a.encodeLocation(E.pathname).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?l:Ie([l,a.encodeLocation?a.encodeLocation(E.pathnameBase).pathname:E.pathnameBase])})),i,r,n)}function si(){let e=mi(),t=ut(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),r?f.createElement("pre",{style:a},r):null,null)}const li=f.createElement(si,null);class ci extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?f.createElement(_e.Provider,{value:this.props.routeContext},f.createElement(an.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function ui(e){let{routeContext:t,match:r,children:n}=e,a=f.useContext(Mt);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),f.createElement(_e.Provider,{value:t},n)}function di(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,c=(a=r)==null?void 0:a.errors;if(c!=null){let m=o.findIndex(g=>g.route.id&&(c==null?void 0:c[g.route.id])!==void 0);m>=0||O(!1),o=o.slice(0,Math.min(o.length,m+1))}let l=!1,d=-1;if(r&&n&&n.v7_partialHydration)for(let m=0;m<o.length;m++){let g=o[m];if((g.route.HydrateFallback||g.route.hydrateFallbackElement)&&(d=m),g.route.id){let{loaderData:w,errors:b}=r,P=g.route.loader&&w[g.route.id]===void 0&&(!b||b[g.route.id]===void 0);if(g.route.lazy||P){l=!0,d>=0?o=o.slice(0,d+1):o=[o[0]];break}}}return o.reduceRight((m,g,w)=>{let b,P=!1,E=null,D=null;r&&(b=c&&g.route.id?c[g.route.id]:void 0,E=g.route.errorElement||li,l&&(d<0&&w===0?(vi("route-fallback"),P=!0,D=null):d===w&&(P=!0,D=g.route.hydrateFallbackElement||null)));let F=t.concat(o.slice(0,w+1)),L=()=>{let Y;return b?Y=E:P?Y=D:g.route.Component?Y=f.createElement(g.route.Component,null):g.route.element?Y=g.route.element:Y=m,f.createElement(ui,{match:g,routeContext:{outlet:m,matches:F,isDataRoute:r!=null},children:Y})};return r&&(g.route.ErrorBoundary||g.route.errorElement||w===0)?f.createElement(ci,{location:r.location,revalidation:r.revalidation,component:E,error:b,children:L(),routeContext:{outlet:null,matches:F,isDataRoute:!0}}):L()},null)}var sn=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(sn||{}),ln=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(ln||{});function fi(e){let t=f.useContext(Mt);return t||O(!1),t}function hi(e){let t=f.useContext(nn);return t||O(!1),t}function pi(e){let t=f.useContext(_e);return t||O(!1),t}function cn(e){let t=pi(),r=t.matches[t.matches.length-1];return r.route.id||O(!1),r.route.id}function mi(){var e;let t=f.useContext(an),r=hi(ln.UseRouteError),n=cn();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function gi(){let{router:e}=fi(sn.UseNavigateStable),t=cn(),r=f.useRef(!1);return on(()=>{r.current=!0}),f.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Nt({fromRouteId:t},i)))},[e,t])}const kr={};function vi(e,t,r){kr[e]||(kr[e]=!0)}function yi(e,t){e==null||e.v7_startTransition,(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||t.v7_relativeSplatPath),t&&(t.v7_fetcherPersist,t.v7_normalizeFormMethod,t.v7_partialHydration,t.v7_skipActionErrorRevalidation)}function ir(e){let{to:t,replace:r,state:n,relative:a}=e;pt()||O(!1);let{future:i,static:o}=f.useContext(ht),{matches:c}=f.useContext(_e),{pathname:l}=mt(),d=ar(),m=Zt(t,Qt(c,i.v7_relativeSplatPath),l,a==="path"),g=JSON.stringify(m);return f.useEffect(()=>d(JSON.parse(g),{replace:r,state:n,relative:a}),[d,g,a,r,n]),null}function wi(e){return ii(e.context)}function bi(e){let{basename:t="/",children:r=null,location:n,navigationType:a=re.Pop,navigator:i,static:o=!1,future:c}=e;pt()&&O(!1);let l=t.replace(/^\/*/,"/"),d=f.useMemo(()=>({basename:l,navigator:i,static:o,future:Nt({v7_relativeSplatPath:!1},c)}),[l,c,i,o]);typeof n=="string"&&(n=Me(n));let{pathname:m="/",search:g="",hash:w="",state:b=null,key:P="default"}=n,E=f.useMemo(()=>{let D=ft(m,l);return D==null?null:{location:{pathname:D,search:g,hash:w,state:b,key:P},navigationType:a}},[l,m,g,w,b,P,a]);return E==null?null:f.createElement(ht.Provider,{value:d},f.createElement(nr.Provider,{children:r,value:E}))}new Promise(()=>{});function xi(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:f.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:f.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:f.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/**
|
|
22
22
|
* React Router DOM v6.30.3
|
|
23
23
|
*
|
|
24
24
|
* Copyright (c) Remix Software Inc.
|
|
@@ -27,4 +27,4 @@ var Un=Object.defineProperty;var kn=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,config
|
|
|
27
27
|
* LICENSE.md file in the root directory of this source tree.
|
|
28
28
|
*
|
|
29
29
|
* @license MIT
|
|
30
|
-
*/function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},It.apply(this,arguments)}function Gt(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function Ei(e,t){let r=Gt(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const Si="6";try{window.__reactRouterVersion=Si}catch{}function Ri(e,t){return ka({basename:void 0,future:It({},void 0,{v7_prependBasename:!0}),history:oa({window:void 0}),hydrationData:_i(),routes:e,mapRouteProperties:xi,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function _i(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=It({},t,{errors:Pi(t.errors)})),t}function Pi(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new jt(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let i=window[a.__subType];if(typeof i=="function")try{let o=new i(a.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let i=new Error(a.message);i.stack="",r[n]=i}}else r[n]=a;return r}const Ti=f.createContext({isTransitioning:!1}),Ci=f.createContext(new Map),Di="startTransition",Ar=Vn[Di],Li="flushSync",Fr=ia[Li];function ji(e){Ar?Ar(e):e()}function ot(e){Fr?Fr(e):e()}class Ni{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}}function Ii(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=f.useState(r.state),[o,c]=f.useState(),[l,d]=f.useState({isTransitioning:!1}),[m,g]=f.useState(),[w,b]=f.useState(),[P,E]=f.useState(),D=f.useRef(new Map),{v7_startTransition:A}=n||{},L=f.useCallback(N=>{A?ji(N):N()},[A]),Y=f.useCallback((N,F)=>{let{deletedFetchers:M,flushSync:ne,viewTransitionOpts:J}=F;N.fetchers.forEach((ae,se)=>{ae.data!==void 0&&D.current.set(se,ae.data)}),M.forEach(ae=>D.current.delete(ae));let oe=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!J||oe){ne?ot(()=>i(N)):L(()=>i(N));return}if(ne){ot(()=>{w&&(m&&m.resolve(),w.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:J.currentLocation,nextLocation:J.nextLocation})});let ae=r.window.document.startViewTransition(()=>{ot(()=>i(N))});ae.finished.finally(()=>{ot(()=>{g(void 0),b(void 0),c(void 0),d({isTransitioning:!1})})}),ot(()=>b(ae));return}w?(m&&m.resolve(),w.skipTransition(),E({state:N,currentLocation:J.currentLocation,nextLocation:J.nextLocation})):(c(N),d({isTransitioning:!0,flushSync:!1,currentLocation:J.currentLocation,nextLocation:J.nextLocation}))},[r.window,w,m,D,L]);f.useLayoutEffect(()=>r.subscribe(Y),[r,Y]),f.useEffect(()=>{l.isTransitioning&&!l.flushSync&&g(new Ni)},[l]),f.useEffect(()=>{if(m&&o&&r.window){let N=o,F=m.promise,M=r.window.document.startViewTransition(async()=>{L(()=>i(N)),await F});M.finished.finally(()=>{g(void 0),b(void 0),c(void 0),d({isTransitioning:!1})}),b(M)}},[L,o,m,r.window]),f.useEffect(()=>{m&&o&&a.location.key===o.location.key&&m.resolve()},[m,w,a.location,o]),f.useEffect(()=>{!l.isTransitioning&&P&&(c(P.state),d({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}),E(void 0))},[l.isTransitioning,P]),f.useEffect(()=>{},[]);let re=f.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:N=>r.navigate(N),push:(N,F,M)=>r.navigate(N,{state:F,preventScrollReset:M==null?void 0:M.preventScrollReset}),replace:(N,F,M)=>r.navigate(N,{replace:!0,state:F,preventScrollReset:M==null?void 0:M.preventScrollReset})}),[r]),K=r.basename||"/",he=f.useMemo(()=>({router:r,navigator:re,static:!1,basename:K}),[r,re,K]),v=f.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return f.useEffect(()=>yi(n,r.future),[n,r.future]),f.createElement(f.Fragment,null,f.createElement(Mt.Provider,{value:he},f.createElement(nn.Provider,{value:a},f.createElement(Ci.Provider,{value:D.current},f.createElement(Ti.Provider,{value:l},f.createElement(bi,{basename:K,location:a.location,navigationType:a.historyAction,navigator:re,future:v},a.initialized||r.future.v7_partialHydration?f.createElement(Mi,{routes:r.routes,future:r.future,state:a}):t))))),null)}const Mi=f.memo(Oi);function Oi(e){let{routes:t,future:r,state:n}=e;return oi(t,void 0,n,r)}var Vr;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Vr||(Vr={}));var zr;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(zr||(zr={}));function Ui(e){let t=f.useRef(Gt(e)),r=f.useRef(!1),n=mt(),a=f.useMemo(()=>Ei(n.search,r.current?null:t.current),[n.search]),i=ar(),o=f.useCallback((c,l)=>{const d=Gt(typeof c=="function"?c(a):c);r.current=!0,i("?"+d,l)},[i,a]);return[a,o]}let Bt=null;function st(){return Ze().bridge}function ki(){return{runtime:{isAvailable(){return st().supported},getPlatformInfo(){return st().getPlatformInfo()}},fs:{openFile(e){return st().openLocalFile(e)},revealInFileManager(e){return st().revealInFileManager(e)},pickDirectory(){return st().pickDirectory()}}}}function Ai(){return Bt||(Bt=ki()),Bt}function Fi(){if(typeof window>"u"||window.self!==window.top)return;const e=Ai();window.__CODINGNS_DESKTOP_BRIDGE_INSTALLED__=!0,Object.defineProperty(window,"CodingNSDesktop",{configurable:!0,writable:!1,value:e})}const Vi="desktop://window-lifecycle",zi=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]);function Bi(e){return e instanceof HTMLInputElement?!zi.has(e.type.toLowerCase()):!1}function Hi(e){const t=e.activeElement;if(Bi(t)||t instanceof HTMLTextAreaElement){const r=t.selectionStart??0,n=t.selectionEnd??r;return n<=r?null:t.value.slice(r,n)}return null}function Wi(e){const t=Hi(e);if(t!==null)return t;const r=e.getSelection();if(!r||r.isCollapsed)return null;const n=r.toString();return n.length>0?n:null}function $i(e,t){var a;const r=(a=e.execCommand)==null?void 0:a.bind(e);if(typeof r!="function")return!1;const n=e.createElement("textarea");n.value=t,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.top="-9999px",n.style.opacity="0",e.body.append(n),n.select();try{return r("copy")}catch{return!1}finally{n.remove()}}async function Ki(e,t,r){var a,i;try{if(await r(t))return}catch{}const n=(a=e.defaultView)==null?void 0:a.navigator;if((i=n==null?void 0:n.clipboard)!=null&&i.writeText)try{await n.clipboard.writeText(t);return}catch{}$i(e,t)}function Yi(e){const{window:t,document:r,writeClipboardText:n}=e;function a(i){if(i.defaultPrevented||!i.metaKey||i.ctrlKey||i.altKey||i.key.toLowerCase()!=="c")return;const o=Wi(r);o&&(i.preventDefault(),Ki(r,o,n))}return t.addEventListener("keydown",a,!0),()=>{t.removeEventListener("keydown",a,!0)}}const un=f.createContext(null),Gi=["--desktop-macos-traffic-light-center-y","--desktop-macos-traffic-light-leading-inset","--desktop-macos-traffic-light-safe-zone-width","--desktop-macos-titlebar-height","--desktop-macos-traffic-light-button-diameter"];function Ji(e){if(typeof document>"u")return;const{documentElement:t,body:r}=document;t.dataset.runtimePlatform=e.platform,t.dataset.osFamily=e.ui.osFamily,t.dataset.windowControls=e.ui.windowControlsStyle,t.dataset.viewportClass=e.viewportClass,t.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar),r&&(r.dataset.runtimePlatform=e.platform,r.dataset.osFamily=e.ui.osFamily,r.dataset.windowControls=e.ui.windowControlsStyle,r.dataset.viewportClass=e.viewportClass,r.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar))}function Jt(){var e;if(!(typeof document>"u"))for(const t of Gi)document.documentElement.style.removeProperty(t),(e=document.body)==null||e.style.removeProperty(t)}function Xi(e){if(typeof document>"u")return;if(!e){Jt();return}const t=[document.documentElement,document.body].filter(n=>!!n),r=[["--desktop-macos-traffic-light-center-y",`${e.trafficLightCenterY}px`],["--desktop-macos-traffic-light-leading-inset",`${e.trafficLightLeadingInset}px`],["--desktop-macos-traffic-light-safe-zone-width",`${e.trafficLightSafeZoneWidth}px`],["--desktop-macos-titlebar-height",`${e.titlebarHeight}px`],["--desktop-macos-traffic-light-button-diameter",`${e.trafficLightButtonDiameter}px`]];for(const n of t)for(const[a,i]of r)n.style.setProperty(a,i)}function qi(){if(!(typeof window>"u"))return window.innerWidth}function Qi({children:e}){const[t,r]=f.useState(()=>qi()),n=f.useMemo(()=>Ze({viewportWidth:t}),[t]);return f.useEffect(()=>{Fi()},[]),f.useEffect(()=>{if(typeof window>"u")return;function a(){r(window.innerWidth)}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),f.useEffect(()=>{Ji(n)},[n]),f.useEffect(()=>{if(!(typeof window>"u"||typeof document>"u")&&!(!n.isDesktop||n.ui.osFamily!=="macos"||!n.bridge.supported))return Yi({window,document,writeClipboardText:async a=>(await n.bridge.writeClipboardText(a)).ok})},[n]),f.useEffect(()=>()=>{Jt()},[]),f.useEffect(()=>{let a=!1,i=null;return!n.isDesktop||!n.bridge.supported?()=>{a=!0}:(W(()=>import("./event-DvH9tcej.js").then(o=>o.c),[]).then(async({listen:o})=>{const c=await o(Vi,l=>{const d=l.payload,m=d==null?void 0:d.descriptor;m!=null&&m.windowId&&(n.windows.registerDescriptor(m),d.isOpen?n.windows.markWindowOpen(m.windowId):n.windows.markWindowClosed(m.windowId))});if(a){c();return}i=c}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),f.useEffect(()=>{let a=!1,i=null;async function o(){var l,d;const c=await n.bridge.getRuntimeInfo();a||Xi(c.ok?(d=(l=c.value)==null?void 0:l.windowChrome)==null?void 0:d.macosTitlebar:null)}return!n.isDesktop||n.ui.osFamily!=="macos"||!n.ui.prefersOverlayTitlebar?(Jt(),()=>{a=!0}):(o(),W(()=>import("./window-BVUB8gMK.js").then(c=>c.w),__vite__mapDeps([0,1])).then(async({getCurrentWindow:c})=>{const l=await c().onScaleChanged(()=>{o()});if(a){l();return}i=l}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),p.jsx(un.Provider,{value:n,children:e})}function gt(){return f.useContext(un)??Ze()}const Qo=[{id:"light",labelKey:"theme.light",color:"#f6f4ef"},{id:"dark",labelKey:"theme.dark",color:"#1b1b1b"},{id:"sky-blue",labelKey:"theme.skyBlue",color:"#00f0ff"},{id:"eye-green",labelKey:"theme.eyeGreen",color:"#16a34a"}];function Zo(e){return we(e.labelKey)}function Zi(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function dn(e,t){return t?Zi():e}function eo(){const{theme:e,autoTheme:t}=zn.getState().profile;return dn(e,t)}function to(e){qt({theme:e,autoTheme:!1}).catch(()=>{})}function ro(e){qt({autoTheme:e}).catch(()=>{})}function fn(e){typeof window>"u"||document.documentElement.setAttribute("data-theme",e)}function no(){const e=qe(n=>n.profile.theme),t=qe(n=>n.profile.autoTheme);return{theme:dn(e,t),selectedTheme:e,autoTheme:t,setTheme:to,setAutoTheme:ro}}function ao(){fn(eo())}function io({children:e}){const t=qe(n=>n.profile.theme),r=qe(n=>n.profile.autoTheme);return f.useEffect(()=>{ao()},[t,r]),f.useEffect(()=>{if(!r||typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{fn(n.matches?"dark":"light")};return a(),typeof n.addEventListener=="function"?(n.addEventListener("change",a),()=>n.removeEventListener("change",a)):(n.addListener(a),()=>n.removeListener(a))},[r]),p.jsx(p.Fragment,{children:e})}const oo={showToast:()=>"",dismissToast:()=>{}},hn=f.createContext(oo);function so(){return`toast-${Math.random().toString(36).slice(2,10)}`}function lo({toast:e,onDismiss:t}){const{id:r,title:n,description:a,tone:i,durationMs:o,action:c}=e;return f.useEffect(()=>{if(o===null)return;const l=window.setTimeout(()=>{t(r)},o);return()=>{window.clearTimeout(l)}},[o,r,t,n,a,i]),p.jsxs("article",{className:"toast-card","data-tone":i,role:i==="error"?"alert":"status",children:[p.jsxs("div",{className:"toast-body",children:[p.jsx("strong",{className:"toast-title",children:n}),a?p.jsx("p",{className:"toast-description",children:a}):null]}),p.jsxs("div",{className:"toast-actions",children:[c?p.jsx("button",{className:"toast-action",type:"button",onClick:()=>{c.onClick(),t(r)},children:c.label}):null,p.jsx("button",{className:"toast-dismiss",type:"button","aria-label":"关闭通知",onClick:()=>t(r),children:"×"})]})]})}function co({children:e}){const[t,r]=f.useState([]),n=f.useCallback(o=>{r(c=>c.filter(l=>l.id!==o))},[]),a=f.useCallback(o=>{const c=o.id??so(),l={id:c,title:o.title,description:o.description,tone:o.tone??"info",durationMs:o.durationMs===void 0?4200:o.durationMs,action:o.action};return r(d=>{const m=d.findIndex(w=>w.id===c);if(m===-1)return[...d,l];const g=[...d];return g[m]=l,g}),c},[]),i=f.useMemo(()=>({showToast:a,dismissToast:n}),[n,a]);return p.jsxs(hn.Provider,{value:i,children:[e,p.jsx("div",{className:"toast-viewport","aria-live":"polite","aria-atomic":"false",children:t.map(o=>p.jsx(lo,{toast:o,onDismiss:n},o.id))})]})}function es(){return f.useContext(hn)}const Ct="0.9.5",pn=f.createContext(Ct);function uo({children:e}){const t=gt(),[r,n]=f.useState(Ct);return f.useEffect(()=>{let a=!1;return t.isDesktop?(t.bridge.getRuntimeInfo().then(i=>{var c,l;if(a)return;const o=i.ok?(l=(c=i.value)==null?void 0:c.version)==null?void 0:l.trim():"";n(o||Ct)}),()=>{a=!0}):(n(Ct),()=>{a=!0})},[t]),p.jsx(pn.Provider,{value:r,children:e})}function fo(){return f.useContext(pn)}const Br={latestState:null,lastNotifiedVersion:null,pendingRestartVersion:null};class ho{constructor(){Re(this,"state",Br);Re(this,"listeners",new Set);Re(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Re(this,"getState",()=>this.state)}recordState(t){const r=Ht(this.state.pendingRestartVersion),n=Ht(t.currentVersion);this.state={latestState:t,lastNotifiedVersion:t.hasUpdate?this.state.lastNotifiedVersion:null,pendingRestartVersion:r&&r===n?null:this.state.pendingRestartVersion},this.emit()}markVersionNotified(t){this.state.lastNotifiedVersion!==t&&(this.state={...this.state,lastNotifiedVersion:t},this.emit())}markRestartPending(t){const r=Ht(t);!r||this.state.pendingRestartVersion===r||(this.state={...this.state,pendingRestartVersion:r},this.emit())}reset(){this.state=Br,this.emit()}emit(){for(const t of this.listeners)t()}}const Qe=new ho;function Ht(e){const t=e==null?void 0:e.trim();return t||null}function po(e){return f.useSyncExternalStore(Qe.subscribe,()=>e(Qe.getState()))}function mo(){return Qe.getState()}function go(e){Qe.recordState(e)}function vo(e){Qe.markVersionNotified(e)}function yo(e){Qe.markRestartPending(e)}async function wo(){const e=Ze(),t=ye.getState(),r=await e.bridge.checkForUpdate(t.releaseChannel);if(!r.ok||!r.value)throw new Error(r.detail??"更新检查失败。");return r.value}async function bo(e={}){const t=e.notify??"never",r=await wo();return go(r),await xo(r,t),r}async function ts(){const e=Ze(),t=ye.getState();return e.bridge.installUpdate(t.releaseChannel)}function rs(e){yo(e)}async function ns(){var e;if(typeof window>"u"||typeof((e=window.__TAURI_INTERNALS__)==null?void 0:e.invoke)!="function")throw new Error("当前运行环境不支持桌面应用重启。");try{await window.__TAURI_INTERNALS__.invoke("restart_application")}catch(t){throw new Error(t instanceof Error?t.message:"重启应用失败。")}}async function xo(e,t){var i,o,c;if(!e.hasUpdate||t==="never")return;const r=((o=(i=e.manifest)==null?void 0:i.version)==null?void 0:o.trim())||e.currentVersion.trim();if(!r)return;const n=mo().lastNotifiedVersion;if(t==="always"||n!==r)try{(await Ze().bridge.showNotification(we("settings.releaseUpdateReady"),((c=e.manifest)==null?void 0:c.version)??e.currentVersion)).ok&&vo(r)}catch{}}const Eo=3600*1e3;function So(){const e=Xe(a=>a.platform),t=Xe(a=>a.autoCheckUpdate),r=Xe(a=>a.releaseChannel),n=po(a=>a.pendingRestartVersion);return f.useEffect(()=>{if(e!=="desktop"||!t||n)return;async function a(){try{await bo({notify:"if-new"})}catch{}}a();const i=window.setInterval(()=>{a()},Eo);return()=>{window.clearInterval(i)}},[t,n,e,r]),null}const mn="codingns.server.base-url.history",or=6,gn="__custom__";function vn(){return typeof window<"u"&&typeof window.localStorage<"u"}function yn(){return typeof window>"u"||!window.location.origin?null:window.location.origin}function sr(e){if(!e)return null;try{return $r(e)}catch{return null}}function wn(){if(!vn())return[];const e=window.localStorage.getItem(mn);if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(r=>typeof r=="string"?sr(r):null).filter(r=>!!r):[]}catch{return[]}}function Ro(e){const t=new Set,r=[];for(const n of e)!n||t.has(n)||(t.add(n),r.push(n));return r}function _o(e){const t=new Set,r=[];for(const n of e)!n||t.has(n.value)||(t.add(n.value),r.push(n));return r}function Po(e,t){const r=wn();return Ro([e,...t,...r,sr(yn())]).slice(0,or)}function To(e){const t=Dt(e),r=wn().map(c=>({value:c,source:"history"})),n=sr(yn()),a=e.hosts.map(c=>({value:c.baseUrl,source:"saved"})),i=Hn(e).map(c=>({value:c.baseUrl,source:"discovered"})),o=t?{value:t.baseUrl,source:Kr(t)?"discovered":"saved"}:null;return _o([o,...a,...i,...r,n?{value:n,source:"origin"}:null]).slice(0,or)}function Co(e){vn()&&window.localStorage.setItem(mn,JSON.stringify(e.slice(0,or)))}class Do{constructor(){Re(this,"state",this.createState(ye.getState()));Re(this,"listeners",new Set);Re(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Re(this,"getState",()=>this.state);ye.subscribe(()=>{const t=this.createState(ye.getState());t.baseUrl===this.state.baseUrl&&t.options.length===this.state.options.length&&t.options.every((r,n)=>r===this.state.options[n])&&t.presetOptions.length===this.state.presetOptions.length&&t.presetOptions.every((r,n)=>{const a=this.state.presetOptions[n];return(a==null?void 0:a.value)===r.value&&(a==null?void 0:a.source)===r.source})||(this.state=t,this.emit())})}setBaseUrl(t){const r=ye.getState(),n=Dt(r);if(!n)return!1;const a=$r(t),i=a!==n.baseUrl,o=jo(a,n);if(Kr(n))return ye.updateRuntime({discoveredHosts:r.discoveredHosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l)}),this.state=this.createState(ye.getState()),this.emit(),i;const c=r.hosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l);return this.state=this.createState({...r,hosts:c}),this.emit(),ye.update({hosts:c}),i}reset(){this.state=this.createState(ye.getState()),this.emit()}createState(t){const r=Dt(t),n=(r==null?void 0:r.baseUrl)??"",a=To(t),i=Po(n,a.map(o=>o.value));return Co(i),{baseUrl:n,options:i,presetOptions:a}}emit(){for(const t of this.listeners)t()}}const Xt=new Do;function Lo(e){return f.useSyncExternalStore(Xt.subscribe,()=>e(Xt.getState()))}function as(e,t){return t.includes(e)?e:gn}function is(){return gn}function jo(e,t){const r=Bn(e);if(!r)return null;const n=t==null?void 0:t.relayTunnel,a=(n==null?void 0:n.provider)==="codingns_relay"&&n.tunnelDomain===r.tunnelDomain&&n.controlBaseUrl===r.controlBaseUrl,i=((n==null?void 0:n.candidateEndpoints)??[]).filter(o=>o.kind!=="relay");return{provider:"codingns_relay",enabled:!0,tunnelDomain:r.tunnelDomain,controlBaseUrl:r.controlBaseUrl,bindingId:a?(n==null?void 0:n.bindingId)??null:null,hostFingerprint:a?(n==null?void 0:n.hostFingerprint)??null:null,candidateEndpoints:[{endpointId:`relay-entry:${r.relayBaseUrl}`,kind:"relay",url:r.relayBaseUrl,priority:0,expiresAt:null,source:"user_saved"},...i]}}const No={login(e,t){return _t.login(e,t)},bootstrap(e,t,r){return _t.bootstrap(e,t,r)},refresh(){return _t.refresh()},logout(){_t.clear()}},Io=f.lazy(async()=>({default:(await W(()=>import("./ServerSettingsModal-D-guzPrI.js"),__vite__mapDeps([2,3,4,5,6,7]))).ServerSettingsModal})),Hr="width=device-width, initial-scale=1.0, viewport-fit=cover",Mo="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover";function Oo(){const e=f.useRef(null);return f.useEffect(()=>{const t=e.current;if(!t)return;const r=t.getContext("2d");if(!r)return;let n;const a=()=>{o(),c()};let i=[];const o=()=>{t.width=window.innerWidth,t.height=window.innerHeight},c=()=>{i=[];const d=Math.min(50,Math.floor(t.width*t.height/25e3));for(let m=0;m<d;m++)i.push({x:Math.random()*t.width,y:Math.random()*t.height,vx:(Math.random()-.5)*.5,vy:(Math.random()-.5)*.5,size:Math.random()*2+1,opacity:Math.random()*.5+.2})},l=()=>{r.clearRect(0,0,t.width,t.height),i.forEach((d,m)=>{d.x+=d.vx,d.y+=d.vy,d.x<0&&(d.x=t.width),d.x>t.width&&(d.x=0),d.y<0&&(d.y=t.height),d.y>t.height&&(d.y=0),r.beginPath(),r.arc(d.x,d.y,d.size,0,Math.PI*2),r.fillStyle=`rgba(10, 132, 255, ${d.opacity})`,r.fill(),i.slice(m+1).forEach(g=>{const w=d.x-g.x,b=d.y-g.y,P=Math.sqrt(w*w+b*b);P<150&&(r.beginPath(),r.moveTo(d.x,d.y),r.lineTo(g.x,g.y),r.strokeStyle=`rgba(10, 132, 255, ${.1*(1-P/150)})`,r.stroke())})}),n=requestAnimationFrame(l)};return o(),c(),l(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a),cancelAnimationFrame(n)}},[]),p.jsx("canvas",{ref:e,className:"particle-canvas"})}function Uo({text:e}){return p.jsx("span",{className:"glitch-text","data-text":e,children:e})}function ko({text:e}){const[t,r]=f.useState(""),[n,a]=f.useState(!0);return f.useEffect(()=>{let i=0,o=null;const c=setInterval(()=>{i<=e.length?(r(e.slice(0,i)),i++):(clearInterval(c),o=window.setTimeout(()=>a(!1),1e3))},50);return()=>{clearInterval(c),o!==null&&window.clearTimeout(o)}},[e]),p.jsxs("span",{className:"typewriter-text",children:[t,n&&p.jsx("span",{className:"typewriter-cursor",children:"_"})]})}function Ao(e){const t=e==null?void 0:e.captcha;if(typeof t!="object"||t===null)return null;const r=t.captchaId,n=t.imageDataUrl;return typeof r!="string"||typeof n!="string"?null:{captchaId:r,imageDataUrl:n}}function Fo(){const e=ar(),t=Wn(),[r]=Ui(),n=gt(),a=fo(),i=Xe(V=>$n(V)),o=Kn(n.platform),c=f.useMemo(()=>Yn(n),[n]),l=f.useMemo(()=>c?Gn(i):{credentials:null,legacyServerBaseUrl:null},[i,c]),d=l.credentials,m=l.legacyServerBaseUrl,[g,w]=f.useState(()=>(d==null?void 0:d.username)??"admin"),[b,P]=f.useState(()=>(d==null?void 0:d.password)??""),[E,D]=f.useState(null),[A,L]=f.useState(""),[Y,re]=f.useState(()=>!!d),K=Lo(V=>V.baseUrl),[he,v]=f.useState(K),[N,F]=f.useState(null),[M,ne]=f.useState(!1),[J,oe]=f.useState(!1),[ae,se]=f.useState(null),[We,$e]=f.useState(!1),Z=Wt(V=>V.session),Pe=f.useMemo(()=>r.get("returnTo")??"/",[r]),{theme:Te}=no(),be=f.useRef(!1),ce=n.isNativeMobile,Ce=f.useMemo(()=>Te==="light"?"light":"dark",[Te]);f.useEffect(()=>{w((d==null?void 0:d.username)??"admin"),P((d==null?void 0:d.password)??""),D(null),L(""),re(!!d)},[d]),f.useEffect(()=>{if(typeof document>"u")return;const V=document.querySelector('meta[name="viewport"]');if(!(V instanceof HTMLMetaElement))return;const de=V.getAttribute("content")??Hr;return ce?V.setAttribute("content",Mo):V.setAttribute("content",Hr),()=>{V.setAttribute("content",de)}},[ce]),f.useEffect(()=>{be.current||(be.current=!0,!(!c||!m||m===K)&&(Xt.setBaseUrl(m),v(m)))},[K,c,m]),f.useEffect(()=>{if(Z){e(Pe,{replace:!0});return}if(!he)return;let V=!1;const de=window.setTimeout(()=>{W(async()=>{const{probeHost:H}=await import("./index-BUoNjVrY.js").then(ge=>ge.ad);return{probeHost:H}},__vite__mapDeps([3,4])).then(({probeHost:H})=>H(he)).then(H=>{V||(H.demoMode&&($e(!0),Jn()&&F(t("auth.demoSessionExpired"))),H.reachable&&!H.initialized&&e("/bootstrap",{replace:!0}))}).catch(()=>{V||F(t("auth.authUnavailable"))})},0);return()=>{V=!0,window.clearTimeout(de)}},[Z,e,he,Pe,t]);async function Oe(V){V.preventDefault(),ne(!0),F(null),v(K),c&&!Y&&i&&Xn(i);try{const de=E?{username:g,password:b,captchaId:E.captchaId,captchaCode:A}:{username:g,password:b};await No.login(de,K),D(null),L("");const{userPreferenceStore:H}=await W(async()=>{const{userPreferenceStore:ge}=await import("./index-BUoNjVrY.js").then(yt=>yt.ac);return{userPreferenceStore:ge}},__vite__mapDeps([3,4]));await H.refreshForAuthenticatedUser(),c&&Y&&i&&qn({hostId:i,username:g,password:b}),e(Pe,{replace:!0})}catch(de){if(de instanceof Qn){if(de.errorCode==="BOOTSTRAP_REQUIRED"){e("/bootstrap",{replace:!0});return}const H=Ao(de.data);H?(D(H),L("")):de.errorCode==="INVALID_CREDENTIALS"&&(D(null),L("")),F(de.message)}else F(t("auth.authUnavailable"))}finally{ne(!1)}}function ue(V){w(V),E&&(D(null),L(""))}function xe(V){v(V),F(null)}const me="login-username",Ue="login-password",vt="login-captcha";return p.jsxs("main",{className:"cyber-login-page","data-theme":Ce,"data-native-mobile":ce?"true":"false",children:[p.jsxs("div",{className:"cyber-bg",children:[p.jsx("div",{className:"cyber-grid"}),p.jsx("div",{className:"cyber-glow cyber-glow-1"}),p.jsx("div",{className:"cyber-glow cyber-glow-2"}),p.jsx(Oo,{})]}),p.jsx("div",{className:"scanlines"}),p.jsxs("div",{className:"cyber-login-container",children:[p.jsx("div",{className:"cyber-login-toolbar",children:p.jsx(na,{variant:"compact"})}),p.jsxs("div",{className:"cyber-login-content",children:[p.jsxs("div",{className:"cyber-brand",children:[p.jsx("div",{className:"cyber-logo",children:p.jsx("img",{src:"/logo.png",alt:"CodingNS",className:"cyber-logo-svg"})}),p.jsx("h1",{className:"cyber-brand-title",children:p.jsx(Uo,{text:"CodingNS"})}),p.jsx("p",{className:"cyber-brand-subtitle",children:p.jsx(ko,{text:t("auth.loginSubtitle")})})]}),p.jsxs("div",{className:"cyber-card",children:[p.jsx("div",{className:"cyber-corner corner-tl"}),p.jsx("div",{className:"cyber-corner corner-tr"}),p.jsx("div",{className:"cyber-corner corner-bl"}),p.jsx("div",{className:"cyber-corner corner-br"}),p.jsxs("div",{className:"cyber-card-header",children:[p.jsx("div",{className:"cyber-line"}),p.jsx("span",{className:"cyber-card-label",children:t("auth.loginTitle").toUpperCase()}),p.jsx("div",{className:"cyber-line"})]}),We?p.jsxs("div",{className:"cyber-demo-banner",children:[p.jsx("span",{className:"cyber-demo-icon",children:"⚠"}),p.jsx("span",{children:t("auth.demoBanner")})]}):null,p.jsxs("form",{className:"cyber-form",onSubmit:Oe,children:[p.jsxs("div",{className:`cyber-field ${ae==="username"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:me,children:[p.jsx("span",{className:"cyber-field-icon",children:"❯"}),t("auth.username")]}),p.jsx("input",{id:me,"aria-label":t("auth.username"),className:"cyber-input",value:g,onChange:V=>ue(V.target.value),onFocus:()=>se("username"),onBlur:()=>se(null),autoComplete:"username"})]}),p.jsxs("div",{className:`cyber-field ${ae==="password"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:Ue,children:[p.jsx("span",{className:"cyber-field-icon",children:"⚷"}),t("auth.password")]}),p.jsx("input",{id:Ue,"aria-label":t("auth.password"),className:"cyber-input",type:"password",value:b,onChange:V=>P(V.target.value),onFocus:()=>se("password"),onBlur:()=>se(null),autoComplete:"current-password"})]}),E?p.jsxs("div",{className:"cyber-captcha-panel",children:[p.jsx("img",{alt:t("auth.captchaImageAlt"),className:"cyber-captcha-image",draggable:!1,src:E.imageDataUrl}),p.jsx("p",{className:"cyber-captcha-hint",children:t("auth.captchaHint")}),p.jsxs("div",{className:`cyber-field ${ae==="captcha"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:vt,children:[p.jsx("span",{className:"cyber-field-icon",children:"#"}),t("auth.captcha")]}),p.jsx("input",{id:vt,"aria-label":t("auth.captcha"),className:"cyber-input",placeholder:t("auth.captchaPlaceholder"),value:A,onChange:V=>L(V.target.value),onFocus:()=>se("captcha"),onBlur:()=>se(null),autoComplete:"one-time-code"})]})]}):null,c?p.jsxs("label",{className:"cyber-remember-toggle",children:[p.jsx("input",{"aria-label":t("auth.rememberPassword"),type:"checkbox",checked:Y,onChange:V=>re(V.target.checked)}),p.jsx("span",{children:t("auth.rememberPassword")})]}):null,N?p.jsxs("div",{className:"cyber-status","data-tone":"error",children:[p.jsx("span",{className:"cyber-status-icon",children:"⚠"}),p.jsx("span",{children:N})]}):null,p.jsxs("button",{className:`cyber-submit ${M?"loading":""}`,type:"submit",disabled:M,children:[p.jsx("span",{className:"cyber-submit-glow"}),p.jsx("span",{className:"cyber-submit-border"}),p.jsx("span",{className:"cyber-submit-text",children:M?p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-spinner"}),t("common.loading")]}):p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-submit-icon",children:"➤"}),t("auth.submitLogin")]})})]})]}),o?p.jsxs("div",{className:"cyber-footer",children:[p.jsxs("div",{className:"cyber-divider",children:[p.jsx("span",{className:"cyber-divider-line"}),p.jsx("span",{className:"cyber-divider-text",children:"//"}),p.jsx("span",{className:"cyber-divider-line"})]}),p.jsxs("button",{className:"cyber-server-btn",onClick:()=>oe(!0),type:"button",children:[p.jsx("span",{className:"cyber-server-icon",children:"⚙"}),p.jsx("span",{className:"cyber-server-text",children:t("auth.serverSettings")}),p.jsx("span",{className:"cyber-server-current",children:K})]})]}):null]})]}),p.jsxs("div",{className:"cyber-version",children:[p.jsxs("span",{className:"cyber-version-text",children:["v",a]}),p.jsx("span",{className:"cyber-version-divider",children:"|"}),p.jsx("span",{className:"cyber-version-text",children:"SYSTEM READY"})]})]}),o&&J?p.jsx(f.Suspense,{fallback:null,children:p.jsx(Io,{isOpen:J,onClose:()=>oe(!1),onSave:xe})}):null]})}function bn(){return p.jsx("main",{className:"page-center app-shell",children:p.jsxs("section",{className:"auth-card surface-card",children:[p.jsx("h1",{children:we("auth.trustedEntryOnlyTitle")}),p.jsx("p",{className:"status-text",children:we("auth.trustedEntryOnlyDescription")}),p.jsxs("div",{className:"field-group",children:[p.jsx("span",{children:we("auth.trustedEntryOnlyHintTitle")}),p.jsx("span",{className:"auth-server-value",children:we("auth.trustedEntryOnlyHint")})]})]})})}function Vo({isDesktop:e,viewportClass:t}){return e||t==="expanded"?"desktop":"mobile"}function zo(){return!1}function xn(e,t,r=zo()){var i,o;if(!r||t!=="web")return!1;const n=Dt(e),a=n==null?void 0:n.relayTunnel;return!(a!=null&&a.enabled&&((i=a.tunnelDomain)!=null&&i.trim())&&((o=a.controlBaseUrl)!=null&&o.trim()))}function Bo({runtimeKey:e,children:t}){return p.jsx("div",{children:t},e)}function Ho(){const e=Zn();return p.jsx(Bo,{runtimeKey:e,children:p.jsx(wi,{})})}function Wo(){const e=Xe(i=>i),t=gt(),r=Wt(i=>i.session),n=Wt(i=>i.sessionReady),a=mt();if(xn(e,t.platform))return p.jsx(bn,{});if(!r){const i=`${a.pathname}${a.search}`;return p.jsx(ir,{to:`/login?returnTo=${encodeURIComponent(i)}`,replace:!0})}return n?p.jsx(Ho,{}):p.jsx("div",{children:we("common.loading")})}function $o(){const e=Xe(r=>r),t=gt();return xn(e,t.platform)?p.jsx(bn,{}):p.jsx(Fo,{})}function Wr(){const e=gt(),t=Vo(e);return p.jsx(ir,{to:t==="mobile"?"/workspaces":"/landing",replace:!0})}function X(e,t){return async()=>({Component:(await e())[t]})}const Ko=[{path:"/bootstrap",lazy:X(()=>W(()=>import("./BootstrapPage-QgVH5Mps.js"),__vite__mapDeps([8,3,4])),"BootstrapPage")},{path:"/login",element:p.jsx($o,{})},{path:"/connect/:tunnelDomain",lazy:X(()=>W(()=>import("./RelayConnectEntryPage-Bt1apX53.js"),__vite__mapDeps([9,3,4,5])),"RelayConnectEntryPage")},{path:"/desktop-window-preview",lazy:X(()=>W(()=>import("./DesktopDetachPreviewPage-BhfP0TpH.js"),__vite__mapDeps([10,3,4])),"DesktopDetachPreviewPage")},{path:"/",element:p.jsx(Wo,{}),children:[{path:"desktop-window/:windowId",lazy:X(()=>W(()=>import("./DesktopWindowPage-DNbJXnSs.js"),__vite__mapDeps([11,3,4,12,13,0,1,7,6,5,14,15,16,17,18,19,20,21,22,23,24])),"DesktopWindowPage")},{lazy:X(()=>W(()=>import("./WorkbenchShellRoute-2bKI6Q9k.js"),__vite__mapDeps([25,3,4,12,13,0,1,7,6,5,14,15,26])),"WorkbenchShellRoute"),children:[{index:!0,element:p.jsx(Wr,{})},{path:"landing",lazy:X(()=>W(()=>import("./WorkbenchLandingPage-CqZKR6EA.js"),__vite__mapDeps([27,3,4,12,13,0,1,7,6,5,14,15])),"WorkbenchLandingPage")},{path:"affairs",lazy:X(()=>W(()=>import("./ConversationPage-DVk8VfIj.js"),__vite__mapDeps([28,3,4,7,13,12,0,1,6,5,14,15,16,17,18,19,20,21,22,23,24,29,30])),"ConversationPage")},{path:"workspaces",lazy:X(()=>W(()=>import("./WorkspaceHomePage-DQiXKgiP.js"),__vite__mapDeps([31,3,4,12,13,0,1,7,6,5,14,15,32,22,23,33])),"WorkspaceHomePage")},{path:"workspaces/:workspaceId",lazy:X(()=>W(()=>import("./WorkspaceDetailPage-5H9Gosx2.js"),__vite__mapDeps([34,3,4,12,13,0,1,7,6,5,14,15,35,19,22,23,33])),"WorkspaceDetailPage")},{path:"workspaces/:workspaceId/debug",lazy:X(()=>W(()=>import("./WorkspaceDebugDetailPage-BMsEN5iG.js"),__vite__mapDeps([36,3,4,35,12,13,0,1,7,6,5,14,15,19])),"WorkspaceDebugDetailPage")},{path:"workspaces/:workspaceId/affairs",element:p.jsx(ir,{to:"/affairs",replace:!0})},{path:"workspaces/:workspaceId/sessions",lazy:X(()=>W(()=>import("./SessionIndexPage-CX2FppcJ.js"),__vite__mapDeps([37,3,4,12,13,0,1,7,6,5,14,15,22,23,33,29,30])),"SessionIndexPage")},{path:"workspaces/:workspaceId/sessions/:sessionId",lazy:X(()=>W(()=>import("./ConversationPage-DVk8VfIj.js"),__vite__mapDeps([28,3,4,7,13,12,0,1,6,5,14,15,16,17,18,19,20,21,22,23,24,29,30])),"ConversationPage")},{path:"workspaces/:workspaceId/tools",lazy:X(()=>W(()=>import("./ToolsHomePage-BLOy7lPg.js"),__vite__mapDeps([38,3,4,12,13,0,1,7,6,5,14,15])),"ToolsHomePage")},{path:"workspaces/:workspaceId/tools/files",lazy:X(()=>W(()=>import("./ToolFilesPage-IsNwyE6T.js"),__vite__mapDeps([39,3,4,12,13,0,1,7,6,5,14,15])),"ToolFilesPage")},{path:"workspaces/:workspaceId/tools/git",lazy:X(()=>W(()=>import("./ToolGitPage-BK1JBERN.js"),__vite__mapDeps([40,3,4,12,13,0,1,7,6,5,14,15])),"ToolGitPage")},{path:"workspaces/:workspaceId/tools/processes",lazy:X(()=>W(()=>import("./ToolProcessesPage-DwTYUQCK.js"),__vite__mapDeps([41,3,4,12,13,0,1,7,6,5,14,15])),"ToolProcessesPage")},{path:"workspaces/:workspaceId/terminals",lazy:X(()=>W(()=>import("./TerminalPage-C2dTNGHK.js"),__vite__mapDeps([21,3,4,14,12,13,0,1,7,6,5,15,22,23,19,20,24])),"TerminalPage")},{path:"workspaces/:workspaceId/plugins",lazy:X(()=>W(()=>import("./PluginsListPage-FtIL71Yg.js"),__vite__mapDeps([42,3,4,13,43])),"PluginsListPage")},{path:"workspaces/:workspaceId/plugins/:pluginId",lazy:X(()=>W(()=>import("./PluginDetailPage-CrMX0Mnm.js"),__vite__mapDeps([44,3,4,13,43,45,46])),"PluginDetailPage")},{path:"workspaces/:workspaceId/plugins/:pluginId/run",lazy:X(()=>W(()=>import("./PluginContainerPage-CR4vStvr.js"),__vite__mapDeps([47,3,4,13,43,7,14,46])),"PluginContainerPage")},{path:"workspaces/:workspaceId/butler",lazy:X(()=>W(()=>import("./AdaptiveButlerPage-kkJDsnCO.js"),__vite__mapDeps([48,3,4,12,13,0,1,7,6,5,14,15,32,22,23])),"AdaptiveButlerPage")},{path:"settings",lazy:X(()=>W(()=>import("./SettingsPage-BI2Olcvr.js"),__vite__mapDeps([49,3,4,12,13,0,1,7,6,5,14,15,43,45,46,23])),"SettingsPage")},{path:"settings/:section",lazy:X(()=>W(()=>import("./SettingsPage-BI2Olcvr.js"),__vite__mapDeps([49,3,4,12,13,0,1,7,6,5,14,15,43,45,46,23])),"SettingsPage")},{path:"*",element:p.jsx(Wr,{})}]}]}];function Yo(){return Ri(Ko)}function Go(){const e=qe(r=>r.profile.language),t=f.useMemo(()=>Yo(),[]);return p.jsx(Qi,{children:p.jsx(uo,{children:p.jsx(ea,{language:e,children:p.jsx(io,{children:p.jsxs(co,{children:[p.jsx(So,{}),p.jsx(Ii,{router:t})]})})})})})}const os=Object.freeze(Object.defineProperty({__proto__:null,App:Go},Symbol.toStringTag,{value:"Module"}));export{os as A,na as L,ir as N,wi as O,Qi as P,io as T,Lo as a,No as b,qo as c,Ui as d,gt as e,es as f,Yr as g,mt as h,Ai as i,po as j,bo as k,ts as l,rs as m,ns as n,fo as o,no as p,Qo as q,Vo as r,Zo as s,Er as t,ar as u,ht as v,nr as w,as as x,is as y,Xt as z};
|
|
30
|
+
*/function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},It.apply(this,arguments)}function Gt(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function Ei(e,t){let r=Gt(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const Si="6";try{window.__reactRouterVersion=Si}catch{}function Ri(e,t){return ka({basename:void 0,future:It({},void 0,{v7_prependBasename:!0}),history:oa({window:void 0}),hydrationData:_i(),routes:e,mapRouteProperties:xi,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function _i(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=It({},t,{errors:Pi(t.errors)})),t}function Pi(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new jt(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let i=window[a.__subType];if(typeof i=="function")try{let o=new i(a.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let i=new Error(a.message);i.stack="",r[n]=i}}else r[n]=a;return r}const Ti=f.createContext({isTransitioning:!1}),Ci=f.createContext(new Map),Di="startTransition",Ar=Vn[Di],Li="flushSync",Fr=ia[Li];function ji(e){Ar?Ar(e):e()}function ot(e){Fr?Fr(e):e()}class Ni{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}}function Ii(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=f.useState(r.state),[o,c]=f.useState(),[l,d]=f.useState({isTransitioning:!1}),[m,g]=f.useState(),[w,b]=f.useState(),[P,E]=f.useState(),D=f.useRef(new Map),{v7_startTransition:F}=n||{},L=f.useCallback(N=>{F?ji(N):N()},[F]),Y=f.useCallback((N,V)=>{let{deletedFetchers:M,flushSync:ne,viewTransitionOpts:J}=V;N.fetchers.forEach((ae,se)=>{ae.data!==void 0&&D.current.set(se,ae.data)}),M.forEach(ae=>D.current.delete(ae));let oe=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!J||oe){ne?ot(()=>i(N)):L(()=>i(N));return}if(ne){ot(()=>{w&&(m&&m.resolve(),w.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:J.currentLocation,nextLocation:J.nextLocation})});let ae=r.window.document.startViewTransition(()=>{ot(()=>i(N))});ae.finished.finally(()=>{ot(()=>{g(void 0),b(void 0),c(void 0),d({isTransitioning:!1})})}),ot(()=>b(ae));return}w?(m&&m.resolve(),w.skipTransition(),E({state:N,currentLocation:J.currentLocation,nextLocation:J.nextLocation})):(c(N),d({isTransitioning:!0,flushSync:!1,currentLocation:J.currentLocation,nextLocation:J.nextLocation}))},[r.window,w,m,D,L]);f.useLayoutEffect(()=>r.subscribe(Y),[r,Y]),f.useEffect(()=>{l.isTransitioning&&!l.flushSync&&g(new Ni)},[l]),f.useEffect(()=>{if(m&&o&&r.window){let N=o,V=m.promise,M=r.window.document.startViewTransition(async()=>{L(()=>i(N)),await V});M.finished.finally(()=>{g(void 0),b(void 0),c(void 0),d({isTransitioning:!1})}),b(M)}},[L,o,m,r.window]),f.useEffect(()=>{m&&o&&a.location.key===o.location.key&&m.resolve()},[m,w,a.location,o]),f.useEffect(()=>{!l.isTransitioning&&P&&(c(P.state),d({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}),E(void 0))},[l.isTransitioning,P]),f.useEffect(()=>{},[]);let ee=f.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:N=>r.navigate(N),push:(N,V,M)=>r.navigate(N,{state:V,preventScrollReset:M==null?void 0:M.preventScrollReset}),replace:(N,V,M)=>r.navigate(N,{replace:!0,state:V,preventScrollReset:M==null?void 0:M.preventScrollReset})}),[r]),K=r.basename||"/",he=f.useMemo(()=>({router:r,navigator:ee,static:!1,basename:K}),[r,ee,K]),v=f.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return f.useEffect(()=>yi(n,r.future),[n,r.future]),f.createElement(f.Fragment,null,f.createElement(Mt.Provider,{value:he},f.createElement(nn.Provider,{value:a},f.createElement(Ci.Provider,{value:D.current},f.createElement(Ti.Provider,{value:l},f.createElement(bi,{basename:K,location:a.location,navigationType:a.historyAction,navigator:ee,future:v},a.initialized||r.future.v7_partialHydration?f.createElement(Mi,{routes:r.routes,future:r.future,state:a}):t))))),null)}const Mi=f.memo(Oi);function Oi(e){let{routes:t,future:r,state:n}=e;return oi(t,void 0,n,r)}var Vr;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Vr||(Vr={}));var zr;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(zr||(zr={}));function Ui(e){let t=f.useRef(Gt(e)),r=f.useRef(!1),n=mt(),a=f.useMemo(()=>Ei(n.search,r.current?null:t.current),[n.search]),i=ar(),o=f.useCallback((c,l)=>{const d=Gt(typeof c=="function"?c(a):c);r.current=!0,i("?"+d,l)},[i,a]);return[a,o]}let Bt=null;function st(){return Ze().bridge}function ki(){return{runtime:{isAvailable(){return st().supported},getPlatformInfo(){return st().getPlatformInfo()}},fs:{openFile(e){return st().openLocalFile(e)},revealInFileManager(e){return st().revealInFileManager(e)},pickDirectory(){return st().pickDirectory()}}}}function Ai(){return Bt||(Bt=ki()),Bt}function Fi(){if(typeof window>"u"||window.self!==window.top)return;const e=Ai();window.__CODINGNS_DESKTOP_BRIDGE_INSTALLED__=!0,Object.defineProperty(window,"CodingNSDesktop",{configurable:!0,writable:!1,value:e})}const Vi="desktop://window-lifecycle",zi=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]);function Bi(e){return e instanceof HTMLInputElement?!zi.has(e.type.toLowerCase()):!1}function Hi(e){const t=e.activeElement;if(Bi(t)||t instanceof HTMLTextAreaElement){const r=t.selectionStart??0,n=t.selectionEnd??r;return n<=r?null:t.value.slice(r,n)}return null}function Wi(e){const t=Hi(e);if(t!==null)return t;const r=e.getSelection();if(!r||r.isCollapsed)return null;const n=r.toString();return n.length>0?n:null}function $i(e,t){var a;const r=(a=e.execCommand)==null?void 0:a.bind(e);if(typeof r!="function")return!1;const n=e.createElement("textarea");n.value=t,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.top="-9999px",n.style.opacity="0",e.body.append(n),n.select();try{return r("copy")}catch{return!1}finally{n.remove()}}async function Ki(e,t,r){var a,i;try{if(await r(t))return}catch{}const n=(a=e.defaultView)==null?void 0:a.navigator;if((i=n==null?void 0:n.clipboard)!=null&&i.writeText)try{await n.clipboard.writeText(t);return}catch{}$i(e,t)}function Yi(e){const{window:t,document:r,writeClipboardText:n}=e;function a(i){if(i.defaultPrevented||!i.metaKey||i.ctrlKey||i.altKey||i.key.toLowerCase()!=="c")return;const o=Wi(r);o&&(i.preventDefault(),Ki(r,o,n))}return t.addEventListener("keydown",a,!0),()=>{t.removeEventListener("keydown",a,!0)}}const un=f.createContext(null),Gi=["--desktop-macos-traffic-light-center-y","--desktop-macos-traffic-light-leading-inset","--desktop-macos-traffic-light-safe-zone-width","--desktop-macos-titlebar-height","--desktop-macos-traffic-light-button-diameter"];function Ji(e){if(typeof document>"u")return;const{documentElement:t,body:r}=document;t.dataset.runtimePlatform=e.platform,t.dataset.osFamily=e.ui.osFamily,t.dataset.windowControls=e.ui.windowControlsStyle,t.dataset.viewportClass=e.viewportClass,t.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar),r&&(r.dataset.runtimePlatform=e.platform,r.dataset.osFamily=e.ui.osFamily,r.dataset.windowControls=e.ui.windowControlsStyle,r.dataset.viewportClass=e.viewportClass,r.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar))}function Jt(){var e;if(!(typeof document>"u"))for(const t of Gi)document.documentElement.style.removeProperty(t),(e=document.body)==null||e.style.removeProperty(t)}function Xi(e){if(typeof document>"u")return;if(!e){Jt();return}const t=[document.documentElement,document.body].filter(n=>!!n),r=[["--desktop-macos-traffic-light-center-y",`${e.trafficLightCenterY}px`],["--desktop-macos-traffic-light-leading-inset",`${e.trafficLightLeadingInset}px`],["--desktop-macos-traffic-light-safe-zone-width",`${e.trafficLightSafeZoneWidth}px`],["--desktop-macos-titlebar-height",`${e.titlebarHeight}px`],["--desktop-macos-traffic-light-button-diameter",`${e.trafficLightButtonDiameter}px`]];for(const n of t)for(const[a,i]of r)n.style.setProperty(a,i)}function qi(){if(!(typeof window>"u"))return window.innerWidth}function Qi({children:e}){const[t,r]=f.useState(()=>qi()),n=f.useMemo(()=>Ze({viewportWidth:t}),[t]);return f.useEffect(()=>{Fi()},[]),f.useEffect(()=>{if(typeof window>"u")return;function a(){r(window.innerWidth)}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),f.useEffect(()=>{Ji(n)},[n]),f.useEffect(()=>{if(!(typeof window>"u"||typeof document>"u")&&!(!n.isDesktop||n.ui.osFamily!=="macos"||!n.bridge.supported))return Yi({window,document,writeClipboardText:async a=>(await n.bridge.writeClipboardText(a)).ok})},[n]),f.useEffect(()=>()=>{Jt()},[]),f.useEffect(()=>{let a=!1,i=null;return!n.isDesktop||!n.bridge.supported?()=>{a=!0}:(W(()=>import("./event-DvH9tcej.js").then(o=>o.c),[]).then(async({listen:o})=>{const c=await o(Vi,l=>{const d=l.payload,m=d==null?void 0:d.descriptor;m!=null&&m.windowId&&(n.windows.registerDescriptor(m),d.isOpen?n.windows.markWindowOpen(m.windowId):n.windows.markWindowClosed(m.windowId))});if(a){c();return}i=c}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),f.useEffect(()=>{let a=!1,i=null;async function o(){var l,d;const c=await n.bridge.getRuntimeInfo();a||Xi(c.ok?(d=(l=c.value)==null?void 0:l.windowChrome)==null?void 0:d.macosTitlebar:null)}return!n.isDesktop||n.ui.osFamily!=="macos"||!n.ui.prefersOverlayTitlebar?(Jt(),()=>{a=!0}):(o(),W(()=>import("./window-BVUB8gMK.js").then(c=>c.w),__vite__mapDeps([0,1])).then(async({getCurrentWindow:c})=>{const l=await c().onScaleChanged(()=>{o()});if(a){l();return}i=l}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),p.jsx(un.Provider,{value:n,children:e})}function gt(){return f.useContext(un)??Ze()}const Qo=[{id:"light",labelKey:"theme.light",color:"#f6f4ef"},{id:"dark",labelKey:"theme.dark",color:"#1b1b1b"},{id:"sky-blue",labelKey:"theme.skyBlue",color:"#00f0ff"},{id:"eye-green",labelKey:"theme.eyeGreen",color:"#16a34a"}];function Zo(e){return we(e.labelKey)}function Zi(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function dn(e,t){return t?Zi():e}function eo(){const{theme:e,autoTheme:t}=zn.getState().profile;return dn(e,t)}function to(e){qt({theme:e,autoTheme:!1}).catch(()=>{})}function ro(e){qt({autoTheme:e}).catch(()=>{})}function fn(e){typeof window>"u"||document.documentElement.setAttribute("data-theme",e)}function no(){const e=qe(n=>n.profile.theme),t=qe(n=>n.profile.autoTheme);return{theme:dn(e,t),selectedTheme:e,autoTheme:t,setTheme:to,setAutoTheme:ro}}function ao(){fn(eo())}function io({children:e}){const t=qe(n=>n.profile.theme),r=qe(n=>n.profile.autoTheme);return f.useEffect(()=>{ao()},[t,r]),f.useEffect(()=>{if(!r||typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{fn(n.matches?"dark":"light")};return a(),typeof n.addEventListener=="function"?(n.addEventListener("change",a),()=>n.removeEventListener("change",a)):(n.addListener(a),()=>n.removeListener(a))},[r]),p.jsx(p.Fragment,{children:e})}const oo={showToast:()=>"",dismissToast:()=>{}},hn=f.createContext(oo);function so(){return`toast-${Math.random().toString(36).slice(2,10)}`}function lo({toast:e,onDismiss:t}){const{id:r,title:n,description:a,tone:i,durationMs:o,action:c}=e;return f.useEffect(()=>{if(o===null)return;const l=window.setTimeout(()=>{t(r)},o);return()=>{window.clearTimeout(l)}},[o,r,t,n,a,i]),p.jsxs("article",{className:"toast-card","data-tone":i,role:i==="error"?"alert":"status",children:[p.jsxs("div",{className:"toast-body",children:[p.jsx("strong",{className:"toast-title",children:n}),a?p.jsx("p",{className:"toast-description",children:a}):null]}),p.jsxs("div",{className:"toast-actions",children:[c?p.jsx("button",{className:"toast-action",type:"button",onClick:()=>{c.onClick(),t(r)},children:c.label}):null,p.jsx("button",{className:"toast-dismiss",type:"button","aria-label":"关闭通知",onClick:()=>t(r),children:"×"})]})]})}function co({children:e}){const[t,r]=f.useState([]),n=f.useCallback(o=>{r(c=>c.filter(l=>l.id!==o))},[]),a=f.useCallback(o=>{const c=o.id??so(),l={id:c,title:o.title,description:o.description,tone:o.tone??"info",durationMs:o.durationMs===void 0?4200:o.durationMs,action:o.action};return r(d=>{const m=d.findIndex(w=>w.id===c);if(m===-1)return[...d,l];const g=[...d];return g[m]=l,g}),c},[]),i=f.useMemo(()=>({showToast:a,dismissToast:n}),[n,a]);return p.jsxs(hn.Provider,{value:i,children:[e,p.jsx("div",{className:"toast-viewport","aria-live":"polite","aria-atomic":"false",children:t.map(o=>p.jsx(lo,{toast:o,onDismiss:n},o.id))})]})}function es(){return f.useContext(hn)}const Ct="0.9.6",pn=f.createContext(Ct);function uo({children:e}){const t=gt(),[r,n]=f.useState(Ct);return f.useEffect(()=>{let a=!1;return t.isDesktop?(t.bridge.getRuntimeInfo().then(i=>{var c,l;if(a)return;const o=i.ok?(l=(c=i.value)==null?void 0:c.version)==null?void 0:l.trim():"";n(o||Ct)}),()=>{a=!0}):(n(Ct),()=>{a=!0})},[t]),p.jsx(pn.Provider,{value:r,children:e})}function fo(){return f.useContext(pn)}const Br={latestState:null,lastNotifiedVersion:null,pendingRestartVersion:null};class ho{constructor(){Re(this,"state",Br);Re(this,"listeners",new Set);Re(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Re(this,"getState",()=>this.state)}recordState(t){const r=Ht(this.state.pendingRestartVersion),n=Ht(t.currentVersion);this.state={latestState:t,lastNotifiedVersion:t.hasUpdate?this.state.lastNotifiedVersion:null,pendingRestartVersion:r&&r===n?null:this.state.pendingRestartVersion},this.emit()}markVersionNotified(t){this.state.lastNotifiedVersion!==t&&(this.state={...this.state,lastNotifiedVersion:t},this.emit())}markRestartPending(t){const r=Ht(t);!r||this.state.pendingRestartVersion===r||(this.state={...this.state,pendingRestartVersion:r},this.emit())}reset(){this.state=Br,this.emit()}emit(){for(const t of this.listeners)t()}}const Qe=new ho;function Ht(e){const t=e==null?void 0:e.trim();return t||null}function po(e){return f.useSyncExternalStore(Qe.subscribe,()=>e(Qe.getState()))}function mo(){return Qe.getState()}function go(e){Qe.recordState(e)}function vo(e){Qe.markVersionNotified(e)}function yo(e){Qe.markRestartPending(e)}async function wo(){const e=Ze(),t=ye.getState(),r=await e.bridge.checkForUpdate(t.releaseChannel);if(!r.ok||!r.value)throw new Error(r.detail??"更新检查失败。");return r.value}async function bo(e={}){const t=e.notify??"never",r=await wo();return go(r),await xo(r,t),r}async function ts(){const e=Ze(),t=ye.getState();return e.bridge.installUpdate(t.releaseChannel)}function rs(e){yo(e)}async function ns(){var e;if(typeof window>"u"||typeof((e=window.__TAURI_INTERNALS__)==null?void 0:e.invoke)!="function")throw new Error("当前运行环境不支持桌面应用重启。");try{await window.__TAURI_INTERNALS__.invoke("restart_application")}catch(t){throw new Error(t instanceof Error?t.message:"重启应用失败。")}}async function xo(e,t){var i,o,c;if(!e.hasUpdate||t==="never")return;const r=((o=(i=e.manifest)==null?void 0:i.version)==null?void 0:o.trim())||e.currentVersion.trim();if(!r)return;const n=mo().lastNotifiedVersion;if(t==="always"||n!==r)try{(await Ze().bridge.showNotification(we("settings.releaseUpdateReady"),((c=e.manifest)==null?void 0:c.version)??e.currentVersion)).ok&&vo(r)}catch{}}const Eo=3600*1e3;function So(){const e=Xe(a=>a.platform),t=Xe(a=>a.autoCheckUpdate),r=Xe(a=>a.releaseChannel),n=po(a=>a.pendingRestartVersion);return f.useEffect(()=>{if(e!=="desktop"||!t||n)return;async function a(){try{await bo({notify:"if-new"})}catch{}}a();const i=window.setInterval(()=>{a()},Eo);return()=>{window.clearInterval(i)}},[t,n,e,r]),null}const mn="codingns.server.base-url.history",or=6,gn="__custom__";function vn(){return typeof window<"u"&&typeof window.localStorage<"u"}function yn(){return typeof window>"u"||!window.location.origin?null:window.location.origin}function sr(e){if(!e)return null;try{return $r(e)}catch{return null}}function wn(){if(!vn())return[];const e=window.localStorage.getItem(mn);if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(r=>typeof r=="string"?sr(r):null).filter(r=>!!r):[]}catch{return[]}}function Ro(e){const t=new Set,r=[];for(const n of e)!n||t.has(n)||(t.add(n),r.push(n));return r}function _o(e){const t=new Set,r=[];for(const n of e)!n||t.has(n.value)||(t.add(n.value),r.push(n));return r}function Po(e,t){const r=wn();return Ro([e,...t,...r,sr(yn())]).slice(0,or)}function To(e){const t=Dt(e),r=wn().map(c=>({value:c,source:"history"})),n=sr(yn()),a=e.hosts.map(c=>({value:c.baseUrl,source:"saved"})),i=Hn(e).map(c=>({value:c.baseUrl,source:"discovered"})),o=t?{value:t.baseUrl,source:Kr(t)?"discovered":"saved"}:null;return _o([o,...a,...i,...r,n?{value:n,source:"origin"}:null]).slice(0,or)}function Co(e){vn()&&window.localStorage.setItem(mn,JSON.stringify(e.slice(0,or)))}class Do{constructor(){Re(this,"state",this.createState(ye.getState()));Re(this,"listeners",new Set);Re(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Re(this,"getState",()=>this.state);ye.subscribe(()=>{const t=this.createState(ye.getState());t.baseUrl===this.state.baseUrl&&t.options.length===this.state.options.length&&t.options.every((r,n)=>r===this.state.options[n])&&t.presetOptions.length===this.state.presetOptions.length&&t.presetOptions.every((r,n)=>{const a=this.state.presetOptions[n];return(a==null?void 0:a.value)===r.value&&(a==null?void 0:a.source)===r.source})||(this.state=t,this.emit())})}setBaseUrl(t){const r=ye.getState(),n=Dt(r);if(!n)return!1;const a=$r(t),i=a!==n.baseUrl,o=jo(a,n);if(Kr(n))return ye.updateRuntime({discoveredHosts:r.discoveredHosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l)}),this.state=this.createState(ye.getState()),this.emit(),i;const c=r.hosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l);return this.state=this.createState({...r,hosts:c}),this.emit(),ye.update({hosts:c}),i}reset(){this.state=this.createState(ye.getState()),this.emit()}createState(t){const r=Dt(t),n=(r==null?void 0:r.baseUrl)??"",a=To(t),i=Po(n,a.map(o=>o.value));return Co(i),{baseUrl:n,options:i,presetOptions:a}}emit(){for(const t of this.listeners)t()}}const Xt=new Do;function Lo(e){return f.useSyncExternalStore(Xt.subscribe,()=>e(Xt.getState()))}function as(e,t){return t.includes(e)?e:gn}function is(){return gn}function jo(e,t){const r=Bn(e);if(!r)return null;const n=t==null?void 0:t.relayTunnel,a=(n==null?void 0:n.provider)==="codingns_relay"&&n.tunnelDomain===r.tunnelDomain&&n.controlBaseUrl===r.controlBaseUrl,i=((n==null?void 0:n.candidateEndpoints)??[]).filter(o=>o.kind!=="relay");return{provider:"codingns_relay",enabled:!0,tunnelDomain:r.tunnelDomain,controlBaseUrl:r.controlBaseUrl,bindingId:a?(n==null?void 0:n.bindingId)??null:null,hostFingerprint:a?(n==null?void 0:n.hostFingerprint)??null:null,candidateEndpoints:[{endpointId:`relay-entry:${r.relayBaseUrl}`,kind:"relay",url:r.relayBaseUrl,priority:0,expiresAt:null,source:"user_saved"},...i]}}const No={login(e,t){return _t.login(e,t)},bootstrap(e,t,r){return _t.bootstrap(e,t,r)},refresh(){return _t.refresh()},logout(){_t.clear()}},Io=f.lazy(async()=>({default:(await W(()=>import("./ServerSettingsModal-C_DEisHs.js"),__vite__mapDeps([2,3,4,5,6,7]))).ServerSettingsModal})),Hr="width=device-width, initial-scale=1.0, viewport-fit=cover",Mo="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover";function Oo(){const e=f.useRef(null);return f.useEffect(()=>{const t=e.current;if(!t)return;const r=t.getContext("2d");if(!r)return;let n;const a=()=>{o(),c()};let i=[];const o=()=>{t.width=window.innerWidth,t.height=window.innerHeight},c=()=>{i=[];const d=Math.min(50,Math.floor(t.width*t.height/25e3));for(let m=0;m<d;m++)i.push({x:Math.random()*t.width,y:Math.random()*t.height,vx:(Math.random()-.5)*.5,vy:(Math.random()-.5)*.5,size:Math.random()*2+1,opacity:Math.random()*.5+.2})},l=()=>{r.clearRect(0,0,t.width,t.height),i.forEach((d,m)=>{d.x+=d.vx,d.y+=d.vy,d.x<0&&(d.x=t.width),d.x>t.width&&(d.x=0),d.y<0&&(d.y=t.height),d.y>t.height&&(d.y=0),r.beginPath(),r.arc(d.x,d.y,d.size,0,Math.PI*2),r.fillStyle=`rgba(10, 132, 255, ${d.opacity})`,r.fill(),i.slice(m+1).forEach(g=>{const w=d.x-g.x,b=d.y-g.y,P=Math.sqrt(w*w+b*b);P<150&&(r.beginPath(),r.moveTo(d.x,d.y),r.lineTo(g.x,g.y),r.strokeStyle=`rgba(10, 132, 255, ${.1*(1-P/150)})`,r.stroke())})}),n=requestAnimationFrame(l)};return o(),c(),l(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a),cancelAnimationFrame(n)}},[]),p.jsx("canvas",{ref:e,className:"particle-canvas"})}function Uo({text:e}){return p.jsx("span",{className:"glitch-text","data-text":e,children:e})}function ko({text:e}){const[t,r]=f.useState(""),[n,a]=f.useState(!0);return f.useEffect(()=>{let i=0,o=null;const c=setInterval(()=>{i<=e.length?(r(e.slice(0,i)),i++):(clearInterval(c),o=window.setTimeout(()=>a(!1),1e3))},50);return()=>{clearInterval(c),o!==null&&window.clearTimeout(o)}},[e]),p.jsxs("span",{className:"typewriter-text",children:[t,n&&p.jsx("span",{className:"typewriter-cursor",children:"_"})]})}function Ao(e){const t=e==null?void 0:e.captcha;if(typeof t!="object"||t===null)return null;const r=t.captchaId,n=t.imageDataUrl;return typeof r!="string"||typeof n!="string"?null:{captchaId:r,imageDataUrl:n}}function Fo(){const e=ar(),t=Wn(),[r]=Ui(),n=gt(),a=fo(),i=Xe(k=>$n(k)),o=Kn(n.platform),c=f.useMemo(()=>Yn(n),[n]),l=f.useMemo(()=>c?Gn(i):{credentials:null,legacyServerBaseUrl:null},[i,c]),d=l.credentials,m=l.legacyServerBaseUrl,[g,w]=f.useState(()=>(d==null?void 0:d.username)??"admin"),[b,P]=f.useState(()=>(d==null?void 0:d.password)??""),[E,D]=f.useState(null),[F,L]=f.useState(""),[Y,ee]=f.useState(()=>!!d),K=Lo(k=>k.baseUrl),[he,v]=f.useState(K),[N,V]=f.useState(null),[M,ne]=f.useState(!1),[J,oe]=f.useState(!1),[ae,se]=f.useState(null),[We,$e]=f.useState(!1),Z=Wt(k=>k.session),Pe=f.useMemo(()=>r.get("returnTo")??"/",[r]),{theme:Te}=no(),be=f.useRef(!1),ce=n.isNativeMobile,Ce=f.useMemo(()=>Te==="light"?"light":"dark",[Te]);f.useEffect(()=>{w((d==null?void 0:d.username)??"admin"),P((d==null?void 0:d.password)??""),D(null),L(""),ee(!!d)},[d]),f.useEffect(()=>{if(typeof document>"u")return;const k=document.querySelector('meta[name="viewport"]');if(!(k instanceof HTMLMetaElement))return;const de=k.getAttribute("content")??Hr;return ce?k.setAttribute("content",Mo):k.setAttribute("content",Hr),()=>{k.setAttribute("content",de)}},[ce]),f.useEffect(()=>{be.current||(be.current=!0,!(!c||!m||m===K)&&(Xt.setBaseUrl(m),v(m)))},[K,c,m]),f.useEffect(()=>{if(Z){e(Pe,{replace:!0});return}if(!he)return;let k=!1;const de=window.setTimeout(()=>{W(async()=>{const{probeHost:H}=await import("./index-_OCkVmfl.js").then(ge=>ge.ad);return{probeHost:H}},__vite__mapDeps([3,4])).then(({probeHost:H})=>H(he)).then(H=>{k||(H.demoMode&&($e(!0),Jn()&&V(t("auth.demoSessionExpired"))),H.reachable&&!H.initialized&&e("/bootstrap",{replace:!0}))}).catch(()=>{k||V(t("auth.authUnavailable"))})},0);return()=>{k=!0,window.clearTimeout(de)}},[Z,e,he,Pe,t]);async function Oe(k){k.preventDefault(),ne(!0),V(null),v(K),c&&!Y&&i&&Xn(i);try{const de=E?{username:g,password:b,captchaId:E.captchaId,captchaCode:F}:{username:g,password:b};await No.login(de,K),D(null),L("");const{userPreferenceStore:H}=await W(async()=>{const{userPreferenceStore:ge}=await import("./index-_OCkVmfl.js").then(yt=>yt.ac);return{userPreferenceStore:ge}},__vite__mapDeps([3,4]));await H.refreshForAuthenticatedUser(),c&&Y&&i&&qn({hostId:i,username:g,password:b}),e(Pe,{replace:!0})}catch(de){if(de instanceof Qn){if(de.errorCode==="BOOTSTRAP_REQUIRED"){e("/bootstrap",{replace:!0});return}const H=Ao(de.data);H?(D(H),L("")):de.errorCode==="INVALID_CREDENTIALS"&&(D(null),L("")),V(de.message)}else V(t("auth.authUnavailable"))}finally{ne(!1)}}function ue(k){w(k),d!=null&&d.username&&k.trim()!==d.username&&(P(""),ee(!1)),E&&(D(null),L(""))}function xe(k){v(k),V(null)}const me="login-username",Ue="login-password",vt="login-captcha";return p.jsxs("main",{className:"cyber-login-page","data-theme":Ce,"data-native-mobile":ce?"true":"false",children:[p.jsxs("div",{className:"cyber-bg",children:[p.jsx("div",{className:"cyber-grid"}),p.jsx("div",{className:"cyber-glow cyber-glow-1"}),p.jsx("div",{className:"cyber-glow cyber-glow-2"}),p.jsx(Oo,{})]}),p.jsx("div",{className:"scanlines"}),p.jsxs("div",{className:"cyber-login-container",children:[p.jsx("div",{className:"cyber-login-toolbar",children:p.jsx(na,{variant:"compact"})}),p.jsxs("div",{className:"cyber-login-content",children:[p.jsxs("div",{className:"cyber-brand",children:[p.jsx("div",{className:"cyber-logo",children:p.jsx("img",{src:"/logo.png",alt:"CodingNS",className:"cyber-logo-svg"})}),p.jsx("h1",{className:"cyber-brand-title",children:p.jsx(Uo,{text:"CodingNS"})}),p.jsx("p",{className:"cyber-brand-subtitle",children:p.jsx(ko,{text:t("auth.loginSubtitle")})})]}),p.jsxs("div",{className:"cyber-card",children:[p.jsx("div",{className:"cyber-corner corner-tl"}),p.jsx("div",{className:"cyber-corner corner-tr"}),p.jsx("div",{className:"cyber-corner corner-bl"}),p.jsx("div",{className:"cyber-corner corner-br"}),p.jsxs("div",{className:"cyber-card-header",children:[p.jsx("div",{className:"cyber-line"}),p.jsx("span",{className:"cyber-card-label",children:t("auth.loginTitle").toUpperCase()}),p.jsx("div",{className:"cyber-line"})]}),We?p.jsxs("div",{className:"cyber-demo-banner",children:[p.jsx("span",{className:"cyber-demo-icon",children:"⚠"}),p.jsx("span",{children:t("auth.demoBanner")})]}):null,p.jsxs("form",{className:"cyber-form",onSubmit:Oe,children:[p.jsxs("div",{className:`cyber-field ${ae==="username"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:me,children:[p.jsx("span",{className:"cyber-field-icon",children:"❯"}),t("auth.username")]}),p.jsx("input",{id:me,"aria-label":t("auth.username"),className:"cyber-input",value:g,onChange:k=>ue(k.target.value),onFocus:()=>se("username"),onBlur:()=>se(null),autoComplete:"username"})]}),p.jsxs("div",{className:`cyber-field ${ae==="password"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:Ue,children:[p.jsx("span",{className:"cyber-field-icon",children:"⚷"}),t("auth.password")]}),p.jsx("input",{id:Ue,"aria-label":t("auth.password"),className:"cyber-input",type:"password",value:b,onChange:k=>P(k.target.value),onFocus:()=>se("password"),onBlur:()=>se(null),autoComplete:"current-password"})]}),E?p.jsxs("div",{className:"cyber-captcha-panel",children:[p.jsx("img",{alt:t("auth.captchaImageAlt"),className:"cyber-captcha-image",draggable:!1,src:E.imageDataUrl}),p.jsx("p",{className:"cyber-captcha-hint",children:t("auth.captchaHint")}),p.jsxs("div",{className:`cyber-field ${ae==="captcha"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:vt,children:[p.jsx("span",{className:"cyber-field-icon",children:"#"}),t("auth.captcha")]}),p.jsx("input",{id:vt,"aria-label":t("auth.captcha"),className:"cyber-input",placeholder:t("auth.captchaPlaceholder"),value:F,onChange:k=>L(k.target.value),onFocus:()=>se("captcha"),onBlur:()=>se(null),autoComplete:"one-time-code"})]})]}):null,c?p.jsxs("label",{className:"cyber-remember-toggle",children:[p.jsx("input",{"aria-label":t("auth.rememberPassword"),type:"checkbox",checked:Y,onChange:k=>ee(k.target.checked)}),p.jsx("span",{children:t("auth.rememberPassword")})]}):null,N?p.jsxs("div",{className:"cyber-status","data-tone":"error",children:[p.jsx("span",{className:"cyber-status-icon",children:"⚠"}),p.jsx("span",{children:N})]}):null,p.jsxs("button",{className:`cyber-submit ${M?"loading":""}`,type:"submit",disabled:M,children:[p.jsx("span",{className:"cyber-submit-glow"}),p.jsx("span",{className:"cyber-submit-border"}),p.jsx("span",{className:"cyber-submit-text",children:M?p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-spinner"}),t("common.loading")]}):p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-submit-icon",children:"➤"}),t("auth.submitLogin")]})})]})]}),o?p.jsxs("div",{className:"cyber-footer",children:[p.jsxs("div",{className:"cyber-divider",children:[p.jsx("span",{className:"cyber-divider-line"}),p.jsx("span",{className:"cyber-divider-text",children:"//"}),p.jsx("span",{className:"cyber-divider-line"})]}),p.jsxs("button",{className:"cyber-server-btn",onClick:()=>oe(!0),type:"button",children:[p.jsx("span",{className:"cyber-server-icon",children:"⚙"}),p.jsx("span",{className:"cyber-server-text",children:t("auth.serverSettings")}),p.jsx("span",{className:"cyber-server-current",children:K})]})]}):null]})]}),p.jsxs("div",{className:"cyber-version",children:[p.jsxs("span",{className:"cyber-version-text",children:["v",a]}),p.jsx("span",{className:"cyber-version-divider",children:"|"}),p.jsx("span",{className:"cyber-version-text",children:"SYSTEM READY"})]})]}),o&&J?p.jsx(f.Suspense,{fallback:null,children:p.jsx(Io,{isOpen:J,onClose:()=>oe(!1),onSave:xe})}):null]})}function bn(){return p.jsx("main",{className:"page-center app-shell",children:p.jsxs("section",{className:"auth-card surface-card",children:[p.jsx("h1",{children:we("auth.trustedEntryOnlyTitle")}),p.jsx("p",{className:"status-text",children:we("auth.trustedEntryOnlyDescription")}),p.jsxs("div",{className:"field-group",children:[p.jsx("span",{children:we("auth.trustedEntryOnlyHintTitle")}),p.jsx("span",{className:"auth-server-value",children:we("auth.trustedEntryOnlyHint")})]})]})})}function Vo({isDesktop:e,viewportClass:t}){return e||t==="expanded"?"desktop":"mobile"}function zo(){return!1}function xn(e,t,r=zo()){var i,o;if(!r||t!=="web")return!1;const n=Dt(e),a=n==null?void 0:n.relayTunnel;return!(a!=null&&a.enabled&&((i=a.tunnelDomain)!=null&&i.trim())&&((o=a.controlBaseUrl)!=null&&o.trim()))}function Bo({runtimeKey:e,children:t}){return p.jsx("div",{children:t},e)}function Ho(){const e=Zn();return p.jsx(Bo,{runtimeKey:e,children:p.jsx(wi,{})})}function Wo(){const e=Xe(i=>i),t=gt(),r=Wt(i=>i.session),n=Wt(i=>i.sessionReady),a=mt();if(xn(e,t.platform))return p.jsx(bn,{});if(!r){const i=`${a.pathname}${a.search}`;return p.jsx(ir,{to:`/login?returnTo=${encodeURIComponent(i)}`,replace:!0})}return n?p.jsx(Ho,{}):p.jsx("div",{children:we("common.loading")})}function $o(){const e=Xe(r=>r),t=gt();return xn(e,t.platform)?p.jsx(bn,{}):p.jsx(Fo,{})}function Wr(){const e=gt(),t=Vo(e);return p.jsx(ir,{to:t==="mobile"?"/workspaces":"/landing",replace:!0})}function X(e,t){return async()=>({Component:(await e())[t]})}const Ko=[{path:"/bootstrap",lazy:X(()=>W(()=>import("./BootstrapPage-DcfYtoLC.js"),__vite__mapDeps([8,3,4])),"BootstrapPage")},{path:"/login",element:p.jsx($o,{})},{path:"/connect/:tunnelDomain",lazy:X(()=>W(()=>import("./RelayConnectEntryPage-4Yyo2p8b.js"),__vite__mapDeps([9,3,4,5])),"RelayConnectEntryPage")},{path:"/desktop-window-preview",lazy:X(()=>W(()=>import("./DesktopDetachPreviewPage-CXUPMcBz.js"),__vite__mapDeps([10,3,4])),"DesktopDetachPreviewPage")},{path:"/",element:p.jsx(Wo,{}),children:[{path:"desktop-window/:windowId",lazy:X(()=>W(()=>import("./DesktopWindowPage-D1xwgS-7.js"),__vite__mapDeps([11,3,4,12,13,0,1,7,6,5,14,15,16,17,18,19,20,21,22,23,24])),"DesktopWindowPage")},{lazy:X(()=>W(()=>import("./WorkbenchShellRoute-DyWSCHz_.js"),__vite__mapDeps([25,3,4,12,13,0,1,7,6,5,14,15,26])),"WorkbenchShellRoute"),children:[{index:!0,element:p.jsx(Wr,{})},{path:"landing",lazy:X(()=>W(()=>import("./WorkbenchLandingPage-BlkxdOLC.js"),__vite__mapDeps([27,3,4,12,13,0,1,7,6,5,14,15])),"WorkbenchLandingPage")},{path:"affairs",lazy:X(()=>W(()=>import("./ConversationPage-Bfb7GLTM.js"),__vite__mapDeps([28,3,4,7,13,12,0,1,6,5,14,15,16,17,18,19,20,21,22,23,24,29,30])),"ConversationPage")},{path:"workspaces",lazy:X(()=>W(()=>import("./WorkspaceHomePage-tmCafatd.js"),__vite__mapDeps([31,3,4,12,13,0,1,7,6,5,14,15,32,22,23,33])),"WorkspaceHomePage")},{path:"workspaces/:workspaceId",lazy:X(()=>W(()=>import("./WorkspaceDetailPage-DMakfmHR.js"),__vite__mapDeps([34,3,4,12,13,0,1,7,6,5,14,15,35,19,22,23,33])),"WorkspaceDetailPage")},{path:"workspaces/:workspaceId/debug",lazy:X(()=>W(()=>import("./WorkspaceDebugDetailPage-B4ol2_a5.js"),__vite__mapDeps([36,3,4,35,12,13,0,1,7,6,5,14,15,19])),"WorkspaceDebugDetailPage")},{path:"workspaces/:workspaceId/affairs",element:p.jsx(ir,{to:"/affairs",replace:!0})},{path:"workspaces/:workspaceId/sessions",lazy:X(()=>W(()=>import("./SessionIndexPage-DyMikN_x.js"),__vite__mapDeps([37,3,4,12,13,0,1,7,6,5,14,15,22,23,33,29,30])),"SessionIndexPage")},{path:"workspaces/:workspaceId/sessions/:sessionId",lazy:X(()=>W(()=>import("./ConversationPage-Bfb7GLTM.js"),__vite__mapDeps([28,3,4,7,13,12,0,1,6,5,14,15,16,17,18,19,20,21,22,23,24,29,30])),"ConversationPage")},{path:"workspaces/:workspaceId/tools",lazy:X(()=>W(()=>import("./ToolsHomePage-BJSDLR6T.js"),__vite__mapDeps([38,3,4,12,13,0,1,7,6,5,14,15])),"ToolsHomePage")},{path:"workspaces/:workspaceId/tools/files",lazy:X(()=>W(()=>import("./ToolFilesPage-DrYHk0N-.js"),__vite__mapDeps([39,3,4,12,13,0,1,7,6,5,14,15])),"ToolFilesPage")},{path:"workspaces/:workspaceId/tools/git",lazy:X(()=>W(()=>import("./ToolGitPage-Dz1q-Ns_.js"),__vite__mapDeps([40,3,4,12,13,0,1,7,6,5,14,15])),"ToolGitPage")},{path:"workspaces/:workspaceId/tools/processes",lazy:X(()=>W(()=>import("./ToolProcessesPage-CRhphOmM.js"),__vite__mapDeps([41,3,4,12,13,0,1,7,6,5,14,15])),"ToolProcessesPage")},{path:"workspaces/:workspaceId/terminals",lazy:X(()=>W(()=>import("./TerminalPage-Pvx396YX.js"),__vite__mapDeps([21,3,4,14,12,13,0,1,7,6,5,15,22,23,19,20,24])),"TerminalPage")},{path:"workspaces/:workspaceId/plugins",lazy:X(()=>W(()=>import("./PluginsListPage-DAAwSc6W.js"),__vite__mapDeps([42,3,4,13,43])),"PluginsListPage")},{path:"workspaces/:workspaceId/plugins/:pluginId",lazy:X(()=>W(()=>import("./PluginDetailPage-BK1yTzvO.js"),__vite__mapDeps([44,3,4,13,43,45,46])),"PluginDetailPage")},{path:"workspaces/:workspaceId/plugins/:pluginId/run",lazy:X(()=>W(()=>import("./PluginContainerPage-DdSwOCw-.js"),__vite__mapDeps([47,3,4,13,43,7,14,46])),"PluginContainerPage")},{path:"workspaces/:workspaceId/butler",lazy:X(()=>W(()=>import("./AdaptiveButlerPage-khJQh6a_.js"),__vite__mapDeps([48,3,4,12,13,0,1,7,6,5,14,15,32,22,23])),"AdaptiveButlerPage")},{path:"settings",lazy:X(()=>W(()=>import("./SettingsPage-CDAVsPr3.js"),__vite__mapDeps([49,3,4,12,13,0,1,7,6,5,14,15,43,45,46,23])),"SettingsPage")},{path:"settings/:section",lazy:X(()=>W(()=>import("./SettingsPage-CDAVsPr3.js"),__vite__mapDeps([49,3,4,12,13,0,1,7,6,5,14,15,43,45,46,23])),"SettingsPage")},{path:"*",element:p.jsx(Wr,{})}]}]}];function Yo(){return Ri(Ko)}function Go(){const e=qe(r=>r.profile.language),t=f.useMemo(()=>Yo(),[]);return p.jsx(Qi,{children:p.jsx(uo,{children:p.jsx(ea,{language:e,children:p.jsx(io,{children:p.jsxs(co,{children:[p.jsx(So,{}),p.jsx(Ii,{router:t})]})})})})})}const os=Object.freeze(Object.defineProperty({__proto__:null,App:Go},Symbol.toStringTag,{value:"Module"}));export{os as A,na as L,ir as N,wi as O,Qi as P,io as T,Lo as a,No as b,qo as c,Ui as d,gt as e,es as f,Yr as g,mt as h,Ai as i,po as j,bo as k,ts as l,rs as m,ns as n,fo as o,no as p,Qo as q,Vo as r,Zo as s,Er as t,ar as u,ht as v,nr as w,as as x,is as y,Xt as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,j as s,t as e,A as v}from"./index-
|
|
1
|
+
import{b as t,j as s,t as e,A as v}from"./index-_OCkVmfl.js";import{u as S,a as w,b as N}from"./App-If9gThKM.js";function T(){const h=S(),m=w(a=>a.baseUrl),[l,x]=t.useState("admin"),[n,f]=t.useState(""),[u,j]=t.useState(""),[i,r]=t.useState(null),[b,o]=t.useState("error"),[c,d]=t.useState(!1);async function g(a){if(a.preventDefault(),n!==u){o("error"),r(e("auth.bootstrapMismatch"));return}d(!0),r(null);try{await N.bootstrap(l,n),o("success"),r(e("auth.bootstrapSuccess")),window.setTimeout(()=>h("/login",{replace:!0}),500)}catch(p){o("error"),p instanceof v?r(p.message):r(e("auth.authUnavailable"))}finally{d(!1)}}return s.jsx("main",{className:"page-center app-shell",children:s.jsxs("section",{className:"auth-card surface-card",children:[s.jsx("h1",{children:e("auth.bootstrapTitle")}),s.jsx("p",{className:"status-text",children:e("auth.bootstrapSubtitle")}),s.jsxs("div",{className:"field-group",children:[s.jsx("span",{children:e("auth.serverCurrent")}),s.jsx("span",{className:"auth-server-value",children:m})]}),s.jsxs("form",{className:"auth-form",onSubmit:g,children:[s.jsxs("label",{className:"field-group",children:[s.jsx("span",{children:e("auth.username")}),s.jsx("input",{value:l,onChange:a=>x(a.target.value)})]}),s.jsxs("label",{className:"field-group",children:[s.jsx("span",{children:e("auth.password")}),s.jsx("input",{type:"password",value:n,onChange:a=>f(a.target.value)})]}),s.jsxs("label",{className:"field-group",children:[s.jsx("span",{children:e("auth.confirmPassword")}),s.jsx("input",{type:"password",value:u,onChange:a=>j(a.target.value)})]}),i?s.jsx("p",{className:"status-text","data-tone":b,children:i}):null,s.jsx("button",{className:"primary-button",type:"submit",disabled:c,children:c?e("common.loading"):e("auth.submitBootstrap")})]})]})})}export{T as BootstrapPage};
|