@nextclaw/ui 0.13.9 → 0.13.10-beta.1
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/CHANGELOG.md +32 -0
- package/dist/assets/{api-CIJxdHmy.js → api-DhI2lb1f.js} +10 -5
- package/dist/assets/app-presenter-provider-BFbrQp8q.js +3 -0
- package/dist/assets/arrow-left-CI0Ocu9p.js +1 -0
- package/dist/assets/{channels-list-page-C_Xe0CNX.js → channels-list-page-B6CvmU9T.js} +1 -1
- package/dist/assets/{chat-page-CXRtoQR2.js → chat-page-Ch4ShlKB.js} +1 -1
- package/dist/assets/{config-split-page-DBAcw9mJ.js → config-split-page-bO0K6uQv.js} +1 -1
- package/dist/assets/{confirm-dialog-DwPTxq8C.js → confirm-dialog-DXRWJ5uB.js} +1 -1
- package/dist/assets/{desktop-update-config-BqABa_1C.js → desktop-update-config-DPk5V1Nl.js} +1 -1
- package/dist/assets/{dist-BfcibKyv.js → dist-DQoV-62W.js} +1 -1
- package/dist/assets/{dist-WjhKB-pc.js → dist-T6rf86Nf.js} +1 -1
- package/dist/assets/{doc-browser-8EEDwGCJ.js → doc-browser-CTFB6ACN.js} +1 -1
- package/dist/assets/{doc-browser-context-DLJOy6Am.js → doc-browser-context-CP2tI-Br.js} +1 -1
- package/dist/assets/doc-browser-yi02ASOL.js +1 -0
- package/dist/assets/{ellipsis-H-4aNwgt.js → ellipsis-B7CbNPNr.js} +1 -1
- package/dist/assets/{es2015-B5k1IpKX.js → es2015-BSPOGpH4.js} +1 -1
- package/dist/assets/{external-link-BN1wd-eI.js → external-link-CefT35zP.js} +1 -1
- package/dist/assets/index-CevK3jug.css +1 -0
- package/dist/assets/{index-WJt0X9wC.js → index-DZoXsgdz.js} +43 -43
- package/dist/assets/{key-round-D-7IaAQS.js → key-round-BpM3GZn4.js} +1 -1
- package/dist/assets/{loader-circle-CB38Q7Ws.js → loader-circle-_edjOFsw.js} +1 -1
- package/dist/assets/mcp-marketplace-page-9maf_9fL.js +1 -0
- package/dist/assets/{mcp-marketplace-page-ju1KH3TG.js → mcp-marketplace-page-WAgpy0hp.js} +1 -1
- package/dist/assets/{model-config-CgS6dp65.js → model-config-CixioI5U.js} +1 -1
- package/dist/assets/{notice-card-DW9BLKpG.js → notice-card-BLklZuEa.js} +1 -1
- package/dist/assets/play-DD0bg50i.js +1 -0
- package/dist/assets/plus-zZ2GC_AJ.js +1 -0
- package/dist/assets/{popover-ofN845gZ.js → popover-D_pJfOlM.js} +1 -1
- package/dist/assets/{provider-scoped-model-input-DaDqi8Zy.js → provider-scoped-model-input-BbWqk2yz.js} +1 -1
- package/dist/assets/{providers-list-CZNQXY4n.js → providers-list-C_JOSjYd.js} +1 -1
- package/dist/assets/{react-Bq34NL59.js → react-Bl8iJUcF.js} +1 -1
- package/dist/assets/{refresh-cw-DJttSXS8.js → refresh-cw-CqfS1EhK.js} +1 -1
- package/dist/assets/remote-qtmzkte2.js +1 -0
- package/dist/assets/rotate-cw-C7EvaSlb.js +1 -0
- package/dist/assets/{runtime-config-page-gUjM6Z_A.js → runtime-config-page-ByvKO6Yn.js} +1 -1
- package/dist/assets/{save-DtAFbS7x.js → save-CQERCODg.js} +1 -1
- package/dist/assets/search-C0b2yzmt.js +1 -0
- package/dist/assets/{search-config-C04PrmHj.js → search-config-Cl2_NgFY.js} +1 -1
- package/dist/assets/{secrets-config-DvxHdz9h.js → secrets-config-BkR72J4g.js} +1 -1
- package/dist/assets/{status-dot-D4jbKDLB.js → status-dot-DY0xUUvK.js} +1 -1
- package/dist/assets/{tabs-Ca2vw7YQ.js → tabs-C77i1w90.js} +1 -1
- package/dist/assets/{tabs-custom-DzGDjYxf.js → tabs-custom-CFpR54-m.js} +1 -1
- package/dist/assets/{tag-chip-CW-_pHjH.js → tag-chip-Kib_ljle.js} +1 -1
- package/dist/assets/{tooltip-Cq2mERPk.js → tooltip-fs7VQG7d.js} +1 -1
- package/dist/assets/{trash-2-rumaEu9l.js → trash-2-Bb8mTTLl.js} +1 -1
- package/dist/assets/x-BV4iiea8.js +1 -0
- package/dist/index.html +60 -33
- package/dist/sw.js +6 -31
- package/index.html +35 -8
- package/package.json +8 -8
- package/public/sw.js +6 -31
- package/src/app/index.tsx +0 -2
- package/src/features/panel-apps/components/panel-app-list-item.test.tsx +4 -0
- package/src/features/panel-apps/components/panel-apps-list.tsx +27 -1
- package/src/features/panel-apps/hooks/use-panel-apps.ts +10 -0
- package/src/features/panel-apps/managers/panel-app-bridge.manager.test.ts +18 -40
- package/src/features/panel-apps/managers/panel-app-bridge.manager.ts +24 -36
- package/src/features/panel-apps/utils/panel-app-view.utils.test.ts +4 -0
- package/src/features/pwa/components/pwa-install-entry.test.tsx +5 -46
- package/src/features/pwa/components/pwa-install-entry.tsx +1 -35
- package/src/features/pwa/index.ts +1 -1
- package/src/features/pwa/managers/pwa-install.manager.ts +0 -2
- package/src/features/pwa/managers/pwa-runtime.manager.ts +2 -120
- package/src/features/pwa/managers/pwa-service-worker-cache.manager.test.ts +7 -5
- package/src/features/pwa/stores/pwa.store.ts +1 -3
- package/src/features/pwa/types/pwa.types.ts +0 -2
- package/src/features/right-panel-resources/utils/right-panel-resource-uri.utils.test.ts +4 -0
- package/src/features/service-apps/components/service-apps-panel.tsx +3 -3
- package/src/shared/lib/api/index.ts +1 -1
- package/src/shared/lib/api/{ncp-session-query-cache.test.ts → ncp-session-query-cache.utils.test.ts} +23 -0
- package/src/shared/lib/api/{ncp-session-query-cache.ts → ncp-session-query-cache.utils.ts} +9 -11
- package/src/shared/lib/api/types.ts +4 -0
- package/src/shared/lib/i18n/runtime/doc-browser-labels.utils.ts +5 -0
- package/dist/assets/app-presenter-provider-CKZqZfv5.js +0 -3
- package/dist/assets/arrow-left-DHcD-tbC.js +0 -1
- package/dist/assets/doc-browser-DlT90zQD.js +0 -1
- package/dist/assets/index-BCq7kbC8.css +0 -1
- package/dist/assets/mcp-marketplace-page-CmZwt64F.js +0 -1
- package/dist/assets/play-DGpH8jeI.js +0 -1
- package/dist/assets/plus-CkcQjwuH.js +0 -1
- package/dist/assets/remote-CYmsM9DD.js +0 -1
- package/dist/assets/rotate-cw-D_xslHna.js +0 -1
- package/dist/assets/search-CNMRwAFx.js +0 -1
- package/dist/assets/x-DGqjdMUt.js +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{d as e,g as t,i as n,m as r,n as i,o as a,s as o,t as s,y as c}from"./react-Bq34NL59.js";import{At as l,Bt as u,Dt as d,Et as f,Ft as p,Lt as m,Mt as h,Nt as g,Ot as _,Pt as v,Qt as y,Vt as b,a as ee,c as te,ct as x,i as ne,jt as re,kt as ie,l as ae,o as oe,pt as se,r as ce,s as le,u as ue,wt as S,zt as C}from"./api-CIJxdHmy.js";import{c as w}from"./dist-WjhKB-pc.js";import{a as de,i as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./confirm-dialog-DwPTxq8C.js";import{t as ve}from"./arrow-left-DHcD-tbC.js";import{n as ye,t as be}from"./loader-circle-CB38Q7Ws.js";import{i as xe,n as Se,r as Ce,t as we,u as Te}from"./tooltip-Cq2mERPk.js";import{t as Ee}from"./key-round-D-7IaAQS.js";import{t as De}from"./plus-CkcQjwuH.js";import{t as Oe}from"./refresh-cw-DJttSXS8.js";import{t as ke}from"./trash-2-rumaEu9l.js";import{t as Ae}from"./x-DGqjdMUt.js";import{t as T}from"./notice-card-DW9BLKpG.js";import{t as je}from"./status-dot-D4jbKDLB.js";import{n as Me,r as Ne,t as Pe}from"./popover-ofN845gZ.js";import{i as E,r as Fe,t as Ie}from"./tabs-Ca2vw7YQ.js";import{a as D,c as Le,f as Re,g as ze,h as O,i as Be,l as Ve,m as He,n as Ue,o as We,p as Ge,r as Ke,s as qe,u as Je}from"./doc-browser-context-DLJOy6Am.js";var Ye=`modulepreload`,Xe=function(e){return`/`+e},Ze={},Qe=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=Xe(t,n),t in Ze)return;Ze[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`:Ye,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)})},k=c(t(),1),$e=`popstate`;function et(e={}){let{initialEntries:t=[`/`],initialIndex:n,v5Compat:r=!1}=e,i;i=t.map((e,t)=>u(e,typeof e==`string`?null:e.state,t===0?`default`:void 0));let a=c(n??i.length-1),o=`POP`,s=null;function c(e){return Math.min(Math.max(e,0),i.length-1)}function l(){return i[a]}function u(e,t=null,n){let r=it(i?l().pathname:`/`,e,t,n);return j(r.pathname.charAt(0)===`/`,`relative pathnames are not supported in memory history: ${JSON.stringify(e)}`),r}function d(e){return typeof e==`string`?e:M(e)}return{get index(){return a},get action(){return o},get location(){return l()},createHref:d,createURL(e){return new URL(d(e),`http://localhost`)},encodeLocation(e){let t=typeof e==`string`?N(e):e;return{pathname:t.pathname||``,search:t.search||``,hash:t.hash||``}},push(e,t){o=`PUSH`;let n=u(e,t);a+=1,i.splice(a,i.length,n),r&&s&&s({action:o,location:n,delta:1})},replace(e,t){o=`REPLACE`;let n=u(e,t);i[a]=n,r&&s&&s({action:o,location:n,delta:0})},go(e){o=`POP`;let t=c(a+e),n=i[t];a=t,s&&s({action:o,location:n,delta:e})},listen(e){return s=e,()=>{s=null}}}}function tt(e={}){function t(e,t){let{pathname:n,search:r,hash:i}=e.location;return it(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){return typeof t==`string`?t:M(t)}return at(t,n,null,e)}function A(e,t){if(e===!1||e==null)throw Error(t)}function j(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function nt(){return Math.random().toString(36).substring(2,10)}function rt(e,t){return{usr:e.state,key:e.key,idx:t}}function it(e,t,n=null,r){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?N(t):t,state:n,key:t&&t.key||r||nt()}}function M({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function N(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function at(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=it(h.location,e,t);n&&n(r,e),l=u()+1;let d=rt(r,l),f=h.createHref(r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=it(h.location,e,t);n&&n(r,e),l=u();let i=rt(r,l),d=h.createHref(r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return ot(e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener($e,d),c=e,()=>{i.removeEventListener($e,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function ot(e,t=!1){let n=`http://localhost`;typeof window<`u`&&(n=window.location.origin===`null`?window.location.href:window.location.origin),A(n,`No window.location.(origin|href) available to create URL`);let r=typeof e==`string`?e:M(e);return r=r.replace(/ $/,`%20`),!t&&r.startsWith(`//`)&&(r=n+r),new URL(r,n)}function st(e,t,n=`/`){return ct(e,t,n,!1)}function ct(e,t,n,r){let i=P((typeof t==`string`?N(t):t).pathname||`/`,n);if(i==null)return null;let a=ut(e);ft(a);let o=null;for(let e=0;o==null&&e<a.length;++e){let t=Tt(i);o=St(a[e],t,r)}return o}function lt(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],loaderData:t[n.id],handle:n.handle}}function ut(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;A(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=F([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(A(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),ut(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:bt(l,e.index),routesMeta:u})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of dt(e.path))a(e,t,!0,n)}),t}function dt(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=dt(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function ft(e){e.sort((e,t)=>e.score===t.score?xt(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var pt=/^:[\w-]+$/,mt=3,ht=2,gt=1,_t=10,vt=-2,yt=e=>e===`*`;function bt(e,t){let n=e.split(`/`),r=n.length;return n.some(yt)&&(r+=vt),t&&(r+=ht),n.filter(e=>!yt(e)).reduce((e,t)=>e+(pt.test(t)?mt:t===``?gt:_t),r)}function xt(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function St(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u=Ct({path:s.relativePath,caseSensitive:s.caseSensitive,end:c},l),d=s.route;if(!u&&c&&n&&!r[r.length-1].route.index&&(u=Ct({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!u)return null;Object.assign(i,u.params),o.push({params:i,pathname:F([a,u.pathname]),pathnameBase:Nt(F([a,u.pathnameBase])),route:d}),u.pathnameBase!==`/`&&(a=F([a,u.pathnameBase]))}return o}function Ct(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=wt(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,`$1`),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return n&&!i?e[t]=void 0:e[t]=(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function wt(e,t=!1,n=!0){j(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n)=>(r.push({paramName:t,isOptional:n!=null}),n?`/?([^\\/]+)?`:`/([^\\/]+)`)).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Tt(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return j(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function P(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}var Et=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Dt(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?N(e):e,a;return n?(n=n.replace(/\/\/+/g,`/`),a=n.startsWith(`/`)?Ot(n.substring(1),`/`):Ot(n,t)):a=t,{pathname:a,search:Pt(r),hash:Ft(i)}}function Ot(e,t){let n=t.replace(/\/+$/,``).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function kt(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function At(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function jt(e){let t=At(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Mt(e,t,n,r=!1){let i;typeof e==`string`?i=N(e):(i={...e},A(!i.pathname||!i.pathname.includes(`?`),kt(`?`,`pathname`,`search`,i)),A(!i.pathname||!i.pathname.includes(`#`),kt(`#`,`pathname`,`hash`,i)),A(!i.search||!i.search.includes(`#`),kt(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=Dt(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var F=e=>e.join(`/`).replace(/\/\/+/g,`/`),Nt=e=>e.replace(/\/+$/,``).replace(/^\/*/,`/`),Pt=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Ft=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,It=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Lt(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function Rt(e){return e.map(e=>e.route.path).filter(Boolean).join(`/`).replace(/\/\/*/g,`/`)||`/`}var zt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Bt(e,t){let n=e;if(typeof n!=`string`||!Et.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(zt)try{let e=new URL(window.location.href),r=n.startsWith(`//`)?new URL(e.protocol+n):new URL(n),a=P(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{j(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Vt=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(Vt);var Ht=[`GET`,...Vt];new Set(Ht);var I=k.createContext(null);I.displayName=`DataRouter`;var Ut=k.createContext(null);Ut.displayName=`DataRouterState`;var Wt=k.createContext(!1),Gt=k.createContext({isTransitioning:!1});Gt.displayName=`ViewTransition`;var Kt=k.createContext(new Map);Kt.displayName=`Fetchers`;var qt=k.createContext(null);qt.displayName=`Await`;var L=k.createContext(null);L.displayName=`Navigation`;var Jt=k.createContext(null);Jt.displayName=`Location`;var R=k.createContext({outlet:null,matches:[],isDataRoute:!1});R.displayName=`Route`;var Yt=k.createContext(null);Yt.displayName=`RouteError`;var Xt=`REACT_ROUTER_ERROR`,Zt=`REDIRECT`,Qt=`ROUTE_ERROR_RESPONSE`;function $t(e){if(e.startsWith(`${Xt}:${Zt}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function en(e){if(e.startsWith(`${Xt}:${Qt}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new It(t.status,t.statusText,t.data)}catch{}}function tn(e,{relative:t}={}){A(z(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=k.useContext(L),{hash:i,pathname:a,search:o}=cn(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:F([n,a])),r.createHref({pathname:s,search:o,hash:i})}function z(){return k.useContext(Jt)!=null}function B(){return A(z(),`useLocation() may be used only in the context of a <Router> component.`),k.useContext(Jt).location}var nn=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function rn(e){k.useContext(L).static||k.useLayoutEffect(e)}function an(){let{isDataRoute:e}=k.useContext(R);return e?Dn():on()}function on(){A(z(),`useNavigate() may be used only in the context of a <Router> component.`);let e=k.useContext(I),{basename:t,navigator:n}=k.useContext(L),{matches:r}=k.useContext(R),{pathname:i}=B(),a=JSON.stringify(jt(r)),o=k.useRef(!1);return rn(()=>{o.current=!0}),k.useCallback((r,s={})=>{if(j(o.current,nn),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Mt(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:F([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}k.createContext(null);function sn(){let{matches:e}=k.useContext(R),t=e[e.length-1];return t?t.params:{}}function cn(e,{relative:t}={}){let{matches:n}=k.useContext(R),{pathname:r}=B(),i=JSON.stringify(jt(n));return k.useMemo(()=>Mt(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function ln(e,t){return un(e,t)}function un(e,t,n,r,i){A(z(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:a}=k.useContext(L),{matches:o}=k.useContext(R),s=o[o.length-1],c=s?s.params:{},l=s?s.pathname:`/`,u=s?s.pathnameBase:`/`,d=s&&s.route;{let e=d&&d.path||``;kn(l,!d||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
2
|
-
|
|
3
|
-
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let f=B(),p;if(t){let e=typeof t==`string`?N(t):t;A(u===`/`||e.pathname?.startsWith(u),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${e.pathname}" was given in the \`location\` prop.`),p=e}else p=f;let m=p.pathname||`/`,h=m;if(u!==`/`){let e=u.replace(/^\//,``).split(`/`);h=`/`+m.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let g=st(e,{pathname:h});j(d||g!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),j(g==null||g[g.length-1].route.element!==void 0||g[g.length-1].route.Component!==void 0||g[g.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let _=_n(g&&g.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:F([u,a.encodeLocation?a.encodeLocation(e.pathname.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?u:F([u,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),o,n,r,i);return t&&_?k.createElement(Jt.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,...p},navigationType:`POP`}},_):_}function dn(){let e=En(),t=Lt(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=k.createElement(k.Fragment,null,k.createElement(`p`,null,`💿 Hey developer 👋`),k.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,k.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,k.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),k.createElement(k.Fragment,null,k.createElement(`h2`,null,`Unexpected Application Error!`),k.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?k.createElement(`pre`,{style:i},n):null,o)}var fn=k.createElement(dn,null),pn=class extends k.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=en(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:k.createElement(R.Provider,{value:this.props.routeContext},k.createElement(Yt.Provider,{value:e,children:this.props.component}));return this.context?k.createElement(hn,{error:e},t):t}};pn.contextType=Wt;var mn=new WeakMap;function hn({children:e,error:t}){let{basename:n}=k.useContext(L);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=$t(t.digest);if(e){let r=mn.get(t);if(r)throw r;let i=Bt(e.location,n);if(zt&&!mn.get(t))if(i.isExternal||e.reloadDocument)window.location.href=i.absoluteURL||i.to;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw mn.set(t,n),n}return k.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${i.absoluteURL||i.to}`})}}return e}function gn({routeContext:e,match:t,children:n}){let r=k.useContext(I);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),k.createElement(R.Provider,{value:e},n)}function _n(e,t=[],n=null,r=null,i=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,o=n?.errors;if(o!=null){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);A(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(`,`)}`),a=a.slice(0,Math.min(a.length,e+1))}let s=!1,c=-1;if(n)for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(c=e),t.route.id){let{loaderData:e,errors:r}=n,i=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!r||r[t.route.id]===void 0);if(t.route.lazy||i){s=!0,a=c>=0?a.slice(0,c+1):[a[0]];break}}}let l=n&&r?(e,t)=>{r(e,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:Rt(n.matches),errorInfo:t})}:void 0;return a.reduceRight((e,r,i)=>{let u,d=!1,f=null,p=null;n&&(u=o&&r.route.id?o[r.route.id]:void 0,f=r.route.errorElement||fn,s&&(c<0&&i===0?(kn(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):c===i&&(d=!0,p=r.route.hydrateFallbackElement||null)));let m=t.concat(a.slice(0,i+1)),h=()=>{let t;return t=u?f:d?p:r.route.Component?k.createElement(r.route.Component,null):r.route.element?r.route.element:e,k.createElement(gn,{match:r,routeContext:{outlet:e,matches:m,isDataRoute:n!=null},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||i===0)?k.createElement(pn,{location:n.location,revalidation:n.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function vn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function yn(e){let t=k.useContext(I);return A(t,vn(e)),t}function bn(e){let t=k.useContext(Ut);return A(t,vn(e)),t}function xn(e){let t=k.useContext(R);return A(t,vn(e)),t}function Sn(e){let t=xn(e),n=t.matches[t.matches.length-1];return A(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Cn(){return Sn(`useRouteId`)}function wn(){return bn(`useNavigation`).navigation}function Tn(){let{matches:e,loaderData:t}=bn(`useMatches`);return k.useMemo(()=>e.map(e=>lt(e,t)),[e,t])}function En(){let e=k.useContext(Yt),t=bn(`useRouteError`),n=Sn(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Dn(){let{router:e}=yn(`useNavigate`),t=Sn(`useNavigate`),n=k.useRef(!1);return rn(()=>{n.current=!0}),k.useCallback(async(r,i={})=>{j(n.current,nn),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var On={};function kn(e,t,n){!t&&!On[e]&&(On[e]=!0,j(!1,n))}k.useOptimistic,k.memo(An);function An({routes:e,future:t,state:n,onError:r}){return un(e,void 0,n,r,t)}function jn({basename:e,children:t,initialEntries:n,initialIndex:r,unstable_useTransitions:i}){let a=k.useRef();a.current??=et({initialEntries:n,initialIndex:r,v5Compat:!0});let o=a.current,[s,c]=k.useState({action:o.action,location:o.location}),l=k.useCallback(e=>{i===!1?c(e):k.startTransition(()=>c(e))},[i]);return k.useLayoutEffect(()=>o.listen(l),[o,l]),k.createElement(Pn,{basename:e,children:t,location:s.location,navigationType:s.action,navigator:o,unstable_useTransitions:i})}function Mn({to:e,replace:t,state:n,relative:r}){A(z(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i}=k.useContext(L);j(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:a}=k.useContext(R),{pathname:o}=B(),s=an(),c=Mt(e,jt(a),o,r===`path`),l=JSON.stringify(c);return k.useEffect(()=>{s(JSON.parse(l),{replace:t,state:n,relative:r})},[s,l,r,t,n]),null}function Nn(e){A(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function Pn({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,unstable_useTransitions:o}){A(!z(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=k.useMemo(()=>({basename:s,navigator:i,static:a,unstable_useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=N(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`}=n,m=k.useMemo(()=>{let e=P(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p},navigationType:r}},[s,l,u,d,f,p,r]);return j(m!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:k.createElement(L.Provider,{value:c},k.createElement(Jt.Provider,{children:t,value:m}))}function Fn({children:e,location:t}){return ln(In(e),t)}k.Component;function In(e,t=[]){let n=[];return k.Children.forEach(e,(e,r)=>{if(!k.isValidElement(e))return;let i=[...t,r];if(e.type===k.Fragment){n.push.apply(n,In(e.props.children,i));return}A(e.type===Nn,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),A(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=In(e.props.children,i)),n.push(a)}),n}var Ln=`get`,Rn=`application/x-www-form-urlencoded`;function zn(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Bn(e){return zn(e)&&e.tagName.toLowerCase()===`button`}function Vn(e){return zn(e)&&e.tagName.toLowerCase()===`form`}function Hn(e){return zn(e)&&e.tagName.toLowerCase()===`input`}function Un(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Wn(e,t){return e.button===0&&(!t||t===`_self`)&&!Un(e)}var Gn=null;function Kn(){if(Gn===null)try{new FormData(document.createElement(`form`),0),Gn=!1}catch{Gn=!0}return Gn}var qn=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Jn(e){return e!=null&&!qn.has(e)?(j(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Rn}"`),null):e}function Yn(e,t){let n,r,i,a,o;if(Vn(e)){let o=e.getAttribute(`action`);r=o?P(o,t):null,n=e.getAttribute(`method`)||Ln,i=Jn(e.getAttribute(`enctype`))||Rn,a=new FormData(e)}else if(Bn(e)||Hn(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?P(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Ln,i=Jn(e.getAttribute(`formenctype`))||Jn(o.getAttribute(`enctype`))||Rn,a=new FormData(o,e),!Kn()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(zn(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Ln,r=null,i=Rn,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Xn={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},Zn=/[&><\u2028\u2029]/g;function Qn(e){return e.replace(Zn,e=>Xn[e])}function $n(e,t){if(e===!1||e==null)throw Error(t)}function er(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n?i.pathname.endsWith(`/`)?i.pathname=`${i.pathname}_.${r}`:i.pathname=`${i.pathname}.${r}`:i.pathname===`/`?i.pathname=`_root.${r}`:t&&P(i.pathname,t)===`/`?i.pathname=`${t.replace(/\/$/,``)}/_root.${r}`:i.pathname=`${i.pathname.replace(/\/$/,``)}.${r}`,i}async function tr(e,t){if(e.id in t)return t[e.id];try{let n=await Qe(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nr(e){return e!=null&&typeof e.page==`string`}function rr(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function ir(e,t,n){return lr((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await tr(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(rr).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function ar(e,t,n,r,i,a){let o=(e,t)=>n[t]?e.route.id!==n[t].route.id:!0,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function or(e,t,{includeHydrateFallback:n}={}){return sr(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function sr(e){return[...new Set(e)]}function cr(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function lr(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!nr(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(cr(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function ur(){let e=k.useContext(I);return $n(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function dr(){let e=k.useContext(Ut);return $n(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var fr=k.createContext(void 0);fr.displayName=`FrameworkContext`;function pr(){let e=k.useContext(fr);return $n(e,`You must render this element inside a <HydratedRouter> element`),e}function mr(e,t){let n=k.useContext(fr),[r,i]=k.useState(!1),[a,o]=k.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=k.useRef(null);k.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),k.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:hr(s,p),onBlur:hr(c,m),onMouseEnter:hr(l,p),onMouseLeave:hr(u,m),onTouchStart:hr(d,p)}]:[a,f,{}]:[!1,f,{}]}function hr(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function gr({page:e,...t}){let{router:n}=ur(),r=k.useMemo(()=>st(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?k.createElement(vr,{page:e,matches:r,...t}):null}function _r(e){let{manifest:t,routeModules:n}=pr(),[r,i]=k.useState([]);return k.useEffect(()=>{let r=!1;return ir(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function vr({page:e,matches:t,...n}){let r=B(),{future:i,manifest:a,routeModules:o}=pr(),{basename:s}=ur(),{loaderData:c,matches:l}=dr(),u=k.useMemo(()=>ar(e,t,l,a,r,`data`),[e,t,l,a,r]),d=k.useMemo(()=>ar(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=k.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=er(e,s,i.unstable_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.unstable_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=k.useMemo(()=>or(d,a),[d,a]),m=_r(d);return k.createElement(k.Fragment,null,f.map(e=>k.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>k.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>k.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function yr(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}k.Component;var br=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{br&&(window.__reactRouterVersion=`7.13.0`)}catch{}function xr({basename:e,children:t,unstable_useTransitions:n,window:r}){let i=k.useRef();i.current??=tt({window:r,v5Compat:!0});let a=i.current,[o,s]=k.useState({action:a.action,location:a.location}),c=k.useCallback(e=>{n===!1?s(e):k.startTransition(()=>s(e))},[n]);return k.useLayoutEffect(()=>a.listen(c),[a,c]),k.createElement(Pn,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,unstable_useTransitions:n})}function Sr({basename:e,children:t,history:n,unstable_useTransitions:r}){let[i,a]=k.useState({action:n.action,location:n.location}),o=k.useCallback(e=>{r===!1?a(e):k.startTransition(()=>a(e))},[r]);return k.useLayoutEffect(()=>n.listen(o),[n,o]),k.createElement(Pn,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:n,unstable_useTransitions:r})}Sr.displayName=`unstable_HistoryRouter`;var Cr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wr=k.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,state:o,target:s,to:c,preventScrollReset:l,viewTransition:u,unstable_defaultShouldRevalidate:d,...f},p){let{basename:m,unstable_useTransitions:h}=k.useContext(L),g=typeof c==`string`&&Cr.test(c),_=Bt(c,m);c=_.to;let v=tn(c,{relative:r}),[y,b,ee]=mr(n,f),te=jr(c,{replace:a,state:o,target:s,preventScrollReset:l,relative:r,viewTransition:u,unstable_defaultShouldRevalidate:d,unstable_useTransitions:h});function x(t){e&&e(t),t.defaultPrevented||te(t)}let ne=k.createElement(`a`,{...f,...ee,href:_.absoluteURL||v,onClick:_.isExternal||i?e:x,ref:yr(p,b),target:s,"data-discover":!g&&t===`render`?`true`:void 0});return y&&!g?k.createElement(k.Fragment,null,ne,k.createElement(gr,{page:v})):ne});wr.displayName=`Link`;var Tr=k.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=cn(a,{relative:c.relative}),d=B(),f=k.useContext(Ut),{navigator:p,basename:m}=k.useContext(L),h=f!=null&&Vr(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=P(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,ee=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),te={isActive:b,isPending:ee,isTransitioning:h},x=b?e:void 0,ne;ne=typeof n==`function`?n(te):[n,b?`active`:null,ee?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let re=typeof i==`function`?i(te):i;return k.createElement(wr,{...c,"aria-current":x,className:ne,ref:l,style:re,to:a,viewTransition:o},typeof s==`function`?s(te):s)});Tr.displayName=`NavLink`;var Er=k.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Ln,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:h}=k.useContext(L),g=Pr(),_=Fr(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,y=typeof s==`string`&&Cr.test(s);return k.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f});h&&n!==!1?k.startTransition(()=>p()):p()},...p,"data-discover":!y&&e===`render`?`true`:void 0})});Er.displayName=`Form`;function Dr({getKey:e,storageKey:t,...n}){let r=k.useContext(fr),{basename:i}=k.useContext(L),a=B(),o=Tn();zr({getKey:e,storageKey:t});let s=k.useMemo(()=>{if(!r||!e)return null;let t=Rr(a,o,i,e);return t===a.key?null:t},[]);if(!r||r.isSpaMode)return null;let c=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},``)}try{let n=JSON.parse(sessionStorage.getItem(e)||`{}`)[t||window.history.state.key];typeof n==`number`&&window.scrollTo(0,n)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return k.createElement(`script`,{...n,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${c})(${Qn(JSON.stringify(t||Ir))}, ${Qn(JSON.stringify(s))})`}})}Dr.displayName=`ScrollRestoration`;function Or(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function kr(e){let t=k.useContext(I);return A(t,Or(e)),t}function Ar(e){let t=k.useContext(Ut);return A(t,Or(e)),t}function jr(e,{target:t,replace:n,state:r,preventScrollReset:i,relative:a,viewTransition:o,unstable_defaultShouldRevalidate:s,unstable_useTransitions:c}={}){let l=an(),u=B(),d=cn(e,{relative:a});return k.useCallback(f=>{if(Wn(f,t)){f.preventDefault();let t=n===void 0?M(u)===M(d):n,p=()=>l(e,{replace:t,state:r,preventScrollReset:i,relative:a,viewTransition:o,unstable_defaultShouldRevalidate:s});c?k.startTransition(()=>p()):p()}},[u,l,d,n,r,t,e,i,a,o,s,c])}var Mr=0,Nr=()=>`__${String(++Mr)}__`;function Pr(){let{router:e}=kr(`useSubmit`),{basename:t}=k.useContext(L),n=Cn(),r=e.fetch,i=e.navigate;return k.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=Yn(e,t);a.navigate===!1?await r(a.fetcherKey||Nr(),n,a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync}):await i(a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Fr(e,{relative:t}={}){let{basename:n}=k.useContext(L),r=k.useContext(R);A(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...cn(e||`.`,{relative:t})},o=B();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:F([n,a.pathname])),M(a)}var Ir=`react-router-scroll-positions`,Lr={};function Rr(e,t,n,r){let i=null;return r&&(i=r(n===`/`?e:{...e,pathname:P(e.pathname,n)||e.pathname},t)),i??=e.key,i}function zr({getKey:e,storageKey:t}={}){let{router:n}=kr(`useScrollRestoration`),{restoreScrollPosition:r,preventScrollReset:i}=Ar(`useScrollRestoration`),{basename:a}=k.useContext(L),o=B(),s=Tn(),c=wn();k.useEffect(()=>(window.history.scrollRestoration=`manual`,()=>{window.history.scrollRestoration=`auto`}),[]),Br(k.useCallback(()=>{if(c.state===`idle`){let t=Rr(o,s,a,e);Lr[t]=window.scrollY}try{sessionStorage.setItem(t||Ir,JSON.stringify(Lr))}catch(e){j(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration=`auto`},[c.state,e,a,o,s,t])),typeof document<`u`&&(k.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||Ir);e&&(Lr=JSON.parse(e))}catch{}},[t]),k.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(Lr,()=>window.scrollY,e?(t,n)=>Rr(t,n,a,e):void 0);return()=>t&&t()},[n,a,e]),k.useLayoutEffect(()=>{if(r!==!1){if(typeof r==`number`){window.scrollTo(0,r);return}try{if(o.hash){let e=document.getElementById(decodeURIComponent(o.hash.slice(1)));if(e){e.scrollIntoView();return}}}catch{j(!1,`"${o.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}i!==!0&&window.scrollTo(0,0)}},[o,r,i]))}function Br(e,t){let{capture:n}=t||{};k.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`pagehide`,e,t),()=>{window.removeEventListener(`pagehide`,e,t)}},[e,n])}function Vr(e,{relative:t}={}){let n=k.useContext(Gt);A(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=kr(`useViewTransitionState`),i=cn(e,{relative:t});if(!n.isTransitioning)return!1;let a=P(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=P(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ct(i.pathname,o)!=null||Ct(i.pathname,a)!=null}var Hr=w(`AppWindow`,[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]),Ur=w(`BrainCircuit`,[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,key:`l5xja`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`,key:`10igwf`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`,key:`105sqy`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`,key:`ql3yin`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`,key:`2e4loj`}],[`path`,{d:`M12 13h4`,key:`1ku699`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`,key:`105ag5`}],[`path`,{d:`M12 8h8`,key:`1lhi5i`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`,key:`u6izg6`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`,key:`ry7gng`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`,key:`1aiba7`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`,key:`yhc1fs`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`,key:`1e43v0`}]]),Wr=w(`CircleCheck`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Gr=w(`CircleDashed`,[[`path`,{d:`M10.1 2.182a10 10 0 0 1 3.8 0`,key:`5ilxe3`}],[`path`,{d:`M13.9 21.818a10 10 0 0 1-3.8 0`,key:`11zvb9`}],[`path`,{d:`M17.609 3.721a10 10 0 0 1 2.69 2.7`,key:`1iw5b2`}],[`path`,{d:`M2.182 13.9a10 10 0 0 1 0-3.8`,key:`c0bmvh`}],[`path`,{d:`M20.279 17.609a10 10 0 0 1-2.7 2.69`,key:`1ruxm7`}],[`path`,{d:`M21.818 10.1a10 10 0 0 1 0 3.8`,key:`qkgqxc`}],[`path`,{d:`M3.721 6.391a10 10 0 0 1 2.7-2.69`,key:`1mcia2`}],[`path`,{d:`M6.391 20.279a10 10 0 0 1-2.69-2.7`,key:`1fvljs`}]]),Kr=w(`CircleHelp`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),qr=w(`CirclePause`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`10`,x2:`10`,y1:`15`,y2:`9`,key:`c1nkhi`}],[`line`,{x1:`14`,x2:`14`,y1:`15`,y2:`9`,key:`h65svq`}]]),Jr=w(`EllipsisVertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),Yr=w(`Grid3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),Xr=w(`Laptop`,[[`path`,{d:`M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16`,key:`tarvll`}]]),Zr=w(`LogOut`,[[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}],[`polyline`,{points:`16 17 21 12 16 7`,key:`1gabdz`}],[`line`,{x1:`21`,x2:`9`,y1:`12`,y2:`12`,key:`1uyos4`}]]),Qr=w(`Radar`,[[`path`,{d:`M19.07 4.93A10 10 0 0 0 6.99 3.34`,key:`z3du51`}],[`path`,{d:`M4 6h.01`,key:`oypzma`}],[`path`,{d:`M2.29 9.62A10 10 0 1 0 21.31 8.35`,key:`qzzz0`}],[`path`,{d:`M16.24 7.76A6 6 0 1 0 8.23 16.67`,key:`1yjesh`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M17.99 11.66A6 6 0 0 1 15.77 16.67`,key:`1u2y91`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`path`,{d:`m13.41 10.59 5.66-5.66`,key:`mhq4k0`}]]),$r=w(`RefreshCcw`,[[`path`,{d:`M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`14sxne`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16`,key:`1hlbsb`}],[`path`,{d:`M16 16h5v5`,key:`ccwih5`}]]),ei=w(`Server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),ti=w(`ShieldAlert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ni=w(`ShieldCheck`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ri=w(`SquareArrowOutUpRight`,[[`path`,{d:`M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6`,key:`y09zxi`}],[`path`,{d:`m21 3-9 9`,key:`mpx6sq`}],[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}]]),ii=w(`Star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),ai=w(`TriangleAlert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),oi=w(`Unplug`,[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]),si=w(`Wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`,key:`cbrjhi`}]]);function ci(){return b({queryKey:ui,queryFn:ee,staleTime:5e3,refetchOnWindowFocus:!0})}var V=r();function H(e){let{label:t,muted:n,value:r}=e;return(0,V.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-2 text-sm`,children:[(0,V.jsx)(`span`,{className:`text-gray-500`,children:t}),(0,V.jsx)(`span`,{className:n?`text-right text-gray-500`:`text-right text-gray-900`,children:r==null||r===``?`-`:String(r)})]})}function li(){let e=$o(),t=ci(),r=t.data,a=G(e=>e.actionLabel),o=(0,k.useMemo)(()=>xi(r),[r]),s=!!a,c=r?.runtime?.deviceName?.trim()||r?.settings.deviceName?.trim()||n(`remoteDeviceNameAuto`),u=!!(r?.account.loggedIn&&hi(r)),{hero:m,issueHint:g}=o;return(0,k.useEffect)(()=>{e.remoteAccessManager.syncStatus(r)},[e,r]),t.isLoading&&!r?(0,V.jsx)(`div`,{className:`p-8 text-gray-400`,children:n(`remoteLoading`)}):(0,V.jsxs)(h,{className:`space-y-6`,children:[(0,V.jsx)(re,{title:n(`remotePageTitle`),description:n(`remotePageDescription`)}),(0,V.jsxs)(`div`,{className:`grid gap-6 xl:grid-cols-[1.2fr_0.8fr]`,children:[(0,V.jsxs)(f,{children:[(0,V.jsxs)(ie,{className:`space-y-4`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,V.jsx)(l,{children:m.title}),(0,V.jsx)(je,{status:m.badgeStatus,label:m.badgeLabel})]}),(0,V.jsx)(_,{children:m.description})]}),(0,V.jsxs)(d,{className:`space-y-5`,children:[(0,V.jsxs)(T,{tone:`neutral`,children:[(0,V.jsx)(H,{label:n(`remoteSignedInAccount`),value:r?.account.email}),(0,V.jsx)(H,{label:n(`remoteDeviceName`),value:c}),(0,V.jsx)(H,{label:n(`remoteConnectionStatus`),value:m.badgeLabel}),(0,V.jsx)(H,{label:n(`remoteLastConnectedAt`),value:r?.runtime?.lastConnectedAt?i(r.runtime.lastConnectedAt):`-`,muted:!0})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[o.primaryAction?(0,V.jsxs)(p,{onClick:()=>{if(o.primaryAction?.kind===`reauthorize`){e.remoteAccessManager.reauthorizeRemoteAccess(r);return}if(o.primaryAction?.kind===`repair`){e.remoteAccessManager.repairRemoteAccess(r);return}e.remoteAccessManager.enableRemoteAccess(r)},disabled:s,children:[o.primaryAction.showRefreshIcon?(0,V.jsx)($r,{className:`mr-2 h-4 w-4`}):null,a||o.primaryAction.label]}):null,(0,V.jsxs)(p,{variant:`outline`,onClick:()=>void e.accountManager.openNextClawWeb(),disabled:s||!u,children:[(0,V.jsx)(ri,{className:`mr-2 h-4 w-4`}),n(`remoteOpenDeviceList`)]}),r?.settings.enabled?(0,V.jsx)(p,{variant:`outline`,onClick:()=>void e.remoteAccessManager.disableRemoteAccess(r),disabled:s,children:n(`remoteDisable`)}):null]}),o.shouldShowIssueHint&&g?(0,V.jsx)(T,{tone:`warning`,title:g.title,description:g.body}):null,(0,V.jsx)(`p`,{className:`text-xs text-gray-500`,children:n(`remoteOpenWebHint`)})]})]}),(0,V.jsxs)(f,{children:[(0,V.jsxs)(ie,{children:[(0,V.jsxs)(l,{className:`flex items-center gap-2`,children:[(0,V.jsx)(Xr,{className:`h-4 w-4 text-primary`}),n(`remoteDeviceSectionTitle`)]}),(0,V.jsx)(_,{children:n(`remoteDeviceSectionDescription`)})]}),(0,V.jsxs)(d,{className:`space-y-5`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(je,{status:r?.account.loggedIn?`ready`:`inactive`,label:r?.account.loggedIn?n(`remoteAccountConnected`):n(`remoteAccountNotConnected`)}),(0,V.jsx)(je,{status:r?.settings.enabled?`active`:`inactive`,label:r?.settings.enabled?n(`remoteEnabled`):n(`remoteStateDisabled`)}),(0,V.jsx)(je,{status:r?.service.running?`active`:`inactive`,label:r?.service.running?n(`remoteServiceRunning`):n(`remoteServiceStopped`)})]}),(0,V.jsxs)(T,{tone:`neutral`,children:[(0,V.jsx)(H,{label:n(`remoteDeviceName`),value:c}),(0,V.jsx)(H,{label:n(`remoteConnectionStatus`),value:m.badgeLabel}),(0,V.jsx)(H,{label:n(`remoteLastConnectedAt`),value:r?.runtime?.lastConnectedAt?i(r.runtime.lastConnectedAt):`-`,muted:!0})]}),(0,V.jsx)(T,{tone:`neutral`,borderStyle:`dashed`,description:r?.account.loggedIn?n(`remoteOpenWebHint`):n(`remoteStatusNeedsSignInDescription`),className:`text-sm`})]})]})]})]})}var ui=[`remote-status`],di=`https://platform.nextclaw.io`,fi=`https://nextclaw-platform-console.pages.dev`,U=async()=>await m.fetchQuery({queryKey:ui,queryFn:ee,staleTime:5e3}),W=async()=>(await m.invalidateQueries({queryKey:ui}),await U()),pi=(e,t)=>t?.trim()||e?.settings.platformApiBase?.trim()||e?.account.apiBase?.trim()||void 0;function mi(e){let t=e?.trim();if(!t)return;let n;try{n=new URL(t)}catch{return}if(n.hostname===`platform.nextclaw.io`||n.hostname===`nextclaw-platform-console.pages.dev`)return n.origin;if(n.hostname===`ai-gateway-api.nextclaw.io`)return di;if(n.hostname.includes(`nextclaw-provider-gateway-api`)&&n.hostname.endsWith(`.workers.dev`))return fi}var hi=e=>mi(e?.account.apiBase)||mi(e?.settings.platformApiBase)||mi(e?.platformBase)||mi(e?.account.platformBase)||void 0,G=s(e=>({enabled:!1,deviceName:``,platformApiBase:``,advancedOpen:!1,draftTouched:!1,actionLabel:null,doctor:null,setEnabled:t=>e({enabled:t,draftTouched:!0}),setDeviceName:t=>e({deviceName:t,draftTouched:!0}),setPlatformApiBase:t=>e({platformApiBase:t,draftTouched:!0}),setAdvancedOpen:t=>e({advancedOpen:t}),hydrateDraft:({enabled:t,deviceName:n,platformApiBase:r})=>e({enabled:t,deviceName:n,platformApiBase:r,draftTouched:!1}),beginAction:t=>e({actionLabel:t}),finishAction:()=>e({actionLabel:null}),setDoctor:t=>e({doctor:t})})),gi=class{constructor(e){this.params=e,this.syncStatus=e=>{if(!e)return;let t=G.getState();t.draftTouched||t.actionLabel||this.hydrateDraftFromStatus(e)},this.setEnabled=e=>{G.getState().setEnabled(e)},this.setDeviceName=e=>{G.getState().setDeviceName(e)},this.setPlatformApiBase=e=>{G.getState().setPlatformApiBase(e)},this.setAdvancedOpen=e=>{G.getState().setAdvancedOpen(e)},this.enableRemoteAccess=async e=>{let t=e??await W(),n=G.getState(),r=await this.ensureRemoteAccount(t,n.platformApiBase);await this.applyEnabledState(!0,r)},this.disableRemoteAccess=async e=>{let t=e??await W();await this.applyEnabledState(!1,t)},this.repairRemoteAccess=async e=>{let t=e??await W(),r=(await this.ensureRemoteAccount(t)).service.running?`restart`:`start`;await this.runManagedAction({actionLabel:n(r===`restart`?`remoteActionRestarting`:`remoteActionStarting`),job:async()=>{await ce(r);let e=await W();this.hydrateDraftFromStatus(e)},successMessage:n(`remoteServiceRecovered`)})},this.reauthorizeRemoteAccess=async e=>{let t=e??await W(),n=await this.params.accountManager.startBrowserSignInAndWait({status:t,apiBase:G.getState().platformApiBase});await this.repairRemoteAccess(n)},this.saveAdvancedSettings=async e=>{let t=e??await W(),r=G.getState();await this.runManagedAction({actionLabel:n(`remoteActionSavingAdvanced`),job:async()=>{await ue({enabled:r.enabled,deviceName:r.deviceName.trim(),platformApiBase:r.platformApiBase.trim()});let e=await W();this.hydrateDraftFromStatus(e)},successMessage:t.settings.enabled===r.enabled?n(`remoteSettingsSaved`):n(`remoteAdvancedSaved`)})},this.runDoctor=async()=>{await this.runManagedAction({actionLabel:n(`remoteDoctorRunning`),job:async()=>{let e=await ne();G.getState().setDoctor(e)},successMessage:n(`remoteDoctorCompleted`)})},this.startService=async()=>{await this.runServiceAction(`start`,n(`remoteActionStarting`))},this.restartService=async()=>{await this.runServiceAction(`restart`,n(`remoteActionRestarting`))},this.stopService=async()=>{await this.runServiceAction(`stop`,n(`remoteActionStopping`))},this.applyEnabledState=async(e,t)=>{let r=G.getState();await this.runManagedAction({actionLabel:n(e?`remoteActionEnabling`:`remoteActionDisabling`),job:async()=>{await ue({enabled:e,deviceName:r.deviceName.trim(),platformApiBase:r.platformApiBase.trim()});let n=await W();this.hydrateDraftFromStatus(n),e?await ce(n.service.running?`restart`:`start`):t.service.running&&await ce(`restart`);let i=await W();this.hydrateDraftFromStatus(i)},successMessage:n(e?`remoteEnabledReady`:`remoteDisabledDone`)})},this.ensureRemoteAccount=async(e,t)=>e.account.loggedIn?e:await this.params.accountManager.ensureSignedIn({apiBase:t,status:e}),this.runServiceAction=async(e,t)=>{await this.runManagedAction({actionLabel:t,job:async()=>{let t=await ce(e),n=await W();this.hydrateDraftFromStatus(n),C.success(t.message)}})},this.hydrateDraftFromStatus=e=>{G.getState().hydrateDraft({enabled:e.settings.enabled,deviceName:e.settings.deviceName,platformApiBase:e.settings.platformApiBase})},this.runManagedAction=async e=>{let{actionLabel:t,job:r,successMessage:i}=e;G.getState().beginAction(t);try{await r(),i&&C.success(i)}catch(e){let t=e instanceof Error?e.message:n(`error`);throw C.error(t),e}finally{G.getState().finishAction()}}}},_i=[/invalid or expired token/i,/missing bearer token/i,/token expired/i,/token is invalid/i,/run "nextclaw login"/i,/browser sign-in again/i];function vi(e){return e?.runtime?.lastError?.trim()||``}function yi(e){let t=n(`remoteStatusIssueDetailGeneric`),r=vi(e);return r?`${t} (${r})`:t}function bi(e){if(!e?.settings.enabled)return!1;let t=vi(e);return _i.some(e=>e.test(t))}function xi(e){return bi(e)?{hero:{badgeStatus:`warning`,badgeLabel:n(`remoteStateReauthorizationRequired`),title:n(`remoteStatusReauthorizationTitle`),description:n(`remoteStatusReauthorizationDescription`)},primaryAction:{kind:`reauthorize`,label:n(`remoteReauthorizeNow`),showRefreshIcon:!1},issueHint:{title:n(`remoteStatusRecoveryTitle`),body:n(`remoteStatusReauthorizationHint`)},shouldShowIssueHint:!0,requiresReauthorization:!0}:e?.account.loggedIn?e.settings.enabled?e.service.running?e.runtime?.state===`connected`?{hero:{badgeStatus:`ready`,badgeLabel:n(`statusReady`),title:n(`remoteStatusReadyTitle`),description:n(`remoteStatusReadyDescription`)},primaryAction:{kind:`repair`,label:n(`remoteReconnectNow`),showRefreshIcon:!0},issueHint:null,shouldShowIssueHint:!1,requiresReauthorization:!1}:e.runtime?.state===`connecting`?{hero:{badgeStatus:`active`,badgeLabel:n(`connecting`),title:n(`remoteStatusConnectingTitle`),description:n(`remoteStatusConnectingDescription`)},primaryAction:{kind:`repair`,label:n(`remoteReconnectNow`),showRefreshIcon:!0},issueHint:null,shouldShowIssueHint:!1,requiresReauthorization:!1}:{hero:{badgeStatus:`warning`,badgeLabel:n(`remoteStateDisconnected`),title:n(`remoteStatusIssueTitle`),description:n(`remoteStatusIssueDescription`)},primaryAction:{kind:`repair`,label:n(`remoteReconnectNow`),showRefreshIcon:!0},issueHint:{title:n(`remoteStatusRecoveryTitle`),body:yi(e)},shouldShowIssueHint:!!(e.settings.enabled&&e.account.loggedIn),requiresReauthorization:!1}:{hero:{badgeStatus:`warning`,badgeLabel:n(`remoteServiceStopped`),title:n(`remoteStatusNeedsServiceTitle`),description:n(`remoteStatusNeedsServiceDescription`)},primaryAction:{kind:`repair`,label:n(`remoteReconnectNow`),showRefreshIcon:!0},issueHint:{title:n(`remoteStatusRecoveryTitle`),body:n(`remoteStatusIssueDetailServiceStopped`)},shouldShowIssueHint:!0,requiresReauthorization:!1}:{hero:{badgeStatus:`inactive`,badgeLabel:n(`statusInactive`),title:n(`remoteStatusNeedsEnable`),description:n(`remoteStatusNeedsEnableDescription`)},primaryAction:{kind:`enable`,label:n(`remoteEnableNow`),showRefreshIcon:!1},issueHint:null,shouldShowIssueHint:!1,requiresReauthorization:!1}:{hero:{badgeStatus:`setup`,badgeLabel:n(`statusSetup`),title:n(`remoteStatusNeedsSignIn`),description:n(`remoteStatusNeedsSignInDescription`)},primaryAction:{kind:`sign-in-enable`,label:n(`remoteSignInAndEnable`),showRefreshIcon:!1},issueHint:null,shouldShowIssueHint:!1,requiresReauthorization:!1}}var K=s(e=>({panelOpen:!1,authSessionId:null,authVerificationUri:null,authExpiresAt:null,authStatusMessage:``,authPollIntervalMs:1500,openPanel:()=>e({panelOpen:!0}),closePanel:()=>e({panelOpen:!1}),beginBrowserAuth:({sessionId:t,verificationUri:n,expiresAt:r,intervalMs:i,statusMessage:a})=>e({panelOpen:!0,authSessionId:t,authVerificationUri:n,authExpiresAt:r,authPollIntervalMs:i,authStatusMessage:a}),updateBrowserAuth:({statusMessage:t,intervalMs:n})=>e(e=>({authStatusMessage:t??e.authStatusMessage,authPollIntervalMs:n??e.authPollIntervalMs})),clearBrowserAuth:()=>e({authSessionId:null,authVerificationUri:null,authExpiresAt:null,authStatusMessage:``,authPollIntervalMs:1500}),setAuthStatusMessage:t=>e({authStatusMessage:t})}));function Si({label:e,value:t}){return(0,V.jsxs)(`div`,{className:`flex items-start justify-between gap-4 py-2 text-sm`,children:[(0,V.jsx)(`span`,{className:`text-gray-500`,children:e}),(0,V.jsx)(`span`,{className:`text-right text-gray-900`,children:t?.trim()||`-`})]})}function Ci(e){let{email:t,username:r,role:i,canSubmitUsername:a,savingUsername:o,usernameDraft:s,onUsernameDraftChange:c,onSubmitUsername:l,onOpenDeviceList:u,onLogout:d}=e;return(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsx)(T,{tone:`success`,title:n(`accountPanelSignedInTitle`),description:n(`accountPanelSignedInDescription`)}),(0,V.jsxs)(T,{tone:`neutral`,children:[(0,V.jsx)(Si,{label:n(`remoteAccountEmail`),value:t}),(0,V.jsx)(Si,{label:n(`remoteAccountUsername`),value:r}),(0,V.jsx)(Si,{label:n(`remoteAccountRole`),value:i})]}),r?(0,V.jsx)(`p`,{className:`text-xs text-gray-500`,children:n(`remoteAccountUsernameLockedHelp`)}):(0,V.jsxs)(T,{tone:`warning`,title:n(`remoteAccountUsernameRequiredTitle`),description:n(`remoteAccountUsernameRequiredDescription`),children:[(0,V.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,V.jsx)(g,{htmlFor:`account-panel-username`,children:n(`remoteAccountUsername`)}),(0,V.jsx)(v,{id:`account-panel-username`,value:s,onChange:e=>c(e.target.value),placeholder:n(`remoteAccountUsernamePlaceholder`),autoCapitalize:`none`,autoCorrect:`off`,spellCheck:!1})]}),(0,V.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-3`,children:(0,V.jsx)(p,{disabled:!a,onClick:()=>void l(),children:n(o?`remoteAccountUsernameSaving`:`remoteAccountUsernameSave`)})})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,V.jsxs)(p,{onClick:()=>void u(),children:[(0,V.jsx)(ri,{className:`mr-2 h-4 w-4`}),n(`remoteOpenDeviceList`)]}),(0,V.jsxs)(p,{variant:`outline`,onClick:()=>void d(),children:[(0,V.jsx)(Zr,{className:`mr-2 h-4 w-4`}),n(`remoteLogout`)]})]})]})}function wi(e){let{authSessionId:t,authExpiresAt:r,authStatusMessage:a,authVerificationUri:o,onStartBrowserSignIn:s,onResumeBrowserSignIn:c}=e;return(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsx)(T,{tone:`neutral`,title:n(`accountPanelSignedOutTitle`),description:n(`accountPanelSignedOutDescription`),children:t?(0,V.jsxs)(`div`,{className:`mt-3 border-t border-white/80 pt-3`,children:[(0,V.jsx)(Si,{label:n(`remoteBrowserAuthSession`),value:t}),(0,V.jsx)(Si,{label:n(`remoteBrowserAuthExpiresAt`),value:r?i(r):`-`})]}):null}),a?(0,V.jsx)(`p`,{className:`text-sm text-gray-600`,children:a}):null,(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,V.jsx)(p,{onClick:()=>void s(),children:n(t?`remoteBrowserAuthActionRetry`:`remoteBrowserAuthAction`)}),o?(0,V.jsx)(p,{variant:`outline`,onClick:c,children:n(`remoteBrowserAuthResume`)}):null]})]})}function Ti(){let e=$o(),t=ci(),r=K(e=>e.panelOpen),i=K(e=>e.authSessionId),a=K(e=>e.authVerificationUri),o=K(e=>e.authExpiresAt),s=K(e=>e.authStatusMessage),c=t.data,[l,u]=(0,k.useState)(``),[d,f]=(0,k.useState)(!1);(0,k.useEffect)(()=>{e.accountManager.syncRemoteStatus(c)},[e,c]);let p=!d&&l.trim().length>0&&!c?.account.username;return(0,V.jsx)(pe,{open:r,onOpenChange:t=>t?e.accountManager.openAccountPanel():e.accountManager.closeAccountPanel(),children:(0,V.jsxs)(he,{className:`max-w-xl`,children:[(0,V.jsxs)(me,{children:[(0,V.jsxs)(ge,{className:`flex items-center gap-2`,children:[(0,V.jsx)(Ee,{className:`h-5 w-5 text-primary`}),n(`accountPanelTitle`)]}),(0,V.jsx)(fe,{children:n(`accountPanelDescription`)})]}),c?.account.loggedIn?(0,V.jsx)(Ci,{email:c.account.email,username:c.account.username,role:c.account.role,canSubmitUsername:p,savingUsername:d,usernameDraft:l,onUsernameDraftChange:u,onSubmitUsername:async()=>{f(!0);try{await e.accountManager.updateUsername(l)}finally{f(!1)}},onOpenDeviceList:()=>e.accountManager.openNextClawWeb(`/account`),onLogout:()=>e.accountManager.logout()}):(0,V.jsx)(wi,{authSessionId:i,authExpiresAt:o,authStatusMessage:s,authVerificationUri:a,onStartBrowserSignIn:()=>e.accountManager.startBrowserSignIn(),onResumeBrowserSignIn:()=>e.accountManager.resumeBrowserSignIn()})]})})}function Ei({username:e}){let t=se(),[r,i]=(0,k.useState)(e??``),[a,o]=(0,k.useState)(``),s=r.trim().length>0&&a.length>0&&!t.isPending;return(0,V.jsx)(`main`,{className:`flex min-h-screen items-center justify-center bg-secondary px-6 py-10`,children:(0,V.jsxs)(f,{hover:!1,className:`w-full max-w-md shadow-card-hover`,children:[(0,V.jsxs)(ie,{children:[(0,V.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.24em] text-gray-500`,children:n(`authBrand`)}),(0,V.jsx)(l,{className:`text-2xl`,children:n(`authLoginTitle`)}),(0,V.jsx)(_,{children:n(`authLoginDescription`)})]}),(0,V.jsx)(d,{children:(0,V.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e?.preventDefault(),s&&t.mutate({username:r.trim(),password:a})},children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`label`,{className:`text-sm font-medium text-gray-800`,children:n(`authUsername`)}),(0,V.jsx)(v,{value:r,onChange:e=>i(e.target.value),placeholder:n(`authUsernamePlaceholder`),autoFocus:!0})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`label`,{className:`text-sm font-medium text-gray-800`,children:n(`authPassword`)}),(0,V.jsx)(v,{type:`password`,value:a,onChange:e=>o(e.target.value),placeholder:n(`authPasswordPlaceholder`)})]}),(0,V.jsx)(p,{type:`submit`,className:`w-full`,disabled:!s,children:t.isPending?n(`authLoggingIn`):n(`authLoginAction`)})]})})]})})}var Di=class{constructor(){this.authPollTimerId=null,this.browserSignInCompletion=null,this.openAccountPanel=()=>{K.getState().openPanel()},this.closeAccountPanel=()=>{K.getState().closePanel()},this.syncRemoteStatus=e=>{e?.account.loggedIn&&(this.clearPollTimer(),this.resolveBrowserSignIn(e),K.getState().clearBrowserAuth())},this.ensureSignedIn=async e=>{let t=e?.status??await U();return t.account.loggedIn?t:(this.openAccountPanel(),await this.startBrowserSignInAndWait({apiBase:e?.apiBase,status:t}))},this.startBrowserSignInAndWait=async e=>{let t=this.createBrowserSignInCompletion();return await this.startBrowserSignIn(e),await t},this.startBrowserSignIn=async e=>{try{let t=e?.apiBase,r=await te({apiBase:pi(e?.status??await U(),t)});K.getState().beginBrowserAuth({sessionId:r.sessionId,verificationUri:r.verificationUri,expiresAt:r.expiresAt,intervalMs:r.intervalMs,statusMessage:n(`remoteBrowserAuthWaiting`)}),window.open(r.verificationUri,`_blank`,`noopener,noreferrer`)||K.getState().setAuthStatusMessage(n(`remoteBrowserAuthPopupBlocked`)),this.scheduleBrowserAuthPoll()}catch(e){let t=e instanceof Error?e.message:n(`remoteBrowserAuthStartFailed`);this.rejectBrowserSignIn(e),C.error(`${n(`remoteBrowserAuthStartFailed`)}: ${t}`)}},this.resumeBrowserSignIn=()=>{let e=K.getState().authVerificationUri;e&&window.open(e,`_blank`,`noopener,noreferrer`)},this.logout=async()=>{try{await oe(),this.rejectBrowserSignIn(Error(`Signed out before browser sign-in completed.`)),K.getState().clearBrowserAuth(),await W(),C.success(n(`remoteLogoutSuccess`))}catch(e){let t=e instanceof Error?e.message:n(`remoteLogoutFailed`);C.error(`${n(`remoteLogoutFailed`)}: ${t}`)}},this.updateUsername=async e=>{try{await ae({username:e.trim()}),await W(),C.success(n(`remoteAccountUsernameSetSuccess`))}catch(e){let t=e instanceof Error?e.message:n(`remoteAccountUsernameSetFailed`);C.error(`${n(`remoteAccountUsernameSetFailed`)}: ${t}`)}},this.openNextClawWeb=async(e=`/`)=>{let t=hi(await U());if(!t){C.error(n(`remoteOpenWebUnavailable`));return}let r=new URL(e,`${t.replace(/\/+$/,``)}/`).toString();window.open(r,`_blank`,`noopener,noreferrer`)},this.scheduleBrowserAuthPoll=()=>{this.clearPollTimer();let{authSessionId:e,authPollIntervalMs:t}=K.getState();e&&(this.authPollTimerId=window.setTimeout(async()=>{await this.pollBrowserSignIn()},t))},this.pollBrowserSignIn=async()=>{let e=K.getState();if(e.authSessionId)try{let t=await U(),r=await le({sessionId:e.authSessionId,apiBase:pi(t)});if(r.status===`pending`){K.getState().updateBrowserAuth({statusMessage:n(`remoteBrowserAuthWaiting`),intervalMs:r.nextPollMs??1500}),this.scheduleBrowserAuthPoll();return}if(r.status===`expired`){this.clearPollTimer(),this.rejectBrowserSignIn(Error(r.message||n(`remoteBrowserAuthExpired`))),K.getState().clearBrowserAuth(),C.error(r.message||n(`remoteBrowserAuthExpired`));return}K.getState().setAuthStatusMessage(n(`remoteBrowserAuthCompleted`));let i=await W();this.clearPollTimer(),this.resolveBrowserSignIn(i),K.getState().clearBrowserAuth(),C.success(n(`remoteLoginSuccess`))}catch(e){this.clearPollTimer(),this.rejectBrowserSignIn(e),K.getState().clearBrowserAuth();let t=e instanceof Error?e.message:n(`remoteBrowserAuthPollFailed`);C.error(`${n(`remoteBrowserAuthPollFailed`)}: ${t}`)}},this.clearPollTimer=()=>{this.authPollTimerId!==null&&(window.clearTimeout(this.authPollTimerId),this.authPollTimerId=null)},this.createBrowserSignInCompletion=()=>(this.rejectBrowserSignIn(Error(`Browser sign-in was replaced by a newer request.`)),new Promise((e,t)=>{this.browserSignInCompletion={resolve:e,reject:t}})),this.resolveBrowserSignIn=e=>{let t=this.browserSignInCompletion;t&&(this.browserSignInCompletion=null,t.resolve(e))},this.rejectBrowserSignIn=e=>{let t=this.browserSignInCompletion;t&&(this.browserSignInCompletion=null,t.reject(e instanceof Error?e:Error(String(e))))},this.getBrowserAuthSummary=()=>{let e=K.getState();return{sessionId:e.authSessionId,expiresAt:e.authExpiresAt?i(e.authExpiresAt):`-`}}}};function Oi({deletePending:e,entry:t,favoritePending:r,onDelete:i,onOpen:a,onToggleFavorite:o}){let[s,c]=(0,k.useState)(!1),[l,u]=(0,k.useState)(!1),d=t.favorite?n(`panelAppsUnfavorite`):n(`panelAppsFavorite`),f=t.lastOpenedAt?`${n(`panelAppsLastOpened`)} ${Ai(t.lastOpenedAt)}`:`${n(`panelAppsUpdated`)} ${Ai(t.updatedAt)}`,p=e=>{e.stopPropagation(),o()},m=()=>{c(!1),u(!0)};return(0,V.jsxs)(`div`,{className:`group w-full min-w-0 rounded-lg border border-gray-200 bg-white px-2.5 py-2.5 transition-colors hover:border-amber-200 hover:bg-amber-50/50`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:a,className:`min-w-0 flex-1 text-left`,children:[(0,V.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(`span`,{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-amber-50 text-base text-amber-700`,children:(0,V.jsx)(ji,{icon:t.icon,title:t.title})}),(0,V.jsx)(`span`,{className:`block min-w-0 flex-1 truncate text-sm font-medium text-gray-900`,children:t.title})]}),t.description?(0,V.jsx)(`span`,{className:`mt-1.5 block truncate text-xs leading-5 text-gray-600`,children:t.description}):null,(0,V.jsx)(`span`,{className:`mt-0.5 block truncate text-[11px] leading-4 text-gray-400`,children:f})]}),(0,V.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:p,disabled:r,className:`rounded-md p-1.5 text-gray-400 transition-colors hover:bg-white hover:text-amber-500 disabled:opacity-50`,title:d,"aria-label":d,children:(0,V.jsx)(ii,{className:t.favorite?`h-4 w-4 fill-amber-400 text-amber-500`:`h-4 w-4`})}),(0,V.jsxs)(Pe,{open:s,onOpenChange:c,children:[(0,V.jsx)(Ne,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,className:`rounded-md p-1.5 text-gray-400 transition-colors hover:bg-white hover:text-gray-700`,"aria-label":n(`panelAppsMoreActions`),disabled:e,children:(0,V.jsx)(Jr,{className:`h-4 w-4`})})}),(0,V.jsx)(Me,{align:`end`,className:`w-48 rounded-xl p-1.5`,children:(0,V.jsx)(ki,{destructive:!0,disabled:e,icon:ke,label:n(`panelAppsDelete`),onClick:m})})]})]})]}),(0,V.jsx)(_e,{open:l,onOpenChange:u,title:n(`panelAppsDeleteConfirmTitle`),description:`${n(`panelAppsDeleteConfirmDescription`)} ${t.fileName}`,confirmLabel:n(`delete`),variant:`destructive`,onConfirm:i,onCancel:()=>void 0})]})}function ki({destructive:t=!1,disabled:n=!1,icon:r,label:i,onClick:a}){return(0,V.jsxs)(`button`,{type:`button`,className:e(`flex w-full items-center gap-2 rounded-lg px-2.5 py-2 text-left text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50`,t?`text-destructive hover:bg-destructive/10`:`text-gray-700 hover:bg-gray-100`),disabled:n,onClick:a,children:[(0,V.jsx)(r,{className:`h-4 w-4 shrink-0`}),(0,V.jsx)(`span`,{children:i})]})}function Ai(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=o(a()),r=new Date;return t.toDateString()===r.toDateString()?new Intl.DateTimeFormat(n,{hour:`2-digit`,minute:`2-digit`}).format(t):t.getFullYear()===r.getFullYear()?new Intl.DateTimeFormat(n,{month:`numeric`,day:`numeric`}).format(t):new Intl.DateTimeFormat(n,{year:`2-digit`,month:`numeric`,day:`numeric`}).format(t)}function ji({icon:e,title:t}){return e?Mi(e)?(0,V.jsx)(`img`,{src:e,alt:``,"aria-hidden":`true`,className:`h-5 w-5 rounded-sm object-contain`,title:t}):(0,V.jsx)(`span`,{className:`max-w-6 truncate text-center leading-none`,children:e}):(0,V.jsx)(Hr,{className:`h-4 w-4`})}function Mi(e){return e.startsWith(`data:image/`)||e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`/`)}var Ni=[`panel-apps`];function Pi(){return b({queryKey:Ni,queryFn:()=>x.panelApps.listPanelApps(),staleTime:0})}function Fi(){let e=y();return u({mutationFn:({id:e,preferences:t})=>x.panelApps.updatePanelAppPreferences(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:Ni})}})}function Ii(){let e=y();return u({mutationFn:e=>x.panelApps.recordPanelAppOpened(e),onSuccess:()=>{e.invalidateQueries({queryKey:Ni})}})}function Li(){let e=y();return u({mutationFn:e=>x.panelApps.deletePanelApp(e),onSuccess:()=>{e.invalidateQueries({queryKey:Ni})}})}function Ri(e,t){return t===`favorites`?zi(e.filter(e=>e.favorite),`smart`):zi(t===`recent-open`?e.filter(e=>e.lastOpenedAt):e,t)}function zi(e,t){return[...e].sort((e,n)=>Bi(e,n,t))}function Bi(e,t,n){return n===`recent-open`?Wi(e.lastOpenedAt,t.lastOpenedAt)||Vi(e,t):n===`updated`?Wi(e.updatedAt,t.updatedAt)||Vi(e,t):n===`name`?Vi(e,t):Hi(e,t)||Number(t.favorite)-Number(e.favorite)||Vi(e,t)}function Vi(e,t){return e.title.localeCompare(t.title)}function Hi(e,t){return Ui(t)-Ui(e)}function Ui(e){return Math.max(new Date(e.lastOpenedAt??0).getTime(),new Date(e.createdAt).getTime(),new Date(e.updatedAt).getTime())}function Wi(e,t){return new Date(t??0).getTime()-new Date(e??0).getTime()}function Gi({headerContent:e,onOpenPanelApp:t}){let r=Pi(),i=Li(),a=Fi(),o=Ii(),[s,c]=(0,k.useState)(`smart`),l=(0,k.useMemo)(()=>Ri(r.data?.entries??[],s),[r.data?.entries,s]),u=async e=>{try{t(await o.mutateAsync(e.id))}catch{t(e)}},d=e=>{a.mutate({id:e.id,preferences:{favorite:!e.favorite}})},f=e=>{i.mutate(e.id)};return r.isLoading?(0,V.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-gray-500`,children:n(`panelAppsLoading`)}):r.isError?(0,V.jsx)(`div`,{className:`p-4 text-sm text-rose-600`,children:r.error instanceof Error?r.error.message:n(`panelAppsLoadFailed`)}):(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-white`,children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[e??(0,V.jsx)(`div`,{className:`truncate text-sm font-semibold text-gray-900`,children:n(`panelAppsTitle`)}),r.data?.panelsPath?(0,V.jsx)(Ce,{delayDuration:250,children:(0,V.jsxs)(we,{children:[(0,V.jsx)(xe,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,className:`rounded p-0.5 text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-700`,"aria-label":n(`panelAppsTitle`),children:(0,V.jsx)(Kr,{className:`h-3.5 w-3.5`})})}),(0,V.jsx)(Se,{side:`bottom`,className:`max-w-[320px] break-all font-mono text-xs`,children:r.data.panelsPath})]})}):null]}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>void r.refetch(),className:`rounded-md p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-800`,title:n(`panelAppsRefresh`),"aria-label":n(`panelAppsRefresh`),children:(0,V.jsx)(Oe,{className:`h-3.5 w-3.5`})})]}),(0,V.jsx)(`div`,{className:`border-b border-gray-100 px-3 py-2`,children:(0,V.jsx)(Ie,{value:s,onValueChange:e=>c(e),children:(0,V.jsxs)(Fe,{className:`grid h-auto w-full grid-cols-5 rounded-lg bg-gray-100/70 p-0.5`,children:[(0,V.jsx)(E,{value:`smart`,className:`px-2 py-1 text-xs`,children:n(`panelAppsSortSmart`)}),(0,V.jsx)(E,{value:`favorites`,className:`px-2 py-1 text-xs`,children:n(`panelAppsFavorites`)}),(0,V.jsx)(E,{value:`recent-open`,className:`px-2 py-1 text-xs`,children:n(`panelAppsSortRecentOpen`)}),(0,V.jsx)(E,{value:`updated`,className:`px-2 py-1 text-xs`,children:n(`panelAppsSortUpdated`)}),(0,V.jsx)(E,{value:`name`,className:`px-2 py-1 text-xs`,children:n(`panelAppsSortName`)})]})})}),l.length===0?(0,V.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 text-center text-sm text-gray-500`,children:n(`panelAppsEmpty`)}):(0,V.jsx)(`div`,{className:`custom-scrollbar min-h-0 flex-1 overflow-y-auto p-3`,children:(0,V.jsx)(`div`,{className:`space-y-1.5`,children:l.map(e=>(0,V.jsx)(Oi,{entry:e,deletePending:i.isPending,favoritePending:a.isPending,onDelete:()=>f(e),onOpen:()=>void u(e),onToggleFavorite:()=>d(e)},e.id))})})]})}var Ki=class{constructor(e){this.authorizationManager=e,this.sessions=new Map,this.handleIframeMessage=({event:e,iframe:t,iframeInstanceId:n,tab:r})=>{this.isBridgeRequest(e.data)&&(!t?.contentWindow||e.source!==t.contentWindow||this.handleBridgeRequest({event:e,iframe:t,iframeInstanceId:n,tab:r},e.data))},this.handleBridgeRequest=async(e,t)=>{try{let n=await this.getSession(e),r=await this.dispatchRequest(n,t);this.postResponse(e,{type:`nextclaw:panel-app-service-actions:response`,requestId:t.requestId,ok:!0,data:r})}catch(n){this.postResponse(e,{type:`nextclaw:panel-app-service-actions:response`,requestId:t.requestId,ok:!1,error:this.toBridgeError(n)})}},this.dispatchRequest=async(e,t)=>{switch(t.method){case`list`:return await x.serviceApps.listServiceActions({bridgeSessionToken:e.token});case`requestGrant`:return await this.confirmAndGrant(e,this.requireActionId(t));case`revokeGrant`:return await x.serviceApps.revokeServiceAction(this.requireActionId(t),{bridgeSessionToken:e.token});case`invoke`:return await this.invokeWithAuthorization(e,t);case`agent.send`:return await this.sendAgentMessageWithAuthorization(e,t);case`agent.generateObject`:return await this.generateAgentObjectWithAuthorization(e,t);default:throw Error(`Unsupported panel bridge method: ${String(t.method)}`)}},this.invokeWithAuthorization=async(e,t)=>{let n=this.requireActionId(t);try{return await x.serviceApps.invokeServiceAction(n,this.readOptionalRecord(t.payload?.input),{bridgeSessionToken:e.token})}catch(r){if(!(r instanceof S)||r.code!==`AUTHORIZATION_REQUIRED`)throw r;return await this.confirmAndGrant(e,n,this.readOptionalRecord(t.payload?.input)),await x.serviceApps.invokeServiceAction(n,this.readOptionalRecord(t.payload?.input),{bridgeSessionToken:e.token})}},this.sendAgentMessageWithAuthorization=async(e,t)=>{try{return await x.panelApps.sendAgentMessage(this.readAgentSendRequest(t),{bridgeSessionToken:e.token})}catch(n){if(!(n instanceof S)||n.code!==`AUTHORIZATION_REQUIRED`)throw n;return await this.confirmAndGrantAgentCapability(e,`agent:send`),await x.panelApps.sendAgentMessage(this.readAgentSendRequest(t),{bridgeSessionToken:e.token})}},this.generateAgentObjectWithAuthorization=async(e,t)=>{try{return await x.panelApps.generateAgentObject(this.readGenerateObjectRequest(t),{bridgeSessionToken:e.token})}catch(n){if(!(n instanceof S)||n.code!==`AUTHORIZATION_REQUIRED`)throw n;return await this.confirmAndGrantAgentCapability(e,`agent:generateObject`),await x.panelApps.generateAgentObject(this.readGenerateObjectRequest(t),{bridgeSessionToken:e.token})}},this.confirmAndGrantAgentCapability=async(e,t)=>{if(!await this.authorizationManager.requestAuthorization({panelAppId:e.panelAppId,actions:[{actionId:t,actionTitle:t===`agent:send`?`Send agent message`:`Generate object`,actionDescription:t===`agent:send`?`Send a message to a NextClaw Agent session.`:`Send context to a NextClaw Agent session and receive a structured object.`,risk:`write`}]}))throw new S({code:`AUTHORIZATION_REJECTED`,message:`Permission rejected for ${t}.`});return await x.panelApps.grantAgentCapability(t,{bridgeSessionToken:e.token})},this.confirmAndGrant=async(e,t,n)=>{let r=await this.listGrantCandidateActions(e,t);if(!await this.authorizationManager.requestAuthorization({panelAppId:e.panelAppId,actions:r.map(e=>({actionId:e.id,actionTitle:e.title,actionDescription:e.description,risk:e.risk})),inputPreview:this.createInputPreview(n)}))throw new S({code:`AUTHORIZATION_REJECTED`,message:`Permission rejected for ${t}.`});let i=await x.serviceApps.grantServiceActions(r.map(e=>e.id),{bridgeSessionToken:e.token}),a=i.grants.find(e=>e.actionId===t)??i.grants[0];if(!a)throw Error(`No permission grant returned for ${t}.`);return a},this.listGrantCandidateActions=async(e,t)=>{let n=await x.serviceApps.listServiceActions({bridgeSessionToken:e.token}),r=n.actions.find(e=>e.id===t);if(r&&r.grantState!==`not-granted`)return[r];let i=n.actions.filter(e=>e.grantState===`not-granted`),a=[...i.filter(e=>e.id===t),...i.filter(e=>e.id!==t)];return a.length>0?a:[{appId:r?.appId??t.split(`.`)[0]??t,description:r?.description,id:t,name:r?.name??t,risk:r?.risk??`dangerous`,title:r?.title}]},this.createInputPreview=e=>{if(!(!e||Object.keys(e).length===0))try{let t=JSON.stringify(e,null,2);return t.length>500?`${t.slice(0,500)}...`:t}catch{return`[unserializable input]`}},this.getSession=async e=>{let t=this.readPanelAppId(e.tab.currentUrl),n=`${e.iframeInstanceId}:${t}`,r=this.sessions.get(n);return r||(r=x.panelApps.createBridgeSession({panelAppId:t,tabId:e.tab.id}),this.sessions.set(n,r)),await r},this.readPanelAppId=e=>{let t=new URL(e,window.location.origin),n=/^\/api\/panel-apps\/([^/]+)\/content$/.exec(t.pathname);if(!n?.[1])throw Error(`Current tab is not a Panel App.`);return decodeURIComponent(n[1])},this.requireActionId=e=>{let t=e.payload?.actionId?.trim();if(!t)throw Error(`Panel bridge actionId is required.`);return t},this.readOptionalRecord=e=>{if(e!==void 0)return this.requireRecord(e,`input`)},this.readAgentSendRequest=e=>({payload:this.requireRecord(e.payload?.request,`agent.send request`)}),this.readGenerateObjectRequest=e=>({input:this.requireRecord(e.payload?.input,`generateObject input`)}),this.requireRecord=(e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} is required.`);return e},this.postResponse=(e,t)=>{e.iframe?.contentWindow?.postMessage(t,`*`)},this.toBridgeError=e=>e instanceof S?{code:e.code,message:e.message,details:e.details}:{message:e instanceof Error?e.message:String(e)},this.isBridgeRequest=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return t.type===`nextclaw:panel-app-service-actions:request`&&typeof t.requestId==`string`&&(t.method===`invoke`||t.method===`agent.send`||t.method===`agent.generateObject`||t.method===`list`||t.method===`requestGrant`||t.method===`revokeGrant`)}}};function qi(){return`service-action-auth-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}var Ji=s((e,t)=>({pending:null,requestAuthorization:async n=>await new Promise(r=>{t().pending?.resolve(!1),e({pending:{id:qi(),...n,resolve:r}})}),resolveAuthorization:n=>{let{pending:r}=t();r&&(r.resolve(n),e({pending:null}))}}));function Yi(){let e=Ji(e=>e.pending),t=Ji(e=>e.resolveAuthorization);return(0,V.jsx)(pe,{open:!!e,onOpenChange:e=>{e||t(!1)},children:(0,V.jsxs)(he,{className:`[&>:last-child]:hidden`,children:[(0,V.jsxs)(me,{children:[(0,V.jsxs)(ge,{className:`flex items-center gap-2`,children:[(0,V.jsx)(ti,{className:`h-4 w-4 text-amber-600`}),n(`serviceActionAuthorizationTitle`)]}),(0,V.jsx)(fe,{children:n(`serviceActionAuthorizationDescription`)})]}),e?(0,V.jsxs)(`div`,{className:`space-y-3 rounded-md border border-gray-100 bg-gray-50 p-3 text-sm`,children:[(0,V.jsx)(Zi,{label:n(`serviceActionAuthorizationSource`),value:e.panelAppId}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`div`,{className:`text-xs font-medium text-gray-500`,children:n(`serviceActionAuthorizationActions`)}),(0,V.jsx)(`div`,{className:`max-h-64 space-y-2 overflow-auto`,children:e.actions.map(e=>(0,V.jsx)(Xi,{action:e},e.actionId))})]}),e.inputPreview?(0,V.jsx)(Zi,{label:n(`serviceActionAuthorizationInput`),value:e.inputPreview}):null]}):null,(0,V.jsxs)(de,{className:`gap-2 sm:gap-0`,children:[(0,V.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:n(`serviceActionAuthorizationReject`)}),(0,V.jsx)(p,{type:`button`,onClick:()=>t(!0),children:n(`serviceActionAuthorizationAllow`)})]})]})})}function Xi({action:e}){return(0,V.jsxs)(`div`,{className:`space-y-1 rounded border border-gray-200 bg-white px-3 py-2`,children:[(0,V.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,V.jsx)(`div`,{className:`min-w-0 break-words text-xs font-medium text-gray-900`,children:e.actionTitle??e.actionId}),(0,V.jsx)(`div`,{className:`shrink-0 rounded bg-amber-50 px-1.5 py-0.5 text-[11px] font-medium text-amber-700`,children:e.risk??`dangerous`})]}),(0,V.jsx)(`div`,{className:`break-words text-[11px] text-gray-500`,children:e.actionId}),e.actionDescription?(0,V.jsx)(`div`,{className:`break-words text-xs text-gray-600`,children:e.actionDescription}):null]})}function Zi({label:e,value:t}){return(0,V.jsxs)(`div`,{className:`grid grid-cols-[5rem_minmax(0,1fr)] gap-3`,children:[(0,V.jsx)(`div`,{className:`text-xs font-medium text-gray-500`,children:e}),(0,V.jsx)(`div`,{className:`min-w-0 break-words text-xs text-gray-900`,children:t})]})}var Qi=class{constructor(){this.requestAuthorization=async e=>await Ji.getState().requestAuthorization(e)}},$i=[`service-apps`],ea=[`service-actions`],ta=[`service-action-grants`];function na(){return b({queryKey:$i,queryFn:()=>x.serviceApps.listServiceApps()})}function ra(){return b({queryKey:ea,queryFn:()=>x.serviceApps.listServiceActions()})}function ia(){return b({queryKey:ta,queryFn:()=>x.serviceApps.listServiceActionGrants()})}function aa(){let e=y();return u({mutationFn:e=>x.serviceApps.restartServiceApp(e),onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:$i}),e.invalidateQueries({queryKey:ea})])}})}function oa(){let e=y();return u({mutationFn:e=>x.serviceApps.deleteServiceApp(e),onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:$i}),e.invalidateQueries({queryKey:ea}),e.invalidateQueries({queryKey:ta})])}})}function sa(){let e=y();return u({mutationFn:e=>x.serviceApps.discoverServiceAppActions(e),onSuccess:async()=>{await e.invalidateQueries({queryKey:$i})}})}function ca(){let e=y();return u({mutationFn:e=>x.serviceApps.revokeServiceActionGrant(e),onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:ea}),e.invalidateQueries({queryKey:ta})])}})}function la({headerContent:e}){let t=na(),r=ra(),i=ia(),a=oa(),o=aa(),s=sa(),c=ca(),[l,u]=(0,k.useState)({}),d=()=>{t.refetch(),r.refetch(),i.refetch()};if(t.isLoading||r.isLoading||i.isLoading)return(0,V.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-gray-500`,children:n(`serviceAppsLoading`)});if(t.isError||r.isError||i.isError){let e=t.error??r.error??i.error;return(0,V.jsx)(`div`,{className:`p-4 text-sm text-rose-600`,children:e instanceof Error?e.message:n(`serviceAppsLoadFailed`)})}let f=t.data?.entries??[],p=r.data?.actions??[],m=i.data?.grants??[],h=e=>{s.mutateAsync(e).then(t=>{u(n=>({...n,[e]:t.actions}))})};return(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-white`,children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3`,children:[(0,V.jsx)(`div`,{className:`flex min-w-0 items-center gap-2`,children:e??(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(ei,{className:`h-4 w-4 text-primary`}),(0,V.jsx)(`div`,{className:`truncate text-sm font-semibold text-gray-900`,children:n(`serviceAppsTitle`)})]})}),(0,V.jsx)(Ce,{delayDuration:250,children:(0,V.jsx)(pa,{icon:Oe,label:n(`serviceAppsRefresh`),onClick:d})})]}),f.length===0?(0,V.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-6 text-center text-sm text-gray-500`,children:n(`serviceAppsEmpty`)}):(0,V.jsx)(`div`,{className:`custom-scrollbar min-h-0 flex-1 overflow-y-auto p-3`,children:(0,V.jsx)(`div`,{className:`space-y-3`,children:f.map(e=>(0,V.jsx)(ua,{app:e,actions:l[e.id]??p.filter(t=>t.appId===e.id),grants:m,deletePending:a.isPending,isDiscovering:s.isPending,onDiscover:h,onDelete:e=>void a.mutate(e),onRestart:e=>void o.mutate(e),onRevoke:e=>void c.mutate({actionId:e.actionId,caller:e.caller})},e.id))})})]})}function ua({app:e,actions:t,grants:r,deletePending:i,isDiscovering:a,onDiscover:o,onDelete:s,onRestart:c,onRevoke:l}){let[u,d]=(0,k.useState)(!1),[f,p]=(0,k.useState)(!1),m=e.status!==`starting`&&e.status!==`stopped`,h=e.status===`running`||e.status===`failed`,g=()=>{d(!1),p(!0)};return(0,V.jsx)(Ce,{delayDuration:250,children:(0,V.jsxs)(`section`,{className:`rounded-lg border border-gray-200 bg-white p-3`,children:[(0,V.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`div`,{className:`truncate text-sm font-semibold text-gray-900`,children:e.title}),(0,V.jsx)(da,{status:e.status})]}),e.description?(0,V.jsx)(`div`,{className:`mt-1 line-clamp-2 text-xs text-gray-500`,children:e.description}):null,e.lastError?(0,V.jsx)(`div`,{className:`mt-2 rounded bg-rose-50 px-2 py-1 text-xs text-rose-700`,children:e.lastError}):null]}),(0,V.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,V.jsx)(pa,{disabled:a||!m,icon:Qr,label:n(`serviceAppsDiscoverActions`),tooltip:n(`serviceAppsDiscoverActionsHint`),onClick:()=>o(e.id)}),(0,V.jsx)(pa,{disabled:!h,icon:oi,label:n(`serviceAppsDisconnectRuntime`),tooltip:n(`serviceAppsDisconnectRuntimeHint`),onClick:()=>c(e.id)}),(0,V.jsxs)(Pe,{open:u,onOpenChange:d,children:[(0,V.jsxs)(we,{children:[(0,V.jsx)(xe,{asChild:!0,children:(0,V.jsx)(Ne,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,className:`rounded-md p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-800 disabled:opacity-50`,"aria-label":n(`serviceAppsMoreActions`),disabled:i,children:(0,V.jsx)(Jr,{className:`h-3.5 w-3.5`})})})}),(0,V.jsx)(Se,{side:`bottom`,className:`text-xs`,children:n(`serviceAppsMoreActions`)})]}),(0,V.jsx)(Me,{align:`end`,className:`w-48 rounded-xl p-1.5`,children:(0,V.jsx)(ma,{destructive:!0,disabled:i,icon:ke,label:n(`serviceAppsDelete`),onClick:g})})]})]})]}),(0,V.jsx)(ha,{app:e}),(0,V.jsx)(`div`,{className:`mt-3 space-y-1`,children:t.map(e=>(0,V.jsx)(_a,{action:e,grants:r.filter(t=>t.actionId===e.id),onRevoke:l},e.id))}),(0,V.jsx)(_e,{open:f,onOpenChange:p,title:n(`serviceAppsDeleteConfirmTitle`),description:`${n(`serviceAppsDeleteConfirmDescription`)} ${e.title}`,confirmLabel:n(`delete`),variant:`destructive`,onConfirm:()=>s(e.id),onCancel:()=>void 0})]})})}function da({status:t}){let n=fa(t),r=n.icon;return(0,V.jsxs)(we,{children:[(0,V.jsx)(xe,{asChild:!0,children:(0,V.jsxs)(`span`,{className:e(`inline-flex shrink-0 items-center gap-1 rounded px-1.5 py-0.5 text-[11px] font-medium`,n.className),"aria-label":n.label,children:[(0,V.jsx)(r,{className:e(`h-3 w-3`,n.iconClassName)}),(0,V.jsx)(`span`,{children:n.label})]})}),(0,V.jsx)(Se,{side:`bottom`,className:`text-xs`,children:n.tooltip})]})}function fa(e){switch(e){case`running`:return{className:`bg-emerald-50 text-emerald-700`,icon:Wr,label:n(`serviceAppsStatus_running`),tooltip:n(`serviceAppsStatusHint_running`)};case`starting`:return{className:`bg-blue-50 text-blue-700`,icon:be,iconClassName:`animate-spin`,label:n(`serviceAppsStatus_starting`),tooltip:n(`serviceAppsStatusHint_starting`)};case`failed`:return{className:`bg-rose-50 text-rose-700`,icon:ai,label:n(`serviceAppsStatus_failed`),tooltip:n(`serviceAppsStatusHint_failed`)};case`stopped`:return{className:`bg-gray-100 text-gray-600`,icon:qr,label:n(`serviceAppsStatus_stopped`),tooltip:n(`serviceAppsStatusHint_stopped`)};default:return{className:`bg-slate-100 text-slate-600`,icon:Gr,label:n(`serviceAppsStatus_idle`),tooltip:n(`serviceAppsStatusHint_idle`)}}}function pa({disabled:e=!1,icon:t,label:n,tooltip:r=n,onClick:i}){return(0,V.jsxs)(we,{children:[(0,V.jsx)(xe,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,onClick:i,disabled:e,className:`rounded-md p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-800 disabled:cursor-not-allowed disabled:text-gray-300 disabled:opacity-60 disabled:hover:bg-transparent`,"aria-label":n,children:(0,V.jsx)(t,{className:`h-3.5 w-3.5`})})}),(0,V.jsx)(Se,{side:`bottom`,className:`max-w-56 text-xs`,children:r})]})}function ma({destructive:t=!1,disabled:n=!1,icon:r,label:i,onClick:a}){return(0,V.jsxs)(`button`,{type:`button`,className:e(`flex w-full items-center gap-2 rounded-lg px-2.5 py-2 text-left text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50`,t?`text-destructive hover:bg-destructive/10`:`text-gray-700 hover:bg-gray-100`),disabled:n,onClick:a,children:[(0,V.jsx)(r,{className:`h-4 w-4 shrink-0`}),(0,V.jsx)(`span`,{children:i})]})}function ha({app:e}){let t=[e.command,...e.args??[]].filter(e=>!!e?.trim()).join(` `),r=[{label:n(`serviceAppsCommand`),value:t},{label:n(`serviceAppsCwd`),value:e.cwd},{label:n(`serviceAppsManifest`),value:e.manifestPath},{label:n(`serviceAppsLastStarted`),value:e.lastStartedAt},{label:n(`serviceAppsLastReady`),value:e.lastReadyAt},{label:n(`serviceAppsLastFailed`),value:e.lastFailedAt}].filter(e=>e.value);return r.length===0?null:(0,V.jsx)(`dl`,{className:`mt-3 grid grid-cols-[4.5rem_minmax(0,1fr)] gap-x-2 gap-y-1 border-t border-gray-100 pt-2 text-[11px]`,children:r.map(e=>(0,V.jsx)(ga,{label:e.label,value:e.value},e.label))})}function ga({label:e,value:t}){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`dt`,{className:`text-gray-400`,children:e}),(0,V.jsx)(`dd`,{className:`min-w-0 truncate font-mono text-gray-500`,title:t,children:t})]})}function _a({action:e,grants:t,onRevoke:r}){return(0,V.jsxs)(`div`,{className:`rounded bg-gray-50 px-2 py-1.5`,children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(si,{className:`h-3.5 w-3.5 shrink-0 text-gray-400`}),(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`div`,{className:`truncate text-xs font-medium text-gray-800`,children:e.title??e.name}),e.description?(0,V.jsx)(`div`,{className:`truncate text-[11px] text-gray-500`,children:e.description}):null]})]}),(0,V.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[e.runtimeState?(0,V.jsx)(`span`,{className:`rounded bg-white px-1.5 py-0.5 text-[11px] text-gray-600`,children:n(`serviceAppsRuntimeState_${e.runtimeState}`)}):null,(0,V.jsx)(`span`,{className:`rounded bg-white px-1.5 py-0.5 text-[11px] text-gray-600`,children:e.risk})]})]}),t.map(e=>(0,V.jsxs)(`div`,{className:`mt-1 flex items-center justify-between gap-2 pl-5`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-[11px] text-gray-500`,children:[(0,V.jsx)(ni,{className:`h-3 w-3 shrink-0 text-emerald-500`}),(0,V.jsxs)(`span`,{className:`truncate`,children:[n(`serviceAppsGrantedTo`),` `,e.caller.appId]})]}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:`rounded-md p-1 text-gray-400 transition-colors hover:bg-white hover:text-rose-600`,title:n(`serviceAppsRevokeGrant`),"aria-label":n(`serviceAppsRevokeGrant`),children:(0,V.jsx)(ke,{className:`h-3 w-3`})})]},`${e.caller.surface}:${e.caller.appId}:${e.actionId}`))]})}function va({activeTab:e,onActiveTabChange:t,onOpenPanelApp:r}){let i=(0,V.jsx)(Ie,{value:e,onValueChange:e=>t(e),children:(0,V.jsxs)(Fe,{className:`grid h-auto w-[min(340px,100%)] grid-cols-2 rounded-lg bg-gray-100/70 p-0.5`,children:[(0,V.jsxs)(E,{value:`panel-apps`,className:`gap-1.5 px-2 py-1.5 text-xs`,children:[(0,V.jsx)(Hr,{className:`h-3.5 w-3.5`}),n(`panelAppsTitle`)]}),(0,V.jsxs)(E,{value:`service-apps`,className:`gap-1.5 px-2 py-1.5 text-xs`,children:[(0,V.jsx)(ei,{className:`h-3.5 w-3.5`}),n(`serviceAppsTitle`)]})]})});return(0,V.jsx)(`div`,{className:`h-full min-h-0 bg-white`,children:e===`panel-apps`?(0,V.jsx)(Gi,{headerContent:i,onOpenPanelApp:r}):(0,V.jsx)(la,{headerContent:i})})}function ya({onOpenApps:e,onRefresh:t}){return(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3.5 py-2 bg-white border-b border-gray-100 shrink-0`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:e,className:`inline-flex items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 hover:text-gray-900`,children:[(0,V.jsx)(ve,{className:`h-3.5 w-3.5`}),n(`appsTitle`)]}),(0,V.jsx)(`button`,{type:`button`,onClick:t,className:`rounded-md p-1.5 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-800`,title:n(`panelAppsRefreshCurrent`),"aria-label":n(`panelAppsRefreshCurrent`),children:(0,V.jsx)(Oe,{className:`h-3.5 w-3.5`})})]})}function ba(e){return e.split(`/`).map(e=>e.trim()).filter(e=>e.length>0)}function q(e){let t=e.trim();try{let e=new URL(t);return{authority:e.hostname,pathSegments:ba(e.pathname),pathname:e.pathname,raw:t,scheme:e.protocol.replace(/:$/,``).toLowerCase(),searchParams:e.searchParams}}catch{return{authority:``,pathSegments:ba(t),pathname:t,raw:t,scheme:``,searchParams:new URLSearchParams}}}var xa=class{constructor(e,t){this.routeDefinitions=e,this.options=t,this.resolve=e=>{let t=q(e);return this.findDefinition(t).resolve(t)},this.normalize=e=>this.options.getNormalizedUri(this.resolve(e)),this.areEquivalent=(e,t)=>this.findDefinition(q(e)).areEquivalent?.(e,t)??this.normalize(e)===this.normalize(t),this.findDefinition=e=>{let t=this.routeDefinitions.find(t=>t.match(e));if(!t)throw Error(`Unsupported resource URI: ${e.raw}`);return t}}},Sa=`home`,Ca=`nextclaw://new-tab`,wa=`apps`,J=`nextclaw://apps`,Ta=`${J}?tab=service-apps`,Ea=`panel-app`,Da=`panel-apps`;function Oa(e){return e===`panel-apps`||e===`service-apps`}function ka(e=Da){return e===Da?J:Ta}function Aa(e){try{let t=new URL(e).searchParams.get(`tab`);return Oa(t)?t:Da}catch{return Da}}function ja(e){return ka(Aa(e))}function Ma(e){return`nextclaw://panel-app/${encodeURIComponent(e)}`}function Na(e){return e.startsWith(`data:image/`)||e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`/`)}function Pa(e){let t=e.icon?.trim();if(t)return Na(t)?{type:`url`,url:t}:{type:`text`,value:t}}function Fa(e){return{dedupeKey:`panel-app:${e.id}`,dockIcon:Pa(e),historyPolicy:`managed`,kind:Ea,resourceUri:Ma(e.id),title:e.title,url:e.contentPath}}function Ia(e,t){return e===t||e.startsWith(`${t}?`)||e.startsWith(`${t}/`)}function La(e){let t=e.pathSegments.join(`/`);return ze(t?`/${t}`:`/`,`docs`)}function Ra(e){let t=e.filter(e=>e.trim().length>0).map(e=>encodeURIComponent(decodeURIComponent(e))).join(`/`);return t?`nextclaw://docs/${t}`:`nextclaw://docs`}function za(e){let t=O(e),n=t.startsWith(`/`)?t:(()=>{try{return new URL(e).pathname}catch{return``}})();return n?Ra(n.split(`/`)):`nextclaw://docs`}function Y(e){if(e.scheme===`nextclaw`&&e.authority===`panel-app`)return e.pathSegments[0]??``;let[t,n,r,i]=e.pathSegments;return t===`api`&&n===`panel-apps`&&r!==void 0&&r.length>0&&i===`content`?r:``}function Ba(e){return Y(e).length>0}function Va(e){let t=Y(e);return t?`/api/panel-apps/${encodeURIComponent(decodeURIComponent(t))}/content`:`nextclaw://panel-app`}function Ha(e){let t=Y(e);return t?`nextclaw://panel-app/${encodeURIComponent(decodeURIComponent(t))}`:`nextclaw://panel-app`}function Ua(e,t){let n=q(e),r=q(t),i=Y(n),a=Y(r);return i.length>0&&a.length>0?decodeURIComponent(i)===decodeURIComponent(a):e===t}var X=[{defaultUrl:()=>Ca,id:`home`,kind:Sa,match:e=>e.raw===Ca,resolve:()=>({historyPolicy:`managed`,kind:Sa,resourceUri:Ca,title:n(`docBrowserHomeTitle`),url:Ca}),areEquivalent:(e,t)=>e===t},{defaultUrl:Re,id:`docs-url`,kind:`docs`,match:e=>He(e.raw),resolve:e=>{let t=ze(e.raw,`docs`);return{historyPolicy:`managed`,kind:`docs`,resourceUri:za(t),title:n(`docBrowserHelp`),url:t}},areEquivalent:(e,t)=>O(e)===O(t)},{defaultUrl:Re,id:`nextclaw-docs`,kind:`docs`,match:e=>e.scheme===`nextclaw`&&e.authority===`docs`,resolve:e=>{let t=La(e);return{historyPolicy:`managed`,kind:`docs`,resourceUri:Ra(e.pathSegments),title:n(`docBrowserHelp`),url:t}},areEquivalent:(e,t)=>O(e)===O(t)},{defaultUrl:()=>J,id:`apps`,kind:wa,match:e=>Ia(e.raw,J),resolve:e=>{let t=ja(e.raw);return{dedupeKey:`apps`,historyPolicy:`managed`,kind:wa,resourceUri:t,title:n(t===`nextclaw://apps`?`appsTitle`:`serviceAppsTitle`),url:t}},areEquivalent:(e,t)=>ja(e)===ja(t)},{defaultUrl:()=>`nextclaw://panel-app`,id:`panel-app`,kind:Ea,match:e=>e.scheme===`nextclaw`&&e.authority===`panel-app`||Ba(e),resolve:e=>{let t=Va(e),r=Y(e);return{dedupeKey:r?`panel-app:${decodeURIComponent(r)}`:void 0,historyPolicy:`managed`,kind:Ea,resourceUri:Ha(e),title:n(`panelAppsTitle`),url:t}},areEquivalent:Ua},{defaultUrl:()=>`about:blank`,id:`content`,kind:`content`,match:()=>!0,resolve:e=>({historyPolicy:`managed`,kind:`content`,resourceUri:e.raw||`about:blank`,title:Ge(e.raw,`content`,`Detail`),url:e.raw||`about:blank`}),areEquivalent:(e,t)=>e===t}],Wa=X.map(e=>({areEquivalent:e.areEquivalent,id:e.id,match:e.match,resolve:e.resolve}));function Ga(){return[{id:`apps`,label:n(`appsTitle`),target:{type:`right-panel-resource`,uri:J}},{id:`service-apps`,label:n(`serviceAppsTitle`),target:{type:`right-panel-resource`,uri:Ta}},{id:`docs`,label:n(`docBrowserHelp`),target:{options:{newTab:!0},type:`right-panel-resource`,uri:Re()}},{id:`skill-marketplace`,label:n(`marketplaceSkillsPageTitle`),target:{path:`/marketplace/skills`,type:`app-route`}}]}var Ka={apps:{accentClassName:`bg-emerald-50 text-emerald-700`,hoverAccentClassName:`group-hover:bg-emerald-100`,icon:(0,V.jsx)(Te,{className:`h-5 w-5`})},"service-apps":{accentClassName:`bg-sky-50 text-sky-700`,hoverAccentClassName:`group-hover:bg-sky-100`,icon:(0,V.jsx)(Yr,{className:`h-5 w-5`})},docs:{accentClassName:`bg-amber-50 text-amber-700`,hoverAccentClassName:`group-hover:bg-amber-100`,icon:(0,V.jsx)(ye,{className:`h-5 w-5`})},"skill-marketplace":{accentClassName:`bg-rose-50 text-rose-700`,hoverAccentClassName:`group-hover:bg-rose-100`,icon:(0,V.jsx)(Ur,{className:`h-5 w-5`})}};function qa(e){return Ka[e.id]??{accentClassName:`bg-gray-50 text-gray-700`,hoverAccentClassName:`group-hover:bg-gray-100`,icon:(0,V.jsx)(Te,{className:`h-5 w-5`})}}function Ja({open:t}){let n=an(),r=Ga(),i=e=>{if(e.type===`app-route`){n(e.path);return}t(e.uri,e.options)};return(0,V.jsx)(`div`,{className:`h-full overflow-auto bg-background px-4 py-5`,children:(0,V.jsx)(`div`,{className:`mx-auto w-full max-w-[520px]`,children:(0,V.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fit,minmax(76px,1fr))] gap-x-2 gap-y-4`,children:r.map(t=>{let n=qa(t);return(0,V.jsxs)(`button`,{type:`button`,onClick:()=>i(t.target),className:`group flex min-h-[68px] flex-col items-center gap-1.5 rounded-md px-1.5 py-1.5 text-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,V.jsx)(`span`,{className:e(`flex h-10 w-10 shrink-0 items-center justify-center rounded-md transition-colors`,n.accentClassName,n.hoverAccentClassName),children:n.icon}),(0,V.jsx)(`span`,{className:`line-clamp-2 min-w-0 max-w-full text-xs font-medium leading-snug text-gray-700 transition-colors group-hover:text-gray-900`,children:t.label})]},t.id)})})})})}function Ya(e){return e&&He(e)?`docs`:`content`}var Xa=class{constructor(){this.resourceUriResolver=new xa(Wa,{getNormalizedUri:e=>e.resourceUri??e.url}),this.resolve=e=>this.resourceUriResolver.resolve(e),this.normalize=e=>this.resourceUriResolver.normalize(e),this.areEquivalent=(e,t)=>this.resourceUriResolver.areEquivalent(e,t),this.resolveOpenTarget=e=>{let{activeTab:t,kind:n,url:r}=e,i=this.resolveRouteDefinition(r,n,t),a=r?.trim()||(!n&&t&&t.kind!==`docs`?t.currentUrl:i.defaultUrl());return i.resolve(q(a))},this.areUrlsEquivalent=(e,t,n,r)=>n===r?this.resolveRouteDefinition(e,n).areEquivalent?.(e,t)??this.areEquivalent(e,t):!1,this.usesManagedHistory=e=>this.resolveRouteDefinition(e.currentUrl,e.kind).resolve(q(e.currentUrl)).historyPolicy===`managed`,this.resolveRouteDefinition=(e,t,n)=>{let r=t??(e?void 0:n?.kind),i=r?X.find(e=>e.kind===r):void 0;if(i)return i;let a=e?q(e):null,o=a?X.find(e=>e.match(a)):void 0;if(o)return o;let s=t??n?.kind??Ya(e);return X.find(e=>e.kind===s)??X[X.length-1]}}},Za=wa,Qa=Ea,$a=`panel-apps`,eo=[`allow-scripts`,`allow-forms`,`allow-modals`,`allow-popups`,`allow-popups-to-escape-sandbox`,`allow-downloads`,`allow-pointer-lock`,`allow-presentation`].join(` `);function to(e){return e===`panel-apps`||e===`service-apps`}function no(e=$a){return e===$a?J:Ta}function ro(e){try{let t=new URL(e).searchParams.get(`tab`);return to(t)?t:$a}catch{return $a}}function io(e){e.open(no(),{kind:Za,title:n(`appsTitle`),dedupeKey:`apps`})}var ao={[Sa]:{getTitle:()=>n(`docBrowserHomeTitle`),renderContent:({open:e})=>(0,V.jsx)(Ja,{open:e})},[Za]:{getTitle:()=>n(`appsTitle`),renderIcon:()=>(0,V.jsx)(Te,{className:`w-4 h-4 text-primary shrink-0`}),renderContent:({currentUrl:e,open:t,openTarget:r})=>(0,V.jsx)(va,{activeTab:ro(e),onActiveTabChange:e=>t(no(e),{activate:!1,kind:Za,title:n(`appsTitle`),dedupeKey:`apps`}),onOpenPanelApp:e=>r(Fa(e))})},[Qa]:{getIframeSandbox:()=>eo,getTitle:e=>e.title||n(`panelAppsTitle`),onIframeMessage:e=>Xo().panelAppBridgeManager.handleIframeMessage(e),renderIcon:()=>(0,V.jsx)(Hr,{className:`w-4 h-4 text-primary shrink-0`}),renderToolbar:({open:e,refreshIframe:t})=>(0,V.jsx)(ya,{onOpenApps:()=>io({open:e}),onRefresh:t})}},oo=`nextclaw://docs`;function so(){return[{builtIn:!0,icon:{type:`builtin`,name:`apps`},id:`apps`,label:n(`appsTitle`),removable:!1,target:{type:`right-panel-resource`,uri:J}},{builtIn:!0,icon:{type:`builtin`,name:`service-apps`},id:`service-apps`,label:n(`serviceAppsTitle`),removable:!1,target:{type:`right-panel-resource`,uri:Ta}},{builtIn:!0,icon:{type:`builtin`,name:`docs`},id:`docs`,label:n(`docBrowserHelp`),removable:!1,target:{type:`right-panel-resource`,uri:oo}},{builtIn:!0,icon:{type:`builtin`,name:`new-tab`},id:`new-tab`,label:n(`docBrowserHomeTitle`),removable:!1,target:{type:`right-panel-resource`,uri:Ca}}]}var co=[`apps`,`docs`,`new-tab`,`panel-app`,`service-apps`];function lo(e){return!!e&&typeof e==`object`}function uo(e){return co.includes(e)}function fo(e){return!lo(e)||typeof e.type!=`string`?null:e.type===`builtin`&&uo(e.name)?{type:`builtin`,name:e.name}:e.type===`url`&&typeof e.url==`string`&&e.url.trim().length>0?{type:`url`,url:e.url.trim()}:e.type===`text`&&typeof e.value==`string`&&e.value.trim().length>0?{type:`text`,value:e.value.trim()}:null}function po(e){if(!lo(e)||typeof e.id!=`string`||e.id.trim().length===0||typeof e.label!=`string`||e.label.trim().length===0||typeof e.createdAt!=`string`||e.createdAt.trim().length===0||!lo(e.target)||e.target.type!==`right-panel-resource`||typeof e.target.uri!=`string`||e.target.uri.trim().length===0)return null;let t=fo(e.icon);return t?{createdAt:e.createdAt,icon:t,id:e.id.trim(),label:e.label.trim(),target:{type:`right-panel-resource`,uri:e.target.uri.trim()}}:null}function mo(e){if(!Array.isArray(e))return[];let t=new Map;return e.forEach(e=>{let n=po(e);n&&t.set(n.id,n)}),Array.from(t.values())}function ho(e,t){return{createdAt:t,icon:e.icon,id:e.id,label:e.label,target:e.target}}function go(e){return{builtIn:!1,icon:e.icon,id:e.id,label:e.label,removable:!0,target:e.target}}function _o(e,t){let n=new Set(e.map(e=>e.id)),r=new Set(e.map(e=>e.target.uri)),i=t.filter(e=>!n.has(e.id)&&!r.has(e.target.uri)).map(go);return[...e,...i]}var vo=`nextclaw.side-dock.state`,yo=1;function bo(e){return!!e&&typeof e==`object`}var xo=s()(Le(e=>({pinnedItems:[],setPinnedItems:t=>e({pinnedItems:mo(t)})}),{name:vo,version:yo,storage:qe(()=>window.localStorage),partialize:e=>({pinnedItems:e.pinnedItems}),merge:(e,t)=>{let n=bo(e)?mo(e.pinnedItems):[];return{...t,pinnedItems:n}}})),So={apps:Te,docs:ye,"new-tab":De,"panel-app":Hr,"service-apps":Hr};function Co({icon:e}){if(e.type===`url`)return(0,V.jsx)(`img`,{src:e.url,alt:``,className:`h-5 w-5 rounded object-cover`});if(e.type===`text`)return(0,V.jsx)(`span`,{className:`max-w-7 truncate text-center text-[13px] font-semibold leading-none`,"aria-hidden":`true`,children:e.value});let t=So[e.name];return(0,V.jsx)(t,{className:`h-5 w-5`,"aria-hidden":`true`})}function wo({active:t,item:r,onOpen:i,onUnpin:a}){let{label:o}=r;return(0,V.jsxs)(we,{children:[(0,V.jsxs)(`div`,{className:`group relative`,children:[(0,V.jsx)(xe,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,"aria-label":o,title:o,"data-side-dock-item-id":r.id,onClick:()=>i(r),className:e(`flex h-10 w-10 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors`,`hover:bg-primary/10 hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,t?`bg-primary/10 text-primary`:`bg-transparent`),children:(0,V.jsx)(Co,{icon:r.icon})})}),r.removable?(0,V.jsx)(`button`,{type:`button`,"aria-label":n(`sideDockUnpinItem`),title:n(`sideDockUnpinItem`),onClick:e=>{e.stopPropagation(),a(r)},className:`absolute -right-1 -top-1 hidden h-4 w-4 items-center justify-center rounded-full bg-background text-muted-foreground shadow-sm ring-1 ring-border/70 transition-colors hover:bg-muted hover:text-foreground group-hover:flex focus-visible:flex focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,V.jsx)(Ae,{className:`h-3 w-3`,"aria-hidden":`true`})}):null]}),(0,V.jsx)(Se,{side:`left`,children:o})]})}function Z(e){return e?.trim()??``}function To(e,t,n,r=!1){if(!t||!n)return!1;let i=Z(e.target.uri),a=Z(n.resourceUri);return a&&a===i||Z(n.currentUrl)===i?!0:r?!1:e.id===`docs`&&n.kind===`docs`}function Eo(e,t){if(!t)return!1;let n=Z(t.resourceUri),r=Z(t.currentUrl);return e.some(e=>{let t=Z(e.target.uri);return t===n||t===r})}function Do({manager:e}){let t=xo(e=>e.pinnedItems),{currentTab:n,isOpen:r}=Ue(),i=_o(so(),t),a=Eo(i,n);return(0,V.jsx)(Ce,{delayDuration:250,children:(0,V.jsx)(`aside`,{"data-testid":`side-dock`,className:`z-30 flex h-full w-14 shrink-0 flex-col items-center gap-1 border-l border-border/60 bg-background/95 px-2 py-3`,children:i.map(t=>(0,V.jsx)(wo,{active:To(t,r,n,a),item:t,onOpen:e.openItem,onUnpin:t=>e.unpinItem(t.id)},t.id))})})}var Oo=`pinned`,ko=new Set([`apps`,`docs`,`new-tab`,`panel-app`,`service-apps`]);function Q(e){return e.trim()}function Ao(e){let t=0;return Array.from(Q(e)).forEach(e=>{t=t*31+e.charCodeAt(0)>>>0}),`${Oo}-${Q(e).replace(/[^a-zA-Z0-9]+/g,`-`).replace(/^-+|-+$/g,``).toLowerCase()||`resource`}-${t.toString(36)}`}function jo(e){return e?.type===`builtin`&&ko.has(e.name)?{type:`builtin`,name:e.name}:e?.type===`url`&&e.url.trim().length>0?{type:`url`,url:e.url.trim()}:e?.type===`text`&&e.value.trim().length>0?{type:`text`,value:e.value.trim()}:null}function Mo(e){return e.kind===`docs`?`docs`:e.kind===`home`?`new-tab`:e.kind===`apps`?e.resourceUri?.includes(`service-apps`)?`service-apps`:`apps`:e.kind===`panel-app`?`panel-app`:`apps`}var No=class{constructor(e){this.docBrowserManager=e,this.getItems=()=>_o(so(),xo.getState().pinnedItems),this.openItem=e=>{e.target.type===`right-panel-resource`&&this.docBrowserManager.open(e.target.uri,{dockIcon:e.icon,title:e.label})},this.getDockState=e=>{let t=this.getTabResourceUri(e);if(!t)return{canDock:!1,isDocked:!1,removable:!1};let n=this.findItemByUri(t);return{canDock:!0,isDocked:!!n,removable:n?.removable===!0}},this.pinTab=(e,t=new Date().toISOString())=>{let n=this.getTabResourceUri(e);!e||!n||this.findItemByUri(n)||this.pinItem({builtIn:!1,icon:jo(e.dockIcon)??{type:`builtin`,name:Mo(e)},id:Ao(n),label:e.title.trim()||n,removable:!0,target:{type:`right-panel-resource`,uri:n}},t)},this.unpinTab=e=>{let t=this.getTabResourceUri(e),n=t?this.findItemByUri(t):void 0;n?.removable&&this.unpinItem(n.id)},this.pinItem=(e,t=new Date().toISOString())=>{if(!e.removable)return;let n=Q(e.target.uri);this.setPinnedItems(r=>r.some(t=>t.id===e.id||Q(t.target.uri)===n)?r:[...r,ho({...e,target:{...e.target,uri:n}},t)])},this.unpinItem=e=>{this.setPinnedItems(t=>t.filter(t=>t.id!==e))},this.reorderPinnedItems=e=>{this.setPinnedItems(t=>{let n=new Map(t.map(e=>[e.id,e])),r=e.map(e=>n.get(e)).filter(e=>e!==void 0),i=new Set(r.map(e=>e.id)),a=t.filter(e=>!i.has(e.id));return[...r,...a]})},this.setPinnedItems=e=>{let{pinnedItems:t,setPinnedItems:n}=xo.getState();n(e(t))},this.getTabResourceUri=e=>{let t=e?.resourceUri??e?.currentUrl,n=t?Q(t):``;return n.length>0?n:null},this.findItemByUri=e=>{let t=Q(e);return this.getItems().find(e=>Q(e.target.uri)===t)}}},Po=new class{constructor(){this.resolveOpenTarget=e=>{let{activeTab:t,kind:r,url:i}=e,a=r??(i?void 0:t?.kind)??(i&&He(i)?`docs`:`home`),o=i?.trim()||(!r&&t&&t.kind!==`docs`?t.currentUrl:a===`home`?`nextclaw://new-tab`:a===`docs`?Re():`about:blank`),s=a===`docs`?ze(o,`docs`):o;return{historyPolicy:`managed`,kind:a,title:a===`home`?n(`docBrowserHomeTitle`):Ge(s,a,a===`docs`?n(`docBrowserHelp`):`Detail`),url:s}},this.areUrlsEquivalent=(e,t,n,r)=>n===r?n===`docs`?O(e)===O(t):e===t:!1,this.usesManagedHistory=e=>e.currentUrl!==Ve}};function Fo(e,t,n){return{...e,tabs:e.tabs.map(e=>e.id===t?n(e):e)}}function Io(e,t){return Fo(e,e.activeTabId,t)}function Lo(e,t){let n=[...e.history.slice(0,e.historyIndex+1),t];return{history:n,historyIndex:n.length-1}}function Ro(e,t,n){let r=t.resourceUri??t.url,i=n.resourceUri??n.url;return t.tabId===n.tabId&&t.kind===n.kind&&e.areUrlsEquivalent(r,i,t.kind,n.kind)}function zo(e,t){return{kind:t.kind,resourceUri:t.resourceUri??t.url,tabId:e,url:t.url}}function $(e,t,n){let r=t.activeHistory[t.activeHistoryIndex];if(r&&Ro(e,r,n))return t;let i=[...t.activeHistory.slice(0,t.activeHistoryIndex+1),n];return{...t,activeHistory:i,activeHistoryIndex:i.length-1}}function Bo(e,t,n){for(let r=t.history.length-1;r>=0;--r)if(e.areUrlsEquivalent(t.history[r],n,t.kind,t.kind))return r;return-1}function Vo(e,t,n){let r=t.tabs.find(e=>e.id===n.tabId);if(!r)return t;let i=n.resourceUri??n.url,a=e.resolveOpenTarget({activeTab:r,kind:n.kind,url:i}),o=Bo(e,r,a.url),s=n.resourceUri!==void 0&&n.resourceUri===r.resourceUri;return Fo({...t,activeTabId:r.id,isOpen:!0},r.id,e=>({...e,currentUrl:a.url,dedupeKey:a.dedupeKey,dockIcon:a.dockIcon??e.dockIcon,historyIndex:o>=0?o:e.historyIndex,kind:a.kind,resourceUri:a.resourceUri??a.url,title:s?e.title:a.title}))}function Ho(e,t,n,r,i){let a={...t,title:r?.title||n.title||t.title,kind:n.kind,resourceUri:n.resourceUri??n.url,dockIcon:r?.dockIcon??n.dockIcon,dedupeKey:i};return e.areUrlsEquivalent(t.currentUrl,n.url,t.kind,n.kind)?a:{...a,currentUrl:n.url,...Lo(t,n.url),navVersion:t.navVersion+1}}function Uo(e,t){return!e.isOpen&&e.tabs.length===1&&t?.kind===`home`&&t.currentUrl===`nextclaw://new-tab`}function Wo(e,t,n,r){let{activate:i,dedupeKey:a,newTab:o,title:s}=r??{},c=a?.trim()||n.dedupeKey,l=t.tabs.find(e=>e.id===t.activeTabId)??t.tabs[0],u=c?t.tabs.find(e=>e.dedupeKey===c):void 0;if(u){let a=Fo(t,u.id,t=>Ho(e,t,n,r,c)),o=i!==!1,s=o?u.id:t.activeTabId,l={...a,activeTabId:s,isOpen:!0};return o||u.id===t.activeTabId?$(e,l,zo(u.id,n)):l}if(o||c||!l||l.kind!==n.kind){let i=We(n.url,n.kind,s??n.title,c,n.resourceUri??n.url,r?.dockIcon??n.dockIcon);return Uo(t,l)?{...t,isOpen:!0,tabs:[i],activeTabId:i.id,activeHistory:[D(i)],activeHistoryIndex:0}:$(e,{...t,isOpen:!0,tabs:[...t.tabs,i],activeTabId:i.id},D(i))}return $(e,{...Io(t,t=>Ho(e,t,n,r,c)),isOpen:!0},zo(t.activeTabId,n))}function Go(e,t,n,r){let i=t.tabs.find(e=>e.id===t.activeTabId)??t.tabs[0];return Wo(e,t,e.resolveOpenTarget({activeTab:i,kind:r?.kind,url:n}),r)}var Ko=class{constructor(e=Po){this.routeResolver=e,this.setSnapshot=e=>{Ke.getState().setSnapshot(e)},this.open=(e,t)=>{this.setSnapshot(n=>Go(this.routeResolver,n,e,t))},this.openTarget=(e,t)=>{this.setSnapshot(n=>Wo(this.routeResolver,n,e,{...t,dedupeKey:t?.dedupeKey??e.dedupeKey,kind:t?.kind??e.kind,title:t?.title??e.title}))},this.openNewTab=()=>{this.open(void 0,{kind:Je,newTab:!0})},this.close=()=>{this.setSnapshot(e=>({...e,isOpen:!1}))},this.toggleMode=()=>{this.setSnapshot(e=>({...e,mode:e.mode===`floating`?`docked`:`floating`}))},this.navigate=e=>{this.setSnapshot(t=>{if(!t.tabs.length){let e=We(Re(),`docs`,`Docs`);return{...t,tabs:[e],activeTabId:e.id,isOpen:!0}}let n=Io(t,t=>{if(!this.routeResolver.usesManagedHistory(t))return t;let n=this.routeResolver.resolveOpenTarget({activeTab:t,url:e});return this.routeResolver.areUrlsEquivalent(t.currentUrl,n.url,t.kind,n.kind)?t:{...t,currentUrl:n.url,dedupeKey:n.dedupeKey,dockIcon:n.dockIcon,...Lo(t,n.url),kind:n.kind,navVersion:t.navVersion+1,resourceUri:n.resourceUri??n.url,title:n.title}}),r=n.tabs.find(e=>e.id===n.activeTabId);return r?$(this.routeResolver,n,D(r)):n})},this.syncUrl=e=>{this.setSnapshot(t=>{if(!t.tabs.length){let e=We(Re(),`docs`,`Docs`);return{...t,tabs:[e],activeTabId:e.id}}let n=Io(t,t=>{if(!this.routeResolver.usesManagedHistory(t))return t;let n=this.routeResolver.resolveOpenTarget({activeTab:t,kind:t.kind,url:e});return this.routeResolver.areUrlsEquivalent(t.currentUrl,n.url,t.kind,n.kind)?t:{...t,currentUrl:n.url,dedupeKey:n.dedupeKey,dockIcon:n.dockIcon,...Lo(t,n.url),kind:n.kind,resourceUri:n.resourceUri??n.url,title:n.title}}),r=n.tabs.find(e=>e.id===n.activeTabId);return r?$(this.routeResolver,n,D(r)):n})},this.goBack=()=>{this.setSnapshot(e=>{if(e.activeHistoryIndex<=0)return e;let t=e.activeHistoryIndex-1,n=e.activeHistory[t];return n?Vo(this.routeResolver,{...e,activeHistoryIndex:t},n):e})},this.goForward=()=>{this.setSnapshot(e=>{if(e.activeHistoryIndex>=e.activeHistory.length-1)return e;let t=e.activeHistoryIndex+1,n=e.activeHistory[t];return n?Vo(this.routeResolver,{...e,activeHistoryIndex:t},n):e})},this.closeTab=e=>{this.setSnapshot(t=>{if(t.tabs.length<=1)return{...Be(),isOpen:!1};let n=t.tabs.findIndex(t=>t.id===e);if(n<0)return t;let r=t.tabs.filter(t=>t.id!==e),i=t.activeTabId===e?r[Math.max(0,n-1)]?.id??r[0].id:t.activeTabId,a={...t,tabs:r,activeTabId:i},o=a.activeHistory.filter(t=>t.tabId!==e),s=a.activeHistory.slice(0,a.activeHistoryIndex+1).filter(t=>t.tabId!==e),c=r.find(e=>e.id===i)??r[0],l={...a,activeHistory:o.length>0?o:[D(c)],activeHistoryIndex:Math.min(Math.max(0,s.length-1),Math.max(0,o.length-1))};return t.activeTabId===e?$(this.routeResolver,l,D(c)):l})},this.setActiveTab=e=>{this.setSnapshot(t=>{if(!t.tabs.some(t=>t.id===e))return t;let n=t.tabs.find(t=>t.id===e);return n?$(this.routeResolver,{...t,activeTabId:e,isOpen:!0},D(n)):t})}}},qo=class{constructor(){this.accountManager=new Di,this.rightPanelResourceRouteResolver=new Xa,this.docBrowserManager=new Ko(this.rightPanelResourceRouteResolver),this.sideDockManager=new No(this.docBrowserManager),this.serviceActionAuthorizationManager=new Qi,this.panelAppBridgeManager=new Ki(this.serviceActionAuthorizationManager),this.remoteAccessManager=new gi({accountManager:this.accountManager})}},Jo=null;function Yo(){return Jo??=new qo,Jo}function Xo(){return Yo()}var Zo=(0,k.createContext)(null);function Qo({children:e}){let t=(0,k.useMemo)(()=>Yo(),[]);return(0,V.jsx)(Zo.Provider,{value:t,children:e})}function $o(){let e=(0,k.useContext)(Zo);if(!e)throw Error(`useAppPresenter must be used inside AppPresenterProvider`);return e}export{wr as A,ai as C,Wr as D,Jr as E,Fn as F,B as I,an as L,Tr as M,Mn as N,Ur as O,Nn as P,sn as R,si as S,$r as T,W as _,xo as a,li as b,Yi as c,xi as d,bi as f,U as g,ui as h,Do as i,jn as j,xr as k,Ei as l,G as m,$o as n,ao as o,gi as p,Xo as r,io as s,Qo as t,Ti as u,pi as v,ni as w,ci as x,hi as y,Qe as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./dist-WjhKB-pc.js";var t=e(`ArrowLeft`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./doc-browser-8EEDwGCJ.js";export{e as DocBrowser};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:hsl(var(--gray-200))}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50:94 20% 95%;--brand-100:94 20% 90%;--brand-200:94 18% 80%;--brand-300:94 16% 65%;--brand-400:94 16% 50%;--brand-500:94 13% 37%;--brand-600:94 13% 30%;--brand-700:94 15% 25%;--brand-800:94 20% 18%;--brand-900:94 25% 12%;--gray-50:45 25% 97%;--gray-100:45 14% 94%;--gray-200:45 14% 88%;--gray-300:45 10% 80%;--gray-400:45 10% 60%;--gray-500:45 10% 50%;--gray-600:45 3% 39%;--gray-700:45 5% 25%;--gray-800:45 5% 20%;--gray-900:45 5% 12%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--primary-foreground:0 0% 100%;--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:var(--brand-50);--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--destructive:0 84% 60%;--destructive-foreground:0 0% 98%;--success:142 76% 36%;--success-foreground:0 0% 100%;--warning:38 92% 50%;--warning-foreground:0 0% 100%;--card:0 0% 100%;--card-foreground:var(--gray-800);--card-border:var(--gray-200);--popover:0 0% 100%;--popover-foreground:var(--gray-800);--border:var(--gray-200);--border-hover:var(--gray-300);--border-active:var(--brand-500);--input:0 0% 100%;--input-border:var(--gray-200);--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-3xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #1e140a0a;--shadow-sm:0 1px 3px 0 #1e140a0f, 0 1px 2px -1px #1e140a0a;--shadow-md:0 4px 6px -1px #1e140a0f, 0 2px 4px -2px #1e140a0a;--shadow-lg:0 10px 15px -3px #1e140a0f, 0 4px 6px -4px #1e140a0a;--shadow-xl:0 20px 25px -5px #1e140a14, 0 8px 10px -6px #1e140a0a;--shadow-2xl:0 25px 50px -12px #1e140a26;--shadow-card:0 0 8px 0 #0000000a;--shadow-card-hover:0 0 16px 0 #0000000f;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:48px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--tracking-tight:-.025em;--tracking-normal:0;--tracking-wide:.025em;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700}:root[data-theme=cool]{--brand-50:214 100% 97%;--brand-100:214 95% 93%;--brand-200:213 97% 87%;--brand-300:212 96% 78%;--brand-400:213 94% 68%;--brand-500:217 91% 60%;--brand-600:221 83% 53%;--brand-700:224 76% 48%;--brand-800:226 71% 40%;--brand-900:224 64% 33%;--gray-50:210 20% 98%;--gray-100:220 14% 96%;--gray-200:220 13% 91%;--gray-300:216 12% 84%;--gray-400:218 11% 65%;--gray-500:220 9% 46%;--gray-600:215 14% 34%;--gray-700:217 19% 27%;--gray-800:220 26% 18%;--gray-900:224 39% 11%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:var(--brand-50);--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:0 0% 100%;--card-foreground:var(--gray-800);--card-border:var(--gray-200);--popover:0 0% 100%;--popover-foreground:var(--gray-800);--border:var(--gray-200);--border-hover:var(--gray-300);--border-active:var(--brand-500);--input:0 0% 100%;--input-border:var(--gray-200);--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-sm:0 1px 3px 0 #0f172a0f, 0 1px 2px -1px #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a0f, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 10px 15px -3px #0f172a0f, 0 4px 6px -4px #0f172a0a;--shadow-xl:0 20px 25px -5px #0f172a14, 0 8px 10px -6px #0f172a0a;--shadow-2xl:0 25px 50px -12px #0f172a24}:root{--radius:.75rem}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);overflow:hidden}*{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300)) transparent}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-\[10px\]{inset:10px}.inset-\[7px\]{inset:7px}.inset-y-0{top:0;bottom:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-5{bottom:1.25rem}.bottom-full{bottom:100%}.left-0{left:0}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.right-5{right:1.25rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-5{top:1.25rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[70\]{z-index:70}.z-\[9999\]{z-index:9999}.z-\[var\(--z-popover\,50\)\]{z-index:var(--z-popover,50)}.z-\[var\(--z-tooltip\)\]{z-index:var(--z-tooltip)}.-m-32{margin:-8rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-\[2px\]{margin-left:2px;margin-right:2px}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-\[1px\]{margin-top:1px}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-0{height:0}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-36{height:9rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.125rem\]{height:1.125rem}.h-\[100dvh\]{height:100dvh}.h-\[100svh\]{height:100svh}.h-\[112px\]{height:112px}.h-\[17px\]{height:17px}.h-\[180px\]{height:180px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[2px\]{height:2px}.h-\[400px\]{height:400px}.h-\[500px\]{height:500px}.h-\[52px\]{height:52px}.h-\[55\%\]{height:55%}.h-\[84px\]{height:84px}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[calc\(env\(safe-area-inset-top\,0px\)\+2\.75rem\)\]{height:calc(env(safe-area-inset-top,0px) + 2.75rem)}.h-\[var\(--desktop-titlebar-height\)\]{height:var(--desktop-titlebar-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[188px\]{max-height:188px}.max-h-\[24rem\]{max-height:24rem}.max-h-\[26rem\]{max-height:26rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[320px\]{max-height:320px}.max-h-\[85vh\]{max-height:85vh}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-12{min-height:3rem}.min-h-20{min-height:5rem}.min-h-28{min-height:7rem}.min-h-32{min-height:8rem}.min-h-7{min-height:1.75rem}.min-h-\[120px\]{min-height:120px}.min-h-\[166px\]{min-height:166px}.min-h-\[2\.75rem\]{min-height:2.75rem}.min-h-\[2\.875rem\]{min-height:2.875rem}.min-h-\[220px\]{min-height:220px}.min-h-\[240px\]{min-height:240px}.min-h-\[280px\]{min-height:280px}.min-h-\[42px\]{min-height:42px}.min-h-\[60px\]{min-height:60px}.min-h-\[68px\]{min-height:68px}.min-h-\[74px\]{min-height:74px}.min-h-\[84px\]{min-height:84px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[1\.125rem\]{width:1.125rem}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[17px\]{width:17px}.w-\[180px\]{width:180px}.w-\[18px\]{width:18px}.w-\[220px\]{width:220px}.w-\[240px\]{width:240px}.w-\[260px\]{width:260px}.w-\[280px\]{width:280px}.w-\[290px\]{width:290px}.w-\[360px\]{width:360px}.w-\[400px\]{width:400px}.w-\[42rem\]{width:42rem}.w-\[46px\]{width:46px}.w-\[500px\]{width:500px}.w-\[55\%\]{width:55%}.w-\[min\(18rem\,calc\(100vw-1rem\)\)\]{width:min(18rem,100vw - 1rem)}.w-\[min\(32rem\,calc\(100vw-1\.5rem\)\)\]{width:min(32rem,100vw - 1.5rem)}.w-\[min\(340px\,100\%\)\]{width:min(340px,100%)}.w-\[min\(420px\,calc\(100vw-2rem\)\)\]{width:min(420px,100vw - 2rem)}.w-\[var\(--desktop-caption-safe-right\)\]{width:var(--desktop-caption-safe-right)}.w-\[var\(--desktop-sidebar-width\)\]{width:var(--desktop-sidebar-width)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-14{min-width:3.5rem}.min-w-5{min-width:1.25rem}.min-w-\[100px\]{min-width:100px}.min-w-\[12rem\]{min-width:12rem}.min-w-\[180px\]{min-width:180px}.min-w-\[18px\]{min-width:18px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[56px\]{min-width:56px}.min-w-\[7rem\]{min-width:7rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-56{max-width:14rem}.max-w-6{max-width:1.5rem}.max-w-6xl{max-width:72rem}.max-w-7{max-width:1.75rem}.max-w-\[112px\]{max-width:112px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[140px\]{max-width:140px}.max-w-\[180px\]{max-width:180px}.max-w-\[18rem\]{max-width:18rem}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[260px\]{max-width:260px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[420px\]{max-width:420px}.max-w-\[500px\]{max-width:500px}.max-w-\[520px\]{max-width:520px}.max-w-\[62\%\]{max-width:62%}.max-w-\[70\%\]{max-width:70%}.max-w-\[78\%\]{max-width:78%}.max-w-\[88\%\]{max-width:88%}.max-w-\[92\%\]{max-width:92%}.max-w-\[92px\]{max-width:92px}.max-w-\[96px\]{max-width:96px}.max-w-\[calc\(100vw-1\.5rem\)\]{max-width:calc(100vw - 1.5rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(100\%\,17rem\)\]{max-width:min(100%,17rem)}.max-w-\[min\(1120px\,100\%\)\]{max-width:min(1120px,100%)}.max-w-\[min\(1180px\,100\%\)\]{max-width:min(1180px,100%)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.basis-\[12rem\]{flex-basis:12rem}.basis-\[240px\]{flex-basis:240px}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-45deg\]{--tw-rotate:-45deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x:1.5;--tw-scale-y:1.5;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-bounce{animation:1s infinite bounce}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-se-resize{cursor:se-resize}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.auto-rows-\[104px\]{grid-auto-rows:104px}.auto-rows-\[166px\]{grid-auto-rows:166px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[4\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:4.5rem minmax(0,1fr)}.grid-cols-\[5rem_minmax\(0\,1fr\)\]{grid-template-columns:5rem minmax(0,1fr)}.grid-cols-\[minmax\(220px\,300px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(220px,300px) minmax(0,1fr)}.grid-cols-\[repeat\(auto-fill\,minmax\(240px\,320px\)\)\]{grid-template-columns:repeat(auto-fill,minmax(240px,320px))}.grid-cols-\[repeat\(auto-fit\,minmax\(76px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(min\(100\%\,9\.5rem\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[22px\]{gap:22px}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-1{row-gap:.25rem}.gap-y-4{row-gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-3xl{border-radius:1.5rem}.rounded-\[1\.25rem\]{border-radius:1.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[1rem\]{border-radius:1rem}.rounded-\[26px\]{border-radius:26px}.rounded-\[28px\]{border-radius:28px}.rounded-\[2px\]{border-radius:2px}.rounded-\[30px\]{border-radius:30px}.rounded-\[32px\]{border-radius:32px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#d9dce3\]{--tw-border-opacity:1;border-color:rgb(217 220 227/var(--tw-border-opacity,1))}.border-\[\#dde0ea\]{--tw-border-opacity:1;border-color:rgb(221 224 234/var(--tw-border-opacity,1))}.border-\[\#eee3d1\]{--tw-border-opacity:1;border-color:rgb(238 227 209/var(--tw-border-opacity,1))}.border-\[\#f0e2c8\]{--tw-border-opacity:1;border-color:rgb(240 226 200/var(--tw-border-opacity,1))}.border-\[\#f1e7d4\]{--tw-border-opacity:1;border-color:rgb(241 231 212/var(--tw-border-opacity,1))}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-amber-200\/15{border-color:#fde68a26}.border-amber-200\/20{border-color:#fde68a33}.border-amber-200\/50{border-color:#fde68a80}.border-amber-200\/70{border-color:#fde68ab3}.border-amber-200\/80{border-color:#fde68acc}.border-amber-600{--tw-border-opacity:1;border-color:rgb(217 119 6/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-200\/80{border-color:#bfdbfecc}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-cyan-200\/80{border-color:#a5f3fccc}.border-cyan-600{--tw-border-opacity:1;border-color:rgb(8 145 178/var(--tw-border-opacity,1))}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-emerald-200\/35{border-color:#a7f3d059}.border-emerald-200\/70{border-color:#a7f3d0b3}.border-emerald-200\/80{border-color:#a7f3d0cc}.border-emerald-600{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity,1))}.border-fuchsia-200\/80{border-color:#f5d0fecc}.border-gray-100{border-color:hsl(var(--gray-100))}.border-gray-200{border-color:hsl(var(--gray-200))}.border-gray-200\/40{border-color:hsl(var(--gray-200) / .4)}.border-gray-200\/50{border-color:hsl(var(--gray-200) / .5)}.border-gray-200\/60{border-color:hsl(var(--gray-200) / .6)}.border-gray-200\/70{border-color:hsl(var(--gray-200) / .7)}.border-gray-200\/80{border-color:hsl(var(--gray-200) / .8)}.border-gray-300{border-color:hsl(var(--gray-300))}.border-gray-400{border-color:hsl(var(--gray-400))}.border-lime-200\/80{border-color:#d9f99dcc}.border-orange-200\/80{border-color:#fed7aacc}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/25{border-color:hsl(var(--primary) / .25)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/var(--tw-border-opacity,1))}.border-red-100\/80{border-color:#fee2e2cc}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-200\/80{border-color:#fecacacc}.border-rose-200{--tw-border-opacity:1;border-color:rgb(254 205 211/var(--tw-border-opacity,1))}.border-rose-200\/80{border-color:#fecdd3cc}.border-sky-500{--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity,1))}.border-slate-200\/70{border-color:#e2e8f0b3}.border-slate-200\/80{border-color:#e2e8f0cc}.border-stone-200{--tw-border-opacity:1;border-color:rgb(231 229 228/var(--tw-border-opacity,1))}.border-stone-200\/80{border-color:#e7e5e4cc}.border-stone-200\/85{border-color:#e7e5e4d9}.border-stone-600{--tw-border-opacity:1;border-color:rgb(87 83 78/var(--tw-border-opacity,1))}.border-teal-600{--tw-border-opacity:1;border-color:rgb(13 148 136/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.border-violet-200\/80{border-color:#ddd6fecc}.border-violet-500{--tw-border-opacity:1;border-color:rgb(139 92 246/var(--tw-border-opacity,1))}.border-white\/10{border-color:#ffffff1a}.border-white\/30{border-color:#ffffff4d}.border-white\/80{border-color:#fffc}.border-b-primary{border-bottom-color:hsl(var(--primary))}.border-b-transparent{border-bottom-color:#0000}.bg-\[\#dddfe6\]{--tw-bg-opacity:1;background-color:rgb(221 223 230/var(--tw-bg-opacity,1))}.bg-\[\#f9f8f5\]{--tw-bg-opacity:1;background-color:rgb(249 248 245/var(--tw-bg-opacity,1))}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-100\/30{background-color:#fef3c74d}.bg-amber-200\/30{background-color:#fde68a4d}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-50\/70{background-color:#fffbebb3}.bg-amber-50\/80{background-color:#fffbebcc}.bg-amber-50\/90{background-color:#fffbebe6}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-500\/60{background-color:#f59e0b99}.bg-amber-500\/80{background-color:#f59e0bcc}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/40{background-color:#0006}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-card\/40{background-color:hsl(var(--card) / .4)}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-cyan-50{--tw-bg-opacity:1;background-color:rgb(236 254 255/var(--tw-bg-opacity,1))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-50\/70{background-color:#ecfdf5b3}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-fuchsia-50{--tw-bg-opacity:1;background-color:rgb(253 244 255/var(--tw-bg-opacity,1))}.bg-gray-100\/60{background-color:hsl(var(--gray-100) / .6)}.bg-gray-100\/70{background-color:hsl(var(--gray-100) / .7)}.bg-gray-100\/80{background-color:hsl(var(--gray-100) / .8)}.bg-gray-100\/90{background-color:hsl(var(--gray-100) / .9)}.bg-gray-200{background-color:hsl(var(--gray-200))}.bg-gray-200\/70{background-color:hsl(var(--gray-200) / .7)}.bg-gray-200\/75{background-color:hsl(var(--gray-200) / .75)}.bg-gray-200\/80{background-color:hsl(var(--gray-200) / .8)}.bg-gray-200\/85{background-color:hsl(var(--gray-200) / .85)}.bg-gray-200\/90{background-color:hsl(var(--gray-200) / .9)}.bg-gray-300{background-color:hsl(var(--gray-300))}.bg-gray-400{background-color:hsl(var(--gray-400))}.bg-gray-50\/50{background-color:hsl(var(--gray-50) / .5)}.bg-gray-50\/55{background-color:hsl(var(--gray-50) / .55)}.bg-gray-50\/60{background-color:hsl(var(--gray-50) / .6)}.bg-gray-50\/70{background-color:hsl(var(--gray-50) / .7)}.bg-gray-50\/80{background-color:hsl(var(--gray-50) / .8)}.bg-gray-50\/85{background-color:hsl(var(--gray-50) / .85)}.bg-gray-50\/90{background-color:hsl(var(--gray-50) / .9)}.bg-gray-700{background-color:hsl(var(--gray-700))}.bg-lime-50{--tw-bg-opacity:1;background-color:rgb(247 254 231/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-orange-50\/70{background-color:#fff7edb3}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-50\/40{background-color:hsl(var(--brand-50) / .4)}.bg-primary-50\/50{background-color:hsl(var(--brand-50) / .5)}.bg-primary-700\/60{background-color:hsl(var(--brand-700) / .6)}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-50\/70{background-color:#fef2f2b3}.bg-red-50\/80{background-color:#fef2f2cc}.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.bg-rose-100\/80{background-color:#ffe4e6cc}.bg-rose-50{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.bg-rose-50\/85{background-color:#fff1f2d9}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-rose-500\/80{background-color:#f43f5ecc}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-100\/80{background-color:#f1f5f9cc}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-stone-100{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity,1))}.bg-stone-100\/85{background-color:#f5f5f4d9}.bg-stone-400\/80{background-color:#a8a29ecc}.bg-stone-50{--tw-bg-opacity:1;background-color:rgb(250 250 249/var(--tw-bg-opacity,1))}.bg-stone-50\/90{background-color:#fafaf9e6}.bg-stone-600{--tw-bg-opacity:1;background-color:rgb(87 83 78/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-transparent{background-color:#0000}.bg-violet-100{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity,1))}.bg-violet-50{--tw-bg-opacity:1;background-color:rgb(245 243 255/var(--tw-bg-opacity,1))}.bg-violet-500{--tw-bg-opacity:1;background-color:rgb(139 92 246/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/70{background-color:#ffffffb3}.bg-white\/75{background-color:#ffffffbf}.bg-white\/80{background-color:#fffc}.bg-white\/85{background-color:#ffffffd9}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.bg-\[linear-gradient\(135deg\,\#fff7ea_0\%\,\#f4fbff_100\%\)\]{background-image:linear-gradient(135deg,#fff7ea 0%,#f4fbff 100%)}.bg-\[linear-gradient\(180deg\,\#fff9f1_0\%\,\#ffffff_24\%\)\]{background-image:linear-gradient(#fff9f1 0%,#fff 24%)}.bg-gradient-to-b{background-image:linear-gradient(to bottom, var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right, var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left, var(--tw-gradient-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right, var(--tw-gradient-stops))}.from-\[\#0F172A\]{--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:#0f172a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/40{--tw-gradient-from:#3b82f666 var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-fuchsia-500\/40{--tw-gradient-from:#d946ef66 var(--tw-gradient-from-position);--tw-gradient-to:#d946ef00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-50\/60{--tw-gradient-from:hsl(var(--gray-50) / .6) var(--tw-gradient-from-position);--tw-gradient-to:hsl(var(--gray-50) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-700{--tw-gradient-from:hsl(var(--gray-700)) var(--tw-gradient-from-position);--tw-gradient-to:hsl(var(--gray-700) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-50\/70{--tw-gradient-from:hsl(var(--brand-50) / .7) var(--tw-gradient-from-position);--tw-gradient-to:hsl(var(--brand-50) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:transparent var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#1E1B4B\]{--tw-gradient-to:#1e1b4b00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #1e1b4b var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-500\/30{--tw-gradient-to:#a855f700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #a855f74d var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white{--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#312E81\]{--tw-gradient-to:#312e81 var(--tw-gradient-to-position)}.to-cyan-500\/20{--tw-gradient-to:#06b6d433 var(--tw-gradient-to-position)}.to-emerald-50\/60{--tw-gradient-to:#ecfdf599 var(--tw-gradient-to-position)}.to-gray-950{--tw-gradient-to:#030712 var(--tw-gradient-to-position)}.to-indigo-500\/20{--tw-gradient-to:#6366f133 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.to-white\/10{--tw-gradient-to:#ffffff1a var(--tw-gradient-to-position)}.to-white\/70{--tw-gradient-to:#ffffffb3 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-amber-400{fill:#fbbf24}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-3\.5{padding-bottom:.875rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[58px\]{padding-left:58px}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-14{padding-right:3.5rem}.pr-16{padding-right:4rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-\[env\(safe-area-inset-top\,0px\)\]{padding-top:env(safe-area-inset-top,0px)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:1.5rem;line-height:2rem}.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-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[38px\]{font-size:38px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#2f2212\]{--tw-text-opacity:1;color:rgb(47 34 18/var(--tw-text-opacity,1))}.text-\[\#78644d\]{--tw-text-opacity:1;color:rgb(120 100 77/var(--tw-text-opacity,1))}.text-\[\#d39a3b\]{--tw-text-opacity:1;color:rgb(211 154 59/var(--tw-text-opacity,1))}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-amber-400\/80{color:#fbbf24cc}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-500\/50{color:#f59e0b80}.text-amber-500\/80{color:#f59e0bcc}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-600\/80{color:#d97706cc}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.text-amber-950{--tw-text-opacity:1;color:rgb(69 26 3/var(--tw-text-opacity,1))}.text-amber-950\/70{color:#451a03b3}.text-amber-950\/80{color:#451a03cc}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-100\/90{color:#d1fae5e6}.text-emerald-50\/95{color:#ecfdf5f2}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-emerald-800{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.text-emerald-900{--tw-text-opacity:1;color:rgb(6 78 59/var(--tw-text-opacity,1))}.text-emerald-950{--tw-text-opacity:1;color:rgb(2 44 34/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-fuchsia-700{--tw-text-opacity:1;color:rgb(162 28 175/var(--tw-text-opacity,1))}.text-gray-300{color:hsl(var(--gray-300))}.text-gray-400{color:hsl(var(--gray-400))}.text-gray-500\/90{color:hsl(var(--gray-500) / .9)}.text-gray-700{color:hsl(var(--gray-700))}.text-gray-800{color:hsl(var(--gray-800))}.text-gray-950{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.text-lime-700{--tw-text-opacity:1;color:rgb(77 124 15/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-100{color:hsl(var(--brand-100))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/70{color:hsl(var(--primary) / .7)}.text-primary\/90{color:hsl(var(--primary) / .9)}.text-purple-100\/70{color:#f3e8ffb3}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity,1))}.text-rose-700{--tw-text-opacity:1;color:rgb(190 18 60/var(--tw-text-opacity,1))}.text-rose-950{--tw-text-opacity:1;color:rgb(76 5 25/var(--tw-text-opacity,1))}.text-rose-950\/85{color:#4c0519d9}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.text-sky-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-stone-300{--tw-text-opacity:1;color:rgb(214 211 209/var(--tw-text-opacity,1))}.text-stone-500{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity,1))}.text-stone-700{--tw-text-opacity:1;color:rgb(68 64 60/var(--tw-text-opacity,1))}.text-transparent{color:#0000}.text-violet-700{--tw-text-opacity:1;color:rgb(109 40 217/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/70{color:#ffffffb3}.text-white\/95{color:#fffffff2}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(15\,23\,42\,0\.03\)\]{--tw-shadow:0 0 0 1px #0f172a08;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(156\,163\,175\,0\.12\)\]{--tw-shadow:0 0 0 3px #9ca3af1f;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(16\,185\,129\,0\.14\)\]{--tw-shadow:0 0 0 3px #10b98124;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_0_3px_rgba\(251\,191\,36\,0\.16\)\]{--tw-shadow:0 0 0 3px #fbbf2429;--tw-shadow-colored:0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_18px_44px_rgba\(0\,0\,0\,0\.08\)\]{--tw-shadow:0 18px 44px #00000014;--tw-shadow-colored:0 18px 44px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(30\,20\,10\,0\.04\)\]{--tw-shadow:0 1px 2px #1e140a0a;--tw-shadow-colored:0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_24px_60px_-28px_rgba\(15\,23\,42\,0\.38\)\]{--tw-shadow:0 24px 60px -28px #0f172a61;--tw-shadow-colored:0 24px 60px -28px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_24px_70px_-30px_rgba\(15\,23\,42\,0\.45\)\]{--tw-shadow:0 24px 70px -30px #0f172a73;--tw-shadow-colored:0 24px 70px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_2px_10px_rgb\(0\,0\,0\,0\.06\)\]{--tw-shadow:0 2px 10px #0000000f;--tw-shadow-colored:0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(17\,24\,39\,0\.06\)\]{--tw-shadow:inset 0 0 0 1px #1118270f;--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.45\)\]{--tw-shadow:inset 0 1px 0 #ffffff73;--tw-shadow-colored:inset 0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow:var(--shadow-card);--tw-shadow-colored:var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card-hover{--tw-shadow:var(--shadow-card-hover);--tw-shadow-colored:var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow-color:hsl(var(--card));--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-amber-100{--tw-ring-opacity:1;--tw-ring-color:rgb(254 243 199/var(--tw-ring-opacity,1))}.ring-black\/5{--tw-ring-color:#0000000d}.ring-border\/70{--tw-ring-color:hsl(var(--border) / .7)}.ring-emerald-100{--tw-ring-opacity:1;--tw-ring-color:rgb(209 250 229/var(--tw-ring-opacity,1))}.ring-gray-200{--tw-ring-color:hsl(var(--gray-200))}.ring-red-100{--tw-ring-opacity:1;--tw-ring-color:rgb(254 226 226/var(--tw-ring-opacity,1))}.ring-slate-200\/80{--tw-ring-color:#e2e8f0cc}.ring-white\/10{--tw-ring-color:#ffffff1a}.ring-white\/20{--tw-ring-color:#fff3}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color:#fff}.blur-\[80px\]{--tw-blur:blur(80px);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)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px #0000000d);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)}.filter{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-md{--tw-backdrop-blur:blur(12px);-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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-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)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[border-color\,background-color\,box-shadow\,color\]{transition-property:border-color,background-color,box-shadow,color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-property:box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}.duration-slow{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.duration-slow{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.bg-gray-50{background-color:hsl(var(--gray-50))}.bg-gray-100{background-color:hsl(var(--gray-100))}.text-gray-500{color:hsl(var(--gray-500))}.text-gray-600{color:hsl(var(--gray-600))}.text-gray-900{color:hsl(var(--gray-900))}.desktop-window-drag{-webkit-app-region:drag;app-region:drag;-webkit-user-select:none;user-select:none}.desktop-window-no-drag,.desktop-window-drag :is(button,a,input,select,textarea,[role=button],[tabindex]){-webkit-app-region:no-drag;app-region:no-drag}.custom-scrollbar::-webkit-scrollbar{width:5px;height:5px}.custom-scrollbar::-webkit-scrollbar-track{background:0 0}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300));border-radius:6px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400))}.workspace-horizontal-scrollbar{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300) / .38) transparent;scrollbar-gutter:stable}.workspace-horizontal-scrollbar::-webkit-scrollbar{width:3px;height:2px}.workspace-horizontal-scrollbar::-webkit-scrollbar-track{background:0 0}.workspace-horizontal-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300) / .38);border-radius:999px}.workspace-horizontal-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400) / .48)}.doc-browser-tab-scrollbar{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300) / .34) transparent}.doc-browser-tab-scrollbar::-webkit-scrollbar{width:2px;height:2px}.doc-browser-tab-scrollbar::-webkit-scrollbar-track{background:0 0}.doc-browser-tab-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300) / .34);border-radius:999px}.doc-browser-tab-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400) / .44)}.shadow-card{box-shadow:0 1px 3px -1px #1e140a08,0 1px 2px -1px #1e140a05}.shadow-card-hover{box-shadow:0 8px 20px -4px #1e140a0f,0 4px 8px -4px #1e140a08}.\[animation-delay\:200ms\]{animation-delay:.2s}.\[animation-delay\:400ms\]{animation-delay:.4s}.\[container\:nextclaw-chat-input-bar\/inline-size\]{container:nextclaw-chat-input-bar/inline-size}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.85}}.animate-fade-in{animation:.35s cubic-bezier(.16,1,.3,1) forwards fadeIn}.animate-slide-in{animation:.3s cubic-bezier(.16,1,.3,1) forwards slideIn}.animate-scale-in{animation:.3s cubic-bezier(.16,1,.3,1) forwards scaleIn}.animate-pulse-soft{animation:3s ease-in-out infinite pulse-soft}.chat-markdown{--md-text:#0f172a;--md-muted:#334155;--md-border:#94a3b857;--md-link:hsl(var(--primary));--md-inline-code-bg:#0f172a14;--md-inline-code-color:#1e293b;--md-blockquote-border:#0ea5e973;--md-blockquote-bg:#0ea5e914;--md-code-surface:#0b1220;--md-code-toolbar-bg:#0f172a8f;--md-code-toolbar-border:#94a3b84d;--md-code-text:#e5e7eb;--md-code-muted:#9ca3af;--md-code-keyword:#c084fc;--md-code-title:#93c5fd;--md-code-string:#86efac;--md-code-number:#fbbf24;--md-code-comment:#94a3b8;--md-code-attr:#67e8f9;--md-code-meta:#f0abfc;--md-code-deletion:#fca5a5;--md-code-addition:#86efac;--md-table-head-bg:#94a3b824;color:var(--md-text);word-break:break-word;font-size:.925rem;line-height:1.72}.chat-markdown-user{--md-text:#fffffff7;--md-muted:#dbeafeeb;--md-border:#bfdbfe59;--md-link:#dbeafe;--md-inline-code-bg:#0f172a59;--md-inline-code-color:#eff6ff;--md-blockquote-border:#bfdbfecc;--md-blockquote-bg:#0f172a33;--md-code-surface:#020617eb;--md-code-toolbar-bg:#020617e0;--md-code-toolbar-border:#bfdbfe42;--md-code-text:#e2e8f0;--md-code-muted:#a5b4fc;--md-code-keyword:#d8b4fe;--md-code-title:#bfdbfe;--md-code-string:#bbf7d0;--md-code-number:#fde68a;--md-code-comment:#cbd5e1;--md-code-attr:#a5f3fc;--md-code-meta:#f5d0fe;--md-code-deletion:#fecaca;--md-code-addition:#bbf7d0;--md-table-head-bg:#bfdbfe29}.chat-markdown>*+*{margin-top:.72rem}.chat-markdown p,.chat-markdown li,.chat-markdown blockquote{color:var(--md-text)}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4,.chat-markdown h5,.chat-markdown h6{letter-spacing:-.01em;margin:.2rem 0 0;font-weight:700;line-height:1.35}.chat-markdown h1{font-size:1.22rem}.chat-markdown h2{font-size:1.12rem}.chat-markdown h3{font-size:1.02rem}.chat-markdown h4,.chat-markdown h5,.chat-markdown h6{font-size:.96rem}.chat-markdown ul,.chat-markdown ol{margin:.35rem 0;padding-left:1.5rem;list-style-position:outside}.chat-markdown ul{list-style-type:disc}.chat-markdown ol{list-style-type:decimal}.chat-markdown ul ul{list-style-type:circle}.chat-markdown ul ul ul{list-style-type:square}.chat-markdown ol ol{list-style-type:lower-alpha}.chat-markdown ol ol ol{list-style-type:lower-roman}.chat-markdown li{display:list-item}.chat-markdown li::marker{color:#334155e6;font-weight:600}.chat-markdown li+li{margin-top:.25rem}.chat-markdown li>p{margin:0}.chat-markdown ul.contains-task-list,.chat-markdown ol.contains-task-list{padding-left:.2rem;list-style:none}.chat-markdown li.task-list-item{align-items:flex-start;gap:.52rem;display:flex}.chat-markdown-user li::marker{color:#dbeafef2}.chat-markdown .chat-task-checkbox{cursor:default;width:.92rem;height:.92rem;position:relative;top:.2rem}.chat-markdown hr{border:0;border-top:1px solid var(--md-border);margin:.92rem 0}.chat-markdown a{color:var(--md-link);text-underline-offset:2px;word-break:break-all;text-decoration-line:underline;text-decoration-thickness:1.2px}.chat-markdown .chat-link-invalid{color:var(--md-muted);text-decoration-line:underline;text-decoration-style:dotted}.chat-markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.82rem}.chat-markdown .chat-inline-code,.chat-markdown :not(pre)>code{background:var(--md-inline-code-bg);color:var(--md-inline-code-color);border:1px solid var(--md-border);border-radius:.4rem;padding:.1rem .35rem;font-weight:520}.chat-codeblock{border:1px solid var(--md-code-toolbar-border);background:linear-gradient(180deg, #ffffff0b, #fff0), var(--md-code-surface);border-radius:.5rem;margin:.2rem 0 .1rem;overflow:hidden;box-shadow:0 12px 34px #0f172a21}.chat-codeblock-toolbar{background:var(--md-code-toolbar-bg);border-bottom:1px solid var(--md-code-toolbar-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.43rem .58rem;display:flex}.chat-codeblock-language{text-transform:uppercase;letter-spacing:.06em;color:var(--md-code-text);opacity:.8;font-size:.68rem;font-weight:700}.chat-codeblock-copy{color:var(--md-code-text);border:1px solid var(--md-code-toolbar-border);cursor:pointer;background:0 0;border-radius:.42rem;align-items:center;gap:.3rem;padding:.18rem .36rem;font-size:.7rem;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.chat-codeblock-copy:hover{background:#94a3b833}.chat-codeblock pre{scrollbar-color:#94a3b87a transparent;scrollbar-width:thin;background:0 0;margin:0;padding:.8rem .9rem .86rem;overflow-x:auto}.chat-codeblock code{white-space:pre;min-width:max-content;color:var(--md-code-text);font-variant-ligatures:none;tab-size:2;font-size:.79rem;line-height:1.62;display:block}.chat-codeblock .hljs-keyword,.chat-codeblock .hljs-built_in,.chat-codeblock .hljs-type,.chat-codeblock .hljs-literal,.chat-codeblock .hljs-selector-tag{color:var(--md-code-keyword)}.chat-codeblock .hljs-title,.chat-codeblock .hljs-title.function_,.chat-codeblock .hljs-title.class_,.chat-codeblock .hljs-section,.chat-codeblock .hljs-selector-id{color:var(--md-code-title)}.chat-codeblock .hljs-string,.chat-codeblock .hljs-regexp,.chat-codeblock .hljs-symbol,.chat-codeblock .hljs-bullet{color:var(--md-code-string)}.chat-codeblock .hljs-number,.chat-codeblock .hljs-variable,.chat-codeblock .hljs-template-variable,.chat-codeblock .hljs-params{color:var(--md-code-number)}.chat-codeblock .hljs-comment,.chat-codeblock .hljs-quote{color:var(--md-code-comment);font-style:italic}.chat-codeblock .hljs-attr,.chat-codeblock .hljs-attribute,.chat-codeblock .hljs-property,.chat-codeblock .hljs-name,.chat-codeblock .hljs-selector-class{color:var(--md-code-attr)}.chat-codeblock .hljs-meta,.chat-codeblock .hljs-doctag,.chat-codeblock .hljs-tag{color:var(--md-code-meta)}.chat-codeblock .hljs-subst,.chat-codeblock .hljs-punctuation,.chat-codeblock .hljs-operator{color:var(--md-code-muted)}.chat-codeblock .hljs-deletion{color:var(--md-code-deletion)}.chat-codeblock .hljs-addition{color:var(--md-code-addition)}.chat-table-wrap{border:1px solid var(--md-border);border-radius:.72rem;margin:.15rem 0;overflow-x:auto}.chat-markdown table{border-collapse:separate;border-spacing:0;width:100%;min-width:420px;font-size:.82rem}.chat-markdown thead{background:var(--md-table-head-bg)}.chat-markdown th,.chat-markdown td{border-bottom:1px solid var(--md-border);text-align:left;vertical-align:top;padding:.45rem .58rem}.chat-markdown th+th,.chat-markdown td+td{border-left:1px solid var(--md-border)}.chat-markdown tbody tr:last-child td{border-bottom:none}.chat-markdown th,.chat-markdown strong{font-weight:650}.chat-markdown img{border:1px solid var(--md-border);border-radius:.75rem;max-width:100%}.chat-markdown blockquote{border-left:3px solid var(--md-blockquote-border);background:var(--md-blockquote-bg);color:var(--md-muted);border-radius:0 .55rem .55rem 0;margin:.2rem 0;padding:.45rem .72rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:font-normal::placeholder{font-weight:400}.placeholder\:text-gray-300::placeholder{color:hsl(var(--gray-300))}.placeholder\:text-gray-400::placeholder{color:hsl(var(--gray-400))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bottom-0:after{content:var(--tw-content);bottom:0}.after\:left-\[var\(--desktop-sidebar-width\)\]:after{content:var(--tw-content);left:var(--desktop-sidebar-width)}.after\:right-0:after{content:var(--tw-content);right:0}.after\:border-b:after{content:var(--tw-content);border-bottom-width:1px}.after\:border-\[\#ebe7dc\]\/80:after{content:var(--tw-content);border-color:#ebe7dccc}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-amber-200:hover{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:border-blue-300\/80:hover{border-color:#93c5fdcc}.hover\:border-gray-200:hover{border-color:hsl(var(--gray-200))}.hover\:border-gray-300:hover{border-color:hsl(var(--gray-300))}.hover\:border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:border-rose-200:hover{--tw-border-opacity:1;border-color:rgb(254 205 211/var(--tw-border-opacity,1))}.hover\:border-rose-300:hover{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}.hover\:border-slate-300:hover{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.hover\:border-white\/20:hover{border-color:#fff3}.hover\:bg-\[\#fff7ea\]:hover{--tw-bg-opacity:1;background-color:rgb(255 247 234/var(--tw-bg-opacity,1))}.hover\:bg-amber-100:hover{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.hover\:bg-amber-100\/30:hover{background-color:#fef3c74d}.hover\:bg-amber-50:hover{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.hover\:bg-amber-50\/50:hover{background-color:#fffbeb80}.hover\:bg-black\/10:hover{background-color:#0000001a}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-100:hover{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.hover\:bg-gray-100\/70:hover{background-color:hsl(var(--gray-100) / .7)}.hover\:bg-gray-100\/80:hover{background-color:hsl(var(--gray-100) / .8)}.hover\:bg-gray-200:hover{background-color:hsl(var(--gray-200))}.hover\:bg-gray-200\/40:hover{background-color:hsl(var(--gray-200) / .4)}.hover\:bg-gray-200\/60:hover{background-color:hsl(var(--gray-200) / .6)}.hover\:bg-gray-200\/80:hover{background-color:hsl(var(--gray-200) / .8)}.hover\:bg-gray-300\/80:hover{background-color:hsl(var(--gray-300) / .8)}.hover\:bg-gray-50\/60:hover{background-color:hsl(var(--gray-50) / .6)}.hover\:bg-gray-50\/70:hover{background-color:hsl(var(--gray-50) / .7)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\:bg-rose-50:hover{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:text-\[\#2f2212\]:hover{--tw-text-opacity:1;color:rgb(47 34 18/var(--tw-text-opacity,1))}.hover\:text-amber-500:hover{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.hover\:text-amber-900:hover{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-700:hover{color:hsl(var(--gray-700))}.hover\:text-gray-800:hover{color:hsl(var(--gray-800))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-rose-200:hover{--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1))}.hover\:text-rose-600:hover{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity,1))}.hover\:text-sky-700:hover{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow:var(--shadow-card-hover);--tw-shadow-colored:var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:bg-gray-50:hover{background-color:hsl(var(--gray-50))}.hover\:bg-gray-100:hover{background-color:hsl(var(--gray-100))}.hover\:text-gray-500:hover{color:hsl(var(--gray-500))}.hover\:text-gray-600:hover{color:hsl(var(--gray-600))}.hover\:text-gray-900:hover{color:hsl(var(--gray-900))}.hover\:shadow-card-hover:hover{box-shadow:var(--shadow-card-hover);box-shadow:0 8px 20px -4px #1e140a0f,0 4px 8px -4px #1e140a08}.focus\:border-gray-200\/80:focus{border-color:hsl(var(--gray-200) / .8)}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary) / .4)}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-primary\/30:focus{--tw-ring-color:hsl(var(--primary) / .3)}.focus\:ring-primary\/40:focus{--tw-ring-color:hsl(var(--primary) / .4)}.focus\:bg-gray-100:focus{background-color:hsl(var(--gray-100))}.focus-visible\:flex:focus-visible{display:flex}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color:hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color:#fff}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-300:disabled{color:hsl(var(--gray-300))}.disabled\:text-gray-400:disabled{color:hsl(var(--gray-400))}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:bg-transparent:hover:disabled{background-color:#0000}.disabled\:hover\:text-gray-300:hover:disabled{color:hsl(var(--gray-300))}.group[open] .group-open\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/session:focus-within .group-focus-within\/session\:opacity-0{opacity:0}.group\/session:focus-within .group-focus-within\/session\:opacity-100{opacity:1}.group:focus-within .group-focus-within\:opacity-0{opacity:0}.group:hover .group-hover\:flex{display:flex}.group\/action:hover .group-hover\/action\:translate-x-0\.5{--tw-translate-x:.125rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-\[1\.01\]{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.group:hover .group-hover\:bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.group:hover .group-hover\:text-gray-700{color:hsl(var(--gray-700))}.group:hover .group-hover\:text-gray-800{color:hsl(var(--gray-800))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group\/session:hover .group-hover\/session\:opacity-0{opacity:0}.group\/session:hover .group-hover\/session\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:bg-gray-50{background-color:hsl(var(--gray-50))}.group:hover .group-hover\:bg-gray-100{background-color:hsl(var(--gray-100))}.group:hover .group-hover\:text-gray-900{color:hsl(var(--gray-900))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@supports (height:100dvh){.supports-\[height\:100dvh\]\:h-\[100dvh\]{height:100dvh}}@media (width>=640px){.sm\:static{position:static}.sm\:left-4{left:1rem}.sm\:top-2\.5{top:.625rem}.sm\:ml-0\.5{margin-left:.125rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:hidden{display:none}.sm\:h-\[42rem\]{height:42rem}.sm\:max-h-\[760px\]{max-height:760px}.sm\:min-h-\[60px\]{min-height:60px}.sm\:w-\[320px\]{width:320px}.sm\:w-\[360px\]{width:360px}.sm\:w-\[38\%\]{width:38%}.sm\:w-auto{width:auto}.sm\:min-w-\[170px\]{min-width:170px}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[220px\]{max-width:220px}.sm\:max-w-\[320px\]{max-width:320px}.sm\:max-w-xl{max-width:36rem}.sm\:flex-1{flex:1}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_minmax\(180px\,240px\)\]{grid-template-columns:minmax(0,1fr) minmax(180px,240px)}.sm\:grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-3{gap:.75rem}.sm\:bg-primary\/10{background-color:hsl(var(--primary) / .1)}.sm\:p-4{padding:1rem}.sm\:p-8{padding:2rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:text-left{text-align:left}.sm\:text-primary{color:hsl(var(--primary))}.sm\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}}@media (width>=768px){.md\:pointer-events-none{pointer-events:none}.md\:absolute{position:absolute}.md\:right-0{right:0}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:w-0{width:0}.md\:w-5{width:1.25rem}.md\:w-\[480px\]{width:480px}.md\:max-w-md{max-width:28rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:opacity-0{opacity:0}.group:focus-within .md\:group-focus-within\:pointer-events-auto{pointer-events:auto}.group:focus-within .md\:group-focus-within\:opacity-100{opacity:1}.group:hover .md\:group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .md\:group-hover\:opacity-100{opacity:1}}@media (width>=1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.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\:justify-between{justify-content:space-between}}@media (width>=1280px){.xl\:col-span-3{grid-column:span 3/span 3}.xl\:flex{display:flex}.xl\:h-\[calc\(100vh-180px\)\]{height:calc(100vh - 180px)}.xl\:h-full{height:100%}.xl\:max-h-\[860px\]{max-height:860px}.xl\:min-h-0{min-height:0}.xl\:flex-1{flex:1}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-\[1\.2fr_0\.8fr\]{grid-template-columns:1.2fr .8fr}.xl\:grid-cols-\[340px_minmax\(0\,1fr\)\]{grid-template-columns:340px minmax(0,1fr)}.xl\:flex-col{flex-direction:column}.xl\:overflow-hidden{overflow:hidden}.xl\:overflow-y-auto{overflow-y:auto}.xl\:overscroll-contain{overscroll-behavior:contain}}@media (width>=1536px){.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\32 xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.\[\&\>\:last-child\]\:hidden>:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@container nextclaw-chat-input-bar (width<=440px){.\[\@container_nextclaw-chat-input-bar_\(max-width\:440px\)\]\:hidden{display:none}.\[\@container_nextclaw-chat-input-bar_\(max-width\:440px\)\]\:\!min-w-8{min-width:2rem!important}.\[\@container_nextclaw-chat-input-bar_\(max-width\:440px\)\]\:\!max-w-8{max-width:2rem!important}.\[\@container_nextclaw-chat-input-bar_\(max-width\:440px\)\]\:\!basis-8{flex-basis:2rem!important}.\[\@container_nextclaw-chat-input-bar_\(max-width\:440px\)\]\:\!justify-center{justify-content:center!important}.\[\@container_nextclaw-chat-input-bar_\(max-width\:440px\)\]\:\!px-0{padding-left:0!important;padding-right:0!important}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./mcp-marketplace-page-ju1KH3TG.js";export{e as McpMarketplacePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./dist-WjhKB-pc.js";var t=e(`Play`,[[`polygon`,{points:`6 3 20 12 6 21 6 3`,key:`1oa8hb`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./dist-WjhKB-pc.js";var t=e(`Plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as e}from"./app-presenter-provider-CKZqZfv5.js";export{e as RemoteAccessPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./dist-WjhKB-pc.js";var t=e(`RotateCw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./dist-WjhKB-pc.js";var t=e(`Search`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./dist-WjhKB-pc.js";var t=e(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};
|