@kizenapps/cli 1.10.0 → 1.11.0-3670c77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +330 -32
- package/dist/index.js.map +1 -1
- package/dist/viewer/assets/CodeStepsPage-D_kTMpRO.js +1 -0
- package/dist/viewer/assets/{index-Du4zThGL.js → index-BF1Fk_v0.js} +2 -2
- package/dist/viewer/index.html +1 -1
- package/package.json +1 -1
- package/dist/viewer/assets/CodeStepsPage-CvCrJCQn.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{A as t,E as n,F as r,I as i,P as a,a as o,s}from"./fa-core-BSqLAjHu.js";import{t as c}from"./useNavigate-BL0GTcH4.js";import{t as l}from"./useParams-D3awshYI.js";import{t as u}from"./useQuery-JKMI40WO.js";import{t as d}from"./bundleQuery-BE1Gb8Ii.js";import{i as f}from"./api--Ax6VWLq.js";import{t as p}from"./Card-Sa52PGkn.js";import{t as m}from"./CodeViewer-CVECJY4e.js";import{t as h}from"./useLocalStorage-wp83IS34.js";import{t as g}from"./usePluginConfig-C8d13THZ.js";import{t as _}from"./WhenBadge-B7s7fns2.js";var v=e(i(),1);function y(e){return e==null||e.trim()===``?null:e}function b(e,t){return Object.fromEntries(e.map(e=>[e,y(t[e])]))}var x=r(),S=({title:e,defaultOpen:t=!1,children:n})=>{let[r,i]=(0,v.useState)(t);return(0,x.jsxs)(`div`,{children:[(0,x.jsxs)(`button`,{onClick:()=>{i(e=>!e)},className:`flex w-full items-center gap-1.5 py-1 text-[11px] font-semibold uppercase tracking-widest text-neutral-400 hover:text-neutral-600`,children:[(0,x.jsx)(a,{icon:r?o:s,className:`w-2.5`}),e]}),r&&(0,x.jsx)(`div`,{className:`pb-2`,children:n})]})},C=({result:e})=>{let t=Object.entries(e.outputValues);return(0,x.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-black/10 bg-white p-4`,children:[(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsx)(`span`,{className:`rounded px-2 py-0.5 text-[11px] font-semibold ${e.success?`bg-green-100 text-green-700`:`bg-red-100 text-red-700`}`,children:e.success?`Success`:`Error`}),(0,x.jsxs)(`span`,{className:`text-[11px] text-neutral-400`,children:[String(e.durationMs),`ms`]}),e.exitCode!==0&&(0,x.jsxs)(`span`,{className:`text-[11px] text-neutral-400`,children:[`exit code `,String(e.exitCode)]}),(0,x.jsx)(`button`,{onClick:e=>{let t=e.currentTarget;for(;t;){if(t.scrollHeight>t.clientHeight){t.scrollTo({top:0,behavior:`smooth`});return}t=t.parentElement}},className:`ml-auto text-[11px] text-neutral-400 hover:text-neutral-600`,children:`↑ top`})]}),e.error&&(0,x.jsx)(`pre`,{className:`overflow-auto rounded bg-red-50 p-3 font-mono text-[12px] text-red-800`,children:e.error}),t.length>0&&(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`mb-1 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Outputs`}),(0,x.jsx)(`div`,{className:`divide-y divide-black/5`,children:t.map(([e,t])=>(0,x.jsxs)(`div`,{className:`flex items-start gap-2 py-1.5`,children:[(0,x.jsx)(`span`,{className:`shrink-0 font-mono text-[12px] text-neutral-600`,children:e}),(0,x.jsx)(`span`,{className:`text-[11px] text-neutral-300`,children:`=`}),(0,x.jsx)(`pre`,{className:`min-w-0 flex-1 overflow-auto font-mono text-[12px] text-neutral-800`,children:typeof t==`string`?t:JSON.stringify(t,null,2)})]},e))})]}),e.logs.length>0&&(0,x.jsx)(S,{title:`Logs (${String(e.logs.length)})`,children:(0,x.jsx)(`div`,{className:`space-y-0.5`,children:e.logs.map((e,t)=>(0,x.jsx)(`div`,{className:`font-mono text-[12px] text-neutral-600`,children:e},t))})}),e.stdout&&(0,x.jsx)(S,{title:`Stdout`,children:(0,x.jsx)(`pre`,{className:`overflow-auto rounded bg-neutral-50 p-3 font-mono text-[12px] text-neutral-700`,children:e.stdout})}),e.stderr&&(0,x.jsx)(S,{title:`Stderr`,children:(0,x.jsx)(`pre`,{className:`overflow-auto rounded bg-neutral-50 p-3 font-mono text-[12px] text-neutral-700`,children:e.stderr})}),e.httpRequests&&e.httpRequests.count>0&&(0,x.jsx)(S,{title:`Network (${String(e.httpRequests.count)}${e.httpRequests.notLogged>0?`, ${String(e.httpRequests.notLogged)} not logged`:``})`,children:(0,x.jsx)(`div`,{className:`space-y-1.5`,children:e.httpRequests.requests.map((e,t)=>(0,x.jsx)(E,{request:e},t))})})]})},w=e=>{switch(e.toUpperCase()){case`GET`:return`bg-blue-100 text-blue-700`;case`POST`:return`bg-green-100 text-green-700`;case`PUT`:case`PATCH`:return`bg-amber-100 text-amber-700`;case`DELETE`:return`bg-red-100 text-red-700`;default:return`bg-neutral-100 text-neutral-700`}},T=(e,t)=>t||e>=500?`text-red-700`:e>=400?`text-amber-700`:e>=200?`text-green-700`:`text-neutral-600`,E=({request:e})=>{let[t,n]=(0,v.useState)(!1),r=e.requestErrorType!==null;return(0,x.jsxs)(`div`,{className:`rounded border border-black/5 bg-neutral-50`,children:[(0,x.jsxs)(`button`,{onClick:()=>{n(e=>!e)},className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left hover:bg-neutral-100`,children:[(0,x.jsx)(a,{icon:t?o:s,className:`w-2.5 text-neutral-400`}),(0,x.jsx)(`span`,{className:`rounded px-1.5 py-0.5 font-mono text-[10px] font-semibold ${w(e.method)}`,children:e.method}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[12px] text-neutral-700`,children:e.url}),(0,x.jsx)(`span`,{className:`font-mono text-[11px] font-semibold ${T(e.responseStatusCode,r)}`,children:r?e.requestErrorType:e.responseStatusCode}),(0,x.jsxs)(`span`,{className:`font-mono text-[10px] text-neutral-400`,children:[(e.duration*1e3).toFixed(0),`ms`]})]}),t&&(0,x.jsxs)(`div`,{className:`space-y-2 border-t border-black/5 p-2.5`,children:[(0,x.jsx)(D,{title:`Request Headers`,data:e.headers}),e.body&&(0,x.jsx)(O,{title:`Request Body`,body:e.body}),(0,x.jsx)(D,{title:`Response Headers`,data:e.responseHeaders}),e.responseBody&&(0,x.jsx)(O,{title:`Response Body`,body:e.responseBody})]})]})},D=({title:e,data:t})=>{let n=Object.entries(t);return n.length===0?null:(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-widest text-neutral-400`,children:e}),(0,x.jsx)(`div`,{className:`divide-y divide-black/5 rounded border border-black/5 bg-white`,children:n.map(([e,t])=>(0,x.jsxs)(`div`,{className:`flex gap-2 px-2 py-1 font-mono text-[11px]`,children:[(0,x.jsxs)(`span`,{className:`shrink-0 text-neutral-500`,children:[e,`:`]}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 break-all text-neutral-800`,children:t})]},e))})]})},O=({title:e,body:t})=>(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-widest text-neutral-400`,children:e}),(0,x.jsx)(`pre`,{className:`overflow-auto rounded border border-black/5 bg-white p-2 font-mono text-[11px] text-neutral-800`,children:t})]}),k=[`python-3-12`,`python-3-13`],A=`python-3-13`,j={text:`s`,string:`s`,number:`n`,integer:`n`,boolean:`b`,date:`d`,datetime:`dt`,phone:`p`,phonenumber:`p`,uuid:`u`,file:`f`,list:`l`};function M(e){return j[e.toLowerCase()]??`s`}function N(e){return k.includes(e)}function P(e,t){let n=Object.keys(e);if(n.length===0)return null;let r={};for(let i of n)r[i]={t:M(t[i]??`string`),v:y(e[i])};return r}function F(e){let t=Object.keys(e);if(t.length===0)return null;let n={};for(let r of t)n[r]=M(e[r]??`string`);return n}function I(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r.v;return t}function L(e){if(!e)return;let t=e.requests.map(e=>({method:e.method,url:e.url,headers:e.headers,body:e.body,requestSubmittedAt:e.requestSubmittedAt,session:e.session,responseStatusCode:e.responseStatusCode,responseHeaders:e.responseHeaders,responseBody:e.responseBody,requestErrorType:e.requestErrorType,duration:e.duration}));return{count:e.count,notLogged:e.not_logged,requests:t}}async function R(e,t){let n=Date.now(),r=t.scriptRuntime||A;if(!N(r))return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Unsupported runtime "${r}". Supported runtimes: ${k.join(`, `)}. Update the step's config.json "runtime" field (e.g. "python 3.13").`,exitCode:1,durationMs:Date.now()-n};let i={user_script:t.script,runtime:r,secrets:t.secretNames.length>0?t.secretNames:void 0,inputs:P(t.inputs,t.inputTypes),output_types:F(t.outputTypes)};try{let t=await e(`/coderunner/run`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)}),r=Date.now()-n;if(!t.ok){let e=await t.text();return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Remote runner returned ${String(t.status)}: ${e}`,exitCode:1,durationMs:r}}let a=await t.json(),o=a.error!==null,s=L(a.http_requests),c={success:!o,outputValues:I(a.values),logs:a.logs??[],stdout:``,stderr:``,exitCode:+!!o,durationMs:a.duration_ms??r,...s&&{httpRequests:s}};return o&&a.error&&(c.error=a.error.detail?`${a.error.error}\n${a.error.detail}`:a.error.error),c}catch(e){return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Remote execution failed: ${e instanceof Error?e.message:String(e)}`,exitCode:1,durationMs:Date.now()-n}}}var z=()=>{let{apiName:e,stepApiName:r}=l({strict:!1}),i=c(),{data:o,isLoading:s,isError:y}=u(d),S=f(),[w,T]=(0,v.useState)(!1),[E,D]=(0,v.useState)(null),[O,k]=h(`kizen-step-inputs:${e??``}:${r??``}`,{}),[A,j]=h(`kizen-step-secrets:${e??``}:${r??``}`,{}),[M,N]=h(`kizen-code-runner-mode`,`local`),P=(0,v.useMemo)(()=>o?.find(t=>t.api_name===e),[o,e]),F=(0,v.useMemo)(()=>P?.artifacts.automation_action_configs??[],[P]),I=F.find(e=>e.action_step_api_name===r)??F[0],L=P?.base_config,{whenState:z}=g(e,L,P?.config_template);if((0,v.useEffect)(()=>{if(!r&&F.length>0&&e){let t=F[0];t&&i({to:`/$apiName/code-steps/$stepApiName`,params:{apiName:e,stepApiName:t.action_step_api_name},replace:!0})}},[r,F,e,i]),(0,v.useEffect)(()=>{D(null)},[r]),s)return(0,x.jsx)(p,{children:(0,x.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-400`,children:`Fetching bundle.json…`})});if(y)return(0,x.jsx)(p,{children:(0,x.jsx)(`p`,{className:`m-0 text-[13px] text-red-700`,children:`Could not load bundle.json.`})});if(!P)return(0,x.jsx)(p,{children:(0,x.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`No app found with api_name`,` `,(0,x.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:e}),`.`]})});if(F.length===0)return(0,x.jsx)(p,{children:(0,x.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:`This app has no automation code steps.`})});if(!I)return(0,x.jsx)(p,{children:(0,x.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`Step not found: `,(0,x.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:r}),`.`]})});let B=async()=>{T(!0),D(null);try{let t=b(I.inputs.map(e=>e.name),O),n;n=M===`remote`?await R(S,{script:I.script,scriptRuntime:I.script_runtime,inputs:t,inputTypes:Object.fromEntries(I.inputs.map(e=>[e.name,e.data_type])),outputTypes:Object.fromEntries(I.outputs.map(e=>[e.name,e.data_type])),secretNames:I.secrets.map(t=>`${e??``}__${t}`)}):await(await fetch(`/api/execute-step`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({script:I.script,scriptRuntime:I.script_runtime,inputs:t,secrets:Object.fromEntries(I.secrets.map(t=>[`${e??``}__${t}`,A[t]??``]))})})).json(),D(n)}catch(e){D({success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:e instanceof Error?e.message:String(e),exitCode:1,durationMs:0})}finally{T(!1)}};return(0,x.jsxs)(`div`,{className:`space-y-4`,children:[(0,x.jsxs)(p,{children:[(0,x.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,x.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Code Step`}),(0,x.jsx)(`select`,{value:I.action_step_api_name,onChange:t=>{e&&i({to:`/$apiName/code-steps/$stepApiName`,params:{apiName:e,stepApiName:t.target.value}})},className:`rounded border border-black/10 bg-transparent px-2 py-0.5 text-[13px] font-mono text-neutral-700 focus:outline-none`,children:F.map(e=>(0,x.jsx)(`option`,{value:e.action_step_api_name,children:e.name},e.action_step_api_name))}),(0,x.jsx)(`div`,{className:`flex-1`}),(0,x.jsx)(`span`,{className:`rounded bg-blue-50 px-1.5 py-0.5 text-[10px] font-semibold text-blue-600`,children:I.script_runtime})]}),I.overall_description&&(0,x.jsx)(`p`,{className:`mt-2 text-[12px] text-neutral-500`,children:I.overall_description}),I.when&&(0,x.jsx)(`div`,{className:`mt-2`,children:(0,x.jsx)(_,{when:I.when,whenState:z})})]}),(0,x.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-3`,children:[(0,x.jsxs)(p,{children:[(0,x.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Inputs`}),I.inputs.length>0?(0,x.jsx)(`div`,{className:`space-y-3`,children:I.inputs.map(e=>(0,x.jsxs)(`div`,{children:[(0,x.jsxs)(`label`,{className:`mb-1 block text-[12px] text-neutral-700`,children:[e.label,e.required&&(0,x.jsx)(`span`,{className:`ml-0.5 text-red-500`,children:`*`})]}),(0,x.jsx)(`input`,{type:`text`,value:O[e.name]??``,onChange:t=>{k({...O,[e.name]:t.target.value})},placeholder:e.name,className:`w-full rounded border border-black/10 bg-white px-2.5 py-1.5 font-mono text-[13px] text-neutral-800 placeholder:text-neutral-300 focus:border-blue-300 focus:outline-none`}),(0,x.jsx)(`div`,{className:`mt-0.5 font-mono text-[10px] text-neutral-400`,children:e.name})]},e.name))}):(0,x.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]}),(0,x.jsxs)(p,{children:[(0,x.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Outputs`}),I.outputs.length>0?(0,x.jsx)(`div`,{className:`space-y-2`,children:I.outputs.map(e=>(0,x.jsxs)(`div`,{className:`flex items-baseline gap-2 rounded border border-black/5 bg-neutral-50 px-2.5 py-1.5`,children:[(0,x.jsx)(`span`,{className:`text-[13px] text-neutral-700`,children:e.label}),(0,x.jsx)(`span`,{className:`font-mono text-[10px] text-neutral-400`,children:e.name}),(0,x.jsx)(`span`,{className:`ml-auto rounded bg-white px-1.5 py-0.5 font-mono text-[10px] text-neutral-500`,children:e.data_type})]},e.name))}):(0,x.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]}),(0,x.jsxs)(p,{children:[(0,x.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Secrets`}),M===`remote`&&(0,x.jsx)(`p`,{className:`mb-3 rounded border border-blue-100 bg-blue-50 px-2.5 py-1.5 text-[12px] text-blue-700`,children:`Remote runner uses secrets from your business context.`}),I.secrets.length>0?(0,x.jsx)(`div`,{className:`space-y-3`,children:I.secrets.map(e=>(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`label`,{className:`mb-1 block text-[12px] text-neutral-700`,children:e}),(0,x.jsx)(`input`,{type:`password`,value:A[e]??``,onChange:t=>{j({...A,[e]:t.target.value})},placeholder:e,disabled:M===`remote`,className:`w-full rounded border border-black/10 bg-white px-2.5 py-1.5 font-mono text-[13px] text-neutral-800 placeholder:text-neutral-300 focus:border-blue-300 focus:outline-none disabled:cursor-not-allowed disabled:bg-neutral-50 disabled:text-neutral-400`})]},e))}):(0,x.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]})]}),(0,x.jsx)(m,{code:I.script,language:`python`,onRun:()=>void B(),isRunning:w,executionMode:M,onModeChange:N}),(0,x.jsx)(`div`,{className:`sticky bottom-0 z-10 max-h-[60vh] overflow-y-auto rounded-lg shadow-[0_-8px_24px_-12px_rgba(0,0,0,0.18)]`,children:E?(0,x.jsx)(C,{result:E}):(0,x.jsx)(`div`,{className:`flex items-center gap-2 rounded-lg border border-dashed border-black/10 bg-white px-4 py-3`,children:w?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{icon:t,className:`animate-spin text-neutral-400`}),(0,x.jsx)(`span`,{className:`text-[12px] text-neutral-500`,children:`Running step…`})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{icon:n,className:`text-neutral-300`}),(0,x.jsx)(`span`,{className:`text-[12px] text-neutral-400`,children:`Run the step to see output, logs, and network activity here.`})]})})})]})};export{z as CodeStepsPage};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DevSidebar-zX-4CWYv.js","assets/rolldown-runtime-Dw2cE7zH.js","assets/fa-core-BSqLAjHu.js","assets/CredentialsContext-Cwl_xyt_.js","assets/Dialog-C3QoiHOt.js","assets/Tooltip-JYkgiL8J.js","assets/react-C5hrIo29.js","assets/storageKeys-DPq6kaaE.js","assets/AppDetailPage-D9xr-bY8.js","assets/useQuery-JKMI40WO.js","assets/useParams-D3awshYI.js","assets/formatBytes-BXYIMbyB.js","assets/bundleQuery-BE1Gb8Ii.js","assets/Card-Sa52PGkn.js","assets/blockDimensions-BhWxVVcK.js","assets/validIcons-D8mhuO5s.js","assets/setupAssistant-DtI9NWXr.js","assets/SandboxPage-DuCHX1FY.js","assets/api--Ax6VWLq.js","assets/useCompleteSetup-DUHoBgca.js","assets/BootstrapContext-CS2e3X9Y.js","assets/usePluginConfig-C8d13THZ.js","assets/SidebarContext-q5sbcZXM.js","assets/WhenBadge-B7s7fns2.js","assets/useLocalStorage-wp83IS34.js","assets/ConfigurationPage-5qOX-sx0.js","assets/CodeViewer-CVECJY4e.js","assets/CodeViewer-DdKuH37F.css","assets/VersionsPage-yNilRkEf.js","assets/IconReferencePage-BxPfyqlV.js","assets/CodeStepsPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DevSidebar-zX-4CWYv.js","assets/rolldown-runtime-Dw2cE7zH.js","assets/fa-core-BSqLAjHu.js","assets/CredentialsContext-Cwl_xyt_.js","assets/Dialog-C3QoiHOt.js","assets/Tooltip-JYkgiL8J.js","assets/react-C5hrIo29.js","assets/storageKeys-DPq6kaaE.js","assets/AppDetailPage-D9xr-bY8.js","assets/useQuery-JKMI40WO.js","assets/useParams-D3awshYI.js","assets/formatBytes-BXYIMbyB.js","assets/bundleQuery-BE1Gb8Ii.js","assets/Card-Sa52PGkn.js","assets/blockDimensions-BhWxVVcK.js","assets/validIcons-D8mhuO5s.js","assets/setupAssistant-DtI9NWXr.js","assets/SandboxPage-DuCHX1FY.js","assets/api--Ax6VWLq.js","assets/useCompleteSetup-DUHoBgca.js","assets/BootstrapContext-CS2e3X9Y.js","assets/usePluginConfig-C8d13THZ.js","assets/SidebarContext-q5sbcZXM.js","assets/WhenBadge-B7s7fns2.js","assets/useLocalStorage-wp83IS34.js","assets/ConfigurationPage-5qOX-sx0.js","assets/CodeViewer-CVECJY4e.js","assets/CodeViewer-DdKuH37F.css","assets/VersionsPage-yNilRkEf.js","assets/IconReferencePage-BxPfyqlV.js","assets/CodeStepsPage-D_kTMpRO.js","assets/useNavigate-BL0GTcH4.js","assets/SourceBrowserPage-DluS8U4q.js","assets/SecretsPage-Da55-e_S.js","assets/bootstrapQuery-CyYWFe68.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{C as t,F as n,I as r,O as i,P as a,S as o,a as s,b as c,d as l,g as u,j as d,k as f,n as p,r as m,u as h,x as g,y as _}from"./fa-core-BSqLAjHu.js";import{n as v,t as y}from"./react-C5hrIo29.js";import{a as b,i as x,n as S,r as C,t as w}from"./useNavigate-BL0GTcH4.js";import{_ as T,a as E,b as D,c as O,d as k,f as A,g as ee,h as te,i as ne,l as re,m as j,n as M,o as ie,p as N,r as P,s as F,t as ae,u as I,v as L,y as R}from"./useParams-D3awshYI.js";import{I as oe,M as se,N as z,O as B,d as ce,f as le,t as V,v as H,w as ue}from"./useQuery-JKMI40WO.js";import{a as de,i as fe,r as pe,t as me}from"./BootstrapContext-CS2e3X9Y.js";import{t as he}from"./bundleQuery-BE1Gb8Ii.js";import{t as ge}from"./CredentialsContext-Cwl_xyt_.js";import{n as _e,t as ve}from"./api--Ax6VWLq.js";import{t as ye}from"./bootstrapQuery-CyYWFe68.js";import{t as U}from"./SidebarContext-q5sbcZXM.js";import{n as be,t as xe}from"./Dialog-C3QoiHOt.js";import{d as Se,t as W}from"./storageKeys-DPq6kaaE.js";import{t as Ce}from"./Card-Sa52PGkn.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function we(e){let t=new Map,n,r,i=e=>{e.next&&(e.prev?(e.prev.next=e.next,e.next.prev=e.prev,e.next=void 0,r&&(r.next=e,e.prev=r)):(e.next.prev=void 0,n=e.next,e.next=void 0,r&&(e.prev=r,r.next=e)),r=e)};return{get(e){let n=t.get(e);if(n)return i(n),n.value},set(a,o){if(t.size>=e&&n){let e=n;t.delete(e.key),e.next&&(n=e.next,e.next.prev=void 0),e===r&&(r=void 0)}let s=t.get(a);if(s)s.value=o,i(s);else{let e={key:a,value:o,prev:r};r&&(r.next=e),r=e,n||=e,t.set(a,e)}},clear(){t.clear(),n=void 0,r=void 0}}}var Te=4,Ee=5;function De(e){let t=e.indexOf(`{`);if(t===-1)return null;let n=e.indexOf(`}`,t);return n===-1||t+1>=e.length?null:[t,n]}function Oe(e,t,n=new Uint16Array(6)){let r=e.indexOf(`/`,t),i=r===-1?e.length:r,a=e.substring(t,i);if(!a||!a.includes(`$`))return n[0]=0,n[1]=t,n[2]=t,n[3]=i,n[4]=i,n[5]=i,n;if(a===`$`){let r=e.length;return n[0]=2,n[1]=t,n[2]=t,n[3]=r,n[4]=r,n[5]=r,n}if(a.charCodeAt(0)===36)return n[0]=1,n[1]=t,n[2]=t+1,n[3]=i,n[4]=i,n[5]=i,n;let o=De(a);if(o){let[r,s]=o,c=a.charCodeAt(r+1);if(c===45){if(r+2<a.length&&a.charCodeAt(r+2)===36){let e=r+3,a=s;if(e<a)return n[0]=3,n[1]=t+r,n[2]=t+e,n[3]=t+a,n[4]=t+s+1,n[5]=i,n}}else if(c===36){let a=r+1,o=r+2;return o===s?(n[0]=2,n[1]=t+r,n[2]=t+a,n[3]=t+o,n[4]=t+s+1,n[5]=e.length,n):(n[0]=1,n[1]=t+r,n[2]=t+o,n[3]=t+s,n[4]=t+s+1,n[5]=i,n)}}return n[0]=0,n[1]=t,n[2]=t,n[3]=i,n[4]=i,n[5]=i,n}function ke(e,t,n,r,i,a,o){o?.(n);let s=r;{let r=n.fullPath??n.from,o=r.length,c=n.options?.caseSensitive??e,l=!!(n.options?.params?.parse&&n.options?.skipRouteOnParseError?.params);for(;s<o;){let e=Oe(r,s,t),o,u=s,d=e[5];switch(s=d+1,a++,e[0]){case 0:{let t=r.substring(e[2],e[3]);if(c){let e=i.static?.get(t);if(e)o=e;else{i.static??=new Map;let e=Me(n.fullPath??n.from);e.parent=i,e.depth=a,o=e,i.static.set(t,e)}}else{let e=t.toLowerCase(),r=i.staticInsensitive?.get(e);if(r)o=r;else{i.staticInsensitive??=new Map;let t=Me(n.fullPath??n.from);t.parent=i,t.depth=a,o=t,i.staticInsensitive.set(e,t)}}break}case 1:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),f=c&&!!(t||s),p=t?f?t:t.toLowerCase():void 0,m=s?f?s:s.toLowerCase():void 0,h=!l&&i.dynamic?.find(e=>!e.skipOnParamError&&e.caseSensitive===f&&e.prefix===p&&e.suffix===m);if(h)o=h;else{let e=Ne(1,n.fullPath??n.from,f,p,m);o=e,e.depth=a,e.parent=i,i.dynamic??=[],i.dynamic.push(e)}break}case 3:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),f=c&&!!(t||s),p=t?f?t:t.toLowerCase():void 0,m=s?f?s:s.toLowerCase():void 0,h=!l&&i.optional?.find(e=>!e.skipOnParamError&&e.caseSensitive===f&&e.prefix===p&&e.suffix===m);if(h)o=h;else{let e=Ne(3,n.fullPath??n.from,f,p,m);o=e,e.parent=i,e.depth=a,i.optional??=[],i.optional.push(e)}break}case 2:{let t=r.substring(u,e[1]),s=r.substring(e[4],d),l=c&&!!(t||s),f=t?l?t:t.toLowerCase():void 0,p=s?l?s:s.toLowerCase():void 0,m=Ne(2,n.fullPath??n.from,l,f,p);o=m,m.parent=i,m.depth=a,i.wildcard??=[],i.wildcard.push(m)}}i=o}if(l&&n.children&&!n.isRoot&&n.id&&n.id.charCodeAt(n.id.lastIndexOf(`/`)+1)===95){let e=Me(n.fullPath??n.from);e.kind=Ee,e.parent=i,a++,e.depth=a,i.pathless??=[],i.pathless.push(e),i=e}let u=(n.path||!n.children)&&!n.isRoot;if(u&&r.endsWith(`/`)){let e=Me(n.fullPath??n.from);e.kind=Te,e.parent=i,a++,e.depth=a,i.index=e,i=e}i.parse=n.options?.params?.parse??null,i.skipOnParamError=l,i.parsingPriority=n.options?.skipRouteOnParseError?.priority??0,u&&!i.route&&(i.route=n,i.fullPath=n.fullPath??n.from)}if(n.children)for(let r of n.children)ke(e,t,r,s,i,a,o)}function Ae(e,t){if(e.skipOnParamError&&!t.skipOnParamError)return-1;if(!e.skipOnParamError&&t.skipOnParamError)return 1;if(e.skipOnParamError&&t.skipOnParamError&&(e.parsingPriority||t.parsingPriority))return t.parsingPriority-e.parsingPriority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function je(e){if(e.pathless)for(let t of e.pathless)je(t);if(e.static)for(let t of e.static.values())je(t);if(e.staticInsensitive)for(let t of e.staticInsensitive.values())je(t);if(e.dynamic?.length){e.dynamic.sort(Ae);for(let t of e.dynamic)je(t)}if(e.optional?.length){e.optional.sort(Ae);for(let t of e.optional)je(t)}if(e.wildcard?.length){e.wildcard.sort(Ae);for(let t of e.wildcard)je(t)}}function Me(e){return{kind:0,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:e,parent:null,parse:null,skipOnParamError:!1,parsingPriority:0}}function Ne(e,t,n,r,i){return{kind:e,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:t,parent:null,parse:null,skipOnParamError:!1,parsingPriority:0,caseSensitive:n,prefix:r,suffix:i}}function Pe(e,t){let n=Me(`/`),r=new Uint16Array(6);for(let t of e)ke(!1,r,t,1,n,0);je(n),t.masksTree=n,t.flatCache=we(1e3)}function Fe(e,t){e||=`/`;let n=t.flatCache.get(e);if(n)return n;let r=Be(e,t.masksTree);return t.flatCache.set(e,r),r}function Ie(e,t,n,r,i){e||=`/`,r||=`/`;let a=t?`case\0${e}`:e,o=i.singleCache.get(a);return o||(o=Me(`/`),ke(t,new Uint16Array(6),{from:e},1,o,0),i.singleCache.set(a,o)),Be(r,o,n)}function Le(e,t,n=!1){let r=n?e:`nofuzz\0${e}`,i=t.matchCache.get(r);if(i!==void 0)return i;e||=`/`;let a;try{a=Be(e,t.segmentTree,n)}catch(e){if(e instanceof URIError)a=null;else throw e}return a&&(a.branch=He(a.route)),t.matchCache.set(r,a),a}function Re(e){return e===`/`?e:e.replace(/\/{1,}$/,``)}function ze(e,t=!1,n){let r=Me(e.fullPath),i=new Uint16Array(6),a={},o={},s=0;return ke(t,i,e,1,r,0,e=>{if(n?.(e,s),e.id in a&&F(),a[e.id]=e,s!==0&&e.path){let t=Re(e.fullPath);(!o[t]||e.fullPath.endsWith(`/`))&&(o[t]=e)}s++}),je(r),{processedTree:{segmentTree:r,singleCache:we(1e3),matchCache:we(1e3),flatCache:null,masksTree:null},routesById:a,routesByPath:o}}function Be(e,t,n=!1){let r=e.split(`/`),i=We(e,r,t,n);if(!i)return null;let[a]=Ve(e,r,i);return{route:i.node.route,rawParams:a,parsedParams:i.parsedParams}}function Ve(e,t,n){let r=Ue(n.node),i=null,a=Object.create(null),o=n.extract?.part??0,s=n.extract?.node??0,c=n.extract?.path??0,l=n.extract?.segment??0;for(;s<r.length;o++,s++,c++,l++){let u=r[s];if(u.kind===Te)break;if(u.kind===Ee){l--,o--,c--;continue}let d=t[o],f=c;if(d&&(c+=d.length),u.kind===1){i??=n.node.fullPath.split(`/`);let e=i[l],t=u.prefix?.length??0;if(e.charCodeAt(t)===123){let n=u.suffix?.length??0,r=e.substring(t+2,e.length-n-1),i=d.substring(t,d.length-n);a[r]=decodeURIComponent(i)}else{let t=e.substring(1);a[t]=decodeURIComponent(d)}}else if(u.kind===3){if(n.skipped&1<<s){o--,c=f-1;continue}i??=n.node.fullPath.split(`/`);let e=i[l],t=u.prefix?.length??0,r=u.suffix?.length??0,p=e.substring(t+3,e.length-r-1),m=u.suffix||u.prefix?d.substring(t,d.length-r):d;m&&(a[p]=decodeURIComponent(m))}else if(u.kind===2){let t=u,n=e.substring(f+(t.prefix?.length??0),e.length-(t.suffix?.length??0)),r=decodeURIComponent(n);a[`*`]=r,a._splat=r;break}}return n.rawParams&&Object.assign(a,n.rawParams),[a,{part:o,node:s,path:c,segment:l}]}function He(e){let t=[e];for(;e.parentRoute;)e=e.parentRoute,t.push(e);return t.reverse(),t}function Ue(e){let t=Array(e.depth+1);do t[e.depth]=e,e=e.parent;while(e);return t}function We(e,t,n,r){if(e===`/`&&n.index)return{node:n.index,skipped:0};let i=!L(t),a=i&&e!==`/`,o=t.length-+!!i,s=[{node:n,index:1,skipped:0,depth:1,statics:1,dynamics:0,optionals:0}],c=null,l=null,u=null;for(;s.length;){let n=s.pop(),{node:i,index:d,skipped:f,depth:p,statics:m,dynamics:h,optionals:g}=n,{extract:_,rawParams:v,parsedParams:y}=n;if(i.skipOnParamError){if(!Ge(e,t,n))continue;v=n.rawParams,_=n.extract,y=n.parsedParams}r&&i.route&&i.kind!==Te&&Ke(l,n)&&(l=n);let b=d===o;if(b&&(i.route&&!a&&Ke(u,n)&&(u=n),!i.optional&&!i.wildcard&&!i.index&&!i.pathless))continue;let x=b?void 0:t[d],S;if(b&&i.index){let n={node:i.index,index:d,skipped:f,depth:p+1,statics:m,dynamics:h,optionals:g,extract:_,rawParams:v,parsedParams:y},r=!0;if(i.index.skipOnParamError&&(Ge(e,t,n)||(r=!1)),r){if(m===o&&!h&&!g&&!f)return n;Ke(u,n)&&(u=n)}}if(i.wildcard&&Ke(c,n))for(let n of i.wildcard){let{prefix:r,suffix:i}=n;if(r&&(b||!(n.caseSensitive?x:S??=x.toLowerCase()).startsWith(r)))continue;if(i){if(b)continue;let e=t.slice(d).join(`/`).slice(-i.length);if((n.caseSensitive?e:e.toLowerCase())!==i)continue}let a={node:n,index:o,skipped:f,depth:p,statics:m,dynamics:h,optionals:g,extract:_,rawParams:v,parsedParams:y};if(!(n.skipOnParamError&&!Ge(e,t,a))){c=a;break}}if(i.optional){let e=f|1<<p,t=p+1;for(let n=i.optional.length-1;n>=0;n--){let r=i.optional[n];s.push({node:r,index:d,skipped:e,depth:t,statics:m,dynamics:h,optionals:g,extract:_,rawParams:v,parsedParams:y})}if(!b)for(let e=i.optional.length-1;e>=0;e--){let n=i.optional[e],{prefix:r,suffix:a}=n;if(r||a){let e=n.caseSensitive?x:S??=x.toLowerCase();if(r&&!e.startsWith(r)||a&&!e.endsWith(a))continue}s.push({node:n,index:d+1,skipped:f,depth:t,statics:m,dynamics:h,optionals:g+1,extract:_,rawParams:v,parsedParams:y})}}if(!b&&i.dynamic&&x)for(let e=i.dynamic.length-1;e>=0;e--){let t=i.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){let e=t.caseSensitive?x:S??=x.toLowerCase();if(n&&!e.startsWith(n)||r&&!e.endsWith(r))continue}s.push({node:t,index:d+1,skipped:f,depth:p+1,statics:m,dynamics:h+1,optionals:g,extract:_,rawParams:v,parsedParams:y})}if(!b&&i.staticInsensitive){let e=i.staticInsensitive.get(S??=x.toLowerCase());e&&s.push({node:e,index:d+1,skipped:f,depth:p+1,statics:m+1,dynamics:h,optionals:g,extract:_,rawParams:v,parsedParams:y})}if(!b&&i.static){let e=i.static.get(x);e&&s.push({node:e,index:d+1,skipped:f,depth:p+1,statics:m+1,dynamics:h,optionals:g,extract:_,rawParams:v,parsedParams:y})}if(i.pathless){let e=p+1;for(let t=i.pathless.length-1;t>=0;t--){let n=i.pathless[t];s.push({node:n,index:d,skipped:f,depth:e,statics:m,dynamics:h,optionals:g,extract:_,rawParams:v,parsedParams:y})}}}if(u&&c)return Ke(c,u)?u:c;if(u)return u;if(c)return c;if(r&&l){let n=l.index;for(let e=0;e<l.index;e++)n+=t[e].length;let r=n===e.length?`/`:e.slice(n);return l.rawParams??=Object.create(null),l.rawParams[`**`]=decodeURIComponent(r),l}return null}function Ge(e,t,n){try{let[r,i]=Ve(e,t,n);n.rawParams=r,n.extract=i;let a=n.node.parse(r);return n.parsedParams=Object.assign(Object.create(null),n.parsedParams,a),!0}catch{return null}}function Ke(e,t){return e?t.statics>e.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===Te)>(e.node.kind===Te)||t.node.kind===Te==(e.node.kind===Te)&&t.depth>e.depth))):!0}function qe(e){return Je(e.filter(e=>e!==void 0).join(`/`))}function Je(e){return e.replace(/\/{2,}/g,`/`)}function Ye(e){return e===`/`?e:e.replace(/^\/{1,}/,``)}function Xe(e){let t=e.length;return t>1&&e[t-1]===`/`?e.replace(/\/{1,}$/,``):e}function Ze(e){return Xe(Ye(e))}function Qe(e,t){return e?.endsWith(`/`)&&e!==`/`&&e!==`${t}/`?e.slice(0,-1):e}function $e(e,t,n){return Qe(e,n)===Qe(t,n)}function et({base:e,to:t,trailingSlash:n=`never`,cache:r}){let i=t.startsWith(`/`),a=!i&&t===`.`,o;if(r){o=i?t:a?e:e+`\0`+t;let n=r.get(o);if(n)return n}let s;if(a)s=e.split(`/`);else if(i)s=t.split(`/`);else{for(s=e.split(`/`);s.length>1&&L(s)===``;)s.pop();let n=t.split(`/`);for(let e=0,t=n.length;e<t;e++){let r=n[e];r===``?e?e===t-1&&s.push(r):s=[r]:r===`..`?s.pop():r===`.`||s.push(r)}}s.length>1&&(L(s)===``?n===`never`&&s.pop():n===`always`&&s.push(``));let c,l=``;for(let e=0;e<s.length;e++){e>0&&(l+=`/`);let t=s[e];if(!t)continue;c=Oe(t,0,c);let n=c[0];if(n===0){l+=t;continue}let r=c[5],i=t.substring(0,c[1]),a=t.substring(c[4],r),o=t.substring(c[2],c[3]);n===1?l+=i||a?`${i}{$${o}}${a}`:`$${o}`:n===2?l+=i||a?`${i}{$}${a}`:`$`:l+=`${i}{-$${o}}${a}`}l=Je(l);let u=l||`/`;return o&&r&&r.set(o,u),u}function tt(e){let t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=Array.from(t.keys()).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`|`),r=new RegExp(n,`g`);return e=>e.replace(r,e=>t.get(e)??e)}function nt(e,t,n){let r=t[e];return typeof r==`string`?e===`_splat`?/^[a-zA-Z0-9\-._~!/]*$/.test(r)?r:r.split(`/`).map(e=>it(e,n)).join(`/`):it(r,n):r}function rt({path:e,params:t,decoder:n,...r}){let i=!1,a=Object.create(null);if(!e||e===`/`)return{interpolatedPath:`/`,usedParams:a,isMissingParams:i};if(!e.includes(`$`))return{interpolatedPath:e,usedParams:a,isMissingParams:i};let o=e.length,s=0,c,l=``;for(;s<o;){let r=s;c=Oe(e,r,c);let o=c[5];if(s=o+1,r===o)continue;let u=c[0];if(u===0){l+=`/`+e.substring(r,o);continue}if(u===2){let s=t._splat;a._splat=s,a[`*`]=s;let u=e.substring(r,c[1]),d=e.substring(c[4],o);if(!s){i=!0,(u||d)&&(l+=`/`+u+d);continue}let f=nt(`_splat`,t,n);l+=`/`+u+f+d;continue}if(u===1){let s=e.substring(c[2],c[3]);!i&&!(s in t)&&(i=!0),a[s]=t[s];let u=e.substring(r,c[1]),d=e.substring(c[4],o),f=nt(s,t,n)??`undefined`;l+=`/`+u+f+d;continue}if(u===3){let i=e.substring(c[2],c[3]),s=t[i];if(s==null)continue;a[i]=s;let u=e.substring(r,c[1]),d=e.substring(c[4],o),f=nt(i,t,n)??``;l+=`/`+u+f+d;continue}}return e.endsWith(`/`)&&(l+=`/`),{usedParams:a,interpolatedPath:l||`/`,isMissingParams:i}}function it(e,t){let n=encodeURIComponent(e);return t?.(n)??n}function G(e){return e?.isNotFound===!0}function at(){try{return typeof window<`u`&&typeof window.sessionStorage==`object`?window.sessionStorage:void 0}catch{return}}var ot=`tsr-scroll-restoration-v1_3`;function st(){let e=at();if(!e)return null;let t={};try{let n=JSON.parse(e.getItem(`tsr-scroll-restoration-v1_3`)||`{}`);ee(n)&&(t=n)}catch{}return{get state(){return t},set:e=>{t=j(e,t)||t},persist:()=>{try{e.setItem(ot,JSON.stringify(t))}catch{}}}}var ct=st(),lt=e=>e.state.__TSR_key||e.href;function ut(e){let t=[],n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(` > `)}`.toLowerCase()}var dt=!1,ft=`window`,pt=`data-scroll-restoration-id`;function mt(e,t){if(!ct)return;let n=ct;if((t??e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isScrollRestorationSetup||!n)return;e.isScrollRestorationSetup=!0,dt=!1;let r=e.options.getScrollRestorationKey||lt,i=new Map;window.history.scrollRestoration=`manual`;let a=t=>{if(!(dt||!e.isScrollRestoring))if(t.target===document||t.target===window)i.set(ft,{scrollX:window.scrollX||0,scrollY:window.scrollY||0});else{let e=t.target;i.set(e,{scrollX:e.scrollLeft||0,scrollY:e.scrollTop||0})}},o=t=>{if(!e.isScrollRestoring||!t||i.size===0||!n)return;let r=n.state[t]||={};for(let[e,t]of i){let n;if(e===ft)n=ft;else if(e.isConnected){let t=e.getAttribute(pt);n=t?`[${pt}="${t}"]`:ut(e)}n&&(r[n]=t)}};document.addEventListener(`scroll`,a,!0),e.subscribe(`onBeforeLoad`,e=>{o(e.fromLocation?r(e.fromLocation):void 0),i.clear()}),window.addEventListener(`pagehide`,()=>{o(r(e.stores.resolvedLocation.get()??e.stores.location.get())),n.persist()}),e.subscribe(`onRendered`,t=>{let a=r(t.toLocation),o=e.options.scrollRestorationBehavior,s=e.options.scrollToTopSelectors;if(i.clear(),!e.resetNextScroll){e.resetNextScroll=!0;return}if(!(typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))){dt=!0;try{let t=e.isScrollRestoring?n.state[a]:void 0,r=!1;if(t)for(let e in t){let n=t[e];if(!ee(n))continue;let{scrollX:i,scrollY:a}=n;if(!(!Number.isFinite(i)||!Number.isFinite(a))){if(e===ft)window.scrollTo({top:a,left:i,behavior:o}),r=!0;else if(e){let t;try{t=document.querySelector(e)}catch{continue}t&&(t.scrollLeft=i,t.scrollTop=a,r=!0)}}}if(!r){let t=e.history.location.hash.slice(1);if(t){let e=window.history.state?.__hashScrollIntoViewOptions??!0;if(e){let n=document.getElementById(t);n&&n.scrollIntoView(e)}}else{let e={top:0,left:0,behavior:o};if(window.scrollTo(e),s)for(let t of s){if(t===ft)continue;let n=typeof t==`function`?t():document.querySelector(t);n&&n.scrollTo(e)}}}}finally{dt=!1}e.isScrollRestoring&&n.set(e=>(e[a]||={},e))}})}function ht(e,t=String){let n=new URLSearchParams;for(let r in e){let i=e[r];i!==void 0&&n.set(r,t(i))}return n.toString()}function gt(e){return e?e===`false`?!1:e===`true`?!0:e*0==0&&+e+``===e?+e:e:``}function _t(e){let t=new URLSearchParams(e),n=Object.create(null);for(let[e,r]of t.entries()){let t=n[e];t==null?n[e]=gt(r):Array.isArray(t)?t.push(gt(r)):n[e]=[t,gt(r)]}return n}var vt=bt(JSON.parse),yt=xt(JSON.stringify,JSON.parse);function bt(e){return t=>{t[0]===`?`&&(t=t.substring(1));let n=_t(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function xt(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=ht(e,r);return t?`?${t}`:``}}var St=`__root__`;function Ct(e){if(e.statusCode=e.statusCode||e.code||307,!e._builtLocation&&!e.reloadDocument&&typeof e.href==`string`)try{new URL(e.href),e.reloadDocument=!0}catch{}let t=new Headers(e.headers);e.href&&t.get(`Location`)===null&&t.set(`Location`,e.href);let n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function K(e){return e instanceof Response&&!!e.options}function wt(e){return{input:({url:t})=>{for(let n of e)t=Et(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=Dt(e[n],t);return t}}}function Tt(e){let t=Ze(e.basepath),n=`/${t}`,r=`${n}/`,i=e.caseSensitive?n:n.toLowerCase(),a=e.caseSensitive?r:r.toLowerCase();return{input:({url:t})=>{let r=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return r===i?t.pathname=`/`:r.startsWith(a)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=qe([`/`,t,e.pathname]),e)}}function Et(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Dt(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function Ot(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),m=n(e.resolvedLocation),h=n(e.statusCode),g=n(e.redirect),_=n([]),v=n([]),y=n([]),b=r(()=>kt(o,_.get())),x=r(()=>kt(s,v.get())),S=r(()=>kt(c,y.get())),C=r(()=>_.get()[0]),w=r(()=>_.get().some(e=>o.get(e)?.get().status===`pending`)),T=r(()=>({locationHref:p.get().href,resolvedLocationHref:m.get()?.href,status:l.get()})),E=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:b.get(),location:p.get(),resolvedLocation:m.get(),statusCode:h.get(),redirect:g.get()})),D=we(64);function O(e){let t=D.get(e);return t||(t=r(()=>{let t=_.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),D.set(e,t)),t}let k={status:l,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:m,statusCode:h,redirect:g,matchesId:_,pendingIds:v,cachedIds:y,matches:b,pendingMatches:x,cachedMatches:S,firstId:C,hasPending:w,matchRouteDeps:T,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:E,getRouteMatchStore:O,setMatches:A,setPending:ee,setCached:te};A(e.matches),a?.(k);function A(e){At(e,o,_,n,i)}function ee(e){At(e,s,v,n,i)}function te(e){At(e,c,y,n,i)}return k}function kt(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function At(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}re(n.get(),a)||n.set(a)})}var jt=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},Mt=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),Nt=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),Pt=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},Ft=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},It=(e,t,n)=>{if(!(!K(n)&&!G(n)))throw K(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:K(n)?`redirected`:G(n)?`notFound`:r.status===`pending`?`success`:r.status,context:Pt(e,t.index),isFetching:!1,error:n})),G(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),K(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},Lt=(e,t)=>{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},Rt=(e,t,n)=>{let r=Pt(e,n);e.updateMatch(t,e=>({...e,context:r}))},zt=(e,t,n,r)=>{let{id:i,routeId:a}=e.matches[t],o=e.router.looseRoutesById[a];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,It(e,e.router.getMatch(i),n);try{o.options.onError?.(n)}catch(t){n=t,It(e,e.router.getMatch(i),n)}e.updateMatch(i,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!K(n)&&!G(n)&&(e.serialError??=n)},Bt=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!Nt(e,t)&&(n.options.loader||n.options.beforeLoad||Zt(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{jt(e)},i);r._nonReactive.pendingTimeout=t}},Vt=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;Bt(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&It(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},Ht=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=I(()=>{a?.resolve(),a=void 0});let{paramsError:o,searchError:s}=i;o&&zt(e,n,o,`PARSE_PARAMS`),s&&zt(e,n,s,`VALIDATE_SEARCH`),Bt(e,t,r,i);let c=new AbortController,l=!1,u=()=>{l||(l=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:c})))},d=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{u(),d()});return}i._nonReactive.beforeLoadPromise=I();let f={...Pt(e,n,!1),...i.__routeContext},{search:p,params:m,cause:h}=i,g=Nt(e,t),_={search:p,abortController:c,params:m,preload:g,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:g?`preload`:h,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},v=r=>{if(r===void 0){e.router.batch(()=>{u(),d()});return}(K(r)||G(r))&&(u(),zt(e,n,r,`BEFORE_LOAD`)),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})},y;try{if(y=r.options.beforeLoad(_),T(y))return u(),y.catch(t=>{zt(e,n,t,`BEFORE_LOAD`)}).then(v)}catch(t){u(),zt(e,n,t,`BEFORE_LOAD`)}v(y)},Ut=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>Ht(e,n,t,i),s=()=>{if(Lt(e,n))return;let t=Vt(e,n,i);return T(t)?t.then(o):o()};return a()},Wt=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},Gt=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=Pt(e,r),d=Nt(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},Kt=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{Xt(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(Gt(e,t,n,r,i)),l=!!s&&T(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;It(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:Pt(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:Pt(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,G(t)&&await i.options.notFoundComponent?.preload?.(),It(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,It(e,e.router.getMatch(n),t)}!K(o)&&!G(o)&&await Xt(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:Pt(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),It(e,r,t)}},qt=async(e,t,n)=>{async function r(r,a,c,l,d){let f=Date.now()-a.updatedAt,p=r?d.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:d.options.staleTime??e.router.options.defaultStaleTime??0,m=d.options.shouldReload,h=typeof m==`function`?m(Gt(e,t,i,n,d)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||c!==void 0&&c!==l.id);o=g===`success`&&(_||(h??v)),r&&d.options.preload===!1||(o&&!e.sync&&u?(s=!0,(async()=>{try{await Kt(e,t,i,n,d);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){K(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await Kt(e,t,i,n,d):Rt(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,c=e.router.looseRoutesById[a],l=c.options.loader,u=((typeof l==`function`?void 0:l?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(Lt(e,i)){if(!e.router.getMatch(i))return e.matches[n];Rt(e,i,n)}else{let t=e.router.getMatch(i),o=e.router.stores.matchesId.get()[n],s=(o&&e.router.stores.matchStores.get(o)||null)?.routeId===a?o:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,l=Nt(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&u)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&It(e,n,a),n.status===`pending`&&await r(l,t,s,n,c)}else{let n=l&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=I(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(l,t,s,a,c)}}let d=e.router.getMatch(i);s||(d._nonReactive.loaderPromise?.resolve(),d._nonReactive.loadPromise?.resolve(),d._nonReactive.loadPromise=void 0),clearTimeout(d._nonReactive.pendingTimeout),d._nonReactive.pendingTimeout=void 0,s||(d._nonReactive.loaderPromise=void 0),d._nonReactive.dehydrated=void 0;let f=s?d.isFetching:!1;return f!==d.isFetching||d.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:f,invalid:!1})),e.router.getMatch(i)):d};async function Jt(e){let t=e,n=[];Mt(t.router)&&jt(t);let r;for(let e=0;e<t.matches.length;e++){try{let n=Ut(t,e);T(n)&&await n}catch(e){if(K(e))throw e;if(G(e))r=e;else if(!t.preload)throw e;break}if(t.serialError||t.firstBadMatchIndex!=null)break}let i=t.firstBadMatchIndex??t.matches.length,a=r&&!t.preload?Ft(t,r):void 0,o=r&&t.preload?0:a===void 0?i:Math.min(a+1,i),s,c;for(let e=0;e<o;e++)n.push(qt(t,n,e));try{await Promise.all(n)}catch{let e=await Promise.allSettled(n);for(let t of e){if(t.status!==`rejected`)continue;let e=t.reason;if(K(e))throw e;G(e)?s??=e:c??=e}if(c!==void 0)throw c}let l=s??(r&&!t.preload?r:void 0),u=t.firstBadMatchIndex===void 0?t.matches.length-1:t.firstBadMatchIndex;if(!l&&r&&t.preload)return t.matches;if(l){let e=Ft(t,l);e===void 0&&F();let n=t.matches[e],r=t.router.looseRoutesById[n.routeId],i=t.router.options?.defaultNotFoundComponent;!r.options.notFoundComponent&&i&&(r.options.notFoundComponent=i),l.routeId=n.routeId;let a=n.routeId===t.router.routeTree.id;t.updateMatch(n.id,e=>({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:l},isFetching:!1})),u=e,await Xt(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await Xt(e,[`errorComponent`])}for(let e=0;e<=u;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=Wt(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let d=jt(t);if(T(d)&&await d,l)throw l;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function Yt(e,t){let n=t.map(t=>e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function Xt(e,t=Qt){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===Qt?(()=>{if(e._componentsPromise===void 0){let t=Yt(e,Qt);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():Yt(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function Zt(e){for(let t of Qt)if(e.options[t]?.preload)return!0;return!1}var Qt=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`],$t=`__TSR_index`,en=`popstate`,tn=`beforeunload`;function nn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=sn(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[$t];i=rn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[$t];i=rn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[$t]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function rn(e,t){t||={};let n=cn();return{...t,key:n,__TSR_key:n,[$t]:e}}function an(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>sn(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=cn();t.history.replaceState({[$t]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(C._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),C._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=sn(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),C.notify({type:e})},x=async()=>{if(f){f=!1;return}let e=c(),n=e.state[$t]-l.state[$t],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),C.notify(u);return}}}l=c(),C.notify(u)},S=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},C=nn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(tn,S,{capture:!0}),t.removeEventListener(en,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(tn,S,{capture:!0}),t.addEventListener(en,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return C._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return C._ignoreSubscribers||b(`REPLACE`),n},C}function on(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function sn(e,t){let n=on(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=cn();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[$t]:0,key:a,__TSR_key:a}}}function cn(){return(Math.random()+1).toString(36).substring(7)}function ln(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var un=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=tt(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=an()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!==`null`?this.origin=window.origin:this.origin=`http://localhost`),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=we(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=Ot(pn(this.latestLocation),e),mt(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=Ze(o);t&&t!==`/`&&e.push(Tt({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:wt(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a)`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=ze(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&Pe(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:k(e).path,external:!1,searchStr:o,search:R(t?.search,i),hash:k(r.slice(1)).path,state:D(t?.state,a)}}let o=new URL(i,this.origin),s=Et(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:k(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:R(t?.search,c),hash:k(s.hash.slice(1)).path,state:D(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>et({base:e,to:Je(t),trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>hn({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=this.resolvePathWithBase(i,`.`),o=r.search,s=Object.assign(Object.create(null),r.params),c=t.to?this.resolvePathWithBase(a,`${t.to}`):this.resolvePathWithBase(a,`.`),l=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,j(t.params,s)),u=this.getMatchedRoutes(c),d=u.matchedRoutes;if((!u.foundRoute||u.foundRoute.path!==`/`&&u.routeParams[`**`])&&this.options.notFoundRoute&&(d=[...d,this.options.notFoundRoute]),Object.keys(l).length>0)for(let e of d){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(l,t(l))}catch{}}let f=e.leaveParams?c:k(rt({path:c,params:l,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,p=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};d.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,mn(t.options.validateSearch,{...e,...p}))}catch{}}),p=e}p=gn({search:p,dest:t,destRoutes:d,_includeValidateSearch:e._includeValidateSearch}),p=R(o,p);let m=this.options.stringifySearch(p),h=t.hash===!0?n.hash:t.hash?j(t.hash,n.hash):void 0,g=h?`#${h}`:``,_=t.state===!0?n.state:t.state?j(t.state,n.state):{};_=D(n.state,_);let v=`${f}${m}${g}`,y,b,x=!1;if(this.rewrite){let e=new URL(v,this.origin),t=Dt(this.rewrite,e);y=e.href.replace(e.origin,``),t.origin===this.origin?b=t.pathname+t.search+t.hash:(b=t.href,x=!0)}else y=N(v),b=y;return{publicHref:b,href:y,pathname:f,search:p,searchStr:m,state:_,hash:h??``,external:x,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=Fe(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,j(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=A(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},i=Xe(this.latestLocation.href)===Xe(n.href),a=this.commitLocationPromise;if(this.commitLocationPromise=I(()=>{a?.resolve(),a=void 0}),i&&r())this.load();else{let{maskedLocation:r,hashScrollIntoView:i,...a}=n;r&&(a={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...a,search:a.searchStr,state:{...a.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(a.unmaskOnReload??this.options.unmaskOnReload??!1)&&(a.state.__tempKey=this.tempLocationKey)),a.state.__hashScrollIntoViewOptions=i??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,this.history[n.replace?`replace`:`push`](a.publicHref,a.state,{ignoreBlocker:t})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=sn(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=Et(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(te(t,this.protocolAllowlist))return Promise.resolve();if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return Promise.resolve()}return i.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t,n,r,i=this.stores.resolvedLocation.get()??this.stores.location.get();for(r=new Promise(a=>{this.startTransition(async()=>{try{this.beforeLoad();let t=this.latestLocation,n=ln(t,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...n}),this.emit({type:`onBeforeLoad`,...n}),await Jt({router:this,sync:e?.sync,forceStaleReload:i.href===t.href,matches:this.stores.pendingMatches.get(),location:t,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){K(e)?(t=e,this.navigate({...t.options,replace:!0,ignoreBlocker:!0})):G(e)&&(n=e);let r=t?t.status:n?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(r),this.stores.redirect.set(t)})}this.latestLoadPromise===r&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),a()})}),this.latestLoadPromise=r,await r;this.latestLoadPromise&&r!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.stores.matches.get().some(e=>e.status===`error`)&&(a=500),a!==void 0&&this.stores.statusCode.set(a)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(ln(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&te(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return t.status===`error`?!0:e-t.updatedAt>=r}})},this.loadRouteChunk=Xt,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await Jt({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(K(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});G(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=Ie(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!A(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?A(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??yt,parseSearch:e.parseSearch??vt,protocolAllowlist:e.protocolAllowlist??O}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParams:i,parsedParams:a}=n,{matchedRoutes:o}=n,s=!1;(r?r.path!==`/`&&i[`**`]:Xe(e.pathname))&&(this.options.notFoundRoute?o=[...o,this.options.notFoundRoute]:s=!0);let c=s?vn(this.options.notFoundMode,o):void 0,l=Array(o.length),u=new Map;for(let e of this.stores.matchStores.values())e.routeId&&u.set(e.routeId,e.get());for(let n=0;n<o.length;n++){let r=o[n],s=l[n-1],d,f,p;{let n=s?.search??e.search,i=s?._strictSearch??void 0;try{let e=mn(r.options.validateSearch,{...n})??void 0;d={...n,...e},f={...i,...e},p=void 0}catch(e){let r=e;if(e instanceof dn||(r=new dn(e.message,{cause:e})),t?.throwOnError)throw r;d=n,f={},p=r}}let m=r.options.loaderDeps?.({search:d})??``,h=m?JSON.stringify(m):``,{interpolatedPath:g,usedParams:_}=rt({path:r.fullPath,params:i,decoder:this.pathParamsDecoder,server:this.isServer}),v=r.id+g+h,y=this.getMatch(v),b=u.get(r.id),x=y?._strictParams??_,S;if(!y)try{yn(r,_,a,x)}catch(e){if(S=G(e)||K(e)?e:new fn(e.message,{cause:e}),t?.throwOnError)throw S}Object.assign(i,x);let C=b?`stay`:`enter`,w;if(y)w={...y,cause:C,params:b?.params??i,_strictParams:x,search:R(b?b.search:y.search,d),_strictSearch:f};else{let e=r.options.loader||r.options.beforeLoad||r.lazyFn||Zt(r)?`pending`:`success`;w={id:v,ssr:r.options.ssr,index:n,routeId:r.id,params:b?.params??i,_strictParams:x,pathname:g,updatedAt:Date.now(),search:b?R(b.search,d):d,_strictSearch:f,searchError:void 0,status:e,isFetching:!1,error:void 0,paramsError:S,__routeContext:void 0,_nonReactive:{loadPromise:I()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:C,loaderDeps:b?D(b.loaderDeps,m):m,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:r.options.staticData||{},fullPath:r.fullPath}}t?.preload||(w.globalNotFound=c===r.id),w.searchError=p;let T=this.getParentContext(s);w.context={...T,...w.__routeContext,...w.__beforeLoadContext},l[n]=w}for(let t=0;t<l.length;t++){let n=l[t],r=this.looseRoutesById[n.routeId],a=this.getMatch(n.id),o=u.get(n.routeId);if(n.params=o?R(o.params,i):i,!a){let i=l[t-1],a=this.getParentContext(i);if(r.options.context){let t={deps:n.loaderDeps,params:n.params,context:a??{},location:e,navigate:t=>this.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:l,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return l}matchRoutesLightweight(e){let{matchedRoutes:t,routeParams:n,parsedParams:r}=this.getMatchedRoutes(e.pathname),i=L(t),a={...e.search};for(let e of t)try{Object.assign(a,mn(e.options.validateSearch,a))}catch{}let o=L(this.stores.matchesId.get()),s=o&&this.stores.matchStores.get(o)?.get(),c=s&&s.routeId===i.id&&s.pathname===e.pathname,l;if(c)l=s.params;else{let e=Object.assign(Object.create(null),n);for(let i of t)try{yn(i,n,r??{},e)}catch{}l=e}return{matchedRoutes:t,fullPath:i.fullPath,search:a,params:l}}},dn=class extends Error{},fn=class extends Error{};function pn(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function mn(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new dn(`Async validation not supported`);if(n.issues)throw new dn(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function hn({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=Xe(e),a,o,s=Le(i,n,!0);return s&&(a=s.route,Object.assign(r,s.rawParams),o=Object.assign(Object.create(null),s.parsedParams)),{matchedRoutes:s?.branch||[t.__root__],routeParams:r,foundRoute:a,parsedParams:o}}function gn({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return _n(n)(e,t,r??!1)}function _n(e){let t={dest:null,_includeValidateSearch:!1,middlewares:[]};for(let n of e)`search`in n.options?n.options.search?.middlewares&&t.middlewares.push(...n.options.search.middlewares):(n.options.preSearchFilters||n.options.postSearchFilters)&&t.middlewares.push(({search:e,next:t})=>{let r=e;`preSearchFilters`in n.options&&n.options.preSearchFilters&&(r=n.options.preSearchFilters.reduce((e,t)=>t(e),e));let i=t(r);return`postSearchFilters`in n.options&&n.options.postSearchFilters?n.options.postSearchFilters.reduce((e,t)=>t(e),i):i}),n.options.validateSearch&&t.middlewares.push(({search:e,next:r})=>{let i=r(e);if(!t._includeValidateSearch)return i;try{return{...i,...mn(n.options.validateSearch,i)??void 0}}catch{return i}});t.middlewares.push(({search:e})=>{let n=t.dest;return n.search?n.search===!0?e:j(n.search,e):{}});let n=(e,t,r)=>{if(e>=r.length)return t;let i=r[e];return i({search:t,next:t=>n(e+1,t,r)})};return function(e,r,i){return t.dest=r,t._includeValidateSearch=i,n(0,e,t.middlewares)}}function vn(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return St}function yn(e,t,n,r){let i=e.options.params?.parse??e.options.parseParams;if(i)if(e.options.skipRouteOnParseError)for(let e in t)e in n&&(r[e]=n[e]);else{let e=i(r);Object.assign(r,e)}}var bn=`Error preloading route! ☝️`,xn=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e.originalIndex;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=St:this.parentRoute||F();let r=n?St:t?.path;r&&r!==`/`&&(r=Ye(r));let i=t?.id||r,a=n?St:qe([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=qe([`/`,a]));let o=a===`__root__`?`/`:qe([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=Xe(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>Ct({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},Sn=class extends xn{constructor(e){super(e)}};function Cn(e){if(typeof document<`u`&&document.querySelector){let t=e.stores.location.get(),n=t.state.__hashScrollIntoViewOptions??!0;if(n&&t.hash!==``){let e=document.getElementById(t.hash);e&&e.scrollIntoView(n)}}}var q=e(r(),1),J=n();function wn(e){let t=e.errorComponent??En;return(0,J.jsx)(Tn,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?q.createElement(t,{error:n,reset:r}):e.children})}var Tn=class extends q.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function En({error:e}){let[t,n]=q.useState(!1);return(0,J.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,J.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,J.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,J.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,J.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,J.jsx)(`div`,{children:(0,J.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e.message?(0,J.jsx)(`code`,{children:e.message}):null})}):null]})}function Dn({children:e,fallback:t=null}){return On()?(0,J.jsx)(q.Fragment,{children:e}):(0,J.jsx)(q.Fragment,{children:t})}function On(){return q.useSyncExternalStore(kn,()=>!0,()=>!1)}function kn(){return()=>{}}var Y=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(Y||{});function An({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function jn(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Mn=[],Nn=0,{link:Pn,unlink:Fn,propagate:In,checkDirty:Ln,shallowPropagate:Rn}=An({update(e){return e._update()},notify(e){Mn[Bn++]=e,e.flags&=~Y.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Y.Mutable|Y.Dirty,Un(e))}}),zn=0,Bn=0,X,Vn=0;function Hn(e){try{++Vn,e()}finally{--Vn||Wn()}}function Un(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Fn(n,e)}function Wn(){if(!(Vn>0)){for(;zn<Bn;){let e=Mn[zn];Mn[zn++]=void 0,e.notify()}zn=0,Bn=0}}function Gn(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?Y.None:Y.Mutable,get(){return X!==void 0&&Pn(i,X,Nn),i._snapshot},subscribe(e){let t=jn(e),n={current:!1},r=Kn(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=X,o=t?.compare??Object.is;if(n)X=i,++Nn,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=Y.Mutable|Y.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{X=a,n&&(i.flags&=~Y.RecursedCheck),Un(i)}}};return n?(i.flags=Y.Mutable|Y.Dirty,i.get=function(){let e=i.flags;if(e&Y.Dirty||e&Y.Pending&&Ln(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Rn(e)}}else e&Y.Pending&&(i.flags=e&~Y.Pending);return X!==void 0&&Pn(i,X,Nn),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(In(e),Rn(e),Wn())}},i}function Kn(e){let t=()=>{let t=X;X=n,++Nn,n.depsTail=void 0,n.flags=Y.Watching|Y.RecursedCheck;try{return e()}finally{X=t,n.flags&=~Y.RecursedCheck,Un(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Y.Watching|Y.RecursedCheck,notify(){let e=this.flags;e&Y.Dirty||e&Y.Pending&&Ln(this.deps,this)?t():this.flags=Y.Watching},stop(){this.flags=Y.None,this.depsTail=void 0,Un(this)}};return t(),n}function qn(e){return M({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Jn(e){let{select:t,...n}=e;return M({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Yn(e){return M({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Xn(e){return M({...e,select:t=>e.select?e.select(t.context):t.context})}var Zn=v();function Qn(e,t){let n=E(),r=S(t),{activeProps:i,inactiveProps:a,activeOptions:o,to:s,preload:c,preloadDelay:l,preloadIntentProximity:u,hashScrollIntoView:d,replace:f,startTransition:p,resetScroll:m,viewTransition:h,children:g,target:_,disabled:v,style:y,className:b,onClick:x,onBlur:w,onFocus:T,onMouseEnter:D,onMouseLeave:O,onTouchStart:k,ignoreBlocker:ee,params:ne,search:re,hash:M,state:ie,mask:N,reloadDocument:F,unsafeRelative:ae,from:I,_fromLocation:L,...R}=e,oe=On(),se=q.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),z=P(n.stores.location,e=>e,(e,t)=>e.href===t.href),B=q.useMemo(()=>{let e={_fromLocation:z,...se};return n.buildLocation(e)},[n,z,se]),ce=B.maskedLocation?B.maskedLocation.publicHref:B.publicHref,le=B.maskedLocation?B.maskedLocation.external:B.external,V=q.useMemo(()=>sr(ce,le,n.history,v),[v,le,ce,n.history]),H=q.useMemo(()=>{if(V?.external)return te(V.href,n.protocolAllowlist)?void 0:V.href;if(!cr(s)&&!(typeof s!=`string`||s.indexOf(`:`)===-1))try{return new URL(s),te(s,n.protocolAllowlist)?void 0:s}catch{}},[s,V,n.protocolAllowlist]),ue=q.useMemo(()=>{if(H)return!1;if(o?.exact){if(!$e(z.pathname,B.pathname,n.basepath))return!1}else{let e=Qe(z.pathname,n.basepath),t=Qe(B.pathname,n.basepath);if(!(e.startsWith(t)&&(e.length===t.length||e[t.length]===`/`)))return!1}return(o?.includeSearch??!0)&&!A(z.search,B.search,{partial:!o?.exact,ignoreUndefined:!o?.explicitUndefined})?!1:o?.includeHash?oe&&z.hash===B.hash:!0},[o?.exact,o?.explicitUndefined,o?.includeHash,o?.includeSearch,z,H,oe,B.hash,B.pathname,B.search,n.basepath]),de=ue?j(i,{})??er:$n,fe=ue?$n:j(a,{})??$n,pe=[b,de.className,fe.className].filter(Boolean).join(` `),me=(y||de.style||fe.style)&&{...y,...de.style,...fe.style},[he,ge]=q.useState(!1),_e=q.useRef(!1),ve=e.reloadDocument||H?!1:c??n.options.defaultPreload,ye=l??n.options.defaultPreloadDelay??0,U=q.useCallback(()=>{n.preloadRoute({...se,_builtLocation:B}).catch(e=>{console.warn(e),console.warn(bn)})},[n,se,B]);C(r,q.useCallback(e=>{e?.isIntersecting&&U()},[U]),ar,{disabled:!!v||ve!==`viewport`}),q.useEffect(()=>{_e.current||!v&&ve===`render`&&(U(),_e.current=!0)},[v,U,ve]);let be=e=>{let t=e.currentTarget.getAttribute(`target`),r=_===void 0?t:_;if(!v&&!ur(e)&&!e.defaultPrevented&&(!r||r===`_self`)&&e.button===0){e.preventDefault(),(0,Zn.flushSync)(()=>{ge(!0)});let t=n.subscribe(`onResolved`,()=>{t(),ge(!1)});n.navigate({...se,replace:f,resetScroll:m,hashScrollIntoView:d,startTransition:p,viewTransition:h,ignoreBlocker:ee})}};if(H)return{...R,ref:r,href:H,...g&&{children:g},..._&&{target:_},...v&&{disabled:v},...y&&{style:y},...b&&{className:b},...x&&{onClick:x},...w&&{onBlur:w},...T&&{onFocus:T},...D&&{onMouseEnter:D},...O&&{onMouseLeave:O},...k&&{onTouchStart:k}};let xe=e=>{if(v||ve!==`intent`)return;if(!ye){U();return}let t=e.currentTarget;if(ir.has(t))return;let n=setTimeout(()=>{ir.delete(t),U()},ye);ir.set(t,n)},Se=e=>{v||ve!==`intent`||U()},W=e=>{if(v||!ve||!ye)return;let t=e.currentTarget,n=ir.get(t);n&&(clearTimeout(n),ir.delete(t))};return{...R,...de,...fe,href:V?.href,ref:r,onClick:or([x,be]),onBlur:or([w,W]),onFocus:or([T,xe]),onMouseEnter:or([D,xe]),onMouseLeave:or([O,W]),onTouchStart:or([k,Se]),disabled:!!v,target:_,...me&&{style:me},...pe&&{className:pe},...v&&tr,...ue&&nr,...oe&&he&&rr}}var $n={},er={className:`active`},tr={role:`link`,"aria-disabled":!0},nr={"data-status":`active`,"aria-current":`page`},rr={"data-transitioning":`transitioning`},ir=new WeakMap,ar={rootMargin:`100px`},or=e=>t=>{for(let n of e)if(n){if(t.defaultPrevented)return;n(t)}};function sr(e,t,n,r){if(!r)return t?{href:e,external:!0}:{href:n.createHref(e)||`/`,external:!1}}function cr(e){if(typeof e!=`string`)return!1;let t=e.charCodeAt(0);return t===47?e.charCodeAt(1)!==47:t===46}var lr=q.forwardRef((e,t)=>{let{_asChild:n,...r}=e,{type:i,...a}=Qn(r,t),o=typeof r.children==`function`?r.children({isActive:a[`data-status`]===`active`}):r.children;if(!n){let{disabled:e,...t}=a;return q.createElement(`a`,t,o)}return q.createElement(n,a,o)});function ur(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}var dr=class extends xn{constructor(e){super(e),this.useMatch=e=>M({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>Xn({...e,from:this.id}),this.useSearch=e=>Yn({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ae({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Jn({...e,from:this.id}),this.useLoaderData=e=>qn({...e,from:this.id}),this.useNavigate=()=>w({from:this.fullPath}),this.Link=q.forwardRef((e,t)=>(0,J.jsx)(lr,{ref:t,from:this.fullPath,...e}))}};function Z(e){return new dr(e)}var fr=class extends Sn{constructor(e){super(e),this.useMatch=e=>M({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>Xn({...e,from:this.id}),this.useSearch=e=>Yn({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ae({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Jn({...e,from:this.id}),this.useLoaderData=e=>qn({...e,from:this.id}),this.useNavigate=()=>w({from:this.fullPath}),this.Link=q.forwardRef((e,t)=>(0,J.jsx)(lr,{ref:t,from:this.fullPath,...e}))}};function pr(e){return new fr(e)}function mr(e){let t=E(),n=`not-found-${P(t.stores.location,e=>e.pathname)}-${P(t.stores.status,e=>e)}`;return(0,J.jsx)(wn,{getResetKey:()=>n,onCatch:(t,n)=>{if(G(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(G(t))return e.fallback?.(t);throw t},children:e.children})}function hr(){return(0,J.jsx)(`p`,{children:`Not Found`})}function gr(e){return(0,J.jsx)(J.Fragment,{children:e.children})}function _r(e,t,n){return t.options.notFoundComponent?(0,J.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,J.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,J.jsx)(hr,{})}var vr=q.memo(function({matchId:e}){let t=E(),n=t.stores.matchStores.get(e);n||F();let r=P(t.stores.loadedAt,e=>e),i=P(n,e=>e);return(0,J.jsx)(yr,{router:t,matchId:e,resetKey:r,matchState:q.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function yr({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,J.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?q.Suspense:gr,f=s?wn:gr,p=l?mr:gr;return(0,J.jsxs)(i.isRoot?i.options.shellComponent??gr:gr,{children:[(0,J.jsx)(ne.Provider,{value:t,children:(0,J.jsx)(d,{fallback:o,children:(0,J.jsx)(f,{getResetKey:()=>n,errorComponent:s||En,onCatch:(e,t)=>{if(G(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,J.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return q.createElement(l,e)},children:u||r._displayPending?(0,J.jsx)(Dn,{fallback:o,children:(0,J.jsx)(xr,{matchId:t})}):(0,J.jsx)(xr,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(br,{resetKey:n}),(e.options.scrollRestoration,null)]}):null]})}function br({resetKey:e}){let t=E(),n=q.useRef(void 0);return x(()=>{let e=t.latestLocation.href;(n.current===void 0||n.current!==e)&&(t.emit({type:`onRendered`,...ln(t.stores.location.get(),t.stores.resolvedLocation.get())}),n.current=e)},[t.latestLocation.state.__TSR_key,e,t]),null}var xr=q.memo(function({matchId:e}){let t=E(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||F();let i=P(r,e=>e),a=i.routeId,o=t.routesById[a],s=q.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=q.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,J.jsx)(e,{},s):(0,J.jsx)(Sr,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);if(i.status===`pending`){let e=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=I();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return G(i.error)||F(),_r(t,o,i.error);if(i.status===`redirected`)throw K(i.error)||F(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return c}),Sr=q.memo(function(){let e=E(),t=q.useContext(ne),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=P(a,e=>[e?.routeId,e?.globalNotFound??!1]),i=P(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,J.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||F(),_r(e,a,void 0);if(!i)return null;let s=(0,J.jsx)(vr,{matchId:i});return n===`__root__`?(0,J.jsx)(q.Suspense,{fallback:o,children:s}):s});function Cr(){let e=E(),t=q.useRef({router:e,mounted:!1}),[n,r]=q.useState(!1),i=P(e.stores.isLoading,e=>e),a=P(e.stores.hasPending,e=>e),o=b(i),s=i||n||a,c=b(s),l=i||a,u=b(l);return e.startTransition=e=>{r(!0),q.startTransition(()=>{e(),r(!1)})},q.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Xe(e.latestLocation.publicHref)!==Xe(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),x(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),x(()=>{o&&!i&&e.emit({type:`onLoad`,...ln(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),x(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...ln(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),x(()=>{if(c&&!s){let t=ln(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Hn(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())}),t.hrefChanged&&Cn(e)}},[s,c,e]),null}function wr(){let e=E(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,J.jsx)(t,{}):null,r=(0,J.jsxs)(typeof document<`u`&&e.ssr?gr:q.Suspense,{fallback:n,children:[(0,J.jsx)(Cr,{}),(0,J.jsx)(Tr,{})]});return e.options.InnerWrap?(0,J.jsx)(e.options.InnerWrap,{children:r}):r}function Tr(){let e=E(),t=P(e.stores.firstId,e=>e),n=P(e.stores.loadedAt,e=>e),r=t?(0,J.jsx)(vr,{matchId:t}):null;return(0,J.jsx)(ne.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,J.jsx)(wn,{getResetKey:()=>n,errorComponent:En,onCatch:void 0,children:r})})}var Er=e=>({createMutableStore:Gn,createReadonlyStore:Gn,batch:Hn}),Dr=e=>new Or(e),Or=class extends un{constructor(e){super(e,Er)}};function kr({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,J.jsx)(ie.Provider,{value:e,children:t});return e.options.Wrap?(0,J.jsx)(e.options.Wrap,{children:r}):r}function Ar({router:e,...t}){return(0,J.jsx)(kr,{router:e,...t,children:(0,J.jsx)(wr,{})})}function jr(e){let t=E({warn:e?.router===void 0}),n=e?.router||t,r=(0,q.useRef)(void 0);return P(n.stores.__store,t=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){let n=D(r.current,e.select(t));return r.current=n,n}return e.select(t)}return t})}var Mr=class extends oe{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),se(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&ue(t.mutationKey)!==ue(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??de();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){H.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function Nr(e,t){let n=le(t),[r]=q.useState(()=>new Mr(n,e));q.useEffect(()=>{r.setOptions(e)},[r,e]);let i=q.useSyncExternalStore(q.useCallback(e=>r.subscribe(H.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=q.useCallback((e,t)=>{r.mutate(e,t).catch(B)},[r]);if(i.error&&z(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var Pr=y();function Fr(e){let{apiKey:t,userId:n,businessId:r,environment:i}=e;return{queryKey:[`businessPluginApps`,i,t,n,r],enabled:!!(t&&n&&r),queryFn:async()=>{let e=await fetch(`/api/proxy/external-integrations/business-plugin-apps`,{headers:{"x-proxy-target":_e[i],"X-API-KEY":t,"X-USER-ID":n,"X-BUSINESS-ID":r}});if(!e.ok)throw Error(`businessPluginApps failed: ${String(e.status)} ${e.statusText}`);return e.json()},retry:!1}}var Ir=500,Lr=new Set,Rr=[];function zr(e){Rr=[...Rr.length>=Ir?Rr.slice(Rr.length-Ir+1):Rr,e];for(let e of Lr)e()}function Br(){return Rr}function Vr(){Rr=[];for(let e of Lr)e()}function Hr(e){return Lr.add(e),()=>{Lr.delete(e)}}var Ur=2e3,Wr=1e3,Gr=1e3,Kr=1e4,qr=500;function Jr(){let e=le(),[t,n]=(0,q.useState)([]),[r,i]=(0,q.useState)([]),a=(0,q.useSyncExternalStore)(Hr,Br),[o,s]=(0,q.useState)(null),[c,l]=(0,q.useState)(null),[u,d]=(0,q.useState)({status:`idle`,visible:!1,logs:[],error:null}),f=(0,q.useRef)(null),p=(0,q.useRef)(null),m=(0,q.useCallback)(()=>{f.current!==null&&(clearTimeout(f.current),f.current=null),p.current!==null&&(clearTimeout(p.current),p.current=null)},[]),h=(0,q.useCallback)(()=>{m(),d({status:`idle`,visible:!1,logs:[],error:null})},[m]);return(0,q.useEffect)(()=>{let t=null,r=null,a=Gr,o=!1,c=t=>{let r;try{r=JSON.parse(t.data)}catch{return}if(r.type===`rebuild`)e.invalidateQueries({queryKey:[`bundle`]}),e.invalidateQueries({queryKey:[`source-tree`]}),e.invalidateQueries({queryKey:[`source-file`]});else if(r.type===`log`)n(e=>[...e,r.message].slice(-qr));else if(r.type===`proxy-log`){let e=r.entry??{kind:`info`,message:r.message??``};i(t=>[...t,e].slice(-qr))}else r.type===`venv-install-start`?(m(),d({status:`installing`,visible:!1,logs:[],error:null}),f.current=setTimeout(()=>{f.current=null,d(e=>e.status===`installing`?{...e,visible:!0}:e)},Ur)):r.type===`venv-install-log`?d(e=>({...e,logs:[...e.logs,{line:r.line,stream:r.stream}].slice(-qr)})):r.type===`venv-install-complete`?(f.current!==null&&(clearTimeout(f.current),f.current=null),d(e=>e.visible?{...e,status:`complete`}:{status:`idle`,visible:!1,logs:[],error:null}),p.current=setTimeout(()=>{p.current=null,d({status:`idle`,visible:!1,logs:[],error:null})},Wr)):r.type===`venv-install-error`?(f.current!==null&&(clearTimeout(f.current),f.current=null),d(e=>({status:`error`,visible:!0,logs:e.logs,error:r.message}))):(s(r.credentials),l(r.activeProfile??null))},u=()=>{if(o||r!==null)return;let e=a;a=Math.min(a*2,Kr),r=setTimeout(()=>{r=null,h()},e)},h=()=>{if(o)return;let e=window.location.protocol===`https:`?`wss:`:`ws:`,n=new WebSocket(`${e}//${window.location.host}`);t=n,n.addEventListener(`open`,()=>{a=Gr}),n.addEventListener(`message`,c),n.addEventListener(`close`,()=>{t===n&&(t=null),u()}),n.addEventListener(`error`,()=>{n.close()})},g=()=>{o||t!==null&&t.readyState===WebSocket.OPEN||(a=Gr,r!==null&&(clearTimeout(r),r=null),!(t!==null&&t.readyState===WebSocket.CONNECTING)&&h())},_=()=>{document.visibilityState===`visible`&&g()};return window.addEventListener(`online`,g),document.addEventListener(`visibilitychange`,_),h(),()=>{o=!0,r!==null&&(clearTimeout(r),r=null),m(),window.removeEventListener(`online`,g),document.removeEventListener(`visibilitychange`,_),t?.close(),t=null}},[e,m]),{buildLogs:t,proxyLogs:r,consoleLogs:a,clearConsoleLogs:()=>{Vr()},serverCredentials:o,serverActiveProfile:c,venvInstall:u,dismissVenvInstall:h}}var Yr=({state:e,onDismiss:t})=>{let n=(0,q.useRef)(null);(0,q.useEffect)(()=>{let e=n.current;e&&(e.scrollTop=e.scrollHeight)},[e.logs]);let r=e.status===`complete`?`Environment ready`:e.status===`error`?`Install failed`:`Setting up Python environment`,i=e.status===`complete`?`Done — running your step now.`:e.status===`error`?`pip install did not complete successfully. See log for details.`:`Installing pip packages for local execution. This only happens once per project.`,a=e.status===`complete`?`green`:e.status===`error`?`red`:`blue-pulse`;return(0,J.jsx)(xe,{open:e.visible,size:`xl`,ariaModal:!0,onBackdropClick:e.status===`error`?t:void 0,header:(0,J.jsx)(be,{title:r,statusDot:a}),footer:e.status===`error`?(0,J.jsx)(`button`,{onClick:t,className:`rounded bg-neutral-900 px-3 py-1.5 text-[12px] text-white transition-colors hover:bg-neutral-700`,children:`Close`}):void 0,children:(0,J.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,J.jsx)(`p`,{className:`m-0 mb-3 text-[12px] text-neutral-600`,children:i}),(0,J.jsx)(`div`,{ref:n,className:`max-h-72 overflow-y-auto rounded border border-black/10 bg-neutral-950 px-3 py-2 text-[11px] leading-relaxed text-neutral-100`,children:e.logs.length===0?(0,J.jsx)(`span`,{className:`text-neutral-500`,children:`Waiting for pip output…`}):e.logs.map((e,t)=>(0,J.jsx)(`div`,{className:e.stream===`stderr`?`text-amber-300`:`text-neutral-100`,children:e.line||`\xA0`},t))}),e.status===`error`&&e.error&&(0,J.jsx)(`p`,{className:`mt-3 whitespace-pre-wrap break-words text-[12px] text-red-600`,children:e.error})]})})},Xr=({bundle:e,currentApiName:t})=>{let n=w(),r=(0,q.useRef)(null),[i,o]=(0,q.useState)(!1);(0,q.useEffect)(()=>{if(!i)return;let e=e=>{let t=r.current;t&&e.target instanceof Node&&t.contains(e.target)||o(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[i]);let c=t?e.find(e=>e.api_name===t):void 0,l=c?c.name:`Select app…`;return e.length<=1?(0,J.jsx)(`span`,{className:`max-w-[220px] truncate px-1 text-[12px] font-medium text-neutral-700`,children:e[0]?.name??l}):(0,J.jsxs)(`div`,{ref:r,className:`relative`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>{o(e=>!e)},className:`flex items-center gap-1.5 rounded-full border border-black/10 bg-white px-3 py-1 text-[12px] font-medium text-neutral-700 hover:border-black/20 hover:text-neutral-900`,"aria-haspopup":`listbox`,"aria-expanded":i,children:[(0,J.jsx)(`span`,{className:`max-w-[220px] truncate`,children:l}),(0,J.jsx)(a,{icon:s,className:`text-[10px] text-neutral-400`})]}),(0,J.jsx)(pe,{anchorRef:r,open:i,children:(0,J.jsx)(`ul`,{role:`listbox`,className:`py-1`,children:e.map(e=>{let r=e.api_name,i=r===t;return(0,J.jsx)(`li`,{role:`option`,"aria-selected":i,className:`cursor-pointer truncate px-3 py-2 text-[12px] hover:bg-neutral-100 ${i?`bg-neutral-100 font-semibold text-neutral-900`:`text-neutral-700`}`,onClick:()=>{n({to:`/$apiName/summary`,params:{apiName:r}}),o(!1)},children:e.name},r)})})})]})},Zr=[{id:`summary`,label:`Summary`,icon:m,order:0},{id:`sandbox`,label:`Sandbox`,icon:u,order:1},{id:`configuration`,label:`Configuration`,icon:_,order:2},{id:`secrets`,label:`Secrets`,icon:g,order:3},{id:`source`,label:`App Source`,icon:h,order:5}],Qr={id:`code-steps`,label:`Code Steps`,icon:o,order:4},$r=[{id:`versions`,label:`Version History`,icon:l,order:6},{id:`icons`,label:`Icon Reference`,icon:c,order:7}],ei=({currentApiName:e,currentSubPage:t,hasCodeSteps:n})=>{let r=w(),i=[...Zr,...n?[Qr]:[],...$r].sort((e,t)=>e.order-t.order),o=t?.split(`/`)[0];return(0,J.jsx)(`div`,{className:`sticky top-0 z-[9] flex items-center gap-1 overflow-x-auto border-b border-black/10 bg-white/85 px-3 backdrop-blur-sm lg:px-5`,children:i.map(t=>{let n=t.id===o;return(0,J.jsxs)(`button`,{type:`button`,onClick:()=>{r({to:`/${e}/${t.id}`})},className:`flex shrink-0 items-center gap-1.5 border-b-2 px-3 py-2 text-[12px] font-medium transition-colors ${n?`text-neutral-900 border-neutral-900`:`text-neutral-500 hover:text-neutral-800 border-transparent`}`,"aria-current":n?`page`:void 0,children:[(0,J.jsx)(a,{icon:t.icon,className:`text-[11px]`}),(0,J.jsx)(`span`,{className:`hidden lg:inline`,children:t.label})]},t.id)})})},ti=class extends q.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught:`,e,t.componentStack)}render(){if(this.state.error!==null){let{fallback:e}=this.props;return typeof e==`function`?e(this.state.error):e}return this.props.children}},ni=`modulepreload`,ri=function(e){return`/`+e},ii={},Q=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ri(t,n),t in ii)return;ii[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:ni,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},ai=(0,q.lazy)(()=>Q(()=>import(`./DevSidebar-zX-4CWYv.js`).then(e=>({default:e.DevSidebar})),__vite__mapDeps([0,1,2,3,4,5,6,7]))),oi=window.open.bind(window),si=416,ci=280,li=800,ui={apiKey:``,userId:``,businessId:``,environment:`go`},di=class extends Error{constructor(){super(`Plugin app with this API name does not exist.`),this.name=`PluginNotPublishedError`}},fi=e=>{if(typeof e!=`object`||!e)return!1;let t=e.plugin_app_api_name;return Array.isArray(t)?t.some(e=>typeof e==`string`&&e.includes(`does not exist`)):!1},pi=new Set([`log`,`warn`,`error`,`info`]);window.console=new Proxy(window.console,{get(e,t){let n=Reflect.get(e,t);if(typeof n==`function`){let r=n;return function(...n){return typeof t==`string`&&pi.has(t)&&zr({level:t,args:n}),r.apply(e,n)}}return n}});var mi=()=>{let{buildLogs:e,proxyLogs:n,consoleLogs:r,clearConsoleLogs:o,serverCredentials:s,serverActiveProfile:c,venvInstall:l,dismissVenvInstall:u}=Jr(),[m,h]=(0,q.useState)(()=>localStorage.getItem(W.sidebarOpen)===`true`),[g,_]=(0,q.useState)(()=>localStorage.getItem(W.scriptRunnerLogging)===`true`),[v,y]=(0,q.useState)(!1),[b,x]=(0,q.useState)(()=>{let e=parseInt(localStorage.getItem(W.sidebarWidth)??``,10);return isNaN(e)?si:Math.min(li,Math.max(ci,e))}),S=()=>{h(e=>{let t=!e;return localStorage.setItem(W.sidebarOpen,String(t)),t})},C=()=>{_(e=>{let t=!e;return localStorage.setItem(W.scriptRunnerLogging,String(t)),t})},w=(0,q.useCallback)(e=>{x(e),localStorage.setItem(W.sidebarWidth,String(e))},[]),[T,E]=(0,q.useState)(()=>{try{return{...ui,...JSON.parse(localStorage.getItem(W.credentials)??`{}`)}}catch{return ui}});(0,q.useEffect)(()=>{fetch(`/api/credentials`).then(e=>e.json()).then(e=>{if(e.credentials?.apiKey){let t={...ui,...e.credentials};Se(e.activeProfile),E(t),localStorage.setItem(W.credentials,JSON.stringify(t))}}).catch(()=>{})},[]),(0,q.useEffect)(()=>{if(!s)return;let e={...ui,...s};Se(c),E(e),localStorage.setItem(W.credentials,JSON.stringify(e))},[s,c]);let D=e=>{E(e),localStorage.setItem(W.credentials,JSON.stringify(e))},{data:O,isLoading:k,isError:A}=V(he),{data:ee,isError:te,isLoading:ne}=V(ye(T)),{data:re}=V(Fr(T)),j=le(),M=Nr({mutationFn:async({apiName:e,hasExistingEntry:t,nextDisabled:n})=>{let r={"x-proxy-target":_e[T.environment],"X-API-KEY":T.apiKey,"X-USER-ID":T.userId,"X-BUSINESS-ID":T.businessId,"Content-Type":`application/json`},i=t?await fetch(`/api/proxy/external-integrations/business-plugin-apps/${e}`,{method:`PATCH`,headers:r,body:JSON.stringify({disabled:n})}):await fetch(`/api/proxy/external-integrations/business-plugin-apps`,{method:`POST`,headers:r,body:JSON.stringify({plugin_app_api_name:e,disabled:!1,config:{}})});if(!i.ok){let e=n?`uninstall`:`install`;if(i.status===400&&e===`install`){let t=await i.json().catch(()=>null);throw fi(t)?new di:Error(`${e} failed: ${String(i.status)} ${i.statusText} ${JSON.stringify(t)}`)}let t=await i.text().catch(()=>``);throw Error(`${e} failed: ${String(i.status)} ${i.statusText} ${t}`)}},onError:e=>{e instanceof di&&y(!0)},onSuccess:async()=>{await fetch(`/api/proxy-cache/clear`).catch(()=>{}),await Promise.all([j.invalidateQueries({queryKey:[`bootstrap`]}),j.invalidateQueries({queryKey:[`businessPluginApps`]})])}}),{location:ie}=jr(),N=/^\/([^/]+)\/.+/.exec(ie.pathname)?.[1],P=/^\/[^/]+\/([^/]+)/.exec(ie.pathname)?.[1];(0,q.useEffect)(()=>{ie.pathname!==`/`&&fetch(`/api/last-path`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:ie.pathname})})},[ie.pathname]);let F=((N?O?.find(e=>e.api_name===N):void 0)?.artifacts.automation_action_configs.length??0)>0,ae=!!N&&!!O?.some(e=>e.api_name===N),I=N?re?.find(e=>e.plugin_app.api_name===N):void 0,L=!!I&&!I.disabled,R=!!ee&&!!re&&ae,oe=M.isPending?L?`uninstalling…`:`installing…`:L?`Uninstall Plugin`:`Install Plugin`,se=M.isPending?`cursor-wait opacity-50`:``,z=k?`loading`:A?`error`:O?`loaded`:`empty`,B=ne?`authenticating`:te?`auth error`:ee?`authenticated`:`no auth`,ce=k?`bg-neutral-100 text-neutral-400`:A?`bg-red-100 text-red-700`:O?`bg-green-100 text-green-700`:`bg-yellow-100 text-yellow-700`,H=ne?`bg-neutral-100 text-neutral-400`:te?`bg-red-100 text-red-700`:ee?`bg-green-100 text-green-700`:`bg-yellow-100 text-yellow-700`;return(0,J.jsx)(ge.Provider,{value:T,children:(0,J.jsx)(U.Provider,{value:m?b:0,children:(0,J.jsx)(me.Provider,{value:ee,children:(0,J.jsxs)(`div`,{className:`flex h-screen flex-col overflow-hidden font-mono`,children:[(0,J.jsxs)(`div`,{className:`sticky top-0 z-10 flex flex-wrap items-center gap-2 sm:gap-3 border-b border-black/10 bg-white/85 px-3 py-2 sm:px-5 sm:py-3 backdrop-blur-sm`,children:[(0,J.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,J.jsx)(`img`,{src:`/mark.svg`,alt:`Kizen`,className:`h-5 w-5`})}),O&&O.length>0&&(0,J.jsx)(Xr,{bundle:O,currentApiName:N}),(0,J.jsx)(`div`,{className:`flex-1`}),(0,J.jsxs)(`button`,{onClick:()=>{window.location.reload()},className:`flex items-center gap-1.5 rounded-full border border-black/10 bg-white px-3 py-1 text-[11px] font-medium text-neutral-500 hover:border-black/20 hover:text-neutral-800`,"aria-label":`Refresh page`,children:[(0,J.jsx)(a,{icon:f}),(0,J.jsx)(`span`,{className:`hidden lg:inline`,children:`Refresh`})]}),(0,J.jsxs)(`button`,{onClick:()=>{oi(ve[T.environment],`_blank`,`noopener,height=900`)},className:`flex items-center gap-1.5 rounded-full border border-black/10 bg-white px-3 py-1 text-[11px] font-medium text-neutral-500 hover:border-black/20 hover:text-neutral-800`,"aria-label":`Open Kizen`,children:[(0,J.jsx)(a,{icon:t}),(0,J.jsx)(`span`,{className:`hidden lg:inline`,children:`Open Kizen`})]}),(0,J.jsxs)(`button`,{onClick:C,className:`flex items-center gap-1.5 rounded-full border border-black/10 bg-white px-3 py-1 text-[11px] font-medium text-neutral-500 hover:border-black/20 hover:text-neutral-800`,"aria-label":`Toggle script runner debug logging`,children:[(0,J.jsx)(a,{icon:p}),(0,J.jsx)(`span`,{className:`hidden lg:inline`,children:`Script Runner Logging`}),(0,J.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${g?`bg-green-500`:`bg-neutral-300`}`})]}),(0,J.jsxs)(`button`,{onClick:S,className:`flex items-center gap-1.5 rounded-full border border-black/10 bg-white px-3 py-1 text-[11px] font-medium text-neutral-500 hover:border-black/20 hover:text-neutral-800`,"aria-label":`Toggle dev tools`,children:[(0,J.jsx)(a,{icon:d}),(0,J.jsx)(`span`,{className:`hidden lg:inline`,children:`DevTools`}),(0,J.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${m?`bg-green-500`:`bg-neutral-300`}`})]}),R&&N&&(0,J.jsxs)(`button`,{type:`button`,disabled:M.isPending,onClick:()=>{M.mutate({apiName:N,hasExistingEntry:!!I,nextDisabled:L})},className:`flex items-center gap-1.5 rounded-full border border-black/10 bg-white px-3 py-1 text-[11px] font-medium text-neutral-500 transition-colors hover:border-black/20 hover:text-neutral-800 ${se}`,"aria-label":oe,children:[(0,J.jsx)(a,{icon:i}),(0,J.jsx)(`span`,{className:`hidden lg:inline`,children:oe}),(0,J.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full ${L?`bg-green-500`:`bg-neutral-300`}`})]}),(0,J.jsx)(`span`,{className:`hidden sm:inline rounded px-2 py-0.5 text-[11px] font-semibold tracking-wide ${ce}`,children:z}),(0,J.jsx)(`span`,{className:`hidden sm:inline rounded px-2 py-0.5 text-[11px] font-semibold tracking-wide ${H}`,children:B})]}),N&&(0,J.jsx)(ei,{currentApiName:N,currentSubPage:P,hasCodeSteps:F}),(0,J.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`flex-1 overflow-y-auto p-6`,style:{backgroundImage:`
|
|
3
3
|
linear-gradient(rgba(0,0,0,0.025) 1px, transparent 1px),
|
|
4
4
|
linear-gradient(90deg, rgba(0,0,0,0.025) 1px, transparent 1px)
|
|
5
|
-
`,backgroundSize:`24px 24px`},children:(0,J.jsx)(ti,{fallback:e=>(0,J.jsxs)(`div`,{className:`mx-auto max-w-md rounded border border-red-200 bg-red-50 p-4 text-[12px] text-red-800`,children:[(0,J.jsx)(`p`,{className:`m-0 font-semibold`,children:`Failed to render this view.`}),(0,J.jsx)(`p`,{className:`m-0 mt-1 text-red-700`,children:e.message}),(0,J.jsx)(`p`,{className:`m-0 mt-2 text-red-600`,children:`Reload the page to recover.`})]}),children:(0,J.jsx)(q.Suspense,{fallback:null,children:(0,J.jsx)(Sr,{})})})}),m&&(0,J.jsx)(ti,{fallback:(0,J.jsxs)(`aside`,{className:`flex w-[280px] shrink-0 flex-col border-l border-black/10 bg-white p-4 text-[12px] text-red-800`,children:[(0,J.jsx)(`p`,{className:`m-0 font-semibold`,children:`DevTools failed to load.`}),(0,J.jsx)(`p`,{className:`m-0 mt-1 text-red-700`,children:`Reload the page to try again.`})]}),children:(0,J.jsx)(q.Suspense,{fallback:null,children:(0,J.jsx)(ai,{onClose:S,buildLogs:e,proxyLogs:n,consoleLogs:r,onClearConsole:()=>{o()},credentials:T,onCredentialsChange:D,width:b,onWidthChange:w})})})]}),(0,J.jsx)(Yr,{state:l,onDismiss:u}),(0,J.jsx)(xe,{open:v,size:`md`,onBackdropClick:()=>{y(!1),M.reset()},header:(0,J.jsx)(be,{title:`App not published`}),footer:(0,J.jsx)(`button`,{onClick:()=>{y(!1),M.reset()},className:`rounded bg-neutral-900 px-3 py-1.5 text-[12px] text-white transition-colors hover:bg-neutral-700`,children:`OK`}),children:(0,J.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-700`,children:`This app must have been published at least once in order to install in your business.`}),(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-700`,children:`After the initial publish, you can enable the app in your business and try again.`})]})})]})})})})},hi=()=>{let{data:e,isLoading:t,isError:n}=V(he),r=w();return(0,q.useEffect)(()=>{let t=e?.[0];t&&r({to:`/$apiName/summary`,params:{apiName:t.api_name}})},[e,r]),t?(0,J.jsx)(Ce,{children:(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-400`,children:`Fetching bundle.json…`})}):n?(0,J.jsx)(Ce,{children:(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-red-700`,children:`Could not load bundle.json. Make sure the dev server is running from a plugin directory.`})}):!e||e.length===0?(0,J.jsx)(Ce,{children:(0,J.jsxs)(`p`,{className:`m-0 text-[13px] text-yellow-700`,children:[`bundle.json is empty. Run`,` `,(0,J.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:`npx --yes @kizenapps/cli build`}),` `,`to generate it.`]})}):null},gi=(0,q.lazy)(()=>Q(()=>import(`./AppDetailPage-D9xr-bY8.js`).then(e=>({default:e.AppDetailPage})),__vite__mapDeps([8,2,1,9,10,11,12,13,14,15,16]))),_i=(0,q.lazy)(()=>Q(()=>import(`./SandboxPage-DuCHX1FY.js`).then(e=>({default:e.SandboxPage})),__vite__mapDeps([17,1,2,18,3,19,9,20,6,4,21,16,7,10,22,12,13,14,15,5,23,24]))),vi=(0,q.lazy)(()=>Q(()=>import(`./ConfigurationPage-5qOX-sx0.js`).then(e=>({default:e.ConfigurationPage})),__vite__mapDeps([25,1,2,18,3,19,9,20,6,4,21,16,7,10,26,27,12,13]))),yi=(0,q.lazy)(()=>Q(()=>import(`./VersionsPage-yNilRkEf.js`).then(e=>({default:e.VersionsPage})),__vite__mapDeps([28,1,2,9,10,12,13]))),bi=(0,q.lazy)(()=>Q(()=>import(`./IconReferencePage-BxPfyqlV.js`).then(e=>({default:e.IconReferencePage})),__vite__mapDeps([29,1,2,15,13]))),xi=(0,q.lazy)(()=>Q(()=>import(`./CodeStepsPage-
|
|
5
|
+
`,backgroundSize:`24px 24px`},children:(0,J.jsx)(ti,{fallback:e=>(0,J.jsxs)(`div`,{className:`mx-auto max-w-md rounded border border-red-200 bg-red-50 p-4 text-[12px] text-red-800`,children:[(0,J.jsx)(`p`,{className:`m-0 font-semibold`,children:`Failed to render this view.`}),(0,J.jsx)(`p`,{className:`m-0 mt-1 text-red-700`,children:e.message}),(0,J.jsx)(`p`,{className:`m-0 mt-2 text-red-600`,children:`Reload the page to recover.`})]}),children:(0,J.jsx)(q.Suspense,{fallback:null,children:(0,J.jsx)(Sr,{})})})}),m&&(0,J.jsx)(ti,{fallback:(0,J.jsxs)(`aside`,{className:`flex w-[280px] shrink-0 flex-col border-l border-black/10 bg-white p-4 text-[12px] text-red-800`,children:[(0,J.jsx)(`p`,{className:`m-0 font-semibold`,children:`DevTools failed to load.`}),(0,J.jsx)(`p`,{className:`m-0 mt-1 text-red-700`,children:`Reload the page to try again.`})]}),children:(0,J.jsx)(q.Suspense,{fallback:null,children:(0,J.jsx)(ai,{onClose:S,buildLogs:e,proxyLogs:n,consoleLogs:r,onClearConsole:()=>{o()},credentials:T,onCredentialsChange:D,width:b,onWidthChange:w})})})]}),(0,J.jsx)(Yr,{state:l,onDismiss:u}),(0,J.jsx)(xe,{open:v,size:`md`,onBackdropClick:()=>{y(!1),M.reset()},header:(0,J.jsx)(be,{title:`App not published`}),footer:(0,J.jsx)(`button`,{onClick:()=>{y(!1),M.reset()},className:`rounded bg-neutral-900 px-3 py-1.5 text-[12px] text-white transition-colors hover:bg-neutral-700`,children:`OK`}),children:(0,J.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-700`,children:`This app must have been published at least once in order to install in your business.`}),(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-700`,children:`After the initial publish, you can enable the app in your business and try again.`})]})})]})})})})},hi=()=>{let{data:e,isLoading:t,isError:n}=V(he),r=w();return(0,q.useEffect)(()=>{let t=e?.[0];t&&r({to:`/$apiName/summary`,params:{apiName:t.api_name}})},[e,r]),t?(0,J.jsx)(Ce,{children:(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-400`,children:`Fetching bundle.json…`})}):n?(0,J.jsx)(Ce,{children:(0,J.jsx)(`p`,{className:`m-0 text-[13px] text-red-700`,children:`Could not load bundle.json. Make sure the dev server is running from a plugin directory.`})}):!e||e.length===0?(0,J.jsx)(Ce,{children:(0,J.jsxs)(`p`,{className:`m-0 text-[13px] text-yellow-700`,children:[`bundle.json is empty. Run`,` `,(0,J.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:`npx --yes @kizenapps/cli build`}),` `,`to generate it.`]})}):null},gi=(0,q.lazy)(()=>Q(()=>import(`./AppDetailPage-D9xr-bY8.js`).then(e=>({default:e.AppDetailPage})),__vite__mapDeps([8,2,1,9,10,11,12,13,14,15,16]))),_i=(0,q.lazy)(()=>Q(()=>import(`./SandboxPage-DuCHX1FY.js`).then(e=>({default:e.SandboxPage})),__vite__mapDeps([17,1,2,18,3,19,9,20,6,4,21,16,7,10,22,12,13,14,15,5,23,24]))),vi=(0,q.lazy)(()=>Q(()=>import(`./ConfigurationPage-5qOX-sx0.js`).then(e=>({default:e.ConfigurationPage})),__vite__mapDeps([25,1,2,18,3,19,9,20,6,4,21,16,7,10,26,27,12,13]))),yi=(0,q.lazy)(()=>Q(()=>import(`./VersionsPage-yNilRkEf.js`).then(e=>({default:e.VersionsPage})),__vite__mapDeps([28,1,2,9,10,12,13]))),bi=(0,q.lazy)(()=>Q(()=>import(`./IconReferencePage-BxPfyqlV.js`).then(e=>({default:e.IconReferencePage})),__vite__mapDeps([29,1,2,15,13]))),xi=(0,q.lazy)(()=>Q(()=>import(`./CodeStepsPage-D_kTMpRO.js`).then(e=>({default:e.CodeStepsPage})),__vite__mapDeps([30,1,2,18,3,9,10,31,26,27,12,13,23,5,6,24,21,16,7]))),Si=(0,q.lazy)(()=>Q(()=>import(`./SourceBrowserPage-DluS8U4q.js`).then(e=>({default:e.SourceBrowserPage})),__vite__mapDeps([32,1,2,9,26,27,11,24]))),Ci=(0,q.lazy)(()=>Q(()=>import(`./SecretsPage-Da55-e_S.js`).then(e=>({default:e.SecretsPage})),__vite__mapDeps([33,1,2,9,10,3,34,18,13,24]))),$=pr({component:mi}),wi=Z({getParentRoute:()=>$,path:`/`,component:hi}),Ti=Z({getParentRoute:()=>$,path:`/$apiName/summary`,component:gi}),Ei=Z({getParentRoute:()=>$,path:`/$apiName/sandbox`,component:_i}),Di=Z({getParentRoute:()=>$,path:`/$apiName/configuration`,component:vi}),Oi=Z({getParentRoute:()=>$,path:`/$apiName/versions`,component:yi}),ki=Z({getParentRoute:()=>$,path:`/$apiName/icons`,component:bi}),Ai=Z({getParentRoute:()=>$,path:`/$apiName/code-steps`,component:xi}),ji=Z({getParentRoute:()=>$,path:`/$apiName/code-steps/$stepApiName`,component:xi}),Mi=Z({getParentRoute:()=>$,path:`/$apiName/source`,component:Si}),Ni=Z({getParentRoute:()=>$,path:`/$apiName/secrets`,component:Ci}),Pi=Dr({routeTree:$.addChildren([wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni])}),Fi=document.getElementById(`root`),Ii=new fe;if(Fi===null)throw Error(`Root element not found`);(0,Pr.createRoot)(Fi).render((0,J.jsx)(q.StrictMode,{children:(0,J.jsx)(ce,{client:Ii,children:(0,J.jsx)(Ar,{router:Pi})})}));
|
package/dist/viewer/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Kizen App Development Toolkit</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-BF1Fk_v0.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dw2cE7zH.js">
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/fa-core-BSqLAjHu.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/CredentialsContext-Cwl_xyt_.js">
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{A as t,E as n,F as r,I as i,P as a,a as o,s}from"./fa-core-BSqLAjHu.js";import{t as c}from"./useNavigate-BL0GTcH4.js";import{t as l}from"./useParams-D3awshYI.js";import{t as u}from"./useQuery-JKMI40WO.js";import{t as d}from"./bundleQuery-BE1Gb8Ii.js";import{i as f}from"./api--Ax6VWLq.js";import{t as p}from"./Card-Sa52PGkn.js";import{t as m}from"./CodeViewer-CVECJY4e.js";import{t as h}from"./useLocalStorage-wp83IS34.js";import{t as g}from"./usePluginConfig-C8d13THZ.js";import{t as _}from"./WhenBadge-B7s7fns2.js";var v=e(i(),1),y=r(),b=({title:e,defaultOpen:t=!1,children:n})=>{let[r,i]=(0,v.useState)(t);return(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`button`,{onClick:()=>{i(e=>!e)},className:`flex w-full items-center gap-1.5 py-1 text-[11px] font-semibold uppercase tracking-widest text-neutral-400 hover:text-neutral-600`,children:[(0,y.jsx)(a,{icon:r?o:s,className:`w-2.5`}),e]}),r&&(0,y.jsx)(`div`,{className:`pb-2`,children:n})]})},x=({result:e})=>{let t=Object.entries(e.outputValues);return(0,y.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-black/10 bg-white p-4`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{className:`rounded px-2 py-0.5 text-[11px] font-semibold ${e.success?`bg-green-100 text-green-700`:`bg-red-100 text-red-700`}`,children:e.success?`Success`:`Error`}),(0,y.jsxs)(`span`,{className:`text-[11px] text-neutral-400`,children:[String(e.durationMs),`ms`]}),e.exitCode!==0&&(0,y.jsxs)(`span`,{className:`text-[11px] text-neutral-400`,children:[`exit code `,String(e.exitCode)]}),(0,y.jsx)(`button`,{onClick:e=>{let t=e.currentTarget;for(;t;){if(t.scrollHeight>t.clientHeight){t.scrollTo({top:0,behavior:`smooth`});return}t=t.parentElement}},className:`ml-auto text-[11px] text-neutral-400 hover:text-neutral-600`,children:`↑ top`})]}),e.error&&(0,y.jsx)(`pre`,{className:`overflow-auto rounded bg-red-50 p-3 font-mono text-[12px] text-red-800`,children:e.error}),t.length>0&&(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`mb-1 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Outputs`}),(0,y.jsx)(`div`,{className:`divide-y divide-black/5`,children:t.map(([e,t])=>(0,y.jsxs)(`div`,{className:`flex items-start gap-2 py-1.5`,children:[(0,y.jsx)(`span`,{className:`shrink-0 font-mono text-[12px] text-neutral-600`,children:e}),(0,y.jsx)(`span`,{className:`text-[11px] text-neutral-300`,children:`=`}),(0,y.jsx)(`pre`,{className:`min-w-0 flex-1 overflow-auto font-mono text-[12px] text-neutral-800`,children:typeof t==`string`?t:JSON.stringify(t,null,2)})]},e))})]}),e.logs.length>0&&(0,y.jsx)(b,{title:`Logs (${String(e.logs.length)})`,children:(0,y.jsx)(`div`,{className:`space-y-0.5`,children:e.logs.map((e,t)=>(0,y.jsx)(`div`,{className:`font-mono text-[12px] text-neutral-600`,children:e},t))})}),e.stdout&&(0,y.jsx)(b,{title:`Stdout`,children:(0,y.jsx)(`pre`,{className:`overflow-auto rounded bg-neutral-50 p-3 font-mono text-[12px] text-neutral-700`,children:e.stdout})}),e.stderr&&(0,y.jsx)(b,{title:`Stderr`,children:(0,y.jsx)(`pre`,{className:`overflow-auto rounded bg-neutral-50 p-3 font-mono text-[12px] text-neutral-700`,children:e.stderr})}),e.httpRequests&&e.httpRequests.count>0&&(0,y.jsx)(b,{title:`Network (${String(e.httpRequests.count)}${e.httpRequests.notLogged>0?`, ${String(e.httpRequests.notLogged)} not logged`:``})`,children:(0,y.jsx)(`div`,{className:`space-y-1.5`,children:e.httpRequests.requests.map((e,t)=>(0,y.jsx)(w,{request:e},t))})})]})},S=e=>{switch(e.toUpperCase()){case`GET`:return`bg-blue-100 text-blue-700`;case`POST`:return`bg-green-100 text-green-700`;case`PUT`:case`PATCH`:return`bg-amber-100 text-amber-700`;case`DELETE`:return`bg-red-100 text-red-700`;default:return`bg-neutral-100 text-neutral-700`}},C=(e,t)=>t||e>=500?`text-red-700`:e>=400?`text-amber-700`:e>=200?`text-green-700`:`text-neutral-600`,w=({request:e})=>{let[t,n]=(0,v.useState)(!1),r=e.requestErrorType!==null;return(0,y.jsxs)(`div`,{className:`rounded border border-black/5 bg-neutral-50`,children:[(0,y.jsxs)(`button`,{onClick:()=>{n(e=>!e)},className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left hover:bg-neutral-100`,children:[(0,y.jsx)(a,{icon:t?o:s,className:`w-2.5 text-neutral-400`}),(0,y.jsx)(`span`,{className:`rounded px-1.5 py-0.5 font-mono text-[10px] font-semibold ${S(e.method)}`,children:e.method}),(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[12px] text-neutral-700`,children:e.url}),(0,y.jsx)(`span`,{className:`font-mono text-[11px] font-semibold ${C(e.responseStatusCode,r)}`,children:r?e.requestErrorType:e.responseStatusCode}),(0,y.jsxs)(`span`,{className:`font-mono text-[10px] text-neutral-400`,children:[(e.duration*1e3).toFixed(0),`ms`]})]}),t&&(0,y.jsxs)(`div`,{className:`space-y-2 border-t border-black/5 p-2.5`,children:[(0,y.jsx)(T,{title:`Request Headers`,data:e.headers}),e.body&&(0,y.jsx)(E,{title:`Request Body`,body:e.body}),(0,y.jsx)(T,{title:`Response Headers`,data:e.responseHeaders}),e.responseBody&&(0,y.jsx)(E,{title:`Response Body`,body:e.responseBody})]})]})},T=({title:e,data:t})=>{let n=Object.entries(t);return n.length===0?null:(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-widest text-neutral-400`,children:e}),(0,y.jsx)(`div`,{className:`divide-y divide-black/5 rounded border border-black/5 bg-white`,children:n.map(([e,t])=>(0,y.jsxs)(`div`,{className:`flex gap-2 px-2 py-1 font-mono text-[11px]`,children:[(0,y.jsxs)(`span`,{className:`shrink-0 text-neutral-500`,children:[e,`:`]}),(0,y.jsx)(`span`,{className:`min-w-0 flex-1 break-all text-neutral-800`,children:t})]},e))})]})},E=({title:e,body:t})=>(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-widest text-neutral-400`,children:e}),(0,y.jsx)(`pre`,{className:`overflow-auto rounded border border-black/5 bg-white p-2 font-mono text-[11px] text-neutral-800`,children:t})]}),D=[`python-3-12`,`python-3-13`],O=`python-3-13`,k={text:`s`,string:`s`,number:`n`,integer:`n`,boolean:`b`,date:`d`,datetime:`dt`,phone:`p`,phonenumber:`p`,uuid:`u`,file:`f`,list:`l`};function A(e){return k[e.toLowerCase()]??`s`}function j(e){return D.includes(e)}function M(e,t){let n=Object.keys(e);if(n.length===0)return null;let r={};for(let i of n)r[i]={t:A(t[i]??`string`),v:e[i]};return r}function N(e){let t=Object.keys(e);if(t.length===0)return null;let n={};for(let r of t)n[r]=A(e[r]??`string`);return n}function P(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r.v;return t}function F(e){if(!e)return;let t=e.requests.map(e=>({method:e.method,url:e.url,headers:e.headers,body:e.body,requestSubmittedAt:e.requestSubmittedAt,session:e.session,responseStatusCode:e.responseStatusCode,responseHeaders:e.responseHeaders,responseBody:e.responseBody,requestErrorType:e.requestErrorType,duration:e.duration}));return{count:e.count,notLogged:e.not_logged,requests:t}}async function I(e,t){let n=Date.now(),r=t.scriptRuntime||O;if(!j(r))return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Unsupported runtime "${r}". Supported runtimes: ${D.join(`, `)}. Update the step's config.json "runtime" field (e.g. "python 3.13").`,exitCode:1,durationMs:Date.now()-n};let i={user_script:t.script,runtime:r,secrets:t.secretNames.length>0?t.secretNames:void 0,inputs:M(t.inputs,t.inputTypes),output_types:N(t.outputTypes)};try{let t=await e(`/coderunner/run`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)}),r=Date.now()-n;if(!t.ok){let e=await t.text();return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Remote runner returned ${String(t.status)}: ${e}`,exitCode:1,durationMs:r}}let a=await t.json(),o=a.error!==null,s=F(a.http_requests),c={success:!o,outputValues:P(a.values),logs:a.logs??[],stdout:``,stderr:``,exitCode:+!!o,durationMs:a.duration_ms??r,...s&&{httpRequests:s}};return o&&a.error&&(c.error=a.error.detail?`${a.error.error}\n${a.error.detail}`:a.error.error),c}catch(e){return{success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:`Remote execution failed: ${e instanceof Error?e.message:String(e)}`,exitCode:1,durationMs:Date.now()-n}}}var L=()=>{let{apiName:e,stepApiName:r}=l({strict:!1}),i=c(),{data:o,isLoading:s,isError:b}=u(d),S=f(),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)(null),[D,O]=h(`kizen-step-inputs:${e??``}:${r??``}`,{}),[k,A]=h(`kizen-step-secrets:${e??``}:${r??``}`,{}),[j,M]=h(`kizen-code-runner-mode`,`local`),N=(0,v.useMemo)(()=>o?.find(t=>t.api_name===e),[o,e]),P=(0,v.useMemo)(()=>N?.artifacts.automation_action_configs??[],[N]),F=P.find(e=>e.action_step_api_name===r)??P[0],L=N?.base_config,{whenState:R}=g(e,L,N?.config_template);if((0,v.useEffect)(()=>{if(!r&&P.length>0&&e){let t=P[0];t&&i({to:`/$apiName/code-steps/$stepApiName`,params:{apiName:e,stepApiName:t.action_step_api_name},replace:!0})}},[r,P,e,i]),(0,v.useEffect)(()=>{E(null)},[r]),s)return(0,y.jsx)(p,{children:(0,y.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-400`,children:`Fetching bundle.json…`})});if(b)return(0,y.jsx)(p,{children:(0,y.jsx)(`p`,{className:`m-0 text-[13px] text-red-700`,children:`Could not load bundle.json.`})});if(!N)return(0,y.jsx)(p,{children:(0,y.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`No app found with api_name`,` `,(0,y.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:e}),`.`]})});if(P.length===0)return(0,y.jsx)(p,{children:(0,y.jsx)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:`This app has no automation code steps.`})});if(!F)return(0,y.jsx)(p,{children:(0,y.jsxs)(`p`,{className:`m-0 text-[13px] text-neutral-500`,children:[`Step not found: `,(0,y.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5`,children:r}),`.`]})});let z=async()=>{w(!0),E(null);try{let t=Object.fromEntries(F.inputs.map(e=>[e.name,D[e.name]??``])),n;n=j===`remote`?await I(S,{script:F.script,scriptRuntime:F.script_runtime,inputs:t,inputTypes:Object.fromEntries(F.inputs.map(e=>[e.name,e.data_type])),outputTypes:Object.fromEntries(F.outputs.map(e=>[e.name,e.data_type])),secretNames:F.secrets.map(t=>`${e??``}__${t}`)}):await(await fetch(`/api/execute-step`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({script:F.script,scriptRuntime:F.script_runtime,inputs:t,secrets:Object.fromEntries(F.secrets.map(t=>[`${e??``}__${t}`,k[t]??``]))})})).json(),E(n)}catch(e){E({success:!1,outputValues:{},logs:[],stdout:``,stderr:``,error:e instanceof Error?e.message:String(e),exitCode:1,durationMs:0})}finally{w(!1)}};return(0,y.jsxs)(`div`,{className:`space-y-4`,children:[(0,y.jsxs)(p,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Code Step`}),(0,y.jsx)(`select`,{value:F.action_step_api_name,onChange:t=>{e&&i({to:`/$apiName/code-steps/$stepApiName`,params:{apiName:e,stepApiName:t.target.value}})},className:`rounded border border-black/10 bg-transparent px-2 py-0.5 text-[13px] font-mono text-neutral-700 focus:outline-none`,children:P.map(e=>(0,y.jsx)(`option`,{value:e.action_step_api_name,children:e.name},e.action_step_api_name))}),(0,y.jsx)(`div`,{className:`flex-1`}),(0,y.jsx)(`span`,{className:`rounded bg-blue-50 px-1.5 py-0.5 text-[10px] font-semibold text-blue-600`,children:F.script_runtime})]}),F.overall_description&&(0,y.jsx)(`p`,{className:`mt-2 text-[12px] text-neutral-500`,children:F.overall_description}),F.when&&(0,y.jsx)(`div`,{className:`mt-2`,children:(0,y.jsx)(_,{when:F.when,whenState:R})})]}),(0,y.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-3`,children:[(0,y.jsxs)(p,{children:[(0,y.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Inputs`}),F.inputs.length>0?(0,y.jsx)(`div`,{className:`space-y-3`,children:F.inputs.map(e=>(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`label`,{className:`mb-1 block text-[12px] text-neutral-700`,children:[e.label,e.required&&(0,y.jsx)(`span`,{className:`ml-0.5 text-red-500`,children:`*`})]}),(0,y.jsx)(`input`,{type:`text`,value:D[e.name]??``,onChange:t=>{O({...D,[e.name]:t.target.value})},placeholder:e.name,className:`w-full rounded border border-black/10 bg-white px-2.5 py-1.5 font-mono text-[13px] text-neutral-800 placeholder:text-neutral-300 focus:border-blue-300 focus:outline-none`}),(0,y.jsx)(`div`,{className:`mt-0.5 font-mono text-[10px] text-neutral-400`,children:e.name})]},e.name))}):(0,y.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]}),(0,y.jsxs)(p,{children:[(0,y.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Outputs`}),F.outputs.length>0?(0,y.jsx)(`div`,{className:`space-y-2`,children:F.outputs.map(e=>(0,y.jsxs)(`div`,{className:`flex items-baseline gap-2 rounded border border-black/5 bg-neutral-50 px-2.5 py-1.5`,children:[(0,y.jsx)(`span`,{className:`text-[13px] text-neutral-700`,children:e.label}),(0,y.jsx)(`span`,{className:`font-mono text-[10px] text-neutral-400`,children:e.name}),(0,y.jsx)(`span`,{className:`ml-auto rounded bg-white px-1.5 py-0.5 font-mono text-[10px] text-neutral-500`,children:e.data_type})]},e.name))}):(0,y.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]}),(0,y.jsxs)(p,{children:[(0,y.jsx)(`div`,{className:`mb-3 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Secrets`}),j===`remote`&&(0,y.jsx)(`p`,{className:`mb-3 rounded border border-blue-100 bg-blue-50 px-2.5 py-1.5 text-[12px] text-blue-700`,children:`Remote runner uses secrets from your business context.`}),F.secrets.length>0?(0,y.jsx)(`div`,{className:`space-y-3`,children:F.secrets.map(e=>(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`label`,{className:`mb-1 block text-[12px] text-neutral-700`,children:e}),(0,y.jsx)(`input`,{type:`password`,value:k[e]??``,onChange:t=>{A({...k,[e]:t.target.value})},placeholder:e,disabled:j===`remote`,className:`w-full rounded border border-black/10 bg-white px-2.5 py-1.5 font-mono text-[13px] text-neutral-800 placeholder:text-neutral-300 focus:border-blue-300 focus:outline-none disabled:cursor-not-allowed disabled:bg-neutral-50 disabled:text-neutral-400`})]},e))}):(0,y.jsx)(`p`,{className:`m-0 text-[12px] text-neutral-400`,children:`None defined.`})]})]}),(0,y.jsx)(m,{code:F.script,language:`python`,onRun:()=>void z(),isRunning:C,executionMode:j,onModeChange:M}),(0,y.jsx)(`div`,{className:`sticky bottom-0 z-10 max-h-[60vh] overflow-y-auto rounded-lg shadow-[0_-8px_24px_-12px_rgba(0,0,0,0.18)]`,children:T?(0,y.jsx)(x,{result:T}):(0,y.jsx)(`div`,{className:`flex items-center gap-2 rounded-lg border border-dashed border-black/10 bg-white px-4 py-3`,children:C?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{icon:t,className:`animate-spin text-neutral-400`}),(0,y.jsx)(`span`,{className:`text-[12px] text-neutral-500`,children:`Running step…`})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{icon:n,className:`text-neutral-300`}),(0,y.jsx)(`span`,{className:`text-[12px] text-neutral-400`,children:`Run the step to see output, logs, and network activity here.`})]})})})]})};export{L as CodeStepsPage};
|