@pg-boss/dashboard 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/build/client/assets/MenuTrigger-BNvpjhsQ.js +1 -0
  2. package/build/client/assets/_index-DqpFaaQw.js +1 -0
  3. package/build/client/assets/{badge-DCQvSdiR.js → badge-CMnQO7Lq.js} +1 -1
  4. package/build/client/assets/{button-BxLcuaPM.js → button-9NpSS9Ow.js} +1 -1
  5. package/build/client/assets/check-7jwc5sb1.js +1 -0
  6. package/build/client/assets/{chevron-down-Byq-CYG9.js → chevron-down-BFFjfYD4.js} +1 -1
  7. package/build/client/assets/chevron-right-DGk5QFJF.js +1 -0
  8. package/build/client/assets/{createLucideIcon-DVP_i62f.js → createLucideIcon-C-LI4enx.js} +1 -1
  9. package/build/client/assets/db-link-BajQ1v8I.js +1 -0
  10. package/build/client/assets/dialog-D-oczDM2.js +1 -0
  11. package/build/client/assets/{entry.client-DL_oPh96.js → entry.client-CqyjuPDB.js} +3 -3
  12. package/build/client/assets/{error-card-B0ANyjh3.js → error-card-BH7i86fH.js} +1 -1
  13. package/build/client/assets/{filter-select--qLjbs9m.js → filter-select-Bn_oSiip.js} +1 -1
  14. package/build/client/assets/jobs-CAd_qqLH.js +1 -0
  15. package/build/client/assets/jsx-runtime-RQyiN6Nr.js +16 -0
  16. package/build/client/assets/manifest-27e8e133.js +1 -0
  17. package/build/client/assets/migrations-D5l0n4Jn.js +1 -0
  18. package/build/client/assets/{pagination-Bzx8wbXG.js → pagination-C-ohiBmY.js} +1 -1
  19. package/build/client/assets/queues._index-8YriSqbQ.js +1 -0
  20. package/build/client/assets/queues._name-Cb17IB2u.js +1 -0
  21. package/build/client/assets/{queues._name.jobs._jobId-BkG9y75k.js → queues._name.jobs._jobId-Bkv8POBj.js} +1 -1
  22. package/build/client/assets/{queues.create-CMqQVLup.js → queues.create-DsY0Sc19.js} +1 -1
  23. package/build/client/assets/{react-dom-QnGHOQwT.js → react-dom-D_m_Zgd3.js} +1 -1
  24. package/build/client/assets/root-B0MB8jZH.css +2 -0
  25. package/build/client/assets/root-qxoeL6W3.js +40 -0
  26. package/build/client/assets/{schedules-DPXQoaEE.js → schedules-iYfIJxOD.js} +1 -1
  27. package/build/client/assets/{schedules._name._key-B_luxy1w.js → schedules._name._key-CJVu73XY.js} +1 -1
  28. package/build/client/assets/{schedules.new-BQV7GWzs.js → schedules.new-Cq0Mxa7G.js} +1 -1
  29. package/build/client/assets/send-8X9ZisG-.js +1 -0
  30. package/build/client/assets/{stat-card-DLtQnscf.js → stat-card-dyg1wY5p.js} +1 -1
  31. package/build/client/assets/{table-DqqzSNik.js → table-Cz7ujmH_.js} +1 -1
  32. package/build/client/assets/useOpenInteractionType-BQ1arb0B.js +1 -0
  33. package/build/client/assets/{warnings-CHKaRfIW.js → warnings-C1R_RzIe.js} +1 -1
  34. package/build/client/assets/x-AhXI_F1j.js +1 -0
  35. package/build/server/index.js +1712 -1061
  36. package/package.json +11 -8
  37. package/build/client/assets/MenuTrigger-BhalG0aG.js +0 -1
  38. package/build/client/assets/_index-D1-nZ7Th.js +0 -1
  39. package/build/client/assets/check-Ch42cXMT.js +0 -1
  40. package/build/client/assets/chevron-right-CKAGD7DJ.js +0 -1
  41. package/build/client/assets/db-link-BWWnHM0k.js +0 -1
  42. package/build/client/assets/dialog-Bik519zD.js +0 -1
  43. package/build/client/assets/jobs-D0a6Lwq0.js +0 -1
  44. package/build/client/assets/jsx-runtime-BgbGXvsu.js +0 -16
  45. package/build/client/assets/manifest-ef81a0f9.js +0 -1
  46. package/build/client/assets/queues._index-D8903DTa.js +0 -1
  47. package/build/client/assets/queues._name-BVt_4pav.js +0 -1
  48. package/build/client/assets/root-C0MdPLOa.css +0 -2
  49. package/build/client/assets/root-Df70GAY3.js +0 -40
  50. package/build/client/assets/send-DJBsfnx_.js +0 -1
  51. package/build/client/assets/useOpenInteractionType-D3JsvupP.js +0 -1
  52. package/build/client/assets/x-BPKZwOn9.js +0 -1
@@ -1,16 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),u=o(((e,t)=>{t.exports=l()})),d=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,f=/^[\\/]{2}/;function p(e,t){return t+e.replace(/\\/g,`/`)}var m=`popstate`;function h(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function g(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return x(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:S(t)}return w(t,n,null,e)}function _(e,t){if(e===!1||e==null)throw Error(t)}function v(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function y(){return Math.random().toString(36).substring(2,10)}function b(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function x(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?C(t):t,state:n,key:t&&t.key||r||y(),mask:i}}function S({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 C(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 w(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:_.location,delta:t})}function f(e,t){s=`PUSH`;let r=h(e)?e:x(_.location,e,t);n&&n(r,e),l=u()+1;let d=b(r,l),f=_.createHref(r.mask||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:_.location,delta:1})}function p(e,t){s=`REPLACE`;let r=h(e)?e:x(_.location,e,t);n&&n(r,e),l=u();let i=b(r,l),d=_.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:_.location,delta:0})}function g(e){return T(i,e)}let _={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(m,d),c=e,()=>{i.removeEventListener(m,d),c=null}},createHref(e){return t(i,e)},createURL:g,encodeLocation(e){let t=g(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return _}function T(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),_(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:S(t);return i=i.replace(/ $/,`%20`),!n&&f.test(i)&&(i=r+i),new URL(i,r)}var E=c(u(),1),D=class{#e=new Map;constructor(e){if(e)for(let[t,n]of e)this.set(t,n)}get(e){if(this.#e.has(e))return this.#e.get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw Error(`No value found for context`)}set(e,t){this.#e.set(e,t)}},O=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`children`]);function k(e){return O.has(e)}var A=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`middleware`,`children`]);function j(e){return A.has(e)}function M(e){return e.index===!0}function N(e){let t={};return e.Component&&Object.assign(t,{element:E.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:E.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:E.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function P(e,t=N,n=[],r={},i=!1){return e.map((e,a)=>{let o=[...n,String(a)],s=typeof e.id==`string`?e.id:o.join(`-`);if(_(e.index!==!0||!e.children,`Cannot specify children on an index route`),_(i||!r[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),M(e)){let n={...e,id:s};return r[s]=F(n,t(n)),n}else{let n={...e,id:s,children:void 0};return r[s]=F(n,t(n)),e.children&&(n.children=P(e.children,t,o,r,i)),n}})}function F(e,t){return Object.assign(e,{...t,...typeof t.lazy==`object`&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function I(e,t,n=`/`){return L(e,t,n,!1)}function L(e,t,n,r,i){let a=me((typeof t==`string`?C(t):t).pathname||`/`,n);if(a==null)return null;let o=i??R(e),s=null,c=pe(a);for(let e=0;s==null&&e<o.length;++e)s=H(o[e],c,r);return s}function ee(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,loaderData:t[n.id],handle:n.handle}}function R(e){let t=te(e);return re(t),t}function te(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;_(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=W([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(_(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),te(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:B(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=fe(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of ne(e.path))a(e,t,!0,n)}),t}function ne(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=ne(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 re(e){e.sort((e,t)=>e.score===t.score?V(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var ie=/^:[\w-]+$/,z=3,ae=2,oe=1,se=10,ce=-2,le=e=>e===`*`;function B(e,t){let n=e.split(`/`),r=n.length;return n.some(le)&&(r+=ce),t&&(r+=ae),n.filter(e=>!le(e)).reduce((e,t)=>e+(ie.test(t)?z:t===``?oe:se),r)}function V(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 H(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={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?de(u,l,s.matcher,s.compiledParams):ue(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=ue({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:W([a,d.pathname]),pathnameBase:we(W([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=W([a,d.pathnameBase]))}return o}function ue(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=fe(e.path,e.caseSensitive,e.end);return de(e,t,n,r)}function de(e,t,n,r){let 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 fe(e,t=!1,n=!0){v(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,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).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 pe(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return v(!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 me(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)||`/`}function he({basename:e,pathname:t}){return t===`/`?e:W([e,t])}var ge=e=>d.test(e);function U(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?C(e):e,a;return n?(n=Se(n),a=n.startsWith(`/`)?_e(n.substring(1),`/`):_e(n,t)):a=t,{pathname:a,search:Te(r),hash:Ee(i)}}function _e(e,t){let n=Ce(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function ve(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 ye(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function be(e){let t=ye(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function xe(e,t,n,r=!1){let i;typeof e==`string`?i=C(e):(i={...e},_(!i.pathname||!i.pathname.includes(`?`),ve(`?`,`pathname`,`search`,i)),_(!i.pathname||!i.pathname.includes(`#`),ve(`#`,`pathname`,`hash`,i)),_(!i.search||!i.search.includes(`#`),ve(`#`,`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=U(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Se=e=>e.replace(/[\\/]{2,}/g,`/`),W=e=>Se(e.join(`/`)),Ce=e=>e.replace(/\/+$/,``),we=e=>Ce(e).replace(/^\/*/,`/`),Te=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Ee=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,De=class{type=`DataWithResponseInit`;data;init;constructor(e,t){this.data=e,this.init=t||null}};function Oe(e,t){return new De(e,typeof t==`number`?{status:t}:t)}var ke=(e,t=302)=>{let n=t;typeof n==`number`?n={status:n}:n.status===void 0&&(n.status=302);let r=new Headers(n.headers);return r.set(`Location`,e),new Response(null,{...n,headers:r})},Ae=[`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],G=class{status;statusText;data;error;internal;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 je(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function K(e){return W(e.map(e=>e.route.path).filter(Boolean))||`/`}var Me=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Ne(e,t){let n=e;if(typeof n!=`string`||!d.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Me)try{let e=new URL(window.location.href),r=f.test(n)?new URL(p(n,e.protocol)):new URL(n),a=me(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{v(!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}}var q=Symbol(`Uninstrumented`);function Pe(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){let t=Object.keys(n);for(let r of t)e[r]&&n[r].push(e[r])}}));let r={};if(typeof t.lazy==`function`&&n.lazy.length>0){let e=Ie(n.lazy,t.lazy,()=>void 0);e&&(r.lazy=e)}if(typeof t.lazy==`object`){let e=t.lazy;[`middleware`,`loader`,`action`].forEach(t=>{let i=e[t],a=n[`lazy.${t}`];if(typeof i==`function`&&a.length>0){let e=Ie(a,i,()=>void 0);e&&(r.lazy=Object.assign(r.lazy||{},{[t]:e}))}})}return[`loader`,`action`].forEach(e=>{let i=t[e];if(typeof i==`function`&&n[e].length>0){let t=i[q]??i,a=Ie(n[e],t,(...e)=>Le(e[0]));a&&(e===`loader`&&t.hydrate===!0&&(a.hydrate=!0),a[q]=t,r[e]=a)}}),t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(r.middleware=t.middleware.map(e=>{let t=e[q]??e,r=Ie(n.middleware,t,(...e)=>Le(e[0]));return r?(r[q]=t,r):e})),r}function Fe(e,t){let n={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){let t=Object.keys(e);for(let r of t)e[r]&&n[r].push(e[r])}})),n.navigate.length>0){let t=e.navigate[q]??e.navigate,r=Ie(n.navigate,t,(...t)=>{let[n,r]=t;return{to:typeof n==`number`||typeof n==`string`?n:n?S(n):`.`,...Re(e,r??{})}});r&&(r[q]=t,e.navigate=r)}if(n.fetch.length>0){let t=e.fetch[q]??e.fetch,r=Ie(n.fetch,t,(...t)=>{let[n,,r,i]=t;return{href:r??`.`,fetcherKey:n,...Re(e,i??{})}});r&&(r[q]=t,e.fetch=r)}return e}function Ie(e,t,n){return e.length===0?null:async(...r)=>{let i=await J(e,n(...r),()=>t(...r),e.length-1);if(i.type===`error`)throw i.value;return i.value}}async function J(e,t,n,r){let i=e[r],a;if(i){let o,s=async()=>(o?console.error(`You cannot call instrumented handlers more than once`):o=J(e,t,n,r-1),a=await o,_(a,`Expected a result`),a.type===`error`&&a.value instanceof Error?{status:`error`,error:a.value}:{status:`success`,error:void 0});try{await i(s,t)}catch(e){console.error(`An instrumentation function threw an error:`,e)}o||await s(),await o}else try{a={type:`success`,value:await n()}}catch(e){a={type:`error`,value:e}}return a||{type:`error`,value:Error(`No result assigned in instrumentation chain.`)}}function Le(e){let{request:t,context:n,params:r,pattern:i}=e;return{request:ze(t),params:{...r},pattern:i,context:Be(n)}}function Re(e,t){return{currentUrl:S(e.state.location),...`formMethod`in t?{formMethod:t.formMethod}:{},...`formEncType`in t?{formEncType:t.formEncType}:{},...`formData`in t?{formData:t.formData}:{},...`body`in t?{body:t.body}:{}}}function ze(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function Be(e){return{get:t=>e.get(t)}}var Ve=[`POST`,`PUT`,`PATCH`,`DELETE`],He=new Set(Ve),Ue=[`GET`,...Ve],We=new Set(Ue),Ge=new Set([301,302,303,307,308]),Ke=new Set([307,308]),qe={state:`idle`,location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Je={state:`idle`,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ye={state:`unblocked`,proceed:void 0,reset:void 0,location:void 0},Xe=`remix-router-transitions`,Ze=Symbol(`ResetLoaderData`),Qe=class{#e;#t;#n;#r;constructor(e){this.#e=e,this.#t=R(e)}get stableRoutes(){return this.#e}get activeRoutes(){return this.#n??this.#e}get branches(){return this.#r??this.#t}get hasHMRRoutes(){return this.#n!=null}setRoutes(e){this.#e=e,this.#t=R(e)}setHmrRoutes(e){this.#n=e,this.#r=R(e)}commitHmrRoutes(){this.#n&&(this.#e=this.#n,this.#t=this.#r,this.#n=void 0,this.#r=void 0)}};function $e(e){let t=e.window?e.window:typeof window<`u`?window:void 0,n=t!==void 0&&t.document!==void 0&&t.document.createElement!==void 0;_(e.routes.length>0,`You must provide a non-empty routes array to createRouter`);let r=e.hydrationRouteProperties||[],i=e.mapRouteProperties,a=i||(()=>({}));if(e.instrumentations){let t=e.instrumentations;a=e=>({...i?.(e),...Pe(t.map(e=>e.route).filter(Boolean),e)})}let o={},s=new Qe(P(e.routes,a,void 0,o)),c=e.basename||`/`;c.startsWith(`/`)||(c=`/${c}`);let l=e.dataStrategy||gt,u={...e.future},d=null,f=new Set,p=null,m=null,h=null,g=null,y=e.hydrationData!=null,b=L(s.activeRoutes,e.history.location,c,!1,s.branches),S=!1,w=null,E,O;if(b==null&&!e.patchRoutesOnNavigation){let t=Y(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=Bt(s.activeRoutes);E=!0,O=!E,b=n,w={[r.id]:t}}else if(b&&!e.hydrationData&&et(b,s.activeRoutes,e.history.location.pathname).active&&(b=null),!b){E=!1,O=!E,b=[];let t=et(null,s.activeRoutes,e.history.location.pathname);t.active&&t.matches&&(S=!0,b=t.matches)}else if(b.some(e=>e.route.lazy))E=!1,O=!E;else if(!b.some(e=>it(e.route)))E=!0,O=!E;else{let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=b;if(n){let e=b.findIndex(e=>n[e.route.id]!==void 0);r=r.slice(0,e+1)}O=!1,E=!0,r.forEach(e=>{let r=at(e.route,t,n);O||=r.renderFallback,E&&=!r.shouldLoad})}let k,A={historyAction:e.history.action,location:e.history.location,matches:b,initialized:E,renderFallback:O,navigation:qe,restoreScrollPosition:e.hydrationData==null?null:!1,preventScrollReset:!1,revalidation:`idle`,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||w,fetchers:new Map,blockers:new Map},j=`POP`,M=null,N=!1,F,I=!1,R=new Map,te=null,ne=!1,re=!1,ie=new Set,z=new Map,ae=0,oe=-1,se=new Map,ce=new Set,le=new Map,B=new Map,V=new Set,H=new Map,ue,de=null;function fe(){if(d=e.history.listen(({action:t,location:n,delta:r})=>{if(ue){ue(),ue=void 0;return}v(H.size===0||r!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=Ue({currentLocation:A.location,nextLocation:n,historyAction:t});if(i&&r!=null){let t=new Promise(e=>{ue=e});e.history.go(r*-1),He(i,{state:`blocked`,location:n,proceed(){He(i,{state:`proceeding`,proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(r))},reset(){let e=new Map(A.blockers);e.set(i,Ye),U({blockers:e})}}),M?.resolve(),M=null;return}return be(t,n)}),n){ln(t,R);let e=()=>un(t,R);t.addEventListener(`pagehide`,e),te=()=>t.removeEventListener(`pagehide`,e)}return A.initialized||be(`POP`,A.location,{initialHydration:!0}),k}function pe(){d&&d(),te&&te(),f.clear(),F&&F.abort(),A.fetchers.forEach((e,t)=>q(A.fetchers,t)),A.blockers.forEach((e,t)=>Ve(t))}function he(e){if(f.add(e),p){let{newErrors:t}=p;p=null,e(A,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>f.delete(e)}function U(e,t={}){e.matches&&=e.matches.map(e=>{let t=o[e.route.id],n=e.route;return n.element!==t.element||n.errorElement!==t.errorElement||n.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}),A={...A,...e};let n=[],r=[];A.fetchers.forEach((e,t)=>{e.state===`idle`&&(V.has(t)?n.push(t):r.push(t))}),V.forEach(e=>{!A.fetchers.has(e)&&!z.has(e)&&n.push(e)}),f.size===0&&(p={newErrors:e.errors??null}),[...f].forEach(r=>r(A,{deletedFetchers:n,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:t.flushSync===!0})),n.forEach(e=>q(A.fetchers,e)),r.forEach(e=>A.fetchers.delete(e))}function _e(t,n,{flushSync:r}={}){let i=A.actionData!=null&&A.navigation.formMethod!=null&&Z(A.navigation.formMethod)&&A.navigation.state===`loading`&&t.state?._isRedirect!==!0,a;a=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:i?A.actionData:null;let o=n.loaderData?Lt(A.loaderData,n.loaderData,n.matches||[],n.errors):A.loaderData,c=A.blockers;c.size>0&&(c=new Map(c),c.forEach((e,t)=>c.set(t,Ye)));let l=ne?!1:$e(t,n.matches||A.matches),u=N===!0||A.navigation.formMethod!=null&&Z(A.navigation.formMethod)&&t.state?._isRedirect!==!0;s.commitHmrRoutes(),ne||j===`POP`||(j===`PUSH`?e.history.push(t,t.state):j===`REPLACE`&&e.history.replace(t,t.state));let d;if(j===`POP`){let e=R.get(A.location.pathname);e&&e.has(t.pathname)?d={currentLocation:A.location,nextLocation:t}:R.has(t.pathname)&&(d={currentLocation:t,nextLocation:A.location})}else if(I){let e=R.get(A.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),R.set(A.location.pathname,e)),d={currentLocation:A.location,nextLocation:t}}U({...n,actionData:a,loaderData:o,historyAction:j,location:t,initialized:!0,renderFallback:!1,navigation:qe,revalidation:`idle`,restoreScrollPosition:l,preventScrollReset:u,blockers:c},{viewTransitionOpts:d,flushSync:r===!0}),j=`POP`,N=!1,I=!1,ne=!1,re=!1,M?.resolve(),M=null,de?.resolve(),de=null}async function ve(t,n){if(M?.resolve(),M=null,typeof t==`number`){M||=dn();let n=M.promise;return e.history.go(t),n}let{path:r,submission:i,error:a}=nt(!1,tt(A.location,A.matches,c,t,n?.fromRouteId,n?.relative),n),o;n?.mask&&(o={pathname:``,search:``,hash:``,...typeof n.mask==`string`?C(n.mask):{...A.location.mask,...n.mask}});let s=A.location,l=x(s,r,n&&n.state,void 0,o);l={...l,...e.history.encodeLocation(l)};let u=n&&n.replace!=null?n.replace:void 0,d=`PUSH`;u===!0?d=`REPLACE`:u===!1||i!=null&&Z(i.formMethod)&&i.formAction===A.location.pathname+A.location.search&&(d=`REPLACE`);let f=n&&`preventScrollReset`in n?n.preventScrollReset===!0:void 0,p=(n&&n.flushSync)===!0,m=Ue({currentLocation:s,nextLocation:l,historyAction:d});if(m){He(m,{state:`blocked`,location:l,proceed(){He(m,{state:`proceeding`,proceed:void 0,reset:void 0,location:l}),ve(t,n)},reset(){let e=new Map(A.blockers);e.set(m,Ye),U({blockers:e})}});return}await be(d,l,{submission:i,pendingError:a,preventScrollReset:f,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:n&&n.defaultShouldRevalidate})}function ye(){de||=dn(),Ae(),U({revalidation:`loading`});let e=de.promise;return A.navigation.state===`submitting`?e:A.navigation.state===`idle`?(be(A.historyAction,A.location,{startUninterruptedRevalidation:!0}),e):(be(j||A.historyAction,A.navigation.location,{overrideNavigation:A.navigation,enableViewTransition:I===!0}),e)}async function be(t,n,r){F&&F.abort(),F=null,j=t,ne=(r&&r.startUninterruptedRevalidation)===!0,Ze(A.location,A.matches),N=(r&&r.preventScrollReset)===!0,I=(r&&r.enableViewTransition)===!0;let i=s.activeRoutes,a=r?.initialHydration&&A.matches&&A.matches.length>0&&!S?A.matches:L(i,n,c,!1,s.branches),o=(r&&r.flushSync)===!0;if(a&&A.initialized&&!re&&Ut(A.location,n)&&!(r&&r.submission&&Z(r.submission.formMethod))){_e(n,{matches:a},{flushSync:o});return}let l=et(a,i,n.pathname);if(l.active&&l.matches&&(a=l.matches),!a){let{error:e,notFoundMatches:t,route:r}=We(n.pathname);_e(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:o});return}let u=r&&r.overrideNavigation?{...r.overrideNavigation,matches:a,historyAction:t}:void 0;F=new AbortController;let d=jt(e.history,n,F.signal,r&&r.submission),f=e.getContext?await e.getContext():new D,p;if(r&&r.pendingError)p=[zt(a).route.id,{type:`error`,error:r.pendingError}];else if(r&&r.submission&&Z(r.submission.formMethod)){let i=await xe(d,n,r.submission,a,t,f,l.active,r&&r.initialHydration===!0,{replace:r.replace,flushSync:o});if(i.shortCircuited)return;if(i.pendingActionResult){let[e,t]=i.pendingActionResult;if(X(t)&&je(t.error)&&t.error.status===404){F=null,_e(n,{matches:i.matches,loaderData:{},errors:{[e]:t.error}});return}}a=i.matches||a,p=i.pendingActionResult,u=rn(n,a,t,r.submission),o=!1,l.active=!1,d=jt(e.history,d.url,d.signal)}let{shortCircuited:m,matches:h,loaderData:g,errors:_,workingFetchers:v}=await Se(d,n,a,t,f,l.active,u,r&&r.submission,r&&r.fetcherSubmission,r&&r.replace,r&&r.initialHydration===!0,o,p,r&&r.callSiteDefaultShouldRevalidate);m||(F=null,_e(n,{matches:h||a,...Rt(p),loaderData:g,errors:_,...v?{fetchers:v}:{}}))}async function xe(t,n,i,l,u,d,f,p,m={}){if(Ae(),U({navigation:an(n,l,u,i)},{flushSync:m.flushSync===!0}),f){let e=await ot(l,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Bt(s.activeRoutes);return{matches:t,pendingActionResult:[n.id,{type:`error`,error:e.error}]}}let t=zt(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:`error`,error:e.error}]}}else if(e.matches)l=e.matches;else{let{notFoundMatches:e,error:t,route:r}=We(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:`error`,error:t}]}}}let h,g=tn(l,n);if(!g.route.action&&!g.route.lazy)h={type:`error`,error:Y(405,{method:t.method,pathname:n.pathname,routeId:g.route.id})};else{let e=await Oe(t,n,St(a,o,t,n,l,g,p?[]:r,d),d,null);if(h=e[g.route.id],!h){for(let t of l)if(e[t.route.id]){h=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}if(Jt(h)){let n;return n=m&&m.replace!=null?m.replace:At(h.response.headers.get(`Location`),new URL(t.url),c,e.history)===A.location.pathname+A.location.search,await De(t,h,!0,{submission:i,replace:n}),{shortCircuited:!0}}if(X(h)){let e=zt(l,g.route.id);return(m&&m.replace)!==!0&&(j=`PUSH`),{matches:l,pendingActionResult:[e.route.id,h,g.route.id]}}return{matches:l,pendingActionResult:[g.route.id,h]}}async function Se(t,n,i,l,u,d,f,p,m,h,g,_,v,y){let b=f||rn(n,i,l,p),x=p||m||nn(b),S=!ne&&!g;if(d){if(S){let e=W(v);U({navigation:b,...e===void 0?{}:{actionData:e}},{flushSync:_})}let e=await ot(i,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Bt(s.activeRoutes);return{matches:t,loaderData:{},errors:{[n.id]:e.error}}}let t=zt(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}else if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:r}=We(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let C=s.activeRoutes,{dsMatches:w,revalidatingFetchers:T}=rt(t,u,a,o,e.history,A,i,x,n,g?[]:r,g===!0,re,ie,V,le,ce,C,c,e.patchRoutesOnNavigation!=null,s.branches,v,y);if(oe=++ae,!e.dataStrategy&&!w.some(e=>e.shouldLoad)&&!w.some(e=>e.route.middleware&&e.route.middleware.length>0)&&T.length===0){let e=new Map(A.fetchers),t=Re(e);return _e(n,{matches:i,loaderData:{},errors:v&&X(v[1])?{[v[0]]:v[1].error}:null,...Rt(v),...t?{fetchers:e}:{}},{flushSync:_}),{shortCircuited:!0}}if(S){let e={};if(!d){e.navigation=b;let t=W(v);t!==void 0&&(e.actionData=t)}T.length>0&&(e.fetchers=Ce(T)),U(e,{flushSync:_})}T.forEach(e=>{J(e.key),e.controller&&z.set(e.key,e.controller)});let E=()=>T.forEach(e=>J(e.key));F&&F.signal.addEventListener(`abort`,E);let{loaderResults:D,fetcherResults:O}=await ke(w,T,t,n,u);if(t.signal.aborted)return{shortCircuited:!0};F&&F.signal.removeEventListener(`abort`,E),T.forEach(e=>z.delete(e.key));let k=Vt(D);if(k)return await De(t,k.result,!0,{replace:h}),{shortCircuited:!0};if(k=Vt(O),k)return ce.add(k.key),await De(t,k.result,!0,{replace:h}),{shortCircuited:!0};let j=new Map(A.fetchers),{loaderData:M,errors:N}=It(A,i,D,v,T,O,j);g&&A.errors&&(N={...A.errors,...N});let P=Re(j),I=ze(oe,j),L=P||I||T.length>0;return{matches:i,loaderData:M,errors:N,...L?{workingFetchers:j}:{}}}function W(e){if(e&&!X(e[1]))return{[e[0]]:e[1].data};if(A.actionData)return Object.keys(A.actionData).length===0?null:A.actionData}function Ce(e){let t=new Map(A.fetchers);return e.forEach(e=>{let n=t.get(e.key),r=on(void 0,n?n.data:void 0);t.set(e.key,r)}),t}async function we(t,n,r,i){J(t);let a=(i&&i.flushSync)===!0,o=s.activeRoutes,l=tt(A.location,A.matches,c,r,n,i?.relative),u=L(o,l,c,!1,s.branches),d=et(u,o,l);if(d.active&&d.matches&&(u=d.matches),!u){K(t,n,Y(404,{pathname:l}),{flushSync:a});return}let{path:f,submission:p,error:m}=nt(!0,l,i);if(m){K(t,n,m,{flushSync:a});return}let h=e.getContext?await e.getContext():new D,g=(i&&i.preventScrollReset)===!0;if(p&&Z(p.formMethod)){await Te(t,n,f,u,h,d.active,a,g,p,i&&i.defaultShouldRevalidate);return}le.set(t,{routeId:n,path:f}),await Ee(t,n,f,u,h,d.active,a,g,p)}async function Te(t,n,i,l,u,d,f,p,m,h){Ae(),le.delete(t),G(t,sn(m,A.fetchers.get(t)),{flushSync:f});let g=new AbortController,v=jt(e.history,i,g.signal,m);if(d){let e=await ot(l,new URL(v.url).pathname,v.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){K(t,n,e.error,{flushSync:f});return}else if(e.matches)l=e.matches;else{K(t,n,Y(404,{pathname:i}),{flushSync:f});return}}let y=tn(l,i);if(!y.route.action&&!y.route.lazy){K(t,n,Y(405,{method:m.formMethod,pathname:i,routeId:n}),{flushSync:f});return}z.set(t,g);let b=ae,x=St(a,o,v,i,l,y,r,u),S=await Oe(v,i,x,u,t),C=S[y.route.id];if(!C){for(let e of x)if(S[e.route.id]){C=S[e.route.id];break}}if(v.signal.aborted){z.get(t)===g&&z.delete(t);return}if(V.has(t)){if(Jt(C)||X(C)){G(t,cn(void 0));return}}else{if(Jt(C))if(z.delete(t),oe>b){G(t,cn(void 0));return}else return ce.add(t),G(t,on(m)),De(v,C,!1,{fetcherSubmission:m,preventScrollReset:p});if(X(C)){K(t,n,C.error);return}}let w=A.navigation.location||A.location,T=jt(e.history,w,g.signal),E=s.activeRoutes,D=A.navigation.state===`idle`?A.matches:L(E,A.navigation.location,c,!1,s.branches);_(D,`Didn't find any matches after fetcher action`);let O=++ae;se.set(t,O);let{dsMatches:k,revalidatingFetchers:M}=rt(T,u,a,o,e.history,A,D,m,w,r,!1,re,ie,V,le,ce,E,c,e.patchRoutesOnNavigation!=null,s.branches,[y.route.id,C],h),N=on(m,C.data),P=new Map(A.fetchers);P.set(t,N),M.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=P.get(t),r=on(void 0,n?n.data:void 0);P.set(t,r),J(t),e.controller&&z.set(t,e.controller)}),U({fetchers:P});let I=()=>M.forEach(e=>J(e.key));g.signal.addEventListener(`abort`,I);let{loaderResults:ee,fetcherResults:R}=await ke(k,M,T,w,u);if(g.signal.aborted)return;g.signal.removeEventListener(`abort`,I),se.delete(t),z.delete(t),M.forEach(e=>z.delete(e.key));let te=A.fetchers.has(t),ne=e=>{if(!te)return e;let n=new Map(e.fetchers);return n.set(t,cn(C.data)),{...e,fetchers:n}},B=Vt(ee);if(B)return A=ne(A),De(T,B.result,!1,{preventScrollReset:p});if(B=Vt(R),B)return ce.add(B.key),A=ne(A),De(T,B.result,!1,{preventScrollReset:p});let H=new Map(A.fetchers);te&&H.set(t,cn(C.data));let{loaderData:ue,errors:de}=It(A,D,ee,void 0,M,R,H);ze(O,H),A.navigation.state===`loading`&&O>oe?(_(j,`Expected pending action`),F&&F.abort(),_e(A.navigation.location,{matches:D,loaderData:ue,errors:de,fetchers:H})):(U({errors:de,loaderData:Lt(A.loaderData,ue,D,de),fetchers:H}),re=!1)}async function Ee(t,n,i,s,c,l,u,d,f){let p=A.fetchers.get(t);G(t,on(f,p?p.data:void 0),{flushSync:u});let m=new AbortController,h=jt(e.history,i,m.signal);if(l){let e=await ot(s,new URL(h.url).pathname,h.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){K(t,n,e.error,{flushSync:u});return}else if(e.matches)s=e.matches;else{K(t,n,Y(404,{pathname:i}),{flushSync:u});return}}let g=tn(s,i);z.set(t,m);let _=ae,v=await Oe(h,i,St(a,o,h,i,s,g,r,c),c,t),y=v[g.route.id];if(!y){for(let e of s)if(v[e.route.id]){y=v[e.route.id];break}}if(z.get(t)===m&&z.delete(t),!h.signal.aborted){if(V.has(t)){G(t,cn(void 0));return}if(Jt(y))if(oe>_){G(t,cn(void 0));return}else{ce.add(t),await De(h,y,!1,{preventScrollReset:d});return}if(X(y)){K(t,n,y.error);return}G(t,cn(y.data))}}async function De(r,i,a,{submission:o,fetcherSubmission:s,preventScrollReset:l,replace:u}={}){a||(M?.resolve(),M=null),i.response.headers.has(`X-Remix-Revalidate`)&&(re=!0);let d=i.response.headers.get(`Location`);_(d,`Expected a Location header on the redirect Response`),d=At(d,new URL(r.url),c,e.history);let f=x(A.location,d,{_isRedirect:!0});if(n){let e=!1;if(i.response.headers.has(`X-Remix-Reload-Document`))e=!0;else if(ge(d)){let n=T(t,d,!0);e=n.origin!==t.location.origin||me(n.pathname,c)==null}if(e){u?t.location.replace(d):t.location.assign(d);return}}F=null;let p=u===!0||i.response.headers.has(`X-Remix-Replace`)?`REPLACE`:`PUSH`,{formMethod:m,formAction:h,formEncType:g}=A.navigation;!o&&!s&&m&&h&&g&&(o=nn(A.navigation));let v=o||s;Ke.has(i.response.status)&&v&&Z(v.formMethod)?await be(p,f,{submission:{...v,formAction:d},preventScrollReset:l||N,enableViewTransition:a?I:void 0}):await be(p,f,{overrideNavigation:rn(f,[],p,o),fetcherSubmission:s,preventScrollReset:l||N,enableViewTransition:a?I:void 0})}async function Oe(e,t,n,r,i){let a,o={};try{a=await Ct(l,e,t,n,i,r,!1)}catch(e){return n.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:`error`,error:e}}),o}if(e.signal.aborted)return o;if(!Z(e.method))for(let e of n){if(a[e.route.id]?.type===`error`)break;!a.hasOwnProperty(e.route.id)&&!A.loaderData.hasOwnProperty(e.route.id)&&(!A.errors||!A.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(a[e.route.id]={type:`error`,result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,r]of Object.entries(a))if(qt(r)){let i=r.result;o[t]={type:`redirect`,response:Dt(i,e,t,n,c)}}else o[t]=await Et(r);return o}async function ke(e,t,n,r,i){let a=Oe(n,r,e,i,null),o=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await Oe(e.request,e.path,e.matches,i,e.key))[e.match.route.id];return{[e.key]:t}}else return Promise.resolve({[e.key]:{type:`error`,error:Y(404,{pathname:e.path})}})}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function Ae(){re=!0,le.forEach((e,t)=>{z.has(t)&&ie.add(t),J(t)})}function G(e,t,n={}){let r=new Map(A.fetchers);r.set(e,t),U({fetchers:r},{flushSync:(n&&n.flushSync)===!0})}function K(e,t,n,r={}){let i=zt(A.matches,t),a=new Map(A.fetchers);q(a,e),U({errors:{[i.route.id]:n},fetchers:a},{flushSync:(r&&r.flushSync)===!0})}function Me(e){return B.set(e,(B.get(e)||0)+1),V.has(e)&&V.delete(e),A.fetchers.get(e)||Je}function Ne(e,t){J(e,t?.reason),G(e,cn(null))}function q(e,t){let n=A.fetchers.get(t);z.has(t)&&!(n&&n.state===`loading`&&se.has(t))&&J(t),le.delete(t),se.delete(t),ce.delete(t),V.delete(t),ie.delete(t),e.delete(t)}function Ie(e){let t=(B.get(e)||0)-1;t<=0?(B.delete(e),V.add(e)):B.set(e,t),U({fetchers:new Map(A.fetchers)})}function J(e,t){let n=z.get(e);n&&(n.abort(t),z.delete(e))}function Le(e,t){for(let n of e){let e=t.get(n);_(e,`Expected fetcher: ${n}`);let r=cn(e.data);t.set(n,r)}}function Re(e){let t=[],n=!1;for(let r of ce){let i=e.get(r);_(i,`Expected fetcher: ${r}`),i.state===`loading`&&(ce.delete(r),t.push(r),n=!0)}return Le(t,e),n}function ze(e,t){let n=[];for(let[r,i]of se)if(i<e){let e=t.get(r);_(e,`Expected fetcher: ${r}`),e.state===`loading`&&(J(r),se.delete(r),n.push(r))}return Le(n,t),n.length>0}function Be(e,t){let n=A.blockers.get(e)||Ye;return H.get(e)!==t&&H.set(e,t),n}function Ve(e){A.blockers.delete(e),H.delete(e)}function He(e,t){let n=A.blockers.get(e)||Ye;_(n.state===`unblocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`proceeding`||n.state===`blocked`&&t.state===`unblocked`||n.state===`proceeding`&&t.state===`unblocked`,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(A.blockers);r.set(e,t),U({blockers:r})}function Ue({currentLocation:e,nextLocation:t,historyAction:n}){if(H.size===0)return;H.size>1&&v(!1,`A router only supports one blocker at a time`);let r=Array.from(H.entries()),[i,a]=r[r.length-1],o=A.blockers.get(i);if(!(o&&o.state===`proceeding`)&&a({currentLocation:e,nextLocation:t,historyAction:n}))return i}function We(e){let t=Y(404,{pathname:e}),n=s.activeRoutes,{matches:r,route:i}=Bt(n);return{notFoundMatches:r,route:i,error:t}}function Ge(e,t,n){if(m=e,g=t,h=n||null,!y&&A.navigation===qe){y=!0;let e=$e(A.location,A.matches);e!=null&&U({restoreScrollPosition:e})}return()=>{m=null,g=null,h=null}}function Xe(e,t){return h&&h(e,t.map(e=>ee(e,A.loaderData)))||e.key}function Ze(e,t){if(m&&g){let n=Xe(e,t);m[n]=g()}}function $e(e,t){if(m){let n=Xe(e,t),r=m[n];if(typeof r==`number`)return r}return null}function et(t,n,r){if(e.patchRoutesOnNavigation){let e=s.branches;if(!t)return{active:!0,matches:L(n,r,c,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:L(n,r,c,!0,e)}}return{active:!1,matches:null}}async function ot(t,n,r,i){if(!e.patchRoutesOnNavigation)return{type:`success`,matches:t};let l=t;for(;;){let t=o;try{await e.patchRoutesOnNavigation({signal:r,path:n,matches:l,fetcherKey:i,patch:(e,n)=>{r.aborted||lt(e,n,s,t,a,!1)}})}catch(e){return{type:`error`,error:e,partialMatches:l}}if(r.aborted)return{type:`aborted`};let u=s.branches,d=L(s.activeRoutes,n,c,!1,u),f=null;if(d&&(Object.keys(d[0].params).length===0||(f=L(s.activeRoutes,n,c,!0,u),!(f&&l.length<f.length&&st(l,f.slice(0,l.length))))))return{type:`success`,matches:d};if(f||=L(s.activeRoutes,n,c,!0,u),!f||st(l,f))return{type:`success`,matches:null};l=f}}function st(e,t){return e.length===t.length&&e.every((e,n)=>e.route.id===t[n].route.id)}function ct(e){o={},s.setHmrRoutes(P(e,a,void 0,o))}function ut(e,t,n=!1){lt(e,t,s,o,a,n),s.hasHMRRoutes||U({})}return k={get basename(){return c},get future(){return u},get state(){return A},get routes(){return s.stableRoutes},get branches(){return s.branches},get manifest(){return o},get window(){return t},initialize:fe,subscribe:he,enableScrollRestoration:Ge,navigate:ve,fetch:we,revalidate:ye,createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Me,resetFetcher:Ne,deleteFetcher:Ie,dispose:pe,getBlocker:Be,deleteBlocker:Ve,patchRoutes:ut,_internalFetchControllers:z,_internalSetRoutes:ct,_internalSetStateDoNotUseOrYouWillBreakYourApp(e){U(e)}},e.instrumentations&&(k=Fe(k,e.instrumentations.map(e=>e.router).filter(Boolean))),k}function et(e){return e!=null&&(`formData`in e&&e.formData!=null||`body`in e&&e.body!==void 0)}function tt(e,t,n,r,i,a){let o,s;if(i){o=[];for(let e of t)if(o.push(e),e.route.id===i){s=e;break}}else o=t,s=t[t.length-1];let c=xe(r||`.`,be(o),me(e.pathname,n)||e.pathname,a===`path`);if(r??(c.search=e.search,c.hash=e.hash),(r==null||r===``||r===`.`)&&s){let e=en(c.search);if(s.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,`?index&`):`?index`;else if(!s.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll(`index`);e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();c.search=n?`?${n}`:``}}return n!==`/`&&(c.pathname=he({basename:n,pathname:c.pathname})),S(c)}function nt(e,t,n){if(!n||!et(n))return{path:t};if(n.formMethod&&!$t(n.formMethod))return{path:t,error:Y(405,{method:n.formMethod})};let r=()=>({path:t,error:Y(400,{type:`invalid-body`})}),i=(n.formMethod||`get`).toUpperCase(),a=Ht(t);if(n.body!==void 0){if(n.formEncType===`text/plain`){if(!Z(i))return r();let e=typeof n.body==`string`?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,[t,n])=>`${e}${t}=${n}\n`,``):String(n.body);return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}else if(n.formEncType===`application/json`){if(!Z(i))return r();try{let e=typeof n.body==`string`?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch{return r()}}}_(typeof FormData==`function`,`FormData is not available in this environment`);let o,s;if(n.formData)o=Nt(n.formData),s=n.formData;else if(n.body instanceof FormData)o=Nt(n.body),s=n.body;else if(n.body instanceof URLSearchParams)o=n.body,s=Pt(o);else if(n.body==null)o=new URLSearchParams,s=new FormData;else try{o=new URLSearchParams(n.body),s=Pt(o)}catch{return r()}let c={formMethod:i,formAction:a,formEncType:n&&n.formEncType||`application/x-www-form-urlencoded`,formData:s,json:void 0,text:void 0};if(Z(c.formMethod))return{path:t,submission:c};let l=C(t);return e&&l.search&&en(l.search)&&o.append(`index`,``),l.search=`?${o}`,{path:S(l),submission:c}}function rt(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=b?X(b[1])?b[1].error:b[1].data:void 0,C=i.createURL(a.location),w=i.createURL(c),T;if(u&&a.errors){let e=Object.keys(a.errors)[0];T=o.findIndex(t=>t.route.id===e)}else if(b&&X(b[1])){let e=b[0];T=o.findIndex(t=>t.route.id===e)-1}let E=b?b[1].statusCode:void 0,D=E&&E>=400,O={currentUrl:C,currentParams:a.matches[0]?.params||{},nextUrl:w,nextParams:o[0].params,...s,actionResult:S,actionStatus:E},k=K(o),A=o.map((i,o)=>{let{route:s}=i,f=null;if(T!=null&&o>T)f=!1;else if(s.lazy)f=!0;else if(!it(s))f=!1;else if(u){let{shouldLoad:e}=at(s,a.loaderData,a.errors);f=e}else ot(a.loaderData,a.matches[o],i)&&(f=!0);if(f!==null)return xt(n,r,e,c,k,i,l,t,f);let p=!1;typeof x==`boolean`?p=x:D?p=!1:d||C.pathname+C.search===w.pathname+w.search?p=!0:C.search===w.search?st(a.matches[o],i)&&(p=!0):p=!0;let m={...O,defaultShouldRevalidate:p};return xt(n,r,e,c,k,i,l,t,ct(i,m),m,x)}),j=[];return m.forEach((e,s)=>{if(u||!o.some(t=>t.route.id===e.routeId)||p.has(s))return;let c=a.fetchers.get(s),m=c&&c.state!==`idle`&&c.data===void 0,b=L(g,e.path,_??`/`,!1,y);if(!b){if(v&&m)return;j.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(h.has(s))return;let S=tn(b,e.path),C=new AbortController,w=jt(i,e.path,C.signal),T=null;if(f.has(s))f.delete(s),T=St(n,r,w,e.path,b,S,l,t);else if(m)d&&(T=St(n,r,w,e.path,b,S,l,t));else{let i;i=typeof x==`boolean`?x:D?!1:d;let a={...O,defaultShouldRevalidate:i};ct(S,a)&&(T=St(n,r,w,e.path,b,S,l,t,a))}T&&j.push({key:s,routeId:e.routeId,path:e.path,matches:T,match:S,request:w,controller:C})}),{dsMatches:A,revalidatingFetchers:j}}function it(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function at(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!it(e))return{shouldLoad:!1,renderFallback:!1};let r=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!r&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader==`function`&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!r};let a=!r&&!i;return{shouldLoad:a,renderFallback:a}}function ot(e,t,n){let r=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return r||i}function st(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith(`*`)&&e.params[`*`]!==t.params[`*`]}function ct(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n==`boolean`)return n}return t.defaultShouldRevalidate}function lt(e,t,n,r,i,a){let o;if(e){let t=r[e];_(t,`No route found to patch children into: routeId = ${e}`),t.children||=[],o=t.children}else o=n.activeRoutes;let s=[],c=[];if(t.forEach(e=>{let t=o.find(t=>ut(e,t));t?c.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=P(s,i,[e||`_`,`patch`,String(o?.length||`0`)],r);o.push(...t)}if(a&&c.length>0)for(let e=0;e<c.length;e++){let{existingRoute:t,newRoute:n}=c[e],r=t,[a]=P([n],i,[],{},!0);Object.assign(r,{element:a.element?a.element:r.element,errorElement:a.errorElement?a.errorElement:r.errorElement,hydrateFallbackElement:a.hydrateFallbackElement?a.hydrateFallbackElement:r.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function ut(e,t){return`id`in e&&`id`in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((e,n)=>t.children?.some(t=>ut(e,t)))??!1:!1}var dt=new WeakMap,ft=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let i=n[t.id];if(_(i,`No route found in manifest`),!i.lazy||typeof i.lazy!=`object`)return;let a=i.lazy[e];if(!a)return;let o=dt.get(i);o||(o={},dt.set(i,o));let s=o[e];if(s)return s;let c=(async()=>{let t=k(e),n=i[e]!==void 0;if(t)v(!t,`Route property `+e+` is not a supported lazy route property. This property will be ignored.`),o[e]=Promise.resolve();else if(n)v(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await a();t!=null&&(Object.assign(i,{[e]:t}),Object.assign(i,r(i)))}typeof i.lazy==`object`&&(i.lazy[e]=void 0,Object.values(i.lazy).every(e=>e===void 0)&&(i.lazy=void 0))})();return o[e]=c,c},pt=new WeakMap;function mt(e,t,n,r,i){let a=n[e.id];if(_(a,`No route found in manifest`),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy==`function`){let t=pt.get(a);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{_(typeof e.lazy==`function`,`No lazy route function found`);let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(r===void 0)continue;let i=j(e),o=a[e]!==void 0;i?v(!i,`Route property `+e+` is not a supported property to be returned from a lazy route function. This property will be ignored.`):o?v(!o,`Route "${a.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}Object.assign(a,n),Object.assign(a,{...r(a),lazy:void 0})})();return pt.set(a,n),n.catch(()=>{}),{lazyRoutePromise:n,lazyHandlerPromise:n}}let o=Object.keys(e.lazy),s=[],c;for(let a of o){if(i&&i.includes(a))continue;let o=ft({key:a,route:e,manifest:n,mapRouteProperties:r});o&&(s.push(o),a===t&&(c=o))}let l=s.length>0?Promise.all(s).then(()=>{}):void 0;return l?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:c}}async function ht(e){let t=e.matches.filter(e=>e.shouldLoad),n={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{n[t[r].route.id]=e}),n}async function gt(e){return e.matches.some(e=>e.route.middleware)?_t(e,()=>ht(e)):ht(e)}function _t(e,t){return vt(e,t,e=>{if(Qt(e))throw e;return e},Gt,n);async function n(t,n,r){if(r)return Object.assign(r.value,{[n]:{type:`error`,result:t}});{let{matches:r}=e,i=Math.min(Math.max(r.findIndex(e=>e.route.id===n),0),Math.max(r.findIndex(e=>e.shouldCallHandler()),0)),a=r[i].route.id;for(let e of r.slice(0,i+1))try{await e._lazyPromises?.route}catch{a=e.route.id;break}return{[zt(r,a).route.id]:{type:`error`,result:t}}}}}async function vt(e,t,n,r,i){let{matches:a,...o}=e;return await yt(o,a.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,n,r,i)}async function yt(e,t,n,r,i,a,o=0){let{request:s}=e;if(s.signal.aborted)throw s.signal.reason??Error(`Request aborted: ${s.method} ${s.url}`);let c=t[o];if(!c)return await n();let[l,u]=c,d,f=async()=>{if(d)throw Error("You may only call `next()` once per middleware");try{return d={value:await yt(e,t,n,r,i,a,o+1)},d.value}catch(e){return d={value:await a(e,l,d)},d.value}};try{let t=await u(e,f),n=t==null?void 0:r(t);return i(n)?n:d?n??d.value:(d={value:await f()},d.value)}catch(e){return await a(e,l,d)}}function bt(e,t,n,r,i){let a=ft({key:`middleware`,route:r.route,manifest:t,mapRouteProperties:e}),o=mt(r.route,Z(n.method)?`action`:`loader`,t,e,i);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function xt(e,t,n,r,i,a,o,s,c,l=null,u){let d=!1,f=bt(e,t,n,a,o);return{...a,_lazyPromises:f,shouldLoad:c,shouldRevalidateArgs:l,shouldCallHandler(e){return d=!0,l?typeof u==`boolean`?ct(a,{...l,defaultShouldRevalidate:u}):typeof e==`boolean`?ct(a,{...l,defaultShouldRevalidate:e}):ct(a,l):c},resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,u=d||c||e&&!Z(n.method)&&(t||o),p=l&&l.length>0&&!o&&!t;return u&&(Z(n.method)||!p)?wt({request:n,path:r,pattern:i,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:`data`,result:void 0})}}}function St(e,t,n,r,i,a,o,s,c=null){return i.map(l=>l.route.id===a.route.id?xt(e,t,n,r,K(i),l,o,s,!0,c):{...l,shouldLoad:!1,shouldRevalidateArgs:c,shouldCallHandler:()=>!1,_lazyPromises:bt(e,t,n,l,o),resolve:()=>Promise.resolve({type:`data`,result:void 0})})}async function Ct(e,t,n,r,i,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let s={request:t,url:Mt(t,n),pattern:K(r),params:r[0].params,context:a,matches:r},c=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=s;return _t(t,()=>e({...t,fetcherKey:i,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))},l=await e({...s,fetcherKey:i,runClientMiddleware:c});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch{}return l}async function wt({request:e,path:t,pattern:n,match:r,lazyHandlerPromise:i,lazyRoutePromise:a,handlerOverride:o,scopedContext:s}){let c,l,u=Z(e.method),d=u?`action`:`loader`,f=i=>{let a,c=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener(`abort`,l);let u=a=>typeof i==`function`?i({request:e,url:Mt(e,t),pattern:n,params:r.params,context:s},...a===void 0?[]:[a]):Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${r.route.id}]`)),f=(async()=>{try{return{type:`data`,result:await(o?o(e=>u(e)):u())}}catch(e){return{type:`error`,result:e}}})();return Promise.race([f,c])};try{let t=u?r.route.action:r.route.loader;if(i||a)if(t){let e,[n]=await Promise.all([f(t).catch(t=>{e=t}),i,a]);if(e!==void 0)throw e;c=n}else{await i;let t=u?r.route.action:r.route.loader;if(t)[c]=await Promise.all([f(t),a]);else if(d===`action`){let t=new URL(e.url),n=t.pathname+t.search;throw Y(405,{method:e.method,pathname:n,routeId:r.route.id})}else return{type:`data`,result:void 0}}else if(t)c=await f(t);else{let t=new URL(e.url);throw Y(404,{pathname:t.pathname+t.search})}}catch(e){return{type:`error`,result:e}}finally{l&&e.signal.removeEventListener(`abort`,l)}return c}async function Tt(e){let t=e.headers.get(`Content-Type`);return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function Et(e){let{result:t,type:n}=e;if(Xt(t)){let e;try{e=await Tt(t)}catch(e){return{type:`error`,error:e}}return n===`error`?{type:`error`,error:new G(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:`data`,data:e,statusCode:t.status,headers:t.headers}}return n===`error`?Yt(t)?t.data instanceof Error?{type:`error`,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:Wt(t),statusCode:je(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:t,statusCode:je(t)?t.status:void 0}:Yt(t)?{type:`data`,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`data`,data:t}}function Dt(e,t,n,r,i){let a=e.headers.get(`Location`);if(_(a,`Redirects returned/thrown from loaders/actions must have a Location header`),!ge(a)){let o=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=tt(new URL(t.url),o,i,a),e.headers.set(`Location`,a)}return e}var Ot=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function kt(e){try{return Ot.includes(new URL(e).protocol)}catch{return!1}}function At(e,t,n,r){if(ge(e)){let r=e,i=f.test(r)?new URL(p(r,t.protocol)):new URL(r);if(kt(i.toString()))throw Error(`Invalid redirect location`);let a=me(i.pathname,n)!=null;if(i.origin===t.origin&&a)return Se(i.pathname)+i.search+i.hash}try{if(kt(r.createURL(e).toString()))throw Error(`Invalid redirect location`)}catch{}return e}function jt(e,t,n,r){let i=e.createURL(Ht(t)).toString(),a={signal:n};if(r&&Z(r.formMethod)){let{formMethod:e,formEncType:t}=r;a.method=e.toUpperCase(),t===`application/json`?(a.headers=new Headers({"Content-Type":t}),a.body=JSON.stringify(r.json)):t===`text/plain`?a.body=r.text:t===`application/x-www-form-urlencoded`&&r.formData?a.body=Nt(r.formData):a.body=r.formData}return new Request(i,a)}function Mt(e,t){let n=new URL(e.url),r=typeof t==`string`?C(t):t;if(n.pathname=r.pathname||`/`,r.search){let e=new URLSearchParams(r.search),t=e.getAll(`index`);e.delete(`index`);for(let n of t.filter(Boolean))e.append(`index`,n);let i=e.toString();n.search=i?`?${i}`:``}else n.search=``;return n.hash=r.hash||``,n}function Nt(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r==`string`?r:r.name);return t}function Pt(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Ft(e,t,n,r=!1,i=!1){let a={},o=null,s,c=!1,l={},u=n&&X(n[1])?n[1].error:void 0;return e.forEach(n=>{if(!(n.route.id in t))return;let d=n.route.id,f=t[d];if(_(!Jt(f),`Cannot handle redirect results in processLoaderData`),X(f)){let t=f.error;if(u!==void 0&&(t=u,u=void 0),o||={},i)o[d]=t;else{let n=zt(e,d);o[n.route.id]??(o[n.route.id]=t)}r||(a[d]=Ze),c||(c=!0,s=je(f.error)?f.error.status:500),f.headers&&(l[d]=f.headers)}else a[d]=f.data,f.statusCode&&f.statusCode!==200&&!c&&(s=f.statusCode),f.headers&&(l[d]=f.headers)}),u!==void 0&&n&&(o={[n[0]]:u},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:s||200,loaderHeaders:l}}function It(e,t,n,r,i,a,o){let{loaderData:s,errors:c}=Ft(t,n,r);return i.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:n,match:r,controller:i}=t;if(i&&i.signal.aborted)return;let s=a[n];if(_(s,`Did not find corresponding fetcher result`),X(s)){let t=zt(e.matches,r?.route.id);c&&c[t.route.id]||(c={...c,[t.route.id]:s.error}),o.delete(n)}else if(Jt(s))_(!1,`Unhandled fetcher revalidation redirect`);else{let e=cn(s.data);o.set(n,e)}}),{loaderData:s,errors:c}}function Lt(e,t,n,r){let i=Object.entries(t).filter(([,e])=>e!==Ze).reduce((e,[t,n])=>(e[t]=n,e),{});for(let a of n){let n=a.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&a.route.loader&&(i[n]=e[n]),r&&r.hasOwnProperty(n))break}return i}function Rt(e){return e?X(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function zt(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>e.route.ErrorBoundary!=null||e.route.errorElement!=null)||e[0]}function Bt(e){let t=e.length===1?e[0]:e.find(e=>e.index||!e.path||e.path===`/`)||{id:`__shim-error-route__`};return{matches:[{params:{},pathname:``,pathnameBase:``,route:t}],route:t}}function Y(e,{pathname:t,routeId:n,method:r,type:i,message:a}={}){let o=`Unknown Server Error`,s=`Unknown @remix-run/router error`;return e===400?(o=`Bad Request`,r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i===`invalid-body`&&(s=`Unable to encode submission body`)):e===403?(o=`Forbidden`,s=`Route "${n}" does not match URL "${t}"`):e===404?(o=`Not Found`,s=`No route matches URL "${t}"`):e===405&&(o=`Method Not Allowed`,r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new G(e||500,o,Error(s),!0)}function Vt(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(Jt(r))return{key:n,result:r}}}function Ht(e){return S({...typeof e==`string`?C(e):e,hash:``})}function Ut(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===``?t.hash!==``:e.hash===t.hash?!0:t.hash!==``}function Wt(e){return new G(e.init?.status??500,e.init?.statusText??`Internal Server Error`,e.data)}function Gt(e){return typeof e==`object`&&!!e&&Object.entries(e).every(([e,t])=>typeof e==`string`&&Kt(t))}function Kt(e){return typeof e==`object`&&!!e&&`type`in e&&`result`in e&&(e.type===`data`||e.type===`error`)}function qt(e){return Xt(e.result)&&Ge.has(e.result.status)}function X(e){return e.type===`error`}function Jt(e){return(e&&e.type)===`redirect`}function Yt(e){return typeof e==`object`&&!!e&&`type`in e&&`data`in e&&`init`in e&&e.type===`DataWithResponseInit`}function Xt(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.headers==`object`&&e.body!==void 0}function Zt(e){return Ge.has(e)}function Qt(e){return Xt(e)&&Zt(e.status)&&e.headers.has(`Location`)}function $t(e){return We.has(e.toUpperCase())}function Z(e){return He.has(e.toUpperCase())}function en(e){return new URLSearchParams(e).getAll(`index`).some(e=>e===``)}function tn(e,t){let n=typeof t==`string`?C(t).search:t.search;if(e[e.length-1].route.index&&en(n||``))return e[e.length-1];let r=ye(e);return r[r.length-1]}function nn(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function rn(e,t,n,r){return r?{state:`loading`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}:{state:`loading`,location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function an(e,t,n,r){return{state:`submitting`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}}function on(e,t){return e?{state:`loading`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:`loading`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function sn(e,t){return{state:`submitting`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function cn(e){return{state:`idle`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ln(e,t){try{let n=e.sessionStorage.getItem(Xe);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch{}}function un(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(Xe,JSON.stringify(n))}catch(e){v(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}function dn(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var fn=E.createContext(null);fn.displayName=`DataRouter`;var pn=E.createContext(null);pn.displayName=`DataRouterState`;var mn=E.createContext(!1);function hn(){return E.useContext(mn)}var gn=E.createContext({isTransitioning:!1});gn.displayName=`ViewTransition`;var _n=E.createContext(new Map);_n.displayName=`Fetchers`;var vn=E.createContext(null);vn.displayName=`Await`;var yn=E.createContext(null);yn.displayName=`Navigation`;var bn=E.createContext(null);bn.displayName=`Location`;var Q=E.createContext({outlet:null,matches:[],isDataRoute:!1});Q.displayName=`Route`;var xn=E.createContext(null);xn.displayName=`RouteError`;var Sn=`REACT_ROUTER_ERROR`,Cn=`REDIRECT`,wn=`ROUTE_ERROR_RESPONSE`;function Tn(e){if(e.startsWith(`${Sn}:${Cn}:{`))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(`${Sn}:${wn}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new G(t.status,t.statusText,t.data)}catch{}}function Dn(e,{relative:t}={}){_(On(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=E.useContext(yn),{hash:i,pathname:a,search:o}=In(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:W([n,a])),r.createHref({pathname:s,search:o,hash:i})}function On(){return E.useContext(bn)!=null}function kn(){return _(On(),`useLocation() may be used only in the context of a <Router> component.`),E.useContext(bn).location}var An=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function jn(){let{isDataRoute:e}=E.useContext(Q);return e?ar():Mn()}function Mn(){_(On(),`useNavigate() may be used only in the context of a <Router> component.`);let e=E.useContext(fn),{basename:t,navigator:n}=E.useContext(yn),{matches:r}=E.useContext(Q),{pathname:i}=kn(),a=JSON.stringify(be(r)),o=E.useRef(!1);return E.useLayoutEffect(()=>{o.current=!0}),E.useCallback((r,s={})=>{if(v(o.current,An),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=xe(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:W([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var Nn=E.createContext(null);function Pn(e){let t=E.useContext(Q).outlet;return E.useMemo(()=>t&&E.createElement(Nn.Provider,{value:e},t),[t,e])}function Fn(){let{matches:e}=E.useContext(Q);return e[e.length-1]?.params??{}}function In(e,{relative:t}={}){let{matches:n}=E.useContext(Q),{pathname:r}=kn(),i=JSON.stringify(be(n));return E.useMemo(()=>xe(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function Ln(e,t,n){_(On(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=E.useContext(yn),{matches:i}=E.useContext(Q),a=i[i.length-1],o=a?a.params:{};a&&a.pathname;let s=a?a.pathnameBase:`/`;a&&a.route;let c=kn(),l;if(t){let e=typeof t==`string`?C(t):t;_(s===`/`||e.pathname?.startsWith(s),`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 "${s}" but pathname "${e.pathname}" was given in the \`location\` prop.`),l=e}else l=c;let u=l.pathname||`/`,d=u;if(s!==`/`){let e=s.replace(/^\//,``).split(`/`);d=`/`+u.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let f=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):I(e,{pathname:d}),p=Wn(f&&f.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:W([s,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?s:W([s,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&p?E.createElement(bn.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...l},navigationType:`POP`}},p):p}function Rn(){let e=nr(),t=je(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null;return E.createElement(E.Fragment,null,E.createElement(`h2`,null,`Unexpected Application Error!`),E.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?E.createElement(`pre`,{style:{padding:`0.5rem`,backgroundColor:`rgba(200,200,200, 0.5)`}},n):null,null)}var zn=E.createElement(Rn,null),Bn=class extends E.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static contextType=mn;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:E.createElement(Q.Provider,{value:this.props.routeContext},E.createElement(xn.Provider,{value:e,children:this.props.component}));return this.context?E.createElement(Hn,{error:e},t):t}},Vn=new WeakMap;function Hn({children:e,error:t}){let{basename:n}=E.useContext(yn);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=Tn(t.digest);if(e){let r=Vn.get(t);if(r)throw r;let i=Ne(e.location,n),a=i.absoluteURL||i.to;if(kt(a))throw Error(`Invalid redirect location`);if(Me&&!Vn.get(t))if(i.isExternal||e.reloadDocument)window.location.href=a;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw Vn.set(t,n),n}return E.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${a}`})}}return e}function Un({routeContext:e,match:t,children:n}){let r=E.useContext(fn);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),E.createElement(Q.Provider,{value:e},n)}function Wn(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);_(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:K(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||zn,o&&(s<0&&c===0?(sr(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?E.createElement(n.route.Component,null):n.route.element?n.route.element:e,E.createElement(Un,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?E.createElement(Bn,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function Gn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Kn(e){let t=E.useContext(fn);return _(t,Gn(e)),t}function qn(e){let t=E.useContext(pn);return _(t,Gn(e)),t}function Jn(e){let t=E.useContext(Q);return _(t,Gn(e)),t}function Yn(e){let t=Jn(e),n=t.matches[t.matches.length-1];return _(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Xn(){return Yn(`useRouteId`)}function Zn(){let e=qn(`useNavigation`);return E.useMemo(()=>{let{matches:t,historyAction:n,...r}=e.navigation;return r},[e.navigation])}function Qn(){let{matches:e,loaderData:t}=qn(`useMatches`);return E.useMemo(()=>e.map(e=>ee(e,t)),[e,t])}function $n(){let e=qn(`useLoaderData`),t=Yn(`useLoaderData`);return e.loaderData[t]}function er(e){return qn(`useRouteLoaderData`).loaderData[e]}function tr(){let e=qn(`useActionData`),t=Yn(`useLoaderData`);return e.actionData?e.actionData[t]:void 0}function nr(){let e=E.useContext(xn),t=qn(`useRouteError`),n=Yn(`useRouteError`);return e===void 0?t.errors?.[n]:e}var rr=0;function ir(e){let{router:t,basename:n}=Kn(`useBlocker`),r=qn(`useBlocker`),[i,a]=E.useState(``),o=E.useCallback(t=>{if(typeof e!=`function`)return!!e;if(n===`/`)return e(t);let{currentLocation:r,nextLocation:i,historyAction:a}=t;return e({currentLocation:{...r,pathname:me(r.pathname,n)||r.pathname},nextLocation:{...i,pathname:me(i.pathname,n)||i.pathname},historyAction:a})},[n,e]);return E.useEffect(()=>{let e=String(++rr);return a(e),()=>t.deleteBlocker(e)},[t]),E.useEffect(()=>{i!==``&&t.getBlocker(i,o)},[t,i,o]),i&&r.blockers.has(i)?r.blockers.get(i):Ye}function ar(){let{router:e}=Kn(`useNavigate`),t=Yn(`useNavigate`),n=E.useRef(!1);return E.useLayoutEffect(()=>{n.current=!0}),E.useCallback(async(r,i={})=>{v(n.current,An),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var or={};function sr(e,t,n){!t&&!or[e]&&(or[e]=!0,v(!1,n))}var cr={};function lr(e,t){!e&&!cr[t]&&(cr[t]=!0,console.warn(t))}var ur=[`HydrateFallback`,`hydrateFallbackElement`],dr=class{status=`pending`;promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function fr({router:e,flushSync:t,onError:n,useTransitions:r}){r=hn()||r;let[i,a]=E.useState(e.state),[o,s]=(0,E.useOptimistic)(i),[c,l]=E.useState(),[u,d]=E.useState({isTransitioning:!1}),[f,p]=E.useState(),[m,h]=E.useState(),[g,_]=E.useState(),v=E.useRef(new Map),y=E.useCallback((i,{deletedFetchers:o,newErrors:c,flushSync:u,viewTransitionOpts:g})=>{c&&n&&Object.values(c).forEach(e=>n(e,{location:i.location,params:i.matches[0]?.params??{},pattern:K(i.matches)})),i.fetchers.forEach((e,t)=>{e.data!==void 0&&v.current.set(t,e.data)}),o.forEach(e=>v.current.delete(e)),lr(u===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let y=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(lr(g==null||y,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!g||!y){t&&u?t(()=>a(i)):r===!1?a(i):E.startTransition(()=>{r===!0&&s(e=>pr(e,i)),a(i)});return}if(t&&u){t(()=>{m&&(f?.resolve(),m.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:g.currentLocation,nextLocation:g.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>a(i))});n.finished.finally(()=>{t(()=>{p(void 0),h(void 0),l(void 0),d({isTransitioning:!1})})}),t(()=>h(n));return}m?(f?.resolve(),m.skipTransition(),_({state:i,currentLocation:g.currentLocation,nextLocation:g.nextLocation})):(l(i),d({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}))},[e.window,t,m,f,r,s,n]);E.useLayoutEffect(()=>e.subscribe(y),[e,y]),E.useEffect(()=>{u.isTransitioning&&!u.flushSync&&p(new dr)},[u]),E.useEffect(()=>{if(f&&c&&e.window){let t=c,n=f.promise,i=e.window.document.startViewTransition(async()=>{r===!1?a(t):E.startTransition(()=>{r===!0&&s(e=>pr(e,t)),a(t)}),await n});i.finished.finally(()=>{p(void 0),h(void 0),l(void 0),d({isTransitioning:!1})}),h(i)}},[c,f,e.window,r,s]),E.useEffect(()=>{f&&c&&o.location.key===c.location.key&&f.resolve()},[f,m,o.location,c]),E.useEffect(()=>{!u.isTransitioning&&g&&(l(g.state),d({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),_(void 0))},[u.isTransitioning,g]);let b=E.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),x=e.basename||`/`,S=E.useMemo(()=>({router:e,navigator:b,static:!1,basename:x,onError:n}),[e,b,x,n]);return E.createElement(E.Fragment,null,E.createElement(fn.Provider,{value:S},E.createElement(pn.Provider,{value:o},E.createElement(_n.Provider,{value:v.current},E.createElement(gn.Provider,{value:u},E.createElement(_r,{basename:x,location:o.location,navigationType:o.historyAction,navigator:b,useTransitions:r},E.createElement(mr,{routes:e.routes,manifest:e.manifest,future:e.future,state:o,isStatic:!1,onError:n})))))),null)}function pr(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var mr=E.memo(hr);function hr({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Ln(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function gr(e){return Pn(e.context)}function _r({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){_(!On(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=E.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=C(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=E.useMemo(()=>{let e=me(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return v(h!=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.`),h==null?null:E.createElement(yn.Provider,{value:c},E.createElement(bn.Provider,{children:t,value:h}))}E.Component;function vr(){return{params:Fn(),loaderData:$n(),actionData:tr(),matches:Qn()}}function yr(e){return function(){let t=vr();return E.createElement(e,t)}}function br(){return{params:Fn(),loaderData:$n(),actionData:tr(),error:nr()}}function xr(e){return function(){let t=br();return E.createElement(e,t)}}function $(e,t){if(e===!1||e==null)throw Error(t)}var Sr={"&":`\\u0026`,">":`\\u003e`,"<":`\\u003c`,"\u2028":`\\u2028`,"\u2029":`\\u2029`},Cr=/[&><\u2028\u2029]/g;function wr(e){return e.replace(Cr,e=>Sr[e])}var Tr=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function Er(){let e=new TextDecoder,t=``;return new TransformStream({transform(n,r){let i=e.decode(n,{stream:!0}),a=(t+i).split(`
2
- `);t=a.pop()||``;for(let e of a)r.enqueue(e)},flush(e){t&&e.enqueue(t)}})}var Dr=typeof window<`u`?window:typeof globalThis<`u`?globalThis:void 0;function Or(e){let{hydrated:t,values:n}=this;if(typeof e==`number`)return kr.call(this,e);if(!Array.isArray(e)||!e.length)throw SyntaxError();let r=n.length;for(let t of e)n.push(t);return t.length=n.length,kr.call(this,r)}function kr(e){let{hydrated:t,values:n,deferred:r,plugins:i}=this,a,o=[[e,e=>{a=e}]],s=[];for(;o.length>0;){let[e,a]=o.pop();switch(e){case-7:a(void 0);continue;case-5:a(null);continue;case-2:a(NaN);continue;case-6:a(1/0);continue;case-3:a(-1/0);continue;case-4:a(-0);continue}if(t[e]){a(t[e]);continue}let c=n[e];if(!c||typeof c!=`object`){t[e]=c,a(c);continue}if(Array.isArray(c))if(typeof c[0]==`string`){let[n,l,u]=c;switch(n){case`D`:a(t[e]=new Date(l));continue;case`U`:a(t[e]=new URL(l));continue;case`B`:a(t[e]=BigInt(l));continue;case`R`:a(t[e]=new RegExp(l,u));continue;case`Y`:a(t[e]=Symbol.for(l));continue;case`S`:let n=new Set;t[e]=n;for(let e=c.length-1;e>0;e--)o.push([c[e],e=>{n.add(e)}]);a(n);continue;case`M`:let d=new Map;t[e]=d;for(let e=c.length-2;e>0;e-=2){let t=[];o.push([c[e+1],e=>{t[1]=e}]),o.push([c[e],e=>{t[0]=e}]),s.push(()=>{d.set(t[0],t[1])})}a(d);continue;case`N`:let f=Object.create(null);t[e]=f;for(let e of Object.keys(l).reverse()){let t=[];o.push([l[e],e=>{t[1]=e}]),o.push([Number(e.slice(1)),e=>{t[0]=e}]),s.push(()=>{f[t[0]]=t[1]})}a(f);continue;case`P`:if(t[l])a(t[e]=t[l]);else{let n=new Tr;r[l]=n,a(t[e]=n.promise)}continue;case`E`:let[,p,m]=c,h=m&&Dr&&Ae.includes(m)&&m in Dr&&typeof Dr[m]==`function`?new Dr[m](p):Error(p);t[e]=h,a(h);continue;case`Z`:a(t[e]=t[l]);continue;default:if(Array.isArray(i)){let n=[],r=c.slice(1);for(let e=0;e<r.length;e++){let t=r[e];o.push([t,t=>{n[e]=t}])}s.push(()=>{for(let r of i){let i=r(c[0],...n);if(i){a(t[e]=i.value);return}}throw SyntaxError()});continue}throw SyntaxError()}}else{let n=[];t[e]=n;for(let e=0;e<c.length;e++){let t=c[e];t!==-1&&o.push([t,t=>{n[e]=t}])}a(n);continue}else{let n={};t[e]=n;for(let e of Object.keys(c).reverse()){let t=[];o.push([c[e],e=>{t[1]=e}]),o.push([Number(e.slice(1)),e=>{t[0]=e}]),s.push(()=>{n[t[0]]=t[1]})}a(n);continue}}for(;s.length>0;)s.pop()();return a}async function Ar(e,t){let{plugins:n}=t??{},r=new Tr,i=e.pipeThrough(Er()).getReader(),a={values:[],hydrated:[],deferred:{},plugins:n},o=await jr.call(a,i),s=r.promise;return o.done?r.resolve():s=Mr.call(a,i).then(r.resolve).catch(e=>{for(let t of Object.values(a.deferred))t.reject(e);r.reject(e)}),{done:s.then(()=>i.closed),value:o.value}}async function jr(e){let t=await e.read();if(!t.value)throw SyntaxError();let n;try{n=JSON.parse(t.value)}catch{throw SyntaxError()}return{done:t.done,value:Or.call(this,n)}}async function Mr(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;let n=t.value;switch(n[0]){case`P`:{let e=n.indexOf(`:`),t=Number(n.slice(1,e)),r=this.deferred[t];if(!r)throw Error(`Deferred ID ${t} not found in stream`);let i=n.slice(e+1),a;try{a=JSON.parse(i)}catch{throw SyntaxError()}let o=Or.call(this,a);r.resolve(o);break}case`E`:{let e=n.indexOf(`:`),t=Number(n.slice(1,e)),r=this.deferred[t];if(!r)throw Error(`Deferred ID ${t} not found in stream`);let i=n.slice(e+1),a;try{a=JSON.parse(i)}catch{throw SyntaxError()}let o=Or.call(this,a);r.reject(o);break}default:throw SyntaxError()}t=await e.read()}}async function Nr(e){let t={signal:e.signal};if(e.method!==`GET`){t.method=e.method;let n=e.headers.get(`Content-Type`);n&&/\bapplication\/json\b/.test(n)?(t.headers={"Content-Type":n},t.body=JSON.stringify(await e.json())):n&&/\btext\/plain\b/.test(n)?(t.headers={"Content-Type":n},t.body=await e.text()):n&&/\bapplication\/x-www-form-urlencoded\b/.test(n)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var Pr=Symbol(`SingleFetchRedirect`),Fr=class extends Error{},Ir=new Set([100,101,204,205]);function Lr(e,t,n,r){let i=Rr(e,e=>{let n=t.routes[e.route.id];return $(n,`Route not found in manifest`),{hasLoader:n.hasLoader,hasClientLoader:n.hasClientLoader}},Kr,r);return async e=>e.runClientMiddleware(i)}function Rr(e,t,n,r,i=()=>!0){return async a=>{let{request:o,matches:s,fetcherKey:c}=a,l=e();if(o.method!==`GET`)return zr(a,n);let u=s.some(e=>{let{hasLoader:n,hasClientLoader:r}=t(e);return e.shouldCallHandler()&&n&&!r});return!r&&!u?Br(a,t,n):c?Ur(a,n):Vr(a,l,t,n,r,i)}}async function zr(e,t){let n=e.matches.find(e=>e.shouldCallHandler());$(n,`No action match found`);let r,i=await n.resolve(async i=>await i(async()=>{let{data:i,status:a}=await t(e,[n.route.id]);return r=a,Jr(i,n.route.id)}));return Xt(i.result)||je(i.result)||Yt(i.result)?{[n.route.id]:i}:{[n.route.id]:{type:i.type,result:Oe(i.result,r)}}}async function Br(e,t,n){let r=e.matches.filter(e=>e.shouldCallHandler()),i={};return await Promise.all(r.map(r=>r.resolve(async a=>{try{let{hasClientLoader:o}=t(r),s=r.route.id,c=o?await a(async()=>{let{data:t}=await n(e,[s]);return Jr(t,s)}):await a();i[r.route.id]={type:`data`,result:c}}catch(e){i[r.route.id]={type:`error`,result:e}}}))),i}async function Vr(e,t,n,r,i,a=()=>!0){let o=new Set,s=!1,c=e.matches.map(()=>Yr()),l=Yr(),u={},d=Promise.all(e.matches.map(async(t,i)=>t.resolve(async d=>{c[i].resolve();let f=t.route.id,{hasLoader:p,hasClientLoader:m}=n(t),h=!t.shouldRevalidateArgs||t.shouldRevalidateArgs.actionStatus==null||t.shouldRevalidateArgs.actionStatus<400;if(!t.shouldCallHandler(h)){s||=t.shouldRevalidateArgs!=null&&p;return}if(a(t)&&m){p&&(s=!0);try{u[f]={type:`data`,result:await d(async()=>{let{data:t}=await r(e,[f]);return Jr(t,f)})}}catch(e){u[f]={type:`error`,result:e}}return}p&&o.add(f);try{u[f]={type:`data`,result:await d(async()=>Jr(await l.promise,f))}}catch(e){u[f]={type:`error`,result:e}}})));if(await Promise.all(c.map(e=>e.promise)),(!t.state.initialized&&t.state.navigation.state===`idle`||o.size===0)&&!window.__reactRouterHdrActive)l.resolve({routes:{}});else{let t=i&&s&&o.size>0?[...o.keys()]:void 0;try{let n=await r(e,t);l.resolve(n.data)}catch(e){l.reject(e)}}return await d,await Hr(l.promise,e.matches,o,u),u}async function Hr(e,t,n,r){try{let i,a=await e;if(`routes`in a){for(let e of t)if(e.route.id in a.routes){let t=a.routes[e.route.id];if(`error`in t){i=t.error,r[e.route.id]?.result??(r[e.route.id]={type:`error`,result:i});break}}}i!==void 0&&Array.from(n.values()).forEach(e=>{r[e].result instanceof Fr&&(r[e].result=i)})}catch{}}async function Ur(e,t){let n=e.matches.find(e=>e.shouldCallHandler());$(n,`No fetcher match found`);let r=n.route.id,i=await n.resolve(async n=>n(async()=>{let{data:n}=await t(e,[r]);return Jr(n,r)}));return{[n.route.id]:i}}function Wr(e){let t=e.searchParams.getAll(`index`);e.searchParams.delete(`index`);let n=[];for(let e of t)e&&n.push(e);for(let t of n)e.searchParams.append(`index`,t);return e}function Gr(e,t){let n=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n.pathname.endsWith(`/`)?n.pathname=`${n.pathname}_.${t}`:n.pathname=`${n.pathname}.${t}`,n}async function Kr(e,t){let{request:n}=e,r=Gr(n.url,`data`);n.method===`GET`&&(r=Wr(r),t&&r.searchParams.set(`_routes`,t.join(`,`)));let i=await fetch(r,await Nr(n));if(i.status>=400&&!i.headers.has(`X-Remix-Response`))throw new G(i.status,i.statusText,await i.text());if(i.status===204&&i.headers.has(`X-Remix-Redirect`))return{status:202,data:{redirect:{redirect:i.headers.get(`X-Remix-Redirect`),status:Number(i.headers.get(`X-Remix-Status`)||`302`),revalidate:i.headers.get(`X-Remix-Revalidate`)===`true`,reload:i.headers.get(`X-Remix-Reload-Document`)===`true`,replace:i.headers.get(`X-Remix-Replace`)===`true`}}};if(Ir.has(i.status)){let e={};return t&&n.method!==`GET`&&(e[t[0]]={data:void 0}),{status:i.status,data:{routes:e}}}$(i.body,`No response body to decode`);try{let e=await qr(i.body,window),r;if(n.method===`GET`){let t=e.value;r=Pr in t?{redirect:t[Pr]}:{routes:t}}else{let n=e.value,i=t?.[0];$(i,`No routeId found for single fetch call decoding`),r=`redirect`in n?{redirect:n}:{routes:{[i]:n}}}return{status:i.status,data:r}}catch{throw Error(`Unable to decode turbo-stream response`)}}function qr(e,t){return Ar(e,{plugins:[(e,...n)=>{if(e===`SanitizedError`){let[e,r,i]=n,a=Error;e&&Ae.includes(e)&&e in t&&typeof t[e]==`function`&&(a=t[e]);let o=new a(r);return o.stack=i,{value:o}}if(e===`ErrorResponse`){let[e,t,r]=n;return{value:new G(t,r,e)}}if(e===`SingleFetchRedirect`)return{value:{[Pr]:n[0]}};if(e===`SingleFetchClassInstance`)return{value:n[0]};if(e===`SingleFetchFallback`)return{value:void 0}}]})}function Jr(e,t){if(`redirect`in e){let{redirect:t,revalidate:n,reload:r,replace:i,status:a}=e.redirect;throw ke(t,{status:a,headers:{...n?{"X-Remix-Revalidate":`yes`}:null,...r?{"X-Remix-Reload-Document":`yes`}:null,...i?{"X-Remix-Replace":`yes`}:null}})}let n=e.routes[t];if(n==null)throw new Fr(`No result found for routeId "${t}"`);if(`error`in n)throw n.error;if(`data`in n)return n.data;throw Error(`Invalid response found for routeId "${t}"`)}function Yr(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var Xr=`modulepreload`,Zr=function(e){return`/`+e},Qr={},$r=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=Zr(t,n),t in Qr)return;Qr[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`:Xr,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)})};async function ei(e,t){if(e.id in t)return t[e.id];try{let n=await $r(()=>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 ti(e,t,n){return pi(e.map(e=>{let r=t[e.route.id],i=n.routes[e.route.id];return[i&&i.css?i.css.map(e=>({rel:`stylesheet`,href:e})):[],r?.links?.()||[]]}).flat(2),ui(e,n))}function ni(e){return e.css?e.css.map(e=>({rel:`stylesheet`,href:e})):[]}async function ri(e){if(!e.css)return;let t=ni(e);await Promise.all(t.map(ai))}async function ii(e,t){if(!e.css&&!t.links||!hi())return;let n=[];if(e.css&&n.push(...ni(e)),t.links&&n.push(...t.links()),n.length===0)return;let r=[];for(let e of n)!oi(e)&&e.rel===`stylesheet`&&r.push({...e,rel:`preload`,as:`style`});await Promise.all(r.map(ai))}async function ai(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let n=document.createElement(`link`);Object.assign(n,e);function r(){document.head.contains(n)&&document.head.removeChild(n)}n.onload=()=>{r(),t()},n.onerror=()=>{r(),t()},document.head.appendChild(n)})}function oi(e){return e!=null&&typeof e.page==`string`}function si(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 ci(e,t,n){return pi((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await ei(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(si).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function li(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 ui(e,t,{includeHydrateFallback:n}={}){return di(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 di(e){return[...new Set(e)]}function fi(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function pi(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!oi(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(fi(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}var mi;function hi(){if(mi!==void 0)return mi;let e=document.createElement(`link`);return mi=e.relList.supports(`preload`),e=null,mi}function gi(){let{nonce:e}=Wi();return E.createElement(ca,{title:`Loading...`,renderScripts:!0},null)}function _i(e){let t={};return Object.values(e).forEach(e=>{if(e){let n=e.parentId||``;t[n]||(t[n]=[]),t[n].push(e)}}),t}function vi(e,t,n){let r=Ei(t),i=t.HydrateFallback&&(!n||e.id===`root`)?t.HydrateFallback:e.id===`root`?gi:void 0,a=t.ErrorBoundary?t.ErrorBoundary:e.id===`root`?()=>E.createElement(sa,{error:nr()}):void 0;return e.id===`root`&&t.Layout?{...r?{element:E.createElement(t.Layout,null,E.createElement(r,null))}:{Component:r},...a?{errorElement:E.createElement(t.Layout,null,E.createElement(a,null))}:{ErrorBoundary:a},...i?{hydrateFallbackElement:E.createElement(t.Layout,null,E.createElement(i,null))}:{HydrateFallback:i}}:{Component:r,ErrorBoundary:a,HydrateFallback:i}}function yi(e,t,n,r,i,a){return Si(t,n,r,i,a,``,_i(t),e)}function bi(e,t){if(e===`loader`&&!t.hasLoader||e===`action`&&!t.hasAction){let n=`You are trying to call ${e===`action`?`serverAction()`:`serverLoader()`} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(n),new G(400,`Bad Request`,Error(n),!0)}}function xi(e,t){let n=e===`clientAction`?`a`:`an`,r=`Route "${t}" does not have ${n} ${e}, but you are trying to submit to it. To fix this, please add ${n} \`${e}\` function to the route`;throw console.error(r),new G(405,`Method Not Allowed`,Error(r),!0)}function Si(e,t,n,r,i,a=``,o=_i(e),s){return(o[a]||[]).map(a=>{let c=t[a.id];function l(e){return $(typeof e==`function`,`No single fetch function available for route handler`),e()}function u(e){return a.hasLoader?l(e):Promise.resolve(null)}function d(e){if(!a.hasAction)throw xi(`action`,a.id);return l(e)}function f(e){$r(()=>import(e),[])}function p(e){e.clientActionModule&&f(e.clientActionModule),e.clientLoaderModule&&f(e.clientLoaderModule)}async function m(e){let n=t[a.id],r=n?ii(a,n):Promise.resolve();try{return e()}finally{await r}}let h={id:a.id,index:a.index,path:a.path};if(c){Object.assign(h,{...h,...vi(a,c,i),middleware:c.clientMiddleware,handle:c.handle,shouldRevalidate:Ci(h.path,c,a,r,s)});let e=n&&n.loaderData&&a.id in n.loaderData,t=e?n?.loaderData?.[a.id]:void 0,o=n&&n.errors&&a.id in n.errors,l=o?n?.errors?.[a.id]:void 0,f=s==null&&(c.clientLoader?.hydrate===!0||!a.hasLoader);h.loader=async({request:n,params:r,context:i,pattern:s,url:d},p)=>{let h=f;return f=!1,await m(async()=>($(c,"No `routeModule` available for critical-route loader"),c.clientLoader?c.clientLoader({request:n,params:r,context:i,pattern:s,url:d,async serverLoader(){if(bi(`loader`,a),h){if(e)return t;if(o)throw l}return u(p)}}):u(p)))},h.loader.hydrate=Di(a.id,c.clientLoader,a.hasLoader,i),h.action=({request:e,params:t,context:n,pattern:r,url:o},s)=>m(async()=>{if($(c,"No `routeModule` available for critical-route action"),!c.clientAction){if(i)throw xi(`clientAction`,a.id);return d(s)}return c.clientAction({request:e,params:t,context:n,pattern:r,url:o,async serverAction(){return bi(`action`,a),d(s)}})})}else{a.hasClientLoader||(h.loader=(e,t)=>m(()=>u(t))),a.hasClientAction||(h.action=(e,t)=>m(()=>{if(i)throw xi(`clientAction`,a.id);return d(t)}));let e;async function n(){return e||=(async()=>{(a.clientLoaderModule||a.clientActionModule)&&await new Promise(e=>setTimeout(e,0));let e=Ti(a,t);return p(a),await e})(),await e}h.lazy={loader:a.hasClientLoader?async()=>{let{clientLoader:e}=a.clientLoaderModule?await $r(()=>import(a.clientLoaderModule),[]):await n();return $(e,"No `clientLoader` export found"),(t,n)=>e({...t,async serverLoader(){return bi(`loader`,a),u(n)}})}:void 0,action:a.hasClientAction?async()=>{let e=a.clientActionModule?$r(()=>import(a.clientActionModule),[]):n();p(a);let{clientAction:t}=await e;return $(t,"No `clientAction` export found"),(e,n)=>t({...e,async serverAction(){return bi(`action`,a),d(n)}})}:void 0,middleware:a.hasClientMiddleware?async()=>{let{clientMiddleware:e}=a.clientMiddlewareModule?await $r(()=>import(a.clientMiddlewareModule),[]):await n();return $(e,"No `clientMiddleware` export found"),e}:void 0,shouldRevalidate:async()=>{let e=await n();return Ci(h.path,e,a,r,s)},handle:async()=>(await n()).handle,Component:async()=>(await n()).Component,ErrorBoundary:a.hasErrorBoundary?async()=>(await n()).ErrorBoundary:void 0}}let g=Si(e,t,n,r,i,a.id,o,s);return g.length>0&&(h.children=g),h})}function Ci(e,t,n,r,i){if(i)return wi(n.id,t.shouldRevalidate,i);if(!r&&n.hasLoader&&!n.hasClientLoader){let n=e?fe(e)[1].map(e=>e.paramName):[],r=e=>n.some(t=>e.currentParams[t]!==e.nextParams[t]);if(t.shouldRevalidate){let e=t.shouldRevalidate;return t=>e({...t,defaultShouldRevalidate:r(t)})}else return e=>r(e)}return t.shouldRevalidate}function wi(e,t,n){let r=!1;return i=>r?t?t(i):i.defaultShouldRevalidate:(r=!0,n.has(e))}async function Ti(e,t){let n=ei(e,t),r=ri(e),i=await n;return await Promise.all([r,ii(e,i)]),{Component:Ei(i),ErrorBoundary:i.ErrorBoundary,clientMiddleware:i.clientMiddleware,clientAction:i.clientAction,clientLoader:i.clientLoader,handle:i.handle,links:i.links,meta:i.meta,shouldRevalidate:i.shouldRevalidate}}function Ei(e){if(e.default!=null&&!(typeof e.default==`object`&&Object.keys(e.default).length===0))return e.default}function Di(e,t,n,r){return r&&e!==`root`||t!=null&&(t.hydrate===!0||n!==!0)}var Oi=new Set,ki=1e3,Ai=new Set;function ji(e){let t=new Set;return e.forEach(e=>{e.startsWith(`/`)||(e=`/${e}`);for(let n=1;n<e.length;n++)e[n]===`/`&&t.add(e.slice(0,n));t.add(e)}),Array.from(t)}function Mi(e,t){return e.mode===`lazy`&&t===!0}function Ni({sri:e,...t},n){let r=new Set(n.state.matches.map(e=>e.route.id)),i=n.state.location.pathname.split(`/`).filter(Boolean),a=[`/`];for(i.pop();i.length>0;)a.push(`/${i.join(`/`)}`),i.pop();a.forEach(e=>{let t=L(n.routes,e,n.basename||`/`,!1,n.branches);t&&t.forEach(e=>r.add(e.route.id))});let o=[...r].reduce((e,n)=>Object.assign(e,{[n]:t.routes[n]}),{});return{...t,routes:o,sri:e?!0:void 0}}function Pi(e,t,n,r,i,a,o){if(Mi(i,r))return async({path:s,patch:c,signal:l,fetcherKey:u})=>{if(Ai.has(s))return;let{state:d}=e();await Ri([s],u?window.location.href:S(d.navigation.location||d.location),t,n,r,a,o,i.manifestPath,c,l)}}function Fi(e,t,n,r,i,a){E.useEffect(()=>{if(!Mi(i,r)||window.navigator?.connection?.saveData===!0)return;function o(e){let t=e.tagName===`FORM`?e.getAttribute(`action`):e.getAttribute(`href`);if(!t)return;let n=e.tagName===`A`?e.pathname:new URL(t,window.location.origin).pathname;Ai.has(n)||Oi.add(n)}async function s(){document.querySelectorAll(`a[data-discover], form[data-discover]`).forEach(o);let s=Array.from(Oi.keys()).filter(e=>Ai.has(e)?(Oi.delete(e),!1):!0);if(s.length!==0)try{await Ri(s,null,t,n,r,a,e.basename,i.manifestPath,e.patchRoutes)}catch(e){console.error(`Failed to fetch manifest patches`,e)}}let c=Bi(s,100);s();let l=new MutationObserver(()=>c());return l.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`data-discover`,`href`,`action`]}),()=>l.disconnect()},[r,a,t,n,e,i])}function Ii(e,t){let n=e||`/__manifest`;return t==null?n:W([t,n])}var Li=`react-router-manifest-version`;async function Ri(e,t,n,r,i,a,o,s,c,l){e=ji(e);let u=new URLSearchParams;u.set(`paths`,e.sort().join(`,`)),u.set(`version`,n.version);let d=new URL(Ii(s,o),window.location.origin);if(d.search=u.toString(),d.toString().length>7680){Oi.clear();return}let f;try{let e=await fetch(d,{signal:l});if(!e.ok)throw Error(`${e.status} ${e.statusText}`);if(e.status===204&&e.headers.has(`X-Remix-Reload-Document`)){if(!t){console.warn(`Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.`);return}try{if(sessionStorage.getItem(Li)===n.version){console.error(`Unable to discover routes due to manifest version mismatch.`);return}sessionStorage.setItem(Li,n.version)}catch{}window.location.href=t,console.warn(`Detected manifest version mismatch, reloading...`),await new Promise(()=>{})}else if(e.status>=400)throw Error(await e.text());try{sessionStorage.removeItem(Li)}catch{}f=await e.json()}catch(e){if(l?.aborted)return;throw e}let p=new Set(Object.keys(n.routes)),m=Object.values(f).reduce((e,t)=>(t&&!p.has(t.id)&&(e[t.id]=t),e),{});Object.assign(n.routes,m),e.forEach(e=>zi(e,Ai));let h=new Set;Object.values(m).forEach(e=>{e&&(!e.parentId||!m[e.parentId])&&h.add(e.parentId)}),h.forEach(e=>c(e||null,Si(m,r,null,i,a,e)))}function zi(e,t){if(t.size>=ki){let e=t.values().next().value;e!==void 0&&t.delete(e)}t.add(e)}function Bi(e,t){let n;return(...r)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...r),t)}}function Vi(){let e=E.useContext(fn);return $(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Hi(){let e=E.useContext(pn);return $(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var Ui=E.createContext(void 0);Ui.displayName=`FrameworkContext`;function Wi(){let e=E.useContext(Ui);return $(e,`You must render this element inside a <HydratedRouter> element`),e}function Gi(e,t){let n=E.useContext(Ui),[r,i]=E.useState(!1),[a,o]=E.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=E.useRef(null);E.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]),E.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:Ki(s,p),onBlur:Ki(c,m),onMouseEnter:Ki(l,p),onMouseLeave:Ki(u,m),onTouchStart:Ki(d,p)}]:[a,f,{}]:[!1,f,{}]}function Ki(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function qi(e,t,n){if(n&&!na)return[e[0]];if(t){let n=e.findIndex(e=>t[e.route.id]!==void 0);return e.slice(0,n+1)}return e}var Ji=`data-react-router-critical-css`;function Yi({nonce:e,crossOrigin:t}){let{isSpaMode:n,manifest:r,routeModules:i,criticalCss:a,nonce:o}=Wi(),{errors:s,matches:c}=Hi(),l=qi(c,s,n),u=E.useMemo(()=>ti(l,i,r),[l,i,r]);return e==null&&o&&(e=o),E.createElement(E.Fragment,null,typeof a==`string`?E.createElement(`style`,{[Ji]:``,nonce:e,dangerouslySetInnerHTML:{__html:a}}):null,typeof a==`object`?E.createElement(`link`,{[Ji]:``,rel:`stylesheet`,href:a.href,nonce:e,crossOrigin:t}):null,u.map(({key:n,link:r})=>oi(r)?E.createElement(Xi,{key:n,nonce:e,...r,crossOrigin:r.crossOrigin??t}):E.createElement(`link`,{key:n,nonce:e,...r,crossOrigin:r.crossOrigin??t})))}function Xi({page:e,...t}){let n=hn(),{nonce:r}=Wi(),{router:i}=Vi(),a=E.useMemo(()=>I(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?E.createElement(Qi,{page:e,matches:a,...t}):E.createElement($i,{page:e,matches:a,...t})):null}function Zi(e){let{manifest:t,routeModules:n}=Wi(),[r,i]=E.useState([]);return E.useEffect(()=>{let r=!1;return ci(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Qi({page:e,matches:t,...n}){let r=kn(),i=E.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=Gr(e,`rsc`),i=!1,a=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?i=!0:a.push(e.route.id);return i&&a.length>0&&n.searchParams.set(`_routes`,a.join(`,`)),[n.pathname+n.search]},[e,r,t]);return E.createElement(E.Fragment,null,i.map(e=>E.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function $i({page:e,matches:t,...n}){let r=kn(),{manifest:i,routeModules:a}=Wi(),{loaderData:o,matches:s}=Hi(),c=E.useMemo(()=>li(e,t,s,i,r,`data`),[e,t,s,i,r]),l=E.useMemo(()=>li(e,t,s,i,r,`assets`),[e,t,s,i,r]),u=E.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,s=!1;if(t.forEach(e=>{let t=i.routes[e.route.id];!t||!t.hasLoader||(!c.some(t=>t.route.id===e.route.id)&&e.route.id in o&&a[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:n.add(e.route.id))}),n.size===0)return[];let l=Gr(e,`data`);return s&&n.size>0&&l.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[l.pathname+l.search]},[o,r,i,c,t,e,a]),d=E.useMemo(()=>ui(l,i),[l,i]),f=Zi(l);return E.createElement(E.Fragment,null,u.map(e=>E.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),d.map(e=>E.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),f.map(({key:e,link:t})=>E.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function ea(){let{isSpaMode:e,routeModules:t}=Wi(),{errors:n,matches:r,loaderData:i}=Hi(),a=kn(),o=qi(r,n,e),s=null;n&&(s=n[o[o.length-1].route.id]);let c=[],l=null,u=[];for(let e=0;e<o.length;e++){let n=o[e],r=n.route.id,d=i[r],f=n.params,p=t[r],m=[],h={id:r,loaderData:d,meta:[],params:n.params,pathname:n.pathname,handle:n.route.handle,error:s};if(u[e]=h,p?.meta?m=typeof p.meta==`function`?p.meta({loaderData:d,params:f,location:a,matches:u,error:s}):Array.isArray(p.meta)?[...p.meta]:p.meta:l&&(m=[...l]),m||=[],!Array.isArray(m))throw Error(`The route at `+n.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
3
-
4
- To reference the meta function API, see https://reactrouter.com/start/framework/route-module#meta`);h.meta=m,u[e]=h,c=[...m],l=c}return E.createElement(E.Fragment,null,c.flat().map(e=>{if(!e)return null;if(`tagName`in e){let{tagName:t,...n}=e;if(!ta(t))return console.warn(`A meta object uses an invalid tagName: ${t}. Expected either 'link' or 'meta'`),null;let r=t;return E.createElement(r,{key:JSON.stringify(n),...n})}if(`title`in e)return E.createElement(`title`,{key:`title`},String(e.title));if(`charset`in e&&(e.charSet??=e.charset,delete e.charset),`charSet`in e&&e.charSet!=null)return typeof e.charSet==`string`?E.createElement(`meta`,{key:`charSet`,charSet:e.charSet}):null;if(`script:ld+json`in e)try{let t=JSON.stringify(e[`script:ld+json`]);return E.createElement(`script`,{key:`script:ld+json:${t}`,type:`application/ld+json`,dangerouslySetInnerHTML:{__html:wr(t)}})}catch{return null}return E.createElement(`meta`,{key:JSON.stringify(e),...e})}))}function ta(e){return typeof e==`string`&&/^(meta|link)$/.test(e)}var na=!1;function ra(){na=!0}function ia(e){let{manifest:t,serverHandoffString:n,isSpaMode:r,renderMeta:i,routeDiscovery:a,ssr:o,nonce:s}=Wi(),{router:c,static:l,staticContext:u}=Vi(),{matches:d}=Hi(),f=hn(),p=Mi(a,o);e.nonce==null&&s&&(e={...e,nonce:s}),i&&(i.didRenderScripts=!0);let m=qi(d,null,r);E.useEffect(()=>{ra()},[]);let h=E.useMemo(()=>{if(f)return null;let r=u?`window.__reactRouterContext = ${n};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:` `,i=l?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:``}${p?``:`import ${JSON.stringify(t.url)}`};
5
- ${m.map((e,n)=>{let r=`route${n}`,i=t.routes[e.route.id];$(i,`Route ${e.route.id} not found in manifest`);let{clientActionModule:a,clientLoaderModule:o,clientMiddlewareModule:s,hydrateFallbackModule:c,module:l}=i,u=[...a?[{module:a,varName:`${r}_clientAction`}]:[],...o?[{module:o,varName:`${r}_clientLoader`}]:[],...s?[{module:s,varName:`${r}_clientMiddleware`}]:[],...c?[{module:c,varName:`${r}_HydrateFallback`}]:[],{module:l,varName:`${r}_main`}];return u.length===1?`import * as ${r} from ${JSON.stringify(l)};`:[u.map(e=>`import * as ${e.varName} from "${e.module}";`).join(`
6
- `),`const ${r} = {${u.map(e=>`...${e.varName}`).join(`,`)}};`].join(`
7
- `)}).join(`
8
- `)}
9
- ${p?`window.__reactRouterManifest = ${JSON.stringify(Ni(t,c),null,2)};`:``}
10
- window.__reactRouterRouteModules = {${m.map((e,t)=>`${JSON.stringify(e.route.id)}:route${t}`).join(`,`)}};
11
-
12
- import(${JSON.stringify(t.entry.module)});`:` `;return E.createElement(E.Fragment,null,E.createElement(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:r},type:void 0}),E.createElement(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:i},type:`module`,async:!0}))},[]),g=na||f?[]:[...new Set(t.entry.imports.concat(ui(m,t,{includeHydrateFallback:!0})))],_=typeof t.sri==`object`?t.sri:{};return lr(!f,`The <Scripts /> element is a no-op when using RSC and can be safely removed.`),na||f?null:E.createElement(E.Fragment,null,typeof t.sri==`object`?E.createElement(`script`,{...e,"rr-importmap":``,type:`importmap`,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:_})}}):null,p?null:E.createElement(`link`,{rel:`modulepreload`,href:t.url,crossOrigin:e.crossOrigin,integrity:_[t.url],nonce:e.nonce,suppressHydrationWarning:!0}),E.createElement(`link`,{rel:`modulepreload`,href:t.entry.module,crossOrigin:e.crossOrigin,integrity:_[t.entry.module],nonce:e.nonce,suppressHydrationWarning:!0}),g.map(t=>E.createElement(`link`,{key:t,rel:`modulepreload`,href:t,crossOrigin:e.crossOrigin,integrity:_[t],nonce:e.nonce,suppressHydrationWarning:!0})),h)}function aa(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}var oa=class extends E.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location===e.location?{error:e.error||t.error,location:t.location}:{error:e.error||null,location:e.location}}render(){return this.state.error?E.createElement(sa,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function sa({error:e,isOutsideRemixApp:t}){let{nonce:n}=Wi();console.error(e);let r=E.createElement(`script`,{nonce:n,dangerouslySetInnerHTML:{__html:`
13
- console.log(
14
- "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
15
- );
16
- `}});if(je(e))return E.createElement(ca,{title:`Unhandled Thrown Response!`},E.createElement(`h1`,{style:{fontSize:`24px`}},e.status,` `,e.statusText),null);let i;if(e instanceof Error)i=e;else{let t=e==null?`Unknown Error`:typeof e==`object`&&`toString`in e?e.toString():JSON.stringify(e);i=Error(t)}return E.createElement(ca,{title:`Application Error!`,isOutsideRemixApp:t},E.createElement(`h1`,{style:{fontSize:`24px`}},`Application Error`),E.createElement(`pre`,{style:{padding:`2rem`,background:`hsla(10, 50%, 50%, 0.1)`,color:`red`,overflow:`auto`}},i.stack),r)}function ca({title:e,renderScripts:t,isOutsideRemixApp:n,children:r}){let{routeModules:i}=Wi();return i.root?.Layout&&!n?r:E.createElement(`html`,{lang:`en`},E.createElement(`head`,null,E.createElement(`meta`,{charSet:`utf-8`}),E.createElement(`meta`,{name:`viewport`,content:`width=device-width,initial-scale=1,viewport-fit=cover`}),E.createElement(`title`,null,e)),E.createElement(`body`,null,E.createElement(`main`,{style:{fontFamily:`system-ui, sans-serif`,padding:`2rem`}},r,t?E.createElement(ia,null):null)))}var la=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),ua=o(((e,t)=>{t.exports=la()}));export{v as $,Zn as A,Je as B,xr as C,kn as D,Dn as E,pn as F,ue as G,N as H,_n as I,xe as J,I as K,yn as L,Xn as M,er as N,Qn as O,fn as P,_ as Q,Q as R,yr as S,ir as T,je as U,$e as V,W,g as X,me as Y,S as Z,wr as _,ea as a,fr as b,aa as c,Fi as d,d as et,Si as f,Lr as g,qr as h,Yi as i,In as j,jn as k,Gi as l,Di as m,oa as n,o as nt,Xi as o,yi as p,Ne as q,Ui as r,c as rt,ia as s,ua as t,u as tt,Pi as u,gr as v,tr as w,ur as x,_r as y,gn as z};
@@ -1 +0,0 @@
1
- window.__reactRouterManifest={"entry":{"module":"/assets/entry.client-DL_oPh96.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/react-dom-QnGHOQwT.js"],"css":[]},"routes":{"root":{"id":"root","path":"","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/root-Df70GAY3.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/react-dom-QnGHOQwT.js","/assets/db-link-BWWnHM0k.js","/assets/MenuTrigger-BhalG0aG.js","/assets/createLucideIcon-DVP_i62f.js","/assets/useOpenInteractionType-D3JsvupP.js"],"css":["/assets/root-C0MdPLOa.css"]},"routes/_index":{"id":"routes/_index","parentId":"root","index":true,"hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/_index-D1-nZ7Th.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/stat-card-DLtQnscf.js","/assets/table-DqqzSNik.js"],"css":[]},"routes/jobs":{"id":"routes/jobs","parentId":"root","path":"jobs","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/jobs-D0a6Lwq0.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/filter-select--qLjbs9m.js","/assets/pagination-Bzx8wbXG.js","/assets/table-DqqzSNik.js","/assets/MenuTrigger-BhalG0aG.js","/assets/useOpenInteractionType-D3JsvupP.js","/assets/createLucideIcon-DVP_i62f.js","/assets/check-Ch42cXMT.js","/assets/chevron-down-Byq-CYG9.js","/assets/chevron-right-CKAGD7DJ.js","/assets/x-BPKZwOn9.js","/assets/react-dom-QnGHOQwT.js"],"css":[]},"routes/queues._index":{"id":"routes/queues._index","parentId":"root","path":"queues","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/queues._index-D8903DTa.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/filter-select--qLjbs9m.js","/assets/table-DqqzSNik.js"],"css":[]},"routes/queues.create":{"id":"routes/queues.create","parentId":"root","path":"queues/create","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/queues.create-CMqQVLup.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/button-BxLcuaPM.js","/assets/chevron-down-Byq-CYG9.js","/assets/createLucideIcon-DVP_i62f.js"],"css":[]},"routes/queues.$name":{"id":"routes/queues.$name","parentId":"root","path":"queues/:name","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/queues._name-BVt_4pav.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/dialog-Bik519zD.js","/assets/filter-select--qLjbs9m.js","/assets/pagination-Bzx8wbXG.js","/assets/stat-card-DLtQnscf.js","/assets/table-DqqzSNik.js","/assets/MenuTrigger-BhalG0aG.js","/assets/createLucideIcon-DVP_i62f.js","/assets/chevron-down-Byq-CYG9.js","/assets/chevron-right-CKAGD7DJ.js","/assets/useOpenInteractionType-D3JsvupP.js","/assets/x-BPKZwOn9.js","/assets/react-dom-QnGHOQwT.js"],"css":[]},"routes/queues.$name.jobs.$jobId":{"id":"routes/queues.$name.jobs.$jobId","parentId":"root","path":"queues/:name/jobs/:jobId","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/queues._name.jobs._jobId-BkG9y75k.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/dialog-Bik519zD.js","/assets/createLucideIcon-DVP_i62f.js","/assets/check-Ch42cXMT.js","/assets/useOpenInteractionType-D3JsvupP.js","/assets/x-BPKZwOn9.js","/assets/react-dom-QnGHOQwT.js"],"css":[]},"routes/schedules":{"id":"routes/schedules","parentId":"root","path":"schedules","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/schedules-DPXQoaEE.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/pagination-Bzx8wbXG.js","/assets/table-DqqzSNik.js"],"css":[]},"routes/schedules.$name.$key":{"id":"routes/schedules.$name.$key","parentId":"root","path":"schedules/:name/:key","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/schedules._name._key-B_luxy1w.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/button-BxLcuaPM.js","/assets/dialog-Bik519zD.js","/assets/useOpenInteractionType-D3JsvupP.js","/assets/x-BPKZwOn9.js","/assets/react-dom-QnGHOQwT.js","/assets/createLucideIcon-DVP_i62f.js"],"css":[]},"routes/schedules.new":{"id":"routes/schedules.new","parentId":"root","path":"schedules/new","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/schedules.new-BQV7GWzs.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/button-BxLcuaPM.js"],"css":[]},"routes/send":{"id":"routes/send","parentId":"root","path":"send","hasAction":true,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/send-DJBsfnx_.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/button-BxLcuaPM.js"],"css":[]},"routes/warnings":{"id":"routes/warnings","parentId":"root","path":"warnings","hasAction":false,"hasLoader":true,"hasClientAction":false,"hasClientLoader":false,"hasClientMiddleware":false,"hasDefaultExport":true,"hasErrorBoundary":true,"module":"/assets/warnings-CHKaRfIW.js","imports":["/assets/jsx-runtime-BgbGXvsu.js","/assets/db-link-BWWnHM0k.js","/assets/error-card-B0ANyjh3.js","/assets/badge-DCQvSdiR.js","/assets/button-BxLcuaPM.js","/assets/filter-select--qLjbs9m.js","/assets/pagination-Bzx8wbXG.js","/assets/table-DqqzSNik.js"],"css":[]}},"url":"/assets/manifest-ef81a0f9.js","version":"ef81a0f9"};
@@ -1 +0,0 @@
1
- import{C as e,S as t,rt as n,t as r,tt as i}from"./jsx-runtime-BgbGXvsu.js";import{O as a,t as o,u as s}from"./db-link-BWWnHM0k.js";import{n as c,r as l,t as u}from"./button-BxLcuaPM.js";import{n as d,t as f}from"./badge-DCQvSdiR.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./table-DqqzSNik.js";import{t as y}from"./filter-select--qLjbs9m.js";var b=n(i(),1),x=r(),S=e(function(){return(0,x.jsx)(`div`,{className:`p-6`,children:(0,x.jsx)(c,{children:(0,x.jsxs)(l,{className:`py-8 text-center`,children:[(0,x.jsx)(`p`,{className:`text-red-600 dark:text-red-400 font-medium`,children:`Failed to load queues`}),(0,x.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400 text-sm mt-1`,children:`Please check your database connection and try again.`}),(0,x.jsx)(o,{to:`/`,className:`inline-block mt-4 text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300`,children:`Back to Dashboard`})]})})})}),C=t(function({loaderData:e}){let{queues:t,totalCount:n,page:r,totalPages:i,hasNextPage:S,hasPrevPage:C,filter:E,search:D}=e,[O,k]=a(),[A,j]=(0,b.useState)(D);(0,b.useEffect)(()=>{j(D)},[D]);let M=e=>{let t=new URLSearchParams(O);t.set(`page`,e.toString()),k(t)},N=e=>{let t=new URLSearchParams(O);e.trim()?t.set(`search`,e.trim()):t.delete(`search`),t.delete(`page`),k(t)},P=e=>{let t=new URLSearchParams(O);e===`all`?t.delete(`filter`):t.set(`filter`,e),t.delete(`page`),k(t)},F=()=>{k({}),j(``)},I=E!==`all`||D;return(0,x.jsxs)(`div`,{className:`space-y-4`,children:[(0,x.jsx)(d,{title:`Queues`,subtitle:`${n.toLocaleString()} queue${n===1?``:`s`} ${I?`found`:`configured`}`,action:(0,x.jsx)(o,{to:`/queues/create`,children:(0,x.jsx)(u,{variant:`primary`,size:`md`,children:`Create Queue`})})}),(0,x.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,x.jsx)(`div`,{className:`flex-1`,children:(0,x.jsxs)(`div`,{className:`relative`,children:[(0,x.jsx)(`input`,{type:`text`,placeholder:`Search queues by name...`,value:A,onChange:e=>j(e.target.value),onKeyDown:e=>{e.key===`Enter`&&N(A)},className:s(`w-full h-[38px] px-3 py-2 pl-10 rounded-lg border shadow-sm text-sm`,`bg-[var(--surface-card)] border-[var(--border-strong)] text-[var(--text-primary)] placeholder-[var(--text-tertiary)]`,`focus:outline-none focus:border-[var(--border-focus)] focus:shadow-[var(--shadow-focus)]`)}),(0,x.jsx)(w,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-[18px] w-[18px] text-[var(--text-tertiary)]`}),A&&(0,x.jsx)(`button`,{onClick:()=>{j(``),N(``)},className:`absolute right-3 top-1/2 -translate-y-1/2 text-[var(--text-tertiary)] hover:text-[var(--text-secondary)] cursor-pointer`,children:(0,x.jsx)(T,{className:`h-[18px] w-[18px]`})})]})}),(0,x.jsx)(y,{value:E,options:[{value:`all`,label:`All Queues`},{value:`attention`,label:`Needing Attention`},{value:`partitioned`,label:`Partitioned`}],onChange:e=>P(e)})]}),I&&(0,x.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,x.jsx)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:`Active filters:`}),E!==`all`&&(0,x.jsxs)(f,{variant:`primary`,size:`sm`,children:[{all:`All Queues`,attention:`Needing Attention`,partitioned:`Partitioned`}[E],(0,x.jsx)(`button`,{onClick:()=>P(`all`),className:`ml-1 hover:text-primary-700 cursor-pointer`,children:`×`})]}),D&&(0,x.jsxs)(f,{variant:`primary`,size:`sm`,children:[`Search: `,D,(0,x.jsx)(`button`,{onClick:()=>N(``),className:`ml-1 hover:text-primary-700 cursor-pointer`,children:`×`})]}),(0,x.jsx)(`button`,{onClick:F,className:`text-sm text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300 cursor-pointer`,children:`Clear all`})]}),(0,x.jsxs)(c,{children:[(0,x.jsx)(l,{className:`p-0`,children:(0,x.jsxs)(v,{children:[(0,x.jsx)(p,{children:(0,x.jsxs)(g,{children:[(0,x.jsx)(m,{children:`Name`}),(0,x.jsx)(m,{children:`Policy`}),(0,x.jsx)(m,{children:`Storage`}),(0,x.jsx)(m,{className:`text-right`,children:`Queued`}),(0,x.jsx)(m,{className:`text-right`,children:`Active`}),(0,x.jsx)(m,{className:`text-right`,children:`Deferred`}),(0,x.jsx)(m,{className:`text-right`,children:`Total`}),(0,x.jsx)(m,{children:`Dead Letter`}),(0,x.jsx)(m,{children:`Status`})]})}),(0,x.jsx)(h,{children:t.length===0?(0,x.jsx)(g,{children:(0,x.jsx)(_,{className:`text-center text-[var(--text-tertiary)] py-8`,colSpan:9,children:`No queues found`})}):t.map(e=>{let t=(e.warningQueueSize??0)>0&&e.queuedCount>(e.warningQueueSize??0);return(0,x.jsxs)(g,{children:[(0,x.jsx)(_,{children:(0,x.jsx)(o,{to:`/queues/${encodeURIComponent(e.name)}`,className:`font-medium text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300`,children:e.name})}),(0,x.jsx)(_,{children:(0,x.jsx)(f,{variant:`gray`,size:`sm`,children:e.policy})}),(0,x.jsx)(_,{className:`text-[var(--text-secondary)]`,children:e.partition?`Partitioned`:`Shared`}),(0,x.jsx)(_,{className:`text-right pgb-num text-[var(--text-primary)]`,children:e.queuedCount.toLocaleString()}),(0,x.jsx)(_,{className:`text-right pgb-num text-[var(--text-primary)]`,children:e.activeCount.toLocaleString()}),(0,x.jsx)(_,{className:`text-right pgb-num text-[var(--text-primary)]`,children:e.deferredCount.toLocaleString()}),(0,x.jsx)(_,{className:`text-right pgb-num text-[var(--text-primary)]`,children:e.totalCount.toLocaleString()}),(0,x.jsx)(_,{children:e.deadLetter?(0,x.jsx)(o,{to:`/queues/${encodeURIComponent(e.deadLetter)}`,className:`font-mono text-xs text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300`,children:e.deadLetter}):(0,x.jsx)(`span`,{className:`text-[var(--border-strong)]`,children:`—`})}),(0,x.jsx)(_,{children:t?(0,x.jsx)(f,{variant:`error`,size:`sm`,dot:!0,children:`Backlogged`}):e.activeCount>0?(0,x.jsx)(f,{variant:`success`,size:`sm`,dot:!0,children:`Processing`}):(0,x.jsx)(f,{variant:`gray`,size:`sm`,dot:!0,children:`Idle`})})]},e.name)})})]})}),i>1&&(0,x.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-t border-[var(--border-subtle)]`,children:[(0,x.jsxs)(`div`,{className:`text-sm text-[var(--text-tertiary)]`,children:[`Page `,(0,x.jsx)(`b`,{className:`pgb-num text-[var(--text-secondary)] font-medium`,children:r}),` of `,(0,x.jsx)(`b`,{className:`pgb-num text-[var(--text-secondary)] font-medium`,children:i})]}),(0,x.jsxs)(`div`,{className:`flex gap-2`,children:[(0,x.jsx)(u,{variant:`outline`,size:`sm`,onClick:()=>M(r-1),disabled:!C,children:`Previous`}),(0,x.jsx)(u,{variant:`outline`,size:`sm`,onClick:()=>M(r+1),disabled:!S,children:`Next`})]})]})]})]})});function w({className:e}){return(0,x.jsx)(`svg`,{className:e,fill:`none`,viewBox:`0 0 24 24`,strokeWidth:1.5,stroke:`currentColor`,children:(0,x.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z`})})}function T({className:e}){return(0,x.jsx)(`svg`,{className:e,fill:`none`,viewBox:`0 0 24 24`,strokeWidth:1.5,stroke:`currentColor`,children:(0,x.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M6 18 18 6M6 6l12 12`})})}export{S as ErrorBoundary,C as default};
@@ -1 +0,0 @@
1
- import{C as e,S as t,rt as n,t as r,tt as i}from"./jsx-runtime-BgbGXvsu.js";import{D as a,O as o,a as s,d as c,o as l,t as u,u as d}from"./db-link-BWWnHM0k.js";import{t as f}from"./createLucideIcon-DVP_i62f.js";import{t as p}from"./chevron-down-Byq-CYG9.js";import{t as m}from"./chevron-right-CKAGD7DJ.js";import{a as h,i as g,l as _,n as v,o as y,t as b}from"./MenuTrigger-BhalG0aG.js";import{a as x,i as S,n as C,o as w,r as T,t as E}from"./dialog-Bik519zD.js";import{t as D}from"./stat-card-DLtQnscf.js";import{a as O,i as k,n as A,r as j,t as M}from"./button-BxLcuaPM.js";import{n as N,t as P}from"./badge-DCQvSdiR.js";import{a as F,i as I,n as L,o as R,r as z,t as B}from"./table-DqqzSNik.js";import{t as V}from"./error-card-B0ANyjh3.js";import{t as H}from"./pagination-Bzx8wbXG.js";import{t as U}from"./filter-select--qLjbs9m.js";var W=f(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),G=n(i(),1),K=r(),q=e(function(){return(0,K.jsx)(V,{title:`Failed to load queue`,backTo:{href:`/queues`,label:`Back to Queues`}})}),J=t(function({loaderData:e}){let{queue:t,jobs:n,totalCount:r,page:i,totalPages:a,stateFilter:l,hasNextPage:f,hasPrevPage:h}=e,[g,_]=o(),[v,y]=(0,G.useState)(!1),b=(e,t)=>{let n=new URLSearchParams(g);t?n.set(e,t):n.delete(e),n.delete(`page`),_(n)},x=e=>{let t=new URLSearchParams(g);t.set(`page`,e.toString()),_(t)},S=(t.warningQueueSize??0)>0&&t.queuedCount>(t.warningQueueSize??0);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(N,{title:t.name,subtitle:`${t.partition?`Partitioned`:`Shared`} storage`,action:(0,K.jsx)(u,{to:`/send?queue=${encodeURIComponent(t.name)}`,children:(0,K.jsx)(M,{variant:`primary`,size:`md`,children:`Send Job`})})}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 -mt-2`,children:[(0,K.jsxs)(P,{variant:`primary`,children:[t.policy,` policy`]}),t.deadLetter&&(0,K.jsxs)(P,{variant:`gray`,children:[`dead letter → `,t.deadLetter]}),(t.retryLimit??0)>0&&(0,K.jsxs)(P,{variant:`gray`,children:[`retry limit `,t.retryLimit]})]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-4`,children:[(0,K.jsx)(D,{label:`Queued`,value:t.queuedCount.toLocaleString(),accent:S?`error`:`neutral`,hint:S?`over threshold`:`within threshold`}),(0,K.jsx)(D,{label:`Active`,value:t.activeCount.toLocaleString(),accent:`primary`}),(0,K.jsx)(D,{label:`Deferred`,value:t.deferredCount.toLocaleString()}),(0,K.jsx)(D,{label:`Total`,value:t.totalCount.toLocaleString()})]}),(0,K.jsxs)(A,{children:[(0,K.jsxs)(`button`,{onClick:()=>y(!v),className:d(`w-full flex items-center justify-between px-5 py-4`,`text-left hover:bg-[var(--surface-hover)]`,`transition-colors cursor-pointer`),children:[(0,K.jsx)(`h3`,{className:`text-base font-semibold tracking-[-0.01em] text-[var(--text-primary)]`,children:`Configuration`}),v?(0,K.jsx)(p,{className:`h-5 w-5 text-[var(--text-tertiary)]`}):(0,K.jsx)(m,{className:`h-5 w-5 text-[var(--text-tertiary)]`})]}),v&&(0,K.jsx)(j,{className:`border-t border-[var(--border-subtle)]`,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-x-6 gap-y-4`,children:[(0,K.jsx)(Z,{label:`Policy`,value:t.policy||`—`}),(0,K.jsx)(Z,{label:`Storage`,value:t.partition?`Partitioned`:`Shared`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{className:`pgb-eyebrow`,children:`Dead Letter`}),(0,K.jsx)(`dd`,{className:`mt-1 text-sm text-[var(--text-primary)]`,children:t.deadLetter?(0,K.jsx)(u,{to:`/queues/${t.deadLetter}`,className:`font-mono text-xs text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300`,children:t.deadLetter}):`—`})]}),(0,K.jsx)(Z,{label:`Warning Threshold`,value:t.warningQueueSize||`—`})]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-x-6 gap-y-4`,children:[(0,K.jsx)(Z,{label:`Retry Limit`,value:t.retryLimit??0}),(0,K.jsx)(Z,{label:`Retry Delay`,value:t.retryDelay?`${t.retryDelay}ms`:`—`}),(0,K.jsx)(Z,{label:`Retry Delay Max`,value:t.retryDelayMax?`${t.retryDelayMax}ms`:`—`}),(0,K.jsx)(Z,{label:`Retry Backoff`,value:t.retryBackoff?`Enabled`:`Disabled`})]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-4`,children:[(0,K.jsx)(Z,{label:`Expiration`,value:Q(t.expireInSeconds)}),(0,K.jsx)(Z,{label:`Retention`,value:Q(t.retentionSeconds)}),(0,K.jsx)(Z,{label:`Deletion`,value:Q(t.deleteAfterSeconds)})]}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-6 gap-y-4`,children:[(0,K.jsx)(Z,{label:`Created`,value:t.createdOn?c(new Date(t.createdOn)):`—`}),(0,K.jsx)(Z,{label:`Last monitored`,value:t.monitorOn?c(new Date(t.monitorOn)):`—`}),(0,K.jsx)(Z,{label:`Last maintained`,value:t.maintainOn?c(new Date(t.maintainOn)):`—`})]})]})})]}),(0,K.jsxs)(A,{children:[(0,K.jsxs)(k,{className:`flex flex-row items-center justify-between`,children:[(0,K.jsxs)(O,{children:[`Jobs`,r!==null&&` (${r.toLocaleString()})`]}),(0,K.jsx)(U,{value:l,options:s,onChange:e=>b(`state`,e)})]}),(0,K.jsx)(j,{className:`p-0`,children:(0,K.jsxs)(B,{children:[(0,K.jsx)(F,{children:(0,K.jsxs)(R,{children:[(0,K.jsx)(I,{children:`ID`}),(0,K.jsx)(I,{children:`State`}),(0,K.jsx)(I,{children:`Priority`}),(0,K.jsx)(I,{children:`Retries`}),(0,K.jsx)(I,{children:`Created`}),(0,K.jsx)(I,{children:`Actions`})]})}),(0,K.jsx)(L,{children:n.length===0?(0,K.jsx)(R,{children:(0,K.jsx)(z,{className:`text-center text-[var(--text-tertiary)] py-8`,colSpan:6,children:`No jobs found`})}):n.map(e=>(0,K.jsx)(Y,{job:e,queueName:t.name},e.id))})]})}),(0,K.jsx)(H,{page:i,totalPages:a,hasNextPage:f,hasPrevPage:h,onPageChange:x})]})]})});function Y({job:e,queueName:t}){let n=a(),r=n.state!==`idle`,[i,o]=(0,G.useState)(null),s=n.data,l=s&&!s.success&&s.affected===0,f=t=>{n.submit({jobId:e.id,intent:t},{method:`post`})},p=(e,t,n,r)=>{o({open:!0,title:t,description:n,confirmLabel:r,intent:e})},m=()=>{i&&(f(i.intent),o(null))},D=e.state===`created`||e.state===`retry`||e.state===`active`,O=e.state===`failed`,k=e.state===`cancelled`,A=e.state!==`active`,j=d(`flex w-full items-center px-3 py-2 text-sm cursor-pointer`,`outline-none transition-colors rounded-sm`,`text-gray-700 data-highlighted:bg-gray-100 data-highlighted:text-gray-900`,`dark:text-gray-300 dark:data-highlighted:bg-gray-800 dark:data-highlighted:text-gray-100`),N=d(`flex w-full items-center px-3 py-2 text-sm cursor-pointer`,`outline-none transition-colors rounded-sm`,`text-red-600 data-highlighted:bg-red-50 data-highlighted:text-red-700`,`dark:text-red-400 dark:data-highlighted:bg-red-950 dark:data-highlighted:text-red-300`);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(R,{children:[(0,K.jsx)(z,{children:(0,K.jsxs)(u,{to:`/queues/${t}/jobs/${e.id}`,className:`font-mono text-xs text-primary-600 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-300`,children:[e.id.slice(0,8),`...`]})}),(0,K.jsx)(z,{children:(0,K.jsx)(X,{state:e.state})}),(0,K.jsx)(z,{className:`pgb-num text-[var(--text-primary)]`,children:e.priority}),(0,K.jsxs)(z,{className:`pgb-num text-[var(--text-primary)]`,children:[e.retryCount,` / `,e.retryLimit]}),(0,K.jsx)(z,{className:`pgb-num text-[var(--text-tertiary)]`,children:c(new Date(e.createdOn))}),(0,K.jsx)(z,{children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l&&(0,K.jsx)(`span`,{className:`text-xs text-amber-600 dark:text-amber-400`,title:s.message,children:`Failed`}),(0,K.jsxs)(v,{children:[(0,K.jsx)(b,{className:d(`inline-flex items-center justify-center rounded-md p-1.5`,`text-gray-500 hover:text-gray-900 hover:bg-gray-100`,`dark:text-gray-400 dark:hover:text-gray-100 dark:hover:bg-gray-800`,`focus:outline-none focus:ring-2 focus:ring-primary-500`,`transition-colors disabled:opacity-50`),disabled:r,"aria-label":`Job actions`,children:(0,K.jsx)(W,{className:`h-4 w-4`})}),(0,K.jsx)(h,{children:(0,K.jsx)(g,{children:(0,K.jsxs)(y,{className:d(`min-w-[10rem] rounded-md border p-1 shadow-md z-50`,`bg-white border-gray-200`,`dark:bg-gray-900 dark:border-gray-800`,`animate-in fade-in-0 zoom-in-95`),children:[O&&(0,K.jsx)(_,{className:j,onClick:()=>f(`retry`),children:`Retry`}),k&&(0,K.jsx)(_,{className:j,onClick:()=>f(`resume`),children:`Resume`}),D&&(0,K.jsx)(_,{className:N,onClick:()=>p(`cancel`,`Cancel Job`,`Are you sure you want to cancel job ${e.id.slice(0,8)}...? This will stop the job from being processed.`,`Cancel Job`),children:`Cancel`}),A&&(0,K.jsx)(_,{className:N,onClick:()=>p(`delete`,`Delete Job`,`Are you sure you want to delete job ${e.id.slice(0,8)}...? This action cannot be undone.`,`Delete`),children:`Delete`})]})})})]})]})})]}),(0,K.jsx)(x,{open:i?.open??!1,onOpenChange:e=>!e&&o(null),children:(0,K.jsxs)(E,{hideCloseButton:!0,className:`w-[28rem] max-w-[calc(100vw-2rem)]`,children:[(0,K.jsxs)(S,{children:[(0,K.jsx)(w,{children:i?.title}),(0,K.jsx)(C,{className:`mt-2`,children:i?.description})]}),(0,K.jsxs)(T,{className:`mt-6 flex justify-end gap-3`,children:[(0,K.jsx)(M,{variant:`outline`,size:`sm`,className:`cursor-pointer`,onClick:()=>o(null),children:`Cancel`}),(0,K.jsx)(M,{variant:`danger`,size:`sm`,className:`cursor-pointer`,onClick:m,children:i?.confirmLabel})]})]})})]})}function X({state:e}){return(0,K.jsx)(P,{variant:l[e],size:`sm`,dot:!0,children:e})}function Z({label:e,value:t}){return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{className:`pgb-eyebrow`,children:e}),(0,K.jsx)(`dd`,{className:`mt-1 text-sm text-[var(--text-primary)]`,children:t?.toString()||`—`})]})}function Q(e){if(!e)return`—`;if(e<60)return`${e} seconds`;if(e<3600){let t=Math.floor(e/60);return`${t} ${t===1?`minute`:`minutes`}`}if(e<86400){let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return n===0?`${t} ${t===1?`hour`:`hours`}`:`${t} ${t===1?`hour`:`hours`} ${n} ${n===1?`minute`:`minutes`}`}let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);return n===0?`${t} ${t===1?`day`:`days`}`:`${t} ${t===1?`day`:`days`} ${n} ${n===1?`hour`:`hours`}`}export{q as ErrorBoundary,J as default};
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-950:oklch(25.8% .092 26.042);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-950:oklch(27.9% .077 45.635);--color-green-400:oklch(79.2% .209 151.711);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-900:oklch(38.6% .063 188.416);--color-teal-950:oklch(27.7% .046 192.524);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-800:oklch(45% .085 224.283);--color-cyan-900:oklch(39.8% .07 227.392);--color-cyan-950:oklch(30.2% .056 229.695);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-indigo-950:oklch(25.7% .09 281.288);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-gray-50:#f7f8fa;--color-gray-100:#eef0f4;--color-gray-200:#e3e6ec;--color-gray-300:#cbd1db;--color-gray-400:#9aa3b2;--color-gray-500:#6b7585;--color-gray-600:#4d5663;--color-gray-700:#3a414c;--color-gray-800:#262b33;--color-gray-900:#181b21;--color-gray-950:#0e1014;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-0{right:0}.right-1{right:var(--spacing)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-\[50\%\]{left:50%}.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-\[100\]{z-index:100}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.my-1{margin-block:var(--spacing)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-\[18px\]{height:18px}.h-\[38px\]{height:38px}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-80{max-height:calc(var(--spacing) * 80)}.min-h-0{min-height:0}.min-h-\[50vh\]{min-height:50vh}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-32{width:calc(var(--spacing) * 32)}.w-\[--sidebar-width-mobile\]{width:--sidebar-width-mobile}.w-\[--sidebar-width\]{width:--sidebar-width}.w-\[18px\]{width:18px}.w-\[28rem\]{width:28rem}.w-\[var\(--sidebar-width\)\]{width:var(--sidebar-width)}.w-\[var\(--sidebar-width-icon\)\]{width:var(--sidebar-width-icon)}.w-full{width:100%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[16rem\]{min-width:16rem}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.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))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[var\(--border-default\)\]{border-color:var(--border-default)}.border-\[var\(--border-strong\)\]{border-color:var(--border-strong)}.border-\[var\(--border-subtle\)\]{border-color:var(--border-subtle)}.border-\[var\(--error-100\)\]{border-color:var(--error-100)}.border-amber-300{border-color:var(--color-amber-300)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-red-200{border-color:var(--color-red-200)}.border-sidebar-border{border-color:var(--sidebar-border-color)}.bg-\[\#3b66f5\]{background-color:#3b66f5}.bg-\[var\(--error-50\)\]{background-color:var(--error-50)}.bg-\[var\(--state-active-bg\)\]{background-color:var(--state-active-bg)}.bg-\[var\(--state-active-dot\)\]{background-color:var(--state-active-dot)}.bg-\[var\(--state-completed-bg\)\]{background-color:var(--state-completed-bg)}.bg-\[var\(--state-completed-dot\)\]{background-color:var(--state-completed-dot)}.bg-\[var\(--state-created-bg\)\]{background-color:var(--state-created-bg)}.bg-\[var\(--state-created-dot\)\]{background-color:var(--state-created-dot)}.bg-\[var\(--state-failed-bg\)\]{background-color:var(--state-failed-bg)}.bg-\[var\(--state-failed-dot\)\]{background-color:var(--state-failed-dot)}.bg-\[var\(--state-retry-bg\)\]{background-color:var(--state-retry-bg)}.bg-\[var\(--state-retry-dot\)\]{background-color:var(--state-retry-dot)}.bg-\[var\(--surface-app\)\]{background-color:var(--surface-app)}.bg-\[var\(--surface-card\)\]{background-color:var(--surface-card)}.bg-\[var\(--surface-sunken\)\]{background-color:var(--surface-sunken)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-900\/50{background-color:#181b2180}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/50{background-color:color-mix(in oklab, var(--color-gray-900) 50%, transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-primary-50{background-color:var(--primary-50)}.bg-primary-500{background-color:var(--primary-500)}.bg-primary-600{background-color:var(--primary-600)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-600{background-color:var(--color-red-600)}.bg-sidebar{background-color:var(--sidebar-solid)}.bg-sidebar-accent{background-color:var(--sidebar-elevated)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--border-strong\)\]{color:var(--border-strong)}.text-\[var\(--error-600\)\]{color:var(--error-600)}.text-\[var\(--sidebar-active-text\)\]{color:var(--sidebar-active-text)}.text-\[var\(--state-active-fg\)\]{color:var(--state-active-fg)}.text-\[var\(--state-completed-fg\)\]{color:var(--state-completed-fg)}.text-\[var\(--state-created-fg\)\]{color:var(--state-created-fg)}.text-\[var\(--state-failed-fg\)\]{color:var(--state-failed-fg)}.text-\[var\(--state-retry-fg\)\]{color:var(--state-retry-fg)}.text-\[var\(--success-600\)\]{color:var(--success-600)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--text-tertiary\)\]{color:var(--text-tertiary)}.text-\[var\(--warning-500\)\]{color:var(--warning-500)}.text-\[var\(--warning-600\)\]{color:var(--warning-600)}.text-amber-600{color:var(--color-amber-600)}.text-amber-800{color:var(--color-amber-800)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-primary-600{color:var(--primary-600)}.text-primary-700{color:var(--primary-700)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-sidebar-accent-foreground{color:var(--sidebar-text-strong)}.text-sidebar-foreground,.text-sidebar-foreground\/50{color:var(--sidebar-text-color)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/50{color:color-mix(in oklab, var(--sidebar-text-color) 50%, transparent)}}.text-sidebar-foreground\/60{color:var(--sidebar-text-color)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/60{color:color-mix(in oklab, var(--sidebar-text-color) 60%, transparent)}}.text-sidebar-foreground\/70{color:var(--sidebar-text-color)}@supports (color:color-mix(in lab, red, red)){.text-sidebar-foreground\/70{color:color-mix(in oklab, var(--sidebar-text-color) 70%, transparent)}}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.placeholder-\[var\(--text-tertiary\)\]::placeholder{color:var(--text-tertiary)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-gray-900{--tw-ring-color:var(--color-gray-900)}.ring-sidebar-ring{--tw-ring-color:var(--primary-500)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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(var(--blur-md));-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-saturate-150{--tw-backdrop-saturate:saturate(150%);-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-\[padding\]{transition-property:padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media (hover:hover){.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing) * 8)}.group-data-\[state\=collapsed\]\:hidden:is(:where(.group)[data-state=collapsed] *){display:none}.group-data-\[state\=collapsed\]\:\!h-8:is(:where(.group)[data-state=collapsed] *){height:calc(var(--spacing) * 8)!important}@media (hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-text-strong)}}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-text-strong)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-2:before{content:var(--tw-content);top:calc(var(--spacing) * 2)}.before\:bottom-2:before{content:var(--tw-content);bottom:calc(var(--spacing) * 2)}.before\:left-0:before{content:var(--tw-content);left:0}.before\:w-\[3px\]:before{content:var(--tw-content);width:3px}.before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\:bg-primary-500:before{content:var(--tw-content);background-color:var(--primary-500)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.group-data-\[state\=collapsed\]\:before\:hidden:is(:where(.group)[data-state=collapsed] *):before{content:var(--tw-content);display:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-\[var\(--surface-hover\)\]:hover{background-color:var(--surface-hover)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-primary-100:hover{background-color:var(--primary-100)}.hover\:bg-primary-700:hover{background-color:var(--primary-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-elevated)}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:text-\[var\(--text-secondary\)\]:hover{color:var(--text-secondary)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-primary-700:hover{color:var(--primary-700)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-text-strong)}.hover\:text-sidebar-foreground:hover{color:var(--sidebar-text-color)}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-\[var\(--border-focus\)\]:focus{border-color:var(--border-focus)}.focus\:border-primary-600:focus{border-color:var(--primary-600)}.focus\:border-transparent:focus{border-color:#0000}.focus\:bg-gray-100:focus{background-color:var(--color-gray-100)}.focus\:shadow-\[var\(--shadow-focus\)\]:focus{--tw-shadow:var(--shadow-focus);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-primary-500:focus{--tw-ring-color:var(--primary-500)}.focus\:ring-primary-600:focus{--tw-ring-color:var(--primary-600)}.focus\:ring-red-600:focus{--tw-ring-color:var(--color-red-600)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-elevated)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-text-strong)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar-solid)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-highlighted\:bg-gray-100[data-highlighted]{background-color:var(--color-gray-100)}.data-highlighted\:bg-red-50[data-highlighted]{background-color:var(--color-red-50)}.data-highlighted\:text-gray-900[data-highlighted]{color:var(--color-gray-900)}.data-highlighted\:text-red-700[data-highlighted]{color:var(--color-red-700)}.data-open\:bg-gray-100[data-open]{background-color:var(--color-gray-100)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-elevated)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-text-strong)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[2fr_1fr_1fr\]{grid-template-columns:2fr 1fr 1fr}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:pl-\[var\(--sidebar-width\)\]{padding-left:var(--sidebar-width)}.md\:pl-\[var\(--sidebar-width-icon\)\]{padding-left:var(--sidebar-width-icon)}.md\:opacity-0{opacity:0}}.after\:md\:hidden:after{content:var(--tw-content)}@media (width>=48rem){.after\:md\:hidden:after{display:none}}@media (width>=64rem){.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\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[1\.5fr_1fr\]{grid-template-columns:1.5fr 1fr}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:py-8{padding-block:calc(var(--spacing) * 8)}}.dark\:block:where(.dark,.dark *){display:block}.dark\:hidden:where(.dark,.dark *){display:none}.dark\:border:where(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-amber-700:where(.dark,.dark *){border-color:var(--color-amber-700)}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\:border-red-800:where(.dark,.dark *){border-color:var(--color-red-800)}.dark\:bg-amber-950:where(.dark,.dark *){background-color:var(--color-amber-950)}.dark\:bg-gray-700:where(.dark,.dark *){background-color:var(--color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-gray-950:where(.dark,.dark *){background-color:var(--color-gray-950)}.dark\:bg-primary-400:where(.dark,.dark *){background-color:var(--primary-400)}.dark\:bg-primary-950:where(.dark,.dark *){background-color:var(--primary-950)}.dark\:bg-red-950:where(.dark,.dark *){background-color:var(--color-red-950)}.dark\:text-amber-200:where(.dark,.dark *){color:var(--color-amber-200)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--color-gray-500)}.dark\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\:text-primary-300:where(.dark,.dark *){color:var(--primary-300)}.dark\:text-primary-400:where(.dark,.dark *){color:var(--primary-400)}.dark\:text-red-200:where(.dark,.dark *){color:var(--color-red-200)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:placeholder-gray-400:where(.dark,.dark *)::placeholder{color:var(--color-gray-400)}.dark\:placeholder-gray-500:where(.dark,.dark *)::placeholder{color:var(--color-gray-500)}.dark\:ring-white:where(.dark,.dark *){--tw-ring-color:var(--color-white)}.dark\:ring-offset-gray-900:where(.dark,.dark *){--tw-ring-offset-color:var(--color-gray-900)}.dark\:checked\:border-primary-600:where(.dark,.dark *):checked{border-color:var(--primary-600)}.dark\:checked\:bg-primary-600:where(.dark,.dark *):checked{background-color:var(--primary-600)}@media (hover:hover){.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-primary-900:where(.dark,.dark *):hover{background-color:var(--primary-900)}.dark\:hover\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}.dark\:hover\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\:hover\:text-primary-300:where(.dark,.dark *):hover{color:var(--primary-300)}}.dark\:focus\:border-primary-500:where(.dark,.dark *):focus{border-color:var(--primary-500)}.dark\:focus\:bg-gray-800:where(.dark,.dark *):focus{background-color:var(--color-gray-800)}.dark\:focus\:ring-primary-500:where(.dark,.dark *):focus{--tw-ring-color:var(--primary-500)}.dark\:focus\:ring-offset-gray-900:where(.dark,.dark *):focus{--tw-ring-offset-color:var(--color-gray-900)}.dark\:data-highlighted\:bg-gray-800:where(.dark,.dark *)[data-highlighted]{background-color:var(--color-gray-800)}.dark\:data-highlighted\:bg-red-950:where(.dark,.dark *)[data-highlighted]{background-color:var(--color-red-950)}.dark\:data-highlighted\:text-gray-100:where(.dark,.dark *)[data-highlighted]{color:var(--color-gray-100)}.dark\:data-highlighted\:text-red-300:where(.dark,.dark *)[data-highlighted]{color:var(--color-red-300)}.dark\:data-open\:bg-gray-800:where(.dark,.dark *)[data-open]{background-color:var(--color-gray-800)}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-text-strong)}}:root{--neutral-0:#fff;--neutral-50:#f7f8fa;--neutral-100:#eef0f4;--neutral-200:#e3e6ec;--neutral-300:#cbd1db;--neutral-400:#9aa3b2;--neutral-500:#6b7585;--neutral-600:#4d5663;--neutral-700:#3a414c;--neutral-800:#262b33;--neutral-900:#181b21;--neutral-950:#0e1014;--ink-900:#0f1116;--ink-800:#14161d;--ink-700:#1b1e26;--ink-600:#232732;--ink-border:#262b36;--success-50:#e9f7ee;--success-100:#cdecd9;--success-500:#1f9d57;--success-600:#178048;--success-700:#11653a;--warning-50:#fdf3e4;--warning-100:#f9e3bf;--warning-500:#df8a05;--warning-600:#b86d00;--warning-700:#8f5402;--error-50:#fdecec;--error-100:#f8d4d2;--error-500:#e0413c;--error-600:#c5302b;--error-700:#9d2723;--info-50:#e6f6f6;--info-100:#c4e9e9;--info-500:#0f9a9a;--info-600:#0b7d7d;--info-700:#0a6363;--surface-app:var(--neutral-50);--surface-card:var(--neutral-0);--surface-card-grad:var(--neutral-0);--surface-sunken:var(--neutral-100);--surface-hover:var(--neutral-50);--border-subtle:var(--neutral-100);--border-default:var(--neutral-200);--border-strong:var(--neutral-300);--border-focus:var(--primary-500);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-600);--text-tertiary:var(--neutral-500);--text-link:var(--primary-600);--text-link-hover:var(--primary-700);--chart-track:var(--neutral-100);--chart-muted:var(--neutral-200);--state-created-fg:var(--neutral-600);--state-created-bg:var(--neutral-100);--state-created-dot:var(--neutral-400);--state-active-fg:var(--primary-700);--state-active-bg:var(--primary-50);--state-active-dot:var(--primary-500);--state-completed-fg:var(--success-700);--state-completed-bg:var(--success-50);--state-completed-dot:var(--success-500);--state-retry-fg:var(--warning-700);--state-retry-bg:var(--warning-50);--state-retry-dot:var(--warning-500);--state-failed-fg:var(--error-700);--state-failed-bg:var(--error-50);--state-failed-dot:var(--error-500);--state-cancelled-fg:var(--neutral-500);--state-cancelled-bg:var(--neutral-100);--state-cancelled-dot:var(--neutral-300);--action-primary:var(--primary-600);--action-primary-hover:var(--primary-700);--app-glow:#3b66f51c;--app-glow-2:#0f9a9a14;--gradient-app:radial-gradient(1100px 480px at 16% -10%, var(--app-glow), transparent 60%), radial-gradient(940px 540px at 102% -4%, var(--app-glow-2), transparent 58%), linear-gradient(180deg, var(--neutral-50) 0%, var(--neutral-100) 55%, #e7eaf1 100%);--gradient-console:linear-gradient(176deg, #181c27 0%, var(--ink-800) 34%, var(--ink-900) 100%);--sidebar-bg:radial-gradient(480px 230px at 24% -16%, var(--app-glow), transparent 72%), radial-gradient(360px 300px at 96% 116%, #0f9a9a1a, transparent 70%), linear-gradient(168deg, #eef2fb 0%, #e4eaf5 46%, #dbe2f0 100%);--sidebar-solid:#e7ecf6;--sidebar-border-color:#d4dbea;--sidebar-elevated:#fff9;--sidebar-text-color:var(--neutral-600);--sidebar-text-strong:var(--neutral-900);--sidebar-text-muted:var(--neutral-500);--sidebar-active-bg:linear-gradient(180deg, #fff 0%, #f6f8fd 100%);--sidebar-active-text:var(--primary-700);--sidebar-active-shadow:0 1px 2px #141c2e12, 0 3px 8px -2px #141c2e1a;--sidebar-icon:var(--neutral-500);--sidebar-icon-active:var(--primary-600);--surface-topbar:radial-gradient(620px 140px at 82% -50%, var(--app-glow), transparent 72%), linear-gradient(180deg, #ecf0f9e6 0%, #e1e7f4c7 100%);--topbar-shadow:0 1px 0 #141c2e0d, 0 12px 26px -18px #141c2e57;--shadow-focus:0 0 0 3px #3b66f547;--primary-50:#eef3ff;--primary-100:#dde7ff;--primary-200:#c2d2ff;--primary-300:#98b3ff;--primary-400:#6589fb;--primary-500:#3b66f5;--primary-600:#284fe0;--primary-700:#213fc4;--primary-800:#21389e;--primary-900:#21347d;--primary-950:#161f4d}.dark{--surface-app:#0c0e13;--surface-card:#15181f;--surface-card-grad:linear-gradient(180deg, #1a1e27 0%, #14171e 100%);--surface-sunken:#1c2029;--surface-hover:#1f2430;--ink-900:#0a0c10;--ink-800:#0e1015;--ink-700:#181c25;--ink-600:#20242f;--ink-border:#20242f;--border-subtle:#1c2029;--border-default:#272c37;--border-strong:#353c49;--text-primary:#eef1f6;--text-secondary:#aeb7c6;--text-tertiary:#828b9c;--text-link:var(--primary-300);--text-link-hover:var(--primary-200);--chart-track:#ffffff12;--chart-muted:#2c3340;--state-created-fg:#c2c9d4;--state-created-bg:#9aa3b224;--state-created-dot:var(--neutral-400);--state-active-fg:#9fb6ff;--state-active-bg:#3b66f52e;--state-active-dot:var(--primary-400);--state-completed-fg:#6fd39b;--state-completed-bg:#1f9d572e;--state-completed-dot:var(--success-500);--state-retry-fg:#f0b357;--state-retry-bg:#df8a052e;--state-retry-dot:var(--warning-500);--state-failed-fg:#f2918d;--state-failed-bg:#e0413c2e;--state-failed-dot:var(--error-500);--state-cancelled-fg:#99a2b2;--state-cancelled-bg:#9aa3b21a;--state-cancelled-dot:var(--neutral-500);--action-primary:var(--primary-500);--action-primary-hover:var(--primary-400);--app-glow:#3b66f529;--app-glow-2:#0f9a9a1a;--gradient-app:radial-gradient(1100px 480px at 16% -12%, var(--app-glow), transparent 60%), radial-gradient(960px 540px at 104% -6%, var(--app-glow-2), transparent 58%), radial-gradient(820px 600px at 56% 122%, #3b66f512, transparent 62%), linear-gradient(180deg, #0e1118 0%, #0b0d12 52%, #08090d 100%);--gradient-console:linear-gradient(176deg, #121620 0%, #0c0e13 36%, #08090d 100%);--sidebar-bg:radial-gradient(440px 210px at 28% -12%, var(--app-glow), transparent 72%), var(--gradient-console);--sidebar-solid:var(--ink-800);--sidebar-border-color:var(--ink-border);--sidebar-elevated:var(--ink-700);--sidebar-text-color:#c6ccd8;--sidebar-text-strong:#f2f4f8;--sidebar-text-muted:#7c8597;--sidebar-active-bg:linear-gradient(180deg, #20242f 0%, #181c25 100%);--sidebar-active-text:#f2f4f8;--sidebar-active-shadow:inset 0 0 0 1px #ffffff0d;--sidebar-icon:#7c8597;--sidebar-icon-active:var(--primary-400);--surface-topbar:radial-gradient(620px 140px at 82% -50%, var(--app-glow), transparent 72%), linear-gradient(180deg, #171b24db 0%, #0d0f14a8 100%);--topbar-shadow:0 1px 0 #00000057, 0 12px 26px -20px #0009}[data-color-theme=cobalt]{--primary-50:#eef3ff;--primary-100:#dde7ff;--primary-200:#c2d2ff;--primary-300:#98b3ff;--primary-400:#6589fb;--primary-500:#3b66f5;--primary-600:#284fe0;--primary-700:#213fc4;--primary-800:#21389e;--primary-900:#21347d;--primary-950:#161f4d}[data-color-theme=emerald]{--primary-50:var(--color-emerald-50);--primary-100:var(--color-emerald-100);--primary-200:var(--color-emerald-200);--primary-300:var(--color-emerald-300);--primary-400:var(--color-emerald-400);--primary-500:var(--color-emerald-500);--primary-600:var(--color-emerald-600);--primary-700:var(--color-emerald-700);--primary-800:var(--color-emerald-800);--primary-900:var(--color-emerald-900);--primary-950:var(--color-emerald-950)}[data-color-theme=teal]{--primary-50:var(--color-teal-50);--primary-100:var(--color-teal-100);--primary-200:var(--color-teal-200);--primary-300:var(--color-teal-300);--primary-400:var(--color-teal-400);--primary-500:var(--color-teal-500);--primary-600:var(--color-teal-600);--primary-700:var(--color-teal-700);--primary-800:var(--color-teal-800);--primary-900:var(--color-teal-900);--primary-950:var(--color-teal-950)}[data-color-theme=cyan]{--primary-50:var(--color-cyan-50);--primary-100:var(--color-cyan-100);--primary-200:var(--color-cyan-200);--primary-300:var(--color-cyan-300);--primary-400:var(--color-cyan-400);--primary-500:var(--color-cyan-500);--primary-600:var(--color-cyan-600);--primary-700:var(--color-cyan-700);--primary-800:var(--color-cyan-800);--primary-900:var(--color-cyan-900);--primary-950:var(--color-cyan-950)}[data-color-theme=sky]{--primary-50:var(--color-sky-50);--primary-100:var(--color-sky-100);--primary-200:var(--color-sky-200);--primary-300:var(--color-sky-300);--primary-400:var(--color-sky-400);--primary-500:var(--color-sky-500);--primary-600:var(--color-sky-600);--primary-700:var(--color-sky-700);--primary-800:var(--color-sky-800);--primary-900:var(--color-sky-900);--primary-950:var(--color-sky-950)}[data-color-theme=blue]{--primary-50:var(--color-blue-50);--primary-100:var(--color-blue-100);--primary-200:var(--color-blue-200);--primary-300:var(--color-blue-300);--primary-400:var(--color-blue-400);--primary-500:var(--color-blue-500);--primary-600:var(--color-blue-600);--primary-700:var(--color-blue-700);--primary-800:var(--color-blue-800);--primary-900:var(--color-blue-900);--primary-950:var(--color-blue-950)}[data-color-theme=indigo]{--primary-50:var(--color-indigo-50);--primary-100:var(--color-indigo-100);--primary-200:var(--color-indigo-200);--primary-300:var(--color-indigo-300);--primary-400:var(--color-indigo-400);--primary-500:var(--color-indigo-500);--primary-600:var(--color-indigo-600);--primary-700:var(--color-indigo-700);--primary-800:var(--color-indigo-800);--primary-900:var(--color-indigo-900);--primary-950:var(--color-indigo-950)}[data-color-theme=violet]{--primary-50:var(--color-violet-50);--primary-100:var(--color-violet-100);--primary-200:var(--color-violet-200);--primary-300:var(--color-violet-300);--primary-400:var(--color-violet-400);--primary-500:var(--color-violet-500);--primary-600:var(--color-violet-600);--primary-700:var(--color-violet-700);--primary-800:var(--color-violet-800);--primary-900:var(--color-violet-900);--primary-950:var(--color-violet-950)}[data-color-theme=purple]{--primary-50:var(--color-purple-50);--primary-100:var(--color-purple-100);--primary-200:var(--color-purple-200);--primary-300:var(--color-purple-300);--primary-400:var(--color-purple-400);--primary-500:var(--color-purple-500);--primary-600:var(--color-purple-600);--primary-700:var(--color-purple-700);--primary-800:var(--color-purple-800);--primary-900:var(--color-purple-900);--primary-950:var(--color-purple-950)}[data-theme-mode=light] .theme-mode-label:after{content:"Light"}[data-theme-mode=dark] .theme-mode-label:after{content:"Dark"}[data-theme-mode=system] .theme-mode-label:after{content:"System"}[data-color-theme=cobalt] .color-theme-label:after{content:"Cobalt"}[data-color-theme=emerald] .color-theme-label:after{content:"Emerald"}[data-color-theme=teal] .color-theme-label:after{content:"Teal"}[data-color-theme=cyan] .color-theme-label:after{content:"Cyan"}[data-color-theme=sky] .color-theme-label:after{content:"Sky"}[data-color-theme=blue] .color-theme-label:after{content:"Blue"}[data-color-theme=indigo] .color-theme-label:after{content:"Indigo"}[data-color-theme=violet] .color-theme-label:after{content:"Violet"}[data-color-theme=purple] .color-theme-label:after{content:"Purple"}body{font-family:var(--font-sans);background-color:var(--surface-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pgb-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "zero" 1, "ss01" 1}.pgb-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:11px;font-weight:600}::selection{background:var(--primary-200);color:var(--primary-900)}@keyframes loading-bar{0%{width:0%;margin-left:0%}50%{width:30%;margin-left:40%}to{width:0%;margin-left:100%}}.animate-loading-bar{animation:1s ease-in-out infinite loading-bar}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}