zenml-nightly 0.58.0.dev20240528__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.dev20240528.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/METADATA +4 -3
  121. {zenml_nightly-0.58.0.dev20240528.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.dev20240528.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/LICENSE +0 -0
  144. {zenml_nightly-0.58.0.dev20240528.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/WHEEL +0 -0
  145. {zenml_nightly-0.58.0.dev20240528.dist-info → zenml_nightly-0.58.1.dev20240608.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,29 @@
1
+ import{r as m,R as Ir,a as Br}from"./@radix-C9DBgJhe.js";/**
2
+ * @remix-run/router v1.16.1
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 W;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(W||(W={}));const zt="popstate";function Ar(e){e===void 0&&(e={});function t(n,a){let{pathname:l,search:o,hash:u}=n.location;return Ye("",{pathname:l,search:o,hash:u},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:Se(a)}return kr(t,r,null,e)}function D(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 zr(){return Math.random().toString(36).substr(2,8)}function kt(e,t){return{usr:e.state,key:e.key,idx:t}}function Ye(e,t,r,n){return r===void 0&&(r=null),H({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?he(t):t,{state:r,key:t&&t.key||n||zr()})}function Se(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 he(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 kr(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:l=!1}=n,o=a.history,u=W.Pop,d=null,v=f();v==null&&(v=0,o.replaceState(H({},o.state,{idx:v}),""));function f(){return(o.state||{idx:null}).idx}function p(){u=W.Pop;let b=f(),F=b==null?null:b-v;v=b,d&&d({action:u,location:w.location,delta:F})}function g(b,F){u=W.Push;let M=Ye(w.location,b,F);r&&r(M,b),v=f()+1;let U=kt(M,v),I=w.createHref(M);try{o.pushState(U,"",I)}catch($){if($ instanceof DOMException&&$.name==="DataCloneError")throw $;a.location.assign(I)}l&&d&&d({action:u,location:w.location,delta:1})}function P(b,F){u=W.Replace;let M=Ye(w.location,b,F);r&&r(M,b),v=f();let U=kt(M,v),I=w.createHref(M);o.replaceState(U,"",I),l&&d&&d({action:u,location:w.location,delta:0})}function R(b){let F=a.location.origin!=="null"?a.location.origin:a.location.href,M=typeof b=="string"?b:Se(b);return M=M.replace(/ $/,"%20"),D(F,"No window.location.(origin|href) available to create URL for href: "+M),new URL(M,F)}let w={get action(){return u},get location(){return e(a,o)},listen(b){if(d)throw new Error("A history only accepts one active listener");return a.addEventListener(zt,p),d=b,()=>{a.removeEventListener(zt,p),d=null}},createHref(b){return t(a,b)},createURL:R,encodeLocation(b){let F=R(b);return{pathname:F.pathname,search:F.search,hash:F.hash}},push:g,replace:P,go(b){return o.go(b)}};return w}var k;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(k||(k={}));const Hr=new Set(["lazy","caseSensitive","path","id","index","children"]);function Wr(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 o=[...r,l],u=typeof a.id=="string"?a.id:o.join("-");if(D(a.index!==!0||!a.children,"Cannot specify children on an index route"),D(!n[u],'Found a route id collision on id "'+u+`". Route id's must be globally unique within Data Router usages`),Wr(a)){let d=H({},a,t(a),{id:u});return n[u]=d,d}else{let d=H({},a,t(a),{id:u,children:void 0});return n[u]=d,a.children&&(d.children=vt(a.children,t,o,n)),d}})}function Fe(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?he(t):t,a=fe(n.pathname||"/",r);if(a==null)return null;let l=lr(e);$r(l);let o=null;for(let u=0;o==null&&u<l.length;++u){let d=rn(a);o=en(l[u],d)}return o}function Vr(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 lr(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(l,o,u)=>{let d={relativePath:u===void 0?l.path||"":u,caseSensitive:l.caseSensitive===!0,childrenIndex:o,route:l};d.relativePath.startsWith("/")&&(D(d.relativePath.startsWith(n),'Absolute route path "'+d.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),d.relativePath=d.relativePath.slice(n.length));let v=ce([n,d.relativePath]),f=r.concat(d);l.children&&l.children.length>0&&(D(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+v+'".')),lr(l.children,t,f,v)),!(l.path==null&&!l.index)&&t.push({path:v,score:Qr(v,l.index),routesMeta:f})};return e.forEach((l,o)=>{var u;if(l.path===""||!((u=l.path)!=null&&u.includes("?")))a(l,o);else for(let d of sr(l.path))a(l,o,d)}),t}function sr(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 o=sr(n.join("/")),u=[];return u.push(...o.map(d=>d===""?l:[l,d].join("/"))),a&&u.push(...o),u.map(d=>e.startsWith("/")&&d===""?"/":d)}function $r(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Zr(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const Kr=/^:[\w-]+$/,Jr=3,Yr=2,Gr=1,Xr=10,qr=-2,Ht=e=>e==="*";function Qr(e,t){let r=e.split("/"),n=r.length;return r.some(Ht)&&(n+=qr),t&&(n+=Yr),r.filter(a=>!Ht(a)).reduce((a,l)=>a+(Kr.test(l)?Jr:l===""?Gr:Xr),n)}function Zr(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 en(e,t){let{routesMeta:r}=e,n={},a="/",l=[];for(let o=0;o<r.length;++o){let u=r[o],d=o===r.length-1,v=a==="/"?t:t.slice(a.length)||"/",f=gt({path:u.relativePath,caseSensitive:u.caseSensitive,end:d},v);if(!f)return null;Object.assign(n,f.params);let p=u.route;l.push({params:n,pathname:ce([a,f.pathname]),pathnameBase:on(ce([a,f.pathnameBase])),route:p}),f.pathnameBase!=="/"&&(a=ce([a,f.pathnameBase]))}return l}function gt(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=tn(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let l=a[0],o=l.replace(/(.)\/+$/,"$1"),u=a.slice(1);return{params:n.reduce((v,f,p)=>{let{paramName:g,isOptional:P}=f;if(g==="*"){let w=u[p]||"";o=l.slice(0,l.length-w.length).replace(/(.)\/+$/,"$1")}const R=u[p];return P&&!R?v[g]=void 0:v[g]=(R||"").replace(/%2F/g,"/"),v},{}),pathname:l,pathnameBase:o,pattern:e}}function tn(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,(o,u,d)=>(n.push({paramName:u,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function rn(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 fe(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 nn(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?he(e):e;return{pathname:r?r.startsWith("/")?r:an(r,t):t,search:ln(n),hash:sn(a)}}function an(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 ur(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function it(e,t){let r=ur(e);return t?r.map((n,a)=>a===e.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function lt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=he(e):(a=H({},e),D(!a.pathname||!a.pathname.includes("?"),ht("?","pathname","search",a)),D(!a.pathname||!a.pathname.includes("#"),ht("#","pathname","hash",a)),D(!a.search||!a.search.includes("#"),ht("#","search","hash",a)));let l=e===""||a.pathname==="",o=l?"/":a.pathname,u;if(o==null)u=r;else{let p=t.length-1;if(!n&&o.startsWith("..")){let g=o.split("/");for(;g[0]==="..";)g.shift(),p-=1;a.pathname=g.join("/")}u=p>=0?t[p]:"/"}let d=nn(a,u),v=o&&o!=="/"&&o.endsWith("/"),f=(l||o===".")&&r.endsWith("/");return!d.pathname.endsWith("/")&&(v||f)&&(d.pathname+="/"),d}const ce=e=>e.join("/").replace(/\/\/+/g,"/"),on=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ln=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,sn=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class xt{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 St(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const dr=["post","put","patch","delete"],un=new Set(dr),dn=["get",...dr],cn=new Set(dn),fn=new Set([301,302,303,307,308]),hn=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},pn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ve={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Pt=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,mn=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),cr="remix-router-transitions";function vn(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;D(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 i=e.detectErrorBoundary;a=s=>({hasErrorBoundary:i(s)})}else a=mn;let l={},o=vt(e.routes,a,void 0,l),u,d=e.basename||"/",v=e.unstable_dataStrategy||bn,f=H({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,unstable_skipActionErrorRevalidation:!1},e.future),p=null,g=new Set,P=null,R=null,w=null,b=e.hydrationData!=null,F=Fe(o,e.history.location,d),M=null;if(F==null){let i=ne(404,{pathname:e.history.location.pathname}),{matches:s,route:h}=Qt(o);F=s,M={[h.id]:i}}let U,I=F.some(i=>i.route.lazy),$=F.some(i=>i.route.loader);if(I)U=!1;else if(!$)U=!0;else if(f.v7_partialHydration){let i=e.hydrationData?e.hydrationData.loaderData:null,s=e.hydrationData?e.hydrationData.errors:null,h=y=>y.route.loader?typeof y.route.loader=="function"&&y.route.loader.hydrate===!0?!1:i&&i[y.route.id]!==void 0||s&&s[y.route.id]!==void 0:!0;if(s){let y=F.findIndex(E=>s[E.route.id]!==void 0);U=F.slice(0,y+1).every(h)}else U=F.every(h)}else U=e.hydrationData!=null;let te,c={historyAction:e.history.action,location:e.history.location,matches:F,initialized:U,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||M,fetchers:new Map,blockers:new Map},B=W.Pop,N=!1,j,A=!1,q=new Map,J=null,Z=!1,se=!1,qe=[],Qe=[],V=new Map,Ze=0,je=-1,Ce=new Map,ue=new Set,Le=new Map,Ie=new Map,de=new Set,we=new Map,be=new Map,dt=!1;function Rr(){if(p=e.history.listen(i=>{let{action:s,location:h,delta:y}=i;if(dt){dt=!1;return}Ue(be.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 E=jt({currentLocation:c.location,nextLocation:h,historyAction:s});if(E&&y!=null){dt=!0,e.history.go(y*-1),tt(E,{state:"blocked",location:h,proceed(){tt(E,{state:"proceeding",proceed:void 0,reset:void 0,location:h}),e.history.go(y)},reset(){let T=new Map(c.blockers);T.set(E,Ve),ee({blockers:T})}});return}return Ee(s,h)}),r){Fn(t,q);let i=()=>Un(t,q);t.addEventListener("pagehide",i),J=()=>t.removeEventListener("pagehide",i)}return c.initialized||Ee(W.Pop,c.location,{initialHydration:!0}),te}function xr(){p&&p(),J&&J(),g.clear(),j&&j.abort(),c.fetchers.forEach((i,s)=>et(s)),c.blockers.forEach((i,s)=>Nt(s))}function Sr(i){return g.add(i),()=>g.delete(i)}function ee(i,s){s===void 0&&(s={}),c=H({},c,i);let h=[],y=[];f.v7_fetcherPersist&&c.fetchers.forEach((E,T)=>{E.state==="idle"&&(de.has(T)?y.push(T):h.push(T))}),[...g].forEach(E=>E(c,{deletedFetchers:y,unstable_viewTransitionOpts:s.viewTransitionOpts,unstable_flushSync:s.flushSync===!0})),f.v7_fetcherPersist&&(h.forEach(E=>c.fetchers.delete(E)),y.forEach(E=>et(E)))}function Be(i,s,h){var y,E;let{flushSync:T}=h===void 0?{}:h,S=c.actionData!=null&&c.navigation.formMethod!=null&&oe(c.navigation.formMethod)&&c.navigation.state==="loading"&&((y=i.state)==null?void 0:y._isRedirect)!==!0,x;s.actionData?Object.keys(s.actionData).length>0?x=s.actionData:x=null:S?x=c.actionData:x=null;let _=s.loaderData?Xt(c.loaderData,s.loaderData,s.matches||[],s.errors):c.loaderData,L=c.blockers;L.size>0&&(L=new Map(L),L.forEach((C,z)=>L.set(z,Ve)));let Y=N===!0||c.navigation.formMethod!=null&&oe(c.navigation.formMethod)&&((E=i.state)==null?void 0:E._isRedirect)!==!0;u&&(o=u,u=void 0),Z||B===W.Pop||(B===W.Push?e.history.push(i,i.state):B===W.Replace&&e.history.replace(i,i.state));let G;if(B===W.Pop){let C=q.get(c.location.pathname);C&&C.has(i.pathname)?G={currentLocation:c.location,nextLocation:i}:q.has(i.pathname)&&(G={currentLocation:i,nextLocation:c.location})}else if(A){let C=q.get(c.location.pathname);C?C.add(i.pathname):(C=new Set([i.pathname]),q.set(c.location.pathname,C)),G={currentLocation:c.location,nextLocation:i}}ee(H({},s,{actionData:x,loaderData:_,historyAction:B,location:i,initialized:!0,navigation:pt,revalidation:"idle",restoreScrollPosition:Bt(i,s.matches||c.matches),preventScrollReset:Y,blockers:L}),{viewTransitionOpts:G,flushSync:T===!0}),B=W.Pop,N=!1,A=!1,Z=!1,se=!1,qe=[],Qe=[]}async function Mt(i,s){if(typeof i=="number"){e.history.go(i);return}let h=yt(c.location,c.matches,d,f.v7_prependBasename,i,f.v7_relativeSplatPath,s==null?void 0:s.fromRouteId,s==null?void 0:s.relative),{path:y,submission:E,error:T}=Wt(f.v7_normalizeFormMethod,!1,h,s),S=c.location,x=Ye(c.location,y,s&&s.state);x=H({},x,e.history.encodeLocation(x));let _=s&&s.replace!=null?s.replace:void 0,L=W.Push;_===!0?L=W.Replace:_===!1||E!=null&&oe(E.formMethod)&&E.formAction===c.location.pathname+c.location.search&&(L=W.Replace);let Y=s&&"preventScrollReset"in s?s.preventScrollReset===!0:void 0,G=(s&&s.unstable_flushSync)===!0,C=jt({currentLocation:S,nextLocation:x,historyAction:L});if(C){tt(C,{state:"blocked",location:x,proceed(){tt(C,{state:"proceeding",proceed:void 0,reset:void 0,location:x}),Mt(i,s)},reset(){let z=new Map(c.blockers);z.set(C,Ve),ee({blockers:z})}});return}return await Ee(L,x,{submission:E,pendingError:T,preventScrollReset:Y,replace:s&&s.replace,enableViewTransition:s&&s.unstable_viewTransition,flushSync:G})}function Pr(){if(ct(),ee({revalidation:"loading"}),c.navigation.state!=="submitting"){if(c.navigation.state==="idle"){Ee(c.historyAction,c.location,{startUninterruptedRevalidation:!0});return}Ee(B||c.historyAction,c.navigation.location,{overrideNavigation:c.navigation})}}async function Ee(i,s,h){j&&j.abort(),j=null,B=i,Z=(h&&h.startUninterruptedRevalidation)===!0,Or(c.location,c.matches),N=(h&&h.preventScrollReset)===!0,A=(h&&h.enableViewTransition)===!0;let y=u||o,E=h&&h.overrideNavigation,T=Fe(y,s,d),S=(h&&h.flushSync)===!0;if(!T){let C=ne(404,{pathname:s.pathname}),{matches:z,route:K}=Qt(y);ft(),Be(s,{matches:z,loaderData:{},errors:{[K.id]:C}},{flushSync:S});return}if(c.initialized&&!se&&Cn(c.location,s)&&!(h&&h.submission&&oe(h.submission.formMethod))){Be(s,{matches:T},{flushSync:S});return}j=new AbortController;let x=_e(e.history,s,j.signal,h&&h.submission),_;if(h&&h.pendingError)_=[Je(T).route.id,{type:k.error,error:h.pendingError}];else if(h&&h.submission&&oe(h.submission.formMethod)){let C=await Cr(x,s,h.submission,T,{replace:h.replace,flushSync:S});if(C.shortCircuited)return;_=C.pendingActionResult,E=mt(s,h.submission),S=!1,x=_e(e.history,x.url,x.signal)}let{shortCircuited:L,loaderData:Y,errors:G}=await Lr(x,s,T,E,h&&h.submission,h&&h.fetcherSubmission,h&&h.replace,h&&h.initialHydration===!0,S,_);L||(j=null,Be(s,H({matches:T},qt(_),{loaderData:Y,errors:G})))}async function Cr(i,s,h,y,E){E===void 0&&(E={}),ct();let T=Tn(s,h);ee({navigation:T},{flushSync:E.flushSync===!0});let S,x=bt(y,s);if(!x.route.action&&!x.route.lazy)S={type:k.error,error:ne(405,{method:i.method,pathname:s.pathname,routeId:x.route.id})};else if(S=(await ze("action",i,[x],y))[0],i.signal.aborted)return{shortCircuited:!0};if(xe(S)){let _;return E&&E.replace!=null?_=E.replace:_=Jt(S.response.headers.get("Location"),new URL(i.url),d)===c.location.pathname+c.location.search,await Ae(i,S,{submission:h,replace:_}),{shortCircuited:!0}}if(Re(S))throw ne(400,{type:"defer-action"});if(ae(S)){let _=Je(y,x.route.id);return(E&&E.replace)!==!0&&(B=W.Push),{pendingActionResult:[_.route.id,S]}}return{pendingActionResult:[x.route.id,S]}}async function Lr(i,s,h,y,E,T,S,x,_,L){let Y=y||mt(s,E),G=E||T||tr(Y),C=u||o,[z,K]=Vt(e.history,c,h,G,s,f.v7_partialHydration&&x===!0,f.unstable_skipActionErrorRevalidation,se,qe,Qe,de,Le,ue,C,d,L);if(ft(O=>!(h&&h.some(Q=>Q.route.id===O))||z&&z.some(Q=>Q.route.id===O)),je=++Ze,z.length===0&&K.length===0){let O=Ut();return Be(s,H({matches:h,loaderData:{},errors:L&&ae(L[1])?{[L[0]]:L[1].error}:null},qt(L),O?{fetchers:new Map(c.fetchers)}:{}),{flushSync:_}),{shortCircuited:!0}}if(!Z&&(!f.v7_partialHydration||!x)){K.forEach(Q=>{let re=c.fetchers.get(Q.key),X=$e(void 0,re?re.data:void 0);c.fetchers.set(Q.key,X)});let O;L&&!ae(L[1])?O={[L[0]]:L[1].data}:c.actionData&&(Object.keys(c.actionData).length===0?O=null:O=c.actionData),ee(H({navigation:Y},O!==void 0?{actionData:O}:{},K.length>0?{fetchers:new Map(c.fetchers)}:{}),{flushSync:_})}K.forEach(O=>{V.has(O.key)&&ve(O.key),O.controller&&V.set(O.key,O.controller)});let He=()=>K.forEach(O=>ve(O.key));j&&j.signal.addEventListener("abort",He);let{loaderResults:ge,fetcherResults:De}=await Tt(c.matches,h,z,K,i);if(i.signal.aborted)return{shortCircuited:!0};j&&j.signal.removeEventListener("abort",He),K.forEach(O=>V.delete(O.key));let Me=Zt([...ge,...De]);if(Me){if(Me.idx>=z.length){let O=K[Me.idx-z.length].key;ue.add(O)}return await Ae(i,Me.result,{replace:S}),{shortCircuited:!0}}let{loaderData:Te,errors:ie}=Gt(c,h,z,ge,L,K,De,we);we.forEach((O,Q)=>{O.subscribe(re=>{(re||O.done)&&we.delete(Q)})}),f.v7_partialHydration&&x&&c.errors&&Object.entries(c.errors).filter(O=>{let[Q]=O;return!z.some(re=>re.route.id===Q)}).forEach(O=>{let[Q,re]=O;ie=Object.assign(ie||{},{[Q]:re})});let rt=Ut(),nt=Ot(je),at=rt||nt||K.length>0;return H({loaderData:Te,errors:ie},at?{fetchers:new Map(c.fetchers)}:{})}function Dr(i,s,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.");V.has(i)&&ve(i);let E=(y&&y.unstable_flushSync)===!0,T=u||o,S=yt(c.location,c.matches,d,f.v7_prependBasename,h,f.v7_relativeSplatPath,s,y==null?void 0:y.relative),x=Fe(T,S,d);if(!x){ke(i,s,ne(404,{pathname:S}),{flushSync:E});return}let{path:_,submission:L,error:Y}=Wt(f.v7_normalizeFormMethod,!0,S,y);if(Y){ke(i,s,Y,{flushSync:E});return}let G=bt(x,_);if(N=(y&&y.preventScrollReset)===!0,L&&oe(L.formMethod)){Mr(i,s,_,G,x,E,L);return}Le.set(i,{routeId:s,path:_}),Tr(i,s,_,G,x,E,L)}async function Mr(i,s,h,y,E,T,S){if(ct(),Le.delete(i),!y.route.action&&!y.route.lazy){let X=ne(405,{method:S.formMethod,pathname:h,routeId:s});ke(i,s,X,{flushSync:T});return}let x=c.fetchers.get(i);me(i,_n(S,x),{flushSync:T});let _=new AbortController,L=_e(e.history,h,_.signal,S);V.set(i,_);let Y=Ze,C=(await ze("action",L,[y],E))[0];if(L.signal.aborted){V.get(i)===_&&V.delete(i);return}if(f.v7_fetcherPersist&&de.has(i)){if(xe(C)||ae(C)){me(i,ye(void 0));return}}else{if(xe(C))if(V.delete(i),je>Y){me(i,ye(void 0));return}else return ue.add(i),me(i,$e(S)),Ae(L,C,{fetcherSubmission:S});if(ae(C)){ke(i,s,C.error);return}}if(Re(C))throw ne(400,{type:"defer-action"});let z=c.navigation.location||c.location,K=_e(e.history,z,_.signal),He=u||o,ge=c.navigation.state!=="idle"?Fe(He,c.navigation.location,d):c.matches;D(ge,"Didn't find any matches after fetcher action");let De=++Ze;Ce.set(i,De);let Me=$e(S,C.data);c.fetchers.set(i,Me);let[Te,ie]=Vt(e.history,c,ge,S,z,!1,f.unstable_skipActionErrorRevalidation,se,qe,Qe,de,Le,ue,He,d,[y.route.id,C]);ie.filter(X=>X.key!==i).forEach(X=>{let We=X.key,At=c.fetchers.get(We),jr=$e(void 0,At?At.data:void 0);c.fetchers.set(We,jr),V.has(We)&&ve(We),X.controller&&V.set(We,X.controller)}),ee({fetchers:new Map(c.fetchers)});let rt=()=>ie.forEach(X=>ve(X.key));_.signal.addEventListener("abort",rt);let{loaderResults:nt,fetcherResults:at}=await Tt(c.matches,ge,Te,ie,K);if(_.signal.aborted)return;_.signal.removeEventListener("abort",rt),Ce.delete(i),V.delete(i),ie.forEach(X=>V.delete(X.key));let O=Zt([...nt,...at]);if(O){if(O.idx>=Te.length){let X=ie[O.idx-Te.length].key;ue.add(X)}return Ae(K,O.result)}let{loaderData:Q,errors:re}=Gt(c,c.matches,Te,nt,void 0,ie,at,we);if(c.fetchers.has(i)){let X=ye(C.data);c.fetchers.set(i,X)}Ot(De),c.navigation.state==="loading"&&De>je?(D(B,"Expected pending action"),j&&j.abort(),Be(c.navigation.location,{matches:ge,loaderData:Q,errors:re,fetchers:new Map(c.fetchers)})):(ee({errors:re,loaderData:Xt(c.loaderData,Q,ge,re),fetchers:new Map(c.fetchers)}),se=!1)}async function Tr(i,s,h,y,E,T,S){let x=c.fetchers.get(i);me(i,$e(S,x?x.data:void 0),{flushSync:T});let _=new AbortController,L=_e(e.history,h,_.signal);V.set(i,_);let Y=Ze,C=(await ze("loader",L,[y],E))[0];if(Re(C)&&(C=await mr(C,L.signal,!0)||C),V.get(i)===_&&V.delete(i),!L.signal.aborted){if(de.has(i)){me(i,ye(void 0));return}if(xe(C))if(je>Y){me(i,ye(void 0));return}else{ue.add(i),await Ae(L,C);return}if(ae(C)){ke(i,s,C.error);return}D(!Re(C),"Unhandled fetcher deferred data"),me(i,ye(C.data))}}async function Ae(i,s,h){let{submission:y,fetcherSubmission:E,replace:T}=h===void 0?{}:h;s.response.headers.has("X-Remix-Revalidate")&&(se=!0);let S=s.response.headers.get("Location");D(S,"Expected a Location header on the redirect Response"),S=Jt(S,new URL(i.url),d);let x=Ye(c.location,S,{_isRedirect:!0});if(r){let z=!1;if(s.response.headers.has("X-Remix-Reload-Document"))z=!0;else if(Pt.test(S)){const K=e.history.createURL(S);z=K.origin!==t.location.origin||fe(K.pathname,d)==null}if(z){T?t.location.replace(S):t.location.assign(S);return}}j=null;let _=T===!0?W.Replace:W.Push,{formMethod:L,formAction:Y,formEncType:G}=c.navigation;!y&&!E&&L&&Y&&G&&(y=tr(c.navigation));let C=y||E;if(hn.has(s.response.status)&&C&&oe(C.formMethod))await Ee(_,x,{submission:H({},C,{formAction:S}),preventScrollReset:N});else{let z=mt(x,y);await Ee(_,x,{overrideNavigation:z,fetcherSubmission:E,preventScrollReset:N})}}async function ze(i,s,h,y){try{let E=await En(v,i,s,h,y,l,a);return await Promise.all(E.map((T,S)=>{if(Ln(T)){let x=T.result;return{type:k.redirect,response:Sn(x,s,h[S].route.id,y,d,f.v7_relativeSplatPath)}}return xn(T)}))}catch(E){return h.map(()=>({type:k.error,error:E}))}}async function Tt(i,s,h,y,E){let[T,...S]=await Promise.all([h.length?ze("loader",E,h,s):[],...y.map(x=>{if(x.matches&&x.match&&x.controller){let _=_e(e.history,x.path,x.controller.signal);return ze("loader",_,[x.match],x.matches).then(L=>L[0])}else return Promise.resolve({type:k.error,error:ne(404,{pathname:x.path})})})]);return await Promise.all([er(i,h,T,T.map(()=>E.signal),!1,c.loaderData),er(i,y.map(x=>x.match),S,y.map(x=>x.controller?x.controller.signal:null),!0)]),{loaderResults:T,fetcherResults:S}}function ct(){se=!0,qe.push(...ft()),Le.forEach((i,s)=>{V.has(s)&&(Qe.push(s),ve(s))})}function me(i,s,h){h===void 0&&(h={}),c.fetchers.set(i,s),ee({fetchers:new Map(c.fetchers)},{flushSync:(h&&h.flushSync)===!0})}function ke(i,s,h,y){y===void 0&&(y={});let E=Je(c.matches,s);et(i),ee({errors:{[E.route.id]:h},fetchers:new Map(c.fetchers)},{flushSync:(y&&y.flushSync)===!0})}function _t(i){return f.v7_fetcherPersist&&(Ie.set(i,(Ie.get(i)||0)+1),de.has(i)&&de.delete(i)),c.fetchers.get(i)||pn}function et(i){let s=c.fetchers.get(i);V.has(i)&&!(s&&s.state==="loading"&&Ce.has(i))&&ve(i),Le.delete(i),Ce.delete(i),ue.delete(i),de.delete(i),c.fetchers.delete(i)}function _r(i){if(f.v7_fetcherPersist){let s=(Ie.get(i)||0)-1;s<=0?(Ie.delete(i),de.add(i)):Ie.set(i,s)}else et(i);ee({fetchers:new Map(c.fetchers)})}function ve(i){let s=V.get(i);D(s,"Expected fetch controller: "+i),s.abort(),V.delete(i)}function Ft(i){for(let s of i){let h=_t(s),y=ye(h.data);c.fetchers.set(s,y)}}function Ut(){let i=[],s=!1;for(let h of ue){let y=c.fetchers.get(h);D(y,"Expected fetcher: "+h),y.state==="loading"&&(ue.delete(h),i.push(h),s=!0)}return Ft(i),s}function Ot(i){let s=[];for(let[h,y]of Ce)if(y<i){let E=c.fetchers.get(h);D(E,"Expected fetcher: "+h),E.state==="loading"&&(ve(h),Ce.delete(h),s.push(h))}return Ft(s),s.length>0}function Fr(i,s){let h=c.blockers.get(i)||Ve;return be.get(i)!==s&&be.set(i,s),h}function Nt(i){c.blockers.delete(i),be.delete(i)}function tt(i,s){let h=c.blockers.get(i)||Ve;D(h.state==="unblocked"&&s.state==="blocked"||h.state==="blocked"&&s.state==="blocked"||h.state==="blocked"&&s.state==="proceeding"||h.state==="blocked"&&s.state==="unblocked"||h.state==="proceeding"&&s.state==="unblocked","Invalid blocker state transition: "+h.state+" -> "+s.state);let y=new Map(c.blockers);y.set(i,s),ee({blockers:y})}function jt(i){let{currentLocation:s,nextLocation:h,historyAction:y}=i;if(be.size===0)return;be.size>1&&Ue(!1,"A router only supports one blocker at a time");let E=Array.from(be.entries()),[T,S]=E[E.length-1],x=c.blockers.get(T);if(!(x&&x.state==="proceeding")&&S({currentLocation:s,nextLocation:h,historyAction:y}))return T}function ft(i){let s=[];return we.forEach((h,y)=>{(!i||i(y))&&(h.cancel(),s.push(y),we.delete(y))}),s}function Ur(i,s,h){if(P=i,w=s,R=h||null,!b&&c.navigation===pt){b=!0;let y=Bt(c.location,c.matches);y!=null&&ee({restoreScrollPosition:y})}return()=>{P=null,w=null,R=null}}function It(i,s){return R&&R(i,s.map(y=>Vr(y,c.loaderData)))||i.key}function Or(i,s){if(P&&w){let h=It(i,s);P[h]=w()}}function Bt(i,s){if(P){let h=It(i,s),y=P[h];if(typeof y=="number")return y}return null}function Nr(i){l={},u=vt(i,a,void 0,l)}return te={get basename(){return d},get future(){return f},get state(){return c},get routes(){return o},get window(){return t},initialize:Rr,subscribe:Sr,enableScrollRestoration:Ur,navigate:Mt,fetch:Dr,revalidate:Pr,createHref:i=>e.history.createHref(i),encodeLocation:i=>e.history.encodeLocation(i),getFetcher:_t,deleteFetcher:_r,dispose:xr,getBlocker:Fr,deleteBlocker:Nt,_internalFetchControllers:V,_internalActiveDeferreds:we,_internalSetRoutes:Nr},te}function gn(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,o,u){let d,v;if(o){d=[];for(let p of t)if(d.push(p),p.route.id===o){v=p;break}}else d=t,v=t[t.length-1];let f=lt(a||".",it(d,l),fe(e.pathname,r)||e.pathname,u==="path");return a==null&&(f.search=e.search,f.hash=e.hash),(a==null||a===""||a===".")&&v&&v.route.index&&!Ct(f.search)&&(f.search=f.search?f.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(f.pathname=f.pathname==="/"?r:ce([r,f.pathname])),Se(f)}function Wt(e,t,r,n){if(!n||!gn(n))return{path:r};if(n.formMethod&&!Mn(n.formMethod))return{path:r,error:ne(405,{method:n.formMethod})};let a=()=>({path:r,error:ne(400,{type:"invalid-body"})}),l=n.formMethod||"get",o=e?l.toUpperCase():l.toLowerCase(),u=hr(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!oe(o))return a();let g=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((P,R)=>{let[w,b]=R;return""+P+w+"="+b+`
11
+ `},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:u,formEncType:n.formEncType,formData:void 0,json:void 0,text:g}}}else if(n.formEncType==="application/json"){if(!oe(o))return a();try{let g=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:u,formEncType:n.formEncType,formData:void 0,json:g,text:void 0}}}catch{return a()}}}D(typeof FormData=="function","FormData is not available in this environment");let d,v;if(n.formData)d=wt(n.formData),v=n.formData;else if(n.body instanceof FormData)d=wt(n.body),v=n.body;else if(n.body instanceof URLSearchParams)d=n.body,v=Yt(d);else if(n.body==null)d=new URLSearchParams,v=new FormData;else try{d=new URLSearchParams(n.body),v=Yt(d)}catch{return a()}let f={formMethod:o,formAction:u,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:v,json:void 0,text:void 0};if(oe(f.formMethod))return{path:r,submission:f};let p=he(r);return t&&p.search&&Ct(p.search)&&d.append("index",""),p.search="?"+d,{path:Se(p),submission:f}}function yn(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 Vt(e,t,r,n,a,l,o,u,d,v,f,p,g,P,R,w){let b=w?ae(w[1])?w[1].error:w[1].data:void 0,F=e.createURL(t.location),M=e.createURL(a),U=w&&ae(w[1])?w[0]:void 0,I=U?yn(r,U):r,$=w?w[1].statusCode:void 0,te=o&&$&&$>=400,c=I.filter((N,j)=>{let{route:A}=N;if(A.lazy)return!0;if(A.loader==null)return!1;if(l)return typeof A.loader!="function"||A.loader.hydrate?!0:t.loaderData[A.id]===void 0&&(!t.errors||t.errors[A.id]===void 0);if(wn(t.loaderData,t.matches[j],N)||d.some(Z=>Z===N.route.id))return!0;let q=t.matches[j],J=N;return $t(N,H({currentUrl:F,currentParams:q.params,nextUrl:M,nextParams:J.params},n,{actionResult:b,unstable_actionStatus:$,defaultShouldRevalidate:te?!1:u||F.pathname+F.search===M.pathname+M.search||F.search!==M.search||fr(q,J)}))}),B=[];return p.forEach((N,j)=>{if(l||!r.some(se=>se.route.id===N.routeId)||f.has(j))return;let A=Fe(P,N.path,R);if(!A){B.push({key:j,routeId:N.routeId,path:N.path,matches:null,match:null,controller:null});return}let q=t.fetchers.get(j),J=bt(A,N.path),Z=!1;g.has(j)?Z=!1:v.includes(j)?Z=!0:q&&q.state!=="idle"&&q.data===void 0?Z=u:Z=$t(J,H({currentUrl:F,currentParams:t.matches[t.matches.length-1].params,nextUrl:M,nextParams:r[r.length-1].params},n,{actionResult:b,unstable_actionStatus:$,defaultShouldRevalidate:te?!1:u})),Z&&B.push({key:j,routeId:N.routeId,path:N.path,matches:A,match:J,controller:new AbortController})}),[c,B]}function wn(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function fr(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function $t(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function Kt(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];D(a,"No route found in manifest");let l={};for(let o in n){let d=a[o]!==void 0&&o!=="hasErrorBoundary";Ue(!d,'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.')),!d&&!Hr.has(o)&&(l[o]=n[o])}Object.assign(a,l),Object.assign(a,H({},t(a),{lazy:void 0}))}function bn(e){return Promise.all(e.matches.map(t=>t.resolve()))}async function En(e,t,r,n,a,l,o,u){let d=n.reduce((p,g)=>p.add(g.route.id),new Set),v=new Set,f=await e({matches:a.map(p=>{let g=d.has(p.route.id);return H({},p,{shouldLoad:g,resolve:R=>(v.add(p.route.id),g?Rn(t,r,p,l,o,R,u):Promise.resolve({type:k.data,result:void 0}))})}),request:r,params:a[0].params,context:u});return a.forEach(p=>D(v.has(p.route.id),'`match.resolve()` was not called for route id "'+p.route.id+'". You must call `match.resolve()` on every match passed to `dataStrategy` to ensure all routes are properly loaded.')),f.filter((p,g)=>d.has(a[g].route.id))}async function Rn(e,t,r,n,a,l,o){let u,d,v=f=>{let p,g=new Promise((w,b)=>p=b);d=()=>p(),t.signal.addEventListener("abort",d);let P=w=>typeof f!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):f({request:t,params:r.params,context:o},...w!==void 0?[w]:[]),R;return l?R=l(w=>P(w)):R=(async()=>{try{return{type:"data",result:await P()}}catch(w){return{type:"error",result:w}}})(),Promise.race([R,g])};try{let f=r.route[e];if(r.route.lazy)if(f){let p,[g]=await Promise.all([v(f).catch(P=>{p=P}),Kt(r.route,a,n)]);if(p!==void 0)throw p;u=g}else if(await Kt(r.route,a,n),f=r.route[e],f)u=await v(f);else if(e==="action"){let p=new URL(t.url),g=p.pathname+p.search;throw ne(405,{method:t.method,pathname:g,routeId:r.route.id})}else return{type:k.data,result:void 0};else if(f)u=await v(f);else{let p=new URL(t.url),g=p.pathname+p.search;throw ne(404,{pathname:g})}D(u.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(f){return{type:k.error,result:f}}finally{d&&t.signal.removeEventListener("abort",d)}return u}async function xn(e){let{result:t,type:r,status:n}=e;if(pr(t)){let o;try{let u=t.headers.get("Content-Type");u&&/\bapplication\/json\b/.test(u)?t.body==null?o=null:o=await t.json():o=await t.text()}catch(u){return{type:k.error,error:u}}return r===k.error?{type:k.error,error:new xt(t.status,t.statusText,o),statusCode:t.status,headers:t.headers}:{type:k.data,data:o,statusCode:t.status,headers:t.headers}}if(r===k.error)return{type:k.error,error:t,statusCode:St(t)?t.status:n};if(Dn(t)){var a,l;return{type:k.deferred,deferredData:t,statusCode:(a=t.init)==null?void 0:a.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}return{type:k.data,data:t,statusCode:n}}function Sn(e,t,r,n,a,l){let o=e.headers.get("Location");if(D(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!Pt.test(o)){let u=n.slice(0,n.findIndex(d=>d.route.id===r)+1);o=yt(new URL(t.url),u,a,!0,o,l),e.headers.set("Location",o)}return e}function Jt(e,t,r){if(Pt.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),l=fe(a.pathname,r)!=null;if(a.origin===t.origin&&l)return a.pathname+a.search+a.hash}return e}function _e(e,t,r,n){let a=e.createURL(hr(t)).toString(),l={signal:r};if(n&&oe(n.formMethod)){let{formMethod:o,formEncType:u}=n;l.method=o.toUpperCase(),u==="application/json"?(l.headers=new Headers({"Content-Type":u}),l.body=JSON.stringify(n.json)):u==="text/plain"?l.body=n.text:u==="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 Yt(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Pn(e,t,r,n,a,l){let o={},u=null,d,v=!1,f={},p=n&&ae(n[1])?n[1].error:void 0;return r.forEach((g,P)=>{let R=t[P].route.id;if(D(!xe(g),"Cannot handle redirect results in processLoaderData"),ae(g)){let w=g.error;if(p!==void 0&&(w=p,p=void 0),u=u||{},l)u[R]=w;else{let b=Je(e,R);u[b.route.id]==null&&(u[b.route.id]=w)}o[R]=void 0,v||(v=!0,d=St(g.error)?g.error.status:500),g.headers&&(f[R]=g.headers)}else Re(g)?(a.set(R,g.deferredData),o[R]=g.deferredData.data,g.statusCode!=null&&g.statusCode!==200&&!v&&(d=g.statusCode),g.headers&&(f[R]=g.headers)):(o[R]=g.data,g.statusCode&&g.statusCode!==200&&!v&&(d=g.statusCode),g.headers&&(f[R]=g.headers))}),p!==void 0&&n&&(u={[n[0]]:p},o[n[0]]=void 0),{loaderData:o,errors:u,statusCode:d||200,loaderHeaders:f}}function Gt(e,t,r,n,a,l,o,u){let{loaderData:d,errors:v}=Pn(t,r,n,a,u,!1);for(let f=0;f<l.length;f++){let{key:p,match:g,controller:P}=l[f];D(o!==void 0&&o[f]!==void 0,"Did not find corresponding fetcher result");let R=o[f];if(!(P&&P.signal.aborted))if(ae(R)){let w=Je(e.matches,g==null?void 0:g.route.id);v&&v[w.route.id]||(v=H({},v,{[w.route.id]:R.error})),e.fetchers.delete(p)}else if(xe(R))D(!1,"Unhandled fetcher revalidation redirect");else if(Re(R))D(!1,"Unhandled fetcher deferred data");else{let w=ye(R.data);e.fetchers.set(p,w)}}return{loaderData:d,errors:v}}function Xt(e,t,r,n){let a=H({},t);for(let l of r){let o=l.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&l.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function qt(e){return e?ae(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Je(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 Qt(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 ne(e,t){let{pathname:r,routeId:n,method:a,type:l}=t===void 0?{}:t,o="Unknown Server Error",u="Unknown @remix-run/router error";return e===400?(o="Bad Request",a&&r&&n?u="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"?u="defer() is not supported in actions":l==="invalid-body"&&(u="Unable to encode submission body")):e===403?(o="Forbidden",u='Route "'+n+'" does not match URL "'+r+'"'):e===404?(o="Not Found",u='No route matches URL "'+r+'"'):e===405&&(o="Method Not Allowed",a&&r&&n?u="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&&(u='Invalid request method "'+a.toUpperCase()+'"')),new xt(e||500,o,new Error(u),!0)}function Zt(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(xe(r))return{result:r,idx:t}}}function hr(e){let t=typeof e=="string"?he(e):e;return Se(H({},t,{hash:""}))}function Cn(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Ln(e){return pr(e.result)&&fn.has(e.result.status)}function Re(e){return e.type===k.deferred}function ae(e){return e.type===k.error}function xe(e){return(e&&e.type)===k.redirect}function Dn(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 pr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Mn(e){return cn.has(e.toLowerCase())}function oe(e){return un.has(e.toLowerCase())}async function er(e,t,r,n,a,l){for(let o=0;o<r.length;o++){let u=r[o],d=t[o];if(!d)continue;let v=e.find(p=>p.route.id===d.route.id),f=v!=null&&!fr(v,d)&&(l&&l[d.route.id])!==void 0;if(Re(u)&&(a||f)){let p=n[o];D(p,"Expected an AbortSignal for revalidating fetcher deferred result"),await mr(u,p,a).then(g=>{g&&(r[o]=g||r[o])})}}}async function mr(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:k.data,data:e.deferredData.unwrappedData}}catch(a){return{type:k.error,error:a}}return{type:k.data,data:e.deferredData.data}}}function Ct(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function bt(e,t){let r=typeof t=="string"?he(t).search:t.search;if(e[e.length-1].route.index&&Ct(r||""))return e[e.length-1];let n=ur(e);return n[n.length-1]}function tr(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:l,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(l!=null)return{formMethod:t,formAction:r,formEncType:n,formData:l,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 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 Tn(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 $e(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 _n(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 ye(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 Fn(e,t){try{let r=e.sessionStorage.getItem(cr);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 Un(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(cr,JSON.stringify(r))}catch(n){Ue(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
12
+ * React Router v6.23.1
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 Ge(){return Ge=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},Ge.apply(this,arguments)}const Xe=m.createContext(null),Lt=m.createContext(null),pe=m.createContext(null),st=m.createContext(null),le=m.createContext({outlet:null,matches:[],isDataRoute:!1}),vr=m.createContext(null);function On(e,t){let{relative:r}=t===void 0?{}:t;Ne()||D(!1);let{basename:n,navigator:a}=m.useContext(pe),{hash:l,pathname:o,search:u}=ut(e,{relative:r}),d=o;return n!=="/"&&(d=o==="/"?n:ce([n,o])),a.createHref({pathname:d,search:u,hash:l})}function Ne(){return m.useContext(st)!=null}function Pe(){return Ne()||D(!1),m.useContext(st).location}function gr(e){m.useContext(pe).static||m.useLayoutEffect(e)}function Dt(){let{isDataRoute:e}=m.useContext(le);return e?Yn():Nn()}function Nn(){Ne()||D(!1);let e=m.useContext(Xe),{basename:t,future:r,navigator:n}=m.useContext(pe),{matches:a}=m.useContext(le),{pathname:l}=Pe(),o=JSON.stringify(it(a,r.v7_relativeSplatPath)),u=m.useRef(!1);return gr(()=>{u.current=!0}),m.useCallback(function(v,f){if(f===void 0&&(f={}),!u.current)return;if(typeof v=="number"){n.go(v);return}let p=lt(v,JSON.parse(o),l,f.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ce([t,p.pathname])),(f.replace?n.replace:n.push)(p,f.state,f)},[t,n,o,l,e])}const jn=m.createContext(null);function In(e){let t=m.useContext(le).outlet;return t&&m.createElement(jn.Provider,{value:e},t)}function ba(){let{matches:e}=m.useContext(le),t=e[e.length-1];return t?t.params:{}}function ut(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=m.useContext(pe),{matches:a}=m.useContext(le),{pathname:l}=Pe(),o=JSON.stringify(it(a,n.v7_relativeSplatPath));return m.useMemo(()=>lt(e,JSON.parse(o),l,r==="path"),[e,o,l,r])}function Bn(e,t,r,n){Ne()||D(!1);let{navigator:a}=m.useContext(pe),{matches:l}=m.useContext(le),o=l[l.length-1],u=o?o.params:{};o&&o.pathname;let d=o?o.pathnameBase:"/";o&&o.route;let v=Pe(),f;if(t){var p;let b=typeof t=="string"?he(t):t;d==="/"||(p=b.pathname)!=null&&p.startsWith(d)||D(!1),f=b}else f=v;let g=f.pathname||"/",P=g;if(d!=="/"){let b=d.replace(/^\//,"").split("/");P="/"+g.replace(/^\//,"").split("/").slice(b.length).join("/")}let R=Fe(e,{pathname:P}),w=Wn(R&&R.map(b=>Object.assign({},b,{params:Object.assign({},u,b.params),pathname:ce([d,a.encodeLocation?a.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?d:ce([d,a.encodeLocation?a.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),l,r,n);return t&&w?m.createElement(st.Provider,{value:{location:Ge({pathname:"/",search:"",hash:"",state:null,key:"default"},f),navigationType:W.Pop}},w):w}function An(){let e=Jn(),t=St(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 zn=m.createElement(An,null);class kn 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(le.Provider,{value:this.props.routeContext},m.createElement(vr.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Hn(e){let{routeContext:t,match:r,children:n}=e,a=m.useContext(Xe);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),m.createElement(le.Provider,{value:t},n)}function Wn(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 o=e,u=(a=r)==null?void 0:a.errors;if(u!=null){let f=o.findIndex(p=>p.route.id&&(u==null?void 0:u[p.route.id])!==void 0);f>=0||D(!1),o=o.slice(0,Math.min(o.length,f+1))}let d=!1,v=-1;if(r&&n&&n.v7_partialHydration)for(let f=0;f<o.length;f++){let p=o[f];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(v=f),p.route.id){let{loaderData:g,errors:P}=r,R=p.route.loader&&g[p.route.id]===void 0&&(!P||P[p.route.id]===void 0);if(p.route.lazy||R){d=!0,v>=0?o=o.slice(0,v+1):o=[o[0]];break}}}return o.reduceRight((f,p,g)=>{let P,R=!1,w=null,b=null;r&&(P=u&&p.route.id?u[p.route.id]:void 0,w=p.route.errorElement||zn,d&&(v<0&&g===0?(Gn("route-fallback",!1),R=!0,b=null):v===g&&(R=!0,b=p.route.hydrateFallbackElement||null)));let F=t.concat(o.slice(0,g+1)),M=()=>{let U;return P?U=w:R?U=b:p.route.Component?U=m.createElement(p.route.Component,null):p.route.element?U=p.route.element:U=f,m.createElement(Hn,{match:p,routeContext:{outlet:f,matches:F,isDataRoute:r!=null},children:U})};return r&&(p.route.ErrorBoundary||p.route.errorElement||g===0)?m.createElement(kn,{location:r.location,revalidation:r.revalidation,component:w,error:P,children:M(),routeContext:{outlet:null,matches:F,isDataRoute:!0}}):M()},null)}var yr=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(yr||{}),ot=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}(ot||{});function Vn(e){let t=m.useContext(Xe);return t||D(!1),t}function $n(e){let t=m.useContext(Lt);return t||D(!1),t}function Kn(e){let t=m.useContext(le);return t||D(!1),t}function wr(e){let t=Kn(),r=t.matches[t.matches.length-1];return r.route.id||D(!1),r.route.id}function Jn(){var e;let t=m.useContext(vr),r=$n(ot.UseRouteError),n=wr(ot.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function Yn(){let{router:e}=Vn(yr.UseNavigateStable),t=wr(ot.UseNavigateStable),r=m.useRef(!1);return gr(()=>{r.current=!0}),m.useCallback(function(a,l){l===void 0&&(l={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Ge({fromRouteId:t},l)))},[e,t])}const rr={};function Gn(e,t,r){!t&&!rr[e]&&(rr[e]=!0)}function Ea(e){let{to:t,replace:r,state:n,relative:a}=e;Ne()||D(!1);let{future:l,static:o}=m.useContext(pe),{matches:u}=m.useContext(le),{pathname:d}=Pe(),v=Dt(),f=lt(t,it(u,l.v7_relativeSplatPath),d,a==="path"),p=JSON.stringify(f);return m.useEffect(()=>v(JSON.parse(p),{replace:r,state:n,relative:a}),[v,p,a,r,n]),null}function Ra(e){return In(e.context)}function Xn(e){D(!1)}function qn(e){let{basename:t="/",children:r=null,location:n,navigationType:a=W.Pop,navigator:l,static:o=!1,future:u}=e;Ne()&&D(!1);let d=t.replace(/^\/*/,"/"),v=m.useMemo(()=>({basename:d,navigator:l,static:o,future:Ge({v7_relativeSplatPath:!1},u)}),[d,u,l,o]);typeof n=="string"&&(n=he(n));let{pathname:f="/",search:p="",hash:g="",state:P=null,key:R="default"}=n,w=m.useMemo(()=>{let b=fe(f,d);return b==null?null:{location:{pathname:b,search:p,hash:g,state:P,key:R},navigationType:a}},[d,f,p,g,P,R,a]);return w==null?null:m.createElement(pe.Provider,{value:v},m.createElement(st.Provider,{children:r,value:w}))}new Promise(()=>{});function nr(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,nr(n.props.children,l));return}n.type!==Xn&&D(!1),!n.props.index||!n.props.children||D(!1);let o={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&&(o.children=nr(n.props.children,l)),r.push(o)}),r}function Qn(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.23.1
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 Oe(){return Oe=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},Oe.apply(this,arguments)}function br(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 Zn(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function ea(e,t){return e.button===0&&(!t||t==="_self")&&!Zn(e)}function Et(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 ta(e,t){let r=Et(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(l=>{r.append(a,l)})}),r}const ra=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],na=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],aa="6";try{window.__reactRouterVersion=aa}catch{}function xa(e,t){return vn({basename:t==null?void 0:t.basename,future:Oe({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:Ar({window:t==null?void 0:t.window}),hydrationData:(t==null?void 0:t.hydrationData)||oa(),routes:e,mapRouteProperties:Qn,unstable_dataStrategy:t==null?void 0:t.unstable_dataStrategy,window:t==null?void 0:t.window}).initialize()}function oa(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Oe({},t,{errors:ia(t.errors)})),t}function ia(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 xt(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 o=new l(a.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let l=new Error(a.message);l.stack="",r[n]=l}}else r[n]=a;return r}const Er=m.createContext({isTransitioning:!1}),la=m.createContext(new Map),sa="startTransition",ar=Ir[sa],ua="flushSync",or=Br[ua];function da(e){ar?ar(e):e()}function Ke(e){or?or(e):e()}class ca{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 Sa(e){let{fallbackElement:t,router:r,future:n}=e,[a,l]=m.useState(r.state),[o,u]=m.useState(),[d,v]=m.useState({isTransitioning:!1}),[f,p]=m.useState(),[g,P]=m.useState(),[R,w]=m.useState(),b=m.useRef(new Map),{v7_startTransition:F}=n||{},M=m.useCallback(c=>{F?da(c):c()},[F]),U=m.useCallback((c,B)=>{let{deletedFetchers:N,unstable_flushSync:j,unstable_viewTransitionOpts:A}=B;N.forEach(J=>b.current.delete(J)),c.fetchers.forEach((J,Z)=>{J.data!==void 0&&b.current.set(Z,J.data)});let q=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!A||q){j?Ke(()=>l(c)):M(()=>l(c));return}if(j){Ke(()=>{g&&(f&&f.resolve(),g.skipTransition()),v({isTransitioning:!0,flushSync:!0,currentLocation:A.currentLocation,nextLocation:A.nextLocation})});let J=r.window.document.startViewTransition(()=>{Ke(()=>l(c))});J.finished.finally(()=>{Ke(()=>{p(void 0),P(void 0),u(void 0),v({isTransitioning:!1})})}),Ke(()=>P(J));return}g?(f&&f.resolve(),g.skipTransition(),w({state:c,currentLocation:A.currentLocation,nextLocation:A.nextLocation})):(u(c),v({isTransitioning:!0,flushSync:!1,currentLocation:A.currentLocation,nextLocation:A.nextLocation}))},[r.window,g,f,b,M]);m.useLayoutEffect(()=>r.subscribe(U),[r,U]),m.useEffect(()=>{d.isTransitioning&&!d.flushSync&&p(new ca)},[d]),m.useEffect(()=>{if(f&&o&&r.window){let c=o,B=f.promise,N=r.window.document.startViewTransition(async()=>{M(()=>l(c)),await B});N.finished.finally(()=>{p(void 0),P(void 0),u(void 0),v({isTransitioning:!1})}),P(N)}},[M,o,f,r.window]),m.useEffect(()=>{f&&o&&a.location.key===o.location.key&&f.resolve()},[f,g,a.location,o]),m.useEffect(()=>{!d.isTransitioning&&R&&(u(R.state),v({isTransitioning:!0,flushSync:!1,currentLocation:R.currentLocation,nextLocation:R.nextLocation}),w(void 0))},[d.isTransitioning,R]),m.useEffect(()=>{},[]);let I=m.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:c=>r.navigate(c),push:(c,B,N)=>r.navigate(c,{state:B,preventScrollReset:N==null?void 0:N.preventScrollReset}),replace:(c,B,N)=>r.navigate(c,{replace:!0,state:B,preventScrollReset:N==null?void 0:N.preventScrollReset})}),[r]),$=r.basename||"/",te=m.useMemo(()=>({router:r,navigator:I,static:!1,basename:$}),[r,I,$]);return m.createElement(m.Fragment,null,m.createElement(Xe.Provider,{value:te},m.createElement(Lt.Provider,{value:a},m.createElement(la.Provider,{value:b.current},m.createElement(Er.Provider,{value:d},m.createElement(qn,{basename:$,location:a.location,navigationType:a.historyAction,navigator:I,future:{v7_relativeSplatPath:r.future.v7_relativeSplatPath}},a.initialized||r.future.v7_partialHydration?m.createElement(fa,{routes:r.routes,future:r.future,state:a}):t))))),null)}function fa(e){let{routes:t,future:r,state:n}=e;return Bn(t,void 0,n,r)}const ha=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",pa=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ma=m.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:l,replace:o,state:u,target:d,to:v,preventScrollReset:f,unstable_viewTransition:p}=t,g=br(t,ra),{basename:P}=m.useContext(pe),R,w=!1;if(typeof v=="string"&&pa.test(v)&&(R=v,ha))try{let U=new URL(window.location.href),I=v.startsWith("//")?new URL(U.protocol+v):new URL(v),$=fe(I.pathname,P);I.origin===U.origin&&$!=null?v=$+I.search+I.hash:w=!0}catch{}let b=On(v,{relative:a}),F=ga(v,{replace:o,state:u,target:d,preventScrollReset:f,relative:a,unstable_viewTransition:p});function M(U){n&&n(U),U.defaultPrevented||F(U)}return m.createElement("a",Oe({},g,{href:R||b,onClick:w||l?n:M,ref:r,target:d}))}),Pa=m.forwardRef(function(t,r){let{"aria-current":n="page",caseSensitive:a=!1,className:l="",end:o=!1,style:u,to:d,unstable_viewTransition:v,children:f}=t,p=br(t,na),g=ut(d,{relative:p.relative}),P=Pe(),R=m.useContext(Lt),{navigator:w,basename:b}=m.useContext(pe),F=R!=null&&ya(g)&&v===!0,M=w.encodeLocation?w.encodeLocation(g).pathname:g.pathname,U=P.pathname,I=R&&R.navigation&&R.navigation.location?R.navigation.location.pathname:null;a||(U=U.toLowerCase(),I=I?I.toLowerCase():null,M=M.toLowerCase()),I&&b&&(I=fe(I,b)||I);const $=M!=="/"&&M.endsWith("/")?M.length-1:M.length;let te=U===M||!o&&U.startsWith(M)&&U.charAt($)==="/",c=I!=null&&(I===M||!o&&I.startsWith(M)&&I.charAt(M.length)==="/"),B={isActive:te,isPending:c,isTransitioning:F},N=te?n:void 0,j;typeof l=="function"?j=l(B):j=[l,te?"active":null,c?"pending":null,F?"transitioning":null].filter(Boolean).join(" ");let A=typeof u=="function"?u(B):u;return m.createElement(ma,Oe({},p,{"aria-current":N,className:j,ref:r,style:A,to:d,unstable_viewTransition:v}),typeof f=="function"?f(B):f)});var Rt;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Rt||(Rt={}));var ir;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(ir||(ir={}));function va(e){let t=m.useContext(Xe);return t||D(!1),t}function ga(e,t){let{target:r,replace:n,state:a,preventScrollReset:l,relative:o,unstable_viewTransition:u}=t===void 0?{}:t,d=Dt(),v=Pe(),f=ut(e,{relative:o});return m.useCallback(p=>{if(ea(p,r)){p.preventDefault();let g=n!==void 0?n:Se(v)===Se(f);d(e,{replace:g,state:a,preventScrollReset:l,relative:o,unstable_viewTransition:u})}},[v,d,f,n,a,r,e,l,o,u])}function Ca(e){let t=m.useRef(Et(e)),r=m.useRef(!1),n=Pe(),a=m.useMemo(()=>ta(n.search,r.current?null:t.current),[n.search]),l=Dt(),o=m.useCallback((u,d)=>{const v=Et(typeof u=="function"?u(a):u);r.current=!0,l("?"+v,d)},[l,a]);return[a,o]}function ya(e,t){t===void 0&&(t={});let r=m.useContext(Er);r==null&&D(!1);let{basename:n}=va(Rt.useViewTransitionState),a=ut(e,{relative:t.relative});if(!r.isTransitioning)return!1;let l=fe(r.currentLocation.pathname,n)||r.currentLocation.pathname,o=fe(r.nextLocation.pathname,n)||r.nextLocation.pathname;return gt(a.pathname,o)!=null||gt(a.pathname,l)!=null}export{ma as L,Ea as N,Ra as O,Xn as R,Dt as a,Ca as b,Pe as c,xa as d,nr as e,Sa as f,ba as g,Pa as h,gt as m,Jn as u};
@@ -0,0 +1 @@
1
+ .react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:grab}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}