@kizenapps/cli 1.10.0-0a9fae5 → 1.10.0-e36fedb
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/README.md +172 -15
- package/dist/THIRD-PARTY-NOTICES.txt +4342 -0
- package/dist/index.js +24 -24
- package/dist/index.js.map +1 -1
- package/dist/viewer/assets/AppDetailPage-D9xr-bY8.js +1 -0
- package/dist/viewer/assets/{CodeStepsPage-BjnqiAQX.js → CodeStepsPage-CvCrJCQn.js} +1 -1
- package/dist/viewer/assets/{ConfigurationPage-XUysfO8v.js → ConfigurationPage-5qOX-sx0.js} +1 -1
- package/dist/viewer/assets/IconReferencePage-BxPfyqlV.js +1 -0
- package/dist/viewer/assets/SandboxPage-DuCHX1FY.js +1 -0
- package/dist/viewer/assets/{SecretsPage-BwDfBKbY.js → SecretsPage-Da55-e_S.js} +1 -1
- package/dist/viewer/assets/{SourceBrowserPage-D9z0jLNw.js → SourceBrowserPage-DluS8U4q.js} +1 -1
- package/dist/viewer/assets/blockDimensions-BhWxVVcK.js +1 -0
- package/dist/viewer/assets/{index-C570aZ49.js → index-Du4zThGL.js} +2 -2
- package/dist/viewer/assets/index-MRuQEa3q.css +2 -0
- package/dist/viewer/assets/{useCompleteSetup-3RGdCYrc.js → useCompleteSetup-DUHoBgca.js} +1 -1
- package/dist/viewer/assets/{usePluginConfig-XFnehL_S.js → usePluginConfig-C8d13THZ.js} +1 -1
- package/dist/viewer/assets/validIcons-D8mhuO5s.js +1 -0
- package/dist/viewer/index.html +2 -2
- package/package.json +27 -8
- package/dist/viewer/assets/AppDetailPage-CKDgNuvS.js +0 -1
- package/dist/viewer/assets/IconReferencePage-CN9Tha2W.js +0 -1
- package/dist/viewer/assets/SandboxPage-DbMklAzy.js +0 -1
- package/dist/viewer/assets/blockDimensions-XngD6WWh.js +0 -1
- package/dist/viewer/assets/fa-pro-icons-B6J9phvt.js +0 -1
- package/dist/viewer/assets/iconMap-B-cS2yrx.js +0 -1
- package/dist/viewer/assets/index-CortCmDi.css +0 -2
- /package/dist/viewer/assets/{CodeViewer-DpJLTTab.js → CodeViewer-CVECJY4e.js} +0 -0
- /package/dist/viewer/assets/{VersionsPage-CRnStnQ-.js → VersionsPage-yNilRkEf.js} +0 -0
- /package/dist/viewer/assets/{WhenBadge-Dm7YHpxd.js → WhenBadge-B7s7fns2.js} +0 -0
- /package/dist/viewer/assets/{formatBytes-BV6bvmhE.js → formatBytes-BXYIMbyB.js} +0 -0
- /package/dist/viewer/assets/{setupAssistant-C-3V_Vj3.js → setupAssistant-DtI9NWXr.js} +0 -0
- /package/dist/viewer/assets/{useLocalStorage-BZr9ZJI5.js → useLocalStorage-wp83IS34.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{A as t,C as n,F as r,I as i,M as a,N as o,P as s,f as c,i as l,p as ee,x as u}from"./fa-core-BSqLAjHu.js";import{t as te}from"./useParams-D3awshYI.js";import{t as ne}from"./useQuery-JKMI40WO.js";import{n as d}from"./CredentialsContext-Cwl_xyt_.js";import{t as re}from"./bootstrapQuery-CyYWFe68.js";import{t as f}from"./Card-Sa52PGkn.js";import{t as p}from"./useLocalStorage-BZr9ZJI5.js";var m=e(i(),1),h=`prod`,g=r();function _(e,t,n){return`secrets-pk::${e}::${t}::${n}`}function v(e,t,n){try{return localStorage.getItem(_(e,t,n))}catch{return null}}function ie(e,t,n,r){try{localStorage.setItem(_(e,t,n),r)}catch{}}var y=()=>{let{apiName:e}=te({from:`/$apiName/secrets`}),r=d(),{apiKey:i,userId:_,businessId:y,environment:b}=r,[x,S]=(0,m.useState)(h),[C,ae]=(0,m.useState)(!1),[w,oe]=p(`kizen-encryption-mode`,`local`),[T,E]=(0,m.useState)(null),[D,O]=(0,m.useState)(!1),[k,A]=(0,m.useState)(!1),[j,M]=(0,m.useState)(null),[se,N]=(0,m.useState)(!1),[P,ce]=(0,m.useState)(``),[F,I]=(0,m.useState)(null),[L,R]=(0,m.useState)(null),[z,B]=(0,m.useState)(!1),[V,H]=(0,m.useState)(!1),[U,W]=(0,m.useState)(``),[G,K]=(0,m.useState)(null),[q,J]=(0,m.useState)(!1),[le,Y]=(0,m.useState)(!1),ue=!!(i&&_&&y),{isError:de,isLoading:X}=ne(re(r));(0,m.useEffect)(()=>{let e=!1;return fetch(`/api/encryption-target`).then(e=>e.json()).then(t=>{!e&&(t.target===`dev`||t.target===`prod`)&&S(t.target)}).catch(()=>{}).finally(()=>{e||ae(!0)}),()=>{e=!0}},[]),(0,m.useEffect)(()=>{if(!C)return;let t=v(e,b,x);E(t),O(t!==null)},[e,b,x,C]);let Z=()=>{I(null),R(null)},fe=e=>{oe(e),Z()},pe=e=>{S(e),Z(),fetch(`/api/encryption-target`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({target:e})}).catch(()=>{})},Q=async()=>{A(!0),M(null),E(null);try{let t=await fetch(`/api/wizard/get-public-key`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":i,"x-user-id":_,"x-business-id":y,"x-encryption-target":x,"x-auth-environment":b},body:JSON.stringify({api_name:e})}),n=await t.json();t.ok&&typeof n.public_key==`string`?(E(n.public_key),ie(e,b,x,n.public_key),O(!0)):M(typeof n.error==`string`?n.error:`Unexpected response (${String(t.status)})`)}catch(e){M(e.message)}finally{A(!1)}},$=async()=>{if(C&&!(!P.trim()||w===`local`&&!T)){B(!0),R(null),I(null);try{let t=w===`remote`?await fetch(`/api/wizard/encrypt`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":i,"x-user-id":_,"x-business-id":y,"x-encryption-target":x,"x-auth-environment":b},body:JSON.stringify({api_name:e,value:P})}):await fetch(`/api/local/encrypt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({publicKeyPem:T,value:P})}),n=await t.json();t.ok&&n.encrypted===!0&&typeof n.value==`string`?I(JSON.stringify({encrypted:!0,value:n.value},null,2)):R(typeof n.error==`string`?n.error:`Unexpected response (${String(t.status)})`)}catch(e){R(e.message)}finally{B(!1)}}},me=()=>{let e=U.replace(/\s+/g,``);try{let t=JSON.parse(e);W(JSON.stringify(t,null,2))}catch{W(e)}Y(!1),K(null)},he=async()=>{if(!U.trim())return;J(!0),K(null);let e=U.trim();try{let t=JSON.parse(e);typeof t.value==`string`&&(e=t.value)}catch{}try{K(await(await fetch(`/api/local/validate`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:e})})).json())}catch(e){K({valid:!1,checks:[],error:e.message})}finally{J(!1)}};return ue?X?(0,g.jsx)(f,{children:(0,g.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,g.jsx)(s,{icon:t,className:`animate-spin text-[20px] text-neutral-300`})})}):de?(0,g.jsx)(f,{children:(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8 text-center`,children:[(0,g.jsx)(s,{icon:a,className:`text-[22px] text-amber-400`}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`text-[13px] font-medium text-neutral-500`,children:`Authentication failed`}),(0,g.jsx)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:`Your credentials were rejected. Please enter valid credentials and refresh.`})]})]})}):(0,g.jsxs)(f,{children:[(0,g.jsxs)(`div`,{className:`mb-5 flex items-end justify-between gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`span`,{className:`block text-[12px] font-medium text-neutral-600`,children:`Encryption`}),(0,g.jsx)(`p`,{className:`mt-0.5 text-[11px] text-neutral-400`,children:`Where encryption runs, and which environment's keys secrets are encrypted against.`})]}),(0,g.jsxs)(`div`,{className:`flex shrink-0 items-end gap-3`,children:[(0,g.jsxs)(`div`,{role:`group`,"aria-label":`Encryption mode`,children:[(0,g.jsx)(`span`,{className:`mb-1 block text-[11px] font-medium text-neutral-500`,children:`Mode`}),(0,g.jsx)(`div`,{className:`flex overflow-hidden rounded-lg border border-black/10 text-[12px] font-medium`,children:[`local`,`remote`].map(e=>(0,g.jsx)(`button`,{type:`button`,"aria-pressed":w===e,onClick:()=>{fe(e)},className:`px-2.5 py-1.5 transition-colors ${w===e?`bg-neutral-700 text-white`:`bg-white text-neutral-500 hover:bg-neutral-100`}`,children:e===`local`?`Local`:`Remote`},e))})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{htmlFor:`enc-target`,className:`mb-1 block text-[11px] font-medium text-neutral-500`,children:`Keys`}),(0,g.jsxs)(`select`,{id:`enc-target`,value:x,onChange:e=>{pe(e.target.value)},className:`rounded-lg border border-black/10 bg-white px-2 py-1.5 text-[12px] text-neutral-700 outline-none focus:ring-2 focus:ring-blue-400`,children:[(0,g.jsx)(`option`,{value:`prod`,children:`Prod`}),(0,g.jsx)(`option`,{value:`dev`,children:`Dev`})]})]})]})]}),x===`dev`&&(0,g.jsxs)(`div`,{className:`mb-5 flex items-center gap-2 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2.5 text-[12px] text-amber-700`,children:[(0,g.jsx)(s,{icon:a,className:`shrink-0 text-[11px]`}),(0,g.jsxs)(`span`,{children:[(0,g.jsx)(`strong`,{className:`font-semibold`,children:`Dev keys selected.`}),` Be sure you know what you're doing — most apps use the production encryption service. Secrets encrypted with dev keys won't decrypt in production.`]})]}),(0,g.jsx)(`hr`,{className:`mb-6 border-black/8`}),w===`local`&&(0,g.jsxs)(g.Fragment,{children:[T!==null&&D?(0,g.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-black/8 bg-neutral-50 px-3 py-2.5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(s,{icon:l,className:`text-[11px] text-green-600`}),(0,g.jsx)(`span`,{className:`text-[12px] font-medium text-neutral-700`,children:`Public key loaded`})]}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,g.jsx)(`button`,{type:`button`,onClick:()=>{O(!1)},className:`rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:`Show`}),(0,g.jsx)(`span`,{className:`text-neutral-300`,children:`·`}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{Q()},disabled:k,className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-neutral-500 hover:bg-neutral-100 disabled:opacity-50`,children:[k&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[10px]`}),`Refresh`]})]})]}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`mb-5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,g.jsx)(`h2`,{className:`text-[15px] font-semibold text-neutral-900`,children:`Public Key`}),T!==null&&(0,g.jsx)(`button`,{type:`button`,onClick:()=>{O(!0)},className:`text-[11px] font-medium text-neutral-400 hover:text-neutral-600`,children:`Collapse`})]}),(0,g.jsxs)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:[`Fetch the public key for`,` `,(0,g.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5 text-[11px]`,children:e}),`. Required for encryption below.`]})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{className:`mb-1 block text-[12px] font-medium text-neutral-600`,children:`Plugin`}),(0,g.jsx)(`div`,{className:`rounded-lg border border-black/10 bg-neutral-50 px-3 py-2 text-[13px] text-neutral-500`,children:e})]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{Q()},disabled:k,className:`flex items-center justify-center gap-2 rounded-lg bg-neutral-700 px-4 py-2 text-[13px] font-medium text-white hover:bg-neutral-800 active:bg-neutral-900 disabled:cursor-not-allowed disabled:opacity-50`,children:[k&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[12px]`}),k?`Fetching…`:T===null?`Get Public Key`:`Refresh Key`]}),j!==null&&(0,g.jsx)(`p`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-[12px] text-red-600`,children:j}),T!==null&&(0,g.jsxs)(`div`,{children:[(0,g.jsxs)(`div`,{className:`mb-1 flex items-center justify-between`,children:[(0,g.jsx)(`label`,{className:`text-[12px] font-medium text-neutral-600`,children:`Public key (PEM)`}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{T&&navigator.clipboard.writeText(T).then(()=>{N(!0),setTimeout(()=>{N(!1)},2e3)})},className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:[(0,g.jsx)(s,{icon:c,className:`text-[10px]`}),se?`Copied!`:`Copy`]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{if(!T)return;let t=new Blob([T],{type:`text/plain`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${e}-${b}-${x}-public-key.pem`,r.click(),URL.revokeObjectURL(n)},className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:[(0,g.jsx)(s,{icon:ee,className:`text-[10px]`}),`Download`]})]})]}),(0,g.jsx)(`textarea`,{readOnly:!0,value:T,rows:5,className:`w-full rounded-lg border border-black/10 bg-neutral-50 px-3 py-2 font-mono text-[11px] text-neutral-600 outline-none`})]})]})]}),(0,g.jsx)(`hr`,{className:`my-6 border-black/8`})]}),(0,g.jsxs)(`div`,{className:`mb-5`,children:[(0,g.jsx)(`h2`,{className:`text-[15px] font-semibold text-neutral-900`,children:`Encrypt a Secret`}),(0,g.jsxs)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:[w===`remote`?`Encrypts a secret via the remote plugin-wizard API. `:`Encrypts a secret in-process using the public key. `,`Output is ready to paste into`,` `,(0,g.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5 text-[11px]`,children:`kizen.json`}),`.`]})]}),w===`local`&&T===null?(0,g.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2.5 text-[12px] text-amber-700`,children:[(0,g.jsx)(s,{icon:u,className:`shrink-0 text-[11px]`}),`Fetch the public key above first, or switch to Remote mode.`]}):(0,g.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{htmlFor:`secret-value`,className:`mb-1 block text-[12px] font-medium text-neutral-600`,children:`Secret value`}),(0,g.jsx)(`input`,{id:`secret-value`,type:`password`,value:P,onChange:e=>{ce(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&$()},placeholder:`Enter the plaintext secret…`,className:`w-full rounded-lg border border-black/10 px-3 py-2 text-[13px] outline-none focus:ring-2 focus:ring-blue-400`})]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{$()},disabled:z||!P.trim()||!C,className:`flex items-center justify-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-[13px] font-medium text-white hover:bg-blue-700 active:bg-blue-800 disabled:cursor-not-allowed disabled:opacity-50`,children:[z&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[12px]`}),z?`Encrypting…`:`Encrypt`]}),L!==null&&(0,g.jsx)(`p`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-[12px] text-red-600`,children:L}),F!==null&&(0,g.jsxs)(`div`,{children:[(0,g.jsxs)(`div`,{className:`mb-1 flex items-center justify-between`,children:[(0,g.jsx)(`label`,{className:`text-[12px] font-medium text-neutral-600`,children:`Encrypted envelope`}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{F&&navigator.clipboard.writeText(F).then(()=>{H(!0),setTimeout(()=>{H(!1)},2e3)})},className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:[(0,g.jsx)(s,{icon:c,className:`text-[10px]`}),V?`Copied!`:`Copy`]})]}),(0,g.jsx)(`textarea`,{readOnly:!0,value:F,rows:5,className:`w-full rounded-lg border border-black/10 bg-neutral-50 px-3 py-2 font-mono text-[11px] text-neutral-600 outline-none`})]})]}),(0,g.jsx)(`hr`,{className:`my-6 border-black/8`}),(0,g.jsxs)(`div`,{className:`mb-5`,children:[(0,g.jsx)(`h2`,{className:`text-[15px] font-semibold text-neutral-900`,children:`Validate an Encrypted Value`}),(0,g.jsx)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:`Paste an encrypted envelope to verify it is well-formed.`})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{htmlFor:`validate-input`,className:`mb-1 block text-[12px] font-medium text-neutral-600`,children:`Encrypted value`}),(0,g.jsx)(`textarea`,{id:`validate-input`,value:U,onChange:e=>{let t=e.target.value;W(t),K(null),Y(/[A-Za-z0-9+/=]{4,}\s+[A-Za-z0-9+/=]{4,}/.test(t))},placeholder:`Paste the { "encrypted": true, "value": "…" } JSON, or just the raw base64 value`,rows:4,className:`w-full rounded-lg border border-black/10 px-3 py-2 font-mono text-[11px] text-neutral-700 outline-none focus:ring-2 focus:ring-blue-400`})]}),le&&(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-[12px] text-amber-700`,children:[(0,g.jsx)(`span`,{children:`The pasted value contains whitespace inside the base64 string — a common copy-paste artifact from line-wrapped output.`}),(0,g.jsx)(`button`,{type:`button`,onClick:me,className:`shrink-0 rounded px-2 py-0.5 text-[11px] font-medium text-amber-800 underline hover:no-underline`,children:`Strip whitespace`})]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{he()},disabled:q||!U.trim(),className:`flex items-center justify-center gap-2 rounded-lg bg-neutral-700 px-4 py-2 text-[13px] font-medium text-white hover:bg-neutral-800 active:bg-neutral-900 disabled:cursor-not-allowed disabled:opacity-50`,children:[q&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[12px]`}),q?`Validating…`:`Validate`]}),G!==null&&(0,g.jsx)(`div`,{className:`rounded-lg border px-4 py-3 ${G.valid?`border-green-200 bg-green-50`:`border-red-200 bg-red-50`}`,children:G.error===void 0?(0,g.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,g.jsx)(`p`,{className:`text-[12px] font-semibold ${G.valid?`text-green-700`:`text-red-700`}`,children:G.valid?`All checks passed`:`Validation failed`}),(0,g.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:G.checks.map(e=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsx)(s,{icon:e.pass?l:o,className:`w-3 shrink-0 text-[10px] ${e.pass?`text-green-600`:`text-red-500`}`}),(0,g.jsx)(`span`,{className:`text-[11px] text-neutral-600`,children:e.label})]}),(0,g.jsx)(`span`,{className:`font-mono text-[11px] ${e.pass?`text-neutral-500`:`text-red-600`}`,children:e.actual})]},e.label))})]}):(0,g.jsx)(`p`,{className:`text-[12px] text-red-600`,children:G.error})})]})]}):(0,g.jsx)(f,{children:(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8 text-center`,children:[(0,g.jsx)(s,{icon:n,className:`text-[22px] text-neutral-300`}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`text-[13px] font-medium text-neutral-500`,children:`No credentials configured`}),(0,g.jsxs)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:[`A credential profile with a valid API key, user ID, and business ID is required to use this page. Set one up in`,` `,(0,g.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5 text-[11px]`,children:`~/.kizenappbuilder/credentials.json`}),` `,`and restart the server.`]})]})]})})};export{y as SecretsPage};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{A as t,C as n,F as r,I as i,M as a,N as o,P as s,f as c,i as l,p as ee,x as u}from"./fa-core-BSqLAjHu.js";import{t as te}from"./useParams-D3awshYI.js";import{t as ne}from"./useQuery-JKMI40WO.js";import{n as d}from"./CredentialsContext-Cwl_xyt_.js";import{t as re}from"./bootstrapQuery-CyYWFe68.js";import{t as f}from"./Card-Sa52PGkn.js";import{t as p}from"./useLocalStorage-wp83IS34.js";var m=e(i(),1),h=`prod`,g=r();function _(e,t,n){return`secrets-pk::${e}::${t}::${n}`}function v(e,t,n){try{return localStorage.getItem(_(e,t,n))}catch{return null}}function ie(e,t,n,r){try{localStorage.setItem(_(e,t,n),r)}catch{}}var y=()=>{let{apiName:e}=te({from:`/$apiName/secrets`}),r=d(),{apiKey:i,userId:_,businessId:y,environment:b}=r,[x,S]=(0,m.useState)(h),[C,ae]=(0,m.useState)(!1),[w,oe]=p(`kizen-encryption-mode`,`local`),[T,E]=(0,m.useState)(null),[D,O]=(0,m.useState)(!1),[k,A]=(0,m.useState)(!1),[j,M]=(0,m.useState)(null),[se,N]=(0,m.useState)(!1),[P,ce]=(0,m.useState)(``),[F,I]=(0,m.useState)(null),[L,R]=(0,m.useState)(null),[z,B]=(0,m.useState)(!1),[V,H]=(0,m.useState)(!1),[U,W]=(0,m.useState)(``),[G,K]=(0,m.useState)(null),[q,J]=(0,m.useState)(!1),[le,Y]=(0,m.useState)(!1),ue=!!(i&&_&&y),{isError:de,isLoading:X}=ne(re(r));(0,m.useEffect)(()=>{let e=!1;return fetch(`/api/encryption-target`).then(e=>e.json()).then(t=>{!e&&(t.target===`dev`||t.target===`prod`)&&S(t.target)}).catch(()=>{}).finally(()=>{e||ae(!0)}),()=>{e=!0}},[]),(0,m.useEffect)(()=>{if(!C)return;let t=v(e,b,x);E(t),O(t!==null)},[e,b,x,C]);let Z=()=>{I(null),R(null)},fe=e=>{oe(e),Z()},pe=e=>{S(e),Z(),fetch(`/api/encryption-target`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({target:e})}).catch(()=>{})},Q=async()=>{A(!0),M(null),E(null);try{let t=await fetch(`/api/wizard/get-public-key`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":i,"x-user-id":_,"x-business-id":y,"x-encryption-target":x,"x-auth-environment":b},body:JSON.stringify({api_name:e})}),n=await t.json();t.ok&&typeof n.public_key==`string`?(E(n.public_key),ie(e,b,x,n.public_key),O(!0)):M(typeof n.error==`string`?n.error:`Unexpected response (${String(t.status)})`)}catch(e){M(e.message)}finally{A(!1)}},$=async()=>{if(C&&!(!P.trim()||w===`local`&&!T)){B(!0),R(null),I(null);try{let t=w===`remote`?await fetch(`/api/wizard/encrypt`,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":i,"x-user-id":_,"x-business-id":y,"x-encryption-target":x,"x-auth-environment":b},body:JSON.stringify({api_name:e,value:P})}):await fetch(`/api/local/encrypt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({publicKeyPem:T,value:P})}),n=await t.json();t.ok&&n.encrypted===!0&&typeof n.value==`string`?I(JSON.stringify({encrypted:!0,value:n.value},null,2)):R(typeof n.error==`string`?n.error:`Unexpected response (${String(t.status)})`)}catch(e){R(e.message)}finally{B(!1)}}},me=()=>{let e=U.replace(/\s+/g,``);try{let t=JSON.parse(e);W(JSON.stringify(t,null,2))}catch{W(e)}Y(!1),K(null)},he=async()=>{if(!U.trim())return;J(!0),K(null);let e=U.trim();try{let t=JSON.parse(e);typeof t.value==`string`&&(e=t.value)}catch{}try{K(await(await fetch(`/api/local/validate`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:e})})).json())}catch(e){K({valid:!1,checks:[],error:e.message})}finally{J(!1)}};return ue?X?(0,g.jsx)(f,{children:(0,g.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,g.jsx)(s,{icon:t,className:`animate-spin text-[20px] text-neutral-300`})})}):de?(0,g.jsx)(f,{children:(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8 text-center`,children:[(0,g.jsx)(s,{icon:a,className:`text-[22px] text-amber-400`}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`text-[13px] font-medium text-neutral-500`,children:`Authentication failed`}),(0,g.jsx)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:`Your credentials were rejected. Please enter valid credentials and refresh.`})]})]})}):(0,g.jsxs)(f,{children:[(0,g.jsxs)(`div`,{className:`mb-5 flex items-end justify-between gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`span`,{className:`block text-[12px] font-medium text-neutral-600`,children:`Encryption`}),(0,g.jsx)(`p`,{className:`mt-0.5 text-[11px] text-neutral-400`,children:`Where encryption runs, and which environment's keys secrets are encrypted against.`})]}),(0,g.jsxs)(`div`,{className:`flex shrink-0 items-end gap-3`,children:[(0,g.jsxs)(`div`,{role:`group`,"aria-label":`Encryption mode`,children:[(0,g.jsx)(`span`,{className:`mb-1 block text-[11px] font-medium text-neutral-500`,children:`Mode`}),(0,g.jsx)(`div`,{className:`flex overflow-hidden rounded-lg border border-black/10 text-[12px] font-medium`,children:[`local`,`remote`].map(e=>(0,g.jsx)(`button`,{type:`button`,"aria-pressed":w===e,onClick:()=>{fe(e)},className:`px-2.5 py-1.5 transition-colors ${w===e?`bg-neutral-700 text-white`:`bg-white text-neutral-500 hover:bg-neutral-100`}`,children:e===`local`?`Local`:`Remote`},e))})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{htmlFor:`enc-target`,className:`mb-1 block text-[11px] font-medium text-neutral-500`,children:`Keys`}),(0,g.jsxs)(`select`,{id:`enc-target`,value:x,onChange:e=>{pe(e.target.value)},className:`rounded-lg border border-black/10 bg-white px-2 py-1.5 text-[12px] text-neutral-700 outline-none focus:ring-2 focus:ring-blue-400`,children:[(0,g.jsx)(`option`,{value:`prod`,children:`Prod`}),(0,g.jsx)(`option`,{value:`dev`,children:`Dev`})]})]})]})]}),x===`dev`&&(0,g.jsxs)(`div`,{className:`mb-5 flex items-center gap-2 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2.5 text-[12px] text-amber-700`,children:[(0,g.jsx)(s,{icon:a,className:`shrink-0 text-[11px]`}),(0,g.jsxs)(`span`,{children:[(0,g.jsx)(`strong`,{className:`font-semibold`,children:`Dev keys selected.`}),` Be sure you know what you're doing — most apps use the production encryption service. Secrets encrypted with dev keys won't decrypt in production.`]})]}),(0,g.jsx)(`hr`,{className:`mb-6 border-black/8`}),w===`local`&&(0,g.jsxs)(g.Fragment,{children:[T!==null&&D?(0,g.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-black/8 bg-neutral-50 px-3 py-2.5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(s,{icon:l,className:`text-[11px] text-green-600`}),(0,g.jsx)(`span`,{className:`text-[12px] font-medium text-neutral-700`,children:`Public key loaded`})]}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,g.jsx)(`button`,{type:`button`,onClick:()=>{O(!1)},className:`rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:`Show`}),(0,g.jsx)(`span`,{className:`text-neutral-300`,children:`·`}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{Q()},disabled:k,className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-neutral-500 hover:bg-neutral-100 disabled:opacity-50`,children:[k&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[10px]`}),`Refresh`]})]})]}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`mb-5`,children:[(0,g.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,g.jsx)(`h2`,{className:`text-[15px] font-semibold text-neutral-900`,children:`Public Key`}),T!==null&&(0,g.jsx)(`button`,{type:`button`,onClick:()=>{O(!0)},className:`text-[11px] font-medium text-neutral-400 hover:text-neutral-600`,children:`Collapse`})]}),(0,g.jsxs)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:[`Fetch the public key for`,` `,(0,g.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5 text-[11px]`,children:e}),`. Required for encryption below.`]})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{className:`mb-1 block text-[12px] font-medium text-neutral-600`,children:`Plugin`}),(0,g.jsx)(`div`,{className:`rounded-lg border border-black/10 bg-neutral-50 px-3 py-2 text-[13px] text-neutral-500`,children:e})]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{Q()},disabled:k,className:`flex items-center justify-center gap-2 rounded-lg bg-neutral-700 px-4 py-2 text-[13px] font-medium text-white hover:bg-neutral-800 active:bg-neutral-900 disabled:cursor-not-allowed disabled:opacity-50`,children:[k&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[12px]`}),k?`Fetching…`:T===null?`Get Public Key`:`Refresh Key`]}),j!==null&&(0,g.jsx)(`p`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-[12px] text-red-600`,children:j}),T!==null&&(0,g.jsxs)(`div`,{children:[(0,g.jsxs)(`div`,{className:`mb-1 flex items-center justify-between`,children:[(0,g.jsx)(`label`,{className:`text-[12px] font-medium text-neutral-600`,children:`Public key (PEM)`}),(0,g.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{T&&navigator.clipboard.writeText(T).then(()=>{N(!0),setTimeout(()=>{N(!1)},2e3)})},className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:[(0,g.jsx)(s,{icon:c,className:`text-[10px]`}),se?`Copied!`:`Copy`]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{if(!T)return;let t=new Blob([T],{type:`text/plain`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${e}-${b}-${x}-public-key.pem`,r.click(),URL.revokeObjectURL(n)},className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:[(0,g.jsx)(s,{icon:ee,className:`text-[10px]`}),`Download`]})]})]}),(0,g.jsx)(`textarea`,{readOnly:!0,value:T,rows:5,className:`w-full rounded-lg border border-black/10 bg-neutral-50 px-3 py-2 font-mono text-[11px] text-neutral-600 outline-none`})]})]})]}),(0,g.jsx)(`hr`,{className:`my-6 border-black/8`})]}),(0,g.jsxs)(`div`,{className:`mb-5`,children:[(0,g.jsx)(`h2`,{className:`text-[15px] font-semibold text-neutral-900`,children:`Encrypt a Secret`}),(0,g.jsxs)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:[w===`remote`?`Encrypts a secret via the remote plugin-wizard API. `:`Encrypts a secret in-process using the public key. `,`Output is ready to paste into`,` `,(0,g.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5 text-[11px]`,children:`kizen.json`}),`.`]})]}),w===`local`&&T===null?(0,g.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2.5 text-[12px] text-amber-700`,children:[(0,g.jsx)(s,{icon:u,className:`shrink-0 text-[11px]`}),`Fetch the public key above first, or switch to Remote mode.`]}):(0,g.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{htmlFor:`secret-value`,className:`mb-1 block text-[12px] font-medium text-neutral-600`,children:`Secret value`}),(0,g.jsx)(`input`,{id:`secret-value`,type:`password`,value:P,onChange:e=>{ce(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&$()},placeholder:`Enter the plaintext secret…`,className:`w-full rounded-lg border border-black/10 px-3 py-2 text-[13px] outline-none focus:ring-2 focus:ring-blue-400`})]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{$()},disabled:z||!P.trim()||!C,className:`flex items-center justify-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-[13px] font-medium text-white hover:bg-blue-700 active:bg-blue-800 disabled:cursor-not-allowed disabled:opacity-50`,children:[z&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[12px]`}),z?`Encrypting…`:`Encrypt`]}),L!==null&&(0,g.jsx)(`p`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-[12px] text-red-600`,children:L}),F!==null&&(0,g.jsxs)(`div`,{children:[(0,g.jsxs)(`div`,{className:`mb-1 flex items-center justify-between`,children:[(0,g.jsx)(`label`,{className:`text-[12px] font-medium text-neutral-600`,children:`Encrypted envelope`}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{F&&navigator.clipboard.writeText(F).then(()=>{H(!0),setTimeout(()=>{H(!1)},2e3)})},className:`flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium text-blue-600 hover:bg-blue-50`,children:[(0,g.jsx)(s,{icon:c,className:`text-[10px]`}),V?`Copied!`:`Copy`]})]}),(0,g.jsx)(`textarea`,{readOnly:!0,value:F,rows:5,className:`w-full rounded-lg border border-black/10 bg-neutral-50 px-3 py-2 font-mono text-[11px] text-neutral-600 outline-none`})]})]}),(0,g.jsx)(`hr`,{className:`my-6 border-black/8`}),(0,g.jsxs)(`div`,{className:`mb-5`,children:[(0,g.jsx)(`h2`,{className:`text-[15px] font-semibold text-neutral-900`,children:`Validate an Encrypted Value`}),(0,g.jsx)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:`Paste an encrypted envelope to verify it is well-formed.`})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`label`,{htmlFor:`validate-input`,className:`mb-1 block text-[12px] font-medium text-neutral-600`,children:`Encrypted value`}),(0,g.jsx)(`textarea`,{id:`validate-input`,value:U,onChange:e=>{let t=e.target.value;W(t),K(null),Y(/[A-Za-z0-9+/=]{4,}\s+[A-Za-z0-9+/=]{4,}/.test(t))},placeholder:`Paste the { "encrypted": true, "value": "…" } JSON, or just the raw base64 value`,rows:4,className:`w-full rounded-lg border border-black/10 px-3 py-2 font-mono text-[11px] text-neutral-700 outline-none focus:ring-2 focus:ring-blue-400`})]}),le&&(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-[12px] text-amber-700`,children:[(0,g.jsx)(`span`,{children:`The pasted value contains whitespace inside the base64 string — a common copy-paste artifact from line-wrapped output.`}),(0,g.jsx)(`button`,{type:`button`,onClick:me,className:`shrink-0 rounded px-2 py-0.5 text-[11px] font-medium text-amber-800 underline hover:no-underline`,children:`Strip whitespace`})]}),(0,g.jsxs)(`button`,{type:`button`,onClick:()=>{he()},disabled:q||!U.trim(),className:`flex items-center justify-center gap-2 rounded-lg bg-neutral-700 px-4 py-2 text-[13px] font-medium text-white hover:bg-neutral-800 active:bg-neutral-900 disabled:cursor-not-allowed disabled:opacity-50`,children:[q&&(0,g.jsx)(s,{icon:t,className:`animate-spin text-[12px]`}),q?`Validating…`:`Validate`]}),G!==null&&(0,g.jsx)(`div`,{className:`rounded-lg border px-4 py-3 ${G.valid?`border-green-200 bg-green-50`:`border-red-200 bg-red-50`}`,children:G.error===void 0?(0,g.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,g.jsx)(`p`,{className:`text-[12px] font-semibold ${G.valid?`text-green-700`:`text-red-700`}`,children:G.valid?`All checks passed`:`Validation failed`}),(0,g.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:G.checks.map(e=>(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsx)(s,{icon:e.pass?l:o,className:`w-3 shrink-0 text-[10px] ${e.pass?`text-green-600`:`text-red-500`}`}),(0,g.jsx)(`span`,{className:`text-[11px] text-neutral-600`,children:e.label})]}),(0,g.jsx)(`span`,{className:`font-mono text-[11px] ${e.pass?`text-neutral-500`:`text-red-600`}`,children:e.actual})]},e.label))})]}):(0,g.jsx)(`p`,{className:`text-[12px] text-red-600`,children:G.error})})]})]}):(0,g.jsx)(f,{children:(0,g.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8 text-center`,children:[(0,g.jsx)(s,{icon:n,className:`text-[22px] text-neutral-300`}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`text-[13px] font-medium text-neutral-500`,children:`No credentials configured`}),(0,g.jsxs)(`p`,{className:`mt-1 text-[12px] text-neutral-400`,children:[`A credential profile with a valid API key, user ID, and business ID is required to use this page. Set one up in`,` `,(0,g.jsx)(`code`,{className:`rounded bg-neutral-100 px-1 py-0.5 text-[11px]`,children:`~/.kizenappbuilder/credentials.json`}),` `,`and restart the server.`]})]})]})})};export{y as SecretsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{A as t,F as n,I as r,P as i,_ as a,a as o,h as s,s as c,v as l}from"./fa-core-BSqLAjHu.js";import{t as u}from"./useQuery-JKMI40WO.js";import{t as d}from"./formatBytes-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{A as t,F as n,I as r,P as i,_ as a,a as o,h as s,s as c,v as l}from"./fa-core-BSqLAjHu.js";import{t as u}from"./useQuery-JKMI40WO.js";import{t as d}from"./formatBytes-BXYIMbyB.js";import{n as f,t as p}from"./CodeViewer-CVECJY4e.js";import{t as m}from"./useLocalStorage-wp83IS34.js";var h=e(r(),1),g=new Set([`.ts`,`.tsx`,`.js`,`.jsx`,`.mjs`,`.cjs`,`.json`,`.md`,`.mdx`,`.yml`,`.yaml`,`.toml`,`.css`,`.scss`,`.html`,`.htm`,`.xml`,`.svg`,`.txt`,`.sh`,`.py`,`.env`,`.gitignore`,`.prettierrc`,`.eslintrc`]),_=n(),v=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.svg`,`.ico`]);function y(e){let t=e.lastIndexOf(`/`),n=t>=0?e.slice(t+1):e,r=n.lastIndexOf(`.`);return r<=0?``:n.slice(r).toLowerCase()}function b(e,t){return e===``?t:`${e}/${t}`}function x(e){return{queryKey:[`source-tree`,e],queryFn:async()=>{let t=await fetch(`/api/source/tree?path=${encodeURIComponent(e)}`);if(!t.ok)throw Error(`Failed to list ${e||`/`}`);return await t.json()}}}var S=class extends Error{status;constructor(e,t){super(e),this.status=t}};function C(e){return{queryKey:[`source-file`,e],enabled:e!==null&&e!==``,retry:(e,t)=>t instanceof S&&t.status>=400&&t.status<500?!1:e<3,queryFn:async()=>{if(e===null||e===``)throw Error(`No path`);let t=await fetch(`/api/source/file?path=${encodeURIComponent(e)}`),n=t.headers.get(`content-type`)??`application/octet-stream`,r=t.headers.get(`content-length`),i=r===null?0:Number(r);if(t.status===413)return{kind:`too-large`,size:(await t.json()).size??i,contentType:n};if(!t.ok)throw new S(`Failed to read ${e}`,t.status);let a=y(e);if(v.has(a)&&!n.startsWith(`text/`))return{kind:`image`,size:i,contentType:n};if(g.has(a)||n.startsWith(`text/`)||n.includes(`json`)){let e=await t.text();return{kind:`text`,content:e,size:e.length,contentType:n}}return{kind:`binary`,size:i,contentType:n}}}}var w=({path:e,name:n,depth:r,expanded:d,toggleExpanded:f,selectedPath:p,onSelect:m})=>{let h=d.has(e),{data:g,isLoading:v,isError:y}=u({...x(e),enabled:h});return(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`button`,{onClick:()=>{f(e)},className:`flex w-full items-center gap-1.5 px-2 py-0.5 text-left text-[12px] text-neutral-700 hover:bg-neutral-100`,style:{paddingLeft:`${String(8+r*12)}px`},children:[(0,_.jsx)(i,{icon:h?o:c,className:`w-3 text-[9px] text-neutral-400`}),(0,_.jsx)(i,{icon:h?l:a,className:`w-3 text-[11px] text-amber-500`}),(0,_.jsx)(`span`,{className:`truncate`,children:n})]}),h&&(0,_.jsxs)(`div`,{children:[v&&(0,_.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-0.5 text-[11px] text-neutral-400`,style:{paddingLeft:`${String(24+r*12)}px`},children:[(0,_.jsx)(i,{icon:t,className:`animate-spin text-[9px]`}),(0,_.jsx)(`span`,{children:`Loading…`})]}),y&&(0,_.jsx)(`div`,{className:`px-2 py-0.5 text-[11px] text-red-500`,style:{paddingLeft:`${String(24+r*12)}px`},children:`Failed to load`}),g?.entries.map(t=>{let n=b(e,t.name);if(t.kind===`dir`)return(0,_.jsx)(w,{path:n,name:t.name,depth:r+1,expanded:d,toggleExpanded:f,selectedPath:p,onSelect:m},n);let a=p===n;return(0,_.jsxs)(`button`,{onClick:()=>{m(n)},className:`flex w-full items-center gap-1.5 px-2 py-0.5 text-left text-[12px] ${a?`bg-neutral-800 text-white`:`text-neutral-700 hover:bg-neutral-100`}`,style:{paddingLeft:`${String(24+(r+1)*12)}px`},title:n,children:[(0,_.jsx)(i,{icon:s,className:`w-3 text-[11px] ${a?`text-white/70`:`text-neutral-400`}`}),(0,_.jsx)(`span`,{className:`truncate`,children:t.name})]},n)})]})]})},T=({path:e,onMissing:n})=>{let{data:r,isLoading:a,isError:o,error:s}=u(C(e)),c=y(e);return(0,h.useEffect)(()=>{o&&s instanceof S&&s.status===404&&n()},[o,s,n]),a?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 p-4 text-[12px] text-neutral-500`,children:[(0,_.jsx)(i,{icon:t,className:`animate-spin`}),(0,_.jsxs)(`span`,{children:[`Loading `,e,`…`]})]}):o||!r?(0,_.jsx)(`div`,{className:`p-4 text-[12px] text-red-600`,children:s instanceof Error?s.message:`Could not read ${e}`}):r.kind===`too-large`?(0,_.jsxs)(`div`,{className:`p-4 text-[12px] text-neutral-600`,children:[`File too large to preview (`,d(r.size),`).`]}):r.kind===`image`?(0,_.jsx)(`div`,{className:`flex items-start justify-start p-4`,children:(0,_.jsx)(`img`,{src:`/api/source/file?path=${encodeURIComponent(e)}`,alt:e,className:`max-w-full rounded border border-black/10 bg-[url('data:image/svg+xml;utf8,<svg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2216%22%20height=%2216%22><rect%20width=%228%22%20height=%228%22%20fill=%22%23f3f4f6%22/><rect%20x=%228%22%20y=%228%22%20width=%228%22%20height=%228%22%20fill=%22%23f3f4f6%22/></svg>')]`})}):r.kind===`binary`?(0,_.jsxs)(`div`,{className:`p-4 text-[12px] text-neutral-600`,children:[`Binary file (`,d(r.size),`) — cannot preview.`]}):(0,_.jsx)(`div`,{className:`p-4`,children:(0,_.jsx)(p,{code:r.content??``,language:f(c)})})},E=()=>{let{data:e,isLoading:t,isError:n}=u(x(``)),[r,a]=m(`source-browser-expanded`,[]),[o,c]=m(`source-browser-selected`,null),l=(0,h.useMemo)(()=>new Set(r),[r]),d=e=>{let t=new Set(l);t.has(e)?t.delete(e):t.add(e),a([...t])},[f,p]=(0,h.useState)(!1);return t?(0,_.jsx)(`div`,{className:`-m-6 flex h-[calc(100%+3rem)] items-center justify-center bg-white text-[13px] text-neutral-600`,children:`Loading source tree…`}):n||!e?(0,_.jsx)(`div`,{className:`-m-6 flex h-[calc(100%+3rem)] items-center justify-center bg-white text-[13px] text-red-600`,children:`Could not load source tree.`}):(0,_.jsxs)(`div`,{className:`-m-6 flex h-[calc(100%+3rem)] overflow-hidden bg-white`,children:[(0,_.jsxs)(`div`,{className:`flex w-72 shrink-0 flex-col border-r border-black/10 bg-neutral-50/60`,children:[(0,_.jsx)(`div`,{className:`flex h-10 shrink-0 items-center border-b border-black/10 px-4 text-[11px] font-semibold uppercase tracking-widest text-neutral-400`,children:`Plugin Source`}),(0,_.jsx)(`div`,{className:`flex-1 overflow-auto py-1`,children:e.entries.map(e=>{let t=b(``,e.name);if(e.kind===`dir`)return(0,_.jsx)(w,{path:t,name:e.name,depth:0,expanded:l,toggleExpanded:d,selectedPath:o,onSelect:c},t);let n=o===t;return(0,_.jsxs)(`button`,{onClick:()=>{c(t)},className:`flex w-full items-center gap-1.5 px-2 py-0.5 text-left text-[12px] ${n?`bg-neutral-800 text-white`:`text-neutral-700 hover:bg-neutral-100`}`,style:{paddingLeft:`24px`},title:t,children:[(0,_.jsx)(i,{icon:s,className:`w-3 text-[11px] ${n?`text-white/70`:`text-neutral-400`}`}),(0,_.jsx)(`span`,{className:`truncate`,children:e.name})]},t)})})]}),(0,_.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,_.jsx)(`div`,{className:`flex h-10 shrink-0 items-center gap-2 border-b border-black/10 px-4`,children:o===null?(0,_.jsx)(`span`,{className:`text-[12px] text-neutral-400`,children:`Select a file to preview`}):(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`span`,{className:`truncate font-mono text-[12px] text-neutral-700`,children:o}),(0,_.jsx)(`button`,{onClick:()=>{o!==null&&navigator.clipboard.writeText(o).then(()=>{p(!0),setTimeout(()=>{p(!1)},1200)})},className:`rounded-full border border-black/10 bg-white px-2 py-0.5 text-[10px] font-medium text-neutral-500 hover:border-black/20 hover:text-neutral-800`,children:f?`Copied`:`Copy path`})]})}),(0,_.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:o!==null&&o!==``&&(0,_.jsx)(T,{path:o,onMissing:()=>{c(null)}})})]})]})};export{E as SourceBrowserPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e}from"./fa-core-BSqLAjHu.js";import{n as t,t as n}from"./validIcons-D8mhuO5s.js";var r=e(),i=`max-w-[14ch]`,a=e=>t.has(e)||n.has(e),o=({name:e,className:t=``})=>(0,r.jsx)(`span`,{className:`inline-block ${i} truncate rounded px-1 align-middle font-mono ${a(e)?`bg-neutral-100 text-neutral-400`:`bg-amber-100 text-amber-600`} ${t}`,title:a(e)?`Icon “${e}” — rendered by the Kizen app at runtime`:`“${e}” is not a recognized icon name`,children:e}),s={minW:2,maxW:12,minH:2,maxH:24},c=e=>({minW:e.min_w||s.minW,maxW:e.max_w||s.maxW,minH:e.min_h||s.minH,maxH:e.max_h||s.maxH});export{o as n,a as r,c as t};
|
|
@@ -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-
|
|
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-CvCrJCQn.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-
|
|
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-CvCrJCQn.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})})}));
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-700:oklch(50% .134 242.749);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-900:oklch(38% .189 293.745);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-600:oklch(55.8% .288 302.321);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[9\]{z-index:9}.z-\[99999\]{z-index:99999}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-6{margin:calc(var(--spacing) * -6)}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-\[500px\]{height:500px}.h-\[520px\]{height:520px}.h-\[calc\(100\%\+3rem\)\]{height:calc(100% + 3rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[40vh\]{max-height:40vh}.max-h-\[60px\]{max-height:60px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-\[300px\]{min-height:300px}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-28{width:calc(var(--spacing) * 28)}.w-44{width:calc(var(--spacing) * 44)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[280px\]{width:280px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[14ch\]{max-width:14ch}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.resize{resize:both}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}.grid-cols-\[100px_1fr\]{grid-template-columns:100px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-black\/5>:not(:last-child)){border-color:#0000000d}@supports (color:color-mix(in lab, red, red)){:where(.divide-black\/5>:not(:last-child)){border-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-200\/60{border-color:#fee68599}@supports (color:color-mix(in lab, red, red)){.border-amber-200\/60{border-color:color-mix(in oklab, var(--color-amber-200) 60%, transparent)}}.border-amber-300{border-color:var(--color-amber-300)}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.border-black\/5{border-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.border-black\/8{border-color:#00000014}@supports (color:color-mix(in lab, red, red)){.border-black\/8{border-color:color-mix(in oklab, var(--color-black) 8%, transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.border-black\/10{border-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.border-black\/20{border-color:#0003}@supports (color:color-mix(in lab, red, red)){.border-black\/20{border-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.border-blue-100{border-color:var(--color-blue-100)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-green-200{border-color:var(--color-green-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.border-neutral-700{border-color:var(--color-neutral-700)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-neutral-900{border-color:var(--color-neutral-900)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-900\/60{background-color:#7b330699}@supports (color:color-mix(in lab, red, red)){.bg-amber-900\/60{background-color:color-mix(in oklab, var(--color-amber-900) 60%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-900\/60{background-color:#1c398e99}@supports (color:color-mix(in lab, red, red)){.bg-blue-900\/60{background-color:color-mix(in oklab, var(--color-blue-900) 60%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400\/60{background-color:#05df7299}@supports (color:color-mix(in lab, red, red)){.bg-green-400\/60{background-color:color-mix(in oklab, var(--color-green-400) 60%, transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-900\/60{background-color:#0d542b99}@supports (color:color-mix(in lab, red, red)){.bg-green-900\/60{background-color:color-mix(in oklab, var(--color-green-900) 60%, transparent)}}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-50\/60{background-color:#fafafa99}@supports (color:color-mix(in lab, red, red)){.bg-neutral-50\/60{background-color:color-mix(in oklab, var(--color-neutral-50) 60%, transparent)}}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-500{background-color:var(--color-neutral-500)}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-700\/70{background-color:#404040b3}@supports (color:color-mix(in lab, red, red)){.bg-neutral-700\/70{background-color:color-mix(in oklab, var(--color-neutral-700) 70%, transparent)}}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-800\/40{background-color:#26262666}@supports (color:color-mix(in lab, red, red)){.bg-neutral-800\/40{background-color:color-mix(in oklab, var(--color-neutral-800) 40%, transparent)}}.bg-neutral-900{background-color:var(--color-neutral-900)}.bg-neutral-950{background-color:var(--color-neutral-950)}.bg-orange-900\/60{background-color:#7e2a0c99}@supports (color:color-mix(in lab, red, red)){.bg-orange-900\/60{background-color:color-mix(in oklab, var(--color-orange-900) 60%, transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400\/60{background-color:#ff656899}@supports (color:color-mix(in lab, red, red)){.bg-red-400\/60{background-color:color-mix(in oklab, var(--color-red-400) 60%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-900\/60{background-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.bg-red-900\/60{background-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.bg-sky-100{background-color:var(--color-sky-100)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-violet-900\/60{background-color:#4d179a99}@supports (color:color-mix(in lab, red, red)){.bg-violet-900\/60{background-color:color-mix(in oklab, var(--color-violet-900) 60%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\/85{background-color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.bg-white\/85{background-color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-400\/60{background-color:#fac80099}@supports (color:color-mix(in lab, red, red)){.bg-yellow-400\/60{background-color:color-mix(in oklab, var(--color-yellow-400) 60%, transparent)}}.bg-yellow-900\/60{background-color:#733e0a99}@supports (color:color-mix(in lab, red, red)){.bg-yellow-900\/60{background-color:color-mix(in oklab, var(--color-yellow-900) 60%, transparent)}}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[url\(\'data\:image\/svg\+xml\;utf8\,\<svg\%20xmlns\=\%22http\:\/\/www\.w3\.org\/2000\/svg\%22\%20width\=\%2216\%22\%20height\=\%2216\%22\>\<rect\%20width\=\%228\%22\%20height\=\%228\%22\%20fill\=\%22\%23f3f4f6\%22\/\>\<rect\%20x\=\%228\%22\%20y\=\%228\%22\%20width\=\%228\%22\%20height\=\%228\%22\%20fill\=\%22\%23f3f4f6\%22\/\>\<\/svg\>\'\)\]{background-image:url(data:image/svg+xml;utf8,<svg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2216%22%20height=%2216%22><rect%20width=%228%22%20height=%228%22%20fill=%22%23f3f4f6%22/><rect%20x=%228%22%20y=%228%22%20width=%228%22%20height=%228%22%20fill=%22%23f3f4f6%22/></svg>)}.from-neutral-50{--tw-gradient-from:var(--color-neutral-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.\!p-0{padding:calc(var(--spacing) * 0)!important}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-px{padding-block:1px}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-green-300{color:var(--color-green-300)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-200{color:var(--color-neutral-200)}.text-neutral-300{color:var(--color-neutral-300)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.text-orange-300{color:var(--color-orange-300)}.text-purple-600{color:var(--color-purple-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-sky-700{color:var(--color-sky-700)}.text-violet-300{color:var(--color-violet-300)}.text-violet-600{color:var(--color-violet-600)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-700{color:var(--color-yellow-700)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-neutral-300{-webkit-text-decoration-color:var(--color-neutral-300);-webkit-text-decoration-color:var(--color-neutral-300);-webkit-text-decoration-color:var(--color-neutral-300);text-decoration-color:var(--color-neutral-300)}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.accent-blue-600{accent-color:var(--color-blue-600)}.accent-neutral-600{accent-color:var(--color-neutral-600)}.accent-neutral-800{accent-color:var(--color-neutral-800)}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-\[0_-8px_24px_-12px_rgba\(0\,0\,0\,0\.18\)\]{--tw-shadow:0 -8px 24px -12px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-neutral-300::placeholder{color:var(--color-neutral-300)}.placeholder\:text-neutral-400::placeholder{color:var(--color-neutral-400)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-black\/20:hover{border-color:#0003}@supports (color:color-mix(in lab, red, red)){.hover\:border-black\/20:hover{border-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.hover\:border-green-300:hover{border-color:var(--color-green-300)}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-neutral-50:hover{background-color:var(--color-neutral-50)}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\:bg-neutral-600:hover{background-color:var(--color-neutral-600)}.hover\:bg-neutral-700:hover{background-color:var(--color-neutral-700)}.hover\:bg-neutral-800:hover{background-color:var(--color-neutral-800)}.hover\:bg-neutral-800\/50:hover{background-color:#26262680}@supports (color:color-mix(in lab, red, red)){.hover\:bg-neutral-800\/50:hover{background-color:color-mix(in oklab, var(--color-neutral-800) 50%, transparent)}}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:text-green-700:hover{color:var(--color-green-700)}.hover\:text-neutral-200:hover{color:var(--color-neutral-200)}.hover\:text-neutral-300:hover{color:var(--color-neutral-300)}.hover\:text-neutral-600:hover{color:var(--color-neutral-600)}.hover\:text-neutral-700:hover{color:var(--color-neutral-700)}.hover\:text-neutral-800:hover{color:var(--color-neutral-800)}.hover\:text-neutral-900:hover{color:var(--color-neutral-900)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-neutral-500:hover{-webkit-text-decoration-color:var(--color-neutral-500);-webkit-text-decoration-color:var(--color-neutral-500);-webkit-text-decoration-color:var(--color-neutral-500);text-decoration-color:var(--color-neutral-500)}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-100:hover{opacity:1}}.focus\:border-black\/25:focus{border-color:#00000040}@supports (color:color-mix(in lab, red, red)){.focus\:border-black\/25:focus{border-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.focus\:border-blue-300:focus{border-color:var(--color-blue-300)}.focus\:border-neutral-400:focus{border-color:var(--color-neutral-400)}.focus\:border-neutral-500:focus{border-color:var(--color-neutral-500)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:ring-neutral-400:focus{--tw-ring-color:var(--color-neutral-400)}.focus\:ring-red-400:focus{--tw-ring-color:var(--color-red-400)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-blue-800:active{background-color:var(--color-blue-800)}.active\:bg-neutral-100:active{background-color:var(--color-neutral-100)}.active\:bg-neutral-500:active{background-color:var(--color-neutral-500)}.active\:bg-neutral-900:active{background-color:var(--color-neutral-900)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:bg-neutral-50:disabled{background-color:var(--color-neutral-50)}.disabled\:text-neutral-400:disabled{color:var(--color-neutral-400)}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-neutral-100:disabled:hover{background-color:var(--color-neutral-100)}}@media (width>=40rem){.sm\:inline{display:inline}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:py-3{padding-block:calc(var(--spacing) * 3)}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.lg\:inline{display:inline}.lg\:min-w-0{min-width:calc(var(--spacing) * 0)}.lg\:flex-1{flex:1}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:px-5{padding-inline:calc(var(--spacing) * 5)}}@media (width>=80rem){.xl\:min-w-0{min-width:calc(var(--spacing) * 0)}.xl\:flex-1{flex:1}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}}}.fc-kizen .fc-daygrid-more-link{color:#737373;font-family:ui-monospace,Menlo,Consolas,Liberation Mono,monospace;font-size:10px}.fc-kizen .fc-col-header-cell-cushion{text-transform:uppercase;letter-spacing:.1em;color:#a3a3a3;font-family:ui-monospace,Menlo,Consolas,Liberation Mono,monospace;font-size:10px;font-weight:600;text-decoration:none}.fc-kizen .fc-daygrid-day-number{color:#737373;font-family:ui-monospace,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;text-decoration:none}.fc-kizen .fc-day-today .fc-daygrid-day-number{color:#171717;font-weight:700}.fc-kizen .fc-popover-title{font-family:ui-monospace,Menlo,Consolas,Liberation Mono,monospace;font-size:11px}.fc-kizen .fc-timegrid-slot-label-cushion,.fc-kizen .fc-timegrid-axis-cushion{color:#a3a3a3;text-transform:uppercase;font-family:ui-monospace,Menlo,Consolas,Liberation Mono,monospace;font-size:10px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|