zenml-nightly 0.58.0.dev20240529__py3-none-any.whl → 0.58.1.dev20240608__py3-none-any.whl

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 (145) hide show
  1. CONTRIBUTING.md +1 -1
  2. README.md +3 -3
  3. RELEASE_NOTES.md +37 -1
  4. zenml/VERSION +1 -1
  5. zenml/artifacts/utils.py +19 -3
  6. zenml/cli/__init__.py +28 -22
  7. zenml/cli/base.py +17 -6
  8. zenml/cli/pipeline.py +18 -3
  9. zenml/cli/server.py +1 -1
  10. zenml/cli/stack.py +1 -1
  11. zenml/client.py +24 -4
  12. zenml/config/docker_settings.py +3 -0
  13. zenml/config/global_config.py +1 -1
  14. zenml/config/secret_reference_mixin.py +1 -1
  15. zenml/environment.py +1 -1
  16. zenml/integrations/huggingface/materializers/huggingface_tokenizer_materializer.py +11 -12
  17. zenml/integrations/kaniko/flavors/kaniko_image_builder_flavor.py +2 -44
  18. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +4 -1
  19. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +4 -16
  20. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +2 -1
  21. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +15 -15
  22. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +0 -38
  23. zenml/integrations/spark/flavors/spark_step_operator_flavor.py +1 -38
  24. zenml/materializers/base_materializer.py +3 -3
  25. zenml/materializers/cloudpickle_materializer.py +1 -1
  26. zenml/orchestrators/base_orchestrator.py +1 -1
  27. zenml/orchestrators/local_docker/local_docker_orchestrator.py +1 -37
  28. zenml/orchestrators/step_runner.py +2 -2
  29. zenml/stack/flavor.py +3 -1
  30. zenml/stack/stack.py +2 -2
  31. zenml/stack/stack_component.py +42 -2
  32. zenml/steps/base_step.py +1 -1
  33. zenml/steps/entrypoint_function_utils.py +2 -2
  34. zenml/steps/utils.py +1 -1
  35. zenml/utils/dashboard_utils.py +1 -1
  36. zenml/utils/pipeline_docker_image_builder.py +23 -3
  37. zenml/utils/source_utils.py +32 -7
  38. zenml/zen_server/auth.py +2 -2
  39. zenml/zen_server/dashboard/assets/{404-DIgYOHj5.js → 404-D5p6PIdn.js} +1 -1
  40. zenml/zen_server/dashboard/assets/{@radix-BrEjOMvl.js → @radix-C9DBgJhe.js} +9 -9
  41. zenml/zen_server/dashboard/assets/@react-router-DYovave8.js +29 -0
  42. zenml/zen_server/dashboard/assets/@reactflow-C26Olbza.css +1 -0
  43. zenml/zen_server/dashboard/assets/@reactflow-CegZ5GV3.js +17 -0
  44. zenml/zen_server/dashboard/assets/@tanstack-CEbkxrhX.js +30 -0
  45. zenml/zen_server/dashboard/assets/{AwarenessChannel-CqRB1HO9.js → AwarenessChannel-DDpU6zHx.js} +1 -1
  46. zenml/zen_server/dashboard/assets/{Cards-DuJ8uYGM.js → Cards-wfOUm_Ae.js} +1 -1
  47. zenml/zen_server/dashboard/assets/CodeSnippet-iinvcx17.js +9 -0
  48. zenml/zen_server/dashboard/assets/Commands-DGnWeAWF.js +1 -0
  49. zenml/zen_server/dashboard/assets/{CopyButton-BOFZCr5Z.js → CopyButton-eUfW9370.js} +2 -2
  50. zenml/zen_server/dashboard/assets/{CsvVizualization-D4QRvdDk.js → CsvVizualization-CoIkmrjr.js} +7 -7
  51. zenml/zen_server/dashboard/assets/{DisplayDate-BoCi3-Ng.js → DisplayDate-BdguISQF.js} +1 -1
  52. zenml/zen_server/dashboard/assets/{EmptyState-CPJglRv0.js → EmptyState-BkooiGtL.js} +1 -1
  53. zenml/zen_server/dashboard/assets/{Error-C9i5GdiH.js → Error-CDMUBgpN.js} +1 -1
  54. zenml/zen_server/dashboard/assets/{Helpbox-CnuWjxcc.js → Helpbox-BV73V0J6.js} +1 -1
  55. zenml/zen_server/dashboard/assets/Infobox-DG7zmtut.js +1 -0
  56. zenml/zen_server/dashboard/assets/{InlineAvatar-DE_1-SDN.js → InlineAvatar-BiKh3XC5.js} +1 -1
  57. zenml/zen_server/dashboard/assets/{MarkdownVisualization-CMOybYJS.js → MarkdownVisualization-DsB2QZiK.js} +1 -1
  58. zenml/zen_server/dashboard/assets/{PageHeader-D7r1Jb6H.js → PageHeader-D-u0obgg.js} +1 -1
  59. zenml/zen_server/dashboard/assets/{Pagination-0-Hv-4DJ.js → Pagination-ZYqHJ5gE.js} +1 -1
  60. zenml/zen_server/dashboard/assets/{PasswordChecker-C2ImqlTr.js → PasswordChecker-DSLBp7Vl.js} +1 -1
  61. zenml/zen_server/dashboard/assets/{SetPassword-074iDZCm.js → SetPassword-Dq6iUfpW.js} +1 -1
  62. zenml/zen_server/dashboard/assets/{SuccessStep-DEeKB0Wq.js → SuccessStep-BHhPYxz9.js} +1 -1
  63. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-4be5el9x.js → UpdatePasswordSchemas-4FyPPBY9.js} +1 -1
  64. zenml/zen_server/dashboard/assets/{aws-BaCucHs5.js → aws-t0gKCj_R.js} +1 -1
  65. zenml/zen_server/dashboard/assets/{check-circle-GxOo3117.js → check-circle-BVvhm5dy.js} +1 -1
  66. zenml/zen_server/dashboard/assets/{chevron-down-tsuIW52H.js → chevron-down-zcvCWmyP.js} +1 -1
  67. zenml/zen_server/dashboard/assets/{chevron-right-double-Dfr12EKG.js → chevron-right-double-CJ50E9Gr.js} +1 -1
  68. zenml/zen_server/dashboard/assets/{cloud-only-lInATL8-.js → cloud-only-DsILLhXk.js} +1 -1
  69. zenml/zen_server/dashboard/assets/{copy-B8yRmO5i.js → copy-BRhQz3j-.js} +1 -1
  70. zenml/zen_server/dashboard/assets/{database-BiV4iNgr.js → database-CRRnyFWh.js} +1 -1
  71. zenml/zen_server/dashboard/assets/{docker-EYFTGVBw.js → docker-BAonhm6G.js} +1 -1
  72. zenml/zen_server/dashboard/assets/{file-text-Bp-4kjON.js → file-text-CbVERUON.js} +1 -1
  73. zenml/zen_server/dashboard/assets/{help-hEyYkC3q.js → help-B8rqCvqn.js} +1 -1
  74. zenml/zen_server/dashboard/assets/index-BhYPVFKa.js +55 -0
  75. zenml/zen_server/dashboard/assets/index-CRZ5qzG3.css +1 -0
  76. zenml/zen_server/dashboard/assets/index.esm-F7nqy9zY.js +1 -0
  77. zenml/zen_server/dashboard/assets/{login-mutation-BfEeVmSl.js → login-mutation-CDARn8rx.js} +1 -1
  78. zenml/zen_server/dashboard/assets/{not-found-an_3Z-Ep.js → not-found-D1_I0ubu.js} +1 -1
  79. zenml/zen_server/dashboard/assets/{page-NlxFzoaz.js → page-7IP7WH5_.js} +1 -1
  80. zenml/zen_server/dashboard/assets/page-B5Y_HW80.js +1 -0
  81. zenml/zen_server/dashboard/assets/{page-Ba5l9-eg.js → page-BQT1Zxsp.js} +1 -1
  82. zenml/zen_server/dashboard/assets/page-BR7WTzLa.js +1 -0
  83. zenml/zen_server/dashboard/assets/page-BmuIfr11.js +1 -0
  84. zenml/zen_server/dashboard/assets/{page-C6Xn5o3F.js → page-Bwrw_wb_.js} +1 -1
  85. zenml/zen_server/dashboard/assets/{page-GXA0bsIT.js → page-ByiUk9rA.js} +1 -1
  86. zenml/zen_server/dashboard/assets/{page-68OLHx44.js → page-C9lMl0g8.js} +2 -2
  87. zenml/zen_server/dashboard/assets/{page-NTQrxRsu.js → page-CK0iF8U_.js} +1 -1
  88. zenml/zen_server/dashboard/assets/{page-Cea5XeRB.js → page-CQTaUp7q.js} +1 -1
  89. zenml/zen_server/dashboard/assets/{page-ZJ5Cy_-x.js → page-Ca8Zw2SO.js} +1 -1
  90. zenml/zen_server/dashboard/assets/{page-B90yVxNb.js → page-CaDkuI7b.js} +1 -1
  91. zenml/zen_server/dashboard/assets/{page-C1Jl09zF.js → page-DB_mi8or.js} +1 -1
  92. zenml/zen_server/dashboard/assets/page-DDY5j-6S.js +1 -0
  93. zenml/zen_server/dashboard/assets/page-DIz9_5Du.js +2 -0
  94. zenml/zen_server/dashboard/assets/page-DPrgvGj6.js +9 -0
  95. zenml/zen_server/dashboard/assets/{page-C0opS_t4.js → page-D_Vj_UH1.js} +1 -1
  96. zenml/zen_server/dashboard/assets/page-QPP3iIQH.js +1 -0
  97. zenml/zen_server/dashboard/assets/{page-Bjj9GHVF.js → page-bpP11sGS.js} +1 -1
  98. zenml/zen_server/dashboard/assets/page-xA0WcjLa.js +1 -0
  99. zenml/zen_server/dashboard/assets/{page-DVAcOIuw.js → page-zYQJvPVh.js} +1 -1
  100. zenml/zen_server/dashboard/assets/{play-circle-DsngbHkK.js → play-circle-DK5QMJyp.js} +1 -1
  101. zenml/zen_server/dashboard/assets/{terminal-Cb3ce-nr.js → terminal-B2ovgWuz.js} +1 -1
  102. zenml/zen_server/dashboard/assets/{update-server-settings-mutation-CdcOI8-c.js → update-server-settings-mutation-SaWcyAnk.js} +1 -1
  103. zenml/zen_server/dashboard/assets/{url-DLJUVIKc.js → url-ZKNs861m.js} +1 -1
  104. zenml/zen_server/dashboard/assets/zod-DrZvVLjd.js +1 -0
  105. zenml/zen_server/dashboard/index.html +8 -8
  106. zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
  107. zenml/zen_server/dashboard_legacy/index.html +1 -1
  108. zenml/zen_server/dashboard_legacy/{precache-manifest.05e51e85bd64770b2708d408a88d7028.js → precache-manifest.8e59f98d08e9c4c7cb3ef9f0bab7093f.js} +4 -4
  109. zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
  110. zenml/zen_server/dashboard_legacy/static/js/main.a238a4d2.chunk.js +2 -0
  111. zenml/zen_server/dashboard_legacy/static/js/main.a238a4d2.chunk.js.map +1 -0
  112. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  113. zenml/zen_server/deploy/helm/README.md +3 -3
  114. zenml/zen_server/deploy/helm/values.yaml +7 -7
  115. zenml/zen_server/jwt.py +11 -11
  116. zenml/zen_server/routers/auth_endpoints.py +17 -0
  117. zenml/zen_server/routers/steps_endpoints.py +11 -3
  118. zenml/zen_stores/migrations/versions/0.58.1_release.py +23 -0
  119. zenml/zen_stores/rest_zen_store.py +17 -1
  120. {zenml_nightly-0.58.0.dev20240529.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/METADATA +4 -3
  121. {zenml_nightly-0.58.0.dev20240529.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/RECORD +124 -123
  122. zenml/zen_server/dashboard/assets/@react-router-CCpyfPW-.js +0 -29
  123. zenml/zen_server/dashboard/assets/@reactflow-CF_wPv-n.js +0 -17
  124. zenml/zen_server/dashboard/assets/@reactflow-lOPj8ZwY.css +0 -1
  125. zenml/zen_server/dashboard/assets/@tanstack-GFKzItNf.js +0 -30
  126. zenml/zen_server/dashboard/assets/CodeSnippet-CBFcxTGW.js +0 -9
  127. zenml/zen_server/dashboard/assets/Commands-BQb0_PAa.js +0 -1
  128. zenml/zen_server/dashboard/assets/Infobox-DV6YqO5N.js +0 -1
  129. zenml/zen_server/dashboard/assets/index-D4zsM9tz.css +0 -1
  130. zenml/zen_server/dashboard/assets/index-DKgtNG83.js +0 -56
  131. zenml/zen_server/dashboard/assets/index.esm-DNxbrOmx.js +0 -1
  132. zenml/zen_server/dashboard/assets/page-0AGNIDYi.js +0 -1
  133. zenml/zen_server/dashboard/assets/page-6Gp_NCQL.js +0 -14
  134. zenml/zen_server/dashboard/assets/page-BiyORkbM.js +0 -1
  135. zenml/zen_server/dashboard/assets/page-BnrWbXYJ.js +0 -2
  136. zenml/zen_server/dashboard/assets/page-CUqLUGbU.js +0 -1
  137. zenml/zen_server/dashboard/assets/page-CWpGAjSi.js +0 -1
  138. zenml/zen_server/dashboard/assets/page-DFQa6C6e.js +0 -1
  139. zenml/zen_server/dashboard/assets/page-Dn87PjPv.js +0 -1
  140. zenml/zen_server/dashboard/assets/zod-DueGCdzx.js +0 -1
  141. zenml/zen_server/dashboard_legacy/static/js/main.41d438ec.chunk.js +0 -2
  142. zenml/zen_server/dashboard_legacy/static/js/main.41d438ec.chunk.js.map +0 -1
  143. {zenml_nightly-0.58.0.dev20240529.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/LICENSE +0 -0
  144. {zenml_nightly-0.58.0.dev20240529.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/WHEEL +0 -0
  145. {zenml_nightly-0.58.0.dev20240529.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/entry_points.txt +0 -0
@@ -1,29 +0,0 @@
1
- import{r as m,R as Fr,a as Or}from"./@radix-BrEjOMvl.js";/**
2
- * @remix-run/router v1.15.3
3
- *
4
- * Copyright (c) Remix Software Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */function H(){return H=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},H.apply(this,arguments)}var V;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(V||(V={}));const Nt="popstate";function jr(e){e===void 0&&(e={});function t(n,a){let{pathname:l,search:i,hash:d}=n.location;return Ke("",{pathname:l,search:i,hash:d},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:xe(a)}return Nr(t,r,null,e)}function T(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ue(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Ar(){return Math.random().toString(36).substr(2,8)}function Bt(e,t){return{usr:e.state,key:e.key,idx:t}}function Ke(e,t,r,n){return r===void 0&&(r=null),H({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ce(t):t,{state:r,key:t&&t.key||n||Ar()})}function xe(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 ce(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 Nr(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:l=!1}=n,i=a.history,d=V.Pop,c=null,h=u();h==null&&(h=0,i.replaceState(H({},i.state,{idx:h}),""));function u(){return(i.state||{idx:null}).idx}function v(){d=V.Pop;let g=u(),x=g==null?null:g-h;h=g,c&&c({action:d,location:b.location,delta:x})}function w(g,x){d=V.Push;let S=Ke(b.location,g,x);r&&r(S,g),h=u()+1;let _=Bt(S,h),N=b.createHref(S);try{i.pushState(_,"",N)}catch(K){if(K instanceof DOMException&&K.name==="DataCloneError")throw K;a.location.assign(N)}l&&c&&c({action:d,location:b.location,delta:1})}function M(g,x){d=V.Replace;let S=Ke(b.location,g,x);r&&r(S,g),h=u();let _=Bt(S,h),N=b.createHref(S);i.replaceState(_,"",N),l&&c&&c({action:d,location:b.location,delta:0})}function E(g){let x=a.location.origin!=="null"?a.location.origin:a.location.href,S=typeof g=="string"?g:xe(g);return S=S.replace(/ $/,"%20"),T(x,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,x)}let b={get action(){return d},get location(){return e(a,i)},listen(g){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(Nt,v),c=g,()=>{a.removeEventListener(Nt,v),c=null}},createHref(g){return t(a,g)},createURL:E,encodeLocation(g){let x=E(g);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:w,replace:M,go(g){return i.go(g)}};return b}var W;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(W||(W={}));const Br=new Set(["lazy","caseSensitive","path","id","index","children"]);function Ir(e){return e.index===!0}function vt(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,l)=>{let i=[...r,l],d=typeof a.id=="string"?a.id:i.join("-");if(T(a.index!==!0||!a.children,"Cannot specify children on an index route"),T(!n[d],'Found a route id collision on id "'+d+`". Route id's must be globally unique within Data Router usages`),Ir(a)){let c=H({},a,t(a),{id:d});return n[d]=c,c}else{let c=H({},a,t(a),{id:d,children:void 0});return n[d]=c,a.children&&(c.children=vt(a.children,t,i,n)),c}})}function Me(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?ce(t):t,a=ue(n.pathname||"/",r);if(a==null)return null;let l=rr(e);kr(l);let i=null;for(let d=0;i==null&&d<l.length;++d){let c=Qr(a);i=Gr(l[d],c)}return i}function zr(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 rr(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(l,i,d)=>{let c={relativePath:d===void 0?l.path||"":d,caseSensitive:l.caseSensitive===!0,childrenIndex:i,route:l};c.relativePath.startsWith("/")&&(T(c.relativePath.startsWith(n),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(n.length));let h=se([n,c.relativePath]),u=r.concat(c);l.children&&l.children.length>0&&(T(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+h+'".')),rr(l.children,t,u,h)),!(l.path==null&&!l.index)&&t.push({path:h,score:qr(h,l.index),routesMeta:u})};return e.forEach((l,i)=>{var d;if(l.path===""||!((d=l.path)!=null&&d.includes("?")))a(l,i);else for(let c of nr(l.path))a(l,i,c)}),t}function nr(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),l=r.replace(/\?$/,"");if(n.length===0)return a?[l,""]:[l];let i=nr(n.join("/")),d=[];return d.push(...i.map(c=>c===""?l:[l,c].join("/"))),a&&d.push(...i),d.map(c=>e.startsWith("/")&&c===""?"/":c)}function kr(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Yr(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const Wr=/^:[\w-]+$/,Hr=3,Vr=2,$r=1,Kr=10,Jr=-2,It=e=>e==="*";function qr(e,t){let r=e.split("/"),n=r.length;return r.some(It)&&(n+=Jr),t&&(n+=Vr),r.filter(a=>!It(a)).reduce((a,l)=>a+(Wr.test(l)?Hr:l===""?$r:Kr),n)}function Yr(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 Gr(e,t){let{routesMeta:r}=e,n={},a="/",l=[];for(let i=0;i<r.length;++i){let d=r[i],c=i===r.length-1,h=a==="/"?t:t.slice(a.length)||"/",u=gt({path:d.relativePath,caseSensitive:d.caseSensitive,end:c},h);if(!u)return null;Object.assign(n,u.params);let v=d.route;l.push({params:n,pathname:se([a,u.pathname]),pathnameBase:tn(se([a,u.pathnameBase])),route:v}),u.pathnameBase!=="/"&&(a=se([a,u.pathnameBase]))}return l}function gt(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Xr(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let l=a[0],i=l.replace(/(.)\/+$/,"$1"),d=a.slice(1);return{params:n.reduce((h,u,v)=>{let{paramName:w,isOptional:M}=u;if(w==="*"){let b=d[v]||"";i=l.slice(0,l.length-b.length).replace(/(.)\/+$/,"$1")}const E=d[v];return M&&!E?h[w]=void 0:h[w]=(E||"").replace(/%2F/g,"/"),h},{}),pathname:l,pathnameBase:i,pattern:e}}function Xr(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Ue(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,(i,d,c)=>(n.push({paramName:d,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Qr(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ue(!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 ue(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)||"/"}function Zr(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?ce(e):e;return{pathname:r?r.startsWith("/")?r:en(r,t):t,search:rn(n),hash:nn(a)}}function en(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 ht(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 ar(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function nt(e,t){let r=ar(e);return t?r.map((n,a)=>a===e.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function at(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=ce(e):(a=H({},e),T(!a.pathname||!a.pathname.includes("?"),ht("?","pathname","search",a)),T(!a.pathname||!a.pathname.includes("#"),ht("#","pathname","hash",a)),T(!a.search||!a.search.includes("#"),ht("#","search","hash",a)));let l=e===""||a.pathname==="",i=l?"/":a.pathname,d;if(i==null)d=r;else{let v=t.length-1;if(!n&&i.startsWith("..")){let w=i.split("/");for(;w[0]==="..";)w.shift(),v-=1;a.pathname=w.join("/")}d=v>=0?t[v]:"/"}let c=Zr(a,d),h=i&&i!=="/"&&i.endsWith("/"),u=(l||i===".")&&r.endsWith("/");return!c.pathname.endsWith("/")&&(h||u)&&(c.pathname+="/"),c}const se=e=>e.join("/").replace(/\/\/+/g,"/"),tn=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),rn=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,nn=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class Et{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 ir(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const or=["post","put","patch","delete"],an=new Set(or),on=["get",...or],ln=new Set(on),sn=new Set([301,302,303,307,308]),un=new Set([307,308]),pt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},cn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ze={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},lr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,dn=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),sr="remix-router-transitions";function fn(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;T(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 o=e.detectErrorBoundary;a=s=>({hasErrorBoundary:o(s)})}else a=dn;let l={},i=vt(e.routes,a,void 0,l),d,c=e.basename||"/",h=H({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},e.future),u=null,v=new Set,w=null,M=null,E=null,b=e.hydrationData!=null,g=Me(i,e.history.location,c),x=null;if(g==null){let o=re(404,{pathname:e.history.location.pathname}),{matches:s,route:p}=Jt(i);g=s,x={[p.id]:o}}let S,_=g.some(o=>o.route.lazy),N=g.some(o=>o.route.loader);if(_)S=!1;else if(!N)S=!0;else if(h.v7_partialHydration){let o=e.hydrationData?e.hydrationData.loaderData:null,s=e.hydrationData?e.hydrationData.errors:null,p=y=>y.route.loader?y.route.loader.hydrate===!0?!1:o&&o[y.route.id]!==void 0||s&&s[y.route.id]!==void 0:!0;if(s){let y=g.findIndex(R=>s[R.route.id]!==void 0);S=g.slice(0,y+1).every(p)}else S=g.every(p)}else S=e.hydrationData!=null;let K,f={historyAction:e.history.action,location:e.history.location,matches:g,initialized:S,navigation:pt,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||x,fetchers:new Map,blockers:new Map},D=V.Pop,B=!1,F,Y=!1,k=new Map,Z=null,X=!1,ie=!1,Ye=[],Ge=[],$=new Map,Xe=0,Oe=-1,Se=new Map,oe=new Set,Pe=new Map,je=new Map,le=new Set,ve=new Map,ge=new Map,lt=!1;function yr(){if(u=e.history.listen(o=>{let{action:s,location:p,delta:y}=o;if(lt){lt=!1;return}Ue(ge.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 R=Ot({currentLocation:f.location,nextLocation:p,historyAction:s});if(R&&y!=null){lt=!0,e.history.go(y*-1),Ze(R,{state:"blocked",location:p,proceed(){Ze(R,{state:"proceeding",proceed:void 0,reset:void 0,location:p}),e.history.go(y)},reset(){let O=new Map(f.blockers);O.set(R,ze),ee({blockers:O})}});return}return ye(s,p)}),r){En(t,k);let o=()=>Sn(t,k);t.addEventListener("pagehide",o),Z=()=>t.removeEventListener("pagehide",o)}return f.initialized||ye(V.Pop,f.location,{initialHydration:!0}),K}function wr(){u&&u(),Z&&Z(),v.clear(),F&&F.abort(),f.fetchers.forEach((o,s)=>Qe(s)),f.blockers.forEach((o,s)=>Ft(s))}function br(o){return v.add(o),()=>v.delete(o)}function ee(o,s){s===void 0&&(s={}),f=H({},f,o);let p=[],y=[];h.v7_fetcherPersist&&f.fetchers.forEach((R,O)=>{R.state==="idle"&&(le.has(O)?y.push(O):p.push(O))}),[...v].forEach(R=>R(f,{deletedFetchers:y,unstable_viewTransitionOpts:s.viewTransitionOpts,unstable_flushSync:s.flushSync===!0})),h.v7_fetcherPersist&&(p.forEach(R=>f.fetchers.delete(R)),y.forEach(R=>Qe(R)))}function Ae(o,s,p){var y,R;let{flushSync:O}=p===void 0?{}:p,L=f.actionData!=null&&f.navigation.formMethod!=null&&ne(f.navigation.formMethod)&&f.navigation.state==="loading"&&((y=o.state)==null?void 0:y._isRedirect)!==!0,C;s.actionData?Object.keys(s.actionData).length>0?C=s.actionData:C=null:L?C=f.actionData:C=null;let P=s.loaderData?Kt(f.loaderData,s.loaderData,s.matches||[],s.errors):f.loaderData,j=f.blockers;j.size>0&&(j=new Map(j),j.forEach((z,G)=>j.set(G,ze)));let J=B===!0||f.navigation.formMethod!=null&&ne(f.navigation.formMethod)&&((R=o.state)==null?void 0:R._isRedirect)!==!0;d&&(i=d,d=void 0),X||D===V.Pop||(D===V.Push?e.history.push(o,o.state):D===V.Replace&&e.history.replace(o,o.state));let U;if(D===V.Pop){let z=k.get(f.location.pathname);z&&z.has(o.pathname)?U={currentLocation:f.location,nextLocation:o}:k.has(o.pathname)&&(U={currentLocation:o,nextLocation:f.location})}else if(Y){let z=k.get(f.location.pathname);z?z.add(o.pathname):(z=new Set([o.pathname]),k.set(f.location.pathname,z)),U={currentLocation:f.location,nextLocation:o}}ee(H({},s,{actionData:C,loaderData:P,historyAction:D,location:o,initialized:!0,navigation:pt,revalidation:"idle",restoreScrollPosition:At(o,s.matches||f.matches),preventScrollReset:J,blockers:j}),{viewTransitionOpts:U,flushSync:O===!0}),D=V.Pop,B=!1,Y=!1,X=!1,ie=!1,Ye=[],Ge=[]}async function Lt(o,s){if(typeof o=="number"){e.history.go(o);return}let p=yt(f.location,f.matches,c,h.v7_prependBasename,o,h.v7_relativeSplatPath,s==null?void 0:s.fromRouteId,s==null?void 0:s.relative),{path:y,submission:R,error:O}=zt(h.v7_normalizeFormMethod,!1,p,s),L=f.location,C=Ke(f.location,y,s&&s.state);C=H({},C,e.history.encodeLocation(C));let P=s&&s.replace!=null?s.replace:void 0,j=V.Push;P===!0?j=V.Replace:P===!1||R!=null&&ne(R.formMethod)&&R.formAction===f.location.pathname+f.location.search&&(j=V.Replace);let J=s&&"preventScrollReset"in s?s.preventScrollReset===!0:void 0,U=(s&&s.unstable_flushSync)===!0,z=Ot({currentLocation:L,nextLocation:C,historyAction:j});if(z){Ze(z,{state:"blocked",location:C,proceed(){Ze(z,{state:"proceeding",proceed:void 0,reset:void 0,location:C}),Lt(o,s)},reset(){let G=new Map(f.blockers);G.set(z,ze),ee({blockers:G})}});return}return await ye(j,C,{submission:R,pendingError:O,preventScrollReset:J,replace:s&&s.replace,enableViewTransition:s&&s.unstable_viewTransition,flushSync:U})}function Rr(){if(st(),ee({revalidation:"loading"}),f.navigation.state!=="submitting"){if(f.navigation.state==="idle"){ye(f.historyAction,f.location,{startUninterruptedRevalidation:!0});return}ye(D||f.historyAction,f.navigation.location,{overrideNavigation:f.navigation})}}async function ye(o,s,p){F&&F.abort(),F=null,D=o,X=(p&&p.startUninterruptedRevalidation)===!0,Tr(f.location,f.matches),B=(p&&p.preventScrollReset)===!0,Y=(p&&p.enableViewTransition)===!0;let y=d||i,R=p&&p.overrideNavigation,O=Me(y,s,c),L=(p&&p.flushSync)===!0;if(!O){let G=re(404,{pathname:s.pathname}),{matches:te,route:q}=Jt(y);ut(),Ae(s,{matches:te,loaderData:{},errors:{[q.id]:G}},{flushSync:L});return}if(f.initialized&&!ie&&gn(f.location,s)&&!(p&&p.submission&&ne(p.submission.formMethod))){Ae(s,{matches:O},{flushSync:L});return}F=new AbortController;let C=We(e.history,s,F.signal,p&&p.submission),P,j;if(p&&p.pendingError)j={[$e(O).route.id]:p.pendingError};else if(p&&p.submission&&ne(p.submission.formMethod)){let G=await xr(C,s,p.submission,O,{replace:p.replace,flushSync:L});if(G.shortCircuited)return;P=G.pendingActionData,j=G.pendingActionError,R=mt(s,p.submission),L=!1,C=new Request(C.url,{signal:C.signal})}let{shortCircuited:J,loaderData:U,errors:z}=await Er(C,s,O,R,p&&p.submission,p&&p.fetcherSubmission,p&&p.replace,p&&p.initialHydration===!0,L,P,j);J||(F=null,Ae(s,H({matches:O},P?{actionData:P}:{},{loaderData:U,errors:z})))}async function xr(o,s,p,y,R){R===void 0&&(R={}),st();let O=Rn(s,p);ee({navigation:O},{flushSync:R.flushSync===!0});let L,C=bt(y,s);if(!C.route.action&&!C.route.lazy)L={type:W.error,error:re(405,{method:o.method,pathname:s.pathname,routeId:C.route.id})};else if(L=await ke("action",o,C,y,l,a,c,h.v7_relativeSplatPath),o.signal.aborted)return{shortCircuited:!0};if(Re(L)){let P;return R&&R.replace!=null?P=R.replace:P=L.location===f.location.pathname+f.location.search,await Ne(f,L,{submission:p,replace:P}),{shortCircuited:!0}}if(Te(L)){let P=$e(y,C.route.id);return(R&&R.replace)!==!0&&(D=V.Push),{pendingActionData:{},pendingActionError:{[P.route.id]:L.error}}}if(be(L))throw re(400,{type:"defer-action"});return{pendingActionData:{[C.route.id]:L.data}}}async function Er(o,s,p,y,R,O,L,C,P,j,J){let U=y||mt(s,R),z=R||O||Gt(U),G=d||i,[te,q]=kt(e.history,f,p,z,s,h.v7_partialHydration&&C===!0,ie,Ye,Ge,le,Pe,oe,G,c,j,J);if(ut(A=>!(p&&p.some(I=>I.route.id===A))||te&&te.some(I=>I.route.id===A)),Oe=++Xe,te.length===0&&q.length===0){let A=Ut();return Ae(s,H({matches:p,loaderData:{},errors:J||null},j?{actionData:j}:{},A?{fetchers:new Map(f.fetchers)}:{}),{flushSync:P}),{shortCircuited:!0}}if(!X&&(!h.v7_partialHydration||!C)){q.forEach(I=>{let Q=f.fetchers.get(I.key),tt=He(void 0,Q?Q.data:void 0);f.fetchers.set(I.key,tt)});let A=j||f.actionData;ee(H({navigation:U},A?Object.keys(A).length===0?{actionData:null}:{actionData:A}:{},q.length>0?{fetchers:new Map(f.fetchers)}:{}),{flushSync:P})}q.forEach(A=>{$.has(A.key)&&he(A.key),A.controller&&$.set(A.key,A.controller)});let Ce=()=>q.forEach(A=>he(A.key));F&&F.signal.addEventListener("abort",Ce);let{results:ct,loaderResults:Le,fetcherResults:pe}=await Dt(f.matches,p,te,q,o);if(o.signal.aborted)return{shortCircuited:!0};F&&F.signal.removeEventListener("abort",Ce),q.forEach(A=>$.delete(A.key));let we=qt(ct);if(we){if(we.idx>=te.length){let A=q[we.idx-te.length].key;oe.add(A)}return await Ne(f,we.result,{replace:L}),{shortCircuited:!0}}let{loaderData:dt,errors:Ie}=$t(f,p,te,Le,J,q,pe,ve);ve.forEach((A,I)=>{A.subscribe(Q=>{(Q||A.done)&&ve.delete(I)})}),h.v7_partialHydration&&C&&f.errors&&Object.entries(f.errors).filter(A=>{let[I]=A;return!te.some(Q=>Q.route.id===I)}).forEach(A=>{let[I,Q]=A;Ie=Object.assign(Ie||{},{[I]:Q})});let ft=Ut(),De=_t(Oe),et=ft||De||q.length>0;return H({loaderData:dt,errors:Ie},et?{fetchers:new Map(f.fetchers)}:{})}function Sr(o,s,p,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.");$.has(o)&&he(o);let R=(y&&y.unstable_flushSync)===!0,O=d||i,L=yt(f.location,f.matches,c,h.v7_prependBasename,p,h.v7_relativeSplatPath,s,y==null?void 0:y.relative),C=Me(O,L,c);if(!C){Be(o,s,re(404,{pathname:L}),{flushSync:R});return}let{path:P,submission:j,error:J}=zt(h.v7_normalizeFormMethod,!0,L,y);if(J){Be(o,s,J,{flushSync:R});return}let U=bt(C,P);if(B=(y&&y.preventScrollReset)===!0,j&&ne(j.formMethod)){Pr(o,s,P,U,C,R,j);return}Pe.set(o,{routeId:s,path:P}),Cr(o,s,P,U,C,R,j)}async function Pr(o,s,p,y,R,O,L){if(st(),Pe.delete(o),!y.route.action&&!y.route.lazy){let I=re(405,{method:L.formMethod,pathname:p,routeId:s});Be(o,s,I,{flushSync:O});return}let C=f.fetchers.get(o);fe(o,xn(L,C),{flushSync:O});let P=new AbortController,j=We(e.history,p,P.signal,L);$.set(o,P);let J=Xe,U=await ke("action",j,y,R,l,a,c,h.v7_relativeSplatPath);if(j.signal.aborted){$.get(o)===P&&$.delete(o);return}if(h.v7_fetcherPersist&&le.has(o)){if(Re(U)||Te(U)){fe(o,me(void 0));return}}else{if(Re(U))if($.delete(o),Oe>J){fe(o,me(void 0));return}else return oe.add(o),fe(o,He(L)),Ne(f,U,{fetcherSubmission:L});if(Te(U)){Be(o,s,U.error);return}}if(be(U))throw re(400,{type:"defer-action"});let z=f.navigation.location||f.location,G=We(e.history,z,P.signal),te=d||i,q=f.navigation.state!=="idle"?Me(te,f.navigation.location,c):f.matches;T(q,"Didn't find any matches after fetcher action");let Ce=++Xe;Se.set(o,Ce);let ct=He(L,U.data);f.fetchers.set(o,ct);let[Le,pe]=kt(e.history,f,q,L,z,!1,ie,Ye,Ge,le,Pe,oe,te,c,{[y.route.id]:U.data},void 0);pe.filter(I=>I.key!==o).forEach(I=>{let Q=I.key,tt=f.fetchers.get(Q),_r=He(void 0,tt?tt.data:void 0);f.fetchers.set(Q,_r),$.has(Q)&&he(Q),I.controller&&$.set(Q,I.controller)}),ee({fetchers:new Map(f.fetchers)});let we=()=>pe.forEach(I=>he(I.key));P.signal.addEventListener("abort",we);let{results:dt,loaderResults:Ie,fetcherResults:ft}=await Dt(f.matches,q,Le,pe,G);if(P.signal.aborted)return;P.signal.removeEventListener("abort",we),Se.delete(o),$.delete(o),pe.forEach(I=>$.delete(I.key));let De=qt(dt);if(De){if(De.idx>=Le.length){let I=pe[De.idx-Le.length].key;oe.add(I)}return Ne(f,De.result)}let{loaderData:et,errors:A}=$t(f,f.matches,Le,Ie,void 0,pe,ft,ve);if(f.fetchers.has(o)){let I=me(U.data);f.fetchers.set(o,I)}_t(Ce),f.navigation.state==="loading"&&Ce>Oe?(T(D,"Expected pending action"),F&&F.abort(),Ae(f.navigation.location,{matches:q,loaderData:et,errors:A,fetchers:new Map(f.fetchers)})):(ee({errors:A,loaderData:Kt(f.loaderData,et,q,A),fetchers:new Map(f.fetchers)}),ie=!1)}async function Cr(o,s,p,y,R,O,L){let C=f.fetchers.get(o);fe(o,He(L,C?C.data:void 0),{flushSync:O});let P=new AbortController,j=We(e.history,p,P.signal);$.set(o,P);let J=Xe,U=await ke("loader",j,y,R,l,a,c,h.v7_relativeSplatPath);if(be(U)&&(U=await dr(U,j.signal,!0)||U),$.get(o)===P&&$.delete(o),!j.signal.aborted){if(le.has(o)){fe(o,me(void 0));return}if(Re(U))if(Oe>J){fe(o,me(void 0));return}else{oe.add(o),await Ne(f,U);return}if(Te(U)){Be(o,s,U.error);return}T(!be(U),"Unhandled fetcher deferred data"),fe(o,me(U.data))}}async function Ne(o,s,p){let{submission:y,fetcherSubmission:R,replace:O}=p===void 0?{}:p;s.revalidate&&(ie=!0);let L=Ke(o.location,s.location,{_isRedirect:!0});if(T(L,"Expected a location on the redirect navigation"),r){let z=!1;if(s.reloadDocument)z=!0;else if(lr.test(s.location)){const G=e.history.createURL(s.location);z=G.origin!==t.location.origin||ue(G.pathname,c)==null}if(z){O?t.location.replace(s.location):t.location.assign(s.location);return}}F=null;let C=O===!0?V.Replace:V.Push,{formMethod:P,formAction:j,formEncType:J}=o.navigation;!y&&!R&&P&&j&&J&&(y=Gt(o.navigation));let U=y||R;if(un.has(s.status)&&U&&ne(U.formMethod))await ye(C,L,{submission:H({},U,{formAction:s.location}),preventScrollReset:B});else{let z=mt(L,y);await ye(C,L,{overrideNavigation:z,fetcherSubmission:R,preventScrollReset:B})}}async function Dt(o,s,p,y,R){let O=await Promise.all([...p.map(P=>ke("loader",R,P,s,l,a,c,h.v7_relativeSplatPath)),...y.map(P=>P.matches&&P.match&&P.controller?ke("loader",We(e.history,P.path,P.controller.signal),P.match,P.matches,l,a,c,h.v7_relativeSplatPath):{type:W.error,error:re(404,{pathname:P.path})})]),L=O.slice(0,p.length),C=O.slice(p.length);return await Promise.all([Yt(o,p,L,L.map(()=>R.signal),!1,f.loaderData),Yt(o,y.map(P=>P.match),C,y.map(P=>P.controller?P.controller.signal:null),!0)]),{results:O,loaderResults:L,fetcherResults:C}}function st(){ie=!0,Ye.push(...ut()),Pe.forEach((o,s)=>{$.has(s)&&(Ge.push(s),he(s))})}function fe(o,s,p){p===void 0&&(p={}),f.fetchers.set(o,s),ee({fetchers:new Map(f.fetchers)},{flushSync:(p&&p.flushSync)===!0})}function Be(o,s,p,y){y===void 0&&(y={});let R=$e(f.matches,s);Qe(o),ee({errors:{[R.route.id]:p},fetchers:new Map(f.fetchers)},{flushSync:(y&&y.flushSync)===!0})}function Mt(o){return h.v7_fetcherPersist&&(je.set(o,(je.get(o)||0)+1),le.has(o)&&le.delete(o)),f.fetchers.get(o)||cn}function Qe(o){let s=f.fetchers.get(o);$.has(o)&&!(s&&s.state==="loading"&&Se.has(o))&&he(o),Pe.delete(o),Se.delete(o),oe.delete(o),le.delete(o),f.fetchers.delete(o)}function Lr(o){if(h.v7_fetcherPersist){let s=(je.get(o)||0)-1;s<=0?(je.delete(o),le.add(o)):je.set(o,s)}else Qe(o);ee({fetchers:new Map(f.fetchers)})}function he(o){let s=$.get(o);T(s,"Expected fetch controller: "+o),s.abort(),$.delete(o)}function Tt(o){for(let s of o){let p=Mt(s),y=me(p.data);f.fetchers.set(s,y)}}function Ut(){let o=[],s=!1;for(let p of oe){let y=f.fetchers.get(p);T(y,"Expected fetcher: "+p),y.state==="loading"&&(oe.delete(p),o.push(p),s=!0)}return Tt(o),s}function _t(o){let s=[];for(let[p,y]of Se)if(y<o){let R=f.fetchers.get(p);T(R,"Expected fetcher: "+p),R.state==="loading"&&(he(p),Se.delete(p),s.push(p))}return Tt(s),s.length>0}function Dr(o,s){let p=f.blockers.get(o)||ze;return ge.get(o)!==s&&ge.set(o,s),p}function Ft(o){f.blockers.delete(o),ge.delete(o)}function Ze(o,s){let p=f.blockers.get(o)||ze;T(p.state==="unblocked"&&s.state==="blocked"||p.state==="blocked"&&s.state==="blocked"||p.state==="blocked"&&s.state==="proceeding"||p.state==="blocked"&&s.state==="unblocked"||p.state==="proceeding"&&s.state==="unblocked","Invalid blocker state transition: "+p.state+" -> "+s.state);let y=new Map(f.blockers);y.set(o,s),ee({blockers:y})}function Ot(o){let{currentLocation:s,nextLocation:p,historyAction:y}=o;if(ge.size===0)return;ge.size>1&&Ue(!1,"A router only supports one blocker at a time");let R=Array.from(ge.entries()),[O,L]=R[R.length-1],C=f.blockers.get(O);if(!(C&&C.state==="proceeding")&&L({currentLocation:s,nextLocation:p,historyAction:y}))return O}function ut(o){let s=[];return ve.forEach((p,y)=>{(!o||o(y))&&(p.cancel(),s.push(y),ve.delete(y))}),s}function Mr(o,s,p){if(w=o,E=s,M=p||null,!b&&f.navigation===pt){b=!0;let y=At(f.location,f.matches);y!=null&&ee({restoreScrollPosition:y})}return()=>{w=null,E=null,M=null}}function jt(o,s){return M&&M(o,s.map(y=>zr(y,f.loaderData)))||o.key}function Tr(o,s){if(w&&E){let p=jt(o,s);w[p]=E()}}function At(o,s){if(w){let p=jt(o,s),y=w[p];if(typeof y=="number")return y}return null}function Ur(o){l={},d=vt(o,a,void 0,l)}return K={get basename(){return c},get future(){return h},get state(){return f},get routes(){return i},get window(){return t},initialize:yr,subscribe:br,enableScrollRestoration:Mr,navigate:Lt,fetch:Sr,revalidate:Rr,createHref:o=>e.history.createHref(o),encodeLocation:o=>e.history.encodeLocation(o),getFetcher:Mt,deleteFetcher:Lr,dispose:wr,getBlocker:Dr,deleteBlocker:Ft,_internalFetchControllers:$,_internalActiveDeferreds:ve,_internalSetRoutes:Ur},K}function hn(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function yt(e,t,r,n,a,l,i,d){let c,h;if(i){c=[];for(let v of t)if(c.push(v),v.route.id===i){h=v;break}}else c=t,h=t[t.length-1];let u=at(a||".",nt(c,l),ue(e.pathname,r)||e.pathname,d==="path");return a==null&&(u.search=e.search,u.hash=e.hash),(a==null||a===""||a===".")&&h&&h.route.index&&!St(u.search)&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(u.pathname=u.pathname==="/"?r:se([r,u.pathname])),xe(u)}function zt(e,t,r,n){if(!n||!hn(n))return{path:r};if(n.formMethod&&!bn(n.formMethod))return{path:r,error:re(405,{method:n.formMethod})};let a=()=>({path:r,error:re(400,{type:"invalid-body"})}),l=n.formMethod||"get",i=e?l.toUpperCase():l.toLowerCase(),d=cr(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!ne(i))return a();let w=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((M,E)=>{let[b,g]=E;return""+M+b+"="+g+`
11
- `},""):String(n.body);return{path:r,submission:{formMethod:i,formAction:d,formEncType:n.formEncType,formData:void 0,json:void 0,text:w}}}else if(n.formEncType==="application/json"){if(!ne(i))return a();try{let w=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:i,formAction:d,formEncType:n.formEncType,formData:void 0,json:w,text:void 0}}}catch{return a()}}}T(typeof FormData=="function","FormData is not available in this environment");let c,h;if(n.formData)c=wt(n.formData),h=n.formData;else if(n.body instanceof FormData)c=wt(n.body),h=n.body;else if(n.body instanceof URLSearchParams)c=n.body,h=Vt(c);else if(n.body==null)c=new URLSearchParams,h=new FormData;else try{c=new URLSearchParams(n.body),h=Vt(c)}catch{return a()}let u={formMethod:i,formAction:d,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:h,json:void 0,text:void 0};if(ne(u.formMethod))return{path:r,submission:u};let v=ce(r);return t&&v.search&&St(v.search)&&c.append("index",""),v.search="?"+c,{path:xe(v),submission:u}}function pn(e,t){let r=e;if(t){let n=e.findIndex(a=>a.route.id===t);n>=0&&(r=e.slice(0,n))}return r}function kt(e,t,r,n,a,l,i,d,c,h,u,v,w,M,E,b){let g=b?Object.values(b)[0]:E?Object.values(E)[0]:void 0,x=e.createURL(t.location),S=e.createURL(a),_=b?Object.keys(b)[0]:void 0,K=pn(r,_).filter((D,B)=>{let{route:F}=D;if(F.lazy)return!0;if(F.loader==null)return!1;if(l)return F.loader.hydrate?!0:t.loaderData[F.id]===void 0&&(!t.errors||t.errors[F.id]===void 0);if(mn(t.loaderData,t.matches[B],D)||d.some(Z=>Z===D.route.id))return!0;let Y=t.matches[B],k=D;return Wt(D,H({currentUrl:x,currentParams:Y.params,nextUrl:S,nextParams:k.params},n,{actionResult:g,defaultShouldRevalidate:i||x.pathname+x.search===S.pathname+S.search||x.search!==S.search||ur(Y,k)}))}),f=[];return u.forEach((D,B)=>{if(l||!r.some(X=>X.route.id===D.routeId)||h.has(B))return;let F=Me(w,D.path,M);if(!F){f.push({key:B,routeId:D.routeId,path:D.path,matches:null,match:null,controller:null});return}let Y=t.fetchers.get(B),k=bt(F,D.path),Z=!1;v.has(B)?Z=!1:c.includes(B)?Z=!0:Y&&Y.state!=="idle"&&Y.data===void 0?Z=i:Z=Wt(k,H({currentUrl:x,currentParams:t.matches[t.matches.length-1].params,nextUrl:S,nextParams:r[r.length-1].params},n,{actionResult:g,defaultShouldRevalidate:i})),Z&&f.push({key:B,routeId:D.routeId,path:D.path,matches:F,match:k,controller:new AbortController})}),[K,f]}function mn(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function ur(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Wt(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function Ht(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];T(a,"No route found in manifest");let l={};for(let i in n){let c=a[i]!==void 0&&i!=="hasErrorBoundary";Ue(!c,'Route "'+a.id+'" has a static property "'+i+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+i+'" will be ignored.')),!c&&!Br.has(i)&&(l[i]=n[i])}Object.assign(a,l),Object.assign(a,H({},t(a),{lazy:void 0}))}async function ke(e,t,r,n,a,l,i,d,c){c===void 0&&(c={});let h,u,v,w=b=>{let g,x=new Promise((S,_)=>g=_);return v=()=>g(),t.signal.addEventListener("abort",v),Promise.race([b({request:t,params:r.params,context:c.requestContext}),x])};try{let b=r.route[e];if(r.route.lazy)if(b){let g,x=await Promise.all([w(b).catch(S=>{g=S}),Ht(r.route,l,a)]);if(g)throw g;u=x[0]}else if(await Ht(r.route,l,a),b=r.route[e],b)u=await w(b);else if(e==="action"){let g=new URL(t.url),x=g.pathname+g.search;throw re(405,{method:t.method,pathname:x,routeId:r.route.id})}else return{type:W.data,data:void 0};else if(b)u=await w(b);else{let g=new URL(t.url),x=g.pathname+g.search;throw re(404,{pathname:x})}T(u!==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(b){h=W.error,u=b}finally{v&&t.signal.removeEventListener("abort",v)}if(wn(u)){let b=u.status;if(sn.has(b)){let x=u.headers.get("Location");if(T(x,"Redirects returned/thrown from loaders/actions must have a Location header"),!lr.test(x))x=yt(new URL(t.url),n.slice(0,n.indexOf(r)+1),i,!0,x,d);else if(!c.isStaticRequest){let S=new URL(t.url),_=x.startsWith("//")?new URL(S.protocol+x):new URL(x),N=ue(_.pathname,i)!=null;_.origin===S.origin&&N&&(x=_.pathname+_.search+_.hash)}if(c.isStaticRequest)throw u.headers.set("Location",x),u;return{type:W.redirect,status:b,location:x,revalidate:u.headers.get("X-Remix-Revalidate")!==null,reloadDocument:u.headers.get("X-Remix-Reload-Document")!==null}}if(c.isRouteRequest)throw{type:h===W.error?W.error:W.data,response:u};let g;try{let x=u.headers.get("Content-Type");x&&/\bapplication\/json\b/.test(x)?u.body==null?g=null:g=await u.json():g=await u.text()}catch(x){return{type:W.error,error:x}}return h===W.error?{type:h,error:new Et(b,u.statusText,g),headers:u.headers}:{type:W.data,data:g,statusCode:u.status,headers:u.headers}}if(h===W.error)return{type:h,error:u};if(yn(u)){var M,E;return{type:W.deferred,deferredData:u,statusCode:(M=u.init)==null?void 0:M.status,headers:((E=u.init)==null?void 0:E.headers)&&new Headers(u.init.headers)}}return{type:W.data,data:u}}function We(e,t,r,n){let a=e.createURL(cr(t)).toString(),l={signal:r};if(n&&ne(n.formMethod)){let{formMethod:i,formEncType:d}=n;l.method=i.toUpperCase(),d==="application/json"?(l.headers=new Headers({"Content-Type":d}),l.body=JSON.stringify(n.json)):d==="text/plain"?l.body=n.text:d==="application/x-www-form-urlencoded"&&n.formData?l.body=wt(n.formData):l.body=n.formData}return new Request(a,l)}function wt(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Vt(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function vn(e,t,r,n,a){let l={},i=null,d,c=!1,h={};return r.forEach((u,v)=>{let w=t[v].route.id;if(T(!Re(u),"Cannot handle redirect results in processLoaderData"),Te(u)){let M=$e(e,w),E=u.error;n&&(E=Object.values(n)[0],n=void 0),i=i||{},i[M.route.id]==null&&(i[M.route.id]=E),l[w]=void 0,c||(c=!0,d=ir(u.error)?u.error.status:500),u.headers&&(h[w]=u.headers)}else be(u)?(a.set(w,u.deferredData),l[w]=u.deferredData.data):l[w]=u.data,u.statusCode!=null&&u.statusCode!==200&&!c&&(d=u.statusCode),u.headers&&(h[w]=u.headers)}),n&&(i=n,l[Object.keys(n)[0]]=void 0),{loaderData:l,errors:i,statusCode:d||200,loaderHeaders:h}}function $t(e,t,r,n,a,l,i,d){let{loaderData:c,errors:h}=vn(t,r,n,a,d);for(let u=0;u<l.length;u++){let{key:v,match:w,controller:M}=l[u];T(i!==void 0&&i[u]!==void 0,"Did not find corresponding fetcher result");let E=i[u];if(!(M&&M.signal.aborted))if(Te(E)){let b=$e(e.matches,w==null?void 0:w.route.id);h&&h[b.route.id]||(h=H({},h,{[b.route.id]:E.error})),e.fetchers.delete(v)}else if(Re(E))T(!1,"Unhandled fetcher revalidation redirect");else if(be(E))T(!1,"Unhandled fetcher deferred data");else{let b=me(E.data);e.fetchers.set(v,b)}}return{loaderData:c,errors:h}}function Kt(e,t,r,n){let a=H({},t);for(let l of r){let i=l.route.id;if(t.hasOwnProperty(i)?t[i]!==void 0&&(a[i]=t[i]):e[i]!==void 0&&l.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function $e(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 Jt(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 re(e,t){let{pathname:r,routeId:n,method:a,type:l}=t===void 0?{}:t,i="Unknown Server Error",d="Unknown @remix-run/router error";return e===400?(i="Bad Request",a&&r&&n?d="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.":l==="defer-action"?d="defer() is not supported in actions":l==="invalid-body"&&(d="Unable to encode submission body")):e===403?(i="Forbidden",d='Route "'+n+'" does not match URL "'+r+'"'):e===404?(i="Not Found",d='No route matches URL "'+r+'"'):e===405&&(i="Method Not Allowed",a&&r&&n?d="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&&(d='Invalid request method "'+a.toUpperCase()+'"')),new Et(e||500,i,new Error(d),!0)}function qt(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(Re(r))return{result:r,idx:t}}}function cr(e){let t=typeof e=="string"?ce(e):e;return xe(H({},t,{hash:""}))}function gn(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function be(e){return e.type===W.deferred}function Te(e){return e.type===W.error}function Re(e){return(e&&e.type)===W.redirect}function yn(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 wn(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function bn(e){return ln.has(e.toLowerCase())}function ne(e){return an.has(e.toLowerCase())}async function Yt(e,t,r,n,a,l){for(let i=0;i<r.length;i++){let d=r[i],c=t[i];if(!c)continue;let h=e.find(v=>v.route.id===c.route.id),u=h!=null&&!ur(h,c)&&(l&&l[c.route.id])!==void 0;if(be(d)&&(a||u)){let v=n[i];T(v,"Expected an AbortSignal for revalidating fetcher deferred result"),await dr(d,v,a).then(w=>{w&&(r[i]=w||r[i])})}}}async function dr(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:W.data,data:e.deferredData.unwrappedData}}catch(a){return{type:W.error,error:a}}return{type:W.data,data:e.deferredData.data}}}function St(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function bt(e,t){let r=typeof t=="string"?ce(t).search:t.search;if(e[e.length-1].route.index&&St(r||""))return e[e.length-1];let n=ar(e);return n[n.length-1]}function Gt(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:l,json:i}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(l!=null)return{formMethod:t,formAction:r,formEncType:n,formData:l,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function mt(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 Rn(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 He(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 xn(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 me(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 En(e,t){try{let r=e.sessionStorage.getItem(sr);if(r){let n=JSON.parse(r);for(let[a,l]of Object.entries(n||{}))l&&Array.isArray(l)&&t.set(a,new Set(l||[]))}}catch{}}function Sn(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(sr,JSON.stringify(r))}catch(n){Ue(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
12
- * React Router v6.22.3
13
- *
14
- * Copyright (c) Remix Software Inc.
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE.md file in the root directory of this source tree.
18
- *
19
- * @license MIT
20
- */function Je(){return Je=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},Je.apply(this,arguments)}const qe=m.createContext(null),Pt=m.createContext(null),de=m.createContext(null),it=m.createContext(null),ae=m.createContext({outlet:null,matches:[],isDataRoute:!1}),fr=m.createContext(null);function Pn(e,t){let{relative:r}=t===void 0?{}:t;Fe()||T(!1);let{basename:n,navigator:a}=m.useContext(de),{hash:l,pathname:i,search:d}=ot(e,{relative:r}),c=i;return n!=="/"&&(c=i==="/"?n:se([n,i])),a.createHref({pathname:c,search:d,hash:l})}function Fe(){return m.useContext(it)!=null}function Ee(){return Fe()||T(!1),m.useContext(it).location}function hr(e){m.useContext(de).static||m.useLayoutEffect(e)}function Ct(){let{isDataRoute:e}=m.useContext(ae);return e?In():Cn()}function Cn(){Fe()||T(!1);let e=m.useContext(qe),{basename:t,future:r,navigator:n}=m.useContext(de),{matches:a}=m.useContext(ae),{pathname:l}=Ee(),i=JSON.stringify(nt(a,r.v7_relativeSplatPath)),d=m.useRef(!1);return hr(()=>{d.current=!0}),m.useCallback(function(h,u){if(u===void 0&&(u={}),!d.current)return;if(typeof h=="number"){n.go(h);return}let v=at(h,JSON.parse(i),l,u.relative==="path");e==null&&t!=="/"&&(v.pathname=v.pathname==="/"?t:se([t,v.pathname])),(u.replace?n.replace:n.push)(v,u.state,u)},[t,n,i,l,e])}const Ln=m.createContext(null);function Dn(e){let t=m.useContext(ae).outlet;return t&&m.createElement(Ln.Provider,{value:e},t)}function da(){let{matches:e}=m.useContext(ae),t=e[e.length-1];return t?t.params:{}}function ot(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=m.useContext(de),{matches:a}=m.useContext(ae),{pathname:l}=Ee(),i=JSON.stringify(nt(a,n.v7_relativeSplatPath));return m.useMemo(()=>at(e,JSON.parse(i),l,r==="path"),[e,i,l,r])}function Mn(e,t,r,n){Fe()||T(!1);let{navigator:a}=m.useContext(de),{matches:l}=m.useContext(ae),i=l[l.length-1],d=i?i.params:{};i&&i.pathname;let c=i?i.pathnameBase:"/";i&&i.route;let h=Ee(),u;if(t){var v;let g=typeof t=="string"?ce(t):t;c==="/"||(v=g.pathname)!=null&&v.startsWith(c)||T(!1),u=g}else u=h;let w=u.pathname||"/",M=w;if(c!=="/"){let g=c.replace(/^\//,"").split("/");M="/"+w.replace(/^\//,"").split("/").slice(g.length).join("/")}let E=Me(e,{pathname:M}),b=On(E&&E.map(g=>Object.assign({},g,{params:Object.assign({},d,g.params),pathname:se([c,a.encodeLocation?a.encodeLocation(g.pathname).pathname:g.pathname]),pathnameBase:g.pathnameBase==="/"?c:se([c,a.encodeLocation?a.encodeLocation(g.pathnameBase).pathname:g.pathnameBase])})),l,r,n);return t&&b?m.createElement(it.Provider,{value:{location:Je({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:V.Pop}},b):b}function Tn(){let e=Bn(),t=ir(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 m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),r?m.createElement("pre",{style:a},r):null,null)}const Un=m.createElement(Tn,null);class _n extends m.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?m.createElement(ae.Provider,{value:this.props.routeContext},m.createElement(fr.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Fn(e){let{routeContext:t,match:r,children:n}=e,a=m.useContext(qe);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),m.createElement(ae.Provider,{value:t},n)}function On(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var l;if((l=r)!=null&&l.errors)e=r.matches;else return null}let i=e,d=(a=r)==null?void 0:a.errors;if(d!=null){let u=i.findIndex(v=>v.route.id&&(d==null?void 0:d[v.route.id]));u>=0||T(!1),i=i.slice(0,Math.min(i.length,u+1))}let c=!1,h=-1;if(r&&n&&n.v7_partialHydration)for(let u=0;u<i.length;u++){let v=i[u];if((v.route.HydrateFallback||v.route.hydrateFallbackElement)&&(h=u),v.route.id){let{loaderData:w,errors:M}=r,E=v.route.loader&&w[v.route.id]===void 0&&(!M||M[v.route.id]===void 0);if(v.route.lazy||E){c=!0,h>=0?i=i.slice(0,h+1):i=[i[0]];break}}}return i.reduceRight((u,v,w)=>{let M,E=!1,b=null,g=null;r&&(M=d&&v.route.id?d[v.route.id]:void 0,b=v.route.errorElement||Un,c&&(h<0&&w===0?(zn("route-fallback",!1),E=!0,g=null):h===w&&(E=!0,g=v.route.hydrateFallbackElement||null)));let x=t.concat(i.slice(0,w+1)),S=()=>{let _;return M?_=b:E?_=g:v.route.Component?_=m.createElement(v.route.Component,null):v.route.element?_=v.route.element:_=u,m.createElement(Fn,{match:v,routeContext:{outlet:u,matches:x,isDataRoute:r!=null},children:_})};return r&&(v.route.ErrorBoundary||v.route.errorElement||w===0)?m.createElement(_n,{location:r.location,revalidation:r.revalidation,component:b,error:M,children:S(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):S()},null)}var pr=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(pr||{}),rt=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}(rt||{});function jn(e){let t=m.useContext(qe);return t||T(!1),t}function An(e){let t=m.useContext(Pt);return t||T(!1),t}function Nn(e){let t=m.useContext(ae);return t||T(!1),t}function mr(e){let t=Nn(),r=t.matches[t.matches.length-1];return r.route.id||T(!1),r.route.id}function Bn(){var e;let t=m.useContext(fr),r=An(rt.UseRouteError),n=mr(rt.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function In(){let{router:e}=jn(pr.UseNavigateStable),t=mr(rt.UseNavigateStable),r=m.useRef(!1);return hr(()=>{r.current=!0}),m.useCallback(function(a,l){l===void 0&&(l={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Je({fromRouteId:t},l)))},[e,t])}const Xt={};function zn(e,t,r){!t&&!Xt[e]&&(Xt[e]=!0)}function fa(e){let{to:t,replace:r,state:n,relative:a}=e;Fe()||T(!1);let{future:l,static:i}=m.useContext(de),{matches:d}=m.useContext(ae),{pathname:c}=Ee(),h=Ct(),u=at(t,nt(d,l.v7_relativeSplatPath),c,a==="path"),v=JSON.stringify(u);return m.useEffect(()=>h(JSON.parse(v),{replace:r,state:n,relative:a}),[h,v,a,r,n]),null}function ha(e){return Dn(e.context)}function kn(e){T(!1)}function Wn(e){let{basename:t="/",children:r=null,location:n,navigationType:a=V.Pop,navigator:l,static:i=!1,future:d}=e;Fe()&&T(!1);let c=t.replace(/^\/*/,"/"),h=m.useMemo(()=>({basename:c,navigator:l,static:i,future:Je({v7_relativeSplatPath:!1},d)}),[c,d,l,i]);typeof n=="string"&&(n=ce(n));let{pathname:u="/",search:v="",hash:w="",state:M=null,key:E="default"}=n,b=m.useMemo(()=>{let g=ue(u,c);return g==null?null:{location:{pathname:g,search:v,hash:w,state:M,key:E},navigationType:a}},[c,u,v,w,M,E,a]);return b==null?null:m.createElement(de.Provider,{value:h},m.createElement(it.Provider,{children:r,value:b}))}new Promise(()=>{});function Qt(e,t){t===void 0&&(t=[]);let r=[];return m.Children.forEach(e,(n,a)=>{if(!m.isValidElement(n))return;let l=[...t,a];if(n.type===m.Fragment){r.push.apply(r,Qt(n.props.children,l));return}n.type!==kn&&T(!1),!n.props.index||!n.props.children||T(!1);let i={id:n.props.id||l.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(i.children=Qt(n.props.children,l)),r.push(i)}),r}function Hn(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:m.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:m.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:m.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/**
21
- * React Router DOM v6.22.3
22
- *
23
- * Copyright (c) Remix Software Inc.
24
- *
25
- * This source code is licensed under the MIT license found in the
26
- * LICENSE.md file in the root directory of this source tree.
27
- *
28
- * @license MIT
29
- */function _e(){return _e=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},_e.apply(this,arguments)}function vr(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,l;for(l=0;l<n.length;l++)a=n[l],!(t.indexOf(a)>=0)&&(r[a]=e[a]);return r}function Vn(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function $n(e,t){return e.button===0&&(!t||t==="_self")&&!Vn(e)}function Rt(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 Kn(e,t){let r=Rt(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(l=>{r.append(a,l)})}),r}const Jn=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],qn=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],Yn="6";try{window.__reactRouterVersion=Yn}catch{}function pa(e,t){return fn({basename:t==null?void 0:t.basename,future:_e({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:jr({window:t==null?void 0:t.window}),hydrationData:(t==null?void 0:t.hydrationData)||Gn(),routes:e,mapRouteProperties:Hn,window:t==null?void 0:t.window}).initialize()}function Gn(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=_e({},t,{errors:Xn(t.errors)})),t}function Xn(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 Et(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let l=window[a.__subType];if(typeof l=="function")try{let i=new l(a.message);i.stack="",r[n]=i}catch{}}if(r[n]==null){let l=new Error(a.message);l.stack="",r[n]=l}}else r[n]=a;return r}const gr=m.createContext({isTransitioning:!1}),Qn=m.createContext(new Map),Zn="startTransition",Zt=Fr[Zn],ea="flushSync",er=Or[ea];function ta(e){Zt?Zt(e):e()}function Ve(e){er?er(e):e()}class ra{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 ma(e){let{fallbackElement:t,router:r,future:n}=e,[a,l]=m.useState(r.state),[i,d]=m.useState(),[c,h]=m.useState({isTransitioning:!1}),[u,v]=m.useState(),[w,M]=m.useState(),[E,b]=m.useState(),g=m.useRef(new Map),{v7_startTransition:x}=n||{},S=m.useCallback(D=>{x?ta(D):D()},[x]),_=m.useCallback((D,B)=>{let{deletedFetchers:F,unstable_flushSync:Y,unstable_viewTransitionOpts:k}=B;F.forEach(X=>g.current.delete(X)),D.fetchers.forEach((X,ie)=>{X.data!==void 0&&g.current.set(ie,X.data)});let Z=r.window==null||typeof r.window.document.startViewTransition!="function";if(!k||Z){Y?Ve(()=>l(D)):S(()=>l(D));return}if(Y){Ve(()=>{w&&(u&&u.resolve(),w.skipTransition()),h({isTransitioning:!0,flushSync:!0,currentLocation:k.currentLocation,nextLocation:k.nextLocation})});let X=r.window.document.startViewTransition(()=>{Ve(()=>l(D))});X.finished.finally(()=>{Ve(()=>{v(void 0),M(void 0),d(void 0),h({isTransitioning:!1})})}),Ve(()=>M(X));return}w?(u&&u.resolve(),w.skipTransition(),b({state:D,currentLocation:k.currentLocation,nextLocation:k.nextLocation})):(d(D),h({isTransitioning:!0,flushSync:!1,currentLocation:k.currentLocation,nextLocation:k.nextLocation}))},[r.window,w,u,g,S]);m.useLayoutEffect(()=>r.subscribe(_),[r,_]),m.useEffect(()=>{c.isTransitioning&&!c.flushSync&&v(new ra)},[c]),m.useEffect(()=>{if(u&&i&&r.window){let D=i,B=u.promise,F=r.window.document.startViewTransition(async()=>{S(()=>l(D)),await B});F.finished.finally(()=>{v(void 0),M(void 0),d(void 0),h({isTransitioning:!1})}),M(F)}},[S,i,u,r.window]),m.useEffect(()=>{u&&i&&a.location.key===i.location.key&&u.resolve()},[u,w,a.location,i]),m.useEffect(()=>{!c.isTransitioning&&E&&(d(E.state),h({isTransitioning:!0,flushSync:!1,currentLocation:E.currentLocation,nextLocation:E.nextLocation}),b(void 0))},[c.isTransitioning,E]),m.useEffect(()=>{},[]);let N=m.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:D=>r.navigate(D),push:(D,B,F)=>r.navigate(D,{state:B,preventScrollReset:F==null?void 0:F.preventScrollReset}),replace:(D,B,F)=>r.navigate(D,{replace:!0,state:B,preventScrollReset:F==null?void 0:F.preventScrollReset})}),[r]),K=r.basename||"/",f=m.useMemo(()=>({router:r,navigator:N,static:!1,basename:K}),[r,N,K]);return m.createElement(m.Fragment,null,m.createElement(qe.Provider,{value:f},m.createElement(Pt.Provider,{value:a},m.createElement(Qn.Provider,{value:g.current},m.createElement(gr.Provider,{value:c},m.createElement(Wn,{basename:K,location:a.location,navigationType:a.historyAction,navigator:N,future:{v7_relativeSplatPath:r.future.v7_relativeSplatPath}},a.initialized||r.future.v7_partialHydration?m.createElement(na,{routes:r.routes,future:r.future,state:a}):t))))),null)}function na(e){let{routes:t,future:r,state:n}=e;return Mn(t,void 0,n,r)}const aa=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ia=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,oa=m.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:l,replace:i,state:d,target:c,to:h,preventScrollReset:u,unstable_viewTransition:v}=t,w=vr(t,Jn),{basename:M}=m.useContext(de),E,b=!1;if(typeof h=="string"&&ia.test(h)&&(E=h,aa))try{let _=new URL(window.location.href),N=h.startsWith("//")?new URL(_.protocol+h):new URL(h),K=ue(N.pathname,M);N.origin===_.origin&&K!=null?h=K+N.search+N.hash:b=!0}catch{}let g=Pn(h,{relative:a}),x=sa(h,{replace:i,state:d,target:c,preventScrollReset:u,relative:a,unstable_viewTransition:v});function S(_){n&&n(_),_.defaultPrevented||x(_)}return m.createElement("a",_e({},w,{href:E||g,onClick:b||l?n:S,ref:r,target:c}))}),va=m.forwardRef(function(t,r){let{"aria-current":n="page",caseSensitive:a=!1,className:l="",end:i=!1,style:d,to:c,unstable_viewTransition:h,children:u}=t,v=vr(t,qn),w=ot(c,{relative:v.relative}),M=Ee(),E=m.useContext(Pt),{navigator:b,basename:g}=m.useContext(de),x=E!=null&&ua(w)&&h===!0,S=b.encodeLocation?b.encodeLocation(w).pathname:w.pathname,_=M.pathname,N=E&&E.navigation&&E.navigation.location?E.navigation.location.pathname:null;a||(_=_.toLowerCase(),N=N?N.toLowerCase():null,S=S.toLowerCase()),N&&g&&(N=ue(N,g)||N);const K=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let f=_===S||!i&&_.startsWith(S)&&_.charAt(K)==="/",D=N!=null&&(N===S||!i&&N.startsWith(S)&&N.charAt(S.length)==="/"),B={isActive:f,isPending:D,isTransitioning:x},F=f?n:void 0,Y;typeof l=="function"?Y=l(B):Y=[l,f?"active":null,D?"pending":null,x?"transitioning":null].filter(Boolean).join(" ");let k=typeof d=="function"?d(B):d;return m.createElement(oa,_e({},v,{"aria-current":F,className:Y,ref:r,style:k,to:c,unstable_viewTransition:h}),typeof u=="function"?u(B):u)});var xt;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(xt||(xt={}));var tr;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(tr||(tr={}));function la(e){let t=m.useContext(qe);return t||T(!1),t}function sa(e,t){let{target:r,replace:n,state:a,preventScrollReset:l,relative:i,unstable_viewTransition:d}=t===void 0?{}:t,c=Ct(),h=Ee(),u=ot(e,{relative:i});return m.useCallback(v=>{if($n(v,r)){v.preventDefault();let w=n!==void 0?n:xe(h)===xe(u);c(e,{replace:w,state:a,preventScrollReset:l,relative:i,unstable_viewTransition:d})}},[h,c,u,n,a,r,e,l,i,d])}function ga(e){let t=m.useRef(Rt(e)),r=m.useRef(!1),n=Ee(),a=m.useMemo(()=>Kn(n.search,r.current?null:t.current),[n.search]),l=Ct(),i=m.useCallback((d,c)=>{const h=Rt(typeof d=="function"?d(a):d);r.current=!0,l("?"+h,c)},[l,a]);return[a,i]}function ua(e,t){t===void 0&&(t={});let r=m.useContext(gr);r==null&&T(!1);let{basename:n}=la(xt.useViewTransitionState),a=ot(e,{relative:t.relative});if(!r.isTransitioning)return!1;let l=ue(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=ue(r.nextLocation.pathname,n)||r.nextLocation.pathname;return gt(a.pathname,i)!=null||gt(a.pathname,l)!=null}export{oa as L,fa as N,ha as O,kn as R,Ct as a,Ee as b,pa as c,Qt as d,ma as e,ga as f,da as g,va as h,gt as m,Bn as u};