@aidotnet/server-linux-arm64 0.6.0 → 0.7.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.
- package/bin/astra-server +2 -2
- package/bin/wwwroot/assets/ClientsPage-CwrpIsjp.js +11 -0
- package/bin/wwwroot/assets/ModelDetailPage-CDrpIJ2a.js +1 -0
- package/bin/wwwroot/assets/ModelsPage-C0SIEL78.js +1 -0
- package/bin/wwwroot/assets/Page-D9s9brqr.js +3 -0
- package/bin/wwwroot/assets/PluginsPage-CU6HnW-3.js +2 -0
- package/bin/wwwroot/assets/PrivacyPage-B_Gvd1LU.js +1 -0
- package/bin/wwwroot/assets/ProviderDetailPage-VHzmmtBT.js +3 -0
- package/bin/wwwroot/assets/ProvidersPage-Dj_CsU72.js +2 -0
- package/bin/wwwroot/assets/SettingsPage-BKlK87nl.js +1 -0
- package/bin/wwwroot/assets/TokensPage-RhLk-cLA.js +1 -0
- package/bin/wwwroot/assets/TrayPanelPage-glZe4Vli.js +1 -0
- package/bin/wwwroot/assets/TrayPanelView-BPGmNn0R.js +1 -0
- package/bin/wwwroot/assets/arrow-down-dwUtKoOn.js +1 -0
- package/bin/wwwroot/assets/arrow-up-DFb4XkB6.js +1 -0
- package/bin/wwwroot/assets/checkbox-w2_7QuDk.js +1 -0
- package/bin/wwwroot/assets/cloud-download-C1VSdmBb.js +1 -0
- package/bin/wwwroot/assets/confirm-morph-B9k3rCnO.js +1 -0
- package/bin/wwwroot/assets/download-DoTXPUWy.js +1 -0
- package/bin/wwwroot/assets/ellipsis-B2d4aPpF.js +1 -0
- package/bin/wwwroot/assets/external-link-DhHaJlE-.js +1 -0
- package/bin/wwwroot/assets/folder-open-DC0j6uC-.js +1 -0
- package/bin/wwwroot/assets/index-br322rzz.js +15 -0
- package/bin/wwwroot/assets/log-out-CtwqdEhG.js +1 -0
- package/bin/wwwroot/assets/{format-CkDcAs-_.js → overlays-CnzrFKmb.js} +16 -16
- package/bin/wwwroot/assets/pencil-nlLBeib5.js +1 -0
- package/bin/wwwroot/assets/power-DQiCs26X.js +1 -0
- package/bin/wwwroot/assets/radio-cards-Byb8E5K7.js +1 -0
- package/bin/wwwroot/assets/rotate-ccw-BLaDyhPe.js +1 -0
- package/bin/wwwroot/assets/use-transform-C8au3Jv4.js +1 -0
- package/bin/wwwroot/index.html +6 -6
- package/package.json +1 -1
- package/bin/wwwroot/assets/ClientsPage-CcTgjJ-D.js +0 -11
- package/bin/wwwroot/assets/ModelDetailPage-B9205fOF.js +0 -1
- package/bin/wwwroot/assets/ModelsPage-CAXCnMox.js +0 -1
- package/bin/wwwroot/assets/Page-iMwsVZGv.js +0 -3
- package/bin/wwwroot/assets/PluginsPage-1htR9MlO.js +0 -2
- package/bin/wwwroot/assets/PrivacyPage-DDrC7ZN2.js +0 -1
- package/bin/wwwroot/assets/ProviderDetailPage-BrLQ3wxI.js +0 -3
- package/bin/wwwroot/assets/ProvidersPage-DEwFPi0w.js +0 -2
- package/bin/wwwroot/assets/SettingsPage-vDXq5KMg.js +0 -1
- package/bin/wwwroot/assets/TokensPage-nnTsXi1X.js +0 -1
- package/bin/wwwroot/assets/TrayPanelPage-BLLZAck0.js +0 -1
- package/bin/wwwroot/assets/arrow-down-Bgpt1Ug2.js +0 -1
- package/bin/wwwroot/assets/arrow-up-DqX0vZ8v.js +0 -1
- package/bin/wwwroot/assets/checkbox-BQx1e8t-.js +0 -1
- package/bin/wwwroot/assets/cloud-download-B-iX6FzV.js +0 -1
- package/bin/wwwroot/assets/confirm-morph-C93BpFKZ.js +0 -1
- package/bin/wwwroot/assets/download-Bbci4NYa.js +0 -1
- package/bin/wwwroot/assets/ellipsis-O3neUtss.js +0 -1
- package/bin/wwwroot/assets/external-link-BotneeB5.js +0 -1
- package/bin/wwwroot/assets/folder-open-BReAI4XO.js +0 -1
- package/bin/wwwroot/assets/index-C6Mqffdm.js +0 -15
- package/bin/wwwroot/assets/log-out-BSESm3Q8.js +0 -1
- package/bin/wwwroot/assets/pencil-C5urmout.js +0 -1
- package/bin/wwwroot/assets/power-rKYGhi1K.js +0 -1
- package/bin/wwwroot/assets/quota-fdOyhiov.js +0 -1
- package/bin/wwwroot/assets/radio-cards-CKDDH2FI.js +0 -1
- package/bin/wwwroot/assets/rotate-ccw-CJ2l4No1.js +0 -1
- package/bin/wwwroot/assets/use-transform-CJhlgN8s.js +0 -1
- package/bin/wwwroot/assets/useTrayData-CUUZrKRf.js +0 -1
- /package/bin/wwwroot/assets/{format-Cnf3vGpI.css → overlays-Cnf3vGpI.css} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
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,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(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},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),u=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.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.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`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(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 P(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,P(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),P(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=P(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=P(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return P(N(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 F(e,t,n){if(e==null)return e;var r=[],i=0;return P(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var te=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)};function ne(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,te)}catch(e){te(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function re(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else ne(re.bind(null,e))}var ie={map:F,forEach:function(e,t,n){F(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return F(e,function(){t++}),t},toArray:function(e){return F(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ie,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=re,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=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.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 D(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)E.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 D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ee}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=ne,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.0`})),d=o(((e,t)=>{t.exports=u()})),f=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})),p=o(((e,t)=>{t.exports=f()})),m=l(d(),1),h=p(),g=m.createContext(void 0),_=e=>{let t=m.useContext(g);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},v=({client:e,children:t})=>(m.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,h.jsx)(g.Provider,{value:e,children:t})),y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function E(e,t){return Math.max(e+(t||0)-Date.now(),0)}function D(e,t){return typeof e==`function`?e(t):e}function O(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==A(o,t.options))return!1}else if(!M(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function k(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(j(t.options.mutationKey)!==j(a))return!1}else if(!M(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function A(e,t){return(t?.queryKeyHashFn||j)(e)}function j(e){return JSON.stringify(e,(e,t)=>te(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function M(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n<t.length;n++)if(!M(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!M(e[r],t[r]))return!1;return!0}return!1}var N=Object.prototype.hasOwnProperty;function P(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=ee(e)&&ee(t);if(!r&&!(te(e)&&te(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:N.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=P(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function F(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function ee(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function te(e){if(!ne(e))return!1;let t=Object.getPrototypeOf(e),n=t?.constructor;if(n===void 0)return!0;if(typeof n!=`function`)return!1;let r=n.prototype;return!(!ne(r)||!r.hasOwnProperty(`isPrototypeOf`)||t!==Object.prototype)}function ne(e){return Object.prototype.toString.call(e)===`[object Object]`}function re(e){return new Promise(t=>{b.setTimeout(t,e)})}function ie(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:P(e,t)}function ae(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var se=Symbol();function ce(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===se?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function le(e,t){return typeof e==`function`?e(...t):!!e}function ue(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var de=()=>S,fe=()=>de(),pe=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},me=new class extends pe{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},he=x;function ge(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=he,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var _e=ge(),ve=new class extends pe{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function ye(e){return Math.min(1e3*2**e,3e4)}function be(e){return(e??`online`)!==`online`||ve.isOnline()}var xe=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Se(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(C);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new xe(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>me.isFocused()&&(e.networkMode===`always`||ve.isOnline())&&e.canRun(),p=()=>be(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(fe()?0:3),a=e.retryDelay??ye,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!s){h(r);return}n++,e.onFail?.(n,r),re(o).then(()=>f()?void 0:g()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().then(_),s)}}var Ce=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(fe()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}};function we(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ue(e,()=>t.signal,()=>n=!0)},u=ce(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?oe:ae;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Ee:Te,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Te(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function Te(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ee(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var De=class extends Ce{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Ae(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Ae(this.options);e.data!==void 0&&(this.setState(ke(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=ie(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>D(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===se||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>D(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!E(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=ce(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?we(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=Se({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof xe&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof xe){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Oe(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...ke(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),_e.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Oe(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:be(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function ke(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Ae(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var je=class extends pe{#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p=new Set;constructor(e,t){super(),this.options=t,this.#e=e,this.#o=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Ne(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Pe(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Pe(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof D(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!F(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&Fe(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||D(this.options.enabled,this.#t)!==D(t.enabled,this.#t)||D(this.options.staleTime,this.#t)!==D(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||D(this.options.enabled,this.#t)!==D(t.enabled,this.#t)||i!==this.#f)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return F(this.getCurrentResult(),n)||(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),Reflect.get(e,n))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t),r=()=>{},i,a=new Promise(e=>{i=e,r=this.#e.getQueryCache().subscribe(i=>{i.type===`updated`&&i.query.queryHash===n.queryHash&&n.state.data!==void 0&&(r(),e(this.createResult(n,t)))})});return Promise.race([n.fetch().then(()=>{let e=this.createResult(n,t);return i?.(e),e}).finally(()=>{r()}),a])}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#m(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#h(e){return!fe()&&D(this.options.enabled,this.#t)!==!1&&T(e)}#g(){this.#b();let e=D(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=E(this.#r.dataUpdatedAt,e)+1;this.#u=b.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return D(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=b.setInterval(()=>{(this.options.refetchIntervalInBackground||me.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(b.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(b.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Ne(e,t),o=i&&Fe(e,n,t,r);(a||o)&&(l={...l,...Oe(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#l?.state.data,this.#l):t.placeholderData,e!==void 0&&(m=`success`,d=ie(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h){if(i&&d===a?.data&&t.select===this.#s)d=this.#c;else try{this.#s=t.select,d=t.select(d),d=ie(i?.data,d,t),this.#c=d,this.#o=null}catch(e){this.#o=e}}else d===void 0&&(this.#o=null);this.#o&&(f=this.#o,d=this.#c,p=Date.now(),m=`error`,u=!1);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Ie(e,t),refetch:this.refetch,isEnabled:D(t.enabled,e)!==!1}}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#l=this.#t),F(t,e))return;this.#r=t;let n=(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#p.size)return!0;let r=new Set(n??this.#p);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})();_e.batch(()=>{n&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}};function Me(e,t){return D(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||D(t.retryOnMount,e)!==!1)}function Ne(e,t){return Me(e,t)||e.state.data!==void 0&&Pe(e,t,t.refetchOnMount)}function Pe(e,t,n){if(D(t.enabled,e)!==!1&&D(t.staleTime,e)!==`static`){let r=D(n,e);return r===`always`||r!==!1&&Ie(e,t)}return!1}function Fe(e,t,n,r){return(e!==t||D(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Ie(e,n)}function Ie(e,t){return D(t.enabled,e)!==!1&&e.isStaleByTime(D(t.staleTime,e))}var Le=class extends Ce{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Re(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},r=this.#r=Se({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),i=this.state.status===`pending`,a=!r.canStart();try{if(i)t();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let o=await r.start();return await this.#n.config.onSuccess?.(o,e,this.state.context,this,n),await this.options.onSuccess?.(o,e,this.state.context,n),await this.#n.config.onSettled?.(o,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(o,null,e,this.state.context,n),this.#i({type:`success`,data:o}),o}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===r&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),_e.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Re(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var ze=class extends pe{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),F(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&j(t.mutationKey)!==j(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#n&&(this.#n.addObserver(this),this.#i())}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??Re();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){_e.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},Be=m.createContext(!1),Ve=()=>m.useContext(Be);Be.Provider;function He(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Ue=m.createContext(He()),We=()=>m.useContext(Ue),Ge=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?le(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},Ke=e=>{m.useEffect(()=>{e.clearReset()},[e])},qe=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||le(n,[e.error,r])),Je=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Ye=(e,t)=>e?.suspense&&t.isPending,Xe=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ze(e,t,n){let r=Ve(),i=We(),a=_(n),o=a.defaultQueryOptions(e),s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,Je(o),Ge(o,i,s),Ke(i);let[l]=m.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&c;if(m.useSyncExternalStore(m.useCallback(e=>{let t=d?l.subscribe(_e.batchCalls(e)):C;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),m.useEffect(()=>{l.setOptions(o)},[o,l]),Ye(o,u))throw Xe(o,l,i);if(qe({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return o.notifyOnChangeProps?u:l.trackResult(u)}function I(e,t){return Ze(e,je,t)}function L(e,t){let n=_(t),[r]=m.useState(()=>new ze(n,e));m.useEffect(()=>{r.setOptions(e)},[r,e]);let i=m.useSyncExternalStore(m.useCallback(e=>r.subscribe(_e.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=m.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(C)},[r]);if(i.error&&le(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var Qe=(0,m.createContext)({});function $e(e){let t=(0,m.useRef)(null);return t.current===null&&(t.current=e()),t.current}var et=typeof window<`u`?m.useLayoutEffect:m.useEffect,tt=(0,m.createContext)(null);function nt(e,t){e.indexOf(t)===-1&&e.push(t)}function rt(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}var it=(e,t,n)=>n>t?t:n<e?e:n,at={},ot=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),st=e=>typeof e==`object`&&!!e,ct=e=>/^0[^.\s]+$/u.test(e);function lt(e){let t;return()=>(t===void 0&&(t=e()),t)}var ut=e=>e,dt=(...e)=>e.reduce((e,t)=>n=>t(e(n))),ft=(e,t,n)=>{let r=t-e;return r?(n-e)/r:1},pt=class{constructor(){this.subscriptions=[]}add(e){return nt(this.subscriptions,e),()=>this.remove(e)}remove(e){rt(this.subscriptions,e)}notify(e,t,n){let r=this.subscriptions.length;if(r){if(r===1)this.subscriptions[0](e,t,n);else for(let i=0;i<r;i++){let r=this.subscriptions[i];r&&r(e,t,n)}}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}},mt=e=>e*1e3,ht=e=>e/1e3,gt=(e,t)=>t?1e3/t*e:0,_t=(e,t,n)=>{let r=t-e;return((n-e)%r+r)%r+e},vt=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,yt=1e-7,bt=12;function xt(e,t,n,r,i){let a,o,s=0;do o=t+(n-t)/2,a=vt(o,r,i)-e,a>0?n=o:t=o;while(Math.abs(a)>yt&&++s<bt);return o}function St(e,t,n,r){if(e===t&&n===r)return ut;let i=t=>xt(t,0,1,e,n);return e=>e===0||e===1?e:vt(i(e),t,r)}var Ct=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,wt=e=>t=>1-e(1-t),Tt=St(.33,1.53,.69,.99),Et=wt(Tt),Dt=Ct(Et),Ot=e=>e>=1?1:(e*=2)<1?.5*Et(e):.5*(2-2**(-10*(e-1))),kt=e=>1-Math.sin(Math.acos(e)),At=wt(kt),jt=Ct(kt),Mt=St(.42,0,1,1),Nt=St(0,0,.58,1),Pt=St(.42,0,.58,1),Ft=e=>Array.isArray(e)&&typeof e[0]!=`number`;function It(e,t){return Ft(e)?e[_t(0,e.length,t)]:e}var Lt=e=>Array.isArray(e)&&typeof e[0]==`number`,Rt={linear:ut,easeIn:Mt,easeInOut:Pt,easeOut:Nt,circIn:kt,circInOut:jt,circOut:At,backIn:Et,backInOut:Dt,backOut:Tt,anticipate:Ot},zt=e=>typeof e==`string`,Bt=e=>{if(Lt(e)){e.length;let[t,n,r,i]=e;return St(t,n,r,i)}return zt(e)?(Rt[e],`${e}`,Rt[e]):e},Vt={delta:0,timestamp:0,isProcessing:!1},Ht;function Ut(){Ht=void 0}var Wt={now:()=>(Ht===void 0&&Wt.set(Vt.isProcessing||at.useManualTiming?Vt.timestamp:performance.now()),Ht),set:e=>{Ht=e,queueMicrotask(Ut)}},Gt=e=>Math.round(e*1e5)/1e5,Kt=e=>t=>typeof t==`string`&&t.startsWith(e),qt=Kt(`--`),Jt=Kt(`var(--`),Yt=e=>Jt(e)?Xt.test(e.split(`/*`)[0].trim()):!1,Xt=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Zt(e){return typeof e==`string`&&e.split(`/*`)[0].includes(`var(--`)}var Qt={test:e=>typeof e==`number`,parse:parseFloat,transform:e=>e},$t={...Qt,transform:e=>it(0,1,e)},en={...Qt,default:1},tn=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function nn(e){return e==null}var rn=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,an=(e,t)=>n=>!!(typeof n==`string`&&rn.test(n)&&n.startsWith(e)||t&&!nn(n)&&Object.prototype.hasOwnProperty.call(n,t)),on=(e,t,n)=>r=>{if(typeof r!=`string`)return r;let[i,a,o,s]=r.match(tn);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s===void 0?1:parseFloat(s)}},sn=e=>it(0,255,e),cn={...Qt,transform:e=>Math.round(sn(e))},ln={test:an(`rgb`,`red`),parse:on(`red`,`green`,`blue`),transform:({red:e,green:t,blue:n,alpha:r=1})=>`rgba(`+cn.transform(e)+`, `+cn.transform(t)+`, `+cn.transform(n)+`, `+Gt($t.transform(r))+`)`};function un(e){let t=``,n=``,r=``,i=``;return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}var dn={test:an(`#`),parse:un,transform:ln.transform},fn=e=>({test:t=>typeof t==`string`&&t.endsWith(e)&&t.split(` `).length===1,parse:parseFloat,transform:t=>`${t}${e}`}),pn=fn(`deg`),mn=fn(`%`),R=fn(`px`),hn=fn(`vh`),gn=fn(`vw`),_n={...mn,parse:e=>mn.parse(e)/100,transform:e=>mn.transform(e*100)},vn={test:an(`hsl`,`hue`),parse:on(`hue`,`saturation`,`lightness`),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>`hsla(`+Math.round(e)+`, `+mn.transform(Gt(t))+`, `+mn.transform(Gt(n))+`, `+Gt($t.transform(r))+`)`},yn={test:e=>ln.test(e)||dn.test(e)||vn.test(e),parse:e=>ln.test(e)?ln.parse(e):vn.test(e)?vn.parse(e):dn.parse(e),transform:e=>typeof e==`string`?e:e.hasOwnProperty(`red`)?ln.transform(e):vn.transform(e),getAnimatableNone:e=>{let t=yn.parse(e);return t.alpha=0,yn.transform(t)}},bn=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,xn=new RegExp(tn.source),Sn=new RegExp(bn.source,`i`);function Cn(e){return isNaN(e)&&typeof e==`string`&&(xn.test(e)||Sn.test(e))}var wn=`number`,Tn=`color`,En=`var`,Dn=`var(`,On="${}",kn=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function An(e){let t=e.toString();return xn.test(t)||Sn.test(t)}function jn(e){let t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[],a=0;return{values:n,split:t.replace(kn,e=>(yn.test(e)?(r.color.push(a),i.push(Tn),n.push(yn.parse(e))):e.startsWith(Dn)?(r.var.push(a),i.push(En),n.push(e)):(r.number.push(a),i.push(wn),n.push(parseFloat(e))),++a,On)).split(On),indexes:r,types:i}}function Mn(e){return jn(e).values}function Nn({split:e,types:t}){let n=e.length;return r=>{let i=``;for(let a=0;a<n;a++)if(i+=e[a],r[a]!==void 0){let e=t[a];i+=e===wn?Gt(r[a]):e===Tn?yn.transform(r[a]):r[a]}return i}}function Pn(e){return Nn(jn(e))}var Fn=e=>typeof e==`number`?0:yn.test(e)?yn.getAnimatableNone(e):e,In=(e,t)=>typeof e==`number`?t?.trim().endsWith(`/`)?e:0:Fn(e);function Ln(e){let t=jn(e);return Nn(t)(t.values.map((e,n)=>In(e,t.split[n])))}var Rn={test:Cn,parse:Mn,createTransformer:Pn,getAnimatableNone:Ln};function zn(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Bn({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{let r=n<.5?n*(1+t):n+t-n*t,s=2*n-r;i=zn(s,r,e+1/3),a=zn(s,r,e),o=zn(s,r,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}function Vn(e,t){return n=>n>0?t:e}var z=(e,t,n)=>e+(t-e)*n,Hn=(e,t,n)=>{let r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},Un=[dn,ln,vn],Wn=e=>Un.find(t=>t.test(e));function Gn(e){let t=Wn(e);if(!t)return`${e}`,!1;let n=t.parse(e);return t===vn&&(n=Bn(n)),n}var Kn=(e,t)=>{let n=Gn(e),r=Gn(t);if(!n||!r)return Vn(e,t);let i={...n};return e=>(i.red=Hn(n.red,r.red,e),i.green=Hn(n.green,r.green,e),i.blue=Hn(n.blue,r.blue,e),i.alpha=z(n.alpha,r.alpha,e),ln.transform(i))},qn=new Set([`none`,`hidden`]);function Jn(e,t){return qn.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Yn(e,t){return n=>z(e,t,n)}function Xn(e){return typeof e==`number`?Yn:typeof e==`string`?Yt(e)?Vn:yn.test(e)?Kn:er:Array.isArray(e)?Zn:typeof e==`object`?yn.test(e)?Kn:Qn:Vn}function Zn(e,t){let n=[...e],r=n.length,i=e.map((e,n)=>Xn(e)(e,t[n]));return e=>{for(let t=0;t<r;t++)n[t]=i[t](e);return n}}function Qn(e,t){let n={...e,...t},r={};for(let i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=Xn(e[i])(e[i],t[i]));return e=>{for(let t in r)n[t]=r[t](e);return n}}function $n(e,t){let n=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){let a=t.types[i],o=e.indexes[a][r[a]],s=e.values[o]??0;n[i]=s,r[a]++}return n}var er=(e,t)=>{let n=Rn.createTransformer(t),r=jn(e),i=jn(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?qn.has(e)&&!i.values.length||qn.has(t)&&!r.values.length?Jn(e,t):dt(Zn($n(r,i),i.values),n):(`${e}${t}`,Vn(e,t))},tr=/^(-?(?:\d+(?:\.\d*)?|\.\d+))([a-z%]*)$/iu;function nr(e,t){let n=tr.exec(e);if(!n)return;let r=tr.exec(t);if(!r||n[2]!==r[2])return;let i=n[2],a=parseFloat(n[1]),o=parseFloat(r[1]);return e=>Gt(z(a,o,e))+i}function rr(e,t,n){if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return z(e,t,n);if(typeof e==`string`&&typeof t==`string`){let n=nr(e,t);if(n)return n}return Xn(e)(e,t)}var ir=[`setup`,`read`,`resolveKeyframes`,`preUpdate`,`update`,`preRender`,`render`,`postRender`];function ar(e){let t=new Set,n=new Set,r=!1,i=!1,a=new Set,o={delta:0,timestamp:0,isProcessing:!1};function s(t){a.has(t)&&(n.add(t),e()),t(o)}let c={schedule:(e,i=!1,o=!1)=>{let s=o&&r?t:n;return i&&a.add(e),s.add(e),e},cancel:e=>{n.delete(e),a.delete(e)},process:e=>{if(o=e,r){i=!0;return}r=!0;let a=t;t=n,n=a,t.forEach(s),t.clear(),r=!1,i&&(i=!1,c.process(e))}};return c}var or=40;function sr(e,t,n={delta:0,timestamp:0,isProcessing:!1}){let r=!1,i=!0,a=()=>r=!0,o=ir.reduce((e,t)=>(e[t]=ar(a),e),{}),{setup:s,read:c,resolveKeyframes:l,preUpdate:u,update:d,preRender:f,render:p,postRender:m}=o,h=()=>{let a=at.useManualTiming,o=a?n.timestamp:performance.now();r=!1,a||(n.delta=i?1e3/60:Math.max(Math.min(o-n.timestamp,or),1)),n.timestamp=o,n.isProcessing=!0,s.process(n),c.process(n),l.process(n),u.process(n),d.process(n),f.process(n),p.process(n),m.process(n),n.isProcessing=!1,r&&t&&(i=!1,e(h))},g=()=>{r=!0,i=!0,n.isProcessing||e(h)};return{schedule:ir.reduce((e,t)=>{let n=o[t];return e[t]=(e,t=!1,i=!1)=>(r||g(),n.schedule(e,t,i)),e},{}),cancel:e=>{for(let t=0;t<ir.length;t++)o[ir[t]].cancel(e)},state:n,steps:o}}var{schedule:B,cancel:cr,steps:lr}=sr(typeof requestAnimationFrame<`u`?requestAnimationFrame:ut,!0,Vt),ur=e=>{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>B.update(t,e),stop:()=>cr(t),now:()=>Vt.isProcessing?Vt.timestamp:Wt.now()}},dr=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;t<i;t++)r+=Math.round(e(t/(i-1))*1e4)/1e4+`, `;return`linear(${r.substring(0,r.length-2)})`},fr=2e4;function pr(e,t=50,n=fr,r){let i=0,a=e.next(i);for(r?.push(a.value);!a.done&&i<n;)i+=t,a=e.next(i),r?.push(a.value);return i>=n?1/0:i}function mr(e,t=100,n){let r=n({...e,keyframes:[0,t]}),i=Math.min(pr(r),fr);return{type:`keyframes`,ease:e=>r.next(i*e).value/t,duration:ht(i)}}var hr={stiffness:100,damping:10,mass:1,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05},gr=e=>e<0?1/Math.max(1+e,hr.minDamping):Math.max(1-e,hr.minDamping);function _r(e,t){if(!(e>1))return 1;let n=Math.sqrt(e*e-1),r=e-n,i=e+n,a=2*n*Math.exp(-t)*(1+t);return br(e=>i*Math.exp(-r*e)-r*Math.exp(-i*e)-a,e=>Math.exp(-i*e)-Math.exp(-r*e),t)/t}function vr(e,t){return e*Math.sqrt(1-t*t)}var yr=12;function br(e,t,n){let r=n;for(let n=1;n<yr;n++)r-=e(r)/t(r);return r}var xr=.001;function Sr({duration:e=hr.duration,bounce:t=hr.bounce}){let n,r;hr.maxDuration;let i=gr(t);e=it(hr.minDuration,hr.maxDuration,ht(e)),i<1?(n=t=>{let n=t*i,r=n*e,a=vr(t,i),o=Math.exp(-r);return xr-n/a*o},r=t=>{let r=t*i*e,a=i*i*t*t*e,o=Math.exp(-r),s=vr(t*t,i);return(-n(t)+xr>0?-1:1)*-a*o/s}):(n=t=>-.001+Math.exp(-t*e)*(t*e+1),r=t=>Math.exp(-t*e)*(-t*(e*e)));let a=5/e,o=br(n,r,a),s=o*_r(i,o*e),c=s*s;return{stiffness:c,damping:i*2*Math.sqrt(c),duration:mt(e)}}var Cr=(e,t)=>(t?e>=0:e>0)&&e<1/0;function wr(e,t){if(Cr(e,t))return e}function Tr(e){let t=wr(e.stiffness),n=wr(e.damping,!0),r=wr(e.mass),i={...e,stiffness:t??hr.stiffness,damping:n??hr.damping,mass:r??hr.mass,isResolvedFromDuration:!1,isTimeDefined:(t??n??r)===void 0&&(e.duration!==void 0||e.bounce!==void 0)};if(i.isTimeDefined){if(e.visualDuration){let t=gr(e.bounce||0),n=2*Math.PI/(e.visualDuration*1.2)*_r(t,2*Math.PI/1.2);i.stiffness=n*n,i.damping=2*t*Math.sqrt(i.stiffness)}else Object.assign(i,Sr(i)),i.isResolvedFromDuration=!0;(!Cr(i.stiffness)||!Cr(i.damping,!0))&&(i.stiffness=hr.stiffness,i.damping=hr.damping)}return i}function Er(e=hr.visualDuration,t=hr.bounce){let n=typeof e==`object`?e:{visualDuration:e,keyframes:[0,1],bounce:t},r=n.keyframes[0],i=n.keyframes[n.keyframes.length-1],a={done:!1,value:r},{stiffness:o,damping:s,mass:c,duration:l,isResolvedFromDuration:u,isTimeDefined:d}=Tr({...n}),f=e=>d?0:-ht(e),p=s/(2*Math.sqrt(o*c)),m=ht(Math.sqrt(o/c)),h=p*m,g={target:i,delta:i-r,velocity:f(n.velocity||0)||0,restSpeed:0,restDelta:0},_=()=>{let e=Math.abs(g.delta)<5;g.restSpeed=n.restSpeed||(e?hr.restSpeed.granular:hr.restSpeed.default),g.restDelta=n.restDelta||(e?hr.restDelta.granular:hr.restDelta.default)};_();let v,y,b;if(p<1){let e=vr(m,p),t={A:0,sinC:0,cosC:0,t:-1,env:0,sin:0,cos:0};b=()=>{t.A=(g.velocity+h*g.delta)/e,t.sinC=h*t.A+g.delta*e,t.cosC=h*g.delta-t.A*e};let n=n=>{n!==t.t&&(t.t=n,t.env=Math.exp(-h*n),t.sin=Math.sin(e*n),t.cos=Math.cos(e*n))};v=e=>(n(e),g.target-t.env*(t.A*t.sin+g.delta*t.cos)),y=e=>(n(e),t.env*(t.sinC*t.sin+t.cosC*t.cos))}else if(p===1){v=e=>g.target-Math.exp(-m*e)*(g.delta+(g.velocity+m*g.delta)*e);let e={C:0};b=()=>{e.C=g.velocity+m*g.delta},y=t=>Math.exp(-m*t)*(m*e.C*t-g.velocity)}else{let e=m*Math.sqrt(p*p-1),t=h-e,n=h+e,r=d?1/0:300/e,i=(e,t)=>Math.exp(t>r?-e*r-h*(t-r):-e*t),a={S:0,F:0};b=()=>{let t=(g.velocity+h*g.delta)/e;a.S=(g.delta+t)/2,a.F=(g.delta-t)/2},v=e=>g.target-a.S*i(t,e)-a.F*i(n,e),y=e=>t*a.S*i(t,e)+n*a.F*i(n,e)}b();let x=u&&l||null,S={calculatedDuration:x,retarget:(e,t)=>{g.target=e[e.length-1],g.delta=g.target-e[0],g.velocity=f(t),n.restSpeed&&n.restDelta||_(),S.calculatedDuration=x,a.done=!1,b()},velocity:e=>mt(y(e)),next:e=>{let t=v(e);if(u)a.done=e>=l;else{let n=mt(y(e));a.done=Math.abs(n)<=g.restSpeed&&Math.abs(g.target-t)<=g.restDelta}return a.value=a.done?g.target:t,a},toString:()=>{let e=Math.min(pr(S),fr),t=dr(t=>S.next(e*t).value,e,30);return e+`ms `+t},toTransition:()=>{}};return S}Er.applyToOptions=e=>{let t=mr(e,100,Er);return e.ease=t.ease,e.duration=mt(t.duration),e.type=`keyframes`,e};function Dr({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:o,min:s,max:c,restDelta:l=.5,restSpeed:u}){let d=e[0],f={done:!1,value:d},p=e=>e<s||e>c,m=e=>s===void 0?c:c===void 0||Math.abs(s-e)<Math.abs(c-e)?s:c,h=n*t,g=d+h,_=o===void 0?g:o(g);_!==g&&(h=_-d);let v=e=>-h*Math.exp(-e/r),y=e=>{let t=v(e);f.done=Math.abs(t)<=l,f.value=f.done?_:_+t},b,x,S=e=>{p(f.value)&&(b=e,x=Er({keyframes:[f.value,m(f.value)],velocity:-v(e)/r*1e3,damping:i,stiffness:a,restDelta:l,restSpeed:u}))};return S(0),{calculatedDuration:null,next:e=>{let t=!1;return!x&&b===void 0&&(t=!0,y(e),S(e)),b!==void 0&&e>=b?x.next(e-b):(!t&&y(e),f)}}}function Or(e,t,n){let r=[],i=n||at.mix||rr,a=e.length-1;for(let n=0;n<a;n++){let a=i(e[n],e[n+1]);t&&(a=dt(Array.isArray(t)?t[n]||ut:t,a)),r.push(a)}return r}function kr(e,t,{clamp:n=!0,ease:r,mixer:i}={}){let a=e.length;if(t.length,a===1)return()=>t[0];if(a===2&&t[0]===t[1])return()=>t[1];let o=e[0]===e[1];e[0]>e[a-1]&&(e=[...e].reverse(),t=[...t].reverse());let s=Or(t,r,i),c=s.length,l=n=>{if(o&&n<e[0])return t[0];let r=0;if(c>1)for(;r<e.length-2&&!(n<e[r+1]);r++);let i=ft(e[r],e[r+1],n);return s[r](i)};return n?t=>l(it(e[0],e[a-1],t)):l}function Ar(e,t){let n=e[e.length-1];for(let r=1;r<=t;r++){let i=ft(0,t,r);e.push(z(n,1,i))}}function jr(e){let t=[0];return Ar(t,e.length-1),t}function Mr(e,t){return e.map(e=>e*t)}function Nr(e,t){return e.map(()=>t||Pt).splice(0,e.length-1)}function Pr({duration:e=300,keyframes:t,times:n,ease:r=`easeInOut`}){let i=Ft(r)?r.map(Bt):Bt(r)||Pt,a={done:!1,value:t[0]};if(t.length===2&&!Array.isArray(i)&&(!n||n.length!==2||n[0]===0&&n[1]===1)){let[n,r]=t,o=n===r?void 0:(at.mix||rr)(n,r);return{calculatedDuration:e,next:t=>(a.value=o?o(i(e>0?it(0,1,t/e):1)):r,a.done=t>=e,a)}}let o=kr(Mr(n&&n.length===t.length?n:jr(t),e),t,{ease:Array.isArray(i)?i:Nr(t,i)});return{calculatedDuration:e,next:t=>(a.value=o(t),a.done=t>=e,a)}}var Fr=5;function Ir(e,t,n){let r=Math.max(t-Fr,0);return gt(n-e(r),t-r)}function Lr(e,t,n=0){return t<=0?n:e.velocity?e.velocity(t):Ir(t=>e.next(t).value,t,e.next(t).value)}var Rr=e=>e!==null;function zr(e,{repeat:t,repeatType:n=`loop`},r,i=1){let a=e.filter(Rr),o=i<0||t&&n!==`loop`&&t%2==1?0:a.length-1;return!o||r===void 0?a[o]:r}var Br={decay:Dr,inertia:Dr,tween:Pr,keyframes:Pr,spring:Er};function Vr(e){typeof e.type==`string`&&(e.type=Br[e.type])}function Hr(e,t){return{kind:e,animation:t,timestamp:Wt.now(),frameTimestamp:Vt.timestamp,frameIsProcessing:Vt.isProcessing}}function Ur(e,t,n){let r=globalThis.__MOTION_INSPECT__;if(r)try{r({...Hr(`animation-start`,e),options:n?{...t,...n}:t})}catch{}}function Wr(e,t){let n=globalThis.__MOTION_INSPECT__;if(n)try{n({...Hr(`layout-animation-start`,e),node:t})}catch{}}var Gr=class{constructor(){this.isResolved=!1}get finished(){return this._finished||=this.isResolved?Promise.resolve():new Promise(e=>{this._resolve=e}),this._finished}updateFinished(){this._finished=this._resolve=void 0,this.isResolved=!1}notifyFinished(){this.isResolved=!0,this._resolve?.()}then(e,t){return this.finished.then(e,t)}},Kr=e=>e/100,qr=class extends Gr{constructor(e){super(),this.state=`idle`,this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==Wt.now()&&this.tick(Wt.now()),this.isStopped=!0,this.state!==`idle`&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause(),Ur(this,this.options)}initAnimation(){let{options:e}=this;Vr(e);let{type:t=Pr,repeat:n=0,repeatDelay:r=0,repeatType:i,velocity:a=0}=e,{keyframes:o}=e,s=t||Pr;s!==Pr&&typeof o[0]!=`number`&&(this.mixKeyframes=dt(Kr,rr(o[0],o[1])),o=[0,100]);let c=s(o===e.keyframes?e:{...e,keyframes:o});i===`mirror`&&(this.mirroredGenerator=s({...e,keyframes:[...o].reverse(),velocity:-a})),c.calculatedDuration===null&&(c.calculatedDuration=pr(c));let{calculatedDuration:l}=c;this.calculatedDuration=l,this.resolvedDuration=l+r,this.totalDuration=this.resolvedDuration*(n+1)-r,this.generator=c}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;this.currentTime=this.holdTime===null?t:this.holdTime}tick(e,t=!1){let{generator:n,totalDuration:r,mixKeyframes:i,mirroredGenerator:a,resolvedDuration:o,calculatedDuration:s}=this;if(this.startTime===null)return n.next(0);let{delay:c=0,keyframes:l,repeat:u,repeatType:d,repeatDelay:f,type:p,onUpdate:m,finalKeyframe:h}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let g=this.currentTime-c*(this.playbackSpeed>=0?1:-1),_=this.playbackSpeed>=0?g<0:g>r;this.currentTime=Math.max(g,0),this.state===`finished`&&this.holdTime===null&&(this.currentTime=r);let v=this.currentTime,y=n;if(u){let e=Math.min(this.currentTime,r)/o,t=Math.floor(e),n=e%1;!n&&e>=1&&(n=1),n===1&&t--,t=Math.min(t,u+1),t%2&&(d===`reverse`?(n=1-n,f&&(n-=f/o)):d===`mirror`&&(y=a)),v=it(0,1,n)*o}let b;_?(this.delayState.value=l[0],b=this.delayState):b=y.next(v),i&&!_&&(b.value=i(b.value));let{done:x}=b;!_&&s!==null&&(x=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);let S=this.holdTime===null&&(this.state===`finished`||this.state===`running`&&x);return S&&p!==Dr&&(b.value=zr(l,this.options,h,this.speed)),m&&m(b.value),S&&this.finish(),b}then(e,t){return this.finished.then(e,t)}get duration(){return ht(this.calculatedDuration)}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+ht(e)}get time(){return ht(this.currentTime)}set time(e){e=mt(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state=`paused`,this.holdTime=e,this.tick(e))}getGeneratorVelocity(){return Lr(this.generator,this.currentTime,this.options.velocity)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;t&&this.driver&&this.updateTime(Wt.now()),this.playbackSpeed=e,t&&this.driver&&(this.time=ht(this.currentTime))}play(){if(this.isStopped)return;let{driver:e=ur,startTime:t}=this.options;this.driver||=e(e=>this.tick(e)),this.options.onPlay?.();let n=this.driver.now();this.state===`finished`?(this.updateFinished(),this.startTime=n):this.holdTime===null?this.startTime||=t??n:this.startTime=n-this.holdTime,this.state===`finished`&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state=`running`,this.driver.start()}pause(){this.state=`paused`,this.updateTime(Wt.now()),this.holdTime=this.currentTime}complete(){this.state!==`running`&&this.play(),this.state=`finished`,this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state=`finished`,this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state=`idle`,this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&=(this.driver.stop(),void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type=`keyframes`,this.options.ease=`linear`,this.initAnimation()),this.driver?.stop(),e.observe(this)}},Jr=new Set([`brightness`,`contrast`,`saturate`,`opacity`]);function Yr(e){let[t,n]=e.slice(0,-1).split(`(`);if(t===`drop-shadow`)return e;let[r]=n.match(tn)||[];if(!r)return e;let i=n.replace(r,``),a=+!!Jr.has(t);return r!==n&&(a*=100),t+`(`+a+i+`)`}var Xr=/\b([a-z-]*)\(.*?\)/gu,Zr={...Rn,getAnimatableNone:e=>{let t=e.match(Xr);return t?t.map(Yr).join(` `):e}},Qr={...Rn,getAnimatableNone:e=>{let t=Rn.parse(e);return Rn.createTransformer(e)(t.map(e=>typeof e==`number`?0:typeof e==`object`?{...e,alpha:1}:e))}},$r={...Qt,transform:Math.round},ei={rotate:pn,pathRotation:pn,rotateX:pn,rotateY:pn,rotateZ:pn,scale:en,scaleX:en,scaleY:en,scaleZ:en,skew:pn,skewX:pn,skewY:pn,distance:R,translateX:R,translateY:R,translateZ:R,x:R,y:R,z:R,perspective:R,transformPerspective:R,opacity:$t,originX:_n,originY:_n,originZ:R},ti={borderWidth:R,borderTopWidth:R,borderRightWidth:R,borderBottomWidth:R,borderLeftWidth:R,borderRadius:R,borderTopLeftRadius:R,borderTopRightRadius:R,borderBottomRightRadius:R,borderBottomLeftRadius:R,width:R,maxWidth:R,height:R,maxHeight:R,top:R,right:R,bottom:R,left:R,inset:R,insetBlock:R,insetBlockStart:R,insetBlockEnd:R,insetInline:R,insetInlineStart:R,insetInlineEnd:R,padding:R,paddingTop:R,paddingRight:R,paddingBottom:R,paddingLeft:R,paddingBlock:R,paddingBlockStart:R,paddingBlockEnd:R,paddingInline:R,paddingInlineStart:R,paddingInlineEnd:R,margin:R,marginTop:R,marginRight:R,marginBottom:R,marginLeft:R,marginBlock:R,marginBlockStart:R,marginBlockEnd:R,marginInline:R,marginInlineStart:R,marginInlineEnd:R,fontSize:R,backgroundPositionX:R,backgroundPositionY:R,...ei,zIndex:$r,fillOpacity:$t,strokeOpacity:$t,numOctaves:$r},ni={...ti,color:yn,backgroundColor:yn,outlineColor:yn,fill:yn,stroke:yn,borderColor:yn,borderTopColor:yn,borderRightColor:yn,borderBottomColor:yn,borderLeftColor:yn,filter:Zr,WebkitFilter:Zr,mask:Qr,WebkitMask:Qr},ri=e=>ni[e],ii=new Set([Zr,Qr]);function ai(e,t){let n=ri(e);return ii.has(n)||(n=Rn),n.getAnimatableNone?n.getAnimatableNone(t):void 0}function oi(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}var si=e=>e*180/Math.PI,ci=e=>ui(si(Math.atan2(e[1],e[0]))),li={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:ci,rotateZ:ci,skewX:e=>si(Math.atan(e[1])),skewY:e=>si(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},ui=e=>(e%=360,e<0&&(e+=360),e),di=ci,fi=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),pi=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),mi={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:fi,scaleY:pi,scale:e=>(fi(e)+pi(e))/2,rotateX:e=>ui(si(Math.atan2(e[6],e[5]))),rotateY:e=>ui(si(Math.atan2(-e[2],e[0]))),rotateZ:di,rotate:di,skewX:e=>si(Math.atan(e[4])),skewY:e=>si(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function hi(e){return+!!e.includes(`scale`)}function gi(e,t){if(!e||e===`none`)return hi(t);let n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u),r,i;if(n)r=mi,i=n;else{let t=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=li,i=t}if(!i)return hi(t);let a=r[t],o=i[1].split(`,`).map(vi);return typeof a==`function`?a(o):o[a]}var _i=(e,t)=>{let{transform:n=`none`}=getComputedStyle(e);return gi(n,t)};function vi(e){return parseFloat(e.trim())}var yi=[`transformPerspective`,`x`,`y`,`z`,`translateX`,`translateY`,`translateZ`,`scale`,`scaleX`,`scaleY`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`skew`,`skewX`,`skewY`],bi=new Set([...yi,`pathRotation`]),xi=e=>e===Qt||e===R,Si=new Set([`x`,`y`,`z`]),Ci=yi.filter(e=>!Si.has(e));function wi(e){let t=[];return Ci.forEach(n=>{let r=e.getValue(n);if(r!==void 0){let e=r.get(),i=+!!n.startsWith(`scale`);if(e===i)return;t.push([n,e]),r.set(i)}}),t}var Ti=new Set([`bottom`,`right`]);function Ei(e,t,n,r,i,a){let o=parseFloat(e);if(!isNaN(o))return o;let{min:s,max:c}=t()[n],l=c-s;return a===`border-box`?l:l-parseFloat(r)-parseFloat(i)}var Di={width:({width:e,paddingLeft:t=`0`,paddingRight:n=`0`,boxSizing:r},i)=>Ei(e,i,`x`,t,n,r),height:({height:e,paddingTop:t=`0`,paddingBottom:n=`0`,boxSizing:r},i)=>Ei(e,i,`y`,t,n,r),top:({top:e})=>parseFloat(e),left:({left:e})=>parseFloat(e),bottom:({top:e},t)=>{let{y:n}=t();return parseFloat(e)+(n.max-n.min)},right:({left:e},t)=>{let{x:n}=t();return parseFloat(e)+(n.max-n.min)},x:({transform:e})=>gi(e,`x`),y:({transform:e})=>gi(e,`y`)};Di.translateX=Di.x,Di.translateY=Di.y;var Oi=new Set,ki=!1,Ai=!1,ji=!1;function Mi(){if(Ai){let e=[],t=new Set,n=new Set;Oi.forEach(r=>{r.needsMeasurement&&(e.push(r),t.add(r.element),Ti.has(r.name)&&n.add(r.element))});let r=new Map;n.forEach(e=>{let t=wi(e);t.length&&(r.set(e,t),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=r.get(e);t&&t.forEach(([t,n])=>{e.getValue(t)?.set(n)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{e.suspendedScrollY!==void 0&&window.scrollTo(0,e.suspendedScrollY)})}Ai=!1,ki=!1,Oi.forEach(e=>e.complete(ji)),Oi.clear()}function Ni(){Oi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Ai=!0)})}function Pi(){ji=!0,Ni(),Mi(),ji=!1}function Fi(e,t,n){if(typeof e==`string`){if(ot(e)||ct(e))return parseFloat(e);if(!Rn.test(e)&&Rn.test(n))return ai(t,n)}return e??void 0}var Ii=class{constructor(e,t,n,r,i,a=!1){this.state=`pending`,this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=n,this.motionValue=r,this.element=i,this.isAsync=a}scheduleResolve(){this.state=`scheduled`,this.isAsync?(Oi.add(this),ki||(ki=!0,B.read(Ni),B.resolveKeyframes(Mi))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:n,motionValue:r}=this;if(e[0]===null){let i=r?.get(),a=e[e.length-1];if(i!==void 0)e[0]=i;else if(n&&t){let r=Fi(n.readValue(t,a),t,a);r!==void 0&&(e[0]=r)}e[0]===void 0&&(e[0]=a),r&&i===void 0&&r.set(e[0])}oi(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state=`complete`,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),Oi.delete(this)}cancel(){this.state===`scheduled`&&(Oi.delete(this),this.state=`pending`)}resume(){this.state===`pending`&&this.scheduleResolve()}},Li=e=>e.startsWith(`--`);function Ri(e,t,n){Li(t)?e.style.setProperty(t,n):e.style[t]=n}var zi={};function Bi(e,t){let n=lt(e);return()=>zi[t]??n()}var Vi=Bi(()=>window.ScrollTimeline!==void 0,`scrollTimeline`),Hi=Bi(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`),Ui=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Wi={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:Ui([0,.65,.55,1]),circOut:Ui([.55,0,1,.45]),backIn:Ui([.31,.01,.66,-.59]),backOut:Ui([.33,1.53,.69,.99])};function Gi(e,t){if(e)return typeof e==`function`?Hi()?dr(e,t):`ease-out`:Lt(e)?Ui(e):Array.isArray(e)?e.map(e=>Gi(e,t)||Wi.easeOut):Wi[e]}function Ki(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeOut`,times:c}={},l=void 0){let u={[t]:n};c&&(u.offset=c);let d=Gi(s,i);Array.isArray(d)&&(u.easing=d);let f={delay:r,duration:i,easing:Array.isArray(d)?`linear`:d,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`};return l&&(f.pseudoElement=l),e.animate(u,f)}function qi(e){return typeof e==`function`&&`applyToOptions`in e}function Ji({type:e,...t}){return qi(e)&&Hi()?e.applyToOptions(t):(t.duration??=300,t.ease??=`easeOut`,t)}var Yi=class extends Gr{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:r,pseudoElement:i,allowFlatten:a=!1,finalKeyframe:o,onComplete:s}=e;this.isPseudoElement=!!i,this.allowFlatten=a,this.options=e,e.type;let c=Ji(e);this.animation=Ki(t,n,r,c,i),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){let e=zr(r,this.options,o,this.speed);this.updateMotionValue&&this.updateMotionValue(e),Ri(t,n,e),this.animation.cancel()}s?.(),this.notifyFinished()},Ur(this,e,c)}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state===`finished`&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e!==`idle`&&e!==`finished`&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return ht(Number(e))}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+ht(e)}get time(){return ht(Number(this.animation.currentTime)||0)}set time(e){let t=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=mt(e),t&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime===null?this.animation.playState:`finished`}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,onAttach:t,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:`linear`}),this.animation.onfinish=null,e&&Vi()?(this.animation.timeline=e,t?.(this.animation),ut):n(this)}},Xi={anticipate:Ot,backInOut:Dt,circInOut:jt};function Zi(e){return e in Xi}function Qi(e){typeof e.ease==`string`&&Zi(e.ease)&&(e.ease=Xi[e.ease])}var $i=10,ea=class extends Yi{constructor(e){Qi(e),Vr(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){let{motionValue:t,onUpdate:n,onComplete:r,element:i,...a}=this.options;if(!t)return;if(e!==void 0){t.set(e);return}let o=new qr({...a,autoplay:!1}),s=Math.max($i,Wt.now()-this.startTime),c=it(0,$i,s-$i),l=o.sample(s).value,{name:u}=this.options;i&&u&&Ri(i,u,l),t.setWithVelocity(o.sample(Math.max(0,s-c)).value,l,c),o.stop()}},ta=(e,t)=>t!==`zIndex`&&!!(typeof e==`number`||Array.isArray(e)||typeof e==`string`&&(Rn.test(e)||e===`0`)&&!e.startsWith(`url(`));function na(e){let t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function ra(e,t,n,r){let i=e[0];if(i===null)return!1;if(t===`display`||t===`visibility`)return!0;let a=e[e.length-1],o=ta(i,t),s=ta(a,t);return!o||!s?(o!==s&&`${t}${i}${a}${o?a:i}`,!1):na(e)||(n===`spring`||qi(n))&&r}function ia(e){e.duration=0,e.type=`keyframes`}var aa=new Set([`opacity`,`clipPath`,`filter`,`transform`,`backgroundColor`]),oa=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function sa(e){for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&oa.test(e[t]))return!0;return!1}var ca=new Set([`color`,`backgroundColor`,`outlineColor`,`fill`,`stroke`,`borderColor`,`borderTopColor`,`borderRightColor`,`borderBottomColor`,`borderLeftColor`]),la=lt(()=>Object.hasOwnProperty.call(Element.prototype,`animate`));function ua(e){let{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:a,type:o,keyframes:s}=e;if(!n||!(aa.has(n)||ca.has(n)))return!1;let c=t?.owner?.current;if(!(c instanceof HTMLElement)&&!(c instanceof SVGElement))return!1;let{onUpdate:l,transformTemplate:u}=t.owner.getProps();return la()&&(aa.has(n)||ca.has(n)&&sa(s))&&(n!==`transform`||!u)&&!l&&!r&&i!==`mirror`&&a!==0&&o!==`inertia`}var da=40,fa=class extends Gr{constructor(e){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Wt.now();let{keyframes:t,name:n,motionValue:r,element:i}=e,a=e;a.autoplay??=!0,a.delay??=0,a.type??=`keyframes`,a.repeat??=0,a.repeatDelay??=0,a.repeatType??=`loop`;let o=i?.KeyframeResolver||Ii;this.keyframeResolver=new o(t,(e,t,n)=>this.onKeyframesResolved(e,t,a,!n),n,r,i),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,n,r){this.keyframeResolver=void 0;let{name:i,type:a,velocity:o,delay:s,isHandoff:c,onUpdate:l}=n;this.resolvedAt=Wt.now();let u=!0;ra(e,i,a,o)||(u=!1,(at.instantAnimations||!s)&&l?.(zr(e,n,t)),e[0]=e[e.length-1],ia(n),n.repeat=0);let d=r?this.resolvedAt&&this.resolvedAt-this.createdAt>da?this.resolvedAt:this.createdAt:void 0,{onComplete:f}=n;n.startTime??=d,n.finalKeyframe=t,n.keyframes=e,n.onComplete=()=>{f?.(),this.notifyFinished()};let p=u&&!c&&ua(n),m;if(p){n.element=n.motionValue?.owner?.current;try{m=new ea(n)}catch{m=new qr(n)}}else m=new qr(n);this.pendingTimeline&&=(this.stopTimeline=m.attachTimeline(this.pendingTimeline),void 0),this._animation=m}get finished(){return this._animation?this._animation.finished:super.finished}then(e,t){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Pi()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}},pa=class{constructor(e){this.stop=()=>this.runAll(`stop`),this.animations=e.filter(Boolean)}get finished(){return Promise.all(this.animations.map(e=>e.finished))}getAll(e){return this.animations[0][e]}setAll(e,t){for(let n=0;n<this.animations.length;n++)this.animations[n][e]=t}attachTimeline(e){let t=this.animations.map(t=>t.attachTimeline(e));return()=>{t.forEach((e,t)=>{e&&e(),this.animations[t].stop()})}}get time(){return this.getAll(`time`)}set time(e){this.setAll(`time`,e)}get speed(){return this.getAll(`speed`)}set speed(e){this.setAll(`speed`,e)}get state(){return this.getAll(`state`)}get startTime(){return this.getAll(`startTime`)}get duration(){return ma(this.animations,`duration`)}get iterationDuration(){return ma(this.animations,`iterationDuration`)}runAll(e){this.animations.forEach(t=>t[e]())}play(){this.runAll(`play`)}pause(){this.runAll(`pause`)}cancel(){this.runAll(`cancel`)}complete(){this.runAll(`complete`)}};function ma(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r][t];i!==null&&i>n&&(n=i)}return n}var ha=class extends pa{then(e,t){return this.finished.finally(e).then(()=>{})}};function ga(e,t,n,r=0,i=1){let a=Array.from(e).sort((e,t)=>e.sortNodePosition(t)).indexOf(t),o=e.size,s=(o-1)*r;return typeof n==`function`?n(a,o):i===1?a*r:s-a*r}var _a=30,va=e=>!isNaN(parseFloat(e)),ya={current:void 0},ba=class{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=Wt.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.notifyChange(),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=Wt.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=va(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on(`change`,e)}on(e,t){var n;return e===`change`?this.onChangeSubscribe(t):((n=this.events)[e]||(n[e]=new pt)).add(t)}onChangeSubscribe(e){let{events:t}=this;return!t.change&&!this.changeSubscriber?this.changeSubscriber=e:(t.change||(t.change=new pt,t.change.add(this.changeSubscriber),this.changeSubscriber=void 0),t.change.add(e)),()=>{this.changeSubscriber===e?this.changeSubscriber=void 0:t.change?.remove(e),this.stopIfUnobserved()}}stopIfUnobserved(){B.read(()=>{!this.changeSubscriber&&!this.events.change?.getSize()&&this.stop()})}clearListeners(){this.changeSubscriber=void 0;for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,n){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.notifyChange()}notifyChange(){let{current:e,changeSubscriber:t}=this;t?t(e):this.events.change?.notify(e)}addDependent(e){this.dependents||=new Set,this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return ya.current&&ya.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let e=Wt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>_a)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,_a);return gt(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0;let n=!1,r;r=e(()=>{n=!0,this.events.animationComplete?.notify(),this.animation===r&&this.clearAnimation(),t()}),n||(this.animation=r),this.events.animationStart?.notify()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){this.animation=void 0}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}};function xa(e,t){return new ba(e,t)}function Sa(e,t){if(e?.inherit&&t){let{inherit:n,...r}=e;return{...t,...r}}return e}function Ca(e,t){let n=e?.[t]??e?.default??e;return n===e?n:Sa(n,e)}var wa={type:`spring`,stiffness:500,damping:25,restSpeed:10},Ta=e=>({type:`spring`,stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),Ea={type:`keyframes`,duration:.8},Da={type:`keyframes`,ease:[.25,.1,.35,1],duration:.3},Oa=(e,{keyframes:t})=>t.length>2?Ea:bi.has(e)?e.startsWith(`scale`)?Ta(t[1]):wa:Da,ka=new Set([`when`,`delay`,`delayChildren`,`staggerChildren`,`staggerDirection`,`repeat`,`repeatType`,`repeatDelay`,`from`,`elapsed`]);function Aa(e){for(let t in e)if(!ka.has(t))return!0;return!1}var ja=(e,t,n,r={},i,a)=>o=>{let s=Ca(r,e)||{},c=s.delay||r.delay||0,{elapsed:l=0}=r;l-=mt(c);let u={keyframes:Array.isArray(n)?n:[null,n],ease:`easeOut`,velocity:t.getVelocity(),...s,delay:-l,onUpdate:e=>{t.set(e),s.onUpdate&&s.onUpdate(e)},onComplete:()=>{o(),s.onComplete&&s.onComplete()},name:e,motionValue:t,element:a?void 0:i};Aa(s)||Object.assign(u,Oa(e,u)),u.duration&&=mt(u.duration),u.repeatDelay&&=mt(u.repeatDelay),u.from!==void 0&&(u.keyframes[0]=u.from);let d=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(ia(u),u.delay===0&&(d=!0)),(at.instantAnimations||at.skipAnimations||i?.shouldSkipAnimations||s.skipAnimations)&&(d=!0,ia(u),u.delay=0),u.allowFlatten=!s.type&&!s.ease,d&&!a&&t.get()!==void 0){let e=zr(u.keyframes,s);if(e!==void 0){B.update(()=>{u.onUpdate(e),u.onComplete()});return}}return s.isSync?new qr(u):new fa(u)},Ma=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Na(e){let t=Ma.exec(e);if(!t)return[,];let[,n,r,i]=t;return[`--${n??r}`,i]}function Pa(e,t,n=1){`${e}`;let[r,i]=Na(e);if(!r)return;let a=window.getComputedStyle(t).getPropertyValue(r);if(a){let e=a.trim();return ot(e)?parseFloat(e):e}return Yt(i)?Pa(i,t,n+1):i}function Fa(e){let t=[{},{}];return e?.values.forEach((e,n)=>{t[0][n]=e.get(),t[1][n]=e.getVelocity()}),t}function Ia(e,t,n,r){let i=t=>typeof t==`function`?t(n===void 0?e.custom:n,...Fa(r)):t;return t=i(t),typeof t==`string`&&(t=e.variants&&e.variants[t]),i(t)}function La(e,t,n){return Ia(e.getProps(),t,n,e)}var Ra=(e,t)=>t===`exit`?e.presenceContext?.custom:void 0,za=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,...yi]),Ba=e=>Array.isArray(e);function Va(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,xa(n))}function Ha(e){return Ba(e)?e[e.length-1]||0:e}function Ua(e,t){let{transitionEnd:n={},transition:r={},...i}=La(e,t)||{};i={...i,...n};for(let t in i)Va(e,t,Ha(i[t]))}var Wa=e=>!!(e&&e.getVelocity);function Ga(e){return!!(Wa(e)&&e.add)}function Ka(e,t){let n=e.getValue(`willChange`);if(Ga(n))return n.add(t);if(!n&&at.WillChange){let n=new at.WillChange(`auto`);e.addValue(`willChange`,n),n.add(t)}}function qa(e){return e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}var Ja=`data-`+qa(`framerAppearId`);function Ya(e){return e.props[Ja]}var Xa=typeof window<`u`;function Za({protectedKeys:e,needsAnimating:t},n){let r=n in e&&!t[n];return t[n]=!1,r}function Qa(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:a,transitionEnd:o,...s}=t,c=e.getDefaultTransition();a=a?Sa(a,c):c;let l=a?.reduceMotion,u=a?.skipAnimations;r&&(a=r);let d=[],f=i&&e.animationState?.getState()[i],p=a?.path;p&&p.animateVisualElement(e,s,a,n,d);for(let t in s){let r=e.getValue(t,e.latestValues[t]??null),i=s[t];if(i===void 0||f&&Za(f,t))continue;let o={delay:n,...Ca(a||{},t)};u&&(o.skipAnimations=!0);let c=r.get();if(c!==void 0&&!r.isAnimating()&&!Array.isArray(i)&&i===c&&!o.velocity){B.update(()=>r.set(i));continue}let p=!1;if(Xa&&window.MotionHandoffAnimation){let n=Ya(e);if(n){let e=window.MotionHandoffAnimation(n,t,B);e!==null&&(o.startTime=e,p=!0)}}Ka(e,t);let m=l??e.shouldReduceMotion;r.start(ja(t,r,i,m&&za.has(t)?{type:!1}:o,e,p));let h=r.animation;h&&d.push(h)}if(o){let t=()=>B.update(()=>{o&&Ua(e,o)});d.length?Promise.all(d).then(t):t()}return d}function $a(e,t,n={}){let r=La(e,t,Ra(e,n.type)),i=n.transitionOverride||(r?.transition??(e.getDefaultTransition()||{})),a=()=>Promise.all(r?Qa(e,r,n):[]),o=(r=0)=>{let{variantChildren:a}=e,{delayChildren:o=0,staggerChildren:s,staggerDirection:c}=i,l=[];return a?.forEach(e=>{e.notify(`AnimationStart`,t),l.push($a(e,t,{...n,delay:r+(typeof o==`function`?0:o)+ga(a,e,o,s,c)}).then(()=>e.notify(`AnimationComplete`,t)))}),Promise.all(l)},{when:s}=i;return s?s===`beforeChildren`?a().then(()=>o()):o().then(a):Promise.all([a(),o(n.delay)])}function eo(e,t,n={}){return e.notify(`AnimationStart`,t),(Array.isArray(t)?Promise.all(t.map(t=>$a(e,t,n))):typeof t==`string`?$a(e,t,n):Promise.all(Qa(e,La(e,t,n.custom),n))).then(()=>{e.notify(`AnimationComplete`,t)})}var to={test:e=>e===`auto`,parse:e=>e},no=e=>t=>t.test(e),ro=[Qt,R,mn,pn,gn,hn,to],io=e=>ro.find(no(e));function ao(e){return typeof e==`number`?e===0:e===null||e===`none`||e===`0`||ct(e)}var oo=new Set([`auto`,`none`,`0`]);function so(e,t,n){let r=0,i;for(;r<e.length&&!i;){let t=e[r];typeof t==`string`&&!oo.has(t)&&An(t)&&(i=e[r]),r++}if(i&&n)for(let r of t)e[r]!==i&&(e[r]=ai(n,i))}var co=class extends Ii{constructor(e,t,n,r,i){super(e,t,n,r,i,!0)}readKeyframes(){let{unresolvedKeyframes:e,element:t,name:n}=this;if(!t||!t.current)return;super.readKeyframes();for(let n=0;n<e.length;n++){let r=e[n];if(typeof r==`string`&&(r=r.trim(),Yt(r))){let i=Pa(r,t.current);i!==void 0&&(e[n]=i),n===e.length-1&&(this.finalKeyframe=r)}}if(this.resolveNoneKeyframes(),!za.has(n)||e.length!==2)return;let[r,i]=e;if(typeof r==`number`&&typeof i==`number`)return;let a=io(r),o=io(i);if(Zt(r)!==Zt(i)&&Di[n]){this.needsMeasurement=!0;return}if(a!==o){if(xi(a)&&xi(o))for(let t=0;t<e.length;t++){let n=e[t];typeof n==`string`&&(e[t]=parseFloat(n))}else Di[n]&&(this.needsMeasurement=!0)}}resolveNoneKeyframes(){let{unresolvedKeyframes:e,name:t}=this,n=[];for(let t=0;t<e.length;t++)(e[t]===null||ao(e[t]))&&n.push(t);n.length&&so(e,n,t)}measure(){let{element:e,name:t}=this;return Di[t](window.getComputedStyle(e.current),()=>e.measureViewportBox())}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:n}=this;if(!e||!e.current)return;n===`height`&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=this.measure(),t[0]=this.measuredOrigin;let r=t[t.length-1];r!==void 0&&this.motionValue?.jump(r,!1)}measureEndState(){let{element:e,unresolvedKeyframes:t}=this;if(!e||!e.current)return;this.motionValue?.jump(this.measuredOrigin,!1);let n=t.length-1,r=t[n];t[n]=this.measure(),r!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=r),this.removedTransforms?.length&&this.removedTransforms.forEach(([t,n])=>{e.getValue(t).set(n)}),this.resolveNoneKeyframes()}},lo=[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomRightRadius`,`borderBottomLeftRadius`],uo=[];function fo(e){typeof e.test==`function`&&e.read,po(e),uo.unshift(e)}function po(e){rt(uo,e)}function mo(e){return uo.find(t=>t.test(e))}function ho(e,t,n={},r){let i=[],{velocity:a}=n,o=n.reduceMotion??r?.shouldReduceMotion;for(let s in t){if(s===`transition`||s===`transitionEnd`)continue;let c=t[s];if(c===void 0)continue;let l=e(s),u=l.get();if(u!==void 0&&!l.isAnimating()&&!Array.isArray(c)&&c===u&&!a){B.update(()=>l.set(c));continue}l.start(ja(s,l,c,o&&za.has(s)?{type:!1}:n,r)),l.animation&&i.push(l.animation)}let{transitionEnd:s}=t;if(s){let t=()=>B.update(()=>{for(let t in s)e(t).set(s[t])});i.length?Promise.all(i).then(t):t()}return i}function go(e,t,n,r,i){return ho(r=>{let a=e.get(t,r);if(!a){let o;if(!i){let i=n[r];o=_o(i)??e.read(t,r,i),`${r}`}a=xa(o,{owner:i}),e(t,{[r]:a})}return a},n,r,i)}function _o(e){let t=Array.isArray(e)?e[0]:void 0;return t===null?void 0:t}function vo(e){return st(e)&&`offsetHeight`in e&&!(`ownerSVGElement`in e)}function yo(e){return st(e)&&`ownerSVGElement`in e}var bo=(e,t)=>t&&typeof e==`number`?t.transform(e):e;function xo(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e==`string`){let r=document;t&&(r=t.current);let i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(e=>e!=null)}var So=class{constructor(e=B.render){this.step=e,this.values=new Map,this.pending=[],this.numPending=0,this.flush=()=>{let{pending:e,numPending:t}=this;this.numPending=0;for(let n=0;n<t;n++)e[n]()}}set(e,t,n,r){if(this.values.get(e)?.onRemove(),r)for(let e of this.values.values())e.value===r&&(n=e.render);let i=()=>n&&this.schedule(n);t.get()!==void 0&&i();let a=t.on(`change`,i),o=()=>{a(),n&&!r&&this.cancel(n),this.values.get(e)?.onRemove===o&&this.values.delete(e)};return this.values.set(e,{value:t,render:r?void 0:n,onRemove:o}),o}get(e){return this.values.get(e)?.value}release(){let e=new Map;return this.values.forEach((t,n)=>{e.set(n,t.value),t.onRemove()}),this.transformKeys=this.transformValues=void 0,e}schedule(e){let{pending:t,numPending:n}=this;for(let r=0;r<n;r++)if(t[r]===e)return;n||this.step(this.flush),t[this.numPending++]=e}cancel(e){let{pending:t}=this;for(let n=0;n<this.numPending;n++)if(t[n]===e){t[n]=t[--this.numPending];return}}};function Co(e,{step:t,...n}={}){let r=new WeakMap;return Object.assign((n,i)=>{let a=r.get(n)??new So(t);r.set(n,a);let o=[];for(let t in i){let r=i[t],s=e(n,a,t,r);o.push(s)}return()=>{for(let e of o)e()}},n,{get:(e,t)=>r.get(e)?.get(t),flush:e=>r.get(e)?.flush(),state:e=>r.get(e)})}var wo={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},To={};function Eo(e){let t=``,{transformKeys:n=[],transformValues:r={}}=e;for(let e=0;e<n.length;e++){let i=n[e],a=r[i].get();a!==void 0&&(typeof a==`number`?a:parseFloat(a))!==+!!i.startsWith(`scale`)&&(t+=(t&&` `)+(To[i]||(To[i]=(wo[i]||i)+`(`))+bo(a,ei[i])+`)`)}let i=e.get(`pathRotation`)?.get();return i&&(t+=(t&&` `)+`rotate(`+bo(i,ei.pathRotation)+`)`),t||`none`}var Do=new Set([`originX`,`originY`,`originZ`]),Oo=(e,t)=>bo(e.get(t)?.get(),ti[t]),ko=(e,t,n,r)=>{let i,a;if(bi.has(n)){if(n!==`pathRotation`){let e=t.transformKeys??=[];(t.transformValues??={})[n]=r,e.includes(n)||(e.push(n),e.sort((e,t)=>yi.indexOf(e)-yi.indexOf(t)))}t.get(`transform`)||(!vo(e)&&!t.get(`transformBox`)&&ko(e,t,`transformBox`,new ba(`fill-box`)),t.set(`transform`,new ba(`none`),()=>{e.style.transform=Eo(t)})),a=t.get(`transform`)}else Do.has(n)?(t.get(`transformOrigin`)||t.set(`transformOrigin`,new ba(``),()=>{let n=Oo(t,`originX`)??`50%`,r=Oo(t,`originY`)??`50%`,i=Oo(t,`originZ`)??0;e.style.transformOrigin=`${n} ${r} ${i}`}),a=t.get(`transformOrigin`)):i=Li(n)?()=>{e.style.setProperty(n,r.get())}:()=>{e.style[n]=bo(r.get(),ti[n])};return t.set(n,r,i,a)},Ao=e=>vo(e)||yo(e),jo=(e,t)=>{if(bi.has(t))return _i(e,t);let n=getComputedStyle(e),r=Li(t)?n.getPropertyValue(t):n[t];return typeof r==`string`&&r.trim()||0},Mo=Co(ko,{test:Ao,read:jo}),No={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},Po=yi.length;function Fo(e,t,n){let r=``,i=!0;for(let a=0;a<Po;a++){let o=yi[a],s=e[o];if(s===void 0)continue;let c=!0;if(typeof s==`number`)c=s===+!!o.startsWith(`scale`);else{let e=parseFloat(s);c=o.startsWith(`scale`)?e===1:e===0}if(!c||n){let e=bo(s,ti[o]);if(!c){i=!1;let t=No[o]||o;r+=`${t}(${e}) `}n&&(t[o]=e)}}let a=e.pathRotation;return a&&(i=!1,r+=`rotate(${bo(a,ti.pathRotation)}) `),r=r.trim(),n?r=n(t,i?``:r):i&&(r=`none`),r}function Io(e,t,n){let{style:r,vars:i,transformOrigin:a}=e,o=!1,s=!1;for(let e in t){let n=t[e];if(bi.has(e)){o=!0;continue}if(qt(e)){i[e]=n;continue}{let t=bo(n,ti[e]);e.startsWith(`origin`)?(s=!0,a[e]=t):r[e]=t}}if(t.transform||(o||n?r.transform=Fo(t,e.transform,n):r.transform&&=`none`),s){let{originX:e=`50%`,originY:t=`50%`,originZ:n=0}=a;r.transformOrigin=`${e} ${t} ${n}`}}var Lo={offset:`stroke-dashoffset`,array:`stroke-dasharray`},Ro={offset:`strokeDashoffset`,array:`strokeDasharray`};function zo(e,t,n=1,r=0,i=!0){e.pathLength=1;let a=i?Lo:Ro;e[a.offset]=`${-r}`,e[a.array]=`${t} ${n}`}var Bo=[`transform`,`opacity`,`offsetDistance`,`offsetPath`,`offsetRotate`,`offsetAnchor`];function Vo(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:a=1,pathOffset:o=0,...s},c,l,u){if(Io(e,s,l),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:d,style:f}=e;for(let e of Bo)d[e]!==void 0&&(f[e]=d[e],delete d[e]);(f.transform||d.transformOrigin)&&(f.transformOrigin=d.transformOrigin??`50% 50%`,delete d.transformOrigin),f.transform&&(f.transformBox=u?.transformBox??`fill-box`,delete d.transformBox),t!==void 0&&(d.x=t),n!==void 0&&(d.y=n),r!==void 0&&(d.scale=r),i!==void 0&&zo(d,i,a,o,!1)}function Ho(e,t){if(!(t in e))return!1;let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),t)||Object.getOwnPropertyDescriptor(e,t);return n&&typeof n.set==`function`}var Uo=(e,t,n,r,i=n)=>{let a=Ho(e,i);!a&&(i.startsWith(`data`)||i.startsWith(`aria`))&&(i=qa(i));let o=ti[n]||ti[i],s=a?()=>{e[i]=bo(r.get(),ti[n])}:()=>{let t=bo(r.get(),o);t==null?e.removeAttribute(i):e.setAttribute(i,String(t))};return t.set(n,r,s)};function Wo(e,t,n,r){return B.render(()=>e.setAttribute(`pathLength`,`1`)),n===`pathOffset`?t.set(n,r,()=>{let t=r.get();e.setAttribute(`stroke-dashoffset`,`${-t}`)}):(t.get(`stroke-dasharray`)||t.set(`stroke-dasharray`,new ba(`1 1`),()=>{let n=t.get(`pathLength`)?.get()??1,r=t.get(`pathSpacing`)?.get();e.setAttribute(`stroke-dasharray`,`${n} ${r??1-Number(n)}`)}),t.set(n,r,void 0,t.get(`stroke-dasharray`)))}var Go=Co((e,t,n,r)=>n.startsWith(`path`)?Wo(e,t,n,r):n.startsWith(`attr`)?Uo(e,t,n,r,Ko(n)):(bi.has(n)||Do.has(n)||Li(n)||n in e.style?ko:Uo)(e,t,n,r),{test:yo,read:(e,t)=>bi.has(t)?ti[t]?.default||0:Li(t)||Bo.includes(t)?jo(e,t)||e.getAttribute(qa(t))||0:(t=Ko(t),e.getAttribute(qa(t))??e.getAttribute(t)??void 0)});function Ko(e){return e.replace(/^attr([A-Z])/,(e,t)=>t.toLowerCase())}function qo({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Jo({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Yo(e,t){if(!t)return e;let n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Xo(e){return e===void 0||e===1}function Zo({scale:e,scaleX:t,scaleY:n}){return!Xo(e)||!Xo(t)||!Xo(n)}function Qo(e){return Zo(e)||$o(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function $o(e){return es(e.x)||es(e.y)}function es(e){return e&&e!==`0%`}function ts(e,t,n){return n+t*(e-n)}function ns(e,t,n,r,i){return i!==void 0&&(e=ts(e,i,r)),ts(e,n,r)+t}function rs(e,t=0,n=1,r,i){e.min=ns(e.min,t,n,r,i),e.max=ns(e.max,t,n,r,i)}function is(e,{x:t,y:n}){rs(e.x,t.translate,t.scale,t.originPoint),rs(e.y,n.translate,n.scale,n.originPoint)}var as=.999999999999,os=1.0000000000001;function ss(e,t,n,r=!1){let i=n.length;if(!i)return;t.x=t.y=1;let a,o;for(let s=0;s<i;s++){a=n[s],o=a.projectionDelta;let{visualElement:i}=a.options;i&&i.props.style&&i.props.style.display===`contents`||(r&&a.options.layoutScroll&&a.scroll&&a!==a.root&&(cs(e.x,-a.scroll.offset.x),cs(e.y,-a.scroll.offset.y)),o&&(t.x*=o.x.scale,t.y*=o.y.scale,is(e,o)),r&&Qo(a.latestValues)&&ds(e,a.latestValues,a.layout?.layoutBox))}t.x<os&&t.x>as&&(t.x=1),t.y<os&&t.y>as&&(t.y=1)}function cs(e,t){e.min+=t,e.max+=t}function ls(e,t,n,r,i=.5){rs(e,t,n,z(e.min,e.max,i),r)}function us(e,t){return typeof e==`string`?parseFloat(e)/100*(t.max-t.min):e}function ds(e,t,n){let r=n??e;ls(e.x,us(t.x,r.x),t.scaleX,t.scale,t.originX),ls(e.y,us(t.y,r.y),t.scaleY,t.scale,t.originY)}function fs(e,t){return qo(Yo(e.getBoundingClientRect(),t))}function ps(e,t,n){let r=fs(e,n),{scroll:i}=t;return i&&(cs(r.x,i.offset.x),cs(r.y,i.offset.y)),r}var ms={},hs=e=>yo(e)?Go:Mo,gs=class{constructor(e,t){this.effect=e,this.current=t,this.KeyframeResolver=co}getValue(e){return this.effect.get(this.current,e)}readValue(e,t){return this.effect.read(this.current,e,t)}render(){this.effect.flush(this.current)}measureViewportBox(){return fs(this.current)}getProps(){return ms}};function _s(e,t,n,r){if(r)return ho(e=>r.getValue(e,null),t,n,r);let i=hs(e);return go(i,e,t,n,new gs(i,e))}var vs=Co((e,t,n,r)=>t.set(n,r,()=>{e[n]=r.get()}),{test:e=>st(e),read:(e,t)=>{let n=e[t];return typeof n==`string`||typeof n==`number`?n:void 0}}),{schedule:ys,cancel:bs}=sr(queueMicrotask,!1),xs={x:!1,y:!1};function Ss(){return xs.x||xs.y}function Cs(e){return e===`x`||e===`y`?xs[e]?null:(xs[e]=!0,()=>{xs[e]=!1}):xs.x||xs.y?null:(xs.x=xs.y=!0,()=>{xs.x=xs.y=!1})}function ws(e,t){let n=xo(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function Ts(e){return!(e.pointerType===`touch`||Ss())}function Es(e,t,n={}){let[r,i,a]=ws(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!Ts(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var Ds=(e,t)=>t?e===t||Ds(e,t.parentElement):!1,Os=e=>e.pointerType===`mouse`?typeof e.button!=`number`||e.button<=0:e.isPrimary!==!1,ks=new Set([`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`A`]);function As(e){return ks.has(e.tagName)||e.isContentEditable===!0}var js=new Set([`INPUT`,`SELECT`,`TEXTAREA`]);function Ms(e){return js.has(e.tagName)||e.isContentEditable===!0}var Ns=new WeakSet;function Ps(e){return t=>{t.key===`Enter`&&e(t)}}function Fs(e,t){e.dispatchEvent(new PointerEvent(`pointer`+t,{isPrimary:!0,bubbles:!0}))}var Is=(e,t)=>{let n=e.currentTarget;if(!n)return;let r=Ps(()=>{if(Ns.has(n))return;Fs(n,`down`);let e=Ps(()=>{Fs(n,`up`)});n.addEventListener(`keyup`,e,t),n.addEventListener(`blur`,()=>Fs(n,`cancel`),t)});n.addEventListener(`keydown`,r,t),n.addEventListener(`blur`,()=>n.removeEventListener(`keydown`,r),t)};function Ls(e){return Os(e)&&!Ss()}var Rs=new WeakSet;function zs(e,t,n={}){let[r,i,a]=ws(e,n),o=e=>{let r=e.currentTarget;if(!Ls(e)||Rs.has(e))return;Ns.add(r),n.stopPropagation&&Rs.add(e);let a=t(r,e),o={...i,capture:!0},s=(e,t)=>{window.removeEventListener(`pointerup`,c,o),window.removeEventListener(`pointercancel`,l,o),Ns.has(r)&&Ns.delete(r),Ls(e)&&typeof a==`function`&&a(e,{success:t})},c=e=>{s(e,r===window||r===document||n.useGlobalTarget||Ds(r,e.target))},l=e=>{s(e,!1)};window.addEventListener(`pointerup`,c,o),window.addEventListener(`pointercancel`,l,o)};return r.forEach(e=>{(n.useGlobalTarget?window:e).addEventListener(`pointerdown`,o,i),vo(e)&&(e.addEventListener(`focus`,e=>Is(e,i)),!As(e)&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=0))}),a}var Bs=new WeakMap,Vs,Hs=(e,t,n)=>(r,i)=>i&&i[0]?i[0][e+`Size`]:yo(r)&&`getBBox`in r?r.getBBox()[t]:r[n],Us=Hs(`inline`,`width`,`offsetWidth`),Ws=Hs(`block`,`height`,`offsetHeight`);function Gs({target:e,borderBoxSize:t}){Bs.get(e)?.forEach(n=>{n(e,{get width(){return Us(e,t)},get height(){return Ws(e,t)}})})}function Ks(e){e.forEach(Gs)}function qs(){typeof ResizeObserver<`u`&&(Vs=new ResizeObserver(Ks))}function Js(e,t){Vs||qs();let n=xo(e);return n.forEach(e=>{let n=Bs.get(e);n||(n=new Set,Bs.set(e,n)),n.add(t),Vs?.observe(e)}),()=>{n.forEach(e=>{let n=Bs.get(e);n?.delete(t),n?.size||Vs?.unobserve(e)})}}var Ys=new Set,Xs;function Zs(){Xs=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Ys.forEach(t=>t(e))},window.addEventListener(`resize`,Xs)}function Qs(e){return Ys.add(e),Xs||Zs(),()=>{Ys.delete(e),!Ys.size&&typeof Xs==`function`&&(window.removeEventListener(`resize`,Xs),Xs=void 0)}}function $s(e,t){return typeof e==`function`?Qs(e):Js(e,t)}var ec={value:null,addProjectionMetrics:null};function tc(e){return yo(e)&&e.tagName===`svg`}var nc=e=>typeof e==`number`?e:parseFloat(e),rc=()=>({translate:0,scale:1,origin:0,originPoint:0}),ic=()=>({x:rc(),y:rc()}),ac=()=>({min:0,max:0}),oc=()=>({x:ac(),y:ac()}),sc=new WeakMap;function cc(e){return typeof e==`object`&&!!e&&typeof e.start==`function`}function lc(e){return typeof e==`string`||Array.isArray(e)}var uc=[`animate`,`whileInView`,`whileFocus`,`whileHover`,`whileTap`,`whileDrag`,`exit`],dc=[`initial`,...uc];function fc(e){if(cc(e.animate))return!0;for(let t=0;t<dc.length;t++)if(lc(e[dc[t]]))return!0;return!1}function pc(e){return!!(fc(e)||e.variants)}function mc(e,t,n){for(let r in t){let i=t[r],a=n[r];if(Wa(i))e.addValue(r,i);else if(Wa(a))e.addValue(r,xa(i,{owner:e}));else if(a!==i){if(e.hasValue(r)){let t=e.getValue(r);t.liveStyle===!0?t.jump(i):t.hasAnimated||t.set(i)}else{let t=e.getStaticValue(r);e.addValue(r,xa(t===void 0?i:t,{owner:e}))}}}for(let r in n)t[r]===void 0&&e.removeValue(r);return t}var hc={current:null},gc={current:!1},_c=typeof window<`u`;function vc(){if(gc.current=!0,_c){if(window.matchMedia){let e=window.matchMedia(`(prefers-reduced-motion)`),t=()=>hc.current=e.matches;e.addEventListener(`change`,t),t()}else hc.current=!1}}var yc=[`AnimationStart`,`AnimationComplete`,`Update`,`BeforeLayoutMeasure`,`LayoutMeasure`,`LayoutAnimationStart`,`LayoutAnimationComplete`],bc={};function xc(e){bc=e}function Sc(){return bc}var Cc=class{scrapeMotionValuesFromProps(e,t,n){return{}}constructor({parent:e,props:t,presenceContext:n,reducedMotionConfig:r,skipAnimations:i,blockInitialAnimation:a,visualState:o},s={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=Ii,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify(`Update`,this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let e=Wt.now();this.renderScheduledAt<e&&(this.renderScheduledAt=e,B.render(this.render,!1,!0))};let{latestValues:c,renderState:l}=o;this.latestValues=c,this.baseTarget={...c},this.initialValues=t.initial?{...c}:{},this.renderState=l,this.parent=e,this.props=t,this.presenceContext=n,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.skipAnimationsConfig=i,this.options=s,this.blockInitialAnimation=!!a,this.isControllingVariants=fc(t),this.isVariantNode=pc(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);let{willChange:u,...d}=this.scrapeMotionValuesFromProps(t,{},this);for(let e in d){let t=d[e];c[e]!==void 0&&Wa(t)&&t.set(c[e])}}mount(e){if(this.hasBeenMounted)for(let e in this.initialValues)this.values.get(e)?.jump(this.initialValues[e]),this.latestValues[e]=this.initialValues[e];if(this.current=e,sc.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.isVariantNode&&!this.isControllingVariants){let e=this;do e=e.props.inherit!==!1&&e.parent;while(e&&!e.isVariantNode);if(e){let{variantChildren:t}=e;t.add(this),this.removeFromVariantTree=()=>t.delete(this)}}this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),this.reducedMotionConfig===`never`?this.shouldReduceMotion=!1:this.reducedMotionConfig===`always`?this.shouldReduceMotion=!0:(gc.current||vc(),this.shouldReduceMotion=hc.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),cr(this.notifyUpdate),cr(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(let e in this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??=new Set,this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),t.accelerate&&aa.has(e)&&this.current instanceof HTMLElement){let{factory:n,keyframes:r,times:i,ease:a,duration:o}=t.accelerate,s=new Yi({element:this.current,name:e,keyframes:r,times:i,ease:a,duration:mt(o)}),c=n(s);this.valueSubscriptions.set(e,()=>{c(),s.cancel()});return}let n=bi.has(e);n&&this.onBindTransform&&this.onBindTransform();let r=t.on(`change`,t=>{this.latestValues[e]=t,this.props.onUpdate&&B.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()}),i;typeof window<`u`&&window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{r(),i&&i()})}sortNodePosition(e){return!this.current||!e.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e=`animation`;for(e in bc){let t=bc[e];if(!t)continue;let{isEnabled:n,Feature:r}=t;if(!this.features[e]&&r&&n(this.props)&&(this.features[e]=new r(this)),this.features[e]){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):oc()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<yc.length;t++){let n=yc[t];this.propEventSubscriptions[n]&&(this.propEventSubscriptions[n](),delete this.propEventSubscriptions[n]);let r=e[`on`+n];r&&(this.propEventSubscriptions[n]=this.on(n,r))}this.prevMotionValues=mc(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}addValue(e,t){let n=this.values.get(e);if(t!==n){n&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t);let r=t.get();r!==void 0&&(this.latestValues[e]=r)}}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return n===void 0&&t!==void 0&&(n=xa(t??this.getDefaultValue?.(e),{owner:this}),this.addValue(e,n)),n}readValue(e,t){let n=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return n!=null&&(typeof n==`string`&&(ot(n)||ct(n))?n=parseFloat(n):typeof n!=`number`&&!Rn.test(n)&&Rn.test(t)&&(n=ai(e,t)),this.setBaseTarget(e,Wa(n)?n.get():n)),Wa(n)?n.get():n}setBaseTarget(e,t){this.baseTarget[e]=t}on(e,t){return this.events[e]||(this.events[e]=new pt),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}scheduleRenderMicrotask(){ys.render(this.render)}},wc=class extends Cc{constructor(){super(...arguments),this.KeyframeResolver=co}sortInstanceNodePosition(e,t){return e.compareDocumentPosition(t)&2?1:-1}getBaseTargetFromProps(e,t){let n=e.style;return n?n[t]:void 0}removeValueFromRenderState(e,{vars:t,style:n}){delete t[e],delete n[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:e}=this.props;Wa(e)&&(this.childSubscription=e.on(`change`,e=>{this.current&&(this.current.textContent=`${e}`)}))}},Tc=class{constructor(e){this.isMounted=!1,this.node=e}update(){}};function Ec(e,{style:t,vars:n},r,i){let a=e.style,o;for(o in t)a[o]=t[o];for(o in i?.applyProjectionStyles(a,r),n)a.setProperty(o,n[o])}var Dc={};function Oc(e,{layout:t,layoutId:n}){return bi.has(e)||e.startsWith(`origin`)||(t||n!==void 0)&&(!!Dc[e]||e===`opacity`)}function kc(e,t,n){let r=e.style,i=t?.style,a={};if(!r)return a;for(let t in r)(Wa(r[t])||i&&Wa(i[t])||Oc(t,e)||n?.getValue(t)?.liveStyle!==void 0)&&(a[t]=r[t]);return a}function Ac(e){return window.getComputedStyle(e)}var jc=class extends wc{constructor(){super(...arguments),this.type=`html`,this.renderInstance=Ec}mount(e){e.style,super.mount(e)}readValueFromInstance(e,t){if(bi.has(t))return this.projection?.isProjecting?hi(t):_i(e,t);{let n=Ac(e),r=(qt(t)?n.getPropertyValue(t):n[t])||0;return typeof r==`string`?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:t}){return fs(e,t)}build(e,t,n){Io(e,t,n.transformTemplate)}scrapeMotionValuesFromProps(e,t,n){return kc(e,t,n)}},Mc=new Set([`baseFrequency`,`diffuseConstant`,`kernelMatrix`,`kernelUnitLength`,`keySplines`,`keyTimes`,`limitingConeAngle`,`markerHeight`,`markerWidth`,`numOctaves`,`targetX`,`targetY`,`surfaceScale`,`specularConstant`,`specularExponent`,`stdDeviation`,`tableValues`,`viewBox`,`gradientTransform`,`pathLength`,`startOffset`,`textLength`,`lengthAdjust`]),Nc=e=>typeof e==`string`&&e.toLowerCase()===`svg`;function Pc(e,t,n,r){Ec(e,t,void 0,r);for(let n in t.attrs)e.setAttribute(Mc.has(n)?n:qa(n),t.attrs[n])}function Fc(e,t,n){let r=kc(e,t,n);for(let n in e)if(Wa(e[n])||Wa(t[n])){let t=yi.indexOf(n)===-1?n:`attr`+n.charAt(0).toUpperCase()+n.substring(1);r[t]=e[n]}return r}var Ic=class extends wc{constructor(){super(...arguments),this.type=`svg`,this.isSVGTag=!1,this.measureInstanceViewportBox=oc}getBaseTargetFromProps(e,t){return bi.has(t)?super.getBaseTargetFromProps(e,t)??hi(t):e[t]}getDefaultValue(e){return bi.has(e)?this.latestValues[e]??hi(e):void 0}readValueFromInstance(e,t){if(bi.has(t)){let e=ri(t);return e&&e.default||0}if(Bo.includes(t)){let n=getComputedStyle(e)[t];if(typeof n==`string`&&n)return n.trim()}return t=Mc.has(t)?t:qa(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,n){return Fc(e,t,n)}build(e,t,n){Vo(e,t,this.isSVGTag,n.transformTemplate,n.style)}renderInstance(e,t,n,r){Pc(e,t,n,r)}mount(e){this.isSVGTag=Nc(e.tagName),super.mount(e)}};function Lc(e,t){if(!Array.isArray(t))return!1;let n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}var Rc=[...uc].reverse();function zc(e){let t=t=>Promise.all(t.map(({animation:t,options:n})=>eo(e,t,n))),n=Vc(),r=!0,i=!1;function a(a){let{props:o,parent:s,manuallyAnimateOnMount:c}=e,l=r||i,u=[],d=new Set,f={},p=1/0,m=e;do m=m.props.inherit!==!1&&m.parent;while(m&&!m.isControllingVariants);if(Rc.forEach((t,r)=>{let i=n[t],h=o[t],g=m&&m.props[t],_=h===void 0?lc(g)||g===!1?g:void 0:h,v=lc(_),y=t===a?i.isActive:null;y===!1&&(p=r);let b=v&&h===void 0&&!(l&&c);if(i.protectedKeys={...f},!i.isActive&&y===null||!_&&!i.prevProp||cc(_)||typeof _==`boolean`)return;if(t===`exit`&&i.isActive&&y!==!0){f={...f,...i.prevResolvedValues};return}let x=Bc(i.prevProp,_),S=x||v&&(y&&!b||r>p),C=!1,w=Array.isArray(_)?_:[_],T={};if(y!==!1)for(let n of w){let{transition:r,transitionEnd:i,...a}=La(e,n,Ra(e,t))||{};T={...T,...a,...i}}let{prevResolvedValues:E}=i;for(let t in{...E,...T}){if(t in f)continue;let n=T[t],r=E[t],a=Array.isArray(n)&&Array.isArray(r)?!Lc(n,r)||x:n!==r;if(a&&n==null)d.add(t);else if(a||n!==void 0&&d.has(t)){S=!0,d.delete(t)&&(C=!0),i.needsAnimating[t]=!0;let n=e.getValue(t);n&&(n.liveStyle=!1)}else i.protectedKeys[t]=!0}if(i.prevProp=_,i.prevResolvedValues=T,i.isActive&&(f={...f,...T}),S&&(!(b&&x)||C))for(let n of w){let r={type:t};if(typeof n==`string`&&l&&c&&s?.enteringChildren){let t=La(s,n)?.transition?.delayChildren;r.delay=ga(s.enteringChildren,e,t)}u.push({animation:n,options:r})}}),d.size){let{initial:t}=o,n={},r=typeof t!=`boolean`&&La(e,Array.isArray(t)?t[0]:t,e.presenceContext?.custom);r&&r.transition&&(n.transition=r.transition),d.forEach(i=>{let a=e.getValue(i);a&&(a.liveStyle=!0);let s=r&&!Array.isArray(t)?r[i]:void 0,c=e.getBaseTargetFromProps(o,i);n[i]=(s===void 0?c!==void 0&&!Wa(c)?c:e.initialValues[i]===void 0?e.baseTarget[i]:void 0:s)??null}),u.push({animation:n})}let h=l&&e.blockInitialAnimation||r&&!c&&(o.initial===!1||o.initial===o.animate);return r=i=!1,!h&&u.length?t(u):Promise.resolve()}function o(t,r){if(n[t].isActive===r)return Promise.resolve();e.variantChildren?.forEach(e=>e.animationState?.setActive(t,r)),n[t].isActive=r;let i=a(t);for(let e in n)n[e].protectedKeys={};return i}return{animateChanges:a,setActive:o,setAnimateFunction:n=>{t=n(e)},getState:()=>n,reset:()=>{n=Vc(),i=!0}}}function Bc(e,t){return typeof t==`string`?t!==e:Array.isArray(t)?!Lc(t,e):!1}function Vc(){let e={};for(let t of uc)e[t]={isActive:t===`animate`,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}};return e}function Hc(e,t){e.min=t.min,e.max=t.max}function Uc(e,t){Hc(e.x,t.x),Hc(e.y,t.y)}function Wc(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}var Gc=.9999,Kc=1.0001,qc=-.01,Jc=.01;function Yc(e){return e.max-e.min}function Xc(e,t,n){return Math.abs(e-t)<=n}function Zc(e,t,n,r=.5){e.origin=r,e.originPoint=z(t.min,t.max,e.origin),e.scale=Yc(n)/Yc(t),e.translate=z(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Gc&&e.scale<=Kc||isNaN(e.scale))&&(e.scale=1),(e.translate>=qc&&e.translate<=Jc||isNaN(e.translate))&&(e.translate=0)}function Qc(e,t,n,r){Zc(e.x,t.x,n.x,r?r.originX:void 0),Zc(e.y,t.y,n.y,r?r.originY:void 0)}function $c(e,t,n,r=0){e.min=(r?z(n.min,n.max,r):n.min)+t.min,e.max=e.min+Yc(t)}function el(e,t,n,r){$c(e.x,t.x,n.x,r?.x),$c(e.y,t.y,n.y,r?.y)}function tl(e,t,n,r=0){let i=r?z(n.min,n.max,r):n.min;e.min=t.min-i,e.max=e.min+Yc(t)}function nl(e,t,n,r){tl(e.x,t.x,n.x,r?.x),tl(e.y,t.y,n.y,r?.y)}function rl(e,t,n,r,i){return e-=t,e=ts(e,1/n,r),i!==void 0&&(e=ts(e,1/i,r)),e}function il(e,t=0,n=1,r=.5,i,a=e,o=e){if(mn.test(t)&&(t=parseFloat(t),t=z(o.min,o.max,t/100)-o.min),typeof t!=`number`)return;let s=z(a.min,a.max,r);e===a&&(s-=t),e.min=rl(e.min,t,n,s,i),e.max=rl(e.max,t,n,s,i)}function al(e,t,[n,r,i],a,o){il(e,t[n],t[r],t[i],t.scale,a,o)}var ol=[`x`,`scaleX`,`originX`],sl=[`y`,`scaleY`,`originY`];function cl(e,t,n,r){al(e.x,t,ol,n?n.x:void 0,r?r.x:void 0),al(e.y,t,sl,n?n.y:void 0,r?r.y:void 0)}function ll(e){return e.translate===0&&e.scale===1}function ul(e){return ll(e.x)&&ll(e.y)}function dl(e,t){return e.min===t.min&&e.max===t.max}function fl(e,t){return dl(e.x,t.x)&&dl(e.y,t.y)}function pl(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function ml(e,t){return pl(e.x,t.x)&&pl(e.y,t.y)}function hl(e){return Yc(e.x)/Yc(e.y)}function gl(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function _l(e){return[e(`x`),e(`y`)]}function vl(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var yl={correct:(e,t)=>{if(!t.target)return e;if(typeof e==`string`){if(R.test(e))e=parseFloat(e);else return e}return`${vl(e,t.target.x)}% ${vl(e,t.target.y)}%`}},bl={correct:(e,{treeScale:t,projectionDelta:n})=>{let r=e,i=Rn.parse(e);if(i.length>5)return r;let a=Rn.createTransformer(e),o=typeof i[0]==`number`?0:1,s=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=s,i[1+o]/=c;let l=z(s,c,.5);return typeof i[2+o]==`number`&&(i[2+o]/=l),typeof i[3+o]==`number`&&(i[3+o]/=l),a(i)}};function xl(e,t,n){let r=``,i=e.x.translate/t.x,a=e.y.translate/t.y,o=n?.z||0;if((i||a||o)&&(r=`translate3d(${i}px, ${a}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){let{transformPerspective:e,rotate:t,pathRotation:i,rotateX:a,rotateY:o,skewX:s,skewY:c}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),i&&(r+=`rotate(${i}deg) `),a&&(r+=`rotateX(${a}deg) `),o&&(r+=`rotateY(${o}deg) `),s&&(r+=`skewX(${s}deg) `),c&&(r+=`skewY(${c}deg) `)}let s=e.x.scale*t.x,c=e.y.scale*t.y;return(s!==1||c!==1)&&(r+=`scale(${s}, ${c})`),r||`none`}var Sl=lo.length,Cl=e=>typeof e==`number`||R.test(e);function wl(e,t,n,r,i,a){i?(e.opacity=z(0,n.opacity??1,El(r)),e.opacityExit=z(t.opacity??1,0,Dl(r))):a&&(e.opacity=z(t.opacity??1,n.opacity??1,r));for(let i=0;i<Sl;i++){let a=lo[i],o=Tl(t,a),s=Tl(n,a);(o!==void 0||s!==void 0)&&(o||=0,s||=0,o===0||s===0||Cl(o)===Cl(s)?(e[a]=Math.max(z(nc(o),nc(s),r),0),(mn.test(s)||mn.test(o))&&(e[a]+=`%`)):e[a]=s)}(t.rotate||n.rotate)&&(e.rotate=z(t.rotate||0,n.rotate||0,r))}function Tl(e,t){return e[t]===void 0?e.borderRadius:e[t]}var El=Ol(0,.5,At),Dl=Ol(.5,.95,ut);function Ol(e,t,n){return r=>r<e?0:r>t?1:n(ft(e,t,r))}function kl(e,t,n){let r=Wa(e)?e:xa(e);return r.start(ja(``,r,t,n)),r.animation}function Al(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}var jl=(e,t)=>e.depth-t.depth,Ml=class{constructor(){this.children=[],this.isDirty=!1}add(e){nt(this.children,e),this.isDirty=!0}remove(e){rt(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(jl),this.isDirty=!1,this.children.forEach(e)}};function Nl(e,t){let n=Wt.now(),r=({timestamp:i})=>{let a=i-n;a>=t&&(cr(r),e(a-t))};return B.setup(r,!0),()=>cr(r)}function Pl(e){return Wa(e)?e.get():e}var Fl=class{constructor(){this.members=[]}add(e){nt(this.members,e);for(let t=this.members.length-1;t>=0;t--){let n=this.members[t];if(n===e||n===this.lead||n===this.prevLead)continue;let r=n.instance;(!r||r.isConnected===!1)&&!n.snapshot&&(rt(this.members,n),n.unmount())}e.scheduleRender()}remove(e){if(rt(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){for(let t=this.members.indexOf(e)-1;t>=0;t--){let e=this.members[t];if(e.isPresent!==!1&&e.instance?.isConnected!==!1)return this.promote(e),!0}return!1}promote(e,t){let n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.updateSnapshot(),e.scheduleRender();let{layoutDependency:r}=n.options,{layoutDependency:i}=e.options;(r===void 0||r!==i)&&(e.resumeFrom=n,t&&(n.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}},Il={borderRadius:{...yl,applyTo:[...lo]},borderTopLeftRadius:yl,borderTopRightRadius:yl,borderBottomLeftRadius:yl,borderBottomRightRadius:yl,boxShadow:bl},Ll={hasAnimatedSinceResize:!0,hasEverUpdated:!1};Object.assign(Dc,{...Il,...Dc});var Rl={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},zl=[``,`X`,`Y`,`Z`],Bl=1e3,Vl=0;function Hl(e,t,n,r){let{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Ul(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let n=Ya(t);if(window.MotionHasOptimisedAnimation(n,`transform`)){let{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,`transform`,B,!(t||r))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Ul(r)}function Wl({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(e={},n=t?.()){this.id=Vl++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ec.value&&(Rl.nodes=Rl.calculatedTargetDeltas=Rl.calculatedProjections=0),this.nodes.forEach(ql),this.nodes.forEach(ru),this.nodes.forEach(iu),this.nodes.forEach(Jl),ec.addProjectionMetrics&&ec.addProjectionMetrics(Rl)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new Ml)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new pt),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let n=this.eventHandlers.get(e);n&&n.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t){if(this.instance)return;this.isSVG=yo(t)&&!tc(t),this.instance=t;let{layoutId:n,layout:r,visualElement:i}=this.options;if(i&&!i.current&&i.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(r||n)&&(this.isLayoutDirty=!0),e){let n,r=0,i=()=>this.root.updateBlockedByResize=!1;B.read(()=>{r=window.innerWidth}),e(t,()=>{let e=window.innerWidth;e!==r&&(r=e,this.root.updateBlockedByResize=!0,n&&n(),n=Nl(i,250),Ll.hasAnimatedSinceResize&&(Ll.hasAnimatedSinceResize=!1,this.nodes.forEach(nu)))})}n&&this.root.registerSharedNode(n,this),this.options.animate!==!1&&i&&(n||r)&&this.addEventListener(`didUpdate`,({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:n,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let a=this.options.transition||i.getDefaultTransition()||du,{onLayoutAnimationStart:o,onLayoutAnimationComplete:s}=i.getProps(),c=!this.targetLayout||!ml(this.targetLayout,r),l=!t&&n;if(this.options.layoutRoot||this.resumeFrom||l||t&&(c||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={...Ca(a,`layout`),onPlay:o,onComplete:s};(i.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,l,t.path)}else t||nu(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),cr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(au),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Ul(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,(typeof t.latestValues.x==`string`||typeof t.latestValues.y==`string`)&&(t.isLayoutDirty=!0),t.updateScroll(`snapshot`),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:n}=this.options;if(t===void 0&&!n)return;let r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,``):void 0,this.updateSnapshot(),e&&this.notifyListeners(`willUpdate`)}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let e=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),e&&this.nodes.forEach(Zl),this.nodes.forEach(Xl);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Ql);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach($l),this.nodes.forEach(eu),this.nodes.forEach(tu),this.nodes.forEach(Gl),this.nodes.forEach(Kl)):this.nodes.forEach(Ql),this.clearAllSnapshots();let e=Wt.now();Vt.delta=it(0,1e3/60,e-Vt.timestamp),Vt.timestamp=e,Vt.isProcessing=!0,lr.update.process(Vt),lr.preRender.process(Vt),lr.render.process(Vt),Vt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,ys.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(Yl),this.sharedNodes.forEach(ou)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,B.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){B.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),this.snapshot&&!Yc(this.snapshot.measuredBox.x)&&!Yc(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutCorrected||=oc(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners(`measure`,this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify(`LayoutMeasure`,this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e=`measure`){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t&&this.instance){let t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!i)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!ul(this.projectionDelta),n=this.getTransformTemplate(),r=n?n(this.latestValues,``):void 0,a=r!==this.prevTransformTemplateValue;e&&this.instance&&(t||Qo(this.latestValues)||a)&&(i(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){let t=this.measurePageBox(),n=this.removeElementScroll(t);return e&&(n=this.removeTransform(n)),hu(n),{animationId:this.root.animationId,measuredBox:t,layoutBox:n,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return oc();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(_u))){let{scroll:e}=this.root;e&&(cs(t.x,e.offset.x),cs(t.y,e.offset.y))}return t}removeElementScroll(e){let t=oc();if(Uc(t,e),this.scroll?.wasRoot)return t;for(let n=0;n<this.path.length;n++){let r=this.path[n],{scroll:i,options:a}=r;r!==this.root&&i&&a.layoutScroll&&(i.wasRoot&&Uc(t,e),cs(t.x,i.offset.x),cs(t.y,i.offset.y))}return t}applyTransform(e,t=!1,n){let r=n||oc();Uc(r,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];!t&&n.options.layoutScroll&&n.scroll&&n!==n.root&&(cs(r.x,-n.scroll.offset.x),cs(r.y,-n.scroll.offset.y)),Qo(n.latestValues)&&ds(r,n.latestValues,n.layout?.layoutBox)}return Qo(this.latestValues)&&ds(r,this.latestValues,this.layout?.layoutBox),r}removeTransform(e){let t=oc();Uc(t,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];if(!Qo(n.latestValues))continue;let r;n.instance&&(Zo(n.latestValues)&&n.updateSnapshot(),r=oc(),Uc(r,n.measurePageBox())),cl(t,n.latestValues,n.snapshot?.layoutBox,r)}return Qo(this.latestValues)&&cl(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:e.crossfade===void 0||e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Vt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||=t.isProjectionDirty,this.isTransformDirty||=t.isTransformDirty,this.isSharedProjectionDirty||=t.isSharedProjectionDirty;let n=!!this.resumingFrom||this!==t;if(!(e||n&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:r,layoutId:i}=this.options;if(!this.layout||!(r||i))return;this.resolvedRelativeTargetAt=Vt.timestamp;let a=this.getClosestProjectingParent();!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&a&&a.layout?this.createRelativeTarget(a,this.layout.layoutBox,a.layout.layoutBox):this.removeRelativeTarget()),(this.relativeTarget||this.targetDelta)&&(this.target||(this.target=oc(),this.targetWithTransforms=oc()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),el(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):Uc(this.target,this.layout.layoutBox),is(this.target,this.targetDelta)):Uc(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&a&&!!a.resumingFrom==!!this.resumingFrom&&!a.options.layoutScroll&&a.target&&this.animationProgress!==1?this.createRelativeTarget(a,this.target,a.target):this.relativeParent=this.relativeTarget=void 0),ec.value&&Rl.calculatedTargetDeltas++)}getClosestProjectingParent(){if(!(!this.parent||Zo(this.parent.latestValues)||$o(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(e,t,n){this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=oc(),this.relativeTargetOrigin=oc(),nl(this.relativeTargetOrigin,t,n,this.options.layoutAnchor||void 0),Uc(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,n=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(n=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(n=!1),this.resolvedRelativeTargetAt===Vt.timestamp&&(n=!1),n)return;let{layout:r,layoutId:i}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(r||i))return;Uc(this.layoutCorrected,this.layout.layoutBox);let a=this.treeScale.x,o=this.treeScale.y;ss(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=oc());let{target:s}=e;if(!s){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Wc(this.prevProjectionDelta.x,this.projectionDelta.x),Wc(this.prevProjectionDelta.y,this.projectionDelta.y)),Qc(this.projectionDelta,this.layoutCorrected,s,this.latestValues),(this.treeScale.x!==a||this.treeScale.y!==o||!gl(this.projectionDelta.x,this.prevProjectionDelta.x)||!gl(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners(`projectionUpdate`,s)),ec.value&&Rl.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){if(this.options.visualElement?.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=ic(),this.projectionDelta=ic(),this.projectionDeltaWithTransform=ic()}setAnimationOrigin(e,t=!1,n){let r=this.snapshot,i=r?r.latestValues:{},a={...this.latestValues},o=ic();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let s=oc(),c=(r?r.source:void 0)!==(this.layout?this.layout.source:void 0),l=this.getStack(),u=!l||l.members.length<=1,d=!(!c||u||this.options.crossfade!==!0||this.path.some(uu));this.animationProgress=0;let f,p=n?.interpolateProjection(e);this.mixTargetDelta=t=>{let n=t/1e3,r=p?.(n);r?(o.x.translate=r.x,o.x.scale=z(e.x.scale,1,n),o.x.origin=e.x.origin,o.x.originPoint=e.x.originPoint,o.y.translate=r.y,o.y.scale=z(e.y.scale,1,n),o.y.origin=e.y.origin,o.y.originPoint=e.y.originPoint):(su(o.x,e.x,n),su(o.y,e.y,n)),this.setTargetDelta(o),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(nl(s,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),lu(this.relativeTarget,this.relativeTargetOrigin,s,n),f&&fl(this.relativeTarget,f)&&(this.isProjectionDirty=!1),f||=oc(),Uc(f,this.relativeTarget)),c&&(this.animationValues=a,wl(a,i,this.latestValues,n,d,u)),r&&r.rotate!==void 0&&(this.animationValues||=a,this.animationValues.pathRotation=r.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(`animationStart`),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&=(cr(this.pendingAnimation),void 0),this.pendingAnimation=B.update(()=>{Ll.hasAnimatedSinceResize=!0,this.motionValue||=xa(0),this.motionValue.jump(0,!1),this.currentAnimation=kl(this.motionValue,[0,1e3],{...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.onComplete(),this.completeAnimation()}}),Wr(this.currentAnimation,this),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(`animationComplete`)}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Bl),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,layout:n,latestValues:r}=e,{target:i}=e;if(t&&i&&n){if(this!==e&&this.layout&&n&&gu(this.options.animationType,this.layout.layoutBox,n.layoutBox)){i=this.target||oc();let t=Yc(this.layout.layoutBox.x);i.x.min=e.target.x.min,i.x.max=i.x.min+t;let n=Yc(this.layout.layoutBox.y);i.y.min=e.target.y.min,i.y.max=i.y.min+n}Uc(t,i),ds(t,r),Qc(this.projectionDeltaWithTransform,this.layoutCorrected,t,r)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new Fl),this.sharedNodes.get(e).add(t);let n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){let r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return e?e.relegate(this):!1}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;let r={};n.z&&Hl(`z`,e,r,this.animationValues);for(let t=0;t<zl.length;t++)Hl(`rotate${zl[t]}`,e,r,this.animationValues),Hl(`skew${zl[t]}`,e,r,this.animationValues);e.render();for(let t in r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}applyProjectionStyles(e,t){if(!this.instance||this.isSVG)return;if(!this.isVisible){e.visibility=`hidden`;return}let n=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,e.visibility=``,e.opacity=``,e.pointerEvents=Pl(t?.pointerEvents)||``,e.transform=n?n(this.latestValues,``):`none`;return}let r=this.getLead();if(!this.projectionDelta||!this.layout||!r.target){this.options.layoutId&&(e.opacity=this.latestValues.opacity===void 0?1:this.latestValues.opacity,e.pointerEvents=Pl(t?.pointerEvents)||``),this.hasProjected&&!Qo(this.latestValues)&&(e.transform=n?n({},``):`none`,this.hasProjected=!1);return}e.visibility=``;let i=r.animationValues||r.latestValues;this.applyTransformsToTarget();let a=xl(this.projectionDeltaWithTransform,this.treeScale,i);n&&(a=n(i,a)),e.transform=a;let{x:o,y:s}=this.projectionDelta;e.transformOrigin=`${o.origin*100}% ${s.origin*100}% 0`,e.opacity=r.animationValues?r===this?i.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:i.opacityExit:r===this?i.opacity===void 0?``:i.opacity:i.opacityExit===void 0?0:i.opacityExit;for(let t in Dc){if(i[t]===void 0)continue;let{correct:n,applyTo:o,isCSSVariable:s}=Dc[t],c=a===`none`?i[t]:n(i[t],r);if(o){let t=o.length;for(let n=0;n<t;n++)e[o[n]]=c}else s?this.options.visualElement.renderState.vars[t]=c:e[t]=c}this.options.layoutId&&(e.pointerEvents=r===this?Pl(t?.pointerEvents)||``:`none`)}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach(Xl),this.root.sharedNodes.clear()}}}function Gl(e){e.updateLayout()}function Kl(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners(`didUpdate`)){let{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,a=t.source!==e.layout.source;if(i===`size`)_l(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],i=Yc(r);r.min=n[e].min,r.max=r.min+i});else if(i===`x`||i===`y`){let e=i===`x`?`y`:`x`;Hc(a?t.measuredBox[e]:t.layoutBox[e],n[e])}else gu(i,t.layoutBox,n)&&_l(r=>{let i=a?t.measuredBox[r]:t.layoutBox[r],o=Yc(n[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=ic();Qc(o,n,t.layoutBox);let s=ic();a?Qc(s,e.applyTransform(r,!0),t.measuredBox):Qc(s,n,t.layoutBox);let c=!ul(o),l=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:a}=r;if(i&&a){let o=e.options.layoutAnchor||void 0,s=oc();nl(s,t.layoutBox,i.layoutBox,o);let c=oc();nl(c,n,a.layoutBox,o),ml(s,c)||(l=!0),r.options.layoutRoot&&(e.relativeTarget=c,e.relativeTargetOrigin=s,e.relativeParent=r)}}}e.notifyListeners(`didUpdate`,{layout:n,snapshot:t,delta:s,layoutDelta:o,hasLayoutChanged:c,hasRelativeLayoutChanged:l})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function ql(e){ec.value&&Rl.nodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty),e.isTransformDirty||=e.parent.isTransformDirty)}function Jl(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Yl(e){e.clearSnapshot()}function Xl(e){e.clearMeasurements()}function Zl(e){e.isLayoutDirty=!0,e.updateLayout()}function Ql(e){e.isLayoutDirty=!1}function $l(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function eu(e){e.relativeTarget&&e.relativeParent?.isLayoutDirty&&(e.currentAnimation?e.isLayoutDirty=!0:(e.targetDelta=void 0,e.removeRelativeTarget()))}function tu(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(`BeforeLayoutMeasure`),e.resetTransform()}function nu(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function ru(e){e.resolveTargetDelta()}function iu(e){e.calcProjection()}function au(e){e.resetSkewAndRotation()}function ou(e){e.removeLeadSnapshot()}function su(e,t,n){e.translate=z(t.translate,0,n),e.scale=z(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function cu(e,t,n,r){e.min=z(t.min,n.min,r),e.max=z(t.max,n.max,r)}function lu(e,t,n,r){cu(e.x,t.x,n.x,r),cu(e.y,t.y,n.y,r)}function uu(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var du={duration:.45,ease:[.4,0,.1,1]},fu=e=>typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),pu=fu(`applewebkit/`)&&!fu(`chrome/`)?Math.round:ut;function mu(e){e.min=pu(e.min),e.max=pu(e.max)}function hu(e){mu(e.x),mu(e.y)}function gu(e,t,n){return e===`position`||e===`preserve-aspect`&&!Xc(hl(t),hl(n),.2)}function _u(e){return e!==e.root&&e.scroll?.wasRoot}var vu=Wl({attachResizeListener:(e,t)=>Al(e,`resize`,t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),yu=e=>!e.isLayoutDirty&&e.willUpdate(!1);function bu(){let e=new Set,t=new WeakMap,n=()=>e.forEach(yu);return{add:r=>{e.add(r),t.set(r,r.addEventListener(`willUpdate`,n))},remove:r=>{e.delete(r);let i=t.get(r);i&&(i(),t.delete(r)),n()},dirty:n}}var xu={current:void 0},Su=Wl({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!xu.current){let e=new vu({});e.mount(window),e.setOptions({layoutScroll:!0}),xu.current=e}return xu.current},resetTransform:(e,t)=>{e.style.transform=t===void 0?`none`:t},checkIsScrollRoot:e=>window.getComputedStyle(e).position===`fixed`}),Cu=(0,m.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:`never`});function wu(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Tu(...e){return t=>{let n=!1,r=e.map(e=>{let r=wu(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():wu(e[t],null)}}}}function Eu(...e){return m.useCallback(Tu(...e),e)}var Du=class extends m.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(vo(t)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){let e=t.offsetParent,n=vo(e)&&e.offsetWidth||0,r=vo(e)&&e.offsetHeight||0,i=getComputedStyle(t),a=this.props.sizeRef.current;a.height=parseFloat(i.height),a.width=parseFloat(i.width),a.top=t.offsetTop,a.left=t.offsetLeft,a.right=n-a.width-a.left,a.bottom=r-a.height-a.top,a.direction=i.direction}return null}componentDidUpdate(){}render(){return this.props.children}};function Ou({children:e,isPresent:t,anchorX:n,anchorY:r,root:i,pop:a}){let o=(0,m.useId)(),s=(0,m.useRef)(null),c=(0,m.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:`ltr`}),{nonce:l}=(0,m.useContext)(Cu),u=Eu(s,a===!1?void 0:e.props?.ref??e?.ref);return(0,m.useInsertionEffect)(()=>{let{width:e,height:u,top:d,left:f,right:p,bottom:m,direction:h}=c.current;if(t||a===!1||!s.current||!e||!u)return;let g=h===`rtl`,_=n===`left`?g?`right: ${p}`:`left: ${f}`:g?`left: ${f}`:`right: ${p}`,v=r===`bottom`?`bottom: ${m}`:`top: ${d}`;s.current.dataset.motionPopId=o;let y=document.createElement(`style`);l&&(y.nonce=l);let b=i??document.head;return b.appendChild(y),y.sheet&&y.sheet.insertRule(`
|
|
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,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(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},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),u=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.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.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`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(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 P(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,P(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),P(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=P(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=P(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return P(N(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 F(e,t,n){if(e==null)return e;var r=[],i=0;return P(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var te=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)};function ne(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,te)}catch(e){te(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function re(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else ne(re.bind(null,e))}var ie={map:F,forEach:function(e,t,n){F(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return F(e,function(){t++}),t},toArray:function(e){return F(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ie,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=re,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=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.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 D(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)E.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 D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ee}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=ne,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.0`})),d=o(((e,t)=>{t.exports=u()})),f=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})),p=o(((e,t)=>{t.exports=f()})),m=l(d(),1),h=p(),g=m.createContext(void 0),_=e=>{let t=m.useContext(g);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},v=({client:e,children:t})=>(m.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,h.jsx)(g.Provider,{value:e,children:t})),y={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},b=new class{#e=y;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function x(e){setTimeout(e,0)}var S=typeof window>`u`||`Deno`in globalThis;function C(){}function w(e,t){return typeof e==`function`?e(t):e}function T(e){return typeof e==`number`&&e>=0&&e!==1/0}function E(e,t){return Math.max(e+(t||0)-Date.now(),0)}function D(e,t){return typeof e==`function`?e(t):e}function O(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==A(o,t.options))return!1}else if(!M(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function k(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(j(t.options.mutationKey)!==j(a))return!1}else if(!M(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function A(e,t){return(t?.queryKeyHashFn||j)(e)}function j(e){return JSON.stringify(e,(e,t)=>te(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function M(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let n=0;n<t.length;n++)if(!M(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!M(e[r],t[r]))return!1;return!0}return!1}var N=Object.prototype.hasOwnProperty;function P(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=ee(e)&&ee(t);if(!r&&!(te(e)&&te(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:N.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=P(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function F(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function ee(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function te(e){if(!ne(e))return!1;let t=Object.getPrototypeOf(e),n=t?.constructor;if(n===void 0)return!0;if(typeof n!=`function`)return!1;let r=n.prototype;return!(!ne(r)||!r.hasOwnProperty(`isPrototypeOf`)||t!==Object.prototype)}function ne(e){return Object.prototype.toString.call(e)===`[object Object]`}function re(e){return new Promise(t=>{b.setTimeout(t,e)})}function ie(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:P(e,t)}function ae(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function oe(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var se=Symbol();function ce(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===se?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function le(e,t){return typeof e==`function`?e(...t):!!e}function ue(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var de=()=>S,fe=()=>de(),pe=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},me=new class extends pe{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},he=x;function ge(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=he,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var _e=ge(),ve=new class extends pe{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function ye(e){return Math.min(1e3*2**e,3e4)}function be(e){return(e??`online`)!==`online`||ve.isOnline()}var xe=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Se(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(C);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new xe(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>me.isFocused()&&(e.networkMode===`always`||ve.isOnline())&&e.canRun(),p=()=>be(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(fe()?0:3),a=e.retryDelay??ye,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!s){h(r);return}n++,e.onFail?.(n,r),re(o).then(()=>f()?void 0:g()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().then(_),s)}}var Ce=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),T(this.gcTime)&&(this.#e=b.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(fe()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(b.clearTimeout(this.#e),this.#e=void 0)}};function we(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ue(e,()=>t.signal,()=>n=!0)},u=ce(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?oe:ae;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Ee:Te,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Te(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function Te(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ee(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var De=class extends Ce{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Ae(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Ae(this.options);e.data!==void 0&&(this.setState(ke(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=ie(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>D(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===se||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>D(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!E(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=ce(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?we(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=Se({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof xe&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof xe){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Oe(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...ke(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),_e.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Oe(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:be(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function ke(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Ae(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var je=class extends pe{#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p=new Set;constructor(e,t){super(),this.options=t,this.#e=e,this.#o=null,this.bindMethods(),this.setOptions(t)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Ne(this.#t,this.options)?this.#m():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Pe(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Pe(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof D(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!F(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&Fe(this.#t,n,this.options,t)&&this.#m(),this.updateResult(),r&&(this.#t!==n||D(this.options.enabled,this.#t)!==D(t.enabled,this.#t)||D(this.options.staleTime,this.#t)!==D(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||D(this.options.enabled,this.#t)!==D(t.enabled,this.#t)||i!==this.#f)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return F(this.getCurrentResult(),n)||(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),Reflect.get(e,n))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t),r=()=>{},i,a=new Promise(e=>{i=e,r=this.#e.getQueryCache().subscribe(i=>{i.type===`updated`&&i.query.queryHash===n.queryHash&&n.state.data!==void 0&&(r(),e(this.createResult(n,t)))})});return Promise.race([n.fetch().then(()=>{let e=this.createResult(n,t);return i?.(e),e}).finally(()=>{r()}),a])}fetch(e){return this.#m({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#m(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#h(e){return!fe()&&D(this.options.enabled,this.#t)!==!1&&T(e)}#g(){this.#b();let e=D(this.options.staleTime,this.#t);if(this.#r.isStale||!this.#h(e))return;let t=E(this.#r.dataUpdatedAt,e)+1;this.#u=b.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return D(this.options.refetchInterval,this.#t)??!1}#v(e){this.#x(),this.#f=e,this.#f!==0&&this.#h(this.#f)&&(this.#d=b.setInterval(()=>{(this.options.refetchIntervalInBackground||me.isFocused())&&this.#m()},this.#f))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#u!==void 0&&(b.clearTimeout(this.#u),this.#u=void 0)}#x(){this.#d!==void 0&&(b.clearInterval(this.#d),this.#d=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&Ne(e,t),o=i&&Fe(e,n,t,r);(a||o)&&(l={...l,...Oe(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#l?.state.data,this.#l):t.placeholderData,e!==void 0&&(m=`success`,d=ie(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h){if(i&&d===a?.data&&t.select===this.#s)d=this.#c;else try{this.#s=t.select,d=t.select(d),d=ie(i?.data,d,t),this.#c=d,this.#o=null}catch(e){this.#o=e}}else d===void 0&&(this.#o=null);this.#o&&(f=this.#o,d=this.#c,p=Date.now(),m=`error`,u=!1);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0;return{status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:Ie(e,t),refetch:this.refetch,isEnabled:D(t.enabled,e)!==!1}}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#l=this.#t),F(t,e))return;this.#r=t;let n=(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#p.size)return!0;let r=new Set(n??this.#p);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})();_e.batch(()=>{n&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}};function Me(e,t){return D(t.enabled,e)!==!1&&e.state.data===void 0&&(e.state.status!==`error`||D(t.retryOnMount,e)!==!1)}function Ne(e,t){return Me(e,t)||e.state.data!==void 0&&Pe(e,t,t.refetchOnMount)}function Pe(e,t,n){if(D(t.enabled,e)!==!1&&D(t.staleTime,e)!==`static`){let r=D(n,e);return r===`always`||r!==!1&&Ie(e,t)}return!1}function Fe(e,t,n,r){return(e!==t||D(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&Ie(e,n)}function Ie(e,t){return D(t.enabled,e)!==!1&&e.isStaleByTime(D(t.staleTime,e))}var Le=class extends Ce{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Re(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},r=this.#r=Se({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),i=this.state.status===`pending`,a=!r.canStart();try{if(i)t();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let o=await r.start();return await this.#n.config.onSuccess?.(o,e,this.state.context,this,n),await this.options.onSuccess?.(o,e,this.state.context,n),await this.#n.config.onSettled?.(o,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(o,null,e,this.state.context,n),this.#i({type:`success`,data:o}),o}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#r===r&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),_e.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Re(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var ze=class extends pe{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),F(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&j(t.mutationKey)!==j(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#n&&(this.#n.addObserver(this),this.#i())}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??Re();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){_e.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};function Be(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var Ve=class extends pe{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,_e.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!F(e,n)});(o||s)&&(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&(Be(e,n).forEach(e=>{e.destroy()}),Be(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){let n=new Set;return t.map((r,i)=>{let a=e[i];return r.defaultedQueryOptions.notifyOnChangeProps?a:r.observer.trackResult(a,e=>{n.has(e)||(n.add(e),t.forEach(t=>{t.observer.trackProp(e)}))})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=P(this.#a,t(e))),this.#a}return e}#f(){return!this.#r?.combine||this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new je(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=this.#t.slice(),this.#t[n]=t,this.#h())}#h(){if(this.hasListeners()){let e=this.#f(),t=this.#a,n=e?t:this.#d(this.#u(this.#t,this.#l),this.#r?.combine);(e||t!==n)&&_e.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},He=m.createContext(!1),Ue=()=>m.useContext(He);He.Provider;function We(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Ge=m.createContext(We()),Ke=()=>m.useContext(Ge),qe=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?le(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||r)&&(t.isReset()||(e.retryOnMount=!1))},Je=e=>{m.useEffect(()=>{e.clearReset()},[e])},Ye=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||le(n,[e.error,r])),Xe=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Ze=(e,t)=>e?.suspense&&t.isPending,Qe=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function $e({queries:e,...t},n){let r=_(n),i=Ue(),a=Ke(),o=t.subscribed!==!1,s=m.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:o?`optimistic`:void 0,t}),[e,r,i,o]);s.forEach(e=>{Xe(e);let t=r.getQueryCache().get(e.queryHash);qe(e,a,t)}),Je(a);let[c]=m.useState(()=>new Ve(r,s,t)),[l,u,d]=c.getOptimisticResult(s,t.combine),f=!i&&o;m.useSyncExternalStore(m.useCallback(e=>f?c.subscribe(_e.batchCalls(e)):C,[c,f]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),m.useEffect(()=>{c.setQueries(s,t)},[s,t,c]);let p=l.some((e,t)=>Ze(s[t],e))?l.flatMap((e,t)=>{let n=s[t];return n&&Ze(n,e)?Qe(n,new je(r,n),a):[]}):[];if(p.length>0)throw Promise.all(p);let h=l.find((e,t)=>{let n=s[t];return n&&Ye({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(h)throw h.error;return u(d())}function et(e,t,n){let r=Ue(),i=Ke(),a=_(n),o=a.defaultQueryOptions(e),s=a.getQueryCache().get(o.queryHash),c=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:c?`optimistic`:void 0,Xe(o),qe(o,i,s),Je(i);let[l]=m.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&c;if(m.useSyncExternalStore(m.useCallback(e=>{let t=d?l.subscribe(_e.batchCalls(e)):C;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),m.useEffect(()=>{l.setOptions(o)},[o,l]),Ze(o,u))throw Qe(o,l,i);if(Ye({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return o.notifyOnChangeProps?u:l.trackResult(u)}function I(e,t){return et(e,je,t)}function L(e,t){let n=_(t),[r]=m.useState(()=>new ze(n,e));m.useEffect(()=>{r.setOptions(e)},[r,e]);let i=m.useSyncExternalStore(m.useCallback(e=>r.subscribe(_e.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=m.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(C)},[r]);if(i.error&&le(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var tt=(0,m.createContext)({});function nt(e){let t=(0,m.useRef)(null);return t.current===null&&(t.current=e()),t.current}var rt=typeof window<`u`?m.useLayoutEffect:m.useEffect,it=(0,m.createContext)(null);function at(e,t){e.indexOf(t)===-1&&e.push(t)}function ot(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}var st=(e,t,n)=>n>t?t:n<e?e:n,ct={},lt=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),ut=e=>typeof e==`object`&&!!e,dt=e=>/^0[^.\s]+$/u.test(e);function ft(e){let t;return()=>(t===void 0&&(t=e()),t)}var pt=e=>e,mt=(...e)=>e.reduce((e,t)=>n=>t(e(n))),ht=(e,t,n)=>{let r=t-e;return r?(n-e)/r:1},gt=class{constructor(){this.subscriptions=[]}add(e){return at(this.subscriptions,e),()=>this.remove(e)}remove(e){ot(this.subscriptions,e)}notify(e,t,n){let r=this.subscriptions.length;if(r){if(r===1)this.subscriptions[0](e,t,n);else for(let i=0;i<r;i++){let r=this.subscriptions[i];r&&r(e,t,n)}}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}},_t=e=>e*1e3,vt=e=>e/1e3,yt=(e,t)=>t?1e3/t*e:0,bt=(e,t,n)=>{let r=t-e;return((n-e)%r+r)%r+e},xt=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,St=1e-7,Ct=12;function wt(e,t,n,r,i){let a,o,s=0;do o=t+(n-t)/2,a=xt(o,r,i)-e,a>0?n=o:t=o;while(Math.abs(a)>St&&++s<Ct);return o}function Tt(e,t,n,r){if(e===t&&n===r)return pt;let i=t=>wt(t,0,1,e,n);return e=>e===0||e===1?e:xt(i(e),t,r)}var Et=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Dt=e=>t=>1-e(1-t),Ot=Tt(.33,1.53,.69,.99),kt=Dt(Ot),At=Et(kt),jt=e=>e>=1?1:(e*=2)<1?.5*kt(e):.5*(2-2**(-10*(e-1))),Mt=e=>1-Math.sin(Math.acos(e)),Nt=Dt(Mt),Pt=Et(Mt),Ft=Tt(.42,0,1,1),It=Tt(0,0,.58,1),Lt=Tt(.42,0,.58,1),Rt=e=>Array.isArray(e)&&typeof e[0]!=`number`;function zt(e,t){return Rt(e)?e[bt(0,e.length,t)]:e}var Bt=e=>Array.isArray(e)&&typeof e[0]==`number`,Vt={linear:pt,easeIn:Ft,easeInOut:Lt,easeOut:It,circIn:Mt,circInOut:Pt,circOut:Nt,backIn:kt,backInOut:At,backOut:Ot,anticipate:jt},Ht=e=>typeof e==`string`,Ut=e=>{if(Bt(e)){e.length;let[t,n,r,i]=e;return Tt(t,n,r,i)}return Ht(e)?(Vt[e],`${e}`,Vt[e]):e},Wt={delta:0,timestamp:0,isProcessing:!1},Gt;function Kt(){Gt=void 0}var qt={now:()=>(Gt===void 0&&qt.set(Wt.isProcessing||ct.useManualTiming?Wt.timestamp:performance.now()),Gt),set:e=>{Gt=e,queueMicrotask(Kt)}},Jt=e=>Math.round(e*1e5)/1e5,Yt=e=>t=>typeof t==`string`&&t.startsWith(e),Xt=Yt(`--`),Zt=Yt(`var(--`),Qt=e=>Zt(e)?$t.test(e.split(`/*`)[0].trim()):!1,$t=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function en(e){return typeof e==`string`&&e.split(`/*`)[0].includes(`var(--`)}var tn={test:e=>typeof e==`number`,parse:parseFloat,transform:e=>e},nn={...tn,transform:e=>st(0,1,e)},rn={...tn,default:1},an=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function on(e){return e==null}var sn=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,cn=(e,t)=>n=>!!(typeof n==`string`&&sn.test(n)&&n.startsWith(e)||t&&!on(n)&&Object.prototype.hasOwnProperty.call(n,t)),ln=(e,t,n)=>r=>{if(typeof r!=`string`)return r;let[i,a,o,s]=r.match(an);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s===void 0?1:parseFloat(s)}},un=e=>st(0,255,e),dn={...tn,transform:e=>Math.round(un(e))},fn={test:cn(`rgb`,`red`),parse:ln(`red`,`green`,`blue`),transform:({red:e,green:t,blue:n,alpha:r=1})=>`rgba(`+dn.transform(e)+`, `+dn.transform(t)+`, `+dn.transform(n)+`, `+Jt(nn.transform(r))+`)`};function pn(e){let t=``,n=``,r=``,i=``;return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}var mn={test:cn(`#`),parse:pn,transform:fn.transform},hn=e=>({test:t=>typeof t==`string`&&t.endsWith(e)&&t.split(` `).length===1,parse:parseFloat,transform:t=>`${t}${e}`}),gn=hn(`deg`),_n=hn(`%`),R=hn(`px`),vn=hn(`vh`),yn=hn(`vw`),bn={..._n,parse:e=>_n.parse(e)/100,transform:e=>_n.transform(e*100)},xn={test:cn(`hsl`,`hue`),parse:ln(`hue`,`saturation`,`lightness`),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>`hsla(`+Math.round(e)+`, `+_n.transform(Jt(t))+`, `+_n.transform(Jt(n))+`, `+Jt(nn.transform(r))+`)`},Sn={test:e=>fn.test(e)||mn.test(e)||xn.test(e),parse:e=>fn.test(e)?fn.parse(e):xn.test(e)?xn.parse(e):mn.parse(e),transform:e=>typeof e==`string`?e:e.hasOwnProperty(`red`)?fn.transform(e):xn.transform(e),getAnimatableNone:e=>{let t=Sn.parse(e);return t.alpha=0,Sn.transform(t)}},Cn=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,wn=new RegExp(an.source),Tn=new RegExp(Cn.source,`i`);function En(e){return isNaN(e)&&typeof e==`string`&&(wn.test(e)||Tn.test(e))}var Dn=`number`,On=`color`,kn=`var`,An=`var(`,jn="${}",Mn=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Nn(e){let t=e.toString();return wn.test(t)||Tn.test(t)}function Pn(e){let t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[],a=0;return{values:n,split:t.replace(Mn,e=>(Sn.test(e)?(r.color.push(a),i.push(On),n.push(Sn.parse(e))):e.startsWith(An)?(r.var.push(a),i.push(kn),n.push(e)):(r.number.push(a),i.push(Dn),n.push(parseFloat(e))),++a,jn)).split(jn),indexes:r,types:i}}function Fn(e){return Pn(e).values}function In({split:e,types:t}){let n=e.length;return r=>{let i=``;for(let a=0;a<n;a++)if(i+=e[a],r[a]!==void 0){let e=t[a];i+=e===Dn?Jt(r[a]):e===On?Sn.transform(r[a]):r[a]}return i}}function Ln(e){return In(Pn(e))}var Rn=e=>typeof e==`number`?0:Sn.test(e)?Sn.getAnimatableNone(e):e,zn=(e,t)=>typeof e==`number`?t?.trim().endsWith(`/`)?e:0:Rn(e);function Bn(e){let t=Pn(e);return In(t)(t.values.map((e,n)=>zn(e,t.split[n])))}var Vn={test:En,parse:Fn,createTransformer:Ln,getAnimatableNone:Bn};function Hn(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Un({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{let r=n<.5?n*(1+t):n+t-n*t,s=2*n-r;i=Hn(s,r,e+1/3),a=Hn(s,r,e),o=Hn(s,r,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}function Wn(e,t){return n=>n>0?t:e}var z=(e,t,n)=>e+(t-e)*n,Gn=(e,t,n)=>{let r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},Kn=[mn,fn,xn],qn=e=>Kn.find(t=>t.test(e));function Jn(e){let t=qn(e);if(!t)return`${e}`,!1;let n=t.parse(e);return t===xn&&(n=Un(n)),n}var Yn=(e,t)=>{let n=Jn(e),r=Jn(t);if(!n||!r)return Wn(e,t);let i={...n};return e=>(i.red=Gn(n.red,r.red,e),i.green=Gn(n.green,r.green,e),i.blue=Gn(n.blue,r.blue,e),i.alpha=z(n.alpha,r.alpha,e),fn.transform(i))},Xn=new Set([`none`,`hidden`]);function Zn(e,t){return Xn.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Qn(e,t){return n=>z(e,t,n)}function $n(e){return typeof e==`number`?Qn:typeof e==`string`?Qt(e)?Wn:Sn.test(e)?Yn:rr:Array.isArray(e)?er:typeof e==`object`?Sn.test(e)?Yn:tr:Wn}function er(e,t){let n=[...e],r=n.length,i=e.map((e,n)=>$n(e)(e,t[n]));return e=>{for(let t=0;t<r;t++)n[t]=i[t](e);return n}}function tr(e,t){let n={...e,...t},r={};for(let i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=$n(e[i])(e[i],t[i]));return e=>{for(let t in r)n[t]=r[t](e);return n}}function nr(e,t){let n=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){let a=t.types[i],o=e.indexes[a][r[a]],s=e.values[o]??0;n[i]=s,r[a]++}return n}var rr=(e,t)=>{let n=Vn.createTransformer(t),r=Pn(e),i=Pn(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Xn.has(e)&&!i.values.length||Xn.has(t)&&!r.values.length?Zn(e,t):mt(er(nr(r,i),i.values),n):(`${e}${t}`,Wn(e,t))},ir=/^(-?(?:\d+(?:\.\d*)?|\.\d+))([a-z%]*)$/iu;function ar(e,t){let n=ir.exec(e);if(!n)return;let r=ir.exec(t);if(!r||n[2]!==r[2])return;let i=n[2],a=parseFloat(n[1]),o=parseFloat(r[1]);return e=>Jt(z(a,o,e))+i}function or(e,t,n){if(typeof e==`number`&&typeof t==`number`&&typeof n==`number`)return z(e,t,n);if(typeof e==`string`&&typeof t==`string`){let n=ar(e,t);if(n)return n}return $n(e)(e,t)}var sr=[`setup`,`read`,`resolveKeyframes`,`preUpdate`,`update`,`preRender`,`render`,`postRender`];function cr(e){let t=new Set,n=new Set,r=!1,i=!1,a=new Set,o={delta:0,timestamp:0,isProcessing:!1};function s(t){a.has(t)&&(n.add(t),e()),t(o)}let c={schedule:(e,i=!1,o=!1)=>{let s=o&&r?t:n;return i&&a.add(e),s.add(e),e},cancel:e=>{n.delete(e),a.delete(e)},process:e=>{if(o=e,r){i=!0;return}r=!0;let a=t;t=n,n=a,t.forEach(s),t.clear(),r=!1,i&&(i=!1,c.process(e))}};return c}var lr=40;function ur(e,t,n={delta:0,timestamp:0,isProcessing:!1}){let r=!1,i=!0,a=()=>r=!0,o=sr.reduce((e,t)=>(e[t]=cr(a),e),{}),{setup:s,read:c,resolveKeyframes:l,preUpdate:u,update:d,preRender:f,render:p,postRender:m}=o,h=()=>{let a=ct.useManualTiming,o=a?n.timestamp:performance.now();r=!1,a||(n.delta=i?1e3/60:Math.max(Math.min(o-n.timestamp,lr),1)),n.timestamp=o,n.isProcessing=!0,s.process(n),c.process(n),l.process(n),u.process(n),d.process(n),f.process(n),p.process(n),m.process(n),n.isProcessing=!1,r&&t&&(i=!1,e(h))},g=()=>{r=!0,i=!0,n.isProcessing||e(h)};return{schedule:sr.reduce((e,t)=>{let n=o[t];return e[t]=(e,t=!1,i=!1)=>(r||g(),n.schedule(e,t,i)),e},{}),cancel:e=>{for(let t=0;t<sr.length;t++)o[sr[t]].cancel(e)},state:n,steps:o}}var{schedule:B,cancel:dr,steps:fr}=ur(typeof requestAnimationFrame<`u`?requestAnimationFrame:pt,!0,Wt),pr=e=>{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>B.update(t,e),stop:()=>dr(t),now:()=>Wt.isProcessing?Wt.timestamp:qt.now()}},mr=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;t<i;t++)r+=Math.round(e(t/(i-1))*1e4)/1e4+`, `;return`linear(${r.substring(0,r.length-2)})`},hr=2e4;function gr(e,t=50,n=hr,r){let i=0,a=e.next(i);for(r?.push(a.value);!a.done&&i<n;)i+=t,a=e.next(i),r?.push(a.value);return i>=n?1/0:i}function _r(e,t=100,n){let r=n({...e,keyframes:[0,t]}),i=Math.min(gr(r),hr);return{type:`keyframes`,ease:e=>r.next(i*e).value/t,duration:vt(i)}}var vr={stiffness:100,damping:10,mass:1,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05},yr=e=>e<0?1/Math.max(1+e,vr.minDamping):Math.max(1-e,vr.minDamping);function br(e,t){if(!(e>1))return 1;let n=Math.sqrt(e*e-1),r=e-n,i=e+n,a=2*n*Math.exp(-t)*(1+t);return Cr(e=>i*Math.exp(-r*e)-r*Math.exp(-i*e)-a,e=>Math.exp(-i*e)-Math.exp(-r*e),t)/t}function xr(e,t){return e*Math.sqrt(1-t*t)}var Sr=12;function Cr(e,t,n){let r=n;for(let n=1;n<Sr;n++)r-=e(r)/t(r);return r}var wr=.001;function Tr({duration:e=vr.duration,bounce:t=vr.bounce}){let n,r;vr.maxDuration;let i=yr(t);e=st(vr.minDuration,vr.maxDuration,vt(e)),i<1?(n=t=>{let n=t*i,r=n*e,a=xr(t,i),o=Math.exp(-r);return wr-n/a*o},r=t=>{let r=t*i*e,a=i*i*t*t*e,o=Math.exp(-r),s=xr(t*t,i);return(-n(t)+wr>0?-1:1)*-a*o/s}):(n=t=>-.001+Math.exp(-t*e)*(t*e+1),r=t=>Math.exp(-t*e)*(-t*(e*e)));let a=5/e,o=Cr(n,r,a),s=o*br(i,o*e),c=s*s;return{stiffness:c,damping:i*2*Math.sqrt(c),duration:_t(e)}}var Er=(e,t)=>(t?e>=0:e>0)&&e<1/0;function Dr(e,t){if(Er(e,t))return e}function Or(e){let t=Dr(e.stiffness),n=Dr(e.damping,!0),r=Dr(e.mass),i={...e,stiffness:t??vr.stiffness,damping:n??vr.damping,mass:r??vr.mass,isResolvedFromDuration:!1,isTimeDefined:(t??n??r)===void 0&&(e.duration!==void 0||e.bounce!==void 0)};if(i.isTimeDefined){if(e.visualDuration){let t=yr(e.bounce||0),n=2*Math.PI/(e.visualDuration*1.2)*br(t,2*Math.PI/1.2);i.stiffness=n*n,i.damping=2*t*Math.sqrt(i.stiffness)}else Object.assign(i,Tr(i)),i.isResolvedFromDuration=!0;(!Er(i.stiffness)||!Er(i.damping,!0))&&(i.stiffness=vr.stiffness,i.damping=vr.damping)}return i}function kr(e=vr.visualDuration,t=vr.bounce){let n=typeof e==`object`?e:{visualDuration:e,keyframes:[0,1],bounce:t},r=n.keyframes[0],i=n.keyframes[n.keyframes.length-1],a={done:!1,value:r},{stiffness:o,damping:s,mass:c,duration:l,isResolvedFromDuration:u,isTimeDefined:d}=Or({...n}),f=e=>d?0:-vt(e),p=s/(2*Math.sqrt(o*c)),m=vt(Math.sqrt(o/c)),h=p*m,g={target:i,delta:i-r,velocity:f(n.velocity||0)||0,restSpeed:0,restDelta:0},_=()=>{let e=Math.abs(g.delta)<5;g.restSpeed=n.restSpeed||(e?vr.restSpeed.granular:vr.restSpeed.default),g.restDelta=n.restDelta||(e?vr.restDelta.granular:vr.restDelta.default)};_();let v,y,b;if(p<1){let e=xr(m,p),t={A:0,sinC:0,cosC:0,t:-1,env:0,sin:0,cos:0};b=()=>{t.A=(g.velocity+h*g.delta)/e,t.sinC=h*t.A+g.delta*e,t.cosC=h*g.delta-t.A*e};let n=n=>{n!==t.t&&(t.t=n,t.env=Math.exp(-h*n),t.sin=Math.sin(e*n),t.cos=Math.cos(e*n))};v=e=>(n(e),g.target-t.env*(t.A*t.sin+g.delta*t.cos)),y=e=>(n(e),t.env*(t.sinC*t.sin+t.cosC*t.cos))}else if(p===1){v=e=>g.target-Math.exp(-m*e)*(g.delta+(g.velocity+m*g.delta)*e);let e={C:0};b=()=>{e.C=g.velocity+m*g.delta},y=t=>Math.exp(-m*t)*(m*e.C*t-g.velocity)}else{let e=m*Math.sqrt(p*p-1),t=h-e,n=h+e,r=d?1/0:300/e,i=(e,t)=>Math.exp(t>r?-e*r-h*(t-r):-e*t),a={S:0,F:0};b=()=>{let t=(g.velocity+h*g.delta)/e;a.S=(g.delta+t)/2,a.F=(g.delta-t)/2},v=e=>g.target-a.S*i(t,e)-a.F*i(n,e),y=e=>t*a.S*i(t,e)+n*a.F*i(n,e)}b();let x=u&&l||null,S={calculatedDuration:x,retarget:(e,t)=>{g.target=e[e.length-1],g.delta=g.target-e[0],g.velocity=f(t),n.restSpeed&&n.restDelta||_(),S.calculatedDuration=x,a.done=!1,b()},velocity:e=>_t(y(e)),next:e=>{let t=v(e);if(u)a.done=e>=l;else{let n=_t(y(e));a.done=Math.abs(n)<=g.restSpeed&&Math.abs(g.target-t)<=g.restDelta}return a.value=a.done?g.target:t,a},toString:()=>{let e=Math.min(gr(S),hr),t=mr(t=>S.next(e*t).value,e,30);return e+`ms `+t},toTransition:()=>{}};return S}kr.applyToOptions=e=>{let t=_r(e,100,kr);return e.ease=t.ease,e.duration=_t(t.duration),e.type=`keyframes`,e};function Ar({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:o,min:s,max:c,restDelta:l=.5,restSpeed:u}){let d=e[0],f={done:!1,value:d},p=e=>e<s||e>c,m=e=>s===void 0?c:c===void 0||Math.abs(s-e)<Math.abs(c-e)?s:c,h=n*t,g=d+h,_=o===void 0?g:o(g);_!==g&&(h=_-d);let v=e=>-h*Math.exp(-e/r),y=e=>{let t=v(e);f.done=Math.abs(t)<=l,f.value=f.done?_:_+t},b,x,S=e=>{p(f.value)&&(b=e,x=kr({keyframes:[f.value,m(f.value)],velocity:-v(e)/r*1e3,damping:i,stiffness:a,restDelta:l,restSpeed:u}))};return S(0),{calculatedDuration:null,next:e=>{let t=!1;return!x&&b===void 0&&(t=!0,y(e),S(e)),b!==void 0&&e>=b?x.next(e-b):(!t&&y(e),f)}}}function jr(e,t,n){let r=[],i=n||ct.mix||or,a=e.length-1;for(let n=0;n<a;n++){let a=i(e[n],e[n+1]);t&&(a=mt(Array.isArray(t)?t[n]||pt:t,a)),r.push(a)}return r}function Mr(e,t,{clamp:n=!0,ease:r,mixer:i}={}){let a=e.length;if(t.length,a===1)return()=>t[0];if(a===2&&t[0]===t[1])return()=>t[1];let o=e[0]===e[1];e[0]>e[a-1]&&(e=[...e].reverse(),t=[...t].reverse());let s=jr(t,r,i),c=s.length,l=n=>{if(o&&n<e[0])return t[0];let r=0;if(c>1)for(;r<e.length-2&&!(n<e[r+1]);r++);let i=ht(e[r],e[r+1],n);return s[r](i)};return n?t=>l(st(e[0],e[a-1],t)):l}function Nr(e,t){let n=e[e.length-1];for(let r=1;r<=t;r++){let i=ht(0,t,r);e.push(z(n,1,i))}}function Pr(e){let t=[0];return Nr(t,e.length-1),t}function Fr(e,t){return e.map(e=>e*t)}function Ir(e,t){return e.map(()=>t||Lt).splice(0,e.length-1)}function Lr({duration:e=300,keyframes:t,times:n,ease:r=`easeInOut`}){let i=Rt(r)?r.map(Ut):Ut(r)||Lt,a={done:!1,value:t[0]};if(t.length===2&&!Array.isArray(i)&&(!n||n.length!==2||n[0]===0&&n[1]===1)){let[n,r]=t,o=n===r?void 0:(ct.mix||or)(n,r);return{calculatedDuration:e,next:t=>(a.value=o?o(i(e>0?st(0,1,t/e):1)):r,a.done=t>=e,a)}}let o=Mr(Fr(n&&n.length===t.length?n:Pr(t),e),t,{ease:Array.isArray(i)?i:Ir(t,i)});return{calculatedDuration:e,next:t=>(a.value=o(t),a.done=t>=e,a)}}var Rr=5;function zr(e,t,n){let r=Math.max(t-Rr,0);return yt(n-e(r),t-r)}function Br(e,t,n=0){return t<=0?n:e.velocity?e.velocity(t):zr(t=>e.next(t).value,t,e.next(t).value)}var Vr=e=>e!==null;function Hr(e,{repeat:t,repeatType:n=`loop`},r,i=1){let a=e.filter(Vr),o=i<0||t&&n!==`loop`&&t%2==1?0:a.length-1;return!o||r===void 0?a[o]:r}var Ur={decay:Ar,inertia:Ar,tween:Lr,keyframes:Lr,spring:kr};function Wr(e){typeof e.type==`string`&&(e.type=Ur[e.type])}function Gr(e,t){return{kind:e,animation:t,timestamp:qt.now(),frameTimestamp:Wt.timestamp,frameIsProcessing:Wt.isProcessing}}function Kr(e,t,n){let r=globalThis.__MOTION_INSPECT__;if(r)try{r({...Gr(`animation-start`,e),options:n?{...t,...n}:t})}catch{}}function qr(e,t){let n=globalThis.__MOTION_INSPECT__;if(n)try{n({...Gr(`layout-animation-start`,e),node:t})}catch{}}var Jr=class{constructor(){this.isResolved=!1}get finished(){return this._finished||=this.isResolved?Promise.resolve():new Promise(e=>{this._resolve=e}),this._finished}updateFinished(){this._finished=this._resolve=void 0,this.isResolved=!1}notifyFinished(){this.isResolved=!0,this._resolve?.()}then(e,t){return this.finished.then(e,t)}},Yr=e=>e/100,Xr=class extends Jr{constructor(e){super(),this.state=`idle`,this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==qt.now()&&this.tick(qt.now()),this.isStopped=!0,this.state!==`idle`&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause(),Kr(this,this.options)}initAnimation(){let{options:e}=this;Wr(e);let{type:t=Lr,repeat:n=0,repeatDelay:r=0,repeatType:i,velocity:a=0}=e,{keyframes:o}=e,s=t||Lr;s!==Lr&&typeof o[0]!=`number`&&(this.mixKeyframes=mt(Yr,or(o[0],o[1])),o=[0,100]);let c=s(o===e.keyframes?e:{...e,keyframes:o});i===`mirror`&&(this.mirroredGenerator=s({...e,keyframes:[...o].reverse(),velocity:-a})),c.calculatedDuration===null&&(c.calculatedDuration=gr(c));let{calculatedDuration:l}=c;this.calculatedDuration=l,this.resolvedDuration=l+r,this.totalDuration=this.resolvedDuration*(n+1)-r,this.generator=c}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;this.currentTime=this.holdTime===null?t:this.holdTime}tick(e,t=!1){let{generator:n,totalDuration:r,mixKeyframes:i,mirroredGenerator:a,resolvedDuration:o,calculatedDuration:s}=this;if(this.startTime===null)return n.next(0);let{delay:c=0,keyframes:l,repeat:u,repeatType:d,repeatDelay:f,type:p,onUpdate:m,finalKeyframe:h}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let g=this.currentTime-c*(this.playbackSpeed>=0?1:-1),_=this.playbackSpeed>=0?g<0:g>r;this.currentTime=Math.max(g,0),this.state===`finished`&&this.holdTime===null&&(this.currentTime=r);let v=this.currentTime,y=n;if(u){let e=Math.min(this.currentTime,r)/o,t=Math.floor(e),n=e%1;!n&&e>=1&&(n=1),n===1&&t--,t=Math.min(t,u+1),t%2&&(d===`reverse`?(n=1-n,f&&(n-=f/o)):d===`mirror`&&(y=a)),v=st(0,1,n)*o}let b;_?(this.delayState.value=l[0],b=this.delayState):b=y.next(v),i&&!_&&(b.value=i(b.value));let{done:x}=b;!_&&s!==null&&(x=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);let S=this.holdTime===null&&(this.state===`finished`||this.state===`running`&&x);return S&&p!==Ar&&(b.value=Hr(l,this.options,h,this.speed)),m&&m(b.value),S&&this.finish(),b}then(e,t){return this.finished.then(e,t)}get duration(){return vt(this.calculatedDuration)}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+vt(e)}get time(){return vt(this.currentTime)}set time(e){e=_t(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state=`paused`,this.holdTime=e,this.tick(e))}getGeneratorVelocity(){return Br(this.generator,this.currentTime,this.options.velocity)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;t&&this.driver&&this.updateTime(qt.now()),this.playbackSpeed=e,t&&this.driver&&(this.time=vt(this.currentTime))}play(){if(this.isStopped)return;let{driver:e=pr,startTime:t}=this.options;this.driver||=e(e=>this.tick(e)),this.options.onPlay?.();let n=this.driver.now();this.state===`finished`?(this.updateFinished(),this.startTime=n):this.holdTime===null?this.startTime||=t??n:this.startTime=n-this.holdTime,this.state===`finished`&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state=`running`,this.driver.start()}pause(){this.state=`paused`,this.updateTime(qt.now()),this.holdTime=this.currentTime}complete(){this.state!==`running`&&this.play(),this.state=`finished`,this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state=`finished`,this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state=`idle`,this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&=(this.driver.stop(),void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type=`keyframes`,this.options.ease=`linear`,this.initAnimation()),this.driver?.stop(),e.observe(this)}},Zr=new Set([`brightness`,`contrast`,`saturate`,`opacity`]);function Qr(e){let[t,n]=e.slice(0,-1).split(`(`);if(t===`drop-shadow`)return e;let[r]=n.match(an)||[];if(!r)return e;let i=n.replace(r,``),a=+!!Zr.has(t);return r!==n&&(a*=100),t+`(`+a+i+`)`}var $r=/\b([a-z-]*)\(.*?\)/gu,ei={...Vn,getAnimatableNone:e=>{let t=e.match($r);return t?t.map(Qr).join(` `):e}},ti={...Vn,getAnimatableNone:e=>{let t=Vn.parse(e);return Vn.createTransformer(e)(t.map(e=>typeof e==`number`?0:typeof e==`object`?{...e,alpha:1}:e))}},ni={...tn,transform:Math.round},ri={rotate:gn,pathRotation:gn,rotateX:gn,rotateY:gn,rotateZ:gn,scale:rn,scaleX:rn,scaleY:rn,scaleZ:rn,skew:gn,skewX:gn,skewY:gn,distance:R,translateX:R,translateY:R,translateZ:R,x:R,y:R,z:R,perspective:R,transformPerspective:R,opacity:nn,originX:bn,originY:bn,originZ:R},ii={borderWidth:R,borderTopWidth:R,borderRightWidth:R,borderBottomWidth:R,borderLeftWidth:R,borderRadius:R,borderTopLeftRadius:R,borderTopRightRadius:R,borderBottomRightRadius:R,borderBottomLeftRadius:R,width:R,maxWidth:R,height:R,maxHeight:R,top:R,right:R,bottom:R,left:R,inset:R,insetBlock:R,insetBlockStart:R,insetBlockEnd:R,insetInline:R,insetInlineStart:R,insetInlineEnd:R,padding:R,paddingTop:R,paddingRight:R,paddingBottom:R,paddingLeft:R,paddingBlock:R,paddingBlockStart:R,paddingBlockEnd:R,paddingInline:R,paddingInlineStart:R,paddingInlineEnd:R,margin:R,marginTop:R,marginRight:R,marginBottom:R,marginLeft:R,marginBlock:R,marginBlockStart:R,marginBlockEnd:R,marginInline:R,marginInlineStart:R,marginInlineEnd:R,fontSize:R,backgroundPositionX:R,backgroundPositionY:R,...ri,zIndex:ni,fillOpacity:nn,strokeOpacity:nn,numOctaves:ni},ai={...ii,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:ei,WebkitFilter:ei,mask:ti,WebkitMask:ti},oi=e=>ai[e],si=new Set([ei,ti]);function ci(e,t){let n=oi(e);return si.has(n)||(n=Vn),n.getAnimatableNone?n.getAnimatableNone(t):void 0}function li(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}var ui=e=>e*180/Math.PI,di=e=>pi(ui(Math.atan2(e[1],e[0]))),fi={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:di,rotateZ:di,skewX:e=>ui(Math.atan(e[1])),skewY:e=>ui(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},pi=e=>(e%=360,e<0&&(e+=360),e),mi=di,hi=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),gi=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),_i={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:hi,scaleY:gi,scale:e=>(hi(e)+gi(e))/2,rotateX:e=>pi(ui(Math.atan2(e[6],e[5]))),rotateY:e=>pi(ui(Math.atan2(-e[2],e[0]))),rotateZ:mi,rotate:mi,skewX:e=>ui(Math.atan(e[4])),skewY:e=>ui(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function vi(e){return+!!e.includes(`scale`)}function yi(e,t){if(!e||e===`none`)return vi(t);let n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u),r,i;if(n)r=_i,i=n;else{let t=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=fi,i=t}if(!i)return vi(t);let a=r[t],o=i[1].split(`,`).map(xi);return typeof a==`function`?a(o):o[a]}var bi=(e,t)=>{let{transform:n=`none`}=getComputedStyle(e);return yi(n,t)};function xi(e){return parseFloat(e.trim())}var Si=[`transformPerspective`,`x`,`y`,`z`,`translateX`,`translateY`,`translateZ`,`scale`,`scaleX`,`scaleY`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`skew`,`skewX`,`skewY`],Ci=new Set([...Si,`pathRotation`]),wi=e=>e===tn||e===R,Ti=new Set([`x`,`y`,`z`]),Ei=Si.filter(e=>!Ti.has(e));function Di(e){let t=[];return Ei.forEach(n=>{let r=e.getValue(n);if(r!==void 0){let e=r.get(),i=+!!n.startsWith(`scale`);if(e===i)return;t.push([n,e]),r.set(i)}}),t}var Oi=new Set([`bottom`,`right`]);function ki(e,t,n,r,i,a){let o=parseFloat(e);if(!isNaN(o))return o;let{min:s,max:c}=t()[n],l=c-s;return a===`border-box`?l:l-parseFloat(r)-parseFloat(i)}var Ai={width:({width:e,paddingLeft:t=`0`,paddingRight:n=`0`,boxSizing:r},i)=>ki(e,i,`x`,t,n,r),height:({height:e,paddingTop:t=`0`,paddingBottom:n=`0`,boxSizing:r},i)=>ki(e,i,`y`,t,n,r),top:({top:e})=>parseFloat(e),left:({left:e})=>parseFloat(e),bottom:({top:e},t)=>{let{y:n}=t();return parseFloat(e)+(n.max-n.min)},right:({left:e},t)=>{let{x:n}=t();return parseFloat(e)+(n.max-n.min)},x:({transform:e})=>yi(e,`x`),y:({transform:e})=>yi(e,`y`)};Ai.translateX=Ai.x,Ai.translateY=Ai.y;var ji=new Set,Mi=!1,Ni=!1,Pi=!1;function Fi(){if(Ni){let e=[],t=new Set,n=new Set;ji.forEach(r=>{r.needsMeasurement&&(e.push(r),t.add(r.element),Oi.has(r.name)&&n.add(r.element))});let r=new Map;n.forEach(e=>{let t=Di(e);t.length&&(r.set(e,t),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=r.get(e);t&&t.forEach(([t,n])=>{e.getValue(t)?.set(n)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{e.suspendedScrollY!==void 0&&window.scrollTo(0,e.suspendedScrollY)})}Ni=!1,Mi=!1,ji.forEach(e=>e.complete(Pi)),ji.clear()}function Ii(){ji.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Ni=!0)})}function Li(){Pi=!0,Ii(),Fi(),Pi=!1}function Ri(e,t,n){if(typeof e==`string`){if(lt(e)||dt(e))return parseFloat(e);if(!Vn.test(e)&&Vn.test(n))return ci(t,n)}return e??void 0}var zi=class{constructor(e,t,n,r,i,a=!1){this.state=`pending`,this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=n,this.motionValue=r,this.element=i,this.isAsync=a}scheduleResolve(){this.state=`scheduled`,this.isAsync?(ji.add(this),Mi||(Mi=!0,B.read(Ii),B.resolveKeyframes(Fi))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:n,motionValue:r}=this;if(e[0]===null){let i=r?.get(),a=e[e.length-1];if(i!==void 0)e[0]=i;else if(n&&t){let r=Ri(n.readValue(t,a),t,a);r!==void 0&&(e[0]=r)}e[0]===void 0&&(e[0]=a),r&&i===void 0&&r.set(e[0])}li(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state=`complete`,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),ji.delete(this)}cancel(){this.state===`scheduled`&&(ji.delete(this),this.state=`pending`)}resume(){this.state===`pending`&&this.scheduleResolve()}},Bi=e=>e.startsWith(`--`);function Vi(e,t,n){Bi(t)?e.style.setProperty(t,n):e.style[t]=n}var Hi={};function Ui(e,t){let n=ft(e);return()=>Hi[t]??n()}var Wi=Ui(()=>window.ScrollTimeline!==void 0,`scrollTimeline`),Gi=Ui(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`),Ki=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,qi={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:Ki([0,.65,.55,1]),circOut:Ki([.55,0,1,.45]),backIn:Ki([.31,.01,.66,-.59]),backOut:Ki([.33,1.53,.69,.99])};function Ji(e,t){if(e)return typeof e==`function`?Gi()?mr(e,t):`ease-out`:Bt(e)?Ki(e):Array.isArray(e)?e.map(e=>Ji(e,t)||qi.easeOut):qi[e]}function Yi(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeOut`,times:c}={},l=void 0){let u={[t]:n};c&&(u.offset=c);let d=Ji(s,i);Array.isArray(d)&&(u.easing=d);let f={delay:r,duration:i,easing:Array.isArray(d)?`linear`:d,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`};return l&&(f.pseudoElement=l),e.animate(u,f)}function Xi(e){return typeof e==`function`&&`applyToOptions`in e}function Zi({type:e,...t}){return Xi(e)&&Gi()?e.applyToOptions(t):(t.duration??=300,t.ease??=`easeOut`,t)}var Qi=class extends Jr{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:r,pseudoElement:i,allowFlatten:a=!1,finalKeyframe:o,onComplete:s}=e;this.isPseudoElement=!!i,this.allowFlatten=a,this.options=e,e.type;let c=Zi(e);this.animation=Yi(t,n,r,c,i),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){let e=Hr(r,this.options,o,this.speed);this.updateMotionValue&&this.updateMotionValue(e),Vi(t,n,e),this.animation.cancel()}s?.(),this.notifyFinished()},Kr(this,e,c)}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state===`finished`&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e!==`idle`&&e!==`finished`&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return vt(Number(e))}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+vt(e)}get time(){return vt(Number(this.animation.currentTime)||0)}set time(e){let t=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=_t(e),t&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime===null?this.animation.playState:`finished`}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,onAttach:t,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:`linear`}),this.animation.onfinish=null,e&&Wi()?(this.animation.timeline=e,t?.(this.animation),pt):n(this)}},$i={anticipate:jt,backInOut:At,circInOut:Pt};function ea(e){return e in $i}function ta(e){typeof e.ease==`string`&&ea(e.ease)&&(e.ease=$i[e.ease])}var na=10,ra=class extends Qi{constructor(e){ta(e),Wr(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){let{motionValue:t,onUpdate:n,onComplete:r,element:i,...a}=this.options;if(!t)return;if(e!==void 0){t.set(e);return}let o=new Xr({...a,autoplay:!1}),s=Math.max(na,qt.now()-this.startTime),c=st(0,na,s-na),l=o.sample(s).value,{name:u}=this.options;i&&u&&Vi(i,u,l),t.setWithVelocity(o.sample(Math.max(0,s-c)).value,l,c),o.stop()}},ia=(e,t)=>t!==`zIndex`&&!!(typeof e==`number`||Array.isArray(e)||typeof e==`string`&&(Vn.test(e)||e===`0`)&&!e.startsWith(`url(`));function aa(e){let t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function oa(e,t,n,r){let i=e[0];if(i===null)return!1;if(t===`display`||t===`visibility`)return!0;let a=e[e.length-1],o=ia(i,t),s=ia(a,t);return!o||!s?(o!==s&&`${t}${i}${a}${o?a:i}`,!1):aa(e)||(n===`spring`||Xi(n))&&r}function sa(e){e.duration=0,e.type=`keyframes`}var ca=new Set([`opacity`,`clipPath`,`filter`,`transform`,`backgroundColor`]),la=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function ua(e){for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&la.test(e[t]))return!0;return!1}var da=new Set([`color`,`backgroundColor`,`outlineColor`,`fill`,`stroke`,`borderColor`,`borderTopColor`,`borderRightColor`,`borderBottomColor`,`borderLeftColor`]),fa=ft(()=>Object.hasOwnProperty.call(Element.prototype,`animate`));function pa(e){let{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:a,type:o,keyframes:s}=e;if(!n||!(ca.has(n)||da.has(n)))return!1;let c=t?.owner?.current;if(!(c instanceof HTMLElement)&&!(c instanceof SVGElement))return!1;let{onUpdate:l,transformTemplate:u}=t.owner.getProps();return fa()&&(ca.has(n)||da.has(n)&&ua(s))&&(n!==`transform`||!u)&&!l&&!r&&i!==`mirror`&&a!==0&&o!==`inertia`}var ma=40,ha=class extends Jr{constructor(e){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=qt.now();let{keyframes:t,name:n,motionValue:r,element:i}=e,a=e;a.autoplay??=!0,a.delay??=0,a.type??=`keyframes`,a.repeat??=0,a.repeatDelay??=0,a.repeatType??=`loop`;let o=i?.KeyframeResolver||zi;this.keyframeResolver=new o(t,(e,t,n)=>this.onKeyframesResolved(e,t,a,!n),n,r,i),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,n,r){this.keyframeResolver=void 0;let{name:i,type:a,velocity:o,delay:s,isHandoff:c,onUpdate:l}=n;this.resolvedAt=qt.now();let u=!0;oa(e,i,a,o)||(u=!1,(ct.instantAnimations||!s)&&l?.(Hr(e,n,t)),e[0]=e[e.length-1],sa(n),n.repeat=0);let d=r?this.resolvedAt&&this.resolvedAt-this.createdAt>ma?this.resolvedAt:this.createdAt:void 0,{onComplete:f}=n;n.startTime??=d,n.finalKeyframe=t,n.keyframes=e,n.onComplete=()=>{f?.(),this.notifyFinished()};let p=u&&!c&&pa(n),m;if(p){n.element=n.motionValue?.owner?.current;try{m=new ra(n)}catch{m=new Xr(n)}}else m=new Xr(n);this.pendingTimeline&&=(this.stopTimeline=m.attachTimeline(this.pendingTimeline),void 0),this._animation=m}get finished(){return this._animation?this._animation.finished:super.finished}then(e,t){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Li()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}},ga=class{constructor(e){this.stop=()=>this.runAll(`stop`),this.animations=e.filter(Boolean)}get finished(){return Promise.all(this.animations.map(e=>e.finished))}getAll(e){return this.animations[0][e]}setAll(e,t){for(let n=0;n<this.animations.length;n++)this.animations[n][e]=t}attachTimeline(e){let t=this.animations.map(t=>t.attachTimeline(e));return()=>{t.forEach((e,t)=>{e&&e(),this.animations[t].stop()})}}get time(){return this.getAll(`time`)}set time(e){this.setAll(`time`,e)}get speed(){return this.getAll(`speed`)}set speed(e){this.setAll(`speed`,e)}get state(){return this.getAll(`state`)}get startTime(){return this.getAll(`startTime`)}get duration(){return _a(this.animations,`duration`)}get iterationDuration(){return _a(this.animations,`iterationDuration`)}runAll(e){this.animations.forEach(t=>t[e]())}play(){this.runAll(`play`)}pause(){this.runAll(`pause`)}cancel(){this.runAll(`cancel`)}complete(){this.runAll(`complete`)}};function _a(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r][t];i!==null&&i>n&&(n=i)}return n}var va=class extends ga{then(e,t){return this.finished.finally(e).then(()=>{})}};function ya(e,t,n,r=0,i=1){let a=Array.from(e).sort((e,t)=>e.sortNodePosition(t)).indexOf(t),o=e.size,s=(o-1)*r;return typeof n==`function`?n(a,o):i===1?a*r:s-a*r}var ba=30,xa=e=>!isNaN(parseFloat(e)),Sa={current:void 0},Ca=class{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=qt.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.notifyChange(),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=qt.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=xa(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on(`change`,e)}on(e,t){var n;return e===`change`?this.onChangeSubscribe(t):((n=this.events)[e]||(n[e]=new gt)).add(t)}onChangeSubscribe(e){let{events:t}=this;return!t.change&&!this.changeSubscriber?this.changeSubscriber=e:(t.change||(t.change=new gt,t.change.add(this.changeSubscriber),this.changeSubscriber=void 0),t.change.add(e)),()=>{this.changeSubscriber===e?this.changeSubscriber=void 0:t.change?.remove(e),this.stopIfUnobserved()}}stopIfUnobserved(){B.read(()=>{!this.changeSubscriber&&!this.events.change?.getSize()&&this.stop()})}clearListeners(){this.changeSubscriber=void 0;for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,n){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.notifyChange()}notifyChange(){let{current:e,changeSubscriber:t}=this;t?t(e):this.events.change?.notify(e)}addDependent(e){this.dependents||=new Set,this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return Sa.current&&Sa.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let e=qt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>ba)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,ba);return yt(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0;let n=!1,r;r=e(()=>{n=!0,this.events.animationComplete?.notify(),this.animation===r&&this.clearAnimation(),t()}),n||(this.animation=r),this.events.animationStart?.notify()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){this.animation=void 0}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}};function wa(e,t){return new Ca(e,t)}function Ta(e,t){if(e?.inherit&&t){let{inherit:n,...r}=e;return{...t,...r}}return e}function Ea(e,t){let n=e?.[t]??e?.default??e;return n===e?n:Ta(n,e)}var Da={type:`spring`,stiffness:500,damping:25,restSpeed:10},Oa=e=>({type:`spring`,stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),ka={type:`keyframes`,duration:.8},Aa={type:`keyframes`,ease:[.25,.1,.35,1],duration:.3},ja=(e,{keyframes:t})=>t.length>2?ka:Ci.has(e)?e.startsWith(`scale`)?Oa(t[1]):Da:Aa,Ma=new Set([`when`,`delay`,`delayChildren`,`staggerChildren`,`staggerDirection`,`repeat`,`repeatType`,`repeatDelay`,`from`,`elapsed`]);function Na(e){for(let t in e)if(!Ma.has(t))return!0;return!1}var Pa=(e,t,n,r={},i,a)=>o=>{let s=Ea(r,e)||{},c=s.delay||r.delay||0,{elapsed:l=0}=r;l-=_t(c);let u={keyframes:Array.isArray(n)?n:[null,n],ease:`easeOut`,velocity:t.getVelocity(),...s,delay:-l,onUpdate:e=>{t.set(e),s.onUpdate&&s.onUpdate(e)},onComplete:()=>{o(),s.onComplete&&s.onComplete()},name:e,motionValue:t,element:a?void 0:i};Na(s)||Object.assign(u,ja(e,u)),u.duration&&=_t(u.duration),u.repeatDelay&&=_t(u.repeatDelay),u.from!==void 0&&(u.keyframes[0]=u.from);let d=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(sa(u),u.delay===0&&(d=!0)),(ct.instantAnimations||ct.skipAnimations||i?.shouldSkipAnimations||s.skipAnimations)&&(d=!0,sa(u),u.delay=0),u.allowFlatten=!s.type&&!s.ease,d&&!a&&t.get()!==void 0){let e=Hr(u.keyframes,s);if(e!==void 0){B.update(()=>{u.onUpdate(e),u.onComplete()});return}}return s.isSync?new Xr(u):new ha(u)},Fa=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Ia(e){let t=Fa.exec(e);if(!t)return[,];let[,n,r,i]=t;return[`--${n??r}`,i]}function La(e,t,n=1){`${e}`;let[r,i]=Ia(e);if(!r)return;let a=window.getComputedStyle(t).getPropertyValue(r);if(a){let e=a.trim();return lt(e)?parseFloat(e):e}return Qt(i)?La(i,t,n+1):i}function Ra(e){let t=[{},{}];return e?.values.forEach((e,n)=>{t[0][n]=e.get(),t[1][n]=e.getVelocity()}),t}function za(e,t,n,r){let i=t=>typeof t==`function`?t(n===void 0?e.custom:n,...Ra(r)):t;return t=i(t),typeof t==`string`&&(t=e.variants&&e.variants[t]),i(t)}function Ba(e,t,n){return za(e.getProps(),t,n,e)}var Va=(e,t)=>t===`exit`?e.presenceContext?.custom:void 0,Ha=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,...Si]),Ua=e=>Array.isArray(e);function Wa(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,wa(n))}function Ga(e){return Ua(e)?e[e.length-1]||0:e}function Ka(e,t){let{transitionEnd:n={},transition:r={},...i}=Ba(e,t)||{};i={...i,...n};for(let t in i)Wa(e,t,Ga(i[t]))}var qa=e=>!!(e&&e.getVelocity);function Ja(e){return!!(qa(e)&&e.add)}function Ya(e,t){let n=e.getValue(`willChange`);if(Ja(n))return n.add(t);if(!n&&ct.WillChange){let n=new ct.WillChange(`auto`);e.addValue(`willChange`,n),n.add(t)}}function Xa(e){return e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}var Za=`data-`+Xa(`framerAppearId`);function Qa(e){return e.props[Za]}var $a=typeof window<`u`;function eo({protectedKeys:e,needsAnimating:t},n){let r=n in e&&!t[n];return t[n]=!1,r}function to(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:a,transitionEnd:o,...s}=t,c=e.getDefaultTransition();a=a?Ta(a,c):c;let l=a?.reduceMotion,u=a?.skipAnimations;r&&(a=r);let d=[],f=i&&e.animationState?.getState()[i],p=a?.path;p&&p.animateVisualElement(e,s,a,n,d);for(let t in s){let r=e.getValue(t,e.latestValues[t]??null),i=s[t];if(i===void 0||f&&eo(f,t))continue;let o={delay:n,...Ea(a||{},t)};u&&(o.skipAnimations=!0);let c=r.get();if(c!==void 0&&!r.isAnimating()&&!Array.isArray(i)&&i===c&&!o.velocity){B.update(()=>r.set(i));continue}let p=!1;if($a&&window.MotionHandoffAnimation){let n=Qa(e);if(n){let e=window.MotionHandoffAnimation(n,t,B);e!==null&&(o.startTime=e,p=!0)}}Ya(e,t);let m=l??e.shouldReduceMotion;r.start(Pa(t,r,i,m&&Ha.has(t)?{type:!1}:o,e,p));let h=r.animation;h&&d.push(h)}if(o){let t=()=>B.update(()=>{o&&Ka(e,o)});d.length?Promise.all(d).then(t):t()}return d}function no(e,t,n={}){let r=Ba(e,t,Va(e,n.type)),i=n.transitionOverride||(r?.transition??(e.getDefaultTransition()||{})),a=()=>Promise.all(r?to(e,r,n):[]),o=(r=0)=>{let{variantChildren:a}=e,{delayChildren:o=0,staggerChildren:s,staggerDirection:c}=i,l=[];return a?.forEach(e=>{e.notify(`AnimationStart`,t),l.push(no(e,t,{...n,delay:r+(typeof o==`function`?0:o)+ya(a,e,o,s,c)}).then(()=>e.notify(`AnimationComplete`,t)))}),Promise.all(l)},{when:s}=i;return s?s===`beforeChildren`?a().then(()=>o()):o().then(a):Promise.all([a(),o(n.delay)])}function ro(e,t,n={}){return e.notify(`AnimationStart`,t),(Array.isArray(t)?Promise.all(t.map(t=>no(e,t,n))):typeof t==`string`?no(e,t,n):Promise.all(to(e,Ba(e,t,n.custom),n))).then(()=>{e.notify(`AnimationComplete`,t)})}var io={test:e=>e===`auto`,parse:e=>e},ao=e=>t=>t.test(e),oo=[tn,R,_n,gn,yn,vn,io],so=e=>oo.find(ao(e));function co(e){return typeof e==`number`?e===0:e===null||e===`none`||e===`0`||dt(e)}var lo=new Set([`auto`,`none`,`0`]);function uo(e,t,n){let r=0,i;for(;r<e.length&&!i;){let t=e[r];typeof t==`string`&&!lo.has(t)&&Nn(t)&&(i=e[r]),r++}if(i&&n)for(let r of t)e[r]!==i&&(e[r]=ci(n,i))}var fo=class extends zi{constructor(e,t,n,r,i){super(e,t,n,r,i,!0)}readKeyframes(){let{unresolvedKeyframes:e,element:t,name:n}=this;if(!t||!t.current)return;super.readKeyframes();for(let n=0;n<e.length;n++){let r=e[n];if(typeof r==`string`&&(r=r.trim(),Qt(r))){let i=La(r,t.current);i!==void 0&&(e[n]=i),n===e.length-1&&(this.finalKeyframe=r)}}if(this.resolveNoneKeyframes(),!Ha.has(n)||e.length!==2)return;let[r,i]=e;if(typeof r==`number`&&typeof i==`number`)return;let a=so(r),o=so(i);if(en(r)!==en(i)&&Ai[n]){this.needsMeasurement=!0;return}if(a!==o){if(wi(a)&&wi(o))for(let t=0;t<e.length;t++){let n=e[t];typeof n==`string`&&(e[t]=parseFloat(n))}else Ai[n]&&(this.needsMeasurement=!0)}}resolveNoneKeyframes(){let{unresolvedKeyframes:e,name:t}=this,n=[];for(let t=0;t<e.length;t++)(e[t]===null||co(e[t]))&&n.push(t);n.length&&uo(e,n,t)}measure(){let{element:e,name:t}=this;return Ai[t](window.getComputedStyle(e.current),()=>e.measureViewportBox())}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:n}=this;if(!e||!e.current)return;n===`height`&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=this.measure(),t[0]=this.measuredOrigin;let r=t[t.length-1];r!==void 0&&this.motionValue?.jump(r,!1)}measureEndState(){let{element:e,unresolvedKeyframes:t}=this;if(!e||!e.current)return;this.motionValue?.jump(this.measuredOrigin,!1);let n=t.length-1,r=t[n];t[n]=this.measure(),r!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=r),this.removedTransforms?.length&&this.removedTransforms.forEach(([t,n])=>{e.getValue(t).set(n)}),this.resolveNoneKeyframes()}},po=[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomRightRadius`,`borderBottomLeftRadius`],mo=[];function ho(e){typeof e.test==`function`&&e.read,go(e),mo.unshift(e)}function go(e){ot(mo,e)}function _o(e){return mo.find(t=>t.test(e))}function vo(e,t,n={},r){let i=[],{velocity:a}=n,o=n.reduceMotion??r?.shouldReduceMotion;for(let s in t){if(s===`transition`||s===`transitionEnd`)continue;let c=t[s];if(c===void 0)continue;let l=e(s),u=l.get();if(u!==void 0&&!l.isAnimating()&&!Array.isArray(c)&&c===u&&!a){B.update(()=>l.set(c));continue}l.start(Pa(s,l,c,o&&Ha.has(s)?{type:!1}:n,r)),l.animation&&i.push(l.animation)}let{transitionEnd:s}=t;if(s){let t=()=>B.update(()=>{for(let t in s)e(t).set(s[t])});i.length?Promise.all(i).then(t):t()}return i}function yo(e,t,n,r,i){return vo(r=>{let a=e.get(t,r);if(!a){let o;if(!i){let i=n[r];o=bo(i)??e.read(t,r,i),`${r}`}a=wa(o,{owner:i}),e(t,{[r]:a})}return a},n,r,i)}function bo(e){let t=Array.isArray(e)?e[0]:void 0;return t===null?void 0:t}function xo(e){return ut(e)&&`offsetHeight`in e&&!(`ownerSVGElement`in e)}function So(e){return ut(e)&&`ownerSVGElement`in e}var Co=(e,t)=>t&&typeof e==`number`?t.transform(e):e;function wo(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e==`string`){let r=document;t&&(r=t.current);let i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(e=>e!=null)}var To=class{constructor(e=B.render){this.step=e,this.values=new Map,this.pending=[],this.numPending=0,this.flush=()=>{let{pending:e,numPending:t}=this;this.numPending=0;for(let n=0;n<t;n++)e[n]()}}set(e,t,n,r){if(this.values.get(e)?.onRemove(),r)for(let e of this.values.values())e.value===r&&(n=e.render);let i=()=>n&&this.schedule(n);t.get()!==void 0&&i();let a=t.on(`change`,i),o=()=>{a(),n&&!r&&this.cancel(n),this.values.get(e)?.onRemove===o&&this.values.delete(e)};return this.values.set(e,{value:t,render:r?void 0:n,onRemove:o}),o}get(e){return this.values.get(e)?.value}release(){let e=new Map;return this.values.forEach((t,n)=>{e.set(n,t.value),t.onRemove()}),this.transformKeys=this.transformValues=void 0,e}schedule(e){let{pending:t,numPending:n}=this;for(let r=0;r<n;r++)if(t[r]===e)return;n||this.step(this.flush),t[this.numPending++]=e}cancel(e){let{pending:t}=this;for(let n=0;n<this.numPending;n++)if(t[n]===e){t[n]=t[--this.numPending];return}}};function Eo(e,{step:t,...n}={}){let r=new WeakMap;return Object.assign((n,i)=>{let a=r.get(n)??new To(t);r.set(n,a);let o=[];for(let t in i){let r=i[t],s=e(n,a,t,r);o.push(s)}return()=>{for(let e of o)e()}},n,{get:(e,t)=>r.get(e)?.get(t),flush:e=>r.get(e)?.flush(),state:e=>r.get(e)})}var Do={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},Oo={};function ko(e){let t=``,{transformKeys:n=[],transformValues:r={}}=e;for(let e=0;e<n.length;e++){let i=n[e],a=r[i].get();a!==void 0&&(typeof a==`number`?a:parseFloat(a))!==+!!i.startsWith(`scale`)&&(t+=(t&&` `)+(Oo[i]||(Oo[i]=(Do[i]||i)+`(`))+Co(a,ri[i])+`)`)}let i=e.get(`pathRotation`)?.get();return i&&(t+=(t&&` `)+`rotate(`+Co(i,ri.pathRotation)+`)`),t||`none`}var Ao=new Set([`originX`,`originY`,`originZ`]),jo=(e,t)=>Co(e.get(t)?.get(),ii[t]),Mo=(e,t,n,r)=>{let i,a;if(Ci.has(n)){if(n!==`pathRotation`){let e=t.transformKeys??=[];(t.transformValues??={})[n]=r,e.includes(n)||(e.push(n),e.sort((e,t)=>Si.indexOf(e)-Si.indexOf(t)))}t.get(`transform`)||(!xo(e)&&!t.get(`transformBox`)&&Mo(e,t,`transformBox`,new Ca(`fill-box`)),t.set(`transform`,new Ca(`none`),()=>{e.style.transform=ko(t)})),a=t.get(`transform`)}else Ao.has(n)?(t.get(`transformOrigin`)||t.set(`transformOrigin`,new Ca(``),()=>{let n=jo(t,`originX`)??`50%`,r=jo(t,`originY`)??`50%`,i=jo(t,`originZ`)??0;e.style.transformOrigin=`${n} ${r} ${i}`}),a=t.get(`transformOrigin`)):i=Bi(n)?()=>{e.style.setProperty(n,r.get())}:()=>{e.style[n]=Co(r.get(),ii[n])};return t.set(n,r,i,a)},No=e=>xo(e)||So(e),Po=(e,t)=>{if(Ci.has(t))return bi(e,t);let n=getComputedStyle(e),r=Bi(t)?n.getPropertyValue(t):n[t];return typeof r==`string`&&r.trim()||0},Fo=Eo(Mo,{test:No,read:Po}),Io={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},Lo=Si.length;function Ro(e,t,n){let r=``,i=!0;for(let a=0;a<Lo;a++){let o=Si[a],s=e[o];if(s===void 0)continue;let c=!0;if(typeof s==`number`)c=s===+!!o.startsWith(`scale`);else{let e=parseFloat(s);c=o.startsWith(`scale`)?e===1:e===0}if(!c||n){let e=Co(s,ii[o]);if(!c){i=!1;let t=Io[o]||o;r+=`${t}(${e}) `}n&&(t[o]=e)}}let a=e.pathRotation;return a&&(i=!1,r+=`rotate(${Co(a,ii.pathRotation)}) `),r=r.trim(),n?r=n(t,i?``:r):i&&(r=`none`),r}function zo(e,t,n){let{style:r,vars:i,transformOrigin:a}=e,o=!1,s=!1;for(let e in t){let n=t[e];if(Ci.has(e)){o=!0;continue}if(Xt(e)){i[e]=n;continue}{let t=Co(n,ii[e]);e.startsWith(`origin`)?(s=!0,a[e]=t):r[e]=t}}if(t.transform||(o||n?r.transform=Ro(t,e.transform,n):r.transform&&=`none`),s){let{originX:e=`50%`,originY:t=`50%`,originZ:n=0}=a;r.transformOrigin=`${e} ${t} ${n}`}}var Bo={offset:`stroke-dashoffset`,array:`stroke-dasharray`},Vo={offset:`strokeDashoffset`,array:`strokeDasharray`};function Ho(e,t,n=1,r=0,i=!0){e.pathLength=1;let a=i?Bo:Vo;e[a.offset]=`${-r}`,e[a.array]=`${t} ${n}`}var Uo=[`transform`,`opacity`,`offsetDistance`,`offsetPath`,`offsetRotate`,`offsetAnchor`];function Wo(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:a=1,pathOffset:o=0,...s},c,l,u){if(zo(e,s,l),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:d,style:f}=e;for(let e of Uo)d[e]!==void 0&&(f[e]=d[e],delete d[e]);(f.transform||d.transformOrigin)&&(f.transformOrigin=d.transformOrigin??`50% 50%`,delete d.transformOrigin),f.transform&&(f.transformBox=u?.transformBox??`fill-box`,delete d.transformBox),t!==void 0&&(d.x=t),n!==void 0&&(d.y=n),r!==void 0&&(d.scale=r),i!==void 0&&Ho(d,i,a,o,!1)}function Go(e,t){if(!(t in e))return!1;let n=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),t)||Object.getOwnPropertyDescriptor(e,t);return n&&typeof n.set==`function`}var Ko=(e,t,n,r,i=n)=>{let a=Go(e,i);!a&&(i.startsWith(`data`)||i.startsWith(`aria`))&&(i=Xa(i));let o=ii[n]||ii[i],s=a?()=>{e[i]=Co(r.get(),ii[n])}:()=>{let t=Co(r.get(),o);t==null?e.removeAttribute(i):e.setAttribute(i,String(t))};return t.set(n,r,s)};function qo(e,t,n,r){return B.render(()=>e.setAttribute(`pathLength`,`1`)),n===`pathOffset`?t.set(n,r,()=>{let t=r.get();e.setAttribute(`stroke-dashoffset`,`${-t}`)}):(t.get(`stroke-dasharray`)||t.set(`stroke-dasharray`,new Ca(`1 1`),()=>{let n=t.get(`pathLength`)?.get()??1,r=t.get(`pathSpacing`)?.get();e.setAttribute(`stroke-dasharray`,`${n} ${r??1-Number(n)}`)}),t.set(n,r,void 0,t.get(`stroke-dasharray`)))}var Jo=Eo((e,t,n,r)=>n.startsWith(`path`)?qo(e,t,n,r):n.startsWith(`attr`)?Ko(e,t,n,r,Yo(n)):(Ci.has(n)||Ao.has(n)||Bi(n)||n in e.style?Mo:Ko)(e,t,n,r),{test:So,read:(e,t)=>Ci.has(t)?ii[t]?.default||0:Bi(t)||Uo.includes(t)?Po(e,t)||e.getAttribute(Xa(t))||0:(t=Yo(t),e.getAttribute(Xa(t))??e.getAttribute(t)??void 0)});function Yo(e){return e.replace(/^attr([A-Z])/,(e,t)=>t.toLowerCase())}function Xo({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Zo({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Qo(e,t){if(!t)return e;let n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function $o(e){return e===void 0||e===1}function es({scale:e,scaleX:t,scaleY:n}){return!$o(e)||!$o(t)||!$o(n)}function ts(e){return es(e)||ns(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function ns(e){return rs(e.x)||rs(e.y)}function rs(e){return e&&e!==`0%`}function is(e,t,n){return n+t*(e-n)}function as(e,t,n,r,i){return i!==void 0&&(e=is(e,i,r)),is(e,n,r)+t}function os(e,t=0,n=1,r,i){e.min=as(e.min,t,n,r,i),e.max=as(e.max,t,n,r,i)}function ss(e,{x:t,y:n}){os(e.x,t.translate,t.scale,t.originPoint),os(e.y,n.translate,n.scale,n.originPoint)}var cs=.999999999999,ls=1.0000000000001;function us(e,t,n,r=!1){let i=n.length;if(!i)return;t.x=t.y=1;let a,o;for(let s=0;s<i;s++){a=n[s],o=a.projectionDelta;let{visualElement:i}=a.options;i&&i.props.style&&i.props.style.display===`contents`||(r&&a.options.layoutScroll&&a.scroll&&a!==a.root&&(ds(e.x,-a.scroll.offset.x),ds(e.y,-a.scroll.offset.y)),o&&(t.x*=o.x.scale,t.y*=o.y.scale,ss(e,o)),r&&ts(a.latestValues)&&ms(e,a.latestValues,a.layout?.layoutBox))}t.x<ls&&t.x>cs&&(t.x=1),t.y<ls&&t.y>cs&&(t.y=1)}function ds(e,t){e.min+=t,e.max+=t}function fs(e,t,n,r,i=.5){os(e,t,n,z(e.min,e.max,i),r)}function ps(e,t){return typeof e==`string`?parseFloat(e)/100*(t.max-t.min):e}function ms(e,t,n){let r=n??e;fs(e.x,ps(t.x,r.x),t.scaleX,t.scale,t.originX),fs(e.y,ps(t.y,r.y),t.scaleY,t.scale,t.originY)}function hs(e,t){return Xo(Qo(e.getBoundingClientRect(),t))}function gs(e,t,n){let r=hs(e,n),{scroll:i}=t;return i&&(ds(r.x,i.offset.x),ds(r.y,i.offset.y)),r}var _s={},vs=e=>So(e)?Jo:Fo,ys=class{constructor(e,t){this.effect=e,this.current=t,this.KeyframeResolver=fo}getValue(e){return this.effect.get(this.current,e)}readValue(e,t){return this.effect.read(this.current,e,t)}render(){this.effect.flush(this.current)}measureViewportBox(){return hs(this.current)}getProps(){return _s}};function bs(e,t,n,r){if(r)return vo(e=>r.getValue(e,null),t,n,r);let i=vs(e);return yo(i,e,t,n,new ys(i,e))}var xs=Eo((e,t,n,r)=>t.set(n,r,()=>{e[n]=r.get()}),{test:e=>ut(e),read:(e,t)=>{let n=e[t];return typeof n==`string`||typeof n==`number`?n:void 0}}),{schedule:Ss,cancel:Cs}=ur(queueMicrotask,!1),ws={x:!1,y:!1};function Ts(){return ws.x||ws.y}function Es(e){return e===`x`||e===`y`?ws[e]?null:(ws[e]=!0,()=>{ws[e]=!1}):ws.x||ws.y?null:(ws.x=ws.y=!0,()=>{ws.x=ws.y=!1})}function Ds(e,t){let n=wo(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function Os(e){return!(e.pointerType===`touch`||Ts())}function ks(e,t,n={}){let[r,i,a]=Ds(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!Os(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var As=(e,t)=>t?e===t||As(e,t.parentElement):!1,js=e=>e.pointerType===`mouse`?typeof e.button!=`number`||e.button<=0:e.isPrimary!==!1,Ms=new Set([`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`A`]);function Ns(e){return Ms.has(e.tagName)||e.isContentEditable===!0}var Ps=new Set([`INPUT`,`SELECT`,`TEXTAREA`]);function Fs(e){return Ps.has(e.tagName)||e.isContentEditable===!0}var Is=new WeakSet;function Ls(e){return t=>{t.key===`Enter`&&e(t)}}function Rs(e,t){e.dispatchEvent(new PointerEvent(`pointer`+t,{isPrimary:!0,bubbles:!0}))}var zs=(e,t)=>{let n=e.currentTarget;if(!n)return;let r=Ls(()=>{if(Is.has(n))return;Rs(n,`down`);let e=Ls(()=>{Rs(n,`up`)});n.addEventListener(`keyup`,e,t),n.addEventListener(`blur`,()=>Rs(n,`cancel`),t)});n.addEventListener(`keydown`,r,t),n.addEventListener(`blur`,()=>n.removeEventListener(`keydown`,r),t)};function Bs(e){return js(e)&&!Ts()}var Vs=new WeakSet;function Hs(e,t,n={}){let[r,i,a]=Ds(e,n),o=e=>{let r=e.currentTarget;if(!Bs(e)||Vs.has(e))return;Is.add(r),n.stopPropagation&&Vs.add(e);let a=t(r,e),o={...i,capture:!0},s=(e,t)=>{window.removeEventListener(`pointerup`,c,o),window.removeEventListener(`pointercancel`,l,o),Is.has(r)&&Is.delete(r),Bs(e)&&typeof a==`function`&&a(e,{success:t})},c=e=>{s(e,r===window||r===document||n.useGlobalTarget||As(r,e.target))},l=e=>{s(e,!1)};window.addEventListener(`pointerup`,c,o),window.addEventListener(`pointercancel`,l,o)};return r.forEach(e=>{(n.useGlobalTarget?window:e).addEventListener(`pointerdown`,o,i),xo(e)&&(e.addEventListener(`focus`,e=>zs(e,i)),!Ns(e)&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=0))}),a}var Us=new WeakMap,Ws,Gs=(e,t,n)=>(r,i)=>i&&i[0]?i[0][e+`Size`]:So(r)&&`getBBox`in r?r.getBBox()[t]:r[n],Ks=Gs(`inline`,`width`,`offsetWidth`),qs=Gs(`block`,`height`,`offsetHeight`);function Js({target:e,borderBoxSize:t}){Us.get(e)?.forEach(n=>{n(e,{get width(){return Ks(e,t)},get height(){return qs(e,t)}})})}function Ys(e){e.forEach(Js)}function Xs(){typeof ResizeObserver<`u`&&(Ws=new ResizeObserver(Ys))}function Zs(e,t){Ws||Xs();let n=wo(e);return n.forEach(e=>{let n=Us.get(e);n||(n=new Set,Us.set(e,n)),n.add(t),Ws?.observe(e)}),()=>{n.forEach(e=>{let n=Us.get(e);n?.delete(t),n?.size||Ws?.unobserve(e)})}}var Qs=new Set,$s;function ec(){$s=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Qs.forEach(t=>t(e))},window.addEventListener(`resize`,$s)}function tc(e){return Qs.add(e),$s||ec(),()=>{Qs.delete(e),!Qs.size&&typeof $s==`function`&&(window.removeEventListener(`resize`,$s),$s=void 0)}}function nc(e,t){return typeof e==`function`?tc(e):Zs(e,t)}var rc={value:null,addProjectionMetrics:null};function ic(e){return So(e)&&e.tagName===`svg`}var ac=e=>typeof e==`number`?e:parseFloat(e),oc=()=>({translate:0,scale:1,origin:0,originPoint:0}),sc=()=>({x:oc(),y:oc()}),cc=()=>({min:0,max:0}),lc=()=>({x:cc(),y:cc()}),uc=new WeakMap;function dc(e){return typeof e==`object`&&!!e&&typeof e.start==`function`}function fc(e){return typeof e==`string`||Array.isArray(e)}var pc=[`animate`,`whileInView`,`whileFocus`,`whileHover`,`whileTap`,`whileDrag`,`exit`],mc=[`initial`,...pc];function hc(e){if(dc(e.animate))return!0;for(let t=0;t<mc.length;t++)if(fc(e[mc[t]]))return!0;return!1}function gc(e){return!!(hc(e)||e.variants)}function _c(e,t,n){for(let r in t){let i=t[r],a=n[r];if(qa(i))e.addValue(r,i);else if(qa(a))e.addValue(r,wa(i,{owner:e}));else if(a!==i){if(e.hasValue(r)){let t=e.getValue(r);t.liveStyle===!0?t.jump(i):t.hasAnimated||t.set(i)}else{let t=e.getStaticValue(r);e.addValue(r,wa(t===void 0?i:t,{owner:e}))}}}for(let r in n)t[r]===void 0&&e.removeValue(r);return t}var vc={current:null},yc={current:!1},bc=typeof window<`u`;function xc(){if(yc.current=!0,bc){if(window.matchMedia){let e=window.matchMedia(`(prefers-reduced-motion)`),t=()=>vc.current=e.matches;e.addEventListener(`change`,t),t()}else vc.current=!1}}var Sc=[`AnimationStart`,`AnimationComplete`,`Update`,`BeforeLayoutMeasure`,`LayoutMeasure`,`LayoutAnimationStart`,`LayoutAnimationComplete`],Cc={};function wc(e){Cc=e}function Tc(){return Cc}var Ec=class{scrapeMotionValuesFromProps(e,t,n){return{}}constructor({parent:e,props:t,presenceContext:n,reducedMotionConfig:r,skipAnimations:i,blockInitialAnimation:a,visualState:o},s={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=zi,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify(`Update`,this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let e=qt.now();this.renderScheduledAt<e&&(this.renderScheduledAt=e,B.render(this.render,!1,!0))};let{latestValues:c,renderState:l}=o;this.latestValues=c,this.baseTarget={...c},this.initialValues=t.initial?{...c}:{},this.renderState=l,this.parent=e,this.props=t,this.presenceContext=n,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.skipAnimationsConfig=i,this.options=s,this.blockInitialAnimation=!!a,this.isControllingVariants=hc(t),this.isVariantNode=gc(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);let{willChange:u,...d}=this.scrapeMotionValuesFromProps(t,{},this);for(let e in d){let t=d[e];c[e]!==void 0&&qa(t)&&t.set(c[e])}}mount(e){if(this.hasBeenMounted)for(let e in this.initialValues)this.values.get(e)?.jump(this.initialValues[e]),this.latestValues[e]=this.initialValues[e];if(this.current=e,uc.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.isVariantNode&&!this.isControllingVariants){let e=this;do e=e.props.inherit!==!1&&e.parent;while(e&&!e.isVariantNode);if(e){let{variantChildren:t}=e;t.add(this),this.removeFromVariantTree=()=>t.delete(this)}}this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),this.reducedMotionConfig===`never`?this.shouldReduceMotion=!1:this.reducedMotionConfig===`always`?this.shouldReduceMotion=!0:(yc.current||xc(),this.shouldReduceMotion=vc.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),dr(this.notifyUpdate),dr(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(let e in this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??=new Set,this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),t.accelerate&&ca.has(e)&&this.current instanceof HTMLElement){let{factory:n,keyframes:r,times:i,ease:a,duration:o}=t.accelerate,s=new Qi({element:this.current,name:e,keyframes:r,times:i,ease:a,duration:_t(o)}),c=n(s);this.valueSubscriptions.set(e,()=>{c(),s.cancel()});return}let n=Ci.has(e);n&&this.onBindTransform&&this.onBindTransform();let r=t.on(`change`,t=>{this.latestValues[e]=t,this.props.onUpdate&&B.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()}),i;typeof window<`u`&&window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{r(),i&&i()})}sortNodePosition(e){return!this.current||!e.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e=`animation`;for(e in Cc){let t=Cc[e];if(!t)continue;let{isEnabled:n,Feature:r}=t;if(!this.features[e]&&r&&n(this.props)&&(this.features[e]=new r(this)),this.features[e]){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):lc()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<Sc.length;t++){let n=Sc[t];this.propEventSubscriptions[n]&&(this.propEventSubscriptions[n](),delete this.propEventSubscriptions[n]);let r=e[`on`+n];r&&(this.propEventSubscriptions[n]=this.on(n,r))}this.prevMotionValues=_c(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}addValue(e,t){let n=this.values.get(e);if(t!==n){n&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t);let r=t.get();r!==void 0&&(this.latestValues[e]=r)}}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return n===void 0&&t!==void 0&&(n=wa(t??this.getDefaultValue?.(e),{owner:this}),this.addValue(e,n)),n}readValue(e,t){let n=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return n!=null&&(typeof n==`string`&&(lt(n)||dt(n))?n=parseFloat(n):typeof n!=`number`&&!Vn.test(n)&&Vn.test(t)&&(n=ci(e,t)),this.setBaseTarget(e,qa(n)?n.get():n)),qa(n)?n.get():n}setBaseTarget(e,t){this.baseTarget[e]=t}on(e,t){return this.events[e]||(this.events[e]=new gt),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}scheduleRenderMicrotask(){Ss.render(this.render)}},Dc=class extends Ec{constructor(){super(...arguments),this.KeyframeResolver=fo}sortInstanceNodePosition(e,t){return e.compareDocumentPosition(t)&2?1:-1}getBaseTargetFromProps(e,t){let n=e.style;return n?n[t]:void 0}removeValueFromRenderState(e,{vars:t,style:n}){delete t[e],delete n[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:e}=this.props;qa(e)&&(this.childSubscription=e.on(`change`,e=>{this.current&&(this.current.textContent=`${e}`)}))}},Oc=class{constructor(e){this.isMounted=!1,this.node=e}update(){}};function kc(e,{style:t,vars:n},r,i){let a=e.style,o;for(o in t)a[o]=t[o];for(o in i?.applyProjectionStyles(a,r),n)a.setProperty(o,n[o])}var Ac={};function jc(e,{layout:t,layoutId:n}){return Ci.has(e)||e.startsWith(`origin`)||(t||n!==void 0)&&(!!Ac[e]||e===`opacity`)}function Mc(e,t,n){let r=e.style,i=t?.style,a={};if(!r)return a;for(let t in r)(qa(r[t])||i&&qa(i[t])||jc(t,e)||n?.getValue(t)?.liveStyle!==void 0)&&(a[t]=r[t]);return a}function Nc(e){return window.getComputedStyle(e)}var Pc=class extends Dc{constructor(){super(...arguments),this.type=`html`,this.renderInstance=kc}mount(e){e.style,super.mount(e)}readValueFromInstance(e,t){if(Ci.has(t))return this.projection?.isProjecting?vi(t):bi(e,t);{let n=Nc(e),r=(Xt(t)?n.getPropertyValue(t):n[t])||0;return typeof r==`string`?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:t}){return hs(e,t)}build(e,t,n){zo(e,t,n.transformTemplate)}scrapeMotionValuesFromProps(e,t,n){return Mc(e,t,n)}},Fc=new Set([`baseFrequency`,`diffuseConstant`,`kernelMatrix`,`kernelUnitLength`,`keySplines`,`keyTimes`,`limitingConeAngle`,`markerHeight`,`markerWidth`,`numOctaves`,`targetX`,`targetY`,`surfaceScale`,`specularConstant`,`specularExponent`,`stdDeviation`,`tableValues`,`viewBox`,`gradientTransform`,`pathLength`,`startOffset`,`textLength`,`lengthAdjust`]),Ic=e=>typeof e==`string`&&e.toLowerCase()===`svg`;function Lc(e,t,n,r){kc(e,t,void 0,r);for(let n in t.attrs)e.setAttribute(Fc.has(n)?n:Xa(n),t.attrs[n])}function Rc(e,t,n){let r=Mc(e,t,n);for(let n in e)if(qa(e[n])||qa(t[n])){let t=Si.indexOf(n)===-1?n:`attr`+n.charAt(0).toUpperCase()+n.substring(1);r[t]=e[n]}return r}var zc=class extends Dc{constructor(){super(...arguments),this.type=`svg`,this.isSVGTag=!1,this.measureInstanceViewportBox=lc}getBaseTargetFromProps(e,t){return Ci.has(t)?super.getBaseTargetFromProps(e,t)??vi(t):e[t]}getDefaultValue(e){return Ci.has(e)?this.latestValues[e]??vi(e):void 0}readValueFromInstance(e,t){if(Ci.has(t)){let e=oi(t);return e&&e.default||0}if(Uo.includes(t)){let n=getComputedStyle(e)[t];if(typeof n==`string`&&n)return n.trim()}return t=Fc.has(t)?t:Xa(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,n){return Rc(e,t,n)}build(e,t,n){Wo(e,t,this.isSVGTag,n.transformTemplate,n.style)}renderInstance(e,t,n,r){Lc(e,t,n,r)}mount(e){this.isSVGTag=Ic(e.tagName),super.mount(e)}};function Bc(e,t){if(!Array.isArray(t))return!1;let n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}var Vc=[...pc].reverse();function Hc(e){let t=t=>Promise.all(t.map(({animation:t,options:n})=>ro(e,t,n))),n=Wc(),r=!0,i=!1;function a(a){let{props:o,parent:s,manuallyAnimateOnMount:c}=e,l=r||i,u=[],d=new Set,f={},p=1/0,m=e;do m=m.props.inherit!==!1&&m.parent;while(m&&!m.isControllingVariants);if(Vc.forEach((t,r)=>{let i=n[t],h=o[t],g=m&&m.props[t],_=h===void 0?fc(g)||g===!1?g:void 0:h,v=fc(_),y=t===a?i.isActive:null;y===!1&&(p=r);let b=v&&h===void 0&&!(l&&c);if(i.protectedKeys={...f},!i.isActive&&y===null||!_&&!i.prevProp||dc(_)||typeof _==`boolean`)return;if(t===`exit`&&i.isActive&&y!==!0){f={...f,...i.prevResolvedValues};return}let x=Uc(i.prevProp,_),S=x||v&&(y&&!b||r>p),C=!1,w=Array.isArray(_)?_:[_],T={};if(y!==!1)for(let n of w){let{transition:r,transitionEnd:i,...a}=Ba(e,n,Va(e,t))||{};T={...T,...a,...i}}let{prevResolvedValues:E}=i;for(let t in{...E,...T}){if(t in f)continue;let n=T[t],r=E[t],a=Array.isArray(n)&&Array.isArray(r)?!Bc(n,r)||x:n!==r;if(a&&n==null)d.add(t);else if(a||n!==void 0&&d.has(t)){S=!0,d.delete(t)&&(C=!0),i.needsAnimating[t]=!0;let n=e.getValue(t);n&&(n.liveStyle=!1)}else i.protectedKeys[t]=!0}if(i.prevProp=_,i.prevResolvedValues=T,i.isActive&&(f={...f,...T}),S&&(!(b&&x)||C))for(let n of w){let r={type:t};if(typeof n==`string`&&l&&c&&s?.enteringChildren){let t=Ba(s,n)?.transition?.delayChildren;r.delay=ya(s.enteringChildren,e,t)}u.push({animation:n,options:r})}}),d.size){let{initial:t}=o,n={},r=typeof t!=`boolean`&&Ba(e,Array.isArray(t)?t[0]:t,e.presenceContext?.custom);r&&r.transition&&(n.transition=r.transition),d.forEach(i=>{let a=e.getValue(i);a&&(a.liveStyle=!0);let s=r&&!Array.isArray(t)?r[i]:void 0,c=e.getBaseTargetFromProps(o,i);n[i]=(s===void 0?c!==void 0&&!qa(c)?c:e.initialValues[i]===void 0?e.baseTarget[i]:void 0:s)??null}),u.push({animation:n})}let h=l&&e.blockInitialAnimation||r&&!c&&(o.initial===!1||o.initial===o.animate);return r=i=!1,!h&&u.length?t(u):Promise.resolve()}function o(t,r){if(n[t].isActive===r)return Promise.resolve();e.variantChildren?.forEach(e=>e.animationState?.setActive(t,r)),n[t].isActive=r;let i=a(t);for(let e in n)n[e].protectedKeys={};return i}return{animateChanges:a,setActive:o,setAnimateFunction:n=>{t=n(e)},getState:()=>n,reset:()=>{n=Wc(),i=!0}}}function Uc(e,t){return typeof t==`string`?t!==e:Array.isArray(t)?!Bc(t,e):!1}function Wc(){let e={};for(let t of pc)e[t]={isActive:t===`animate`,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}};return e}function Gc(e,t){e.min=t.min,e.max=t.max}function Kc(e,t){Gc(e.x,t.x),Gc(e.y,t.y)}function qc(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}var Jc=.9999,Yc=1.0001,Xc=-.01,Zc=.01;function Qc(e){return e.max-e.min}function $c(e,t,n){return Math.abs(e-t)<=n}function el(e,t,n,r=.5){e.origin=r,e.originPoint=z(t.min,t.max,e.origin),e.scale=Qc(n)/Qc(t),e.translate=z(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Jc&&e.scale<=Yc||isNaN(e.scale))&&(e.scale=1),(e.translate>=Xc&&e.translate<=Zc||isNaN(e.translate))&&(e.translate=0)}function tl(e,t,n,r){el(e.x,t.x,n.x,r?r.originX:void 0),el(e.y,t.y,n.y,r?r.originY:void 0)}function nl(e,t,n,r=0){e.min=(r?z(n.min,n.max,r):n.min)+t.min,e.max=e.min+Qc(t)}function rl(e,t,n,r){nl(e.x,t.x,n.x,r?.x),nl(e.y,t.y,n.y,r?.y)}function il(e,t,n,r=0){let i=r?z(n.min,n.max,r):n.min;e.min=t.min-i,e.max=e.min+Qc(t)}function al(e,t,n,r){il(e.x,t.x,n.x,r?.x),il(e.y,t.y,n.y,r?.y)}function ol(e,t,n,r,i){return e-=t,e=is(e,1/n,r),i!==void 0&&(e=is(e,1/i,r)),e}function sl(e,t=0,n=1,r=.5,i,a=e,o=e){if(_n.test(t)&&(t=parseFloat(t),t=z(o.min,o.max,t/100)-o.min),typeof t!=`number`)return;let s=z(a.min,a.max,r);e===a&&(s-=t),e.min=ol(e.min,t,n,s,i),e.max=ol(e.max,t,n,s,i)}function cl(e,t,[n,r,i],a,o){sl(e,t[n],t[r],t[i],t.scale,a,o)}var ll=[`x`,`scaleX`,`originX`],ul=[`y`,`scaleY`,`originY`];function dl(e,t,n,r){cl(e.x,t,ll,n?n.x:void 0,r?r.x:void 0),cl(e.y,t,ul,n?n.y:void 0,r?r.y:void 0)}function fl(e){return e.translate===0&&e.scale===1}function pl(e){return fl(e.x)&&fl(e.y)}function ml(e,t){return e.min===t.min&&e.max===t.max}function hl(e,t){return ml(e.x,t.x)&&ml(e.y,t.y)}function gl(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function _l(e,t){return gl(e.x,t.x)&&gl(e.y,t.y)}function vl(e){return Qc(e.x)/Qc(e.y)}function yl(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function bl(e){return[e(`x`),e(`y`)]}function xl(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var Sl={correct:(e,t)=>{if(!t.target)return e;if(typeof e==`string`){if(R.test(e))e=parseFloat(e);else return e}return`${xl(e,t.target.x)}% ${xl(e,t.target.y)}%`}},Cl={correct:(e,{treeScale:t,projectionDelta:n})=>{let r=e,i=Vn.parse(e);if(i.length>5)return r;let a=Vn.createTransformer(e),o=typeof i[0]==`number`?0:1,s=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=s,i[1+o]/=c;let l=z(s,c,.5);return typeof i[2+o]==`number`&&(i[2+o]/=l),typeof i[3+o]==`number`&&(i[3+o]/=l),a(i)}};function wl(e,t,n){let r=``,i=e.x.translate/t.x,a=e.y.translate/t.y,o=n?.z||0;if((i||a||o)&&(r=`translate3d(${i}px, ${a}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){let{transformPerspective:e,rotate:t,pathRotation:i,rotateX:a,rotateY:o,skewX:s,skewY:c}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),i&&(r+=`rotate(${i}deg) `),a&&(r+=`rotateX(${a}deg) `),o&&(r+=`rotateY(${o}deg) `),s&&(r+=`skewX(${s}deg) `),c&&(r+=`skewY(${c}deg) `)}let s=e.x.scale*t.x,c=e.y.scale*t.y;return(s!==1||c!==1)&&(r+=`scale(${s}, ${c})`),r||`none`}var Tl=po.length,El=e=>typeof e==`number`||R.test(e);function Dl(e,t,n,r,i,a){i?(e.opacity=z(0,n.opacity??1,kl(r)),e.opacityExit=z(t.opacity??1,0,Al(r))):a&&(e.opacity=z(t.opacity??1,n.opacity??1,r));for(let i=0;i<Tl;i++){let a=po[i],o=Ol(t,a),s=Ol(n,a);(o!==void 0||s!==void 0)&&(o||=0,s||=0,o===0||s===0||El(o)===El(s)?(e[a]=Math.max(z(ac(o),ac(s),r),0),(_n.test(s)||_n.test(o))&&(e[a]+=`%`)):e[a]=s)}(t.rotate||n.rotate)&&(e.rotate=z(t.rotate||0,n.rotate||0,r))}function Ol(e,t){return e[t]===void 0?e.borderRadius:e[t]}var kl=jl(0,.5,Nt),Al=jl(.5,.95,pt);function jl(e,t,n){return r=>r<e?0:r>t?1:n(ht(e,t,r))}function Ml(e,t,n){let r=qa(e)?e:wa(e);return r.start(Pa(``,r,t,n)),r.animation}function Nl(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}var Pl=(e,t)=>e.depth-t.depth,Fl=class{constructor(){this.children=[],this.isDirty=!1}add(e){at(this.children,e),this.isDirty=!0}remove(e){ot(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Pl),this.isDirty=!1,this.children.forEach(e)}};function Il(e,t){let n=qt.now(),r=({timestamp:i})=>{let a=i-n;a>=t&&(dr(r),e(a-t))};return B.setup(r,!0),()=>dr(r)}function Ll(e){return qa(e)?e.get():e}var Rl=class{constructor(){this.members=[]}add(e){at(this.members,e);for(let t=this.members.length-1;t>=0;t--){let n=this.members[t];if(n===e||n===this.lead||n===this.prevLead)continue;let r=n.instance;(!r||r.isConnected===!1)&&!n.snapshot&&(ot(this.members,n),n.unmount())}e.scheduleRender()}remove(e){if(ot(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){for(let t=this.members.indexOf(e)-1;t>=0;t--){let e=this.members[t];if(e.isPresent!==!1&&e.instance?.isConnected!==!1)return this.promote(e),!0}return!1}promote(e,t){let n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.updateSnapshot(),e.scheduleRender();let{layoutDependency:r}=n.options,{layoutDependency:i}=e.options;(r===void 0||r!==i)&&(e.resumeFrom=n,t&&(n.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}},zl={borderRadius:{...Sl,applyTo:[...po]},borderTopLeftRadius:Sl,borderTopRightRadius:Sl,borderBottomLeftRadius:Sl,borderBottomRightRadius:Sl,boxShadow:Cl},Bl={hasAnimatedSinceResize:!0,hasEverUpdated:!1};Object.assign(Ac,{...zl,...Ac});var Vl={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},Hl=[``,`X`,`Y`,`Z`],Ul=1e3,Wl=0;function Gl(e,t,n,r){let{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Kl(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let n=Qa(t);if(window.MotionHasOptimisedAnimation(n,`transform`)){let{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,`transform`,B,!(t||r))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Kl(r)}function ql({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(e={},n=t?.()){this.id=Wl++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,rc.value&&(Vl.nodes=Vl.calculatedTargetDeltas=Vl.calculatedProjections=0),this.nodes.forEach(Xl),this.nodes.forEach(ou),this.nodes.forEach(su),this.nodes.forEach(Zl),rc.addProjectionMetrics&&rc.addProjectionMetrics(Vl)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new Fl)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new gt),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let n=this.eventHandlers.get(e);n&&n.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t){if(this.instance)return;this.isSVG=So(t)&&!ic(t),this.instance=t;let{layoutId:n,layout:r,visualElement:i}=this.options;if(i&&!i.current&&i.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(r||n)&&(this.isLayoutDirty=!0),e){let n,r=0,i=()=>this.root.updateBlockedByResize=!1;B.read(()=>{r=window.innerWidth}),e(t,()=>{let e=window.innerWidth;e!==r&&(r=e,this.root.updateBlockedByResize=!0,n&&n(),n=Il(i,250),Bl.hasAnimatedSinceResize&&(Bl.hasAnimatedSinceResize=!1,this.nodes.forEach(au)))})}n&&this.root.registerSharedNode(n,this),this.options.animate!==!1&&i&&(n||r)&&this.addEventListener(`didUpdate`,({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:n,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let a=this.options.transition||i.getDefaultTransition()||mu,{onLayoutAnimationStart:o,onLayoutAnimationComplete:s}=i.getProps(),c=!this.targetLayout||!_l(this.targetLayout,r),l=!t&&n;if(this.options.layoutRoot||this.resumeFrom||l||t&&(c||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={...Ea(a,`layout`),onPlay:o,onComplete:s};(i.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,l,t.path)}else t||au(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),dr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(cu),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Kl(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,(typeof t.latestValues.x==`string`||typeof t.latestValues.y==`string`)&&(t.isLayoutDirty=!0),t.updateScroll(`snapshot`),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:n}=this.options;if(t===void 0&&!n)return;let r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,``):void 0,this.updateSnapshot(),e&&this.notifyListeners(`willUpdate`)}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let e=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),e&&this.nodes.forEach(eu),this.nodes.forEach($l);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(tu);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(nu),this.nodes.forEach(ru),this.nodes.forEach(iu),this.nodes.forEach(Jl),this.nodes.forEach(Yl)):this.nodes.forEach(tu),this.clearAllSnapshots();let e=qt.now();Wt.delta=st(0,1e3/60,e-Wt.timestamp),Wt.timestamp=e,Wt.isProcessing=!0,fr.update.process(Wt),fr.preRender.process(Wt),fr.render.process(Wt),Wt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Ss.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(Ql),this.sharedNodes.forEach(lu)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,B.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){B.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),this.snapshot&&!Qc(this.snapshot.measuredBox.x)&&!Qc(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutCorrected||=lc(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners(`measure`,this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify(`LayoutMeasure`,this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e=`measure`){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t&&this.instance){let t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!i)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!pl(this.projectionDelta),n=this.getTransformTemplate(),r=n?n(this.latestValues,``):void 0,a=r!==this.prevTransformTemplateValue;e&&this.instance&&(t||ts(this.latestValues)||a)&&(i(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){let t=this.measurePageBox(),n=this.removeElementScroll(t);return e&&(n=this.removeTransform(n)),vu(n),{animationId:this.root.animationId,measuredBox:t,layoutBox:n,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return lc();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(bu))){let{scroll:e}=this.root;e&&(ds(t.x,e.offset.x),ds(t.y,e.offset.y))}return t}removeElementScroll(e){let t=lc();if(Kc(t,e),this.scroll?.wasRoot)return t;for(let n=0;n<this.path.length;n++){let r=this.path[n],{scroll:i,options:a}=r;r!==this.root&&i&&a.layoutScroll&&(i.wasRoot&&Kc(t,e),ds(t.x,i.offset.x),ds(t.y,i.offset.y))}return t}applyTransform(e,t=!1,n){let r=n||lc();Kc(r,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];!t&&n.options.layoutScroll&&n.scroll&&n!==n.root&&(ds(r.x,-n.scroll.offset.x),ds(r.y,-n.scroll.offset.y)),ts(n.latestValues)&&ms(r,n.latestValues,n.layout?.layoutBox)}return ts(this.latestValues)&&ms(r,this.latestValues,this.layout?.layoutBox),r}removeTransform(e){let t=lc();Kc(t,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];if(!ts(n.latestValues))continue;let r;n.instance&&(es(n.latestValues)&&n.updateSnapshot(),r=lc(),Kc(r,n.measurePageBox())),dl(t,n.latestValues,n.snapshot?.layoutBox,r)}return ts(this.latestValues)&&dl(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:e.crossfade===void 0||e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Wt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||=t.isProjectionDirty,this.isTransformDirty||=t.isTransformDirty,this.isSharedProjectionDirty||=t.isSharedProjectionDirty;let n=!!this.resumingFrom||this!==t;if(!(e||n&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:r,layoutId:i}=this.options;if(!this.layout||!(r||i))return;this.resolvedRelativeTargetAt=Wt.timestamp;let a=this.getClosestProjectingParent();!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&a&&a.layout?this.createRelativeTarget(a,this.layout.layoutBox,a.layout.layoutBox):this.removeRelativeTarget()),(this.relativeTarget||this.targetDelta)&&(this.target||(this.target=lc(),this.targetWithTransforms=lc()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),rl(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):Kc(this.target,this.layout.layoutBox),ss(this.target,this.targetDelta)):Kc(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&a&&!!a.resumingFrom==!!this.resumingFrom&&!a.options.layoutScroll&&a.target&&this.animationProgress!==1?this.createRelativeTarget(a,this.target,a.target):this.relativeParent=this.relativeTarget=void 0),rc.value&&Vl.calculatedTargetDeltas++)}getClosestProjectingParent(){if(!(!this.parent||es(this.parent.latestValues)||ns(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(e,t,n){this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=lc(),this.relativeTargetOrigin=lc(),al(this.relativeTargetOrigin,t,n,this.options.layoutAnchor||void 0),Kc(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,n=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(n=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(n=!1),this.resolvedRelativeTargetAt===Wt.timestamp&&(n=!1),n)return;let{layout:r,layoutId:i}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(r||i))return;Kc(this.layoutCorrected,this.layout.layoutBox);let a=this.treeScale.x,o=this.treeScale.y;us(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=lc());let{target:s}=e;if(!s){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(qc(this.prevProjectionDelta.x,this.projectionDelta.x),qc(this.prevProjectionDelta.y,this.projectionDelta.y)),tl(this.projectionDelta,this.layoutCorrected,s,this.latestValues),(this.treeScale.x!==a||this.treeScale.y!==o||!yl(this.projectionDelta.x,this.prevProjectionDelta.x)||!yl(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners(`projectionUpdate`,s)),rc.value&&Vl.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){if(this.options.visualElement?.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=sc(),this.projectionDelta=sc(),this.projectionDeltaWithTransform=sc()}setAnimationOrigin(e,t=!1,n){let r=this.snapshot,i=r?r.latestValues:{},a={...this.latestValues},o=sc();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let s=lc(),c=(r?r.source:void 0)!==(this.layout?this.layout.source:void 0),l=this.getStack(),u=!l||l.members.length<=1,d=!(!c||u||this.options.crossfade!==!0||this.path.some(pu));this.animationProgress=0;let f,p=n?.interpolateProjection(e);this.mixTargetDelta=t=>{let n=t/1e3,r=p?.(n);r?(o.x.translate=r.x,o.x.scale=z(e.x.scale,1,n),o.x.origin=e.x.origin,o.x.originPoint=e.x.originPoint,o.y.translate=r.y,o.y.scale=z(e.y.scale,1,n),o.y.origin=e.y.origin,o.y.originPoint=e.y.originPoint):(uu(o.x,e.x,n),uu(o.y,e.y,n)),this.setTargetDelta(o),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(al(s,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),fu(this.relativeTarget,this.relativeTargetOrigin,s,n),f&&hl(this.relativeTarget,f)&&(this.isProjectionDirty=!1),f||=lc(),Kc(f,this.relativeTarget)),c&&(this.animationValues=a,Dl(a,i,this.latestValues,n,d,u)),r&&r.rotate!==void 0&&(this.animationValues||=a,this.animationValues.pathRotation=r.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(`animationStart`),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&=(dr(this.pendingAnimation),void 0),this.pendingAnimation=B.update(()=>{Bl.hasAnimatedSinceResize=!0,this.motionValue||=wa(0),this.motionValue.jump(0,!1),this.currentAnimation=Ml(this.motionValue,[0,1e3],{...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.onComplete(),this.completeAnimation()}}),qr(this.currentAnimation,this),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(`animationComplete`)}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Ul),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,layout:n,latestValues:r}=e,{target:i}=e;if(t&&i&&n){if(this!==e&&this.layout&&n&&yu(this.options.animationType,this.layout.layoutBox,n.layoutBox)){i=this.target||lc();let t=Qc(this.layout.layoutBox.x);i.x.min=e.target.x.min,i.x.max=i.x.min+t;let n=Qc(this.layout.layoutBox.y);i.y.min=e.target.y.min,i.y.max=i.y.min+n}Kc(t,i),ms(t,r),tl(this.projectionDeltaWithTransform,this.layoutCorrected,t,r)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new Rl),this.sharedNodes.get(e).add(t);let n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){let r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return e?e.relegate(this):!1}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;let r={};n.z&&Gl(`z`,e,r,this.animationValues);for(let t=0;t<Hl.length;t++)Gl(`rotate${Hl[t]}`,e,r,this.animationValues),Gl(`skew${Hl[t]}`,e,r,this.animationValues);e.render();for(let t in r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}applyProjectionStyles(e,t){if(!this.instance||this.isSVG)return;if(!this.isVisible){e.visibility=`hidden`;return}let n=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,e.visibility=``,e.opacity=``,e.pointerEvents=Ll(t?.pointerEvents)||``,e.transform=n?n(this.latestValues,``):`none`;return}let r=this.getLead();if(!this.projectionDelta||!this.layout||!r.target){this.options.layoutId&&(e.opacity=this.latestValues.opacity===void 0?1:this.latestValues.opacity,e.pointerEvents=Ll(t?.pointerEvents)||``),this.hasProjected&&!ts(this.latestValues)&&(e.transform=n?n({},``):`none`,this.hasProjected=!1);return}e.visibility=``;let i=r.animationValues||r.latestValues;this.applyTransformsToTarget();let a=wl(this.projectionDeltaWithTransform,this.treeScale,i);n&&(a=n(i,a)),e.transform=a;let{x:o,y:s}=this.projectionDelta;e.transformOrigin=`${o.origin*100}% ${s.origin*100}% 0`,e.opacity=r.animationValues?r===this?i.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:i.opacityExit:r===this?i.opacity===void 0?``:i.opacity:i.opacityExit===void 0?0:i.opacityExit;for(let t in Ac){if(i[t]===void 0)continue;let{correct:n,applyTo:o,isCSSVariable:s}=Ac[t],c=a===`none`?i[t]:n(i[t],r);if(o){let t=o.length;for(let n=0;n<t;n++)e[o[n]]=c}else s?this.options.visualElement.renderState.vars[t]=c:e[t]=c}this.options.layoutId&&(e.pointerEvents=r===this?Ll(t?.pointerEvents)||``:`none`)}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach($l),this.root.sharedNodes.clear()}}}function Jl(e){e.updateLayout()}function Yl(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners(`didUpdate`)){let{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,a=t.source!==e.layout.source;if(i===`size`)bl(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],i=Qc(r);r.min=n[e].min,r.max=r.min+i});else if(i===`x`||i===`y`){let e=i===`x`?`y`:`x`;Gc(a?t.measuredBox[e]:t.layoutBox[e],n[e])}else yu(i,t.layoutBox,n)&&bl(r=>{let i=a?t.measuredBox[r]:t.layoutBox[r],o=Qc(n[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=sc();tl(o,n,t.layoutBox);let s=sc();a?tl(s,e.applyTransform(r,!0),t.measuredBox):tl(s,n,t.layoutBox);let c=!pl(o),l=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:a}=r;if(i&&a){let o=e.options.layoutAnchor||void 0,s=lc();al(s,t.layoutBox,i.layoutBox,o);let c=lc();al(c,n,a.layoutBox,o),_l(s,c)||(l=!0),r.options.layoutRoot&&(e.relativeTarget=c,e.relativeTargetOrigin=s,e.relativeParent=r)}}}e.notifyListeners(`didUpdate`,{layout:n,snapshot:t,delta:s,layoutDelta:o,hasLayoutChanged:c,hasRelativeLayoutChanged:l})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function Xl(e){rc.value&&Vl.nodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty),e.isTransformDirty||=e.parent.isTransformDirty)}function Zl(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Ql(e){e.clearSnapshot()}function $l(e){e.clearMeasurements()}function eu(e){e.isLayoutDirty=!0,e.updateLayout()}function tu(e){e.isLayoutDirty=!1}function nu(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function ru(e){e.relativeTarget&&e.relativeParent?.isLayoutDirty&&(e.currentAnimation?e.isLayoutDirty=!0:(e.targetDelta=void 0,e.removeRelativeTarget()))}function iu(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(`BeforeLayoutMeasure`),e.resetTransform()}function au(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function ou(e){e.resolveTargetDelta()}function su(e){e.calcProjection()}function cu(e){e.resetSkewAndRotation()}function lu(e){e.removeLeadSnapshot()}function uu(e,t,n){e.translate=z(t.translate,0,n),e.scale=z(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function du(e,t,n,r){e.min=z(t.min,n.min,r),e.max=z(t.max,n.max,r)}function fu(e,t,n,r){du(e.x,t.x,n.x,r),du(e.y,t.y,n.y,r)}function pu(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var mu={duration:.45,ease:[.4,0,.1,1]},hu=e=>typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),gu=hu(`applewebkit/`)&&!hu(`chrome/`)?Math.round:pt;function _u(e){e.min=gu(e.min),e.max=gu(e.max)}function vu(e){_u(e.x),_u(e.y)}function yu(e,t,n){return e===`position`||e===`preserve-aspect`&&!$c(vl(t),vl(n),.2)}function bu(e){return e!==e.root&&e.scroll?.wasRoot}var xu=ql({attachResizeListener:(e,t)=>Nl(e,`resize`,t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Su=e=>!e.isLayoutDirty&&e.willUpdate(!1);function Cu(){let e=new Set,t=new WeakMap,n=()=>e.forEach(Su);return{add:r=>{e.add(r),t.set(r,r.addEventListener(`willUpdate`,n))},remove:r=>{e.delete(r);let i=t.get(r);i&&(i(),t.delete(r)),n()},dirty:n}}var wu={current:void 0},Tu=ql({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!wu.current){let e=new xu({});e.mount(window),e.setOptions({layoutScroll:!0}),wu.current=e}return wu.current},resetTransform:(e,t)=>{e.style.transform=t===void 0?`none`:t},checkIsScrollRoot:e=>window.getComputedStyle(e).position===`fixed`}),Eu=(0,m.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:`never`});function Du(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ou(...e){return t=>{let n=!1,r=e.map(e=>{let r=Du(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Du(e[t],null)}}}}function ku(...e){return m.useCallback(Ou(...e),e)}var Au=class extends m.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(xo(t)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){let e=t.offsetParent,n=xo(e)&&e.offsetWidth||0,r=xo(e)&&e.offsetHeight||0,i=getComputedStyle(t),a=this.props.sizeRef.current;a.height=parseFloat(i.height),a.width=parseFloat(i.width),a.top=t.offsetTop,a.left=t.offsetLeft,a.right=n-a.width-a.left,a.bottom=r-a.height-a.top,a.direction=i.direction}return null}componentDidUpdate(){}render(){return this.props.children}};function ju({children:e,isPresent:t,anchorX:n,anchorY:r,root:i,pop:a}){let o=(0,m.useId)(),s=(0,m.useRef)(null),c=(0,m.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:`ltr`}),{nonce:l}=(0,m.useContext)(Eu),u=ku(s,a===!1?void 0:e.props?.ref??e?.ref);return(0,m.useInsertionEffect)(()=>{let{width:e,height:u,top:d,left:f,right:p,bottom:m,direction:h}=c.current;if(t||a===!1||!s.current||!e||!u)return;let g=h===`rtl`,_=n===`left`?g?`right: ${p}`:`left: ${f}`:g?`left: ${f}`:`right: ${p}`,v=r===`bottom`?`bottom: ${m}`:`top: ${d}`;s.current.dataset.motionPopId=o;let y=document.createElement(`style`);l&&(y.nonce=l);let b=i??document.head;return b.appendChild(y),y.sheet&&y.sheet.insertRule(`
|
|
2
2
|
[data-motion-pop-id="${o}"] {
|
|
3
3
|
position: absolute !important;
|
|
4
4
|
width: ${e}px !important;
|
|
@@ -6,18 +6,18 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
6
6
|
${_}px !important;
|
|
7
7
|
${v}px !important;
|
|
8
8
|
}
|
|
9
|
-
`),()=>{s.current?.removeAttribute(`data-motion-pop-id`),b.contains(y)&&b.removeChild(y)}},[t]),(0,h.jsx)(Du,{isPresent:t,childRef:s,sizeRef:c,pop:a,children:a===!1?e:m.cloneElement(e,{ref:u})})}var ku=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:o,anchorX:s,anchorY:c,root:l})=>{let u=$e(Au),d=(0,m.useId)(),f=(0,m.useRef)(n),p=(0,m.useRef)(r);et(()=>{f.current=n,p.current=r});let g=!0,_=(0,m.useMemo)(()=>(g=!1,{id:d,initial:t,isPresent:n,custom:i,onExitComplete:e=>{u.set(e,!0);for(let e of u.values())if(!e)return;r&&r()},register:e=>(u.set(e,!1),()=>{u.delete(e),!f.current&&!u.size&&p.current?.()})}),[n,u,r]);return a&&g&&(_={..._}),(0,m.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[n]),m.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),e=(0,h.jsx)(Ou,{pop:o===`popLayout`,isPresent:n,anchorX:s,anchorY:c,root:l,children:e}),(0,h.jsx)(tt.Provider,{value:_,children:e})};function Au(){return new Map}function ju(e=!0){let t=(0,m.useContext)(tt);if(t===null)return[!0,null];let{isPresent:n,onExitComplete:r,register:i}=t,a=(0,m.useId)();(0,m.useEffect)(()=>{if(e)return i(a)},[e]);let o=(0,m.useCallback)(()=>e&&r&&r(a),[a,r,e]);return!n&&r?[!1,o]:[!0]}function Mu(){return Nu((0,m.useContext)(tt))}function Nu(e){return e===null||e.isPresent}var Pu=e=>e.key||``;function Fu(e){let t=[];return m.Children.forEach(e,e=>{(0,m.isValidElement)(e)&&t.push(e)}),t}var V=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:a=`sync`,propagate:o=!1,anchorX:s=`left`,anchorY:c=`top`,root:l})=>{let[u,d]=ju(o),f=(0,m.useMemo)(()=>Fu(e),[e]),p=o&&!u?[]:f.map(Pu),g=(0,m.useRef)(!0),_=$e(()=>new Map),v=(0,m.useRef)(new Set),[y,b]=(0,m.useState)(f),[x,S]=(0,m.useState)(f);et(()=>{o&&!u&&!x.length&&d?.()},[u,o,x.length,d]),et(()=>{g.current=!1;for(let e=0;e<x.length;e++){let t=Pu(x[e]);p.includes(t)?(_.delete(t),v.current.delete(t)):_.get(t)!==!0&&_.set(t,!1)}},[x,p.length,p.join(`-`)]);let C=[];if(f!==y){let e=[...f],t=0;for(let n of x){let r=p.indexOf(Pu(n));r===-1?(e.splice(t++,0,n),C.push(n)):t=r+C.length+1}return C.every(e=>_.get(Pu(e)))?e=f:a===`wait`&&(e=C),S(Fu(e)),b(f),null}let{forceRender:w}=(0,m.useContext)(Qe);return(0,h.jsx)(h.Fragment,{children:x.map(e=>{let m=Pu(e),y=o&&!u?!1:f===x||p.includes(m);return(0,h.jsx)(ku,{isPresent:y,initial:!g.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:a,root:l,onExitComplete:y?void 0:()=>{if(v.current.has(m))return;if(_.has(m))v.current.add(m),_.set(m,!0);else return;let e=!0;_.forEach(t=>{t||(e=!1)}),e&&(w?.(),b([]),o&&d?.(),r&&r())},anchorX:s,anchorY:c,children:e},m)})})},Iu=(0,m.createContext)(null);function Lu(){let e=(0,m.useRef)(!1);return et(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function Ru(){let e=Lu(),[t,n]=(0,m.useState)(0),r=(0,m.useCallback)(()=>{e.current&&n(t+1)},[t]);return[(0,m.useCallback)(()=>B.postRender(r),[r]),t]}var zu=e=>e===!0,Bu=e=>zu(e===!0)||e===`id`,Vu=({children:e,id:t,inherit:n=!0})=>{let r=(0,m.useContext)(Qe),i=(0,m.useContext)(Iu),[a,o]=Ru(),s=(0,m.useRef)(null),c=r.id||i;s.current===null&&(Bu(n)&&c&&(t=t?c+`-`+t:c),s.current={id:t,group:zu(n)&&r.group||bu()});let l=(0,m.useMemo)(()=>({...s.current,forceRender:a}),[o]);return(0,h.jsx)(Qe.Provider,{value:l,children:e})},Hu=(0,m.createContext)({strict:!1}),Uu={animation:[`animate`,`variants`,`whileHover`,`whileTap`,`exit`,`whileInView`,`whileFocus`,`whileDrag`],exit:[`exit`],drag:[`drag`,`dragControls`],focus:[`whileFocus`],hover:[`whileHover`,`onHoverStart`,`onHoverEnd`],tap:[`whileTap`,`onTap`,`onTapStart`,`onTapCancel`],pan:[`onPan`,`onPanStart`,`onPanSessionStart`,`onPanEnd`],inView:[`whileInView`,`onViewportEnter`,`onViewportLeave`],layout:[`layout`,`layoutId`]},Wu=!1;function Gu(){if(Wu)return;let e={};for(let t in Uu)e[t]={isEnabled:e=>Uu[t].some(t=>!!e[t])};xc(e),Wu=!0}function Ku(){return Gu(),Sc()}function qu(e){let t=Ku();for(let n in e)t[n]={...t[n],...e[n]};xc(t)}var Ju=(0,m.createContext)({});function Yu(e,t){if(fc(e)){let{initial:t,animate:n}=e;return{initial:t===!1||lc(t)?t:void 0,animate:lc(n)?n:void 0}}return e.inherit===!1?{}:t}function Xu(e){let{initial:t,animate:n}=Yu(e,(0,m.useContext)(Ju));return(0,m.useMemo)(()=>({initial:t,animate:n}),[Zu(t),Zu(n)])}function Zu(e){return Array.isArray(e)?e.join(` `):e}var Qu=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function $u(e,t,n){for(let r in t)!Wa(t[r])&&!Oc(r,n)&&(e[r]=t[r])}function ed({transformTemplate:e},t){return(0,m.useMemo)(()=>{let n=Qu();return Io(n,t,e),Object.assign({},n.vars,n.style)},[t])}function td(e,t){let n=e.style||{},r={};return $u(r,n,e),Object.assign(r,ed(e,t)),r}function nd(e,t){let n={},r=td(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.touchAction=e.drag===!0?`none`:`pan-${e.drag===`x`?`y`:`x`}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}var rd=()=>({...Qu(),attrs:{}});function id(e,t,n,r){let i=(0,m.useMemo)(()=>{let n=rd();return Vo(n,t,Nc(r),e.transformTemplate,e.style),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};$u(t,e.style,e),i.style={...t,...i.style}}return i}var ad=new Set(`animate.exit.variants.initial.style.values.transition.transformTemplate.custom.inherit.onBeforeLayoutMeasure.onAnimationStart.onAnimationComplete.onUpdate.onDragStart.onDrag.onDragEnd.onMeasureDragConstraints.onDirectionLock.onDragTransitionEnd._dragX._dragY.onHoverStart.onHoverEnd.onViewportEnter.onViewportLeave.globalTapTarget.propagate.ignoreStrict.viewport`.split(`.`));function od(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||ad.has(e)}function sd(e,t){return e.startsWith(`on`)?!od(e):t?.(e)??!od(e)}function cd(e,t,n,r){let i={};for(let a in e)(a!==`values`||typeof e.values!=`object`)&&(Wa(e[a])||(sd(a,r)||n===!0&&od(a)||!t&&!od(a)||e.draggable&&a.startsWith(`onDrag`))&&(i[a]=e[a]));return i}var ld=[`animate`,`circle`,`defs`,`desc`,`ellipse`,`g`,`image`,`line`,`filter`,`marker`,`mask`,`metadata`,`path`,`pattern`,`polygon`,`polyline`,`rect`,`stop`,`switch`,`symbol`,`svg`,`text`,`tspan`,`use`,`view`];function ud(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(ld.indexOf(e)>-1||/[A-Z]/u.test(e))}function dd(e,t,n,{latestValues:r},i,a=!1,o,s){let c=(o??ud(e)?id:nd)(t,r,i,e),l=cd(t,typeof e==`string`,a,s),u=e===m.Fragment?{}:{...l,...c,ref:n},{children:d}=t,f=(0,m.useMemo)(()=>Wa(d)?d.get():d,[d]);return(0,m.createElement)(e,{...u,children:f})}function fd({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:pd(n,r,i,e),renderState:t()}}function pd(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=Pl(a[e]);let{initial:o,animate:s}=e,c=fc(e),l=pc(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!cc(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=Ia(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var md=e=>(t,n)=>{let r=(0,m.useContext)(Ju),i=(0,m.useContext)(tt),a=()=>fd(e,t,r,i);return n?a():$e(a)},hd=md({scrapeMotionValuesFromProps:kc,createRenderState:Qu}),gd=md({scrapeMotionValuesFromProps:Fc,createRenderState:rd}),_d=Symbol.for(`motionComponentSymbol`);function vd(e,t,n){let r=(0,m.useRef)(n);(0,m.useInsertionEffect)(()=>{r.current=n});let i=(0,m.useRef)(null);return(0,m.useCallback)(n=>{n&&e.onMount?.(n),t&&(n?t.mount(n):t.unmount());let a=r.current;if(typeof a==`function`){if(n){let e=a(n);typeof e==`function`&&(i.current=e)}else i.current?(i.current(),i.current=null):a(n)}else a&&(a.current=n)},[t])}var yd=(0,m.createContext)({});function bd(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}function xd(e,t,n,r,i,a){let{visualElement:o}=(0,m.useContext)(Ju),s=(0,m.useContext)(Hu),c=(0,m.useContext)(tt),l=(0,m.useContext)(Cu),u=l.reducedMotion,d=l.skipAnimations,f=(0,m.useRef)(null),p=(0,m.useRef)(!1);r||=s.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:o,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:u,skipAnimations:d,isSVG:a}),p.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));let h=f.current,g=(0,m.useContext)(yd);h&&!h.projection&&i&&(h.type===`html`||h.type===`svg`)&&Sd(f.current,n,i,g);let _=(0,m.useRef)(!1);(0,m.useInsertionEffect)(()=>{h&&_.current&&h.update(n,c)});let v=n[Ja],y=(0,m.useRef)(!!v&&typeof window<`u`&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return et(()=>{p.current&&h&&(h.animationState?.animateChanges(),h.enteringChildren=void 0)},[]),et(()=>{p.current=!0,h&&(_.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),h.scheduleRenderMicrotask(),y.current&&h.animationState&&h.animationState.animateChanges())}),(0,m.useEffect)(()=>{h&&(!y.current&&h.animationState&&h.animationState.animateChanges(),y.current&&=(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),!1),h.enteringChildren=void 0)}),h}function Sd(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l,layoutAnchor:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:Cd(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&bd(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:l,layoutAnchor:u})}function Cd(e){if(e)return e.options.allowProjection===!1?Cd(e.parent):e.projection}function wd(e,{forwardMotionProps:t=!1,type:n}={},r,i){r&&qu(r);let a=n?n===`svg`:ud(e),o=a?gd:hd;function s(n,s){let c,l={...(0,m.useContext)(Cu),...n,layoutId:Td(n)},{isStatic:u,isValidProp:d}=l,f=Xu(n),p=o(n,u);if(!u&&typeof window<`u`){Ed(l,r);let t=Dd(l);c=t.MeasureLayout,f.visualElement=xd(e,p,l,i,t.ProjectionNode,a)}return(0,h.jsxs)(Ju.Provider,{value:f,children:[c&&f.visualElement?(0,h.jsx)(c,{visualElement:f.visualElement,...l}):null,dd(e,n,vd(p,f.visualElement,s),p,u,t,a,d)]})}s.displayName=`motion.${typeof e==`string`?e:`create(${e.displayName??e.name??``})`}`;let c=(0,m.forwardRef)(s);return c[_d]=e,c}function Td({layoutId:e}){let t=(0,m.useContext)(Qe).id;return t&&e!==void 0?t+`-`+e:e}function Ed(e,t){(0,m.useContext)(Hu).strict}function Dd(e){let{drag:t,layout:n}=Ku();if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function Od(e,t){if(typeof Proxy>`u`)return wd;let n=new Map,r=(n,r)=>wd(n,r,e,t);return new Proxy((e,t)=>r(e,t),{get:(i,a)=>a===`create`?r:(n.has(a)||n.set(a,wd(a,void 0,e,t)),n.get(a))})}var kd=(e,t)=>t.isSVG??ud(e)?new Ic(t):new jc(t,{allowProjection:e!==m.Fragment}),Ad=class extends Tc{constructor(e){super(e),e.animationState||=zc(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();cc(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}},jd=0,Md={animation:{Feature:Ad},exit:{Feature:class extends Tc{constructor(){super(...arguments),this.id=jd++}update(){let{presenceContext:e,prevPresenceContext:t,animationState:n}=this.node;if(!e||!n)return;let{isPresent:r,onExitComplete:i}=e,a=t?.isPresent;if(r===a)return;if(r&&a===!1){if(this.exit===!0){let{initial:e}=this.node.getProps();if(e&&!Array.isArray(e)){let{transition:t,transitionEnd:n,...r}=La(this.node,e)||{};for(let e in r)this.node.getValue(e)?.jump(r[e])}this.node.blockInitialAnimation=!1,n.reset(),n.animateChanges()}else n.setActive(`exit`,!1);this.exit=void 0;return}let o=this.exit=n.setActive(`exit`,!r);i&&!r&&o.then(()=>{this.exit===o&&(this.exit=!0,i(this.id))})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}}};function Nd(e){return{point:{x:e.pageX,y:e.pageY}}}var Pd=e=>t=>Os(t)&&e(t,Nd(t));function Fd(e,t,n,r){return Al(e,t,Pd(n),r)}var Id=({current:e})=>e?e.ownerDocument.defaultView:null,Ld=(e,t)=>Math.abs(e-t);function Rd(e,t){let n=Ld(e.x,t.x),r=Ld(e.y,t.y);return Math.sqrt(n**2+r**2)}var zd=new Set([`auto`,`scroll`]),Bd=class{constructor(e,t,{transformPagePoint:n,contextWindow:r=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.hasPendingMove=!1,this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Vd(this.lastRawMoveEventInfo,this.transformPagePoint));let e=Ud(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=Rd(e.offset,{x:0,y:0})>=this.distanceThreshold;if(!t&&!n)return;let{point:r}=e;this.history.push({...r,timestamp:Wt.now()});let{onStart:i,onMove:a}=this.handlers;t||(i&&i(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),a&&a(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=Vd(t,this.transformPagePoint),this.hasPendingMove=!0,B.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.hasPendingMove&&this.updatePoint(),this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=Ud(e.type===`pointercancel`?this.lastMoveEventInfo:Vd(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!Os(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.distanceThreshold=a,this.contextWindow=r||window;let s=Vd(Nd(e),this.transformPagePoint),{point:c}=s,{timestamp:l}=Vt;this.history=[{...c,timestamp:l}];let{onSessionStart:u}=t;u&&u(e,Ud(s,this.history));let d={passive:!0,capture:!0};this.removeListeners=dt(Fd(this.contextWindow,`pointermove`,this.handlePointerMove,d),Fd(this.contextWindow,`pointerup`,this.handlePointerUp,d),Fd(this.contextWindow,`pointercancel`,this.handlePointerUp,d)),o&&this.startScrollTracking(o)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(zd.has(e.overflowX)||zd.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.addEventListener(`scroll`,this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.removeEventListener(`scroll`,this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let n=e===window,r=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},i={x:r.x-t.x,y:r.y-t.y};(i.x!==0||i.y!==0)&&(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(e,r),B.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),cr(this.updatePoint)}};function Vd(e,t){return t?{point:t(e.point)}:e}function Hd(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ud({point:e},t){return{point:e,delta:Hd(e,Gd(t)),offset:Hd(e,Wd(t)),velocity:Kd(t,.1)}}function Wd(e){return e[0]}function Gd(e){return e[e.length-1]}function Kd(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=Gd(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>mt(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>mt(t)*2&&(r=e[1]);let a=ht(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function qd(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?z(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?z(n,e,r.max):Math.min(e,n)),e}function Jd(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function Yd(e,{top:t,left:n,bottom:r,right:i}){return{x:Jd(e.x,n,i),y:Jd(e.y,t,r)}}function Xd(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function Zd(e,t){return{x:Xd(e.x,t.x),y:Xd(e.y,t.y)}}function Qd(e,t){let n=.5,r=Yc(e),i=Yc(t);return i>r?n=ft(t.min,t.max-r,e.min):r>i&&(n=ft(e.min,e.max-i,t.min)),it(0,1,n)}function $d(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}var ef=.35;function tf(e=ef){return e===!1?e=0:e===!0&&(e=ef),{x:nf(e,`left`,`right`),y:nf(e,`top`,`bottom`)}}function nf(e,t,n){return{min:rf(e,t),max:rf(e,n)}}function rf(e,t){return typeof e==`number`?e:e[t]||0}var af=new WeakMap,of=class{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=oc(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:n}={}){let{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;let i=e=>{t&&this.snapToCursor(e),this.stopAnimation()},a=(e,t)=>{let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();if(n&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Cs(n),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),_l(e=>{let t=this.getAxisMotionValue(e).get()||0;if(mn.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=Yc(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&B.update(()=>i(e,t),!1,!0),Ka(this.visualElement,`transform`);let{animationState:a}=this.visualElement;a&&a.setActive(`whileDrag`,!0)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openDragLock)return;let{offset:o}=t;if(r&&this.currentDirection===null){this.currentDirection=uf(o),this.currentDirection!==null&&i&&i(this.currentDirection);return}this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&B.update(()=>a(e,t),!1,!0)},s=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:l}=this.getProps();this.panSession=new Bd(e,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:s,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,distanceThreshold:n,contextWindow:Id(this.visualElement),element:this.visualElement.current})}stop(e,t){let n=e||this.latestPointerEvent,r=t||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!r||!n)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:o}=this.getProps();o&&B.postRender(()=>o(n,r))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive(`whileDrag`,!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!lf(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=qd(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&bd(e)?this.constraints||=this.resolveRefConstraints():this.constraints=e&&n?Yd(n.layoutBox,e):!1,this.elastic=tf(t),r!==this.constraints&&!bd(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&_l(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=$d(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!bd(e))return!1;let n=e.current,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;r.root&&(r.root.scroll=void 0,r.root.updateScroll());let i=ps(n,r.root,this.visualElement.getTransformPagePoint()),a=Zd(r.layout.layoutBox,i);if(t){let e=t(Jo(a));this.hasMutatedConstraints=!!e,e&&(a=qo(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=_l(o=>{if(!lf(o,t,this.currentDirection))return;let c=s&&s[o]||{};(a===!0||a===o)&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return Ka(this.visualElement,e),n.start(ja(e,n,0,t,this.visualElement,!1))}stopAnimation(){_l(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`;return this.visualElement.getProps()[t]||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor({clientX:e,clientY:t}){let{drag:n}=this.getProps(),r={x:e,y:t},i=this.visualElement.getTransformPagePoint()?.(r)||r,a=this.visualElement.measureViewportBox();_l(e=>{if(!lf(e,n,this.currentDirection))return;let t=this.getAxisMotionValue(e),{min:r,max:o}=a[e];t.set((t.get()||0)+i[e]-z(r,o,.5))})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!bd(t)||!n||!this.constraints)return;this.stopAnimation();let r=this.constraints,i={x:0,y:0};_l(e=>{let t=this.getAxisMotionValue(e).get();i[e]=Qd({min:t,max:t},r[e])});let{transformTemplate:a}=this.visualElement.getProps();this.visualElement.current.style.transform=a?a({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),_l(t=>{let n=this.getAxisMotionValue(t);if(!lf(t,e,null)||!n.get())return;let{min:r,max:a}=this.constraints[t];n.set(z(r,a,i[t]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;af.set(this.visualElement,this);let e=this.visualElement.current,t=Fd(e,`pointerdown`,t=>{let{drag:n,dragListener:r=!0}=this.getProps(),i=t.target,a=i!==e&&Ms(i);n&&r&&!a&&this.start(t)}),n,r=()=>{let{dragConstraints:t}=this.getProps();bd(t)&&t.current&&(this.constraints=this.resolveRefConstraints(),n||=cf(e,t.current,()=>this.scalePositionWithinConstraints()))},{projection:i}=this.visualElement,a=i.addEventListener(`measure`,r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),B.read(r);let o=Al(window,`resize`,()=>this.scalePositionWithinConstraints()),s=i.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(_l(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{o(),t(),a(),s&&s(),n&&n()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=ef,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function sf(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function cf(e,t,n){let r=$s(e,sf(n)),i=$s(t,sf(n));return()=>{r(),i()}}function lf(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function uf(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var df=class extends Tc{constructor(e){super(e),this.removeGroupControls=ut,this.removeListeners=ut,this.controls=new of(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ut}update(){let{dragControls:e}=this.node.getProps(),{dragControls:t}=this.node.prevProps||{};e!==t&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},ff=e=>(t,n)=>{e&&B.update(()=>e(t,n),!1,!0)},pf=class extends Tc{constructor(){super(...arguments),this.removePointerDownListener=ut}onPointerDown(e){this.session=new Bd(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Id(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:ff(e),onStart:ff(t),onMove:ff(n),onEnd:(e,t)=>{delete this.session,r&&B.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=Fd(this.node.current,`pointerdown`,e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}},mf=!1,hf=class extends m.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:i}=e;i&&(t.group&&t.group.add(i),n&&n.register&&r&&n.register(i),mf&&i.root.didUpdate(),i.addEventListener(`animationComplete`,()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),Ll.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:n,drag:r,isPresent:i}=this.props,{projection:a}=n;return a?(a.isPresent=i,e.layoutDependency!==t&&a.setOptions({...a.options,layoutDependency:t}),mf=!0,r||e.layoutDependency!==t||t===void 0||e.isPresent!==i?a.willUpdate():this.safeToRemove(),e.isPresent!==i&&(i?a.promote():a.relegate()||B.postRender(()=>{let e=a.getStack();(!e||!e.members.length)&&this.safeToRemove()})),null):null}componentDidUpdate(){let{visualElement:e,layoutAnchor:t}=this.props,{projection:n}=e;n&&(n.options.layoutAnchor=t,n.root.didUpdate(),ys.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;mf=!0,r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}};function gf(e){let[t,n]=ju(),r=(0,m.useContext)(Qe);return(0,h.jsx)(hf,{...e,layoutGroup:r,switchLayoutGroup:(0,m.useContext)(yd),isPresent:t,safeToRemove:n})}var _f={pan:{Feature:pf},drag:{Feature:df,ProjectionNode:Su,MeasureLayout:gf}};function vf(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&B.postRender(()=>i(t,Nd(t)))}var yf=class extends Tc{mount(){let{current:e}=this.node;e&&(this.unmount=Es(e,(e,t)=>(vf(this.node,t,`Start`),e=>vf(this.node,e,`End`))))}unmount(){}},bf=class extends Tc{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}e&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!1),this.isActive=!1)}mount(){this.unmount=dt(Al(this.node.current,`focus`,()=>this.onFocus()),Al(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function xf(e,t,n){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&B.postRender(()=>i(t,Nd(t)))}var Sf=class extends Tc{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:n}=this.node.props;this.unmount=zs(e,(e,t)=>(xf(this.node,t,`Start`),(e,{success:t})=>xf(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:t,stopPropagation:n?.tap===!1})}unmount(){}},Cf=new WeakMap,wf=new WeakMap,Tf=e=>{let t=Cf.get(e.target);t&&t(e)},Ef=e=>{e.forEach(Tf)};function Df({root:e,...t}){let n=e||document;wf.has(n)||wf.set(n,{});let r=wf.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Ef,{root:e,...t})),r[i]}function Of(e,t,n){let r=Df(t);return Cf.set(e,n),r.observe(e),()=>{Cf.delete(e),r.unobserve(e)}}var kf={some:0,all:1},Af=class extends Tc{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:kf[r]},o=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)};this.stopObserver=Of(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(jf(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function jf({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var Mf={inView:{Feature:Af},tap:{Feature:Sf},focus:{Feature:bf},hover:{Feature:yf}},Nf={layout:{ProjectionNode:Su,MeasureLayout:gf}},Pf=Od({...Md,...Mf,..._f,...Nf},kd);function Ff(e){let t=$e(()=>xa(e)),{isStatic:n}=(0,m.useContext)(Cu);if(n){let[,n]=(0,m.useState)(e);(0,m.useEffect)(()=>t.on(`change`,n),[])}return t}function H(){!gc.current&&vc();let[e]=(0,m.useState)(hc.current);return e}function If(e){return typeof e==`object`&&!Array.isArray(e)}function Lf(e,t,n,r){return e==null?[]:typeof e==`string`&&If(t)?xo(e,n,r):e instanceof NodeList?Array.from(e):Array.isArray(e)?e.filter(e=>e!=null):[e]}function Rf(e,t,n){return e*(t+1)+n*t}function zf(e,t,n,r){return typeof t==`number`?t:t.startsWith(`-`)||t.startsWith(`+`)?Math.max(0,e+parseFloat(t)):t===`<`?n:t.startsWith(`<`)?Math.max(0,n+parseFloat(t.slice(1))):r.get(t)??e}function Bf(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];i.at>t&&i.at<n&&(rt(e,i),r--)}}function Vf(e,t,n,r,i,a){Bf(e,i,a);for(let o=0;o<t.length;o++)e.push({value:t[o],at:z(i,a,r[o]),easing:It(n,o)})}function Hf(e,t,n=0){let r=t+1+t*n;for(let t=0;t<e.length;t++)e[t]=e[t]/r}function Uf(e,t){return e.at===t.at?e.value===null?1:t.value===null?-1:0:e.at-t.at}var Wf=`easeInOut`,Gf=20;function Kf(e,{defaultTransition:t={},...n}={},r,i){let a=t.duration||.3,o=new Map,s=new Map,c={},l=new Map,u=0,d=0,f=0;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o==`string`){l.set(o,d);continue}if(!Array.isArray(o)){l.set(o.name,zf(d,o.at,u,l));continue}let[p,m,h={}]=o;h.at!==void 0&&(d=zf(d,h.at,u,l));let g=0,_=(e,n,r,o=0,s=0)=>{let c=Yf(e),{delay:l=0,times:u=jr(c),type:p=t.type||`keyframes`,repeat:m,repeatType:h,repeatDelay:_=0,...v}=n,{ease:y=t.ease||`easeOut`,duration:b}=n,x=typeof l==`function`?l(o,s):l,S=c.length,C=qi(p)?p:i?.[p||`keyframes`];if(S<=2&&C){let e=100;if(S===2&&Qf(c)){let t=c[1]-c[0];e=Math.abs(t)}let n={...t,...v};b!==void 0&&(n.duration=mt(b));let r=mr(n,e,C);y=r.ease,b=r.duration}b??=a;let w=d+x;u.length===1&&u[0]===0&&(u[1]=1);let T=u.length-c.length;if(T>0&&Ar(u,T),c.length===1&&c.unshift(null),m&&`${m}${Gf}`,m&&m<Gf){let e=b>0?_/b:0;b=Rf(b,m,_);let t=[...c],n=[...u];y=Array.isArray(y)?[...y]:[y];let r=[...y],i=h===`reverse`||h===`mirror`,a=t,o=r;i&&(a=[...t].reverse(),h===`reverse`&&(o=[...r].reverse().map(e=>typeof e==`function`?wt(e):e)));for(let s=0;s<m;s++){let l=i&&s%2==0,d=l?a:t,f=l?o:r,p=(s+1)*(1+e);e>0&&(c.push(c[c.length-1]),u.push(p),y.push(`linear`)),c.push(...d);for(let e=0;e<d.length;e++)u.push(n[e]+p),y.push(e===0?`linear`:It(f,e-1))}Hf(u,m,e)}let E=w+b;Vf(r,c,y,u,w,E),g=Math.max(x+b,g),f=Math.max(E,f)};if(Wa(p)){let e=qf(p,s);_(m,h,Jf(`default`,e))}else{let e=Lf(p,m,r,c),t=e.length;for(let n=0;n<t;n++){m=m,h=h;let r=e[n],i=qf(r,s);for(let e in m)_(m[e],Xf(h,e),Jf(e,i),n,t)}}u=d,d+=g}return s.forEach((e,r)=>{for(let i in e){let a=e[i];a.sort(Uf);let s=[],c=[],l=[];for(let e=0;e<a.length;e++){let{at:t,value:n,easing:r}=a[e];s.push(n),c.push(ft(0,f,t)),l.push(r||`easeOut`)}c[0]!==0&&(c.unshift(0),s.unshift(s[0]),l.unshift(Wf)),c[c.length-1]!==1&&(c.push(1),s.push(null)),o.has(r)||o.set(r,{keyframes:{},transition:{}});let u=o.get(r);u.keyframes[i]=s;let{type:d,...p}=t;u.transition[i]={...p,duration:f,ease:l,times:c,...n}}}),o}function qf(e,t){return!t.has(e)&&t.set(e,{}),t.get(e)}function Jf(e,t){return t[e]||(t[e]=[]),t[e]}function Yf(e){return Array.isArray(e)?e:[e]}function Xf(e,t){return e&&e[t]?{...e,...e[t]}:{...e}}var Zf=e=>typeof e==`number`,Qf=e=>e.every(Zf);function $f(e,t){return Wa(e)||typeof e==`number`||typeof e==`string`&&!If(t)}function ep(e,t,n,r){let i=[];if($f(e,t))i.push(kl(e,If(t)&&t.default||t,n&&(n.default||n)));else{if(e==null)return i;let a=Lf(e,t,r),o=a.length;for(let e=0;e<o;e++){let r=a[e],s={...n};`delay`in s&&typeof s.delay==`function`&&(s.delay=s.delay(e,o)),r instanceof Element?i.push(..._s(r,t,s,sc.get(r))):i.push(...go(mo(r)??vs,r,t,s))}}return i}function tp(e,t,n){let r=[];return Kf(e.map(e=>{if(Array.isArray(e)&&typeof e[0]==`function`){let t=e[0],n=xa(0);return n.on(`change`,t),e.length===1?[n,[0,1]]:e.length===2?[n,[0,1],e[1]]:[n,e[1],e[2]]}return e}),t,n,{spring:Er}).forEach(({keyframes:e,transition:t},n)=>{r.push(...ep(n,e,t))}),r}function np(e){return Array.isArray(e)&&e.some(Array.isArray)}function rp(e={}){let{scope:t,reduceMotion:n,skipAnimations:r}=e;function i(e,i,a){let o=[],s,c={};if(n!==void 0&&(c.reduceMotion=n),r!==void 0&&(c.skipAnimations=r),np(e)){let{onComplete:n,...r}=i||{};typeof n==`function`&&(s=n),o=tp(e,{...c,...r},t)}else{let{onComplete:n,...r}=a||{};typeof n==`function`&&(s=n),o=ep(e,i,{...c,...r},t)}let l=new ha(o);return s&&l.finished.then(s),t&&(t.animations.push(l),l.finished.then(()=>{rt(t.animations,l)})),l}return i}var ip=Object.assign(rp(),{addEffect:fo,removeEffect:po}),U=Pf,ap=o((e=>{var t=d();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`),o=Symbol.for(`react.recoverable`),s=Symbol.for(`react.optimistic_key`);function c(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:r===s?s:``+r,children:e,containerInfo:t,implementation:n}}var l=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:o,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return c(e,t,null,r)},e.flushSync=function(e){var t=l.T,n=i.p;try{if(l.T=null,i.p=2,e)return e()}finally{l.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=u(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=u(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},e.useFormStatus=function(){return l.H.useHostTransitionStatus()},e.version=`19.3.0`})),op=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ap()})),sp=[`none`,`requests`,`tokens`,`cost`,`quota`,`alerts`];function cp(){return typeof window>`u`?void 0:window.__ASTRA__}function lp(e=cp()){return e?.shell===`desktop`?`desktop`:`web`}function up(e=cp(),t=globalThis.navigator){if(e?.platform)return e.platform;let n=`${t?.userAgent??``} ${t?.platform??``}`.toLowerCase();return n.includes(`mac`)?`darwin`:n.includes(`win`)?`win32`:n.includes(`linux`)?`linux`:`other`}function dp(e=globalThis.navigator){let t=e?.userAgent??``;return/Chrome\/|Electron\//.test(t)}var fp=lp(),pp=up(),mp=fp===`desktop`,hp=pp===`darwin`;function gp(e=mp,t=pp){return e&&t===`darwin`?78:68}function _p(e=document.documentElement){e.dataset.shell=fp,e.dataset.platform=pp,dp()&&e.classList.add(`refract`)}var vp=hp?`⌘`:`Ctrl+`,yp=class extends Error{status;details;constructor(e,t,n){super(e),this.status=t,this.details=n,this.name=`ApiError`}get isNetwork(){return this.status===0}};function bp(){return cp()?.apiBase.replace(/\/+$/,``)??``}async function W(e,t,n,r){let i={Accept:`application/json`};e!==`GET`&&(i[`X-Astra-Admin`]=`1`),n!==void 0&&(i[`Content-Type`]=`application/json`);let a;try{a=await fetch(bp()+t,{method:e,headers:i,body:n===void 0?void 0:JSON.stringify(n),credentials:`include`,signal:r})}catch(e){throw e?.name===`AbortError`?e:new yp(e?.message||`Network error`,0)}if(a.status===204)return;let o=await a.text(),s;if(o)try{s=JSON.parse(o)}catch{s=o}if(!a.ok){let e=s&&typeof s==`object`?s:{};throw new yp(e.error||typeof s==`string`&&s||`HTTP ${a.status}`,a.status,e.details)}return s}function xp(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}var G=encodeURIComponent;function Sp(){let e=``;return t=>{e+=t;let n=[];for(;;){let t=/\r\n\r\n|\n\n|\r\r/.exec(e);if(!t)return n;let r=e.slice(0,t.index);e=e.slice(t.index+t[0].length);let i=``,a=[];for(let e of r.split(/\r\n|\n|\r/)){if(e.startsWith(`:`))continue;let t=e.indexOf(`:`),n=t<0?e:e.slice(0,t),r=t<0?``:e.slice(t+1);r.startsWith(` `)&&(r=r.slice(1)),n===`event`?i=r:n===`data`&&a.push(r)}if(a.length===0)continue;let o=a.join(`
|
|
10
|
-
`),s=o;try{s=JSON.parse(o)}catch{}n.push({event:i,data:s})}}}async function Cp(e,t,n,r){return Tp(`POST`,e,t,n,r)}async function wp(e,t,n,r){return Tp(`GET`,e,void 0,t,n,r)}async function Tp(e,t,n,r,i,a){let o;try{o=await fetch(bp()+t,{method:e,headers:e===`POST`?{Accept:`text/event-stream`,"Content-Type":`application/json`,"X-Astra-Admin":`1`}:{Accept:`text/event-stream`},body:e===`POST`?JSON.stringify(n):void 0,credentials:`include`,signal:i})}catch(e){throw e?.name===`AbortError`?e:new yp(e?.message||`Network error`,0)}if(!o.ok||!o.body){let e=await o.text().catch(()=>``),t;if(e)try{t=JSON.parse(e)}catch{t=e}let n=t&&typeof t==`object`?t:{};throw new yp(n.error||typeof t==`string`&&t||`HTTP ${o.status}`,o.status,n.details)}a?.();let s=o.body.getReader(),c=new TextDecoder,l=Sp();for(;;){let{done:e,value:t}=await s.read();if(e)break;for(let e of l(c.decode(t,{stream:!0})))r(e)}for(let e of l(c.decode()))r(e)}var K={health:[`health`],version:[`version`],auth:[`auth`],settings:[`settings`],update:[`update`],models:(e,t)=>[`models`,e??``,t??``],model:e=>[`model`,e],priceKeys:[`price-keys`],templates:[`provider-templates`],quotaTemplates:[`provider-quota-templates`],providers:[`providers`],importSources:[`import-sources`],provider:e=>[`provider`,e],providerModels:e=>[`provider-models`,e],remoteModels:e=>[`remote-models`,e],templateUpdate:e=>[`template-update`,e],clients:[`clients`],claudeDirect:[`claude-direct`],claudeDirectRequests:e=>[`claude-direct-requests`,e],tokens:[`tokens`],clientModels:e=>[`client-models`,e],backups:e=>[`backups`,e],clientInstallJob:e=>[`client-install-job`,e],privacy:[`privacy`],privacyEvents:e=>[`privacy-events`,e],privacyEventStats:(...e)=>[`privacy-event-stats`,...e],providerAccounts:e=>[`provider-accounts`,e],subscriptionPolicy:e=>[`subscription-policy`,e],localCodexLogin:[`local-codex-login`],localCopilotLogin:[`local-copilot-login`],plugins:[`plugins`],pluginJob:e=>[`plugin-job`,e],pluginHost:[`plugin-host`],pluginMarket:[`plugin-market`],pluginSearch:e=>[`plugin-search`,e],pluginMethods:e=>[`plugin-methods`,e],pluginSignIn:(e,t)=>[`plugin-sign-in`,e,t],pluginUsage:(e,t)=>[`plugin-usage`,e,t],pluginCheckin:e=>[`plugin-checkin`,e],magpieImport:[`magpie-import`],accountImportInfo:e=>[`account-import-info`,e],resetCredits:e=>[`reset-credits`,e],requests:e=>[`requests`,e],request:e=>[`request`,e],stats:(e,...t)=>[`stats`,e,...t]},Ep=()=>I({queryKey:K.health,queryFn:({signal:e})=>W(`GET`,`/api/health`,void 0,e),refetchInterval:5e3,retry:!1}),Dp=()=>I({queryKey:K.version,queryFn:()=>W(`GET`,`/api/version`),staleTime:1/0}),Op=()=>I({queryKey:K.auth,queryFn:()=>W(`GET`,`/api/auth/status`),retry:!1});function kp(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/auth/login`,{password:e}),onSuccess:()=>e.invalidateQueries()})}function Ap(){let e=_();return L({mutationFn:()=>W(`POST`,`/api/auth/logout`),onSuccess:()=>e.invalidateQueries({queryKey:K.auth})})}var jp=()=>I({queryKey:K.settings,queryFn:()=>W(`GET`,`/api/settings`)});function Mp(){let e=_();return L({mutationFn:e=>W(`PATCH`,`/api/settings`,e),onSuccess:t=>e.setQueryData(K.settings,t)})}var Np=()=>I({queryKey:K.update,queryFn:({signal:e})=>W(`GET`,`/api/update/status`,void 0,e),refetchInterval:3e5});function Pp(){let e=_();return L({mutationFn:()=>W(`POST`,`/api/update/check`),onSuccess:t=>e.setQueryData(K.update,t)})}var Fp=(e,t)=>I({queryKey:K.models(e,t),queryFn:()=>W(`GET`,`/api/models${xp({search:e,vendor:t})}`),placeholderData:e=>e}),Ip=e=>I({queryKey:K.model(e??``),queryFn:()=>W(`GET`,`/api/models/${G(e)}`),enabled:!!e}),Lp=()=>I({queryKey:K.priceKeys,queryFn:()=>W(`GET`,`/api/price-keys`)});function Rp(e,t){e.invalidateQueries({queryKey:[`models`]}),e.invalidateQueries({queryKey:t?K.model(t):[`model`]}),e.invalidateQueries({queryKey:K.priceKeys}),e.invalidateQueries({queryKey:[`provider-models`]}),e.invalidateQueries({queryKey:[`client-models`]}),e.invalidateQueries({queryKey:[`remote-models`]})}function zp(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/models`,e),onSuccess:t=>Rp(e,t.id)})}function Bp(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/models/${G(e)}`,t),onSuccess:()=>Rp(t,e)})}function Vp(){let e=_();return L({mutationFn:e=>W(`DELETE`,`/api/models/${G(e)}`),onSuccess:()=>Rp(e)})}function Hp(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/models/${G(e)}/reset-field`,{field:t}),onSuccess:()=>Rp(t,e)})}function Up(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/models/${G(e)}/prices/${G(t.priceKey)}`,{upstreamModelId:t.upstreamModelId??null,pricing:t.pricing}),onSuccess:()=>Rp(t,e)})}function Wp(e){let t=_();return L({mutationFn:t=>W(`DELETE`,`/api/models/${G(e)}/prices/${G(t)}`),onSuccess:()=>Rp(t,e)})}var Gp=()=>L({mutationFn:()=>W(`POST`,`/api/models/sync/preview`)});function Kp(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/models/sync/apply`,{changeIds:e}),onSuccess:()=>Rp(e)})}var qp=()=>L({mutationFn:e=>W(`POST`,`/api/billing/simulate`,e)}),Jp=()=>I({queryKey:K.templates,queryFn:()=>W(`GET`,`/api/provider-templates`),staleTime:3e5}),Yp=()=>I({queryKey:K.providers,queryFn:()=>W(`GET`,`/api/providers`)}),Xp=e=>I({queryKey:K.provider(e??``),queryFn:()=>W(`GET`,`/api/providers/${G(e)}`),enabled:!!e});function Zp(e,t){e.invalidateQueries({queryKey:K.providers}),e.invalidateQueries({queryKey:t?K.provider(t):[`provider`]}),e.invalidateQueries({queryKey:K.clients}),e.invalidateQueries({queryKey:[`client-models`]})}var Qp=e=>I({queryKey:K.importSources,queryFn:()=>W(`GET`,`/api/providers/import/sources`),enabled:e,staleTime:0,gcTime:0});function $p(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers/import`,e),onSuccess:()=>{Zp(e),e.invalidateQueries({queryKey:K.importSources})}})}function em(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers`,e),onSuccess:t=>Zp(e,t.id)})}function tm(e){let t=_();return L({mutationFn:t=>W(`PATCH`,`/api/providers/${G(e)}`,t),onSuccess:n=>{t.setQueryData(K.provider(e),n),Zp(t,e),t.invalidateQueries({queryKey:K.providerModels(e)}),t.invalidateQueries({queryKey:K.remoteModels(e)})}})}function nm(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/providers/${G(e)}/model-map`,{map:t}),onSuccess:n=>{t.setQueryData(K.provider(e),n),Zp(t,e)}})}function rm(){let e=_();return L({mutationFn:e=>W(`DELETE`,`/api/providers/${G(e)}`),onSuccess:()=>Zp(e)})}var im=()=>I({queryKey:K.quotaTemplates,queryFn:()=>W(`GET`,`/api/provider-quota/templates`),staleTime:1/0});function am(e,t,n){let r=e=>e.id===t?{...e,quotaConfig:n.config,quota:n.snapshot??null,quotaCheckedAtUtc:n.checkedAtUtc??null}:e;e.setQueryData(K.provider(t),e=>e&&r(e)),e.setQueryData(K.providers,e=>e?.map(r))}function om(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers/${G(e)}/quota`),onSuccess:(t,n)=>am(e,n,t),onError:(t,n)=>void e.invalidateQueries({queryKey:K.provider(n)})})}function sm(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/providers/${G(e)}/quota/config`,t),onSuccess:n=>am(t,e,n)})}var cm=e=>L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/quota/test`,t)});function lm(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers/${G(e)}/duplicate`),onSuccess:()=>Zp(e)})}function um(e,t,n,r){return Cp(`/api/providers/${G(e)}/test`,t,n,r)}var dm=(e,t)=>I({queryKey:K.remoteModels(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/remote-models`),enabled:t,retry:!1}),fm=(e,t)=>I({queryKey:K.templateUpdate(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/template-update`),enabled:t});function pm(e){let t=_();return L({mutationFn:()=>W(`POST`,`/api/providers/${G(e)}/template-update`),onSuccess:()=>{Zp(t,e),t.invalidateQueries({queryKey:K.providerModels(e)}),t.invalidateQueries({queryKey:K.remoteModels(e)}),t.invalidateQueries({queryKey:K.templateUpdate(e)})}})}var mm=e=>I({queryKey:K.providerModels(e??``),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/models`),enabled:!!e});function hm(e,t){e.invalidateQueries({queryKey:K.providerModels(t)}),e.invalidateQueries({queryKey:K.remoteModels(t)}),e.invalidateQueries({queryKey:[`model`]}),Zp(e,t)}function gm(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/models`,{modelIds:t}),onSuccess:()=>hm(t,e)})}function _m(e){let t=_();return L({mutationFn:t=>{let{pmId:n,...r}=t;return W(`PATCH`,`/api/providers/${G(e)}/models/${n}`,r)},onSuccess:()=>hm(t,e)})}function vm(e){let t=_();return L({mutationFn:t=>W(`DELETE`,`/api/providers/${G(e)}/models/${t}`),onSuccess:()=>hm(t,e)})}var ym=()=>I({queryKey:K.privacy,queryFn:()=>W(`GET`,`/api/privacy`)});function bm(){let e=_();return L({mutationFn:e=>W(`PUT`,`/api/privacy`,e),onSuccess:t=>e.setQueryData(K.privacy,e=>e&&{...e,settings:t})})}var xm=()=>L({mutationFn:e=>W(`POST`,`/api/privacy/dry-run`,e)}),Sm=(e,t)=>I({queryKey:K.privacyEvents(e),queryFn:()=>W(`GET`,`/api/privacy/events${xp({...e})}`),placeholderData:e=>e,refetchInterval:t?5e3:!1}),Cm=e=>I({queryKey:K.privacyEventStats(e),queryFn:()=>W(`GET`,`/api/privacy/events/stats${xp({range:e})}`),refetchInterval:15e3,placeholderData:e=>e}),wm=(e,t=!0)=>I({queryKey:K.providerAccounts(e??``),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/accounts`),enabled:!!e&&t});function Tm(e,t){e.invalidateQueries({queryKey:K.providerAccounts(t)})}function Em(e){let t=_();return L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e)}/refresh`),onSuccess:()=>Tm(t,e)})}function Dm(e){let t=_();return L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e)}/quota`),onSuccess:()=>Tm(t,e)})}function Om(e,t){let n=_();return L({mutationFn:t,onSuccess:t=>n.setQueryData(K.providerAccounts(e),t)})}var km=e=>Om(e,e=>W(`POST`,`/api/provider-accounts/${G(e)}/activate`)),Am=e=>Om(e,({id:e,...t})=>W(`PATCH`,`/api/provider-accounts/${G(e)}`,t)),jm=e=>Om(e,t=>W(`PUT`,`/api/providers/${G(e)}/accounts/order`,{ids:t})),Mm=(e,t=!0)=>I({queryKey:K.subscriptionPolicy(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/subscription-policy`),enabled:t});function Nm(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/providers/${G(e)}/subscription-policy`,t),onSuccess:n=>{t.setQueryData(K.subscriptionPolicy(e),n),t.invalidateQueries({queryKey:K.provider(e)})}})}function Pm(e){let t=_();return L({mutationFn:e=>W(`DELETE`,`/api/provider-accounts/${G(e)}`),onSuccess:()=>Tm(t,e)})}var Fm=e=>L({mutationFn:(t={})=>W(`POST`,`/api/providers/${G(e)}/accounts/login`,{accountId:t.accountId||void 0,httpProxy:t.httpProxy?.trim()||void 0})}),Im=e=>L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/login/${G(t)}/poll`)}),Lm=(e=!0)=>I({queryKey:K.localCodexLogin,queryFn:()=>W(`GET`,`/api/subscription/codex/local-login`),enabled:e,retry:!1});function Rm(e){let t=_();return L({mutationFn:()=>W(`POST`,`/api/providers/${G(e)}/accounts/import-codex`,{}),onSuccess:()=>Tm(t,e)})}var zm=e=>L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/login/${G(t.state)}/complete`,{code:t.code})}),Bm=(e=!0)=>I({queryKey:K.localCopilotLogin,queryFn:()=>W(`GET`,`/api/subscription/copilot/local-login`),enabled:e,retry:!1});function Vm(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/import-copilot`,{token:t&&t.trim().length>0?t.trim():null}),onSuccess:(n,r)=>{Tm(t,e),t.invalidateQueries({queryKey:K.localCopilotLogin})}})}var Hm=(e,t=!0)=>I({queryKey:K.accountImportInfo(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/accounts/import-info`),enabled:t,staleTime:1/0});function Um(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/import`,t),onSuccess:(n,r)=>{r.dryRun||Tm(t,e)}})}var Wm=(e,t=!0)=>I({queryKey:K.resetCredits(e??``),queryFn:()=>W(`GET`,`/api/provider-accounts/${G(e)}/reset-credits`),enabled:!!e&&t,retry:!1});function Gm(e){let t=_();return L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e.accountId)}/reset-credits/${G(e.creditId)}/consume`,{}),onSuccess:(n,r)=>{Tm(t,e),t.invalidateQueries({queryKey:K.resetCredits(r.accountId)})}})}var Km=()=>I({queryKey:K.clients,queryFn:()=>W(`GET`,`/api/clients`),refetchInterval:e=>e.state.data?.some(e=>e.install?.busy)?2e3:!1}),qm=()=>Xm(()=>W(`POST`,`/api/clients/reapply`,{})),Jm=(e,t=!0)=>I({queryKey:K.clientModels(e??``),queryFn:()=>W(`GET`,`/api/clients/${e}/models`),enabled:!!e&&t,retry:!1}),Ym=(e,t=!0)=>I({queryKey:K.backups(e??``),queryFn:()=>W(`GET`,`/api/clients/${e}/backups`),enabled:!!e&&t});function Xm(e,t=()=>[]){let n=_();return L({mutationFn:e,onSuccess:(e,r)=>{n.invalidateQueries({queryKey:K.clients}),n.invalidateQueries({queryKey:K.providers}),n.invalidateQueries({queryKey:[`provider`]}),n.invalidateQueries({queryKey:[`client-models`]});for(let e of t(r))n.invalidateQueries({queryKey:e})}})}var Zm=()=>Xm(e=>W(`PUT`,`/api/clients/${e.kind}/binding`,{providerId:e.providerId,accountId:e.accountId}),e=>[K.clientModels(e.kind)]),Qm=()=>Xm(e=>W(`PUT`,`/api/clients/${e.kind}/bindings`,{bindings:e.bindings}),e=>[K.clientModels(e.kind)]),$m=()=>L({mutationFn:e=>W(`POST`,`/api/clients/${e.kind}/preview-enable`,e.req)}),eh=()=>Xm(e=>W(`POST`,`/api/clients/${e.kind}/enable`,e.req),e=>[K.backups(e.kind)]),th=()=>Xm(e=>W(`POST`,`/api/clients/${e}/disable`)),nh=()=>Xm(e=>W(`POST`,`/api/clients/${e}/force-restore`)),rh=()=>Xm(e=>W(`POST`,`/api/clients/${e.kind}/backups/${G(e.id)}/restore`),e=>[K.backups(e.kind)]);function ih(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/clients/check-updates`,{force:e}),onSuccess:t=>e.setQueryData(K.clients,t)})}var ah=(e,t=!0)=>I({queryKey:K.clientInstallJob(e??``),queryFn:()=>W(`GET`,`/api/clients/${e}/install`),enabled:!!e&&t,retry:!1,refetchInterval:e=>e.state.data?.state===`running`&&800});function oh(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/clients/${e.kind}/install`,{action:e.action,elevated:e.elevated??!1}),onSuccess:t=>{e.setQueryData(K.clientInstallJob(t.kind),t),e.invalidateQueries({queryKey:K.clients})}})}function sh(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/clients/${e}/install/cancel`,{}),onSuccess:t=>e.setQueryData(K.clientInstallJob(t.kind),t)})}var ch=`/api/clients/claude-code/direct`,lh=e=>I({queryKey:K.claudeDirect,queryFn:()=>W(`GET`,ch),enabled:e,retry:!1});function uh(){let e=_();return L({mutationFn:e=>W(`PUT`,ch,e),onSuccess:t=>{e.setQueryData(K.claudeDirect,t),e.invalidateQueries({queryKey:[`claude-direct-requests`]})}})}var dh=(e,t)=>I({queryKey:K.claudeDirectRequests(e??``),queryFn:()=>W(`GET`,`${ch}/accounts/${G(e)}/requests`),enabled:!!e,retry:!1,refetchInterval:t?5e3:!1}),fh=()=>I({queryKey:K.tokens,queryFn:()=>W(`GET`,`/api/tokens`),refetchInterval:15e3});function ph(e){let t=_();return L({mutationFn:e,onSuccess:()=>{t.invalidateQueries({queryKey:K.tokens}),t.invalidateQueries({queryKey:K.clients})}})}var mh=()=>ph(e=>W(`POST`,`/api/tokens`,e)),hh=()=>ph(e=>{let{id:t,...n}=e;return W(`PATCH`,`/api/tokens/${G(t)}`,n)}),gh=()=>ph(e=>W(`POST`,`/api/tokens/${G(e)}/reset`)),_h=()=>ph(e=>W(`DELETE`,`/api/tokens/${G(e)}`)),vh=()=>L({mutationFn:e=>W(`POST`,`/api/tokens/${G(e)}/reveal`)}),yh=(e,t)=>I({queryKey:K.requests(e),queryFn:()=>W(`GET`,`/api/requests${xp({...e})}`),placeholderData:e=>e,refetchInterval:t?5e3:!1}),bh=e=>I({queryKey:K.request(e??``),queryFn:()=>W(`GET`,`/api/requests/${G(e)}`),enabled:!!e,refetchInterval:e=>e.state.data?.status===`pending`&&1e3}),xh=e=>I({queryKey:K.stats(`rate`,e),queryFn:()=>W(`GET`,`/api/stats/rate${xp({...e})}`),placeholderData:e=>e,refetchInterval:5e3}),Sh=()=>-new Date().getTimezoneOffset(),Ch=(e,t,n)=>I({queryKey:K.stats(`summary`,e,t??``,n??``),queryFn:()=>W(`GET`,`/api/stats/summary${xp({range:e,client:t,token:n})}`),refetchInterval:15e3,placeholderData:e=>e}),wh=(e,t,n,r,i)=>I({queryKey:K.stats(`timeseries`,e,t,n,r??``,i??``,Sh()),queryFn:()=>W(`GET`,`/api/stats/timeseries${xp({range:e,groupBy:t,by:n,client:r,token:i,tzOffset:Sh()})}`),refetchInterval:3e4,placeholderData:e=>e}),Th=(e,t,n=8,r)=>I({queryKey:K.stats(`top`,e,t??``,n,r??``),queryFn:()=>W(`GET`,`/api/stats/top-models${xp({range:e,limit:n,client:t,token:r})}`),refetchInterval:3e4,placeholderData:e=>e}),Eh=(e=365,t,n)=>I({queryKey:K.stats(`activity`,e,t??``,n??``,Sh()),queryFn:()=>W(`GET`,`/api/stats/activity-heatmap${xp({days:e,client:t,token:n,tzOffset:Sh()})}`),refetchInterval:6e4,placeholderData:e=>e}),Dh=()=>I({queryKey:K.plugins,queryFn:()=>W(`GET`,`/api/plugins`),refetchInterval:1e4}),Oh=(e=!0)=>I({queryKey:K.pluginHost,queryFn:()=>W(`GET`,`/api/plugins/host`),enabled:e,refetchInterval:15e3}),kh=e=>I({queryKey:K.pluginJob(e??``),queryFn:()=>W(`GET`,`/api/plugins/jobs/${G(e)}`),enabled:!!e,refetchInterval:e=>e.state.data?.state===`running`||!e.state.data?1e3:!1});function Ah(e){let t=_();return L({mutationFn:e,onSuccess:()=>{t.invalidateQueries({queryKey:K.plugins}),t.invalidateQueries({queryKey:K.pluginHost}),t.invalidateQueries({queryKey:K.clients}),t.invalidateQueries({queryKey:K.providers})}})}var jh=()=>Ah(e=>W(`POST`,`/api/plugins`,e)),Mh=()=>Ah(e=>W(`POST`,`/api/plugins/update`,{spec:e})),Nh=()=>Ah(e=>W(`DELETE`,`/api/plugins${xp({spec:e})}`)),Ph=()=>Ah(e=>W(`PATCH`,`/api/plugins${xp({spec:e.spec})}`,{enabled:e.enabled,options:e.options})),Fh=()=>Ah(e=>W(`PUT`,`/api/plugins/order`,{specs:e})),Ih=()=>Ah(e=>W(`POST`,`/api/plugins/prefer`,e)),Lh=()=>Ah(()=>W(`POST`,`/api/plugins/runtime/install`)),Rh=(e=!0)=>I({queryKey:K.pluginMarket,queryFn:()=>W(`GET`,`/api/plugins/market`),enabled:e,staleTime:6e5}),zh=e=>I({queryKey:K.pluginSearch(e),queryFn:()=>W(`GET`,`/api/plugins/search${xp({q:e})}`),enabled:e.trim().length>=2,staleTime:6e5}),Bh=(e,t=!0)=>I({queryKey:K.pluginMethods(e),queryFn:()=>W(`GET`,`/api/plugin-providers/${G(e)}/methods`),enabled:t}),Vh=(e,t,n)=>W(`POST`,`/api/plugin-providers/${G(e)}/prompt`,{method:t,inputs:n}),Hh=(e,t,n,r)=>W(`POST`,`/api/plugin-providers/${G(e)}/validate`,{method:t,key:n,value:r});function Uh(e,t){e.invalidateQueries({queryKey:K.providerAccounts(t)}),e.invalidateQueries({queryKey:K.providers})}var Wh=e=>L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/sign-in`,t)}),Gh=(e,t)=>{let n=_();return I({queryKey:K.pluginSignIn(e,t??``),queryFn:async()=>{let r=await W(`GET`,`/api/plugin-providers/${G(e)}/sign-in/${G(t)}`);return r.state===`done`&&Uh(n,e),r},enabled:!!t,refetchInterval:e=>e.state.data?.state===`waiting`||!e.state.data?1500:!1})},Kh=e=>{let t=_();return L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/sign-in/${G(t.flow)}/code`,{code:t.code}),onSuccess:n=>{t.setQueryData(K.pluginSignIn(e,n.id),n),n.state===`done`&&Uh(t,e)}})},qh=e=>{let t=_();return L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/api-key`,t),onSuccess:()=>Uh(t,e)})},Jh=e=>{let t=_();return L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/accounts/${G(t)}/sign-out`),onSuccess:()=>Uh(t,e)})},Yh=(e,t,n)=>I({queryKey:K.pluginUsage(e,t),queryFn:()=>W(`GET`,`/api/plugin-providers/${G(e)}/accounts/${G(t)}/usage`),enabled:n,staleTime:6e4,retry:!1}),Xh=e=>I({queryKey:K.pluginCheckin(e),queryFn:()=>W(`GET`,`/api/plugin-providers/${G(e)}/checkin`)}),Zh=e=>{let t=_();return L({mutationFn:t=>t===void 0?W(`POST`,`/api/plugin-providers/${G(e)}/checkin`):W(`PUT`,`/api/plugin-providers/${G(e)}/checkin`,{on:t}),onSuccess:n=>t.setQueryData(K.pluginCheckin(e),n)})},Qh=(e=!0)=>I({queryKey:K.magpieImport,queryFn:()=>W(`GET`,`/api/plugins/import-magpie`),enabled:e,staleTime:6e4}),$h=()=>Ah(e=>W(`POST`,`/api/plugins/import-magpie`,{signIns:e})),eg={"common.cancel":`取消`,"common.confirm":`确定`,"common.close":`关闭`,"common.save":`保存`,"common.saved":`已保存`,"common.revert":`还原`,"common.apply":`应用`,"common.delete":`删除`,"common.edit":`编辑`,"common.add":`添加`,"common.create":`创建`,"common.back":`返回`,"common.done":`完成`,"common.more":`更多`,"common.copy":`复制`,"common.copied":`已复制到剪贴板`,"common.refresh":`刷新`,"common.enabled":`启用`,"common.yes":`是`,"common.no":`否`,"common.prev":`上一页`,"common.next":`下一页`,"common.noData":`暂无数据`,"common.selectAll":`全选`,"common.unsaved":`有未保存的更改`,"common.invalidJson":`JSON 格式不正确`,"common.search":`搜索`,"common.clearSearch":`清空搜索`,"common.select":`请选择`,"common.noResults":`没有匹配项`,"common.error":`操作失败`,"pricing.tierMode":`计费方式`,"pricing.outputPolicy":`输出价格`,"pricing.editMode":`编辑方式`,"pricing.days":`生效日`,"models.sync.change":`变更`,"models.sync.changeOne":`项变更`,"models.sync.changeOther":`项变更`,"common.continue":`继续`,"providers.step.template":`选择模板`,"providers.step.details":`填写信息`,"clients.current":`当前提供商`,"common.deleting":`正在删除`,"common.deleted":`已删除`,"common.retry":`重试`,"providers.modelIds":`模型 ID`,"nav.overview":`概览`,"nav.requests":`请求日志`,"nav.clients":`客户端`,"nav.providers":`提供商`,"nav.models":`模型`,"nav.settings":`设置`,"nav.privacy":`隐私护栏`,"nav.tokens":`令牌`,"nav.group.config":`配置`,"nav.group.system":`系统`,"shell.running":`服务运行中`,"shell.connecting":`正在连接…`,"shell.disconnected":`未连接到服务`,"shell.startService":`启动服务`,"shell.startFailed":`服务启动失败`,"shell.collapseSidebar":`收起侧边栏`,"shell.expandSidebar":`展开侧边栏`,"banner.downDesktop":`无法连接 Astra 服务。可以在这里启动,或从菜单栏图标启动。`,"banner.downWeb":`无法连接 Astra 服务,正在重连…(可在终端运行 astra start)`,"banner.mismatch":`服务端 API 版本与界面不一致,请运行 astra update 后重启。`,"banner.clientsOutdated":`{names} 的配置还是旧的 Astra 地址或设置(例如 Astra 换了端口),更新后才能正常连接。`,"banner.clientsUpdate":`一键更新`,"banner.clientsUpdated":`已更新 {names},部分客户端需要重启后生效`,"login.subtitle":`该服务对外监听,请输入管理密码`,"login.password":`管理密码`,"login.submit":`登录`,"range.today":`今日`,"range.7d":`7 天`,"range.30d":`30 天`,"range.90d":`90 天`,"range.all":`全部`,"overview.cost":`费用`,"overview.requests":`请求数`,"overview.successRate":`成功率`,"overview.tokens":`Token`,"overview.avgTtft":`平均 TTFT`,"overview.costTrend":`费用趋势`,"overview.range":`时间范围`,"overview.measure":`指标`,"overview.trend":`趋势`,"overview.tokensContext":`输入 {input} · 输出 {output}`,"overview.hourlyAverage":`每小时平均`,"overview.dailyAverage":`每日平均`,"overview.total":`合计`,"overview.hour":`小时`,"overview.day":`日期`,"overview.by.model":`模型`,"overview.by.provider":`提供商`,"overview.by.client":`客户端`,"overview.by.token":`令牌`,"overview.other":`其他`,"overview.topModels":`费用最高的模型`,"overview.topModelDetail":`{requests} 次请求 · {tokens} tokens`,"overview.empty.title":`还没有请求`,"overview.empty.detail":`在「客户端」中启用一个客户端,或把任意 OpenAI / Anthropic / Gemini 兼容工具指向下面的网关地址。`,"overview.clientFilter":`按客户端筛选`,"overview.allClients":`全部`,"overview.tokenFilter":`按令牌筛选`,"overview.allTokens":`全部令牌`,"overview.clientEmpty.title":`{client} 暂无请求`,"overview.clientEmpty.detail":`{range}内没有来自该客户端的请求,可切换到其他客户端或时间范围。`,"overview.tokenEmpty.title":`{token} 暂无请求`,"overview.tokenEmpty.detail":`{range}内没有使用该令牌的请求,可切换到其他令牌或时间范围。`,"overview.totalCost":`总成本`,"overview.totalRequests":`总请求数`,"overview.usageTrend":`使用趋势`,"overview.breakdown":`明细`,"overview.viewAll":`查看全部`,"overview.col.input":`输入`,"overview.col.output":`输出`,"overview.col.cacheHit":`缓存命中`,"overview.col.speed":`速度`,"overview.col.share":`占比`,"overview.activity":`活跃度`,"overview.activitySummary":`{from} ~ {to} · {active} / {days} 天有活动`,"overview.activityPeak":`最多 {count} 次/天`,"overview.activityUnit":`次请求`,"overview.activityNone":`无活动`,"overview.activityLegend.less":`少`,"overview.activityLegend.more":`多`,"requests.total":`共 {count} 条`,"requests.totalCost":`消费总额`,"requests.totalCost.hint":`当前筛选条件下全部请求(含所有分页)的费用合计;进行中的请求完成后计入。`,"requests.rate.rpm":`RPM`,"requests.rate.tpm":`TPM`,"requests.rate.hint":`最近 {window} 秒的平均每分钟请求数(RPM)、令牌数(TPM,仅已完成请求)与缓存命中率;跟随当前筛选,每 5 秒自动刷新。`,"requests.elapsed":`已等待(尚未收到首个 token)`,"requests.searchModel":`搜索模型 ID(支持关键字)`,"requests.noFilters":`未设置筛选`,"requests.clearFilters":`清空筛选`,"requests.backToFilters":`返回筛选字段`,"requests.removeFilter":`移除筛选:{filter}`,"requests.filterAdded":`已添加筛选:{filter}`,"requests.filterChanged":`已修改筛选:{filter}`,"requests.filterRemoved":`已移除筛选:{filter}`,"requests.filtersCleared":`已清空全部筛选`,"requests.filteredEmpty":`没有符合筛选条件的记录`,"requests.filteredEmpty.detail":`试试其他模型关键字,或清空筛选条件。`,"requests.returnedModel":`返回:{model}`,"requests.modelMatch":`一致`,"requests.modelMismatch":`不一致`,"requests.modelComparison":`请求:{requested};上游发送:{upstream};API 返回:{returned}`,"requests.modelNotRecorded":`未记录`,"requests.modelNotRecorded.hint":`历史记录或 API 未返回模型 ID;不会用请求模型代替。`,"requests.allClients":`全部客户端`,"requests.allTokens":`全部令牌`,"requests.col.token":`令牌`,"requests.detail.account":`订阅账号`,"requests.direct":`直连`,"requests.allProviders":`全部提供商`,"requests.allStatus":`全部状态`,"requests.col.time":`时间`,"requests.col.client":`客户端`,"requests.col.model":`模型`,"requests.col.provider":`提供商`,"requests.col.status":`状态`,"requests.col.tokens":`输入/输出`,"requests.col.cost":`费用`,"requests.empty":`没有请求记录`,"requests.empty.detail":`经过 Astra 的每次请求都会记录在这里,包括逐项 token 与计费明细。`,"requests.page":`第 {page} / {pages} 页`,"requests.filters":`当前筛选`,"requests.addFilter":`添加筛选`,"requests.openDetail":`查看 {model} 的请求详情`,"requests.viewError":`点击查看错误信息`,"requests.detail.title":`请求详情`,"requests.detail.summary":`概要`,"requests.detail.protocol":`协议`,"requests.detail.requestedModel":`请求模型`,"requests.detail.upstreamModel":`上游发送模型`,"requests.detail.responseModel":`API 返回模型`,"requests.detail.systemModel":`系统模型`,"requests.detail.stream":`流式`,"requests.detail.upstreamId":`上游请求 ID`,"requests.detail.timing":`耗时`,"requests.detail.generation":`生成耗时`,"requests.detail.total":`总耗时`,"requests.detail.tps":`输出速度`,"requests.detail.error":`错误`,"requests.detail.privacy":`隐私护栏`,"requests.detail.privacyBlocked":`该请求被拦截`,"requests.detail.privacyDryRun":`试运行(未处理)`,"requests.detail.privacyRedacted":`已脱敏 {count} 处`,"requests.detail.billing":`计费`,"requests.detail.usageMissing":`上游未返回用量,本次请求记为 0。`,"requests.detail.usageRaw":`原始 usage`,"requests.detail.pricingSnapshot":`价格快照`,"requests.body.clientRequest":`客户端请求体`,"requests.body.upstreamRequest":`上游请求体`,"requests.body.upstreamRequestHeaders":`上游请求头(发往提供商,凭据脱敏)`,"requests.body.upstreamResponse":`上游响应体`,"requests.body.clientResponse":`返回客户端的响应体`,"requests.reasoning":`推理`,"requests.reasoning.notRecorded":`未记录`,"requests.reasoning.budget":`预算 {tokens}`,"requests.reasoning.hint":`客户端请求中明确设置的推理配置;未记录表示该请求未设置或为旧日志,不会用预算或提供商默认值推断。`,"requests.detail.reasoning":`推理强度`,"status.success":`成功`,"status.blocked":`已拦截`,"status.upstream_error":`上游错误`,"status.gateway_error":`网关错误`,"status.client_cancelled":`已取消`,"status.pending":`进行中`,"billing.unpriced":`未配置价格`,"billing.type":`类型`,"billing.tokens":`数量`,"billing.unitPrice":`单价 /1M`,"billing.tier":`档位`,"billing.cost":`费用`,"pricingSource.override":`提供商自定义价`,"pricingSource.provider":`提供商价格 · {key}`,"pricingSource.default":`官方默认价`,"pricingSource.none":`无价格`,"simulator.official":`官方默认价`,"simulator.serviceTier":`service_tier`,"simulator.time":`请求时间(用于时段计费)`,"simulator.run":`计算`,"pricing.none":`尚未配置价格`,"pricing.add":`添加价格`,"pricing.remove":`移除价格`,"pricing.mode.form":`表单`,"pricing.unit":`USD / 百万 tokens`,"pricing.base":`基础价格`,"pricing.perRequest":`每次请求`,"pricing.notes":`备注`,"pricing.name":`名称`,"pricing.contextTiers":`上下文分档`,"pricing.contextTiers.hint":`输入 token 超过阈值时改用另一档价格(如 Claude >200K)。`,"pricing.addTier":`添加分档`,"pricing.threshold":`阈值`,"pricing.mode.whole":`整单套用`,"pricing.mode.progressive":`分段累进`,"pricing.output.highest":`输出按最高档`,"pricing.output.base":`输出按基础价`,"pricing.timeWindows":`时段规则`,"pricing.timeWindows.hint":`按时区和时段调整价格(如 DeepSeek 夜间优惠),可排除节假日。`,"pricing.addWindow":`添加时段`,"pricing.excludeDates":`排除日期 yyyy-MM-dd, …`,"pricing.serviceTiers":`服务等级`,"pricing.serviceTiers.hint":`按 service_tier(flex / priority)调整价格。`,"pricing.addServiceTier":`添加等级`,"pricing.hasOwnPrices":`含独立价格(JSON 编辑)`,"pricing.ruleNameTaken":`该服务等级名称已存在`,"pricing.timezone":`时区`,"pricing.invalidTimezone":`请输入有效的 IANA 时区`,"pricing.start":`开始时间`,"pricing.end":`结束时间`,"pricing.multiplier":`倍率`,"clients.subtitle":`让本机的 AI 客户端通过 Astra 访问模型`,"clients.comingSoon":`即将支持`,"clients.comingSoonDetail":`该客户端的配置方式尚未确认`,"clients.drifted":`配置已被修改`,"clients.enabled":`已启用`,"clients.disabled":`未启用`,"clients.detected":`已检测到 {version}`,"clients.notDetected":`未检测到安装`,"clients.group.installed":`已安装`,"clients.group.notInstalled":`未检测到`,"clients.group.comingSoon":`即将支持`,"clients.checkUpdates":`检查更新`,"clients.updatesFound":`{count} 个客户端有新版本`,"clients.allUpToDate":`所有客户端都是最新版本`,"clients.updateBadge":`可更新`,"clients.shadowedBadge":`需调整 PATH`,"clients.updateTo":`更新到 {version}`,"clients.install":`安装`,"clients.download":`下载`,"clients.installRunning":`进行中…`,"clients.versionTitle":`版本与更新`,"clients.currentVersion":`当前版本`,"clients.latestVersion":`最新版本`,"clients.versionUnknown":`版本未知`,"clients.notInstalled":`未安装`,"clients.latestUnknown":`未检查`,"clients.checkedAt":`检查于 {time}`,"clients.installMethod":`安装方式`,"clients.method.npm":`npm 全局包 {package}`,"clients.method.vscode-extension":`VS Code 扩展 {package}`,"clients.method.script":`官方安装脚本`,"clients.method.manual":`从官网下载安装`,"clients.homepage":`官网`,"clients.blocker.npm-missing":`没有找到 npm。先安装 Node.js(自带 npm),再回来安装。`,"clients.blocker.vscode-missing":`没有找到 VS Code 的 code 命令,请先安装 VS Code。`,"clients.blocker.script-missing":`这个系统上没有对应的安装脚本,请从官网手动安装。`,"clients.blocker.external-install":`{path} 不是通过 npm 安装的,请用原来的安装方式更新。`,"clients.blocker.shadowed":`最新版本已经装在另一个位置,再更新一次也不会改变终端里运行的版本;按上面的提示调整 PATH 即可。`,"clients.installLog":`安装日志`,"clients.noInstallLog":`还没有安装记录`,"clients.job.running":`正在运行…`,"clients.job.succeeded":`已完成`,"clients.job.failed":`失败`,"clients.job.cancelled":`已停止`,"clients.hint.permission-denied":`npm 没有权限写入全局目录(通常是之前用 sudo 安装过,目录属于系统管理员)。`,"clients.hint.admin-cancelled":`已取消管理员授权,没有做任何修改。`,"clients.hint.shadowed":`新版本装到了另一个位置,终端里运行的仍是旧的那一份。具体位置见下面的日志。`,"clients.hint.unchanged":`命令执行成功,但版本没有变化。`,"clients.hint.not-on-path":`装好的命令不在终端的 PATH 里,终端里无法直接运行。具体位置见下面的日志。`,"clients.job.notEffective":`已完成,但没有生效`,"clients.notEffectiveToast":`{name} 的命令执行成功,但没有生效,请查看安装日志`,"clients.otherCopy":`其他副本`,"clients.otherCopyNewer":`更新`,"clients.shadowed.title":`已有新版本 {version},但终端里用不到`,"clients.shadowed.detail":`终端运行的是 {path}({version}),更新的版本在 {other},它在 PATH 中排在后面或不在 PATH 里。把 {dir} 放到 PATH 最前面,或删掉旧的那一份,就会用上新版本。`,"clients.notOnPath.title":`不在终端的 PATH 里`,"clients.notOnPath.detail":`这个客户端装在 {dir},但终端的 PATH 里没有这个目录。把它加入 PATH(例如写进 ~/.zshrc)后,才能在终端直接运行。`,"clients.hint.timeout":`超过 15 分钟没有完成,已停止。`,"clients.admin.badge":`需管理员权限`,"clients.admin.tip":`npm 的全局目录属于系统管理员,安装时 macOS 会弹出授权框,需要输入开机密码`,"clients.admin.tipManual":`npm 的全局目录属于系统管理员,需要在终端用 sudo 运行`,"clients.admin.title":`需要管理员权限`,"clients.admin.prompt":`npm 的全局目录属于系统管理员。点击「授权并开始」后,系统会弹出授权框,输入开机密码(或使用触控 ID)即可;Astra 不会接触你的密码。`,"clients.admin.manual":`npm 的全局目录属于系统管理员,这里无法弹出授权框。请复制下面的命令,在终端中运行。`,"clients.admin.start":`授权并开始`,"clients.admin.copyCommand":`复制命令`,"clients.admin.retry":`以管理员身份重试`,"clients.admin.retryHint":`可以点「以管理员身份重试」,系统会弹出授权框。`,"clients.admin.running":`正在以管理员身份运行,命令结束后才会显示输出,运行中无法停止。`,"clients.admin.fixTip":`想以后安装、更新都不再需要管理员权限,可以在终端执行一次下面的命令,把 npm 全局目录交还给当前用户:`,"clients.installTitle":`安装 {name}`,"clients.updateTitle":`更新 {name}`,"clients.installRunDetail":`将在本机运行下面的命令,输出会实时显示在这里。`,"clients.installStart":`开始`,"clients.installStop":`停止`,"clients.installUnavailable":`当前无法执行这个操作`,"clients.installNpmNote":`全局安装会写入 npm 的全局目录;关闭窗口不会中断安装。`,"clients.installedToast":`{name} 已安装`,"clients.updatedToast":`{name} 已更新`,"clients.enable":`启用…`,"clients.disable":`禁用`,"clients.disableRestore":`禁用并还原`,"clients.pickProviderFirst":`请先在下方选择一个提供商`,"clients.appliedAt":`于 {time} 写入配置`,"clients.bound":`已切换到 {provider},立即生效`,"clients.boundModelsSynced":`已切换到 {provider},并同步了 {client} 配置里的模型列表`,"clients.disableConfirm":`禁用 {name}?`,"clients.disableDetail":`会撤销 Astra 写入的配置项,恢复为启用前的状态。`,"clients.disabledToast":`{name} 已禁用并还原配置`,"clients.driftTitle":`部分配置已被手动修改`,"clients.driftDetail":`以下配置项在启用后被改动过,未自动还原:{keys}。是否强制还原?`,"clients.forceRestore":`强制还原`,"clients.providerTitle":`使用的提供商`,"clients.providerFooter":`可以添加多个提供商并拖动排序:请求的模型(按模型 ID 精确匹配,或提供商的模型映射)由排在最前、提供该模型的提供商处理;都没有时交给第一个。修改立即生效,客户端的模型列表会自动包含所有提供商的模型。`,"clients.primaryProvider":`首选`,"clients.dragToReorder":`拖动调整 {provider} 的顺序`,"clients.removeProvider":`移除 {provider}`,"clients.providerDisabledBadge":`已停用`,"clients.moreProvidersTitle":`可添加的提供商`,"clients.providerAdded":`已添加 {provider},立即生效`,"clients.providerRemoved":`已移除 {provider}`,"clients.providerOrderSaved":`已更新提供商顺序,立即生效`,"clients.providersModelsSynced":`已更新提供商,并同步了 {client} 配置里的模型列表`,"clients.accountTitle":`订阅账号`,"clients.accountFooter":`绑定到具体账号,用量按账号统计;留空使用该提供商的默认账号。`,"clients.account":`账号`,"clients.accountDefault":`默认账号`,"clients.noProviders":`还没有可用的提供商`,"clients.noProvidersDetail":`先添加一个 AI 提供商,再为客户端选择它。`,"clients.modelTitle":`模型`,"clients.modelFooter":`启用时写入客户端配置的默认模型;不设置则使用客户端自己的默认值。`,"clients.modelFooterEnabled":`修改默认模型需要重新写入客户端配置。`,"clients.modelSlotsFooter":`选中的模型会写进 Claude Code 的配置(默认模型 ANTHROPIC_MODEL,各档位 ANTHROPIC_DEFAULT_*_MODEL);留空就不写入,配置文件里已有的同名设置也不会被改动。`,"clients.modelSlotsFooterEnabled":`修改后需要重新写入客户端配置。`,"clients.options.title":`专属设置`,"clients.options.footer":`这些设置只对当前客户端生效;写入客户端配置的项目会在启用时一并写入,“网关”类的项目由 Astra 在转发该客户端请求时处理。`,"clients.options.footerEnabled":`修改后需要重新应用。`,"clients.options.unset":`不设置`,"clients.option.context1m":`1M 上下文`,"clients.option.context1m.hint":`给 Claude Code 的模型名自动加 [1m] 后缀(Haiku 档和已知窗口不足 1M 的模型除外)。需要上游支持 1M 上下文。`,"clients.option.cacheTtl":`缓存时长`,"clients.option.cacheTtl.hint":`给客户端已有的 cache_control 补上 5 分钟或 1 小时的 ttl,不增删缓存断点。1 小时的写入价更高,适合长会话。`,"clients.option.maxThinkingTokens":`思考 token 上限`,"clients.option.maxThinkingTokens.hint":`写入 MAX_THINKING_TOKENS;留空则不设置。`,"clients.option.disablePromptCaching":`关闭提示缓存`,"clients.option.disablePromptCaching.hint":`写入 DISABLE_PROMPT_CACHING=1,客户端不再发送缓存断点。`,"clients.option.contextWindow":`上下文窗口`,"clients.option.contextWindow.hint":`写入 model_context_window;留空则用 Codex 默认值。`,"clients.option.autoCompactTokenLimit":`自动压缩阈值`,"clients.option.autoCompactTokenLimit.hint":`写入 model_auto_compact_token_limit,达到后自动压缩会话;留空则不设置。`,"clients.option.reasoningEffort":`推理强度`,"clients.option.reasoningEffort.hint":`写入 model_reasoning_effort;默认则不设置。`,"clients.optionChoice.default":`默认`,"clients.optionChoice.5m":`5 分钟`,"clients.optionChoice.1h":`1 小时`,"clients.optionChoice.minimal":`最低`,"clients.optionChoice.low":`低`,"clients.optionChoice.medium":`中`,"clients.optionChoice.high":`高`,"clients.modelSlot.ANTHROPIC_MODEL":`默认模型`,"clients.modelSlot.ANTHROPIC_DEFAULT_OPUS_MODEL":`Opus 档位`,"clients.modelSlot.ANTHROPIC_DEFAULT_SONNET_MODEL":`Sonnet 档位`,"clients.modelSlot.ANTHROPIC_DEFAULT_HAIKU_MODEL":`Haiku 档位(快速/后台)`,"clients.defaultModel":`默认模型`,"clients.modelPlaceholder":`选择模型`,"clients.modelUnset":`不设置`,"clients.roleMapTitle":`角色映射`,"clients.roleMapFooter":`Claude Desktop 只认 Sonnet / Opus / Haiku 这类角色模型,Astra 会把它们换成这里选的提供商模型。至少设置一个;没设置的角色使用第一个已设置的。`,"clients.roleMapFooterEnabled":`映射在网关中实时生效,点击应用后保存。`,"clients.roleMapRequired":`请至少为一个角色选择模型`,"clients.role.sonnet":`Sonnet`,"clients.role.opus":`Opus`,"clients.role.haiku":`Haiku`,"clients.maintenance":`维护`,"clients.openConfigDir":`在访达中打开配置目录`,"clients.copyConfigPath":`复制配置文件路径`,"clients.backups":`配置备份`,"clients.backupsDetail":`每次修改前自动备份,可随时恢复。`,"clients.noBackups":`还没有备份`,"clients.firstWrite":`首次修改前`,"clients.restore":`恢复`,"clients.restoreConfirm":`用这个备份覆盖当前配置?`,"clients.restored":`已从备份恢复`,"clients.tokenTitle":`令牌`,"clients.token":`写入配置的令牌`,"clients.tokenFooter":`启用时把「令牌.客户端」写入客户端配置,用量按令牌统计。多个客户端可以共用一个令牌。`,"clients.tokenFooterEnabled":`更换令牌需要重新写入客户端配置。`,"clients.tokenDisabled":`{name}(已停用)`,"clients.manageTokens":`管理令牌`,"clients.claudeDirect.configure":`直连设置`,"clients.claudeDirect.modeTitle":`连接方式(Astra 启动器)`,"clients.claudeDirect.mode":`连接方式`,"clients.claudeDirect.gateway":`网关`,"clients.claudeDirect.direct":`官方直连`,"clients.claudeDirect.gatewayDetail":`使用原有网关配置;启用接管后,默认 Claude Code 请求经过 Astra。astra claude 仅用于直连模式。`,"clients.claudeDirect.directDetail":`用下面选中的 Claude 订阅账号直连 Anthropic 官方,不经过网关。`,"clients.claudeDirect.modeNote":`这里只影响 Astra 启动器自己的会话;直接运行 claude 仍是原来的默认配置。`,"clients.claudeDirect.modeFooter":`切换只改变启动方式,不会热切换已经运行的会话,也不会修改用户默认的 ~/.claude 配置。`,"clients.claudeDirect.loadFailed":`无法读取直连设置`,"clients.claudeDirect.gatewayOnTitle":`网关接管已启用,直连会被覆盖`,"clients.claudeDirect.gatewayOnDetail":`当前 Claude Code 已由 Astra 接管:直连会被立刻写回网关配置。要真正直连,请先在上方「禁用并还原」,再切到官方直连。`,"clients.claudeDirect.noAccount":`还没有可用的 Claude 订阅账号`,"clients.claudeDirect.noAccountDetail":`直连用的是「Claude 订阅(Pro/Max)」提供商下已登录的账号;去「提供商」登录一个,再回到这里选择。`,"clients.claudeDirect.goProviders":`去提供商登录`,"clients.claudeDirect.needAccountToast":`先在「提供商」里登录 Claude 订阅账号`,"clients.claudeDirect.accountsTitle":`订阅账号`,"clients.claudeDirect.accountsFooter":`直连使用该订阅账号的短期令牌直连 Anthropic 官方,不经过网关;令牌留在 Astra 本机,不会写进命令或客户端配置。`,"clients.claudeDirect.account":`使用的账号`,"clients.claudeDirect.accountDisabledSuffix":`{status}(未启用)`,"clients.claudeDirect.launchTitle":`启动`,"clients.claudeDirect.launchNote":`需要本机已安装新版 Astra CLI(npm i -g astragate)。命令会用所选订阅账号启动官方 Claude Code,直连 Anthropic 官方、不经过网关;Astra 只把短期令牌交给它,刷新令牌留在 Astra。直接运行 claude 仍是你原来的配置。令牌到期后需要重新运行命令(会话中途不能续期)。若改用环境变量提供令牌,官方客户端里依赖 claude.ai 登录的功能(连接器、/schedule 等)将不可用。`,"clients.claudeDirect.statsTitle":`本机统计`,"clients.claudeDirect.statsConsent":`收集本机统计`,"clients.claudeDirect.statsConsentDetail":`默认关闭。开启后由 Claude Code 自己把用量数据发到本机 Astra:只有模型、时间、token 数和它自己估算的费用,没有对话正文、提示词和工具内容。`,"clients.claudeDirect.statsFooter":`Astra 仅在本机保存统计,留存时间沿用请求日志设置。关闭后立即停止接收;运行中会话仍可能尝试导出,重启后停止。估算不代表订阅扣费。组织策略可能覆盖客户端设置;直连不执行网关的拦截和脱敏。`,"clients.claudeDirect.statsEmpty":`还没有统计数据`,"clients.claudeDirect.statsEmptyDetail":`开启统计后,用上面的命令启动一次会话,数据会在几秒内出现在这里。`,"clients.claudeDirect.statsFailed":`无法读取统计`,"clients.claudeDirect.statsTotals":`最近 {count} 条`,"clients.claudeDirect.statsInDetail":`总输入(含缓存读 {cache}):{input} · 总输出:{output}`,"clients.claudeDirect.statsCost":`估算费用`,"clients.claudeDirect.statsCostDetail":`客户端自己估算,不代表实际订阅扣费。`,"clients.claudeDirect.statsFailedCount":`其中失败 {count} 条`,"clients.claudeDirect.statusError":`失败`,"clients.claudeDirect.tokensDetail":`输入 {input} / 输出 {output}`,"tokens.subtitle":`客户端和直接调用都通过令牌访问 Astra,用量按令牌统计`,"tokens.add":`新建令牌`,"tokens.default":`默认`,"tokens.disabledBadge":`已停用`,"tokens.copy":`复制令牌`,"tokens.copied":`已复制令牌`,"tokens.clients":`使用的客户端`,"tokens.noClients":`暂无客户端使用`,"tokens.directProvider":`直连提供商`,"tokens.directNone":`不允许直接调用`,"tokens.directAccount":`直连订阅账号`,"tokens.directHint":`在其他工具中填写网关地址 {url} 和该令牌即可直接调用,请求会发往直连提供商。`,"tokens.today":`今日`,"tokens.total":`累计`,"tokens.cost":`消耗`,"tokens.requests":`请求`,"tokens.cacheHit":`缓存命中率`,"tokens.tps":`TPS`,"tokens.tpsContext":`加权输出速度`,"tokens.tokens":`Token`,"tokens.inOut":`输入 / 输出`,"tokens.details":`展开详情`,"tokens.requestsContext":`{count} 次请求`,"tokens.lastUsedTitle":`最近使用`,"tokens.neverUsed":`尚未使用`,"tokens.settings":`设置`,"tokens.name":`名称`,"tokens.namePlaceholder":`例如:工作电脑`,"tokens.enable":`启用`,"tokens.disable":`停用`,"tokens.disableConfirm":`停用 {name}?`,"tokens.disableDetail":`使用该令牌的客户端和直接调用都会被拒绝,直到重新启用。不会修改客户端配置。`,"tokens.reset":`重置密钥`,"tokens.resetConfirm":`重置 {name} 的密钥?`,"tokens.resetDetail":`旧密钥立即失效。使用该令牌的已启用客户端会自动改写配置;被手动修改过的配置会跳过,需要重新启用。`,"tokens.resetDone":`已重置密钥,改写了 {count} 个客户端配置`,"tokens.skipped":`以下客户端未能自动更新,需要在「客户端」页面重新启用:{clients}`,"tokens.delete":`删除令牌`,"tokens.deleteConfirm":`删除 {name}?`,"tokens.deleteDetail":`使用它的客户端会切换到默认令牌并自动改写配置。历史请求日志保留该令牌的名称。`,"tokens.deleted":`已删除 {name}`,"tokens.created":`已创建 {name}`,"tokens.createTitle":`新建令牌`,"tokens.settingsTitle":`令牌设置 · {name}`,"tokens.empty":`还没有令牌`,"clients.enableTitle":`启用 {name}`,"clients.enableDetail":`以下是将要写入的改动。Astra 只新增或修改自己的配置项,并在首次修改前备份原文件。`,"clients.enabledToast":`{name} 已启用`,"clients.enabledRestart":`{name} 已启用,请重启客户端使配置生效`,"clients.noChanges":`配置已是最新,无需改动。`,"providers.add":`添加提供商`,"providers.count":`{count} 个提供商`,"providers.empty":`还没有提供商`,"providers.emptyDetail":`从内置模板添加 OpenAI、Anthropic、DeepSeek、OpenRouter 等,或接入自定义的兼容接口。`,"providers.import":`从其他应用导入`,"import.title":`从其他应用导入提供商`,"import.detail":`只读扫描 CC Switch、Alma、Claude Code、Codex、Magpie 的本地配置,不会修改它们;API Key 由服务端直接读取并加密保存,不经过浏览器。`,"import.search":`搜索名称或地址`,"import.path":`读取位置:{path}`,"import.notFound":`未找到`,"import.sourceError":`读取失败:{error}`,"import.noItems":`没有可导入的提供商`,"import.noMatch":`没有匹配的提供商`,"import.scanning":`正在扫描…`,"import.status.new":`新增`,"import.status.same":`已存在`,"import.status.sameHost":`同地址`,"import.status.off":`已停用`,"import.status.skip":`无法导入`,"import.existing":`已有提供商「{name}」`,"import.sameHostHint":`已有同地址提供商「{name}」,将作为新的提供商导入`,"import.noKey":`无 Key`,"import.models":`{count} 个模型`,"import.template":`模板:{id}`,"import.ignored":`将忽略:{fields}`,"import.skip.official-login":`官方登录(令牌绑定来源应用,不可导入)`,"import.skip.no-base-url":`缺少接口地址`,"import.skip.unsupported-protocol":`协议不支持`,"import.skip.points-to-astra":`指向 Astra 自身`,"import.skip.invalid-base-url":`接口地址无效`,"import.skip.no-inline-key":`Key 来自环境变量,不会读取`,"import.selected":`导入所选({count})`,"import.done":`已导入 {count} 个提供商`,"import.doneSkipped":`已导入 {count} 个提供商,跳过 {skipped} 个`,"import.footnote":`路由、限流、余额查询、会话与用量等设置不会导入;导入不会改动任何客户端配置,也不会发起上游请求。`,"import.rescan":`重新扫描`,"providers.modelCount":`{count} 个模型`,"providers.priceKeyShort":`价格:{key}`,"providers.templateUpdate":`模板更新`,"providers.noKey":`未设置密钥`,"providers.card.active":`已启用`,"providers.card.disabled":`已停用`,"providers.card.subscription":`订阅账号`,"providers.card.noAuth":`无需密钥`,"providers.card.requests7d":`近 7 天请求`,"providers.card.noRequests":`暂无请求`,"providers.created":`已添加 {name}`,"providers.addTitle":`选择提供商模板`,"providers.addTitleDetails":`填写提供商信息`,"providers.addDetail":`模板包含接口地址、协议和默认模型列表。`,"providers.custom":`自定义提供商`,"providers.customDetail":`任意 OpenAI / Anthropic / Gemini 兼容接口`,"providers.searchTemplates":`搜索模板`,"providers.category.recommended":`推荐`,"providers.category.official":`官方`,"providers.category.subscription":`订阅`,"providers.category.cn":`国内`,"providers.category.aggregator":`聚合平台`,"providers.category.local":`本地`,"providers.category.custom":`其他`,"providers.category.plugin":`插件`,"providers.pluginProvided":`由插件提供 · 打开后登录账号`,"providers.pluginHint":`安装 OpenCode / magpie 提供商插件后,它提供的提供商会出现在这里。`,"providers.create":`添加`,"providers.name":`名称`,"providers.variant":`区域 / 版本`,"providers.variantDefault":`默认区域`,"providers.baseUrl":`接口地址`,"providers.baseUrlHint":`通常以 /v1 结尾`,"providers.protocol":`协议`,"providers.authScheme":`认证方式`,"providers.apiKey":`API Key`,"providers.apiKeyHint":`加密保存在本机`,"providers.subscriptionWizardHint":`无需 API Key——使用订阅账号登录`,"providers.subscriptionWizardDetail":`创建提供商后,在其「账户」标签页点击「添加账户」,用浏览器完成授权即可。不同订阅的服务条款与配额以官方为准。`,"providers.subscriptionAdded":`已添加 · 在该提供商内添加账号`,"providers.subscription.quotaSession":`5h 已用 {percent}%`,"providers.subscription.quotaWeekly":`每周已用 {percent}%`,"providers.subscription.quotaCredits":`额度已用 {percent}%`,"providers.subscription.quotaBalance":`余额 {balance}`,"providers.subscription.quotaRefresh":`刷新额度`,"providers.subscription.quotaUnsupported":`该订阅暂不支持额度查询`,"providers.subscription.quotaResets":`重置于 {when}`,"providers.subscription.quotaLoading":`正在获取额度…`,"providers.subscription.quotaNoAccount":`账号已失效,重新登录后可查看额度`,"providers.subscription.quotaWindowPremium":`高级请求`,"providers.subscription.quotaPremiumCount":`已用 {used} / {total} 次高级请求`,"providers.subscription.quotaOverage":`额外 {count} 次`,"providers.subscription.quotaOverageOff":`未开启超额使用`,"providers.subscription.quotaFetchedAt":`更新于 {when}`,"providers.subscription.quotaNoWindows":`该账号没有可展示的额度窗口`,"providers.subscription.quotaWindowSession":`会话窗口`,"providers.subscription.quotaWindowWeekly":`每周窗口`,"providers.subscription.quotaWindowCredits":`额度`,"providers.quota.title":`用量查询`,"providers.quota.footer":`按模板查询该提供商的余额或套餐用量,结果显示在提供商卡片和托盘里。查询失败只会显示错误,不会影响提供商本身的使用。`,"providers.quota.enable":`启用用量查询`,"providers.quota.enableHint":`开启后按间隔在后台刷新`,"providers.quota.template":`查询模板`,"providers.quota.templateAuto":`自动({name})`,"providers.quota.templateNone":`自动(没有匹配的模板)`,"providers.quota.custom":`自定义`,"providers.quota.kind.balance":`余额`,"providers.quota.kind.plan":`套餐用量`,"providers.quota.param.userId":`用户 ID`,"providers.quota.param.accessToken":`系统访问令牌`,"providers.quota.paramsHint":`New API / One API 在个人设置里生成的系统访问令牌和用户 ID,不是 sk- 开头的 API Key。`,"providers.quota.secretStored":`已保存,留空不修改`,"providers.quota.interval":`自动查询间隔(分钟)`,"providers.quota.intervalHint":`留空跟随全局设置,0 表示不在后台查询。当前:{value}`,"providers.quota.intervalEvery":`每 {minutes} 分钟`,"providers.quota.intervalOff":`不在后台查询`,"providers.quota.timeout":`超时(秒)`,"providers.quota.baseUrl":`查询地址`,"providers.quota.baseUrlHint":`留空使用提供商的接口地址({{origin}} / {{baseUrl}} 由它得出)`,"providers.quota.method":`方法`,"providers.quota.url":`URL`,"providers.quota.urlHint":`可用占位符:{{origin}}、{{baseUrl}}、{{host}}、{{apiKey}} 以及上面的参数名`,"providers.quota.auth":`认证`,"providers.quota.auth.provider":`使用提供商的 API Key`,"providers.quota.auth.none":`只用下面的请求头`,"providers.quota.headers":`请求头(JSON)`,"providers.quota.extract":`提取规则(JSON)`,"providers.quota.extractHint":`字符串是响应里的路径(如 data.balance),数字是常量;数组按顺序取第一个存在的值;支持 $const、$add、$sub、$mul、$div、$scale、$pctUsed、$eq、$not、$case、$var、$time。取不到的字段不会被当成 0。`,"providers.quota.invalidJson":`{field} 不是有效的 JSON 对象`,"providers.quota.test":`测试查询`,"providers.quota.testDesc":`用当前(未保存)的配置发一次真实请求`,"providers.quota.fetch":`立即查询`,"providers.quota.refresh":`刷新余额`,"providers.quota.fetchedAt":`更新于 {time}`,"providers.quota.never":`尚未查询`,"providers.quota.off":`未启用用量查询`,"providers.quota.rawResponse":`原始响应(已脱敏)`,"providers.quota.requestUrl":`请求地址`,"providers.quota.httpStatus":`HTTP 状态`,"providers.quota.testOk":`查询成功`,"providers.quota.testFailed":`查询失败`,"providers.quota.extracted":`提取结果`,"providers.quota.balance":`余额 {amount}`,"providers.quota.usedPercent":`已用 {percent}%`,"providers.quota.window":`{window}已用 {percent}%`,"providers.quota.totalUsed":`已用 {used} / 共 {total}`,"providers.quota.resets":`{time}重置`,"providers.quota.invalid":`账户不可用`,"providers.quota.failed":`用量查询失败:{error}`,"providers.quota.lastGood":`下面是上次成功的结果`,"providers.quota.error.config":`查询配置不完整`,"providers.quota.error.no_key":`该提供商没有 API Key`,"providers.quota.error.unauthorized":`上游拒绝了额度查询(凭据无效或没有权限)`,"providers.quota.error.no_endpoint":`该地址没有额度接口,请换一个模板或使用自定义查询`,"providers.quota.error.rate_limited":`上游限流,请调大查询间隔`,"providers.quota.error.upstream":`上游返回错误`,"providers.quota.error.timeout":`查询超时`,"providers.quota.error.network":`无法连接上游`,"providers.quota.error.not_json":`响应不是 JSON`,"providers.quota.error.too_large":`响应过大`,"providers.quota.error.empty":`查询成功,但没有取到额度字段`,"settings.proxy":`网络代理`,"settings.proxy.footer":`网关转发、订阅登录、额度查询、更新检查和客户端安装都按这里的设置联网;本机地址始终直连,单独配置了代理的提供商以提供商为准。`,"settings.proxy.mode":`代理方式`,"settings.proxy.mode.system":`跟随系统`,"settings.proxy.mode.custom":`自定义`,"settings.proxy.mode.direct":`不使用`,"settings.proxy.mode.system.hint":`优先使用 HTTPS_PROXY 等环境变量,其次是操作系统的代理设置`,"settings.proxy.mode.custom.hint":`所有出站请求使用下面填写的代理`,"settings.proxy.mode.direct.hint":`忽略环境变量和系统代理,一律直连`,"settings.proxy.url":`代理地址`,"settings.proxy.urlHint":`支持 http、https、socks5,需包含端口`,"settings.proxy.username":`用户名`,"settings.proxy.password":`密码`,"settings.proxy.optional":`可选`,"settings.proxy.passwordSaved":`已保存,留空则不修改`,"settings.proxy.bypass":`不走代理的地址`,"settings.proxy.bypassHint":`用逗号分隔,同时匹配子域名`,"settings.proxy.saved":`代理设置已保存`,"settings.quota":`提供商用量查询`,"settings.quota.autoInterval":`后台查询间隔`,"settings.quota.autoIntervalHint":`已启用用量查询的提供商按这个间隔在后台刷新余额,0 表示关闭;单个提供商可以另行设置。`,"settings.minutes":`分钟`,"tray.quotaBalance":`余额`,"providers.subscription.relogin":`重新登录`,"providers.getKey":`获取 API Key ↗`,"providers.priceKey":`价格表`,"providers.priceKeyHint":`决定使用哪个提供商的模型价格;同一模型在不同提供商价格不同。`,"providers.priceKeyNone":`仅用官方默认价`,"providers.priceKeyDefault":`默认({id})`,"providers.templateModels":`将添加模板中的 {count} 个模型,之后可增删。`,"providers.tab.models":`模型`,"providers.tab.settings":`设置`,"providers.tab.accounts":`账户`,"providers.tab.apiKey":`API Key`,"providers.test":`测试连接`,"providers.testDialog.title":`测试 {name}`,"providers.testDialog.subtitle":`应用隐私策略并记录请求,不重试`,"providers.testDialog.modeSingle":`单模型`,"providers.testDialog.modeBatch":`批量模型`,"providers.testDialog.config":`测试配置`,"providers.testDialog.model":`测试模型`,"providers.testDialog.modelPlaceholder":`输入任意模型 ID`,"providers.testDialog.showModels":`显示模型列表`,"providers.testDialog.protocol":`测试协议`,"providers.testDialog.stream":`流式响应`,"providers.testDialog.maxTokens":`最大输出 tokens`,"providers.testDialog.prompt":`测试提示词(可选)`,"providers.testDialog.promptHint":`留空时使用默认提示词。`,"providers.testDialog.realRequest":`真实请求,可能消耗额度`,"providers.testDialog.savedCredentials":`使用此提供商已保存的连接与凭据。`,"providers.testDialog.start":`开始测试`,"providers.testDialog.retest":`重新测试`,"providers.testDialog.stop":`停止`,"providers.testDialog.stopRest":`停止后续`,"providers.testDialog.testN":`测试 {count} 个模型`,"providers.testDialog.metrics.http":`HTTP 响应`,"providers.testDialog.metrics.firstWait":`首字等待`,"providers.testDialog.metrics.ttft":`首字总延迟`,"providers.testDialog.metrics.total":`完整耗时`,"providers.testDialog.metricsHelp":`HTTP 响应:从发出请求到收到上游响应头。首字:到回答的第一个字节。等待从响应头到达算起,总延迟从发出请求算起。`,"providers.testDialog.reply":`API 提供商回复`,"providers.testDialog.preview":`预览`,"providers.testDialog.raw":`原文`,"providers.testDialog.rawNote":`网关处理后的响应正文(凭据已脱敏)`,"providers.testDialog.rawTruncated":`已截断:原文超过 256 KiB`,"providers.testDialog.reasoning":`推理过程`,"providers.testDialog.noText":`上游没有返回文本。`,"providers.testDialog.headers":`响应头`,"providers.testDialog.headersCount":`{count} 个`,"providers.testDialog.headersEmpty":`上游没有返回响应头。`,"providers.testDialog.emptyTitle":`尚未测试`,"providers.testDialog.emptyDetail":`点击开始测试,向上游发送一条真实请求。`,"providers.testDialog.status.idle":`等待测试`,"providers.testDialog.status.running":`测试中`,"providers.testDialog.status.success":`测试成功`,"providers.testDialog.status.failed":`测试失败`,"providers.testDialog.selected":`已选 {n} / {total}`,"providers.testDialog.progress":`已完成 {done} / {total} · 成功 {ok} · 失败 {failed}`,"providers.testDialog.progressDone":`本批已完成 {total} / {total} · 成功 {ok} · 失败 {failed}`,"providers.testDialog.clearSelection":`清空选择`,"providers.testDialog.searchModels":`搜索或输入模型 ID`,"providers.testDialog.addModel":`添加「{id}」`,"providers.testDialog.view":`查看`,"providers.testDialog.noModels":`该提供商还没有模型;在上方输入模型 ID 即可测试。`,"providers.testDialog.status.queued":`排队中`,"providers.testDialog.status.cancelled":`已取消`,"providers.testDialog.statusColumn":`状态`,"providers.testDialog.ownFilter":`输入模型 ID 可添加列表中没有的模型`,"providers.duplicate":`复制提供商`,"providers.deleteConfirm":`删除 {name}?`,"providers.deleteDetail":`提供商及其模型设置会被删除,请求记录保留。`,"providers.deleted":`已删除`,"providers.deleteBound":`仍有客户端在使用:{clients}。请先为它们切换提供商。`,"providers.templateVersions":`当前版本 {current},最新版本 {latest}`,"providers.templateApplied":`已更新到最新模板`,"providers.templateUpToDate":`已是最新模板。`,"providers.searchModels":`搜索模型`,"providers.addModels":`添加模型`,"providers.addModelsDetail":`输入模型 ID,每行一个或用逗号分隔;会自动关联到系统模型以继承参数和价格。`,"providers.fetchRemote":`从上游获取`,"providers.fetchRemoteDetail":`读取提供商的模型列表,自动关联到系统模型以继承参数和价格。`,"providers.noModels":`还没有模型`,"providers.noModelsDetail":`从上游获取模型列表,或手动输入模型 ID。`,"providers.modelsFooter":`模型默认只需要 ID:未覆盖的字段继承关联的系统模型,价格按此提供商的价格表计算。`,"providers.modelMap.title":`模型映射`,"providers.modelMap.footer":`把客户端请求的模型 ID 转成本提供商的模型,例如 deepseek-v4.1 → deepseek-chat。映射的 ID 会出现在客户端的模型列表里;客户端绑定了多个提供商时,请求这个 ID 也会路由到这里。计费按实际发送的模型计算。`,"providers.modelMap.add":`添加映射`,"providers.modelMap.addDetail":`客户端请求左边的模型 ID 时,Astra 改为向本提供商请求右边的模型。`,"providers.modelMap.needModels":`先给提供商添加模型`,"providers.modelMap.from":`请求的模型 ID`,"providers.modelMap.to":`本提供商的模型`,"providers.modelMap.toPlaceholder":`选择模型`,"providers.modelMap.remove":`删除映射 {from}`,"providers.modelMap.saved":`已保存模型映射`,"providers.modelMap.missingTarget":`目标模型不存在`,"providers.unlinked":`未关联`,"providers.modelsAdded":`已添加 {count} 个模型`,"providers.addSelected":`添加 {count} 个`,"providers.linksTo":`关联到 {id}`,"providers.noLink":`不关联系统模型`,"providers.added":`已添加`,"providers.linkedModel":`关联的系统模型`,"providers.linkedModelHint":`未覆盖的字段和价格都从这里继承。`,"providers.overrides":`字段覆盖`,"providers.price":`价格`,"providers.customPrice":`自定义价格`,"providers.customPriceHint":`自定义价格完全替换继承的价格,不乘提供商倍率。`,"providers.inheritedPriceHint":`当前生效的价格(继承,已按提供商价格表解析):`,"providers.removeModel":`从提供商移除 {id}?`,"providers.removeModelShort":`移除此模型`,"providers.section.basic":`基本信息`,"providers.section.auth":`认证`,"providers.section.endpoints":`接口`,"providers.section.billing":`计费`,"providers.section.advanced":`高级`,"providers.section.info":`信息`,"providers.subscription":`订阅账号`,"providers.subscription.footer":`令牌加密保存在本机;即将过期时自动刷新。`,"providers.subscription.login":`登录订阅`,"providers.subscription.loginDesc":`按提供商的授权流程完成登录,令牌只保存在本机。`,"providers.subscription.logout":`登出并删除`,"providers.subscription.logoutConfirm":`登出账号「{name}」?绑定该账号的客户端将回退到默认账号。`,"providers.subscription.refreshToken":`刷新令牌`,"providers.subscription.tokenRefreshed":`令牌已刷新`,"providers.subscription.expires":`到期`,"providers.subscription.status.active":`有效`,"providers.subscription.status.expired":`已过期`,"providers.subscription.status.revoked":`已失效`,"providers.subscription.none":`尚未登录订阅账号`,"providers.subscription.openAuthorize":`打开授权页`,"providers.subscription.doneAuthorize":`我已完成授权`,"providers.subscription.waiting":`等待授权…`,"providers.subscription.waitingDetail":`已在浏览器打开授权页;完成后本页会自动检测到新账号。`,"providers.subscription.cliDetail":`在浏览器完成授权后本页会自动完成登录(服务端轮询,无需回调地址)。`,"providers.subscription.checkNow":`我已授权,立即验证`,"providers.subscription.checkNowHint":`在浏览器完成授权后点一下;本页也会每几秒自动检查一次。`,"providers.subscription.pasteTitle":`把授权页显示的授权码粘回来`,"providers.subscription.pasteDetail":`Claude 的回调地址是它自己注册的地址(不是本机),所以无法自动跳回来:授权页上会显示一个授权码。点「打开授权页」完成授权,再把授权码整段复制粘贴到下面。`,"providers.subscription.pastePlaceholder":`粘贴授权码(形如 xxxx#yyyy)`,"providers.subscription.pasteCode":`授权码`,"providers.subscription.pasteSubmit":`完成登录`,"providers.subscription.stillWaiting":`还没收到授权,请确认浏览器里已完成确认。`,"providers.subscription.deviceCode":`设备码`,"providers.subscription.visitPage":`打开验证页面`,"providers.subscription.loginOk":`授权成功:{name}`,"providers.subscription.loginFailed":`登录失败`,"providers.subscription.importCodex":`导入本机 Codex 登录`,"providers.subscription.importCodexHint":`把本机 ~/.codex/auth.json 里已有的 codex 登录态接进来,不用再走一遍浏览器授权`,"providers.subscription.importOk":`已导入本机 Codex 账号:{name}`,"providers.subscription.importCopilot":`导入本机 GitHub 授权`,"providers.subscription.importCopilotHint":`接入本机已有的 GitHub 授权(VS Code 的 GitHub 会话、GH_TOKEN 或 Copilot 插件配置)来建 Copilot 账号,不用再走一遍设备码授权`,"providers.subscription.importCopilotPlaceholder":`或粘贴 GitHub token(gho_…)`,"providers.subscription.importCopilotToken":`GitHub token`,"providers.subscription.localCopilotFound":`检测到本机 GitHub 授权:{source}`,"providers.subscription.importBatch":`批量导入 token`,"providers.subscription.importBatchTitle":`批量导入 GitHub token`,"providers.subscription.importBatchLabel":`GitHub token 列表(每行一个)`,"providers.subscription.importBatchDesc":`粘贴 GitHub token(gho_ / ghp_ / github_pat_),每行一个。每个 token 会建成一个 Copilot 账号;重复的、没有 Copilot 订阅的 token 只会报告结果,不会导入。也可以直接粘贴可用的 Copilot 令牌(tid=…;exp=…),它不需要置换,但无法自动续期,到期后需重新导入。`,"providers.subscription.importBatchPlaceholder":`gho_xxxxxxxxxxxx
|
|
9
|
+
`),()=>{s.current?.removeAttribute(`data-motion-pop-id`),b.contains(y)&&b.removeChild(y)}},[t]),(0,h.jsx)(Au,{isPresent:t,childRef:s,sizeRef:c,pop:a,children:a===!1?e:m.cloneElement(e,{ref:u})})}var Mu=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:o,anchorX:s,anchorY:c,root:l})=>{let u=nt(Nu),d=(0,m.useId)(),f=(0,m.useRef)(n),p=(0,m.useRef)(r);rt(()=>{f.current=n,p.current=r});let g=!0,_=(0,m.useMemo)(()=>(g=!1,{id:d,initial:t,isPresent:n,custom:i,onExitComplete:e=>{u.set(e,!0);for(let e of u.values())if(!e)return;r&&r()},register:e=>(u.set(e,!1),()=>{u.delete(e),!f.current&&!u.size&&p.current?.()})}),[n,u,r]);return a&&g&&(_={..._}),(0,m.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[n]),m.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),e=(0,h.jsx)(ju,{pop:o===`popLayout`,isPresent:n,anchorX:s,anchorY:c,root:l,children:e}),(0,h.jsx)(it.Provider,{value:_,children:e})};function Nu(){return new Map}function Pu(e=!0){let t=(0,m.useContext)(it);if(t===null)return[!0,null];let{isPresent:n,onExitComplete:r,register:i}=t,a=(0,m.useId)();(0,m.useEffect)(()=>{if(e)return i(a)},[e]);let o=(0,m.useCallback)(()=>e&&r&&r(a),[a,r,e]);return!n&&r?[!1,o]:[!0]}function Fu(){return Iu((0,m.useContext)(it))}function Iu(e){return e===null||e.isPresent}var Lu=e=>e.key||``;function Ru(e){let t=[];return m.Children.forEach(e,e=>{(0,m.isValidElement)(e)&&t.push(e)}),t}var V=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:a=`sync`,propagate:o=!1,anchorX:s=`left`,anchorY:c=`top`,root:l})=>{let[u,d]=Pu(o),f=(0,m.useMemo)(()=>Ru(e),[e]),p=o&&!u?[]:f.map(Lu),g=(0,m.useRef)(!0),_=nt(()=>new Map),v=(0,m.useRef)(new Set),[y,b]=(0,m.useState)(f),[x,S]=(0,m.useState)(f);rt(()=>{o&&!u&&!x.length&&d?.()},[u,o,x.length,d]),rt(()=>{g.current=!1;for(let e=0;e<x.length;e++){let t=Lu(x[e]);p.includes(t)?(_.delete(t),v.current.delete(t)):_.get(t)!==!0&&_.set(t,!1)}},[x,p.length,p.join(`-`)]);let C=[];if(f!==y){let e=[...f],t=0;for(let n of x){let r=p.indexOf(Lu(n));r===-1?(e.splice(t++,0,n),C.push(n)):t=r+C.length+1}return C.every(e=>_.get(Lu(e)))?e=f:a===`wait`&&(e=C),S(Ru(e)),b(f),null}let{forceRender:w}=(0,m.useContext)(tt);return(0,h.jsx)(h.Fragment,{children:x.map(e=>{let m=Lu(e),y=o&&!u?!1:f===x||p.includes(m);return(0,h.jsx)(Mu,{isPresent:y,initial:!g.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:a,root:l,onExitComplete:y?void 0:()=>{if(v.current.has(m))return;if(_.has(m))v.current.add(m),_.set(m,!0);else return;let e=!0;_.forEach(t=>{t||(e=!1)}),e&&(w?.(),b([]),o&&d?.(),r&&r())},anchorX:s,anchorY:c,children:e},m)})})},zu=(0,m.createContext)(null);function Bu(){let e=(0,m.useRef)(!1);return rt(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function Vu(){let e=Bu(),[t,n]=(0,m.useState)(0),r=(0,m.useCallback)(()=>{e.current&&n(t+1)},[t]);return[(0,m.useCallback)(()=>B.postRender(r),[r]),t]}var Hu=e=>e===!0,Uu=e=>Hu(e===!0)||e===`id`,Wu=({children:e,id:t,inherit:n=!0})=>{let r=(0,m.useContext)(tt),i=(0,m.useContext)(zu),[a,o]=Vu(),s=(0,m.useRef)(null),c=r.id||i;s.current===null&&(Uu(n)&&c&&(t=t?c+`-`+t:c),s.current={id:t,group:Hu(n)&&r.group||Cu()});let l=(0,m.useMemo)(()=>({...s.current,forceRender:a}),[o]);return(0,h.jsx)(tt.Provider,{value:l,children:e})},Gu=(0,m.createContext)({strict:!1}),Ku={animation:[`animate`,`variants`,`whileHover`,`whileTap`,`exit`,`whileInView`,`whileFocus`,`whileDrag`],exit:[`exit`],drag:[`drag`,`dragControls`],focus:[`whileFocus`],hover:[`whileHover`,`onHoverStart`,`onHoverEnd`],tap:[`whileTap`,`onTap`,`onTapStart`,`onTapCancel`],pan:[`onPan`,`onPanStart`,`onPanSessionStart`,`onPanEnd`],inView:[`whileInView`,`onViewportEnter`,`onViewportLeave`],layout:[`layout`,`layoutId`]},qu=!1;function Ju(){if(qu)return;let e={};for(let t in Ku)e[t]={isEnabled:e=>Ku[t].some(t=>!!e[t])};wc(e),qu=!0}function Yu(){return Ju(),Tc()}function Xu(e){let t=Yu();for(let n in e)t[n]={...t[n],...e[n]};wc(t)}var Zu=(0,m.createContext)({});function Qu(e,t){if(hc(e)){let{initial:t,animate:n}=e;return{initial:t===!1||fc(t)?t:void 0,animate:fc(n)?n:void 0}}return e.inherit===!1?{}:t}function $u(e){let{initial:t,animate:n}=Qu(e,(0,m.useContext)(Zu));return(0,m.useMemo)(()=>({initial:t,animate:n}),[ed(t),ed(n)])}function ed(e){return Array.isArray(e)?e.join(` `):e}var td=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function nd(e,t,n){for(let r in t)!qa(t[r])&&!jc(r,n)&&(e[r]=t[r])}function rd({transformTemplate:e},t){return(0,m.useMemo)(()=>{let n=td();return zo(n,t,e),Object.assign({},n.vars,n.style)},[t])}function id(e,t){let n=e.style||{},r={};return nd(r,n,e),Object.assign(r,rd(e,t)),r}function ad(e,t){let n={},r=id(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.touchAction=e.drag===!0?`none`:`pan-${e.drag===`x`?`y`:`x`}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}var od=()=>({...td(),attrs:{}});function sd(e,t,n,r){let i=(0,m.useMemo)(()=>{let n=od();return Wo(n,t,Ic(r),e.transformTemplate,e.style),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};nd(t,e.style,e),i.style={...t,...i.style}}return i}var cd=new Set(`animate.exit.variants.initial.style.values.transition.transformTemplate.custom.inherit.onBeforeLayoutMeasure.onAnimationStart.onAnimationComplete.onUpdate.onDragStart.onDrag.onDragEnd.onMeasureDragConstraints.onDirectionLock.onDragTransitionEnd._dragX._dragY.onHoverStart.onHoverEnd.onViewportEnter.onViewportLeave.globalTapTarget.propagate.ignoreStrict.viewport`.split(`.`));function ld(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||cd.has(e)}function ud(e,t){return e.startsWith(`on`)?!ld(e):t?.(e)??!ld(e)}function dd(e,t,n,r){let i={};for(let a in e)(a!==`values`||typeof e.values!=`object`)&&(qa(e[a])||(ud(a,r)||n===!0&&ld(a)||!t&&!ld(a)||e.draggable&&a.startsWith(`onDrag`))&&(i[a]=e[a]));return i}var fd=[`animate`,`circle`,`defs`,`desc`,`ellipse`,`g`,`image`,`line`,`filter`,`marker`,`mask`,`metadata`,`path`,`pattern`,`polygon`,`polyline`,`rect`,`stop`,`switch`,`symbol`,`svg`,`text`,`tspan`,`use`,`view`];function pd(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(fd.indexOf(e)>-1||/[A-Z]/u.test(e))}function md(e,t,n,{latestValues:r},i,a=!1,o,s){let c=(o??pd(e)?sd:ad)(t,r,i,e),l=dd(t,typeof e==`string`,a,s),u=e===m.Fragment?{}:{...l,...c,ref:n},{children:d}=t,f=(0,m.useMemo)(()=>qa(d)?d.get():d,[d]);return(0,m.createElement)(e,{...u,children:f})}function hd({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:gd(n,r,i,e),renderState:t()}}function gd(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=Ll(a[e]);let{initial:o,animate:s}=e,c=hc(e),l=gc(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!dc(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=za(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var _d=e=>(t,n)=>{let r=(0,m.useContext)(Zu),i=(0,m.useContext)(it),a=()=>hd(e,t,r,i);return n?a():nt(a)},vd=_d({scrapeMotionValuesFromProps:Mc,createRenderState:td}),yd=_d({scrapeMotionValuesFromProps:Rc,createRenderState:od}),bd=Symbol.for(`motionComponentSymbol`);function xd(e,t,n){let r=(0,m.useRef)(n);(0,m.useInsertionEffect)(()=>{r.current=n});let i=(0,m.useRef)(null);return(0,m.useCallback)(n=>{n&&e.onMount?.(n),t&&(n?t.mount(n):t.unmount());let a=r.current;if(typeof a==`function`){if(n){let e=a(n);typeof e==`function`&&(i.current=e)}else i.current?(i.current(),i.current=null):a(n)}else a&&(a.current=n)},[t])}var Sd=(0,m.createContext)({});function Cd(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}function wd(e,t,n,r,i,a){let{visualElement:o}=(0,m.useContext)(Zu),s=(0,m.useContext)(Gu),c=(0,m.useContext)(it),l=(0,m.useContext)(Eu),u=l.reducedMotion,d=l.skipAnimations,f=(0,m.useRef)(null),p=(0,m.useRef)(!1);r||=s.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:o,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:u,skipAnimations:d,isSVG:a}),p.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));let h=f.current,g=(0,m.useContext)(Sd);h&&!h.projection&&i&&(h.type===`html`||h.type===`svg`)&&Td(f.current,n,i,g);let _=(0,m.useRef)(!1);(0,m.useInsertionEffect)(()=>{h&&_.current&&h.update(n,c)});let v=n[Za],y=(0,m.useRef)(!!v&&typeof window<`u`&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return rt(()=>{p.current&&h&&(h.animationState?.animateChanges(),h.enteringChildren=void 0)},[]),rt(()=>{p.current=!0,h&&(_.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),h.scheduleRenderMicrotask(),y.current&&h.animationState&&h.animationState.animateChanges())}),(0,m.useEffect)(()=>{h&&(!y.current&&h.animationState&&h.animationState.animateChanges(),y.current&&=(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),!1),h.enteringChildren=void 0)}),h}function Td(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l,layoutAnchor:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:Ed(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&Cd(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:l,layoutAnchor:u})}function Ed(e){if(e)return e.options.allowProjection===!1?Ed(e.parent):e.projection}function Dd(e,{forwardMotionProps:t=!1,type:n}={},r,i){r&&Xu(r);let a=n?n===`svg`:pd(e),o=a?yd:vd;function s(n,s){let c,l={...(0,m.useContext)(Eu),...n,layoutId:Od(n)},{isStatic:u,isValidProp:d}=l,f=$u(n),p=o(n,u);if(!u&&typeof window<`u`){kd(l,r);let t=Ad(l);c=t.MeasureLayout,f.visualElement=wd(e,p,l,i,t.ProjectionNode,a)}return(0,h.jsxs)(Zu.Provider,{value:f,children:[c&&f.visualElement?(0,h.jsx)(c,{visualElement:f.visualElement,...l}):null,md(e,n,xd(p,f.visualElement,s),p,u,t,a,d)]})}s.displayName=`motion.${typeof e==`string`?e:`create(${e.displayName??e.name??``})`}`;let c=(0,m.forwardRef)(s);return c[bd]=e,c}function Od({layoutId:e}){let t=(0,m.useContext)(tt).id;return t&&e!==void 0?t+`-`+e:e}function kd(e,t){(0,m.useContext)(Gu).strict}function Ad(e){let{drag:t,layout:n}=Yu();if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function jd(e,t){if(typeof Proxy>`u`)return Dd;let n=new Map,r=(n,r)=>Dd(n,r,e,t);return new Proxy((e,t)=>r(e,t),{get:(i,a)=>a===`create`?r:(n.has(a)||n.set(a,Dd(a,void 0,e,t)),n.get(a))})}var Md=(e,t)=>t.isSVG??pd(e)?new zc(t):new Pc(t,{allowProjection:e!==m.Fragment}),Nd=class extends Oc{constructor(e){super(e),e.animationState||=Hc(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();dc(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}},Pd=0,Fd={animation:{Feature:Nd},exit:{Feature:class extends Oc{constructor(){super(...arguments),this.id=Pd++}update(){let{presenceContext:e,prevPresenceContext:t,animationState:n}=this.node;if(!e||!n)return;let{isPresent:r,onExitComplete:i}=e,a=t?.isPresent;if(r===a)return;if(r&&a===!1){if(this.exit===!0){let{initial:e}=this.node.getProps();if(e&&!Array.isArray(e)){let{transition:t,transitionEnd:n,...r}=Ba(this.node,e)||{};for(let e in r)this.node.getValue(e)?.jump(r[e])}this.node.blockInitialAnimation=!1,n.reset(),n.animateChanges()}else n.setActive(`exit`,!1);this.exit=void 0;return}let o=this.exit=n.setActive(`exit`,!r);i&&!r&&o.then(()=>{this.exit===o&&(this.exit=!0,i(this.id))})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}}};function Id(e){return{point:{x:e.pageX,y:e.pageY}}}var Ld=e=>t=>js(t)&&e(t,Id(t));function Rd(e,t,n,r){return Nl(e,t,Ld(n),r)}var zd=({current:e})=>e?e.ownerDocument.defaultView:null,Bd=(e,t)=>Math.abs(e-t);function Vd(e,t){let n=Bd(e.x,t.x),r=Bd(e.y,t.y);return Math.sqrt(n**2+r**2)}var Hd=new Set([`auto`,`scroll`]),Ud=class{constructor(e,t,{transformPagePoint:n,contextWindow:r=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.hasPendingMove=!1,this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Wd(this.lastRawMoveEventInfo,this.transformPagePoint));let e=Kd(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=Vd(e.offset,{x:0,y:0})>=this.distanceThreshold;if(!t&&!n)return;let{point:r}=e;this.history.push({...r,timestamp:qt.now()});let{onStart:i,onMove:a}=this.handlers;t||(i&&i(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),a&&a(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=Wd(t,this.transformPagePoint),this.hasPendingMove=!0,B.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.hasPendingMove&&this.updatePoint(),this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=Kd(e.type===`pointercancel`?this.lastMoveEventInfo:Wd(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!js(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.distanceThreshold=a,this.contextWindow=r||window;let s=Wd(Id(e),this.transformPagePoint),{point:c}=s,{timestamp:l}=Wt;this.history=[{...c,timestamp:l}];let{onSessionStart:u}=t;u&&u(e,Kd(s,this.history));let d={passive:!0,capture:!0};this.removeListeners=mt(Rd(this.contextWindow,`pointermove`,this.handlePointerMove,d),Rd(this.contextWindow,`pointerup`,this.handlePointerUp,d),Rd(this.contextWindow,`pointercancel`,this.handlePointerUp,d)),o&&this.startScrollTracking(o)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(Hd.has(e.overflowX)||Hd.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.addEventListener(`scroll`,this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.removeEventListener(`scroll`,this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let n=e===window,r=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},i={x:r.x-t.x,y:r.y-t.y};(i.x!==0||i.y!==0)&&(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(e,r),B.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),dr(this.updatePoint)}};function Wd(e,t){return t?{point:t(e.point)}:e}function Gd(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Kd({point:e},t){return{point:e,delta:Gd(e,Jd(t)),offset:Gd(e,qd(t)),velocity:Yd(t,.1)}}function qd(e){return e[0]}function Jd(e){return e[e.length-1]}function Yd(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=Jd(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>_t(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>_t(t)*2&&(r=e[1]);let a=vt(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function Xd(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?z(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?z(n,e,r.max):Math.min(e,n)),e}function Zd(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function Qd(e,{top:t,left:n,bottom:r,right:i}){return{x:Zd(e.x,n,i),y:Zd(e.y,t,r)}}function $d(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function ef(e,t){return{x:$d(e.x,t.x),y:$d(e.y,t.y)}}function tf(e,t){let n=.5,r=Qc(e),i=Qc(t);return i>r?n=ht(t.min,t.max-r,e.min):r>i&&(n=ht(e.min,e.max-i,t.min)),st(0,1,n)}function nf(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}var rf=.35;function af(e=rf){return e===!1?e=0:e===!0&&(e=rf),{x:of(e,`left`,`right`),y:of(e,`top`,`bottom`)}}function of(e,t,n){return{min:sf(e,t),max:sf(e,n)}}function sf(e,t){return typeof e==`number`?e:e[t]||0}var cf=new WeakMap,lf=class{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=lc(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:n}={}){let{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;let i=e=>{t&&this.snapToCursor(e),this.stopAnimation()},a=(e,t)=>{let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();if(n&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Es(n),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),bl(e=>{let t=this.getAxisMotionValue(e).get()||0;if(_n.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=Qc(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&B.update(()=>i(e,t),!1,!0),Ya(this.visualElement,`transform`);let{animationState:a}=this.visualElement;a&&a.setActive(`whileDrag`,!0)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openDragLock)return;let{offset:o}=t;if(r&&this.currentDirection===null){this.currentDirection=pf(o),this.currentDirection!==null&&i&&i(this.currentDirection);return}this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&B.update(()=>a(e,t),!1,!0)},s=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:l}=this.getProps();this.panSession=new Ud(e,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:s,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,distanceThreshold:n,contextWindow:zd(this.visualElement),element:this.visualElement.current})}stop(e,t){let n=e||this.latestPointerEvent,r=t||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!r||!n)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:o}=this.getProps();o&&B.postRender(()=>o(n,r))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive(`whileDrag`,!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!ff(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=Xd(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&Cd(e)?this.constraints||=this.resolveRefConstraints():this.constraints=e&&n?Qd(n.layoutBox,e):!1,this.elastic=af(t),r!==this.constraints&&!Cd(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&bl(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=nf(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!Cd(e))return!1;let n=e.current,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;r.root&&(r.root.scroll=void 0,r.root.updateScroll());let i=gs(n,r.root,this.visualElement.getTransformPagePoint()),a=ef(r.layout.layoutBox,i);if(t){let e=t(Zo(a));this.hasMutatedConstraints=!!e,e&&(a=Xo(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=bl(o=>{if(!ff(o,t,this.currentDirection))return;let c=s&&s[o]||{};(a===!0||a===o)&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return Ya(this.visualElement,e),n.start(Pa(e,n,0,t,this.visualElement,!1))}stopAnimation(){bl(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`;return this.visualElement.getProps()[t]||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor({clientX:e,clientY:t}){let{drag:n}=this.getProps(),r={x:e,y:t},i=this.visualElement.getTransformPagePoint()?.(r)||r,a=this.visualElement.measureViewportBox();bl(e=>{if(!ff(e,n,this.currentDirection))return;let t=this.getAxisMotionValue(e),{min:r,max:o}=a[e];t.set((t.get()||0)+i[e]-z(r,o,.5))})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!Cd(t)||!n||!this.constraints)return;this.stopAnimation();let r=this.constraints,i={x:0,y:0};bl(e=>{let t=this.getAxisMotionValue(e).get();i[e]=tf({min:t,max:t},r[e])});let{transformTemplate:a}=this.visualElement.getProps();this.visualElement.current.style.transform=a?a({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),bl(t=>{let n=this.getAxisMotionValue(t);if(!ff(t,e,null)||!n.get())return;let{min:r,max:a}=this.constraints[t];n.set(z(r,a,i[t]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;cf.set(this.visualElement,this);let e=this.visualElement.current,t=Rd(e,`pointerdown`,t=>{let{drag:n,dragListener:r=!0}=this.getProps(),i=t.target,a=i!==e&&Fs(i);n&&r&&!a&&this.start(t)}),n,r=()=>{let{dragConstraints:t}=this.getProps();Cd(t)&&t.current&&(this.constraints=this.resolveRefConstraints(),n||=df(e,t.current,()=>this.scalePositionWithinConstraints()))},{projection:i}=this.visualElement,a=i.addEventListener(`measure`,r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),B.read(r);let o=Nl(window,`resize`,()=>this.scalePositionWithinConstraints()),s=i.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(bl(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{o(),t(),a(),s&&s(),n&&n()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=rf,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function uf(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function df(e,t,n){let r=nc(e,uf(n)),i=nc(t,uf(n));return()=>{r(),i()}}function ff(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function pf(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var mf=class extends Oc{constructor(e){super(e),this.removeGroupControls=pt,this.removeListeners=pt,this.controls=new lf(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||pt}update(){let{dragControls:e}=this.node.getProps(),{dragControls:t}=this.node.prevProps||{};e!==t&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},hf=e=>(t,n)=>{e&&B.update(()=>e(t,n),!1,!0)},gf=class extends Oc{constructor(){super(...arguments),this.removePointerDownListener=pt}onPointerDown(e){this.session=new Ud(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:zd(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:hf(e),onStart:hf(t),onMove:hf(n),onEnd:(e,t)=>{delete this.session,r&&B.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=Rd(this.node.current,`pointerdown`,e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}},_f=!1,vf=class extends m.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:i}=e;i&&(t.group&&t.group.add(i),n&&n.register&&r&&n.register(i),_f&&i.root.didUpdate(),i.addEventListener(`animationComplete`,()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),Bl.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:n,drag:r,isPresent:i}=this.props,{projection:a}=n;return a?(a.isPresent=i,e.layoutDependency!==t&&a.setOptions({...a.options,layoutDependency:t}),_f=!0,r||e.layoutDependency!==t||t===void 0||e.isPresent!==i?a.willUpdate():this.safeToRemove(),e.isPresent!==i&&(i?a.promote():a.relegate()||B.postRender(()=>{let e=a.getStack();(!e||!e.members.length)&&this.safeToRemove()})),null):null}componentDidUpdate(){let{visualElement:e,layoutAnchor:t}=this.props,{projection:n}=e;n&&(n.options.layoutAnchor=t,n.root.didUpdate(),Ss.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;_f=!0,r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}};function yf(e){let[t,n]=Pu(),r=(0,m.useContext)(tt);return(0,h.jsx)(vf,{...e,layoutGroup:r,switchLayoutGroup:(0,m.useContext)(Sd),isPresent:t,safeToRemove:n})}var bf={pan:{Feature:gf},drag:{Feature:mf,ProjectionNode:Tu,MeasureLayout:yf}};function xf(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&B.postRender(()=>i(t,Id(t)))}var Sf=class extends Oc{mount(){let{current:e}=this.node;e&&(this.unmount=ks(e,(e,t)=>(xf(this.node,t,`Start`),e=>xf(this.node,e,`End`))))}unmount(){}},Cf=class extends Oc{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}e&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!1),this.isActive=!1)}mount(){this.unmount=mt(Nl(this.node.current,`focus`,()=>this.onFocus()),Nl(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function wf(e,t,n){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&B.postRender(()=>i(t,Id(t)))}var Tf=class extends Oc{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:n}=this.node.props;this.unmount=Hs(e,(e,t)=>(wf(this.node,t,`Start`),(e,{success:t})=>wf(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:t,stopPropagation:n?.tap===!1})}unmount(){}},Ef=new WeakMap,Df=new WeakMap,Of=e=>{let t=Ef.get(e.target);t&&t(e)},kf=e=>{e.forEach(Of)};function Af({root:e,...t}){let n=e||document;Df.has(n)||Df.set(n,{});let r=Df.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(kf,{root:e,...t})),r[i]}function jf(e,t,n){let r=Af(t);return Ef.set(e,n),r.observe(e),()=>{Ef.delete(e),r.unobserve(e)}}var Mf={some:0,all:1},Nf=class extends Oc{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:Mf[r]},o=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)};this.stopObserver=jf(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(Pf(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function Pf({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var Ff={inView:{Feature:Nf},tap:{Feature:Tf},focus:{Feature:Cf},hover:{Feature:Sf}},If={layout:{ProjectionNode:Tu,MeasureLayout:yf}},Lf=jd({...Fd,...Ff,...bf,...If},Md);function Rf(e){let t=nt(()=>wa(e)),{isStatic:n}=(0,m.useContext)(Eu);if(n){let[,n]=(0,m.useState)(e);(0,m.useEffect)(()=>t.on(`change`,n),[])}return t}function H(){!yc.current&&xc();let[e]=(0,m.useState)(vc.current);return e}function zf(e){return typeof e==`object`&&!Array.isArray(e)}function Bf(e,t,n,r){return e==null?[]:typeof e==`string`&&zf(t)?wo(e,n,r):e instanceof NodeList?Array.from(e):Array.isArray(e)?e.filter(e=>e!=null):[e]}function Vf(e,t,n){return e*(t+1)+n*t}function Hf(e,t,n,r){return typeof t==`number`?t:t.startsWith(`-`)||t.startsWith(`+`)?Math.max(0,e+parseFloat(t)):t===`<`?n:t.startsWith(`<`)?Math.max(0,n+parseFloat(t.slice(1))):r.get(t)??e}function Uf(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];i.at>t&&i.at<n&&(ot(e,i),r--)}}function Wf(e,t,n,r,i,a){Uf(e,i,a);for(let o=0;o<t.length;o++)e.push({value:t[o],at:z(i,a,r[o]),easing:zt(n,o)})}function Gf(e,t,n=0){let r=t+1+t*n;for(let t=0;t<e.length;t++)e[t]=e[t]/r}function Kf(e,t){return e.at===t.at?e.value===null?1:t.value===null?-1:0:e.at-t.at}var qf=`easeInOut`,Jf=20;function Yf(e,{defaultTransition:t={},...n}={},r,i){let a=t.duration||.3,o=new Map,s=new Map,c={},l=new Map,u=0,d=0,f=0;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o==`string`){l.set(o,d);continue}if(!Array.isArray(o)){l.set(o.name,Hf(d,o.at,u,l));continue}let[p,m,h={}]=o;h.at!==void 0&&(d=Hf(d,h.at,u,l));let g=0,_=(e,n,r,o=0,s=0)=>{let c=Qf(e),{delay:l=0,times:u=Pr(c),type:p=t.type||`keyframes`,repeat:m,repeatType:h,repeatDelay:_=0,...v}=n,{ease:y=t.ease||`easeOut`,duration:b}=n,x=typeof l==`function`?l(o,s):l,S=c.length,C=Xi(p)?p:i?.[p||`keyframes`];if(S<=2&&C){let e=100;if(S===2&&tp(c)){let t=c[1]-c[0];e=Math.abs(t)}let n={...t,...v};b!==void 0&&(n.duration=_t(b));let r=_r(n,e,C);y=r.ease,b=r.duration}b??=a;let w=d+x;u.length===1&&u[0]===0&&(u[1]=1);let T=u.length-c.length;if(T>0&&Nr(u,T),c.length===1&&c.unshift(null),m&&`${m}${Jf}`,m&&m<Jf){let e=b>0?_/b:0;b=Vf(b,m,_);let t=[...c],n=[...u];y=Array.isArray(y)?[...y]:[y];let r=[...y],i=h===`reverse`||h===`mirror`,a=t,o=r;i&&(a=[...t].reverse(),h===`reverse`&&(o=[...r].reverse().map(e=>typeof e==`function`?Dt(e):e)));for(let s=0;s<m;s++){let l=i&&s%2==0,d=l?a:t,f=l?o:r,p=(s+1)*(1+e);e>0&&(c.push(c[c.length-1]),u.push(p),y.push(`linear`)),c.push(...d);for(let e=0;e<d.length;e++)u.push(n[e]+p),y.push(e===0?`linear`:zt(f,e-1))}Gf(u,m,e)}let E=w+b;Wf(r,c,y,u,w,E),g=Math.max(x+b,g),f=Math.max(E,f)};if(qa(p)){let e=Xf(p,s);_(m,h,Zf(`default`,e))}else{let e=Bf(p,m,r,c),t=e.length;for(let n=0;n<t;n++){m=m,h=h;let r=e[n],i=Xf(r,s);for(let e in m)_(m[e],$f(h,e),Zf(e,i),n,t)}}u=d,d+=g}return s.forEach((e,r)=>{for(let i in e){let a=e[i];a.sort(Kf);let s=[],c=[],l=[];for(let e=0;e<a.length;e++){let{at:t,value:n,easing:r}=a[e];s.push(n),c.push(ht(0,f,t)),l.push(r||`easeOut`)}c[0]!==0&&(c.unshift(0),s.unshift(s[0]),l.unshift(qf)),c[c.length-1]!==1&&(c.push(1),s.push(null)),o.has(r)||o.set(r,{keyframes:{},transition:{}});let u=o.get(r);u.keyframes[i]=s;let{type:d,...p}=t;u.transition[i]={...p,duration:f,ease:l,times:c,...n}}}),o}function Xf(e,t){return!t.has(e)&&t.set(e,{}),t.get(e)}function Zf(e,t){return t[e]||(t[e]=[]),t[e]}function Qf(e){return Array.isArray(e)?e:[e]}function $f(e,t){return e&&e[t]?{...e,...e[t]}:{...e}}var ep=e=>typeof e==`number`,tp=e=>e.every(ep);function np(e,t){return qa(e)||typeof e==`number`||typeof e==`string`&&!zf(t)}function rp(e,t,n,r){let i=[];if(np(e,t))i.push(Ml(e,zf(t)&&t.default||t,n&&(n.default||n)));else{if(e==null)return i;let a=Bf(e,t,r),o=a.length;for(let e=0;e<o;e++){let r=a[e],s={...n};`delay`in s&&typeof s.delay==`function`&&(s.delay=s.delay(e,o)),r instanceof Element?i.push(...bs(r,t,s,uc.get(r))):i.push(...yo(_o(r)??xs,r,t,s))}}return i}function ip(e,t,n){let r=[];return Yf(e.map(e=>{if(Array.isArray(e)&&typeof e[0]==`function`){let t=e[0],n=wa(0);return n.on(`change`,t),e.length===1?[n,[0,1]]:e.length===2?[n,[0,1],e[1]]:[n,e[1],e[2]]}return e}),t,n,{spring:kr}).forEach(({keyframes:e,transition:t},n)=>{r.push(...rp(n,e,t))}),r}function ap(e){return Array.isArray(e)&&e.some(Array.isArray)}function op(e={}){let{scope:t,reduceMotion:n,skipAnimations:r}=e;function i(e,i,a){let o=[],s,c={};if(n!==void 0&&(c.reduceMotion=n),r!==void 0&&(c.skipAnimations=r),ap(e)){let{onComplete:n,...r}=i||{};typeof n==`function`&&(s=n),o=ip(e,{...c,...r},t)}else{let{onComplete:n,...r}=a||{};typeof n==`function`&&(s=n),o=rp(e,i,{...c,...r},t)}let l=new va(o);return s&&l.finished.then(s),t&&(t.animations.push(l),l.finished.then(()=>{ot(t.animations,l)})),l}return i}var sp=Object.assign(op(),{addEffect:ho,removeEffect:go}),U=Lf,cp=o((e=>{var t=d();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`),o=Symbol.for(`react.recoverable`),s=Symbol.for(`react.optimistic_key`);function c(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:r===s?s:``+r,children:e,containerInfo:t,implementation:n}}var l=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:o,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return c(e,t,null,r)},e.flushSync=function(e){var t=l.T,n=i.p;try{if(l.T=null,i.p=2,e)return e()}finally{l.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=u(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=u(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},e.useFormStatus=function(){return l.H.useHostTransitionStatus()},e.version=`19.3.0`})),lp=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=cp()})),up=[`none`,`requests`,`tokens`,`cost`,`quota`,`alerts`];function dp(){return typeof window>`u`?void 0:window.__ASTRA__}function fp(e=dp()){return e?.shell===`desktop`?`desktop`:`web`}function pp(e=dp(),t=globalThis.navigator){if(e?.platform)return e.platform;let n=`${t?.userAgent??``} ${t?.platform??``}`.toLowerCase();return n.includes(`mac`)?`darwin`:n.includes(`win`)?`win32`:n.includes(`linux`)?`linux`:`other`}function mp(e=globalThis.navigator){let t=e?.userAgent??``;return/Chrome\/|Electron\//.test(t)}var hp=fp(),gp=pp(),_p=hp===`desktop`,vp=gp===`darwin`;function yp(e=_p,t=gp){return e&&t===`darwin`?78:68}function bp(e=document.documentElement){e.dataset.shell=hp,e.dataset.platform=gp,mp()&&e.classList.add(`refract`)}var xp=vp?`⌘`:`Ctrl+`,Sp=class extends Error{status;details;constructor(e,t,n){super(e),this.status=t,this.details=n,this.name=`ApiError`}get isNetwork(){return this.status===0}};function Cp(){return dp()?.apiBase.replace(/\/+$/,``)??``}async function W(e,t,n,r){let i={Accept:`application/json`};e!==`GET`&&(i[`X-Astra-Admin`]=`1`),n!==void 0&&(i[`Content-Type`]=`application/json`);let a;try{a=await fetch(Cp()+t,{method:e,headers:i,body:n===void 0?void 0:JSON.stringify(n),credentials:`include`,signal:r})}catch(e){throw e?.name===`AbortError`?e:new Sp(e?.message||`Network error`,0)}if(a.status===204)return;let o=await a.text(),s;if(o)try{s=JSON.parse(o)}catch{s=o}if(!a.ok){let e=s&&typeof s==`object`?s:{};throw new Sp(e.error||typeof s==`string`&&s||`HTTP ${a.status}`,a.status,e.details)}return s}function wp(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!=null&&r!==``&&t.set(n,String(r));let n=t.toString();return n?`?${n}`:``}var G=encodeURIComponent;function Tp(){let e=``;return t=>{e+=t;let n=[];for(;;){let t=/\r\n\r\n|\n\n|\r\r/.exec(e);if(!t)return n;let r=e.slice(0,t.index);e=e.slice(t.index+t[0].length);let i=``,a=[];for(let e of r.split(/\r\n|\n|\r/)){if(e.startsWith(`:`))continue;let t=e.indexOf(`:`),n=t<0?e:e.slice(0,t),r=t<0?``:e.slice(t+1);r.startsWith(` `)&&(r=r.slice(1)),n===`event`?i=r:n===`data`&&a.push(r)}if(a.length===0)continue;let o=a.join(`
|
|
10
|
+
`),s=o;try{s=JSON.parse(o)}catch{}n.push({event:i,data:s})}}}async function Ep(e,t,n,r){return Op(`POST`,e,t,n,r)}async function Dp(e,t,n,r){return Op(`GET`,e,void 0,t,n,r)}async function Op(e,t,n,r,i,a){let o;try{o=await fetch(Cp()+t,{method:e,headers:e===`POST`?{Accept:`text/event-stream`,"Content-Type":`application/json`,"X-Astra-Admin":`1`}:{Accept:`text/event-stream`},body:e===`POST`?JSON.stringify(n):void 0,credentials:`include`,signal:i})}catch(e){throw e?.name===`AbortError`?e:new Sp(e?.message||`Network error`,0)}if(!o.ok||!o.body){let e=await o.text().catch(()=>``),t;if(e)try{t=JSON.parse(e)}catch{t=e}let n=t&&typeof t==`object`?t:{};throw new Sp(n.error||typeof t==`string`&&t||`HTTP ${o.status}`,o.status,n.details)}a?.();let s=o.body.getReader(),c=new TextDecoder,l=Tp();for(;;){let{done:e,value:t}=await s.read();if(e)break;for(let e of l(c.decode(t,{stream:!0})))r(e)}for(let e of l(c.decode()))r(e)}var K={health:[`health`],version:[`version`],auth:[`auth`],settings:[`settings`],update:[`update`],models:(e,t)=>[`models`,e??``,t??``],model:e=>[`model`,e],priceKeys:[`price-keys`],templates:[`provider-templates`],quotaTemplates:[`provider-quota-templates`],providers:[`providers`],importSources:[`import-sources`],provider:e=>[`provider`,e],providerModels:e=>[`provider-models`,e],remoteModels:e=>[`remote-models`,e],templateUpdate:e=>[`template-update`,e],clients:[`clients`],claudeDirect:[`claude-direct`],claudeDirectRequests:e=>[`claude-direct-requests`,e],tokens:[`tokens`],clientModels:e=>[`client-models`,e],backups:e=>[`backups`,e],clientInstallJob:e=>[`client-install-job`,e],privacy:[`privacy`],privacyEvents:e=>[`privacy-events`,e],privacyEventStats:(...e)=>[`privacy-event-stats`,...e],providerAccounts:e=>[`provider-accounts`,e],subscriptionPolicy:e=>[`subscription-policy`,e],localCodexLogin:[`local-codex-login`],localCopilotLogin:[`local-copilot-login`],plugins:[`plugins`],pluginJob:e=>[`plugin-job`,e],pluginHost:[`plugin-host`],pluginMarket:[`plugin-market`],pluginSearch:e=>[`plugin-search`,e],pluginMethods:e=>[`plugin-methods`,e],pluginSignIn:(e,t)=>[`plugin-sign-in`,e,t],pluginUsage:(e,t)=>[`plugin-usage`,e,t],pluginCheckin:e=>[`plugin-checkin`,e],magpieImport:[`magpie-import`],accountImportInfo:e=>[`account-import-info`,e],resetCredits:e=>[`reset-credits`,e],requests:e=>[`requests`,e],request:e=>[`request`,e],stats:(e,...t)=>[`stats`,e,...t]},kp=()=>I({queryKey:K.health,queryFn:({signal:e})=>W(`GET`,`/api/health`,void 0,e),refetchInterval:5e3,retry:!1}),Ap=()=>I({queryKey:K.version,queryFn:()=>W(`GET`,`/api/version`),staleTime:1/0}),jp=()=>I({queryKey:K.auth,queryFn:()=>W(`GET`,`/api/auth/status`),retry:!1});function Mp(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/auth/login`,{password:e}),onSuccess:()=>e.invalidateQueries()})}function Np(){let e=_();return L({mutationFn:()=>W(`POST`,`/api/auth/logout`),onSuccess:()=>e.invalidateQueries({queryKey:K.auth})})}var Pp=()=>I({queryKey:K.settings,queryFn:()=>W(`GET`,`/api/settings`)});function Fp(){let e=_();return L({mutationFn:e=>W(`PATCH`,`/api/settings`,e),onSuccess:t=>e.setQueryData(K.settings,t)})}var Ip=()=>I({queryKey:K.update,queryFn:({signal:e})=>W(`GET`,`/api/update/status`,void 0,e),refetchInterval:3e5});function Lp(){let e=_();return L({mutationFn:()=>W(`POST`,`/api/update/check`),onSuccess:t=>e.setQueryData(K.update,t)})}var Rp=(e,t)=>I({queryKey:K.models(e,t),queryFn:()=>W(`GET`,`/api/models${wp({search:e,vendor:t})}`),placeholderData:e=>e}),zp=e=>I({queryKey:K.model(e??``),queryFn:()=>W(`GET`,`/api/models/${G(e)}`),enabled:!!e}),Bp=()=>I({queryKey:K.priceKeys,queryFn:()=>W(`GET`,`/api/price-keys`)});function Vp(e,t){e.invalidateQueries({queryKey:[`models`]}),e.invalidateQueries({queryKey:t?K.model(t):[`model`]}),e.invalidateQueries({queryKey:K.priceKeys}),e.invalidateQueries({queryKey:[`provider-models`]}),e.invalidateQueries({queryKey:[`client-models`]}),e.invalidateQueries({queryKey:[`remote-models`]})}function Hp(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/models`,e),onSuccess:t=>Vp(e,t.id)})}function Up(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/models/${G(e)}`,t),onSuccess:()=>Vp(t,e)})}function Wp(){let e=_();return L({mutationFn:e=>W(`DELETE`,`/api/models/${G(e)}`),onSuccess:()=>Vp(e)})}function Gp(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/models/${G(e)}/reset-field`,{field:t}),onSuccess:()=>Vp(t,e)})}function Kp(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/models/${G(e)}/prices/${G(t.priceKey)}`,{upstreamModelId:t.upstreamModelId??null,pricing:t.pricing}),onSuccess:()=>Vp(t,e)})}function qp(e){let t=_();return L({mutationFn:t=>W(`DELETE`,`/api/models/${G(e)}/prices/${G(t)}`),onSuccess:()=>Vp(t,e)})}var Jp=()=>L({mutationFn:()=>W(`POST`,`/api/models/sync/preview`)});function Yp(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/models/sync/apply`,{changeIds:e}),onSuccess:()=>Vp(e)})}var Xp=()=>L({mutationFn:e=>W(`POST`,`/api/billing/simulate`,e)}),Zp=()=>I({queryKey:K.templates,queryFn:()=>W(`GET`,`/api/provider-templates`),staleTime:3e5}),Qp=()=>I({queryKey:K.providers,queryFn:()=>W(`GET`,`/api/providers`)}),$p=e=>I({queryKey:K.provider(e??``),queryFn:()=>W(`GET`,`/api/providers/${G(e)}`),enabled:!!e});function em(e,t){e.invalidateQueries({queryKey:K.providers}),e.invalidateQueries({queryKey:t?K.provider(t):[`provider`]}),e.invalidateQueries({queryKey:K.clients}),e.invalidateQueries({queryKey:[`client-models`]})}var tm=e=>I({queryKey:K.importSources,queryFn:()=>W(`GET`,`/api/providers/import/sources`),enabled:e,staleTime:0,gcTime:0});function nm(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers/import`,e),onSuccess:()=>{em(e),e.invalidateQueries({queryKey:K.importSources})}})}function rm(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers`,e),onSuccess:t=>em(e,t.id)})}function im(e){let t=_();return L({mutationFn:t=>W(`PATCH`,`/api/providers/${G(e)}`,t),onSuccess:n=>{t.setQueryData(K.provider(e),n),em(t,e),t.invalidateQueries({queryKey:K.providerModels(e)}),t.invalidateQueries({queryKey:K.remoteModels(e)})}})}function am(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/providers/${G(e)}/model-map`,{map:t}),onSuccess:n=>{t.setQueryData(K.provider(e),n),em(t,e)}})}function om(){let e=_();return L({mutationFn:e=>W(`DELETE`,`/api/providers/${G(e)}`),onSuccess:()=>em(e)})}var sm=()=>I({queryKey:K.quotaTemplates,queryFn:()=>W(`GET`,`/api/provider-quota/templates`),staleTime:1/0});function cm(e,t,n){let r=e=>e.id===t?{...e,quotaConfig:n.config,quota:n.snapshot??null,quotaCheckedAtUtc:n.checkedAtUtc??null}:e;e.setQueryData(K.provider(t),e=>e&&r(e)),e.setQueryData(K.providers,e=>e?.map(r))}function lm(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers/${G(e)}/quota`),onSuccess:(t,n)=>cm(e,n,t),onError:(t,n)=>void e.invalidateQueries({queryKey:K.provider(n)})})}function um(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/providers/${G(e)}/quota/config`,t),onSuccess:n=>cm(t,e,n)})}var dm=e=>L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/quota/test`,t)});function fm(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/providers/${G(e)}/duplicate`),onSuccess:()=>em(e)})}function pm(e,t,n,r){return Ep(`/api/providers/${G(e)}/test`,t,n,r)}var mm=(e,t)=>I({queryKey:K.remoteModels(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/remote-models`),enabled:t,retry:!1}),hm=(e,t)=>I({queryKey:K.templateUpdate(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/template-update`),enabled:t});function gm(e){let t=_();return L({mutationFn:()=>W(`POST`,`/api/providers/${G(e)}/template-update`),onSuccess:()=>{em(t,e),t.invalidateQueries({queryKey:K.providerModels(e)}),t.invalidateQueries({queryKey:K.remoteModels(e)}),t.invalidateQueries({queryKey:K.templateUpdate(e)})}})}var _m=e=>I({queryKey:K.providerModels(e??``),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/models`),enabled:!!e});function vm(e,t){e.invalidateQueries({queryKey:K.providerModels(t)}),e.invalidateQueries({queryKey:K.remoteModels(t)}),e.invalidateQueries({queryKey:[`model`]}),em(e,t)}function ym(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/models`,{modelIds:t}),onSuccess:()=>vm(t,e)})}function bm(e){let t=_();return L({mutationFn:t=>{let{pmId:n,...r}=t;return W(`PATCH`,`/api/providers/${G(e)}/models/${n}`,r)},onSuccess:()=>vm(t,e)})}function xm(e){let t=_();return L({mutationFn:t=>W(`DELETE`,`/api/providers/${G(e)}/models/${t}`),onSuccess:()=>vm(t,e)})}var Sm=()=>I({queryKey:K.privacy,queryFn:()=>W(`GET`,`/api/privacy`)});function Cm(){let e=_();return L({mutationFn:e=>W(`PUT`,`/api/privacy`,e),onSuccess:t=>e.setQueryData(K.privacy,e=>e&&{...e,settings:t})})}var wm=()=>L({mutationFn:e=>W(`POST`,`/api/privacy/dry-run`,e)}),Tm=(e,t)=>I({queryKey:K.privacyEvents(e),queryFn:()=>W(`GET`,`/api/privacy/events${wp({...e})}`),placeholderData:e=>e,refetchInterval:t?5e3:!1}),Em=e=>I({queryKey:K.privacyEventStats(e),queryFn:()=>W(`GET`,`/api/privacy/events/stats${wp({range:e})}`),refetchInterval:15e3,placeholderData:e=>e}),Dm=(e,t=!0)=>I({queryKey:K.providerAccounts(e??``),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/accounts`),enabled:!!e&&t});function Om(e,t){e.invalidateQueries({queryKey:K.providerAccounts(t)})}function km(e){let t=_();return L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e)}/refresh`),onSuccess:()=>Om(t,e)})}function Am(e){let t=_();return L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e)}/quota`),onSuccess:()=>Om(t,e)})}function jm(e,t){let n=_();return L({mutationFn:t,onSuccess:t=>n.setQueryData(K.providerAccounts(e),t)})}var Mm=e=>jm(e,e=>W(`POST`,`/api/provider-accounts/${G(e)}/activate`)),Nm=e=>jm(e,({id:e,...t})=>W(`PATCH`,`/api/provider-accounts/${G(e)}`,t)),Pm=e=>jm(e,t=>W(`PUT`,`/api/providers/${G(e)}/accounts/order`,{ids:t})),Fm=(e,t=!0)=>I({queryKey:K.subscriptionPolicy(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/subscription-policy`),enabled:t});function Im(e){let t=_();return L({mutationFn:t=>W(`PUT`,`/api/providers/${G(e)}/subscription-policy`,t),onSuccess:n=>{t.setQueryData(K.subscriptionPolicy(e),n),t.invalidateQueries({queryKey:K.provider(e)})}})}function Lm(e){let t=_();return L({mutationFn:e=>W(`DELETE`,`/api/provider-accounts/${G(e)}`),onSuccess:()=>Om(t,e)})}var Rm=e=>L({mutationFn:(t={})=>W(`POST`,`/api/providers/${G(e)}/accounts/login`,{accountId:t.accountId||void 0,httpProxy:t.httpProxy?.trim()||void 0})}),zm=e=>L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/login/${G(t)}/poll`)}),Bm=(e=!0)=>I({queryKey:K.localCodexLogin,queryFn:()=>W(`GET`,`/api/subscription/codex/local-login`),enabled:e,retry:!1});function Vm(e){let t=_();return L({mutationFn:()=>W(`POST`,`/api/providers/${G(e)}/accounts/import-codex`,{}),onSuccess:()=>Om(t,e)})}var Hm=e=>L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/login/${G(t.state)}/complete`,{code:t.code})}),Um=(e=!0)=>I({queryKey:K.localCopilotLogin,queryFn:()=>W(`GET`,`/api/subscription/copilot/local-login`),enabled:e,retry:!1});function Wm(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/import-copilot`,{token:t&&t.trim().length>0?t.trim():null}),onSuccess:(n,r)=>{Om(t,e),t.invalidateQueries({queryKey:K.localCopilotLogin})}})}var Gm=(e,t=!0)=>I({queryKey:K.accountImportInfo(e),queryFn:()=>W(`GET`,`/api/providers/${G(e)}/accounts/import-info`),enabled:t,staleTime:1/0});function Km(e){let t=_();return L({mutationFn:t=>W(`POST`,`/api/providers/${G(e)}/accounts/import`,t),onSuccess:(n,r)=>{r.dryRun||Om(t,e)}})}var qm=(e,t=!0)=>I({queryKey:K.resetCredits(e??``),queryFn:()=>W(`GET`,`/api/provider-accounts/${G(e)}/reset-credits`),enabled:!!e&&t,retry:!1});function Jm(e){let t=_();return L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e.accountId)}/reset-credits/${G(e.creditId)}/consume`,{}),onSuccess:(n,r)=>{Om(t,e),t.invalidateQueries({queryKey:K.resetCredits(r.accountId)})}})}var Ym=()=>I({queryKey:K.clients,queryFn:()=>W(`GET`,`/api/clients`),refetchInterval:e=>e.state.data?.some(e=>e.install?.busy)?2e3:!1}),Xm=()=>$m(()=>W(`POST`,`/api/clients/reapply`,{})),Zm=(e,t=!0)=>I({queryKey:K.clientModels(e??``),queryFn:()=>W(`GET`,`/api/clients/${e}/models`),enabled:!!e&&t,retry:!1}),Qm=(e,t=!0)=>I({queryKey:K.backups(e??``),queryFn:()=>W(`GET`,`/api/clients/${e}/backups`),enabled:!!e&&t});function $m(e,t=()=>[]){let n=_();return L({mutationFn:e,onSuccess:(e,r)=>{n.invalidateQueries({queryKey:K.clients}),n.invalidateQueries({queryKey:K.providers}),n.invalidateQueries({queryKey:[`provider`]}),n.invalidateQueries({queryKey:[`client-models`]});for(let e of t(r))n.invalidateQueries({queryKey:e})}})}var eh=()=>$m(e=>W(`PUT`,`/api/clients/${e.kind}/binding`,{providerId:e.providerId,accountId:e.accountId}),e=>[K.clientModels(e.kind)]),th=()=>$m(e=>W(`PUT`,`/api/clients/${e.kind}/bindings`,{bindings:e.bindings}),e=>[K.clientModels(e.kind)]),nh=()=>L({mutationFn:e=>W(`POST`,`/api/clients/${e.kind}/preview-enable`,e.req)}),rh=()=>$m(e=>W(`POST`,`/api/clients/${e.kind}/enable`,e.req),e=>[K.backups(e.kind)]),ih=()=>$m(e=>W(`POST`,`/api/clients/${e}/disable`)),ah=()=>$m(e=>W(`POST`,`/api/clients/${e}/force-restore`)),oh=()=>$m(e=>W(`POST`,`/api/clients/${e.kind}/backups/${G(e.id)}/restore`),e=>[K.backups(e.kind)]);function sh(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/clients/check-updates`,{force:e}),onSuccess:t=>e.setQueryData(K.clients,t)})}var ch=(e,t=!0)=>I({queryKey:K.clientInstallJob(e??``),queryFn:()=>W(`GET`,`/api/clients/${e}/install`),enabled:!!e&&t,retry:!1,refetchInterval:e=>e.state.data?.state===`running`&&800});function lh(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/clients/${e.kind}/install`,{action:e.action,elevated:e.elevated??!1}),onSuccess:t=>{e.setQueryData(K.clientInstallJob(t.kind),t),e.invalidateQueries({queryKey:K.clients})}})}function uh(){let e=_();return L({mutationFn:e=>W(`POST`,`/api/clients/${e}/install/cancel`,{}),onSuccess:t=>e.setQueryData(K.clientInstallJob(t.kind),t)})}var dh=`/api/clients/claude-code/direct`,fh=e=>I({queryKey:K.claudeDirect,queryFn:()=>W(`GET`,dh),enabled:e,retry:!1});function ph(){let e=_();return L({mutationFn:e=>W(`PUT`,dh,e),onSuccess:t=>{e.setQueryData(K.claudeDirect,t),e.invalidateQueries({queryKey:[`claude-direct-requests`]})}})}var mh=(e,t)=>I({queryKey:K.claudeDirectRequests(e??``),queryFn:()=>W(`GET`,`${dh}/accounts/${G(e)}/requests`),enabled:!!e,retry:!1,refetchInterval:t?5e3:!1}),hh=()=>I({queryKey:K.tokens,queryFn:()=>W(`GET`,`/api/tokens`),refetchInterval:15e3});function gh(e){let t=_();return L({mutationFn:e,onSuccess:()=>{t.invalidateQueries({queryKey:K.tokens}),t.invalidateQueries({queryKey:K.clients})}})}var _h=()=>gh(e=>W(`POST`,`/api/tokens`,e)),vh=()=>gh(e=>{let{id:t,...n}=e;return W(`PATCH`,`/api/tokens/${G(t)}`,n)}),yh=()=>gh(e=>W(`POST`,`/api/tokens/${G(e)}/reset`)),bh=()=>gh(e=>W(`DELETE`,`/api/tokens/${G(e)}`)),xh=()=>L({mutationFn:e=>W(`POST`,`/api/tokens/${G(e)}/reveal`)}),Sh=(e,t)=>I({queryKey:K.requests(e),queryFn:()=>W(`GET`,`/api/requests${wp({...e})}`),placeholderData:e=>e,refetchInterval:t?5e3:!1}),Ch=e=>I({queryKey:K.request(e??``),queryFn:()=>W(`GET`,`/api/requests/${G(e)}`),enabled:!!e,refetchInterval:e=>e.state.data?.status===`pending`&&1e3}),wh=e=>I({queryKey:K.stats(`rate`,e),queryFn:()=>W(`GET`,`/api/stats/rate${wp({...e})}`),placeholderData:e=>e,refetchInterval:5e3}),Th=()=>-new Date().getTimezoneOffset(),Eh=(e,t,n)=>I({queryKey:K.stats(`summary`,e,t??``,n??``),queryFn:()=>W(`GET`,`/api/stats/summary${wp({range:e,client:t,token:n})}`),refetchInterval:15e3,placeholderData:e=>e}),Dh=(e,t,n,r,i)=>I({queryKey:K.stats(`timeseries`,e,t,n,r??``,i??``,Th()),queryFn:()=>W(`GET`,`/api/stats/timeseries${wp({range:e,groupBy:t,by:n,client:r,token:i,tzOffset:Th()})}`),refetchInterval:3e4,placeholderData:e=>e}),Oh=(e,t,n=8,r)=>I({queryKey:K.stats(`top`,e,t??``,n,r??``),queryFn:()=>W(`GET`,`/api/stats/top-models${wp({range:e,limit:n,client:t,token:r})}`),refetchInterval:3e4,placeholderData:e=>e}),kh=(e=365,t,n)=>I({queryKey:K.stats(`activity`,e,t??``,n??``,Th()),queryFn:()=>W(`GET`,`/api/stats/activity-heatmap${wp({days:e,client:t,token:n,tzOffset:Th()})}`),refetchInterval:6e4,placeholderData:e=>e}),Ah=()=>I({queryKey:K.plugins,queryFn:()=>W(`GET`,`/api/plugins`),refetchInterval:1e4}),jh=(e=!0)=>I({queryKey:K.pluginHost,queryFn:()=>W(`GET`,`/api/plugins/host`),enabled:e,refetchInterval:15e3}),Mh=e=>I({queryKey:K.pluginJob(e??``),queryFn:()=>W(`GET`,`/api/plugins/jobs/${G(e)}`),enabled:!!e,refetchInterval:e=>e.state.data?.state===`running`||!e.state.data?1e3:!1});function Nh(e){let t=_();return L({mutationFn:e,onSuccess:()=>{t.invalidateQueries({queryKey:K.plugins}),t.invalidateQueries({queryKey:K.pluginHost}),t.invalidateQueries({queryKey:K.clients}),t.invalidateQueries({queryKey:K.providers})}})}var Ph=()=>Nh(e=>W(`POST`,`/api/plugins`,e)),Fh=()=>Nh(e=>W(`POST`,`/api/plugins/update`,{spec:e})),Ih=()=>Nh(e=>W(`DELETE`,`/api/plugins${wp({spec:e})}`)),Lh=()=>Nh(e=>W(`PATCH`,`/api/plugins${wp({spec:e.spec})}`,{enabled:e.enabled,options:e.options})),Rh=()=>Nh(e=>W(`PUT`,`/api/plugins/order`,{specs:e})),zh=()=>Nh(e=>W(`POST`,`/api/plugins/prefer`,e)),Bh=()=>Nh(()=>W(`POST`,`/api/plugins/runtime/install`)),Vh=(e=!0)=>I({queryKey:K.pluginMarket,queryFn:()=>W(`GET`,`/api/plugins/market`),enabled:e,staleTime:6e5}),Hh=e=>I({queryKey:K.pluginSearch(e),queryFn:()=>W(`GET`,`/api/plugins/search${wp({q:e})}`),enabled:e.trim().length>=2,staleTime:6e5}),Uh=(e,t=!0)=>I({queryKey:K.pluginMethods(e),queryFn:()=>W(`GET`,`/api/plugin-providers/${G(e)}/methods`),enabled:t}),Wh=(e,t,n)=>W(`POST`,`/api/plugin-providers/${G(e)}/prompt`,{method:t,inputs:n}),Gh=(e,t,n,r)=>W(`POST`,`/api/plugin-providers/${G(e)}/validate`,{method:t,key:n,value:r});function Kh(e,t){e.invalidateQueries({queryKey:K.providerAccounts(t)}),e.invalidateQueries({queryKey:K.providers})}var qh=e=>L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/sign-in`,t)}),Jh=(e,t)=>{let n=_();return I({queryKey:K.pluginSignIn(e,t??``),queryFn:async()=>{let r=await W(`GET`,`/api/plugin-providers/${G(e)}/sign-in/${G(t)}`);return r.state===`done`&&Kh(n,e),r},enabled:!!t,refetchInterval:e=>e.state.data?.state===`waiting`||!e.state.data?1500:!1})},Yh=e=>{let t=_();return L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/sign-in/${G(t.flow)}/code`,{code:t.code}),onSuccess:n=>{t.setQueryData(K.pluginSignIn(e,n.id),n),n.state===`done`&&Kh(t,e)}})},Xh=e=>{let t=_();return L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/api-key`,t),onSuccess:()=>Kh(t,e)})},Zh=e=>{let t=_();return L({mutationFn:t=>W(`POST`,`/api/plugin-providers/${G(e)}/accounts/${G(t)}/sign-out`),onSuccess:()=>Kh(t,e)})},Qh=(e,t,n)=>I({queryKey:K.pluginUsage(e,t),queryFn:()=>W(`GET`,`/api/plugin-providers/${G(e)}/accounts/${G(t)}/usage`),enabled:n,staleTime:6e4,retry:!1}),$h=e=>I({queryKey:K.pluginCheckin(e),queryFn:()=>W(`GET`,`/api/plugin-providers/${G(e)}/checkin`)}),eg=e=>{let t=_();return L({mutationFn:t=>t===void 0?W(`POST`,`/api/plugin-providers/${G(e)}/checkin`):W(`PUT`,`/api/plugin-providers/${G(e)}/checkin`,{on:t}),onSuccess:n=>t.setQueryData(K.pluginCheckin(e),n)})},tg=(e=!0)=>I({queryKey:K.magpieImport,queryFn:()=>W(`GET`,`/api/plugins/import-magpie`),enabled:e,staleTime:6e4}),ng=()=>Nh(e=>W(`POST`,`/api/plugins/import-magpie`,{signIns:e})),rg={"common.cancel":`取消`,"common.confirm":`确定`,"common.close":`关闭`,"common.save":`保存`,"common.saved":`已保存`,"common.revert":`还原`,"common.apply":`应用`,"common.delete":`删除`,"common.edit":`编辑`,"common.add":`添加`,"common.create":`创建`,"common.back":`返回`,"common.done":`完成`,"common.more":`更多`,"common.copy":`复制`,"common.copied":`已复制到剪贴板`,"common.refresh":`刷新`,"common.enabled":`启用`,"common.yes":`是`,"common.no":`否`,"common.prev":`上一页`,"common.next":`下一页`,"common.noData":`暂无数据`,"common.selectAll":`全选`,"common.unsaved":`有未保存的更改`,"common.invalidJson":`JSON 格式不正确`,"common.search":`搜索`,"common.clearSearch":`清空搜索`,"common.select":`请选择`,"common.noResults":`没有匹配项`,"common.error":`操作失败`,"pricing.tierMode":`计费方式`,"pricing.outputPolicy":`输出价格`,"pricing.editMode":`编辑方式`,"pricing.days":`生效日`,"models.sync.change":`变更`,"models.sync.changeOne":`项变更`,"models.sync.changeOther":`项变更`,"common.continue":`继续`,"providers.step.template":`选择模板`,"providers.step.details":`填写信息`,"clients.current":`当前提供商`,"common.deleting":`正在删除`,"common.deleted":`已删除`,"common.retry":`重试`,"providers.modelIds":`模型 ID`,"nav.overview":`概览`,"nav.requests":`请求日志`,"nav.clients":`客户端`,"nav.providers":`提供商`,"nav.models":`模型`,"nav.settings":`设置`,"nav.privacy":`隐私护栏`,"nav.tokens":`令牌`,"nav.group.config":`配置`,"nav.group.system":`系统`,"shell.running":`服务运行中`,"shell.connecting":`正在连接…`,"shell.disconnected":`未连接到服务`,"shell.startService":`启动服务`,"shell.startFailed":`服务启动失败`,"shell.collapseSidebar":`收起侧边栏`,"shell.expandSidebar":`展开侧边栏`,"banner.downDesktop":`无法连接 Astra 服务。可以在这里启动,或从菜单栏图标启动。`,"banner.downWeb":`无法连接 Astra 服务,正在重连…(可在终端运行 astra start)`,"banner.mismatch":`服务端 API 版本与界面不一致,请运行 astra update 后重启。`,"banner.clientsOutdated":`{names} 的配置还是旧的 Astra 地址或设置(例如 Astra 换了端口),更新后才能正常连接。`,"banner.clientsUpdate":`一键更新`,"banner.clientsUpdated":`已更新 {names},部分客户端需要重启后生效`,"login.subtitle":`该服务对外监听,请输入管理密码`,"login.password":`管理密码`,"login.submit":`登录`,"range.today":`今日`,"range.7d":`7 天`,"range.30d":`30 天`,"range.90d":`90 天`,"range.all":`全部`,"overview.cost":`费用`,"overview.requests":`请求数`,"overview.successRate":`成功率`,"overview.tokens":`Token`,"overview.avgTtft":`平均 TTFT`,"overview.costTrend":`费用趋势`,"overview.range":`时间范围`,"overview.measure":`指标`,"overview.trend":`趋势`,"overview.tokensContext":`输入 {input} · 输出 {output}`,"overview.hourlyAverage":`每小时平均`,"overview.dailyAverage":`每日平均`,"overview.total":`合计`,"overview.hour":`小时`,"overview.day":`日期`,"overview.by.model":`模型`,"overview.by.provider":`提供商`,"overview.by.client":`客户端`,"overview.by.token":`令牌`,"overview.other":`其他`,"overview.topModels":`费用最高的模型`,"overview.topModelDetail":`{requests} 次请求 · {tokens} tokens`,"overview.empty.title":`还没有请求`,"overview.empty.detail":`在「客户端」中启用一个客户端,或把任意 OpenAI / Anthropic / Gemini 兼容工具指向下面的网关地址。`,"overview.clientFilter":`按客户端筛选`,"overview.allClients":`全部`,"overview.tokenFilter":`按令牌筛选`,"overview.allTokens":`全部令牌`,"overview.clientEmpty.title":`{client} 暂无请求`,"overview.clientEmpty.detail":`{range}内没有来自该客户端的请求,可切换到其他客户端或时间范围。`,"overview.tokenEmpty.title":`{token} 暂无请求`,"overview.tokenEmpty.detail":`{range}内没有使用该令牌的请求,可切换到其他令牌或时间范围。`,"overview.totalCost":`总成本`,"overview.totalRequests":`总请求数`,"overview.usageTrend":`使用趋势`,"overview.breakdown":`明细`,"overview.viewAll":`查看全部`,"overview.col.input":`输入`,"overview.col.output":`输出`,"overview.col.cacheHit":`缓存命中`,"overview.col.speed":`速度`,"overview.col.share":`占比`,"overview.activity":`活跃度`,"overview.activitySummary":`{from} ~ {to} · {active} / {days} 天有活动`,"overview.activityPeak":`最多 {count} 次/天`,"overview.activityUnit":`次请求`,"overview.activityNone":`无活动`,"overview.activityLegend.less":`少`,"overview.activityLegend.more":`多`,"requests.total":`共 {count} 条`,"requests.totalCost":`消费总额`,"requests.totalCost.hint":`当前筛选条件下全部请求(含所有分页)的费用合计;进行中的请求完成后计入。`,"requests.rate.rpm":`RPM`,"requests.rate.tpm":`TPM`,"requests.rate.hint":`最近 {window} 秒的平均每分钟请求数(RPM)、令牌数(TPM,仅已完成请求)与缓存命中率;跟随当前筛选,每 5 秒自动刷新。`,"requests.elapsed":`已等待(尚未收到首个 token)`,"requests.searchModel":`搜索模型 ID(支持关键字)`,"requests.noFilters":`未设置筛选`,"requests.clearFilters":`清空筛选`,"requests.backToFilters":`返回筛选字段`,"requests.removeFilter":`移除筛选:{filter}`,"requests.filterAdded":`已添加筛选:{filter}`,"requests.filterChanged":`已修改筛选:{filter}`,"requests.filterRemoved":`已移除筛选:{filter}`,"requests.filtersCleared":`已清空全部筛选`,"requests.filteredEmpty":`没有符合筛选条件的记录`,"requests.filteredEmpty.detail":`试试其他模型关键字,或清空筛选条件。`,"requests.returnedModel":`返回:{model}`,"requests.modelMatch":`一致`,"requests.modelMismatch":`不一致`,"requests.modelComparison":`请求:{requested};上游发送:{upstream};API 返回:{returned}`,"requests.modelNotRecorded":`未记录`,"requests.modelNotRecorded.hint":`历史记录或 API 未返回模型 ID;不会用请求模型代替。`,"requests.allClients":`全部客户端`,"requests.allTokens":`全部令牌`,"requests.col.token":`令牌`,"requests.detail.account":`订阅账号`,"requests.direct":`直连`,"requests.allProviders":`全部提供商`,"requests.allStatus":`全部状态`,"requests.col.time":`时间`,"requests.col.client":`客户端`,"requests.col.model":`模型`,"requests.col.provider":`提供商`,"requests.col.status":`状态`,"requests.col.tokens":`输入/输出`,"requests.col.cost":`费用`,"requests.empty":`没有请求记录`,"requests.empty.detail":`经过 Astra 的每次请求都会记录在这里,包括逐项 token 与计费明细。`,"requests.page":`第 {page} / {pages} 页`,"requests.filters":`当前筛选`,"requests.addFilter":`添加筛选`,"requests.openDetail":`查看 {model} 的请求详情`,"requests.viewError":`点击查看错误信息`,"requests.detail.title":`请求详情`,"requests.detail.summary":`概要`,"requests.detail.protocol":`协议`,"requests.detail.requestedModel":`请求模型`,"requests.detail.upstreamModel":`上游发送模型`,"requests.detail.responseModel":`API 返回模型`,"requests.detail.systemModel":`系统模型`,"requests.detail.stream":`流式`,"requests.detail.upstreamId":`上游请求 ID`,"requests.detail.timing":`耗时`,"requests.detail.generation":`生成耗时`,"requests.detail.total":`总耗时`,"requests.detail.tps":`输出速度`,"requests.detail.error":`错误`,"requests.detail.privacy":`隐私护栏`,"requests.detail.privacyBlocked":`该请求被拦截`,"requests.detail.privacyDryRun":`试运行(未处理)`,"requests.detail.privacyRedacted":`已脱敏 {count} 处`,"requests.detail.billing":`计费`,"requests.detail.usageMissing":`上游未返回用量,本次请求记为 0。`,"requests.detail.usageRaw":`原始 usage`,"requests.detail.pricingSnapshot":`价格快照`,"requests.body.clientRequest":`客户端请求体`,"requests.body.upstreamRequest":`上游请求体`,"requests.body.upstreamRequestHeaders":`上游请求头(发往提供商,凭据脱敏)`,"requests.body.upstreamResponse":`上游响应体`,"requests.body.clientResponse":`返回客户端的响应体`,"requests.reasoning":`推理`,"requests.reasoning.notRecorded":`未记录`,"requests.reasoning.budget":`预算 {tokens}`,"requests.reasoning.hint":`客户端请求中明确设置的推理配置;未记录表示该请求未设置或为旧日志,不会用预算或提供商默认值推断。`,"requests.detail.reasoning":`推理强度`,"status.success":`成功`,"status.blocked":`已拦截`,"status.upstream_error":`上游错误`,"status.gateway_error":`网关错误`,"status.client_cancelled":`已取消`,"status.pending":`进行中`,"billing.unpriced":`未配置价格`,"billing.type":`类型`,"billing.tokens":`数量`,"billing.unitPrice":`单价 /1M`,"billing.tier":`档位`,"billing.cost":`费用`,"pricingSource.override":`提供商自定义价`,"pricingSource.provider":`提供商价格 · {key}`,"pricingSource.default":`官方默认价`,"pricingSource.none":`无价格`,"simulator.official":`官方默认价`,"simulator.serviceTier":`service_tier`,"simulator.time":`请求时间(用于时段计费)`,"simulator.run":`计算`,"pricing.none":`尚未配置价格`,"pricing.add":`添加价格`,"pricing.remove":`移除价格`,"pricing.mode.form":`表单`,"pricing.unit":`USD / 百万 tokens`,"pricing.base":`基础价格`,"pricing.perRequest":`每次请求`,"pricing.notes":`备注`,"pricing.name":`名称`,"pricing.contextTiers":`上下文分档`,"pricing.contextTiers.hint":`输入 token 超过阈值时改用另一档价格(如 Claude >200K)。`,"pricing.addTier":`添加分档`,"pricing.threshold":`阈值`,"pricing.mode.whole":`整单套用`,"pricing.mode.progressive":`分段累进`,"pricing.output.highest":`输出按最高档`,"pricing.output.base":`输出按基础价`,"pricing.timeWindows":`时段规则`,"pricing.timeWindows.hint":`按时区和时段调整价格(如 DeepSeek 夜间优惠),可排除节假日。`,"pricing.addWindow":`添加时段`,"pricing.excludeDates":`排除日期 yyyy-MM-dd, …`,"pricing.serviceTiers":`服务等级`,"pricing.serviceTiers.hint":`按 service_tier(flex / priority)调整价格。`,"pricing.addServiceTier":`添加等级`,"pricing.hasOwnPrices":`含独立价格(JSON 编辑)`,"pricing.ruleNameTaken":`该服务等级名称已存在`,"pricing.timezone":`时区`,"pricing.invalidTimezone":`请输入有效的 IANA 时区`,"pricing.start":`开始时间`,"pricing.end":`结束时间`,"pricing.multiplier":`倍率`,"clients.subtitle":`让本机的 AI 客户端通过 Astra 访问模型`,"clients.comingSoon":`即将支持`,"clients.comingSoonDetail":`该客户端的配置方式尚未确认`,"clients.drifted":`配置已被修改`,"clients.enabled":`已启用`,"clients.disabled":`未启用`,"clients.detected":`已检测到 {version}`,"clients.notDetected":`未检测到安装`,"clients.group.installed":`已安装`,"clients.group.notInstalled":`未检测到`,"clients.group.comingSoon":`即将支持`,"clients.checkUpdates":`检查更新`,"clients.updatesFound":`{count} 个客户端有新版本`,"clients.allUpToDate":`所有客户端都是最新版本`,"clients.updateBadge":`可更新`,"clients.shadowedBadge":`需调整 PATH`,"clients.updateTo":`更新到 {version}`,"clients.install":`安装`,"clients.download":`下载`,"clients.installRunning":`进行中…`,"clients.versionTitle":`版本与更新`,"clients.currentVersion":`当前版本`,"clients.latestVersion":`最新版本`,"clients.versionUnknown":`版本未知`,"clients.notInstalled":`未安装`,"clients.latestUnknown":`未检查`,"clients.checkedAt":`检查于 {time}`,"clients.installMethod":`安装方式`,"clients.method.npm":`npm 全局包 {package}`,"clients.method.vscode-extension":`VS Code 扩展 {package}`,"clients.method.script":`官方安装脚本`,"clients.method.manual":`从官网下载安装`,"clients.homepage":`官网`,"clients.blocker.npm-missing":`没有找到 npm。先安装 Node.js(自带 npm),再回来安装。`,"clients.blocker.vscode-missing":`没有找到 VS Code 的 code 命令,请先安装 VS Code。`,"clients.blocker.script-missing":`这个系统上没有对应的安装脚本,请从官网手动安装。`,"clients.blocker.external-install":`{path} 不是通过 npm 安装的,请用原来的安装方式更新。`,"clients.blocker.shadowed":`最新版本已经装在另一个位置,再更新一次也不会改变终端里运行的版本;按上面的提示调整 PATH 即可。`,"clients.installLog":`安装日志`,"clients.noInstallLog":`还没有安装记录`,"clients.job.running":`正在运行…`,"clients.job.succeeded":`已完成`,"clients.job.failed":`失败`,"clients.job.cancelled":`已停止`,"clients.hint.permission-denied":`npm 没有权限写入全局目录(通常是之前用 sudo 安装过,目录属于系统管理员)。`,"clients.hint.admin-cancelled":`已取消管理员授权,没有做任何修改。`,"clients.hint.shadowed":`新版本装到了另一个位置,终端里运行的仍是旧的那一份。具体位置见下面的日志。`,"clients.hint.unchanged":`命令执行成功,但版本没有变化。`,"clients.hint.not-on-path":`装好的命令不在终端的 PATH 里,终端里无法直接运行。具体位置见下面的日志。`,"clients.job.notEffective":`已完成,但没有生效`,"clients.notEffectiveToast":`{name} 的命令执行成功,但没有生效,请查看安装日志`,"clients.otherCopy":`其他副本`,"clients.otherCopyNewer":`更新`,"clients.shadowed.title":`已有新版本 {version},但终端里用不到`,"clients.shadowed.detail":`终端运行的是 {path}({version}),更新的版本在 {other},它在 PATH 中排在后面或不在 PATH 里。把 {dir} 放到 PATH 最前面,或删掉旧的那一份,就会用上新版本。`,"clients.notOnPath.title":`不在终端的 PATH 里`,"clients.notOnPath.detail":`这个客户端装在 {dir},但终端的 PATH 里没有这个目录。把它加入 PATH(例如写进 ~/.zshrc)后,才能在终端直接运行。`,"clients.hint.timeout":`超过 15 分钟没有完成,已停止。`,"clients.admin.badge":`需管理员权限`,"clients.admin.tip":`npm 的全局目录属于系统管理员,安装时 macOS 会弹出授权框,需要输入开机密码`,"clients.admin.tipManual":`npm 的全局目录属于系统管理员,需要在终端用 sudo 运行`,"clients.admin.title":`需要管理员权限`,"clients.admin.prompt":`npm 的全局目录属于系统管理员。点击「授权并开始」后,系统会弹出授权框,输入开机密码(或使用触控 ID)即可;Astra 不会接触你的密码。`,"clients.admin.manual":`npm 的全局目录属于系统管理员,这里无法弹出授权框。请复制下面的命令,在终端中运行。`,"clients.admin.start":`授权并开始`,"clients.admin.copyCommand":`复制命令`,"clients.admin.retry":`以管理员身份重试`,"clients.admin.retryHint":`可以点「以管理员身份重试」,系统会弹出授权框。`,"clients.admin.running":`正在以管理员身份运行,命令结束后才会显示输出,运行中无法停止。`,"clients.admin.fixTip":`想以后安装、更新都不再需要管理员权限,可以在终端执行一次下面的命令,把 npm 全局目录交还给当前用户:`,"clients.installTitle":`安装 {name}`,"clients.updateTitle":`更新 {name}`,"clients.installRunDetail":`将在本机运行下面的命令,输出会实时显示在这里。`,"clients.installStart":`开始`,"clients.installStop":`停止`,"clients.installUnavailable":`当前无法执行这个操作`,"clients.installNpmNote":`全局安装会写入 npm 的全局目录;关闭窗口不会中断安装。`,"clients.installedToast":`{name} 已安装`,"clients.updatedToast":`{name} 已更新`,"clients.enable":`启用…`,"clients.disable":`禁用`,"clients.disableRestore":`禁用并还原`,"clients.pickProviderFirst":`请先在下方选择一个提供商`,"clients.appliedAt":`于 {time} 写入配置`,"clients.bound":`已切换到 {provider},立即生效`,"clients.boundModelsSynced":`已切换到 {provider},并同步了 {client} 配置里的模型列表`,"clients.disableConfirm":`禁用 {name}?`,"clients.disableDetail":`会撤销 Astra 写入的配置项,恢复为启用前的状态。`,"clients.disabledToast":`{name} 已禁用并还原配置`,"clients.driftTitle":`部分配置已被手动修改`,"clients.driftDetail":`以下配置项在启用后被改动过,未自动还原:{keys}。是否强制还原?`,"clients.forceRestore":`强制还原`,"clients.providerTitle":`使用的提供商`,"clients.providerFooter":`可以添加多个提供商并拖动排序:请求的模型(按模型 ID 精确匹配,或提供商的模型映射)由排在最前、提供该模型的提供商处理;都没有时交给第一个。修改立即生效,客户端的模型列表会自动包含所有提供商的模型。`,"clients.primaryProvider":`首选`,"clients.dragToReorder":`拖动调整 {provider} 的顺序`,"clients.removeProvider":`移除 {provider}`,"clients.providerDisabledBadge":`已停用`,"clients.moreProvidersTitle":`可添加的提供商`,"clients.providerAdded":`已添加 {provider},立即生效`,"clients.providerRemoved":`已移除 {provider}`,"clients.providerOrderSaved":`已更新提供商顺序,立即生效`,"clients.providersModelsSynced":`已更新提供商,并同步了 {client} 配置里的模型列表`,"clients.accountTitle":`订阅账号`,"clients.accountFooter":`绑定到具体账号,用量按账号统计;留空使用该提供商的默认账号。`,"clients.account":`账号`,"clients.accountDefault":`默认账号`,"clients.noProviders":`还没有可用的提供商`,"clients.noProvidersDetail":`先添加一个 AI 提供商,再为客户端选择它。`,"clients.modelTitle":`模型`,"clients.modelFooter":`启用时写入客户端配置的默认模型;不设置则使用客户端自己的默认值。`,"clients.modelFooterEnabled":`修改默认模型需要重新写入客户端配置。`,"clients.modelSlotsFooter":`选中的模型会写进 Claude Code 的配置(默认模型 ANTHROPIC_MODEL,各档位 ANTHROPIC_DEFAULT_*_MODEL);留空就不写入,配置文件里已有的同名设置也不会被改动。`,"clients.modelSlotsFooterEnabled":`修改后需要重新写入客户端配置。`,"clients.options.title":`专属设置`,"clients.options.footer":`这些设置只对当前客户端生效;写入客户端配置的项目会在启用时一并写入,“网关”类的项目由 Astra 在转发该客户端请求时处理。`,"clients.options.footerEnabled":`修改后需要重新应用。`,"clients.options.unset":`不设置`,"clients.option.context1m":`1M 上下文`,"clients.option.context1m.hint":`给 Claude Code 的模型名自动加 [1m] 后缀(Haiku 档和已知窗口不足 1M 的模型除外)。需要上游支持 1M 上下文。`,"clients.option.cacheTtl":`缓存时长`,"clients.option.cacheTtl.hint":`给客户端已有的 cache_control 补上 5 分钟或 1 小时的 ttl,不增删缓存断点。1 小时的写入价更高,适合长会话。`,"clients.option.maxThinkingTokens":`思考 token 上限`,"clients.option.maxThinkingTokens.hint":`写入 MAX_THINKING_TOKENS;留空则不设置。`,"clients.option.disablePromptCaching":`关闭提示缓存`,"clients.option.disablePromptCaching.hint":`写入 DISABLE_PROMPT_CACHING=1,客户端不再发送缓存断点。`,"clients.option.contextWindow":`上下文窗口`,"clients.option.contextWindow.hint":`写入 model_context_window;留空则用 Codex 默认值。`,"clients.option.autoCompactTokenLimit":`自动压缩阈值`,"clients.option.autoCompactTokenLimit.hint":`写入 model_auto_compact_token_limit,达到后自动压缩会话;留空则不设置。`,"clients.option.reasoningEffort":`推理强度`,"clients.option.reasoningEffort.hint":`写入 model_reasoning_effort;默认则不设置。`,"clients.optionChoice.default":`默认`,"clients.optionChoice.5m":`5 分钟`,"clients.optionChoice.1h":`1 小时`,"clients.optionChoice.minimal":`最低`,"clients.optionChoice.low":`低`,"clients.optionChoice.medium":`中`,"clients.optionChoice.high":`高`,"clients.modelSlot.ANTHROPIC_MODEL":`默认模型`,"clients.modelSlot.ANTHROPIC_DEFAULT_OPUS_MODEL":`Opus 档位`,"clients.modelSlot.ANTHROPIC_DEFAULT_SONNET_MODEL":`Sonnet 档位`,"clients.modelSlot.ANTHROPIC_DEFAULT_HAIKU_MODEL":`Haiku 档位(快速/后台)`,"clients.defaultModel":`默认模型`,"clients.modelPlaceholder":`选择模型`,"clients.modelUnset":`不设置`,"clients.roleMapTitle":`角色映射`,"clients.roleMapFooter":`Claude Desktop 只认 Sonnet / Opus / Haiku 这类角色模型,Astra 会把它们换成这里选的提供商模型。至少设置一个;没设置的角色使用第一个已设置的。`,"clients.roleMapFooterEnabled":`映射在网关中实时生效,点击应用后保存。`,"clients.roleMapRequired":`请至少为一个角色选择模型`,"clients.role.sonnet":`Sonnet`,"clients.role.opus":`Opus`,"clients.role.haiku":`Haiku`,"clients.maintenance":`维护`,"clients.openConfigDir":`在访达中打开配置目录`,"clients.copyConfigPath":`复制配置文件路径`,"clients.backups":`配置备份`,"clients.backupsDetail":`每次修改前自动备份,可随时恢复。`,"clients.noBackups":`还没有备份`,"clients.firstWrite":`首次修改前`,"clients.restore":`恢复`,"clients.restoreConfirm":`用这个备份覆盖当前配置?`,"clients.restored":`已从备份恢复`,"clients.tokenTitle":`令牌`,"clients.token":`写入配置的令牌`,"clients.tokenFooter":`启用时把「令牌.客户端」写入客户端配置,用量按令牌统计。多个客户端可以共用一个令牌。`,"clients.tokenFooterEnabled":`更换令牌需要重新写入客户端配置。`,"clients.tokenDisabled":`{name}(已停用)`,"clients.manageTokens":`管理令牌`,"clients.claudeDirect.configure":`直连设置`,"clients.claudeDirect.modeTitle":`连接方式(Astra 启动器)`,"clients.claudeDirect.mode":`连接方式`,"clients.claudeDirect.gateway":`网关`,"clients.claudeDirect.direct":`官方直连`,"clients.claudeDirect.gatewayDetail":`使用原有网关配置;启用接管后,默认 Claude Code 请求经过 Astra。astra claude 仅用于直连模式。`,"clients.claudeDirect.directDetail":`用下面选中的 Claude 订阅账号直连 Anthropic 官方,不经过网关。`,"clients.claudeDirect.modeNote":`这里只影响 Astra 启动器自己的会话;直接运行 claude 仍是原来的默认配置。`,"clients.claudeDirect.modeFooter":`切换只改变启动方式,不会热切换已经运行的会话,也不会修改用户默认的 ~/.claude 配置。`,"clients.claudeDirect.loadFailed":`无法读取直连设置`,"clients.claudeDirect.gatewayOnTitle":`网关接管已启用,直连会被覆盖`,"clients.claudeDirect.gatewayOnDetail":`当前 Claude Code 已由 Astra 接管:直连会被立刻写回网关配置。要真正直连,请先在上方「禁用并还原」,再切到官方直连。`,"clients.claudeDirect.noAccount":`还没有可用的 Claude 订阅账号`,"clients.claudeDirect.noAccountDetail":`直连用的是「Claude 订阅(Pro/Max)」提供商下已登录的账号;去「提供商」登录一个,再回到这里选择。`,"clients.claudeDirect.goProviders":`去提供商登录`,"clients.claudeDirect.needAccountToast":`先在「提供商」里登录 Claude 订阅账号`,"clients.claudeDirect.accountsTitle":`订阅账号`,"clients.claudeDirect.accountsFooter":`直连使用该订阅账号的短期令牌直连 Anthropic 官方,不经过网关;令牌留在 Astra 本机,不会写进命令或客户端配置。`,"clients.claudeDirect.account":`使用的账号`,"clients.claudeDirect.accountDisabledSuffix":`{status}(未启用)`,"clients.claudeDirect.launchTitle":`启动`,"clients.claudeDirect.launchNote":`需要本机已安装新版 Astra CLI(npm i -g astragate)。命令会用所选订阅账号启动官方 Claude Code,直连 Anthropic 官方、不经过网关;Astra 只把短期令牌交给它,刷新令牌留在 Astra。直接运行 claude 仍是你原来的配置。令牌到期后需要重新运行命令(会话中途不能续期)。若改用环境变量提供令牌,官方客户端里依赖 claude.ai 登录的功能(连接器、/schedule 等)将不可用。`,"clients.claudeDirect.statsTitle":`本机统计`,"clients.claudeDirect.statsConsent":`收集本机统计`,"clients.claudeDirect.statsConsentDetail":`默认关闭。开启后由 Claude Code 自己把用量数据发到本机 Astra:只有模型、时间、token 数和它自己估算的费用,没有对话正文、提示词和工具内容。`,"clients.claudeDirect.statsFooter":`Astra 仅在本机保存统计,留存时间沿用请求日志设置。关闭后立即停止接收;运行中会话仍可能尝试导出,重启后停止。估算不代表订阅扣费。组织策略可能覆盖客户端设置;直连不执行网关的拦截和脱敏。`,"clients.claudeDirect.statsEmpty":`还没有统计数据`,"clients.claudeDirect.statsEmptyDetail":`开启统计后,用上面的命令启动一次会话,数据会在几秒内出现在这里。`,"clients.claudeDirect.statsFailed":`无法读取统计`,"clients.claudeDirect.statsTotals":`最近 {count} 条`,"clients.claudeDirect.statsInDetail":`总输入(含缓存读 {cache}):{input} · 总输出:{output}`,"clients.claudeDirect.statsCost":`估算费用`,"clients.claudeDirect.statsCostDetail":`客户端自己估算,不代表实际订阅扣费。`,"clients.claudeDirect.statsFailedCount":`其中失败 {count} 条`,"clients.claudeDirect.statusError":`失败`,"clients.claudeDirect.tokensDetail":`输入 {input} / 输出 {output}`,"tokens.subtitle":`客户端和直接调用都通过令牌访问 Astra,用量按令牌统计`,"tokens.add":`新建令牌`,"tokens.default":`默认`,"tokens.disabledBadge":`已停用`,"tokens.copy":`复制令牌`,"tokens.copied":`已复制令牌`,"tokens.clients":`使用的客户端`,"tokens.noClients":`暂无客户端使用`,"tokens.directProvider":`直连提供商`,"tokens.directNone":`不允许直接调用`,"tokens.directAccount":`直连订阅账号`,"tokens.directHint":`在其他工具中填写网关地址 {url} 和该令牌即可直接调用,请求会发往直连提供商。`,"tokens.today":`今日`,"tokens.total":`累计`,"tokens.cost":`消耗`,"tokens.requests":`请求`,"tokens.cacheHit":`缓存命中率`,"tokens.tps":`TPS`,"tokens.tpsContext":`加权输出速度`,"tokens.tokens":`Token`,"tokens.inOut":`输入 / 输出`,"tokens.details":`展开详情`,"tokens.requestsContext":`{count} 次请求`,"tokens.lastUsedTitle":`最近使用`,"tokens.neverUsed":`尚未使用`,"tokens.settings":`设置`,"tokens.name":`名称`,"tokens.namePlaceholder":`例如:工作电脑`,"tokens.enable":`启用`,"tokens.disable":`停用`,"tokens.disableConfirm":`停用 {name}?`,"tokens.disableDetail":`使用该令牌的客户端和直接调用都会被拒绝,直到重新启用。不会修改客户端配置。`,"tokens.reset":`重置密钥`,"tokens.resetConfirm":`重置 {name} 的密钥?`,"tokens.resetDetail":`旧密钥立即失效。使用该令牌的已启用客户端会自动改写配置;被手动修改过的配置会跳过,需要重新启用。`,"tokens.resetDone":`已重置密钥,改写了 {count} 个客户端配置`,"tokens.skipped":`以下客户端未能自动更新,需要在「客户端」页面重新启用:{clients}`,"tokens.delete":`删除令牌`,"tokens.deleteConfirm":`删除 {name}?`,"tokens.deleteDetail":`使用它的客户端会切换到默认令牌并自动改写配置。历史请求日志保留该令牌的名称。`,"tokens.deleted":`已删除 {name}`,"tokens.created":`已创建 {name}`,"tokens.createTitle":`新建令牌`,"tokens.settingsTitle":`令牌设置 · {name}`,"tokens.empty":`还没有令牌`,"clients.enableTitle":`启用 {name}`,"clients.enableDetail":`以下是将要写入的改动。Astra 只新增或修改自己的配置项,并在首次修改前备份原文件。`,"clients.enabledToast":`{name} 已启用`,"clients.enabledRestart":`{name} 已启用,请重启客户端使配置生效`,"clients.noChanges":`配置已是最新,无需改动。`,"providers.add":`添加提供商`,"providers.count":`{count} 个提供商`,"providers.empty":`还没有提供商`,"providers.emptyDetail":`从内置模板添加 OpenAI、Anthropic、DeepSeek、OpenRouter 等,或接入自定义的兼容接口。`,"providers.import":`从其他应用导入`,"import.title":`从其他应用导入提供商`,"import.detail":`只读扫描 CC Switch、Alma、Claude Code、Codex、Magpie 的本地配置,不会修改它们;API Key 由服务端直接读取并加密保存,不经过浏览器。`,"import.search":`搜索名称或地址`,"import.path":`读取位置:{path}`,"import.notFound":`未找到`,"import.sourceError":`读取失败:{error}`,"import.noItems":`没有可导入的提供商`,"import.noMatch":`没有匹配的提供商`,"import.scanning":`正在扫描…`,"import.status.new":`新增`,"import.status.same":`已存在`,"import.status.sameHost":`同地址`,"import.status.off":`已停用`,"import.status.skip":`无法导入`,"import.existing":`已有提供商「{name}」`,"import.sameHostHint":`已有同地址提供商「{name}」,将作为新的提供商导入`,"import.noKey":`无 Key`,"import.models":`{count} 个模型`,"import.template":`模板:{id}`,"import.ignored":`将忽略:{fields}`,"import.skip.official-login":`官方登录(令牌绑定来源应用,不可导入)`,"import.skip.no-base-url":`缺少接口地址`,"import.skip.unsupported-protocol":`协议不支持`,"import.skip.points-to-astra":`指向 Astra 自身`,"import.skip.invalid-base-url":`接口地址无效`,"import.skip.no-inline-key":`Key 来自环境变量,不会读取`,"import.selected":`导入所选({count})`,"import.done":`已导入 {count} 个提供商`,"import.doneSkipped":`已导入 {count} 个提供商,跳过 {skipped} 个`,"import.footnote":`路由、限流、余额查询、会话与用量等设置不会导入;导入不会改动任何客户端配置,也不会发起上游请求。`,"import.rescan":`重新扫描`,"providers.modelCount":`{count} 个模型`,"providers.priceKeyShort":`价格:{key}`,"providers.templateUpdate":`模板更新`,"providers.noKey":`未设置密钥`,"providers.card.active":`已启用`,"providers.card.disabled":`已停用`,"providers.card.subscription":`订阅账号`,"providers.card.noAuth":`无需密钥`,"providers.card.requests7d":`近 7 天请求`,"providers.card.noRequests":`暂无请求`,"providers.created":`已添加 {name}`,"providers.addTitle":`选择提供商模板`,"providers.addTitleDetails":`填写提供商信息`,"providers.addDetail":`模板包含接口地址、协议和默认模型列表。`,"providers.custom":`自定义提供商`,"providers.customDetail":`任意 OpenAI / Anthropic / Gemini 兼容接口`,"providers.searchTemplates":`搜索模板`,"providers.category.recommended":`推荐`,"providers.category.official":`官方`,"providers.category.subscription":`订阅`,"providers.category.cn":`国内`,"providers.category.aggregator":`聚合平台`,"providers.category.local":`本地`,"providers.category.custom":`其他`,"providers.category.plugin":`插件`,"providers.pluginProvided":`由插件提供 · 打开后登录账号`,"providers.pluginHint":`安装 OpenCode / magpie 提供商插件后,它提供的提供商会出现在这里。`,"providers.create":`添加`,"providers.name":`名称`,"providers.variant":`区域 / 版本`,"providers.variantDefault":`默认区域`,"providers.baseUrl":`接口地址`,"providers.baseUrlHint":`通常以 /v1 结尾`,"providers.protocol":`协议`,"providers.authScheme":`认证方式`,"providers.apiKey":`API Key`,"providers.apiKeyHint":`加密保存在本机`,"providers.subscriptionWizardHint":`无需 API Key——使用订阅账号登录`,"providers.subscriptionWizardDetail":`创建提供商后,在其「账户」标签页点击「添加账户」,用浏览器完成授权即可。不同订阅的服务条款与配额以官方为准。`,"providers.subscriptionAdded":`已添加 · 在该提供商内添加账号`,"providers.subscription.quotaSession":`5h 已用 {percent}%`,"providers.subscription.quotaWeekly":`每周已用 {percent}%`,"providers.subscription.quotaCredits":`额度已用 {percent}%`,"providers.subscription.quotaBalance":`余额 {balance}`,"providers.subscription.quotaRefresh":`刷新额度`,"providers.subscription.quotaUnsupported":`该订阅暂不支持额度查询`,"providers.subscription.quotaResets":`重置于 {when}`,"providers.subscription.quotaLoading":`正在获取额度…`,"providers.subscription.quotaNoAccount":`账号已失效,重新登录后可查看额度`,"providers.subscription.quotaWindowPremium":`高级请求`,"providers.subscription.quotaPremiumCount":`已用 {used} / {total} 次高级请求`,"providers.subscription.quotaOverage":`额外 {count} 次`,"providers.subscription.quotaOverageOff":`未开启超额使用`,"providers.subscription.quotaFetchedAt":`更新于 {when}`,"providers.subscription.quotaNoWindows":`该账号没有可展示的额度窗口`,"providers.subscription.quotaWindowSession":`会话窗口`,"providers.subscription.quotaWindowWeekly":`每周窗口`,"providers.subscription.quotaWindowCredits":`额度`,"providers.quota.title":`用量查询`,"providers.quota.footer":`按模板查询该提供商的余额或套餐用量,结果显示在提供商卡片和托盘里。查询失败只会显示错误,不会影响提供商本身的使用。`,"providers.quota.enable":`启用用量查询`,"providers.quota.enableHint":`开启后按间隔在后台刷新`,"providers.quota.template":`查询模板`,"providers.quota.templateAuto":`自动({name})`,"providers.quota.templateNone":`自动(没有匹配的模板)`,"providers.quota.custom":`自定义`,"providers.quota.kind.balance":`余额`,"providers.quota.kind.plan":`套餐用量`,"providers.quota.param.userId":`用户 ID`,"providers.quota.param.accessToken":`系统访问令牌`,"providers.quota.paramsHint":`New API / One API 在个人设置里生成的系统访问令牌和用户 ID,不是 sk- 开头的 API Key。`,"providers.quota.secretStored":`已保存,留空不修改`,"providers.quota.interval":`自动查询间隔(分钟)`,"providers.quota.intervalHint":`留空跟随全局设置,0 表示不在后台查询。当前:{value}`,"providers.quota.intervalEvery":`每 {minutes} 分钟`,"providers.quota.intervalOff":`不在后台查询`,"providers.quota.timeout":`超时(秒)`,"providers.quota.baseUrl":`查询地址`,"providers.quota.baseUrlHint":`留空使用提供商的接口地址({{origin}} / {{baseUrl}} 由它得出)`,"providers.quota.method":`方法`,"providers.quota.url":`URL`,"providers.quota.urlHint":`可用占位符:{{origin}}、{{baseUrl}}、{{host}}、{{apiKey}} 以及上面的参数名`,"providers.quota.auth":`认证`,"providers.quota.auth.provider":`使用提供商的 API Key`,"providers.quota.auth.none":`只用下面的请求头`,"providers.quota.headers":`请求头(JSON)`,"providers.quota.extract":`提取规则(JSON)`,"providers.quota.extractHint":`字符串是响应里的路径(如 data.balance),数字是常量;数组按顺序取第一个存在的值;支持 $const、$add、$sub、$mul、$div、$scale、$pctUsed、$eq、$not、$case、$var、$time。取不到的字段不会被当成 0。`,"providers.quota.invalidJson":`{field} 不是有效的 JSON 对象`,"providers.quota.test":`测试查询`,"providers.quota.testDesc":`用当前(未保存)的配置发一次真实请求`,"providers.quota.fetch":`立即查询`,"providers.quota.refresh":`刷新余额`,"providers.quota.fetchedAt":`更新于 {time}`,"providers.quota.never":`尚未查询`,"providers.quota.off":`未启用用量查询`,"providers.quota.rawResponse":`原始响应(已脱敏)`,"providers.quota.requestUrl":`请求地址`,"providers.quota.httpStatus":`HTTP 状态`,"providers.quota.testOk":`查询成功`,"providers.quota.testFailed":`查询失败`,"providers.quota.extracted":`提取结果`,"providers.quota.balance":`余额 {amount}`,"providers.quota.usedPercent":`已用 {percent}%`,"providers.quota.window":`{window}已用 {percent}%`,"providers.quota.totalUsed":`已用 {used} / 共 {total}`,"providers.quota.resets":`{time}重置`,"providers.quota.invalid":`账户不可用`,"providers.quota.failed":`用量查询失败:{error}`,"providers.quota.lastGood":`下面是上次成功的结果`,"providers.quota.error.config":`查询配置不完整`,"providers.quota.error.no_key":`该提供商没有 API Key`,"providers.quota.error.unauthorized":`上游拒绝了额度查询(凭据无效或没有权限)`,"providers.quota.error.no_endpoint":`该地址没有额度接口,请换一个模板或使用自定义查询`,"providers.quota.error.rate_limited":`上游限流,请调大查询间隔`,"providers.quota.error.upstream":`上游返回错误`,"providers.quota.error.timeout":`查询超时`,"providers.quota.error.network":`无法连接上游`,"providers.quota.error.not_json":`响应不是 JSON`,"providers.quota.error.too_large":`响应过大`,"providers.quota.error.empty":`查询成功,但没有取到额度字段`,"settings.proxy":`网络代理`,"settings.proxy.footer":`网关转发、订阅登录、额度查询、更新检查和客户端安装都按这里的设置联网;本机地址始终直连,单独配置了代理的提供商以提供商为准。`,"settings.proxy.mode":`代理方式`,"settings.proxy.mode.system":`跟随系统`,"settings.proxy.mode.custom":`自定义`,"settings.proxy.mode.direct":`不使用`,"settings.proxy.mode.system.hint":`优先使用 HTTPS_PROXY 等环境变量,其次是操作系统的代理设置`,"settings.proxy.mode.custom.hint":`所有出站请求使用下面填写的代理`,"settings.proxy.mode.direct.hint":`忽略环境变量和系统代理,一律直连`,"settings.proxy.url":`代理地址`,"settings.proxy.urlHint":`支持 http、https、socks5,需包含端口`,"settings.proxy.username":`用户名`,"settings.proxy.password":`密码`,"settings.proxy.optional":`可选`,"settings.proxy.passwordSaved":`已保存,留空则不修改`,"settings.proxy.bypass":`不走代理的地址`,"settings.proxy.bypassHint":`用逗号分隔,同时匹配子域名`,"settings.proxy.saved":`代理设置已保存`,"settings.quota":`提供商用量查询`,"settings.quota.autoInterval":`后台查询间隔`,"settings.quota.autoIntervalHint":`已启用用量查询的提供商按这个间隔在后台刷新余额,0 表示关闭;单个提供商可以另行设置。`,"settings.minutes":`分钟`,"tray.quotaBalance":`余额`,"providers.subscription.relogin":`重新登录`,"providers.getKey":`获取 API Key ↗`,"providers.priceKey":`价格表`,"providers.priceKeyHint":`决定使用哪个提供商的模型价格;同一模型在不同提供商价格不同。`,"providers.priceKeyNone":`仅用官方默认价`,"providers.priceKeyDefault":`默认({id})`,"providers.templateModels":`将添加模板中的 {count} 个模型,之后可增删。`,"providers.tab.models":`模型`,"providers.tab.settings":`设置`,"providers.tab.accounts":`账户`,"providers.tab.apiKey":`API Key`,"providers.test":`测试连接`,"providers.testDialog.title":`测试 {name}`,"providers.testDialog.subtitle":`应用隐私策略并记录请求,不重试`,"providers.testDialog.modeSingle":`单模型`,"providers.testDialog.modeBatch":`批量模型`,"providers.testDialog.config":`测试配置`,"providers.testDialog.model":`测试模型`,"providers.testDialog.modelPlaceholder":`输入任意模型 ID`,"providers.testDialog.showModels":`显示模型列表`,"providers.testDialog.protocol":`测试协议`,"providers.testDialog.stream":`流式响应`,"providers.testDialog.maxTokens":`最大输出 tokens`,"providers.testDialog.prompt":`测试提示词(可选)`,"providers.testDialog.promptHint":`留空时使用默认提示词。`,"providers.testDialog.realRequest":`真实请求,可能消耗额度`,"providers.testDialog.savedCredentials":`使用此提供商已保存的连接与凭据。`,"providers.testDialog.start":`开始测试`,"providers.testDialog.retest":`重新测试`,"providers.testDialog.stop":`停止`,"providers.testDialog.stopRest":`停止后续`,"providers.testDialog.testN":`测试 {count} 个模型`,"providers.testDialog.metrics.http":`HTTP 响应`,"providers.testDialog.metrics.firstWait":`首字等待`,"providers.testDialog.metrics.ttft":`首字总延迟`,"providers.testDialog.metrics.total":`完整耗时`,"providers.testDialog.metricsHelp":`HTTP 响应:从发出请求到收到上游响应头。首字:到回答的第一个字节。等待从响应头到达算起,总延迟从发出请求算起。`,"providers.testDialog.reply":`API 提供商回复`,"providers.testDialog.preview":`预览`,"providers.testDialog.raw":`原文`,"providers.testDialog.rawNote":`网关处理后的响应正文(凭据已脱敏)`,"providers.testDialog.rawTruncated":`已截断:原文超过 256 KiB`,"providers.testDialog.reasoning":`推理过程`,"providers.testDialog.noText":`上游没有返回文本。`,"providers.testDialog.headers":`响应头`,"providers.testDialog.headersCount":`{count} 个`,"providers.testDialog.headersEmpty":`上游没有返回响应头。`,"providers.testDialog.emptyTitle":`尚未测试`,"providers.testDialog.emptyDetail":`点击开始测试,向上游发送一条真实请求。`,"providers.testDialog.status.idle":`等待测试`,"providers.testDialog.status.running":`测试中`,"providers.testDialog.status.success":`测试成功`,"providers.testDialog.status.failed":`测试失败`,"providers.testDialog.selected":`已选 {n} / {total}`,"providers.testDialog.progress":`已完成 {done} / {total} · 成功 {ok} · 失败 {failed}`,"providers.testDialog.progressDone":`本批已完成 {total} / {total} · 成功 {ok} · 失败 {failed}`,"providers.testDialog.clearSelection":`清空选择`,"providers.testDialog.searchModels":`搜索或输入模型 ID`,"providers.testDialog.addModel":`添加「{id}」`,"providers.testDialog.view":`查看`,"providers.testDialog.noModels":`该提供商还没有模型;在上方输入模型 ID 即可测试。`,"providers.testDialog.status.queued":`排队中`,"providers.testDialog.status.cancelled":`已取消`,"providers.testDialog.statusColumn":`状态`,"providers.testDialog.ownFilter":`输入模型 ID 可添加列表中没有的模型`,"providers.duplicate":`复制提供商`,"providers.deleteConfirm":`删除 {name}?`,"providers.deleteDetail":`提供商及其模型设置会被删除,请求记录保留。`,"providers.deleted":`已删除`,"providers.deleteBound":`仍有客户端在使用:{clients}。请先为它们切换提供商。`,"providers.templateVersions":`当前版本 {current},最新版本 {latest}`,"providers.templateApplied":`已更新到最新模板`,"providers.templateUpToDate":`已是最新模板。`,"providers.searchModels":`搜索模型`,"providers.addModels":`添加模型`,"providers.addModelsDetail":`输入模型 ID,每行一个或用逗号分隔;会自动关联到系统模型以继承参数和价格。`,"providers.fetchRemote":`从上游获取`,"providers.fetchRemoteDetail":`读取提供商的模型列表,自动关联到系统模型以继承参数和价格。`,"providers.noModels":`还没有模型`,"providers.noModelsDetail":`从上游获取模型列表,或手动输入模型 ID。`,"providers.modelsFooter":`模型默认只需要 ID:未覆盖的字段继承关联的系统模型,价格按此提供商的价格表计算。`,"providers.modelMap.title":`模型映射`,"providers.modelMap.footer":`把客户端请求的模型 ID 转成本提供商的模型,例如 deepseek-v4.1 → deepseek-chat。映射的 ID 会出现在客户端的模型列表里;客户端绑定了多个提供商时,请求这个 ID 也会路由到这里。计费按实际发送的模型计算。`,"providers.modelMap.add":`添加映射`,"providers.modelMap.addDetail":`客户端请求左边的模型 ID 时,Astra 改为向本提供商请求右边的模型。`,"providers.modelMap.needModels":`先给提供商添加模型`,"providers.modelMap.from":`请求的模型 ID`,"providers.modelMap.to":`本提供商的模型`,"providers.modelMap.toPlaceholder":`选择模型`,"providers.modelMap.remove":`删除映射 {from}`,"providers.modelMap.saved":`已保存模型映射`,"providers.modelMap.missingTarget":`目标模型不存在`,"providers.unlinked":`未关联`,"providers.modelsAdded":`已添加 {count} 个模型`,"providers.addSelected":`添加 {count} 个`,"providers.linksTo":`关联到 {id}`,"providers.noLink":`不关联系统模型`,"providers.added":`已添加`,"providers.linkedModel":`关联的系统模型`,"providers.linkedModelHint":`未覆盖的字段和价格都从这里继承。`,"providers.overrides":`字段覆盖`,"providers.price":`价格`,"providers.customPrice":`自定义价格`,"providers.customPriceHint":`自定义价格完全替换继承的价格,不乘提供商倍率。`,"providers.inheritedPriceHint":`当前生效的价格(继承,已按提供商价格表解析):`,"providers.removeModel":`从提供商移除 {id}?`,"providers.removeModelShort":`移除此模型`,"providers.section.basic":`基本信息`,"providers.section.auth":`认证`,"providers.section.endpoints":`接口`,"providers.section.billing":`计费`,"providers.section.advanced":`高级`,"providers.section.info":`信息`,"providers.subscription":`订阅账号`,"providers.subscription.footer":`令牌加密保存在本机;即将过期时自动刷新。`,"providers.subscription.login":`登录订阅`,"providers.subscription.loginDesc":`按提供商的授权流程完成登录,令牌只保存在本机。`,"providers.subscription.logout":`登出并删除`,"providers.subscription.logoutConfirm":`登出账号「{name}」?绑定该账号的客户端将回退到默认账号。`,"providers.subscription.refreshToken":`刷新令牌`,"providers.subscription.tokenRefreshed":`令牌已刷新`,"providers.subscription.expires":`到期`,"providers.subscription.status.active":`有效`,"providers.subscription.status.expired":`已过期`,"providers.subscription.status.revoked":`已失效`,"providers.subscription.none":`尚未登录订阅账号`,"providers.subscription.openAuthorize":`打开授权页`,"providers.subscription.doneAuthorize":`我已完成授权`,"providers.subscription.waiting":`等待授权…`,"providers.subscription.waitingDetail":`已在浏览器打开授权页;完成后本页会自动检测到新账号。`,"providers.subscription.cliDetail":`在浏览器完成授权后本页会自动完成登录(服务端轮询,无需回调地址)。`,"providers.subscription.checkNow":`我已授权,立即验证`,"providers.subscription.checkNowHint":`在浏览器完成授权后点一下;本页也会每几秒自动检查一次。`,"providers.subscription.pasteTitle":`把授权页显示的授权码粘回来`,"providers.subscription.pasteDetail":`Claude 的回调地址是它自己注册的地址(不是本机),所以无法自动跳回来:授权页上会显示一个授权码。点「打开授权页」完成授权,再把授权码整段复制粘贴到下面。`,"providers.subscription.pastePlaceholder":`粘贴授权码(形如 xxxx#yyyy)`,"providers.subscription.pasteCode":`授权码`,"providers.subscription.pasteSubmit":`完成登录`,"providers.subscription.stillWaiting":`还没收到授权,请确认浏览器里已完成确认。`,"providers.subscription.deviceCode":`设备码`,"providers.subscription.visitPage":`打开验证页面`,"providers.subscription.loginOk":`授权成功:{name}`,"providers.subscription.loginFailed":`登录失败`,"providers.subscription.importCodex":`导入本机 Codex 登录`,"providers.subscription.importCodexHint":`把本机 ~/.codex/auth.json 里已有的 codex 登录态接进来,不用再走一遍浏览器授权`,"providers.subscription.importOk":`已导入本机 Codex 账号:{name}`,"providers.subscription.importCopilot":`导入本机 GitHub 授权`,"providers.subscription.importCopilotHint":`接入本机已有的 GitHub 授权(VS Code 的 GitHub 会话、GH_TOKEN 或 Copilot 插件配置)来建 Copilot 账号,不用再走一遍设备码授权`,"providers.subscription.importCopilotPlaceholder":`或粘贴 GitHub token(gho_…)`,"providers.subscription.importCopilotToken":`GitHub token`,"providers.subscription.localCopilotFound":`检测到本机 GitHub 授权:{source}`,"providers.subscription.importBatch":`批量导入 token`,"providers.subscription.importBatchTitle":`批量导入 GitHub token`,"providers.subscription.importBatchLabel":`GitHub token 列表(每行一个)`,"providers.subscription.importBatchDesc":`粘贴 GitHub token(gho_ / ghp_ / github_pat_),每行一个。每个 token 会建成一个 Copilot 账号;重复的、没有 Copilot 订阅的 token 只会报告结果,不会导入。也可以直接粘贴可用的 Copilot 令牌(tid=…;exp=…),它不需要置换,但无法自动续期,到期后需重新导入。`,"providers.subscription.importBatchPlaceholder":`gho_xxxxxxxxxxxx
|
|
11
11
|
tid=xxxx;exp=1760000000;sku=...
|
|
12
|
-
# 以 # 开头的行会被忽略`,"providers.subscription.importBatchCount":`已识别 {n} 个 token`,"providers.subscription.importBatchRun":`导入`,"providers.subscription.importBatchSummary":`已导入 {ok} 个,重复 {dup} 个,失败 {fail} 个`,"providers.subscription.importBatchStatus.imported":`已导入`,"providers.subscription.importBatchStatus.duplicate":`重复`,"providers.subscription.importBatchStatus.invalid_format":`格式错误`,"providers.subscription.importBatchStatus.failed":`失败`,"providers.subscription.importBatchStatus.updated":`已更新`,"providers.subscription.importBatchStatus.ready":`可导入`,"providers.accounts.statTotal":`{n} 个账户`,"providers.accounts.statUsable":`{n} 可用`,"providers.accounts.statCooling":`{n} 冷却中`,"providers.accounts.statDead":`{n} 失效`,"providers.accounts.providerProxy":`提供商代理:{proxy}`,"providers.accounts.filter.all":`全部`,"providers.accounts.filter.usable":`可用`,"providers.accounts.filter.cooling":`冷却`,"providers.accounts.filter.dead":`失效`,"providers.accounts.filter.disabled":`停用`,"providers.accounts.filterLabel":`按状态筛选`,"providers.accounts.search":`搜索邮箱 / 名称 / Key`,"providers.accounts.add":`添加账户`,"providers.accounts.addLogin":`浏览器登录`,"providers.accounts.addLoginProxy":`浏览器登录(指定代理)…`,"providers.accounts.addToken":`粘贴令牌…`,"providers.accounts.addApiKey":`添加 API Key…`,"providers.accounts.batchImport":`批量导入`,"providers.accounts.noMatch":`没有符合条件的账户`,"providers.accounts.select":`选择 {name}`,"providers.accounts.selected":`已选 {n} 个账户`,"providers.accounts.clearSelection":`取消选择`,"providers.accounts.bulkDeleteConfirm":`删除选中的 {n} 个账户?`,"providers.accounts.bulkDeleteDetail":`令牌会从本机删除;绑定这些账户的客户端将回退到默认账户。`,"providers.accounts.bulkDone":`已处理 {n} 个账户`,"providers.accounts.kind.oauth":`OAuth`,"providers.accounts.kind.api_key":`API Key`,"providers.accounts.source.login":`浏览器登录`,"providers.accounts.source.local":`本机导入`,"providers.accounts.source.token":`粘贴导入`,"providers.accounts.source.batch":`批量导入`,"providers.accounts.expiresAt":`{when} 到期`,"providers.accounts.neverExpires":`不过期`,"providers.accounts.proxyBadge":`独立代理`,"providers.accounts.signedOut":`登录已失效`,"providers.accounts.quotaShortWeekly":`周`,"providers.accounts.quotaShortSession":`会话`,"providers.accounts.quotaShortCredits":`额度`,"providers.accounts.quotaShortPremium":`高级`,"providers.accounts.order":`#{n}`,"providers.accounts.detail.identity":`账户`,"providers.accounts.detail.name":`名称`,"providers.accounts.detail.proxy":`账户代理`,"providers.accounts.detail.proxyHint":`此账户的请求、令牌刷新与额度查询都走这里;留空则跟随提供商({fallback})。`,"providers.accounts.detail.quota":`额度`,"providers.accounts.detail.credentials":`凭据`,"providers.accounts.detail.kind":`类型`,"providers.accounts.detail.source":`来源`,"providers.accounts.detail.status":`状态`,"providers.accounts.detail.expires":`令牌到期`,"providers.accounts.detail.lastRefresh":`最近刷新`,"providers.accounts.detail.created":`添加时间`,"providers.accounts.detail.order":`故障转移顺序`,"providers.accounts.detail.lastError":`最近错误`,"providers.accounts.detail.key":`API Key`,"providers.accounts.proxyFallbackSystem":`系统代理`,"providers.accounts.renamed":`已重命名`,"providers.accounts.proxySaved":`账户代理已保存`,"providers.accounts.loginProxyTitle":`使用指定代理登录`,"providers.accounts.loginProxyDesc":`新账户从登录起就通过这个代理访问上游(换码、刷新、请求都走它)。授权页仍在你的浏览器里打开。`,"providers.accounts.loginProxyStart":`开始登录`,"providers.accounts.import.batchTitle":`批量导入账户`,"providers.accounts.import.tokenTitle":`粘贴令牌`,"providers.accounts.import.apiKeyTitle":`添加 API Key`,"providers.accounts.import.desc":`令牌只在本机加密保存,结果里只显示首尾几位。`,"providers.accounts.import.label":`要导入的令牌(每行一条)`,"providers.accounts.import.apiKeyLabel":`API Key(每行一把)`,"providers.accounts.import.formats":`支持:{formats}`,"providers.accounts.import.count":`已识别 {n} 条`,"providers.accounts.import.preview":`预览`,"providers.accounts.import.run":`导入`,"providers.accounts.import.proxy":`账户代理(可选)`,"providers.accounts.import.summary":`已导入 {ok} 条,重复 {dup} 条,失败 {fail} 条`,"providers.accounts.import.previewSummary":`可导入 {ok} 条,重复 {dup} 条,无法识别 {fail} 条`,"providers.accounts.import.rotateWarning":`refresh token 通常只能用一次:导入后,原来使用它的客户端(Claude Code、Codex 等)可能需要重新登录。`,"providers.accounts.credential.refresh_token":`refresh token`,"providers.accounts.credential.setup_token":`setup-token`,"providers.accounts.credential.api_key":`API Key`,"providers.accounts.credential.github_token":`GitHub token`,"providers.accounts.credential.copilot_token":`Copilot 令牌`,"providers.accounts.credential.claude_credentials":`.credentials.json`,"providers.accounts.credential.codex_auth_json":`auth.json`,"providers.accounts.format.claude-refresh-token":`refresh token(sk-ant-ort01-…)`,"providers.accounts.format.claude-setup-token":`claude setup-token(sk-ant-oat01-…)`,"providers.accounts.format.claude-credentials-json":`Claude Code 的 .credentials.json`,"providers.accounts.format.codex-auth-json":`~/.codex/auth.json 的内容`,"providers.accounts.format.refresh-token":`refresh token`,"providers.accounts.format.grok-sso":`Grok Web SSO(sso cookie / email----password----…----sso)`,"providers.accounts.format.kimi-api-key":`Kimi Code API Key(sk-kimi-…)`,"providers.accounts.format.zai-api-key":`Z.AI Coding Plan API Key`,"providers.accounts.format.bigmodel-api-key":`智谱 Coding Plan API Key`,"providers.accounts.format.github-token":`GitHub token(gho_ / ghp_ / github_pat_)`,"providers.accounts.format.copilot-token":`Copilot 令牌(tid=…;exp=…)`,"providers.subscription.localCopilotHint":`点「导入本机 GitHub 授权」时会读取 VS Code 的系统凭据(macOS 会弹授权框),也可以直接粘贴一个 GitHub token`,"providers.subscription.localCodexFound":`检测到本机 Codex 登录:{who}`,"providers.subscription.unknownAccount":`未知账号`,"providers.subscription.credits.title":`额度重置卡`,"providers.subscription.credits.footer":`codex 的额度重置卡:用一张可以立刻解除当前被限流的窗口。`,"providers.subscription.credits.none":`这个账号没有重置卡`,"providers.subscription.credits.unavailable":`暂时读不到重置卡(账号可能未登录,或上游不可达)。`,"providers.subscription.credits.availableCount":`可用 {count} 张`,"providers.subscription.credits.consume":`使用`,"providers.subscription.credits.consumeConfirm":`使用重置卡「{title}」?`,"providers.subscription.credits.consumeDetail":`会立刻解除当前被限流的窗口,且无法撤销。`,"providers.subscription.credits.consumed":`重置卡已使用,额度已刷新`,"providers.subscription.credits.consumeFailed":`使用重置卡失败`,"providers.subscription.credits.expires":`有效期至 {when}`,"providers.subscription.credits.redeemedAt":`已于 {when} 使用`,"providers.subscription.credits.notInPlan":`当前套餐不支持`,"providers.subscription.credits.status.available":`可用`,"providers.subscription.credits.status.redeemed":`已使用`,"providers.subscription.credits.status.expired":`已过期`,"providers.subscription.needsVerification":`即将支持:该订阅的登录流程尚未核实,暂不能登录`,"providers.subscription.current":`当前使用`,"providers.subscription.disabled":`已停用`,"providers.subscription.activate":`切换到此账号`,"providers.subscription.activated":`已切换到 {name},下一个请求起生效`,"providers.subscription.enable":`启用`,"providers.subscription.disable":`停用`,"providers.subscription.moveUp":`上移`,"providers.subscription.moveDown":`下移`,"providers.subscription.cooldown":`限流冷却至 {when}`,"providers.subscription.policy.title":`使用策略`,"providers.subscription.policy.footer":`切换账号对下一个请求立即生效,无需重启客户端;在客户端或令牌上固定了账号的请求不受影响。`,"providers.subscription.policy.claudeCodeOnly":`仅限 Claude Code`,"providers.subscription.policy.claudeCodeOnlyDetail":`只接受 Claude Code(含 IDE 插件与 Agent SDK)的请求,并原样转发它的请求头;其他客户端会收到 403。`,"providers.subscription.policy.anyWarning":`已允许其他客户端使用:Astra 只补齐 OAuth 必需的请求头,不会伪装成 Claude Code。Anthropic 可能把这些请求计入额外用量、直接拒绝,或视为违反服务条款。`,"providers.subscription.policy.mimic":`其他客户端模拟 Claude Code`,"providers.subscription.policy.mimicDetail":`非 Claude Code 客户端的请求会带上 Claude Code 的身份(system 身份块、claude-cli User-Agent、X-Stainless 指纹与完整 beta 集),否则订阅令牌的非 Haiku 模型会被上游拒绝。默认关闭。`,"providers.subscription.policy.mimicWarning":`已开启模拟 Claude Code:请求会伪装成官方 CLI。这违反 Anthropic 的使用条款,可能导致账号被限制或封禁,风险由你自己的账号承担。`,"providers.subscription.policy.switchMode":`账号切换`,"providers.subscription.policy.manual":`手动`,"providers.subscription.policy.failover":`自动故障转移`,"providers.subscription.policy.manualDetail":`只在你切换账号,或当前账号失效、被停用时更换。`,"providers.subscription.policy.failoverDetail":`当前账号被限流(429)或登录失效时,自动换到下一个可用账号并继续使用它。`,"providers.subscription.policy.balanced":`均衡分配`,"providers.subscription.policy.balancedDetail":`把请求分摊到所有可用账号,优先选当前并发最少的。同一会话(相同 prompt_cache_key 或 Claude Code 会话)固定使用同一个账号,保证上游提示词缓存命中;被限流或失效的账号会被跳过。绑定关系只保存在内存里。`,"providers.notes":`备注`,"providers.apiKeyStored":`API Key 加密保存在本机,留空表示不修改。`,"providers.replaceKey":`输入新密钥以替换`,"providers.endpointsFooter":`每种协议一个地址;客户端协议与上游不同时,Astra 自动转换。`,"providers.fullUrl":`完整 URL`,"providers.addEndpoint":`添加接口`,"providers.preferred":`上游协议优先级`,"providers.preferredHint":`需要转换协议时按此顺序选择上游接口`,"providers.preferredMissing":`{protocol} 没有配置接口地址,排在优先级里也不会被选中`,"providers.billingFooter":`倍率只作用于继承来的价格;模型上的自定义价格不乘倍率。`,"providers.multiplier":`价格倍率`,"providers.multiplierHint":`例如中转站按官方价 ×1.1 计费`,"providers.proxy":`HTTP 代理`,"providers.proxyHint":`此提供商的请求、订阅登录、令牌刷新与额度查询都走这里;订阅账户可在「账户」里单独设置`,"providers.headers":`额外请求头`,"providers.addHeader":`添加请求头`,"providers.addHeaderDetail":`随每个发往该提供商的请求一起发送;保存后生效。`,"providers.headerName":`名称`,"providers.headerValue":`值`,"providers.addEndpointDetail":`为一种协议配置接口地址;保存后生效。`,"providers.fullUrlHint":`地址即完整请求 URL,不再追加路径`,"providers.adapterSettings":`适配器设置(JSON)`,"providers.adapter":`适配器`,"providers.boundClients":`使用中的客户端`,"origin.inherited":`继承`,"origin.overridden":`已覆盖`,"origin.unset":`未设置`,"origin.reset":`重置为继承`,"models.count":`{count} 个模型`,"models.search":`搜索模型、别名`,"models.allVendors":`全部厂商`,"models.sync":`同步模型目录`,"models.syncDetail":`从官网目录(astra-gate.si)获取最新的模型参数和价格,用户修改过的字段不会被覆盖。`,"models.new":`新建模型`,"models.newDetail":`为系统中没有的模型添加参数和默认价格。`,"models.col.model":`模型`,"models.col.vendor":`厂商`,"models.col.context":`上下文`,"models.col.price":`输入 / 输出`,"models.col.providerPrices":`提供商价格`,"models.empty":`没有匹配的模型`,"models.source.seed":`内置`,"models.source.sync":`同步`,"models.source.user":`自定义`,"models.modified":`已修改`,"models.providerPriceCount":`{count} 个提供商`,"models.updated":`更新于 {time}`,"models.resetField":`恢复为内置值`,"models.fieldReset":`已恢复为内置值`,"models.deleteConfirm":`删除模型 {id}?`,"models.section.basic":`基本参数`,"models.section.capabilities":`能力`,"models.section.pricing":`官方默认价格`,"models.section.providerPrices":`各提供商价格`,"models.section.overrides":`提供商自定义价格`,"models.section.simulator":`计费模拟器`,"models.modifiedFooter":`标记为「已修改」的字段不会被后续的内置数据或同步覆盖。`,"models.pricingHint":`模型厂商的官方价格;没有对应提供商价格时使用(会乘提供商倍率)。`,"models.providerPricesFooter":`同一模型在不同 AI 提供商的价格(按价格表区分),优先于官方默认价。`,"models.overridesFooter":`这些提供商为该模型单独设置了价格,优先级最高。`,"models.noProviderPrices":`没有提供商专属价格`,"models.hasTimeWindows":`含时段规则`,"models.hasTiers":`含分档`,"models.deletePrice":`删除 {key} 的价格?`,"models.addPrice":`添加提供商价格`,"models.editPrice":`编辑 {key} 的价格`,"models.priceSheetDetail":`该价格只在价格表匹配的提供商上生效。`,"models.pickPriceKey":`选择价格表`,"models.customPriceKey":`或输入自定义价格表 ID`,"models.upstreamId":`该提供商的模型 ID`,"models.upstreamIdHint":`与系统模型 ID 不同时填写,用于自动关联`,"models.simulatorUnsaved":`有未保存的更改:模拟使用编辑中的价格。`,"models.field.id":`模型 ID`,"models.field.idHint":`客户端请求时使用的名称`,"models.field.displayName":`显示名称`,"models.field.vendor":`厂商`,"models.field.family":`系列`,"models.field.aliases":`别名`,"models.field.contextWindow":`上下文窗口`,"models.field.maxOutputTokens":`最大输出`,"models.field.inputPrice":`输入价格 /1M`,"models.field.outputPrice":`输出价格 /1M`,"models.sync.newModel":`新模型`,"models.sync.price":`价格 · {key}`,"models.sync.field":`字段 · {field}`,"models.sync.applied":`已应用 {count} 项更改`,"models.sync.apply":`应用 {count} 项`,"models.sync.check":`检查更新`,"models.sync.none":`没有可用的更新`,"models.sync.userModified":`已被用户修改`,"cap.vision":`图像输入`,"cap.tools":`工具调用`,"cap.reasoning":`推理`,"cap.promptCache":`提示缓存`,"cap.audio":`音频`,"cap.pdf":`PDF`,"cap.structuredOutput":`结构化输出`,"requests.col.cache":`缓存命中 / 写入`,"usage.title":`Token 用量`,"usage.inputTotal":`输入总量`,"usage.outputTotal":`输出总量`,"usage.input":`普通输入`,"usage.output":`普通输出`,"usage.uncachedInput":`未缓存输入`,"usage.regularOutput":`非推理输出`,"usage.cacheRead":`缓存命中`,"usage.cacheWrite":`缓存写入`,"usage.cacheWrite5m":`缓存写入 · 5 分钟`,"usage.cacheWrite1h":`缓存写入 · 1 小时`,"usage.reasoning":`推理 / 思考`,"usage.inputAudio":`音频输入`,"usage.outputAudio":`音频输出`,"usage.inputImage":`图像输入`,"usage.outputImage":`图像输出`,"usage.hitShort":`命中`,"usage.writeShort":`写入`,"usage.reasoningShort":`推理`,"usage.hitRate":`缓存命中率`,"usage.noCache":`上游未报告缓存读取或写入 Token`,"usage.missing":`上游未报告用量,缓存命中率未知。`,"usage.hitTooltip":`缓存命中 {read} / 输入总量 {total} tokens`,"usage.writeTooltip":`共写入 {tokens} tokens;5m / 1h 在详情中分别列出`,"usage.totalsHint":`输入总量已包含缓存命中和写入;输出总量已包含推理 Token,不重复相加。命中率 = 缓存读取 / 输入总量。`,"usage.cacheAmounts":`命中 {read} · 写入 {write}`,"settings.appearance":`外观`,"settings.theme":`主题`,"settings.theme.system":`跟随系统`,"settings.theme.light":`浅色`,"settings.theme.dark":`深色`,"settings.accent":`强调色`,"settings.accent.system":`跟随系统`,"settings.accent.followingSystem":`正在使用系统强调色`,"settings.accent.systemUnavailable":`无法读取系统强调色,使用默认蓝色`,"settings.accent.blue":`蓝色`,"settings.accent.purple":`紫色`,"settings.accent.pink":`粉色`,"settings.accent.red":`红色`,"settings.accent.orange":`橙色`,"settings.accent.yellow":`黄色`,"settings.accent.green":`绿色`,"settings.accent.graphite":`石墨色`,"settings.language":`语言`,"settings.languageHint":`同时决定新请求计费说明的语言`,"settings.gateway":`网关`,"settings.requireKey":`要求访问密钥`,"settings.requireKeyHint":`默认开启。关闭后,不带密钥(或密钥无效)的请求也能使用网关,按默认令牌的提供商处理。`,"settings.requireKeyOffConfirm":`关闭访问密钥验证?`,"settings.requireKeyOffDetail":`关闭后,任何能访问本网关地址的程序或设备都可以直接使用你的提供商额度,无需密钥。仅建议在仅限本机访问的可信环境中关闭。`,"settings.requireKeyOff":`仍然关闭`,"settings.gatewayFooter":`端口与监听地址通过终端修改:astra start --port <端口>`,"settings.gatewayUrl":`网关地址`,"settings.listen":`监听`,"settings.dataDir":`数据目录`,"settings.openFolder":`打开目录`,"settings.streamIdle":`流式空闲超时`,"settings.streamIdleHint":`上游超过该时间无数据则断开`,"settings.logging":`记录`,"settings.debugBodies":`保存请求与响应内容`,"settings.debugBodiesHint":`用于排查问题;内容保存在本机数据目录,不含密钥。`,"settings.bodyRetention":`内容保留`,"settings.requestRetention":`自动清理请求记录`,"settings.keepForever":`永久保留`,"settings.days":`天`,"settings.effort":`推理强度换算`,"settings.effortHint":`在 OpenAI reasoning effort 与 Anthropic / Gemini thinking budget 之间转换时使用。`,"settings.privacy":`隐私护栏`,"settings.privacy.footer":`请求发往提供商之前在本机检测敏感信息。原值只保存在请求内存中,不会写入数据库。`,"settings.privacy.enabled":`启用隐私护栏`,"settings.privacy.enabledHint":`关闭后所有请求原样转发`,"settings.privacy.dryRun":`只检测不处理`,"settings.privacy.dryRunHint":`记录命中但放行请求,用于观察效果`,"settings.privacy.restore":`还原响应占位符`,"settings.privacy.restoreHint":`响应中的占位符会替换回原值,客户端无感知`,"settings.privacy.recordSamples":`记录命中样本`,"settings.privacy.recordSamplesHint":`日志中保存遮罩后的样本(如 john••••om),原值永不入库`,"settings.privacy.defaultAction":`默认动作`,"settings.privacy.action.off":`关闭`,"settings.privacy.action.warn":`仅警告`,"settings.privacy.action.block":`拦截`,"settings.privacy.action.redact":`脱敏`,"settings.privacy.categories":`检测类别`,"settings.privacy.category.api_key":`API 密钥`,"settings.privacy.category.aws_key":`AWS 密钥`,"settings.privacy.category.jwt":`JWT 令牌`,"settings.privacy.category.private_key":`私钥`,"settings.privacy.category.email":`邮箱地址`,"settings.privacy.category.phone":`手机号`,"settings.privacy.category.intranet":`内网地址`,"settings.privacy.category.custom":`自定义`,"settings.privacy.category.credit_card":`银行卡号`,"settings.privacy.category.national_id":`证件号码`,"settings.privacy.category.credential":`凭据 / 连接串`,"settings.privacy.enableCategory":`启用`,"settings.privacy.customRules":`自定义规则`,"settings.privacy.noCustomRules":`暂无自定义规则`,"settings.privacy.addRule":`添加规则`,"settings.privacy.ruleName":`规则名称`,"settings.privacy.rulePattern":`正则表达式`,"settings.privacy.rulePatternHint":`对请求中的每个字符串值逐个匹配`,"settings.privacy.ruleTemplates":`从模板填入`,"settings.privacy.ruleTemplatesHint":`选择常用规则模板,名称与表达式可再修改`,"settings.privacy.ruleTemplateNone":`自定义(手动输入)`,"settings.privacy.template.ipv4All":`所有 IPv4 地址`,"settings.privacy.template.ipv4AllHint":`含公网地址;内置「内网地址」只覆盖私有网段`,"settings.privacy.template.landline":`座机号码(中国大陆)`,"settings.privacy.template.licensePlate":`车牌号(中国大陆)`,"settings.privacy.template.passportCn":`护照号(中国)`,"settings.privacy.template.uscc":`统一社会信用代码`,"settings.privacy.template.longToken":`通用长令牌(32 位以上随机串)`,"settings.privacy.template.longTokenHint":`命中面较宽,建议搭配「仅警告」使用`,"settings.privacy.template.macAddress":`MAC 地址`,"settings.privacy.template.unixHome":`Unix / macOS 用户目录路径`,"settings.privacy.template.windowsProfile":`Windows 用户目录路径`,"settings.privacy.template.unixHomeHint":`路径中会暴露本机用户名`,"settings.privacy.template.genericHint":`可按需要再调整表达式`,"settings.privacy.template.cloudAccessKey":`云厂商 AccessKey(阿里云 LTAI… / 腾讯云 AKID…)`,"settings.privacy.template.awsSecretKey":`AWS Secret Access Key(40 位)`,"settings.privacy.template.imWebhook":`IM 机器人 Webhook(钉钉 / 企微 / 飞书 / Slack)`,"settings.privacy.template.imWebhookHint":`Webhook 地址本身就是凭证,泄露后任何人都能向群里发消息`,"settings.privacy.template.internalService":`内部系统域名(gitlab. / jenkins. / jira. …)`,"settings.privacy.template.jdbcConn":`JDBC 连接串(含账号密码)`,"settings.privacy.template.jdbcHint":`连接串里的账号密码通常是明文`,"settings.privacy.template.smtpConn":`邮件服务器连接串(smtp://user:pass@…)`,"settings.privacy.template.keyFileRef":`密钥文件引用(.pem / .key / .pfx / .jks)`,"settings.privacy.template.confidentialMarker":`内部 / 机密标记(机密、Confidential…)`,"settings.privacy.template.confidentialHint":`按文档密级标记做警告或拦截`,"settings.privacy.template.employeeId":`员工工号(EMP-123456 / 工号123456)`,"settings.privacy.template.labeledNumber":`带标签编号(合同编号 / 订单编号 / 工单编号…)`,"settings.privacy.invalidPattern":`正则表达式无效`,"settings.privacy.deleteRuleConfirm":`删除规则「{name}」?`,"settings.privacy.tester":`试用检测`,"settings.privacy.testerHint":`按当前策略检测下面的文本(不影响真实请求)`,"settings.privacy.testerPlaceholder":`粘贴一段请求文本或 JSON…`,"settings.privacy.runTest":`检测`,"settings.privacy.noHits":`没有命中任何规则`,"settings.privacy.wouldBlock":`会拦截请求`,"settings.privacy.wouldRedact":`将脱敏 {count} 处`,"privacy.tab.overview":`概览`,"privacy.tab.logs":`拦截日志`,"privacy.tab.rules":`检测规则`,"privacy.tab.tester":`试用检测`,"privacy.stats":`防护统计`,"privacy.stats.events":`护栏事件`,"privacy.stats.blocked":`拦截请求`,"privacy.stats.dryRun":`只检测请求`,"privacy.stats.redactions":`脱敏处数`,"privacy.stats.byCategory":`类别命中`,"privacy.stats.col.category":`类别`,"privacy.stats.col.requests":`请求数`,"privacy.stats.col.hits":`命中数`,"privacy.stats.col.warn":`警告`,"privacy.stats.col.block":`拦截`,"privacy.stats.col.redact":`脱敏`,"privacy.logs.total":`共 {count} 条事件`,"privacy.logs.empty":`还没有隐私事件`,"privacy.logs.empty.detail":`护栏检测到敏感内容后,对应的请求会出现在这里`,"privacy.logs.col.outcome":`处置结果`,"privacy.logs.col.action":`命中动作`,"privacy.logs.col.hits":`命中详情`,"privacy.logs.outcome.blocked":`已拦截`,"privacy.logs.outcome.redacted":`脱敏 {count} 处`,"privacy.logs.outcome.dryRun":`只检测`,"privacy.logs.blockedOnly":`仅拦截`,"privacy.logs.passedOnly":`仅放行`,"privacy.logs.moreHits":`+{count} 类`,"privacy.logs.viewRequest":`查看请求 {model}`,"settings.effort.low":`low`,"settings.effort.medium":`medium`,"settings.effort.high":`high`,"settings.about":`关于`,"settings.serverVersion":`服务版本`,"settings.desktopVersion":`桌面端版本`,"settings.logs":`打开日志目录`,"settings.logout":`退出登录`,"settings.checkUpdates":`检查更新`,"settings.upToDate":`已是最新版本`,"settings.updateAvailable":`有可用更新 {version}`,"settings.updateCheckFailed":`检查失败:{error}`,"settings.updateApplyHint":`可从 Astra 托盘菜单安装,或在终端运行 astra update`,"settings.updateApply":`立即更新`,"settings.updateApplied":`服务已更新并重启`,"settings.updateDesktopRelaunch":`桌面端将重启以完成更新`,"settings.lastChecked":`上次检查:{time}`,"settings.autoCheck":`自动检查更新`,"settings.tab.general":`常规`,"settings.tab.tray":`托盘面板`,"settings.tray.titleHeading":`菜单栏常驻文字`,"settings.tray.titleHint":`显示在菜单栏图标旁,不用点开就能看到。Windows 与 Linux 显示在图标提示中。`,"settings.tray.title.none":`不显示`,"settings.tray.title.none.hint":`只显示图标`,"settings.tray.title.requests":`今日调用`,"settings.tray.title.requests.hint":`例如 7`,"settings.tray.title.tokens":`今日 tokens`,"settings.tray.title.tokens.hint":`例如 68.8K`,"settings.tray.title.cost":`今日费用`,"settings.tray.title.cost.hint":`例如 $0.37`,"settings.tray.title.quota":`订阅窗口`,"settings.tray.title.quota.hint":`剩余最少的订阅窗口,例如 64%`,"settings.tray.title.alerts":`仅异常提示`,"settings.tray.title.alerts.hint":`有失败请求、额度告急或网关停止时才显示`,"settings.tray.usageHeading":`用量信息`,"settings.tray.clientsHeading":`客户端`,"settings.tray.section.overview":`今日概览`,"settings.tray.section.overview.hint":`调用次数、tokens 与失败数`,"settings.tray.section.cost":`预估费用`,"settings.tray.section.cost.hint":`按官方 API 价格折算,不替代账单`,"settings.tray.section.chart":`今日趋势`,"settings.tray.section.chart.hint":`每小时调用次数柱状图`,"settings.tray.section.topModel":`常用模型`,"settings.tray.section.topModel.hint":`今日 tokens 占比最高的模型`,"settings.tray.section.compareYesterday":`对比昨天`,"settings.tray.section.compareYesterday.hint":`今日 tokens 相对昨日全天的变化`,"settings.tray.section.cacheHitRate":`缓存命中率`,"settings.tray.section.cacheHitRate.hint":`缓存读取占输入 tokens 的比例`,"settings.tray.section.quota":`额度与余额`,"settings.tray.section.quota.hint":`Codex、Claude 等订阅的窗口用量与重置时间,以及已启用用量查询的 API 提供商余额`,"settings.tray.section.clients":`客户端提供商`,"settings.tray.section.clients.hint":`已启用客户端当前使用的提供商,点击可切换`,"settings.tray.previewHeading":`面板预览`,"settings.tray.previewHint":`点击托盘图标展开的面板。改动立即生效,预览即实际效果。`,"settings.tray.previewFooter":`使用当前真实数据渲染。`,"settings.tray.reset":`恢复默认`,"tray.status.running":`网关运行中`,"tray.status.stopped":`网关未运行`,"tray.status.starting":`正在启动网关…`,"tray.status.stopping":`正在停止网关…`,"tray.status.restarting":`正在重启网关…`,"tray.stoppedHint":`网关停止期间,客户端无法通过 Astra 调用模型。`,"tray.mismatch":`API 版本不匹配`,"tray.update":`有可用更新`,"tray.copyAddress":`复制网关地址`,"tray.settings":`托盘面板设置`,"tray.more":`更多操作`,"tray.today":`今日`,"tray.failures":`{count} 次失败`,"tray.justNow":`刚刚`,"tray.updated":`更新于{time}`,"tray.loadFailed":`无法读取用量数据`,"tray.requests":`次调用`,"tray.tokens":`tokens`,"tray.cost":`预估费用`,"tray.topModel":`常用模型`,"tray.cacheHit":`缓存命中`,"tray.vsYesterday":`较昨日`,"tray.chartLabel":`今日每小时调用次数`,"tray.hourBar":`{hour} · {count} 次调用`,"tray.quota":`额度与余额`,"tray.quotaRemaining":`剩余`,"tray.quotaReset":`重置`,"tray.quotaCredits":`额度`,"tray.quotaPending":`正在获取额度…`,"tray.clients":`客户端`,"tray.unbound":`未绑定`,"tray.switchProvider":`切换 {client} 的提供商`,"tray.disabledProvider":`{name}(已停用)`,"tray.restart":`重启网关`,"tray.stop":`停止网关`,"tray.quit":`退出`,"tray.open":`打开 Astra`,"tray.title.requests":`今日调用 {count} 次`,"tray.title.tokens":`今日 tokens {count}`,"tray.title.cost":`今日预估费用 {amount}`,"tray.title.quota":`{plan} {window}窗口剩余 {remaining}`,"tray.title.failures":`今日 {count} 次失败`,"tray.tab.overview":`概览`,"tray.tab.quota":`额度`,"tray.alert.failures":`{count} 次失败 · 占今日 {share}`,"tray.alert.quota":`{plan} {window}窗口仅剩 {remaining}`,"tray.quotaTightest":`额度 · 最紧张`,"tray.viewAll":`查看全部`,"nav.plugins":`插件`,"providers.card.plugin":`插件登录`,"plugins.subtitle":`兼容 magpie 的插件:提供商插件(OpenCode 插件,在 Bun 插件宿主中运行)、网关中间件与客户端(Agent)插件。`,"plugins.add":`添加插件`,"plugins.updateAll":`全部更新`,"plugins.tab.installed":`已安装`,"plugins.tab.market":`插件市场`,"plugins.tab.runtime":`运行环境`,"plugins.empty":`还没有安装插件`,"plugins.emptyDetail":`在「插件市场」中挑选,或添加 npm 包、GitHub 仓库或本地文件夹。`,"plugins.orderHint":`列表顺序即网关中间件的执行顺序。`,"plugins.kind.provider":`提供商`,"plugins.kind.middleware":`中间件`,"plugins.kind.agent":`客户端`,"plugins.kind.pi":`pi 扩展`,"plugins.local":`本地`,"plugins.moveUp":`上移`,"plugins.moveDown":`下移`,"plugins.enabled":`启用`,"plugins.options":`选项`,"plugins.update":`更新`,"plugins.removeConfirm":`删除插件 {name}?`,"plugins.removeDetail":`插件会被卸载;它添加的客户端会先恢复原来的配置。`,"plugins.cantLoad":`插件无法加载`,"plugins.hostCantLoad":`插件宿主没能加载它`,"plugins.mw.error":`中间件没能加载:{error}`,"plugins.mw.stats":`中间件 {hooks} · 调用 {calls} 次 · 平均 {micros} µs · 失败 {failures} 次`,"plugins.mw.lastError":`最近一次失败:{error}`,"plugins.agent.adds":`添加了客户端「{name}」,前往「客户端」页面启用`,"plugins.agent.error":`客户端没能加载:{error}`,"plugins.provides":`登录到:{providers}`,"plugins.servedBy":`{provider} 由另一个插件 {other} 提供`,"plugins.useFor":`用它提供 {provider}`,"plugins.picked":`已被选定为这些提供商的提供者。`,"plugins.optionsTitle":`{name} 的选项`,"plugins.optionsExample":`尚未设置,以下是插件给出的示例。`,"plugins.optionsNone":`尚未设置。插件以 JSON 对象读取选项(中间件的 ctx.options)。`,"plugins.optionsClear":`清除选项`,"plugins.optionsSaved":`选项已保存`,"plugins.optionsObject":`选项必须是一个 JSON 对象`,"plugins.addTitle":`添加插件`,"plugins.addDetail":`npm 包(可带版本)、Git 仓库(github:用户/仓库)或本机文件、文件夹的绝对路径。`,"plugins.spec":`插件`,"plugins.specHint":`例如 @magpie-community/middleware-word-guard、github:someone/plugin、/Users/me/my-plugin`,"plugins.install":`安装`,"plugins.installed":`已安装`,"plugins.installConfirm":`安装 {name}?`,"plugins.trustTitle":`插件会以你的权限运行代码`,"plugins.trustDetail":`提供商插件在插件宿主中拥有完整权限,能看到经过它的请求内容;中间件能读取并修改所有请求与回复。只安装你信任的插件。`,"plugins.job.title":`插件任务`,"plugins.job.running":`正在处理 {target}…`,"plugins.job.done":`{target} 已完成`,"plugins.job.failed":`{target} 失败`,"plugins.job.failedTitle":`没能完成`,"plugins.searchPlaceholder":`搜索 npm 与 GitHub 上的插件…`,"plugins.searchResults":`搜索结果`,"plugins.noResults":`没有找到插件`,"plugins.marketNote":`插件市场来自 magpie-community/plugins 的社区清单。`,"plugins.bunDetail":`提供商插件运行在 Bun 上。Astra 会在第一次需要时下载固定版本的 Bun 并校验其 SHA-256;中间件与客户端插件不需要 Bun。`,"plugins.bunPath":`位置`,"plugins.bunMissing":`尚未下载`,"plugins.bunVersion":`版本`,"plugins.bunTarget":`构建`,"plugins.bunNoBuild":`这台机器没有可用的 Bun 构建`,"plugins.bunFailed":`下载 Bun 失败`,"plugins.bunDownload":`下载 Bun {version}`,"plugins.bunDownloading":`正在下载…`,"plugins.host":`插件宿主`,"plugins.hostDetail":`提供商插件在一个独立的 Bun 进程(magpie 的 host.js)中运行,插件或代理改变时自动重启。`,"plugins.hostState":`状态`,"plugins.hostRunning":`运行中`,"plugins.hostStopped":`未运行(需要时启动)`,"plugins.hostStartFailed":`启动失败`,"plugins.hostGone":`宿主已退出`,"plugins.hostPluginError":`没能加载:{error}`,"pluginAccounts.noPlugin":`插件不可用`,"pluginAccounts.apiKey":`API 密钥`,"pluginAccounts.browser":`浏览器登录`,"pluginAccounts.empty":`还没有登录账号`,"pluginAccounts.emptyDetail":`用上面的方式登录,登录信息由插件保存。`,"pluginAccounts.current":`当前`,"pluginAccounts.active":`可用`,"pluginAccounts.lapsed":`需重新登录`,"pluginAccounts.lapsedDetail":`供应商拒绝了这个账号的登录,请重新登录。`,"pluginAccounts.usage":`额度`,"pluginAccounts.signOut":`退出登录`,"pluginAccounts.signOutConfirm":`退出 {name} 的登录?`,"pluginAccounts.plan":`套餐`,"pluginAccounts.until":`到期`,"pluginAccounts.resets":`{at} 重置`,"pluginAccounts.signedIn":`已登录`,"pluginAccounts.signInTitle":`登录 {name}`,"pluginAccounts.continue":`继续`,"pluginAccounts.key":`密钥`,"pluginAccounts.signIn":`登录`,"pluginAccounts.openPage":`打开登录页面`,"pluginAccounts.openAgain":`再次打开登录页面`,"pluginAccounts.deviceCode":`确认码`,"pluginAccounts.code":`页面显示的代码`,"pluginAccounts.waiting":`在浏览器中完成登录后,这里会自动继续。`,"pluginAccounts.failed":`登录失败`,"pluginAccounts.checkin":`每日签到`,"pluginAccounts.checkinOn":`自动签到`,"pluginAccounts.checkinNow":`立即签到`,"pluginAccounts.checkinDetail":`插件会按北京时间每天为每个可用账号签到一次;失败的会在 30 分钟后重试。Astra 不会处理验证码。`,"pluginAccounts.checkinNever":`今天还没有签到`,"pluginAccounts.credit":`+{credit}`,"pluginAccounts.streak":`连续 {days} 天`,"pluginAccounts.outcome.claimed":`已签到`,"pluginAccounts.outcome.done":`今天已签过`,"pluginAccounts.outcome.ineligible":`不符合条件`,"pluginAccounts.outcome.inactive":`现在没有签到活动`,"pluginAccounts.outcome.captcha":`需要验证码,请在它自己的应用里签到`,"pluginAccounts.outcome.failed":`失败`,"plugins.browseMarket":`浏览插件市场`,"plugins.off":`插件已在服务端关闭`,"plugins.hostRecent":`插件最近的提示`,"plugins.offDetail":`服务以 ASTRA_PLUGINS=off 启动:已安装的插件都不运行,也不能安装新插件。去掉这个环境变量并重启即可恢复。`,"plugins.bunReady":`已就绪`,"plugins.kind.all":`全部`,"plugins.kindFilter":`按类型筛选`,"plugins.magpie.banner":`这台电脑上的 magpie 装有 {count} 个 Astra 还没有的插件。`,"plugins.magpie.import":`从 magpie 导入`,"plugins.magpie.off":`已停用`,"plugins.magpie.signIns":`同时复制 {count} 个登录信息`,"plugins.magpie.title":`从 magpie 导入插件`,"plugins.magpie.signInsDetail":`把 magpie 的 plugin-auth.json 中的插件登录复制到 Astra(两者都以明文保存);Astra 已有的同名账号保持不变,magpie 的文件不会被修改。`,"plugins.openProviders":`在「提供商」中登录`,"plugins.searchNote":`搜索结果来自 npm 与 GitHub 的 magpie-plugin 主题,未经审核,安装前请确认来源可信。`},tg={"common.cancel":`Cancel`,"common.confirm":`OK`,"common.close":`Close`,"common.save":`Save`,"common.saved":`Saved`,"common.revert":`Revert`,"common.apply":`Apply`,"common.delete":`Delete`,"common.edit":`Edit`,"common.add":`Add`,"common.create":`Create`,"common.back":`Back`,"common.done":`Done`,"common.more":`More`,"common.copy":`Copy`,"common.copied":`Copied to clipboard`,"common.refresh":`Refresh`,"common.enabled":`Enabled`,"common.yes":`Yes`,"common.no":`No`,"common.prev":`Previous page`,"common.next":`Next page`,"common.noData":`No data`,"common.selectAll":`Select all`,"common.unsaved":`Unsaved changes`,"common.invalidJson":`Invalid JSON`,"common.search":`Search`,"common.clearSearch":`Clear search`,"common.select":`Select an option`,"common.noResults":`No matches`,"common.error":`Something went wrong`,"pricing.tierMode":`Billing mode`,"pricing.outputPolicy":`Output price`,"pricing.editMode":`Editing mode`,"pricing.days":`Days`,"models.sync.change":`Change`,"models.sync.changeOne":`change`,"models.sync.changeOther":`changes`,"common.continue":`Continue`,"providers.step.template":`Choose a template`,"providers.step.details":`Enter details`,"clients.current":`Current provider`,"common.deleting":`Deleting`,"common.deleted":`Deleted`,"common.retry":`Retry`,"providers.modelIds":`Model IDs`,"nav.overview":`Overview`,"nav.requests":`Requests`,"nav.clients":`Clients`,"nav.providers":`Providers`,"nav.models":`Models`,"nav.settings":`Settings`,"nav.privacy":`Privacy guard`,"nav.tokens":`Tokens`,"nav.group.config":`Configuration`,"nav.group.system":`System`,"shell.running":`Service running`,"shell.connecting":`Connecting…`,"shell.disconnected":`Not connected`,"shell.startService":`Start service`,"shell.startFailed":`Failed to start the service`,"shell.collapseSidebar":`Collapse sidebar`,"shell.expandSidebar":`Expand sidebar`,"banner.downDesktop":`Cannot reach the Astra service. Start it here or from the menu bar icon.`,"banner.downWeb":"Cannot reach the Astra service. Reconnecting… (run `astra start` in a terminal)","banner.mismatch":"The server API version does not match this UI. Run `astra update` and restart.","banner.clientsOutdated":`{names} still use an old Astra address or setting (for example, Astra moved to another port). Update them to reconnect.`,"banner.clientsUpdate":`Update now`,"banner.clientsUpdated":`Updated {names}; some clients need a restart to pick it up`,"login.subtitle":`This server is reachable remotely. Enter the admin password.`,"login.password":`Admin password`,"login.submit":`Sign in`,"range.today":`Today`,"range.7d":`7 days`,"range.30d":`30 days`,"range.90d":`90 days`,"range.all":`All time`,"overview.cost":`Cost`,"overview.requests":`Requests`,"overview.successRate":`Success rate`,"overview.tokens":`Tokens`,"overview.avgTtft":`Avg TTFT`,"overview.costTrend":`Cost trend`,"overview.range":`Time range`,"overview.measure":`Measure`,"overview.trend":`Trend`,"overview.tokensContext":`{input} in · {output} out`,"overview.hourlyAverage":`Hourly average`,"overview.dailyAverage":`Daily average`,"overview.total":`Total`,"overview.hour":`Hour`,"overview.day":`Day`,"overview.by.model":`Model`,"overview.by.provider":`Provider`,"overview.by.client":`Client`,"overview.by.token":`Token`,"overview.other":`Other`,"overview.topModels":`Top models by cost`,"overview.topModelDetail":`{requests} requests · {tokens} tokens`,"overview.empty.title":`No requests yet`,"overview.empty.detail":`Enable a client under Clients, or point any OpenAI / Anthropic / Gemini compatible tool at the gateway address below.`,"overview.clientFilter":`Filter by client`,"overview.allClients":`All`,"overview.tokenFilter":`Filter by token`,"overview.allTokens":`All tokens`,"overview.clientEmpty.title":`No requests from {client}`,"overview.clientEmpty.detail":`This client sent no requests in the selected period ({range}). Pick another client or time range.`,"overview.tokenEmpty.title":`No requests with {token}`,"overview.tokenEmpty.detail":`No request used this token in the selected period ({range}). Pick another token or time range.`,"overview.totalCost":`Total cost`,"overview.totalRequests":`Total requests`,"overview.usageTrend":`Usage trend`,"overview.breakdown":`Breakdown`,"overview.viewAll":`View all`,"overview.col.input":`Input`,"overview.col.output":`Output`,"overview.col.cacheHit":`Cache hit`,"overview.col.speed":`Speed`,"overview.col.share":`Share`,"overview.activity":`Activity`,"overview.activitySummary":`{from} ~ {to} · {active} / {days} days active`,"overview.activityPeak":`{count}/day at most`,"overview.activityUnit":`requests`,"overview.activityNone":`no activity`,"overview.activityLegend.less":`Less`,"overview.activityLegend.more":`More`,"requests.total":`{count} total`,"requests.totalCost":`Total spend`,"requests.totalCost.hint":`Summed cost of every request matching the active filters, across all pages; in-flight requests count once they finish.`,"requests.rate.rpm":`RPM`,"requests.rate.tpm":`TPM`,"requests.rate.hint":`Requests (RPM), tokens (TPM, completed requests only) and the cache-hit ratio per minute over the last {window}s; follows the active filters, refreshes every 5s.`,"requests.elapsed":`Waiting (no first token yet)`,"requests.searchModel":`Search model IDs (keyword)`,"requests.noFilters":`No filters applied`,"requests.clearFilters":`Clear filters`,"requests.backToFilters":`Back to filter fields`,"requests.removeFilter":`Remove filter: {filter}`,"requests.filterAdded":`Added filter: {filter}`,"requests.filterChanged":`Changed filter: {filter}`,"requests.filterRemoved":`Removed filter: {filter}`,"requests.filtersCleared":`All filters cleared`,"requests.filteredEmpty":`No matching requests`,"requests.filteredEmpty.detail":`Try another model keyword or clear the filters.`,"requests.returnedModel":`Returned: {model}`,"requests.modelMatch":`Match`,"requests.modelMismatch":`Mismatch`,"requests.modelComparison":`Requested: {requested}; sent upstream: {upstream}; API returned: {returned}`,"requests.modelNotRecorded":`Not recorded`,"requests.modelNotRecorded.hint":`An older log or the API omitted the model ID; the requested model is not used as a substitute.`,"requests.allClients":`All clients`,"requests.allTokens":`All tokens`,"requests.col.token":`Token`,"requests.detail.account":`Subscription account`,"requests.direct":`Direct`,"requests.allProviders":`All providers`,"requests.allStatus":`Any status`,"requests.col.time":`Time`,"requests.col.client":`Client`,"requests.col.model":`Model`,"requests.col.provider":`Provider`,"requests.col.status":`Status`,"requests.col.tokens":`In/Out`,"requests.col.cost":`Cost`,"requests.empty":`No requests`,"requests.empty.detail":`Every request through Astra is logged here with per-token-type billing details.`,"requests.page":`Page {page} of {pages}`,"requests.filters":`Active filters`,"requests.addFilter":`Add filter`,"requests.openDetail":`Open request details for {model}`,"requests.viewError":`Click to view the error`,"requests.detail.title":`Request details`,"requests.detail.summary":`Summary`,"requests.detail.protocol":`Protocol`,"requests.detail.requestedModel":`Requested model`,"requests.detail.upstreamModel":`Sent upstream model`,"requests.detail.responseModel":`API returned model`,"requests.detail.systemModel":`System model`,"requests.detail.stream":`Streaming`,"requests.detail.upstreamId":`Upstream request ID`,"requests.detail.timing":`Timing`,"requests.detail.generation":`Generation`,"requests.detail.total":`Total`,"requests.detail.tps":`Output speed`,"requests.detail.error":`Error`,"requests.detail.privacy":`Privacy guard`,"requests.detail.privacyBlocked":`Request blocked`,"requests.detail.privacyDryRun":`Dry run (not enforced)`,"requests.detail.privacyRedacted":`Redacted {count} place(s)`,"requests.detail.billing":`Billing`,"requests.detail.usageMissing":`The upstream returned no usage; this request was billed as 0.`,"requests.detail.usageRaw":`Raw usage`,"requests.detail.pricingSnapshot":`Pricing snapshot`,"requests.body.clientRequest":`Client request body`,"requests.body.upstreamRequest":`Upstream request body`,"requests.body.upstreamRequestHeaders":`Upstream request headers (as sent to the provider, credentials redacted)`,"requests.body.upstreamResponse":`Upstream response body`,"requests.body.clientResponse":`Response sent to client`,"requests.reasoning":`Reasoning`,"requests.reasoning.notRecorded":`Not recorded`,"requests.reasoning.budget":`budget {tokens}`,"requests.reasoning.hint":`Reasoning settings the client explicitly sent; “Not recorded” means unset or an older log — never inferred from budgets or provider defaults.`,"requests.detail.reasoning":`Reasoning`,"status.success":`Success`,"status.blocked":`Blocked`,"status.upstream_error":`Upstream error`,"status.gateway_error":`Gateway error`,"status.client_cancelled":`Cancelled`,"status.pending":`In progress`,"billing.unpriced":`No price configured`,"billing.type":`Type`,"billing.tokens":`Amount`,"billing.unitPrice":`Unit /1M`,"billing.tier":`Tier`,"billing.cost":`Cost`,"pricingSource.override":`Provider custom price`,"pricingSource.provider":`Provider price · {key}`,"pricingSource.default":`Official default`,"pricingSource.none":`No price`,"simulator.official":`Official default price`,"simulator.serviceTier":`service_tier`,"simulator.time":`Request time (for time-of-day pricing)`,"simulator.run":`Calculate`,"pricing.none":`No pricing configured`,"pricing.add":`Add pricing`,"pricing.remove":`Remove pricing`,"pricing.mode.form":`Form`,"pricing.unit":`USD / 1M tokens`,"pricing.base":`Base prices`,"pricing.perRequest":`Per request`,"pricing.notes":`Notes`,"pricing.name":`Name`,"pricing.contextTiers":`Context tiers`,"pricing.contextTiers.hint":`Switch prices once input tokens exceed a threshold (e.g. Claude >200K).`,"pricing.addTier":`Add tier`,"pricing.threshold":`Threshold`,"pricing.mode.whole":`Whole request`,"pricing.mode.progressive":`Progressive`,"pricing.output.highest":`Output at highest tier`,"pricing.output.base":`Output at base price`,"pricing.timeWindows":`Time windows`,"pricing.timeWindows.hint":`Adjust prices by timezone and time of day (e.g. DeepSeek off-peak); holidays can be excluded.`,"pricing.addWindow":`Add window`,"pricing.excludeDates":`Exclude dates yyyy-MM-dd, …`,"pricing.serviceTiers":`Service tiers`,"pricing.serviceTiers.hint":`Adjust prices by service_tier (flex / priority).`,"pricing.addServiceTier":`Add tier`,"pricing.hasOwnPrices":`Has own prices (edit as JSON)`,"pricing.ruleNameTaken":`This service tier name already exists`,"pricing.timezone":`Timezone`,"pricing.invalidTimezone":`Enter a valid IANA timezone`,"pricing.start":`Start time`,"pricing.end":`End time`,"pricing.multiplier":`Multiplier`,"clients.subtitle":`Route the AI clients on this machine through Astra`,"clients.comingSoon":`Coming soon`,"clients.comingSoonDetail":`The configuration format for this client is not confirmed yet`,"clients.drifted":`Config changed`,"clients.enabled":`Enabled`,"clients.disabled":`Not enabled`,"clients.detected":`Detected {version}`,"clients.notDetected":`Not detected`,"clients.group.installed":`Installed`,"clients.group.notInstalled":`Not detected`,"clients.group.comingSoon":`Coming soon`,"clients.checkUpdates":`Check for updates`,"clients.updatesFound":`{count} client update(s) available`,"clients.allUpToDate":`All clients are up to date`,"clients.updateBadge":`Update`,"clients.shadowedBadge":`Fix PATH`,"clients.updateTo":`Update to {version}`,"clients.install":`Install`,"clients.download":`Download`,"clients.installRunning":`In progress…`,"clients.versionTitle":`Version and updates`,"clients.currentVersion":`Installed version`,"clients.latestVersion":`Latest version`,"clients.versionUnknown":`Unknown version`,"clients.notInstalled":`Not installed`,"clients.latestUnknown":`Not checked`,"clients.checkedAt":`Checked {time}`,"clients.installMethod":`Installed with`,"clients.method.npm":`Global npm package {package}`,"clients.method.vscode-extension":`VS Code extension {package}`,"clients.method.script":`Official vendor install script`,"clients.method.manual":`Download from the official site`,"clients.homepage":`Website`,"clients.blocker.npm-missing":`npm was not found. Install Node.js (it ships npm), then come back to install.`,"clients.blocker.vscode-missing":`VS Code's code command was not found. Install VS Code first.`,"clients.blocker.script-missing":`No install script for this system; install it from the official site.`,"clients.blocker.external-install":`{path} was not installed with npm. Update it the way you installed it.`,"clients.blocker.shadowed":`The latest version is already installed elsewhere; updating again won't change what the terminal runs. Fix PATH as described above.`,"clients.installLog":`Install log`,"clients.noInstallLog":`No install runs yet`,"clients.job.running":`Running…`,"clients.job.succeeded":`Finished`,"clients.job.failed":`Failed`,"clients.job.cancelled":`Stopped`,"clients.hint.permission-denied":`npm can't write to its global directory (usually because something was installed with sudo before, so the directory belongs to the administrator).`,"clients.hint.admin-cancelled":`Administrator authorization was cancelled. Nothing was changed.`,"clients.hint.shadowed":`The new version went to another location; the terminal still runs the old copy. See the log below for where.`,"clients.hint.unchanged":`The command succeeded, but the version did not change.`,"clients.hint.not-on-path":`The installed command is not on the terminal's PATH, so the terminal can't run it directly. See the log below for where.`,"clients.job.notEffective":`Finished, but not in effect`,"clients.notEffectiveToast":`{name}: the command succeeded but didn't take effect. Check the install log.`,"clients.otherCopy":`Other copy`,"clients.otherCopyNewer":`Newer`,"clients.shadowed.title":`Version {version} is installed, but the terminal does not use it`,"clients.shadowed.detail":`The terminal runs {path} ({version}); the newer copy at {other} comes later on PATH or isn't on it. Put {dir} first on PATH, or remove the old copy, to use the new version.`,"clients.notOnPath.title":`Not on the terminal's PATH`,"clients.notOnPath.detail":`This client is installed in {dir}, which is not on the terminal's PATH. Add it to PATH (e.g. in ~/.zshrc) to run it from a terminal.`,"clients.admin.badge":`Admin required`,"clients.admin.tip":`npm's global directory belongs to the administrator. macOS will ask for your login password.`,"clients.admin.tipManual":`npm's global directory belongs to the administrator. Run it with sudo in a terminal.`,"clients.admin.title":`Administrator rights needed`,"clients.admin.prompt":`npm's global directory belongs to the administrator. After you click “Authorize and start”, the system asks for your login password (or Touch ID); Astra never sees it.`,"clients.admin.manual":`npm's global directory belongs to the administrator and no authorization prompt is available here. Copy the command below and run it in a terminal.`,"clients.admin.start":`Authorize and start`,"clients.admin.copyCommand":`Copy command`,"clients.admin.retry":`Retry as administrator`,"clients.admin.retryHint":` Click “Retry as administrator” to get the system authorization prompt.`,"clients.admin.running":`Running as administrator. The output appears when the command ends, and it cannot be stopped midway.`,"clients.admin.fixTip":`To stop needing administrator rights for installs and updates, run this once in a terminal to give npm’s global directory back to your user:`,"clients.hint.timeout":`Stopped after 15 minutes without finishing.`,"clients.installTitle":`Install {name}`,"clients.updateTitle":`Update {name}`,"clients.installRunDetail":`Astra will run this command on this machine and show its output here.`,"clients.installStart":`Start`,"clients.installStop":`Stop`,"clients.installUnavailable":`This action is not available right now`,"clients.installNpmNote":`A global install writes to npm's global directory. Closing this window does not stop it.`,"clients.installedToast":`{name} installed`,"clients.updatedToast":`{name} updated`,"clients.enable":`Enable…`,"clients.disable":`Disable`,"clients.disableRestore":`Disable & restore`,"clients.pickProviderFirst":`Pick a provider below first`,"clients.appliedAt":`Config written {time}`,"clients.bound":`Switched to {provider}; effective immediately`,"clients.boundModelsSynced":`Switched to {provider} and updated the model list in the {client} config`,"clients.disableConfirm":`Disable {name}?`,"clients.disableDetail":`The entries Astra wrote are reverted to their state before enabling.`,"clients.disabledToast":`{name} disabled and config restored`,"clients.driftTitle":`Some settings were edited by hand`,"clients.driftDetail":`These entries changed after enabling and were not restored: {keys}. Force restore?`,"clients.forceRestore":`Force restore`,"clients.providerTitle":`Provider`,"clients.providerFooter":`Add several providers and drag to order them: a request goes to the first provider that offers its model (exact model ID match, or the provider's model mapping), else to the first one. Changes take effect immediately, and the client's model list includes every provider's models.`,"clients.primaryProvider":`Primary`,"clients.dragToReorder":`Drag to reorder {provider}`,"clients.removeProvider":`Remove {provider}`,"clients.providerDisabledBadge":`Disabled`,"clients.moreProvidersTitle":`Available providers`,"clients.providerAdded":`Added {provider}; effective immediately`,"clients.providerRemoved":`Removed {provider}`,"clients.providerOrderSaved":`Provider order updated; effective immediately`,"clients.providersModelsSynced":`Providers updated and the model list in the {client} config synced`,"clients.accountTitle":`Subscription account`,"clients.accountFooter":`Pin a specific account to attribute usage; leave empty for the provider default.`,"clients.account":`Account`,"clients.accountDefault":`Default account`,"clients.noProviders":`No providers yet`,"clients.noProvidersDetail":`Add an AI provider first, then choose it for this client.`,"clients.modelTitle":`Model`,"clients.modelFooter":`Default model written to the client config when enabling; leave unset to keep the client default.`,"clients.modelFooterEnabled":`Changing the default model rewrites the client config.`,"clients.modelSlotsFooter":`A chosen model is written into the Claude Code config (default model ANTHROPIC_MODEL, tiers ANTHROPIC_DEFAULT_*_MODEL); a slot left empty is never written, and an existing setting of the same name in the file is left alone.`,"clients.modelSlotsFooterEnabled":`Changing a model rewrites the client config.`,"clients.options.title":`Client options`,"clients.options.footer":`These apply to this client only: options written to the client config are written when you enable it, and gateway options are handled by Astra when forwarding this client's requests.`,"clients.options.footerEnabled":`Changes need to be applied again.`,"clients.options.unset":`Not set`,"clients.option.context1m":`1M context`,"clients.option.context1m.hint":`Appends [1m] to Claude Code's model names (not the Haiku tier, nor models known to have a smaller window). The upstream must support 1M context.`,"clients.option.cacheTtl":`Cache TTL`,"clients.option.cacheTtl.hint":`Fills in a 5-minute or 1-hour ttl on the cache_control blocks the client already sends; never adds or removes breakpoints. 1-hour writes cost more and suit long sessions.`,"clients.option.maxThinkingTokens":`Max thinking tokens`,"clients.option.maxThinkingTokens.hint":`Writes MAX_THINKING_TOKENS; leave empty to not set it.`,"clients.option.disablePromptCaching":`Disable prompt caching`,"clients.option.disablePromptCaching.hint":`Writes DISABLE_PROMPT_CACHING=1 so the client stops sending cache breakpoints.`,"clients.option.contextWindow":`Context window`,"clients.option.contextWindow.hint":`Writes model_context_window; leave empty to use Codex's default.`,"clients.option.autoCompactTokenLimit":`Auto-compact threshold`,"clients.option.autoCompactTokenLimit.hint":`Writes model_auto_compact_token_limit, the size at which the session is compacted; leave empty to not set it.`,"clients.option.reasoningEffort":`Reasoning effort`,"clients.option.reasoningEffort.hint":`Writes model_reasoning_effort; Default leaves it unset.`,"clients.optionChoice.default":`Default`,"clients.optionChoice.5m":`5 minutes`,"clients.optionChoice.1h":`1 hour`,"clients.optionChoice.minimal":`Minimal`,"clients.optionChoice.low":`Low`,"clients.optionChoice.medium":`Medium`,"clients.optionChoice.high":`High`,"clients.modelSlot.ANTHROPIC_MODEL":`Default model`,"clients.modelSlot.ANTHROPIC_DEFAULT_OPUS_MODEL":`Opus tier`,"clients.modelSlot.ANTHROPIC_DEFAULT_SONNET_MODEL":`Sonnet tier`,"clients.modelSlot.ANTHROPIC_DEFAULT_HAIKU_MODEL":`Haiku tier (fast/background)`,"clients.defaultModel":`Default model`,"clients.modelPlaceholder":`Choose a model`,"clients.modelUnset":`Not set`,"clients.roleMapTitle":`Role mapping`,"clients.roleMapFooter":`Claude Desktop only accepts role models such as Sonnet, Opus and Haiku; Astra swaps them for the provider models chosen here. Set at least one; unset roles use the first one that is set.`,"clients.roleMapFooterEnabled":`The mapping takes effect in the gateway right away once you apply it.`,"clients.roleMapRequired":`Choose a model for at least one role`,"clients.role.sonnet":`Sonnet`,"clients.role.opus":`Opus`,"clients.role.haiku":`Haiku`,"clients.maintenance":`Maintenance`,"clients.openConfigDir":`Open config folder`,"clients.copyConfigPath":`Copy config file path`,"clients.backups":`Config backups`,"clients.backupsDetail":`Taken automatically before every change; restore any time.`,"clients.noBackups":`No backups yet`,"clients.firstWrite":`Before first change`,"clients.restore":`Restore`,"clients.restoreConfirm":`Overwrite the current config with this backup?`,"clients.restored":`Restored from backup`,"clients.tokenTitle":`Token`,"clients.token":`Token written to the config`,"clients.tokenFooter":`Enabling writes "token.client" into the client config; usage is counted per token. Several clients can share one token.`,"clients.tokenFooterEnabled":`Changing the token rewrites the client config.`,"clients.tokenDisabled":`{name} (disabled)`,"clients.manageTokens":`Manage tokens`,"clients.claudeDirect.configure":`Direct settings`,"clients.claudeDirect.modeTitle":`Connection (Astra launcher)`,"clients.claudeDirect.mode":`Connection`,"clients.claudeDirect.gateway":`Gateway`,"clients.claudeDirect.direct":`Official direct`,"clients.claudeDirect.gatewayDetail":`Use the existing gateway configuration. Once enabled, default Claude Code requests go through Astra. astra claude is only for direct mode.`,"clients.claudeDirect.directDetail":`Talk to Anthropic directly with the Claude subscription account selected below, not through the gateway.`,"clients.claudeDirect.modeNote":`This affects only the Astra launcher's own sessions; running claude directly still uses your default configuration.`,"clients.claudeDirect.modeFooter":`Switching only changes how you launch it. Running sessions are never switched live, and your default ~/.claude configuration is not modified.`,"clients.claudeDirect.loadFailed":`Could not read the direct settings`,"clients.claudeDirect.gatewayOnTitle":`Gateway take-over is on — direct would be overridden`,"clients.claudeDirect.gatewayOnDetail":`Astra currently takes this client over, so direct would be written straight back to the gateway configuration. To really go direct, use "Disable & restore" above first, then switch.`,"clients.claudeDirect.noAccount":`No Claude subscription account yet`,"clients.claudeDirect.noAccountDetail":`Direct uses the accounts already signed in under the "Claude subscription (Pro/Max)" provider; sign one in under Providers, then pick it here.`,"clients.claudeDirect.goProviders":`Sign in under Providers`,"clients.claudeDirect.needAccountToast":`Sign in a Claude subscription account under Providers first`,"clients.claudeDirect.accountsTitle":`Subscription account`,"clients.claudeDirect.accountsFooter":`Direct talks to Anthropic with this account's short-lived token, not through the gateway. The token stays on this machine: it is never written into the command or a client config.`,"clients.claudeDirect.account":`Account to use`,"clients.claudeDirect.accountDisabledSuffix":`{status} (disabled)`,"clients.claudeDirect.launchTitle":`Launch`,"clients.claudeDirect.launchNote":`Needs a recent Astra CLI on this machine (npm i -g astragate). The command launches the official Claude Code with the selected subscription account, talking to Anthropic directly, not through the gateway; Astra hands it only a short-lived token, the refresh token stays in Astra. Running claude directly still uses your own configuration. Once the token expires, run the command again — it cannot be renewed mid-session. With a token from the environment, features of the official client that rely on the claude.ai sign-in (connectors, /schedule, …) are unavailable.`,"clients.claudeDirect.statsTitle":`Local statistics`,"clients.claudeDirect.statsConsent":`Collect local statistics`,"clients.claudeDirect.statsConsentDetail":`Off by default. When on, Claude Code reports usage to the local Astra itself: model, time, token counts and its own cost estimate — no message bodies, prompts or tool content.`,"clients.claudeDirect.statsFooter":`Astra stores statistics locally under the request-log retention setting. Disabling stops ingestion immediately; running sessions may keep trying to export until restarted. Estimates are not subscription charges. Organization policies may override client settings; gateway blocking and redaction do not apply to direct traffic.`,"clients.claudeDirect.statsEmpty":`No statistics yet`,"clients.claudeDirect.statsEmptyDetail":`After turning statistics on, start a session with the command above; data shows up here within seconds.`,"clients.claudeDirect.statsFailed":`Could not read the statistics`,"clients.claudeDirect.statsTotals":`Latest {count}`,"clients.claudeDirect.statsInDetail":`Total input (cache read {cache}): {input} · total output: {output}`,"clients.claudeDirect.statsCost":`Estimated cost`,"clients.claudeDirect.statsCostDetail":`The client's own estimate, not what your subscription is actually billed.`,"clients.claudeDirect.statsFailedCount":`{count} of them failed`,"clients.claudeDirect.statusError":`Failed`,"clients.claudeDirect.tokensDetail":`In {input} / Out {output}`,"tokens.subtitle":`Clients and direct calls reach Astra with a token; usage is counted per token`,"tokens.add":`New token`,"tokens.default":`Default`,"tokens.disabledBadge":`Disabled`,"tokens.copy":`Copy token`,"tokens.copied":`Token copied`,"tokens.clients":`Used by`,"tokens.noClients":`No client uses it yet`,"tokens.directProvider":`Direct-call provider`,"tokens.directNone":`Direct calls not allowed`,"tokens.directAccount":`Direct-call subscription account`,"tokens.directHint":`Point any other tool at {url} with this token to call Astra directly; requests go to the direct-call provider.`,"tokens.today":`Today`,"tokens.total":`Lifetime`,"tokens.cost":`Cost`,"tokens.requests":`Requests`,"tokens.cacheHit":`Cache hit rate`,"tokens.tps":`TPS`,"tokens.tpsContext":`Weighted output speed`,"tokens.tokens":`Tokens`,"tokens.inOut":`In / Out`,"tokens.details":`Show details`,"tokens.requestsContext":`{count} requests`,"tokens.lastUsedTitle":`Last used`,"tokens.neverUsed":`Never used`,"tokens.settings":`Settings`,"tokens.name":`Name`,"tokens.namePlaceholder":`e.g. Work laptop`,"tokens.enable":`Enable`,"tokens.disable":`Disable`,"tokens.disableConfirm":`Disable {name}?`,"tokens.disableDetail":`Clients and direct calls using this token are rejected until it is enabled again. Client configs are not changed.`,"tokens.reset":`Reset key`,"tokens.resetConfirm":`Reset the key of {name}?`,"tokens.resetDetail":`The old key stops working immediately. Enabled clients using this token get their config rewritten; configs edited by hand are skipped and need to be re-enabled.`,"tokens.resetDone":`Key reset; {count} client configs rewritten`,"tokens.skipped":`These clients could not be updated and need to be re-enabled on the Clients page: {clients}`,"tokens.delete":`Delete token`,"tokens.deleteConfirm":`Delete {name}?`,"tokens.deleteDetail":`Its clients switch to the default token and get their config rewritten. The request log keeps the token name.`,"tokens.deleted":`Deleted {name}`,"tokens.created":`Created {name}`,"tokens.createTitle":`New token`,"tokens.settingsTitle":`Token settings · {name}`,"tokens.empty":`No tokens yet`,"clients.enableTitle":`Enable {name}`,"clients.enableDetail":`These are the edits Astra will make. It only adds or changes its own entries and backs up the original file first.`,"clients.enabledToast":`{name} enabled`,"clients.enabledRestart":`{name} enabled — restart the client to apply`,"clients.noChanges":`The config is already up to date.`,"providers.add":`Add provider`,"providers.count":`{count} providers`,"providers.empty":`No providers yet`,"providers.emptyDetail":`Add OpenAI, Anthropic, DeepSeek, OpenRouter and more from built-in templates, or any compatible endpoint.`,"providers.import":`Import from other apps`,"import.title":`Import providers from other apps`,"import.detail":`Read-only scan of the local configuration of CC Switch, Alma, Claude Code, Codex and Magpie. Nothing there is modified; API keys are read and encrypted by the server and never pass through the browser.`,"import.search":`Search by name or address`,"import.path":`Read from: {path}`,"import.notFound":`Not found`,"import.sourceError":`Could not be read: {error}`,"import.noItems":`No providers to import`,"import.noMatch":`No matching providers`,"import.scanning":`Scanning…`,"import.status.new":`New`,"import.status.same":`Already added`,"import.status.sameHost":`Same address`,"import.status.off":`Disabled`,"import.status.skip":`Cannot import`,"import.existing":`Already added as "{name}"`,"import.sameHostHint":`"{name}" already uses this address; this will be imported as a new provider`,"import.noKey":`No key`,"import.models":`{count} models`,"import.template":`Template: {id}`,"import.ignored":`Will ignore: {fields}`,"import.skip.official-login":`Official login (tokens are bound to the source app)`,"import.skip.no-base-url":`No base URL`,"import.skip.unsupported-protocol":`Unsupported protocol`,"import.skip.points-to-astra":`Points at Astra itself`,"import.skip.invalid-base-url":`Invalid base URL`,"import.skip.no-inline-key":`Key comes from an environment variable and is not read`,"import.selected":`Import selected ({count})`,"import.done":`Imported {count} providers`,"import.doneSkipped":`Imported {count} providers, skipped {skipped}`,"import.footnote":`Routing, rate limits, balance queries, sessions and usage are not imported. Importing never changes any client configuration and makes no upstream requests.`,"import.rescan":`Rescan`,"providers.modelCount":`{count} models`,"providers.priceKeyShort":`Prices: {key}`,"providers.templateUpdate":`Template update`,"providers.noKey":`No API key`,"providers.card.active":`Active`,"providers.card.disabled":`Disabled`,"providers.card.subscription":`Subscription`,"providers.card.noAuth":`No key needed`,"providers.card.requests7d":`Requests, last 7 days`,"providers.card.noRequests":`No requests yet`,"providers.created":`Added {name}`,"providers.addTitle":`Choose a provider template`,"providers.addTitleDetails":`Provider details`,"providers.addDetail":`Templates include endpoints, protocols and a default model list.`,"providers.custom":`Custom provider`,"providers.customDetail":`Any OpenAI / Anthropic / Gemini compatible endpoint`,"providers.searchTemplates":`Search templates`,"providers.category.recommended":`Recommended`,"providers.category.official":`Official`,"providers.category.subscription":`Subscriptions`,"providers.category.cn":`China`,"providers.category.aggregator":`Aggregators`,"providers.category.local":`Local`,"providers.category.custom":`Other`,"providers.category.plugin":`Plugins`,"providers.pluginProvided":`From a plugin · open it to sign in`,"providers.pluginHint":`Install an OpenCode / magpie provider plugin and the providers it serves show up here.`,"providers.create":`Add`,"providers.name":`Name`,"providers.variant":`Region / edition`,"providers.variantDefault":`Default region`,"providers.baseUrl":`Base URL`,"providers.baseUrlHint":`Usually ends with /v1`,"providers.protocol":`Protocol`,"providers.authScheme":`Authentication`,"providers.apiKey":`API key`,"providers.apiKeyHint":`Stored encrypted on this machine`,"providers.subscriptionWizardHint":`No API key needed — sign in with your subscription`,"providers.subscriptionWizardDetail":`After creating the provider, click "Add account" on its Accounts tab and authorize in the browser. The vendor's terms and quotas apply.`,"providers.subscriptionAdded":`Added · add accounts inside the provider`,"providers.subscription.quotaSession":`5h used {percent}%`,"providers.subscription.quotaWeekly":`Weekly used {percent}%`,"providers.subscription.quotaCredits":`Credits used {percent}%`,"providers.subscription.quotaBalance":`Balance {balance}`,"providers.subscription.quotaRefresh":`Refresh quota`,"providers.subscription.quotaUnsupported":`Quota is not available for this subscription yet`,"providers.subscription.quotaResets":`resets {when}`,"providers.subscription.quotaLoading":`Fetching quota…`,"providers.subscription.quotaNoAccount":`Account is not usable — sign in again to see quota`,"providers.subscription.quotaWindowPremium":`Premium requests`,"providers.subscription.quotaPremiumCount":`{used} of {total} premium requests used`,"providers.subscription.quotaOverage":`{count} overage`,"providers.subscription.quotaOverageOff":`overage not enabled`,"providers.subscription.quotaFetchedAt":`updated {when}`,"providers.subscription.quotaNoWindows":`This account reports no quota windows`,"providers.subscription.quotaWindowSession":`Session window`,"providers.subscription.quotaWindowWeekly":`Weekly window`,"providers.subscription.quotaWindowCredits":`Credits`,"providers.quota.title":`Usage query`,"providers.quota.footer":`Queries this provider's balance or plan usage with a template; results appear on the provider card and in the tray. A failed query only shows an error and never affects the provider itself.`,"providers.quota.enable":`Enable usage query`,"providers.quota.enableHint":`Refreshed in the background once enabled`,"providers.quota.template":`Template`,"providers.quota.templateAuto":`Automatic ({name})`,"providers.quota.templateNone":`Automatic (no matching template)`,"providers.quota.custom":`Custom`,"providers.quota.kind.balance":`Balance`,"providers.quota.kind.plan":`Plan usage`,"providers.quota.param.userId":`User ID`,"providers.quota.param.accessToken":`System access token`,"providers.quota.paramsHint":`The system access token and user ID generated in New API / One API personal settings — not the sk- API key.`,"providers.quota.secretStored":`Saved — leave empty to keep`,"providers.quota.interval":`Auto refresh (minutes)`,"providers.quota.intervalHint":`Empty follows the global setting; 0 never refreshes in the background. Now: {value}`,"providers.quota.intervalEvery":`every {minutes} min`,"providers.quota.intervalOff":`no background refresh`,"providers.quota.timeout":`Timeout (seconds)`,"providers.quota.baseUrl":`Query address`,"providers.quota.baseUrlHint":`Empty uses the provider endpoint ({{origin}} / {{baseUrl}} come from it)`,"providers.quota.method":`Method`,"providers.quota.url":`URL`,"providers.quota.urlHint":`Placeholders: {{origin}}, {{baseUrl}}, {{host}}, {{apiKey}} and the parameter names above`,"providers.quota.auth":`Authentication`,"providers.quota.auth.provider":`Use the provider API key`,"providers.quota.auth.none":`Only the headers below`,"providers.quota.headers":`Headers (JSON)`,"providers.quota.extract":`Extraction rules (JSON)`,"providers.quota.extractHint":`A string is a path into the response (e.g. data.balance), a number is a constant; an array takes the first value present; supports $const, $add, $sub, $mul, $div, $scale, $pctUsed, $eq, $not, $case, $var, $time. Missing fields are never treated as 0.`,"providers.quota.invalidJson":`{field} is not a valid JSON object`,"providers.quota.test":`Test query`,"providers.quota.testDesc":`Sends one real request with the current (unsaved) configuration`,"providers.quota.fetch":`Query now`,"providers.quota.refresh":`Refresh balance`,"providers.quota.fetchedAt":`Updated {time}`,"providers.quota.never":`Not queried yet`,"providers.quota.off":`Usage query is off`,"providers.quota.rawResponse":`Raw response (redacted)`,"providers.quota.requestUrl":`Request URL`,"providers.quota.httpStatus":`HTTP status`,"providers.quota.testOk":`Query succeeded`,"providers.quota.testFailed":`Query failed`,"providers.quota.extracted":`Extracted`,"providers.quota.balance":`Balance {amount}`,"providers.quota.usedPercent":`{percent}% used`,"providers.quota.window":`{window}: {percent}% used`,"providers.quota.totalUsed":`{used} used of {total}`,"providers.quota.resets":`resets {time}`,"providers.quota.invalid":`Account unavailable`,"providers.quota.failed":`Usage query failed: {error}`,"providers.quota.lastGood":`Showing the last successful result`,"providers.quota.error.config":`The query configuration is incomplete`,"providers.quota.error.no_key":`This provider has no API key`,"providers.quota.error.unauthorized":`The upstream refused the quota query (invalid credentials or no permission)`,"providers.quota.error.no_endpoint":`No quota endpoint at this address; pick another template or use a custom query`,"providers.quota.error.rate_limited":`Rate limited upstream; use a longer interval`,"providers.quota.error.upstream":`The upstream returned an error`,"providers.quota.error.timeout":`The query timed out`,"providers.quota.error.network":`Could not reach the upstream`,"providers.quota.error.not_json":`The response is not JSON`,"providers.quota.error.too_large":`The response is too large`,"providers.quota.error.empty":`The query succeeded but no quota field was found`,"settings.proxy":`Network proxy`,"settings.proxy.footer":`Gateway forwarding, subscription sign-in, quota queries, update checks and client installs all connect through this setting. Local addresses always connect directly; a provider with its own proxy uses that instead.`,"settings.proxy.mode":`Proxy`,"settings.proxy.mode.system":`System`,"settings.proxy.mode.custom":`Custom`,"settings.proxy.mode.direct":`None`,"settings.proxy.mode.system.hint":`HTTPS_PROXY-style environment variables first, then the operating system proxy`,"settings.proxy.mode.custom.hint":`All outbound requests use the proxy below`,"settings.proxy.mode.direct.hint":`Ignore environment variables and the system proxy; always connect directly`,"settings.proxy.url":`Proxy URL`,"settings.proxy.urlHint":`http, https or socks5, including the port`,"settings.proxy.username":`Username`,"settings.proxy.password":`Password`,"settings.proxy.optional":`Optional`,"settings.proxy.passwordSaved":`Saved; leave blank to keep it`,"settings.proxy.bypass":`Bypass for`,"settings.proxy.bypassHint":`Comma separated; subdomains match too`,"settings.proxy.saved":`Proxy settings saved`,"settings.quota":`Provider usage query`,"settings.quota.autoInterval":`Background refresh`,"settings.quota.autoIntervalHint":`Providers with the usage query enabled refresh their balance at this interval; 0 turns it off. A provider can set its own.`,"settings.minutes":`min`,"tray.quotaBalance":`Balance`,"providers.subscription.relogin":`Sign in again`,"providers.getKey":`Get an API key ↗`,"providers.priceKey":`Price table`,"providers.priceKeyHint":`Which provider's model prices apply; the same model costs differently at different providers.`,"providers.priceKeyNone":`Official default prices only`,"providers.priceKeyDefault":`Default ({id})`,"providers.templateModels":`The template's {count} models will be added; you can change them later.`,"providers.tab.models":`Models`,"providers.tab.settings":`Settings`,"providers.tab.accounts":`Accounts`,"providers.tab.apiKey":`API key`,"providers.test":`Test`,"providers.testDialog.title":`Test {name}`,"providers.testDialog.subtitle":`Applies the privacy policy and logs the request; never retried`,"providers.testDialog.modeSingle":`Single model`,"providers.testDialog.modeBatch":`Batch`,"providers.testDialog.config":`Test configuration`,"providers.testDialog.model":`Test model`,"providers.testDialog.modelPlaceholder":`Type any model ID`,"providers.testDialog.showModels":`Show model list`,"providers.testDialog.protocol":`Test protocol`,"providers.testDialog.stream":`Streamed response`,"providers.testDialog.maxTokens":`Max output tokens`,"providers.testDialog.prompt":`Test prompt (optional)`,"providers.testDialog.promptHint":`The default prompt is used when left empty.`,"providers.testDialog.realRequest":`A real request; it may consume quota`,"providers.testDialog.savedCredentials":`Uses the connection and credentials saved for this provider.`,"providers.testDialog.start":`Start test`,"providers.testDialog.retest":`Test again`,"providers.testDialog.stop":`Stop`,"providers.testDialog.stopRest":`Stop the rest`,"providers.testDialog.testN":`Test {count} models`,"providers.testDialog.metrics.http":`HTTP response`,"providers.testDialog.metrics.firstWait":`First token wait`,"providers.testDialog.metrics.ttft":`First token total`,"providers.testDialog.metrics.total":`Total time`,"providers.testDialog.metricsHelp":`HTTP response: time to the upstream response headers. First token: time to the first piece of the answer. Wait is measured from the headers arriving, the total from the request being sent.`,"providers.testDialog.reply":`Provider reply`,"providers.testDialog.preview":`Preview`,"providers.testDialog.raw":`Raw`,"providers.testDialog.rawNote":`Response body as processed by the gateway (credentials redacted)`,"providers.testDialog.rawTruncated":`Truncated: the raw body was longer than 256 KiB`,"providers.testDialog.reasoning":`Reasoning`,"providers.testDialog.noText":`The upstream returned no text.`,"providers.testDialog.headers":`Response headers`,"providers.testDialog.headersCount":`{count} headers`,"providers.testDialog.headersEmpty":`The upstream returned no response headers.`,"providers.testDialog.emptyTitle":`No test yet`,"providers.testDialog.emptyDetail":`Start a test to send one real request to this provider.`,"providers.testDialog.status.idle":`Waiting for a test`,"providers.testDialog.status.running":`Testing`,"providers.testDialog.status.success":`Test succeeded`,"providers.testDialog.status.failed":`Test failed`,"providers.testDialog.selected":`Selected {n} / {total}`,"providers.testDialog.progress":`Finished {done} / {total} · {ok} succeeded · {failed} failed`,"providers.testDialog.progressDone":`This batch finished {total} / {total} · {ok} succeeded · {failed} failed`,"providers.testDialog.clearSelection":`Clear selection`,"providers.testDialog.searchModels":`Search or type a model ID`,"providers.testDialog.addModel":`Add "{id}"`,"providers.testDialog.view":`View`,"providers.testDialog.noModels":`This provider has no models yet; type an ID above to test one.`,"providers.testDialog.status.queued":`Queued`,"providers.testDialog.status.cancelled":`Cancelled`,"providers.testDialog.statusColumn":`Status`,"providers.testDialog.ownFilter":`Select all models of this provider`,"providers.duplicate":`Duplicate`,"providers.deleteConfirm":`Delete {name}?`,"providers.deleteDetail":`The provider and its model settings are removed; request history is kept.`,"providers.deleted":`Deleted`,"providers.deleteBound":`Still used by: {clients}. Switch them to another provider first.`,"providers.templateVersions":`Current version {current}, latest {latest}`,"providers.templateApplied":`Updated to the latest template`,"providers.templateUpToDate":`Already on the latest template.`,"providers.searchModels":`Search models`,"providers.addModels":`Add models`,"providers.addModelsDetail":`Enter model IDs, one per line or comma separated; they are linked to system models to inherit parameters and prices.`,"providers.fetchRemote":`Fetch from upstream`,"providers.fetchRemoteDetail":`Reads the provider's model list and links models to the system catalog so they inherit parameters and prices.`,"providers.noModels":`No models yet`,"providers.noModelsDetail":`Fetch the model list from upstream, or enter model IDs manually.`,"providers.modelsFooter":`A model needs only an ID: fields you don't override are inherited from the linked system model, priced with this provider's price table.`,"providers.modelMap.title":`Model mapping`,"providers.modelMap.footer":`Turns a model ID clients ask for into one of this provider's models, e.g. deepseek-v4.1 → deepseek-chat. Mapped IDs appear in the clients' model lists, and clients bound to several providers route them here. Billing follows the model actually sent.`,"providers.modelMap.add":`Add mapping`,"providers.modelMap.addDetail":`When a client asks for the model ID on the left, Astra requests the model on the right from this provider instead.`,"providers.modelMap.needModels":`Add models to this provider first`,"providers.modelMap.from":`Requested model ID`,"providers.modelMap.to":`This provider's model`,"providers.modelMap.toPlaceholder":`Choose a model`,"providers.modelMap.remove":`Remove mapping {from}`,"providers.modelMap.saved":`Model mapping saved`,"providers.modelMap.missingTarget":`Target model missing`,"providers.unlinked":`Unlinked`,"providers.modelsAdded":`Added {count} models`,"providers.addSelected":`Add {count}`,"providers.linksTo":`Links to {id}`,"providers.noLink":`No system model`,"providers.added":`Added`,"providers.linkedModel":`Linked system model`,"providers.linkedModelHint":`Fields and prices that are not overridden are inherited from it.`,"providers.overrides":`Overrides`,"providers.price":`Price`,"providers.customPrice":`Custom price`,"providers.customPriceHint":`A custom price fully replaces the inherited one and is not scaled by the provider multiplier.`,"providers.inheritedPriceHint":`Effective price (inherited, resolved with this provider's price table):`,"providers.removeModel":`Remove {id} from this provider?`,"providers.removeModelShort":`Remove model`,"providers.section.basic":`Basics`,"providers.section.auth":`Authentication`,"providers.section.endpoints":`Endpoints`,"providers.section.billing":`Billing`,"providers.section.advanced":`Advanced`,"providers.section.info":`Info`,"providers.subscription":`Subscription accounts`,"providers.subscription.footer":`Tokens are stored encrypted on this machine and refreshed before they expire.`,"providers.subscription.login":`Sign in`,"providers.subscription.loginDesc":`Finish the provider's authorization flow; tokens stay on this machine.`,"providers.subscription.logout":`Sign out & delete`,"providers.subscription.logoutConfirm":`Sign out account "{name}"? Clients pinned to it fall back to the default account.`,"providers.subscription.refreshToken":`Refresh token`,"providers.subscription.tokenRefreshed":`Token refreshed`,"providers.subscription.expires":`Expires`,"providers.subscription.status.active":`Active`,"providers.subscription.status.expired":`Expired`,"providers.subscription.status.revoked":`Revoked`,"providers.subscription.none":`No subscription account signed in yet`,"providers.subscription.openAuthorize":`Open authorization page`,"providers.subscription.doneAuthorize":`I've finished authorizing`,"providers.subscription.waiting":`Waiting for authorization…`,"providers.subscription.waitingDetail":`The authorization page opened in your browser; this page detects the new account automatically.`,"providers.subscription.cliDetail":`Finish the authorization in your browser; sign-in completes here automatically (server-side polling, no callback URL needed).`,"providers.subscription.checkNow":`I authorized — check now`,"providers.subscription.checkNowHint":`Click after finishing in the browser; this page also checks every few seconds on its own.`,"providers.subscription.pasteTitle":`Paste the code shown on the authorization page`,"providers.subscription.pasteDetail":`Claude's registered redirect URI is not a loopback address, so the browser cannot come back here: the authorization page displays a code instead. Open it, authorize, then paste the code below.`,"providers.subscription.pastePlaceholder":`Paste the authorization code (like xxxx#yyyy)`,"providers.subscription.pasteCode":`Authorization code`,"providers.subscription.pasteSubmit":`Finish sign-in`,"providers.subscription.stillWaiting":`No authorization yet — make sure you confirmed in the browser.`,"providers.subscription.deviceCode":`Device code`,"providers.subscription.visitPage":`Open verification page`,"providers.subscription.loginOk":`Authorized: {name}`,"providers.subscription.loginFailed":`Sign-in failed`,"providers.subscription.importCodex":`Import local Codex sign-in`,"providers.subscription.importCodexHint":`Adopt the codex sign-in already stored in ~/.codex/auth.json; no browser round-trip needed`,"providers.subscription.importOk":`Imported the local Codex account: {name}`,"providers.subscription.importCopilot":`Import local GitHub authorization`,"providers.subscription.importCopilotHint":`Adopt a GitHub authorization already on this machine (the VS Code GitHub session, GH_TOKEN, or the Copilot plugin config) as a Copilot account, instead of repeating the device flow`,"providers.subscription.importCopilotPlaceholder":`or paste a GitHub token (gho_…)`,"providers.subscription.importCopilotToken":`GitHub token`,"providers.subscription.localCopilotFound":`Found a local GitHub authorization: {source}`,"providers.subscription.importBatch":`Batch import tokens`,"providers.subscription.importBatchTitle":`Batch import GitHub tokens`,"providers.subscription.importBatchLabel":`GitHub tokens (one per line)`,"providers.subscription.importBatchDesc":`Paste GitHub tokens (gho_ / ghp_ / github_pat_), one per line. Each one becomes a Copilot account; duplicates and tokens without a Copilot subscription are reported, not imported. You can also paste a ready-to-use Copilot token (tid=…;exp=…): it is used as is, but cannot renew itself and must be re-imported after it expires.`,"providers.subscription.importBatchPlaceholder":`gho_xxxxxxxxxxxx
|
|
12
|
+
# 以 # 开头的行会被忽略`,"providers.subscription.importBatchCount":`已识别 {n} 个 token`,"providers.subscription.importBatchRun":`导入`,"providers.subscription.importBatchSummary":`已导入 {ok} 个,重复 {dup} 个,失败 {fail} 个`,"providers.subscription.importBatchStatus.imported":`已导入`,"providers.subscription.importBatchStatus.duplicate":`重复`,"providers.subscription.importBatchStatus.invalid_format":`格式错误`,"providers.subscription.importBatchStatus.failed":`失败`,"providers.subscription.importBatchStatus.updated":`已更新`,"providers.subscription.importBatchStatus.ready":`可导入`,"providers.accounts.statTotal":`{n} 个账户`,"providers.accounts.statUsable":`{n} 可用`,"providers.accounts.statCooling":`{n} 冷却中`,"providers.accounts.statDead":`{n} 失效`,"providers.accounts.providerProxy":`提供商代理:{proxy}`,"providers.accounts.filter.all":`全部`,"providers.accounts.filter.usable":`可用`,"providers.accounts.filter.cooling":`冷却`,"providers.accounts.filter.dead":`失效`,"providers.accounts.filter.disabled":`停用`,"providers.accounts.filterLabel":`按状态筛选`,"providers.accounts.search":`搜索邮箱 / 名称 / Key`,"providers.accounts.add":`添加账户`,"providers.accounts.addLogin":`浏览器登录`,"providers.accounts.addLoginProxy":`浏览器登录(指定代理)…`,"providers.accounts.addToken":`粘贴令牌…`,"providers.accounts.addApiKey":`添加 API Key…`,"providers.accounts.batchImport":`批量导入`,"providers.accounts.noMatch":`没有符合条件的账户`,"providers.accounts.select":`选择 {name}`,"providers.accounts.selected":`已选 {n} 个账户`,"providers.accounts.clearSelection":`取消选择`,"providers.accounts.bulkDeleteConfirm":`删除选中的 {n} 个账户?`,"providers.accounts.bulkDeleteDetail":`令牌会从本机删除;绑定这些账户的客户端将回退到默认账户。`,"providers.accounts.bulkDone":`已处理 {n} 个账户`,"providers.accounts.kind.oauth":`OAuth`,"providers.accounts.kind.api_key":`API Key`,"providers.accounts.source.login":`浏览器登录`,"providers.accounts.source.local":`本机导入`,"providers.accounts.source.token":`粘贴导入`,"providers.accounts.source.batch":`批量导入`,"providers.accounts.expiresAt":`{when} 到期`,"providers.accounts.neverExpires":`不过期`,"providers.accounts.proxyBadge":`独立代理`,"providers.accounts.signedOut":`登录已失效`,"providers.accounts.quotaShortWeekly":`周`,"providers.accounts.quotaShortSession":`会话`,"providers.accounts.quotaShortCredits":`额度`,"providers.accounts.quotaShortPremium":`高级`,"providers.accounts.order":`#{n}`,"providers.accounts.detail.identity":`账户`,"providers.accounts.detail.name":`名称`,"providers.accounts.detail.proxy":`账户代理`,"providers.accounts.detail.proxyHint":`此账户的请求、令牌刷新与额度查询都走这里;留空则跟随提供商({fallback})。`,"providers.accounts.detail.quota":`额度`,"providers.accounts.detail.credentials":`凭据`,"providers.accounts.detail.kind":`类型`,"providers.accounts.detail.source":`来源`,"providers.accounts.detail.status":`状态`,"providers.accounts.detail.expires":`令牌到期`,"providers.accounts.detail.lastRefresh":`最近刷新`,"providers.accounts.detail.created":`添加时间`,"providers.accounts.detail.order":`故障转移顺序`,"providers.accounts.detail.lastError":`最近错误`,"providers.accounts.detail.key":`API Key`,"providers.accounts.proxyFallbackSystem":`系统代理`,"providers.accounts.renamed":`已重命名`,"providers.accounts.proxySaved":`账户代理已保存`,"providers.accounts.loginProxyTitle":`使用指定代理登录`,"providers.accounts.loginProxyDesc":`新账户从登录起就通过这个代理访问上游(换码、刷新、请求都走它)。授权页仍在你的浏览器里打开。`,"providers.accounts.loginProxyStart":`开始登录`,"providers.accounts.import.batchTitle":`批量导入账户`,"providers.accounts.import.tokenTitle":`粘贴令牌`,"providers.accounts.import.apiKeyTitle":`添加 API Key`,"providers.accounts.import.desc":`令牌只在本机加密保存,结果里只显示首尾几位。`,"providers.accounts.import.label":`要导入的令牌(每行一条)`,"providers.accounts.import.apiKeyLabel":`API Key(每行一把)`,"providers.accounts.import.formats":`支持:{formats}`,"providers.accounts.import.count":`已识别 {n} 条`,"providers.accounts.import.preview":`预览`,"providers.accounts.import.run":`导入`,"providers.accounts.import.proxy":`账户代理(可选)`,"providers.accounts.import.summary":`已导入 {ok} 条,重复 {dup} 条,失败 {fail} 条`,"providers.accounts.import.previewSummary":`可导入 {ok} 条,重复 {dup} 条,无法识别 {fail} 条`,"providers.accounts.import.rotateWarning":`refresh token 通常只能用一次:导入后,原来使用它的客户端(Claude Code、Codex 等)可能需要重新登录。`,"providers.accounts.credential.refresh_token":`refresh token`,"providers.accounts.credential.setup_token":`setup-token`,"providers.accounts.credential.api_key":`API Key`,"providers.accounts.credential.github_token":`GitHub token`,"providers.accounts.credential.copilot_token":`Copilot 令牌`,"providers.accounts.credential.claude_credentials":`.credentials.json`,"providers.accounts.credential.codex_auth_json":`auth.json`,"providers.accounts.format.claude-refresh-token":`refresh token(sk-ant-ort01-…)`,"providers.accounts.format.claude-setup-token":`claude setup-token(sk-ant-oat01-…)`,"providers.accounts.format.claude-credentials-json":`Claude Code 的 .credentials.json`,"providers.accounts.format.codex-auth-json":`~/.codex/auth.json 的内容`,"providers.accounts.format.refresh-token":`refresh token`,"providers.accounts.format.grok-sso":`Grok Web SSO(sso cookie / email----password----…----sso)`,"providers.accounts.format.kimi-api-key":`Kimi Code API Key(sk-kimi-…)`,"providers.accounts.format.zai-api-key":`Z.AI Coding Plan API Key`,"providers.accounts.format.bigmodel-api-key":`智谱 Coding Plan API Key`,"providers.accounts.format.github-token":`GitHub token(gho_ / ghp_ / github_pat_)`,"providers.accounts.format.copilot-token":`Copilot 令牌(tid=…;exp=…)`,"providers.subscription.localCopilotHint":`点「导入本机 GitHub 授权」时会读取 VS Code 的系统凭据(macOS 会弹授权框),也可以直接粘贴一个 GitHub token`,"providers.subscription.localCodexFound":`检测到本机 Codex 登录:{who}`,"providers.subscription.unknownAccount":`未知账号`,"providers.subscription.credits.title":`额度重置卡`,"providers.subscription.credits.footer":`codex 的额度重置卡:用一张可以立刻解除当前被限流的窗口。`,"providers.subscription.credits.none":`这个账号没有重置卡`,"providers.subscription.credits.unavailable":`暂时读不到重置卡(账号可能未登录,或上游不可达)。`,"providers.subscription.credits.availableCount":`可用 {count} 张`,"providers.subscription.credits.consume":`使用`,"providers.subscription.credits.consumeConfirm":`使用重置卡「{title}」?`,"providers.subscription.credits.consumeDetail":`会立刻解除当前被限流的窗口,且无法撤销。`,"providers.subscription.credits.consumed":`重置卡已使用,额度已刷新`,"providers.subscription.credits.consumeFailed":`使用重置卡失败`,"providers.subscription.credits.expires":`有效期至 {when}`,"providers.subscription.credits.redeemedAt":`已于 {when} 使用`,"providers.subscription.credits.notInPlan":`当前套餐不支持`,"providers.subscription.credits.status.available":`可用`,"providers.subscription.credits.status.redeemed":`已使用`,"providers.subscription.credits.status.expired":`已过期`,"providers.subscription.needsVerification":`即将支持:该订阅的登录流程尚未核实,暂不能登录`,"providers.subscription.current":`当前使用`,"providers.subscription.disabled":`已停用`,"providers.subscription.activate":`切换到此账号`,"providers.subscription.activated":`已切换到 {name},下一个请求起生效`,"providers.subscription.enable":`启用`,"providers.subscription.disable":`停用`,"providers.subscription.moveUp":`上移`,"providers.subscription.moveDown":`下移`,"providers.subscription.cooldown":`限流冷却至 {when}`,"providers.subscription.policy.title":`使用策略`,"providers.subscription.policy.footer":`切换账号对下一个请求立即生效,无需重启客户端;在客户端或令牌上固定了账号的请求不受影响。`,"providers.subscription.policy.claudeCodeOnly":`仅限 Claude Code`,"providers.subscription.policy.claudeCodeOnlyDetail":`只接受 Claude Code(含 IDE 插件与 Agent SDK)的请求,并原样转发它的请求头;其他客户端会收到 403。`,"providers.subscription.policy.anyWarning":`已允许其他客户端使用:Astra 只补齐 OAuth 必需的请求头,不会伪装成 Claude Code。Anthropic 可能把这些请求计入额外用量、直接拒绝,或视为违反服务条款。`,"providers.subscription.policy.mimic":`其他客户端模拟 Claude Code`,"providers.subscription.policy.mimicDetail":`非 Claude Code 客户端的请求会带上 Claude Code 的身份(system 身份块、claude-cli User-Agent、X-Stainless 指纹与完整 beta 集),否则订阅令牌的非 Haiku 模型会被上游拒绝。默认关闭。`,"providers.subscription.policy.mimicWarning":`已开启模拟 Claude Code:请求会伪装成官方 CLI。这违反 Anthropic 的使用条款,可能导致账号被限制或封禁,风险由你自己的账号承担。`,"providers.subscription.policy.switchMode":`账号切换`,"providers.subscription.policy.manual":`手动`,"providers.subscription.policy.failover":`自动故障转移`,"providers.subscription.policy.manualDetail":`只在你切换账号,或当前账号失效、被停用时更换。`,"providers.subscription.policy.failoverDetail":`当前账号被限流(429)或登录失效时,自动换到下一个可用账号并继续使用它。`,"providers.subscription.policy.balanced":`均衡分配`,"providers.subscription.policy.balancedDetail":`把请求分摊到所有可用账号,优先选当前并发最少的。同一会话(相同 prompt_cache_key 或 Claude Code 会话)固定使用同一个账号,保证上游提示词缓存命中;被限流或失效的账号会被跳过。绑定关系只保存在内存里。`,"providers.notes":`备注`,"providers.apiKeyStored":`API Key 加密保存在本机,留空表示不修改。`,"providers.replaceKey":`输入新密钥以替换`,"providers.endpointsFooter":`每种协议一个地址;客户端协议与上游不同时,Astra 自动转换。`,"providers.fullUrl":`完整 URL`,"providers.addEndpoint":`添加接口`,"providers.preferred":`上游协议优先级`,"providers.preferredHint":`需要转换协议时按此顺序选择上游接口`,"providers.preferredMissing":`{protocol} 没有配置接口地址,排在优先级里也不会被选中`,"providers.billingFooter":`倍率只作用于继承来的价格;模型上的自定义价格不乘倍率。`,"providers.multiplier":`价格倍率`,"providers.multiplierHint":`例如中转站按官方价 ×1.1 计费`,"providers.proxy":`HTTP 代理`,"providers.proxyHint":`此提供商的请求、订阅登录、令牌刷新与额度查询都走这里;订阅账户可在「账户」里单独设置`,"providers.headers":`额外请求头`,"providers.addHeader":`添加请求头`,"providers.addHeaderDetail":`随每个发往该提供商的请求一起发送;保存后生效。`,"providers.headerName":`名称`,"providers.headerValue":`值`,"providers.addEndpointDetail":`为一种协议配置接口地址;保存后生效。`,"providers.fullUrlHint":`地址即完整请求 URL,不再追加路径`,"providers.adapterSettings":`适配器设置(JSON)`,"providers.adapter":`适配器`,"providers.boundClients":`使用中的客户端`,"origin.inherited":`继承`,"origin.overridden":`已覆盖`,"origin.unset":`未设置`,"origin.reset":`重置为继承`,"models.count":`{count} 个模型`,"models.search":`搜索模型、别名`,"models.allVendors":`全部厂商`,"models.sync":`同步模型目录`,"models.syncDetail":`从官网目录(astra-gate.si)获取最新的模型参数和价格,用户修改过的字段不会被覆盖。`,"models.new":`新建模型`,"models.newDetail":`为系统中没有的模型添加参数和默认价格。`,"models.col.model":`模型`,"models.col.vendor":`厂商`,"models.col.context":`上下文`,"models.col.price":`输入 / 输出`,"models.col.providerPrices":`提供商价格`,"models.empty":`没有匹配的模型`,"models.source.seed":`内置`,"models.source.sync":`同步`,"models.source.user":`自定义`,"models.modified":`已修改`,"models.providerPriceCount":`{count} 个提供商`,"models.updated":`更新于 {time}`,"models.resetField":`恢复为内置值`,"models.fieldReset":`已恢复为内置值`,"models.deleteConfirm":`删除模型 {id}?`,"models.section.basic":`基本参数`,"models.section.capabilities":`能力`,"models.section.pricing":`官方默认价格`,"models.section.providerPrices":`各提供商价格`,"models.section.overrides":`提供商自定义价格`,"models.section.simulator":`计费模拟器`,"models.modifiedFooter":`标记为「已修改」的字段不会被后续的内置数据或同步覆盖。`,"models.pricingHint":`模型厂商的官方价格;没有对应提供商价格时使用(会乘提供商倍率)。`,"models.providerPricesFooter":`同一模型在不同 AI 提供商的价格(按价格表区分),优先于官方默认价。`,"models.overridesFooter":`这些提供商为该模型单独设置了价格,优先级最高。`,"models.noProviderPrices":`没有提供商专属价格`,"models.hasTimeWindows":`含时段规则`,"models.hasTiers":`含分档`,"models.deletePrice":`删除 {key} 的价格?`,"models.addPrice":`添加提供商价格`,"models.editPrice":`编辑 {key} 的价格`,"models.priceSheetDetail":`该价格只在价格表匹配的提供商上生效。`,"models.pickPriceKey":`选择价格表`,"models.customPriceKey":`或输入自定义价格表 ID`,"models.upstreamId":`该提供商的模型 ID`,"models.upstreamIdHint":`与系统模型 ID 不同时填写,用于自动关联`,"models.simulatorUnsaved":`有未保存的更改:模拟使用编辑中的价格。`,"models.field.id":`模型 ID`,"models.field.idHint":`客户端请求时使用的名称`,"models.field.displayName":`显示名称`,"models.field.vendor":`厂商`,"models.field.family":`系列`,"models.field.aliases":`别名`,"models.field.contextWindow":`上下文窗口`,"models.field.maxOutputTokens":`最大输出`,"models.field.inputPrice":`输入价格 /1M`,"models.field.outputPrice":`输出价格 /1M`,"models.sync.newModel":`新模型`,"models.sync.price":`价格 · {key}`,"models.sync.field":`字段 · {field}`,"models.sync.applied":`已应用 {count} 项更改`,"models.sync.apply":`应用 {count} 项`,"models.sync.check":`检查更新`,"models.sync.none":`没有可用的更新`,"models.sync.userModified":`已被用户修改`,"cap.vision":`图像输入`,"cap.tools":`工具调用`,"cap.reasoning":`推理`,"cap.promptCache":`提示缓存`,"cap.audio":`音频`,"cap.pdf":`PDF`,"cap.structuredOutput":`结构化输出`,"requests.col.cache":`缓存命中 / 写入`,"usage.title":`Token 用量`,"usage.inputTotal":`输入总量`,"usage.outputTotal":`输出总量`,"usage.input":`普通输入`,"usage.output":`普通输出`,"usage.uncachedInput":`未缓存输入`,"usage.regularOutput":`非推理输出`,"usage.cacheRead":`缓存命中`,"usage.cacheWrite":`缓存写入`,"usage.cacheWrite5m":`缓存写入 · 5 分钟`,"usage.cacheWrite1h":`缓存写入 · 1 小时`,"usage.reasoning":`推理 / 思考`,"usage.inputAudio":`音频输入`,"usage.outputAudio":`音频输出`,"usage.inputImage":`图像输入`,"usage.outputImage":`图像输出`,"usage.hitShort":`命中`,"usage.writeShort":`写入`,"usage.reasoningShort":`推理`,"usage.hitRate":`缓存命中率`,"usage.noCache":`上游未报告缓存读取或写入 Token`,"usage.missing":`上游未报告用量,缓存命中率未知。`,"usage.hitTooltip":`缓存命中 {read} / 输入总量 {total} tokens`,"usage.writeTooltip":`共写入 {tokens} tokens;5m / 1h 在详情中分别列出`,"usage.totalsHint":`输入总量已包含缓存命中和写入;输出总量已包含推理 Token,不重复相加。命中率 = 缓存读取 / 输入总量。`,"usage.cacheAmounts":`命中 {read} · 写入 {write}`,"settings.appearance":`外观`,"settings.theme":`主题`,"settings.theme.system":`跟随系统`,"settings.theme.light":`浅色`,"settings.theme.dark":`深色`,"settings.accent":`强调色`,"settings.accent.system":`跟随系统`,"settings.accent.followingSystem":`正在使用系统强调色`,"settings.accent.systemUnavailable":`无法读取系统强调色,使用默认蓝色`,"settings.accent.blue":`蓝色`,"settings.accent.purple":`紫色`,"settings.accent.pink":`粉色`,"settings.accent.red":`红色`,"settings.accent.orange":`橙色`,"settings.accent.yellow":`黄色`,"settings.accent.green":`绿色`,"settings.accent.graphite":`石墨色`,"settings.language":`语言`,"settings.languageHint":`同时决定新请求计费说明的语言`,"settings.gateway":`网关`,"settings.requireKey":`要求访问密钥`,"settings.requireKeyHint":`默认开启。关闭后,不带密钥(或密钥无效)的请求也能使用网关,按默认令牌的提供商处理。`,"settings.requireKeyOffConfirm":`关闭访问密钥验证?`,"settings.requireKeyOffDetail":`关闭后,任何能访问本网关地址的程序或设备都可以直接使用你的提供商额度,无需密钥。仅建议在仅限本机访问的可信环境中关闭。`,"settings.requireKeyOff":`仍然关闭`,"settings.gatewayFooter":`端口与监听地址通过终端修改:astra start --port <端口>`,"settings.gatewayUrl":`网关地址`,"settings.listen":`监听`,"settings.dataDir":`数据目录`,"settings.openFolder":`打开目录`,"settings.streamIdle":`流式空闲超时`,"settings.streamIdleHint":`上游超过该时间无数据则断开`,"settings.logging":`记录`,"settings.debugBodies":`保存请求与响应内容`,"settings.debugBodiesHint":`用于排查问题;内容保存在本机数据目录,不含密钥。`,"settings.bodyRetention":`内容保留`,"settings.requestRetention":`自动清理请求记录`,"settings.keepForever":`永久保留`,"settings.days":`天`,"settings.effort":`推理强度换算`,"settings.effortHint":`在 OpenAI reasoning effort 与 Anthropic / Gemini thinking budget 之间转换时使用。`,"settings.privacy":`隐私护栏`,"settings.privacy.footer":`请求发往提供商之前在本机检测敏感信息。原值只保存在请求内存中,不会写入数据库。`,"settings.privacy.enabled":`启用隐私护栏`,"settings.privacy.enabledHint":`关闭后所有请求原样转发`,"settings.privacy.dryRun":`只检测不处理`,"settings.privacy.dryRunHint":`记录命中但放行请求,用于观察效果`,"settings.privacy.restore":`还原响应占位符`,"settings.privacy.restoreHint":`响应中的占位符会替换回原值,客户端无感知`,"settings.privacy.recordSamples":`记录命中样本`,"settings.privacy.recordSamplesHint":`日志中保存遮罩后的样本(如 john••••om),原值永不入库`,"settings.privacy.defaultAction":`默认动作`,"settings.privacy.action.off":`关闭`,"settings.privacy.action.warn":`仅警告`,"settings.privacy.action.block":`拦截`,"settings.privacy.action.redact":`脱敏`,"settings.privacy.categories":`检测类别`,"settings.privacy.category.api_key":`API 密钥`,"settings.privacy.category.aws_key":`AWS 密钥`,"settings.privacy.category.jwt":`JWT 令牌`,"settings.privacy.category.private_key":`私钥`,"settings.privacy.category.email":`邮箱地址`,"settings.privacy.category.phone":`手机号`,"settings.privacy.category.intranet":`内网地址`,"settings.privacy.category.custom":`自定义`,"settings.privacy.category.credit_card":`银行卡号`,"settings.privacy.category.national_id":`证件号码`,"settings.privacy.category.credential":`凭据 / 连接串`,"settings.privacy.enableCategory":`启用`,"settings.privacy.customRules":`自定义规则`,"settings.privacy.noCustomRules":`暂无自定义规则`,"settings.privacy.addRule":`添加规则`,"settings.privacy.ruleName":`规则名称`,"settings.privacy.rulePattern":`正则表达式`,"settings.privacy.rulePatternHint":`对请求中的每个字符串值逐个匹配`,"settings.privacy.ruleTemplates":`从模板填入`,"settings.privacy.ruleTemplatesHint":`选择常用规则模板,名称与表达式可再修改`,"settings.privacy.ruleTemplateNone":`自定义(手动输入)`,"settings.privacy.template.ipv4All":`所有 IPv4 地址`,"settings.privacy.template.ipv4AllHint":`含公网地址;内置「内网地址」只覆盖私有网段`,"settings.privacy.template.landline":`座机号码(中国大陆)`,"settings.privacy.template.licensePlate":`车牌号(中国大陆)`,"settings.privacy.template.passportCn":`护照号(中国)`,"settings.privacy.template.uscc":`统一社会信用代码`,"settings.privacy.template.longToken":`通用长令牌(32 位以上随机串)`,"settings.privacy.template.longTokenHint":`命中面较宽,建议搭配「仅警告」使用`,"settings.privacy.template.macAddress":`MAC 地址`,"settings.privacy.template.unixHome":`Unix / macOS 用户目录路径`,"settings.privacy.template.windowsProfile":`Windows 用户目录路径`,"settings.privacy.template.unixHomeHint":`路径中会暴露本机用户名`,"settings.privacy.template.genericHint":`可按需要再调整表达式`,"settings.privacy.template.cloudAccessKey":`云厂商 AccessKey(阿里云 LTAI… / 腾讯云 AKID…)`,"settings.privacy.template.awsSecretKey":`AWS Secret Access Key(40 位)`,"settings.privacy.template.imWebhook":`IM 机器人 Webhook(钉钉 / 企微 / 飞书 / Slack)`,"settings.privacy.template.imWebhookHint":`Webhook 地址本身就是凭证,泄露后任何人都能向群里发消息`,"settings.privacy.template.internalService":`内部系统域名(gitlab. / jenkins. / jira. …)`,"settings.privacy.template.jdbcConn":`JDBC 连接串(含账号密码)`,"settings.privacy.template.jdbcHint":`连接串里的账号密码通常是明文`,"settings.privacy.template.smtpConn":`邮件服务器连接串(smtp://user:pass@…)`,"settings.privacy.template.keyFileRef":`密钥文件引用(.pem / .key / .pfx / .jks)`,"settings.privacy.template.confidentialMarker":`内部 / 机密标记(机密、Confidential…)`,"settings.privacy.template.confidentialHint":`按文档密级标记做警告或拦截`,"settings.privacy.template.employeeId":`员工工号(EMP-123456 / 工号123456)`,"settings.privacy.template.labeledNumber":`带标签编号(合同编号 / 订单编号 / 工单编号…)`,"settings.privacy.invalidPattern":`正则表达式无效`,"settings.privacy.deleteRuleConfirm":`删除规则「{name}」?`,"settings.privacy.tester":`试用检测`,"settings.privacy.testerHint":`按当前策略检测下面的文本(不影响真实请求)`,"settings.privacy.testerPlaceholder":`粘贴一段请求文本或 JSON…`,"settings.privacy.runTest":`检测`,"settings.privacy.noHits":`没有命中任何规则`,"settings.privacy.wouldBlock":`会拦截请求`,"settings.privacy.wouldRedact":`将脱敏 {count} 处`,"privacy.tab.overview":`概览`,"privacy.tab.logs":`拦截日志`,"privacy.tab.rules":`检测规则`,"privacy.tab.tester":`试用检测`,"privacy.stats":`防护统计`,"privacy.stats.events":`护栏事件`,"privacy.stats.blocked":`拦截请求`,"privacy.stats.dryRun":`只检测请求`,"privacy.stats.redactions":`脱敏处数`,"privacy.stats.byCategory":`类别命中`,"privacy.stats.col.category":`类别`,"privacy.stats.col.requests":`请求数`,"privacy.stats.col.hits":`命中数`,"privacy.stats.col.warn":`警告`,"privacy.stats.col.block":`拦截`,"privacy.stats.col.redact":`脱敏`,"privacy.logs.total":`共 {count} 条事件`,"privacy.logs.empty":`还没有隐私事件`,"privacy.logs.empty.detail":`护栏检测到敏感内容后,对应的请求会出现在这里`,"privacy.logs.col.outcome":`处置结果`,"privacy.logs.col.action":`命中动作`,"privacy.logs.col.hits":`命中详情`,"privacy.logs.outcome.blocked":`已拦截`,"privacy.logs.outcome.redacted":`脱敏 {count} 处`,"privacy.logs.outcome.dryRun":`只检测`,"privacy.logs.blockedOnly":`仅拦截`,"privacy.logs.passedOnly":`仅放行`,"privacy.logs.moreHits":`+{count} 类`,"privacy.logs.viewRequest":`查看请求 {model}`,"settings.effort.low":`low`,"settings.effort.medium":`medium`,"settings.effort.high":`high`,"settings.about":`关于`,"settings.serverVersion":`服务版本`,"settings.desktopVersion":`桌面端版本`,"settings.logs":`打开日志目录`,"settings.logout":`退出登录`,"settings.checkUpdates":`检查更新`,"settings.upToDate":`已是最新版本`,"settings.updateAvailable":`有可用更新 {version}`,"settings.updateCheckFailed":`检查失败:{error}`,"settings.updateApplyHint":`可从 Astra 托盘菜单安装,或在终端运行 astra update`,"settings.updateApply":`立即更新`,"settings.updateApplied":`服务已更新并重启`,"settings.updateDesktopRelaunch":`桌面端将重启以完成更新`,"settings.lastChecked":`上次检查:{time}`,"settings.autoCheck":`自动检查更新`,"settings.tab.general":`常规`,"settings.tab.tray":`托盘面板`,"settings.tray.titleHeading":`菜单栏常驻文字`,"settings.tray.titleHint":`显示在菜单栏图标旁,不用点开就能看到。Windows 与 Linux 显示在图标提示中。`,"settings.tray.title.none":`不显示`,"settings.tray.title.none.hint":`只显示图标`,"settings.tray.title.requests":`今日调用`,"settings.tray.title.requests.hint":`例如 7`,"settings.tray.title.tokens":`今日 tokens`,"settings.tray.title.tokens.hint":`例如 68.8K`,"settings.tray.title.cost":`今日费用`,"settings.tray.title.cost.hint":`例如 $0.37`,"settings.tray.title.quota":`订阅窗口`,"settings.tray.title.quota.hint":`剩余最少的订阅窗口,例如 64%`,"settings.tray.title.alerts":`仅异常提示`,"settings.tray.title.alerts.hint":`有失败请求、额度告急或网关停止时才显示`,"settings.tray.usageHeading":`用量信息`,"settings.tray.clientsHeading":`客户端`,"settings.tray.section.overview":`今日概览`,"settings.tray.section.overview.hint":`调用次数、tokens 与失败数`,"settings.tray.section.cost":`预估费用`,"settings.tray.section.cost.hint":`按官方 API 价格折算,不替代账单`,"settings.tray.section.chart":`今日趋势`,"settings.tray.section.chart.hint":`每小时调用次数柱状图`,"settings.tray.section.topModel":`常用模型`,"settings.tray.section.topModel.hint":`今日 tokens 占比最高的模型`,"settings.tray.section.compareYesterday":`对比昨天`,"settings.tray.section.compareYesterday.hint":`今日 tokens 相对昨日全天的变化`,"settings.tray.section.cacheHitRate":`缓存命中率`,"settings.tray.section.cacheHitRate.hint":`缓存读取占输入 tokens 的比例`,"settings.tray.section.quota":`额度与余额`,"settings.tray.section.quota.hint":`Codex、Claude 等订阅的窗口用量与重置时间,以及已启用用量查询的 API 提供商余额`,"settings.tray.section.clients":`客户端提供商`,"settings.tray.section.clients.hint":`已启用客户端当前使用的提供商,点击可切换`,"settings.tray.previewHeading":`面板预览`,"settings.tray.previewHint":`点击托盘图标展开的面板。改动立即生效,预览即实际效果。`,"settings.tray.previewFooter":`使用当前真实数据渲染。`,"settings.tray.reset":`恢复默认`,"tray.status.running":`网关运行中`,"tray.status.stopped":`网关未运行`,"tray.status.starting":`正在启动网关…`,"tray.status.stopping":`正在停止网关…`,"tray.status.restarting":`正在重启网关…`,"tray.stoppedHint":`网关停止期间,客户端无法通过 Astra 调用模型。`,"tray.mismatch":`API 版本不匹配`,"tray.update":`有可用更新`,"tray.copyAddress":`复制网关地址`,"tray.settings":`托盘面板设置`,"tray.more":`更多操作`,"tray.today":`今日`,"tray.failures":`{count} 次失败`,"tray.justNow":`刚刚`,"tray.updated":`更新于{time}`,"tray.loadFailed":`无法读取用量数据`,"tray.requests":`次调用`,"tray.tokens":`tokens`,"tray.cost":`预估费用`,"tray.topModel":`常用模型`,"tray.cacheHit":`缓存命中`,"tray.vsYesterday":`较昨日`,"tray.chartLabel":`今日每小时调用次数`,"tray.hourBar":`{hour} · {count} 次调用`,"tray.quota":`额度与余额`,"tray.quotaRemaining":`剩余`,"tray.quotaReset":`重置`,"tray.quotaCredits":`额度`,"tray.quotaPending":`正在获取额度…`,"tray.clients":`客户端`,"tray.unbound":`未绑定`,"tray.switchProvider":`切换 {client} 的提供商`,"tray.disabledProvider":`{name}(已停用)`,"tray.restart":`重启网关`,"tray.stop":`停止网关`,"tray.quit":`退出`,"tray.open":`打开 Astra`,"tray.title.requests":`今日调用 {count} 次`,"tray.title.tokens":`今日 tokens {count}`,"tray.title.cost":`今日预估费用 {amount}`,"tray.title.quota":`{plan} {window}窗口剩余 {remaining}`,"tray.title.failures":`今日 {count} 次失败`,"tray.tab.overview":`概览`,"tray.tab.quota":`额度`,"tray.alert.failures":`{count} 次失败 · 占今日 {share}`,"tray.alert.quota":`{plan} {window}窗口仅剩 {remaining}`,"tray.quotaTightest":`额度 · 最紧张`,"tray.viewAll":`查看全部`,"nav.plugins":`插件`,"providers.card.plugin":`插件登录`,"plugins.subtitle":`兼容 magpie 的插件:提供商插件(OpenCode 插件,在 Bun 插件宿主中运行)、网关中间件与客户端(Agent)插件。`,"plugins.add":`添加插件`,"plugins.updateAll":`全部更新`,"plugins.tab.installed":`已安装`,"plugins.tab.market":`插件市场`,"plugins.tab.runtime":`运行环境`,"plugins.empty":`还没有安装插件`,"plugins.emptyDetail":`在「插件市场」中挑选,或添加 npm 包、GitHub 仓库或本地文件夹。`,"plugins.orderHint":`列表顺序即网关中间件的执行顺序。`,"plugins.kind.provider":`提供商`,"plugins.kind.middleware":`中间件`,"plugins.kind.agent":`客户端`,"plugins.kind.pi":`pi 扩展`,"plugins.local":`本地`,"plugins.moveUp":`上移`,"plugins.moveDown":`下移`,"plugins.enabled":`启用`,"plugins.options":`选项`,"plugins.update":`更新`,"plugins.removeConfirm":`删除插件 {name}?`,"plugins.removeDetail":`插件会被卸载;它添加的客户端会先恢复原来的配置。`,"plugins.cantLoad":`插件无法加载`,"plugins.hostCantLoad":`插件宿主没能加载它`,"plugins.mw.error":`中间件没能加载:{error}`,"plugins.mw.stats":`中间件 {hooks} · 调用 {calls} 次 · 平均 {micros} µs · 失败 {failures} 次`,"plugins.mw.lastError":`最近一次失败:{error}`,"plugins.agent.adds":`添加了客户端「{name}」,前往「客户端」页面启用`,"plugins.agent.error":`客户端没能加载:{error}`,"plugins.provides":`登录到:{providers}`,"plugins.servedBy":`{provider} 由另一个插件 {other} 提供`,"plugins.useFor":`用它提供 {provider}`,"plugins.picked":`已被选定为这些提供商的提供者。`,"plugins.optionsTitle":`{name} 的选项`,"plugins.optionsExample":`尚未设置,以下是插件给出的示例。`,"plugins.optionsNone":`尚未设置。插件以 JSON 对象读取选项(中间件的 ctx.options)。`,"plugins.optionsClear":`清除选项`,"plugins.optionsSaved":`选项已保存`,"plugins.optionsObject":`选项必须是一个 JSON 对象`,"plugins.addTitle":`添加插件`,"plugins.addDetail":`npm 包(可带版本)、Git 仓库(github:用户/仓库)或本机文件、文件夹的绝对路径。`,"plugins.spec":`插件`,"plugins.specHint":`例如 @magpie-community/middleware-word-guard、github:someone/plugin、/Users/me/my-plugin`,"plugins.install":`安装`,"plugins.installed":`已安装`,"plugins.installConfirm":`安装 {name}?`,"plugins.trustTitle":`插件会以你的权限运行代码`,"plugins.trustDetail":`提供商插件在插件宿主中拥有完整权限,能看到经过它的请求内容;中间件能读取并修改所有请求与回复。只安装你信任的插件。`,"plugins.job.title":`插件任务`,"plugins.job.running":`正在处理 {target}…`,"plugins.job.done":`{target} 已完成`,"plugins.job.failed":`{target} 失败`,"plugins.job.failedTitle":`没能完成`,"plugins.searchPlaceholder":`搜索 npm 与 GitHub 上的插件…`,"plugins.searchResults":`搜索结果`,"plugins.noResults":`没有找到插件`,"plugins.marketNote":`插件市场来自 magpie-community/plugins 的社区清单。`,"plugins.bunDetail":`提供商插件运行在 Bun 上。Astra 会在第一次需要时下载固定版本的 Bun 并校验其 SHA-256;中间件与客户端插件不需要 Bun。`,"plugins.bunPath":`位置`,"plugins.bunMissing":`尚未下载`,"plugins.bunVersion":`版本`,"plugins.bunTarget":`构建`,"plugins.bunNoBuild":`这台机器没有可用的 Bun 构建`,"plugins.bunFailed":`下载 Bun 失败`,"plugins.bunDownload":`下载 Bun {version}`,"plugins.bunDownloading":`正在下载…`,"plugins.host":`插件宿主`,"plugins.hostDetail":`提供商插件在一个独立的 Bun 进程(magpie 的 host.js)中运行,插件或代理改变时自动重启。`,"plugins.hostState":`状态`,"plugins.hostRunning":`运行中`,"plugins.hostStopped":`未运行(需要时启动)`,"plugins.hostStartFailed":`启动失败`,"plugins.hostGone":`宿主已退出`,"plugins.hostPluginError":`没能加载:{error}`,"pluginAccounts.noPlugin":`插件不可用`,"pluginAccounts.apiKey":`API 密钥`,"pluginAccounts.browser":`浏览器登录`,"pluginAccounts.empty":`还没有登录账号`,"pluginAccounts.emptyDetail":`用上面的方式登录,登录信息由插件保存。`,"pluginAccounts.current":`当前`,"pluginAccounts.active":`可用`,"pluginAccounts.lapsed":`需重新登录`,"pluginAccounts.lapsedDetail":`供应商拒绝了这个账号的登录,请重新登录。`,"pluginAccounts.usage":`额度`,"pluginAccounts.signOut":`退出登录`,"pluginAccounts.signOutConfirm":`退出 {name} 的登录?`,"pluginAccounts.plan":`套餐`,"pluginAccounts.until":`到期`,"pluginAccounts.resets":`{at} 重置`,"pluginAccounts.signedIn":`已登录`,"pluginAccounts.signInTitle":`登录 {name}`,"pluginAccounts.continue":`继续`,"pluginAccounts.key":`密钥`,"pluginAccounts.signIn":`登录`,"pluginAccounts.openPage":`打开登录页面`,"pluginAccounts.openAgain":`再次打开登录页面`,"pluginAccounts.deviceCode":`确认码`,"pluginAccounts.code":`页面显示的代码`,"pluginAccounts.waiting":`在浏览器中完成登录后,这里会自动继续。`,"pluginAccounts.failed":`登录失败`,"pluginAccounts.checkin":`每日签到`,"pluginAccounts.checkinOn":`自动签到`,"pluginAccounts.checkinNow":`立即签到`,"pluginAccounts.checkinDetail":`插件会按北京时间每天为每个可用账号签到一次;失败的会在 30 分钟后重试。Astra 不会处理验证码。`,"pluginAccounts.checkinNever":`今天还没有签到`,"pluginAccounts.credit":`+{credit}`,"pluginAccounts.streak":`连续 {days} 天`,"pluginAccounts.outcome.claimed":`已签到`,"pluginAccounts.outcome.done":`今天已签过`,"pluginAccounts.outcome.ineligible":`不符合条件`,"pluginAccounts.outcome.inactive":`现在没有签到活动`,"pluginAccounts.outcome.captcha":`需要验证码,请在它自己的应用里签到`,"pluginAccounts.outcome.failed":`失败`,"plugins.browseMarket":`浏览插件市场`,"plugins.off":`插件已在服务端关闭`,"plugins.hostRecent":`插件最近的提示`,"plugins.offDetail":`服务以 ASTRA_PLUGINS=off 启动:已安装的插件都不运行,也不能安装新插件。去掉这个环境变量并重启即可恢复。`,"plugins.bunReady":`已就绪`,"plugins.kind.all":`全部`,"plugins.kindFilter":`按类型筛选`,"plugins.magpie.banner":`这台电脑上的 magpie 装有 {count} 个 Astra 还没有的插件。`,"plugins.magpie.import":`从 magpie 导入`,"plugins.magpie.off":`已停用`,"plugins.magpie.signIns":`同时复制 {count} 个登录信息`,"plugins.magpie.title":`从 magpie 导入插件`,"plugins.magpie.signInsDetail":`把 magpie 的 plugin-auth.json 中的插件登录复制到 Astra(两者都以明文保存);Astra 已有的同名账号保持不变,magpie 的文件不会被修改。`,"plugins.openProviders":`在「提供商」中登录`,"plugins.searchNote":`搜索结果来自 npm 与 GitHub 的 magpie-plugin 主题,未经审核,安装前请确认来源可信。`},ig={"common.cancel":`Cancel`,"common.confirm":`OK`,"common.close":`Close`,"common.save":`Save`,"common.saved":`Saved`,"common.revert":`Revert`,"common.apply":`Apply`,"common.delete":`Delete`,"common.edit":`Edit`,"common.add":`Add`,"common.create":`Create`,"common.back":`Back`,"common.done":`Done`,"common.more":`More`,"common.copy":`Copy`,"common.copied":`Copied to clipboard`,"common.refresh":`Refresh`,"common.enabled":`Enabled`,"common.yes":`Yes`,"common.no":`No`,"common.prev":`Previous page`,"common.next":`Next page`,"common.noData":`No data`,"common.selectAll":`Select all`,"common.unsaved":`Unsaved changes`,"common.invalidJson":`Invalid JSON`,"common.search":`Search`,"common.clearSearch":`Clear search`,"common.select":`Select an option`,"common.noResults":`No matches`,"common.error":`Something went wrong`,"pricing.tierMode":`Billing mode`,"pricing.outputPolicy":`Output price`,"pricing.editMode":`Editing mode`,"pricing.days":`Days`,"models.sync.change":`Change`,"models.sync.changeOne":`change`,"models.sync.changeOther":`changes`,"common.continue":`Continue`,"providers.step.template":`Choose a template`,"providers.step.details":`Enter details`,"clients.current":`Current provider`,"common.deleting":`Deleting`,"common.deleted":`Deleted`,"common.retry":`Retry`,"providers.modelIds":`Model IDs`,"nav.overview":`Overview`,"nav.requests":`Requests`,"nav.clients":`Clients`,"nav.providers":`Providers`,"nav.models":`Models`,"nav.settings":`Settings`,"nav.privacy":`Privacy guard`,"nav.tokens":`Tokens`,"nav.group.config":`Configuration`,"nav.group.system":`System`,"shell.running":`Service running`,"shell.connecting":`Connecting…`,"shell.disconnected":`Not connected`,"shell.startService":`Start service`,"shell.startFailed":`Failed to start the service`,"shell.collapseSidebar":`Collapse sidebar`,"shell.expandSidebar":`Expand sidebar`,"banner.downDesktop":`Cannot reach the Astra service. Start it here or from the menu bar icon.`,"banner.downWeb":"Cannot reach the Astra service. Reconnecting… (run `astra start` in a terminal)","banner.mismatch":"The server API version does not match this UI. Run `astra update` and restart.","banner.clientsOutdated":`{names} still use an old Astra address or setting (for example, Astra moved to another port). Update them to reconnect.`,"banner.clientsUpdate":`Update now`,"banner.clientsUpdated":`Updated {names}; some clients need a restart to pick it up`,"login.subtitle":`This server is reachable remotely. Enter the admin password.`,"login.password":`Admin password`,"login.submit":`Sign in`,"range.today":`Today`,"range.7d":`7 days`,"range.30d":`30 days`,"range.90d":`90 days`,"range.all":`All time`,"overview.cost":`Cost`,"overview.requests":`Requests`,"overview.successRate":`Success rate`,"overview.tokens":`Tokens`,"overview.avgTtft":`Avg TTFT`,"overview.costTrend":`Cost trend`,"overview.range":`Time range`,"overview.measure":`Measure`,"overview.trend":`Trend`,"overview.tokensContext":`{input} in · {output} out`,"overview.hourlyAverage":`Hourly average`,"overview.dailyAverage":`Daily average`,"overview.total":`Total`,"overview.hour":`Hour`,"overview.day":`Day`,"overview.by.model":`Model`,"overview.by.provider":`Provider`,"overview.by.client":`Client`,"overview.by.token":`Token`,"overview.other":`Other`,"overview.topModels":`Top models by cost`,"overview.topModelDetail":`{requests} requests · {tokens} tokens`,"overview.empty.title":`No requests yet`,"overview.empty.detail":`Enable a client under Clients, or point any OpenAI / Anthropic / Gemini compatible tool at the gateway address below.`,"overview.clientFilter":`Filter by client`,"overview.allClients":`All`,"overview.tokenFilter":`Filter by token`,"overview.allTokens":`All tokens`,"overview.clientEmpty.title":`No requests from {client}`,"overview.clientEmpty.detail":`This client sent no requests in the selected period ({range}). Pick another client or time range.`,"overview.tokenEmpty.title":`No requests with {token}`,"overview.tokenEmpty.detail":`No request used this token in the selected period ({range}). Pick another token or time range.`,"overview.totalCost":`Total cost`,"overview.totalRequests":`Total requests`,"overview.usageTrend":`Usage trend`,"overview.breakdown":`Breakdown`,"overview.viewAll":`View all`,"overview.col.input":`Input`,"overview.col.output":`Output`,"overview.col.cacheHit":`Cache hit`,"overview.col.speed":`Speed`,"overview.col.share":`Share`,"overview.activity":`Activity`,"overview.activitySummary":`{from} ~ {to} · {active} / {days} days active`,"overview.activityPeak":`{count}/day at most`,"overview.activityUnit":`requests`,"overview.activityNone":`no activity`,"overview.activityLegend.less":`Less`,"overview.activityLegend.more":`More`,"requests.total":`{count} total`,"requests.totalCost":`Total spend`,"requests.totalCost.hint":`Summed cost of every request matching the active filters, across all pages; in-flight requests count once they finish.`,"requests.rate.rpm":`RPM`,"requests.rate.tpm":`TPM`,"requests.rate.hint":`Requests (RPM), tokens (TPM, completed requests only) and the cache-hit ratio per minute over the last {window}s; follows the active filters, refreshes every 5s.`,"requests.elapsed":`Waiting (no first token yet)`,"requests.searchModel":`Search model IDs (keyword)`,"requests.noFilters":`No filters applied`,"requests.clearFilters":`Clear filters`,"requests.backToFilters":`Back to filter fields`,"requests.removeFilter":`Remove filter: {filter}`,"requests.filterAdded":`Added filter: {filter}`,"requests.filterChanged":`Changed filter: {filter}`,"requests.filterRemoved":`Removed filter: {filter}`,"requests.filtersCleared":`All filters cleared`,"requests.filteredEmpty":`No matching requests`,"requests.filteredEmpty.detail":`Try another model keyword or clear the filters.`,"requests.returnedModel":`Returned: {model}`,"requests.modelMatch":`Match`,"requests.modelMismatch":`Mismatch`,"requests.modelComparison":`Requested: {requested}; sent upstream: {upstream}; API returned: {returned}`,"requests.modelNotRecorded":`Not recorded`,"requests.modelNotRecorded.hint":`An older log or the API omitted the model ID; the requested model is not used as a substitute.`,"requests.allClients":`All clients`,"requests.allTokens":`All tokens`,"requests.col.token":`Token`,"requests.detail.account":`Subscription account`,"requests.direct":`Direct`,"requests.allProviders":`All providers`,"requests.allStatus":`Any status`,"requests.col.time":`Time`,"requests.col.client":`Client`,"requests.col.model":`Model`,"requests.col.provider":`Provider`,"requests.col.status":`Status`,"requests.col.tokens":`In/Out`,"requests.col.cost":`Cost`,"requests.empty":`No requests`,"requests.empty.detail":`Every request through Astra is logged here with per-token-type billing details.`,"requests.page":`Page {page} of {pages}`,"requests.filters":`Active filters`,"requests.addFilter":`Add filter`,"requests.openDetail":`Open request details for {model}`,"requests.viewError":`Click to view the error`,"requests.detail.title":`Request details`,"requests.detail.summary":`Summary`,"requests.detail.protocol":`Protocol`,"requests.detail.requestedModel":`Requested model`,"requests.detail.upstreamModel":`Sent upstream model`,"requests.detail.responseModel":`API returned model`,"requests.detail.systemModel":`System model`,"requests.detail.stream":`Streaming`,"requests.detail.upstreamId":`Upstream request ID`,"requests.detail.timing":`Timing`,"requests.detail.generation":`Generation`,"requests.detail.total":`Total`,"requests.detail.tps":`Output speed`,"requests.detail.error":`Error`,"requests.detail.privacy":`Privacy guard`,"requests.detail.privacyBlocked":`Request blocked`,"requests.detail.privacyDryRun":`Dry run (not enforced)`,"requests.detail.privacyRedacted":`Redacted {count} place(s)`,"requests.detail.billing":`Billing`,"requests.detail.usageMissing":`The upstream returned no usage; this request was billed as 0.`,"requests.detail.usageRaw":`Raw usage`,"requests.detail.pricingSnapshot":`Pricing snapshot`,"requests.body.clientRequest":`Client request body`,"requests.body.upstreamRequest":`Upstream request body`,"requests.body.upstreamRequestHeaders":`Upstream request headers (as sent to the provider, credentials redacted)`,"requests.body.upstreamResponse":`Upstream response body`,"requests.body.clientResponse":`Response sent to client`,"requests.reasoning":`Reasoning`,"requests.reasoning.notRecorded":`Not recorded`,"requests.reasoning.budget":`budget {tokens}`,"requests.reasoning.hint":`Reasoning settings the client explicitly sent; “Not recorded” means unset or an older log — never inferred from budgets or provider defaults.`,"requests.detail.reasoning":`Reasoning`,"status.success":`Success`,"status.blocked":`Blocked`,"status.upstream_error":`Upstream error`,"status.gateway_error":`Gateway error`,"status.client_cancelled":`Cancelled`,"status.pending":`In progress`,"billing.unpriced":`No price configured`,"billing.type":`Type`,"billing.tokens":`Amount`,"billing.unitPrice":`Unit /1M`,"billing.tier":`Tier`,"billing.cost":`Cost`,"pricingSource.override":`Provider custom price`,"pricingSource.provider":`Provider price · {key}`,"pricingSource.default":`Official default`,"pricingSource.none":`No price`,"simulator.official":`Official default price`,"simulator.serviceTier":`service_tier`,"simulator.time":`Request time (for time-of-day pricing)`,"simulator.run":`Calculate`,"pricing.none":`No pricing configured`,"pricing.add":`Add pricing`,"pricing.remove":`Remove pricing`,"pricing.mode.form":`Form`,"pricing.unit":`USD / 1M tokens`,"pricing.base":`Base prices`,"pricing.perRequest":`Per request`,"pricing.notes":`Notes`,"pricing.name":`Name`,"pricing.contextTiers":`Context tiers`,"pricing.contextTiers.hint":`Switch prices once input tokens exceed a threshold (e.g. Claude >200K).`,"pricing.addTier":`Add tier`,"pricing.threshold":`Threshold`,"pricing.mode.whole":`Whole request`,"pricing.mode.progressive":`Progressive`,"pricing.output.highest":`Output at highest tier`,"pricing.output.base":`Output at base price`,"pricing.timeWindows":`Time windows`,"pricing.timeWindows.hint":`Adjust prices by timezone and time of day (e.g. DeepSeek off-peak); holidays can be excluded.`,"pricing.addWindow":`Add window`,"pricing.excludeDates":`Exclude dates yyyy-MM-dd, …`,"pricing.serviceTiers":`Service tiers`,"pricing.serviceTiers.hint":`Adjust prices by service_tier (flex / priority).`,"pricing.addServiceTier":`Add tier`,"pricing.hasOwnPrices":`Has own prices (edit as JSON)`,"pricing.ruleNameTaken":`This service tier name already exists`,"pricing.timezone":`Timezone`,"pricing.invalidTimezone":`Enter a valid IANA timezone`,"pricing.start":`Start time`,"pricing.end":`End time`,"pricing.multiplier":`Multiplier`,"clients.subtitle":`Route the AI clients on this machine through Astra`,"clients.comingSoon":`Coming soon`,"clients.comingSoonDetail":`The configuration format for this client is not confirmed yet`,"clients.drifted":`Config changed`,"clients.enabled":`Enabled`,"clients.disabled":`Not enabled`,"clients.detected":`Detected {version}`,"clients.notDetected":`Not detected`,"clients.group.installed":`Installed`,"clients.group.notInstalled":`Not detected`,"clients.group.comingSoon":`Coming soon`,"clients.checkUpdates":`Check for updates`,"clients.updatesFound":`{count} client update(s) available`,"clients.allUpToDate":`All clients are up to date`,"clients.updateBadge":`Update`,"clients.shadowedBadge":`Fix PATH`,"clients.updateTo":`Update to {version}`,"clients.install":`Install`,"clients.download":`Download`,"clients.installRunning":`In progress…`,"clients.versionTitle":`Version and updates`,"clients.currentVersion":`Installed version`,"clients.latestVersion":`Latest version`,"clients.versionUnknown":`Unknown version`,"clients.notInstalled":`Not installed`,"clients.latestUnknown":`Not checked`,"clients.checkedAt":`Checked {time}`,"clients.installMethod":`Installed with`,"clients.method.npm":`Global npm package {package}`,"clients.method.vscode-extension":`VS Code extension {package}`,"clients.method.script":`Official vendor install script`,"clients.method.manual":`Download from the official site`,"clients.homepage":`Website`,"clients.blocker.npm-missing":`npm was not found. Install Node.js (it ships npm), then come back to install.`,"clients.blocker.vscode-missing":`VS Code's code command was not found. Install VS Code first.`,"clients.blocker.script-missing":`No install script for this system; install it from the official site.`,"clients.blocker.external-install":`{path} was not installed with npm. Update it the way you installed it.`,"clients.blocker.shadowed":`The latest version is already installed elsewhere; updating again won't change what the terminal runs. Fix PATH as described above.`,"clients.installLog":`Install log`,"clients.noInstallLog":`No install runs yet`,"clients.job.running":`Running…`,"clients.job.succeeded":`Finished`,"clients.job.failed":`Failed`,"clients.job.cancelled":`Stopped`,"clients.hint.permission-denied":`npm can't write to its global directory (usually because something was installed with sudo before, so the directory belongs to the administrator).`,"clients.hint.admin-cancelled":`Administrator authorization was cancelled. Nothing was changed.`,"clients.hint.shadowed":`The new version went to another location; the terminal still runs the old copy. See the log below for where.`,"clients.hint.unchanged":`The command succeeded, but the version did not change.`,"clients.hint.not-on-path":`The installed command is not on the terminal's PATH, so the terminal can't run it directly. See the log below for where.`,"clients.job.notEffective":`Finished, but not in effect`,"clients.notEffectiveToast":`{name}: the command succeeded but didn't take effect. Check the install log.`,"clients.otherCopy":`Other copy`,"clients.otherCopyNewer":`Newer`,"clients.shadowed.title":`Version {version} is installed, but the terminal does not use it`,"clients.shadowed.detail":`The terminal runs {path} ({version}); the newer copy at {other} comes later on PATH or isn't on it. Put {dir} first on PATH, or remove the old copy, to use the new version.`,"clients.notOnPath.title":`Not on the terminal's PATH`,"clients.notOnPath.detail":`This client is installed in {dir}, which is not on the terminal's PATH. Add it to PATH (e.g. in ~/.zshrc) to run it from a terminal.`,"clients.admin.badge":`Admin required`,"clients.admin.tip":`npm's global directory belongs to the administrator. macOS will ask for your login password.`,"clients.admin.tipManual":`npm's global directory belongs to the administrator. Run it with sudo in a terminal.`,"clients.admin.title":`Administrator rights needed`,"clients.admin.prompt":`npm's global directory belongs to the administrator. After you click “Authorize and start”, the system asks for your login password (or Touch ID); Astra never sees it.`,"clients.admin.manual":`npm's global directory belongs to the administrator and no authorization prompt is available here. Copy the command below and run it in a terminal.`,"clients.admin.start":`Authorize and start`,"clients.admin.copyCommand":`Copy command`,"clients.admin.retry":`Retry as administrator`,"clients.admin.retryHint":` Click “Retry as administrator” to get the system authorization prompt.`,"clients.admin.running":`Running as administrator. The output appears when the command ends, and it cannot be stopped midway.`,"clients.admin.fixTip":`To stop needing administrator rights for installs and updates, run this once in a terminal to give npm’s global directory back to your user:`,"clients.hint.timeout":`Stopped after 15 minutes without finishing.`,"clients.installTitle":`Install {name}`,"clients.updateTitle":`Update {name}`,"clients.installRunDetail":`Astra will run this command on this machine and show its output here.`,"clients.installStart":`Start`,"clients.installStop":`Stop`,"clients.installUnavailable":`This action is not available right now`,"clients.installNpmNote":`A global install writes to npm's global directory. Closing this window does not stop it.`,"clients.installedToast":`{name} installed`,"clients.updatedToast":`{name} updated`,"clients.enable":`Enable…`,"clients.disable":`Disable`,"clients.disableRestore":`Disable & restore`,"clients.pickProviderFirst":`Pick a provider below first`,"clients.appliedAt":`Config written {time}`,"clients.bound":`Switched to {provider}; effective immediately`,"clients.boundModelsSynced":`Switched to {provider} and updated the model list in the {client} config`,"clients.disableConfirm":`Disable {name}?`,"clients.disableDetail":`The entries Astra wrote are reverted to their state before enabling.`,"clients.disabledToast":`{name} disabled and config restored`,"clients.driftTitle":`Some settings were edited by hand`,"clients.driftDetail":`These entries changed after enabling and were not restored: {keys}. Force restore?`,"clients.forceRestore":`Force restore`,"clients.providerTitle":`Provider`,"clients.providerFooter":`Add several providers and drag to order them: a request goes to the first provider that offers its model (exact model ID match, or the provider's model mapping), else to the first one. Changes take effect immediately, and the client's model list includes every provider's models.`,"clients.primaryProvider":`Primary`,"clients.dragToReorder":`Drag to reorder {provider}`,"clients.removeProvider":`Remove {provider}`,"clients.providerDisabledBadge":`Disabled`,"clients.moreProvidersTitle":`Available providers`,"clients.providerAdded":`Added {provider}; effective immediately`,"clients.providerRemoved":`Removed {provider}`,"clients.providerOrderSaved":`Provider order updated; effective immediately`,"clients.providersModelsSynced":`Providers updated and the model list in the {client} config synced`,"clients.accountTitle":`Subscription account`,"clients.accountFooter":`Pin a specific account to attribute usage; leave empty for the provider default.`,"clients.account":`Account`,"clients.accountDefault":`Default account`,"clients.noProviders":`No providers yet`,"clients.noProvidersDetail":`Add an AI provider first, then choose it for this client.`,"clients.modelTitle":`Model`,"clients.modelFooter":`Default model written to the client config when enabling; leave unset to keep the client default.`,"clients.modelFooterEnabled":`Changing the default model rewrites the client config.`,"clients.modelSlotsFooter":`A chosen model is written into the Claude Code config (default model ANTHROPIC_MODEL, tiers ANTHROPIC_DEFAULT_*_MODEL); a slot left empty is never written, and an existing setting of the same name in the file is left alone.`,"clients.modelSlotsFooterEnabled":`Changing a model rewrites the client config.`,"clients.options.title":`Client options`,"clients.options.footer":`These apply to this client only: options written to the client config are written when you enable it, and gateway options are handled by Astra when forwarding this client's requests.`,"clients.options.footerEnabled":`Changes need to be applied again.`,"clients.options.unset":`Not set`,"clients.option.context1m":`1M context`,"clients.option.context1m.hint":`Appends [1m] to Claude Code's model names (not the Haiku tier, nor models known to have a smaller window). The upstream must support 1M context.`,"clients.option.cacheTtl":`Cache TTL`,"clients.option.cacheTtl.hint":`Fills in a 5-minute or 1-hour ttl on the cache_control blocks the client already sends; never adds or removes breakpoints. 1-hour writes cost more and suit long sessions.`,"clients.option.maxThinkingTokens":`Max thinking tokens`,"clients.option.maxThinkingTokens.hint":`Writes MAX_THINKING_TOKENS; leave empty to not set it.`,"clients.option.disablePromptCaching":`Disable prompt caching`,"clients.option.disablePromptCaching.hint":`Writes DISABLE_PROMPT_CACHING=1 so the client stops sending cache breakpoints.`,"clients.option.contextWindow":`Context window`,"clients.option.contextWindow.hint":`Writes model_context_window; leave empty to use Codex's default.`,"clients.option.autoCompactTokenLimit":`Auto-compact threshold`,"clients.option.autoCompactTokenLimit.hint":`Writes model_auto_compact_token_limit, the size at which the session is compacted; leave empty to not set it.`,"clients.option.reasoningEffort":`Reasoning effort`,"clients.option.reasoningEffort.hint":`Writes model_reasoning_effort; Default leaves it unset.`,"clients.optionChoice.default":`Default`,"clients.optionChoice.5m":`5 minutes`,"clients.optionChoice.1h":`1 hour`,"clients.optionChoice.minimal":`Minimal`,"clients.optionChoice.low":`Low`,"clients.optionChoice.medium":`Medium`,"clients.optionChoice.high":`High`,"clients.modelSlot.ANTHROPIC_MODEL":`Default model`,"clients.modelSlot.ANTHROPIC_DEFAULT_OPUS_MODEL":`Opus tier`,"clients.modelSlot.ANTHROPIC_DEFAULT_SONNET_MODEL":`Sonnet tier`,"clients.modelSlot.ANTHROPIC_DEFAULT_HAIKU_MODEL":`Haiku tier (fast/background)`,"clients.defaultModel":`Default model`,"clients.modelPlaceholder":`Choose a model`,"clients.modelUnset":`Not set`,"clients.roleMapTitle":`Role mapping`,"clients.roleMapFooter":`Claude Desktop only accepts role models such as Sonnet, Opus and Haiku; Astra swaps them for the provider models chosen here. Set at least one; unset roles use the first one that is set.`,"clients.roleMapFooterEnabled":`The mapping takes effect in the gateway right away once you apply it.`,"clients.roleMapRequired":`Choose a model for at least one role`,"clients.role.sonnet":`Sonnet`,"clients.role.opus":`Opus`,"clients.role.haiku":`Haiku`,"clients.maintenance":`Maintenance`,"clients.openConfigDir":`Open config folder`,"clients.copyConfigPath":`Copy config file path`,"clients.backups":`Config backups`,"clients.backupsDetail":`Taken automatically before every change; restore any time.`,"clients.noBackups":`No backups yet`,"clients.firstWrite":`Before first change`,"clients.restore":`Restore`,"clients.restoreConfirm":`Overwrite the current config with this backup?`,"clients.restored":`Restored from backup`,"clients.tokenTitle":`Token`,"clients.token":`Token written to the config`,"clients.tokenFooter":`Enabling writes "token.client" into the client config; usage is counted per token. Several clients can share one token.`,"clients.tokenFooterEnabled":`Changing the token rewrites the client config.`,"clients.tokenDisabled":`{name} (disabled)`,"clients.manageTokens":`Manage tokens`,"clients.claudeDirect.configure":`Direct settings`,"clients.claudeDirect.modeTitle":`Connection (Astra launcher)`,"clients.claudeDirect.mode":`Connection`,"clients.claudeDirect.gateway":`Gateway`,"clients.claudeDirect.direct":`Official direct`,"clients.claudeDirect.gatewayDetail":`Use the existing gateway configuration. Once enabled, default Claude Code requests go through Astra. astra claude is only for direct mode.`,"clients.claudeDirect.directDetail":`Talk to Anthropic directly with the Claude subscription account selected below, not through the gateway.`,"clients.claudeDirect.modeNote":`This affects only the Astra launcher's own sessions; running claude directly still uses your default configuration.`,"clients.claudeDirect.modeFooter":`Switching only changes how you launch it. Running sessions are never switched live, and your default ~/.claude configuration is not modified.`,"clients.claudeDirect.loadFailed":`Could not read the direct settings`,"clients.claudeDirect.gatewayOnTitle":`Gateway take-over is on — direct would be overridden`,"clients.claudeDirect.gatewayOnDetail":`Astra currently takes this client over, so direct would be written straight back to the gateway configuration. To really go direct, use "Disable & restore" above first, then switch.`,"clients.claudeDirect.noAccount":`No Claude subscription account yet`,"clients.claudeDirect.noAccountDetail":`Direct uses the accounts already signed in under the "Claude subscription (Pro/Max)" provider; sign one in under Providers, then pick it here.`,"clients.claudeDirect.goProviders":`Sign in under Providers`,"clients.claudeDirect.needAccountToast":`Sign in a Claude subscription account under Providers first`,"clients.claudeDirect.accountsTitle":`Subscription account`,"clients.claudeDirect.accountsFooter":`Direct talks to Anthropic with this account's short-lived token, not through the gateway. The token stays on this machine: it is never written into the command or a client config.`,"clients.claudeDirect.account":`Account to use`,"clients.claudeDirect.accountDisabledSuffix":`{status} (disabled)`,"clients.claudeDirect.launchTitle":`Launch`,"clients.claudeDirect.launchNote":`Needs a recent Astra CLI on this machine (npm i -g astragate). The command launches the official Claude Code with the selected subscription account, talking to Anthropic directly, not through the gateway; Astra hands it only a short-lived token, the refresh token stays in Astra. Running claude directly still uses your own configuration. Once the token expires, run the command again — it cannot be renewed mid-session. With a token from the environment, features of the official client that rely on the claude.ai sign-in (connectors, /schedule, …) are unavailable.`,"clients.claudeDirect.statsTitle":`Local statistics`,"clients.claudeDirect.statsConsent":`Collect local statistics`,"clients.claudeDirect.statsConsentDetail":`Off by default. When on, Claude Code reports usage to the local Astra itself: model, time, token counts and its own cost estimate — no message bodies, prompts or tool content.`,"clients.claudeDirect.statsFooter":`Astra stores statistics locally under the request-log retention setting. Disabling stops ingestion immediately; running sessions may keep trying to export until restarted. Estimates are not subscription charges. Organization policies may override client settings; gateway blocking and redaction do not apply to direct traffic.`,"clients.claudeDirect.statsEmpty":`No statistics yet`,"clients.claudeDirect.statsEmptyDetail":`After turning statistics on, start a session with the command above; data shows up here within seconds.`,"clients.claudeDirect.statsFailed":`Could not read the statistics`,"clients.claudeDirect.statsTotals":`Latest {count}`,"clients.claudeDirect.statsInDetail":`Total input (cache read {cache}): {input} · total output: {output}`,"clients.claudeDirect.statsCost":`Estimated cost`,"clients.claudeDirect.statsCostDetail":`The client's own estimate, not what your subscription is actually billed.`,"clients.claudeDirect.statsFailedCount":`{count} of them failed`,"clients.claudeDirect.statusError":`Failed`,"clients.claudeDirect.tokensDetail":`In {input} / Out {output}`,"tokens.subtitle":`Clients and direct calls reach Astra with a token; usage is counted per token`,"tokens.add":`New token`,"tokens.default":`Default`,"tokens.disabledBadge":`Disabled`,"tokens.copy":`Copy token`,"tokens.copied":`Token copied`,"tokens.clients":`Used by`,"tokens.noClients":`No client uses it yet`,"tokens.directProvider":`Direct-call provider`,"tokens.directNone":`Direct calls not allowed`,"tokens.directAccount":`Direct-call subscription account`,"tokens.directHint":`Point any other tool at {url} with this token to call Astra directly; requests go to the direct-call provider.`,"tokens.today":`Today`,"tokens.total":`Lifetime`,"tokens.cost":`Cost`,"tokens.requests":`Requests`,"tokens.cacheHit":`Cache hit rate`,"tokens.tps":`TPS`,"tokens.tpsContext":`Weighted output speed`,"tokens.tokens":`Tokens`,"tokens.inOut":`In / Out`,"tokens.details":`Show details`,"tokens.requestsContext":`{count} requests`,"tokens.lastUsedTitle":`Last used`,"tokens.neverUsed":`Never used`,"tokens.settings":`Settings`,"tokens.name":`Name`,"tokens.namePlaceholder":`e.g. Work laptop`,"tokens.enable":`Enable`,"tokens.disable":`Disable`,"tokens.disableConfirm":`Disable {name}?`,"tokens.disableDetail":`Clients and direct calls using this token are rejected until it is enabled again. Client configs are not changed.`,"tokens.reset":`Reset key`,"tokens.resetConfirm":`Reset the key of {name}?`,"tokens.resetDetail":`The old key stops working immediately. Enabled clients using this token get their config rewritten; configs edited by hand are skipped and need to be re-enabled.`,"tokens.resetDone":`Key reset; {count} client configs rewritten`,"tokens.skipped":`These clients could not be updated and need to be re-enabled on the Clients page: {clients}`,"tokens.delete":`Delete token`,"tokens.deleteConfirm":`Delete {name}?`,"tokens.deleteDetail":`Its clients switch to the default token and get their config rewritten. The request log keeps the token name.`,"tokens.deleted":`Deleted {name}`,"tokens.created":`Created {name}`,"tokens.createTitle":`New token`,"tokens.settingsTitle":`Token settings · {name}`,"tokens.empty":`No tokens yet`,"clients.enableTitle":`Enable {name}`,"clients.enableDetail":`These are the edits Astra will make. It only adds or changes its own entries and backs up the original file first.`,"clients.enabledToast":`{name} enabled`,"clients.enabledRestart":`{name} enabled — restart the client to apply`,"clients.noChanges":`The config is already up to date.`,"providers.add":`Add provider`,"providers.count":`{count} providers`,"providers.empty":`No providers yet`,"providers.emptyDetail":`Add OpenAI, Anthropic, DeepSeek, OpenRouter and more from built-in templates, or any compatible endpoint.`,"providers.import":`Import from other apps`,"import.title":`Import providers from other apps`,"import.detail":`Read-only scan of the local configuration of CC Switch, Alma, Claude Code, Codex and Magpie. Nothing there is modified; API keys are read and encrypted by the server and never pass through the browser.`,"import.search":`Search by name or address`,"import.path":`Read from: {path}`,"import.notFound":`Not found`,"import.sourceError":`Could not be read: {error}`,"import.noItems":`No providers to import`,"import.noMatch":`No matching providers`,"import.scanning":`Scanning…`,"import.status.new":`New`,"import.status.same":`Already added`,"import.status.sameHost":`Same address`,"import.status.off":`Disabled`,"import.status.skip":`Cannot import`,"import.existing":`Already added as "{name}"`,"import.sameHostHint":`"{name}" already uses this address; this will be imported as a new provider`,"import.noKey":`No key`,"import.models":`{count} models`,"import.template":`Template: {id}`,"import.ignored":`Will ignore: {fields}`,"import.skip.official-login":`Official login (tokens are bound to the source app)`,"import.skip.no-base-url":`No base URL`,"import.skip.unsupported-protocol":`Unsupported protocol`,"import.skip.points-to-astra":`Points at Astra itself`,"import.skip.invalid-base-url":`Invalid base URL`,"import.skip.no-inline-key":`Key comes from an environment variable and is not read`,"import.selected":`Import selected ({count})`,"import.done":`Imported {count} providers`,"import.doneSkipped":`Imported {count} providers, skipped {skipped}`,"import.footnote":`Routing, rate limits, balance queries, sessions and usage are not imported. Importing never changes any client configuration and makes no upstream requests.`,"import.rescan":`Rescan`,"providers.modelCount":`{count} models`,"providers.priceKeyShort":`Prices: {key}`,"providers.templateUpdate":`Template update`,"providers.noKey":`No API key`,"providers.card.active":`Active`,"providers.card.disabled":`Disabled`,"providers.card.subscription":`Subscription`,"providers.card.noAuth":`No key needed`,"providers.card.requests7d":`Requests, last 7 days`,"providers.card.noRequests":`No requests yet`,"providers.created":`Added {name}`,"providers.addTitle":`Choose a provider template`,"providers.addTitleDetails":`Provider details`,"providers.addDetail":`Templates include endpoints, protocols and a default model list.`,"providers.custom":`Custom provider`,"providers.customDetail":`Any OpenAI / Anthropic / Gemini compatible endpoint`,"providers.searchTemplates":`Search templates`,"providers.category.recommended":`Recommended`,"providers.category.official":`Official`,"providers.category.subscription":`Subscriptions`,"providers.category.cn":`China`,"providers.category.aggregator":`Aggregators`,"providers.category.local":`Local`,"providers.category.custom":`Other`,"providers.category.plugin":`Plugins`,"providers.pluginProvided":`From a plugin · open it to sign in`,"providers.pluginHint":`Install an OpenCode / magpie provider plugin and the providers it serves show up here.`,"providers.create":`Add`,"providers.name":`Name`,"providers.variant":`Region / edition`,"providers.variantDefault":`Default region`,"providers.baseUrl":`Base URL`,"providers.baseUrlHint":`Usually ends with /v1`,"providers.protocol":`Protocol`,"providers.authScheme":`Authentication`,"providers.apiKey":`API key`,"providers.apiKeyHint":`Stored encrypted on this machine`,"providers.subscriptionWizardHint":`No API key needed — sign in with your subscription`,"providers.subscriptionWizardDetail":`After creating the provider, click "Add account" on its Accounts tab and authorize in the browser. The vendor's terms and quotas apply.`,"providers.subscriptionAdded":`Added · add accounts inside the provider`,"providers.subscription.quotaSession":`5h used {percent}%`,"providers.subscription.quotaWeekly":`Weekly used {percent}%`,"providers.subscription.quotaCredits":`Credits used {percent}%`,"providers.subscription.quotaBalance":`Balance {balance}`,"providers.subscription.quotaRefresh":`Refresh quota`,"providers.subscription.quotaUnsupported":`Quota is not available for this subscription yet`,"providers.subscription.quotaResets":`resets {when}`,"providers.subscription.quotaLoading":`Fetching quota…`,"providers.subscription.quotaNoAccount":`Account is not usable — sign in again to see quota`,"providers.subscription.quotaWindowPremium":`Premium requests`,"providers.subscription.quotaPremiumCount":`{used} of {total} premium requests used`,"providers.subscription.quotaOverage":`{count} overage`,"providers.subscription.quotaOverageOff":`overage not enabled`,"providers.subscription.quotaFetchedAt":`updated {when}`,"providers.subscription.quotaNoWindows":`This account reports no quota windows`,"providers.subscription.quotaWindowSession":`Session window`,"providers.subscription.quotaWindowWeekly":`Weekly window`,"providers.subscription.quotaWindowCredits":`Credits`,"providers.quota.title":`Usage query`,"providers.quota.footer":`Queries this provider's balance or plan usage with a template; results appear on the provider card and in the tray. A failed query only shows an error and never affects the provider itself.`,"providers.quota.enable":`Enable usage query`,"providers.quota.enableHint":`Refreshed in the background once enabled`,"providers.quota.template":`Template`,"providers.quota.templateAuto":`Automatic ({name})`,"providers.quota.templateNone":`Automatic (no matching template)`,"providers.quota.custom":`Custom`,"providers.quota.kind.balance":`Balance`,"providers.quota.kind.plan":`Plan usage`,"providers.quota.param.userId":`User ID`,"providers.quota.param.accessToken":`System access token`,"providers.quota.paramsHint":`The system access token and user ID generated in New API / One API personal settings — not the sk- API key.`,"providers.quota.secretStored":`Saved — leave empty to keep`,"providers.quota.interval":`Auto refresh (minutes)`,"providers.quota.intervalHint":`Empty follows the global setting; 0 never refreshes in the background. Now: {value}`,"providers.quota.intervalEvery":`every {minutes} min`,"providers.quota.intervalOff":`no background refresh`,"providers.quota.timeout":`Timeout (seconds)`,"providers.quota.baseUrl":`Query address`,"providers.quota.baseUrlHint":`Empty uses the provider endpoint ({{origin}} / {{baseUrl}} come from it)`,"providers.quota.method":`Method`,"providers.quota.url":`URL`,"providers.quota.urlHint":`Placeholders: {{origin}}, {{baseUrl}}, {{host}}, {{apiKey}} and the parameter names above`,"providers.quota.auth":`Authentication`,"providers.quota.auth.provider":`Use the provider API key`,"providers.quota.auth.none":`Only the headers below`,"providers.quota.headers":`Headers (JSON)`,"providers.quota.extract":`Extraction rules (JSON)`,"providers.quota.extractHint":`A string is a path into the response (e.g. data.balance), a number is a constant; an array takes the first value present; supports $const, $add, $sub, $mul, $div, $scale, $pctUsed, $eq, $not, $case, $var, $time. Missing fields are never treated as 0.`,"providers.quota.invalidJson":`{field} is not a valid JSON object`,"providers.quota.test":`Test query`,"providers.quota.testDesc":`Sends one real request with the current (unsaved) configuration`,"providers.quota.fetch":`Query now`,"providers.quota.refresh":`Refresh balance`,"providers.quota.fetchedAt":`Updated {time}`,"providers.quota.never":`Not queried yet`,"providers.quota.off":`Usage query is off`,"providers.quota.rawResponse":`Raw response (redacted)`,"providers.quota.requestUrl":`Request URL`,"providers.quota.httpStatus":`HTTP status`,"providers.quota.testOk":`Query succeeded`,"providers.quota.testFailed":`Query failed`,"providers.quota.extracted":`Extracted`,"providers.quota.balance":`Balance {amount}`,"providers.quota.usedPercent":`{percent}% used`,"providers.quota.window":`{window}: {percent}% used`,"providers.quota.totalUsed":`{used} used of {total}`,"providers.quota.resets":`resets {time}`,"providers.quota.invalid":`Account unavailable`,"providers.quota.failed":`Usage query failed: {error}`,"providers.quota.lastGood":`Showing the last successful result`,"providers.quota.error.config":`The query configuration is incomplete`,"providers.quota.error.no_key":`This provider has no API key`,"providers.quota.error.unauthorized":`The upstream refused the quota query (invalid credentials or no permission)`,"providers.quota.error.no_endpoint":`No quota endpoint at this address; pick another template or use a custom query`,"providers.quota.error.rate_limited":`Rate limited upstream; use a longer interval`,"providers.quota.error.upstream":`The upstream returned an error`,"providers.quota.error.timeout":`The query timed out`,"providers.quota.error.network":`Could not reach the upstream`,"providers.quota.error.not_json":`The response is not JSON`,"providers.quota.error.too_large":`The response is too large`,"providers.quota.error.empty":`The query succeeded but no quota field was found`,"settings.proxy":`Network proxy`,"settings.proxy.footer":`Gateway forwarding, subscription sign-in, quota queries, update checks and client installs all connect through this setting. Local addresses always connect directly; a provider with its own proxy uses that instead.`,"settings.proxy.mode":`Proxy`,"settings.proxy.mode.system":`System`,"settings.proxy.mode.custom":`Custom`,"settings.proxy.mode.direct":`None`,"settings.proxy.mode.system.hint":`HTTPS_PROXY-style environment variables first, then the operating system proxy`,"settings.proxy.mode.custom.hint":`All outbound requests use the proxy below`,"settings.proxy.mode.direct.hint":`Ignore environment variables and the system proxy; always connect directly`,"settings.proxy.url":`Proxy URL`,"settings.proxy.urlHint":`http, https or socks5, including the port`,"settings.proxy.username":`Username`,"settings.proxy.password":`Password`,"settings.proxy.optional":`Optional`,"settings.proxy.passwordSaved":`Saved; leave blank to keep it`,"settings.proxy.bypass":`Bypass for`,"settings.proxy.bypassHint":`Comma separated; subdomains match too`,"settings.proxy.saved":`Proxy settings saved`,"settings.quota":`Provider usage query`,"settings.quota.autoInterval":`Background refresh`,"settings.quota.autoIntervalHint":`Providers with the usage query enabled refresh their balance at this interval; 0 turns it off. A provider can set its own.`,"settings.minutes":`min`,"tray.quotaBalance":`Balance`,"providers.subscription.relogin":`Sign in again`,"providers.getKey":`Get an API key ↗`,"providers.priceKey":`Price table`,"providers.priceKeyHint":`Which provider's model prices apply; the same model costs differently at different providers.`,"providers.priceKeyNone":`Official default prices only`,"providers.priceKeyDefault":`Default ({id})`,"providers.templateModels":`The template's {count} models will be added; you can change them later.`,"providers.tab.models":`Models`,"providers.tab.settings":`Settings`,"providers.tab.accounts":`Accounts`,"providers.tab.apiKey":`API key`,"providers.test":`Test`,"providers.testDialog.title":`Test {name}`,"providers.testDialog.subtitle":`Applies the privacy policy and logs the request; never retried`,"providers.testDialog.modeSingle":`Single model`,"providers.testDialog.modeBatch":`Batch`,"providers.testDialog.config":`Test configuration`,"providers.testDialog.model":`Test model`,"providers.testDialog.modelPlaceholder":`Type any model ID`,"providers.testDialog.showModels":`Show model list`,"providers.testDialog.protocol":`Test protocol`,"providers.testDialog.stream":`Streamed response`,"providers.testDialog.maxTokens":`Max output tokens`,"providers.testDialog.prompt":`Test prompt (optional)`,"providers.testDialog.promptHint":`The default prompt is used when left empty.`,"providers.testDialog.realRequest":`A real request; it may consume quota`,"providers.testDialog.savedCredentials":`Uses the connection and credentials saved for this provider.`,"providers.testDialog.start":`Start test`,"providers.testDialog.retest":`Test again`,"providers.testDialog.stop":`Stop`,"providers.testDialog.stopRest":`Stop the rest`,"providers.testDialog.testN":`Test {count} models`,"providers.testDialog.metrics.http":`HTTP response`,"providers.testDialog.metrics.firstWait":`First token wait`,"providers.testDialog.metrics.ttft":`First token total`,"providers.testDialog.metrics.total":`Total time`,"providers.testDialog.metricsHelp":`HTTP response: time to the upstream response headers. First token: time to the first piece of the answer. Wait is measured from the headers arriving, the total from the request being sent.`,"providers.testDialog.reply":`Provider reply`,"providers.testDialog.preview":`Preview`,"providers.testDialog.raw":`Raw`,"providers.testDialog.rawNote":`Response body as processed by the gateway (credentials redacted)`,"providers.testDialog.rawTruncated":`Truncated: the raw body was longer than 256 KiB`,"providers.testDialog.reasoning":`Reasoning`,"providers.testDialog.noText":`The upstream returned no text.`,"providers.testDialog.headers":`Response headers`,"providers.testDialog.headersCount":`{count} headers`,"providers.testDialog.headersEmpty":`The upstream returned no response headers.`,"providers.testDialog.emptyTitle":`No test yet`,"providers.testDialog.emptyDetail":`Start a test to send one real request to this provider.`,"providers.testDialog.status.idle":`Waiting for a test`,"providers.testDialog.status.running":`Testing`,"providers.testDialog.status.success":`Test succeeded`,"providers.testDialog.status.failed":`Test failed`,"providers.testDialog.selected":`Selected {n} / {total}`,"providers.testDialog.progress":`Finished {done} / {total} · {ok} succeeded · {failed} failed`,"providers.testDialog.progressDone":`This batch finished {total} / {total} · {ok} succeeded · {failed} failed`,"providers.testDialog.clearSelection":`Clear selection`,"providers.testDialog.searchModels":`Search or type a model ID`,"providers.testDialog.addModel":`Add "{id}"`,"providers.testDialog.view":`View`,"providers.testDialog.noModels":`This provider has no models yet; type an ID above to test one.`,"providers.testDialog.status.queued":`Queued`,"providers.testDialog.status.cancelled":`Cancelled`,"providers.testDialog.statusColumn":`Status`,"providers.testDialog.ownFilter":`Select all models of this provider`,"providers.duplicate":`Duplicate`,"providers.deleteConfirm":`Delete {name}?`,"providers.deleteDetail":`The provider and its model settings are removed; request history is kept.`,"providers.deleted":`Deleted`,"providers.deleteBound":`Still used by: {clients}. Switch them to another provider first.`,"providers.templateVersions":`Current version {current}, latest {latest}`,"providers.templateApplied":`Updated to the latest template`,"providers.templateUpToDate":`Already on the latest template.`,"providers.searchModels":`Search models`,"providers.addModels":`Add models`,"providers.addModelsDetail":`Enter model IDs, one per line or comma separated; they are linked to system models to inherit parameters and prices.`,"providers.fetchRemote":`Fetch from upstream`,"providers.fetchRemoteDetail":`Reads the provider's model list and links models to the system catalog so they inherit parameters and prices.`,"providers.noModels":`No models yet`,"providers.noModelsDetail":`Fetch the model list from upstream, or enter model IDs manually.`,"providers.modelsFooter":`A model needs only an ID: fields you don't override are inherited from the linked system model, priced with this provider's price table.`,"providers.modelMap.title":`Model mapping`,"providers.modelMap.footer":`Turns a model ID clients ask for into one of this provider's models, e.g. deepseek-v4.1 → deepseek-chat. Mapped IDs appear in the clients' model lists, and clients bound to several providers route them here. Billing follows the model actually sent.`,"providers.modelMap.add":`Add mapping`,"providers.modelMap.addDetail":`When a client asks for the model ID on the left, Astra requests the model on the right from this provider instead.`,"providers.modelMap.needModels":`Add models to this provider first`,"providers.modelMap.from":`Requested model ID`,"providers.modelMap.to":`This provider's model`,"providers.modelMap.toPlaceholder":`Choose a model`,"providers.modelMap.remove":`Remove mapping {from}`,"providers.modelMap.saved":`Model mapping saved`,"providers.modelMap.missingTarget":`Target model missing`,"providers.unlinked":`Unlinked`,"providers.modelsAdded":`Added {count} models`,"providers.addSelected":`Add {count}`,"providers.linksTo":`Links to {id}`,"providers.noLink":`No system model`,"providers.added":`Added`,"providers.linkedModel":`Linked system model`,"providers.linkedModelHint":`Fields and prices that are not overridden are inherited from it.`,"providers.overrides":`Overrides`,"providers.price":`Price`,"providers.customPrice":`Custom price`,"providers.customPriceHint":`A custom price fully replaces the inherited one and is not scaled by the provider multiplier.`,"providers.inheritedPriceHint":`Effective price (inherited, resolved with this provider's price table):`,"providers.removeModel":`Remove {id} from this provider?`,"providers.removeModelShort":`Remove model`,"providers.section.basic":`Basics`,"providers.section.auth":`Authentication`,"providers.section.endpoints":`Endpoints`,"providers.section.billing":`Billing`,"providers.section.advanced":`Advanced`,"providers.section.info":`Info`,"providers.subscription":`Subscription accounts`,"providers.subscription.footer":`Tokens are stored encrypted on this machine and refreshed before they expire.`,"providers.subscription.login":`Sign in`,"providers.subscription.loginDesc":`Finish the provider's authorization flow; tokens stay on this machine.`,"providers.subscription.logout":`Sign out & delete`,"providers.subscription.logoutConfirm":`Sign out account "{name}"? Clients pinned to it fall back to the default account.`,"providers.subscription.refreshToken":`Refresh token`,"providers.subscription.tokenRefreshed":`Token refreshed`,"providers.subscription.expires":`Expires`,"providers.subscription.status.active":`Active`,"providers.subscription.status.expired":`Expired`,"providers.subscription.status.revoked":`Revoked`,"providers.subscription.none":`No subscription account signed in yet`,"providers.subscription.openAuthorize":`Open authorization page`,"providers.subscription.doneAuthorize":`I've finished authorizing`,"providers.subscription.waiting":`Waiting for authorization…`,"providers.subscription.waitingDetail":`The authorization page opened in your browser; this page detects the new account automatically.`,"providers.subscription.cliDetail":`Finish the authorization in your browser; sign-in completes here automatically (server-side polling, no callback URL needed).`,"providers.subscription.checkNow":`I authorized — check now`,"providers.subscription.checkNowHint":`Click after finishing in the browser; this page also checks every few seconds on its own.`,"providers.subscription.pasteTitle":`Paste the code shown on the authorization page`,"providers.subscription.pasteDetail":`Claude's registered redirect URI is not a loopback address, so the browser cannot come back here: the authorization page displays a code instead. Open it, authorize, then paste the code below.`,"providers.subscription.pastePlaceholder":`Paste the authorization code (like xxxx#yyyy)`,"providers.subscription.pasteCode":`Authorization code`,"providers.subscription.pasteSubmit":`Finish sign-in`,"providers.subscription.stillWaiting":`No authorization yet — make sure you confirmed in the browser.`,"providers.subscription.deviceCode":`Device code`,"providers.subscription.visitPage":`Open verification page`,"providers.subscription.loginOk":`Authorized: {name}`,"providers.subscription.loginFailed":`Sign-in failed`,"providers.subscription.importCodex":`Import local Codex sign-in`,"providers.subscription.importCodexHint":`Adopt the codex sign-in already stored in ~/.codex/auth.json; no browser round-trip needed`,"providers.subscription.importOk":`Imported the local Codex account: {name}`,"providers.subscription.importCopilot":`Import local GitHub authorization`,"providers.subscription.importCopilotHint":`Adopt a GitHub authorization already on this machine (the VS Code GitHub session, GH_TOKEN, or the Copilot plugin config) as a Copilot account, instead of repeating the device flow`,"providers.subscription.importCopilotPlaceholder":`or paste a GitHub token (gho_…)`,"providers.subscription.importCopilotToken":`GitHub token`,"providers.subscription.localCopilotFound":`Found a local GitHub authorization: {source}`,"providers.subscription.importBatch":`Batch import tokens`,"providers.subscription.importBatchTitle":`Batch import GitHub tokens`,"providers.subscription.importBatchLabel":`GitHub tokens (one per line)`,"providers.subscription.importBatchDesc":`Paste GitHub tokens (gho_ / ghp_ / github_pat_), one per line. Each one becomes a Copilot account; duplicates and tokens without a Copilot subscription are reported, not imported. You can also paste a ready-to-use Copilot token (tid=…;exp=…): it is used as is, but cannot renew itself and must be re-imported after it expires.`,"providers.subscription.importBatchPlaceholder":`gho_xxxxxxxxxxxx
|
|
13
13
|
tid=xxxx;exp=1760000000;sku=...
|
|
14
|
-
# lines starting with # are ignored`,"providers.subscription.importBatchCount":`{n} token(s) recognised`,"providers.subscription.importBatchRun":`Import`,"providers.subscription.importBatchSummary":`Imported {ok}, duplicates {dup}, failed {fail}`,"providers.subscription.importBatchStatus.imported":`Imported`,"providers.subscription.importBatchStatus.duplicate":`Duplicate`,"providers.subscription.importBatchStatus.invalid_format":`Invalid format`,"providers.subscription.importBatchStatus.failed":`Failed`,"providers.subscription.importBatchStatus.updated":`Updated`,"providers.subscription.importBatchStatus.ready":`Ready`,"providers.accounts.statTotal":`{n} accounts`,"providers.accounts.statUsable":`{n} usable`,"providers.accounts.statCooling":`{n} cooling down`,"providers.accounts.statDead":`{n} signed out`,"providers.accounts.providerProxy":`Provider proxy: {proxy}`,"providers.accounts.filter.all":`All`,"providers.accounts.filter.usable":`Usable`,"providers.accounts.filter.cooling":`Cooling`,"providers.accounts.filter.dead":`Signed out`,"providers.accounts.filter.disabled":`Disabled`,"providers.accounts.filterLabel":`Filter by status`,"providers.accounts.search":`Search email / name / key`,"providers.accounts.add":`Add account`,"providers.accounts.addLogin":`Sign in with browser`,"providers.accounts.addLoginProxy":`Sign in through a proxy…`,"providers.accounts.addToken":`Paste a token…`,"providers.accounts.addApiKey":`Add API key…`,"providers.accounts.batchImport":`Batch import`,"providers.accounts.noMatch":`No accounts match`,"providers.accounts.select":`Select {name}`,"providers.accounts.selected":`{n} selected`,"providers.accounts.clearSelection":`Clear selection`,"providers.accounts.bulkDeleteConfirm":`Delete the {n} selected accounts?`,"providers.accounts.bulkDeleteDetail":`Their tokens are removed from this machine; clients bound to them fall back to the default account.`,"providers.accounts.bulkDone":`{n} accounts updated`,"providers.accounts.kind.oauth":`OAuth`,"providers.accounts.kind.api_key":`API key`,"providers.accounts.source.login":`Browser sign-in`,"providers.accounts.source.local":`Local import`,"providers.accounts.source.token":`Pasted`,"providers.accounts.source.batch":`Batch import`,"providers.accounts.expiresAt":`expires {when}`,"providers.accounts.neverExpires":`never expires`,"providers.accounts.proxyBadge":`Own proxy`,"providers.accounts.signedOut":`Signed out`,"providers.accounts.quotaShortWeekly":`Week`,"providers.accounts.quotaShortSession":`Session`,"providers.accounts.quotaShortCredits":`Credits`,"providers.accounts.quotaShortPremium":`Premium`,"providers.accounts.order":`#{n}`,"providers.accounts.detail.identity":`Account`,"providers.accounts.detail.name":`Name`,"providers.accounts.detail.proxy":`Account proxy`,"providers.accounts.detail.proxyHint":`This account's requests, token refreshes and quota checks go through it; empty follows the provider ({fallback}).`,"providers.accounts.detail.quota":`Quota`,"providers.accounts.detail.credentials":`Credentials`,"providers.accounts.detail.kind":`Kind`,"providers.accounts.detail.source":`Source`,"providers.accounts.detail.status":`Status`,"providers.accounts.detail.expires":`Token expires`,"providers.accounts.detail.lastRefresh":`Last refresh`,"providers.accounts.detail.created":`Added`,"providers.accounts.detail.order":`Failover order`,"providers.accounts.detail.lastError":`Last error`,"providers.accounts.detail.key":`API key`,"providers.accounts.proxyFallbackSystem":`system proxy`,"providers.accounts.renamed":`Renamed`,"providers.accounts.proxySaved":`Account proxy saved`,"providers.accounts.loginProxyTitle":`Sign in through a proxy`,"providers.accounts.loginProxyDesc":`The new account reaches the upstream through this proxy from the sign-in on (code exchange, refreshes and requests). The authorization page still opens in your browser.`,"providers.accounts.loginProxyStart":`Start sign-in`,"providers.accounts.import.batchTitle":`Batch import accounts`,"providers.accounts.import.tokenTitle":`Paste a token`,"providers.accounts.import.apiKeyTitle":`Add API key`,"providers.accounts.import.desc":`Tokens are stored encrypted on this machine; results only show their first and last characters.`,"providers.accounts.import.label":`Tokens to import (one per line)`,"providers.accounts.import.apiKeyLabel":`API keys (one per line)`,"providers.accounts.import.formats":`Accepted: {formats}`,"providers.accounts.import.count":`{n} entries recognised`,"providers.accounts.import.preview":`Preview`,"providers.accounts.import.run":`Import`,"providers.accounts.import.proxy":`Account proxy (optional)`,"providers.accounts.import.summary":`{ok} imported, {dup} duplicates, {fail} failed`,"providers.accounts.import.previewSummary":`{ok} ready, {dup} duplicates, {fail} unrecognised`,"providers.accounts.import.rotateWarning":`Refresh tokens are usually single-use: after the import, the client that used it (Claude Code, Codex, …) may have to sign in again.`,"providers.accounts.credential.refresh_token":`refresh token`,"providers.accounts.credential.setup_token":`setup-token`,"providers.accounts.credential.api_key":`API key`,"providers.accounts.credential.github_token":`GitHub token`,"providers.accounts.credential.copilot_token":`Copilot token`,"providers.accounts.credential.claude_credentials":`.credentials.json`,"providers.accounts.credential.codex_auth_json":`auth.json`,"providers.accounts.format.claude-refresh-token":`refresh token (sk-ant-ort01-…)`,"providers.accounts.format.claude-setup-token":`claude setup-token (sk-ant-oat01-…)`,"providers.accounts.format.claude-credentials-json":`Claude Code's .credentials.json`,"providers.accounts.format.codex-auth-json":`the contents of ~/.codex/auth.json`,"providers.accounts.format.refresh-token":`refresh token`,"providers.accounts.format.grok-sso":`Grok Web SSO (sso cookie / email----password----…----sso)`,"providers.accounts.format.kimi-api-key":`Kimi Code API key (sk-kimi-…)`,"providers.accounts.format.zai-api-key":`Z.AI Coding Plan API key`,"providers.accounts.format.bigmodel-api-key":`Zhipu Coding Plan API key`,"providers.accounts.format.github-token":`GitHub token (gho_ / ghp_ / github_pat_)`,"providers.accounts.format.copilot-token":`Copilot token (tid=…;exp=…)`,"providers.subscription.localCopilotHint":`Import reads the VS Code entry in the system credential store (macOS shows a consent prompt); you can also paste a GitHub token directly`,"providers.subscription.localCodexFound":`Found a local Codex sign-in: {who}`,"providers.subscription.unknownAccount":`unknown account`,"providers.subscription.credits.title":`Rate-limit reset cards`,"providers.subscription.credits.footer":`codex reset cards: spending one clears the current rate-limit window immediately.`,"providers.subscription.credits.none":`This account has no reset cards`,"providers.subscription.credits.unavailable":`Reset cards are unavailable right now (signed out, or the upstream is unreachable).`,"providers.subscription.credits.availableCount":`{count} available`,"providers.subscription.credits.consume":`Use`,"providers.subscription.credits.consumeConfirm":`Use reset card “{title}”?`,"providers.subscription.credits.consumeDetail":`Clears the current rate-limit window immediately and cannot be undone.`,"providers.subscription.credits.consumed":`Reset card used; quota refreshed`,"providers.subscription.credits.consumeFailed":`Could not use the reset card`,"providers.subscription.credits.expires":`expires {when}`,"providers.subscription.credits.redeemedAt":`used {when}`,"providers.subscription.credits.notInPlan":`not in the current plan`,"providers.subscription.credits.status.available":`Available`,"providers.subscription.credits.status.redeemed":`Used`,"providers.subscription.credits.status.expired":`Expired`,"providers.subscription.needsVerification":`Coming soon: this subscription's sign-in flow has not been verified yet`,"providers.subscription.current":`In use`,"providers.subscription.disabled":`Disabled`,"providers.subscription.activate":`Switch to this account`,"providers.subscription.activated":`Switched to {name}; applies from the next request`,"providers.subscription.enable":`Enable`,"providers.subscription.disable":`Disable`,"providers.subscription.moveUp":`Move up`,"providers.subscription.moveDown":`Move down`,"providers.subscription.cooldown":`Rate-limited until {when}`,"providers.subscription.policy.title":`Usage policy`,"providers.subscription.policy.footer":`Switching accounts applies from the next request, no client restart needed. Requests from a client or token pinned to an account are not affected.`,"providers.subscription.policy.claudeCodeOnly":`Claude Code only`,"providers.subscription.policy.claudeCodeOnlyDetail":`Only requests from Claude Code (including its IDE extensions and Agent SDK) are accepted, with its headers forwarded as-is; other clients get a 403.`,"providers.subscription.policy.anyWarning":`Other clients are allowed: Astra only adds the headers OAuth requires and does not impersonate Claude Code. Anthropic may bill these requests as extra usage, reject them, or treat them as a terms-of-service violation.`,"providers.subscription.policy.mimic":`Other clients impersonate Claude Code`,"providers.subscription.policy.mimicDetail":`Requests from clients other than Claude Code carry the Claude Code identity (system identity blocks, the claude-cli User-Agent, X-Stainless fingerprints and the full beta set); without it the subscription token's non-Haiku models are rejected upstream. Off by default.`,"providers.subscription.policy.mimicWarning":`Claude Code impersonation is on: requests present the official CLI identity. This violates Anthropic’s terms of service and may get the account limited or banned — the risk is yours.`,"providers.subscription.policy.switchMode":`Account switching`,"providers.subscription.policy.manual":`Manual`,"providers.subscription.policy.failover":`Automatic failover`,"providers.subscription.policy.manualDetail":`Changes only when you switch, or when the current account dies or is disabled.`,"providers.subscription.policy.failoverDetail":`When the current account is rate-limited (429) or its sign-in dies, the next usable account takes over and stays in use.`,"providers.subscription.policy.balanced":`Balanced`,"providers.subscription.policy.balancedDetail":`Spreads requests over all usable accounts, fewest in flight first. A conversation (same prompt_cache_key or Claude Code session) stays on one account so the upstream prompt cache keeps hitting; a rate-limited or dead account is skipped. Bindings are kept in memory only.`,"providers.notes":`Notes`,"providers.apiKeyStored":`The API key is stored encrypted on this machine. Leave empty to keep it.`,"providers.replaceKey":`Enter a new key to replace`,"providers.endpointsFooter":`One URL per protocol; Astra translates when the client protocol differs from upstream.`,"providers.fullUrl":`Full URL`,"providers.addEndpoint":`Add endpoint`,"providers.preferred":`Upstream protocol order`,"providers.preferredHint":`Used to pick an upstream endpoint when translation is needed`,"providers.preferredMissing":`{protocol} has no endpoint address, so it is never selected from this order`,"providers.billingFooter":`The multiplier only scales inherited prices; custom model prices are not multiplied.`,"providers.multiplier":`Price multiplier`,"providers.multiplierHint":`e.g. a reseller charging official price ×1.1`,"providers.proxy":`HTTP proxy`,"providers.proxyHint":`This provider's requests, subscription sign-ins, token refreshes and quota checks; subscription accounts can override it under Accounts`,"providers.headers":`Extra headers`,"providers.addHeader":`Add header`,"providers.addHeaderDetail":`Sent with every request to this provider; applied when you save.`,"providers.headerName":`Name`,"providers.headerValue":`Value`,"providers.addEndpointDetail":`The URL for one protocol; applied when you save.`,"providers.fullUrlHint":`The URL is the complete request URL; no path is appended`,"providers.adapterSettings":`Adapter settings (JSON)`,"providers.adapter":`Adapter`,"providers.boundClients":`Used by`,"origin.inherited":`Inherited`,"origin.overridden":`Overridden`,"origin.unset":`Unset`,"origin.reset":`Reset to inherited`,"models.count":`{count} models`,"models.search":`Search models, aliases`,"models.allVendors":`All vendors`,"models.sync":`Sync model catalog`,"models.syncDetail":`Fetch the latest parameters and prices from the official catalog (astra-gate.si). Fields you modified are never overwritten.`,"models.new":`New model`,"models.newDetail":`Add parameters and a default price for a model the catalog does not have.`,"models.col.model":`Model`,"models.col.vendor":`Vendor`,"models.col.context":`Context`,"models.col.price":`Input / output`,"models.col.providerPrices":`Provider prices`,"models.empty":`No matching models`,"models.source.seed":`Built-in`,"models.source.sync":`Synced`,"models.source.user":`Custom`,"models.modified":`Modified`,"models.providerPriceCount":`{count} providers`,"models.updated":`updated {time}`,"models.resetField":`Restore built-in value`,"models.fieldReset":`Restored built-in value`,"models.deleteConfirm":`Delete model {id}?`,"models.section.basic":`Parameters`,"models.section.capabilities":`Capabilities`,"models.section.pricing":`Official default price`,"models.section.providerPrices":`Prices by provider`,"models.section.overrides":`Provider custom prices`,"models.section.simulator":`Billing simulator`,"models.modifiedFooter":`Fields marked "Modified" are never overwritten by built-in data or syncs.`,"models.pricingHint":`The vendor's official price; used when a provider has no price of its own (scaled by the provider multiplier).`,"models.providerPricesFooter":`The same model priced at different AI providers (by price table); takes precedence over the official default.`,"models.overridesFooter":`These providers set their own price for this model; it has the highest priority.`,"models.noProviderPrices":`No provider-specific prices`,"models.hasTimeWindows":`time windows`,"models.hasTiers":`tiers`,"models.deletePrice":`Delete the {key} price?`,"models.addPrice":`Add provider price`,"models.editPrice":`Edit {key} price`,"models.priceSheetDetail":`Applies only to providers using this price table.`,"models.pickPriceKey":`Choose a price table`,"models.customPriceKey":`or enter a custom price table ID`,"models.upstreamId":`Provider's model ID`,"models.upstreamIdHint":`Set when it differs from the system ID; used for auto-linking`,"models.simulatorUnsaved":`Unsaved changes: simulating with the edited price.`,"models.field.id":`Model ID`,"models.field.idHint":`The name clients send`,"models.field.displayName":`Display name`,"models.field.vendor":`Vendor`,"models.field.family":`Family`,"models.field.aliases":`Aliases`,"models.field.contextWindow":`Context window`,"models.field.maxOutputTokens":`Max output`,"models.field.inputPrice":`Input /1M`,"models.field.outputPrice":`Output /1M`,"models.sync.newModel":`New model`,"models.sync.price":`Price · {key}`,"models.sync.field":`Field · {field}`,"models.sync.applied":`Applied {count} changes`,"models.sync.apply":`Apply {count}`,"models.sync.check":`Check for updates`,"models.sync.none":`Everything is up to date`,"models.sync.userModified":`Modified by you`,"cap.vision":`Image input`,"cap.tools":`Tool calling`,"cap.reasoning":`Reasoning`,"cap.promptCache":`Prompt caching`,"cap.audio":`Audio`,"cap.pdf":`PDF`,"cap.structuredOutput":`Structured output`,"requests.col.cache":`Cache read / write`,"usage.title":`Token usage`,"usage.inputTotal":`Total input`,"usage.outputTotal":`Total output`,"usage.input":`Input`,"usage.output":`Output`,"usage.uncachedInput":`Uncached input`,"usage.regularOutput":`Non-reasoning output`,"usage.cacheRead":`Cache hit`,"usage.cacheWrite":`Cache write`,"usage.cacheWrite5m":`Cache write · 5 minutes`,"usage.cacheWrite1h":`Cache write · 1 hour`,"usage.reasoning":`Reasoning / thinking`,"usage.inputAudio":`Audio input`,"usage.outputAudio":`Audio output`,"usage.inputImage":`Image input`,"usage.outputImage":`Image output`,"usage.hitShort":`Hit`,"usage.writeShort":`Write`,"usage.reasoningShort":`Think`,"usage.hitRate":`Cache hit rate`,"usage.noCache":`No cache read or write tokens reported by upstream`,"usage.missing":`No usage reported by upstream; the cache hit rate is unknown.`,"usage.hitTooltip":`Cache hits {read} / total input {total} tokens`,"usage.writeTooltip":`{tokens} tokens written; 5m / 1h are listed separately in details`,"usage.totalsHint":`Input already includes cache reads and writes; output includes reasoning. These counters are not added twice. Hit rate = cache read / total input.`,"usage.cacheAmounts":`Hit {read} · Write {write}`,"settings.appearance":`Appearance`,"settings.theme":`Theme`,"settings.theme.system":`System`,"settings.theme.light":`Light`,"settings.theme.dark":`Dark`,"settings.accent":`Accent color`,"settings.accent.system":`System`,"settings.accent.followingSystem":`Using the system accent color`,"settings.accent.systemUnavailable":`System accent unavailable; using default blue`,"settings.accent.blue":`Blue`,"settings.accent.purple":`Purple`,"settings.accent.pink":`Pink`,"settings.accent.red":`Red`,"settings.accent.orange":`Orange`,"settings.accent.yellow":`Yellow`,"settings.accent.green":`Green`,"settings.accent.graphite":`Graphite`,"settings.language":`Language`,"settings.languageHint":`Also the language of billing descriptions for new requests`,"settings.gateway":`Gateway`,"settings.requireKey":`Require access key`,"settings.requireKeyHint":`On by default. When off, requests without a key (or with an invalid one) are still served, through the default token's provider.`,"settings.requireKeyOffConfirm":`Turn off access key verification?`,"settings.requireKeyOffDetail":`Once off, any program or device that can reach this gateway address can use your provider quota without a key. Only do this in a trusted, local-only environment.`,"settings.requireKeyOff":`Turn off anyway`,"settings.gatewayFooter":`Change the port and listen address from a terminal: astra start --port <port>`,"settings.gatewayUrl":`Gateway URL`,"settings.listen":`Listening on`,"settings.dataDir":`Data folder`,"settings.openFolder":`Open folder`,"settings.streamIdle":`Stream idle timeout`,"settings.streamIdleHint":`Disconnect when the upstream sends nothing for this long`,"settings.logging":`Logging`,"settings.debugBodies":`Save request & response bodies`,"settings.debugBodiesHint":`For troubleshooting. Stored in the local data folder, without secrets.`,"settings.bodyRetention":`Keep bodies`,"settings.requestRetention":`Auto-delete request history`,"settings.keepForever":`Kept forever`,"settings.days":`days`,"settings.effort":`Reasoning effort mapping`,"settings.effortHint":`Used when translating OpenAI reasoning effort to Anthropic / Gemini thinking budgets and back.`,"settings.privacy":`Privacy guard`,"settings.privacy.footer":`Sensitive content is detected on this machine before requests leave. Original values live only in request memory and are never stored.`,"settings.privacy.enabled":`Enable privacy guard`,"settings.privacy.enabledHint":`When off, requests are forwarded untouched`,"settings.privacy.dryRun":`Detect only`,"settings.privacy.dryRunHint":`Record matches but let requests through, to observe the effect`,"settings.privacy.restore":`Restore placeholders in responses`,"settings.privacy.restoreHint":`Placeholders are swapped back to the original values; clients never notice`,"settings.privacy.recordSamples":`Record masked samples`,"settings.privacy.recordSamplesHint":`Logs keep masked samples (e.g. john••••om); originals are never saved`,"settings.privacy.defaultAction":`Default action`,"settings.privacy.action.off":`Off`,"settings.privacy.action.warn":`Warn only`,"settings.privacy.action.block":`Block`,"settings.privacy.action.redact":`Redact`,"settings.privacy.categories":`Detection categories`,"settings.privacy.category.api_key":`API keys`,"settings.privacy.category.aws_key":`AWS keys`,"settings.privacy.category.jwt":`JWT tokens`,"settings.privacy.category.private_key":`Private keys`,"settings.privacy.category.email":`Email addresses`,"settings.privacy.category.phone":`Phone numbers`,"settings.privacy.category.intranet":`Intranet addresses`,"settings.privacy.category.custom":`Custom`,"settings.privacy.category.credit_card":`Card numbers`,"settings.privacy.category.national_id":`National IDs`,"settings.privacy.category.credential":`Credentials & connection strings`,"settings.privacy.enableCategory":`Enable`,"settings.privacy.customRules":`Custom rules`,"settings.privacy.noCustomRules":`No custom rules yet`,"settings.privacy.addRule":`Add rule`,"settings.privacy.ruleName":`Rule name`,"settings.privacy.rulePattern":`Regular expression`,"settings.privacy.rulePatternHint":`Matched against every string value in the request`,"settings.privacy.ruleTemplates":`Fill from template`,"settings.privacy.ruleTemplatesHint":`Pick a common template; name and pattern stay editable`,"settings.privacy.ruleTemplateNone":`Custom (enter manually)`,"settings.privacy.template.ipv4All":`All IPv4 addresses`,"settings.privacy.template.ipv4AllHint":`Includes public ranges; the built-in intranet rule covers private ranges only`,"settings.privacy.template.landline":`Landline numbers (China)`,"settings.privacy.template.licensePlate":`License plates (China)`,"settings.privacy.template.passportCn":`Passport numbers (China)`,"settings.privacy.template.uscc":`Unified social credit codes`,"settings.privacy.template.longToken":`Generic long tokens (32+ chars)`,"settings.privacy.template.longTokenHint":`Broad matches; pair with the "warn" action`,"settings.privacy.template.macAddress":`MAC addresses`,"settings.privacy.template.unixHome":`Unix / macOS home paths`,"settings.privacy.template.windowsProfile":`Windows profile paths`,"settings.privacy.template.unixHomeHint":`These paths expose the local username`,"settings.privacy.template.genericHint":`Adjust the expression as needed`,"settings.privacy.template.cloudAccessKey":`Cloud AccessKey IDs (Alibaba LTAI…, Tencent AKID…)`,"settings.privacy.template.awsSecretKey":`AWS secret access keys (40 chars)`,"settings.privacy.template.imWebhook":`IM bot webhooks (DingTalk / WeCom / Feishu / Slack)`,"settings.privacy.template.imWebhookHint":`A webhook URL is itself a credential — anyone holding it can post to the group`,"settings.privacy.template.internalService":`Internal service hosts (gitlab., jenkins., jira., …)`,"settings.privacy.template.jdbcConn":`JDBC connection strings with credentials`,"settings.privacy.template.jdbcHint":`Credentials inside connection strings are usually plain text`,"settings.privacy.template.smtpConn":`Mail server URLs with credentials (smtp://user:pass@…)`,"settings.privacy.template.keyFileRef":`Key file references (.pem / .key / .pfx / .jks)`,"settings.privacy.template.confidentialMarker":`Confidentiality markers (机密, Confidential, …)`,"settings.privacy.template.confidentialHint":`Warn or block on document classification markers`,"settings.privacy.template.employeeId":`Employee IDs (EMP-123456)`,"settings.privacy.template.labeledNumber":`Labeled numbers (contract / order / ticket numbers)`,"settings.privacy.invalidPattern":`Invalid regular expression`,"settings.privacy.deleteRuleConfirm":`Delete rule "{name}"?`,"settings.privacy.tester":`Dry run`,"settings.privacy.testerHint":`Check the text below against the current policy (no real request is affected)`,"settings.privacy.testerPlaceholder":`Paste request text or JSON…`,"settings.privacy.runTest":`Check`,"settings.privacy.noHits":`No rule matched`,"settings.privacy.wouldBlock":`Would block the request`,"settings.privacy.wouldRedact":`Would redact {count} place(s)`,"privacy.tab.overview":`Overview`,"privacy.tab.logs":`Interception log`,"privacy.tab.rules":`Detection rules`,"privacy.tab.tester":`Dry run`,"privacy.stats":`Guard statistics`,"privacy.stats.events":`Guard events`,"privacy.stats.blocked":`Blocked requests`,"privacy.stats.dryRun":`Detect-only requests`,"privacy.stats.redactions":`Redacted places`,"privacy.stats.byCategory":`Hits by category`,"privacy.stats.col.category":`Category`,"privacy.stats.col.requests":`Requests`,"privacy.stats.col.hits":`Hits`,"privacy.stats.col.warn":`Warn`,"privacy.stats.col.block":`Block`,"privacy.stats.col.redact":`Redact`,"privacy.logs.total":`{count} events`,"privacy.logs.empty":`No privacy events yet`,"privacy.logs.empty.detail":`Requests where the guard detected sensitive content show up here`,"privacy.logs.col.outcome":`Outcome`,"privacy.logs.col.action":`Hit action`,"privacy.logs.col.hits":`Hits`,"privacy.logs.outcome.blocked":`Blocked`,"privacy.logs.outcome.redacted":`{count} redacted`,"privacy.logs.outcome.dryRun":`Detect only`,"privacy.logs.blockedOnly":`Blocked only`,"privacy.logs.passedOnly":`Passed only`,"privacy.logs.moreHits":`+{count} more`,"privacy.logs.viewRequest":`View request {model}`,"settings.effort.low":`low`,"settings.effort.medium":`medium`,"settings.effort.high":`high`,"settings.about":`About`,"settings.serverVersion":`Server version`,"settings.desktopVersion":`Desktop version`,"settings.logs":`Open logs folder`,"settings.logout":`Sign out`,"settings.checkUpdates":`Check for updates`,"settings.upToDate":`Up to date`,"settings.updateAvailable":`Update {version} available`,"settings.updateCheckFailed":`Check failed: {error}`,"settings.updateApplyHint":`Install from the Astra tray menu, or run astra update in a terminal`,"settings.updateApply":`Update now`,"settings.updateApplied":`Server updated and restarted`,"settings.updateDesktopRelaunch":`The desktop app will relaunch to finish the update`,"settings.lastChecked":`Last checked: {time}`,"settings.autoCheck":`Check for updates automatically`,"settings.tab.general":`General`,"settings.tab.tray":`Tray panel`,"settings.tray.titleHeading":`Menu bar text`,"settings.tray.titleHint":`Shown next to the menu bar icon, visible without opening anything. On Windows and Linux it appears in the icon tooltip.`,"settings.tray.title.none":`Nothing`,"settings.tray.title.none.hint":`Icon only`,"settings.tray.title.requests":`Calls today`,"settings.tray.title.requests.hint":`e.g. 7`,"settings.tray.title.tokens":`Tokens today`,"settings.tray.title.tokens.hint":`e.g. 68.8K`,"settings.tray.title.cost":`Cost today`,"settings.tray.title.cost.hint":`e.g. $0.37`,"settings.tray.title.quota":`Subscription window`,"settings.tray.title.quota.hint":`The window with the least left, e.g. 64%`,"settings.tray.title.alerts":`Alerts only`,"settings.tray.title.alerts.hint":`Only on failed requests, low quota, or a stopped gateway`,"settings.tray.usageHeading":`Usage`,"settings.tray.clientsHeading":`Clients`,"settings.tray.section.overview":`Today at a glance`,"settings.tray.section.overview.hint":`Calls, tokens and failures`,"settings.tray.section.cost":`Estimated cost`,"settings.tray.section.cost.hint":`At official API prices; not a bill`,"settings.tray.section.chart":`Today's trend`,"settings.tray.section.chart.hint":`Calls per hour as bars`,"settings.tray.section.topModel":`Top model`,"settings.tray.section.topModel.hint":`The model with the largest share of today's tokens`,"settings.tray.section.compareYesterday":`Compare with yesterday`,"settings.tray.section.compareYesterday.hint":`Today's tokens against all of yesterday`,"settings.tray.section.cacheHitRate":`Cache hit rate`,"settings.tray.section.cacheHitRate.hint":`Cache reads as a share of input tokens`,"settings.tray.section.quota":`Quota & balance`,"settings.tray.section.quota.hint":`Window usage and reset times of Codex, Claude and other subscriptions, plus balances of API providers with the usage query on`,"settings.tray.section.clients":`Client providers`,"settings.tray.section.clients.hint":`The provider each enabled client uses; click to switch`,"settings.tray.previewHeading":`Panel preview`,"settings.tray.previewHint":`The panel that opens from the tray icon. Changes apply at once; the preview is what you get.`,"settings.tray.previewFooter":`Rendered with live data.`,"settings.tray.reset":`Restore defaults`,"tray.status.running":`Gateway running`,"tray.status.stopped":`Gateway not running`,"tray.status.starting":`Starting gateway…`,"tray.status.stopping":`Stopping gateway…`,"tray.status.restarting":`Restarting gateway…`,"tray.stoppedHint":`While the gateway is stopped, clients cannot reach models through Astra.`,"tray.mismatch":`API version mismatch`,"tray.update":`Update available`,"tray.copyAddress":`Copy gateway URL`,"tray.settings":`Tray panel settings`,"tray.more":`More actions`,"tray.today":`Today`,"tray.failures":`{count} failed`,"tray.justNow":`just now`,"tray.updated":`Updated {time}`,"tray.loadFailed":`Could not load usage`,"tray.requests":`calls`,"tray.tokens":`tokens`,"tray.cost":`Est. cost`,"tray.topModel":`Top model`,"tray.cacheHit":`Cache hits`,"tray.vsYesterday":`vs yesterday`,"tray.chartLabel":`Calls per hour today`,"tray.hourBar":`{hour} · {count} calls`,"tray.quota":`Quota & balance`,"tray.quotaRemaining":`Left`,"tray.quotaReset":`Resets`,"tray.quotaCredits":`Credits`,"tray.quotaPending":`Fetching quota…`,"tray.clients":`Clients`,"tray.unbound":`Not bound`,"tray.switchProvider":`Switch the provider of {client}`,"tray.disabledProvider":`{name} (disabled)`,"tray.restart":`Restart gateway`,"tray.stop":`Stop gateway`,"tray.quit":`Quit`,"tray.open":`Open Astra`,"tray.title.requests":`{count} calls today`,"tray.title.tokens":`{count} tokens today`,"tray.title.cost":`{amount} estimated today`,"tray.title.quota":`{plan} {window} window: {remaining} left`,"tray.title.failures":`{count} failed today`,"tray.tab.overview":`Overview`,"tray.tab.quota":`Quota`,"tray.alert.failures":`{count} failed · {share} of today`,"tray.alert.quota":`{plan} {window} window: only {remaining} left`,"tray.quotaTightest":`Quota · tightest`,"tray.viewAll":`View all`,"nav.plugins":`Plugins`,"providers.card.plugin":`Plugin sign-in`,"plugins.subtitle":`magpie-compatible plugins: provider plugins (OpenCode plugins, run in the Bun plugin host), gateway middleware and client (agent) plugins.`,"plugins.add":`Add plugin`,"plugins.updateAll":`Update all`,"plugins.tab.installed":`Installed`,"plugins.tab.market":`Market`,"plugins.tab.runtime":`Runtime`,"plugins.empty":`No plugins installed`,"plugins.emptyDetail":`Pick one in the Market, or add an npm package, a GitHub repository or a local folder.`,"plugins.orderHint":`The list order is the order gateway middleware runs in.`,"plugins.kind.provider":`Provider`,"plugins.kind.middleware":`Middleware`,"plugins.kind.agent":`Client`,"plugins.kind.pi":`pi extension`,"plugins.local":`Local`,"plugins.moveUp":`Move up`,"plugins.moveDown":`Move down`,"plugins.enabled":`Enabled`,"plugins.options":`Options`,"plugins.update":`Update`,"plugins.removeConfirm":`Remove plugin {name}?`,"plugins.removeDetail":`The plugin is uninstalled; a client it added gets its original configuration back first.`,"plugins.cantLoad":`The plugin can't load`,"plugins.hostCantLoad":`The plugin host couldn't load it`,"plugins.mw.error":`Middleware didn't load: {error}`,"plugins.mw.stats":`Middleware {hooks} · {calls} calls · {micros} µs avg · {failures} failures`,"plugins.mw.lastError":`Last failure: {error}`,"plugins.agent.adds":`Adds the client "{name}": enable it on the Clients page`,"plugins.agent.error":`The client didn't load: {error}`,"plugins.provides":`Signs in to: {providers}`,"plugins.servedBy":`{provider} is served by another plugin, {other}`,"plugins.useFor":`Use for {provider}`,"plugins.picked":`Picked to serve these providers.`,"plugins.optionsTitle":`Options of {name}`,"plugins.optionsExample":`Not set yet: this is the example the plugin gives.`,"plugins.optionsNone":`Not set. The plugin reads its options as a JSON object (ctx.options for middleware).`,"plugins.optionsClear":`Clear options`,"plugins.optionsSaved":`Options saved`,"plugins.optionsObject":`Options must be a JSON object`,"plugins.addTitle":`Add plugin`,"plugins.addDetail":`An npm package (optionally with a version), a git repository (github:owner/repo) or the absolute path to a file or folder.`,"plugins.spec":`Plugin`,"plugins.specHint":`e.g. @magpie-community/middleware-word-guard, github:someone/plugin, /Users/me/my-plugin`,"plugins.install":`Install`,"plugins.installed":`Installed`,"plugins.installConfirm":`Install {name}?`,"plugins.trustTitle":`Plugins run code with your permissions`,"plugins.trustDetail":`Provider plugins run with full permissions in the plugin host and see the requests that go through them; middleware can read and change every request and reply. Only install plugins you trust.`,"plugins.job.title":`Plugin task`,"plugins.job.running":`Working on {target}…`,"plugins.job.done":`{target} done`,"plugins.job.failed":`{target} failed`,"plugins.job.failedTitle":`It didn't finish`,"plugins.searchPlaceholder":`Search plugins on npm and GitHub…`,"plugins.searchResults":`Search results`,"plugins.noResults":`No plugins found`,"plugins.marketNote":`The market lists magpie-community/plugins' community registry.`,"plugins.bunDetail":`Provider plugins run on Bun. Astra downloads a pinned Bun the first time one is needed and checks its SHA-256; middleware and client plugins don't need Bun.`,"plugins.bunPath":`Location`,"plugins.bunMissing":`Not downloaded yet`,"plugins.bunVersion":`Version`,"plugins.bunTarget":`Build`,"plugins.bunNoBuild":`Bun has no build for this machine`,"plugins.bunFailed":`Downloading Bun failed`,"plugins.bunDownload":`Download Bun {version}`,"plugins.bunDownloading":`Downloading…`,"plugins.host":`Plugin host`,"plugins.hostDetail":`Provider plugins run in a separate Bun process (magpie's host.js), restarted when the plugins or the proxy change.`,"plugins.hostState":`State`,"plugins.hostRunning":`Running`,"plugins.hostStopped":`Not running (starts when needed)`,"plugins.hostStartFailed":`Failed to start`,"plugins.hostGone":`The host exited`,"plugins.hostPluginError":`Didn't load: {error}`,"pluginAccounts.noPlugin":`The plugin is unavailable`,"pluginAccounts.apiKey":`API key`,"pluginAccounts.browser":`Browser sign-in`,"pluginAccounts.empty":`No accounts signed in`,"pluginAccounts.emptyDetail":`Sign in with one of the methods above; the plugin keeps the sign-in.`,"pluginAccounts.current":`Current`,"pluginAccounts.active":`Usable`,"pluginAccounts.lapsed":`Sign in again`,"pluginAccounts.lapsedDetail":`The vendor refused this account's sign-in: sign in again.`,"pluginAccounts.usage":`Usage`,"pluginAccounts.signOut":`Sign out`,"pluginAccounts.signOutConfirm":`Sign {name} out?`,"pluginAccounts.plan":`Plan`,"pluginAccounts.until":`Until`,"pluginAccounts.resets":`resets {at}`,"pluginAccounts.signedIn":`Signed in`,"pluginAccounts.signInTitle":`Sign in to {name}`,"pluginAccounts.continue":`Continue`,"pluginAccounts.key":`Key`,"pluginAccounts.signIn":`Sign in`,"pluginAccounts.openPage":`Open the sign-in page`,"pluginAccounts.openAgain":`Open the sign-in page again`,"pluginAccounts.deviceCode":`Code to confirm`,"pluginAccounts.code":`The code the page shows`,"pluginAccounts.waiting":`Finish signing in in the browser; this continues on its own.`,"pluginAccounts.failed":`Sign-in failed`,"pluginAccounts.checkin":`Daily check-in`,"pluginAccounts.checkinOn":`Check in daily`,"pluginAccounts.checkinNow":`Check in now`,"pluginAccounts.checkinDetail":`The plugin checks each usable account in once a Beijing day; a failure is tried again after 30 minutes. Astra never solves captchas.`,"pluginAccounts.checkinNever":`Not checked in today`,"pluginAccounts.credit":`+{credit}`,"pluginAccounts.streak":`{days}-day streak`,"pluginAccounts.outcome.claimed":`Checked in`,"pluginAccounts.outcome.done":`Already in today`,"pluginAccounts.outcome.ineligible":`Not eligible`,"pluginAccounts.outcome.inactive":`No check-in running now`,"pluginAccounts.outcome.captcha":`Wants a captcha: check in in its own app`,"pluginAccounts.outcome.failed":`Failed`,"plugins.browseMarket":`Browse the market`,"plugins.off":`Plugins are switched off on the server`,"plugins.hostRecent":`Recent plugin messages`,"plugins.offDetail":`The server was started with ASTRA_PLUGINS=off: installed plugins don't run and none can be installed. Remove the variable and restart to bring them back.`,"plugins.bunReady":`Ready`,"plugins.kind.all":`All`,"plugins.kindFilter":`Filter by kind`,"plugins.magpie.banner":`magpie on this computer has {count} plugins Astra doesn't have yet.`,"plugins.magpie.import":`Import from magpie`,"plugins.magpie.off":`Off`,"plugins.magpie.signIns":`Also copy {count} sign-ins`,"plugins.magpie.title":`Import plugins from magpie`,"plugins.magpie.signInsDetail":`Copies the plugin sign-ins in magpie's plugin-auth.json into Astra's (both keep them as plain text); an account Astra already has under the same key is kept, and magpie's file isn't changed.`,"plugins.openProviders":`Sign in under Providers`,"plugins.searchNote":`Search results come from npm and GitHub's magpie-plugin topic and aren't reviewed: check where a plugin comes from before installing it.`},ng=`astra.locale`,rg={zh:eg,en:tg};function ig(){try{let e=localStorage.getItem(ng);if(e===`zh`||e===`en`)return e}catch{}return(globalThis.navigator?.language??`zh`).toLowerCase().startsWith(`zh`)?`zh`:`en`}function ag(e,t){return t?e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e):e}function og(e,t,n){return ag(rg[e][t]??rg.zh[t]??t,n)}var sg=(0,m.createContext)(null);function cg({children:e}){let[t,n]=(0,m.useState)(ig),r=(0,m.useCallback)(e=>{n(e),document.documentElement.lang=e===`zh`?`zh-CN`:`en`;try{localStorage.setItem(ng,e)}catch{}},[]),i=(0,m.useMemo)(()=>({locale:t,setLocale:r,t:(e,n)=>og(t,e,n)}),[t,r]);return(0,h.jsx)(sg.Provider,{value:i,children:e})}function lg(){let e=(0,m.useContext)(sg);if(!e)throw Error(`useI18n outside I18nProvider`);return e}function ug(){return lg().t}function dg(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=dg(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function fg(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=dg(e))&&(r&&(r+=` `),r+=t);return r}function pg(...e){return fg(e)}var mg={canOpenPaths:!!cp(),async openPath(e){let t=cp();return t?t.openPath(e):!1},async revealLogs(){return await cp()?.revealLogs()??!1},async copy(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}},async contextMenu(e){let t=cp();if(t)return t.showContextMenu(e)},async startService(){let e=cp();return e?e.startService():null}};function hg(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t>0?e.slice(0,t):e}var gg=Object.defineProperty,_g=(e,t)=>gg(e,`name`,{value:t,configurable:!0});function vg(e,t){let n=m.createContext(t);n.displayName=e+`Context`;let r=_g(e=>{let{children:t,...r}=e,i=m.useMemo(()=>r,Object.values(r));return(0,h.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=m.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return _g(i,`useContext`),[r,i]}_g(vg,`createContext`);function yg(e,t=[]){let n=[];function r(t,r){let i=m.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=_g(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=m.useMemo(()=>o,Object.values(o));return(0,h.jsx)(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=m.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return _g(s,`useContext`),[o,s]}_g(r,`createContext`);let i=_g(()=>{let t=n.map(e=>m.createContext(e));return _g(function(n){let r=n?.[e]||t;return m.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,bg(i,...t)]}_g(yg,`createContextScope`);function bg(...e){let t=e[0];if(e.length===1)return t;let n=_g(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return _g(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}_g(bg,`composeContextScopes`);var xg=Object.defineProperty,Sg=(e,t)=>xg(e,`name`,{value:t,configurable:!0});function Cg(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}Sg(Cg,`setRef`);function wg(...e){return t=>{let n=!1,r=e.map(e=>{let r=Cg(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Cg(e[t],null)}}}}Sg(wg,`composeRefs`);function q(...e){return m.useCallback(wg(...e),e)}Sg(q,`useComposedRefs`);var Tg=l(op(),1),Eg=Object.defineProperty,Dg=(e,t)=>Eg(e,`name`,{value:t,configurable:!0});function Og(e){let t=m.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];Ig(r)&&typeof Vg==`function`&&(r=Vg(r._payload)),m.Children.forEach(r,e=>{if(Pg(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;Ig(n)&&typeof Vg==`function`&&(n=Vg(n._payload)),a=jg(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=m.cloneElement(a,void 0,s):!o&&m.Children.count(r)===1&&m.isValidElement(r)&&(a=r);let c=a?Ng(a):void 0,l=q(n,c);if(!a){if(r||r===0)throw Error(o?Bg(e):zg(e));return r}let u=Mg(i,a.props??{});return a.type!==m.Fragment&&(u.ref=n?l:c),m.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}Dg(Og,`createSlot`);var kg=Symbol.for(`radix.slottable`);function Ag(e){let t=Dg(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=kg,t}Dg(Ag,`createSlottable`);var jg=Dg((e,t)=>{if(`child`in e.props){let t=e.props.child;return m.isValidElement(t)?m.cloneElement(t,void 0,e.props.children(t.props.children)):null}return m.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function Mg(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`?n[r]=[i,a].filter(Boolean).join(` `):r===`aria-describedby`&&(n[r]=Rg(a,i))}return{...e,...n}}Dg(Mg,`mergeProps`);function Ng(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Dg(Ng,`getElementRef`);function Pg(e){return m.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===kg}Dg(Pg,`isSlottable`);var Fg=Symbol.for(`react.lazy`);function Ig(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Fg&&`_payload`in e&&Lg(e._payload)}Dg(Ig,`isLazyComponent`);function Lg(e){return typeof e==`object`&&!!e&&`then`in e}Dg(Lg,`isPromiseLike`);function Rg(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}Dg(Rg,`concatAriaDescribedby`);var zg=Dg(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),Bg=Dg(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),Vg=m.use,Hg=Object.defineProperty,Ug=(e,t)=>Hg(e,`name`,{value:t,configurable:!0});function Wg(e){let t=e+`CollectionProvider`,[n,r]=yg(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=Ug(e=>{let{scope:t,children:n}=e,r=m.useRef(null),a=m.useRef(new Map).current;return(0,h.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=Og(s),l=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=q(t,a(s,n).collectionRef);return(0,h.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=Og(u),p=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),s=q(t,o),c=a(u,n);return m.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,h.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function g(t){let n=a(e+`CollectionConsumer`,t);return m.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return Ug(g,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},g,r]}Ug(Wg,`createCollection`);var Gg=new WeakMap,Kg=class e extends Map{static{Ug(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],Gg.set(this,!0)}set(e,t){return Gg.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=Yg(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=qg(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=qg(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return qg(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function qg(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=Jg(e,t);return n===-1?void 0:e[n]}Ug(qg,`at`);function Jg(e,t){let n=e.length,r=Yg(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}Ug(Jg,`toSafeIndex`);function Yg(e){return e!==e||e===0?0:Math.trunc(e)}Ug(Yg,`toSafeInteger`);function Xg(e){let t=e+`CollectionProvider`,[n,r]=yg(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new Kg,setItemMap:Ug(()=>void 0,`setItemMap`)}),o=Ug(({state:e,...t})=>e?(0,h.jsx)(c,{...t,state:e}):(0,h.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=Ug(e=>{let t=_();return(0,h.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=Ug(e=>{let{scope:t,children:n,state:r}=e,a=m.useRef(null),[o,s]=m.useState(null),c=q(a,s),[l,u]=r;return m.useEffect(()=>{if(!o)return;let e=e_(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,h.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=Og(l),d=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=q(t,a(l,n).collectionRef);return(0,h.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=Og(f),g=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),[s,c]=m.useState(null),l=q(t,o,c),{setItemMap:u}=a(f,n),d=m.useRef(i);Zg(d.current,i)||(d.current=i);let g=d.current;return m.useEffect(()=>{let e=g;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted($g):(t.set(s,{...e,element:s}),t.toSorted($g)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new Kg(e)))}},[s,g,u]),(0,h.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});g.displayName=f;function _(){return m.useState(new Kg)}Ug(_,`useInitCollection`);function v(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return Ug(v,`useCollection`),[{Provider:o,Slot:d,ItemSlot:g},{createCollectionScope:r,useCollection:v,useInitCollection:_}]}Ug(Xg,`createCollection`);function Zg(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}Ug(Zg,`shallowEqual`);function Qg(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}Ug(Qg,`isElementPreceding`);function $g(e,t){return!e[1].element||!t[1].element?0:Qg(e[1].element,t[1].element)?-1:1}Ug($g,`sortByDocumentPosition`);function e_(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}Ug(e_,`getChildListObserver`);var t_=Object.defineProperty,n_=(e,t)=>t_(e,`name`,{value:t,configurable:!0}),r_=!!(typeof window<`u`&&window.document&&window.document.createElement);function J(e,t,{checkForDefaultPrevented:n=!0}={}){return n_(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}n_(J,`composeEventHandlers`);function i_(e){if(!r_)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}n_(i_,`getOwnerWindow`);function a_(e){if(!r_)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}n_(a_,`getOwnerDocument`);function o_(e,t=!1){let{activeElement:n}=a_(e);if(!n?.nodeName)return null;if(s_(n)&&n.contentDocument)return o_(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=a_(n).getElementById(e);if(t)return t}}return n}n_(o_,`getActiveElement`);function s_(e){return e.tagName===`IFRAME`}n_(s_,`isFrame`);var Y=globalThis?.document?m.useLayoutEffect:()=>{},c_=Object.defineProperty,l_=(e,t)=>c_(e,`name`,{value:t,configurable:!0}),u_=m.useEffectEvent,d_=m.useInsertionEffect;function f_(e){if(typeof u_==`function`)return u_(e);let t=m.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof d_==`function`?d_(()=>{t.current=e}):Y(()=>{t.current=e}),m.useMemo(()=>((...e)=>t.current?.(...e)),[])}l_(f_,`useEffectEvent`);var p_=Object.defineProperty,m_=(e,t)=>p_(e,`name`,{value:t,configurable:!0}),h_=m.useInsertionEffect||Y;function g_({prop:e,defaultProp:t,onChange:n=m_(()=>{},`onChange`),caller:r}){let[i,a,o]=__({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,m.useCallback(t=>{if(s){let n=v_(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}m_(g_,`useControllableState`);function __({defaultProp:e,onChange:t}){let[n,r]=m.useState(e),i=m.useRef(n),a=m.useRef(t);return h_(()=>{a.current=t},[t]),m.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}m_(__,`useUncontrolledState`);function v_(e){return typeof e==`function`}m_(v_,`isFunction`);var y_=Symbol(`RADIX:SYNC_STATE`);function b_(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=f_(o),u=[{...n,state:a}];r&&u.push(r);let[d,f]=m.useReducer((t,n)=>{if(n.type===y_)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),p=d.state,h=m.useRef(p);m.useEffect(()=>{h.current!==p&&(h.current=p,c||l(p))},[p,h,c]);let g=m.useMemo(()=>i===void 0?d:{...d,state:i},[d,i]);return m.useEffect(()=>{c&&!Object.is(i,d.state)&&f({type:y_,state:i})},[i,d.state,c]),[g,f]}m_(b_,`useControllableStateReducer`);var x_=Object.defineProperty,S_=(e,t)=>x_(e,`name`,{value:t,configurable:!0}),X=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=Og(`Primitive.${t}`),r=m.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,h.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function C_(e,t){e&&Tg.flushSync(()=>e.dispatchEvent(t))}S_(C_,`dispatchDiscreteCustomEvent`);var w_=Object.defineProperty,T_=(e,t)=>w_(e,`name`,{value:t,configurable:!0});function E_(e,t){return m.useReducer((e,n)=>t[e][n]??e,e)}T_(E_,`useStateMachine`);var D_=T_(e=>{let{present:t,children:n}=e,r=O_(t),i=typeof n==`function`?n({present:r.isPresent}):m.Children.only(n),a=A_(r.ref,M_(i));return typeof n==`function`||r.isPresent?m.cloneElement(i,{ref:a}):null},`Presence`);function O_(e){let[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),a=m.useRef(`none`),o=m.useRef(void 0),[s,c]=E_(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return m.useEffect(()=>{s===`mounted`?(a.current=o.current??j_(r.current),o.current=void 0):a.current=`none`},[s]),Y(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=j_(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),Y(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=T_(a=>{let o=j_(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=T_(e=>{e.target===t&&(a.current=j_(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:m.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=j_(t)}else r.current=null;n(e)},[])}}T_(O_,`usePresence`);function k_(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}T_(k_,`setRef`);function A_(...e){let t=m.useRef(e);return t.current=e,m.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=k_(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():k_(n[e],null)}}},[])}T_(A_,`useStableComposedRefs`);function j_(e){return e?.animationName||`none`}T_(j_,`getAnimationName`);function M_(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}T_(M_,`getElementRef`);var N_=Object.defineProperty,P_=(e,t)=>N_(e,`name`,{value:t,configurable:!0}),F_=m.useId||(()=>void 0),I_=0;function L_(e){let[t,n]=m.useState(F_());return Y(()=>{e||n(e=>e??String(I_++))},[e]),e||(t?`radix-${t}`:``)}P_(L_,`useId`);var R_=Object.defineProperty,z_=(e,t)=>R_(e,`name`,{value:t,configurable:!0}),B_=`Collapsible`,[V_,H_]=yg(B_),[U_,W_]=V_(B_),G_=m.forwardRef(z_(function(e,t){let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=g_({prop:r,defaultProp:i??!1,onChange:o,caller:B_});return(0,h.jsx)(U_,{scope:n,disabled:a,contentId:L_(),open:c,onOpenToggle:m.useCallback(()=>l(e=>!e),[l]),children:(0,h.jsx)(X.div,{"data-state":Z_(c),"data-disabled":a?``:void 0,...s,ref:t})})},`Collapsible`)),K_=`CollapsibleTrigger`,q_=m.forwardRef(z_(function(e,t){let{__scopeCollapsible:n,...r}=e,i=W_(K_,n);return(0,h.jsx)(X.button,{type:`button`,"aria-controls":i.open?i.contentId:void 0,"aria-expanded":i.open||!1,"data-state":Z_(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:J(e.onClick,i.onOpenToggle)})},`CollapsibleTrigger`)),J_=`CollapsibleContent`,Y_=m.forwardRef(z_(function(e,t){let{forceMount:n,...r}=e,i=W_(J_,e.__scopeCollapsible);return(0,h.jsx)(D_,{present:n||i.open,children:({present:e})=>(0,h.jsx)(X_,{...r,ref:t,present:e})})},`CollapsibleContent`)),X_=m.forwardRef(z_(function(e,t){let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=W_(J_,n),[s,c]=m.useState(r),l=m.useRef(null),u=q(t,l),d=m.useRef(0),f=d.current,p=m.useRef(0),g=p.current,_=o.open||s,v=m.useRef(_),y=m.useRef(void 0);return m.useEffect(()=>{let e=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(e)},[]),Y(()=>{let e=l.current;if(e){y.current=y.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,v.current||(e.style.transitionDuration=y.current.transitionDuration,e.style.animationName=y.current.animationName),c(r)}},[o.open,r]),(0,h.jsx)(X.div,{"data-state":Z_(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!_,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":g?`${g}px`:void 0,...e.style},children:_&&i})},`CollapsibleContentImpl`));function Z_(e){return e?`open`:`closed`}z_(Z_,`getState`);var Q_=Object.defineProperty,$_=(e,t)=>Q_(e,`name`,{value:t,configurable:!0}),ev={LTR:`ltr`,RTL:`rtl`},tv=m.createContext(void 0);function nv(e){let t=m.useContext(tv);return e||t||ev.LTR}$_(nv,`useDirection`);var rv=Object.defineProperty,iv=(e,t)=>rv(e,`name`,{value:t,configurable:!0}),av={Single:`single`,Multiple:`multiple`},ov={Vertical:`vertical`,Horizontal:`horizontal`},sv={LTR:`ltr`,RTL:`rtl`},cv=`Accordion`,lv=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[uv,dv,fv]=Wg(cv),[pv,mv]=yg(cv,[fv,H_]),hv=H_(),gv=m.forwardRef(iv(function(e,t){let{type:n,...r}=e,i=r,a=r;return(0,h.jsx)(uv.Provider,{scope:e.__scopeAccordion,children:n===av.Multiple?(0,h.jsx)(Sv,{...a,ref:t}):(0,h.jsx)(xv,{...i,ref:t})})},`Accordion`)),[_v,vv]=pv(cv),[yv,bv]=pv(cv,{collapsible:!1}),xv=m.forwardRef(iv(function(e,t){let{value:n,defaultValue:r,onValueChange:i=iv(()=>{},`onValueChange`),collapsible:a=!1,...o}=e,[s,c]=g_({prop:n,defaultProp:r??``,onChange:i,caller:cv});return(0,h.jsx)(_v,{scope:e.__scopeAccordion,value:m.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:m.useCallback(()=>a&&c(``),[a,c]),children:(0,h.jsx)(yv,{scope:e.__scopeAccordion,collapsible:a,children:(0,h.jsx)(Tv,{...o,ref:t})})})},`AccordionImplSingle`)),Sv=m.forwardRef(iv(function(e,t){let{value:n,defaultValue:r,onValueChange:i=iv(()=>{},`onValueChange`),...a}=e,[o,s]=g_({prop:n,defaultProp:r??[],onChange:i,caller:cv}),c=m.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=m.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,h.jsx)(_v,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,h.jsx)(yv,{scope:e.__scopeAccordion,collapsible:!0,children:(0,h.jsx)(Tv,{...a,ref:t})})})},`AccordionImplMultiple`)),[Cv,wv]=pv(cv),Tv=m.forwardRef(iv(function(e,t){let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=ov.Vertical,...o}=e,s=q(m.useRef(null),t),c=dv(n),l=nv(i)===sv.LTR,u=J(e.onKeyDown,e=>{if(!lv.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=iv(()=>{o=r+1,o>s&&(o=0)},`moveNext`),d=iv(()=>{o=r-1,o<0&&(o=s)},`movePrev`);switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===ov.Horizontal&&(l?u():d());break;case`ArrowDown`:a===ov.Vertical&&u();break;case`ArrowLeft`:a===ov.Horizontal&&(l?d():u());break;case`ArrowUp`:a===ov.Vertical&&d()}n[o%i].ref.current?.focus()});return(0,h.jsx)(Cv,{scope:n,disabled:r,direction:i,orientation:a,children:(0,h.jsx)(uv.Slot,{scope:n,children:(0,h.jsx)(X.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})},`AccordionImpl`)),Ev=`AccordionItem`,[Dv,Ov]=pv(Ev),kv=m.forwardRef(iv(function(e,t){let{__scopeAccordion:n,value:r,...i}=e,a=wv(Ev,n),o=vv(Ev,n),s=hv(n),c=L_(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,h.jsx)(Dv,{scope:n,open:l,disabled:u,triggerId:c,children:(0,h.jsx)(G_,{"data-orientation":a.orientation,"data-state":Iv(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})},`AccordionItem`)),Av=`AccordionHeader`,jv=m.forwardRef(iv(function(e,t){let{__scopeAccordion:n,...r}=e,i=wv(cv,n),a=Ov(Av,n);return(0,h.jsx)(X.h3,{"data-orientation":i.orientation,"data-state":Iv(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})},`AccordionHeader`)),Mv=`AccordionTrigger`,Nv=m.forwardRef(iv(function(e,t){let{__scopeAccordion:n,...r}=e,i=wv(cv,n),a=Ov(Mv,n),o=bv(Mv,n),s=hv(n);return(0,h.jsx)(uv.ItemSlot,{scope:n,children:(0,h.jsx)(q_,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})},`AccordionTrigger`)),Pv=`AccordionContent`,Fv=m.forwardRef(iv(function(e,t){let{__scopeAccordion:n,...r}=e,i=wv(cv,n),a=Ov(Pv,n),o=hv(n);return(0,h.jsx)(Y_,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})},`AccordionContent`));function Iv(e){return e?`open`:`closed`}iv(Iv,`getState`);var Lv=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function Rv(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:Lv(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var zv=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},Bv=e=>{let t=zv(e);return t.charAt(0).toUpperCase()+t.slice(1)},Vv=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Hv={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function Uv(e){return e!=null}function Wv(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??Hv.width,a=e.size??e.height??Hv.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?Vv(...c):Vv(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??Hv[`stroke-width`])*Number(e.size??e.width??Hv.width)/Number(t.size??t.width??Hv.width):t.strokeWidth??Hv[`stroke-width`];return[`svg`,{...Object.entries(Hv).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&Uv(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&Uv(t.width)&&{[r(`width`)]:t.width},...`height`in t&&Uv(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function Gv(e,t={}){return Wv(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var Kv=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},qv=(0,m.createContext)({}),Jv=()=>(0,m.useContext)(qv),Yv=(0,m.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:h=2,absoluteStrokeWidth:g=!1,nonScalingStroke:_=!1,color:v=`currentColor`,className:y=``}=Jv()??{},b=!!c||Kv(d),[x,S,C=[]]=Gv(u,{color:e??v,width:n??t??p,height:r??t??p,strokeWidth:i??h,absoluteStrokeWidth:a??g,nonScalingStroke:o??_,className:Vv(y,s),hasA11yProp:b,attributes:d});return(0,m.createElement)(x,{ref:f,...S},[...C.map(([e,t])=>(0,m.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function Xv(e,t=[],n=[]){let r=typeof e==`string`?Rv(e,t,n):e,i=(0,m.forwardRef)(({className:e,...t},n)=>(0,m.createElement)(Yv,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=Bv(r.name)),i}var Zv={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};Zv.node;var Qv=Xv(Zv),$v={name:`chevron-down`,size:24,node:[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]};$v.node;var ey=Xv($v),ty={name:`chevron-up`,size:24,node:[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]};ty.node;var ny=Xv(ty),ry={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};ry.node;var iy=Xv(ry),ay={name:`circle-x`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-circle`]};ay.node;var oy=Xv(ay),sy={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};sy.node;var cy=Xv(sy),ly={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};ly.node;var uy=Xv(ly),dy={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]};dy.node;var fy=Xv(dy),py={name:`info`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]};py.node;var my=Xv(py),hy={name:`puzzle`,size:24,node:[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]};hy.node;var gy=Xv(hy),_y={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};_y.node;var vy=Xv(_y),yy={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};yy.node;var by=Xv(yy),xy={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};xy.node;var Sy=Xv(xy),Cy={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};Cy.node;var wy=Xv(Cy),Z={duration:{instant:.12,fast:.16,exit:.18,standard:.24,considered:.48},ease:{enter:[.16,1,.3,1],exit:[.7,0,.84,0],standard:[.22,1,.36,1],inOut:[.65,0,.35,1]},spring:{responsive:{type:`spring`,stiffness:520,damping:38},gentle:{type:`spring`,stiffness:340,damping:34},snappy:{type:`spring`,visualDuration:.26,bounce:.12},smooth:{type:`spring`,visualDuration:.4,bounce:0},morph:{type:`spring`,visualDuration:.42,bounce:.16}},stagger:{char:.016,word:.04,line:.08,item:.035},blur:{subtle:2,soft:4,text:8}},Ty={accordion:`_accordion_17mmv_1`,item:`_item_17mmv_2`,header:`_header_17mmv_3`,trigger:`_trigger_17mmv_4`,icon:`_icon_17mmv_5`,panel:`_panel_17mmv_9`,panelInner:`_panelInner_17mmv_10`,lg:`_lg_17mmv_11`},Ey={height:`auto`,opacity:1,visibility:`visible`},Dy={height:0,opacity:0,transitionEnd:{visibility:`hidden`}},Oy={y:0,filter:`blur(0px)`,transitionEnd:{filter:`none`}},ky={y:-6,filter:`blur(${Z.blur.subtle}px)`},Ay={open:{...Ey,transition:{height:Z.spring.smooth,opacity:{duration:Z.duration.standard,ease:[...Z.ease.enter]}}},closed:{...Dy,transition:{height:Z.spring.smooth,opacity:{duration:Z.duration.fast,ease:[...Z.ease.standard]}}}},jy={open:{...Oy,transition:{y:Z.spring.smooth,filter:{duration:Z.duration.standard,ease:[...Z.ease.enter]}}},closed:{...ky,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}}},My={open:{...Ey,transition:{duration:0}},closed:{...Dy,transition:{duration:0}}},Ny={open:{...Oy,transition:{duration:0}},closed:{...ky,transition:{duration:0}}};function Py({items:e,defaultOpen:t=0,size:n=`md`}){let r=t>=0&&t<e.length?String(t):``,[i,a]=(0,m.useState)(r),o=H();return(0,h.jsx)(gv,{className:[Ty.accordion,n===`lg`?Ty.lg:``].filter(Boolean).join(` `),type:`single`,collapsible:!0,value:i,onValueChange:a,children:e.map((e,t)=>{let n=i===String(t);return(0,h.jsxs)(kv,{className:Ty.item,value:String(t),children:[(0,h.jsx)(jv,{className:Ty.header,children:(0,h.jsxs)(Nv,{className:Ty.trigger,children:[(0,h.jsx)(`span`,{children:e.title}),(0,h.jsx)(U.span,{className:Ty.icon,initial:!1,animate:{rotate:n?180:0},transition:o?{duration:0}:Z.spring.snappy,children:(0,h.jsx)(ey,{width:17,height:17,"aria-hidden":`true`})})]})}),(0,h.jsx)(Fv,{forceMount:!0,asChild:!0,children:(0,h.jsx)(U.div,{className:Ty.panel,initial:!1,animate:n?`open`:`closed`,variants:o?My:Ay,children:(0,h.jsx)(U.div,{className:Ty.panelInner,variants:o?Ny:jy,children:e.content})})})]},`${e.title}-${t}`)})})}var Fy={badge:`_badge_qjt90_1`,sm:`_sm_qjt90_23`,md:`_md_qjt90_24`,body:`_body_qjt90_26`,content:`_content_qjt90_27`,label:`_label_qjt90_29`,glyph:`_glyph_qjt90_29`,text:`_text_qjt90_30`,icon:`_icon_qjt90_32`,neutral:`_neutral_qjt90_44`,success:`_success_qjt90_45`,info:`_info_qjt90_46`,warning:`_warning_qjt90_47`,danger:`_danger_qjt90_48`},Iy={duration:Z.duration.fast,ease:[...Z.ease.standard]},Ly={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},Ry={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:Iy},zy={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},By={opacity:1,y:`0em`,scale:1,filter:`blur(0px)`},Vy={opacity:0,transition:{duration:Z.duration.instant}};function Hy(e){let t=Mu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function Uy(e){if(!(0,m.isValidElement)(e))return`icon`;let t=e.type;return typeof t==`string`?t:t.displayName??t.name??`icon`}function Wy({tone:e=`neutral`,size:t=`md`,icon:n,className:r,children:i,...a}){let o=H(),s=typeof i==`string`||typeof i==`number`?String(i):null,c=n?Uy(n):``,l=(0,m.useRef)(null),u=(0,m.useRef)(null),d=Ff(`auto`),f=(0,m.useRef)(0);(0,m.useLayoutEffect)(()=>{f.current=performance.now()},[s,c]),(0,m.useEffect)(()=>{let e=u.current;if(!e||typeof ResizeObserver>`u`)return;let t,n,r=()=>{d.jump(`auto`),l.current&&(l.current.style.width=`auto`)},i=new ResizeObserver(([i])=>{let a=i.borderBoxSize?.[0]?.inlineSize??e.offsetWidth,s=d.get(),c=typeof s==`number`?s:t;if(t=a,n?.stop(),o||c===void 0||c===a||performance.now()-f.current>120)return r();l.current&&(l.current.style.width=`${c}px`),n=ip(d,[c,a],{...Z.spring.morph,onComplete:r})});return i.observe(e),()=>{i.disconnect(),n?.stop()}},[d,o]);let p=o?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},g=[Fy.badge,Fy[e],Fy[t],r].filter(Boolean).join(` `);return(0,h.jsx)(`span`,{...a,className:g,children:(0,h.jsx)(U.span,{ref:l,className:Fy.body,style:{width:d},children:(0,h.jsxs)(`span`,{ref:u,className:Fy.content,children:[n?(0,h.jsx)(`span`,{className:Fy.icon,"aria-hidden":`true`,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(Hy,{className:Fy.glyph,initial:o?{opacity:0}:zy,animate:By,exit:o?Vy:{...zy,transition:Iy},transition:o?p:Z.spring.snappy,children:n},c)})}):null,s===null?i:(0,h.jsx)(`span`,{className:Fy.label,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(Hy,{className:Fy.text,initial:o?{opacity:0}:Ly,animate:By,exit:o?Vy:Ry,transition:p,children:s},s)})})]})})})}var Gy={button:`_button_14khe_1`,labelSlot:`_labelSlot_14khe_8`,labelContent:`_labelContent_14khe_10`,labelPhase:`_labelPhase_14khe_11`,primary:`_primary_14khe_13`,secondary:`_secondary_14khe_14`,ghost:`_ghost_14khe_15`,danger:`_danger_14khe_16`,sm:`_sm_14khe_27`,md:`_md_14khe_28`,lg:`_lg_14khe_29`,loader:`_loader_14khe_30`,spinner:`_spinner_14khe_31`,spin:`_spin_14khe_31`,loadingLabel:`_loadingLabel_14khe_32`},Ky={pressed:e=>{let t=e.current?.offsetWidth??0;return{scale:t>220?.985:t&&t<=48?.96:.97,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}}}},qy={opacity:1,y:0,scale:1,filter:`blur(0px)`},Jy={opacity:0,y:4,filter:`blur(${Z.blur.soft}px)`},Yy={opacity:0,y:-3,filter:`blur(${Z.blur.soft}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},Xy={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},Zy={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},Qy={...qy,opacity:0},$y={opacity:0,transition:{duration:Z.duration.instant}},eb={...Z.spring.snappy,opacity:{duration:Z.duration.fast,ease:[...Z.ease.enter]},filter:{duration:Z.duration.fast,ease:[...Z.ease.enter]}};function tb(e){if(e==null||typeof e==`boolean`)return``;if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return String(e);if(Array.isArray(e))return e.map(tb).join(``);if(!(0,m.isValidElement)(e))return``;let t=e.type;return`<${typeof t==`string`?t:t?.displayName??t?.name??``}>${tb(e.props.children)}`}function nb(e,t,n){let r=Ff(`auto`),i=(0,m.useRef)(t),a=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{i.current!==t&&(i.current=t,a.current=performance.now()+700)},[t]),(0,m.useEffect)(()=>{let t=e.current,i=t?.parentElement;if(!t||!i||typeof ResizeObserver>`u`)return;let o=!1,s=new ResizeObserver(([e])=>{let t=e.contentRect.width;if(!t||!o||n||performance.now()>a.current){o=t>0,r.jump(t||`auto`),delete i.dataset.morphing;return}i.dataset.morphing=``,ip(r,t,{...Z.spring.morph,onComplete:()=>{delete i.dataset.morphing}})});return s.observe(t),()=>s.disconnect()},[e,n,r]),r}function rb({children:e,icon:t,reduced:n,ref:r}){let i=Mu();return(0,h.jsx)(U.span,{ref:r,className:Gy.labelPhase,"aria-hidden":!i||void 0,initial:n?Qy:t?Xy:Jy,animate:qy,exit:n?$y:t?Zy:Yy,transition:n?{duration:Z.duration.instant}:t?eb:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:e})}var ib=(0,m.forwardRef)(function({className:e,variant:t=`primary`,size:n=`md`,loading:r=!1,disabled:i,children:a,onClick:o,...s},c){let l=H()??!1,u=(0,m.useRef)(null),d=(0,m.useRef)(null),f=tb(a),p=nb(d,f,l),g=(0,m.useCallback)(e=>{u.current=e,typeof c==`function`?c(e):c&&(c.current=e)},[c]),_=s[`aria-haspopup`],v=_!==void 0&&_!==!1&&_!==`false`||s.role===`combobox`||s[`data-state`]!==void 0,y=i||r||s[`aria-disabled`]===!0||s[`aria-disabled`]===`true`,b=[Gy.button,Gy[t],Gy[n],e].filter(Boolean).join(` `);return(0,h.jsxs)(U.button,{ref:g,tabIndex:s.tabIndex??0,className:b,disabled:i,"aria-busy":r||void 0,custom:u,variants:Ky,whileTap:l||v||y?void 0:`pressed`,transition:Z.spring.snappy,...s,"aria-disabled":r||s[`aria-disabled`]||void 0,onClick:r?e=>e.preventDefault():o,children:[(0,h.jsx)(V,{initial:!1,children:r?(0,h.jsx)(U.span,{className:Gy.loader,"aria-hidden":`true`,initial:l?{opacity:0}:{opacity:0,scale:.6},animate:{opacity:1,scale:1},exit:l?$y:{...Zy,scale:.8},transition:l?{duration:Z.duration.instant}:eb,children:(0,h.jsx)(`span`,{className:Gy.spinner})},`loader`):null}),(0,h.jsx)(U.span,{className:[Gy.labelSlot,r?Gy.loadingLabel:``].filter(Boolean).join(` `),style:{width:p},children:(0,h.jsx)(`span`,{ref:d,className:Gy.labelContent,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(rb,{icon:!/\S/.test(f.replace(/<[^>]*>/g,``)),reduced:l,children:a},f)})})})]})});ib.displayName=`Button`;function ab(e=1900){let[t,n]=(0,m.useState)(`idle`),[r,i]=(0,m.useState)(null),a=(0,m.useRef)(null),o=(0,m.useCallback)(()=>{a.current&&clearTimeout(a.current),a.current=null,n(`idle`),i(null)},[]);return(0,m.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{state:t,activeKey:r,copy:(0,m.useCallback)(async(t,r=`default`)=>{a.current&&clearTimeout(a.current),i(r);try{return await navigator.clipboard.writeText(t),n(`copied`),a.current=setTimeout(o,e),!0}catch{return n(`error`),a.current=setTimeout(o,e),!1}},[e,o]),reset:o}}var ob={button:`_button_17pbi_1`,iconOnly:`_iconOnly_17pbi_3`,plain:`_plain_17pbi_4`,icon:`_icon_17pbi_3`,iconInner:`_iconInner_17pbi_8`,label:`_label_17pbi_12`,measure:`_measure_17pbi_13`,glyphs:`_glyphs_17pbi_13`,glyph:`_glyph_17pbi_13`,srOnly:`_srOnly_17pbi_19`},sb={type:`spring`,visualDuration:.5,bounce:.06},cb={duration:.36,ease:[...Z.ease.enter]},lb={duration:.2,ease:[...Z.ease.standard]},ub={duration:Z.duration.instant},db=`blur(${Z.blur.soft}px)`,fb={opacity:1,y:0,scale:1,filter:`blur(0px)`},pb={...fb,opacity:0},mb={opacity:0,transition:ub},hb={opacity:0,scale:.6,filter:db},gb={opacity:0,scale:.6,filter:db,transition:{duration:.24,ease:[...Z.ease.standard]}},_b={scale:sb,opacity:{...cb,delay:.03},filter:{...cb,delay:.03}},vb={opacity:0,y:4,filter:db},yb={opacity:0,y:-3,filter:db,transition:lb};function bb({reduced:e}){return(0,h.jsx)(`svg`,{width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.75,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,h.jsx)(U.path,{d:`M4 12l5 5L20 6`,initial:!e&&{pathLength:0,opacity:0},animate:{pathLength:1,opacity:1},transition:{pathLength:{duration:.5,ease:[...Z.ease.standard],delay:.05},opacity:{duration:.01,delay:.05}}})})}var xb=(e,t)=>e.map((e,n)=>({id:`${t}:${n}`,char:e,order:n}));function Sb(e){let[t,n]=(0,m.useState)(()=>({text:e,seq:0,glyphs:xb([...e],0)}));if(t.text===e)return t.glyphs;let r=[...t.text],i=[...e],a=0,o=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;for(;o<r.length-a&&o<i.length-a&&r[r.length-1-o]===i[i.length-1-o];)o++;a<2&&(a=0),o<2&&(o=0);let s=t.seq+1,c=[...t.glyphs.slice(0,a),...xb(i.slice(a,i.length-o),s),...t.glyphs.slice(t.glyphs.length-o)];return n({text:e,seq:s,glyphs:c}),c}function Cb({text:e,reduced:t}){let n=Sb(e);return(0,h.jsx)(U.span,{className:ob.glyphs,layoutRoot:!0,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:n.map(n=>(0,h.jsx)(U.span,{className:ob.glyph,layout:!t&&`position`,layoutDependency:e,initial:t?pb:vb,animate:fb,exit:t?mb:yb,transition:t?ub:{...cb,delay:Math.min(n.order*.02,.12),layout:sb},children:n.char},n.id))})})}function wb({value:e,label:t=`Copy`,className:n,iconOnly:r=!1,variant:i=`outline`,disabled:a,onCopied:o}){let{state:s,copy:c}=ab(),l=H()??!1,u=s===`copied`?`Copied`:s===`error`?`Failed`:t;async function d(){await c(e)&&o?.()}return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`button`,{type:`button`,className:[ob.button,r&&ob.iconOnly,i===`plain`&&ob.plain,n].filter(Boolean).join(` `),onClick:()=>void d(),"aria-label":t,"data-copy-state":s,disabled:a,children:[(0,h.jsx)(`span`,{className:ob.icon,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,children:(0,h.jsx)(U.span,{className:ob.iconInner,"data-state":s,initial:l?pb:hb,animate:fb,exit:l?mb:gb,transition:l?ub:_b,children:s===`copied`?(0,h.jsx)(bb,{reduced:l}):s===`error`?(0,h.jsx)(iy,{size:16,strokeWidth:1.75}):(0,h.jsx)(cy,{size:16,strokeWidth:1.75})},s)})}),!r&&(0,h.jsxs)(`span`,{className:ob.label,"aria-hidden":`true`,children:[(0,h.jsx)(`span`,{className:ob.measure,children:t}),(0,h.jsx)(`span`,{className:ob.measure,children:`Copied`}),(0,h.jsx)(`span`,{className:ob.measure,children:`Failed`}),(0,h.jsx)(Cb,{text:u,reduced:l})]})]}),(0,h.jsx)(`span`,{className:ob.srOnly,role:`status`,"aria-live":`polite`,children:s===`idle`?``:s===`error`?`${t}: Could not copy`:`${t}: Copied`})]})}var Tb={block:`_block_zsn8w_1`,header:`_header_zsn8w_2`,file:`_file_zsn8w_4`,filename:`_filename_zsn8w_6`,swap:`_swap_zsn8w_8`,swapStack:`_swapStack_zsn8w_9`,swapText:`_swapText_zsn8w_11`,reserve:`_reserve_zsn8w_12`,sizer:`_sizer_zsn8w_13`,srOnly:`_srOnly_zsn8w_14`,language:`_language_zsn8w_15`,viewport:`_viewport_zsn8w_18`,pre:`_pre_zsn8w_19`,code:`_code_zsn8w_21`,expand:`_expand_zsn8w_22`,chevron:`_chevron_zsn8w_23`,comment:`_comment_zsn8w_25`,string:`_string_zsn8w_26`,number:`_number_zsn8w_27`,keyword:`_keyword_zsn8w_28`,type:`_type_zsn8w_29`,function:`_function_zsn8w_30`,property:`_property_zsn8w_31`,tag:`_tag_zsn8w_32`,punctuation:`_punctuation_zsn8w_33`},Eb=/^(?:abstract|as|async|await|break|case|catch|class|const|continue|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|of|private|protected|public|readonly|return|set|static|switch|throw|try|type|typeof|var|void|while|with|yield|SELECT|FROM|WHERE|INSERT|UPDATE|DELETE)$/,Db=/^(?:true|false|null|undefined|NaN|Infinity)$/,Ob=/^(?:Array|Boolean|Date|Error|Map|Number|Promise|Record|Set|String|ReactNode|HTMLElement|HTMLButtonElement|Event|unknown|never|void|any|boolean|number|string|object)$/,kb=/\/\*[\s\S]*?\*\/|\/\/[^\n]*|<!--[\s\S]*?-->|`(?:\\.|[^`\\])*`|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b\d+(?:\.\d+)?\b|\b[A-Za-z_$][\w$-]*\b|[{}[\]();,.<>:=+*/!?|&-]/g;function Ab(e){return e.toLowerCase().replace(/^\./,``)}function jb(e,t,n,r){if(e.startsWith(`//`)||e.startsWith(`/*`)||e.startsWith(`<!--`))return`comment`;if(e.startsWith(`"`)||e.startsWith(`'`)||e.startsWith("`"))return r===`json`&&/^\s*:/.test(t.slice(n+e.length))?`property`:`string`;if(/^\d/.test(e))return`number`;if(Eb.test(e)||Db.test(e))return`keyword`;if(Ob.test(e))return`type`;if(/^[{}[\]();,.<>:=+*/!?|&-]$/.test(e))return`punctuation`;let i=t.slice(0,n),a=t.slice(n+e.length);if((r===`tsx`||r===`jsx`||r===`html`||r===`vue`)&&/<\/?$/.test(i))return`tag`;if(/^\s*\(/.test(a)&&r!==`json`)return`function`;if((r===`css`||r===`tsx`||r===`jsx`)&&/^\s*[:=]/.test(a))return`property`}function Mb(e,t){let n=[],r=0;for(let i of e.matchAll(kb)){let a=i[0],o=i.index??0;r<o&&n.push(e.slice(r,o));let s=jb(a,e,o,t);n.push(s?(0,h.jsx)(`span`,{className:Tb[s],children:a},`${o}-${a}`):(0,h.jsx)(m.Fragment,{children:a},`${o}-${a}`)),r=o+a.length}return r<e.length&&n.push(e.slice(r)),n}var Nb={duration:Z.duration.standard,ease:[...Z.ease.enter]},Pb={duration:Z.duration.instant,ease:[...Z.ease.standard]};function Fb({value:e,reduced:t}){return(0,h.jsx)(V,{initial:!1,children:(0,h.jsx)(U.span,{className:Tb.swapText,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:Pb},transition:t?{duration:0}:Nb,children:e},e)})}function Ib({name:e,reduced:t}){let n=(0,m.useRef)(null),r=(0,m.useRef)(0),i=Ff(`auto`);return(0,m.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(()=>{r.current=e.offsetWidth});return t.observe(e),()=>t.disconnect()},[]),(0,m.useLayoutEffect)(()=>{let e=i.get(),a=n.current?.offsetWidth??0,o=typeof e==`number`?e:r.current;if(r.current=a,t||!o||!a||Math.abs(o-a)<1){i.jump(`auto`);return}i.jump(o);let s=ip(i,a,{...Z.spring.morph,onComplete:()=>i.jump(`auto`)});return()=>s.stop()},[e,t,i]),(0,h.jsxs)(U.span,{className:`${Tb.swap} ${Tb.filename}`,style:{width:i},children:[(0,h.jsx)(`span`,{ref:n,className:Tb.sizer,"aria-hidden":`true`,children:e}),(0,h.jsx)(`span`,{className:Tb.swapStack,"aria-hidden":`true`,children:(0,h.jsx)(Fb,{value:e,reduced:t})}),(0,h.jsx)(`span`,{className:Tb.srOnly,children:e})]})}function Lb({code:e,filename:t,language:n=`tsx`,maxLines:r}){let i=Ab(n),a=H()??!1,o=(0,m.useId)(),s=e.split(`
|
|
15
|
-
`).length,c=r!=null&&r>0&&s>r,[l,u]=(0,m.useState)(!1),d=!c||l,f=(0,m.useRef)(null),p=(0,m.useRef)(null),g=Ff(d?`auto`:`var(--code-collapsed)`),_=(0,m.useRef)({open:d,reduced:a}),v=(0,m.useRef)(()=>{});(0,m.useLayoutEffect)(()=>{let e=f.current;if(!e)return;let t=e=>{let t=p.current;if(!t)return;let n=_.current.open?t.full:t.collapsed;e||_.current.reduced||typeof g.get()!=`number`?g.jump(n):ip(g,n,Z.spring.smooth)},n=new ResizeObserver(()=>{let n=getComputedStyle(e),i=e.offsetHeight,a=r?Math.min(i,Math.round(r*parseFloat(n.lineHeight)+parseFloat(n.paddingTop)+parseFloat(n.paddingBottom))):i,o=!p.current;p.current={full:i,collapsed:a},t(o)});return n.observe(e),v.current=t,()=>n.disconnect()},[g,r]),(0,m.useLayoutEffect)(()=>{_.current={open:d,reduced:a},v.current(!1)},[d,a]);let y=[`Show all ${s} lines`,`Show fewer lines`];return(0,h.jsxs)(`section`,{className:Tb.block,"aria-label":t?`${t} source code`:`${i} source code`,style:r?{"--code-lines":r}:void 0,children:[(0,h.jsxs)(`header`,{className:Tb.header,children:[(0,h.jsxs)(`div`,{className:Tb.file,children:[(0,h.jsx)(uy,{size:16,strokeWidth:1.75,"aria-hidden":`true`}),(0,h.jsx)(Ib,{name:t??`Source code`,reduced:a}),(0,h.jsx)(`span`,{className:Tb.language,children:i})]}),(0,h.jsx)(wb,{value:e,label:`Copy code`})]}),(0,h.jsx)(U.div,{className:Tb.viewport,style:{height:g},children:(0,h.jsx)(`pre`,{ref:f,id:o,className:Tb.pre,tabIndex:0,"aria-label":`Selectable source code`,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,children:(0,h.jsx)(U.code,{className:Tb.code,initial:!a&&{opacity:0,y:4},animate:{opacity:1,y:0},exit:a?{opacity:0,transition:{duration:0}}:{opacity:0,transition:Pb},transition:a?{duration:0}:Nb,children:Mb(e,i)},e)})})}),c&&(0,h.jsxs)(`button`,{type:`button`,className:Tb.expand,"aria-expanded":l,"aria-controls":o,onClick:()=>u(e=>!e),children:[(0,h.jsxs)(`span`,{className:Tb.swap,"aria-hidden":`true`,children:[y.map(e=>(0,h.jsx)(`span`,{className:Tb.reserve,children:e},e)),(0,h.jsx)(`span`,{className:Tb.swapStack,children:(0,h.jsx)(Fb,{value:y[+!!l],reduced:a})})]}),(0,h.jsx)(`span`,{className:Tb.srOnly,children:y[+!!l]}),(0,h.jsx)(U.span,{className:Tb.chevron,"aria-hidden":`true`,initial:!1,animate:{rotate:l?180:0},transition:a?{duration:0}:Z.spring.snappy,children:(0,h.jsx)(ey,{size:16,strokeWidth:1.75})})]})]})}var Rb={root:`_root_1uufz_1`,icon:`_icon_1uufz_2`,"empty-state-icon":`_empty-state-icon_1uufz_1`,glyph:`_glyph_1uufz_3`,frame:`_frame_1uufz_4`,copy:`_copy_1uufz_5`,line:`_line_1uufz_9`,action:`_action_1uufz_10`},zb={duration:Z.duration.fast,ease:[...Z.ease.standard]},Bb={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},Vb={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:zb},Hb={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},Ub={opacity:1,y:`0em`,scale:1,filter:`blur(0px)`},Wb={opacity:0,transition:{duration:Z.duration.instant}};function Gb(e){let t=Mu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function Kb(e){if(!(0,m.isValidElement)(e))return`icon`;let t=e.type;return typeof t==`string`?t:t.displayName??t.name??`icon`}function qb({reduce:e,morphKey:t,children:n}){let r=(0,m.useRef)(null),i=(0,m.useRef)(null),a=Ff(`auto`),o=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{o.current=performance.now()},[t]),(0,m.useEffect)(()=>{let t=i.current;if(!t||typeof ResizeObserver>`u`)return;let n,s,c=()=>{a.jump(`auto`),r.current&&Object.assign(r.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([i])=>{let l=i.borderBoxSize?.[0]?.blockSize??t.offsetHeight,u=a.get(),d=typeof u==`number`?u:n;if(n=l,s?.stop(),e||d===void 0||d===l||performance.now()-o.current>120)return c();r.current&&Object.assign(r.current.style,{overflow:`hidden`,height:`${d}px`}),s=ip(a,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(t),()=>{l.disconnect(),s?.stop()}},[a,e]),(0,h.jsx)(U.div,{ref:r,className:Rb.frame,style:{height:a},children:(0,h.jsx)(`div`,{ref:i,className:Rb.copy,children:n})})}function Jb({title:e,description:t,action:n,icon:r,className:i,label:a}){let o=H(),s=r??(0,h.jsx)(fy,{width:24,height:24,strokeWidth:1.5}),c=o?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},l={initial:o?{opacity:0}:Bb,animate:Ub,exit:o?Wb:Vb,transition:c};return(0,h.jsxs)(`section`,{className:[Rb.root,i].filter(Boolean).join(` `),"aria-label":a,children:[(0,h.jsx)(`div`,{className:Rb.icon,"aria-hidden":`true`,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(Gb,{className:Rb.glyph,initial:o?{opacity:0}:Hb,animate:Ub,exit:o?Wb:{...Hb,transition:zb},transition:o?c:Z.spring.snappy,children:s},Kb(s))})}),(0,h.jsxs)(qb,{reduce:o,morphKey:`${e}\n${t}`,children:[(0,h.jsx)(`h3`,{children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(Gb,{className:Rb.line,...l,children:e},e)})}),(0,h.jsx)(`p`,{children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(Gb,{className:Rb.line,...l,children:t},t)})})]}),n&&(0,h.jsx)(`div`,{className:Rb.action,children:n})]})}var Yb={field:`_field_6ayfd_1`,label:`_label_6ayfd_2`,input:`_input_6ayfd_4`,messageSlot:`_messageSlot_6ayfd_11`,description:`_description_6ayfd_12`,error:`_error_6ayfd_12`,words:`_words_6ayfd_15`,word:`_word_6ayfd_15`,column:`_column_6ayfd_18`,srOnly:`_srOnly_6ayfd_20`},Xb={enter:e=>({opacity:0,y:`${e*.6}em`,filter:`blur(${Z.blur.subtle}px)`}),center:{opacity:1,y:0,filter:`blur(0px)`},exit:e=>({opacity:0,y:`${e*-.6}em`,filter:`blur(${Z.blur.subtle}px)`})},Zb=e=>/^\d[\d.,/:]*%?$/.test(e);function Qb({word:e}){let t=H(),[n,r]=(0,m.useState)({word:e,direction:1});n.word!==e&&r({word:e,direction:parseFloat(e.replace(/,/g,``))<parseFloat(n.word.replace(/,/g,``))?-1:1});let i=e.split(``),a=t?{duration:0}:{y:Z.spring.snappy,width:Z.spring.morph,opacity:{duration:Z.duration.fast},filter:{duration:Z.duration.fast}};return(0,h.jsx)(V,{initial:!1,children:i.map((e,t)=>(0,h.jsx)(U.span,{className:Yb.column,initial:{width:0,opacity:0},animate:{width:`auto`,opacity:1},exit:{width:0,opacity:0},transition:a,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,custom:n.direction,children:(0,h.jsx)(U.span,{custom:n.direction,variants:Xb,initial:`enter`,animate:`center`,exit:`exit`,transition:a,children:e},e)})},i.length-t))})}function $b({text:e}){let t=H(),n=e.split(` `);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:Yb.srOnly,children:e}),(0,h.jsx)(`span`,{className:Yb.words,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,children:n.map((e,r)=>(0,h.jsxs)(U.span,{className:Yb.word,initial:t?{opacity:0}:{opacity:0,y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.35em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.exit,ease:[...Z.ease.standard]}},transition:t?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:[Zb(e)?(0,h.jsx)(Qb,{word:e}):e,r<n.length-1?` `:null]},`${r}:${Zb(e)?`#`:e}`))})})]})}function ex({id:e,text:t,className:n,alert:r}){return(0,h.jsx)(V,{initial:!1,children:t?(0,h.jsx)(tx,{id:e,text:t,className:n,alert:r},`message`):null})}function tx({id:e,text:t,className:n,alert:r}){let i=H(),a=(0,m.useRef)(null),[o,s]=(0,m.useState)(`auto`);return(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(([t])=>s(t.borderBoxSize?.[0]?.blockSize??e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),(0,h.jsx)(U.span,{className:Yb.messageSlot,initial:!i&&{height:0,opacity:0},animate:{height:o,opacity:1},exit:{height:0,opacity:0,transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.instant}}},transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.fast}},children:(0,h.jsx)(U.span,{ref:a,id:e,className:n,role:r?`alert`:void 0,initial:!i&&{y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{y:0,filter:`blur(0px)`},transition:{duration:i?0:Z.duration.standard,ease:[...Z.ease.enter]},children:(0,h.jsx)($b,{text:t})})})}var nx=(0,m.forwardRef)(function({label:e,description:t,error:n,id:r,className:i,...a},o){let s=(0,m.useId)(),c=r??s,l=t?`${c}-description`:void 0,u=n?`${c}-error`:void 0,d=[a[`aria-describedby`],l,u].filter(Boolean).join(` `)||void 0;return(0,h.jsxs)(`div`,{className:Yb.field,children:[(0,h.jsx)(`label`,{className:Yb.label,htmlFor:c,children:e}),(0,h.jsx)(`input`,{...a,id:c,ref:o,className:[Yb.input,i].filter(Boolean).join(` `),"aria-invalid":n?!0:a[`aria-invalid`],"aria-describedby":d}),(0,h.jsx)(ex,{id:l,text:t,className:Yb.description}),(0,h.jsx)(ex,{id:u,text:n,className:Yb.error,alert:!0})]})});nx.displayName=`Input`;var rx={field:`_field_1t891_1`,shell:`_shell_1t891_4`,input:`_input_1t891_10`,clearSlot:`_clearSlot_1t891_14`},ix=(0,m.forwardRef)(function({label:e,value:t,onValueChange:n,clearLabel:r=`Clear search`,id:i,className:a,...o},s){let c=(0,m.useId)(),l=i??c,u=H(),d=(0,m.useRef)(null),f=e=>{d.current=e,typeof s==`function`?s(e):s&&(s.current=e)};function p(){n(``),d.current?.focus()}return(0,h.jsxs)(`div`,{className:rx.field,children:[(0,h.jsx)(`label`,{htmlFor:l,children:e}),(0,h.jsxs)(`div`,{className:rx.shell,"data-filled":t?`true`:void 0,children:[(0,h.jsx)(vy,{width:18,height:18,"aria-hidden":`true`}),(0,h.jsx)(`input`,{...o,ref:f,id:l,type:`search`,value:t,onChange:e=>n(e.target.value),className:[rx.input,a].filter(Boolean).join(` `)}),(0,h.jsx)(`span`,{className:rx.clearSlot,children:(0,h.jsx)(V,{initial:!1,children:t?(0,h.jsx)(U.button,{type:`button`,tabIndex:0,onClick:p,"aria-label":r,initial:u?{opacity:0}:{opacity:0,scale:.8,filter:`blur(${Z.blur.subtle}px)`},animate:{opacity:1,scale:1,filter:`blur(0px)`},exit:u?{opacity:0,transition:{duration:0}}:{opacity:0,scale:.8,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},whileTap:u?void 0:{scale:.96,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},transition:u?{duration:Z.duration.instant}:{...Z.spring.snappy,opacity:{duration:Z.duration.fast},filter:{duration:Z.duration.fast}},children:(0,h.jsx)(wy,{width:16,height:16,"aria-hidden":`true`})},`clear`):null})})]})]})}),ax={root:`_root_1ftc5_1`,track:`_track_1ftc5_3`,button:`_button_1ftc5_8`,selection:`_selection_1ftc5_11`,label:`_label_1ftc5_12`};function ox({options:e,value:t,onValueChange:n,label:r,onOptionIntent:i,className:a}){let o=(0,m.useId)(),s=H(),c=(0,m.useRef)(null);(0,m.useLayoutEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.scrollWidth-e.clientWidth-e.scrollLeft;e.toggleAttribute(`data-fade-start`,e.scrollLeft>1),e.toggleAttribute(`data-fade-end`,t>1)};t(),e.addEventListener(`scroll`,t,{passive:!0});let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{e.removeEventListener(`scroll`,t),n?.disconnect()}},[e.length]);let l=(0,m.useRef)(!0);(0,m.useEffect)(()=>{let e=c.current,t=e?.querySelector(`[aria-pressed="true"]`);if(!e||!t||e.scrollWidth<=e.clientWidth){l.current=!1;return}let n=t.offsetLeft-20,r=t.offsetLeft+t.offsetWidth+20-e.clientWidth,i=e.scrollLeft>n?n:e.scrollLeft<r?r:e.scrollLeft;i!==e.scrollLeft&&e.scrollTo({left:Math.max(0,i),behavior:l.current||s?`auto`:`smooth`}),l.current=!1},[t,s]);let u=Math.max(0,e.findIndex(e=>e.value===t)),d=t=>{let r=e.length-1,i=t.key===`ArrowRight`||t.key===`ArrowDown`?u===r?0:u+1:t.key===`ArrowLeft`||t.key===`ArrowUp`?u===0?r:u-1:t.key===`Home`?0:t.key===`End`?r:-1;i<0||!e[i]||(t.preventDefault(),n(e[i].value),c.current?.querySelector(`[data-value="${CSS.escape(e[i].value)}"]`)?.focus({preventScroll:!0}))};return(0,h.jsx)(`div`,{className:`${ax.root} ${a??``}`,role:`group`,"aria-label":r,children:(0,h.jsx)(Vu,{id:o,children:(0,h.jsx)(U.div,{ref:c,layoutScroll:!0,className:ax.track,children:e.map((e,r)=>(0,h.jsxs)(`button`,{id:`${o}-${e.value}`,className:ax.button,type:`button`,"data-value":e.value,"aria-pressed":t===e.value,tabIndex:r===u?0:-1,onClick:()=>n(e.value),onKeyDown:d,onPointerEnter:i?()=>i(e.value):void 0,onFocus:i?()=>i(e.value):void 0,children:[t===e.value&&(0,h.jsx)(U.span,{className:ax.selection,layoutId:`selection`,layoutDependency:t,transition:s?{duration:0}:Z.spring.morph,"aria-hidden":`true`}),(0,h.jsxs)(`span`,{className:ax.label,children:[e.label,e.accessory]})]},e.value))})})})}var sx={root:`_root_zuvxk_1`,avatar:`_avatar_zuvxk_3`,line:`_line_zuvxk_3`,"skeleton-pulse":`_skeleton-pulse_zuvxk_1`,lines:`_lines_zuvxk_5`,frame:`_frame_zuvxk_9`};function cx({className:e,busy:t,reduce:n,children:r}){let i=(0,m.useRef)(null),a=(0,m.useRef)(null),o=Ff(`auto`),s=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{s.current=performance.now()},[t]),(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t,r,c=()=>{o.jump(`auto`),i.current&&Object.assign(i.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([a])=>{let l=a.borderBoxSize?.[0]?.blockSize??e.offsetHeight,u=o.get(),d=typeof u==`number`?u:t;if(t=l,r?.stop(),n||d===void 0||d===l||performance.now()-s.current>120)return c();i.current&&Object.assign(i.current.style,{overflow:`hidden`,height:`${d}px`}),r=ip(o,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(e),()=>{l.disconnect(),r?.stop()}},[o,n]),(0,h.jsx)(U.div,{ref:i,className:e,"aria-busy":t,style:{height:o},children:(0,h.jsx)(`div`,{ref:a,className:sx.frame,children:r})})}function lx({label:e=`Loading content`,lines:t=3,avatar:n=!1,className:r,children:i,loading:a=!0}){let o=H(),s=Math.min(Math.max(Math.floor(t),1),6),c=t=>(0,h.jsxs)(`div`,{className:[sx.root,t].filter(Boolean).join(` `),role:`status`,"aria-label":e,"aria-busy":`true`,children:[n&&(0,h.jsx)(`span`,{className:sx.avatar,"aria-hidden":`true`}),(0,h.jsx)(`span`,{className:sx.lines,"aria-hidden":`true`,children:Array.from({length:s},(e,t)=>(0,h.jsx)(`span`,{className:sx.line,style:{"--index":t+ +!!n}},t))})]});return i===void 0?c(r):(0,h.jsx)(cx,{className:r,busy:a,reduce:o,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:a?(0,h.jsx)(U.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:o?Z.duration.instant:Z.duration.fast,ease:[...Z.ease.standard]},exit:{opacity:0,transition:{duration:o?Z.duration.instant:Z.duration.fast}},children:c()},`placeholder`):(0,h.jsx)(U.div,{initial:o?{opacity:0}:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,transition:{duration:o?Z.duration.instant:Z.duration.fast}},transition:{duration:o?Z.duration.instant:Z.duration.standard,ease:[...Z.ease.enter]},children:i},`content`)})})}var ux=Object.defineProperty,dx=(e,t)=>ux(e,`name`,{value:t,configurable:!0});function fx(e){let[t,n]=m.useState(void 0);return Y(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=0,r=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;let i=r[0];window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>{let t,r;if(`borderBoxSize`in i){let e=i.borderBoxSize,n=Array.isArray(e)?e[0]:e;t=n.inlineSize,r=n.blockSize}else t=e.offsetWidth,r=e.offsetHeight;n({width:t,height:r})})});return r.observe(e,{box:`border-box`}),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}n(void 0)},[e]),t}dx(fx,`useSize`);var px=Object.defineProperty,mx=(e,t)=>px(e,`name`,{value:t,configurable:!0}),hx=`Switch`,[gx,_x]=yg(hx),[vx,yx]=gx(hx);function bx(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=g_({prop:n,defaultProp:i??!1,onChange:c,caller:hx}),[g,_]=m.useState(null),[v,y]=m.useState(null),b=m.useRef(!1),[x,S]=m.useReducer(e=>e+1,0),C={checked:f,setChecked:p,disabled:a,control:g,setControl:_,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:b,userInteractionCount:x,onUserInteraction:S,required:l,defaultChecked:i,isFormControl:!g||!!o||!!g.closest(`form`),bubbleInput:v,setBubbleInput:y};return(0,h.jsx)(vx,{scope:t,...C,children:Ex(d)?d(C):r})}mx(bx,`SwitchProvider`);var xx=`SwitchTrigger`,Sx=m.forwardRef(mx(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,form:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:g,bubbleInput:_}=yx(xx,e),v=q(r,u),y=m.useRef(c);return m.useEffect(()=>{let e=a?i?.ownerDocument.getElementById(a):i?.form;if(e instanceof HTMLFormElement){let t=mx(()=>d(y.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[i,a,d]),(0,h.jsx)(X.button,{type:`button`,role:`switch`,"aria-checked":c,"aria-required":l,"data-state":Dx(c),"data-disabled":s?``:void 0,disabled:s,value:o,...n,ref:v,onClick:J(t,e=>{p(),d(e=>!e),_&&g&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`SwitchTrigger`)),Cx=m.forwardRef(mx(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,h.jsx)(bx,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Sx,{...d,ref:t,__scopeSwitch:n}),e&&(0,h.jsx)(Tx,{__scopeSwitch:n})]})})},`Switch`)),wx=`SwitchBubbleInput`,Tx=m.forwardRef(mx(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:g,setBubbleInput:_}=yx(wx,e),v=q(r,_),y=fx(i),b=m.useRef(!1),x=m.useRef(s),S=m.useRef(o);m.useEffect(()=>{let e=g;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==S.current;S.current=o;let i=x.current!==s;x.current=s;let c=!(r&&a.current);if(i&&n){b.current=!r;let t=new Event(`click`,{bubbles:c});n.call(e,s),e.dispatchEvent(t),b.current=!1}},[g,s,a,o]);let C=m.useRef(s);return(0,h.jsx)(X.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??C.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:v,onClick:J(t,e=>{b.current&&e.stopPropagation()}),style:{...n.style,...y,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function Ex(e){return typeof e==`function`}mx(Ex,`isFunction`);function Dx(e){return e?`checked`:`unchecked`}mx(Dx,`getState`);var Ox={switch:`_switch_ktcw0_1`,track:`_track_ktcw0_4`,thumb:`_thumb_ktcw0_7`,label:`_label_ktcw0_11`},kx=18,Ax=18,jx=5,Mx={type:`spring`,visualDuration:.3,bounce:0},Nx=(0,m.forwardRef)(function({label:e,className:t,checked:n,defaultChecked:r,onCheckedChange:i,onPointerDown:a,onPointerUp:o,onPointerLeave:s,onPointerCancel:c,onKeyDown:l,onKeyUp:u,onBlur:d,...f},p){let g=H(),[_,v]=(0,m.useState)(r??!1),[y,b]=(0,m.useState)(!1),x=n??_,S=Ff(1),C=(0,m.useRef)(x),w=(0,m.useRef)(-1/0);(0,m.useEffect)(()=>{if(C.current===x)return;C.current=x;let e=performance.now()-w.current<250;if(g||e)return;let t=ip(S,[1,1.16,1],{duration:.34,times:[0,.4,1],ease:[`easeOut`,`easeInOut`]});return()=>t.stop()},[x,g,S]);let T=y&&!g&&!f.disabled?jx:0,E=[Ox.switch,t].filter(Boolean).join(` `);return(0,h.jsxs)(Cx,{...f,ref:p,checked:x,onCheckedChange:e=>{n===void 0&&v(e),i?.(e)},onPointerDown:e=>{a?.(e),e.button===0&&b(!0)},onPointerUp:e=>{o?.(e),y&&!f.disabled&&(w.current=performance.now()),b(!1)},onPointerLeave:e=>{s?.(e),b(!1)},onPointerCancel:e=>{c?.(e),b(!1)},onKeyDown:e=>{l?.(e),e.key===` `&&b(!0)},onKeyUp:e=>{u?.(e),y&&!f.disabled&&(w.current=performance.now()),b(!1)},onBlur:e=>{d?.(e),b(!1)},className:E,"aria-label":f[`aria-label`]??e,children:[(0,h.jsx)(`span`,{className:Ox.track,children:(0,h.jsx)(U.span,{className:Ox.thumb,style:{scaleX:S},initial:!1,animate:{x:x?Ax-T:0,width:kx+T},transition:g?{duration:0}:{x:Mx,width:Z.spring.snappy}})}),e?(0,h.jsx)(`span`,{className:Ox.label,children:e}):null]})});Nx.displayName=`Switch`;var Px={field:`_field_mxljp_1`,control:`_control_mxljp_4`,messageSlot:`_messageSlot_mxljp_11`,hint:`_hint_mxljp_12`,error:`_error_mxljp_12`,words:`_words_mxljp_15`,word:`_word_mxljp_15`,column:`_column_mxljp_18`,srOnly:`_srOnly_mxljp_20`},Fx={enter:e=>({opacity:0,y:`${e*.6}em`,filter:`blur(${Z.blur.subtle}px)`}),center:{opacity:1,y:0,filter:`blur(0px)`},exit:e=>({opacity:0,y:`${e*-.6}em`,filter:`blur(${Z.blur.subtle}px)`})},Ix=e=>/^\d[\d.,/:]*%?$/.test(e);function Lx({word:e}){let t=H(),[n,r]=(0,m.useState)({word:e,direction:1});n.word!==e&&r({word:e,direction:parseFloat(e.replace(/,/g,``))<parseFloat(n.word.replace(/,/g,``))?-1:1});let i=e.split(``),a=t?{duration:0}:{y:Z.spring.snappy,width:Z.spring.morph,opacity:{duration:Z.duration.fast},filter:{duration:Z.duration.fast}};return(0,h.jsx)(V,{initial:!1,children:i.map((e,t)=>(0,h.jsx)(U.span,{className:Px.column,initial:{width:0,opacity:0},animate:{width:`auto`,opacity:1},exit:{width:0,opacity:0},transition:a,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,custom:n.direction,children:(0,h.jsx)(U.span,{custom:n.direction,variants:Fx,initial:`enter`,animate:`center`,exit:`exit`,transition:a,children:e},e)})},i.length-t))})}function Rx({text:e}){let t=H(),n=e.split(` `);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:Px.srOnly,children:e}),(0,h.jsx)(`span`,{className:Px.words,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,children:n.map((e,r)=>(0,h.jsxs)(U.span,{className:Px.word,initial:t?{opacity:0}:{opacity:0,y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.35em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},transition:t?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:[Ix(e)?(0,h.jsx)(Lx,{word:e}):e,r<n.length-1?` `:null]},`${r}:${Ix(e)?`#`:e}`))})})]})}function zx({id:e,text:t,className:n,alert:r}){return(0,h.jsx)(V,{initial:!1,children:t?(0,h.jsx)(Bx,{id:e,text:t,className:n,alert:r},`message`):null})}function Bx({id:e,text:t,className:n,alert:r}){let i=H(),a=(0,m.useRef)(null),[o,s]=(0,m.useState)(`auto`);return(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(([t])=>s(t.borderBoxSize?.[0]?.blockSize??e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),(0,h.jsx)(U.span,{className:Px.messageSlot,initial:!i&&{height:0,opacity:0},animate:{height:o,opacity:1},exit:{height:0,opacity:0,transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.instant}}},transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.fast}},children:(0,h.jsx)(U.span,{ref:a,id:e,className:n,role:r?`alert`:void 0,initial:!i&&{y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{y:0,filter:`blur(0px)`},transition:{duration:i?0:Z.duration.standard,ease:[...Z.ease.enter]},children:(0,h.jsx)(Rx,{text:t})})})}var Vx=(0,m.forwardRef)(function({label:e,description:t,error:n,id:r,className:i,...a},o){let s=(0,m.useId)(),c=r??s,l=t?`${c}-description`:void 0,u=n?`${c}-error`:void 0;return(0,h.jsxs)(`div`,{className:Px.field,children:[(0,h.jsx)(`label`,{htmlFor:c,children:e}),(0,h.jsx)(`textarea`,{...a,id:c,ref:o,className:[Px.control,i].filter(Boolean).join(` `),"aria-invalid":n?!0:a[`aria-invalid`],"aria-describedby":[a[`aria-describedby`],l,u].filter(Boolean).join(` `)||void 0}),(0,h.jsx)(zx,{id:l,text:t,className:Px.hint}),(0,h.jsx)(zx,{id:u,text:n,className:Px.error,alert:!0})]})}),Hx=(0,m.createContext)(null);function Ux(e,t){let n=(0,m.useContext)(Hx);return{field:n,label:e??n?.label??t??``,hidden:e===void 0&&n===null}}function Wx({label:e,hint:t,error:n,children:r,className:i}){let a=typeof t==`string`?t:void 0;return(0,h.jsxs)(`div`,{className:pg(`flex min-w-0 flex-col`,i),children:[(0,h.jsx)(Hx.Provider,{value:{label:e,description:a,error:n},children:r}),t!==void 0&&a===void 0&&!n&&(0,h.jsx)(`div`,{className:`mt-2 text-[11px] text-[var(--text-muted)]`,children:t})]})}var Gx={primary:`primary`,glass:`secondary`,plain:`ghost`,destructive:`danger`},Kx=(0,m.forwardRef)(function({variant:e=`glass`,size:t=`md`,icon:n,children:r,style:i,type:a=`button`,...o},s){let c=r==null||r===!1,l={...e===`primary`&&{background:`var(--accent)`,borderColor:`var(--accent)`,color:`var(--on-accent)`},...c&&{paddingInline:0,width:t===`sm`?`var(--control-height-sm)`:`var(--control-height-md)`},...i};return(0,h.jsxs)(ib,{ref:s,type:a,variant:Gx[e],size:t,style:l,...o,children:[n,r]})});function qx({items:e,value:t,onChange:n,className:r,ariaLabel:i}){return(0,h.jsx)(ox,{className:r,label:i,value:t,onValueChange:e=>n(e),options:e.map(e=>({value:e.value,label:e.label,accessory:e.accessory}))})}function Jx({checked:e,onChange:t,disabled:n,label:r}){return(0,h.jsx)(Nx,{checked:e,onCheckedChange:t,disabled:n,"aria-label":r,onClick:e=>e.stopPropagation()})}function Yx({title:e,footer:t,children:n,className:r}){return(0,h.jsxs)(`section`,{className:pg(`mb-5`,r),children:[e&&(0,h.jsx)(`h3`,{className:`mb-2 px-1 text-[12px] font-medium text-[var(--text-secondary)]`,children:e}),(0,h.jsx)(`div`,{className:`card divide-y divide-[var(--border)]`,children:n}),t&&(0,h.jsx)(`p`,{className:`mt-2 px-1 text-[11px] text-[var(--text-muted)]`,children:t})]})}function Xx({label:e,detail:t,icon:n,children:r,onClick:i,selected:a,className:o}){return(0,h.jsxs)(`div`,{...i?{role:`button`,tabIndex:0,onClick:i,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())}}:{},className:pg(`flex min-h-11 w-full items-center gap-3 px-4 py-2 text-left`,i&&`cursor-default transition-colors hover:bg-[var(--surface-muted)]`,a&&`bg-[var(--accent-subtle)]`,o),children:[n,(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`div`,{className:`truncate text-[13px]`,children:e}),t&&(0,h.jsx)(`div`,{className:`truncate text-[11px] text-[var(--text-secondary)]`,children:t})]}),r!==void 0&&(0,h.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:r})]})}var Zx={fontFamily:`var(--font-mono)`,fontSize:`12px`},Qx=(0,m.forwardRef)(function({className:e,invalid:t,label:n,mono:r,style:i,...a},o){let s=Ux(n,a[`aria-label`]??a.placeholder);return(0,h.jsx)(`div`,{className:pg(`min-w-0`,s.hidden&&`astra-label-hidden`,e),children:(0,h.jsx)(nx,{ref:o,label:s.label,description:s.field?.description,error:s.field?.error,"aria-invalid":t||void 0,style:r?{...Zx,...i}:i,...a})})}),$x=(0,m.forwardRef)(function({className:e,invalid:t,label:n,mono:r,style:i,...a},o){let s=Ux(n,a[`aria-label`]??a.placeholder);return(0,h.jsx)(`div`,{className:pg(`min-w-0`,s.hidden&&`astra-label-hidden`,e),children:(0,h.jsx)(Vx,{ref:o,label:s.label,description:s.field?.description,error:s.field?.error,"aria-invalid":t||void 0,style:r?{...Zx,...i}:i,...a})})});function eS({value:e,onChange:t,className:n,placeholder:r,step:i,min:a,label:o}){return(0,h.jsx)(Qx,{type:`number`,inputMode:`decimal`,step:i??`any`,min:a,"aria-label":o,placeholder:r,className:n,style:{fontVariantNumeric:`tabular-nums`,textAlign:`right`},value:e??``,onChange:e=>{let n=e.target.value;if(n===``)return t(null);let r=Number(n);Number.isNaN(r)||t(r)}})}function tS({value:e,onChange:t,placeholder:n,inputRef:r,className:i,clearLabel:a}){return(0,h.jsx)(`div`,{className:pg(`astra-label-hidden min-w-0`,i),children:(0,h.jsx)(ix,{ref:r,label:n??`Search`,placeholder:n,value:e,onValueChange:t,clearLabel:a})})}var nS={neutral:`neutral`,accent:`info`,green:`success`,orange:`warning`,red:`danger`};function rS({tone:e=`neutral`,children:t,className:n,title:r}){return(0,h.jsx)(Wy,{tone:nS[e],size:`sm`,className:pg(`shrink-0`,n),title:r,children:t})}function iS({tone:e}){let t={green:`var(--success)`,orange:`var(--warning)`,red:`var(--danger)`,neutral:`var(--text-muted)`}[e];return(0,h.jsx)(`span`,{className:`inline-block size-2 shrink-0 rounded-full`,style:{background:t}})}function aS({children:e,size:t=20,className:n}){return(0,h.jsx)(`span`,{className:pg(`inline-flex shrink-0 items-center justify-center text-[var(--text-secondary)]`,n),style:{width:t,height:t},children:e})}function oS({label:e,children:t,mono:n}){return(0,h.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 py-1 text-[12px]`,children:[(0,h.jsx)(`span`,{className:`shrink-0 text-[var(--text-secondary)]`,children:e}),(0,h.jsx)(`span`,{className:pg(`min-w-0 truncate text-right selectable`,n&&`font-mono text-[11px]`),children:t})]})}function sS({children:e,maxHeight:t=320,language:n=`json`,filename:r}){return(0,h.jsx)(Lb,{code:e,language:n,filename:r,maxLines:Math.max(4,Math.round(t/22))})}function cS({className:e,lines:t=2}){return(0,h.jsx)(lx,{className:e,lines:t})}function lS({icon:e,title:t,detail:n,action:r}){return(0,h.jsx)(`div`,{className:`px-6 py-12`,children:(0,h.jsx)(Jb,{icon:e,title:t,description:n??``,action:r})})}function uS({children:e,action:t}){return(0,h.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2 px-1`,children:[(0,h.jsx)(`h2`,{className:`text-[13px] font-medium`,children:e}),t]})}function dS({title:e,action:t,children:n,className:r}){return(0,h.jsxs)(`section`,{className:r,children:[(0,h.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,h.jsx)(`h3`,{className:`text-[12px] font-medium text-[var(--text-secondary)]`,children:e}),t]}),n]})}var fS={presence:`_presence_1m2d3_1`,alert:`_alert_1m2d3_2`,icon:`_icon_1m2d3_3`,glyph:`_glyph_1m2d3_3`,copy:`_copy_1m2d3_6`,content:`_content_1m2d3_7`,title:`_title_1m2d3_8`,line:`_line_1m2d3_9`,description:`_description_1m2d3_10`,info:`_info_1m2d3_11`,success:`_success_1m2d3_11`,warning:`_warning_1m2d3_11`,danger:`_danger_1m2d3_11`,dismiss:`_dismiss_1m2d3_12`},pS={info:my,success:Qv,warning:Sy,danger:oy},mS={duration:Z.duration.fast,ease:[...Z.ease.standard]},hS={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},gS={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:mS},_S={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},vS={opacity:1,y:`0em`,scale:1,filter:`blur(0px)`},yS={opacity:0,transition:{duration:Z.duration.instant}};function bS(e){let t=Mu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function xS({className:e,reduce:t,morphKey:n,children:r}){let i=(0,m.useRef)(null),a=(0,m.useRef)(null),o=Ff(`auto`),s=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{s.current=performance.now()},[n]),(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let n,r,c=()=>{o.jump(`auto`),i.current&&Object.assign(i.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([a])=>{let l=a.borderBoxSize?.[0]?.blockSize??e.offsetHeight,u=o.get(),d=typeof u==`number`?u:n;if(n=l,r?.stop(),t||d===void 0||d===l||performance.now()-s.current>120)return c();i.current&&Object.assign(i.current.style,{overflow:`hidden`,height:`${d}px`}),r=ip(o,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(e),()=>{l.disconnect(),r?.stop()}},[o,t]),(0,h.jsx)(U.div,{ref:i,className:e,style:{height:o},children:(0,h.jsx)(`div`,{ref:a,className:fS.content,children:r})})}function SS({tone:e=`info`,title:t,children:n,className:r,reduce:i,onDismiss:a,animateIcon:o=!1,...s}){let c=pS[e],l=typeof n==`string`||typeof n==`number`?String(n):null,u=n!=null&&n!==!1&&n!==``,d=i?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},f={initial:i?{opacity:0}:hS,animate:vS,exit:i?yS:gS,transition:d};return(0,h.jsxs)(`div`,{...s,className:[fS.alert,fS[e],r].filter(Boolean).join(` `),role:e===`danger`?`alert`:`status`,children:[(0,h.jsx)(U.span,{className:fS.icon,initial:o&&!i?_S:!1,animate:vS,transition:Z.spring.snappy,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(bS,{className:fS.glyph,initial:i?{opacity:0}:_S,animate:vS,exit:i?yS:{..._S,transition:mS},transition:i?d:Z.spring.snappy,children:(0,h.jsx)(c,{width:18,height:18,"aria-hidden":`true`})},e)})}),(0,h.jsxs)(xS,{className:fS.copy,reduce:i,morphKey:`${t}\n${u}\n${l??``}`,children:[(0,h.jsx)(`strong`,{className:fS.title,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(bS,{className:fS.line,...f,children:t},t)})}),(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:u&&(0,h.jsx)(U.p,{className:fS.description,...f,children:l===null?n:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(bS,{className:fS.line,...f,children:l},l)})},`details`)})]}),a&&(0,h.jsx)(`button`,{type:`button`,className:fS.dismiss,"aria-label":`Dismiss: ${t}`,onClick:a,children:(0,h.jsx)(wy,{width:16,height:16,strokeWidth:1.75,"aria-hidden":`true`})})]})}function CS({open:e,onDismiss:t,...n}){let r=H(),[i,a]=(0,m.useState)(!1),o=(0,m.useRef)(null),s=e=>{o.current&&(o.current.style.overflow=e)};if(e===void 0&&!t)return(0,h.jsx)(SS,{...n,reduce:r});let c=e??!i,l=t&&(()=>e===void 0?a(!0):t()),u=r?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.standard,ease:[...Z.ease.enter]}},d={height:0,opacity:0,transition:r?{duration:0}:{height:Z.spring.smooth,opacity:mS}};return(0,h.jsx)(V,{initial:!1,onExitComplete:()=>{e===void 0&&t?.()},children:c&&(0,h.jsx)(U.div,{className:fS.presence,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:d,transition:u,ref:o,onAnimationStart:()=>s(`hidden`),onAnimationComplete:()=>s(``),children:(0,h.jsx)(SS,{...n,reduce:r,onDismiss:l,animateIcon:!0})},`alert`)})}var wS={field:`_field_6szcl_1`,control:`_control_6szcl_3`,disabled:`_disabled_6szcl_4`,open:`_open_6szcl_6`,searchIcon:`_searchIcon_6szcl_8`,chevron:`_chevron_6szcl_12`,clear:`_clear_6szcl_14`,hint:`_hint_6szcl_17`,popover:`_popover_6szcl_18`,autoHeight:`_autoHeight_6szcl_19`,listbox:`_listbox_6szcl_20`,option:`_option_6szcl_22`,check:`_check_6szcl_26`,empty:`_empty_6szcl_27`};function TS({children:e,reduceMotion:t}){let n=(0,m.useRef)(null),[r,i]=(0,m.useState)(`auto`);return(0,m.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(()=>i(e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),(0,h.jsx)(U.div,{className:wS.autoHeight,initial:!1,animate:{height:r},transition:t?{duration:0}:Z.spring.smooth,children:(0,h.jsx)(`div`,{ref:n,children:e})})}var ES=(0,m.forwardRef)(function({label:e,options:t,value:n,defaultValue:r=``,onValueChange:i,description:a,placeholder:o=`Search or select…`,emptyMessage:s=`No matches found`,id:c,className:l,disabled:u,onFocus:d,...f},p){let g=(0,m.useId)(),_=c??g,v=`${_}-listbox`,y=a?`${_}-description`:void 0,b=(0,m.useRef)(null),x=(0,m.useRef)(null),S=(0,m.useRef)({}),C=H(),[w,T]=(0,m.useState)(r),[E,D]=(0,m.useState)(!1),[O,k]=(0,m.useState)(``),[A,j]=(0,m.useState)(-1),M=n??w,N=t.find(e=>e.value===M);(0,m.useImperativeHandle)(p,()=>x.current);let P=(0,m.useRef)(M);(0,m.useEffect)(()=>{if(P.current===M)return;P.current=M;let e=x.current;if(!e||C||M&&E)return;let t=M?ip(e,{opacity:[0,1],y:[`0.35em`,`0em`],filter:[`blur(${Z.blur.soft}px)`,`blur(0px)`]},{duration:Z.duration.standard,ease:[...Z.ease.enter]}):ip(e,{opacity:[0,1]},{duration:Z.duration.fast,ease:[...Z.ease.enter]});return()=>t.complete()},[M,C,E]);let F=(0,m.useMemo)(()=>{let e=O.trim().toLocaleLowerCase();return e?t.filter(t=>[t.label,...t.keywords??[]].some(t=>t.toLocaleLowerCase().includes(e))):t},[t,O]),ee=F.reduce((e,t,n)=>(t.disabled||e.push(n),e),[]);(0,m.useEffect)(()=>{if(!E)return;let e=A>=0?F[A]:void 0,t=e?S.current[e.value]:null,n=t?.parentElement;if(t&&n){let e=t.offsetTop,r=e+t.offsetHeight;e<n.scrollTop?n.scrollTop=e:r>n.scrollTop+n.clientHeight&&(n.scrollTop=r-n.clientHeight)}},[A,F,E]),(0,m.useEffect)(()=>{let e=e=>{b.current&&!b.current.contains(e.target)&&(D(!1),k(``))};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[]);let te=e=>{e.disabled||(T(e.value),i?.(e.value),k(``),D(!1),x.current?.focus())},ne=e=>{e.preventDefault(),T(``),i?.(``),k(``),D(!0),x.current?.focus()},re=()=>{u||(D(!0),k(``),j(-1))},ie=e=>{if(!u){if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),!E){re();return}if(!ee.length)return;let t=ee.indexOf(A),n=e.key===`ArrowDown`?(t+1)%ee.length:(t-1+ee.length)%ee.length;j(ee[n]);return}if(e.key===`Enter`&&E&&A>=0){e.preventDefault();let t=F[A];t&&te(t);return}if(e.key===`Escape`&&E){e.preventDefault(),D(!1),k(``);return}}},ae=E?O:N?.label??``,oe=A>=0?F[A]:void 0;return(0,h.jsxs)(`div`,{ref:b,className:wS.field,children:[(0,h.jsx)(`label`,{htmlFor:_,children:e}),(0,h.jsxs)(`div`,{className:[wS.control,E?wS.open:``,u?wS.disabled:``,l??``].filter(Boolean).join(` `),children:[(0,h.jsx)(vy,{className:wS.searchIcon,size:16,strokeWidth:1.75,"aria-hidden":`true`}),(0,h.jsx)(`input`,{...f,ref:x,id:_,type:`text`,role:`combobox`,value:ae,placeholder:N?.label??o,disabled:u,"aria-describedby":y,"aria-expanded":E,"aria-controls":E?v:void 0,"aria-autocomplete":`list`,"aria-activedescendant":E&&oe?`${_}-option-${oe.value}`:void 0,onFocus:e=>{d?.(e),re()},onClick:re,onChange:e=>{k(e.target.value),D(!0),j(-1)},onKeyDown:ie}),(0,h.jsx)(V,{initial:!1,children:N&&!u&&(0,h.jsx)(U.button,{type:`button`,className:wS.clear,"aria-label":`Clear selection`,onMouseDown:e=>e.preventDefault(),onClick:ne,initial:C?{opacity:0}:{opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},animate:{opacity:1,scale:1,filter:`blur(0px)`,transition:C?{duration:Z.duration.instant}:{...Z.spring.snappy,opacity:{duration:Z.duration.fast}}},exit:{opacity:0,...C?{}:{scale:.6,filter:`blur(${Z.blur.subtle}px)`},transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},whileTap:{scale:C?1:.96,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},children:(0,h.jsx)(wy,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})}),(0,h.jsx)(ey,{className:wS.chevron,size:16,strokeWidth:1.75,"aria-hidden":`true`})]}),a&&(0,h.jsx)(`span`,{id:y,className:wS.hint,children:a}),(0,h.jsx)(V,{initial:!1,children:E&&(0,h.jsx)(U.div,{className:wS.popover,initial:C?{opacity:0}:{opacity:0,y:-6,scale:.97},animate:{opacity:1,y:0,scale:1,transition:C?{duration:Z.duration.instant}:{...Z.spring.snappy,opacity:{duration:Z.duration.fast,ease:[...Z.ease.enter]}}},exit:{opacity:0,...C?{}:{y:-4,scale:.98},transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},role:`presentation`,children:(0,h.jsx)(TS,{reduceMotion:C,children:(0,h.jsx)(`div`,{id:v,className:wS.listbox,role:`listbox`,"aria-label":`${e} options`,children:F.length?F.map((e,t)=>(0,h.jsxs)(`div`,{ref:t=>{S.current[e.value]=t},id:`${_}-option-${e.value}`,className:wS.option,"data-active":t===A?`true`:void 0,"data-disabled":e.disabled?`true`:void 0,role:`option`,"aria-selected":e.value===M,"aria-disabled":e.disabled||void 0,onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>!e.disabled&&j(t),onClick:()=>te(e),children:[(0,h.jsx)(`span`,{children:e.label}),e.value===M&&(0,h.jsx)(Qv,{className:wS.check,size:16,strokeWidth:1.75,"aria-hidden":`true`})]},e.value)):(0,h.jsx)(U.div,{className:wS.empty,role:`status`,initial:!C&&{opacity:0,y:4,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:s})})})})})]})});ES.displayName=`Combobox`;var DS=Object.defineProperty,OS=(e,t)=>DS(e,`name`,{value:t,configurable:!0});function kS(e){let t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>((...e)=>t.current?.(...e)),[])}OS(kS,`useCallbackRef`);var AS=Object.defineProperty,jS=(e,t)=>AS(e,`name`,{value:t,configurable:!0}),MS=`dismissableLayer.update`,NS=`dismissableLayer.pointerDownOutside`,PS=`dismissableLayer.focusOutside`,FS,IS=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),LS=m.forwardRef(jS(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=m.useContext(IS),[d,f]=m.useState(null),p=d?.ownerDocument??globalThis?.document,[,g]=m.useState({}),_=q(t,f),v=Array.from(u.layers),[y]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),b=y?v.indexOf(y):-1,x=d?v.indexOf(d):-1,S=u.layersWithOutsidePointerEventsDisabled.size>0,C=x>=b,w=m.useRef(!1),T=BS(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:w,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:m.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return C&&!t},[u.branches,C])}),E=VS(e=>{if(r&&w.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),D=d?x===v.length-1:!1,O=kS(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return m.useEffect(()=>{if(D)return p.addEventListener(`keydown`,O,{capture:!0}),()=>p.removeEventListener(`keydown`,O,{capture:!0})},[p,D,O]),m.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(FS=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),HS(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=FS))}},[d,p,n,u]),m.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),HS())},[d,u]),m.useEffect(()=>{let e=jS(()=>g({}),`handleUpdate`);return document.addEventListener(MS,e),()=>document.removeEventListener(MS,e)},[]),(0,h.jsx)(X.div,{...l,ref:_,style:{pointerEvents:S?C?`auto`:`none`:void 0,...e.style},onFocusCapture:J(e.onFocusCapture,E.onFocusCapture),onBlurCapture:J(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:J(e.onPointerDownCapture,T.onPointerDownCapture)})},`DismissableLayer`));function RS(){let e=m.useContext(IS),[t,n]=m.useState(null);return m.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}jS(RS,`useDismissableLayerSurface`);var zS=jS(()=>!0,`IS_TRUE`);function BS(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=zS}=t,s=kS(e),c=m.useRef(!1),l=m.useRef(!1),u=m.useRef(new Map),d=m.useRef(()=>{});return m.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}jS(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}jS(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}jS(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}jS(p,`handleInteractionBubble`);let m=jS(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||US(NS,s,p,{discrete:!0})};if(jS(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:jS(()=>c.current=!0,`onPointerDownCapture`)}}jS(BS,`usePointerDownOutside`);function VS(e,t=globalThis?.document){let n=kS(e),r=m.useRef(!1);return m.useEffect(()=>{let e=jS(e=>{e.target&&!r.current&&US(PS,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:jS(()=>r.current=!0,`onFocusCapture`),onBlurCapture:jS(()=>r.current=!1,`onBlurCapture`)}}jS(VS,`useFocusOutside`);function HS(){let e=new CustomEvent(MS);document.dispatchEvent(e)}jS(HS,`dispatchUpdate`);function US(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?C_(i,a):i.dispatchEvent(a)}jS(US,`handleAndDispatchCustomEvent`);var WS=Object.defineProperty,GS=(e,t)=>WS(e,`name`,{value:t,configurable:!0}),KS=`focusScope.autoFocusOnMount`,qS=`focusScope.autoFocusOnUnmount`,JS={bubbles:!1,cancelable:!0},YS=m.forwardRef(GS(function(e,t){let{loop:n=!1,trapped:r=!1,branches:i,onMountAutoFocus:a,onUnmountAutoFocus:o,...s}=e,[c,l]=m.useState(null),u=kS(a),d=kS(o),f=m.useRef(null),p=q(t,l),g=m.useRef(i);m.useEffect(()=>{g.current=i});let _=m.useCallback(e=>e?c?.contains(e)?!0:!!g.current?.some(t=>t.contains(e)):!1,[c]),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let e=function(e){if(v.paused||!c)return;let t=e.target;_(t)?f.current=t:oC(f.current,{select:!0})},t=function(e){if(v.paused||!c)return;let t=e.relatedTarget;t!==null&&(_(t)||oC(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&oC(c)};GS(e,`handleFocusIn`),GS(t,`handleFocusOut`),GS(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,c,v.paused,_]),m.useEffect(()=>{if(c){sC.add(v);let e=document.activeElement;if(!c.contains(e)){let t=new CustomEvent(KS,JS);c.addEventListener(KS,u),c.dispatchEvent(t),t.defaultPrevented||(eC(uC(nC(c)),{select:!0}),document.activeElement===e&&oC(c))}return()=>{c.removeEventListener(KS,u),setTimeout(()=>{let t=new CustomEvent(qS,JS);c.addEventListener(qS,d),c.dispatchEvent(t),t.defaultPrevented||oC(e??document.body,{select:!0}),c.removeEventListener(qS,d),sC.remove(v)},0)}}},[c,u,d,v]);let y=m.useCallback(e=>{if(!n&&!r||v.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=tC(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&oC(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&oC(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,v.paused]);return(0,h.jsx)(X.div,{tabIndex:-1,...s,ref:p,onKeyDown:y})},`FocusScope`)),XS=m.createContext(null);function ZS({registry:e,children:t}){return e?(0,h.jsx)(XS.Provider,{value:e,children:t}):t}GS(ZS,`FocusScopeBranchProvider`);function QS(){let[e,t]=m.useState([]);return{nodes:e,registry:m.useMemo(()=>({add:GS(e=>t(t=>t.includes(e)?t:[...t,e]),`add`),remove:GS(e=>t(t=>t.filter(t=>t!==e)),`remove`)}),[])}}GS(QS,`useFocusScopeBranchRegistry`);function $S(e){let t=m.useContext(XS);m.useEffect(()=>{if(e&&t)return t.add(e),()=>t.remove(e)},[e,t])}GS($S,`useFocusScopeBranch`);function eC(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(oC(r,{select:t}),document.activeElement!==n)return}GS(eC,`focusFirst`);function tC(e){let t=nC(e);return[rC(t,e),rC(t.reverse(),e)]}GS(tC,`getTabbableEdges`);function nC(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:GS(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}GS(nC,`getTabbableCandidates`);function rC(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):iC(r,{upTo:t})))return r}GS(rC,`findVisible`);function iC(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}GS(iC,`isHidden`);function aC(e){return e instanceof HTMLInputElement&&`select`in e}GS(aC,`isSelectableInput`);function oC(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&aC(e)&&t&&e.select()}}GS(oC,`focus`);var sC=cC();function cC(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=lC(e,t),e.unshift(t)},remove(t){e=lC(e,t),e[0]?.resume()}}}GS(cC,`createFocusScopesStack`);function lC(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}GS(lC,`arrayRemove`);function uC(e){return e.filter(e=>e.tagName!==`A`)}GS(uC,`removeLinks`);var dC=Object.defineProperty,fC=m.forwardRef(((e,t)=>dC(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=m.useState(!1);Y(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?Tg.createPortal((0,h.jsx)(X.div,{...r,ref:t}),o):null},`Portal`)),pC=Object.defineProperty,mC=(e,t)=>pC(e,`name`,{value:t,configurable:!0}),hC=0,gC=null;function _C(e){return vC(),e.children}mC(_C,`FocusGuards`);function vC(){m.useEffect(()=>{gC||={start:yC(),end:yC()};let{start:e,end:t}=gC;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),hC++,()=>{hC===1&&(gC?.start.remove(),gC?.end.remove(),gC=null),hC=Math.max(0,hC-1)}},[])}mC(vC,`useFocusGuards`);function yC(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}mC(yC,`createFocusGuard`);var bC=function(){return bC=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},bC.apply(this,arguments)};function xC(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function SC(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var CC=`right-scroll-bar-position`,wC=`width-before-scroll-bar`,TC=`with-scroll-bars-hidden`,EC=`--removed-body-scroll-bar-size`;function DC(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function OC(e,t){var n=(0,m.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var kC=typeof window<`u`?m.useLayoutEffect:m.useEffect,AC=new WeakMap;function jC(e,t){var n=OC(t||null,function(t){return e.forEach(function(e){return DC(e,t)})});return kC(function(){var t=AC.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||DC(e,null)}),i.forEach(function(e){r.has(e)||DC(e,a)})}AC.set(n,e)},[e]),n}function MC(e){return e}function NC(e,t){t===void 0&&(t=MC);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function PC(e){e===void 0&&(e={});var t=NC(null);return t.options=bC({async:!0,ssr:!1},e),t}var FC=function(e){var t=e.sideCar,n=xC(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return m.createElement(r,bC({},n))};FC.isSideCarExport=!0;function IC(e,t){return e.useMedium(t),FC}var LC=PC(),RC=function(){},zC=m.forwardRef(function(e,t){var n=m.useRef(null),r=m.useState({onScrollCapture:RC,onWheelCapture:RC,onTouchMoveCapture:RC}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=xC(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=f,C=jC([n,t]),w=bC(bC({},x),i);return m.createElement(m.Fragment,null,u&&m.createElement(S,{sideCar:LC,removeScrollBar:l,shards:d,noRelative:p,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),o?m.cloneElement(m.Children.only(s),bC(bC({},w),{ref:C})):m.createElement(y,bC({},w,{className:c,ref:C}),s))});zC.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},zC.classNames={fullWidth:wC,zeroRight:CC};var BC=function(){if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function VC(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=BC();return t&&e.setAttribute(`nonce`,t),e}function HC(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function UC(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var WC=function(){var e=0,t=null;return{add:function(n){e==0&&(t=VC())&&(HC(t,n),UC(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},GC=function(){var e=WC();return function(t,n){m.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},KC=function(){var e=GC();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},qC={left:0,top:0,right:0,gap:0},JC=function(e){return parseInt(e||``,10)||0},YC=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[JC(n),JC(r),JC(i)]},XC=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return qC;var t=YC(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ZC=KC(),QC=`data-scroll-locked`,$C=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
16
|
-
.${
|
|
14
|
+
# lines starting with # are ignored`,"providers.subscription.importBatchCount":`{n} token(s) recognised`,"providers.subscription.importBatchRun":`Import`,"providers.subscription.importBatchSummary":`Imported {ok}, duplicates {dup}, failed {fail}`,"providers.subscription.importBatchStatus.imported":`Imported`,"providers.subscription.importBatchStatus.duplicate":`Duplicate`,"providers.subscription.importBatchStatus.invalid_format":`Invalid format`,"providers.subscription.importBatchStatus.failed":`Failed`,"providers.subscription.importBatchStatus.updated":`Updated`,"providers.subscription.importBatchStatus.ready":`Ready`,"providers.accounts.statTotal":`{n} accounts`,"providers.accounts.statUsable":`{n} usable`,"providers.accounts.statCooling":`{n} cooling down`,"providers.accounts.statDead":`{n} signed out`,"providers.accounts.providerProxy":`Provider proxy: {proxy}`,"providers.accounts.filter.all":`All`,"providers.accounts.filter.usable":`Usable`,"providers.accounts.filter.cooling":`Cooling`,"providers.accounts.filter.dead":`Signed out`,"providers.accounts.filter.disabled":`Disabled`,"providers.accounts.filterLabel":`Filter by status`,"providers.accounts.search":`Search email / name / key`,"providers.accounts.add":`Add account`,"providers.accounts.addLogin":`Sign in with browser`,"providers.accounts.addLoginProxy":`Sign in through a proxy…`,"providers.accounts.addToken":`Paste a token…`,"providers.accounts.addApiKey":`Add API key…`,"providers.accounts.batchImport":`Batch import`,"providers.accounts.noMatch":`No accounts match`,"providers.accounts.select":`Select {name}`,"providers.accounts.selected":`{n} selected`,"providers.accounts.clearSelection":`Clear selection`,"providers.accounts.bulkDeleteConfirm":`Delete the {n} selected accounts?`,"providers.accounts.bulkDeleteDetail":`Their tokens are removed from this machine; clients bound to them fall back to the default account.`,"providers.accounts.bulkDone":`{n} accounts updated`,"providers.accounts.kind.oauth":`OAuth`,"providers.accounts.kind.api_key":`API key`,"providers.accounts.source.login":`Browser sign-in`,"providers.accounts.source.local":`Local import`,"providers.accounts.source.token":`Pasted`,"providers.accounts.source.batch":`Batch import`,"providers.accounts.expiresAt":`expires {when}`,"providers.accounts.neverExpires":`never expires`,"providers.accounts.proxyBadge":`Own proxy`,"providers.accounts.signedOut":`Signed out`,"providers.accounts.quotaShortWeekly":`Week`,"providers.accounts.quotaShortSession":`Session`,"providers.accounts.quotaShortCredits":`Credits`,"providers.accounts.quotaShortPremium":`Premium`,"providers.accounts.order":`#{n}`,"providers.accounts.detail.identity":`Account`,"providers.accounts.detail.name":`Name`,"providers.accounts.detail.proxy":`Account proxy`,"providers.accounts.detail.proxyHint":`This account's requests, token refreshes and quota checks go through it; empty follows the provider ({fallback}).`,"providers.accounts.detail.quota":`Quota`,"providers.accounts.detail.credentials":`Credentials`,"providers.accounts.detail.kind":`Kind`,"providers.accounts.detail.source":`Source`,"providers.accounts.detail.status":`Status`,"providers.accounts.detail.expires":`Token expires`,"providers.accounts.detail.lastRefresh":`Last refresh`,"providers.accounts.detail.created":`Added`,"providers.accounts.detail.order":`Failover order`,"providers.accounts.detail.lastError":`Last error`,"providers.accounts.detail.key":`API key`,"providers.accounts.proxyFallbackSystem":`system proxy`,"providers.accounts.renamed":`Renamed`,"providers.accounts.proxySaved":`Account proxy saved`,"providers.accounts.loginProxyTitle":`Sign in through a proxy`,"providers.accounts.loginProxyDesc":`The new account reaches the upstream through this proxy from the sign-in on (code exchange, refreshes and requests). The authorization page still opens in your browser.`,"providers.accounts.loginProxyStart":`Start sign-in`,"providers.accounts.import.batchTitle":`Batch import accounts`,"providers.accounts.import.tokenTitle":`Paste a token`,"providers.accounts.import.apiKeyTitle":`Add API key`,"providers.accounts.import.desc":`Tokens are stored encrypted on this machine; results only show their first and last characters.`,"providers.accounts.import.label":`Tokens to import (one per line)`,"providers.accounts.import.apiKeyLabel":`API keys (one per line)`,"providers.accounts.import.formats":`Accepted: {formats}`,"providers.accounts.import.count":`{n} entries recognised`,"providers.accounts.import.preview":`Preview`,"providers.accounts.import.run":`Import`,"providers.accounts.import.proxy":`Account proxy (optional)`,"providers.accounts.import.summary":`{ok} imported, {dup} duplicates, {fail} failed`,"providers.accounts.import.previewSummary":`{ok} ready, {dup} duplicates, {fail} unrecognised`,"providers.accounts.import.rotateWarning":`Refresh tokens are usually single-use: after the import, the client that used it (Claude Code, Codex, …) may have to sign in again.`,"providers.accounts.credential.refresh_token":`refresh token`,"providers.accounts.credential.setup_token":`setup-token`,"providers.accounts.credential.api_key":`API key`,"providers.accounts.credential.github_token":`GitHub token`,"providers.accounts.credential.copilot_token":`Copilot token`,"providers.accounts.credential.claude_credentials":`.credentials.json`,"providers.accounts.credential.codex_auth_json":`auth.json`,"providers.accounts.format.claude-refresh-token":`refresh token (sk-ant-ort01-…)`,"providers.accounts.format.claude-setup-token":`claude setup-token (sk-ant-oat01-…)`,"providers.accounts.format.claude-credentials-json":`Claude Code's .credentials.json`,"providers.accounts.format.codex-auth-json":`the contents of ~/.codex/auth.json`,"providers.accounts.format.refresh-token":`refresh token`,"providers.accounts.format.grok-sso":`Grok Web SSO (sso cookie / email----password----…----sso)`,"providers.accounts.format.kimi-api-key":`Kimi Code API key (sk-kimi-…)`,"providers.accounts.format.zai-api-key":`Z.AI Coding Plan API key`,"providers.accounts.format.bigmodel-api-key":`Zhipu Coding Plan API key`,"providers.accounts.format.github-token":`GitHub token (gho_ / ghp_ / github_pat_)`,"providers.accounts.format.copilot-token":`Copilot token (tid=…;exp=…)`,"providers.subscription.localCopilotHint":`Import reads the VS Code entry in the system credential store (macOS shows a consent prompt); you can also paste a GitHub token directly`,"providers.subscription.localCodexFound":`Found a local Codex sign-in: {who}`,"providers.subscription.unknownAccount":`unknown account`,"providers.subscription.credits.title":`Rate-limit reset cards`,"providers.subscription.credits.footer":`codex reset cards: spending one clears the current rate-limit window immediately.`,"providers.subscription.credits.none":`This account has no reset cards`,"providers.subscription.credits.unavailable":`Reset cards are unavailable right now (signed out, or the upstream is unreachable).`,"providers.subscription.credits.availableCount":`{count} available`,"providers.subscription.credits.consume":`Use`,"providers.subscription.credits.consumeConfirm":`Use reset card “{title}”?`,"providers.subscription.credits.consumeDetail":`Clears the current rate-limit window immediately and cannot be undone.`,"providers.subscription.credits.consumed":`Reset card used; quota refreshed`,"providers.subscription.credits.consumeFailed":`Could not use the reset card`,"providers.subscription.credits.expires":`expires {when}`,"providers.subscription.credits.redeemedAt":`used {when}`,"providers.subscription.credits.notInPlan":`not in the current plan`,"providers.subscription.credits.status.available":`Available`,"providers.subscription.credits.status.redeemed":`Used`,"providers.subscription.credits.status.expired":`Expired`,"providers.subscription.needsVerification":`Coming soon: this subscription's sign-in flow has not been verified yet`,"providers.subscription.current":`In use`,"providers.subscription.disabled":`Disabled`,"providers.subscription.activate":`Switch to this account`,"providers.subscription.activated":`Switched to {name}; applies from the next request`,"providers.subscription.enable":`Enable`,"providers.subscription.disable":`Disable`,"providers.subscription.moveUp":`Move up`,"providers.subscription.moveDown":`Move down`,"providers.subscription.cooldown":`Rate-limited until {when}`,"providers.subscription.policy.title":`Usage policy`,"providers.subscription.policy.footer":`Switching accounts applies from the next request, no client restart needed. Requests from a client or token pinned to an account are not affected.`,"providers.subscription.policy.claudeCodeOnly":`Claude Code only`,"providers.subscription.policy.claudeCodeOnlyDetail":`Only requests from Claude Code (including its IDE extensions and Agent SDK) are accepted, with its headers forwarded as-is; other clients get a 403.`,"providers.subscription.policy.anyWarning":`Other clients are allowed: Astra only adds the headers OAuth requires and does not impersonate Claude Code. Anthropic may bill these requests as extra usage, reject them, or treat them as a terms-of-service violation.`,"providers.subscription.policy.mimic":`Other clients impersonate Claude Code`,"providers.subscription.policy.mimicDetail":`Requests from clients other than Claude Code carry the Claude Code identity (system identity blocks, the claude-cli User-Agent, X-Stainless fingerprints and the full beta set); without it the subscription token's non-Haiku models are rejected upstream. Off by default.`,"providers.subscription.policy.mimicWarning":`Claude Code impersonation is on: requests present the official CLI identity. This violates Anthropic’s terms of service and may get the account limited or banned — the risk is yours.`,"providers.subscription.policy.switchMode":`Account switching`,"providers.subscription.policy.manual":`Manual`,"providers.subscription.policy.failover":`Automatic failover`,"providers.subscription.policy.manualDetail":`Changes only when you switch, or when the current account dies or is disabled.`,"providers.subscription.policy.failoverDetail":`When the current account is rate-limited (429) or its sign-in dies, the next usable account takes over and stays in use.`,"providers.subscription.policy.balanced":`Balanced`,"providers.subscription.policy.balancedDetail":`Spreads requests over all usable accounts, fewest in flight first. A conversation (same prompt_cache_key or Claude Code session) stays on one account so the upstream prompt cache keeps hitting; a rate-limited or dead account is skipped. Bindings are kept in memory only.`,"providers.notes":`Notes`,"providers.apiKeyStored":`The API key is stored encrypted on this machine. Leave empty to keep it.`,"providers.replaceKey":`Enter a new key to replace`,"providers.endpointsFooter":`One URL per protocol; Astra translates when the client protocol differs from upstream.`,"providers.fullUrl":`Full URL`,"providers.addEndpoint":`Add endpoint`,"providers.preferred":`Upstream protocol order`,"providers.preferredHint":`Used to pick an upstream endpoint when translation is needed`,"providers.preferredMissing":`{protocol} has no endpoint address, so it is never selected from this order`,"providers.billingFooter":`The multiplier only scales inherited prices; custom model prices are not multiplied.`,"providers.multiplier":`Price multiplier`,"providers.multiplierHint":`e.g. a reseller charging official price ×1.1`,"providers.proxy":`HTTP proxy`,"providers.proxyHint":`This provider's requests, subscription sign-ins, token refreshes and quota checks; subscription accounts can override it under Accounts`,"providers.headers":`Extra headers`,"providers.addHeader":`Add header`,"providers.addHeaderDetail":`Sent with every request to this provider; applied when you save.`,"providers.headerName":`Name`,"providers.headerValue":`Value`,"providers.addEndpointDetail":`The URL for one protocol; applied when you save.`,"providers.fullUrlHint":`The URL is the complete request URL; no path is appended`,"providers.adapterSettings":`Adapter settings (JSON)`,"providers.adapter":`Adapter`,"providers.boundClients":`Used by`,"origin.inherited":`Inherited`,"origin.overridden":`Overridden`,"origin.unset":`Unset`,"origin.reset":`Reset to inherited`,"models.count":`{count} models`,"models.search":`Search models, aliases`,"models.allVendors":`All vendors`,"models.sync":`Sync model catalog`,"models.syncDetail":`Fetch the latest parameters and prices from the official catalog (astra-gate.si). Fields you modified are never overwritten.`,"models.new":`New model`,"models.newDetail":`Add parameters and a default price for a model the catalog does not have.`,"models.col.model":`Model`,"models.col.vendor":`Vendor`,"models.col.context":`Context`,"models.col.price":`Input / output`,"models.col.providerPrices":`Provider prices`,"models.empty":`No matching models`,"models.source.seed":`Built-in`,"models.source.sync":`Synced`,"models.source.user":`Custom`,"models.modified":`Modified`,"models.providerPriceCount":`{count} providers`,"models.updated":`updated {time}`,"models.resetField":`Restore built-in value`,"models.fieldReset":`Restored built-in value`,"models.deleteConfirm":`Delete model {id}?`,"models.section.basic":`Parameters`,"models.section.capabilities":`Capabilities`,"models.section.pricing":`Official default price`,"models.section.providerPrices":`Prices by provider`,"models.section.overrides":`Provider custom prices`,"models.section.simulator":`Billing simulator`,"models.modifiedFooter":`Fields marked "Modified" are never overwritten by built-in data or syncs.`,"models.pricingHint":`The vendor's official price; used when a provider has no price of its own (scaled by the provider multiplier).`,"models.providerPricesFooter":`The same model priced at different AI providers (by price table); takes precedence over the official default.`,"models.overridesFooter":`These providers set their own price for this model; it has the highest priority.`,"models.noProviderPrices":`No provider-specific prices`,"models.hasTimeWindows":`time windows`,"models.hasTiers":`tiers`,"models.deletePrice":`Delete the {key} price?`,"models.addPrice":`Add provider price`,"models.editPrice":`Edit {key} price`,"models.priceSheetDetail":`Applies only to providers using this price table.`,"models.pickPriceKey":`Choose a price table`,"models.customPriceKey":`or enter a custom price table ID`,"models.upstreamId":`Provider's model ID`,"models.upstreamIdHint":`Set when it differs from the system ID; used for auto-linking`,"models.simulatorUnsaved":`Unsaved changes: simulating with the edited price.`,"models.field.id":`Model ID`,"models.field.idHint":`The name clients send`,"models.field.displayName":`Display name`,"models.field.vendor":`Vendor`,"models.field.family":`Family`,"models.field.aliases":`Aliases`,"models.field.contextWindow":`Context window`,"models.field.maxOutputTokens":`Max output`,"models.field.inputPrice":`Input /1M`,"models.field.outputPrice":`Output /1M`,"models.sync.newModel":`New model`,"models.sync.price":`Price · {key}`,"models.sync.field":`Field · {field}`,"models.sync.applied":`Applied {count} changes`,"models.sync.apply":`Apply {count}`,"models.sync.check":`Check for updates`,"models.sync.none":`Everything is up to date`,"models.sync.userModified":`Modified by you`,"cap.vision":`Image input`,"cap.tools":`Tool calling`,"cap.reasoning":`Reasoning`,"cap.promptCache":`Prompt caching`,"cap.audio":`Audio`,"cap.pdf":`PDF`,"cap.structuredOutput":`Structured output`,"requests.col.cache":`Cache read / write`,"usage.title":`Token usage`,"usage.inputTotal":`Total input`,"usage.outputTotal":`Total output`,"usage.input":`Input`,"usage.output":`Output`,"usage.uncachedInput":`Uncached input`,"usage.regularOutput":`Non-reasoning output`,"usage.cacheRead":`Cache hit`,"usage.cacheWrite":`Cache write`,"usage.cacheWrite5m":`Cache write · 5 minutes`,"usage.cacheWrite1h":`Cache write · 1 hour`,"usage.reasoning":`Reasoning / thinking`,"usage.inputAudio":`Audio input`,"usage.outputAudio":`Audio output`,"usage.inputImage":`Image input`,"usage.outputImage":`Image output`,"usage.hitShort":`Hit`,"usage.writeShort":`Write`,"usage.reasoningShort":`Think`,"usage.hitRate":`Cache hit rate`,"usage.noCache":`No cache read or write tokens reported by upstream`,"usage.missing":`No usage reported by upstream; the cache hit rate is unknown.`,"usage.hitTooltip":`Cache hits {read} / total input {total} tokens`,"usage.writeTooltip":`{tokens} tokens written; 5m / 1h are listed separately in details`,"usage.totalsHint":`Input already includes cache reads and writes; output includes reasoning. These counters are not added twice. Hit rate = cache read / total input.`,"usage.cacheAmounts":`Hit {read} · Write {write}`,"settings.appearance":`Appearance`,"settings.theme":`Theme`,"settings.theme.system":`System`,"settings.theme.light":`Light`,"settings.theme.dark":`Dark`,"settings.accent":`Accent color`,"settings.accent.system":`System`,"settings.accent.followingSystem":`Using the system accent color`,"settings.accent.systemUnavailable":`System accent unavailable; using default blue`,"settings.accent.blue":`Blue`,"settings.accent.purple":`Purple`,"settings.accent.pink":`Pink`,"settings.accent.red":`Red`,"settings.accent.orange":`Orange`,"settings.accent.yellow":`Yellow`,"settings.accent.green":`Green`,"settings.accent.graphite":`Graphite`,"settings.language":`Language`,"settings.languageHint":`Also the language of billing descriptions for new requests`,"settings.gateway":`Gateway`,"settings.requireKey":`Require access key`,"settings.requireKeyHint":`On by default. When off, requests without a key (or with an invalid one) are still served, through the default token's provider.`,"settings.requireKeyOffConfirm":`Turn off access key verification?`,"settings.requireKeyOffDetail":`Once off, any program or device that can reach this gateway address can use your provider quota without a key. Only do this in a trusted, local-only environment.`,"settings.requireKeyOff":`Turn off anyway`,"settings.gatewayFooter":`Change the port and listen address from a terminal: astra start --port <port>`,"settings.gatewayUrl":`Gateway URL`,"settings.listen":`Listening on`,"settings.dataDir":`Data folder`,"settings.openFolder":`Open folder`,"settings.streamIdle":`Stream idle timeout`,"settings.streamIdleHint":`Disconnect when the upstream sends nothing for this long`,"settings.logging":`Logging`,"settings.debugBodies":`Save request & response bodies`,"settings.debugBodiesHint":`For troubleshooting. Stored in the local data folder, without secrets.`,"settings.bodyRetention":`Keep bodies`,"settings.requestRetention":`Auto-delete request history`,"settings.keepForever":`Kept forever`,"settings.days":`days`,"settings.effort":`Reasoning effort mapping`,"settings.effortHint":`Used when translating OpenAI reasoning effort to Anthropic / Gemini thinking budgets and back.`,"settings.privacy":`Privacy guard`,"settings.privacy.footer":`Sensitive content is detected on this machine before requests leave. Original values live only in request memory and are never stored.`,"settings.privacy.enabled":`Enable privacy guard`,"settings.privacy.enabledHint":`When off, requests are forwarded untouched`,"settings.privacy.dryRun":`Detect only`,"settings.privacy.dryRunHint":`Record matches but let requests through, to observe the effect`,"settings.privacy.restore":`Restore placeholders in responses`,"settings.privacy.restoreHint":`Placeholders are swapped back to the original values; clients never notice`,"settings.privacy.recordSamples":`Record masked samples`,"settings.privacy.recordSamplesHint":`Logs keep masked samples (e.g. john••••om); originals are never saved`,"settings.privacy.defaultAction":`Default action`,"settings.privacy.action.off":`Off`,"settings.privacy.action.warn":`Warn only`,"settings.privacy.action.block":`Block`,"settings.privacy.action.redact":`Redact`,"settings.privacy.categories":`Detection categories`,"settings.privacy.category.api_key":`API keys`,"settings.privacy.category.aws_key":`AWS keys`,"settings.privacy.category.jwt":`JWT tokens`,"settings.privacy.category.private_key":`Private keys`,"settings.privacy.category.email":`Email addresses`,"settings.privacy.category.phone":`Phone numbers`,"settings.privacy.category.intranet":`Intranet addresses`,"settings.privacy.category.custom":`Custom`,"settings.privacy.category.credit_card":`Card numbers`,"settings.privacy.category.national_id":`National IDs`,"settings.privacy.category.credential":`Credentials & connection strings`,"settings.privacy.enableCategory":`Enable`,"settings.privacy.customRules":`Custom rules`,"settings.privacy.noCustomRules":`No custom rules yet`,"settings.privacy.addRule":`Add rule`,"settings.privacy.ruleName":`Rule name`,"settings.privacy.rulePattern":`Regular expression`,"settings.privacy.rulePatternHint":`Matched against every string value in the request`,"settings.privacy.ruleTemplates":`Fill from template`,"settings.privacy.ruleTemplatesHint":`Pick a common template; name and pattern stay editable`,"settings.privacy.ruleTemplateNone":`Custom (enter manually)`,"settings.privacy.template.ipv4All":`All IPv4 addresses`,"settings.privacy.template.ipv4AllHint":`Includes public ranges; the built-in intranet rule covers private ranges only`,"settings.privacy.template.landline":`Landline numbers (China)`,"settings.privacy.template.licensePlate":`License plates (China)`,"settings.privacy.template.passportCn":`Passport numbers (China)`,"settings.privacy.template.uscc":`Unified social credit codes`,"settings.privacy.template.longToken":`Generic long tokens (32+ chars)`,"settings.privacy.template.longTokenHint":`Broad matches; pair with the "warn" action`,"settings.privacy.template.macAddress":`MAC addresses`,"settings.privacy.template.unixHome":`Unix / macOS home paths`,"settings.privacy.template.windowsProfile":`Windows profile paths`,"settings.privacy.template.unixHomeHint":`These paths expose the local username`,"settings.privacy.template.genericHint":`Adjust the expression as needed`,"settings.privacy.template.cloudAccessKey":`Cloud AccessKey IDs (Alibaba LTAI…, Tencent AKID…)`,"settings.privacy.template.awsSecretKey":`AWS secret access keys (40 chars)`,"settings.privacy.template.imWebhook":`IM bot webhooks (DingTalk / WeCom / Feishu / Slack)`,"settings.privacy.template.imWebhookHint":`A webhook URL is itself a credential — anyone holding it can post to the group`,"settings.privacy.template.internalService":`Internal service hosts (gitlab., jenkins., jira., …)`,"settings.privacy.template.jdbcConn":`JDBC connection strings with credentials`,"settings.privacy.template.jdbcHint":`Credentials inside connection strings are usually plain text`,"settings.privacy.template.smtpConn":`Mail server URLs with credentials (smtp://user:pass@…)`,"settings.privacy.template.keyFileRef":`Key file references (.pem / .key / .pfx / .jks)`,"settings.privacy.template.confidentialMarker":`Confidentiality markers (机密, Confidential, …)`,"settings.privacy.template.confidentialHint":`Warn or block on document classification markers`,"settings.privacy.template.employeeId":`Employee IDs (EMP-123456)`,"settings.privacy.template.labeledNumber":`Labeled numbers (contract / order / ticket numbers)`,"settings.privacy.invalidPattern":`Invalid regular expression`,"settings.privacy.deleteRuleConfirm":`Delete rule "{name}"?`,"settings.privacy.tester":`Dry run`,"settings.privacy.testerHint":`Check the text below against the current policy (no real request is affected)`,"settings.privacy.testerPlaceholder":`Paste request text or JSON…`,"settings.privacy.runTest":`Check`,"settings.privacy.noHits":`No rule matched`,"settings.privacy.wouldBlock":`Would block the request`,"settings.privacy.wouldRedact":`Would redact {count} place(s)`,"privacy.tab.overview":`Overview`,"privacy.tab.logs":`Interception log`,"privacy.tab.rules":`Detection rules`,"privacy.tab.tester":`Dry run`,"privacy.stats":`Guard statistics`,"privacy.stats.events":`Guard events`,"privacy.stats.blocked":`Blocked requests`,"privacy.stats.dryRun":`Detect-only requests`,"privacy.stats.redactions":`Redacted places`,"privacy.stats.byCategory":`Hits by category`,"privacy.stats.col.category":`Category`,"privacy.stats.col.requests":`Requests`,"privacy.stats.col.hits":`Hits`,"privacy.stats.col.warn":`Warn`,"privacy.stats.col.block":`Block`,"privacy.stats.col.redact":`Redact`,"privacy.logs.total":`{count} events`,"privacy.logs.empty":`No privacy events yet`,"privacy.logs.empty.detail":`Requests where the guard detected sensitive content show up here`,"privacy.logs.col.outcome":`Outcome`,"privacy.logs.col.action":`Hit action`,"privacy.logs.col.hits":`Hits`,"privacy.logs.outcome.blocked":`Blocked`,"privacy.logs.outcome.redacted":`{count} redacted`,"privacy.logs.outcome.dryRun":`Detect only`,"privacy.logs.blockedOnly":`Blocked only`,"privacy.logs.passedOnly":`Passed only`,"privacy.logs.moreHits":`+{count} more`,"privacy.logs.viewRequest":`View request {model}`,"settings.effort.low":`low`,"settings.effort.medium":`medium`,"settings.effort.high":`high`,"settings.about":`About`,"settings.serverVersion":`Server version`,"settings.desktopVersion":`Desktop version`,"settings.logs":`Open logs folder`,"settings.logout":`Sign out`,"settings.checkUpdates":`Check for updates`,"settings.upToDate":`Up to date`,"settings.updateAvailable":`Update {version} available`,"settings.updateCheckFailed":`Check failed: {error}`,"settings.updateApplyHint":`Install from the Astra tray menu, or run astra update in a terminal`,"settings.updateApply":`Update now`,"settings.updateApplied":`Server updated and restarted`,"settings.updateDesktopRelaunch":`The desktop app will relaunch to finish the update`,"settings.lastChecked":`Last checked: {time}`,"settings.autoCheck":`Check for updates automatically`,"settings.tab.general":`General`,"settings.tab.tray":`Tray panel`,"settings.tray.titleHeading":`Menu bar text`,"settings.tray.titleHint":`Shown next to the menu bar icon, visible without opening anything. On Windows and Linux it appears in the icon tooltip.`,"settings.tray.title.none":`Nothing`,"settings.tray.title.none.hint":`Icon only`,"settings.tray.title.requests":`Calls today`,"settings.tray.title.requests.hint":`e.g. 7`,"settings.tray.title.tokens":`Tokens today`,"settings.tray.title.tokens.hint":`e.g. 68.8K`,"settings.tray.title.cost":`Cost today`,"settings.tray.title.cost.hint":`e.g. $0.37`,"settings.tray.title.quota":`Subscription window`,"settings.tray.title.quota.hint":`The window with the least left, e.g. 64%`,"settings.tray.title.alerts":`Alerts only`,"settings.tray.title.alerts.hint":`Only on failed requests, low quota, or a stopped gateway`,"settings.tray.usageHeading":`Usage`,"settings.tray.clientsHeading":`Clients`,"settings.tray.section.overview":`Today at a glance`,"settings.tray.section.overview.hint":`Calls, tokens and failures`,"settings.tray.section.cost":`Estimated cost`,"settings.tray.section.cost.hint":`At official API prices; not a bill`,"settings.tray.section.chart":`Today's trend`,"settings.tray.section.chart.hint":`Calls per hour as bars`,"settings.tray.section.topModel":`Top model`,"settings.tray.section.topModel.hint":`The model with the largest share of today's tokens`,"settings.tray.section.compareYesterday":`Compare with yesterday`,"settings.tray.section.compareYesterday.hint":`Today's tokens against all of yesterday`,"settings.tray.section.cacheHitRate":`Cache hit rate`,"settings.tray.section.cacheHitRate.hint":`Cache reads as a share of input tokens`,"settings.tray.section.quota":`Quota & balance`,"settings.tray.section.quota.hint":`Window usage and reset times of Codex, Claude and other subscriptions, plus balances of API providers with the usage query on`,"settings.tray.section.clients":`Client providers`,"settings.tray.section.clients.hint":`The provider each enabled client uses; click to switch`,"settings.tray.previewHeading":`Panel preview`,"settings.tray.previewHint":`The panel that opens from the tray icon. Changes apply at once; the preview is what you get.`,"settings.tray.previewFooter":`Rendered with live data.`,"settings.tray.reset":`Restore defaults`,"tray.status.running":`Gateway running`,"tray.status.stopped":`Gateway not running`,"tray.status.starting":`Starting gateway…`,"tray.status.stopping":`Stopping gateway…`,"tray.status.restarting":`Restarting gateway…`,"tray.stoppedHint":`While the gateway is stopped, clients cannot reach models through Astra.`,"tray.mismatch":`API version mismatch`,"tray.update":`Update available`,"tray.copyAddress":`Copy gateway URL`,"tray.settings":`Tray panel settings`,"tray.more":`More actions`,"tray.today":`Today`,"tray.failures":`{count} failed`,"tray.justNow":`just now`,"tray.updated":`Updated {time}`,"tray.loadFailed":`Could not load usage`,"tray.requests":`calls`,"tray.tokens":`tokens`,"tray.cost":`Est. cost`,"tray.topModel":`Top model`,"tray.cacheHit":`Cache hits`,"tray.vsYesterday":`vs yesterday`,"tray.chartLabel":`Calls per hour today`,"tray.hourBar":`{hour} · {count} calls`,"tray.quota":`Quota & balance`,"tray.quotaRemaining":`Left`,"tray.quotaReset":`Resets`,"tray.quotaCredits":`Credits`,"tray.quotaPending":`Fetching quota…`,"tray.clients":`Clients`,"tray.unbound":`Not bound`,"tray.switchProvider":`Switch the provider of {client}`,"tray.disabledProvider":`{name} (disabled)`,"tray.restart":`Restart gateway`,"tray.stop":`Stop gateway`,"tray.quit":`Quit`,"tray.open":`Open Astra`,"tray.title.requests":`{count} calls today`,"tray.title.tokens":`{count} tokens today`,"tray.title.cost":`{amount} estimated today`,"tray.title.quota":`{plan} {window} window: {remaining} left`,"tray.title.failures":`{count} failed today`,"tray.tab.overview":`Overview`,"tray.tab.quota":`Quota`,"tray.alert.failures":`{count} failed · {share} of today`,"tray.alert.quota":`{plan} {window} window: only {remaining} left`,"tray.quotaTightest":`Quota · tightest`,"tray.viewAll":`View all`,"nav.plugins":`Plugins`,"providers.card.plugin":`Plugin sign-in`,"plugins.subtitle":`magpie-compatible plugins: provider plugins (OpenCode plugins, run in the Bun plugin host), gateway middleware and client (agent) plugins.`,"plugins.add":`Add plugin`,"plugins.updateAll":`Update all`,"plugins.tab.installed":`Installed`,"plugins.tab.market":`Market`,"plugins.tab.runtime":`Runtime`,"plugins.empty":`No plugins installed`,"plugins.emptyDetail":`Pick one in the Market, or add an npm package, a GitHub repository or a local folder.`,"plugins.orderHint":`The list order is the order gateway middleware runs in.`,"plugins.kind.provider":`Provider`,"plugins.kind.middleware":`Middleware`,"plugins.kind.agent":`Client`,"plugins.kind.pi":`pi extension`,"plugins.local":`Local`,"plugins.moveUp":`Move up`,"plugins.moveDown":`Move down`,"plugins.enabled":`Enabled`,"plugins.options":`Options`,"plugins.update":`Update`,"plugins.removeConfirm":`Remove plugin {name}?`,"plugins.removeDetail":`The plugin is uninstalled; a client it added gets its original configuration back first.`,"plugins.cantLoad":`The plugin can't load`,"plugins.hostCantLoad":`The plugin host couldn't load it`,"plugins.mw.error":`Middleware didn't load: {error}`,"plugins.mw.stats":`Middleware {hooks} · {calls} calls · {micros} µs avg · {failures} failures`,"plugins.mw.lastError":`Last failure: {error}`,"plugins.agent.adds":`Adds the client "{name}": enable it on the Clients page`,"plugins.agent.error":`The client didn't load: {error}`,"plugins.provides":`Signs in to: {providers}`,"plugins.servedBy":`{provider} is served by another plugin, {other}`,"plugins.useFor":`Use for {provider}`,"plugins.picked":`Picked to serve these providers.`,"plugins.optionsTitle":`Options of {name}`,"plugins.optionsExample":`Not set yet: this is the example the plugin gives.`,"plugins.optionsNone":`Not set. The plugin reads its options as a JSON object (ctx.options for middleware).`,"plugins.optionsClear":`Clear options`,"plugins.optionsSaved":`Options saved`,"plugins.optionsObject":`Options must be a JSON object`,"plugins.addTitle":`Add plugin`,"plugins.addDetail":`An npm package (optionally with a version), a git repository (github:owner/repo) or the absolute path to a file or folder.`,"plugins.spec":`Plugin`,"plugins.specHint":`e.g. @magpie-community/middleware-word-guard, github:someone/plugin, /Users/me/my-plugin`,"plugins.install":`Install`,"plugins.installed":`Installed`,"plugins.installConfirm":`Install {name}?`,"plugins.trustTitle":`Plugins run code with your permissions`,"plugins.trustDetail":`Provider plugins run with full permissions in the plugin host and see the requests that go through them; middleware can read and change every request and reply. Only install plugins you trust.`,"plugins.job.title":`Plugin task`,"plugins.job.running":`Working on {target}…`,"plugins.job.done":`{target} done`,"plugins.job.failed":`{target} failed`,"plugins.job.failedTitle":`It didn't finish`,"plugins.searchPlaceholder":`Search plugins on npm and GitHub…`,"plugins.searchResults":`Search results`,"plugins.noResults":`No plugins found`,"plugins.marketNote":`The market lists magpie-community/plugins' community registry.`,"plugins.bunDetail":`Provider plugins run on Bun. Astra downloads a pinned Bun the first time one is needed and checks its SHA-256; middleware and client plugins don't need Bun.`,"plugins.bunPath":`Location`,"plugins.bunMissing":`Not downloaded yet`,"plugins.bunVersion":`Version`,"plugins.bunTarget":`Build`,"plugins.bunNoBuild":`Bun has no build for this machine`,"plugins.bunFailed":`Downloading Bun failed`,"plugins.bunDownload":`Download Bun {version}`,"plugins.bunDownloading":`Downloading…`,"plugins.host":`Plugin host`,"plugins.hostDetail":`Provider plugins run in a separate Bun process (magpie's host.js), restarted when the plugins or the proxy change.`,"plugins.hostState":`State`,"plugins.hostRunning":`Running`,"plugins.hostStopped":`Not running (starts when needed)`,"plugins.hostStartFailed":`Failed to start`,"plugins.hostGone":`The host exited`,"plugins.hostPluginError":`Didn't load: {error}`,"pluginAccounts.noPlugin":`The plugin is unavailable`,"pluginAccounts.apiKey":`API key`,"pluginAccounts.browser":`Browser sign-in`,"pluginAccounts.empty":`No accounts signed in`,"pluginAccounts.emptyDetail":`Sign in with one of the methods above; the plugin keeps the sign-in.`,"pluginAccounts.current":`Current`,"pluginAccounts.active":`Usable`,"pluginAccounts.lapsed":`Sign in again`,"pluginAccounts.lapsedDetail":`The vendor refused this account's sign-in: sign in again.`,"pluginAccounts.usage":`Usage`,"pluginAccounts.signOut":`Sign out`,"pluginAccounts.signOutConfirm":`Sign {name} out?`,"pluginAccounts.plan":`Plan`,"pluginAccounts.until":`Until`,"pluginAccounts.resets":`resets {at}`,"pluginAccounts.signedIn":`Signed in`,"pluginAccounts.signInTitle":`Sign in to {name}`,"pluginAccounts.continue":`Continue`,"pluginAccounts.key":`Key`,"pluginAccounts.signIn":`Sign in`,"pluginAccounts.openPage":`Open the sign-in page`,"pluginAccounts.openAgain":`Open the sign-in page again`,"pluginAccounts.deviceCode":`Code to confirm`,"pluginAccounts.code":`The code the page shows`,"pluginAccounts.waiting":`Finish signing in in the browser; this continues on its own.`,"pluginAccounts.failed":`Sign-in failed`,"pluginAccounts.checkin":`Daily check-in`,"pluginAccounts.checkinOn":`Check in daily`,"pluginAccounts.checkinNow":`Check in now`,"pluginAccounts.checkinDetail":`The plugin checks each usable account in once a Beijing day; a failure is tried again after 30 minutes. Astra never solves captchas.`,"pluginAccounts.checkinNever":`Not checked in today`,"pluginAccounts.credit":`+{credit}`,"pluginAccounts.streak":`{days}-day streak`,"pluginAccounts.outcome.claimed":`Checked in`,"pluginAccounts.outcome.done":`Already in today`,"pluginAccounts.outcome.ineligible":`Not eligible`,"pluginAccounts.outcome.inactive":`No check-in running now`,"pluginAccounts.outcome.captcha":`Wants a captcha: check in in its own app`,"pluginAccounts.outcome.failed":`Failed`,"plugins.browseMarket":`Browse the market`,"plugins.off":`Plugins are switched off on the server`,"plugins.hostRecent":`Recent plugin messages`,"plugins.offDetail":`The server was started with ASTRA_PLUGINS=off: installed plugins don't run and none can be installed. Remove the variable and restart to bring them back.`,"plugins.bunReady":`Ready`,"plugins.kind.all":`All`,"plugins.kindFilter":`Filter by kind`,"plugins.magpie.banner":`magpie on this computer has {count} plugins Astra doesn't have yet.`,"plugins.magpie.import":`Import from magpie`,"plugins.magpie.off":`Off`,"plugins.magpie.signIns":`Also copy {count} sign-ins`,"plugins.magpie.title":`Import plugins from magpie`,"plugins.magpie.signInsDetail":`Copies the plugin sign-ins in magpie's plugin-auth.json into Astra's (both keep them as plain text); an account Astra already has under the same key is kept, and magpie's file isn't changed.`,"plugins.openProviders":`Sign in under Providers`,"plugins.searchNote":`Search results come from npm and GitHub's magpie-plugin topic and aren't reviewed: check where a plugin comes from before installing it.`},ag=`astra.locale`,og={zh:rg,en:ig};function sg(){try{let e=localStorage.getItem(ag);if(e===`zh`||e===`en`)return e}catch{}return(globalThis.navigator?.language??`zh`).toLowerCase().startsWith(`zh`)?`zh`:`en`}function cg(e,t){return t?e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e):e}function lg(e,t,n){return cg(og[e][t]??og.zh[t]??t,n)}var ug=(0,m.createContext)(null);function dg({children:e}){let[t,n]=(0,m.useState)(sg),r=(0,m.useCallback)(e=>{n(e),document.documentElement.lang=e===`zh`?`zh-CN`:`en`;try{localStorage.setItem(ag,e)}catch{}},[]),i=(0,m.useMemo)(()=>({locale:t,setLocale:r,t:(e,n)=>lg(t,e,n)}),[t,r]);return(0,h.jsx)(ug.Provider,{value:i,children:e})}function fg(){let e=(0,m.useContext)(ug);if(!e)throw Error(`useI18n outside I18nProvider`);return e}function pg(){return fg().t}function mg(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=mg(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function hg(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=mg(e))&&(r&&(r+=` `),r+=t);return r}function gg(...e){return hg(e)}var _g={canOpenPaths:!!dp(),async openPath(e){let t=dp();return t?t.openPath(e):!1},async revealLogs(){return await dp()?.revealLogs()??!1},async copy(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}},async contextMenu(e){let t=dp();if(t)return t.showContextMenu(e)},async startService(){let e=dp();return e?e.startService():null}};function vg(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t>0?e.slice(0,t):e}var yg=1e9;function bg(e){return e/yg}function xg(e,t={}){if(e==null||Number.isNaN(e))return`—`;let n=Math.abs(e);return n===0?`$0`:t.compact&&n>=1e3?`$${new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e)}`:n>=1?`$${new Intl.NumberFormat(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}`:`$${new Intl.NumberFormat(`en-US`,{maximumSignificantDigits:3,maximumFractionDigits:10}).format(e)}`}function Sg(e){return e===0?`$0`:Math.abs(e)>=1e3?xg(e,{compact:!0}):`$${new Intl.NumberFormat(`en-US`,{maximumSignificantDigits:2,maximumFractionDigits:10}).format(e)}`}function Cg(e){return e==null?`—`:xg(bg(e))}function wg(e){if(e==null||e===``)return`—`;let t=typeof e==`string`?Number(e):e;return Number.isNaN(t)?String(e):`$${Number(t.toPrecision(8))}`}function Tg(e,t=!1){return e==null?`—`:t&&Math.abs(e)>=1e4?new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e):new Intl.NumberFormat(`en-US`).format(e)}function Eg(e){return e==null?`—`:e>=1e4?`${(e/1e3).toFixed(1)} s`:`${Math.round(e)} ms`}function Dg(e){return e==null||!Number.isFinite(e)||e<0?`—`:`${e.toFixed(1)} tok/s`}function Og(e){return e==null||Number.isNaN(e)?`—`:`${(e*100).toFixed(e>=.999||e===0?0:1)}%`}function kg(e){return e?e>=1e6?`${Number((e/1e6).toFixed(2))}M`:e>=1e3?`${Math.round(e/1e3)}K`:String(e):`—`}function Ag(e,t){let n=new Date(e),r=new Date,i=n.toDateString()===r.toDateString();return new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en-US`,{...i?{second:`2-digit`}:{month:`2-digit`,day:`2-digit`},hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(n)}function jg(e,t){return e?new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(new Date(e)):`—`}var Mg=e=>e===`zh`?`zh-CN`:`en-US`;function Ng(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)}function Pg(e,t,n,r,i){return`${new Intl.DateTimeFormat(Mg(n),{weekday:`short`,month:`short`,day:`numeric`,year:`numeric`}).format(Ng(e))} · ${t>0?`${t} ${r}`:i}`}var Fg=(e,t)=>new Intl.DateTimeFormat(Mg(t),{month:`short`}).format(new Date(2026,e-1,1)),Ig=(e,t,n)=>new Intl.DateTimeFormat(Mg(n),{month:`short`,year:`numeric`}).format(new Date(t,e-1,1)),Lg=(e,t)=>new Intl.DateTimeFormat(Mg(t),{weekday:`short`}).format(new Date(2026,7,3+e));function Rg(e){if(!e?.base)return`—`;let t=e.base.input,n=e.base.output;return t==null&&n==null?`—`:`${wg(t)} / ${wg(n)}`}function zg(e){if(e==null)return``;if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)}var Bg={config:`providers.quota.error.config`,no_key:`providers.quota.error.no_key`,unauthorized:`providers.quota.error.unauthorized`,no_endpoint:`providers.quota.error.no_endpoint`,rate_limited:`providers.quota.error.rate_limited`,upstream:`providers.quota.error.upstream`,timeout:`providers.quota.error.timeout`,network:`providers.quota.error.network`,not_json:`providers.quota.error.not_json`,too_large:`providers.quota.error.too_large`,empty:`providers.quota.error.empty`},Vg=/^[A-Z]{3}$/;function Hg(e,t,n){let r=n===`zh`?`zh-CN`:`en-US`;if(t&&Vg.test(t))try{let n=e!==0&&Math.abs(e)<1;return new Intl.NumberFormat(r,{style:`currency`,currency:t,minimumFractionDigits:2,maximumFractionDigits:n?4:2}).format(e)}catch{}let i=new Intl.NumberFormat(r,{maximumFractionDigits:2}).format(e);return t?`${i} ${t}`:i}var Ug=e=>e.windowMinutes!=null&&e.usedPercent!=null;function Wg(e){return e.usedPercent!=null&&Number.isFinite(e.usedPercent)?Math.min(100,Math.max(0,e.usedPercent)):e.used!=null&&e.total!=null&&e.total>0?Math.min(100,Math.max(0,e.used/e.total*100)):null}function Gg(e){return!e?.error||e.fetchedAtUtc&&e.errorAtUtc&&new Date(e.errorAtUtc).getTime()<new Date(e.fetchedAtUtc).getTime()?null:{code:e.errorCode??null,message:e.error}}function Kg(e,t){return e.code?t(Bg[e.code]):e.message}function qg(e,t,n){let r=Wg(e);if(Ug(e))return t(`providers.quota.window`,{window:T_(e.windowMinutes,n),percent:Math.round(r??0)});if(e.remaining!=null){let i=t(`providers.quota.balance`,{amount:Hg(e.remaining,e.unit,n)});return r==null?i:`${i} · ${t(`providers.quota.usedPercent`,{percent:Math.round(r)})}`}return r==null?e.used!=null&&e.total!=null?t(`providers.quota.totalUsed`,{used:Hg(e.used,e.unit,n),total:Hg(e.total,e.unit,n)}):null:t(`providers.quota.usedPercent`,{percent:Math.round(r)})}function Jg(e,t,n){let r=E_(e.resetsAtUtc??null,n);return r?t(`providers.quota.resets`,{time:r}):null}function Yg(e,t,n){let r=(e?.plans??[]).map(e=>qg(e,t,n)).filter(e=>!!e);return e?.isValid===!1&&r.unshift(t(`providers.quota.invalid`)),r.length?r.join(` · `):null}var Xg=e=>e.authScheme!==`oauth-subscription`&&!!e.quotaConfig?.enabled;function Zg(e,t){let n=new Map;for(let r of e)n.set(r.bucket,(n.get(r.bucket)??0)+r[t]);return[...n.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({bucket:e,value:t}))}var Qg=e=>String(e).padStart(2,`0`),$g=e=>`${e.getFullYear()}-${Qg(e.getMonth()+1)}-${Qg(e.getDate())}`,e_={"7d":7,"30d":30,"90d":90};function t_(e,t=new Date){if(e===`today`)return new Date(t.getFullYear(),t.getMonth(),t.getDate());let n=e_[e];return n?new Date(t.getFullYear(),t.getMonth(),t.getDate()-(n-1)):null}function n_(e=365,t=new Date){let n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(n.getFullYear(),n.getMonth(),n.getDate()-(e-1)),i=new Date(r.getFullYear(),r.getMonth(),r.getDate()-(r.getDay()+6)%7),a=new Date(n.getFullYear(),n.getMonth(),n.getDate()+(6-(n.getDay()+6)%7)),o=[];for(let e=i;e<=a;e=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1))o.push($g(e));let s=[],c=[];for(let e=0;e<o.length;e+=7)s.push(Array.from({length:7},(t,n)=>e+n)),c.push({index:s.length-1,month:Number(o[e].slice(5,7)),year:Number(o[e].slice(0,4))});return{days:o,weeks:s,months:s.flatMap((e,t)=>{let n=e.find(e=>o[e].slice(8)===`01`);return n===void 0?[]:[{index:t,label:Number(o[n].slice(5,7))}]}),monthLabels:c}}function r_(e,t){return e<=0?0:t<=0?1:Math.min(4,Math.max(1,Math.ceil(e/t*4)))}function i_(e,t=new Date){if(e===`today`){let e=$g(t);return Array.from({length:24},(t,n)=>`${e}T${Qg(n)}:00`)}let n=t_(e,t),r=e_[e]??0;return n?Array.from({length:r},(e,t)=>$g(new Date(n.getFullYear(),n.getMonth(),n.getDate()+t))):[]}function a_(e,t){if(t.length===0)return e;let n=new Map(e.map(e=>[e.bucket,e.value]));return t.map(e=>({bucket:e,value:n.get(e)??0}))}var o_=e=>`${e.slice(5,7)}/${e.slice(8,10)}`,s_=e=>e.includes(`T`)?e.slice(11,16):o_(e),c_=e=>e.includes(`T`)?`${o_(e)} ${e.slice(11,16)}`:o_(e);function l_(e){let t=new Map;for(let n of e){let e=t.get(n.key)??{key:n.key,requests:0,tokens:0,costUsd:0};e.requests+=n.requests,e.tokens+=n.tokens,e.costUsd+=n.costUsd,t.set(n.key,e)}let n=[...t.values()],r=n.reduce((e,t)=>e+t.costUsd,0),i=n.reduce((e,t)=>e+t.requests,0);return n.map(e=>({...e,share:r>0?e.costUsd/r:i>0?e.requests/i:0}))}function u_(e){return Math.max(0,Math.round(e.requests*(1-e.successRate)))}function d_(e){return!Number.isFinite(e)||e<=0?`$0`:e<.01?`$<0.01`:e<1e3?`$${e.toFixed(2)}`:xg(e,{compact:!0})}function f_(e,t=new Date){return a_(Zg(e,`requests`),i_(`today`,t))}var p_=e=>String(e).padStart(2,`0`);function m_(e,t=new Date){let n=new Date(t.getFullYear(),t.getMonth(),t.getDate()-1),r=`${n.getFullYear()}-${p_(n.getMonth()+1)}-${p_(n.getDate())}`;return e.filter(e=>e.bucket===r).reduce((e,t)=>e+t.tokens,0)}function h_(e,t){return t<=0?null:(e-t)/t}function g_(e,t){let n=[...e].sort((e,t)=>t.tokens-e.tokens)[0];return!n||n.tokens<=0?null:{model:n.model,share:t>0?Math.min(1,n.tokens/t):1}}var __={session:300,weekly:10080};function v_(e){return e==null||!Number.isFinite(e)?null:Math.min(100,Math.max(0,100-e))}function y_(e,t){let n=v_(t?.usedPercent);return n===null?null:{kind:e,windowMinutes:t?.windowMinutes??__[e],remaining:n,resetsAt:t?.resetsAtUtc??null}}function b_(e){let t=[];for(let{provider:n,account:r}of e){if(r.status!==`active`||!r.quota)continue;let e=r.quota,i=[y_(`session`,e.session),y_(`weekly`,e.weekly)].filter(e=>e!==null),a=v_(e.credits?.usedPercent);a!==null&&i.push({kind:`credits`,windowMinutes:null,remaining:a,resetsAt:null}),i.length!==0&&t.push({accountId:r.id,providerId:n.id,providerName:e.planLabel||n.name,providerIcon:n.icon??null,accountName:r.displayName||r.accountEmail||r.id,rows:i})}return t}function x_(e){let t=[];for(let n of e){if(!n.enabled||!Xg(n)||n.quota?.isValid===!1)continue;let e=[];for(let t of n.quota?.plans??[]){let n=Wg(t);Ug(t)?e.push({kind:`window`,windowMinutes:t.windowMinutes??null,remaining:100-(n??0),resetsAt:t.resetsAtUtc??null}):(t.remaining!=null||n!=null)&&e.push({kind:`balance`,windowMinutes:null,remaining:n==null?null:100-n,resetsAt:t.resetsAtUtc??null,amount:t.remaining==null?null:{value:t.remaining,unit:t.unit??null},label:t.name??null})}e.length!==0&&t.push({accountId:`provider:${n.id}`,providerId:n.id,providerName:n.name,providerIcon:n.icon??null,accountName:``,rows:e})}return t}function S_(e){let t=null;for(let n of e)for(let e of n.rows)e.remaining!==null&&(!t||e.remaining<t.row.remaining)&&(t={plan:n,row:{...e,remaining:e.remaining}});return t}function C_(e,t){let n=[];for(let t of e)for(let e of t.rows)e.remaining!==null&&n.push({plan:t,row:{...e,remaining:e.remaining}});return n.sort((e,t)=>e.row.remaining-t.row.remaining).slice(0,t)}function w_(e){return e<10?`red`:e<30?`orange`:`green`}function T_(e,t){let n=(e,n)=>new Intl.NumberFormat(t===`zh`?`zh-CN`:`en-US`,{style:`unit`,unit:n,unitDisplay:t===`zh`?`long`:`narrow`}).format(e);return e>=1440&&e%1440==0?n(e/1440,`day`):e>=60?n(Math.round(e/60),`hour`):n(e,`minute`)}function E_(e,t,n=Date.now()){if(!e)return null;let r=new Date(e).getTime()-n;if(!Number.isFinite(r)||r<=0)return null;let i=new Intl.RelativeTimeFormat(t===`zh`?`zh-CN`:`en-US`,{numeric:`auto`}),a=r/36e5;return a>=48?i.format(Math.round(a/24),`day`):a>=1?i.format(Math.round(a),`hour`):i.format(Math.max(1,Math.round(r/6e4)),`minute`)}function D_(e,t,n,r=Date.now()){if(!e)return null;let i=Math.max(0,(r-e)/1e3),a=new Intl.RelativeTimeFormat(t===`zh`?`zh-CN`:`en-US`,{numeric:`auto`});return i<60?n:i<3600?a.format(-Math.round(i/60),`minute`):a.format(-Math.round(i/3600),`hour`)}function O_(e,t,n){let r={title:``,detail:``};if(e===`none`)return r;if(e===`alerts`){if(!t.running)return{title:`!`,detail:n.stopped};let e=t.summary?u_(t.summary):0;if(e>0)return{title:`⚠ ${e}`,detail:n.failures(e)};let i=S_(t.plans);if(i&&i.row.remaining<10){let e=`${Math.round(i.row.remaining)}%`;return{title:`⚠ ${e}`,detail:n.quota(i.plan.providerName,n.windowName(i.row),e)}}return r}if(e===`quota`){let e=S_(t.plans);if(!e)return r;let i=`${Math.round(e.row.remaining)}%`;return{title:i,detail:n.quota(e.plan.providerName,n.windowName(e.row),i)}}let i=t.summary;if(!i||!t.running)return r;switch(e){case`requests`:{let e=Tg(i.requests,!0);return{title:e,detail:n.requests(e)}}case`tokens`:{let e=Tg(i.inputTokens+i.outputTokens,!0);return{title:e,detail:n.tokens(e)}}case`cost`:{let e=d_(i.costUsd);return{title:e,detail:n.cost(e)}}}}var k_={title:`requests`,sections:{overview:!0,cost:!0,chart:!0,topModel:!0,compareYesterday:!1,cacheHitRate:!1,quota:!0,clients:!1}},A_=()=>!!dp()?.tray;function j_(){let[e,t]=(0,m.useState)(k_),[n,r]=(0,m.useState)(!dp()?.tray);return(0,m.useEffect)(()=>{let e=dp()?.tray;if(!e)return;let n=!0;e.getPrefs().then(e=>{n&&(t(e),r(!0))});let i=e.onPrefsChanged(t);return()=>{n=!1,i()}},[]),[e,(0,m.useCallback)(e=>{t(e);let n=dp()?.tray;n&&n.setPrefs(e).then(t)},[]),n]}function M_(){let e=kp(),[t,n]=(0,m.useState)(null);return(0,m.useEffect)(()=>{let e=dp()?.tray;if(!e)return;let t=!0;e.getState().then(e=>{t&&n(e)});let r=e.onStateChanged(n);return()=>{t=!1,r()}},[]),t??{running:e.isSuccess,port:null,activity:null,apiVersionMismatch:!1,updateAvailable:null}}function N_(e,t,n){return{...e,sections:{...e.sections,[t]:n}}}var P_=3e5,F_=new Map,I_=()=>-new Date().getTimezoneOffset();function L_(e,t){let n=_(),{enabled:r,background:i}=t,a={refetchInterval:15e3,refetchIntervalInBackground:i},o=e.sections.quota||e.title===`quota`||e.title===`alerts`,s=I({queryKey:K.settings,queryFn:()=>W(`GET`,`/api/settings`),enabled:r}),c=I({queryKey:K.stats(`summary`,`today`,``,``),queryFn:()=>W(`GET`,`/api/stats/summary?range=today`),enabled:r,...a}),l=I({queryKey:K.stats(`timeseries`,`today`,`hour`,`provider`,``,``,I_()),queryFn:()=>W(`GET`,`/api/stats/timeseries?range=today&groupBy=hour&by=provider&tzOffset=${I_()}`),enabled:r&&e.sections.chart,...a,refetchInterval:3e4}),u=I({queryKey:K.stats(`timeseries`,`7d`,`day`,`provider`,``,``,I_()),queryFn:()=>W(`GET`,`/api/stats/timeseries?range=7d&groupBy=day&by=provider&tzOffset=${I_()}`),enabled:r&&e.sections.compareYesterday,...a,refetchInterval:6e4}),d=I({queryKey:K.stats(`top`,`today`,``,3,``),queryFn:()=>W(`GET`,`/api/stats/top-models?range=today&limit=3`),enabled:r&&e.sections.topModel,...a,refetchInterval:3e4}),f=I({queryKey:K.providers,queryFn:()=>W(`GET`,`/api/providers`),enabled:r&&(o||e.sections.clients),...a,refetchInterval:6e4}),p=I({queryKey:K.clients,queryFn:()=>W(`GET`,`/api/clients`),enabled:r&&e.sections.clients,...a,refetchInterval:3e4}),h=(0,m.useMemo)(()=>(f.data??[]).filter(e=>e.enabled&&e.authScheme===`oauth-subscription`),[f.data]),g=$e({queries:h.map(e=>({queryKey:K.providerAccounts(e.id),queryFn:()=>W(`GET`,`/api/providers/${G(e.id)}/accounts`),enabled:r&&o,...a,refetchInterval:6e4}))}),v=h.flatMap((e,t)=>(g[t]?.data??[]).map(t=>({provider:e,account:t}))),y=v.map(e=>`${e.account.id}:${e.account.status}:${e.account.quota?.fetchedAtUtc??``}`).join(`|`),b=L({mutationFn:e=>W(`POST`,`/api/provider-accounts/${G(e)}/quota`),onSettled:e=>{e&&n.invalidateQueries({queryKey:K.providerAccounts(e.providerId)})}}),x=r&&o&&(t.live||e.title===`quota`||e.title===`alerts`);(0,m.useEffect)(()=>{if(!x)return;let e=Date.now();for(let{account:t}of v){if(t.status!==`active`)continue;let n=t.quota?.fetchedAtUtc?new Date(t.quota.fetchedAtUtc).getTime():0;Number.isFinite(n)&&e-n<P_||e-(F_.get(t.id)??0)<P_||(F_.set(t.id,e),b.mutate(t.id,{onError:()=>{}}))}},[x,y]);let S=[...b_(v),...x_(f.data??[])];return{settings:s.data,summary:c.data,hourly:l.data??[],daily:u.data??[],top:d.data??[],plans:S,hasSubscriptions:v.some(e=>e.account.status===`active`),clients:p.data??[],providers:f.data??[],updatedAt:c.dataUpdatedAt,loading:c.isLoading,error:c.isError}}function R_(e,t,n,r){let{t:i,locale:a}=fg(),o=dp(),s=(0,m.useMemo)(()=>({requests:e=>i(`tray.title.requests`,{count:e}),tokens:e=>i(`tray.title.tokens`,{count:e}),cost:e=>i(`tray.title.cost`,{amount:e}),quota:(e,t,n)=>i(`tray.title.quota`,{plan:e,window:t,remaining:n}),failures:e=>i(`tray.title.failures`,{count:e}),stopped:i(`tray.status.stopped`),windowName:e=>e.kind===`balance`?e.label??i(`tray.quotaBalance`):e.kind===`credits`||e.windowMinutes==null?i(`tray.quotaCredits`):T_(e.windowMinutes,a)}),[i,a]),c=O_(e.title,{running:t.running,summary:n,plans:r},s);(0,m.useEffect)(()=>{o?.tray.setTitle(c.title,c.detail)},[o,c.title,c.detail])}function z_(){let[e]=j_(),t=M_(),n=L_(e,{enabled:t.running,background:!0,live:!1});return R_(e,t,n.summary,n.plans),null}var B_=Object.defineProperty,V_=(e,t)=>B_(e,`name`,{value:t,configurable:!0});function H_(e,t){let n=m.createContext(t);n.displayName=e+`Context`;let r=V_(e=>{let{children:t,...r}=e,i=m.useMemo(()=>r,Object.values(r));return(0,h.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=m.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return V_(i,`useContext`),[r,i]}V_(H_,`createContext`);function U_(e,t=[]){let n=[];function r(t,r){let i=m.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=V_(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=m.useMemo(()=>o,Object.values(o));return(0,h.jsx)(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=m.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return V_(s,`useContext`),[o,s]}V_(r,`createContext`);let i=V_(()=>{let t=n.map(e=>m.createContext(e));return V_(function(n){let r=n?.[e]||t;return m.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,W_(i,...t)]}V_(U_,`createContextScope`);function W_(...e){let t=e[0];if(e.length===1)return t;let n=V_(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return V_(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}V_(W_,`composeContextScopes`);var G_=Object.defineProperty,K_=(e,t)=>G_(e,`name`,{value:t,configurable:!0});function q_(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}K_(q_,`setRef`);function J_(...e){return t=>{let n=!1,r=e.map(e=>{let r=q_(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():q_(e[t],null)}}}}K_(J_,`composeRefs`);function q(...e){return m.useCallback(J_(...e),e)}K_(q,`useComposedRefs`);var Y_=l(lp(),1),X_=Object.defineProperty,Z_=(e,t)=>X_(e,`name`,{value:t,configurable:!0});function Q_(e){let t=m.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];ov(r)&&typeof dv==`function`&&(r=dv(r._payload)),m.Children.forEach(r,e=>{if(iv(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;ov(n)&&typeof dv==`function`&&(n=dv(n._payload)),a=tv(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=m.cloneElement(a,void 0,s):!o&&m.Children.count(r)===1&&m.isValidElement(r)&&(a=r);let c=a?rv(a):void 0,l=q(n,c);if(!a){if(r||r===0)throw Error(o?uv(e):lv(e));return r}let u=nv(i,a.props??{});return a.type!==m.Fragment&&(u.ref=n?l:c),m.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}Z_(Q_,`createSlot`);var $_=Symbol.for(`radix.slottable`);function ev(e){let t=Z_(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=$_,t}Z_(ev,`createSlottable`);var tv=Z_((e,t)=>{if(`child`in e.props){let t=e.props.child;return m.isValidElement(t)?m.cloneElement(t,void 0,e.props.children(t.props.children)):null}return m.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function nv(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`?n[r]=[i,a].filter(Boolean).join(` `):r===`aria-describedby`&&(n[r]=cv(a,i))}return{...e,...n}}Z_(nv,`mergeProps`);function rv(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Z_(rv,`getElementRef`);function iv(e){return m.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===$_}Z_(iv,`isSlottable`);var av=Symbol.for(`react.lazy`);function ov(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===av&&`_payload`in e&&sv(e._payload)}Z_(ov,`isLazyComponent`);function sv(e){return typeof e==`object`&&!!e&&`then`in e}Z_(sv,`isPromiseLike`);function cv(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}Z_(cv,`concatAriaDescribedby`);var lv=Z_(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),uv=Z_(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),dv=m.use,fv=Object.defineProperty,pv=(e,t)=>fv(e,`name`,{value:t,configurable:!0});function mv(e){let t=e+`CollectionProvider`,[n,r]=U_(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=pv(e=>{let{scope:t,children:n}=e,r=m.useRef(null),a=m.useRef(new Map).current;return(0,h.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=Q_(s),l=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=q(t,a(s,n).collectionRef);return(0,h.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=Q_(u),p=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),s=q(t,o),c=a(u,n);return m.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,h.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function g(t){let n=a(e+`CollectionConsumer`,t);return m.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return pv(g,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},g,r]}pv(mv,`createCollection`);var hv=new WeakMap,gv=class e extends Map{static{pv(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],hv.set(this,!0)}set(e,t){return hv.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=yv(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=_v(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=_v(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return _v(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function _v(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=vv(e,t);return n===-1?void 0:e[n]}pv(_v,`at`);function vv(e,t){let n=e.length,r=yv(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}pv(vv,`toSafeIndex`);function yv(e){return e!==e||e===0?0:Math.trunc(e)}pv(yv,`toSafeInteger`);function bv(e){let t=e+`CollectionProvider`,[n,r]=U_(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new gv,setItemMap:pv(()=>void 0,`setItemMap`)}),o=pv(({state:e,...t})=>e?(0,h.jsx)(c,{...t,state:e}):(0,h.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=pv(e=>{let t=_();return(0,h.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=pv(e=>{let{scope:t,children:n,state:r}=e,a=m.useRef(null),[o,s]=m.useState(null),c=q(a,s),[l,u]=r;return m.useEffect(()=>{if(!o)return;let e=wv(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,h.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=Q_(l),d=m.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=q(t,a(l,n).collectionRef);return(0,h.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=Q_(f),g=m.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=m.useRef(null),[s,c]=m.useState(null),l=q(t,o,c),{setItemMap:u}=a(f,n),d=m.useRef(i);xv(d.current,i)||(d.current=i);let g=d.current;return m.useEffect(()=>{let e=g;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(Cv):(t.set(s,{...e,element:s}),t.toSorted(Cv)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new gv(e)))}},[s,g,u]),(0,h.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});g.displayName=f;function _(){return m.useState(new gv)}pv(_,`useInitCollection`);function v(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return pv(v,`useCollection`),[{Provider:o,Slot:d,ItemSlot:g},{createCollectionScope:r,useCollection:v,useInitCollection:_}]}pv(bv,`createCollection`);function xv(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}pv(xv,`shallowEqual`);function Sv(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}pv(Sv,`isElementPreceding`);function Cv(e,t){return!e[1].element||!t[1].element?0:Sv(e[1].element,t[1].element)?-1:1}pv(Cv,`sortByDocumentPosition`);function wv(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}pv(wv,`getChildListObserver`);var Tv=Object.defineProperty,Ev=(e,t)=>Tv(e,`name`,{value:t,configurable:!0}),Dv=!!(typeof window<`u`&&window.document&&window.document.createElement);function J(e,t,{checkForDefaultPrevented:n=!0}={}){return Ev(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}Ev(J,`composeEventHandlers`);function Ov(e){if(!Dv)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}Ev(Ov,`getOwnerWindow`);function kv(e){if(!Dv)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}Ev(kv,`getOwnerDocument`);function Av(e,t=!1){let{activeElement:n}=kv(e);if(!n?.nodeName)return null;if(jv(n)&&n.contentDocument)return Av(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=kv(n).getElementById(e);if(t)return t}}return n}Ev(Av,`getActiveElement`);function jv(e){return e.tagName===`IFRAME`}Ev(jv,`isFrame`);var Y=globalThis?.document?m.useLayoutEffect:()=>{},Mv=Object.defineProperty,Nv=(e,t)=>Mv(e,`name`,{value:t,configurable:!0}),Pv=m.useEffectEvent,Fv=m.useInsertionEffect;function Iv(e){if(typeof Pv==`function`)return Pv(e);let t=m.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof Fv==`function`?Fv(()=>{t.current=e}):Y(()=>{t.current=e}),m.useMemo(()=>((...e)=>t.current?.(...e)),[])}Nv(Iv,`useEffectEvent`);var Lv=Object.defineProperty,Rv=(e,t)=>Lv(e,`name`,{value:t,configurable:!0}),zv=m.useInsertionEffect||Y;function Bv({prop:e,defaultProp:t,onChange:n=Rv(()=>{},`onChange`),caller:r}){let[i,a,o]=Vv({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,m.useCallback(t=>{if(s){let n=Hv(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}Rv(Bv,`useControllableState`);function Vv({defaultProp:e,onChange:t}){let[n,r]=m.useState(e),i=m.useRef(n),a=m.useRef(t);return zv(()=>{a.current=t},[t]),m.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}Rv(Vv,`useUncontrolledState`);function Hv(e){return typeof e==`function`}Rv(Hv,`isFunction`);var Uv=Symbol(`RADIX:SYNC_STATE`);function Wv(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=Iv(o),u=[{...n,state:a}];r&&u.push(r);let[d,f]=m.useReducer((t,n)=>{if(n.type===Uv)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),p=d.state,h=m.useRef(p);m.useEffect(()=>{h.current!==p&&(h.current=p,c||l(p))},[p,h,c]);let g=m.useMemo(()=>i===void 0?d:{...d,state:i},[d,i]);return m.useEffect(()=>{c&&!Object.is(i,d.state)&&f({type:Uv,state:i})},[i,d.state,c]),[g,f]}Rv(Wv,`useControllableStateReducer`);var Gv=Object.defineProperty,Kv=(e,t)=>Gv(e,`name`,{value:t,configurable:!0}),X=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=Q_(`Primitive.${t}`),r=m.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,h.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function qv(e,t){e&&Y_.flushSync(()=>e.dispatchEvent(t))}Kv(qv,`dispatchDiscreteCustomEvent`);var Jv=Object.defineProperty,Yv=(e,t)=>Jv(e,`name`,{value:t,configurable:!0});function Xv(e,t){return m.useReducer((e,n)=>t[e][n]??e,e)}Yv(Xv,`useStateMachine`);var Zv=Yv(e=>{let{present:t,children:n}=e,r=Qv(t),i=typeof n==`function`?n({present:r.isPresent}):m.Children.only(n),a=ey(r.ref,ny(i));return typeof n==`function`||r.isPresent?m.cloneElement(i,{ref:a}):null},`Presence`);function Qv(e){let[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),a=m.useRef(`none`),o=m.useRef(void 0),[s,c]=Xv(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return m.useEffect(()=>{s===`mounted`?(a.current=o.current??ty(r.current),o.current=void 0):a.current=`none`},[s]),Y(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=ty(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),Y(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=Yv(a=>{let o=ty(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=Yv(e=>{e.target===t&&(a.current=ty(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:m.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=ty(t)}else r.current=null;n(e)},[])}}Yv(Qv,`usePresence`);function $v(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}Yv($v,`setRef`);function ey(...e){let t=m.useRef(e);return t.current=e,m.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=$v(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():$v(n[e],null)}}},[])}Yv(ey,`useStableComposedRefs`);function ty(e){return e?.animationName||`none`}Yv(ty,`getAnimationName`);function ny(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Yv(ny,`getElementRef`);var ry=Object.defineProperty,iy=(e,t)=>ry(e,`name`,{value:t,configurable:!0}),ay=m.useId||(()=>void 0),oy=0;function sy(e){let[t,n]=m.useState(ay());return Y(()=>{e||n(e=>e??String(oy++))},[e]),e||(t?`radix-${t}`:``)}iy(sy,`useId`);var cy=Object.defineProperty,ly=(e,t)=>cy(e,`name`,{value:t,configurable:!0}),uy=`Collapsible`,[dy,fy]=U_(uy),[py,my]=dy(uy),hy=m.forwardRef(ly(function(e,t){let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=Bv({prop:r,defaultProp:i??!1,onChange:o,caller:uy});return(0,h.jsx)(py,{scope:n,disabled:a,contentId:sy(),open:c,onOpenToggle:m.useCallback(()=>l(e=>!e),[l]),children:(0,h.jsx)(X.div,{"data-state":xy(c),"data-disabled":a?``:void 0,...s,ref:t})})},`Collapsible`)),gy=`CollapsibleTrigger`,_y=m.forwardRef(ly(function(e,t){let{__scopeCollapsible:n,...r}=e,i=my(gy,n);return(0,h.jsx)(X.button,{type:`button`,"aria-controls":i.open?i.contentId:void 0,"aria-expanded":i.open||!1,"data-state":xy(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:J(e.onClick,i.onOpenToggle)})},`CollapsibleTrigger`)),vy=`CollapsibleContent`,yy=m.forwardRef(ly(function(e,t){let{forceMount:n,...r}=e,i=my(vy,e.__scopeCollapsible);return(0,h.jsx)(Zv,{present:n||i.open,children:({present:e})=>(0,h.jsx)(by,{...r,ref:t,present:e})})},`CollapsibleContent`)),by=m.forwardRef(ly(function(e,t){let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=my(vy,n),[s,c]=m.useState(r),l=m.useRef(null),u=q(t,l),d=m.useRef(0),f=d.current,p=m.useRef(0),g=p.current,_=o.open||s,v=m.useRef(_),y=m.useRef(void 0);return m.useEffect(()=>{let e=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(e)},[]),Y(()=>{let e=l.current;if(e){y.current=y.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,v.current||(e.style.transitionDuration=y.current.transitionDuration,e.style.animationName=y.current.animationName),c(r)}},[o.open,r]),(0,h.jsx)(X.div,{"data-state":xy(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!_,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":g?`${g}px`:void 0,...e.style},children:_&&i})},`CollapsibleContentImpl`));function xy(e){return e?`open`:`closed`}ly(xy,`getState`);var Sy=Object.defineProperty,Cy=(e,t)=>Sy(e,`name`,{value:t,configurable:!0}),wy={LTR:`ltr`,RTL:`rtl`},Ty=m.createContext(void 0);function Ey(e){let t=m.useContext(Ty);return e||t||wy.LTR}Cy(Ey,`useDirection`);var Dy=Object.defineProperty,Oy=(e,t)=>Dy(e,`name`,{value:t,configurable:!0}),ky={Single:`single`,Multiple:`multiple`},Ay={Vertical:`vertical`,Horizontal:`horizontal`},jy={LTR:`ltr`,RTL:`rtl`},My=`Accordion`,Ny=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[Py,Fy,Iy]=mv(My),[Ly,Ry]=U_(My,[Iy,fy]),zy=fy(),By=m.forwardRef(Oy(function(e,t){let{type:n,...r}=e,i=r,a=r;return(0,h.jsx)(Py.Provider,{scope:e.__scopeAccordion,children:n===ky.Multiple?(0,h.jsx)(Ky,{...a,ref:t}):(0,h.jsx)(Gy,{...i,ref:t})})},`Accordion`)),[Vy,Hy]=Ly(My),[Uy,Wy]=Ly(My,{collapsible:!1}),Gy=m.forwardRef(Oy(function(e,t){let{value:n,defaultValue:r,onValueChange:i=Oy(()=>{},`onValueChange`),collapsible:a=!1,...o}=e,[s,c]=Bv({prop:n,defaultProp:r??``,onChange:i,caller:My});return(0,h.jsx)(Vy,{scope:e.__scopeAccordion,value:m.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:m.useCallback(()=>a&&c(``),[a,c]),children:(0,h.jsx)(Uy,{scope:e.__scopeAccordion,collapsible:a,children:(0,h.jsx)(Yy,{...o,ref:t})})})},`AccordionImplSingle`)),Ky=m.forwardRef(Oy(function(e,t){let{value:n,defaultValue:r,onValueChange:i=Oy(()=>{},`onValueChange`),...a}=e,[o,s]=Bv({prop:n,defaultProp:r??[],onChange:i,caller:My}),c=m.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=m.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,h.jsx)(Vy,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,h.jsx)(Uy,{scope:e.__scopeAccordion,collapsible:!0,children:(0,h.jsx)(Yy,{...a,ref:t})})})},`AccordionImplMultiple`)),[qy,Jy]=Ly(My),Yy=m.forwardRef(Oy(function(e,t){let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=Ay.Vertical,...o}=e,s=q(m.useRef(null),t),c=Fy(n),l=Ey(i)===jy.LTR,u=J(e.onKeyDown,e=>{if(!Ny.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=Oy(()=>{o=r+1,o>s&&(o=0)},`moveNext`),d=Oy(()=>{o=r-1,o<0&&(o=s)},`movePrev`);switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===Ay.Horizontal&&(l?u():d());break;case`ArrowDown`:a===Ay.Vertical&&u();break;case`ArrowLeft`:a===Ay.Horizontal&&(l?d():u());break;case`ArrowUp`:a===Ay.Vertical&&d()}n[o%i].ref.current?.focus()});return(0,h.jsx)(qy,{scope:n,disabled:r,direction:i,orientation:a,children:(0,h.jsx)(Py.Slot,{scope:n,children:(0,h.jsx)(X.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})},`AccordionImpl`)),Xy=`AccordionItem`,[Zy,Qy]=Ly(Xy),$y=m.forwardRef(Oy(function(e,t){let{__scopeAccordion:n,value:r,...i}=e,a=Jy(Xy,n),o=Hy(Xy,n),s=zy(n),c=sy(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,h.jsx)(Zy,{scope:n,open:l,disabled:u,triggerId:c,children:(0,h.jsx)(hy,{"data-orientation":a.orientation,"data-state":ob(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})},`AccordionItem`)),eb=`AccordionHeader`,tb=m.forwardRef(Oy(function(e,t){let{__scopeAccordion:n,...r}=e,i=Jy(My,n),a=Qy(eb,n);return(0,h.jsx)(X.h3,{"data-orientation":i.orientation,"data-state":ob(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})},`AccordionHeader`)),nb=`AccordionTrigger`,rb=m.forwardRef(Oy(function(e,t){let{__scopeAccordion:n,...r}=e,i=Jy(My,n),a=Qy(nb,n),o=Wy(nb,n),s=zy(n);return(0,h.jsx)(Py.ItemSlot,{scope:n,children:(0,h.jsx)(_y,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})},`AccordionTrigger`)),ib=`AccordionContent`,ab=m.forwardRef(Oy(function(e,t){let{__scopeAccordion:n,...r}=e,i=Jy(My,n),a=Qy(ib,n),o=zy(n);return(0,h.jsx)(yy,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})},`AccordionContent`));function ob(e){return e?`open`:`closed`}Oy(ob,`getState`);var sb=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function cb(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:sb(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var lb=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},ub=e=>{let t=lb(e);return t.charAt(0).toUpperCase()+t.slice(1)},db=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),fb={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function pb(e){return e!=null}function mb(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??fb.width,a=e.size??e.height??fb.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?db(...c):db(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??fb[`stroke-width`])*Number(e.size??e.width??fb.width)/Number(t.size??t.width??fb.width):t.strokeWidth??fb[`stroke-width`];return[`svg`,{...Object.entries(fb).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&pb(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&pb(t.width)&&{[r(`width`)]:t.width},...`height`in t&&pb(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function hb(e,t={}){return mb(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var gb=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},_b=(0,m.createContext)({}),vb=()=>(0,m.useContext)(_b),yb=(0,m.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:h=2,absoluteStrokeWidth:g=!1,nonScalingStroke:_=!1,color:v=`currentColor`,className:y=``}=vb()??{},b=!!c||gb(d),[x,S,C=[]]=hb(u,{color:e??v,width:n??t??p,height:r??t??p,strokeWidth:i??h,absoluteStrokeWidth:a??g,nonScalingStroke:o??_,className:db(y,s),hasA11yProp:b,attributes:d});return(0,m.createElement)(x,{ref:f,...S},[...C.map(([e,t])=>(0,m.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function bb(e,t=[],n=[]){let r=typeof e==`string`?cb(e,t,n):e,i=(0,m.forwardRef)(({className:e,...t},n)=>(0,m.createElement)(yb,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=ub(r.name)),i}var xb={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};xb.node;var Sb=bb(xb),Cb={name:`chevron-down`,size:24,node:[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]};Cb.node;var wb=bb(Cb),Tb={name:`chevron-up`,size:24,node:[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]};Tb.node;var Eb=bb(Tb),Db={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};Db.node;var Ob=bb(Db),kb={name:`circle-x`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-circle`]};kb.node;var Ab=bb(kb),jb={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};jb.node;var Mb=bb(jb),Nb={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};Nb.node;var Pb=bb(Nb),Fb={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]};Fb.node;var Ib=bb(Fb),Lb={name:`info`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]};Lb.node;var Rb=bb(Lb),zb={name:`puzzle`,size:24,node:[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]};zb.node;var Bb=bb(zb),Vb={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};Vb.node;var Hb=bb(Vb),Ub={name:`settings`,size:24,node:[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Ub.node;var Wb=bb(Ub),Gb={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};Gb.node;var Kb=bb(Gb),qb={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};qb.node;var Jb=bb(qb),Z={duration:{instant:.12,fast:.16,exit:.18,standard:.24,considered:.48},ease:{enter:[.16,1,.3,1],exit:[.7,0,.84,0],standard:[.22,1,.36,1],inOut:[.65,0,.35,1]},spring:{responsive:{type:`spring`,stiffness:520,damping:38},gentle:{type:`spring`,stiffness:340,damping:34},snappy:{type:`spring`,visualDuration:.26,bounce:.12},smooth:{type:`spring`,visualDuration:.4,bounce:0},morph:{type:`spring`,visualDuration:.42,bounce:.16}},stagger:{char:.016,word:.04,line:.08,item:.035},blur:{subtle:2,soft:4,text:8}},Yb={accordion:`_accordion_17mmv_1`,item:`_item_17mmv_2`,header:`_header_17mmv_3`,trigger:`_trigger_17mmv_4`,icon:`_icon_17mmv_5`,panel:`_panel_17mmv_9`,panelInner:`_panelInner_17mmv_10`,lg:`_lg_17mmv_11`},Xb={height:`auto`,opacity:1,visibility:`visible`},Zb={height:0,opacity:0,transitionEnd:{visibility:`hidden`}},Qb={y:0,filter:`blur(0px)`,transitionEnd:{filter:`none`}},$b={y:-6,filter:`blur(${Z.blur.subtle}px)`},ex={open:{...Xb,transition:{height:Z.spring.smooth,opacity:{duration:Z.duration.standard,ease:[...Z.ease.enter]}}},closed:{...Zb,transition:{height:Z.spring.smooth,opacity:{duration:Z.duration.fast,ease:[...Z.ease.standard]}}}},tx={open:{...Qb,transition:{y:Z.spring.smooth,filter:{duration:Z.duration.standard,ease:[...Z.ease.enter]}}},closed:{...$b,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}}},nx={open:{...Xb,transition:{duration:0}},closed:{...Zb,transition:{duration:0}}},rx={open:{...Qb,transition:{duration:0}},closed:{...$b,transition:{duration:0}}};function ix({items:e,defaultOpen:t=0,size:n=`md`}){let r=t>=0&&t<e.length?String(t):``,[i,a]=(0,m.useState)(r),o=H();return(0,h.jsx)(By,{className:[Yb.accordion,n===`lg`?Yb.lg:``].filter(Boolean).join(` `),type:`single`,collapsible:!0,value:i,onValueChange:a,children:e.map((e,t)=>{let n=i===String(t);return(0,h.jsxs)($y,{className:Yb.item,value:String(t),children:[(0,h.jsx)(tb,{className:Yb.header,children:(0,h.jsxs)(rb,{className:Yb.trigger,children:[(0,h.jsx)(`span`,{children:e.title}),(0,h.jsx)(U.span,{className:Yb.icon,initial:!1,animate:{rotate:n?180:0},transition:o?{duration:0}:Z.spring.snappy,children:(0,h.jsx)(wb,{width:17,height:17,"aria-hidden":`true`})})]})}),(0,h.jsx)(ab,{forceMount:!0,asChild:!0,children:(0,h.jsx)(U.div,{className:Yb.panel,initial:!1,animate:n?`open`:`closed`,variants:o?nx:ex,children:(0,h.jsx)(U.div,{className:Yb.panelInner,variants:o?rx:tx,children:e.content})})})]},`${e.title}-${t}`)})})}var ax={badge:`_badge_qjt90_1`,sm:`_sm_qjt90_23`,md:`_md_qjt90_24`,body:`_body_qjt90_26`,content:`_content_qjt90_27`,label:`_label_qjt90_29`,glyph:`_glyph_qjt90_29`,text:`_text_qjt90_30`,icon:`_icon_qjt90_32`,neutral:`_neutral_qjt90_44`,success:`_success_qjt90_45`,info:`_info_qjt90_46`,warning:`_warning_qjt90_47`,danger:`_danger_qjt90_48`},ox={duration:Z.duration.fast,ease:[...Z.ease.standard]},sx={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},cx={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:ox},lx={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},ux={opacity:1,y:`0em`,scale:1,filter:`blur(0px)`},dx={opacity:0,transition:{duration:Z.duration.instant}};function fx(e){let t=Fu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function px(e){if(!(0,m.isValidElement)(e))return`icon`;let t=e.type;return typeof t==`string`?t:t.displayName??t.name??`icon`}function mx({tone:e=`neutral`,size:t=`md`,icon:n,className:r,children:i,...a}){let o=H(),s=typeof i==`string`||typeof i==`number`?String(i):null,c=n?px(n):``,l=(0,m.useRef)(null),u=(0,m.useRef)(null),d=Rf(`auto`),f=(0,m.useRef)(0);(0,m.useLayoutEffect)(()=>{f.current=performance.now()},[s,c]),(0,m.useEffect)(()=>{let e=u.current;if(!e||typeof ResizeObserver>`u`)return;let t,n,r=()=>{d.jump(`auto`),l.current&&(l.current.style.width=`auto`)},i=new ResizeObserver(([i])=>{let a=i.borderBoxSize?.[0]?.inlineSize??e.offsetWidth,s=d.get(),c=typeof s==`number`?s:t;if(t=a,n?.stop(),o||c===void 0||c===a||performance.now()-f.current>120)return r();l.current&&(l.current.style.width=`${c}px`),n=sp(d,[c,a],{...Z.spring.morph,onComplete:r})});return i.observe(e),()=>{i.disconnect(),n?.stop()}},[d,o]);let p=o?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},g=[ax.badge,ax[e],ax[t],r].filter(Boolean).join(` `);return(0,h.jsx)(`span`,{...a,className:g,children:(0,h.jsx)(U.span,{ref:l,className:ax.body,style:{width:d},children:(0,h.jsxs)(`span`,{ref:u,className:ax.content,children:[n?(0,h.jsx)(`span`,{className:ax.icon,"aria-hidden":`true`,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(fx,{className:ax.glyph,initial:o?{opacity:0}:lx,animate:ux,exit:o?dx:{...lx,transition:ox},transition:o?p:Z.spring.snappy,children:n},c)})}):null,s===null?i:(0,h.jsx)(`span`,{className:ax.label,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(fx,{className:ax.text,initial:o?{opacity:0}:sx,animate:ux,exit:o?dx:cx,transition:p,children:s},s)})})]})})})}var hx={button:`_button_14khe_1`,labelSlot:`_labelSlot_14khe_8`,labelContent:`_labelContent_14khe_10`,labelPhase:`_labelPhase_14khe_11`,primary:`_primary_14khe_13`,secondary:`_secondary_14khe_14`,ghost:`_ghost_14khe_15`,danger:`_danger_14khe_16`,sm:`_sm_14khe_27`,md:`_md_14khe_28`,lg:`_lg_14khe_29`,loader:`_loader_14khe_30`,spinner:`_spinner_14khe_31`,spin:`_spin_14khe_31`,loadingLabel:`_loadingLabel_14khe_32`},gx={pressed:e=>{let t=e.current?.offsetWidth??0;return{scale:t>220?.985:t&&t<=48?.96:.97,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}}}},_x={opacity:1,y:0,scale:1,filter:`blur(0px)`},vx={opacity:0,y:4,filter:`blur(${Z.blur.soft}px)`},yx={opacity:0,y:-3,filter:`blur(${Z.blur.soft}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},bx={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},xx={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},Sx={..._x,opacity:0},Cx={opacity:0,transition:{duration:Z.duration.instant}},wx={...Z.spring.snappy,opacity:{duration:Z.duration.fast,ease:[...Z.ease.enter]},filter:{duration:Z.duration.fast,ease:[...Z.ease.enter]}};function Tx(e){if(e==null||typeof e==`boolean`)return``;if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return String(e);if(Array.isArray(e))return e.map(Tx).join(``);if(!(0,m.isValidElement)(e))return``;let t=e.type;return`<${typeof t==`string`?t:t?.displayName??t?.name??``}>${Tx(e.props.children)}`}function Ex(e,t,n){let r=Rf(`auto`),i=(0,m.useRef)(t),a=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{i.current!==t&&(i.current=t,a.current=performance.now()+700)},[t]),(0,m.useEffect)(()=>{let t=e.current,i=t?.parentElement;if(!t||!i||typeof ResizeObserver>`u`)return;let o=!1,s=new ResizeObserver(([e])=>{let t=e.contentRect.width;if(!t||!o||n||performance.now()>a.current){o=t>0,r.jump(t||`auto`),delete i.dataset.morphing;return}i.dataset.morphing=``,sp(r,t,{...Z.spring.morph,onComplete:()=>{delete i.dataset.morphing}})});return s.observe(t),()=>s.disconnect()},[e,n,r]),r}function Dx({children:e,icon:t,reduced:n,ref:r}){let i=Fu();return(0,h.jsx)(U.span,{ref:r,className:hx.labelPhase,"aria-hidden":!i||void 0,initial:n?Sx:t?bx:vx,animate:_x,exit:n?Cx:t?xx:yx,transition:n?{duration:Z.duration.instant}:t?wx:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:e})}var Ox=(0,m.forwardRef)(function({className:e,variant:t=`primary`,size:n=`md`,loading:r=!1,disabled:i,children:a,onClick:o,...s},c){let l=H()??!1,u=(0,m.useRef)(null),d=(0,m.useRef)(null),f=Tx(a),p=Ex(d,f,l),g=(0,m.useCallback)(e=>{u.current=e,typeof c==`function`?c(e):c&&(c.current=e)},[c]),_=s[`aria-haspopup`],v=_!==void 0&&_!==!1&&_!==`false`||s.role===`combobox`||s[`data-state`]!==void 0,y=i||r||s[`aria-disabled`]===!0||s[`aria-disabled`]===`true`,b=[hx.button,hx[t],hx[n],e].filter(Boolean).join(` `);return(0,h.jsxs)(U.button,{ref:g,tabIndex:s.tabIndex??0,className:b,disabled:i,"aria-busy":r||void 0,custom:u,variants:gx,whileTap:l||v||y?void 0:`pressed`,transition:Z.spring.snappy,...s,"aria-disabled":r||s[`aria-disabled`]||void 0,onClick:r?e=>e.preventDefault():o,children:[(0,h.jsx)(V,{initial:!1,children:r?(0,h.jsx)(U.span,{className:hx.loader,"aria-hidden":`true`,initial:l?{opacity:0}:{opacity:0,scale:.6},animate:{opacity:1,scale:1},exit:l?Cx:{...xx,scale:.8},transition:l?{duration:Z.duration.instant}:wx,children:(0,h.jsx)(`span`,{className:hx.spinner})},`loader`):null}),(0,h.jsx)(U.span,{className:[hx.labelSlot,r?hx.loadingLabel:``].filter(Boolean).join(` `),style:{width:p},children:(0,h.jsx)(`span`,{ref:d,className:hx.labelContent,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(Dx,{icon:!/\S/.test(f.replace(/<[^>]*>/g,``)),reduced:l,children:a},f)})})})]})});Ox.displayName=`Button`;function kx(e=1900){let[t,n]=(0,m.useState)(`idle`),[r,i]=(0,m.useState)(null),a=(0,m.useRef)(null),o=(0,m.useCallback)(()=>{a.current&&clearTimeout(a.current),a.current=null,n(`idle`),i(null)},[]);return(0,m.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{state:t,activeKey:r,copy:(0,m.useCallback)(async(t,r=`default`)=>{a.current&&clearTimeout(a.current),i(r);try{return await navigator.clipboard.writeText(t),n(`copied`),a.current=setTimeout(o,e),!0}catch{return n(`error`),a.current=setTimeout(o,e),!1}},[e,o]),reset:o}}var Ax={button:`_button_17pbi_1`,iconOnly:`_iconOnly_17pbi_3`,plain:`_plain_17pbi_4`,icon:`_icon_17pbi_3`,iconInner:`_iconInner_17pbi_8`,label:`_label_17pbi_12`,measure:`_measure_17pbi_13`,glyphs:`_glyphs_17pbi_13`,glyph:`_glyph_17pbi_13`,srOnly:`_srOnly_17pbi_19`},jx={type:`spring`,visualDuration:.5,bounce:.06},Mx={duration:.36,ease:[...Z.ease.enter]},Nx={duration:.2,ease:[...Z.ease.standard]},Px={duration:Z.duration.instant},Fx=`blur(${Z.blur.soft}px)`,Ix={opacity:1,y:0,scale:1,filter:`blur(0px)`},Lx={...Ix,opacity:0},Rx={opacity:0,transition:Px},zx={opacity:0,scale:.6,filter:Fx},Bx={opacity:0,scale:.6,filter:Fx,transition:{duration:.24,ease:[...Z.ease.standard]}},Vx={scale:jx,opacity:{...Mx,delay:.03},filter:{...Mx,delay:.03}},Hx={opacity:0,y:4,filter:Fx},Ux={opacity:0,y:-3,filter:Fx,transition:Nx};function Wx({reduced:e}){return(0,h.jsx)(`svg`,{width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.75,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,h.jsx)(U.path,{d:`M4 12l5 5L20 6`,initial:!e&&{pathLength:0,opacity:0},animate:{pathLength:1,opacity:1},transition:{pathLength:{duration:.5,ease:[...Z.ease.standard],delay:.05},opacity:{duration:.01,delay:.05}}})})}var Gx=(e,t)=>e.map((e,n)=>({id:`${t}:${n}`,char:e,order:n}));function Kx(e){let[t,n]=(0,m.useState)(()=>({text:e,seq:0,glyphs:Gx([...e],0)}));if(t.text===e)return t.glyphs;let r=[...t.text],i=[...e],a=0,o=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;for(;o<r.length-a&&o<i.length-a&&r[r.length-1-o]===i[i.length-1-o];)o++;a<2&&(a=0),o<2&&(o=0);let s=t.seq+1,c=[...t.glyphs.slice(0,a),...Gx(i.slice(a,i.length-o),s),...t.glyphs.slice(t.glyphs.length-o)];return n({text:e,seq:s,glyphs:c}),c}function qx({text:e,reduced:t}){let n=Kx(e);return(0,h.jsx)(U.span,{className:Ax.glyphs,layoutRoot:!0,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:n.map(n=>(0,h.jsx)(U.span,{className:Ax.glyph,layout:!t&&`position`,layoutDependency:e,initial:t?Lx:Hx,animate:Ix,exit:t?Rx:Ux,transition:t?Px:{...Mx,delay:Math.min(n.order*.02,.12),layout:jx},children:n.char},n.id))})})}function Jx({value:e,label:t=`Copy`,className:n,iconOnly:r=!1,variant:i=`outline`,disabled:a,onCopied:o}){let{state:s,copy:c}=kx(),l=H()??!1,u=s===`copied`?`Copied`:s===`error`?`Failed`:t;async function d(){await c(e)&&o?.()}return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`button`,{type:`button`,className:[Ax.button,r&&Ax.iconOnly,i===`plain`&&Ax.plain,n].filter(Boolean).join(` `),onClick:()=>void d(),"aria-label":t,"data-copy-state":s,disabled:a,children:[(0,h.jsx)(`span`,{className:Ax.icon,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,children:(0,h.jsx)(U.span,{className:Ax.iconInner,"data-state":s,initial:l?Lx:zx,animate:Ix,exit:l?Rx:Bx,transition:l?Px:Vx,children:s===`copied`?(0,h.jsx)(Wx,{reduced:l}):s===`error`?(0,h.jsx)(Ob,{size:16,strokeWidth:1.75}):(0,h.jsx)(Mb,{size:16,strokeWidth:1.75})},s)})}),!r&&(0,h.jsxs)(`span`,{className:Ax.label,"aria-hidden":`true`,children:[(0,h.jsx)(`span`,{className:Ax.measure,children:t}),(0,h.jsx)(`span`,{className:Ax.measure,children:`Copied`}),(0,h.jsx)(`span`,{className:Ax.measure,children:`Failed`}),(0,h.jsx)(qx,{text:u,reduced:l})]})]}),(0,h.jsx)(`span`,{className:Ax.srOnly,role:`status`,"aria-live":`polite`,children:s===`idle`?``:s===`error`?`${t}: Could not copy`:`${t}: Copied`})]})}var Yx={block:`_block_zsn8w_1`,header:`_header_zsn8w_2`,file:`_file_zsn8w_4`,filename:`_filename_zsn8w_6`,swap:`_swap_zsn8w_8`,swapStack:`_swapStack_zsn8w_9`,swapText:`_swapText_zsn8w_11`,reserve:`_reserve_zsn8w_12`,sizer:`_sizer_zsn8w_13`,srOnly:`_srOnly_zsn8w_14`,language:`_language_zsn8w_15`,viewport:`_viewport_zsn8w_18`,pre:`_pre_zsn8w_19`,code:`_code_zsn8w_21`,expand:`_expand_zsn8w_22`,chevron:`_chevron_zsn8w_23`,comment:`_comment_zsn8w_25`,string:`_string_zsn8w_26`,number:`_number_zsn8w_27`,keyword:`_keyword_zsn8w_28`,type:`_type_zsn8w_29`,function:`_function_zsn8w_30`,property:`_property_zsn8w_31`,tag:`_tag_zsn8w_32`,punctuation:`_punctuation_zsn8w_33`},Xx=/^(?:abstract|as|async|await|break|case|catch|class|const|continue|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|of|private|protected|public|readonly|return|set|static|switch|throw|try|type|typeof|var|void|while|with|yield|SELECT|FROM|WHERE|INSERT|UPDATE|DELETE)$/,Zx=/^(?:true|false|null|undefined|NaN|Infinity)$/,Qx=/^(?:Array|Boolean|Date|Error|Map|Number|Promise|Record|Set|String|ReactNode|HTMLElement|HTMLButtonElement|Event|unknown|never|void|any|boolean|number|string|object)$/,$x=/\/\*[\s\S]*?\*\/|\/\/[^\n]*|<!--[\s\S]*?-->|`(?:\\.|[^`\\])*`|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b\d+(?:\.\d+)?\b|\b[A-Za-z_$][\w$-]*\b|[{}[\]();,.<>:=+*/!?|&-]/g;function eS(e){return e.toLowerCase().replace(/^\./,``)}function tS(e,t,n,r){if(e.startsWith(`//`)||e.startsWith(`/*`)||e.startsWith(`<!--`))return`comment`;if(e.startsWith(`"`)||e.startsWith(`'`)||e.startsWith("`"))return r===`json`&&/^\s*:/.test(t.slice(n+e.length))?`property`:`string`;if(/^\d/.test(e))return`number`;if(Xx.test(e)||Zx.test(e))return`keyword`;if(Qx.test(e))return`type`;if(/^[{}[\]();,.<>:=+*/!?|&-]$/.test(e))return`punctuation`;let i=t.slice(0,n),a=t.slice(n+e.length);if((r===`tsx`||r===`jsx`||r===`html`||r===`vue`)&&/<\/?$/.test(i))return`tag`;if(/^\s*\(/.test(a)&&r!==`json`)return`function`;if((r===`css`||r===`tsx`||r===`jsx`)&&/^\s*[:=]/.test(a))return`property`}function nS(e,t){let n=[],r=0;for(let i of e.matchAll($x)){let a=i[0],o=i.index??0;r<o&&n.push(e.slice(r,o));let s=tS(a,e,o,t);n.push(s?(0,h.jsx)(`span`,{className:Yx[s],children:a},`${o}-${a}`):(0,h.jsx)(m.Fragment,{children:a},`${o}-${a}`)),r=o+a.length}return r<e.length&&n.push(e.slice(r)),n}var rS={duration:Z.duration.standard,ease:[...Z.ease.enter]},iS={duration:Z.duration.instant,ease:[...Z.ease.standard]};function aS({value:e,reduced:t}){return(0,h.jsx)(V,{initial:!1,children:(0,h.jsx)(U.span,{className:Yx.swapText,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:iS},transition:t?{duration:0}:rS,children:e},e)})}function oS({name:e,reduced:t}){let n=(0,m.useRef)(null),r=(0,m.useRef)(0),i=Rf(`auto`);return(0,m.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(()=>{r.current=e.offsetWidth});return t.observe(e),()=>t.disconnect()},[]),(0,m.useLayoutEffect)(()=>{let e=i.get(),a=n.current?.offsetWidth??0,o=typeof e==`number`?e:r.current;if(r.current=a,t||!o||!a||Math.abs(o-a)<1){i.jump(`auto`);return}i.jump(o);let s=sp(i,a,{...Z.spring.morph,onComplete:()=>i.jump(`auto`)});return()=>s.stop()},[e,t,i]),(0,h.jsxs)(U.span,{className:`${Yx.swap} ${Yx.filename}`,style:{width:i},children:[(0,h.jsx)(`span`,{ref:n,className:Yx.sizer,"aria-hidden":`true`,children:e}),(0,h.jsx)(`span`,{className:Yx.swapStack,"aria-hidden":`true`,children:(0,h.jsx)(aS,{value:e,reduced:t})}),(0,h.jsx)(`span`,{className:Yx.srOnly,children:e})]})}function sS({code:e,filename:t,language:n=`tsx`,maxLines:r}){let i=eS(n),a=H()??!1,o=(0,m.useId)(),s=e.split(`
|
|
15
|
+
`).length,c=r!=null&&r>0&&s>r,[l,u]=(0,m.useState)(!1),d=!c||l,f=(0,m.useRef)(null),p=(0,m.useRef)(null),g=Rf(d?`auto`:`var(--code-collapsed)`),_=(0,m.useRef)({open:d,reduced:a}),v=(0,m.useRef)(()=>{});(0,m.useLayoutEffect)(()=>{let e=f.current;if(!e)return;let t=e=>{let t=p.current;if(!t)return;let n=_.current.open?t.full:t.collapsed;e||_.current.reduced||typeof g.get()!=`number`?g.jump(n):sp(g,n,Z.spring.smooth)},n=new ResizeObserver(()=>{let n=getComputedStyle(e),i=e.offsetHeight,a=r?Math.min(i,Math.round(r*parseFloat(n.lineHeight)+parseFloat(n.paddingTop)+parseFloat(n.paddingBottom))):i,o=!p.current;p.current={full:i,collapsed:a},t(o)});return n.observe(e),v.current=t,()=>n.disconnect()},[g,r]),(0,m.useLayoutEffect)(()=>{_.current={open:d,reduced:a},v.current(!1)},[d,a]);let y=[`Show all ${s} lines`,`Show fewer lines`];return(0,h.jsxs)(`section`,{className:Yx.block,"aria-label":t?`${t} source code`:`${i} source code`,style:r?{"--code-lines":r}:void 0,children:[(0,h.jsxs)(`header`,{className:Yx.header,children:[(0,h.jsxs)(`div`,{className:Yx.file,children:[(0,h.jsx)(Pb,{size:16,strokeWidth:1.75,"aria-hidden":`true`}),(0,h.jsx)(oS,{name:t??`Source code`,reduced:a}),(0,h.jsx)(`span`,{className:Yx.language,children:i})]}),(0,h.jsx)(Jx,{value:e,label:`Copy code`})]}),(0,h.jsx)(U.div,{className:Yx.viewport,style:{height:g},children:(0,h.jsx)(`pre`,{ref:f,id:o,className:Yx.pre,tabIndex:0,"aria-label":`Selectable source code`,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,children:(0,h.jsx)(U.code,{className:Yx.code,initial:!a&&{opacity:0,y:4},animate:{opacity:1,y:0},exit:a?{opacity:0,transition:{duration:0}}:{opacity:0,transition:iS},transition:a?{duration:0}:rS,children:nS(e,i)},e)})})}),c&&(0,h.jsxs)(`button`,{type:`button`,className:Yx.expand,"aria-expanded":l,"aria-controls":o,onClick:()=>u(e=>!e),children:[(0,h.jsxs)(`span`,{className:Yx.swap,"aria-hidden":`true`,children:[y.map(e=>(0,h.jsx)(`span`,{className:Yx.reserve,children:e},e)),(0,h.jsx)(`span`,{className:Yx.swapStack,children:(0,h.jsx)(aS,{value:y[+!!l],reduced:a})})]}),(0,h.jsx)(`span`,{className:Yx.srOnly,children:y[+!!l]}),(0,h.jsx)(U.span,{className:Yx.chevron,"aria-hidden":`true`,initial:!1,animate:{rotate:l?180:0},transition:a?{duration:0}:Z.spring.snappy,children:(0,h.jsx)(wb,{size:16,strokeWidth:1.75})})]})]})}var cS={root:`_root_1uufz_1`,icon:`_icon_1uufz_2`,"empty-state-icon":`_empty-state-icon_1uufz_1`,glyph:`_glyph_1uufz_3`,frame:`_frame_1uufz_4`,copy:`_copy_1uufz_5`,line:`_line_1uufz_9`,action:`_action_1uufz_10`},lS={duration:Z.duration.fast,ease:[...Z.ease.standard]},uS={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},dS={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:lS},fS={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},pS={opacity:1,y:`0em`,scale:1,filter:`blur(0px)`},mS={opacity:0,transition:{duration:Z.duration.instant}};function hS(e){let t=Fu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function gS(e){if(!(0,m.isValidElement)(e))return`icon`;let t=e.type;return typeof t==`string`?t:t.displayName??t.name??`icon`}function _S({reduce:e,morphKey:t,children:n}){let r=(0,m.useRef)(null),i=(0,m.useRef)(null),a=Rf(`auto`),o=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{o.current=performance.now()},[t]),(0,m.useEffect)(()=>{let t=i.current;if(!t||typeof ResizeObserver>`u`)return;let n,s,c=()=>{a.jump(`auto`),r.current&&Object.assign(r.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([i])=>{let l=i.borderBoxSize?.[0]?.blockSize??t.offsetHeight,u=a.get(),d=typeof u==`number`?u:n;if(n=l,s?.stop(),e||d===void 0||d===l||performance.now()-o.current>120)return c();r.current&&Object.assign(r.current.style,{overflow:`hidden`,height:`${d}px`}),s=sp(a,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(t),()=>{l.disconnect(),s?.stop()}},[a,e]),(0,h.jsx)(U.div,{ref:r,className:cS.frame,style:{height:a},children:(0,h.jsx)(`div`,{ref:i,className:cS.copy,children:n})})}function vS({title:e,description:t,action:n,icon:r,className:i,label:a}){let o=H(),s=r??(0,h.jsx)(Ib,{width:24,height:24,strokeWidth:1.5}),c=o?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},l={initial:o?{opacity:0}:uS,animate:pS,exit:o?mS:dS,transition:c};return(0,h.jsxs)(`section`,{className:[cS.root,i].filter(Boolean).join(` `),"aria-label":a,children:[(0,h.jsx)(`div`,{className:cS.icon,"aria-hidden":`true`,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(hS,{className:cS.glyph,initial:o?{opacity:0}:fS,animate:pS,exit:o?mS:{...fS,transition:lS},transition:o?c:Z.spring.snappy,children:s},gS(s))})}),(0,h.jsxs)(_S,{reduce:o,morphKey:`${e}\n${t}`,children:[(0,h.jsx)(`h3`,{children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(hS,{className:cS.line,...l,children:e},e)})}),(0,h.jsx)(`p`,{children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(hS,{className:cS.line,...l,children:t},t)})})]}),n&&(0,h.jsx)(`div`,{className:cS.action,children:n})]})}var yS={field:`_field_6ayfd_1`,label:`_label_6ayfd_2`,input:`_input_6ayfd_4`,messageSlot:`_messageSlot_6ayfd_11`,description:`_description_6ayfd_12`,error:`_error_6ayfd_12`,words:`_words_6ayfd_15`,word:`_word_6ayfd_15`,column:`_column_6ayfd_18`,srOnly:`_srOnly_6ayfd_20`},bS={enter:e=>({opacity:0,y:`${e*.6}em`,filter:`blur(${Z.blur.subtle}px)`}),center:{opacity:1,y:0,filter:`blur(0px)`},exit:e=>({opacity:0,y:`${e*-.6}em`,filter:`blur(${Z.blur.subtle}px)`})},xS=e=>/^\d[\d.,/:]*%?$/.test(e);function SS({word:e}){let t=H(),[n,r]=(0,m.useState)({word:e,direction:1});n.word!==e&&r({word:e,direction:parseFloat(e.replace(/,/g,``))<parseFloat(n.word.replace(/,/g,``))?-1:1});let i=e.split(``),a=t?{duration:0}:{y:Z.spring.snappy,width:Z.spring.morph,opacity:{duration:Z.duration.fast},filter:{duration:Z.duration.fast}};return(0,h.jsx)(V,{initial:!1,children:i.map((e,t)=>(0,h.jsx)(U.span,{className:yS.column,initial:{width:0,opacity:0},animate:{width:`auto`,opacity:1},exit:{width:0,opacity:0},transition:a,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,custom:n.direction,children:(0,h.jsx)(U.span,{custom:n.direction,variants:bS,initial:`enter`,animate:`center`,exit:`exit`,transition:a,children:e},e)})},i.length-t))})}function CS({text:e}){let t=H(),n=e.split(` `);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:yS.srOnly,children:e}),(0,h.jsx)(`span`,{className:yS.words,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,children:n.map((e,r)=>(0,h.jsxs)(U.span,{className:yS.word,initial:t?{opacity:0}:{opacity:0,y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.35em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.exit,ease:[...Z.ease.standard]}},transition:t?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:[xS(e)?(0,h.jsx)(SS,{word:e}):e,r<n.length-1?` `:null]},`${r}:${xS(e)?`#`:e}`))})})]})}function wS({id:e,text:t,className:n,alert:r}){return(0,h.jsx)(V,{initial:!1,children:t?(0,h.jsx)(TS,{id:e,text:t,className:n,alert:r},`message`):null})}function TS({id:e,text:t,className:n,alert:r}){let i=H(),a=(0,m.useRef)(null),[o,s]=(0,m.useState)(`auto`);return(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(([t])=>s(t.borderBoxSize?.[0]?.blockSize??e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),(0,h.jsx)(U.span,{className:yS.messageSlot,initial:!i&&{height:0,opacity:0},animate:{height:o,opacity:1},exit:{height:0,opacity:0,transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.instant}}},transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.fast}},children:(0,h.jsx)(U.span,{ref:a,id:e,className:n,role:r?`alert`:void 0,initial:!i&&{y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{y:0,filter:`blur(0px)`},transition:{duration:i?0:Z.duration.standard,ease:[...Z.ease.enter]},children:(0,h.jsx)(CS,{text:t})})})}var ES=(0,m.forwardRef)(function({label:e,description:t,error:n,id:r,className:i,...a},o){let s=(0,m.useId)(),c=r??s,l=t?`${c}-description`:void 0,u=n?`${c}-error`:void 0,d=[a[`aria-describedby`],l,u].filter(Boolean).join(` `)||void 0;return(0,h.jsxs)(`div`,{className:yS.field,children:[(0,h.jsx)(`label`,{className:yS.label,htmlFor:c,children:e}),(0,h.jsx)(`input`,{...a,id:c,ref:o,className:[yS.input,i].filter(Boolean).join(` `),"aria-invalid":n?!0:a[`aria-invalid`],"aria-describedby":d}),(0,h.jsx)(wS,{id:l,text:t,className:yS.description}),(0,h.jsx)(wS,{id:u,text:n,className:yS.error,alert:!0})]})});ES.displayName=`Input`;var DS={field:`_field_1t891_1`,shell:`_shell_1t891_4`,input:`_input_1t891_10`,clearSlot:`_clearSlot_1t891_14`},OS=(0,m.forwardRef)(function({label:e,value:t,onValueChange:n,clearLabel:r=`Clear search`,id:i,className:a,...o},s){let c=(0,m.useId)(),l=i??c,u=H(),d=(0,m.useRef)(null),f=e=>{d.current=e,typeof s==`function`?s(e):s&&(s.current=e)};function p(){n(``),d.current?.focus()}return(0,h.jsxs)(`div`,{className:DS.field,children:[(0,h.jsx)(`label`,{htmlFor:l,children:e}),(0,h.jsxs)(`div`,{className:DS.shell,"data-filled":t?`true`:void 0,children:[(0,h.jsx)(Hb,{width:18,height:18,"aria-hidden":`true`}),(0,h.jsx)(`input`,{...o,ref:f,id:l,type:`search`,value:t,onChange:e=>n(e.target.value),className:[DS.input,a].filter(Boolean).join(` `)}),(0,h.jsx)(`span`,{className:DS.clearSlot,children:(0,h.jsx)(V,{initial:!1,children:t?(0,h.jsx)(U.button,{type:`button`,tabIndex:0,onClick:p,"aria-label":r,initial:u?{opacity:0}:{opacity:0,scale:.8,filter:`blur(${Z.blur.subtle}px)`},animate:{opacity:1,scale:1,filter:`blur(0px)`},exit:u?{opacity:0,transition:{duration:0}}:{opacity:0,scale:.8,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},whileTap:u?void 0:{scale:.96,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},transition:u?{duration:Z.duration.instant}:{...Z.spring.snappy,opacity:{duration:Z.duration.fast},filter:{duration:Z.duration.fast}},children:(0,h.jsx)(Jb,{width:16,height:16,"aria-hidden":`true`})},`clear`):null})})]})]})}),kS={root:`_root_1ftc5_1`,track:`_track_1ftc5_3`,button:`_button_1ftc5_8`,selection:`_selection_1ftc5_11`,label:`_label_1ftc5_12`};function AS({options:e,value:t,onValueChange:n,label:r,onOptionIntent:i,className:a}){let o=(0,m.useId)(),s=H(),c=(0,m.useRef)(null);(0,m.useLayoutEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.scrollWidth-e.clientWidth-e.scrollLeft;e.toggleAttribute(`data-fade-start`,e.scrollLeft>1),e.toggleAttribute(`data-fade-end`,t>1)};t(),e.addEventListener(`scroll`,t,{passive:!0});let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),()=>{e.removeEventListener(`scroll`,t),n?.disconnect()}},[e.length]);let l=(0,m.useRef)(!0);(0,m.useEffect)(()=>{let e=c.current,t=e?.querySelector(`[aria-pressed="true"]`);if(!e||!t||e.scrollWidth<=e.clientWidth){l.current=!1;return}let n=t.offsetLeft-20,r=t.offsetLeft+t.offsetWidth+20-e.clientWidth,i=e.scrollLeft>n?n:e.scrollLeft<r?r:e.scrollLeft;i!==e.scrollLeft&&e.scrollTo({left:Math.max(0,i),behavior:l.current||s?`auto`:`smooth`}),l.current=!1},[t,s]);let u=Math.max(0,e.findIndex(e=>e.value===t)),d=t=>{let r=e.length-1,i=t.key===`ArrowRight`||t.key===`ArrowDown`?u===r?0:u+1:t.key===`ArrowLeft`||t.key===`ArrowUp`?u===0?r:u-1:t.key===`Home`?0:t.key===`End`?r:-1;i<0||!e[i]||(t.preventDefault(),n(e[i].value),c.current?.querySelector(`[data-value="${CSS.escape(e[i].value)}"]`)?.focus({preventScroll:!0}))};return(0,h.jsx)(`div`,{className:`${kS.root} ${a??``}`,role:`group`,"aria-label":r,children:(0,h.jsx)(Wu,{id:o,children:(0,h.jsx)(U.div,{ref:c,layoutScroll:!0,className:kS.track,children:e.map((e,r)=>(0,h.jsxs)(`button`,{id:`${o}-${e.value}`,className:kS.button,type:`button`,"data-value":e.value,"aria-pressed":t===e.value,tabIndex:r===u?0:-1,onClick:()=>n(e.value),onKeyDown:d,onPointerEnter:i?()=>i(e.value):void 0,onFocus:i?()=>i(e.value):void 0,children:[t===e.value&&(0,h.jsx)(U.span,{className:kS.selection,layoutId:`selection`,layoutDependency:t,transition:s?{duration:0}:Z.spring.morph,"aria-hidden":`true`}),(0,h.jsxs)(`span`,{className:kS.label,children:[e.label,e.accessory]})]},e.value))})})})}var jS={root:`_root_zuvxk_1`,avatar:`_avatar_zuvxk_3`,line:`_line_zuvxk_3`,"skeleton-pulse":`_skeleton-pulse_zuvxk_1`,lines:`_lines_zuvxk_5`,frame:`_frame_zuvxk_9`};function MS({className:e,busy:t,reduce:n,children:r}){let i=(0,m.useRef)(null),a=(0,m.useRef)(null),o=Rf(`auto`),s=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{s.current=performance.now()},[t]),(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t,r,c=()=>{o.jump(`auto`),i.current&&Object.assign(i.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([a])=>{let l=a.borderBoxSize?.[0]?.blockSize??e.offsetHeight,u=o.get(),d=typeof u==`number`?u:t;if(t=l,r?.stop(),n||d===void 0||d===l||performance.now()-s.current>120)return c();i.current&&Object.assign(i.current.style,{overflow:`hidden`,height:`${d}px`}),r=sp(o,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(e),()=>{l.disconnect(),r?.stop()}},[o,n]),(0,h.jsx)(U.div,{ref:i,className:e,"aria-busy":t,style:{height:o},children:(0,h.jsx)(`div`,{ref:a,className:jS.frame,children:r})})}function NS({label:e=`Loading content`,lines:t=3,avatar:n=!1,className:r,children:i,loading:a=!0}){let o=H(),s=Math.min(Math.max(Math.floor(t),1),6),c=t=>(0,h.jsxs)(`div`,{className:[jS.root,t].filter(Boolean).join(` `),role:`status`,"aria-label":e,"aria-busy":`true`,children:[n&&(0,h.jsx)(`span`,{className:jS.avatar,"aria-hidden":`true`}),(0,h.jsx)(`span`,{className:jS.lines,"aria-hidden":`true`,children:Array.from({length:s},(e,t)=>(0,h.jsx)(`span`,{className:jS.line,style:{"--index":t+ +!!n}},t))})]});return i===void 0?c(r):(0,h.jsx)(MS,{className:r,busy:a,reduce:o,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:a?(0,h.jsx)(U.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:o?Z.duration.instant:Z.duration.fast,ease:[...Z.ease.standard]},exit:{opacity:0,transition:{duration:o?Z.duration.instant:Z.duration.fast}},children:c()},`placeholder`):(0,h.jsx)(U.div,{initial:o?{opacity:0}:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,transition:{duration:o?Z.duration.instant:Z.duration.fast}},transition:{duration:o?Z.duration.instant:Z.duration.standard,ease:[...Z.ease.enter]},children:i},`content`)})})}var PS=Object.defineProperty,FS=(e,t)=>PS(e,`name`,{value:t,configurable:!0});function IS(e){let[t,n]=m.useState(void 0);return Y(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=0,r=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;let i=r[0];window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>{let t,r;if(`borderBoxSize`in i){let e=i.borderBoxSize,n=Array.isArray(e)?e[0]:e;t=n.inlineSize,r=n.blockSize}else t=e.offsetWidth,r=e.offsetHeight;n({width:t,height:r})})});return r.observe(e,{box:`border-box`}),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}n(void 0)},[e]),t}FS(IS,`useSize`);var LS=Object.defineProperty,RS=(e,t)=>LS(e,`name`,{value:t,configurable:!0}),zS=`Switch`,[BS,VS]=U_(zS),[HS,US]=BS(zS);function WS(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=Bv({prop:n,defaultProp:i??!1,onChange:c,caller:zS}),[g,_]=m.useState(null),[v,y]=m.useState(null),b=m.useRef(!1),[x,S]=m.useReducer(e=>e+1,0),C={checked:f,setChecked:p,disabled:a,control:g,setControl:_,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:b,userInteractionCount:x,onUserInteraction:S,required:l,defaultChecked:i,isFormControl:!g||!!o||!!g.closest(`form`),bubbleInput:v,setBubbleInput:y};return(0,h.jsx)(HS,{scope:t,...C,children:XS(d)?d(C):r})}RS(WS,`SwitchProvider`);var GS=`SwitchTrigger`,KS=m.forwardRef(RS(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,form:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:g,bubbleInput:_}=US(GS,e),v=q(r,u),y=m.useRef(c);return m.useEffect(()=>{let e=a?i?.ownerDocument.getElementById(a):i?.form;if(e instanceof HTMLFormElement){let t=RS(()=>d(y.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[i,a,d]),(0,h.jsx)(X.button,{type:`button`,role:`switch`,"aria-checked":c,"aria-required":l,"data-state":ZS(c),"data-disabled":s?``:void 0,disabled:s,value:o,...n,ref:v,onClick:J(t,e=>{p(),d(e=>!e),_&&g&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`SwitchTrigger`)),qS=m.forwardRef(RS(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,h.jsx)(WS,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(KS,{...d,ref:t,__scopeSwitch:n}),e&&(0,h.jsx)(YS,{__scopeSwitch:n})]})})},`Switch`)),JS=`SwitchBubbleInput`,YS=m.forwardRef(RS(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:g,setBubbleInput:_}=US(JS,e),v=q(r,_),y=IS(i),b=m.useRef(!1),x=m.useRef(s),S=m.useRef(o);m.useEffect(()=>{let e=g;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==S.current;S.current=o;let i=x.current!==s;x.current=s;let c=!(r&&a.current);if(i&&n){b.current=!r;let t=new Event(`click`,{bubbles:c});n.call(e,s),e.dispatchEvent(t),b.current=!1}},[g,s,a,o]);let C=m.useRef(s);return(0,h.jsx)(X.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??C.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:v,onClick:J(t,e=>{b.current&&e.stopPropagation()}),style:{...n.style,...y,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function XS(e){return typeof e==`function`}RS(XS,`isFunction`);function ZS(e){return e?`checked`:`unchecked`}RS(ZS,`getState`);var QS={switch:`_switch_ktcw0_1`,track:`_track_ktcw0_4`,thumb:`_thumb_ktcw0_7`,label:`_label_ktcw0_11`},$S=18,eC=18,tC=5,nC={type:`spring`,visualDuration:.3,bounce:0},rC=(0,m.forwardRef)(function({label:e,className:t,checked:n,defaultChecked:r,onCheckedChange:i,onPointerDown:a,onPointerUp:o,onPointerLeave:s,onPointerCancel:c,onKeyDown:l,onKeyUp:u,onBlur:d,...f},p){let g=H(),[_,v]=(0,m.useState)(r??!1),[y,b]=(0,m.useState)(!1),x=n??_,S=Rf(1),C=(0,m.useRef)(x),w=(0,m.useRef)(-1/0);(0,m.useEffect)(()=>{if(C.current===x)return;C.current=x;let e=performance.now()-w.current<250;if(g||e)return;let t=sp(S,[1,1.16,1],{duration:.34,times:[0,.4,1],ease:[`easeOut`,`easeInOut`]});return()=>t.stop()},[x,g,S]);let T=y&&!g&&!f.disabled?tC:0,E=[QS.switch,t].filter(Boolean).join(` `);return(0,h.jsxs)(qS,{...f,ref:p,checked:x,onCheckedChange:e=>{n===void 0&&v(e),i?.(e)},onPointerDown:e=>{a?.(e),e.button===0&&b(!0)},onPointerUp:e=>{o?.(e),y&&!f.disabled&&(w.current=performance.now()),b(!1)},onPointerLeave:e=>{s?.(e),b(!1)},onPointerCancel:e=>{c?.(e),b(!1)},onKeyDown:e=>{l?.(e),e.key===` `&&b(!0)},onKeyUp:e=>{u?.(e),y&&!f.disabled&&(w.current=performance.now()),b(!1)},onBlur:e=>{d?.(e),b(!1)},className:E,"aria-label":f[`aria-label`]??e,children:[(0,h.jsx)(`span`,{className:QS.track,children:(0,h.jsx)(U.span,{className:QS.thumb,style:{scaleX:S},initial:!1,animate:{x:x?eC-T:0,width:$S+T},transition:g?{duration:0}:{x:nC,width:Z.spring.snappy}})}),e?(0,h.jsx)(`span`,{className:QS.label,children:e}):null]})});rC.displayName=`Switch`;var iC={field:`_field_mxljp_1`,control:`_control_mxljp_4`,messageSlot:`_messageSlot_mxljp_11`,hint:`_hint_mxljp_12`,error:`_error_mxljp_12`,words:`_words_mxljp_15`,word:`_word_mxljp_15`,column:`_column_mxljp_18`,srOnly:`_srOnly_mxljp_20`},aC={enter:e=>({opacity:0,y:`${e*.6}em`,filter:`blur(${Z.blur.subtle}px)`}),center:{opacity:1,y:0,filter:`blur(0px)`},exit:e=>({opacity:0,y:`${e*-.6}em`,filter:`blur(${Z.blur.subtle}px)`})},oC=e=>/^\d[\d.,/:]*%?$/.test(e);function sC({word:e}){let t=H(),[n,r]=(0,m.useState)({word:e,direction:1});n.word!==e&&r({word:e,direction:parseFloat(e.replace(/,/g,``))<parseFloat(n.word.replace(/,/g,``))?-1:1});let i=e.split(``),a=t?{duration:0}:{y:Z.spring.snappy,width:Z.spring.morph,opacity:{duration:Z.duration.fast},filter:{duration:Z.duration.fast}};return(0,h.jsx)(V,{initial:!1,children:i.map((e,t)=>(0,h.jsx)(U.span,{className:iC.column,initial:{width:0,opacity:0},animate:{width:`auto`,opacity:1},exit:{width:0,opacity:0},transition:a,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,custom:n.direction,children:(0,h.jsx)(U.span,{custom:n.direction,variants:aC,initial:`enter`,animate:`center`,exit:`exit`,transition:a,children:e},e)})},i.length-t))})}function cC({text:e}){let t=H(),n=e.split(` `);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:iC.srOnly,children:e}),(0,h.jsx)(`span`,{className:iC.words,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,mode:`popLayout`,children:n.map((e,r)=>(0,h.jsxs)(U.span,{className:iC.word,initial:t?{opacity:0}:{opacity:0,y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.35em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},transition:t?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:[oC(e)?(0,h.jsx)(sC,{word:e}):e,r<n.length-1?` `:null]},`${r}:${oC(e)?`#`:e}`))})})]})}function lC({id:e,text:t,className:n,alert:r}){return(0,h.jsx)(V,{initial:!1,children:t?(0,h.jsx)(uC,{id:e,text:t,className:n,alert:r},`message`):null})}function uC({id:e,text:t,className:n,alert:r}){let i=H(),a=(0,m.useRef)(null),[o,s]=(0,m.useState)(`auto`);return(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(([t])=>s(t.borderBoxSize?.[0]?.blockSize??e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),(0,h.jsx)(U.span,{className:iC.messageSlot,initial:!i&&{height:0,opacity:0},animate:{height:o,opacity:1},exit:{height:0,opacity:0,transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.instant}}},transition:i?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.fast}},children:(0,h.jsx)(U.span,{ref:a,id:e,className:n,role:r?`alert`:void 0,initial:!i&&{y:`0.35em`,filter:`blur(${Z.blur.soft}px)`},animate:{y:0,filter:`blur(0px)`},transition:{duration:i?0:Z.duration.standard,ease:[...Z.ease.enter]},children:(0,h.jsx)(cC,{text:t})})})}var dC=(0,m.forwardRef)(function({label:e,description:t,error:n,id:r,className:i,...a},o){let s=(0,m.useId)(),c=r??s,l=t?`${c}-description`:void 0,u=n?`${c}-error`:void 0;return(0,h.jsxs)(`div`,{className:iC.field,children:[(0,h.jsx)(`label`,{htmlFor:c,children:e}),(0,h.jsx)(`textarea`,{...a,id:c,ref:o,className:[iC.control,i].filter(Boolean).join(` `),"aria-invalid":n?!0:a[`aria-invalid`],"aria-describedby":[a[`aria-describedby`],l,u].filter(Boolean).join(` `)||void 0}),(0,h.jsx)(lC,{id:l,text:t,className:iC.hint}),(0,h.jsx)(lC,{id:u,text:n,className:iC.error,alert:!0})]})}),fC=(0,m.createContext)(null);function pC(e,t){let n=(0,m.useContext)(fC);return{field:n,label:e??n?.label??t??``,hidden:e===void 0&&n===null}}function mC({label:e,hint:t,error:n,children:r,className:i}){let a=typeof t==`string`?t:void 0;return(0,h.jsxs)(`div`,{className:gg(`flex min-w-0 flex-col`,i),children:[(0,h.jsx)(fC.Provider,{value:{label:e,description:a,error:n},children:r}),t!==void 0&&a===void 0&&!n&&(0,h.jsx)(`div`,{className:`mt-2 text-[11px] text-[var(--text-muted)]`,children:t})]})}var hC={primary:`primary`,glass:`secondary`,plain:`ghost`,destructive:`danger`},gC=(0,m.forwardRef)(function({variant:e=`glass`,size:t=`md`,icon:n,children:r,style:i,type:a=`button`,...o},s){let c=r==null||r===!1,l={...e===`primary`&&{background:`var(--accent)`,borderColor:`var(--accent)`,color:`var(--on-accent)`},...c&&{paddingInline:0,width:t===`sm`?`var(--control-height-sm)`:`var(--control-height-md)`},...i};return(0,h.jsxs)(Ox,{ref:s,type:a,variant:hC[e],size:t,style:l,...o,children:[n,r]})});function _C({items:e,value:t,onChange:n,className:r,ariaLabel:i}){return(0,h.jsx)(AS,{className:r,label:i,value:t,onValueChange:e=>n(e),options:e.map(e=>({value:e.value,label:e.label,accessory:e.accessory}))})}function vC({checked:e,onChange:t,disabled:n,label:r}){return(0,h.jsx)(rC,{checked:e,onCheckedChange:t,disabled:n,"aria-label":r,onClick:e=>e.stopPropagation()})}function yC({title:e,footer:t,children:n,className:r}){return(0,h.jsxs)(`section`,{className:gg(`mb-5`,r),children:[e&&(0,h.jsx)(`h3`,{className:`mb-2 px-1 text-[12px] font-medium text-[var(--text-secondary)]`,children:e}),(0,h.jsx)(`div`,{className:`card divide-y divide-[var(--border)]`,children:n}),t&&(0,h.jsx)(`p`,{className:`mt-2 px-1 text-[11px] text-[var(--text-muted)]`,children:t})]})}function bC({label:e,detail:t,icon:n,children:r,onClick:i,selected:a,className:o}){return(0,h.jsxs)(`div`,{...i?{role:`button`,tabIndex:0,onClick:i,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())}}:{},className:gg(`flex min-h-11 w-full items-center gap-3 px-4 py-2 text-left`,i&&`cursor-default transition-colors hover:bg-[var(--surface-muted)]`,a&&`bg-[var(--accent-subtle)]`,o),children:[n,(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`div`,{className:`truncate text-[13px]`,children:e}),t&&(0,h.jsx)(`div`,{className:`truncate text-[11px] text-[var(--text-secondary)]`,children:t})]}),r!==void 0&&(0,h.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:r})]})}var xC={fontFamily:`var(--font-mono)`,fontSize:`12px`},SC=(0,m.forwardRef)(function({className:e,invalid:t,label:n,mono:r,style:i,...a},o){let s=pC(n,a[`aria-label`]??a.placeholder);return(0,h.jsx)(`div`,{className:gg(`min-w-0`,s.hidden&&`astra-label-hidden`,e),children:(0,h.jsx)(ES,{ref:o,label:s.label,description:s.field?.description,error:s.field?.error,"aria-invalid":t||void 0,style:r?{...xC,...i}:i,...a})})}),CC=(0,m.forwardRef)(function({className:e,invalid:t,label:n,mono:r,style:i,...a},o){let s=pC(n,a[`aria-label`]??a.placeholder);return(0,h.jsx)(`div`,{className:gg(`min-w-0`,s.hidden&&`astra-label-hidden`,e),children:(0,h.jsx)(dC,{ref:o,label:s.label,description:s.field?.description,error:s.field?.error,"aria-invalid":t||void 0,style:r?{...xC,...i}:i,...a})})});function wC({value:e,onChange:t,className:n,placeholder:r,step:i,min:a,label:o}){return(0,h.jsx)(SC,{type:`number`,inputMode:`decimal`,step:i??`any`,min:a,"aria-label":o,placeholder:r,className:n,style:{fontVariantNumeric:`tabular-nums`,textAlign:`right`},value:e??``,onChange:e=>{let n=e.target.value;if(n===``)return t(null);let r=Number(n);Number.isNaN(r)||t(r)}})}function TC({value:e,onChange:t,placeholder:n,inputRef:r,className:i,clearLabel:a}){return(0,h.jsx)(`div`,{className:gg(`astra-label-hidden min-w-0`,i),children:(0,h.jsx)(OS,{ref:r,label:n??`Search`,placeholder:n,value:e,onValueChange:t,clearLabel:a})})}var EC={neutral:`neutral`,accent:`info`,green:`success`,orange:`warning`,red:`danger`};function DC({tone:e=`neutral`,children:t,className:n,title:r}){return(0,h.jsx)(mx,{tone:EC[e],size:`sm`,className:gg(`shrink-0`,n),title:r,children:t})}function OC({tone:e}){let t={green:`var(--success)`,orange:`var(--warning)`,red:`var(--danger)`,neutral:`var(--text-muted)`}[e];return(0,h.jsx)(`span`,{className:`inline-block size-2 shrink-0 rounded-full`,style:{background:t}})}function kC({children:e,size:t=20,className:n}){return(0,h.jsx)(`span`,{className:gg(`inline-flex shrink-0 items-center justify-center text-[var(--text-secondary)]`,n),style:{width:t,height:t},children:e})}function AC({label:e,children:t,mono:n}){return(0,h.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 py-1 text-[12px]`,children:[(0,h.jsx)(`span`,{className:`shrink-0 text-[var(--text-secondary)]`,children:e}),(0,h.jsx)(`span`,{className:gg(`min-w-0 truncate text-right selectable`,n&&`font-mono text-[11px]`),children:t})]})}function jC({children:e,maxHeight:t=320,language:n=`json`,filename:r}){return(0,h.jsx)(sS,{code:e,language:n,filename:r,maxLines:Math.max(4,Math.round(t/22))})}function MC({className:e,lines:t=2}){return(0,h.jsx)(NS,{className:e,lines:t})}function NC({icon:e,title:t,detail:n,action:r}){return(0,h.jsx)(`div`,{className:`px-6 py-12`,children:(0,h.jsx)(vS,{icon:e,title:t,description:n??``,action:r})})}function PC({children:e,action:t}){return(0,h.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2 px-1`,children:[(0,h.jsx)(`h2`,{className:`text-[13px] font-medium`,children:e}),t]})}function FC({title:e,action:t,children:n,className:r}){return(0,h.jsxs)(`section`,{className:r,children:[(0,h.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,h.jsx)(`h3`,{className:`text-[12px] font-medium text-[var(--text-secondary)]`,children:e}),t]}),n]})}var IC={presence:`_presence_1m2d3_1`,alert:`_alert_1m2d3_2`,icon:`_icon_1m2d3_3`,glyph:`_glyph_1m2d3_3`,copy:`_copy_1m2d3_6`,content:`_content_1m2d3_7`,title:`_title_1m2d3_8`,line:`_line_1m2d3_9`,description:`_description_1m2d3_10`,info:`_info_1m2d3_11`,success:`_success_1m2d3_11`,warning:`_warning_1m2d3_11`,danger:`_danger_1m2d3_11`,dismiss:`_dismiss_1m2d3_12`},LC={info:Rb,success:Sb,warning:Kb,danger:Ab},RC={duration:Z.duration.fast,ease:[...Z.ease.standard]},zC={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},BC={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:RC},VC={opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},HC={opacity:1,y:`0em`,scale:1,filter:`blur(0px)`},UC={opacity:0,transition:{duration:Z.duration.instant}};function WC(e){let t=Fu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function GC({className:e,reduce:t,morphKey:n,children:r}){let i=(0,m.useRef)(null),a=(0,m.useRef)(null),o=Rf(`auto`),s=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{s.current=performance.now()},[n]),(0,m.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let n,r,c=()=>{o.jump(`auto`),i.current&&Object.assign(i.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([a])=>{let l=a.borderBoxSize?.[0]?.blockSize??e.offsetHeight,u=o.get(),d=typeof u==`number`?u:n;if(n=l,r?.stop(),t||d===void 0||d===l||performance.now()-s.current>120)return c();i.current&&Object.assign(i.current.style,{overflow:`hidden`,height:`${d}px`}),r=sp(o,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(e),()=>{l.disconnect(),r?.stop()}},[o,t]),(0,h.jsx)(U.div,{ref:i,className:e,style:{height:o},children:(0,h.jsx)(`div`,{ref:a,className:IC.content,children:r})})}function KC({tone:e=`info`,title:t,children:n,className:r,reduce:i,onDismiss:a,animateIcon:o=!1,...s}){let c=LC[e],l=typeof n==`string`||typeof n==`number`?String(n):null,u=n!=null&&n!==!1&&n!==``,d=i?{duration:Z.duration.instant}:{duration:Z.duration.standard,ease:[...Z.ease.enter]},f={initial:i?{opacity:0}:zC,animate:HC,exit:i?UC:BC,transition:d};return(0,h.jsxs)(`div`,{...s,className:[IC.alert,IC[e],r].filter(Boolean).join(` `),role:e===`danger`?`alert`:`status`,children:[(0,h.jsx)(U.span,{className:IC.icon,initial:o&&!i?VC:!1,animate:HC,transition:Z.spring.snappy,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(WC,{className:IC.glyph,initial:i?{opacity:0}:VC,animate:HC,exit:i?UC:{...VC,transition:RC},transition:i?d:Z.spring.snappy,children:(0,h.jsx)(c,{width:18,height:18,"aria-hidden":`true`})},e)})}),(0,h.jsxs)(GC,{className:IC.copy,reduce:i,morphKey:`${t}\n${u}\n${l??``}`,children:[(0,h.jsx)(`strong`,{className:IC.title,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(WC,{className:IC.line,...f,children:t},t)})}),(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:u&&(0,h.jsx)(U.p,{className:IC.description,...f,children:l===null?n:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(WC,{className:IC.line,...f,children:l},l)})},`details`)})]}),a&&(0,h.jsx)(`button`,{type:`button`,className:IC.dismiss,"aria-label":`Dismiss: ${t}`,onClick:a,children:(0,h.jsx)(Jb,{width:16,height:16,strokeWidth:1.75,"aria-hidden":`true`})})]})}function qC({open:e,onDismiss:t,...n}){let r=H(),[i,a]=(0,m.useState)(!1),o=(0,m.useRef)(null),s=e=>{o.current&&(o.current.style.overflow=e)};if(e===void 0&&!t)return(0,h.jsx)(KC,{...n,reduce:r});let c=e??!i,l=t&&(()=>e===void 0?a(!0):t()),u=r?{duration:0}:{height:Z.spring.smooth,opacity:{duration:Z.duration.standard,ease:[...Z.ease.enter]}},d={height:0,opacity:0,transition:r?{duration:0}:{height:Z.spring.smooth,opacity:RC}};return(0,h.jsx)(V,{initial:!1,onExitComplete:()=>{e===void 0&&t?.()},children:c&&(0,h.jsx)(U.div,{className:IC.presence,initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:d,transition:u,ref:o,onAnimationStart:()=>s(`hidden`),onAnimationComplete:()=>s(``),children:(0,h.jsx)(KC,{...n,reduce:r,onDismiss:l,animateIcon:!0})},`alert`)})}var JC={field:`_field_6szcl_1`,control:`_control_6szcl_3`,disabled:`_disabled_6szcl_4`,open:`_open_6szcl_6`,searchIcon:`_searchIcon_6szcl_8`,chevron:`_chevron_6szcl_12`,clear:`_clear_6szcl_14`,hint:`_hint_6szcl_17`,popover:`_popover_6szcl_18`,autoHeight:`_autoHeight_6szcl_19`,listbox:`_listbox_6szcl_20`,option:`_option_6szcl_22`,check:`_check_6szcl_26`,empty:`_empty_6szcl_27`};function YC({children:e,reduceMotion:t}){let n=(0,m.useRef)(null),[r,i]=(0,m.useState)(`auto`);return(0,m.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(()=>i(e.offsetHeight));return t.observe(e),()=>t.disconnect()},[]),(0,h.jsx)(U.div,{className:JC.autoHeight,initial:!1,animate:{height:r},transition:t?{duration:0}:Z.spring.smooth,children:(0,h.jsx)(`div`,{ref:n,children:e})})}var XC=(0,m.forwardRef)(function({label:e,options:t,value:n,defaultValue:r=``,onValueChange:i,description:a,placeholder:o=`Search or select…`,emptyMessage:s=`No matches found`,id:c,className:l,disabled:u,onFocus:d,...f},p){let g=(0,m.useId)(),_=c??g,v=`${_}-listbox`,y=a?`${_}-description`:void 0,b=(0,m.useRef)(null),x=(0,m.useRef)(null),S=(0,m.useRef)({}),C=H(),[w,T]=(0,m.useState)(r),[E,D]=(0,m.useState)(!1),[O,k]=(0,m.useState)(``),[A,j]=(0,m.useState)(-1),M=n??w,N=t.find(e=>e.value===M);(0,m.useImperativeHandle)(p,()=>x.current);let P=(0,m.useRef)(M);(0,m.useEffect)(()=>{if(P.current===M)return;P.current=M;let e=x.current;if(!e||C||M&&E)return;let t=M?sp(e,{opacity:[0,1],y:[`0.35em`,`0em`],filter:[`blur(${Z.blur.soft}px)`,`blur(0px)`]},{duration:Z.duration.standard,ease:[...Z.ease.enter]}):sp(e,{opacity:[0,1]},{duration:Z.duration.fast,ease:[...Z.ease.enter]});return()=>t.complete()},[M,C,E]);let F=(0,m.useMemo)(()=>{let e=O.trim().toLocaleLowerCase();return e?t.filter(t=>[t.label,...t.keywords??[]].some(t=>t.toLocaleLowerCase().includes(e))):t},[t,O]),ee=F.reduce((e,t,n)=>(t.disabled||e.push(n),e),[]);(0,m.useEffect)(()=>{if(!E)return;let e=A>=0?F[A]:void 0,t=e?S.current[e.value]:null,n=t?.parentElement;if(t&&n){let e=t.offsetTop,r=e+t.offsetHeight;e<n.scrollTop?n.scrollTop=e:r>n.scrollTop+n.clientHeight&&(n.scrollTop=r-n.clientHeight)}},[A,F,E]),(0,m.useEffect)(()=>{let e=e=>{b.current&&!b.current.contains(e.target)&&(D(!1),k(``))};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[]);let te=e=>{e.disabled||(T(e.value),i?.(e.value),k(``),D(!1),x.current?.focus())},ne=e=>{e.preventDefault(),T(``),i?.(``),k(``),D(!0),x.current?.focus()},re=()=>{u||(D(!0),k(``),j(-1))},ie=e=>{if(!u){if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),!E){re();return}if(!ee.length)return;let t=ee.indexOf(A),n=e.key===`ArrowDown`?(t+1)%ee.length:(t-1+ee.length)%ee.length;j(ee[n]);return}if(e.key===`Enter`&&E&&A>=0){e.preventDefault();let t=F[A];t&&te(t);return}if(e.key===`Escape`&&E){e.preventDefault(),D(!1),k(``);return}}},ae=E?O:N?.label??``,oe=A>=0?F[A]:void 0;return(0,h.jsxs)(`div`,{ref:b,className:JC.field,children:[(0,h.jsx)(`label`,{htmlFor:_,children:e}),(0,h.jsxs)(`div`,{className:[JC.control,E?JC.open:``,u?JC.disabled:``,l??``].filter(Boolean).join(` `),children:[(0,h.jsx)(Hb,{className:JC.searchIcon,size:16,strokeWidth:1.75,"aria-hidden":`true`}),(0,h.jsx)(`input`,{...f,ref:x,id:_,type:`text`,role:`combobox`,value:ae,placeholder:N?.label??o,disabled:u,"aria-describedby":y,"aria-expanded":E,"aria-controls":E?v:void 0,"aria-autocomplete":`list`,"aria-activedescendant":E&&oe?`${_}-option-${oe.value}`:void 0,onFocus:e=>{d?.(e),re()},onClick:re,onChange:e=>{k(e.target.value),D(!0),j(-1)},onKeyDown:ie}),(0,h.jsx)(V,{initial:!1,children:N&&!u&&(0,h.jsx)(U.button,{type:`button`,className:JC.clear,"aria-label":`Clear selection`,onMouseDown:e=>e.preventDefault(),onClick:ne,initial:C?{opacity:0}:{opacity:0,scale:.6,filter:`blur(${Z.blur.subtle}px)`},animate:{opacity:1,scale:1,filter:`blur(0px)`,transition:C?{duration:Z.duration.instant}:{...Z.spring.snappy,opacity:{duration:Z.duration.fast}}},exit:{opacity:0,...C?{}:{scale:.6,filter:`blur(${Z.blur.subtle}px)`},transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},whileTap:{scale:C?1:.96,transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},children:(0,h.jsx)(Jb,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})}),(0,h.jsx)(wb,{className:JC.chevron,size:16,strokeWidth:1.75,"aria-hidden":`true`})]}),a&&(0,h.jsx)(`span`,{id:y,className:JC.hint,children:a}),(0,h.jsx)(V,{initial:!1,children:E&&(0,h.jsx)(U.div,{className:JC.popover,initial:C?{opacity:0}:{opacity:0,y:-6,scale:.97},animate:{opacity:1,y:0,scale:1,transition:C?{duration:Z.duration.instant}:{...Z.spring.snappy,opacity:{duration:Z.duration.fast,ease:[...Z.ease.enter]}}},exit:{opacity:0,...C?{}:{y:-4,scale:.98},transition:{duration:Z.duration.instant,ease:[...Z.ease.standard]}},role:`presentation`,children:(0,h.jsx)(YC,{reduceMotion:C,children:(0,h.jsx)(`div`,{id:v,className:JC.listbox,role:`listbox`,"aria-label":`${e} options`,children:F.length?F.map((e,t)=>(0,h.jsxs)(`div`,{ref:t=>{S.current[e.value]=t},id:`${_}-option-${e.value}`,className:JC.option,"data-active":t===A?`true`:void 0,"data-disabled":e.disabled?`true`:void 0,role:`option`,"aria-selected":e.value===M,"aria-disabled":e.disabled||void 0,onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>!e.disabled&&j(t),onClick:()=>te(e),children:[(0,h.jsx)(`span`,{children:e.label}),e.value===M&&(0,h.jsx)(Sb,{className:JC.check,size:16,strokeWidth:1.75,"aria-hidden":`true`})]},e.value)):(0,h.jsx)(U.div,{className:JC.empty,role:`status`,initial:!C&&{opacity:0,y:4,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:s})})})})})]})});XC.displayName=`Combobox`;var ZC=Object.defineProperty,QC=(e,t)=>ZC(e,`name`,{value:t,configurable:!0});function $C(e){let t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>((...e)=>t.current?.(...e)),[])}QC($C,`useCallbackRef`);var ew=Object.defineProperty,tw=(e,t)=>ew(e,`name`,{value:t,configurable:!0}),nw=`dismissableLayer.update`,rw=`dismissableLayer.pointerDownOutside`,iw=`dismissableLayer.focusOutside`,aw,ow=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),sw=m.forwardRef(tw(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=m.useContext(ow),[d,f]=m.useState(null),p=d?.ownerDocument??globalThis?.document,[,g]=m.useState({}),_=q(t,f),v=Array.from(u.layers),[y]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),b=y?v.indexOf(y):-1,x=d?v.indexOf(d):-1,S=u.layersWithOutsidePointerEventsDisabled.size>0,C=x>=b,w=m.useRef(!1),T=uw(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:w,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:m.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return C&&!t},[u.branches,C])}),E=dw(e=>{if(r&&w.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),D=d?x===v.length-1:!1,O=$C(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return m.useEffect(()=>{if(D)return p.addEventListener(`keydown`,O,{capture:!0}),()=>p.removeEventListener(`keydown`,O,{capture:!0})},[p,D,O]),m.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(aw=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),fw(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=aw))}},[d,p,n,u]),m.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),fw())},[d,u]),m.useEffect(()=>{let e=tw(()=>g({}),`handleUpdate`);return document.addEventListener(nw,e),()=>document.removeEventListener(nw,e)},[]),(0,h.jsx)(X.div,{...l,ref:_,style:{pointerEvents:S?C?`auto`:`none`:void 0,...e.style},onFocusCapture:J(e.onFocusCapture,E.onFocusCapture),onBlurCapture:J(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:J(e.onPointerDownCapture,T.onPointerDownCapture)})},`DismissableLayer`));function cw(){let e=m.useContext(ow),[t,n]=m.useState(null);return m.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}tw(cw,`useDismissableLayerSurface`);var lw=tw(()=>!0,`IS_TRUE`);function uw(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=lw}=t,s=$C(e),c=m.useRef(!1),l=m.useRef(!1),u=m.useRef(new Map),d=m.useRef(()=>{});return m.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}tw(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}tw(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}tw(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}tw(p,`handleInteractionBubble`);let m=tw(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||pw(rw,s,p,{discrete:!0})};if(tw(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:tw(()=>c.current=!0,`onPointerDownCapture`)}}tw(uw,`usePointerDownOutside`);function dw(e,t=globalThis?.document){let n=$C(e),r=m.useRef(!1);return m.useEffect(()=>{let e=tw(e=>{e.target&&!r.current&&pw(iw,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:tw(()=>r.current=!0,`onFocusCapture`),onBlurCapture:tw(()=>r.current=!1,`onBlurCapture`)}}tw(dw,`useFocusOutside`);function fw(){let e=new CustomEvent(nw);document.dispatchEvent(e)}tw(fw,`dispatchUpdate`);function pw(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?qv(i,a):i.dispatchEvent(a)}tw(pw,`handleAndDispatchCustomEvent`);var mw=Object.defineProperty,hw=(e,t)=>mw(e,`name`,{value:t,configurable:!0}),gw=`focusScope.autoFocusOnMount`,_w=`focusScope.autoFocusOnUnmount`,vw={bubbles:!1,cancelable:!0},yw=m.forwardRef(hw(function(e,t){let{loop:n=!1,trapped:r=!1,branches:i,onMountAutoFocus:a,onUnmountAutoFocus:o,...s}=e,[c,l]=m.useState(null),u=$C(a),d=$C(o),f=m.useRef(null),p=q(t,l),g=m.useRef(i);m.useEffect(()=>{g.current=i});let _=m.useCallback(e=>e?c?.contains(e)?!0:!!g.current?.some(t=>t.contains(e)):!1,[c]),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let e=function(e){if(v.paused||!c)return;let t=e.target;_(t)?f.current=t:Aw(f.current,{select:!0})},t=function(e){if(v.paused||!c)return;let t=e.relatedTarget;t!==null&&(_(t)||Aw(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&Aw(c)};hw(e,`handleFocusIn`),hw(t,`handleFocusOut`),hw(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,c,v.paused,_]),m.useEffect(()=>{if(c){jw.add(v);let e=document.activeElement;if(!c.contains(e)){let t=new CustomEvent(gw,vw);c.addEventListener(gw,u),c.dispatchEvent(t),t.defaultPrevented||(ww(Pw(Ew(c)),{select:!0}),document.activeElement===e&&Aw(c))}return()=>{c.removeEventListener(gw,u),setTimeout(()=>{let t=new CustomEvent(_w,vw);c.addEventListener(_w,d),c.dispatchEvent(t),t.defaultPrevented||Aw(e??document.body,{select:!0}),c.removeEventListener(_w,d),jw.remove(v)},0)}}},[c,u,d,v]);let y=m.useCallback(e=>{if(!n&&!r||v.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=Tw(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&Aw(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&Aw(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,v.paused]);return(0,h.jsx)(X.div,{tabIndex:-1,...s,ref:p,onKeyDown:y})},`FocusScope`)),bw=m.createContext(null);function xw({registry:e,children:t}){return e?(0,h.jsx)(bw.Provider,{value:e,children:t}):t}hw(xw,`FocusScopeBranchProvider`);function Sw(){let[e,t]=m.useState([]);return{nodes:e,registry:m.useMemo(()=>({add:hw(e=>t(t=>t.includes(e)?t:[...t,e]),`add`),remove:hw(e=>t(t=>t.filter(t=>t!==e)),`remove`)}),[])}}hw(Sw,`useFocusScopeBranchRegistry`);function Cw(e){let t=m.useContext(bw);m.useEffect(()=>{if(e&&t)return t.add(e),()=>t.remove(e)},[e,t])}hw(Cw,`useFocusScopeBranch`);function ww(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(Aw(r,{select:t}),document.activeElement!==n)return}hw(ww,`focusFirst`);function Tw(e){let t=Ew(e);return[Dw(t,e),Dw(t.reverse(),e)]}hw(Tw,`getTabbableEdges`);function Ew(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:hw(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}hw(Ew,`getTabbableCandidates`);function Dw(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ow(r,{upTo:t})))return r}hw(Dw,`findVisible`);function Ow(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}hw(Ow,`isHidden`);function kw(e){return e instanceof HTMLInputElement&&`select`in e}hw(kw,`isSelectableInput`);function Aw(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&kw(e)&&t&&e.select()}}hw(Aw,`focus`);var jw=Mw();function Mw(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Nw(e,t),e.unshift(t)},remove(t){e=Nw(e,t),e[0]?.resume()}}}hw(Mw,`createFocusScopesStack`);function Nw(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}hw(Nw,`arrayRemove`);function Pw(e){return e.filter(e=>e.tagName!==`A`)}hw(Pw,`removeLinks`);var Fw=Object.defineProperty,Iw=m.forwardRef(((e,t)=>Fw(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=m.useState(!1);Y(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?Y_.createPortal((0,h.jsx)(X.div,{...r,ref:t}),o):null},`Portal`)),Lw=Object.defineProperty,Rw=(e,t)=>Lw(e,`name`,{value:t,configurable:!0}),zw=0,Bw=null;function Vw(e){return Hw(),e.children}Rw(Vw,`FocusGuards`);function Hw(){m.useEffect(()=>{Bw||={start:Uw(),end:Uw()};let{start:e,end:t}=Bw;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),zw++,()=>{zw===1&&(Bw?.start.remove(),Bw?.end.remove(),Bw=null),zw=Math.max(0,zw-1)}},[])}Rw(Hw,`useFocusGuards`);function Uw(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}Rw(Uw,`createFocusGuard`);var Ww=function(){return Ww=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Ww.apply(this,arguments)};function Gw(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Kw(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var qw=`right-scroll-bar-position`,Jw=`width-before-scroll-bar`,Yw=`with-scroll-bars-hidden`,Xw=`--removed-body-scroll-bar-size`;function Zw(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Qw(e,t){var n=(0,m.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var $w=typeof window<`u`?m.useLayoutEffect:m.useEffect,eT=new WeakMap;function tT(e,t){var n=Qw(t||null,function(t){return e.forEach(function(e){return Zw(e,t)})});return $w(function(){var t=eT.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||Zw(e,null)}),i.forEach(function(e){r.has(e)||Zw(e,a)})}eT.set(n,e)},[e]),n}function nT(e){return e}function rT(e,t){t===void 0&&(t=nT);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function iT(e){e===void 0&&(e={});var t=rT(null);return t.options=Ww({async:!0,ssr:!1},e),t}var aT=function(e){var t=e.sideCar,n=Gw(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return m.createElement(r,Ww({},n))};aT.isSideCarExport=!0;function oT(e,t){return e.useMedium(t),aT}var sT=iT(),cT=function(){},lT=m.forwardRef(function(e,t){var n=m.useRef(null),r=m.useState({onScrollCapture:cT,onWheelCapture:cT,onTouchMoveCapture:cT}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=Gw(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=f,C=tT([n,t]),w=Ww(Ww({},x),i);return m.createElement(m.Fragment,null,u&&m.createElement(S,{sideCar:sT,removeScrollBar:l,shards:d,noRelative:p,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),o?m.cloneElement(m.Children.only(s),Ww(Ww({},w),{ref:C})):m.createElement(y,Ww({},w,{className:c,ref:C}),s))});lT.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},lT.classNames={fullWidth:Jw,zeroRight:qw};var uT=function(){if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function dT(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=uT();return t&&e.setAttribute(`nonce`,t),e}function fT(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function pT(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var mT=function(){var e=0,t=null;return{add:function(n){e==0&&(t=dT())&&(fT(t,n),pT(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},hT=function(){var e=mT();return function(t,n){m.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},gT=function(){var e=hT();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},_T={left:0,top:0,right:0,gap:0},vT=function(e){return parseInt(e||``,10)||0},yT=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[vT(n),vT(r),vT(i)]},bT=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return _T;var t=yT(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},xT=gT(),ST=`data-scroll-locked`,CT=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
16
|
+
.${Yw} {
|
|
17
17
|
overflow: hidden ${r};
|
|
18
18
|
padding-right: ${s}px ${r};
|
|
19
19
|
}
|
|
20
|
-
body[${
|
|
20
|
+
body[${ST}] {
|
|
21
21
|
overflow: hidden ${r};
|
|
22
22
|
overscroll-behavior: contain;
|
|
23
23
|
${[t&&`position: relative ${r};`,n===`margin`&&`
|
|
@@ -30,26 +30,26 @@ tid=xxxx;exp=1760000000;sku=...
|
|
|
30
30
|
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
.${
|
|
33
|
+
.${qw} {
|
|
34
34
|
right: ${s}px ${r};
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
.${
|
|
37
|
+
.${Jw} {
|
|
38
38
|
margin-right: ${s}px ${r};
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
.${
|
|
41
|
+
.${qw} .${qw} {
|
|
42
42
|
right: 0 ${r};
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.${
|
|
45
|
+
.${Jw} .${Jw} {
|
|
46
46
|
margin-right: 0 ${r};
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
body[${
|
|
50
|
-
${
|
|
49
|
+
body[${ST}] {
|
|
50
|
+
${Xw}: ${s}px;
|
|
51
51
|
}
|
|
52
|
-
`},
|
|
52
|
+
`},wT=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},TT=function(){m.useEffect(function(){return document.body.setAttribute(ST,(wT()+1).toString()),function(){var e=wT()-1;e<=0?document.body.removeAttribute(ST):document.body.setAttribute(ST,e.toString())}},[])},ET=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;TT();var a=m.useMemo(function(){return bT(i)},[i]);return m.createElement(xT,{styles:CT(a,!t,i,n?``:`!important`)})},DT=!1;if(typeof window<`u`)try{var OT=Object.defineProperty({},"passive",{get:function(){return DT=!0,!0}});window.addEventListener(`test`,OT,OT),window.removeEventListener(`test`,OT,OT)}catch{DT=!1}var kT=DT?{passive:!1}:!1,AT=function(e){return e.tagName===`TEXTAREA`},jT=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!AT(e)&&n[t]===`visible`)},MT=function(e){return jT(e,`overflowY`)},NT=function(e){return jT(e,`overflowX`)},PT=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),LT(e,r)){var i=RT(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},FT=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},IT=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},LT=function(e,t){return e===`v`?MT(t):NT(t)},RT=function(e,t){return e===`v`?FT(t):IT(t)},zT=function(e,t){return e===`h`&&t===`rtl`?-1:1},BT=function(e,t,n,r,i){var a=zT(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=RT(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&<(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},VT=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},HT=function(e){return[e.deltaX,e.deltaY]},UT=function(e){return e&&`current`in e?e.current:e},WT=function(e,t){return e[0]===t[0]&&e[1]===t[1]},GT=function(e){return`
|
|
53
53
|
.block-interactivity-${e} {pointer-events: none;}
|
|
54
54
|
.allow-interactivity-${e} {pointer-events: all;}
|
|
55
|
-
`},Sw=0,Cw=[];function ww(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(Sw++)[0],a=m.useState(KC)[0],o=m.useRef(e);m.useEffect(function(){o.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=SC([e.lockRef.current],(e.shards||[]).map(yw),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=_w(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=uw(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=uw(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return gw(h,t,e,h===`h`?s:c,!0)},[]),c=m.useCallback(function(e){var n=e;if(Cw.length&&Cw[Cw.length-1]===a){var r=`deltaY`in n?vw(n):_w(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&bw(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(yw).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=m.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Tw(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=m.useCallback(function(e){n.current=_w(e),r.current=void 0},[]),d=m.useCallback(function(t){l(t.type,vw(t),t.target,s(t,e.lockRef.current))},[]),f=m.useCallback(function(t){l(t.type,_w(t),t.target,s(t,e.lockRef.current))},[]);m.useEffect(function(){return Cw.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,aw),document.addEventListener(`touchmove`,c,aw),document.addEventListener(`touchstart`,u,aw),function(){Cw=Cw.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,aw),document.removeEventListener(`touchmove`,c,aw),document.removeEventListener(`touchstart`,u,aw)}},[]);var p=e.removeScrollBar,h=e.inert;return m.createElement(m.Fragment,null,h?m.createElement(a,{styles:xw(i)}):null,p?m.createElement(nw,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Tw(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Ew=IC(LC,ww),Dw=m.forwardRef(function(e,t){return m.createElement(zC,bC({},e,{ref:t,sideCar:Ew}))});Dw.classNames=zC.classNames;var Ow=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},kw=new WeakMap,Aw=new WeakMap,jw={},Mw=0,Nw=function(e){return e&&(e.host||Nw(e.parentNode))},Pw=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Nw(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Fw=function(e,t,n,r){var i=Pw(t,Array.isArray(e)?e:[e]);jw[n]||(jw[n]=new WeakMap);var a=jw[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(kw.get(e)||0)+1,l=(a.get(e)||0)+1;kw.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Aw.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Mw++,function(){o.forEach(function(e){var t=kw.get(e)-1,i=a.get(e)-1;kw.set(e,t),a.set(e,i),t||(Aw.has(e)||e.removeAttribute(r),Aw.delete(e)),i||e.removeAttribute(n)}),Mw--,Mw||(kw=new WeakMap,kw=new WeakMap,Aw=new WeakMap,jw={})}},Iw=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Ow(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Fw(r,i,n,`aria-hidden`)):function(){return null}},Lw=Object.defineProperty,Rw=(e,t)=>Lw(e,`name`,{value:t,configurable:!0}),zw=`Dialog`,[Bw,Vw]=yg(zw),[Hw,Uw]=Bw(zw),Ww=Rw(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=m.useRef(null),c=m.useRef(null),{nodes:l,registry:u}=QS(),[d,f]=g_({prop:r,defaultProp:i??!1,onChange:a,caller:zw}),[p,g]=m.useState(0),[_,v]=m.useState(0);return(0,h.jsx)(Hw,{scope:t,triggerRef:s,contentRef:c,contentId:L_(),titleId:L_(),descriptionId:L_(),titlePresent:p>0,descriptionPresent:_>0,setTitleCount:g,setDescriptionCount:v,open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(e=>!e),[f]),modal:o,branchNodes:l,branchRegistry:u,children:n})},`Dialog`),Gw=`DialogTrigger`,Kw=m.forwardRef(Rw(function(e,t){let{__scopeDialog:n,...r}=e,i=Uw(Gw,n),a=q(t,i.triggerRef);return(0,h.jsx)(X.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":dT(i.open),...r,ref:a,onClick:J(e.onClick,i.onOpenToggle)})},`DialogTrigger`)),qw=`DialogPortal`,[Jw,Yw]=Bw(qw,{forceMount:void 0}),Xw=Rw(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Uw(qw,t);return(0,h.jsx)(Jw,{scope:t,forceMount:n,children:m.Children.map(r,e=>(0,h.jsx)(D_,{present:n||a.open,children:(0,h.jsx)(fC,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),Zw=`DialogOverlay`,Qw=m.forwardRef(Rw(function(e,t){let n=Yw(Zw,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Uw(Zw,e.__scopeDialog);return a.modal?(0,h.jsx)(D_,{present:r||a.open,children:(0,h.jsx)(eT,{...i,ref:t})}):null},`DialogOverlay`)),$w=Og(`DialogOverlay.RemoveScroll`),eT=m.forwardRef(Rw(function(e,t){let{__scopeDialog:n,...r}=e,i=Uw(Zw,n),a=q(t,RS());return(0,h.jsx)(Dw,{as:$w,allowPinchZoom:!0,shards:m.useMemo(()=>[i.contentRef,...i.branchNodes.map(e=>({current:e}))],[i.contentRef,i.branchNodes]),children:(0,h.jsx)(X.div,{"data-state":dT(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),tT=`DialogContent`,nT=m.forwardRef(Rw(function(e,t){let n=Yw(tT,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Uw(tT,e.__scopeDialog);return(0,h.jsx)(D_,{present:r||a.open,children:a.modal?(0,h.jsx)(rT,{...i,ref:t}):(0,h.jsx)(iT,{...i,ref:t})})},`DialogContent`)),rT=m.forwardRef(Rw(function(e,t){let n=Uw(tT,e.__scopeDialog),r=m.useRef(null),i=q(t,n.contentRef,r);return m.useEffect(()=>{let e=r.current;if(e)return Iw(e)},[]),(0,h.jsx)(aT,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:J(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:J(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:J(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),iT=m.forwardRef(Rw(function(e,t){let n=Uw(tT,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return(0,h.jsx)(aT,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),aT=m.forwardRef(Rw(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,"aria-describedby":o,children:s,...c}=e,l=Uw(tT,n);return vC(),(0,h.jsx)(ZS,{registry:l.branchRegistry,children:(0,h.jsx)(YS,{asChild:!0,loop:!0,trapped:r,branches:l.branchNodes,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,h.jsx)(LS,{role:`dialog`,id:l.contentId,"aria-labelledby":l.titlePresent?l.titleId:void 0,"aria-describedby":l.descriptionPresent?uT(o,l.descriptionId):o,"data-state":dT(l.open),...c,ref:t,deferPointerDownOutside:!0,onDismiss:()=>l.onOpenChange(!1),children:s})})})},`DialogContentImpl`)),oT=m.forwardRef(Rw(function(e,t){let{__scopeDialog:n,...r}=e,i=Uw(`DialogTitle`,n),{setTitleCount:a}=i;return Y(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,h.jsx)(X.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),sT=m.forwardRef(Rw(function(e,t){let{__scopeDialog:n,...r}=e,i=Uw(`DialogDescription`,n),{setDescriptionCount:a}=i;return Y(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,h.jsx)(X.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),cT=`DialogClose`,lT=m.forwardRef(Rw(function(e,t){let{__scopeDialog:n,...r}=e,i=Uw(cT,n);return(0,h.jsx)(X.button,{type:`button`,...r,ref:t,onClick:J(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function uT(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}Rw(uT,`concatAriaDescribedby`);function dT(e){return e?`open`:`closed`}Rw(dT,`getState`);var fT={overlay:`_overlay_1vyy5_1`,content:`_content_1vyy5_5`,keyframes:`_keyframes_1vyy5_9`,"overlay-in":`_overlay-in_1vyy5_1`,"overlay-out":`_overlay-out_1vyy5_1`,"content-fade-in":`_content-fade-in_1vyy5_1`,"content-rise-in":`_content-rise-in_1vyy5_1`,"content-out":`_content-out_1vyy5_1`,header:`_header_1vyy5_16`,title:`_title_1vyy5_17`,description:`_description_1vyy5_18`,swap:`_swap_1vyy5_20`,close:`_close_1vyy5_24`,body:`_body_1vyy5_27`,"content-fade-out":`_content-fade-out_1vyy5_1`},pT=(0,m.createContext)(null);function mT({open:e,defaultOpen:t=!1,onOpenChange:n,...r}){let[i,a]=(0,m.useState)(t),o=e??i,s=(0,m.useCallback)(t=>{e===void 0&&a(t),n?.(t)},[e,n]);return(0,h.jsx)(pT.Provider,{value:o,children:(0,h.jsx)(Ww,{...r,open:o,onOpenChange:s})})}var hT={duration:Z.duration.instant},gT={duration:Z.duration.fast,ease:[...Z.ease.standard]};function _T({text:e}){let t=H();return(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(U.span,{className:fT.swap,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:e},e)})}function vT({title:e,description:t,children:n,className:r,onPointerDownOutside:i,...a}){let o=(0,m.useContext)(pT),s=H(),c=(0,m.useRef)({open:o,at:0});(0,m.useLayoutEffect)(()=>{c.current={open:o,at:performance.now()}},[o]);let l=e=>{i?.(e),o!==null&&(!c.current.open||e.detail.originalEvent.timeStamp<c.current.at)&&e.preventDefault()},u=[fT.content,r].filter(Boolean).join(` `),d=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`div`,{className:fT.header,children:[(0,h.jsxs)(`div`,{children:[(0,h.jsx)(oT,{className:fT.title,children:(0,h.jsx)(_T,{text:e})}),t?(0,h.jsx)(sT,{className:fT.description,children:(0,h.jsx)(_T,{text:t})}):null]}),(0,h.jsx)(lT,{className:fT.close,"aria-label":`Close dialog`,children:(0,h.jsx)(wy,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]}),(0,h.jsx)(`div`,{className:fT.body,children:n})]});return o===null?(0,h.jsxs)(Xw,{children:[(0,h.jsx)(Qw,{className:`${fT.overlay} ${fT.keyframes}`}),(0,h.jsx)(nT,{...a,onPointerDownOutside:l,className:`${u} ${fT.keyframes}`,children:d})]}):(0,h.jsx)(V,{children:o&&(0,h.jsxs)(Xw,{forceMount:!0,children:[(0,h.jsx)(Qw,{asChild:!0,forceMount:!0,children:(0,h.jsx)(U.div,{className:fT.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,transition:s?hT:gT},transition:s?hT:{duration:Z.duration.standard,ease:[...Z.ease.enter]}})}),(0,h.jsx)(nT,{...a,onPointerDownOutside:l,asChild:!0,forceMount:!0,children:(0,h.jsx)(U.div,{className:u,initial:s?{opacity:0}:{opacity:0,y:8,scale:.96},animate:{opacity:1,y:0,scale:1},exit:s?{opacity:0,transition:hT}:{opacity:0,y:4,scale:.98,transition:gT},transition:s?hT:{default:Z.spring.smooth,opacity:{duration:Z.duration.fast,ease:[...Z.ease.enter]}},children:d})})]},`dialog`)})}var yT=[`top`,`right`,`bottom`,`left`],bT=Math.min,xT=Math.max,ST=Math.round,CT=Math.floor,wT=e=>({x:e,y:e}),TT={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ET(e,t,n){return xT(e,bT(t,n))}function DT(e,t){return typeof e==`function`?e(t):e}function OT(e){return e.split(`-`)[0]}function kT(e){return e.split(`-`)[1]}function AT(e){return e===`x`?`y`:`x`}function jT(e){return e===`y`?`height`:`width`}function MT(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function NT(e){return AT(MT(e))}function PT(e,t,n){n===void 0&&(n=!1);let r=kT(e),i=NT(e),a=jT(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=UT(o)),[o,UT(o)]}function FT(e){let t=UT(e);return[IT(e),t,IT(t)]}function IT(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var LT=[`left`,`right`],RT=[`right`,`left`],zT=[`top`,`bottom`],BT=[`bottom`,`top`];function VT(e,t,n){switch(e){case`top`:case`bottom`:return n?t?RT:LT:t?LT:RT;case`left`:case`right`:return t?zT:BT;default:return[]}}function HT(e,t,n,r){let i=kT(e),a=VT(OT(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(IT)))),a}function UT(e){let t=OT(e);return TT[t]+e.slice(t.length)}function WT(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function GT(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:WT(e)}function KT(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function qT(e,t,n){let{reference:r,floating:i}=e,a=MT(t),o=NT(t),s=jT(o),c=OT(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=kT(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function JT(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=DT(t,e),p=GT(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=KT(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=KT(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var YT=50,XT=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:JT},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=qT(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<YT&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=qT(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},ZT=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=DT(e,t)||{};if(l==null)return{};let d=GT(u),f={x:n,y:r},p=NT(i),m=jT(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=bT(d[_],T),D=bT(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=ET(E,k,O),j=!c.arrow&&kT(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,M=j?k<E?k-E:k-O:0;return{[p]:f[p]+M,data:{[p]:A,centerOffset:k-A-M,...j&&{alignmentOffset:M}},reset:j}}}),QT=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=DT(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=OT(r),_=MT(o),v=OT(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[UT(o)]:FT(o)),x=p!==`none`;!d&&x&&b.push(...HT(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=PT(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===MT(t)||T.every(e=>MT(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=MT(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function $T(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function eE(e){return yT.some(t=>e[t]>=0)}var tE=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=DT(e,t);switch(i){case`referenceHidden`:{let e=$T(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:eE(e)}}}case`escaped`:{let e=$T(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:eE(e)}}}default:return{}}}}},nE=new Set([`left`,`top`]);async function rE(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=OT(n),s=kT(n),c=MT(n)===`y`,l=nE.has(o)?-1:1,u=a&&c?-1:1,d=DT(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var iE=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await rE(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},aE=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=DT(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=MT(i),p=AT(f),m=u[p],h=u[f],g=(e,t)=>ET(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},oE=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=DT(e,t),u={x:n,y:r},d=MT(i),f=AT(d),p=u[f],m=u[d],h=DT(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=nE.has(OT(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},sE=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=DT(e,t),c=await i.detectOverflow(t,s),l=OT(n),u=kT(n),d=MT(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=bT(p-c[m],g),y=bT(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*xT(c.left,c.right):S=p-2*xT(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function cE(){return typeof window<`u`}function lE(e){return fE(e)?(e.nodeName||``).toLowerCase():`#document`}function uE(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function dE(e){return((fE(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function fE(e){return cE()?e instanceof Node||e instanceof uE(e).Node:!1}function pE(e){return cE()?e instanceof Element||e instanceof uE(e).Element:!1}function mE(e){return cE()?e instanceof HTMLElement||e instanceof uE(e).HTMLElement:!1}function hE(e){return!cE()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof uE(e).ShadowRoot}function gE(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=DE(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function _E(e){return/^(table|td|th)$/.test(lE(e))}function vE(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var yE=/transform|translate|scale|rotate|perspective|filter/,bE=/paint|layout|strict|content/,xE=e=>!!e&&e!==`none`,SE;function CE(e){let t=pE(e)?DE(e):e;return xE(t.transform)||xE(t.translate)||xE(t.scale)||xE(t.rotate)||xE(t.perspective)||!TE()&&(xE(t.backdropFilter)||xE(t.filter))||yE.test(t.willChange||``)||bE.test(t.contain||``)}function wE(e){let t=kE(e);for(;mE(t)&&!EE(t);){if(CE(t))return t;if(vE(t))return null;t=kE(t)}return null}function TE(){return SE??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),SE}function EE(e){return/^(html|body|#document)$/.test(lE(e))}function DE(e){return uE(e).getComputedStyle(e)}function OE(e){return pE(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function kE(e){if(lE(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||hE(e)&&e.host||dE(e);return hE(t)?t.host:t}function AE(e){let t=kE(e);return EE(t)?(e.ownerDocument||e).body:mE(t)&&gE(t)?t:AE(t)}function jE(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=AE(e),i=r===e.ownerDocument?.body,a=uE(r);if(i){let e=ME(a);return t.concat(a,a.visualViewport||[],gE(r)?r:[],e&&n?jE(e):[])}return t.concat(r,jE(r,[],n))}function ME(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function NE(e){let t=DE(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=mE(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ST(n)!==a||ST(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function PE(e){return pE(e)?e:e.contextElement}function FE(e){let t=PE(e);if(!mE(t))return wT(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=NE(t),o=(a?ST(n.width):n.width)/r,s=(a?ST(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var IE=wT(0);function LE(e){let t=uE(e);return!TE()||!t.visualViewport?IE:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function RE(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===uE(e)}function zE(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=PE(e),o=wT(1);t&&(r?pE(r)&&(o=FE(r)):o=FE(e));let s=RE(a,n,r)?LE(a):wT(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=uE(a),t=pE(r)?uE(r):r,n=e,i=ME(n);for(;i&&t!==n;){let e=FE(i),t=i.getBoundingClientRect(),r=DE(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=uE(i),i=ME(n)}}return KT({width:u,height:d,x:c,y:l})}function BE(e,t){let n=OE(e).scrollLeft;return t?t.left+n:zE(dE(e)).left+n}function VE(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-BE(e,n),y:n.top+t.scrollTop}}function HE(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=dE(r),s=t?vE(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=wT(1),u=wT(0),d=mE(r);if((d||!a)&&((lE(r)!==`body`||gE(o))&&(c=OE(r)),d)){let e=zE(r);l=FE(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?VE(o,c):wT(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function UE(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function WE(e){let t=OE(e),n=e.ownerDocument.body,r=xT(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=xT(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+BE(e),o=-t.scrollTop;return DE(n).direction===`rtl`&&(a+=xT(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var GE=25;function KE(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=uE(e),a=dE(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!TE()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(BE(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=GE&&(s-=o)}return{width:s,height:c,x:l,y:u}}function qE(e,t){let n=zE(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=FE(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function JE(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=KE(e,n,t);else if(t===`document`)r=WE(dE(e));else if(pE(t))r=qE(t,n);else{let n=LE(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return KT(r)}function YE(e,t){let n=t.get(e);if(n)return n;let r=jE(e,[],!1).filter(e=>pE(e)&&lE(e)!==`body`),i=null,a=DE(e).position===`fixed`,o=a?kE(e):e;for(;pE(o)&&!EE(o);){let e=DE(o),t=CE(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=kE(o)}return t.set(e,r),r}function XE(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?vE(t)?[]:YE(t,this._c):[].concat(n),r],o=JE(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=JE(t,a[e],i);s=xT(n.top,s),c=bT(n.right,c),l=bT(n.bottom,l),u=xT(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function ZE(e){let{width:t,height:n}=NE(e);return{width:t,height:n}}function QE(e,t,n){let r=mE(t),i=dE(t),a=n===`fixed`,o=zE(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=wT(0);if((r||!a)&&((lE(t)!==`body`||gE(i))&&(s=OE(t)),r)){let e=zE(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=BE(i));let l=i&&!r&&!a?VE(i,s):wT(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function $E(e){return DE(e).position===`static`}function eD(e,t){if(!mE(e)||DE(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return dE(e)===n&&(n=n.ownerDocument.body),n}function tD(e,t){let n=uE(e);if(vE(e))return n;if(!mE(e)){let t=kE(e);for(;t&&!EE(t);){if(pE(t)&&!$E(t))return t;t=kE(t)}return n}let r=eD(e,t);for(;r&&_E(r)&&$E(r);)r=eD(r,t);return r&&EE(r)&&$E(r)&&!CE(r)?n:r||wE(e)||n}var nD=async function(e){let t=this.getOffsetParent||tD,n=this.getDimensions,r=await n(e.floating);return{reference:QE(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function rD(e){return DE(e).direction===`rtl`}var iD={convertOffsetParentRelativeRectToViewportRelativeRect:HE,getDocumentElement:dE,getClippingRect:XE,getOffsetParent:tD,getElementRects:nD,getClientRects:UE,getDimensions:ZE,getScale:FE,isElement:pE,isRTL:rD};function aD(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function oD(e,t,n){let r=null,i,a=dE(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=CT(d),h=CT(a.clientWidth-(u+f)),g=CT(a.clientHeight-(d+p)),_=CT(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:xT(0,bT(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!aD(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=uE(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function sD(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=PE(e),u=i||a?[...l?jE(l):[],...t?jE(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?oD(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?zE(e):null;c&&g();function g(){let t=zE(e);h&&!aD(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var cD=iE,lD=aE,uD=QT,dD=sE,fD=tE,pD=ZT,mD=oE,hD=(e,t,n)=>{let r=new Map,i=n??{},a={...iD,...i.platform,_c:r};return XT(e,t,{...i,platform:a})},gD=typeof document<`u`?m.useLayoutEffect:function(){};function _D(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!_D(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!_D(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function vD(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function yD(e,t){let n=vD(e);return Math.round(t*n)/n}function bD(e){let t=m.useRef(e);return gD(()=>{t.current=e}),t}function xD(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=m.useState(r);_D(f,r)||p(r);let[h,g]=m.useState(null),[_,v]=m.useState(null),y=m.useCallback(e=>{e!==C.current&&(C.current=e,g(e))},[]),b=m.useCallback(e=>{e!==w.current&&(w.current=e,v(e))},[]),x=a||h,S=o||_,C=m.useRef(null),w=m.useRef(null),T=m.useRef(u),E=c!=null,D=bD(c),O=bD(i),k=bD(l),A=m.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:f};O.current&&(e.platform=O.current),hD(C.current,w.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!_D(T.current,t)&&(T.current=t,Tg.flushSync(()=>{d(t)}))})},[f,t,n,O,k]);gD(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let j=m.useRef(!1);gD(()=>(j.current=!0,()=>{j.current=!1}),[]),gD(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,A);A()}},[x,S,A,D,E]);let M=m.useMemo(()=>({reference:C,floating:w,setReference:y,setFloating:b}),[y,b]),N=m.useMemo(()=>({reference:x,floating:S}),[x,S]),P=m.useMemo(()=>{let e={position:n,left:0,top:0};if(!N.floating)return e;let t=yD(N.floating,u.x),r=yD(N.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...vD(N.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,N.floating,u.x,u.y]);return m.useMemo(()=>({...u,update:A,refs:M,elements:N,floatingStyles:P}),[u,A,M,N,P])}var SD=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:pD({element:r.current,padding:i}).fn(n):r?pD({element:r,padding:i}).fn(n):{}}}},CD=(e,t)=>{let n=cD(e);return{name:n.name,fn:n.fn,options:[e,t]}},wD=(e,t)=>{let n=lD(e);return{name:n.name,fn:n.fn,options:[e,t]}},TD=(e,t)=>({fn:mD(e).fn,options:[e,t]}),ED=(e,t)=>{let n=uD(e);return{name:n.name,fn:n.fn,options:[e,t]}},DD=(e,t)=>{let n=dD(e);return{name:n.name,fn:n.fn,options:[e,t]}},OD=(e,t)=>{let n=fD(e);return{name:n.name,fn:n.fn,options:[e,t]}},kD=(e,t)=>{let n=SD(e);return{name:n.name,fn:n.fn,options:[e,t]}},AD=Object.defineProperty,jD=(e,t)=>AD(e,`name`,{value:t,configurable:!0}),MD={Partial:`partial`,Always:`always`},ND={Optimized:`optimized`,Always:`always`},PD=`Popper`,[FD,ID]=yg(PD),[LD,RD]=FD(PD),zD=jD(e=>{let{__scopePopper:t,children:n}=e,[r,i]=m.useState(null),[a,o]=m.useState(void 0);return(0,h.jsx)(LD,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),BD=`PopperAnchor`,VD=m.forwardRef(jD(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=RD(BD,n),o=m.useRef(null),s=a.onAnchorChange,c=q(t,m.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=m.useRef(null);m.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&JD(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,h.jsx)(X.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),HD=`PopperContent`,[UD,WD]=FD(HD),GD=m.forwardRef(jD(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=MD.Partial,hideWhenDetached:f=!1,updatePositionStrategy:p=ND.Optimized,onPlaced:g,..._}=e,v=RD(HD,n),[y,b]=m.useState(null),x=q(t,b),[S,C]=m.useState(null),w=fx(S),T=w?.width??0,E=w?.height??0,D=r+(a===`center`?``:`-`+a),O=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},k=Array.isArray(l)?l:[l],A=k.length>0,j={padding:O,boundary:k.filter(KD),altBoundary:A},{refs:M,floatingStyles:N,placement:P,isPositioned:F,middlewareData:ee}=xD({strategy:`fixed`,placement:D,whileElementsMounted:jD((...e)=>sD(...e,{animationFrame:p===ND.Always}),`whileElementsMounted`),elements:{reference:v.anchor},middleware:[CD({mainAxis:i+E,alignmentAxis:o}),c&&wD({mainAxis:!0,crossAxis:!1,limiter:d===MD.Partial?TD():void 0,...j}),c&&ED({...j}),DD({...j,apply:jD(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),S&&kD({element:S,padding:s}),qD({arrowWidth:T,arrowHeight:E}),f&&OD({strategy:`referenceHidden`,...j,boundary:A?j.boundary:void 0})]}),te=v.setPlacementState;Y(()=>(te(P),()=>{te(void 0)}),[P,te]);let[ne,re]=JD(P),ie=kS(g);Y(()=>{F&&ie?.()},[F,ie]);let ae=ee.arrow?.x,oe=ee.arrow?.y,se=ee.arrow?.centerOffset!==0,[ce,le]=m.useState();return Y(()=>{y&&le(window.getComputedStyle(y).zIndex)},[y]),(0,h.jsx)(`div`,{ref:M.setFloating,"data-radix-popper-content-wrapper":``,style:{...N,transform:F?N.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ce,"--radix-popper-transform-origin":[ee.transformOrigin?.x,ee.transformOrigin?.y].join(` `),...ee.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,h.jsx)(UD,{scope:n,placedSide:ne,placedAlign:re,onArrowChange:C,arrowX:ae,arrowY:oe,shouldHideArrow:se,children:(0,h.jsx)(X.div,{"data-side":ne,"data-align":re,..._,ref:x,style:{..._.style,animation:F?_.style?.animation:`none`}})})})},`PopperContent`));function KD(e){return e!==null}jD(KD,`isNotNull`);var qD=jD(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=JD(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function JD(e){let[t,n=`center`]=e.split(`-`);return[t,n]}jD(JD,`getSideAndAlignFromPlacement`);var YD=Object.defineProperty,XD=(e,t)=>YD(e,`name`,{value:t,configurable:!0}),ZD=!1;function QD(){let[e,t]=m.useState(ZD);return m.useEffect(()=>{ZD||(ZD=!0,t(!0))},[]),e}XD(QD,`useIsHydrated`);var $D=m.useSyncExternalStore;function eO(){return()=>{}}XD(eO,`subscribe`);function tO(){return $D(eO,()=>!0,()=>!1)}XD(tO,`useIsHydratedModern`);var nO=typeof $D==`function`?tO:QD,rO=Object.defineProperty,iO=(e,t)=>rO(e,`name`,{value:t,configurable:!0}),aO=`rovingFocusGroup.onEntryFocus`,oO={bubbles:!1,cancelable:!0},sO=`RovingFocusGroup`,[cO,lO,uO]=Wg(sO),[dO,fO]=yg(sO,[uO]),pO={Vertical:`vertical`,Horizontal:`horizontal`},mO={LTR:`ltr`,RTL:`rtl`},[hO,gO]=dO(sO),_O=m.forwardRef(iO(function(e,t){return(0,h.jsx)(cO.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,h.jsx)(cO.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,h.jsx)(vO,{...e,ref:t})})})},`RovingFocusGroup`)),vO=m.forwardRef(iO(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=m.useRef(null),p=q(t,f),g=nv(a),[_,v]=g_({prop:o,defaultProp:s??null,onChange:c,caller:sO}),[y,b]=m.useState(!1),x=kS(l),S=lO(n),C=m.useRef(!1),[w,T]=m.useState(0);return m.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(aO,x),()=>e.removeEventListener(aO,x)},[x]),(0,h.jsx)(hO,{scope:n,orientation:r,dir:g,loop:i,currentTabStopId:_,onItemFocus:m.useCallback(e=>v(e),[v]),onItemShiftTab:m.useCallback(()=>b(!0),[]),onFocusableItemAdd:m.useCallback(()=>T(e=>e+1),[]),onFocusableItemRemove:m.useCallback(()=>T(e=>e-1),[]),children:(0,h.jsx)(X.div,{tabIndex:y||w===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:J(e.onMouseDown,()=>{C.current=!0}),onFocus:J(e.onFocus,e=>{let t=!C.current;if(e.target===e.currentTarget&&t&&!y){let t=new CustomEvent(aO,oO);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);wO([e.find(e=>e.active),e.find(e=>e.id===_),...e].filter(Boolean).map(e=>e.ref.current),u)}}C.current=!1}),onBlur:J(e.onBlur,()=>b(!1))})})},`RovingFocusGroupImpl`)),yO=`RovingFocusGroupItem`,bO=m.forwardRef(iO(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=L_(),l=a||c,u=gO(yO,n),d=u.currentTabStopId===l,f=lO(n),{onFocusableItemAdd:p,onFocusableItemRemove:g,currentTabStopId:_}=u,v=nO();return Y(()=>{if(v&&r)return p(),()=>g()},[v,r,p,g]),m.useEffect(()=>{if(!v&&r)return p(),()=>g()},[v,r,p,g]),(0,h.jsx)(cO.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,h.jsx)(X.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:J(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:J(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:J(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=CO(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?TO(n,r+1):n.slice(r+1)}setTimeout(()=>wO(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:_!=null}):o})})},`RovingFocusGroupItem`)),xO={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function SO(e,t){return t===mO.RTL?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}iO(SO,`getDirectionAwareKey`);function CO(e,t,n){let r=SO(e.key,n);if(!(t===pO.Vertical&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===pO.Horizontal&&[`ArrowUp`,`ArrowDown`].includes(r)))return xO[r]}iO(CO,`getFocusIntent`);function wO(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}iO(wO,`focusFirst`);function TO(e,t){return e.map((n,r)=>e[(t+r)%e.length])}iO(TO,`wrapArray`);var EO=Object.defineProperty,Q=(e,t)=>EO(e,`name`,{value:t,configurable:!0}),DO=[`Enter`,` `],OO=[`ArrowDown`,`PageUp`,`Home`],kO=[`ArrowUp`,`PageDown`,`End`],AO=[...OO,...kO];[...DO],[...DO];var jO=`Menu`,[MO,NO,PO]=Wg(jO),[FO,IO]=yg(jO,[PO,ID,fO]),LO=ID(),RO=fO(),[zO,BO]=FO(jO),[VO,HO]=FO(jO),UO=Q(e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=LO(t),[c,l]=m.useState(null),u=m.useRef(!1),d=kS(a),f=nv(i);return m.useEffect(()=>{let e=Q(()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},`handleKeyDown`),t=Q(()=>u.current=!1,`handlePointer`);return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),m.useEffect(()=>{if(!n)return;let e=Q(()=>d(!1),`handleBlur`);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[n,d]),(0,h.jsx)(zD,{...s,children:(0,h.jsx)(zO,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,h.jsx)(VO,{scope:t,onClose:m.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})},`Menu`),WO=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,...r}=e,i=LO(n);return(0,h.jsx)(VD,{...i,...r,ref:t})},`MenuAnchor`)),GO=`MenuPortal`,[KO,qO]=FO(GO,{forceMount:void 0}),JO=Q(e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=BO(GO,t);return(0,h.jsx)(KO,{scope:t,forceMount:n,children:(0,h.jsx)(D_,{present:n||a.open,children:(0,h.jsx)(fC,{asChild:!0,container:i,children:r})})})},`MenuPortal`),YO=`MenuContent`,[XO,ZO]=FO(YO),QO=m.forwardRef(Q(function(e,t){let n=qO(YO,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=BO(YO,e.__scopeMenu),o=HO(YO,e.__scopeMenu);return(0,h.jsx)(MO.Provider,{scope:e.__scopeMenu,children:(0,h.jsx)(D_,{present:r||a.open,children:(0,h.jsx)(MO.Slot,{scope:e.__scopeMenu,children:o.modal?(0,h.jsx)($O,{...i,ref:t}):(0,h.jsx)(ek,{...i,ref:t})})})})},`MenuContent`)),$O=m.forwardRef(Q(function(e,t){let n=BO(YO,e.__scopeMenu),r=m.useRef(null),i=q(t,r);return m.useEffect(()=>{let e=r.current;if(e)return Iw(e)},[]),(0,h.jsx)(nk,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:J(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentModal`)),ek=m.forwardRef(Q(function(e,t){let n=BO(YO,e.__scopeMenu);return(0,h.jsx)(nk,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentNonModal`)),tk=Og(`MenuContent.ScrollLock`),nk=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:g,..._}=e,v=BO(YO,n),y=HO(YO,n),b=LO(n),x=RO(n),S=NO(n),[C,w]=m.useState(null),T=m.useRef(null),[E,D]=m.useState(null);$S(E);let{nodes:O,registry:k}=QS(),A=!!(i||g),j=q(t,T,v.onContentChange,D),M=m.useRef(0),N=m.useRef(``),P=m.useRef(0),F=m.useRef(null),ee=m.useRef(`right`),te=m.useRef(0),ne=m.useMemo(()=>g?[T,...O.map(e=>({current:e}))]:[],[T,O,g]),re=g?Dw:m.Fragment,ie=g?{as:tk,allowPinchZoom:!0,shards:ne}:void 0,ae=Q(e=>{let t=N.current+e,n=S().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=Sk(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;Q((function e(t){N.current=t,window.clearTimeout(M.current),t!==``&&(M.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(t),o&&setTimeout(()=>o.focus())},`handleTypeaheadSearch`);m.useEffect(()=>()=>window.clearTimeout(M.current),[]),vC();let oe=m.useCallback(e=>ee.current===F.current?.side&&wk(e,F.current?.area),[]);return(0,h.jsx)(XO,{scope:n,searchRef:N,onItemEnter:m.useCallback(e=>{oe(e)&&e.preventDefault()},[oe]),onItemLeave:m.useCallback(e=>{oe(e)||(T.current?.focus(),w(null))},[oe]),onTriggerLeave:m.useCallback(e=>{oe(e)&&e.preventDefault()},[oe]),pointerGraceTimerRef:P,onPointerGraceIntentChange:m.useCallback(e=>{F.current=e},[]),children:(0,h.jsx)(ZS,{registry:A?k:null,children:(0,h.jsx)(re,{...ie,children:(0,h.jsx)(YS,{asChild:!0,trapped:i,branches:O,onMountAutoFocus:J(a,e=>{e.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,h.jsx)(LS,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:(0,h.jsx)(_O,{asChild:!0,...x,dir:y.dir,orientation:`vertical`,loop:r,currentTabStopId:C,onCurrentTabStopIdChange:w,onEntryFocus:J(c,e=>{y.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,h.jsx)(GD,{role:`menu`,"aria-orientation":`vertical`,"data-state":_k(v.open),"data-radix-menu-content":``,dir:y.dir,...b,..._,ref:j,style:{outline:`none`,..._.style},onKeyDown:J(_.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&ae(e.key));let i=T.current;if(e.target!==i||!AO.includes(e.key))return;e.preventDefault();let a=S().filter(e=>!e.disabled).map(e=>e.ref.current);kO.includes(e.key)&&a.reverse(),bk(a)}),onBlur:J(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(M.current),N.current=``)}),onPointerMove:J(e.onPointerMove,Tk(e=>{let t=e.target,n=te.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>te.current?`right`:`left`;ee.current=t,te.current=e.clientX}}))})})})})})})})},`MenuContentImpl`)),rk=`MenuItem`,ik=`menu.itemSelect`,ak=m.forwardRef(Q(function(e,t){let{disabled:n=!1,onSelect:r,...i}=e,a=m.useRef(null),o=HO(rk,e.__scopeMenu),s=ZO(rk,e.__scopeMenu),c=q(t,a),l=m.useRef(!1),u=Q(()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(ik,{bubbles:!0,cancelable:!0});e.addEventListener(ik,e=>r?.(e),{once:!0}),C_(e,t),t.defaultPrevented?l.current=!1:o.onClose()}},`handleSelect`);return(0,h.jsx)(ok,{...i,ref:c,disabled:n,onClick:J(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:J(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:J(e.onKeyDown,e=>{n||e.target!==e.currentTarget||(s.searchRef.current===``||e.key!==` `)&&DO.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})},`MenuItem`)),ok=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=ZO(rk,n),s=RO(n),c=m.useRef(null),l=q(t,c),[u,d]=m.useState(!1),[f,p]=m.useState(``);return m.useEffect(()=>{let e=c.current;e&&p((e.textContent??``).trim())},[a.children]),(0,h.jsx)(MO.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,h.jsx)(bO,{asChild:!0,...s,focusable:!r,children:(0,h.jsx)(X.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:J(e.onPointerMove,Tk(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:J(e.onPointerLeave,Tk(e=>o.onItemLeave(e))),onFocus:J(e.onFocus,()=>d(!0)),onBlur:J(e.onBlur,()=>d(!1))})})})},`MenuItemImpl`)),sk=m.forwardRef(Q(function(e,t){let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,h.jsx)(dk,{scope:e.__scopeMenu,checked:n,children:(0,h.jsx)(ak,{role:`menuitemcheckbox`,"aria-checked":vk(n)?`mixed`:n,...i,ref:t,"data-state":yk(n),onSelect:J(i.onSelect,()=>r?.(vk(n)?!0:!n),{checkForDefaultPrevented:!1})})})},`MenuCheckboxItem`)),[ck,lk]=FO(`MenuRadioGroup`,{value:void 0,onValueChange:Q(()=>{},`onValueChange`)}),uk=`MenuItemIndicator`,[dk,fk]=FO(uk,{checked:!1}),pk=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,forceMount:r,...i}=e,a=fk(uk,n);return(0,h.jsx)(D_,{present:r||vk(a.checked)||a.checked===!0,children:(0,h.jsx)(X.span,{...i,ref:t,"data-state":yk(a.checked)})})},`MenuItemIndicator`)),mk=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,...r}=e;return(0,h.jsx)(X.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})},`MenuSeparator`)),[hk,gk]=FO(`MenuSub`);function _k(e){return e?`open`:`closed`}Q(_k,`getOpenState`);function vk(e){return e===`indeterminate`}Q(vk,`isIndeterminate`);function yk(e){return vk(e)?`indeterminate`:e?`checked`:`unchecked`}Q(yk,`getCheckedState`);function bk(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}Q(bk,`focusFirst`);function xk(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Q(xk,`wrapArray`);function Sk(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=xk(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}Q(Sk,`getNextMatch`);function Ck(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}Q(Ck,`isPointInPolygon`);function wk(e,t){return t?Ck({x:e.clientX,y:e.clientY},t):!1}Q(wk,`isPointerInGraceArea`);function Tk(e){return t=>t.pointerType===`mouse`?e(t):void 0}Q(Tk,`whenMouse`);var Ek=Object.defineProperty,Dk=(e,t)=>Ek(e,`name`,{value:t,configurable:!0}),Ok=`DropdownMenu`,[kk,Ak]=yg(Ok,[IO]),jk=IO(),[Mk,Nk]=kk(Ok),Pk=Dk(e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=jk(t),l=m.useRef(null),[u,d]=g_({prop:i,defaultProp:a??!1,onChange:o,caller:Ok});return(0,h.jsx)(Mk,{scope:t,triggerId:L_(),triggerRef:l,contentId:L_(),open:u,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,h.jsx)(UO,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})},`DropdownMenu`),Fk=`DropdownMenuTrigger`,Ik=m.forwardRef(Dk(function(e,t){let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Nk(Fk,n),o=jk(n),s=q(t,a.triggerRef);return(0,h.jsx)(WO,{asChild:!0,...o,children:(0,h.jsx)(X.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:s,onPointerDown:J(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:J(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})},`DropdownMenuTrigger`)),Lk=Dk(e=>{let{__scopeDropdownMenu:t,...n}=e,r=jk(t);return(0,h.jsx)(JO,{...r,...n})},`DropdownMenuPortal`),Rk=`DropdownMenuContent`,zk=m.forwardRef(Dk(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Nk(Rk,n),a=jk(n),o=m.useRef(!1);return(0,h.jsx)(QO,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:J(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:J(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`DropdownMenuContent`)),Bk=m.forwardRef(Dk(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=jk(n);return(0,h.jsx)(ak,{...i,...r,ref:t})},`DropdownMenuItem`)),Vk=m.forwardRef(Dk(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=jk(n);return(0,h.jsx)(sk,{...i,...r,ref:t})},`DropdownMenuCheckboxItem`)),Hk=m.forwardRef(Dk(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=jk(n);return(0,h.jsx)(pk,{...i,...r,ref:t})},`DropdownMenuItemIndicator`)),Uk=m.forwardRef(Dk(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=jk(n);return(0,h.jsx)(mk,{...i,...r,ref:t})},`DropdownMenuSeparator`)),Wk={trigger:`_trigger_26wmo_1`,item:`_item_26wmo_7`,triggerIcon:`_triggerIcon_26wmo_8`,triggerIconOnly:`_triggerIconOnly_26wmo_10`,label:`_label_26wmo_11`,labelMeasure:`_labelMeasure_26wmo_12`,labelText:`_labelText_26wmo_13`,chevron:`_chevron_26wmo_14`,menu:`_menu_26wmo_18`,"menu-exit":`_menu-exit_26wmo_1`,highlight:`_highlight_26wmo_28`,icon:`_icon_26wmo_31`,separator:`_separator_26wmo_32`,destructive:`_destructive_26wmo_33`};function Gk({text:e}){let t=H(),n=(0,m.useRef)(null),r=(0,m.useRef)(null),[i,a]=(0,m.useState)({width:`auto`,animate:!1});return(0,m.useLayoutEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(([t])=>{let n=e.textContent,i=r.current!==null&&r.current!==n;r.current=n,a({width:Math.ceil(t.borderBoxSize?.[0]?.inlineSize??e.offsetWidth),animate:i})});return t.observe(e),()=>t.disconnect()},[]),(0,h.jsxs)(U.span,{className:Wk.label,initial:!1,animate:{width:i.width},transition:i.animate&&!t?Z.spring.morph:{duration:0},children:[(0,h.jsx)(`span`,{ref:n,className:Wk.labelMeasure,"aria-hidden":`true`,children:e}),(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(U.span,{className:Wk.labelText,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:e},e)})]})}function Kk({label:e,items:t,icon:n,iconOnly:r}){let i=H(),[a,o]=(0,m.useState)(null),s=(0,m.useRef)(!1),c=(0,m.useRef)(0);(0,m.useEffect)(()=>()=>window.clearTimeout(c.current),[]);function l(e){let t=e.target instanceof HTMLElement?e.target.closest(`[role="menuitem"]`):null;if(window.clearTimeout(c.current),!t){c.current=window.setTimeout(()=>o(null),s.current?70:0);return}let n={top:t.offsetTop,height:t.offsetHeight,danger:t.dataset.tone===`danger`},r=s.current;o(e=>({...n,glide:r&&e!==null}))}return(0,h.jsxs)(Pk,{onOpenChange:e=>{e&&(window.clearTimeout(c.current),o(null))},children:[(0,h.jsxs)(Ik,{className:[Wk.trigger,r?Wk.triggerIconOnly:``].filter(Boolean).join(` `),type:`button`,"aria-label":r?e:void 0,children:[n&&(0,h.jsx)(`span`,{className:Wk.triggerIcon,"aria-hidden":`true`,children:n}),!r&&(0,h.jsx)(Gk,{text:e}),!r&&(0,h.jsx)(ey,{className:Wk.chevron,size:15,strokeWidth:1.8,"aria-hidden":`true`})]}),(0,h.jsx)(Lk,{children:(0,h.jsxs)(zk,{className:Wk.menu,sideOffset:6,align:`end`,collisionPadding:12,loop:!0,onFocus:l,onPointerMoveCapture:()=>{s.current=!0},onKeyDownCapture:()=>{s.current=!1},children:[(0,h.jsx)(U.span,{className:Wk.highlight,"data-tone":a?.danger?`danger`:void 0,"aria-hidden":`true`,initial:!1,animate:a?{y:a.top,height:a.height,opacity:1}:{opacity:0},transition:{default:a?.glide&&!i?Z.spring.snappy:{duration:0},opacity:{duration:i?0:.08}}}),t.map((e,t)=>(0,h.jsxs)(m.Fragment,{children:[e.separatorBefore&&(0,h.jsx)(Uk,{className:Wk.separator}),(0,h.jsxs)(Bk,{className:[Wk.item,e.destructive?Wk.destructive:``].filter(Boolean).join(` `),"data-tone":e.destructive?`danger`:void 0,style:{"--i":t},disabled:e.disabled,onSelect:e.onSelect,children:[e.icon&&(0,h.jsx)(`span`,{className:Wk.icon,"aria-hidden":`true`,children:e.icon}),e.label]})]},e.label))]})})]})}var qk=Object.defineProperty,Jk=(e,t)=>qk(e,`name`,{value:t,configurable:!0});function Yk(e,[t,n]){return Math.min(n,Math.max(t,e))}Jk(Yk,`clamp`);var Xk=Object.defineProperty,Zk=(e,t)=>Xk(e,`name`,{value:t,configurable:!0});function Qk(e){let t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}Zk(Qk,`usePrevious`);var $k=Object.defineProperty,eA=(e,t)=>$k(e,`name`,{value:t,configurable:!0}),tA=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),nA=m.forwardRef(eA(function(e,t){return(0,h.jsx)(X.span,{...e,ref:t,style:{...tA,...e.style}})},`VisuallyHidden`)),rA=Object.defineProperty,$=(e,t)=>rA(e,`name`,{value:t,configurable:!0}),iA={ItemAligned:`item-aligned`,Popper:`popper`},aA={LTR:`ltr`,RTL:`rtl`},oA=[` `,`Enter`,`ArrowUp`,`ArrowDown`],sA=[` `,`Enter`],cA=`Select`,[lA,uA,dA]=Wg(cA),[fA,pA]=yg(cA,[dA,ID]),mA=ID(),[hA,gA]=fA(cA),[_A,vA]=fA(cA);function yA(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:g,internal_do_not_use_render:_}=e,v=mA(t),[y,b]=m.useState(null),[x,S]=m.useState(null),[C,w]=m.useState(!1),T=nv(l),[E,D]=g_({prop:r,defaultProp:i??!1,onChange:a,caller:cA}),[O,k]=g_({prop:o,defaultProp:s,onChange:c,caller:cA}),A=m.useRef(null),j=m.useRef(O);m.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=$(()=>k(j.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,k]);let M=!y||!!g||!!y.closest(`form`),[N,P]=m.useState(new Set),F=L_(),ee=Array.from(N).map(e=>e.props.value).join(`;`),te=m.useCallback(e=>{P(t=>new Set(t).add(e))},[]),ne=m.useCallback(e=>{P(t=>{let n=new Set(t);return n.delete(e),n})},[]),re={required:p,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:w,contentId:F,value:O,onValueChange:k,open:E,onOpenChange:D,dir:T,triggerPointerDownPosRef:A,disabled:f,name:u,autoComplete:d,form:g,nativeOptions:N,nativeSelectKey:ee,isFormControl:M};return(0,h.jsx)(zD,{...v,children:(0,h.jsx)(hA,{scope:t,...re,children:(0,h.jsx)(lA.Provider,{scope:t,children:(0,h.jsx)(_A,{scope:t,onNativeOptionAdd:te,onNativeOptionRemove:ne,children:oj(_)?_(re):n})})})})}$(yA,`SelectProvider`);var bA=$(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,h.jsx)(yA,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,h.jsxs)(h.Fragment,{children:[n,e?(0,h.jsx)(aj,{__scopeSelect:t}):null]})})},`Select`),xA=`SelectTrigger`,SA=m.forwardRef($(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=mA(n),o=gA(xA,n),s=o.disabled||r,c=q(t,o.onTriggerChange),l=uA(n),u=m.useRef(`touch`),[d,f,p]=cj(e=>{let t=l().filter(e=>!e.disabled),n=lj(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),g=$(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,h.jsx)(VD,{asChild:!0,...a,children:(0,h.jsx)(X.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":sj(o.value)?``:void 0,...i,ref:c,onClick:J(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&g(e)}),onPointerDown:J(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:J(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&oA.includes(e.key)&&(g(),e.preventDefault())})})})},`SelectTrigger`)),CA=`SelectValue`,wA=m.forwardRef($(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=gA(CA,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=q(t,c.onValueNodeChange);Y(()=>{l(u)},[l,u]);let f=sj(c.value);return(0,h.jsx)(X.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,h.jsx)(m.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),TA=m.forwardRef($(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,h.jsx)(X.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[EA,DA]=fA(`SelectPortal`,{forceMount:void 0}),OA=$(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,h.jsx)(EA,{scope:e.__scopeSelect,forceMount:n,children:(0,h.jsx)(fC,{asChild:!0,...r})})},`SelectPortal`),kA=`SelectContent`,AA=m.forwardRef($(function(e,t){let n=DA(kA,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=gA(kA,e.__scopeSelect),[o,s]=m.useState();return Y(()=>{s(new DocumentFragment)},[]),(0,h.jsx)(D_,{present:r||a.open,children:({present:e})=>e?(0,h.jsx)(IA,{...i,ref:t}):(0,h.jsx)(jA,{...i,fragment:o})})},`SelectContent`)),jA=m.forwardRef($(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?Tg.createPortal((0,h.jsx)(NA,{scope:n,children:(0,h.jsx)(lA.Slot,{scope:n,children:(0,h.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),MA=10,[NA,PA]=fA(kA),FA=Og(`SelectContent.RemoveScroll`),IA=m.forwardRef($(function(e,t){let{__scopeSelect:n}=e,{position:r=iA.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:g,hideWhenDetached:_,avoidCollisions:v,...y}=e,b=gA(kA,n),[x,S]=m.useState(null),[C,w]=m.useState(null),T=q(t,S),[E,D]=m.useState(null),[O,k]=m.useState(null),A=uA(n),[j,M]=m.useState(!1),N=m.useRef(!1);m.useEffect(()=>{if(x)return Iw(x)},[x]),vC();let P=m.useCallback(e=>{let[t,...n]=A().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&C&&(C.scrollTop=0),n===r&&C&&(C.scrollTop=C.scrollHeight),n?.focus(),document.activeElement!==i))return},[A,C]),F=m.useCallback(()=>P([E,x]),[P,E,x]);m.useEffect(()=>{j&&F()},[j,F]);let{onOpenChange:ee,triggerPointerDownPosRef:te}=b;m.useEffect(()=>{if(x){let e={x:0,y:0},t=$(t=>{e={x:Math.abs(Math.round(t.pageX)-(te.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(te.current?.y??0))}},`handlePointerMove`),n=$(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(x)||ee(!1),document.removeEventListener(`pointermove`,t),te.current=null},`handlePointerUp`);return te.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[x,ee,te]),m.useEffect(()=>{let e=$(()=>ee(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[ee]);let[ne,re]=cj(e=>{let t=A().filter(e=>!e.disabled),n=lj(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ie=m.useCallback((e,t,n)=>{let r=!N.current&&!n;(b.value!==void 0&&b.value===t||r)&&(D(e),r&&(N.current=!0))},[b.value]),ae=m.useCallback(()=>x?.focus(),[x]),oe=m.useCallback((e,t,n)=>{let r=!N.current&&!n;(b.value!==void 0&&b.value===t||r)&&k(e)},[b.value]),se=r===iA.Popper?RA:LA,ce=se===RA?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:g,hideWhenDetached:_,avoidCollisions:v}:{};return(0,h.jsx)(NA,{scope:n,content:x,viewport:C,onViewportChange:w,itemRefCallback:ie,selectedItem:E,onItemLeave:ae,itemTextRefCallback:oe,focusSelectedItem:F,selectedItemText:O,position:r,isPositioned:j,searchRef:ne,children:(0,h.jsx)(Dw,{as:FA,allowPinchZoom:!0,children:(0,h.jsx)(YS,{asChild:!0,trapped:b.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:J(i,e=>{b.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,h.jsx)(LS,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>b.onOpenChange(!1),children:(0,h.jsx)(se,{role:`listbox`,id:b.contentId,"data-state":b.open?`open`:`closed`,dir:b.dir,onContextMenu:e=>e.preventDefault(),...y,...ce,onPlaced:()=>M(!0),ref:T,style:{display:`flex`,flexDirection:`column`,outline:`none`,...y.style},onKeyDown:J(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&re(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=A().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>P(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),LA=m.forwardRef($(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=gA(kA,n),o=PA(kA,n),[s,c]=m.useState(null),[l,u]=m.useState(null),d=q(t,u),f=uA(n),p=m.useRef(!1),g=m.useRef(!0),{viewport:_,selectedItem:v,selectedItemText:y,focusSelectedItem:b}=o,x=m.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&_&&v&&y){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=y.getBoundingClientRect();if(a.dir!==aA.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-MA,d=Yk(a,[MA,Math.max(MA,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-MA,d=Yk(a,[MA,Math.max(MA,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-MA*2,u=_.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),g=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+h+u+b+g,S=Math.min(v.offsetHeight*5,x),C=window.getComputedStyle(_),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-MA,D=c-E,O=v.offsetHeight/2,k=v.offsetTop+O,A=m+h+k,j=x-A;if(A<=E){let e=o.length>0&&v===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-_.offsetTop-_.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+g);s.style.height=n+`px`}else{let e=o.length>0&&v===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+_.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,_.scrollTop=A-E+_.offsetTop}s.style.margin=`${MA}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,_,v,y,a.dir,r]);Y(()=>x(),[x]);let[S,C]=m.useState();Y(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]);let w=m.useCallback(e=>{e&&g.current===!0&&(x(),b?.(),g.current=!1)},[x,b]);return(0,h.jsx)(zA,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:w,children:(0,h.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,h.jsx)(X.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),RA=m.forwardRef($(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=MA,...a}=e,o=mA(n);return(0,h.jsx)(GD,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[zA,BA]=fA(kA,{}),VA=`SelectViewport`,HA=m.forwardRef($(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=PA(VA,n),o=BA(VA,n),s=q(t,a.onViewportChange),c=m.useRef(0);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,h.jsx)(lA.Slot,{scope:n,children:(0,h.jsx)(X.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:J(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-MA*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[UA,WA]=fA(`SelectGroup`),GA=`SelectItem`,[KA,qA]=fA(GA),JA=m.forwardRef($(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=gA(GA,n),c=PA(GA,n),l=s.value===r,[u,d]=m.useState(a??``),[f,p]=m.useState(!1),g=q(t,kS(e=>c.itemRefCallback?.(e,r,i))),_=L_(),v=m.useRef(`touch`),y=$(()=>{s.onValueChange(r),s.onOpenChange(!1)},`handleSelect`);return(0,h.jsx)(KA,{scope:n,value:r,disabled:i,textId:_,isSelected:l,onItemTextChange:m.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,h.jsx)(lA.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,h.jsx)(X.div,{role:`option`,"aria-labelledby":_,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:g,onFocus:J(o.onFocus,()=>p(!0)),onBlur:J(o.onBlur,()=>p(!1)),onClick:J(o.onClick,()=>{i||v.current!==`mouse`&&y()}),onPointerUp:J(o.onPointerUp,()=>{i||v.current===`mouse`&&y()}),onPointerDown:J(o.onPointerDown,e=>{v.current=e.pointerType}),onPointerMove:J(o.onPointerMove,e=>{v.current=e.pointerType,i?c.onItemLeave?.():v.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:J(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:J(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(sA.includes(e.key)&&y(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),YA=`SelectItemText`,XA=m.forwardRef($(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=gA(YA,n),s=PA(YA,n),c=qA(YA,n),l=vA(YA,n),[u,d]=m.useState(null),f=kS(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=q(t,d,c.onItemTextChange,f),g=u?.textContent,_=m.useMemo(()=>(0,h.jsx)(`option`,{value:c.value,disabled:c.disabled,children:g},c.value),[c.disabled,c.value,g]),{onNativeOptionAdd:v,onNativeOptionRemove:y}=l;return Y(()=>(v(_),()=>y(_)),[v,y,_]),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(X.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!sj(o.value)?Tg.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),ZA=`SelectItemIndicator`,QA=m.forwardRef($(function(e,t){let{__scopeSelect:n,...r}=e;return qA(ZA,n).isSelected?(0,h.jsx)(X.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),$A=`SelectScrollUpButton`,ej=m.forwardRef($(function(e,t){let n=PA($A,e.__scopeSelect),r=BA($A,e.__scopeSelect),[i,a]=m.useState(!1),o=q(t,r.onScrollButtonChange);return Y(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};$(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,h.jsx)(rj,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),tj=`SelectScrollDownButton`,nj=m.forwardRef($(function(e,t){let n=PA(tj,e.__scopeSelect),r=BA(tj,e.__scopeSelect),[i,a]=m.useState(!1),o=q(t,r.onScrollButtonChange);return Y(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};$(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,h.jsx)(rj,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),rj=m.forwardRef($(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=PA(`SelectScrollButton`,n),o=m.useRef(null),s=uA(n),c=m.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return m.useEffect(()=>()=>c(),[c]),Y(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,h.jsx)(X.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:J(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:J(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:J(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),ij=`SelectBubbleInput`,aj=m.forwardRef($(function({__scopeSelect:e,...t},n){let r=gA(ij,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=m.useRef(null),g=q(n,p),_=i??``,v=Qk(_),y=Array.from(d).some(e=>(e.props.value??``)===``);return m.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==_&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,_),e.dispatchEvent(t)}},[v,_]),(0,h.jsxs)(X.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...tA,...t.style},ref:g,defaultValue:_,children:[sj(i)&&!y?(0,h.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function oj(e){return typeof e==`function`}$(oj,`isFunction`);function sj(e){return e===``||e===void 0}$(sj,`shouldShowPlaceholder`);function cj(e){let t=kS(e),n=m.useRef(``),r=m.useRef(0),i=m.useCallback(e=>{let i=n.current+e;t(i),$((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=m.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}$(cj,`useTypeaheadSearch`);function lj(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=uj(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}$(lj,`findNextItem`);function uj(e,t){return e.map((n,r)=>e[(t+r)%e.length])}$(uj,`wrapArray`);var dj={field:`_field_1a9q6_1`,trigger:`_trigger_1a9q6_4`,valueText:`_valueText_1a9q6_9`,srOnly:`_srOnly_1a9q6_12`,chevron:`_chevron_1a9q6_13`,hint:`_hint_1a9q6_15`,content:`_content_1a9q6_18`,"select-in":`_select-in_1a9q6_1`,"select-out":`_select-out_1a9q6_1`,viewport:`_viewport_1a9q6_23`,item:`_item_1a9q6_24`,indicator:`_indicator_1a9q6_27`,"indicator-in":`_indicator-in_1a9q6_1`,scrollButton:`_scrollButton_1a9q6_28`,"select-fade":`_select-fade_1a9q6_1`,"select-fade-out":`_select-fade-out_1a9q6_1`},fj={enter:e=>({opacity:0,y:`${e*.35}em`,filter:`blur(${Z.blur.soft}px)`}),center:{opacity:1,y:0,filter:`blur(0px)`,transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]}},exit:e=>({opacity:0,y:`${e*-.3}em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}})},pj={enter:{opacity:0},center:{opacity:1,y:0,filter:`blur(0px)`,transition:{duration:Z.duration.instant}},exit:{opacity:0,transition:{duration:Z.duration.instant}}},mj=(0,m.forwardRef)(function({label:e,description:t,placeholder:n=`Select an option`,options:r,id:i,className:a,disabled:o,onValueChange:s,...c},l){let u=(0,m.useId)(),d=i??u,f=t?`${d}-description`:void 0,p=H(),[g,_]=(0,m.useState)(c.defaultValue??``),v=c.value??g,y=r.findIndex(e=>e.value===v),b=v?r[y]?.label??``:n,[x,S]=(0,m.useState)(y),[C,w]=(0,m.useState)(1);return x!==y&&(S(y),w(y>x?1:-1)),(0,h.jsxs)(`div`,{className:dj.field,children:[(0,h.jsx)(`label`,{htmlFor:d,children:e}),(0,h.jsxs)(bA,{...c,disabled:o,onValueChange:e=>{_(e),s?.(e)},children:[(0,h.jsxs)(SA,{ref:l,id:d,"aria-describedby":f,className:[dj.trigger,a].filter(Boolean).join(` `),children:[(0,h.jsx)(`span`,{className:dj.srOnly,children:(0,h.jsx)(wA,{placeholder:n})}),(0,h.jsx)(`span`,{className:dj.valueText,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,custom:C,children:(0,h.jsx)(U.span,{"data-placeholder":v?void 0:``,custom:C,variants:p?pj:fj,initial:`enter`,animate:`center`,exit:`exit`,children:b},v?`value-${v}`:`placeholder`)})}),(0,h.jsx)(TA,{className:dj.chevron,children:(0,h.jsx)(ey,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]}),(0,h.jsx)(OA,{children:(0,h.jsxs)(AA,{className:dj.content,position:`popper`,sideOffset:4,collisionPadding:12,children:[(0,h.jsx)(ej,{className:dj.scrollButton,children:(0,h.jsx)(ny,{size:16,strokeWidth:1.75,"aria-hidden":`true`})}),(0,h.jsx)(HA,{className:dj.viewport,children:r.map(e=>(0,h.jsxs)(JA,{value:e.value,disabled:e.disabled,className:dj.item,children:[(0,h.jsx)(XA,{children:e.label}),(0,h.jsx)(QA,{className:dj.indicator,children:(0,h.jsx)(Qv,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]},e.value))}),(0,h.jsx)(nj,{className:dj.scrollButton,children:(0,h.jsx)(ey,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]})})]}),t&&(0,h.jsx)(`span`,{id:f,className:dj.hint,children:t})]})}),hj={toast:`_toast_c20vg_1`,icon:`_icon_c20vg_16`,frame:`_frame_c20vg_28`,copy:`_copy_c20vg_34`,title:`_title_c20vg_43`,line:`_line_c20vg_52`,description:`_description_c20vg_59`,close:`_close_c20vg_66`},gj=()=>()=>{},_j={duration:Z.duration.fast,ease:[...Z.ease.standard]},vj={duration:Z.duration.standard,ease:[...Z.ease.enter]},yj={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},bj={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:_j},xj={opacity:1,y:`0em`,filter:`blur(0px)`},Sj={opacity:0,transition:{duration:Z.duration.instant}},Cj={distance:80,velocity:480};function wj(e){let t=Mu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function Tj({reduce:e,morphKey:t,children:n}){let r=(0,m.useRef)(null),i=(0,m.useRef)(null),a=Ff(`auto`),o=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{o.current=performance.now()},[t]),(0,m.useEffect)(()=>{let t=i.current;if(!t||typeof ResizeObserver>`u`)return;let n,s,c=()=>{a.jump(`auto`),r.current&&Object.assign(r.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([i])=>{let l=i.borderBoxSize?.[0]?.blockSize??t.offsetHeight,u=a.get(),d=typeof u==`number`?u:n;if(n=l,s?.stop(),e||d===void 0||d===l||performance.now()-o.current>120)return c();r.current&&Object.assign(r.current.style,{overflow:`hidden`,height:`${d}px`}),s=ip(a,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(t),()=>{l.disconnect(),s?.stop()}},[a,e]),(0,h.jsx)(U.div,{ref:r,className:hj.frame,style:{height:a},children:(0,h.jsx)(`div`,{ref:i,className:hj.copy,children:n})})}function Ej({title:e,description:t,open:n=!0,onOpenChange:r,duration:i=4500}){let a=H(),o=(0,m.useSyncExternalStore)(gj,()=>!0,()=>!1),[s]=(0,m.useState)(o),[c,l]=(0,m.useState)(!1),[u,d]=(0,m.useState)(0),[f,p]=(0,m.useState)(n);n!==f&&(p(n),n&&(l(!1),d(0)));let g=n&&!c,_=(0,m.useRef)(null),v=Ff(0),y=(0,m.useRef)(0);function b(e){d(e),l(!0),r?.(!1)}(0,m.useEffect)(()=>{if(!g||!r||i<=0)return;let e=window.setTimeout(()=>{d(0),l(!0),r(!1)},i);return()=>window.clearTimeout(e)},[g,r,i]);function x(e,t){let n=Math.sign(t.offset.x||t.velocity.x);if(Math.abs(t.offset.x)<Cj.distance&&Math.abs(t.velocity.x)<Cj.velocity){ip(v,0,{...Z.spring.snappy,velocity:t.velocity.x});return}y.current=t.velocity.x,b(n*((_.current?.offsetWidth??320)+48))}let S=a?{hidden:{opacity:0},shown:{opacity:1,transition:{duration:Z.duration.instant}},exit:Sj}:{hidden:{opacity:0,x:0,y:16,scale:.96},shown:{opacity:1,x:0,y:0,scale:1,transition:{...Z.spring.morph,opacity:vj}},exit:e=>e?{x:e,opacity:0,transition:{x:{type:`spring`,visualDuration:.3,bounce:0,velocity:y.current,restDelta:2,restSpeed:40},opacity:{duration:Z.duration.exit}}}:{opacity:0,y:8,scale:.97,transition:{duration:Z.duration.exit,ease:[...Z.ease.standard]}}},C={initial:a?{opacity:0}:yj,animate:xj,exit:a?Sj:bj,transition:a?{duration:Z.duration.instant}:vj};return(0,h.jsx)(V,{initial:s,custom:u,children:g&&(0,h.jsxs)(U.div,{ref:_,className:hj.toast,role:`status`,"aria-live":`polite`,"aria-atomic":`true`,custom:u,variants:S,initial:`hidden`,animate:`shown`,exit:`exit`,style:{x:v},drag:a&&o?!1:`x`,dragMomentum:!1,onDragEnd:x,children:[(0,h.jsx)(`span`,{className:hj.icon,"aria-hidden":`true`,children:(0,h.jsx)(`svg`,{width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2.25,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,h.jsx)(U.path,{d:`M4 12.5l5 5L20 6.5`,initial:!a&&{pathLength:0},animate:{pathLength:1},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter],delay:.12}})})}),(0,h.jsxs)(Tj,{reduce:a,morphKey:`${e}\n${t??``}`,children:[(0,h.jsx)(`strong`,{className:hj.title,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(wj,{className:hj.line,...C,children:e},e)})}),(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:t?(0,h.jsx)(wj,{className:hj.description,...C,children:t},t):null})]}),(0,h.jsx)(`button`,{className:hj.close,type:`button`,"aria-label":`Dismiss notification`,onClick:()=>b(0),children:(0,h.jsx)(wy,{width:16,height:16,strokeWidth:2,"aria-hidden":`true`})})]},`toast`)})}function Dj({open:e,onOpenChange:t,title:n,description:r,children:i,footer:a,width:o=460}){return(0,h.jsx)(mT,{open:e,onOpenChange:t,children:(0,h.jsxs)(vT,{title:n,description:r,style:{width:`min(calc(100vw - 2rem), ${o}px)`},children:[i,a&&(0,h.jsx)(`div`,{className:pg(`flex flex-wrap items-center justify-end gap-2`,i!==void 0&&`mt-6`),children:a})]})})}function Oj({label:e,icon:t,items:n,iconOnly:r}){return(0,h.jsx)(Kk,{label:e,icon:t,iconOnly:r,items:n.map(e=>({label:e.label,icon:e.icon,destructive:e.destructive,disabled:e.disabled,separatorBefore:e.separatorBefore,onSelect:e.onSelect}))})}var kj=`__astra_empty__`,Aj=e=>e===``?kj:e,jj=e=>e===kj?``:e,Mj=12;function Nj({value:e,onChange:t,options:n,placeholder:r,className:i,disabled:a,label:o,ariaLabel:s}){let c=ug(),l=n.find(t=>t.value===e),u=Ux(o,s??r??l?.label),d=pg(`min-w-0`,u.hidden&&`astra-label-hidden`,i);return n.length>Mj?(0,h.jsx)(`div`,{className:d,children:(0,h.jsx)(ES,{label:u.label,description:u.field?.description,placeholder:r??c(`common.search`),emptyMessage:c(`common.noResults`),value:e==null?``:Aj(e),onValueChange:e=>t(jj(e)),options:n.map(e=>({value:Aj(e.value),label:e.detail&&e.detail!==e.label?`${e.label} · ${e.detail}`:e.label,disabled:e.disabled,keywords:e.detail?[e.detail]:void 0}))})}):(0,h.jsx)(`div`,{className:d,children:(0,h.jsx)(mj,{label:u.label,description:u.field?.description,placeholder:r??c(`common.select`),disabled:a,value:e==null||e===``&&!l?``:Aj(e),onValueChange:e=>t(jj(e)),options:n.map(e=>({value:Aj(e.value),label:e.label,disabled:e.disabled}))})})}var Pj=(0,m.createContext)(null);function Fj({children:e}){let t=ug(),[n,r]=(0,m.useState)([]),[i,a]=(0,m.useState)(null),o=(0,m.useRef)(0),s=(0,m.useCallback)(e=>r(t=>t.filter(t=>t.id!==e)),[]),c=(0,m.useCallback)((e,t=`info`)=>{let n=++o.current;r(r=>[...r.slice(-2),{id:n,tone:t,text:e}]),t===`error`&&setTimeout(()=>s(n),8e3)},[s]),l=(0,m.useCallback)(e=>new Promise(t=>a({...e,resolve:t})),[]),u=e=>{i?.resolve(e),a(null)};return(0,h.jsxs)(Pj.Provider,{value:{toast:c,confirm:l},children:[e,(0,h.jsx)(`div`,{className:`pointer-events-none fixed inset-x-0 bottom-5 z-[95] flex flex-col items-center gap-2 px-4`,children:n.map(e=>e.tone===`error`?(0,h.jsx)(`div`,{className:`pointer-events-auto w-[min(100%,26rem)] selectable`,children:(0,h.jsx)(CS,{tone:`danger`,title:t(`common.error`),onDismiss:()=>s(e.id),children:e.text})},e.id):(0,h.jsx)(`div`,{className:`pointer-events-auto flex w-full justify-center`,children:(0,h.jsx)(Ej,{title:e.text,open:!0,onOpenChange:t=>!t&&s(e.id)})},e.id))}),(0,h.jsx)(Dj,{open:i!==null,onOpenChange:e=>!e&&u(!1),title:i?.title??``,description:i?.detail,width:420,footer:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Kx,{onClick:()=>u(!1),children:t(`common.cancel`)}),(0,h.jsx)(Kx,{variant:i?.destructive?`destructive`:`primary`,onClick:()=>u(!0),autoFocus:!0,children:i?.confirmLabel??t(`common.confirm`)})]})})]})}function Ij(){let e=(0,m.useContext)(Pj);if(!e)throw Error(`useFeedback outside FeedbackProvider`);return e}function Lj(e){return e instanceof Error?e.message:String(e)}var Rj=1e9;function zj(e){return e/Rj}function Bj(e,t={}){if(e==null||Number.isNaN(e))return`—`;let n=Math.abs(e);return n===0?`$0`:t.compact&&n>=1e3?`$${new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e)}`:n>=1?`$${new Intl.NumberFormat(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}`:`$${new Intl.NumberFormat(`en-US`,{maximumSignificantDigits:3,maximumFractionDigits:10}).format(e)}`}function Vj(e){return e===0?`$0`:Math.abs(e)>=1e3?Bj(e,{compact:!0}):`$${new Intl.NumberFormat(`en-US`,{maximumSignificantDigits:2,maximumFractionDigits:10}).format(e)}`}function Hj(e){return e==null?`—`:Bj(zj(e))}function Uj(e){if(e==null||e===``)return`—`;let t=typeof e==`string`?Number(e):e;return Number.isNaN(t)?String(e):`$${Number(t.toPrecision(8))}`}function Wj(e,t=!1){return e==null?`—`:t&&Math.abs(e)>=1e4?new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e):new Intl.NumberFormat(`en-US`).format(e)}function Gj(e){return e==null?`—`:e>=1e4?`${(e/1e3).toFixed(1)} s`:`${Math.round(e)} ms`}function Kj(e){return e==null||!Number.isFinite(e)||e<0?`—`:`${e.toFixed(1)} tok/s`}function qj(e){return e==null||Number.isNaN(e)?`—`:`${(e*100).toFixed(e>=.999||e===0?0:1)}%`}function Jj(e){return e?e>=1e6?`${Number((e/1e6).toFixed(2))}M`:e>=1e3?`${Math.round(e/1e3)}K`:String(e):`—`}function Yj(e,t){let n=new Date(e),r=new Date,i=n.toDateString()===r.toDateString();return new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en-US`,{...i?{second:`2-digit`}:{month:`2-digit`,day:`2-digit`},hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(n)}function Xj(e,t){return e?new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(new Date(e)):`—`}var Zj=e=>e===`zh`?`zh-CN`:`en-US`;function Qj(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r)}function $j(e,t,n,r,i){return`${new Intl.DateTimeFormat(Zj(n),{weekday:`short`,month:`short`,day:`numeric`,year:`numeric`}).format(Qj(e))} · ${t>0?`${t} ${r}`:i}`}var eM=(e,t)=>new Intl.DateTimeFormat(Zj(t),{month:`short`}).format(new Date(2026,e-1,1)),tM=(e,t,n)=>new Intl.DateTimeFormat(Zj(n),{month:`short`,year:`numeric`}).format(new Date(t,e-1,1)),nM=(e,t)=>new Intl.DateTimeFormat(Zj(t),{weekday:`short`}).format(new Date(2026,7,3+e));function rM(e){if(!e?.base)return`—`;let t=e.base.input,n=e.base.output;return t==null&&n==null?`—`:`${Uj(t)} / ${Uj(n)}`}function iM(e){if(e==null)return``;if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)}export{sS as $,me as $i,Jh as $n,tm as $r,gm as $t,Lk as A,xo as Ai,Rm as An,uh as Ar,L_ as At,Ww as B,Je as Bi,Qh as Bn,Kh as Br,mg as Bt,Ij as C,H as Ci,lm as Cn,yh as Cr,gy as Ct,zk as D,Mu as Di,nh as Dn,rh as Dr,Qv as Dt,Vk as E,V as Ei,om as En,gh as Er,ey as Et,fO as F,B as Fi,Lh as Fn,qp as Fr,J as Ft,Xw as G,Ke as Gi,Xh as Gn,Jp as Gr,K as Gt,nT as H,Ye as Hi,Fp as Hn,Kp as Hr,cg as Ht,zD as I,et as Ii,Lm as In,oh as Ir,Ag as It,fC as J,Le as Ji,kh as Jn,fh as Jr,um as Jt,oT as K,We as Ki,Zh as Kn,cm as Kr,Vh as Kt,VD as L,$e as Li,Bm as Ln,Wh as Lr,q as Lt,Ik as M,ya as Mi,$h as Mn,Qm as Mr,X as Mt,_O as N,kr as Ni,$p as Nn,nm as Nr,g_ as Nt,Bk as O,ju as Oi,Ep as On,vh as Or,Xv as Ot,bO as P,cr as Pi,Qp as Pn,jp as Pr,Y as Pt,Kx as Q,_e as Qi,Gh as Qn,bm as Qr,jh as Qt,GD as R,L as Ri,kp as Rn,Fm as Rr,yg as Rt,Lj as S,ip as Si,th as Sn,xh as Sr,by as St,Pk as T,Vu as Ti,Dm as Tn,Hp as Tr,iy as Tt,sT as U,Ge as Ui,Ph as Un,Gp as Ur,lg as Ut,lT as V,Xe as Vi,Ip as Vn,Mm as Vr,pg as Vt,Qw as W,qe as Wi,qh as Wn,fm as Wr,ug as Wt,CS as X,De as Xi,Bh as Xn,Bp as Xr,km as Xt,LS as Y,je as Yi,Rh as Yn,Th as Yr,Hm as Yt,rS as Z,ve as Zi,zh as Zn,Mh as Zr,Eh as Zt,nM as _,s as _a,vp as _i,Wp as _n,dm as _r,wb as _t,Hj as a,O as aa,hh as ai,Pp as an,Lp as ar,Qx as at,Nj as b,op as bi,vm as bn,jm as br,wy as bt,Wj as c,P as ca,yp as ci,ah as cn,Cm as cr,Xx as ct,Bj as d,se as da,G as di,zm as dn,wm as dr,qx as dt,pe as ea,Am as ei,pm as en,Yh as er,dS as et,Vj as f,v as fa,sp as fi,Gm as fn,mm as fr,cS as ft,rM as g,o as ga,hp as gi,Vp as gn,Em as gr,fx as gt,iM as h,d as ha,mp as hi,mh as hn,qm as hr,aS as ht,Gj as i,k as ia,Nm as ii,ih as in,$m as ir,Yx as it,Uk as j,Sa as ji,Vm as jn,Zm as jr,D_ as jt,Hk as k,Cu as ki,Um as kn,sm as kr,nv as kt,Kj as l,D as la,W as li,Jm as ln,Sm as lr,tS as lt,tM as m,p as ma,cp as mi,em as mn,im as mr,$x as mt,Xj as n,j as na,Mp as ni,Ym as nn,Im as nr,lS as nt,qj as o,C as oa,Up as oi,lh as on,ym as or,oS as ot,eM as p,_ as pa,_p as pi,zp as pn,Yp as pr,Jx as pt,Kw as q,Ve as qi,Oh as qn,wh as qr,Hh as qt,$j as r,A as ra,Np as ri,sh as rn,Ih as rr,Wx as rt,Yj as s,M as sa,Dp as si,dh as sn,xm as sr,eS as st,Jj as t,w as ta,_m as ti,Op as tn,Dh as tr,iS as tt,Uj as u,F as ua,wp as ui,Km as un,Xp as ur,uS as ut,Fj as v,l as va,pp as vi,rm as vn,Nh as vr,Py as vt,nA as w,Ff as wi,eh as wn,Wm as wr,cy as wt,Dj as x,U as xi,_h as xn,bh as xr,Sy as xt,Oj as y,gp as yi,Pm as yn,Fh as yr,Z as yt,ID as z,I as zi,Ap as zn,Ch as zr,hg as zt};
|
|
55
|
+
`},KT=0,qT=[];function JT(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(KT++)[0],a=m.useState(gT)[0],o=m.useRef(e);m.useEffect(function(){o.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Kw([e.lockRef.current],(e.shards||[]).map(UT),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=VT(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=PT(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=PT(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return BT(h,t,e,h===`h`?s:c,!0)},[]),c=m.useCallback(function(e){var n=e;if(qT.length&&qT[qT.length-1]===a){var r=`deltaY`in n?HT(n):VT(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&WT(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(UT).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=m.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:YT(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=m.useCallback(function(e){n.current=VT(e),r.current=void 0},[]),d=m.useCallback(function(t){l(t.type,HT(t),t.target,s(t,e.lockRef.current))},[]),f=m.useCallback(function(t){l(t.type,VT(t),t.target,s(t,e.lockRef.current))},[]);m.useEffect(function(){return qT.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,kT),document.addEventListener(`touchmove`,c,kT),document.addEventListener(`touchstart`,u,kT),function(){qT=qT.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,kT),document.removeEventListener(`touchmove`,c,kT),document.removeEventListener(`touchstart`,u,kT)}},[]);var p=e.removeScrollBar,h=e.inert;return m.createElement(m.Fragment,null,h?m.createElement(a,{styles:GT(i)}):null,p?m.createElement(ET,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function YT(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var XT=oT(sT,JT),ZT=m.forwardRef(function(e,t){return m.createElement(lT,Ww({},e,{ref:t,sideCar:XT}))});ZT.classNames=lT.classNames;var QT=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},$T=new WeakMap,eE=new WeakMap,tE={},nE=0,rE=function(e){return e&&(e.host||rE(e.parentNode))},iE=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=rE(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},aE=function(e,t,n,r){var i=iE(t,Array.isArray(e)?e:[e]);tE[n]||(tE[n]=new WeakMap);var a=tE[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=($T.get(e)||0)+1,l=(a.get(e)||0)+1;$T.set(e,c),a.set(e,l),o.push(e),c===1&&i&&eE.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),nE++,function(){o.forEach(function(e){var t=$T.get(e)-1,i=a.get(e)-1;$T.set(e,t),a.set(e,i),t||(eE.has(e)||e.removeAttribute(r),eE.delete(e)),i||e.removeAttribute(n)}),nE--,nE||($T=new WeakMap,$T=new WeakMap,eE=new WeakMap,tE={})}},oE=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||QT(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),aE(r,i,n,`aria-hidden`)):function(){return null}},sE=Object.defineProperty,cE=(e,t)=>sE(e,`name`,{value:t,configurable:!0}),lE=`Dialog`,[uE,dE]=U_(lE),[fE,pE]=uE(lE),mE=cE(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=m.useRef(null),c=m.useRef(null),{nodes:l,registry:u}=Sw(),[d,f]=Bv({prop:r,defaultProp:i??!1,onChange:a,caller:lE}),[p,g]=m.useState(0),[_,v]=m.useState(0);return(0,h.jsx)(fE,{scope:t,triggerRef:s,contentRef:c,contentId:sy(),titleId:sy(),descriptionId:sy(),titlePresent:p>0,descriptionPresent:_>0,setTitleCount:g,setDescriptionCount:v,open:d,onOpenChange:f,onOpenToggle:m.useCallback(()=>f(e=>!e),[f]),modal:o,branchNodes:l,branchRegistry:u,children:n})},`Dialog`),hE=`DialogTrigger`,gE=m.forwardRef(cE(function(e,t){let{__scopeDialog:n,...r}=e,i=pE(hE,n),a=q(t,i.triggerRef);return(0,h.jsx)(X.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":FE(i.open),...r,ref:a,onClick:J(e.onClick,i.onOpenToggle)})},`DialogTrigger`)),_E=`DialogPortal`,[vE,yE]=uE(_E,{forceMount:void 0}),bE=cE(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=pE(_E,t);return(0,h.jsx)(vE,{scope:t,forceMount:n,children:m.Children.map(r,e=>(0,h.jsx)(Zv,{present:n||a.open,children:(0,h.jsx)(Iw,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),xE=`DialogOverlay`,SE=m.forwardRef(cE(function(e,t){let n=yE(xE,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=pE(xE,e.__scopeDialog);return a.modal?(0,h.jsx)(Zv,{present:r||a.open,children:(0,h.jsx)(wE,{...i,ref:t})}):null},`DialogOverlay`)),CE=Q_(`DialogOverlay.RemoveScroll`),wE=m.forwardRef(cE(function(e,t){let{__scopeDialog:n,...r}=e,i=pE(xE,n),a=q(t,cw());return(0,h.jsx)(ZT,{as:CE,allowPinchZoom:!0,shards:m.useMemo(()=>[i.contentRef,...i.branchNodes.map(e=>({current:e}))],[i.contentRef,i.branchNodes]),children:(0,h.jsx)(X.div,{"data-state":FE(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),TE=`DialogContent`,EE=m.forwardRef(cE(function(e,t){let n=yE(TE,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=pE(TE,e.__scopeDialog);return(0,h.jsx)(Zv,{present:r||a.open,children:a.modal?(0,h.jsx)(DE,{...i,ref:t}):(0,h.jsx)(OE,{...i,ref:t})})},`DialogContent`)),DE=m.forwardRef(cE(function(e,t){let n=pE(TE,e.__scopeDialog),r=m.useRef(null),i=q(t,n.contentRef,r);return m.useEffect(()=>{let e=r.current;if(e)return oE(e)},[]),(0,h.jsx)(kE,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:J(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:J(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:J(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),OE=m.forwardRef(cE(function(e,t){let n=pE(TE,e.__scopeDialog),r=m.useRef(!1),i=m.useRef(!1);return(0,h.jsx)(kE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),kE=m.forwardRef(cE(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,"aria-describedby":o,children:s,...c}=e,l=pE(TE,n);return Hw(),(0,h.jsx)(xw,{registry:l.branchRegistry,children:(0,h.jsx)(yw,{asChild:!0,loop:!0,trapped:r,branches:l.branchNodes,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,h.jsx)(sw,{role:`dialog`,id:l.contentId,"aria-labelledby":l.titlePresent?l.titleId:void 0,"aria-describedby":l.descriptionPresent?PE(o,l.descriptionId):o,"data-state":FE(l.open),...c,ref:t,deferPointerDownOutside:!0,onDismiss:()=>l.onOpenChange(!1),children:s})})})},`DialogContentImpl`)),AE=m.forwardRef(cE(function(e,t){let{__scopeDialog:n,...r}=e,i=pE(`DialogTitle`,n),{setTitleCount:a}=i;return Y(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,h.jsx)(X.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),jE=m.forwardRef(cE(function(e,t){let{__scopeDialog:n,...r}=e,i=pE(`DialogDescription`,n),{setDescriptionCount:a}=i;return Y(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,h.jsx)(X.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),ME=`DialogClose`,NE=m.forwardRef(cE(function(e,t){let{__scopeDialog:n,...r}=e,i=pE(ME,n);return(0,h.jsx)(X.button,{type:`button`,...r,ref:t,onClick:J(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function PE(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}cE(PE,`concatAriaDescribedby`);function FE(e){return e?`open`:`closed`}cE(FE,`getState`);var IE={overlay:`_overlay_1vyy5_1`,content:`_content_1vyy5_5`,keyframes:`_keyframes_1vyy5_9`,"overlay-in":`_overlay-in_1vyy5_1`,"overlay-out":`_overlay-out_1vyy5_1`,"content-fade-in":`_content-fade-in_1vyy5_1`,"content-rise-in":`_content-rise-in_1vyy5_1`,"content-out":`_content-out_1vyy5_1`,header:`_header_1vyy5_16`,title:`_title_1vyy5_17`,description:`_description_1vyy5_18`,swap:`_swap_1vyy5_20`,close:`_close_1vyy5_24`,body:`_body_1vyy5_27`,"content-fade-out":`_content-fade-out_1vyy5_1`},LE=(0,m.createContext)(null);function RE({open:e,defaultOpen:t=!1,onOpenChange:n,...r}){let[i,a]=(0,m.useState)(t),o=e??i,s=(0,m.useCallback)(t=>{e===void 0&&a(t),n?.(t)},[e,n]);return(0,h.jsx)(LE.Provider,{value:o,children:(0,h.jsx)(mE,{...r,open:o,onOpenChange:s})})}var zE={duration:Z.duration.instant},BE={duration:Z.duration.fast,ease:[...Z.ease.standard]};function VE({text:e}){let t=H();return(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(U.span,{className:IE.swap,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:e},e)})}function HE({title:e,description:t,children:n,className:r,onPointerDownOutside:i,...a}){let o=(0,m.useContext)(LE),s=H(),c=(0,m.useRef)({open:o,at:0});(0,m.useLayoutEffect)(()=>{c.current={open:o,at:performance.now()}},[o]);let l=e=>{i?.(e),o!==null&&(!c.current.open||e.detail.originalEvent.timeStamp<c.current.at)&&e.preventDefault()},u=[IE.content,r].filter(Boolean).join(` `),d=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`div`,{className:IE.header,children:[(0,h.jsxs)(`div`,{children:[(0,h.jsx)(AE,{className:IE.title,children:(0,h.jsx)(VE,{text:e})}),t?(0,h.jsx)(jE,{className:IE.description,children:(0,h.jsx)(VE,{text:t})}):null]}),(0,h.jsx)(NE,{className:IE.close,"aria-label":`Close dialog`,children:(0,h.jsx)(Jb,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]}),(0,h.jsx)(`div`,{className:IE.body,children:n})]});return o===null?(0,h.jsxs)(bE,{children:[(0,h.jsx)(SE,{className:`${IE.overlay} ${IE.keyframes}`}),(0,h.jsx)(EE,{...a,onPointerDownOutside:l,className:`${u} ${IE.keyframes}`,children:d})]}):(0,h.jsx)(V,{children:o&&(0,h.jsxs)(bE,{forceMount:!0,children:[(0,h.jsx)(SE,{asChild:!0,forceMount:!0,children:(0,h.jsx)(U.div,{className:IE.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,transition:s?zE:BE},transition:s?zE:{duration:Z.duration.standard,ease:[...Z.ease.enter]}})}),(0,h.jsx)(EE,{...a,onPointerDownOutside:l,asChild:!0,forceMount:!0,children:(0,h.jsx)(U.div,{className:u,initial:s?{opacity:0}:{opacity:0,y:8,scale:.96},animate:{opacity:1,y:0,scale:1},exit:s?{opacity:0,transition:zE}:{opacity:0,y:4,scale:.98,transition:BE},transition:s?zE:{default:Z.spring.smooth,opacity:{duration:Z.duration.fast,ease:[...Z.ease.enter]}},children:d})})]},`dialog`)})}var UE=[`top`,`right`,`bottom`,`left`],WE=Math.min,GE=Math.max,KE=Math.round,qE=Math.floor,JE=e=>({x:e,y:e}),YE={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function XE(e,t,n){return GE(e,WE(t,n))}function ZE(e,t){return typeof e==`function`?e(t):e}function QE(e){return e.split(`-`)[0]}function $E(e){return e.split(`-`)[1]}function eD(e){return e===`x`?`y`:`x`}function tD(e){return e===`y`?`height`:`width`}function nD(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function rD(e){return eD(nD(e))}function iD(e,t,n){n===void 0&&(n=!1);let r=$E(e),i=rD(e),a=tD(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=pD(o)),[o,pD(o)]}function aD(e){let t=pD(e);return[oD(e),t,oD(t)]}function oD(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var sD=[`left`,`right`],cD=[`right`,`left`],lD=[`top`,`bottom`],uD=[`bottom`,`top`];function dD(e,t,n){switch(e){case`top`:case`bottom`:return n?t?cD:sD:t?sD:cD;case`left`:case`right`:return t?lD:uD;default:return[]}}function fD(e,t,n,r){let i=$E(e),a=dD(QE(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(oD)))),a}function pD(e){let t=QE(e);return YE[t]+e.slice(t.length)}function mD(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function hD(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:mD(e)}function gD(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function _D(e,t,n){let{reference:r,floating:i}=e,a=nD(t),o=rD(t),s=tD(o),c=QE(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=$E(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function vD(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=ZE(t,e),p=hD(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=gD(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=gD(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var yD=50,bD=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:vD},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=_D(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<yD&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=_D(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},xD=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=ZE(e,t)||{};if(l==null)return{};let d=hD(u),f={x:n,y:r},p=rD(i),m=tD(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=WE(d[_],T),D=WE(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=XE(E,k,O),j=!c.arrow&&$E(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,M=j?k<E?k-E:k-O:0;return{[p]:f[p]+M,data:{[p]:A,centerOffset:k-A-M,...j&&{alignmentOffset:M}},reset:j}}}),SD=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=ZE(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=QE(r),_=nD(o),v=QE(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[pD(o)]:aD(o)),x=p!==`none`;!d&&x&&b.push(...fD(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=iD(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===nD(t)||T.every(e=>nD(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=nD(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function CD(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function wD(e){return UE.some(t=>e[t]>=0)}var TD=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=ZE(e,t);switch(i){case`referenceHidden`:{let e=CD(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:wD(e)}}}case`escaped`:{let e=CD(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:wD(e)}}}default:return{}}}}},ED=new Set([`left`,`top`]);async function DD(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=QE(n),s=$E(n),c=nD(n)===`y`,l=ED.has(o)?-1:1,u=a&&c?-1:1,d=ZE(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var OD=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await DD(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},kD=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=ZE(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=nD(i),p=eD(f),m=u[p],h=u[f],g=(e,t)=>XE(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},AD=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=ZE(e,t),u={x:n,y:r},d=nD(i),f=eD(d),p=u[f],m=u[d],h=ZE(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=ED.has(QE(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},jD=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=ZE(e,t),c=await i.detectOverflow(t,s),l=QE(n),u=$E(n),d=nD(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=WE(p-c[m],g),y=WE(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*GE(c.left,c.right):S=p-2*GE(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function MD(){return typeof window<`u`}function ND(e){return ID(e)?(e.nodeName||``).toLowerCase():`#document`}function PD(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function FD(e){return((ID(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function ID(e){return MD()?e instanceof Node||e instanceof PD(e).Node:!1}function LD(e){return MD()?e instanceof Element||e instanceof PD(e).Element:!1}function RD(e){return MD()?e instanceof HTMLElement||e instanceof PD(e).HTMLElement:!1}function zD(e){return!MD()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof PD(e).ShadowRoot}function BD(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=ZD(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function VD(e){return/^(table|td|th)$/.test(ND(e))}function HD(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var UD=/transform|translate|scale|rotate|perspective|filter/,WD=/paint|layout|strict|content/,GD=e=>!!e&&e!==`none`,KD;function qD(e){let t=LD(e)?ZD(e):e;return GD(t.transform)||GD(t.translate)||GD(t.scale)||GD(t.rotate)||GD(t.perspective)||!YD()&&(GD(t.backdropFilter)||GD(t.filter))||UD.test(t.willChange||``)||WD.test(t.contain||``)}function JD(e){let t=$D(e);for(;RD(t)&&!XD(t);){if(qD(t))return t;if(HD(t))return null;t=$D(t)}return null}function YD(){return KD??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),KD}function XD(e){return/^(html|body|#document)$/.test(ND(e))}function ZD(e){return PD(e).getComputedStyle(e)}function QD(e){return LD(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function $D(e){if(ND(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||zD(e)&&e.host||FD(e);return zD(t)?t.host:t}function eO(e){let t=$D(e);return XD(t)?(e.ownerDocument||e).body:RD(t)&&BD(t)?t:eO(t)}function tO(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=eO(e),i=r===e.ownerDocument?.body,a=PD(r);if(i){let e=nO(a);return t.concat(a,a.visualViewport||[],BD(r)?r:[],e&&n?tO(e):[])}return t.concat(r,tO(r,[],n))}function nO(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function rO(e){let t=ZD(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=RD(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=KE(n)!==a||KE(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function iO(e){return LD(e)?e:e.contextElement}function aO(e){let t=iO(e);if(!RD(t))return JE(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=rO(t),o=(a?KE(n.width):n.width)/r,s=(a?KE(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var oO=JE(0);function sO(e){let t=PD(e);return!YD()||!t.visualViewport?oO:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function cO(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===PD(e)}function lO(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=iO(e),o=JE(1);t&&(r?LD(r)&&(o=aO(r)):o=aO(e));let s=cO(a,n,r)?sO(a):JE(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=PD(a),t=LD(r)?PD(r):r,n=e,i=nO(n);for(;i&&t!==n;){let e=aO(i),t=i.getBoundingClientRect(),r=ZD(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=PD(i),i=nO(n)}}return gD({width:u,height:d,x:c,y:l})}function uO(e,t){let n=QD(e).scrollLeft;return t?t.left+n:lO(FD(e)).left+n}function dO(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-uO(e,n),y:n.top+t.scrollTop}}function fO(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=FD(r),s=t?HD(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=JE(1),u=JE(0),d=RD(r);if((d||!a)&&((ND(r)!==`body`||BD(o))&&(c=QD(r)),d)){let e=lO(r);l=aO(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?dO(o,c):JE(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function pO(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function mO(e){let t=QD(e),n=e.ownerDocument.body,r=GE(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=GE(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+uO(e),o=-t.scrollTop;return ZD(n).direction===`rtl`&&(a+=GE(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var hO=25;function gO(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=PD(e),a=FD(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!YD()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(uO(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=hO&&(s-=o)}return{width:s,height:c,x:l,y:u}}function _O(e,t){let n=lO(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=aO(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function vO(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=gO(e,n,t);else if(t===`document`)r=mO(FD(e));else if(LD(t))r=_O(t,n);else{let n=sO(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return gD(r)}function yO(e,t){let n=t.get(e);if(n)return n;let r=tO(e,[],!1).filter(e=>LD(e)&&ND(e)!==`body`),i=null,a=ZD(e).position===`fixed`,o=a?$D(e):e;for(;LD(o)&&!XD(o);){let e=ZD(o),t=qD(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=$D(o)}return t.set(e,r),r}function bO(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?HD(t)?[]:yO(t,this._c):[].concat(n),r],o=vO(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=vO(t,a[e],i);s=GE(n.top,s),c=WE(n.right,c),l=WE(n.bottom,l),u=GE(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function xO(e){let{width:t,height:n}=rO(e);return{width:t,height:n}}function SO(e,t,n){let r=RD(t),i=FD(t),a=n===`fixed`,o=lO(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=JE(0);if((r||!a)&&((ND(t)!==`body`||BD(i))&&(s=QD(t)),r)){let e=lO(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=uO(i));let l=i&&!r&&!a?dO(i,s):JE(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function CO(e){return ZD(e).position===`static`}function wO(e,t){if(!RD(e)||ZD(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return FD(e)===n&&(n=n.ownerDocument.body),n}function TO(e,t){let n=PD(e);if(HD(e))return n;if(!RD(e)){let t=$D(e);for(;t&&!XD(t);){if(LD(t)&&!CO(t))return t;t=$D(t)}return n}let r=wO(e,t);for(;r&&VD(r)&&CO(r);)r=wO(r,t);return r&&XD(r)&&CO(r)&&!qD(r)?n:r||JD(e)||n}var EO=async function(e){let t=this.getOffsetParent||TO,n=this.getDimensions,r=await n(e.floating);return{reference:SO(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function DO(e){return ZD(e).direction===`rtl`}var OO={convertOffsetParentRelativeRectToViewportRelativeRect:fO,getDocumentElement:FD,getClippingRect:bO,getOffsetParent:TO,getElementRects:EO,getClientRects:pO,getDimensions:xO,getScale:aO,isElement:LD,isRTL:DO};function kO(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function AO(e,t,n){let r=null,i,a=FD(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=qE(d),h=qE(a.clientWidth-(u+f)),g=qE(a.clientHeight-(d+p)),_=qE(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:GE(0,WE(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!kO(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=PD(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function jO(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=iO(e),u=i||a?[...l?tO(l):[],...t?tO(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?AO(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?lO(e):null;c&&g();function g(){let t=lO(e);h&&!kO(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var MO=OD,NO=kD,PO=SD,FO=jD,IO=TD,LO=xD,RO=AD,zO=(e,t,n)=>{let r=new Map,i=n??{},a={...OO,...i.platform,_c:r};return bD(e,t,{...i,platform:a})},BO=typeof document<`u`?m.useLayoutEffect:function(){};function VO(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!VO(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!VO(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function HO(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function UO(e,t){let n=HO(e);return Math.round(t*n)/n}function WO(e){let t=m.useRef(e);return BO(()=>{t.current=e}),t}function GO(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=m.useState(r);VO(f,r)||p(r);let[h,g]=m.useState(null),[_,v]=m.useState(null),y=m.useCallback(e=>{e!==C.current&&(C.current=e,g(e))},[]),b=m.useCallback(e=>{e!==w.current&&(w.current=e,v(e))},[]),x=a||h,S=o||_,C=m.useRef(null),w=m.useRef(null),T=m.useRef(u),E=c!=null,D=WO(c),O=WO(i),k=WO(l),A=m.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:f};O.current&&(e.platform=O.current),zO(C.current,w.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!VO(T.current,t)&&(T.current=t,Y_.flushSync(()=>{d(t)}))})},[f,t,n,O,k]);BO(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let j=m.useRef(!1);BO(()=>(j.current=!0,()=>{j.current=!1}),[]),BO(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,A);A()}},[x,S,A,D,E]);let M=m.useMemo(()=>({reference:C,floating:w,setReference:y,setFloating:b}),[y,b]),N=m.useMemo(()=>({reference:x,floating:S}),[x,S]),P=m.useMemo(()=>{let e={position:n,left:0,top:0};if(!N.floating)return e;let t=UO(N.floating,u.x),r=UO(N.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...HO(N.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,N.floating,u.x,u.y]);return m.useMemo(()=>({...u,update:A,refs:M,elements:N,floatingStyles:P}),[u,A,M,N,P])}var KO=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:LO({element:r.current,padding:i}).fn(n):r?LO({element:r,padding:i}).fn(n):{}}}},qO=(e,t)=>{let n=MO(e);return{name:n.name,fn:n.fn,options:[e,t]}},JO=(e,t)=>{let n=NO(e);return{name:n.name,fn:n.fn,options:[e,t]}},YO=(e,t)=>({fn:RO(e).fn,options:[e,t]}),XO=(e,t)=>{let n=PO(e);return{name:n.name,fn:n.fn,options:[e,t]}},ZO=(e,t)=>{let n=FO(e);return{name:n.name,fn:n.fn,options:[e,t]}},QO=(e,t)=>{let n=IO(e);return{name:n.name,fn:n.fn,options:[e,t]}},$O=(e,t)=>{let n=KO(e);return{name:n.name,fn:n.fn,options:[e,t]}},ek=Object.defineProperty,tk=(e,t)=>ek(e,`name`,{value:t,configurable:!0}),nk={Partial:`partial`,Always:`always`},rk={Optimized:`optimized`,Always:`always`},ik=`Popper`,[ak,ok]=U_(ik),[sk,ck]=ak(ik),lk=tk(e=>{let{__scopePopper:t,children:n}=e,[r,i]=m.useState(null),[a,o]=m.useState(void 0);return(0,h.jsx)(sk,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),uk=`PopperAnchor`,dk=m.forwardRef(tk(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=ck(uk,n),o=m.useRef(null),s=a.onAnchorChange,c=q(t,m.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=m.useRef(null);m.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&vk(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,h.jsx)(X.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),fk=`PopperContent`,[pk,mk]=ak(fk),hk=m.forwardRef(tk(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=nk.Partial,hideWhenDetached:f=!1,updatePositionStrategy:p=rk.Optimized,onPlaced:g,..._}=e,v=ck(fk,n),[y,b]=m.useState(null),x=q(t,b),[S,C]=m.useState(null),w=IS(S),T=w?.width??0,E=w?.height??0,D=r+(a===`center`?``:`-`+a),O=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},k=Array.isArray(l)?l:[l],A=k.length>0,j={padding:O,boundary:k.filter(gk),altBoundary:A},{refs:M,floatingStyles:N,placement:P,isPositioned:F,middlewareData:ee}=GO({strategy:`fixed`,placement:D,whileElementsMounted:tk((...e)=>jO(...e,{animationFrame:p===rk.Always}),`whileElementsMounted`),elements:{reference:v.anchor},middleware:[qO({mainAxis:i+E,alignmentAxis:o}),c&&JO({mainAxis:!0,crossAxis:!1,limiter:d===nk.Partial?YO():void 0,...j}),c&&XO({...j}),ZO({...j,apply:tk(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),S&&$O({element:S,padding:s}),_k({arrowWidth:T,arrowHeight:E}),f&&QO({strategy:`referenceHidden`,...j,boundary:A?j.boundary:void 0})]}),te=v.setPlacementState;Y(()=>(te(P),()=>{te(void 0)}),[P,te]);let[ne,re]=vk(P),ie=$C(g);Y(()=>{F&&ie?.()},[F,ie]);let ae=ee.arrow?.x,oe=ee.arrow?.y,se=ee.arrow?.centerOffset!==0,[ce,le]=m.useState();return Y(()=>{y&&le(window.getComputedStyle(y).zIndex)},[y]),(0,h.jsx)(`div`,{ref:M.setFloating,"data-radix-popper-content-wrapper":``,style:{...N,transform:F?N.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ce,"--radix-popper-transform-origin":[ee.transformOrigin?.x,ee.transformOrigin?.y].join(` `),...ee.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,h.jsx)(pk,{scope:n,placedSide:ne,placedAlign:re,onArrowChange:C,arrowX:ae,arrowY:oe,shouldHideArrow:se,children:(0,h.jsx)(X.div,{"data-side":ne,"data-align":re,..._,ref:x,style:{..._.style,animation:F?_.style?.animation:`none`}})})})},`PopperContent`));function gk(e){return e!==null}tk(gk,`isNotNull`);var _k=tk(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=vk(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function vk(e){let[t,n=`center`]=e.split(`-`);return[t,n]}tk(vk,`getSideAndAlignFromPlacement`);var yk=Object.defineProperty,bk=(e,t)=>yk(e,`name`,{value:t,configurable:!0}),xk=!1;function Sk(){let[e,t]=m.useState(xk);return m.useEffect(()=>{xk||(xk=!0,t(!0))},[]),e}bk(Sk,`useIsHydrated`);var Ck=m.useSyncExternalStore;function wk(){return()=>{}}bk(wk,`subscribe`);function Tk(){return Ck(wk,()=>!0,()=>!1)}bk(Tk,`useIsHydratedModern`);var Ek=typeof Ck==`function`?Tk:Sk,Dk=Object.defineProperty,Ok=(e,t)=>Dk(e,`name`,{value:t,configurable:!0}),kk=`rovingFocusGroup.onEntryFocus`,Ak={bubbles:!1,cancelable:!0},jk=`RovingFocusGroup`,[Mk,Nk,Pk]=mv(jk),[Fk,Ik]=U_(jk,[Pk]),Lk={Vertical:`vertical`,Horizontal:`horizontal`},Rk={LTR:`ltr`,RTL:`rtl`},[zk,Bk]=Fk(jk),Vk=m.forwardRef(Ok(function(e,t){return(0,h.jsx)(Mk.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,h.jsx)(Mk.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,h.jsx)(Hk,{...e,ref:t})})})},`RovingFocusGroup`)),Hk=m.forwardRef(Ok(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=m.useRef(null),p=q(t,f),g=Ey(a),[_,v]=Bv({prop:o,defaultProp:s??null,onChange:c,caller:jk}),[y,b]=m.useState(!1),x=$C(l),S=Nk(n),C=m.useRef(!1),[w,T]=m.useState(0);return m.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(kk,x),()=>e.removeEventListener(kk,x)},[x]),(0,h.jsx)(zk,{scope:n,orientation:r,dir:g,loop:i,currentTabStopId:_,onItemFocus:m.useCallback(e=>v(e),[v]),onItemShiftTab:m.useCallback(()=>b(!0),[]),onFocusableItemAdd:m.useCallback(()=>T(e=>e+1),[]),onFocusableItemRemove:m.useCallback(()=>T(e=>e-1),[]),children:(0,h.jsx)(X.div,{tabIndex:y||w===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:J(e.onMouseDown,()=>{C.current=!0}),onFocus:J(e.onFocus,e=>{let t=!C.current;if(e.target===e.currentTarget&&t&&!y){let t=new CustomEvent(kk,Ak);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);Jk([e.find(e=>e.active),e.find(e=>e.id===_),...e].filter(Boolean).map(e=>e.ref.current),u)}}C.current=!1}),onBlur:J(e.onBlur,()=>b(!1))})})},`RovingFocusGroupImpl`)),Uk=`RovingFocusGroupItem`,Wk=m.forwardRef(Ok(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=sy(),l=a||c,u=Bk(Uk,n),d=u.currentTabStopId===l,f=Nk(n),{onFocusableItemAdd:p,onFocusableItemRemove:g,currentTabStopId:_}=u,v=Ek();return Y(()=>{if(v&&r)return p(),()=>g()},[v,r,p,g]),m.useEffect(()=>{if(!v&&r)return p(),()=>g()},[v,r,p,g]),(0,h.jsx)(Mk.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,h.jsx)(X.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:J(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:J(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:J(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=qk(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?Yk(n,r+1):n.slice(r+1)}setTimeout(()=>Jk(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:_!=null}):o})})},`RovingFocusGroupItem`)),Gk={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Kk(e,t){return t===Rk.RTL?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}Ok(Kk,`getDirectionAwareKey`);function qk(e,t,n){let r=Kk(e.key,n);if(!(t===Lk.Vertical&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===Lk.Horizontal&&[`ArrowUp`,`ArrowDown`].includes(r)))return Gk[r]}Ok(qk,`getFocusIntent`);function Jk(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}Ok(Jk,`focusFirst`);function Yk(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Ok(Yk,`wrapArray`);var Xk=Object.defineProperty,Q=(e,t)=>Xk(e,`name`,{value:t,configurable:!0}),Zk=[`Enter`,` `],Qk=[`ArrowDown`,`PageUp`,`Home`],$k=[`ArrowUp`,`PageDown`,`End`],eA=[...Qk,...$k];[...Zk],[...Zk];var tA=`Menu`,[nA,rA,iA]=mv(tA),[aA,oA]=U_(tA,[iA,ok,Ik]),sA=ok(),cA=Ik(),[lA,uA]=aA(tA),[dA,fA]=aA(tA),pA=Q(e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=sA(t),[c,l]=m.useState(null),u=m.useRef(!1),d=$C(a),f=Ey(i);return m.useEffect(()=>{let e=Q(()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},`handleKeyDown`),t=Q(()=>u.current=!1,`handlePointer`);return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),m.useEffect(()=>{if(!n)return;let e=Q(()=>d(!1),`handleBlur`);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[n,d]),(0,h.jsx)(lk,{...s,children:(0,h.jsx)(lA,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,h.jsx)(dA,{scope:t,onClose:m.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})},`Menu`),mA=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,...r}=e,i=sA(n);return(0,h.jsx)(dk,{...i,...r,ref:t})},`MenuAnchor`)),hA=`MenuPortal`,[gA,_A]=aA(hA,{forceMount:void 0}),vA=Q(e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=uA(hA,t);return(0,h.jsx)(gA,{scope:t,forceMount:n,children:(0,h.jsx)(Zv,{present:n||a.open,children:(0,h.jsx)(Iw,{asChild:!0,container:i,children:r})})})},`MenuPortal`),yA=`MenuContent`,[bA,xA]=aA(yA),SA=m.forwardRef(Q(function(e,t){let n=_A(yA,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=uA(yA,e.__scopeMenu),o=fA(yA,e.__scopeMenu);return(0,h.jsx)(nA.Provider,{scope:e.__scopeMenu,children:(0,h.jsx)(Zv,{present:r||a.open,children:(0,h.jsx)(nA.Slot,{scope:e.__scopeMenu,children:o.modal?(0,h.jsx)(CA,{...i,ref:t}):(0,h.jsx)(wA,{...i,ref:t})})})})},`MenuContent`)),CA=m.forwardRef(Q(function(e,t){let n=uA(yA,e.__scopeMenu),r=m.useRef(null),i=q(t,r);return m.useEffect(()=>{let e=r.current;if(e)return oE(e)},[]),(0,h.jsx)(EA,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:J(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentModal`)),wA=m.forwardRef(Q(function(e,t){let n=uA(yA,e.__scopeMenu);return(0,h.jsx)(EA,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentNonModal`)),TA=Q_(`MenuContent.ScrollLock`),EA=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:g,..._}=e,v=uA(yA,n),y=fA(yA,n),b=sA(n),x=cA(n),S=rA(n),[C,w]=m.useState(null),T=m.useRef(null),[E,D]=m.useState(null);Cw(E);let{nodes:O,registry:k}=Sw(),A=!!(i||g),j=q(t,T,v.onContentChange,D),M=m.useRef(0),N=m.useRef(``),P=m.useRef(0),F=m.useRef(null),ee=m.useRef(`right`),te=m.useRef(0),ne=m.useMemo(()=>g?[T,...O.map(e=>({current:e}))]:[],[T,O,g]),re=g?ZT:m.Fragment,ie=g?{as:TA,allowPinchZoom:!0,shards:ne}:void 0,ae=Q(e=>{let t=N.current+e,n=S().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=KA(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;Q((function e(t){N.current=t,window.clearTimeout(M.current),t!==``&&(M.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(t),o&&setTimeout(()=>o.focus())},`handleTypeaheadSearch`);m.useEffect(()=>()=>window.clearTimeout(M.current),[]),Hw();let oe=m.useCallback(e=>ee.current===F.current?.side&&JA(e,F.current?.area),[]);return(0,h.jsx)(bA,{scope:n,searchRef:N,onItemEnter:m.useCallback(e=>{oe(e)&&e.preventDefault()},[oe]),onItemLeave:m.useCallback(e=>{oe(e)||(T.current?.focus(),w(null))},[oe]),onTriggerLeave:m.useCallback(e=>{oe(e)&&e.preventDefault()},[oe]),pointerGraceTimerRef:P,onPointerGraceIntentChange:m.useCallback(e=>{F.current=e},[]),children:(0,h.jsx)(xw,{registry:A?k:null,children:(0,h.jsx)(re,{...ie,children:(0,h.jsx)(yw,{asChild:!0,trapped:i,branches:O,onMountAutoFocus:J(a,e=>{e.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,h.jsx)(sw,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:(0,h.jsx)(Vk,{asChild:!0,...x,dir:y.dir,orientation:`vertical`,loop:r,currentTabStopId:C,onCurrentTabStopIdChange:w,onEntryFocus:J(c,e=>{y.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,h.jsx)(hk,{role:`menu`,"aria-orientation":`vertical`,"data-state":VA(v.open),"data-radix-menu-content":``,dir:y.dir,...b,..._,ref:j,style:{outline:`none`,..._.style},onKeyDown:J(_.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&ae(e.key));let i=T.current;if(e.target!==i||!eA.includes(e.key))return;e.preventDefault();let a=S().filter(e=>!e.disabled).map(e=>e.ref.current);$k.includes(e.key)&&a.reverse(),WA(a)}),onBlur:J(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(M.current),N.current=``)}),onPointerMove:J(e.onPointerMove,YA(e=>{let t=e.target,n=te.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>te.current?`right`:`left`;ee.current=t,te.current=e.clientX}}))})})})})})})})},`MenuContentImpl`)),DA=`MenuItem`,OA=`menu.itemSelect`,kA=m.forwardRef(Q(function(e,t){let{disabled:n=!1,onSelect:r,...i}=e,a=m.useRef(null),o=fA(DA,e.__scopeMenu),s=xA(DA,e.__scopeMenu),c=q(t,a),l=m.useRef(!1),u=Q(()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(OA,{bubbles:!0,cancelable:!0});e.addEventListener(OA,e=>r?.(e),{once:!0}),qv(e,t),t.defaultPrevented?l.current=!1:o.onClose()}},`handleSelect`);return(0,h.jsx)(AA,{...i,ref:c,disabled:n,onClick:J(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:J(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:J(e.onKeyDown,e=>{n||e.target!==e.currentTarget||(s.searchRef.current===``||e.key!==` `)&&Zk.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})},`MenuItem`)),AA=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=xA(DA,n),s=cA(n),c=m.useRef(null),l=q(t,c),[u,d]=m.useState(!1),[f,p]=m.useState(``);return m.useEffect(()=>{let e=c.current;e&&p((e.textContent??``).trim())},[a.children]),(0,h.jsx)(nA.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,h.jsx)(Wk,{asChild:!0,...s,focusable:!r,children:(0,h.jsx)(X.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:J(e.onPointerMove,YA(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:J(e.onPointerLeave,YA(e=>o.onItemLeave(e))),onFocus:J(e.onFocus,()=>d(!0)),onBlur:J(e.onBlur,()=>d(!1))})})})},`MenuItemImpl`)),jA=m.forwardRef(Q(function(e,t){let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,h.jsx)(FA,{scope:e.__scopeMenu,checked:n,children:(0,h.jsx)(kA,{role:`menuitemcheckbox`,"aria-checked":HA(n)?`mixed`:n,...i,ref:t,"data-state":UA(n),onSelect:J(i.onSelect,()=>r?.(HA(n)?!0:!n),{checkForDefaultPrevented:!1})})})},`MenuCheckboxItem`)),[MA,NA]=aA(`MenuRadioGroup`,{value:void 0,onValueChange:Q(()=>{},`onValueChange`)}),PA=`MenuItemIndicator`,[FA,IA]=aA(PA,{checked:!1}),LA=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,forceMount:r,...i}=e,a=IA(PA,n);return(0,h.jsx)(Zv,{present:r||HA(a.checked)||a.checked===!0,children:(0,h.jsx)(X.span,{...i,ref:t,"data-state":UA(a.checked)})})},`MenuItemIndicator`)),RA=m.forwardRef(Q(function(e,t){let{__scopeMenu:n,...r}=e;return(0,h.jsx)(X.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})},`MenuSeparator`)),[zA,BA]=aA(`MenuSub`);function VA(e){return e?`open`:`closed`}Q(VA,`getOpenState`);function HA(e){return e===`indeterminate`}Q(HA,`isIndeterminate`);function UA(e){return HA(e)?`indeterminate`:e?`checked`:`unchecked`}Q(UA,`getCheckedState`);function WA(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}Q(WA,`focusFirst`);function GA(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Q(GA,`wrapArray`);function KA(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=GA(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}Q(KA,`getNextMatch`);function qA(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}Q(qA,`isPointInPolygon`);function JA(e,t){return t?qA({x:e.clientX,y:e.clientY},t):!1}Q(JA,`isPointerInGraceArea`);function YA(e){return t=>t.pointerType===`mouse`?e(t):void 0}Q(YA,`whenMouse`);var XA=Object.defineProperty,ZA=(e,t)=>XA(e,`name`,{value:t,configurable:!0}),QA=`DropdownMenu`,[$A,ej]=U_(QA,[oA]),tj=oA(),[nj,rj]=$A(QA),ij=ZA(e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=tj(t),l=m.useRef(null),[u,d]=Bv({prop:i,defaultProp:a??!1,onChange:o,caller:QA});return(0,h.jsx)(nj,{scope:t,triggerId:sy(),triggerRef:l,contentId:sy(),open:u,onOpenChange:d,onOpenToggle:m.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,h.jsx)(pA,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})},`DropdownMenu`),aj=`DropdownMenuTrigger`,oj=m.forwardRef(ZA(function(e,t){let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=rj(aj,n),o=tj(n),s=q(t,a.triggerRef);return(0,h.jsx)(mA,{asChild:!0,...o,children:(0,h.jsx)(X.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:s,onPointerDown:J(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:J(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})},`DropdownMenuTrigger`)),sj=ZA(e=>{let{__scopeDropdownMenu:t,...n}=e,r=tj(t);return(0,h.jsx)(vA,{...r,...n})},`DropdownMenuPortal`),cj=`DropdownMenuContent`,lj=m.forwardRef(ZA(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=rj(cj,n),a=tj(n),o=m.useRef(!1);return(0,h.jsx)(SA,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:J(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:J(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`DropdownMenuContent`)),uj=m.forwardRef(ZA(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=tj(n);return(0,h.jsx)(kA,{...i,...r,ref:t})},`DropdownMenuItem`)),dj=m.forwardRef(ZA(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=tj(n);return(0,h.jsx)(jA,{...i,...r,ref:t})},`DropdownMenuCheckboxItem`)),fj=m.forwardRef(ZA(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=tj(n);return(0,h.jsx)(LA,{...i,...r,ref:t})},`DropdownMenuItemIndicator`)),pj=m.forwardRef(ZA(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=tj(n);return(0,h.jsx)(RA,{...i,...r,ref:t})},`DropdownMenuSeparator`)),mj={trigger:`_trigger_26wmo_1`,item:`_item_26wmo_7`,triggerIcon:`_triggerIcon_26wmo_8`,triggerIconOnly:`_triggerIconOnly_26wmo_10`,label:`_label_26wmo_11`,labelMeasure:`_labelMeasure_26wmo_12`,labelText:`_labelText_26wmo_13`,chevron:`_chevron_26wmo_14`,menu:`_menu_26wmo_18`,"menu-exit":`_menu-exit_26wmo_1`,highlight:`_highlight_26wmo_28`,icon:`_icon_26wmo_31`,separator:`_separator_26wmo_32`,destructive:`_destructive_26wmo_33`};function hj({text:e}){let t=H(),n=(0,m.useRef)(null),r=(0,m.useRef)(null),[i,a]=(0,m.useState)({width:`auto`,animate:!1});return(0,m.useLayoutEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(([t])=>{let n=e.textContent,i=r.current!==null&&r.current!==n;r.current=n,a({width:Math.ceil(t.borderBoxSize?.[0]?.inlineSize??e.offsetWidth),animate:i})});return t.observe(e),()=>t.disconnect()},[]),(0,h.jsxs)(U.span,{className:mj.label,initial:!1,animate:{width:i.width},transition:i.animate&&!t?Z.spring.morph:{duration:0},children:[(0,h.jsx)(`span`,{ref:n,className:mj.labelMeasure,"aria-hidden":`true`,children:e}),(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(U.span,{className:mj.labelText,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]},children:e},e)})]})}function gj({label:e,items:t,icon:n,iconOnly:r}){let i=H(),[a,o]=(0,m.useState)(null),s=(0,m.useRef)(!1),c=(0,m.useRef)(0);(0,m.useEffect)(()=>()=>window.clearTimeout(c.current),[]);function l(e){let t=e.target instanceof HTMLElement?e.target.closest(`[role="menuitem"]`):null;if(window.clearTimeout(c.current),!t){c.current=window.setTimeout(()=>o(null),s.current?70:0);return}let n={top:t.offsetTop,height:t.offsetHeight,danger:t.dataset.tone===`danger`},r=s.current;o(e=>({...n,glide:r&&e!==null}))}return(0,h.jsxs)(ij,{onOpenChange:e=>{e&&(window.clearTimeout(c.current),o(null))},children:[(0,h.jsxs)(oj,{className:[mj.trigger,r?mj.triggerIconOnly:``].filter(Boolean).join(` `),type:`button`,"aria-label":r?e:void 0,children:[n&&(0,h.jsx)(`span`,{className:mj.triggerIcon,"aria-hidden":`true`,children:n}),!r&&(0,h.jsx)(hj,{text:e}),!r&&(0,h.jsx)(wb,{className:mj.chevron,size:15,strokeWidth:1.8,"aria-hidden":`true`})]}),(0,h.jsx)(sj,{children:(0,h.jsxs)(lj,{className:mj.menu,sideOffset:6,align:`end`,collisionPadding:12,loop:!0,onFocus:l,onPointerMoveCapture:()=>{s.current=!0},onKeyDownCapture:()=>{s.current=!1},children:[(0,h.jsx)(U.span,{className:mj.highlight,"data-tone":a?.danger?`danger`:void 0,"aria-hidden":`true`,initial:!1,animate:a?{y:a.top,height:a.height,opacity:1}:{opacity:0},transition:{default:a?.glide&&!i?Z.spring.snappy:{duration:0},opacity:{duration:i?0:.08}}}),t.map((e,t)=>(0,h.jsxs)(m.Fragment,{children:[e.separatorBefore&&(0,h.jsx)(pj,{className:mj.separator}),(0,h.jsxs)(uj,{className:[mj.item,e.destructive?mj.destructive:``].filter(Boolean).join(` `),"data-tone":e.destructive?`danger`:void 0,style:{"--i":t},disabled:e.disabled,onSelect:e.onSelect,children:[e.icon&&(0,h.jsx)(`span`,{className:mj.icon,"aria-hidden":`true`,children:e.icon}),e.label]})]},e.label))]})})]})}var _j=Object.defineProperty,vj=(e,t)=>_j(e,`name`,{value:t,configurable:!0});function yj(e,[t,n]){return Math.min(n,Math.max(t,e))}vj(yj,`clamp`);var bj=Object.defineProperty,xj=(e,t)=>bj(e,`name`,{value:t,configurable:!0});function Sj(e){let t=m.useRef({value:e,previous:e});return m.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}xj(Sj,`usePrevious`);var Cj=Object.defineProperty,wj=(e,t)=>Cj(e,`name`,{value:t,configurable:!0}),Tj=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),Ej=m.forwardRef(wj(function(e,t){return(0,h.jsx)(X.span,{...e,ref:t,style:{...Tj,...e.style}})},`VisuallyHidden`)),Dj=Object.defineProperty,$=(e,t)=>Dj(e,`name`,{value:t,configurable:!0}),Oj={ItemAligned:`item-aligned`,Popper:`popper`},kj={LTR:`ltr`,RTL:`rtl`},Aj=[` `,`Enter`,`ArrowUp`,`ArrowDown`],jj=[` `,`Enter`],Mj=`Select`,[Nj,Pj,Fj]=mv(Mj),[Ij,Lj]=U_(Mj,[Fj,ok]),Rj=ok(),[zj,Bj]=Ij(Mj),[Vj,Hj]=Ij(Mj);function Uj(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:g,internal_do_not_use_render:_}=e,v=Rj(t),[y,b]=m.useState(null),[x,S]=m.useState(null),[C,w]=m.useState(!1),T=Ey(l),[E,D]=Bv({prop:r,defaultProp:i??!1,onChange:a,caller:Mj}),[O,k]=Bv({prop:o,defaultProp:s,onChange:c,caller:Mj}),A=m.useRef(null),j=m.useRef(O);m.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=$(()=>k(j.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,k]);let M=!y||!!g||!!y.closest(`form`),[N,P]=m.useState(new Set),F=sy(),ee=Array.from(N).map(e=>e.props.value).join(`;`),te=m.useCallback(e=>{P(t=>new Set(t).add(e))},[]),ne=m.useCallback(e=>{P(t=>{let n=new Set(t);return n.delete(e),n})},[]),re={required:p,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:w,contentId:F,value:O,onValueChange:k,open:E,onOpenChange:D,dir:T,triggerPointerDownPosRef:A,disabled:f,name:u,autoComplete:d,form:g,nativeOptions:N,nativeSelectKey:ee,isFormControl:M};return(0,h.jsx)(lk,{...v,children:(0,h.jsx)(zj,{scope:t,...re,children:(0,h.jsx)(Nj.Provider,{scope:t,children:(0,h.jsx)(Vj,{scope:t,onNativeOptionAdd:te,onNativeOptionRemove:ne,children:AM(_)?_(re):n})})})})}$(Uj,`SelectProvider`);var Wj=$(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,h.jsx)(Uj,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,h.jsxs)(h.Fragment,{children:[n,e?(0,h.jsx)(kM,{__scopeSelect:t}):null]})})},`Select`),Gj=`SelectTrigger`,Kj=m.forwardRef($(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Rj(n),o=Bj(Gj,n),s=o.disabled||r,c=q(t,o.onTriggerChange),l=Pj(n),u=m.useRef(`touch`),[d,f,p]=MM(e=>{let t=l().filter(e=>!e.disabled),n=NM(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),g=$(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,h.jsx)(dk,{asChild:!0,...a,children:(0,h.jsx)(X.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":jM(o.value)?``:void 0,...i,ref:c,onClick:J(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&g(e)}),onPointerDown:J(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:J(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&Aj.includes(e.key)&&(g(),e.preventDefault())})})})},`SelectTrigger`)),qj=`SelectValue`,Jj=m.forwardRef($(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=Bj(qj,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=q(t,c.onValueNodeChange);Y(()=>{l(u)},[l,u]);let f=jM(c.value);return(0,h.jsx)(X.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,h.jsx)(m.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),Yj=m.forwardRef($(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,h.jsx)(X.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Xj,Zj]=Ij(`SelectPortal`,{forceMount:void 0}),Qj=$(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,h.jsx)(Xj,{scope:e.__scopeSelect,forceMount:n,children:(0,h.jsx)(Iw,{asChild:!0,...r})})},`SelectPortal`),$j=`SelectContent`,eM=m.forwardRef($(function(e,t){let n=Zj($j,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Bj($j,e.__scopeSelect),[o,s]=m.useState();return Y(()=>{s(new DocumentFragment)},[]),(0,h.jsx)(Zv,{present:r||a.open,children:({present:e})=>e?(0,h.jsx)(oM,{...i,ref:t}):(0,h.jsx)(tM,{...i,fragment:o})})},`SelectContent`)),tM=m.forwardRef($(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?Y_.createPortal((0,h.jsx)(rM,{scope:n,children:(0,h.jsx)(Nj.Slot,{scope:n,children:(0,h.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),nM=10,[rM,iM]=Ij($j),aM=Q_(`SelectContent.RemoveScroll`),oM=m.forwardRef($(function(e,t){let{__scopeSelect:n}=e,{position:r=Oj.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:g,hideWhenDetached:_,avoidCollisions:v,...y}=e,b=Bj($j,n),[x,S]=m.useState(null),[C,w]=m.useState(null),T=q(t,S),[E,D]=m.useState(null),[O,k]=m.useState(null),A=Pj(n),[j,M]=m.useState(!1),N=m.useRef(!1);m.useEffect(()=>{if(x)return oE(x)},[x]),Hw();let P=m.useCallback(e=>{let[t,...n]=A().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&C&&(C.scrollTop=0),n===r&&C&&(C.scrollTop=C.scrollHeight),n?.focus(),document.activeElement!==i))return},[A,C]),F=m.useCallback(()=>P([E,x]),[P,E,x]);m.useEffect(()=>{j&&F()},[j,F]);let{onOpenChange:ee,triggerPointerDownPosRef:te}=b;m.useEffect(()=>{if(x){let e={x:0,y:0},t=$(t=>{e={x:Math.abs(Math.round(t.pageX)-(te.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(te.current?.y??0))}},`handlePointerMove`),n=$(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(x)||ee(!1),document.removeEventListener(`pointermove`,t),te.current=null},`handlePointerUp`);return te.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[x,ee,te]),m.useEffect(()=>{let e=$(()=>ee(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[ee]);let[ne,re]=MM(e=>{let t=A().filter(e=>!e.disabled),n=NM(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ie=m.useCallback((e,t,n)=>{let r=!N.current&&!n;(b.value!==void 0&&b.value===t||r)&&(D(e),r&&(N.current=!0))},[b.value]),ae=m.useCallback(()=>x?.focus(),[x]),oe=m.useCallback((e,t,n)=>{let r=!N.current&&!n;(b.value!==void 0&&b.value===t||r)&&k(e)},[b.value]),se=r===Oj.Popper?cM:sM,ce=se===cM?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:g,hideWhenDetached:_,avoidCollisions:v}:{};return(0,h.jsx)(rM,{scope:n,content:x,viewport:C,onViewportChange:w,itemRefCallback:ie,selectedItem:E,onItemLeave:ae,itemTextRefCallback:oe,focusSelectedItem:F,selectedItemText:O,position:r,isPositioned:j,searchRef:ne,children:(0,h.jsx)(ZT,{as:aM,allowPinchZoom:!0,children:(0,h.jsx)(yw,{asChild:!0,trapped:b.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:J(i,e=>{b.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,h.jsx)(sw,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>b.onOpenChange(!1),children:(0,h.jsx)(se,{role:`listbox`,id:b.contentId,"data-state":b.open?`open`:`closed`,dir:b.dir,onContextMenu:e=>e.preventDefault(),...y,...ce,onPlaced:()=>M(!0),ref:T,style:{display:`flex`,flexDirection:`column`,outline:`none`,...y.style},onKeyDown:J(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&re(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=A().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>P(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),sM=m.forwardRef($(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=Bj($j,n),o=iM($j,n),[s,c]=m.useState(null),[l,u]=m.useState(null),d=q(t,u),f=Pj(n),p=m.useRef(!1),g=m.useRef(!0),{viewport:_,selectedItem:v,selectedItemText:y,focusSelectedItem:b}=o,x=m.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&_&&v&&y){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=y.getBoundingClientRect();if(a.dir!==kj.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-nM,d=yj(a,[nM,Math.max(nM,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-nM,d=yj(a,[nM,Math.max(nM,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-nM*2,u=_.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),g=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+h+u+b+g,S=Math.min(v.offsetHeight*5,x),C=window.getComputedStyle(_),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-nM,D=c-E,O=v.offsetHeight/2,k=v.offsetTop+O,A=m+h+k,j=x-A;if(A<=E){let e=o.length>0&&v===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-_.offsetTop-_.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+g);s.style.height=n+`px`}else{let e=o.length>0&&v===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+_.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,_.scrollTop=A-E+_.offsetTop}s.style.margin=`${nM}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,_,v,y,a.dir,r]);Y(()=>x(),[x]);let[S,C]=m.useState();Y(()=>{l&&C(window.getComputedStyle(l).zIndex)},[l]);let w=m.useCallback(e=>{e&&g.current===!0&&(x(),b?.(),g.current=!1)},[x,b]);return(0,h.jsx)(lM,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:w,children:(0,h.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,h.jsx)(X.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),cM=m.forwardRef($(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=nM,...a}=e,o=Rj(n);return(0,h.jsx)(hk,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[lM,uM]=Ij($j,{}),dM=`SelectViewport`,fM=m.forwardRef($(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=iM(dM,n),o=uM(dM,n),s=q(t,a.onViewportChange),c=m.useRef(0);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,h.jsx)(Nj.Slot,{scope:n,children:(0,h.jsx)(X.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:J(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-nM*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[pM,mM]=Ij(`SelectGroup`),hM=`SelectItem`,[gM,_M]=Ij(hM),vM=m.forwardRef($(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=Bj(hM,n),c=iM(hM,n),l=s.value===r,[u,d]=m.useState(a??``),[f,p]=m.useState(!1),g=q(t,$C(e=>c.itemRefCallback?.(e,r,i))),_=sy(),v=m.useRef(`touch`),y=$(()=>{s.onValueChange(r),s.onOpenChange(!1)},`handleSelect`);return(0,h.jsx)(gM,{scope:n,value:r,disabled:i,textId:_,isSelected:l,onItemTextChange:m.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,h.jsx)(Nj.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,h.jsx)(X.div,{role:`option`,"aria-labelledby":_,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:g,onFocus:J(o.onFocus,()=>p(!0)),onBlur:J(o.onBlur,()=>p(!1)),onClick:J(o.onClick,()=>{i||v.current!==`mouse`&&y()}),onPointerUp:J(o.onPointerUp,()=>{i||v.current===`mouse`&&y()}),onPointerDown:J(o.onPointerDown,e=>{v.current=e.pointerType}),onPointerMove:J(o.onPointerMove,e=>{v.current=e.pointerType,i?c.onItemLeave?.():v.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:J(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:J(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(jj.includes(e.key)&&y(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),yM=`SelectItemText`,bM=m.forwardRef($(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=Bj(yM,n),s=iM(yM,n),c=_M(yM,n),l=Hj(yM,n),[u,d]=m.useState(null),f=$C(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=q(t,d,c.onItemTextChange,f),g=u?.textContent,_=m.useMemo(()=>(0,h.jsx)(`option`,{value:c.value,disabled:c.disabled,children:g},c.value),[c.disabled,c.value,g]),{onNativeOptionAdd:v,onNativeOptionRemove:y}=l;return Y(()=>(v(_),()=>y(_)),[v,y,_]),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(X.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!jM(o.value)?Y_.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),xM=`SelectItemIndicator`,SM=m.forwardRef($(function(e,t){let{__scopeSelect:n,...r}=e;return _M(xM,n).isSelected?(0,h.jsx)(X.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),CM=`SelectScrollUpButton`,wM=m.forwardRef($(function(e,t){let n=iM(CM,e.__scopeSelect),r=uM(CM,e.__scopeSelect),[i,a]=m.useState(!1),o=q(t,r.onScrollButtonChange);return Y(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};$(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,h.jsx)(DM,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),TM=`SelectScrollDownButton`,EM=m.forwardRef($(function(e,t){let n=iM(TM,e.__scopeSelect),r=uM(TM,e.__scopeSelect),[i,a]=m.useState(!1),o=q(t,r.onScrollButtonChange);return Y(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};$(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,h.jsx)(DM,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),DM=m.forwardRef($(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=iM(`SelectScrollButton`,n),o=m.useRef(null),s=Pj(n),c=m.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return m.useEffect(()=>()=>c(),[c]),Y(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,h.jsx)(X.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:J(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:J(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:J(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),OM=`SelectBubbleInput`,kM=m.forwardRef($(function({__scopeSelect:e,...t},n){let r=Bj(OM,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=m.useRef(null),g=q(n,p),_=i??``,v=Sj(_),y=Array.from(d).some(e=>(e.props.value??``)===``);return m.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==_&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,_),e.dispatchEvent(t)}},[v,_]),(0,h.jsxs)(X.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...Tj,...t.style},ref:g,defaultValue:_,children:[jM(i)&&!y?(0,h.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function AM(e){return typeof e==`function`}$(AM,`isFunction`);function jM(e){return e===``||e===void 0}$(jM,`shouldShowPlaceholder`);function MM(e){let t=$C(e),n=m.useRef(``),r=m.useRef(0),i=m.useCallback(e=>{let i=n.current+e;t(i),$((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=m.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return m.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}$(MM,`useTypeaheadSearch`);function NM(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=PM(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}$(NM,`findNextItem`);function PM(e,t){return e.map((n,r)=>e[(t+r)%e.length])}$(PM,`wrapArray`);var FM={field:`_field_1a9q6_1`,trigger:`_trigger_1a9q6_4`,valueText:`_valueText_1a9q6_9`,srOnly:`_srOnly_1a9q6_12`,chevron:`_chevron_1a9q6_13`,hint:`_hint_1a9q6_15`,content:`_content_1a9q6_18`,"select-in":`_select-in_1a9q6_1`,"select-out":`_select-out_1a9q6_1`,viewport:`_viewport_1a9q6_23`,item:`_item_1a9q6_24`,indicator:`_indicator_1a9q6_27`,"indicator-in":`_indicator-in_1a9q6_1`,scrollButton:`_scrollButton_1a9q6_28`,"select-fade":`_select-fade_1a9q6_1`,"select-fade-out":`_select-fade-out_1a9q6_1`},IM={enter:e=>({opacity:0,y:`${e*.35}em`,filter:`blur(${Z.blur.soft}px)`}),center:{opacity:1,y:0,filter:`blur(0px)`,transition:{duration:Z.duration.standard,ease:[...Z.ease.enter]}},exit:e=>({opacity:0,y:`${e*-.3}em`,filter:`blur(${Z.blur.subtle}px)`,transition:{duration:Z.duration.fast,ease:[...Z.ease.standard]}})},LM={enter:{opacity:0},center:{opacity:1,y:0,filter:`blur(0px)`,transition:{duration:Z.duration.instant}},exit:{opacity:0,transition:{duration:Z.duration.instant}}},RM=(0,m.forwardRef)(function({label:e,description:t,placeholder:n=`Select an option`,options:r,id:i,className:a,disabled:o,onValueChange:s,...c},l){let u=(0,m.useId)(),d=i??u,f=t?`${d}-description`:void 0,p=H(),[g,_]=(0,m.useState)(c.defaultValue??``),v=c.value??g,y=r.findIndex(e=>e.value===v),b=v?r[y]?.label??``:n,[x,S]=(0,m.useState)(y),[C,w]=(0,m.useState)(1);return x!==y&&(S(y),w(y>x?1:-1)),(0,h.jsxs)(`div`,{className:FM.field,children:[(0,h.jsx)(`label`,{htmlFor:d,children:e}),(0,h.jsxs)(Wj,{...c,disabled:o,onValueChange:e=>{_(e),s?.(e)},children:[(0,h.jsxs)(Kj,{ref:l,id:d,"aria-describedby":f,className:[FM.trigger,a].filter(Boolean).join(` `),children:[(0,h.jsx)(`span`,{className:FM.srOnly,children:(0,h.jsx)(Jj,{placeholder:n})}),(0,h.jsx)(`span`,{className:FM.valueText,"aria-hidden":`true`,children:(0,h.jsx)(V,{initial:!1,custom:C,children:(0,h.jsx)(U.span,{"data-placeholder":v?void 0:``,custom:C,variants:p?LM:IM,initial:`enter`,animate:`center`,exit:`exit`,children:b},v?`value-${v}`:`placeholder`)})}),(0,h.jsx)(Yj,{className:FM.chevron,children:(0,h.jsx)(wb,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]}),(0,h.jsx)(Qj,{children:(0,h.jsxs)(eM,{className:FM.content,position:`popper`,sideOffset:4,collisionPadding:12,children:[(0,h.jsx)(wM,{className:FM.scrollButton,children:(0,h.jsx)(Eb,{size:16,strokeWidth:1.75,"aria-hidden":`true`})}),(0,h.jsx)(fM,{className:FM.viewport,children:r.map(e=>(0,h.jsxs)(vM,{value:e.value,disabled:e.disabled,className:FM.item,children:[(0,h.jsx)(bM,{children:e.label}),(0,h.jsx)(SM,{className:FM.indicator,children:(0,h.jsx)(Sb,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]},e.value))}),(0,h.jsx)(EM,{className:FM.scrollButton,children:(0,h.jsx)(wb,{size:16,strokeWidth:1.75,"aria-hidden":`true`})})]})})]}),t&&(0,h.jsx)(`span`,{id:f,className:FM.hint,children:t})]})}),zM={toast:`_toast_c20vg_1`,icon:`_icon_c20vg_16`,frame:`_frame_c20vg_28`,copy:`_copy_c20vg_34`,title:`_title_c20vg_43`,line:`_line_c20vg_52`,description:`_description_c20vg_59`,close:`_close_c20vg_66`},BM=()=>()=>{},VM={duration:Z.duration.fast,ease:[...Z.ease.standard]},HM={duration:Z.duration.standard,ease:[...Z.ease.enter]},UM={opacity:0,y:`0.3em`,filter:`blur(${Z.blur.soft}px)`},WM={opacity:0,y:`-0.3em`,filter:`blur(${Z.blur.subtle}px)`,transition:VM},GM={opacity:1,y:`0em`,filter:`blur(0px)`},KM={opacity:0,transition:{duration:Z.duration.instant}},qM={distance:80,velocity:480};function JM(e){let t=Fu();return(0,h.jsx)(U.span,{...e,"aria-hidden":!t||e[`aria-hidden`]})}function YM({reduce:e,morphKey:t,children:n}){let r=(0,m.useRef)(null),i=(0,m.useRef)(null),a=Rf(`auto`),o=(0,m.useRef)(0);return(0,m.useLayoutEffect)(()=>{o.current=performance.now()},[t]),(0,m.useEffect)(()=>{let t=i.current;if(!t||typeof ResizeObserver>`u`)return;let n,s,c=()=>{a.jump(`auto`),r.current&&Object.assign(r.current.style,{overflow:``,height:`auto`})},l=new ResizeObserver(([i])=>{let l=i.borderBoxSize?.[0]?.blockSize??t.offsetHeight,u=a.get(),d=typeof u==`number`?u:n;if(n=l,s?.stop(),e||d===void 0||d===l||performance.now()-o.current>120)return c();r.current&&Object.assign(r.current.style,{overflow:`hidden`,height:`${d}px`}),s=sp(a,[d,l],{...Z.spring.smooth,onComplete:c})});return l.observe(t),()=>{l.disconnect(),s?.stop()}},[a,e]),(0,h.jsx)(U.div,{ref:r,className:zM.frame,style:{height:a},children:(0,h.jsx)(`div`,{ref:i,className:zM.copy,children:n})})}function XM({title:e,description:t,open:n=!0,onOpenChange:r,duration:i=4500}){let a=H(),o=(0,m.useSyncExternalStore)(BM,()=>!0,()=>!1),[s]=(0,m.useState)(o),[c,l]=(0,m.useState)(!1),[u,d]=(0,m.useState)(0),[f,p]=(0,m.useState)(n);n!==f&&(p(n),n&&(l(!1),d(0)));let g=n&&!c,_=(0,m.useRef)(null),v=Rf(0),y=(0,m.useRef)(0);function b(e){d(e),l(!0),r?.(!1)}(0,m.useEffect)(()=>{if(!g||!r||i<=0)return;let e=window.setTimeout(()=>{d(0),l(!0),r(!1)},i);return()=>window.clearTimeout(e)},[g,r,i]);function x(e,t){let n=Math.sign(t.offset.x||t.velocity.x);if(Math.abs(t.offset.x)<qM.distance&&Math.abs(t.velocity.x)<qM.velocity){sp(v,0,{...Z.spring.snappy,velocity:t.velocity.x});return}y.current=t.velocity.x,b(n*((_.current?.offsetWidth??320)+48))}let S=a?{hidden:{opacity:0},shown:{opacity:1,transition:{duration:Z.duration.instant}},exit:KM}:{hidden:{opacity:0,x:0,y:16,scale:.96},shown:{opacity:1,x:0,y:0,scale:1,transition:{...Z.spring.morph,opacity:HM}},exit:e=>e?{x:e,opacity:0,transition:{x:{type:`spring`,visualDuration:.3,bounce:0,velocity:y.current,restDelta:2,restSpeed:40},opacity:{duration:Z.duration.exit}}}:{opacity:0,y:8,scale:.97,transition:{duration:Z.duration.exit,ease:[...Z.ease.standard]}}},C={initial:a?{opacity:0}:UM,animate:GM,exit:a?KM:WM,transition:a?{duration:Z.duration.instant}:HM};return(0,h.jsx)(V,{initial:s,custom:u,children:g&&(0,h.jsxs)(U.div,{ref:_,className:zM.toast,role:`status`,"aria-live":`polite`,"aria-atomic":`true`,custom:u,variants:S,initial:`hidden`,animate:`shown`,exit:`exit`,style:{x:v},drag:a&&o?!1:`x`,dragMomentum:!1,onDragEnd:x,children:[(0,h.jsx)(`span`,{className:zM.icon,"aria-hidden":`true`,children:(0,h.jsx)(`svg`,{width:16,height:16,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2.25,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,h.jsx)(U.path,{d:`M4 12.5l5 5L20 6.5`,initial:!a&&{pathLength:0},animate:{pathLength:1},transition:{duration:Z.duration.standard,ease:[...Z.ease.enter],delay:.12}})})}),(0,h.jsxs)(YM,{reduce:a,morphKey:`${e}\n${t??``}`,children:[(0,h.jsx)(`strong`,{className:zM.title,children:(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:(0,h.jsx)(JM,{className:zM.line,...C,children:e},e)})}),(0,h.jsx)(V,{mode:`popLayout`,initial:!1,children:t?(0,h.jsx)(JM,{className:zM.description,...C,children:t},t):null})]}),(0,h.jsx)(`button`,{className:zM.close,type:`button`,"aria-label":`Dismiss notification`,onClick:()=>b(0),children:(0,h.jsx)(Jb,{width:16,height:16,strokeWidth:2,"aria-hidden":`true`})})]},`toast`)})}function ZM({open:e,onOpenChange:t,title:n,description:r,children:i,footer:a,width:o=460}){return(0,h.jsx)(RE,{open:e,onOpenChange:t,children:(0,h.jsxs)(HE,{title:n,description:r,style:{width:`min(calc(100vw - 2rem), ${o}px)`},children:[i,a&&(0,h.jsx)(`div`,{className:gg(`flex flex-wrap items-center justify-end gap-2`,i!==void 0&&`mt-6`),children:a})]})})}function QM({label:e,icon:t,items:n,iconOnly:r}){return(0,h.jsx)(gj,{label:e,icon:t,iconOnly:r,items:n.map(e=>({label:e.label,icon:e.icon,destructive:e.destructive,disabled:e.disabled,separatorBefore:e.separatorBefore,onSelect:e.onSelect}))})}var $M=`__astra_empty__`,eN=e=>e===``?$M:e,tN=e=>e===$M?``:e,nN=12;function rN({value:e,onChange:t,options:n,placeholder:r,className:i,disabled:a,label:o,ariaLabel:s}){let c=pg(),l=n.find(t=>t.value===e),u=pC(o,s??r??l?.label),d=gg(`min-w-0`,u.hidden&&`astra-label-hidden`,i);return n.length>nN?(0,h.jsx)(`div`,{className:d,children:(0,h.jsx)(XC,{label:u.label,description:u.field?.description,placeholder:r??c(`common.search`),emptyMessage:c(`common.noResults`),value:e==null?``:eN(e),onValueChange:e=>t(tN(e)),options:n.map(e=>({value:eN(e.value),label:e.detail&&e.detail!==e.label?`${e.label} · ${e.detail}`:e.label,disabled:e.disabled,keywords:e.detail?[e.detail]:void 0}))})}):(0,h.jsx)(`div`,{className:d,children:(0,h.jsx)(RM,{label:u.label,description:u.field?.description,placeholder:r??c(`common.select`),disabled:a,value:e==null||e===``&&!l?``:eN(e),onValueChange:e=>t(tN(e)),options:n.map(e=>({value:eN(e.value),label:e.label,disabled:e.disabled}))})})}var iN=(0,m.createContext)(null);function aN({children:e}){let t=pg(),[n,r]=(0,m.useState)([]),[i,a]=(0,m.useState)(null),o=(0,m.useRef)(0),s=(0,m.useCallback)(e=>r(t=>t.filter(t=>t.id!==e)),[]),c=(0,m.useCallback)((e,t=`info`)=>{let n=++o.current;r(r=>[...r.slice(-2),{id:n,tone:t,text:e}]),t===`error`&&setTimeout(()=>s(n),8e3)},[s]),l=(0,m.useCallback)(e=>new Promise(t=>a({...e,resolve:t})),[]),u=e=>{i?.resolve(e),a(null)};return(0,h.jsxs)(iN.Provider,{value:{toast:c,confirm:l},children:[e,(0,h.jsx)(`div`,{className:`pointer-events-none fixed inset-x-0 bottom-5 z-[95] flex flex-col items-center gap-2 px-4`,children:n.map(e=>e.tone===`error`?(0,h.jsx)(`div`,{className:`pointer-events-auto w-[min(100%,26rem)] selectable`,children:(0,h.jsx)(qC,{tone:`danger`,title:t(`common.error`),onDismiss:()=>s(e.id),children:e.text})},e.id):(0,h.jsx)(`div`,{className:`pointer-events-auto flex w-full justify-center`,children:(0,h.jsx)(XM,{title:e.text,open:!0,onOpenChange:t=>!t&&s(e.id)})},e.id))}),(0,h.jsx)(ZM,{open:i!==null,onOpenChange:e=>!e&&u(!1),title:i?.title??``,description:i?.detail,width:420,footer:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(gC,{onClick:()=>u(!1),children:t(`common.cancel`)}),(0,h.jsx)(gC,{variant:i?.destructive?`destructive`:`primary`,onClick:()=>u(!0),autoFocus:!0,children:i?.confirmLabel??t(`common.confirm`)})]})})]})}function oN(){let e=(0,m.useContext)(iN);if(!e)throw Error(`useFeedback outside FeedbackProvider`);return e}function sN(e){return e instanceof Error?e.message:String(e)}export{IS as $,yp as $i,qp as $n,mm as $r,qg as $t,gE as A,M as Aa,hh as Ai,pm as An,Mh as Ar,h_ as At,mC as B,Im as Bi,sh as Bn,nh as Br,T_ as Bt,mE as C,pe as Ca,Fm as Ci,gg as Cn,zp as Cr,R_ as Ct,SE as D,k as Da,Zp as Di,K as Dn,$h as Dr,j_ as Dt,jE as E,A as Ea,hm as Ei,pg as En,Xh as Er,A_ as Et,gC as F,p as Fa,im as Fi,ym as Fn,Zh as Fr,E_ as Ft,bC as G,Dp as Gi,Zm as Gn,Tm as Gr,s_ as Gt,SC as H,Kp as Hi,fh as Hn,Sm as Hr,n_ as Ht,jC as I,d as Ia,Nm as Ii,gm as In,Qh as Ir,S_ as It,_C as J,dp as Ji,Jm as Jn,_m as Jr,a_ as Jt,TC as K,up as Ki,Ym as Kn,$p as Kr,c_ as Kt,FC as L,o as La,bm as Li,jp as Ln,Ah as Lr,C_ as Lt,sw as M,se as Ma,Up as Mi,Mm as Mn,Uh as Mr,d_ as Mt,qC as N,v as Na,Fh as Ni,kh as Nn,Hh as Nr,f_ as Nt,bE as O,O as Oa,dm as Oi,Wh as On,eg as Or,M_ as Ot,DC as P,_ as Pa,Cm as Pi,Ph as Pn,Jh as Pr,w_ as Pt,kC as Q,gp as Qi,Wp as Qn,km as Qr,Hg as Qt,OC as R,s as Ra,Fp as Ri,Qm as Rn,zm as Rr,g_ as Rt,ok as S,me as Sa,Yh as Si,_g as Sn,tg as Sr,z_ as St,EE as T,j as Ta,Jp as Ti,fg as Tn,Lh as Tr,k_ as Tt,AC as U,Ap as Ui,mh as Un,wm as Ur,r_ as Ut,yC as V,vh as Vi,Lp as Vn,Bp as Vr,m_ as Vt,wC as W,Sp as Wi,ch as Wn,Em as Wr,l_ as Wt,vC as X,vp as Xi,rm as Xn,sm as Xr,t_ as Xt,MC as Y,_p as Yi,Hp as Yn,Qp as Yr,i_ as Yt,CC as Z,xp as Zi,_h as Zn,Xm as Zr,Kg as Zt,Wk as _,nt as _a,Xp as _i,Ig as _n,Bh as _r,Y as _t,sN as a,Wu as aa,Sh as ai,jg as an,fm as ar,Wb as at,dk as b,ve as ba,Rm as bi,Lg as bn,Mp as br,q as bt,ij as c,Pu as ca,yh as ci,Cg as cn,lm as cr,Ob as ct,uj as d,Ta as da,um as di,Tg as dn,Km as dr,bb as dt,lp as ea,Ih as ei,Jg as en,om as er,Jx as et,fj as f,Sa as fa,ph as fi,Dg as fn,Vm as fr,Ey as ft,Vk as g,rt as ga,Pp as gi,Fg as gn,tm as gr,Bv as gt,oj as h,B as ha,am as hi,Sg as hn,nm as hr,X as ht,ZM as i,Rf as ia,wh as ii,kg as in,ih as ir,Kb as it,Iw as j,D as ja,Oh as ji,Gm as jn,Vh as jr,u_ as jt,AE as k,C as ka,Dh as ki,Gh as kn,jh as kr,N_ as kt,dj as l,Eu as la,oh as li,Og as ln,ah as lr,wb as lt,pj as m,dr as ma,th as mi,xg as mn,ng as mr,Zv as mt,QM as n,sp as na,Pm as ni,Gg as nn,xm as nr,Z as nt,oN as o,V as oa,qm as oi,Pg as on,rh as or,Bb as ot,sj as p,Mr as pa,eh as pi,wg as pn,Wm as pr,sy as pt,PC as q,bp as qi,Hm as qn,Dm as qr,Zg as qt,rN as r,H as ra,Ch as ri,Yg as rn,bh as rr,Jb as rt,Ej as s,Fu as sa,Gp as si,Eg as sn,Am as sr,Mb as st,aN as t,U as ta,Rh as ti,Xg as tn,Lm as tr,ix as tt,lj as u,wo as ua,xh as ui,Ag as un,kp as ur,Sb as ut,Ik as v,Le as va,lh as vi,zg as vn,Bm as vr,J as vt,NE as w,w as wa,Yp as wi,dg as wn,Rp as wr,L_ as wt,hk as x,_e as xa,Eh as xi,vg as xn,Np as xr,U_ as xt,lk as y,De as ya,qh as yi,Rg as yn,Um as yr,ev as yt,NC as z,l as za,Ip as zi,uh as zn,zh as zr,D_ as zt};
|