@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.
Files changed (180) hide show
  1. package/bin/codingns.mjs +75 -0
  2. package/dist/public/assets/{AdaptiveButlerPage-kkJDsnCO.js → AdaptiveButlerPage-khJQh6a_.js} +1 -1
  3. package/dist/public/assets/{App-DrNI9lWA.js → App-If9gThKM.js} +6 -6
  4. package/dist/public/assets/{BootstrapPage-QgVH5Mps.js → BootstrapPage-DcfYtoLC.js} +1 -1
  5. package/dist/public/assets/{ConversationPage-DVk8VfIj.js → ConversationPage-Bfb7GLTM.js} +1 -1
  6. package/dist/public/assets/{DesktopDetachPreviewPage-BhfP0TpH.js → DesktopDetachPreviewPage-CXUPMcBz.js} +1 -1
  7. package/dist/public/assets/{DesktopModal-DRmDrv0S.js → DesktopModal-bMdI1jEe.js} +1 -1
  8. package/dist/public/assets/{DesktopWindowPage-DNbJXnSs.js → DesktopWindowPage-D1xwgS-7.js} +1 -1
  9. package/dist/public/assets/{FileContextPanel---fLO4ve.js → FileContextPanel-C4syif3B.js} +1 -1
  10. package/dist/public/assets/{GitSidebar-sXUE0TqT.js → GitSidebar-DduL9aTV.js} +1 -1
  11. package/dist/public/assets/{MobileCreateSessionSheet-BftZ5pvb.js → MobileCreateSessionSheet-DWPBsEx8.js} +1 -1
  12. package/dist/public/assets/{MobileSheet-nw5SCa3N.js → MobileSheet-BXvQPkxt.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-DH_D02Wy.js → MobileTopHeaderFrame-vdYOyaaB.js} +1 -1
  14. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-2K406G5p.js → MobileWorkspaceSwitcherHeader-DT330cAx.js} +1 -1
  15. package/dist/public/assets/{PluginAccessOverview-BVJihw3D.js → PluginAccessOverview-C77TeZTK.js} +1 -1
  16. package/dist/public/assets/{PluginContainerPage-CR4vStvr.js → PluginContainerPage-DdSwOCw-.js} +1 -1
  17. package/dist/public/assets/{PluginDetailPage-CrMX0Mnm.js → PluginDetailPage-BK1yTzvO.js} +1 -1
  18. package/dist/public/assets/{PluginsListPage-FtIL71Yg.js → PluginsListPage-DAAwSc6W.js} +1 -1
  19. package/dist/public/assets/{RelayConnectEntryPage-Bt1apX53.js → RelayConnectEntryPage-4Yyo2p8b.js} +1 -1
  20. package/dist/public/assets/{ServerSettingsModal-D-guzPrI.js → ServerSettingsModal-C_DEisHs.js} +1 -1
  21. package/dist/public/assets/{SessionIndexPage-CX2FppcJ.js → SessionIndexPage-DyMikN_x.js} +1 -1
  22. package/dist/public/assets/SettingsPage-CDAVsPr3.js +2 -0
  23. package/dist/public/assets/{TerminalManagerPanel-B5MKGPy-.js → TerminalManagerPanel-4OR47vcf.js} +1 -1
  24. package/dist/public/assets/{TerminalPage-C2dTNGHK.js → TerminalPage-Pvx396YX.js} +1 -1
  25. package/dist/public/assets/{TerminalRuntimeFallbackModal-DAqOxFD8.js → TerminalRuntimeFallbackModal-KvG6k4AQ.js} +1 -1
  26. package/dist/public/assets/{ToolFilesPage-IsNwyE6T.js → ToolFilesPage-DrYHk0N-.js} +1 -1
  27. package/dist/public/assets/{ToolGitPage-BK1JBERN.js → ToolGitPage-Dz1q-Ns_.js} +1 -1
  28. package/dist/public/assets/{ToolProcessesPage-DwTYUQCK.js → ToolProcessesPage-CRhphOmM.js} +1 -1
  29. package/dist/public/assets/{ToolsHomePage-BLOy7lPg.js → ToolsHomePage-BJSDLR6T.js} +1 -1
  30. package/dist/public/assets/{WorkbenchLandingPage-CqZKR6EA.js → WorkbenchLandingPage-BlkxdOLC.js} +1 -1
  31. package/dist/public/assets/WorkbenchLayout-D-U7ghT0.js +1022 -0
  32. package/dist/public/assets/{WorkbenchModal-BM-OeW-b.js → WorkbenchModal-xbx1o6MO.js} +1 -1
  33. package/dist/public/assets/WorkbenchShellRoute-DyWSCHz_.js +1 -0
  34. package/dist/public/assets/WorkbenchShellRoute-htbkGbtW.css +1 -0
  35. package/dist/public/assets/{WorkspaceDebugDetailPage-BMsEN5iG.js → WorkspaceDebugDetailPage-B4ol2_a5.js} +1 -1
  36. package/dist/public/assets/{WorkspaceDetailPage-5H9Gosx2.js → WorkspaceDetailPage-DMakfmHR.js} +1 -1
  37. package/dist/public/assets/{WorkspaceHomePage-DQiXKgiP.js → WorkspaceHomePage-tmCafatd.js} +1 -1
  38. package/dist/public/assets/{client-runtime-manager-CgPJq21V.js → client-runtime-manager-Bwau7p1v.js} +1 -1
  39. package/dist/public/assets/index-DmUJ8tIw.css +1 -0
  40. package/dist/public/assets/index-_OCkVmfl.js +50 -0
  41. package/dist/public/assets/{login-direct-candidate-resolver-CGaxAXV8.js → login-direct-candidate-resolver-CKUQ07IA.js} +1 -1
  42. package/dist/public/assets/{plugin-permission-copy-BR9gWy8b.js → plugin-permission-copy-DIVk5jNp.js} +1 -1
  43. package/dist/public/assets/{plugins-api-CdCsrG2e.js → plugins-api-DHJVvPZw.js} +1 -1
  44. package/dist/public/assets/{preferences-service-lOhnlxzP.js → preferences-service-CyxxeBmS.js} +1 -1
  45. package/dist/public/assets/{relay-entry-CQpxTS8y.js → relay-entry-B5GmiOrR.js} +1 -1
  46. package/dist/public/assets/{terminal-runtime-meta-oteTx66X.js → terminal-runtime-meta-DBsyT35T.js} +1 -1
  47. package/dist/public/assets/{useRegisteredDebugTemplates-Bu2ykZ6s.js → useRegisteredDebugTemplates-wCGD2SLW.js} +1 -1
  48. package/dist/public/assets/{workbench-navigation-DlgXuFW2.js → workbench-navigation-RyUjchbD.js} +1 -1
  49. package/dist/public/index.html +2 -2
  50. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +1 -0
  51. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +31 -0
  52. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -1
  53. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +1 -0
  54. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +1 -0
  55. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -1
  56. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +4 -1
  57. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -1
  58. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +140 -16
  59. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -1
  60. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +1 -1
  61. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +8 -7
  62. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  63. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +14 -13
  64. package/dist/server/modules/assistant-capability/assistant-capability-service.js +27 -24
  65. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  66. package/dist/server/modules/auth/auth-controller.d.ts +27 -1
  67. package/dist/server/modules/auth/auth-controller.js +20 -0
  68. package/dist/server/modules/auth/auth-controller.js.map +1 -1
  69. package/dist/server/modules/auth/auth-service.d.ts +32 -1
  70. package/dist/server/modules/auth/auth-service.js +217 -2
  71. package/dist/server/modules/auth/auth-service.js.map +1 -1
  72. package/dist/server/modules/bootstrap/bootstrap-service.js +1 -0
  73. package/dist/server/modules/bootstrap/bootstrap-service.js.map +1 -1
  74. package/dist/server/modules/butler/assistant-automation-service.d.ts +1 -1
  75. package/dist/server/modules/butler/assistant-automation-service.js +9 -10
  76. package/dist/server/modules/butler/assistant-automation-service.js.map +1 -1
  77. package/dist/server/modules/butler/butler-action-context-service.js +2 -2
  78. package/dist/server/modules/butler/butler-action-context-service.js.map +1 -1
  79. package/dist/server/modules/butler/butler-control-action-service.d.ts +5 -5
  80. package/dist/server/modules/butler/butler-control-action-service.js +19 -19
  81. package/dist/server/modules/butler/butler-control-action-service.js.map +1 -1
  82. package/dist/server/modules/butler/butler-control-session-service.d.ts +1 -1
  83. package/dist/server/modules/butler/butler-control-session-service.js +27 -26
  84. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  85. package/dist/server/modules/butler/butler-control-timer-service.js +4 -5
  86. package/dist/server/modules/butler/butler-control-timer-service.js.map +1 -1
  87. package/dist/server/modules/butler/butler-controller.d.ts +2 -2
  88. package/dist/server/modules/butler/butler-controller.js +19 -17
  89. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  90. package/dist/server/modules/butler/butler-profile-service.d.ts +5 -5
  91. package/dist/server/modules/butler/butler-profile-service.js +17 -16
  92. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  93. package/dist/server/modules/butler/butler-project-service.d.ts +7 -6
  94. package/dist/server/modules/butler/butler-project-service.js +35 -21
  95. package/dist/server/modules/butler/butler-project-service.js.map +1 -1
  96. package/dist/server/modules/butler/butler-session-service.d.ts +2 -2
  97. package/dist/server/modules/butler/butler-session-service.js +33 -27
  98. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  99. package/dist/server/modules/butler/butler-session-summary-service.d.ts +2 -2
  100. package/dist/server/modules/butler/butler-session-summary-service.js +23 -9
  101. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  102. package/dist/server/modules/butler/context-aggregator.js +9 -9
  103. package/dist/server/modules/butler/context-aggregator.js.map +1 -1
  104. package/dist/server/modules/butler/patrol-execution-service.d.ts +0 -1
  105. package/dist/server/modules/butler/patrol-execution-service.js +6 -12
  106. package/dist/server/modules/butler/patrol-execution-service.js.map +1 -1
  107. package/dist/server/modules/sessions/session-controller.js +3 -3
  108. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  109. package/dist/server/modules/sessions/session-history-service.d.ts +8 -3
  110. package/dist/server/modules/sessions/session-history-service.js +126 -11
  111. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  112. package/dist/server/modules/sessions/session-live-runtime-service.js +25 -15
  113. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  114. package/dist/server/modules/sessions/session-permission-request-service.js +28 -15
  115. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  116. package/dist/server/modules/workbench/workbench-service.js +9 -9
  117. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  118. package/dist/server/modules/workspace/affairs-library-service.d.ts +3 -1
  119. package/dist/server/modules/workspace/affairs-library-service.js +112 -54
  120. package/dist/server/modules/workspace/affairs-library-service.js.map +1 -1
  121. package/dist/server/modules/workspace/affairs-tag-service.d.ts +12 -0
  122. package/dist/server/modules/workspace/affairs-tag-service.js +527 -2
  123. package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -1
  124. package/dist/server/modules/workspace/workspace-controller.d.ts +1 -1
  125. package/dist/server/modules/workspace/workspace-controller.js +7 -7
  126. package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
  127. package/dist/server/modules/workspace/workspace-service.d.ts +7 -0
  128. package/dist/server/modules/workspace/workspace-service.js +151 -10
  129. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  130. package/dist/server/routes/auth.js +6 -0
  131. package/dist/server/routes/auth.js.map +1 -1
  132. package/dist/server/server/create-server.d.ts +4 -0
  133. package/dist/server/server/create-server.js +26 -0
  134. package/dist/server/server/create-server.js.map +1 -1
  135. package/dist/server/server/start-host.js +20 -0
  136. package/dist/server/server/start-host.js.map +1 -1
  137. package/dist/server/shared/http/request-diagnostics.d.ts +56 -0
  138. package/dist/server/shared/http/request-diagnostics.js +256 -0
  139. package/dist/server/shared/http/request-diagnostics.js.map +1 -0
  140. package/dist/server/storage/repositories/auth-token-repository.d.ts +1 -0
  141. package/dist/server/storage/repositories/auth-token-repository.js +8 -0
  142. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  143. package/dist/server/storage/repositories/auth-user-repository.d.ts +50 -0
  144. package/dist/server/storage/repositories/auth-user-repository.js +198 -27
  145. package/dist/server/storage/repositories/auth-user-repository.js.map +1 -1
  146. package/dist/server/storage/repositories/butler-control-session-repository.d.ts +4 -1
  147. package/dist/server/storage/repositories/butler-control-session-repository.js +55 -8
  148. package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
  149. package/dist/server/storage/repositories/butler-profile-repository.d.ts +2 -1
  150. package/dist/server/storage/repositories/butler-profile-repository.js +35 -6
  151. package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
  152. package/dist/server/storage/repositories/butler-project-repository.d.ts +2 -0
  153. package/dist/server/storage/repositories/butler-project-repository.js +38 -4
  154. package/dist/server/storage/repositories/butler-project-repository.js.map +1 -1
  155. package/dist/server/storage/repositories/butler-session-repository.d.ts +2 -1
  156. package/dist/server/storage/repositories/butler-session-repository.js +35 -6
  157. package/dist/server/storage/repositories/butler-session-repository.js.map +1 -1
  158. package/dist/server/storage/repositories/session-binding-repository.d.ts +3 -0
  159. package/dist/server/storage/repositories/session-binding-repository.js +70 -2
  160. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  161. package/dist/server/storage/repositories/session-index-repository.js +7 -5
  162. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  163. package/dist/server/storage/repositories/workspace-repository.d.ts +3 -1
  164. package/dist/server/storage/repositories/workspace-repository.js +24 -10
  165. package/dist/server/storage/repositories/workspace-repository.js.map +1 -1
  166. package/dist/server/storage/sqlite/client.js +288 -0
  167. package/dist/server/storage/sqlite/client.js.map +1 -1
  168. package/dist/server/storage/sqlite/schema.sql +33 -9
  169. package/dist/server/types/domain.d.ts +8 -1
  170. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +34 -7
  171. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -1
  172. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +3 -7
  173. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
  174. package/package.json +1 -1
  175. package/dist/public/assets/SettingsPage-BI2Olcvr.js +0 -2
  176. package/dist/public/assets/WorkbenchLayout-CJHQtwuL.js +0 -1022
  177. package/dist/public/assets/WorkbenchShellRoute-2bKI6Q9k.js +0 -1
  178. package/dist/public/assets/WorkbenchShellRoute-BjuZD101.css +0 -1
  179. package/dist/public/assets/index-BARqMVSw.css +0 -1
  180. 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-D-guzPrI.js","assets/index-BUoNjVrY.js","assets/index-BARqMVSw.css","assets/relay-entry-CQpxTS8y.js","assets/WorkbenchModal-BM-OeW-b.js","assets/DesktopModal-DRmDrv0S.js","assets/BootstrapPage-QgVH5Mps.js","assets/RelayConnectEntryPage-Bt1apX53.js","assets/DesktopDetachPreviewPage-BhfP0TpH.js","assets/DesktopWindowPage-DNbJXnSs.js","assets/WorkbenchLayout-CJHQtwuL.js","assets/workbench-navigation-DlgXuFW2.js","assets/MobileSheet-nw5SCa3N.js","assets/WorkbenchLayout-BksVkkFF.css","assets/FileContextPanel---fLO4ve.js","assets/GitSidebar-sXUE0TqT.js","assets/TerminalManagerPanel-B5MKGPy-.js","assets/terminal-runtime-meta-oteTx66X.js","assets/TerminalRuntimeFallbackModal-DAqOxFD8.js","assets/TerminalPage-C2dTNGHK.js","assets/MobileWorkspaceSwitcherHeader-2K406G5p.js","assets/MobileTopHeaderFrame-DH_D02Wy.js","assets/TerminalPage-6GBZ9nXN.css","assets/WorkbenchShellRoute-2bKI6Q9k.js","assets/WorkbenchShellRoute-BjuZD101.css","assets/WorkbenchLandingPage-CqZKR6EA.js","assets/ConversationPage-DVk8VfIj.js","assets/styles-JKFlsYFv.js","assets/styles-DkbkRgWw.css","assets/WorkspaceHomePage-DQiXKgiP.js","assets/butler-records-events-DgWCG364.js","assets/MobileCreateSessionSheet-BftZ5pvb.js","assets/WorkspaceDetailPage-5H9Gosx2.js","assets/useRegisteredDebugTemplates-Bu2ykZ6s.js","assets/WorkspaceDebugDetailPage-BMsEN5iG.js","assets/SessionIndexPage-CX2FppcJ.js","assets/ToolsHomePage-BLOy7lPg.js","assets/ToolFilesPage-IsNwyE6T.js","assets/ToolGitPage-BK1JBERN.js","assets/ToolProcessesPage-DwTYUQCK.js","assets/PluginsListPage-FtIL71Yg.js","assets/plugins-api-CdCsrG2e.js","assets/PluginDetailPage-CrMX0Mnm.js","assets/PluginAccessOverview-BVJihw3D.js","assets/plugin-permission-copy-BR9gWy8b.js","assets/PluginContainerPage-CR4vStvr.js","assets/AdaptiveButlerPage-kkJDsnCO.js","assets/SettingsPage-BI2Olcvr.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-BUoNjVrY.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]);/**
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 A=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:A,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:A,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=te.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}/**
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-BUoNjVrY.js";import{u as S,a as w,b as N}from"./App-DrNI9lWA.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};
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};