vskill 1.0.5 → 1.0.6

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.
@@ -1,122 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/UpdateDropdown-DTP2sv27.js","assets/fonts-i7Lkz2zN.css","assets/FindSkillsPalette-BBj-hoqE.js","assets/SkillDetailPanel-Xymi4aZg.js","assets/skill-url-C4ekwoGs.js","assets/CreateSkillPage-D9ZsmNub.js"])))=>i.map(i=>d[i]);
2
- /* empty css */(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const u of c)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function s(c){const u={};return c.integrity&&(u.integrity=c.integrity),c.referrerPolicy&&(u.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?u.credentials="include":c.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function i(c){if(c.ep)return;c.ep=!0;const u=s(c);fetch(c.href,u)}})();function Ev(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jd={exports:{}},_s={};/**
3
- * @license React
4
- * react-jsx-runtime.production.js
5
- *
6
- * Copyright (c) Meta Platforms, Inc. and affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- */var Ux;function z0(){if(Ux)return _s;Ux=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function s(i,c,u){var d=null;if(u!==void 0&&(d=""+u),c.key!==void 0&&(d=""+c.key),"key"in c){u={};for(var f in c)f!=="key"&&(u[f]=c[f])}else u=c;return c=u.ref,{$$typeof:t,type:i,key:d,ref:c!==void 0?c:null,props:u}}return _s.Fragment=a,_s.jsx=s,_s.jsxs=s,_s}var Hx;function D0(){return Hx||(Hx=1,jd.exports=z0()),jd.exports}var r=D0(),Sd={exports:{}},$e={};/**
11
- * @license React
12
- * react.production.js
13
- *
14
- * Copyright (c) Meta Platforms, Inc. and affiliates.
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE file in the root directory of this source tree.
18
- */var Px;function _0(){if(Px)return $e;Px=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),d=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),b=Symbol.iterator;function S(D){return D===null||typeof D!="object"?null:(D=b&&D[b]||D["@@iterator"],typeof D=="function"?D:null)}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,w={};function N(D,W,X){this.props=D,this.context=W,this.refs=w,this.updater=X||C}N.prototype.isReactComponent={},N.prototype.setState=function(D,W){if(typeof D!="object"&&typeof D!="function"&&D!=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,D,W,"setState")},N.prototype.forceUpdate=function(D){this.updater.enqueueForceUpdate(this,D,"forceUpdate")};function T(){}T.prototype=N.prototype;function A(D,W,X){this.props=D,this.context=W,this.refs=w,this.updater=X||C}var I=A.prototype=new T;I.constructor=A,E(I,N.prototype),I.isPureReactComponent=!0;var L=Array.isArray;function H(){}var k={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function z(D,W,X){var ee=X.ref;return{$$typeof:t,type:D,key:W,ref:ee!==void 0?ee:null,props:X}}function _(D,W){return z(D.type,W,D.props)}function $(D){return typeof D=="object"&&D!==null&&D.$$typeof===t}function q(D){var W={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(X){return W[X]})}var K=/\/+/g;function Q(D,W){return typeof D=="object"&&D!==null&&D.key!=null?q(""+D.key):W.toString(36)}function U(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(H,H):(D.status="pending",D.then(function(W){D.status==="pending"&&(D.status="fulfilled",D.value=W)},function(W){D.status==="pending"&&(D.status="rejected",D.reason=W)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function M(D,W,X,ee,de){var le=typeof D;(le==="undefined"||le==="boolean")&&(D=null);var ce=!1;if(D===null)ce=!0;else switch(le){case"bigint":case"string":case"number":ce=!0;break;case"object":switch(D.$$typeof){case t:case a:ce=!0;break;case y:return ce=D._init,M(ce(D._payload),W,X,ee,de)}}if(ce)return de=de(D),ce=ee===""?"."+Q(D,0):ee,L(de)?(X="",ce!=null&&(X=ce.replace(K,"$&/")+"/"),M(de,W,X,"",function(Le){return Le})):de!=null&&($(de)&&(de=_(de,X+(de.key==null||D&&D.key===de.key?"":(""+de.key).replace(K,"$&/")+"/")+ce)),W.push(de)),1;ce=0;var ne=ee===""?".":ee+":";if(L(D))for(var ge=0;ge<D.length;ge++)ee=D[ge],le=ne+Q(ee,ge),ce+=M(ee,W,X,le,de);else if(ge=S(D),typeof ge=="function")for(D=ge.call(D),ge=0;!(ee=D.next()).done;)ee=ee.value,le=ne+Q(ee,ge++),ce+=M(ee,W,X,le,de);else if(le==="object"){if(typeof D.then=="function")return M(U(D),W,X,ee,de);throw W=String(D),Error("Objects are not valid as a React child (found: "+(W==="[object Object]"?"object with keys {"+Object.keys(D).join(", ")+"}":W)+"). If you meant to render a collection of children, use an array instead.")}return ce}function B(D,W,X){if(D==null)return D;var ee=[],de=0;return M(D,ee,"","",function(le){return W.call(X,le,de++)}),ee}function F(D){if(D._status===-1){var W=D._result;W=W(),W.then(function(X){(D._status===0||D._status===-1)&&(D._status=1,D._result=X)},function(X){(D._status===0||D._status===-1)&&(D._status=2,D._result=X)}),D._status===-1&&(D._status=0,D._result=W)}if(D._status===1)return D._result.default;throw D._result}var te=typeof reportError=="function"?reportError:function(D){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var W=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof D=="object"&&D!==null&&typeof D.message=="string"?String(D.message):String(D),error:D});if(!window.dispatchEvent(W))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",D);return}console.error(D)},V={map:B,forEach:function(D,W,X){B(D,function(){W.apply(this,arguments)},X)},count:function(D){var W=0;return B(D,function(){W++}),W},toArray:function(D){return B(D,function(W){return W})||[]},only:function(D){if(!$(D))throw Error("React.Children.only expected to receive a single React element child.");return D}};return $e.Activity=v,$e.Children=V,$e.Component=N,$e.Fragment=s,$e.Profiler=c,$e.PureComponent=A,$e.StrictMode=i,$e.Suspense=x,$e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=k,$e.__COMPILER_RUNTIME={__proto__:null,c:function(D){return k.H.useMemoCache(D)}},$e.cache=function(D){return function(){return D.apply(null,arguments)}},$e.cacheSignal=function(){return null},$e.cloneElement=function(D,W,X){if(D==null)throw Error("The argument must be a React element, but you passed "+D+".");var ee=E({},D.props),de=D.key;if(W!=null)for(le in W.key!==void 0&&(de=""+W.key),W)!O.call(W,le)||le==="key"||le==="__self"||le==="__source"||le==="ref"&&W.ref===void 0||(ee[le]=W[le]);var le=arguments.length-2;if(le===1)ee.children=X;else if(1<le){for(var ce=Array(le),ne=0;ne<le;ne++)ce[ne]=arguments[ne+2];ee.children=ce}return z(D.type,de,ee)},$e.createContext=function(D){return D={$$typeof:d,_currentValue:D,_currentValue2:D,_threadCount:0,Provider:null,Consumer:null},D.Provider=D,D.Consumer={$$typeof:u,_context:D},D},$e.createElement=function(D,W,X){var ee,de={},le=null;if(W!=null)for(ee in W.key!==void 0&&(le=""+W.key),W)O.call(W,ee)&&ee!=="key"&&ee!=="__self"&&ee!=="__source"&&(de[ee]=W[ee]);var ce=arguments.length-2;if(ce===1)de.children=X;else if(1<ce){for(var ne=Array(ce),ge=0;ge<ce;ge++)ne[ge]=arguments[ge+2];de.children=ne}if(D&&D.defaultProps)for(ee in ce=D.defaultProps,ce)de[ee]===void 0&&(de[ee]=ce[ee]);return z(D,le,de)},$e.createRef=function(){return{current:null}},$e.forwardRef=function(D){return{$$typeof:f,render:D}},$e.isValidElement=$,$e.lazy=function(D){return{$$typeof:y,_payload:{_status:-1,_result:D},_init:F}},$e.memo=function(D,W){return{$$typeof:h,type:D,compare:W===void 0?null:W}},$e.startTransition=function(D){var W=k.T,X={};k.T=X;try{var ee=D(),de=k.S;de!==null&&de(X,ee),typeof ee=="object"&&ee!==null&&typeof ee.then=="function"&&ee.then(H,te)}catch(le){te(le)}finally{W!==null&&X.types!==null&&(W.types=X.types),k.T=W}},$e.unstable_useCacheRefresh=function(){return k.H.useCacheRefresh()},$e.use=function(D){return k.H.use(D)},$e.useActionState=function(D,W,X){return k.H.useActionState(D,W,X)},$e.useCallback=function(D,W){return k.H.useCallback(D,W)},$e.useContext=function(D){return k.H.useContext(D)},$e.useDebugValue=function(){},$e.useDeferredValue=function(D,W){return k.H.useDeferredValue(D,W)},$e.useEffect=function(D,W){return k.H.useEffect(D,W)},$e.useEffectEvent=function(D){return k.H.useEffectEvent(D)},$e.useId=function(){return k.H.useId()},$e.useImperativeHandle=function(D,W,X){return k.H.useImperativeHandle(D,W,X)},$e.useInsertionEffect=function(D,W){return k.H.useInsertionEffect(D,W)},$e.useLayoutEffect=function(D,W){return k.H.useLayoutEffect(D,W)},$e.useMemo=function(D,W){return k.H.useMemo(D,W)},$e.useOptimistic=function(D,W){return k.H.useOptimistic(D,W)},$e.useReducer=function(D,W,X){return k.H.useReducer(D,W,X)},$e.useRef=function(D){return k.H.useRef(D)},$e.useState=function(D){return k.H.useState(D)},$e.useSyncExternalStore=function(D,W,X){return k.H.useSyncExternalStore(D,W,X)},$e.useTransition=function(){return k.H.useTransition()},$e.version="19.2.4",$e}var Vx;function Tf(){return Vx||(Vx=1,Sd.exports=_0()),Sd.exports}var m=Tf();const Re=Ev(m);var kd={exports:{}},Os={},wd={exports:{}},Cd={};/**
19
- * @license React
20
- * scheduler.production.js
21
- *
22
- * Copyright (c) Meta Platforms, Inc. and affiliates.
23
- *
24
- * This source code is licensed under the MIT license found in the
25
- * LICENSE file in the root directory of this source tree.
26
- */var Fx;function O0(){return Fx||(Fx=1,(function(t){function a(M,B){var F=M.length;M.push(B);e:for(;0<F;){var te=F-1>>>1,V=M[te];if(0<c(V,B))M[te]=B,M[F]=V,F=te;else break e}}function s(M){return M.length===0?null:M[0]}function i(M){if(M.length===0)return null;var B=M[0],F=M.pop();if(F!==B){M[0]=F;e:for(var te=0,V=M.length,D=V>>>1;te<D;){var W=2*(te+1)-1,X=M[W],ee=W+1,de=M[ee];if(0>c(X,F))ee<V&&0>c(de,X)?(M[te]=de,M[ee]=F,te=ee):(M[te]=X,M[W]=F,te=W);else if(ee<V&&0>c(de,F))M[te]=de,M[ee]=F,te=ee;else break e}}return B}function c(M,B){var F=M.sortIndex-B.sortIndex;return F!==0?F:M.id-B.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;t.unstable_now=function(){return u.now()}}else{var d=Date,f=d.now();t.unstable_now=function(){return d.now()-f}}var x=[],h=[],y=1,v=null,b=3,S=!1,C=!1,E=!1,w=!1,N=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function I(M){for(var B=s(h);B!==null;){if(B.callback===null)i(h);else if(B.startTime<=M)i(h),B.sortIndex=B.expirationTime,a(x,B);else break;B=s(h)}}function L(M){if(E=!1,I(M),!C)if(s(x)!==null)C=!0,H||(H=!0,q());else{var B=s(h);B!==null&&U(L,B.startTime-M)}}var H=!1,k=-1,O=5,z=-1;function _(){return w?!0:!(t.unstable_now()-z<O)}function $(){if(w=!1,H){var M=t.unstable_now();z=M;var B=!0;try{e:{C=!1,E&&(E=!1,T(k),k=-1),S=!0;var F=b;try{t:{for(I(M),v=s(x);v!==null&&!(v.expirationTime>M&&_());){var te=v.callback;if(typeof te=="function"){v.callback=null,b=v.priorityLevel;var V=te(v.expirationTime<=M);if(M=t.unstable_now(),typeof V=="function"){v.callback=V,I(M),B=!0;break t}v===s(x)&&i(x),I(M)}else i(x);v=s(x)}if(v!==null)B=!0;else{var D=s(h);D!==null&&U(L,D.startTime-M),B=!1}}break e}finally{v=null,b=F,S=!1}B=void 0}}finally{B?q():H=!1}}}var q;if(typeof A=="function")q=function(){A($)};else if(typeof MessageChannel<"u"){var K=new MessageChannel,Q=K.port2;K.port1.onmessage=$,q=function(){Q.postMessage(null)}}else q=function(){N($,0)};function U(M,B){k=N(function(){M(t.unstable_now())},B)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(M){M.callback=null},t.unstable_forceFrameRate=function(M){0>M||125<M?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):O=0<M?Math.floor(1e3/M):5},t.unstable_getCurrentPriorityLevel=function(){return b},t.unstable_next=function(M){switch(b){case 1:case 2:case 3:var B=3;break;default:B=b}var F=b;b=B;try{return M()}finally{b=F}},t.unstable_requestPaint=function(){w=!0},t.unstable_runWithPriority=function(M,B){switch(M){case 1:case 2:case 3:case 4:case 5:break;default:M=3}var F=b;b=M;try{return B()}finally{b=F}},t.unstable_scheduleCallback=function(M,B,F){var te=t.unstable_now();switch(typeof F=="object"&&F!==null?(F=F.delay,F=typeof F=="number"&&0<F?te+F:te):F=te,M){case 1:var V=-1;break;case 2:V=250;break;case 5:V=1073741823;break;case 4:V=1e4;break;default:V=5e3}return V=F+V,M={id:y++,callback:B,priorityLevel:M,startTime:F,expirationTime:V,sortIndex:-1},F>te?(M.sortIndex=F,a(h,M),s(x)===null&&M===s(h)&&(E?(T(k),k=-1):E=!0,U(L,F-te))):(M.sortIndex=V,a(x,M),C||S||(C=!0,H||(H=!0,q()))),M},t.unstable_shouldYield=_,t.unstable_wrapCallback=function(M){var B=b;return function(){var F=b;b=B;try{return M.apply(this,arguments)}finally{b=F}}}})(Cd)),Cd}var Gx;function B0(){return Gx||(Gx=1,wd.exports=O0()),wd.exports}var Ed={exports:{}},dn={};/**
27
- * @license React
28
- * react-dom.production.js
29
- *
30
- * Copyright (c) Meta Platforms, Inc. and affiliates.
31
- *
32
- * This source code is licensed under the MIT license found in the
33
- * LICENSE file in the root directory of this source tree.
34
- */var Wx;function I0(){if(Wx)return dn;Wx=1;var t=Tf();function a(x){var h="https://react.dev/errors/"+x;if(1<arguments.length){h+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)h+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+x+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(){}var i={d:{f:s,r:function(){throw Error(a(522))},D:s,C:s,L:s,m:s,X:s,S:s,M:s},p:0,findDOMNode:null},c=Symbol.for("react.portal");function u(x,h,y){var v=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:c,key:v==null?null:""+v,children:x,containerInfo:h,implementation:y}}var d=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(x,h){if(x==="font")return"";if(typeof h=="string")return h==="use-credentials"?h:""}return dn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,dn.createPortal=function(x,h){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!h||h.nodeType!==1&&h.nodeType!==9&&h.nodeType!==11)throw Error(a(299));return u(x,h,null,y)},dn.flushSync=function(x){var h=d.T,y=i.p;try{if(d.T=null,i.p=2,x)return x()}finally{d.T=h,i.p=y,i.d.f()}},dn.preconnect=function(x,h){typeof x=="string"&&(h?(h=h.crossOrigin,h=typeof h=="string"?h==="use-credentials"?h:"":void 0):h=null,i.d.C(x,h))},dn.prefetchDNS=function(x){typeof x=="string"&&i.d.D(x)},dn.preinit=function(x,h){if(typeof x=="string"&&h&&typeof h.as=="string"){var y=h.as,v=f(y,h.crossOrigin),b=typeof h.integrity=="string"?h.integrity:void 0,S=typeof h.fetchPriority=="string"?h.fetchPriority:void 0;y==="style"?i.d.S(x,typeof h.precedence=="string"?h.precedence:void 0,{crossOrigin:v,integrity:b,fetchPriority:S}):y==="script"&&i.d.X(x,{crossOrigin:v,integrity:b,fetchPriority:S,nonce:typeof h.nonce=="string"?h.nonce:void 0})}},dn.preinitModule=function(x,h){if(typeof x=="string")if(typeof h=="object"&&h!==null){if(h.as==null||h.as==="script"){var y=f(h.as,h.crossOrigin);i.d.M(x,{crossOrigin:y,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0})}}else h==null&&i.d.M(x)},dn.preload=function(x,h){if(typeof x=="string"&&typeof h=="object"&&h!==null&&typeof h.as=="string"){var y=h.as,v=f(y,h.crossOrigin);i.d.L(x,y,{crossOrigin:v,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,type:typeof h.type=="string"?h.type:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0,referrerPolicy:typeof h.referrerPolicy=="string"?h.referrerPolicy:void 0,imageSrcSet:typeof h.imageSrcSet=="string"?h.imageSrcSet:void 0,imageSizes:typeof h.imageSizes=="string"?h.imageSizes:void 0,media:typeof h.media=="string"?h.media:void 0})}},dn.preloadModule=function(x,h){if(typeof x=="string")if(h){var y=f(h.as,h.crossOrigin);i.d.m(x,{as:typeof h.as=="string"&&h.as!=="script"?h.as:void 0,crossOrigin:y,integrity:typeof h.integrity=="string"?h.integrity:void 0})}else i.d.m(x)},dn.requestFormReset=function(x){i.d.r(x)},dn.unstable_batchedUpdates=function(x,h){return x(h)},dn.useFormState=function(x,h,y){return d.H.useFormState(x,h,y)},dn.useFormStatus=function(){return d.H.useHostTransitionStatus()},dn.version="19.2.4",dn}var qx;function Nv(){if(qx)return Ed.exports;qx=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(a){console.error(a)}}return t(),Ed.exports=I0(),Ed.exports}/**
35
- * @license React
36
- * react-dom-client.production.js
37
- *
38
- * Copyright (c) Meta Platforms, Inc. and affiliates.
39
- *
40
- * This source code is licensed under the MIT license found in the
41
- * LICENSE file in the root directory of this source tree.
42
- */var Yx;function $0(){if(Yx)return Os;Yx=1;var t=B0(),a=Tf(),s=Nv();function i(e){var n="https://react.dev/errors/"+e;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var l=2;l<arguments.length;l++)n+="&args[]="+encodeURIComponent(arguments[l])}return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function u(e){var n=e,l=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(l=n.return),e=n.return;while(e)}return n.tag===3?l:null}function d(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function f(e){if(e.tag===31){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function x(e){if(u(e)!==e)throw Error(i(188))}function h(e){var n=e.alternate;if(!n){if(n=u(e),n===null)throw Error(i(188));return n!==e?null:e}for(var l=e,o=n;;){var p=l.return;if(p===null)break;var g=p.alternate;if(g===null){if(o=p.return,o!==null){l=o;continue}break}if(p.child===g.child){for(g=p.child;g;){if(g===l)return x(p),e;if(g===o)return x(p),n;g=g.sibling}throw Error(i(188))}if(l.return!==o.return)l=p,o=g;else{for(var j=!1,R=p.child;R;){if(R===l){j=!0,l=p,o=g;break}if(R===o){j=!0,o=p,l=g;break}R=R.sibling}if(!j){for(R=g.child;R;){if(R===l){j=!0,l=g,o=p;break}if(R===o){j=!0,o=g,l=p;break}R=R.sibling}if(!j)throw Error(i(189))}}if(l.alternate!==o)throw Error(i(190))}if(l.tag!==3)throw Error(i(188));return l.stateNode.current===l?e:n}function y(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e;for(e=e.child;e!==null;){if(n=y(e),n!==null)return n;e=e.sibling}return null}var v=Object.assign,b=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),C=Symbol.for("react.portal"),E=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),A=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),H=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),z=Symbol.for("react.activity"),_=Symbol.for("react.memo_cache_sentinel"),$=Symbol.iterator;function q(e){return e===null||typeof e!="object"?null:(e=$&&e[$]||e["@@iterator"],typeof e=="function"?e:null)}var K=Symbol.for("react.client.reference");function Q(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===K?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case E:return"Fragment";case N:return"Profiler";case w:return"StrictMode";case L:return"Suspense";case H:return"SuspenseList";case z:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case C:return"Portal";case A:return e.displayName||"Context";case T:return(e._context.displayName||"Context")+".Consumer";case I:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case k:return n=e.displayName||null,n!==null?n:Q(e.type)||"Memo";case O:n=e._payload,e=e._init;try{return Q(e(n))}catch{}}return null}var U=Array.isArray,M=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=s.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F={pending:!1,data:null,method:null,action:null},te=[],V=-1;function D(e){return{current:e}}function W(e){0>V||(e.current=te[V],te[V]=null,V--)}function X(e,n){V++,te[V]=e.current,e.current=n}var ee=D(null),de=D(null),le=D(null),ce=D(null);function ne(e,n){switch(X(le,n),X(de,e),X(ee,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?cx(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=cx(n),e=ux(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}W(ee),X(ee,e)}function ge(){W(ee),W(de),W(le)}function Le(e){e.memoizedState!==null&&X(ce,e);var n=ee.current,l=ux(n,e.type);n!==l&&(X(de,e),X(ee,l))}function Ee(e){de.current===e&&(W(ee),W(de)),ce.current===e&&(W(ce),Ls._currentValue=F)}var Me,Pe;function ie(e){if(Me===void 0)try{throw Error()}catch(l){var n=l.stack.trim().match(/\n( *(at )?)/);Me=n&&n[1]||"",Pe=-1<l.stack.indexOf(`
43
- at`)?" (<anonymous>)":-1<l.stack.indexOf("@")?"@unknown:0:0":""}return`
44
- `+Me+e+Pe}var fe=!1;function he(e,n){if(!e||fe)return"";fe=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(n){var me=function(){throw Error()};if(Object.defineProperty(me.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(me,[])}catch(oe){var re=oe}Reflect.construct(e,[],me)}else{try{me.call()}catch(oe){re=oe}e.call(me.prototype)}}else{try{throw Error()}catch(oe){re=oe}(me=e())&&typeof me.catch=="function"&&me.catch(function(){})}}catch(oe){if(oe&&re&&typeof oe.stack=="string")return[oe.stack,re.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var p=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");p&&p.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var g=o.DetermineComponentFrameRoot(),j=g[0],R=g[1];if(j&&R){var P=j.split(`
45
- `),J=R.split(`
46
- `);for(p=o=0;o<P.length&&!P[o].includes("DetermineComponentFrameRoot");)o++;for(;p<J.length&&!J[p].includes("DetermineComponentFrameRoot");)p++;if(o===P.length||p===J.length)for(o=P.length-1,p=J.length-1;1<=o&&0<=p&&P[o]!==J[p];)p--;for(;1<=o&&0<=p;o--,p--)if(P[o]!==J[p]){if(o!==1||p!==1)do if(o--,p--,0>p||P[o]!==J[p]){var ue=`
47
- `+P[o].replace(" at new "," at ");return e.displayName&&ue.includes("<anonymous>")&&(ue=ue.replace("<anonymous>",e.displayName)),ue}while(1<=o&&0<=p);break}}}finally{fe=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?ie(l):""}function be(e,n){switch(e.tag){case 26:case 27:case 5:return ie(e.type);case 16:return ie("Lazy");case 13:return e.child!==n&&n!==null?ie("Suspense Fallback"):ie("Suspense");case 19:return ie("SuspenseList");case 0:case 15:return he(e.type,!1);case 11:return he(e.type.render,!1);case 1:return he(e.type,!0);case 31:return ie("Activity");default:return""}}function je(e){try{var n="",l=null;do n+=be(e,l),l=e,e=e.return;while(e);return n}catch(o){return`
48
- Error generating stack: `+o.message+`
49
- `+o.stack}}var Ge=Object.prototype.hasOwnProperty,ut=t.unstable_scheduleCallback,gt=t.unstable_cancelCallback,Ht=t.unstable_shouldYield,Tt=t.unstable_requestPaint,qe=t.unstable_now,zt=t.unstable_getCurrentPriorityLevel,kt=t.unstable_ImmediatePriority,vt=t.unstable_UserBlockingPriority,Zt=t.unstable_NormalPriority,ve=t.unstable_LowPriority,rt=t.unstable_IdlePriority,it=t.log,bt=t.unstable_setDisableYieldValue,Mt=null,et=null;function bn(e){if(typeof it=="function"&&bt(e),et&&typeof et.setStrictMode=="function")try{et.setStrictMode(Mt,e)}catch{}}var qt=Math.clz32?Math.clz32:ur,mn=Math.log,un=Math.LN2;function ur(e){return e>>>=0,e===0?32:31-(mn(e)/un|0)|0}var Nn=256,Un=262144,Tn=4194304;function jt(e){var n=e&42;if(n!==0)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Oe(e,n,l){var o=e.pendingLanes;if(o===0)return 0;var p=0,g=e.suspendedLanes,j=e.pingedLanes;e=e.warmLanes;var R=o&134217727;return R!==0?(o=R&~g,o!==0?p=jt(o):(j&=R,j!==0?p=jt(j):l||(l=R&~e,l!==0&&(p=jt(l))))):(R=o&~g,R!==0?p=jt(R):j!==0?p=jt(j):l||(l=o&~e,l!==0&&(p=jt(l)))),p===0?0:n!==0&&n!==p&&(n&g)===0&&(g=p&-p,l=n&-n,g>=l||g===32&&(l&4194048)!==0)?n:p}function Ye(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function Hn(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function hn(){var e=Tn;return Tn<<=1,(Tn&62914560)===0&&(Tn=4194304),e}function jr(e){for(var n=[],l=0;31>l;l++)n.push(e);return n}function rn(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ae(e,n,l,o,p,g){var j=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var R=e.entanglements,P=e.expirationTimes,J=e.hiddenUpdates;for(l=j&~l;0<l;){var ue=31-qt(l),me=1<<ue;R[ue]=0,P[ue]=-1;var re=J[ue];if(re!==null)for(J[ue]=null,ue=0;ue<re.length;ue++){var oe=re[ue];oe!==null&&(oe.lane&=-536870913)}l&=~me}o!==0&&Se(e,o,0),g!==0&&p===0&&e.tag!==0&&(e.suspendedLanes|=g&~(j&~n))}function Se(e,n,l){e.pendingLanes|=n,e.suspendedLanes&=~n;var o=31-qt(n);e.entangledLanes|=n,e.entanglements[o]=e.entanglements[o]|1073741824|l&261930}function Ne(e,n){var l=e.entangledLanes|=n;for(e=e.entanglements;l;){var o=31-qt(l),p=1<<o;p&n|e[o]&n&&(e[o]|=n),l&=~p}}function Bt(e,n){var l=n&-n;return l=(l&42)!==0?1:St(l),(l&(e.suspendedLanes|n))!==0?0:l}function St(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Jt(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Vr(){var e=B.p;return e!==0?e:(e=window.event,e===void 0?32:zx(e.type))}function dr(e,n){var l=B.p;try{return B.p=e,n()}finally{B.p=l}}var Qe=Math.random().toString(36).slice(2),Dt="__reactFiber$"+Qe,It="__reactProps$"+Qe,Fr="__reactContainer$"+Qe,an="__reactEvents$"+Qe,Xf="__reactListeners$"+Qe,Gr="__reactHandles$"+Qe,fi="__reactResources$"+Qe,Wl="__reactMarker$"+Qe;function pc(e){delete e[Dt],delete e[It],delete e[an],delete e[Xf],delete e[Gr]}function Qa(e){var n=e[Dt];if(n)return n;for(var l=e.parentNode;l;){if(n=l[Fr]||l[Dt]){if(l=n.alternate,n.child!==null||l!==null&&l.child!==null)for(e=gx(e);e!==null;){if(l=e[Dt])return l;e=gx(e)}return n}e=l,l=e.parentNode}return null}function Za(e){if(e=e[Dt]||e[Fr]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function ql(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(i(33))}function Ja(e){var n=e[fi];return n||(n=e[fi]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function en(e){e[Wl]=!0}var Qf=new Set,Zf={};function ka(e,n){el(e,n),el(e+"Capture",n)}function el(e,n){for(Zf[e]=n,e=0;e<n.length;e++)Qf.add(n[e])}var wb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Jf={},ep={};function Cb(e){return Ge.call(ep,e)?!0:Ge.call(Jf,e)?!1:wb.test(e)?ep[e]=!0:(Jf[e]=!0,!1)}function pi(e,n,l){if(Cb(n))if(l===null)e.removeAttribute(n);else{switch(typeof l){case"undefined":case"function":case"symbol":e.removeAttribute(n);return;case"boolean":var o=n.toLowerCase().slice(0,5);if(o!=="data-"&&o!=="aria-"){e.removeAttribute(n);return}}e.setAttribute(n,""+l)}}function mi(e,n,l){if(l===null)e.removeAttribute(n);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttribute(n,""+l)}}function Sr(e,n,l,o){if(o===null)e.removeAttribute(l);else{switch(typeof o){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(l);return}e.setAttributeNS(n,l,""+o)}}function Pn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function tp(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Eb(e,n,l){var o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var p=o.get,g=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return p.call(this)},set:function(j){l=""+j,g.call(this,j)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return l},setValue:function(j){l=""+j},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function mc(e){if(!e._valueTracker){var n=tp(e)?"checked":"value";e._valueTracker=Eb(e,n,""+e[n])}}function np(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var l=n.getValue(),o="";return e&&(o=tp(e)?e.checked?"true":"false":e.value),e=o,e!==l?(n.setValue(e),!0):!1}function hi(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Nb=/[\n"\\]/g;function Vn(e){return e.replace(Nb,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function hc(e,n,l,o,p,g,j,R){e.name="",j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"?e.type=j:e.removeAttribute("type"),n!=null?j==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+Pn(n)):e.value!==""+Pn(n)&&(e.value=""+Pn(n)):j!=="submit"&&j!=="reset"||e.removeAttribute("value"),n!=null?xc(e,j,Pn(n)):l!=null?xc(e,j,Pn(l)):o!=null&&e.removeAttribute("value"),p==null&&g!=null&&(e.defaultChecked=!!g),p!=null&&(e.checked=p&&typeof p!="function"&&typeof p!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?e.name=""+Pn(R):e.removeAttribute("name")}function rp(e,n,l,o,p,g,j,R){if(g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"&&(e.type=g),n!=null||l!=null){if(!(g!=="submit"&&g!=="reset"||n!=null)){mc(e);return}l=l!=null?""+Pn(l):"",n=n!=null?""+Pn(n):l,R||n===e.value||(e.value=n),e.defaultValue=n}o=o??p,o=typeof o!="function"&&typeof o!="symbol"&&!!o,e.checked=R?e.checked:!!o,e.defaultChecked=!!o,j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(e.name=j),mc(e)}function xc(e,n,l){n==="number"&&hi(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function tl(e,n,l,o){if(e=e.options,n){n={};for(var p=0;p<l.length;p++)n["$"+l[p]]=!0;for(l=0;l<e.length;l++)p=n.hasOwnProperty("$"+e[l].value),e[l].selected!==p&&(e[l].selected=p),p&&o&&(e[l].defaultSelected=!0)}else{for(l=""+Pn(l),n=null,p=0;p<e.length;p++){if(e[p].value===l){e[p].selected=!0,o&&(e[p].defaultSelected=!0);return}n!==null||e[p].disabled||(n=e[p])}n!==null&&(n.selected=!0)}}function ap(e,n,l){if(n!=null&&(n=""+Pn(n),n!==e.value&&(e.value=n),l==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=l!=null?""+Pn(l):""}function lp(e,n,l,o){if(n==null){if(o!=null){if(l!=null)throw Error(i(92));if(U(o)){if(1<o.length)throw Error(i(93));o=o[0]}l=o}l==null&&(l=""),n=l}l=Pn(n),e.defaultValue=l,o=e.textContent,o===l&&o!==""&&o!==null&&(e.value=o),mc(e)}function nl(e,n){if(n){var l=e.firstChild;if(l&&l===e.lastChild&&l.nodeType===3){l.nodeValue=n;return}}e.textContent=n}var Tb=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function sp(e,n,l){var o=n.indexOf("--")===0;l==null||typeof l=="boolean"||l===""?o?e.setProperty(n,""):n==="float"?e.cssFloat="":e[n]="":o?e.setProperty(n,l):typeof l!="number"||l===0||Tb.has(n)?n==="float"?e.cssFloat=l:e[n]=(""+l).trim():e[n]=l+"px"}function ip(e,n,l){if(n!=null&&typeof n!="object")throw Error(i(62));if(e=e.style,l!=null){for(var o in l)!l.hasOwnProperty(o)||n!=null&&n.hasOwnProperty(o)||(o.indexOf("--")===0?e.setProperty(o,""):o==="float"?e.cssFloat="":e[o]="");for(var p in n)o=n[p],n.hasOwnProperty(p)&&l[p]!==o&&sp(e,p,o)}else for(var g in n)n.hasOwnProperty(g)&&sp(e,g,n[g])}function gc(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Rb=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Ab=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function xi(e){return Ab.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function kr(){}var vc=null;function yc(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var rl=null,al=null;function op(e){var n=Za(e);if(n&&(e=n.stateNode)){var l=e[It]||null;e:switch(e=n.stateNode,n.type){case"input":if(hc(e,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name),n=l.name,l.type==="radio"&&n!=null){for(l=e;l.parentNode;)l=l.parentNode;for(l=l.querySelectorAll('input[name="'+Vn(""+n)+'"][type="radio"]'),n=0;n<l.length;n++){var o=l[n];if(o!==e&&o.form===e.form){var p=o[It]||null;if(!p)throw Error(i(90));hc(o,p.value,p.defaultValue,p.defaultValue,p.checked,p.defaultChecked,p.type,p.name)}}for(n=0;n<l.length;n++)o=l[n],o.form===e.form&&np(o)}break e;case"textarea":ap(e,l.value,l.defaultValue);break e;case"select":n=l.value,n!=null&&tl(e,!!l.multiple,n,!1)}}}var bc=!1;function cp(e,n,l){if(bc)return e(n,l);bc=!0;try{var o=e(n);return o}finally{if(bc=!1,(rl!==null||al!==null)&&(ro(),rl&&(n=rl,e=al,al=rl=null,op(n),e)))for(n=0;n<e.length;n++)op(e[n])}}function Yl(e,n){var l=e.stateNode;if(l===null)return null;var o=l[It]||null;if(o===null)return null;l=o[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(o=!o.disabled)||(e=e.type,o=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!o;break e;default:e=!1}if(e)return null;if(l&&typeof l!="function")throw Error(i(231,n,typeof l));return l}var wr=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),jc=!1;if(wr)try{var Kl={};Object.defineProperty(Kl,"passive",{get:function(){jc=!0}}),window.addEventListener("test",Kl,Kl),window.removeEventListener("test",Kl,Kl)}catch{jc=!1}var Wr=null,Sc=null,gi=null;function up(){if(gi)return gi;var e,n=Sc,l=n.length,o,p="value"in Wr?Wr.value:Wr.textContent,g=p.length;for(e=0;e<l&&n[e]===p[e];e++);var j=l-e;for(o=1;o<=j&&n[l-o]===p[g-o];o++);return gi=p.slice(e,1<o?1-o:void 0)}function vi(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function yi(){return!0}function dp(){return!1}function jn(e){function n(l,o,p,g,j){this._reactName=l,this._targetInst=p,this.type=o,this.nativeEvent=g,this.target=j,this.currentTarget=null;for(var R in e)e.hasOwnProperty(R)&&(l=e[R],this[R]=l?l(g):g[R]);return this.isDefaultPrevented=(g.defaultPrevented!=null?g.defaultPrevented:g.returnValue===!1)?yi:dp,this.isPropagationStopped=dp,this}return v(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var l=this.nativeEvent;l&&(l.preventDefault?l.preventDefault():typeof l.returnValue!="unknown"&&(l.returnValue=!1),this.isDefaultPrevented=yi)},stopPropagation:function(){var l=this.nativeEvent;l&&(l.stopPropagation?l.stopPropagation():typeof l.cancelBubble!="unknown"&&(l.cancelBubble=!0),this.isPropagationStopped=yi)},persist:function(){},isPersistent:yi}),n}var wa={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},bi=jn(wa),Xl=v({},wa,{view:0,detail:0}),Lb=jn(Xl),kc,wc,Ql,ji=v({},Xl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ec,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Ql&&(Ql&&e.type==="mousemove"?(kc=e.screenX-Ql.screenX,wc=e.screenY-Ql.screenY):wc=kc=0,Ql=e),kc)},movementY:function(e){return"movementY"in e?e.movementY:wc}}),fp=jn(ji),Mb=v({},ji,{dataTransfer:0}),zb=jn(Mb),Db=v({},Xl,{relatedTarget:0}),Cc=jn(Db),_b=v({},wa,{animationName:0,elapsedTime:0,pseudoElement:0}),Ob=jn(_b),Bb=v({},wa,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Ib=jn(Bb),$b=v({},wa,{data:0}),pp=jn($b),Ub={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Hb={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Pb={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Vb(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Pb[e])?!!n[e]:!1}function Ec(){return Vb}var Fb=v({},Xl,{key:function(e){if(e.key){var n=Ub[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=vi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Hb[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ec,charCode:function(e){return e.type==="keypress"?vi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?vi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Gb=jn(Fb),Wb=v({},ji,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),mp=jn(Wb),qb=v({},Xl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ec}),Yb=jn(qb),Kb=v({},wa,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xb=jn(Kb),Qb=v({},ji,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Zb=jn(Qb),Jb=v({},wa,{newState:0,oldState:0}),e1=jn(Jb),t1=[9,13,27,32],Nc=wr&&"CompositionEvent"in window,Zl=null;wr&&"documentMode"in document&&(Zl=document.documentMode);var n1=wr&&"TextEvent"in window&&!Zl,hp=wr&&(!Nc||Zl&&8<Zl&&11>=Zl),xp=" ",gp=!1;function vp(e,n){switch(e){case"keyup":return t1.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function yp(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ll=!1;function r1(e,n){switch(e){case"compositionend":return yp(n);case"keypress":return n.which!==32?null:(gp=!0,xp);case"textInput":return e=n.data,e===xp&&gp?null:e;default:return null}}function a1(e,n){if(ll)return e==="compositionend"||!Nc&&vp(e,n)?(e=up(),gi=Sc=Wr=null,ll=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return hp&&n.locale!=="ko"?null:n.data;default:return null}}var l1={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function bp(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!l1[e.type]:n==="textarea"}function jp(e,n,l,o){rl?al?al.push(o):al=[o]:rl=o,n=uo(n,"onChange"),0<n.length&&(l=new bi("onChange","change",null,l,o),e.push({event:l,listeners:n}))}var Jl=null,es=null;function s1(e){rx(e,0)}function Si(e){var n=ql(e);if(np(n))return e}function Sp(e,n){if(e==="change")return n}var kp=!1;if(wr){var Tc;if(wr){var Rc="oninput"in document;if(!Rc){var wp=document.createElement("div");wp.setAttribute("oninput","return;"),Rc=typeof wp.oninput=="function"}Tc=Rc}else Tc=!1;kp=Tc&&(!document.documentMode||9<document.documentMode)}function Cp(){Jl&&(Jl.detachEvent("onpropertychange",Ep),es=Jl=null)}function Ep(e){if(e.propertyName==="value"&&Si(es)){var n=[];jp(n,es,e,yc(e)),cp(s1,n)}}function i1(e,n,l){e==="focusin"?(Cp(),Jl=n,es=l,Jl.attachEvent("onpropertychange",Ep)):e==="focusout"&&Cp()}function o1(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Si(es)}function c1(e,n){if(e==="click")return Si(n)}function u1(e,n){if(e==="input"||e==="change")return Si(n)}function d1(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Rn=typeof Object.is=="function"?Object.is:d1;function ts(e,n){if(Rn(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var l=Object.keys(e),o=Object.keys(n);if(l.length!==o.length)return!1;for(o=0;o<l.length;o++){var p=l[o];if(!Ge.call(n,p)||!Rn(e[p],n[p]))return!1}return!0}function Np(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Tp(e,n){var l=Np(e);e=0;for(var o;l;){if(l.nodeType===3){if(o=e+l.textContent.length,e<=n&&o>=n)return{node:l,offset:n-e};e=o}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=Np(l)}}function Rp(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Rp(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Ap(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=hi(e.document);n instanceof e.HTMLIFrameElement;){try{var l=typeof n.contentWindow.location.href=="string"}catch{l=!1}if(l)e=n.contentWindow;else break;n=hi(e.document)}return n}function Ac(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var f1=wr&&"documentMode"in document&&11>=document.documentMode,sl=null,Lc=null,ns=null,Mc=!1;function Lp(e,n,l){var o=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Mc||sl==null||sl!==hi(o)||(o=sl,"selectionStart"in o&&Ac(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),ns&&ts(ns,o)||(ns=o,o=uo(Lc,"onSelect"),0<o.length&&(n=new bi("onSelect","select",null,n,l),e.push({event:n,listeners:o}),n.target=sl)))}function Ca(e,n){var l={};return l[e.toLowerCase()]=n.toLowerCase(),l["Webkit"+e]="webkit"+n,l["Moz"+e]="moz"+n,l}var il={animationend:Ca("Animation","AnimationEnd"),animationiteration:Ca("Animation","AnimationIteration"),animationstart:Ca("Animation","AnimationStart"),transitionrun:Ca("Transition","TransitionRun"),transitionstart:Ca("Transition","TransitionStart"),transitioncancel:Ca("Transition","TransitionCancel"),transitionend:Ca("Transition","TransitionEnd")},zc={},Mp={};wr&&(Mp=document.createElement("div").style,"AnimationEvent"in window||(delete il.animationend.animation,delete il.animationiteration.animation,delete il.animationstart.animation),"TransitionEvent"in window||delete il.transitionend.transition);function Ea(e){if(zc[e])return zc[e];if(!il[e])return e;var n=il[e],l;for(l in n)if(n.hasOwnProperty(l)&&l in Mp)return zc[e]=n[l];return e}var zp=Ea("animationend"),Dp=Ea("animationiteration"),_p=Ea("animationstart"),p1=Ea("transitionrun"),m1=Ea("transitionstart"),h1=Ea("transitioncancel"),Op=Ea("transitionend"),Bp=new Map,Dc="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Dc.push("scrollEnd");function rr(e,n){Bp.set(e,n),ka(n,[e])}var ki=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Fn=[],ol=0,_c=0;function wi(){for(var e=ol,n=_c=ol=0;n<e;){var l=Fn[n];Fn[n++]=null;var o=Fn[n];Fn[n++]=null;var p=Fn[n];Fn[n++]=null;var g=Fn[n];if(Fn[n++]=null,o!==null&&p!==null){var j=o.pending;j===null?p.next=p:(p.next=j.next,j.next=p),o.pending=p}g!==0&&Ip(l,p,g)}}function Ci(e,n,l,o){Fn[ol++]=e,Fn[ol++]=n,Fn[ol++]=l,Fn[ol++]=o,_c|=o,e.lanes|=o,e=e.alternate,e!==null&&(e.lanes|=o)}function Oc(e,n,l,o){return Ci(e,n,l,o),Ei(e)}function Na(e,n){return Ci(e,null,null,n),Ei(e)}function Ip(e,n,l){e.lanes|=l;var o=e.alternate;o!==null&&(o.lanes|=l);for(var p=!1,g=e.return;g!==null;)g.childLanes|=l,o=g.alternate,o!==null&&(o.childLanes|=l),g.tag===22&&(e=g.stateNode,e===null||e._visibility&1||(p=!0)),e=g,g=g.return;return e.tag===3?(g=e.stateNode,p&&n!==null&&(p=31-qt(l),e=g.hiddenUpdates,o=e[p],o===null?e[p]=[n]:o.push(n),n.lane=l|536870912),g):null}function Ei(e){if(50<ws)throw ws=0,Gu=null,Error(i(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var cl={};function x1(e,n,l,o){this.tag=e,this.key=l,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function An(e,n,l,o){return new x1(e,n,l,o)}function Bc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Cr(e,n){var l=e.alternate;return l===null?(l=An(e.tag,n,e.key,e.mode),l.elementType=e.elementType,l.type=e.type,l.stateNode=e.stateNode,l.alternate=e,e.alternate=l):(l.pendingProps=n,l.type=e.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=e.flags&65011712,l.childLanes=e.childLanes,l.lanes=e.lanes,l.child=e.child,l.memoizedProps=e.memoizedProps,l.memoizedState=e.memoizedState,l.updateQueue=e.updateQueue,n=e.dependencies,l.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},l.sibling=e.sibling,l.index=e.index,l.ref=e.ref,l.refCleanup=e.refCleanup,l}function $p(e,n){e.flags&=65011714;var l=e.alternate;return l===null?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=l.childLanes,e.lanes=l.lanes,e.child=l.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=l.memoizedProps,e.memoizedState=l.memoizedState,e.updateQueue=l.updateQueue,e.type=l.type,n=l.dependencies,e.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function Ni(e,n,l,o,p,g){var j=0;if(o=e,typeof e=="function")Bc(e)&&(j=1);else if(typeof e=="string")j=j0(e,l,ee.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case z:return e=An(31,l,n,p),e.elementType=z,e.lanes=g,e;case E:return Ta(l.children,p,g,n);case w:j=8,p|=24;break;case N:return e=An(12,l,n,p|2),e.elementType=N,e.lanes=g,e;case L:return e=An(13,l,n,p),e.elementType=L,e.lanes=g,e;case H:return e=An(19,l,n,p),e.elementType=H,e.lanes=g,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case A:j=10;break e;case T:j=9;break e;case I:j=11;break e;case k:j=14;break e;case O:j=16,o=null;break e}j=29,l=Error(i(130,e===null?"null":typeof e,"")),o=null}return n=An(j,l,n,p),n.elementType=e,n.type=o,n.lanes=g,n}function Ta(e,n,l,o){return e=An(7,e,o,n),e.lanes=l,e}function Ic(e,n,l){return e=An(6,e,null,n),e.lanes=l,e}function Up(e){var n=An(18,null,null,0);return n.stateNode=e,n}function $c(e,n,l){return n=An(4,e.children!==null?e.children:[],e.key,n),n.lanes=l,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var Hp=new WeakMap;function Gn(e,n){if(typeof e=="object"&&e!==null){var l=Hp.get(e);return l!==void 0?l:(n={value:e,source:n,stack:je(n)},Hp.set(e,n),n)}return{value:e,source:n,stack:je(n)}}var ul=[],dl=0,Ti=null,rs=0,Wn=[],qn=0,qr=null,fr=1,pr="";function Er(e,n){ul[dl++]=rs,ul[dl++]=Ti,Ti=e,rs=n}function Pp(e,n,l){Wn[qn++]=fr,Wn[qn++]=pr,Wn[qn++]=qr,qr=e;var o=fr;e=pr;var p=32-qt(o)-1;o&=~(1<<p),l+=1;var g=32-qt(n)+p;if(30<g){var j=p-p%5;g=(o&(1<<j)-1).toString(32),o>>=j,p-=j,fr=1<<32-qt(n)+p|l<<p|o,pr=g+e}else fr=1<<g|l<<p|o,pr=e}function Uc(e){e.return!==null&&(Er(e,1),Pp(e,1,0))}function Hc(e){for(;e===Ti;)Ti=ul[--dl],ul[dl]=null,rs=ul[--dl],ul[dl]=null;for(;e===qr;)qr=Wn[--qn],Wn[qn]=null,pr=Wn[--qn],Wn[qn]=null,fr=Wn[--qn],Wn[qn]=null}function Vp(e,n){Wn[qn++]=fr,Wn[qn++]=pr,Wn[qn++]=qr,fr=n.id,pr=n.overflow,qr=e}var ln=null,wt=null,tt=!1,Yr=null,Yn=!1,Pc=Error(i(519));function Kr(e){var n=Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw as(Gn(n,e)),Pc}function Fp(e){var n=e.stateNode,l=e.type,o=e.memoizedProps;switch(n[Dt]=e,n[It]=o,l){case"dialog":Xe("cancel",n),Xe("close",n);break;case"iframe":case"object":case"embed":Xe("load",n);break;case"video":case"audio":for(l=0;l<Es.length;l++)Xe(Es[l],n);break;case"source":Xe("error",n);break;case"img":case"image":case"link":Xe("error",n),Xe("load",n);break;case"details":Xe("toggle",n);break;case"input":Xe("invalid",n),rp(n,o.value,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name,!0);break;case"select":Xe("invalid",n);break;case"textarea":Xe("invalid",n),lp(n,o.value,o.defaultValue,o.children)}l=o.children,typeof l!="string"&&typeof l!="number"&&typeof l!="bigint"||n.textContent===""+l||o.suppressHydrationWarning===!0||ix(n.textContent,l)?(o.popover!=null&&(Xe("beforetoggle",n),Xe("toggle",n)),o.onScroll!=null&&Xe("scroll",n),o.onScrollEnd!=null&&Xe("scrollend",n),o.onClick!=null&&(n.onclick=kr),n=!0):n=!1,n||Kr(e,!0)}function Gp(e){for(ln=e.return;ln;)switch(ln.tag){case 5:case 31:case 13:Yn=!1;return;case 27:case 3:Yn=!0;return;default:ln=ln.return}}function fl(e){if(e!==ln)return!1;if(!tt)return Gp(e),tt=!0,!1;var n=e.tag,l;if((l=n!==3&&n!==27)&&((l=n===5)&&(l=e.type,l=!(l!=="form"&&l!=="button")||sd(e.type,e.memoizedProps)),l=!l),l&&wt&&Kr(e),Gp(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));wt=xx(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));wt=xx(e)}else n===27?(n=wt,ca(e.type)?(e=dd,dd=null,wt=e):wt=n):wt=ln?Xn(e.stateNode.nextSibling):null;return!0}function Ra(){wt=ln=null,tt=!1}function Vc(){var e=Yr;return e!==null&&(Cn===null?Cn=e:Cn.push.apply(Cn,e),Yr=null),e}function as(e){Yr===null?Yr=[e]:Yr.push(e)}var Fc=D(null),Aa=null,Nr=null;function Xr(e,n,l){X(Fc,n._currentValue),n._currentValue=l}function Tr(e){e._currentValue=Fc.current,W(Fc)}function Gc(e,n,l){for(;e!==null;){var o=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,o!==null&&(o.childLanes|=n)):o!==null&&(o.childLanes&n)!==n&&(o.childLanes|=n),e===l)break;e=e.return}}function Wc(e,n,l,o){var p=e.child;for(p!==null&&(p.return=e);p!==null;){var g=p.dependencies;if(g!==null){var j=p.child;g=g.firstContext;e:for(;g!==null;){var R=g;g=p;for(var P=0;P<n.length;P++)if(R.context===n[P]){g.lanes|=l,R=g.alternate,R!==null&&(R.lanes|=l),Gc(g.return,l,e),o||(j=null);break e}g=R.next}}else if(p.tag===18){if(j=p.return,j===null)throw Error(i(341));j.lanes|=l,g=j.alternate,g!==null&&(g.lanes|=l),Gc(j,l,e),j=null}else j=p.child;if(j!==null)j.return=p;else for(j=p;j!==null;){if(j===e){j=null;break}if(p=j.sibling,p!==null){p.return=j.return,j=p;break}j=j.return}p=j}}function pl(e,n,l,o){e=null;for(var p=n,g=!1;p!==null;){if(!g){if((p.flags&524288)!==0)g=!0;else if((p.flags&262144)!==0)break}if(p.tag===10){var j=p.alternate;if(j===null)throw Error(i(387));if(j=j.memoizedProps,j!==null){var R=p.type;Rn(p.pendingProps.value,j.value)||(e!==null?e.push(R):e=[R])}}else if(p===ce.current){if(j=p.alternate,j===null)throw Error(i(387));j.memoizedState.memoizedState!==p.memoizedState.memoizedState&&(e!==null?e.push(Ls):e=[Ls])}p=p.return}e!==null&&Wc(n,e,l,o),n.flags|=262144}function Ri(e){for(e=e.firstContext;e!==null;){if(!Rn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function La(e){Aa=e,Nr=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function sn(e){return Wp(Aa,e)}function Ai(e,n){return Aa===null&&La(e),Wp(e,n)}function Wp(e,n){var l=n._currentValue;if(n={context:n,memoizedValue:l,next:null},Nr===null){if(e===null)throw Error(i(308));Nr=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else Nr=Nr.next=n;return l}var g1=typeof AbortController<"u"?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(l,o){e.push(o)}};this.abort=function(){n.aborted=!0,e.forEach(function(l){return l()})}},v1=t.unstable_scheduleCallback,y1=t.unstable_NormalPriority,Pt={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function qc(){return{controller:new g1,data:new Map,refCount:0}}function ls(e){e.refCount--,e.refCount===0&&v1(y1,function(){e.controller.abort()})}var ss=null,Yc=0,ml=0,hl=null;function b1(e,n){if(ss===null){var l=ss=[];Yc=0,ml=Qu(),hl={status:"pending",value:void 0,then:function(o){l.push(o)}}}return Yc++,n.then(qp,qp),n}function qp(){if(--Yc===0&&ss!==null){hl!==null&&(hl.status="fulfilled");var e=ss;ss=null,ml=0,hl=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function j1(e,n){var l=[],o={status:"pending",value:null,reason:null,then:function(p){l.push(p)}};return e.then(function(){o.status="fulfilled",o.value=n;for(var p=0;p<l.length;p++)(0,l[p])(n)},function(p){for(o.status="rejected",o.reason=p,p=0;p<l.length;p++)(0,l[p])(void 0)}),o}var Yp=M.S;M.S=function(e,n){Lh=qe(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&b1(e,n),Yp!==null&&Yp(e,n)};var Ma=D(null);function Kc(){var e=Ma.current;return e!==null?e:yt.pooledCache}function Li(e,n){n===null?X(Ma,Ma.current):X(Ma,n.pool)}function Kp(){var e=Kc();return e===null?null:{parent:Pt._currentValue,pool:e}}var xl=Error(i(460)),Xc=Error(i(474)),Mi=Error(i(542)),zi={then:function(){}};function Xp(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Qp(e,n,l){switch(l=e[l],l===void 0?e.push(n):l!==n&&(n.then(kr,kr),n=l),n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,Jp(e),e;default:if(typeof n.status=="string")n.then(kr,kr);else{if(e=yt,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=n,e.status="pending",e.then(function(o){if(n.status==="pending"){var p=n;p.status="fulfilled",p.value=o}},function(o){if(n.status==="pending"){var p=n;p.status="rejected",p.reason=o}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,Jp(e),e}throw Da=n,xl}}function za(e){try{var n=e._init;return n(e._payload)}catch(l){throw l!==null&&typeof l=="object"&&typeof l.then=="function"?(Da=l,xl):l}}var Da=null;function Zp(){if(Da===null)throw Error(i(459));var e=Da;return Da=null,e}function Jp(e){if(e===xl||e===Mi)throw Error(i(483))}var gl=null,is=0;function Di(e){var n=is;return is+=1,gl===null&&(gl=[]),Qp(gl,e,n)}function os(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function _i(e,n){throw n.$$typeof===b?Error(i(525)):(e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)))}function em(e){function n(Y,G){if(e){var Z=Y.deletions;Z===null?(Y.deletions=[G],Y.flags|=16):Z.push(G)}}function l(Y,G){if(!e)return null;for(;G!==null;)n(Y,G),G=G.sibling;return null}function o(Y){for(var G=new Map;Y!==null;)Y.key!==null?G.set(Y.key,Y):G.set(Y.index,Y),Y=Y.sibling;return G}function p(Y,G){return Y=Cr(Y,G),Y.index=0,Y.sibling=null,Y}function g(Y,G,Z){return Y.index=Z,e?(Z=Y.alternate,Z!==null?(Z=Z.index,Z<G?(Y.flags|=67108866,G):Z):(Y.flags|=67108866,G)):(Y.flags|=1048576,G)}function j(Y){return e&&Y.alternate===null&&(Y.flags|=67108866),Y}function R(Y,G,Z,pe){return G===null||G.tag!==6?(G=Ic(Z,Y.mode,pe),G.return=Y,G):(G=p(G,Z),G.return=Y,G)}function P(Y,G,Z,pe){var ze=Z.type;return ze===E?ue(Y,G,Z.props.children,pe,Z.key):G!==null&&(G.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===O&&za(ze)===G.type)?(G=p(G,Z.props),os(G,Z),G.return=Y,G):(G=Ni(Z.type,Z.key,Z.props,null,Y.mode,pe),os(G,Z),G.return=Y,G)}function J(Y,G,Z,pe){return G===null||G.tag!==4||G.stateNode.containerInfo!==Z.containerInfo||G.stateNode.implementation!==Z.implementation?(G=$c(Z,Y.mode,pe),G.return=Y,G):(G=p(G,Z.children||[]),G.return=Y,G)}function ue(Y,G,Z,pe,ze){return G===null||G.tag!==7?(G=Ta(Z,Y.mode,pe,ze),G.return=Y,G):(G=p(G,Z),G.return=Y,G)}function me(Y,G,Z){if(typeof G=="string"&&G!==""||typeof G=="number"||typeof G=="bigint")return G=Ic(""+G,Y.mode,Z),G.return=Y,G;if(typeof G=="object"&&G!==null){switch(G.$$typeof){case S:return Z=Ni(G.type,G.key,G.props,null,Y.mode,Z),os(Z,G),Z.return=Y,Z;case C:return G=$c(G,Y.mode,Z),G.return=Y,G;case O:return G=za(G),me(Y,G,Z)}if(U(G)||q(G))return G=Ta(G,Y.mode,Z,null),G.return=Y,G;if(typeof G.then=="function")return me(Y,Di(G),Z);if(G.$$typeof===A)return me(Y,Ai(Y,G),Z);_i(Y,G)}return null}function re(Y,G,Z,pe){var ze=G!==null?G.key:null;if(typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint")return ze!==null?null:R(Y,G,""+Z,pe);if(typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case S:return Z.key===ze?P(Y,G,Z,pe):null;case C:return Z.key===ze?J(Y,G,Z,pe):null;case O:return Z=za(Z),re(Y,G,Z,pe)}if(U(Z)||q(Z))return ze!==null?null:ue(Y,G,Z,pe,null);if(typeof Z.then=="function")return re(Y,G,Di(Z),pe);if(Z.$$typeof===A)return re(Y,G,Ai(Y,Z),pe);_i(Y,Z)}return null}function oe(Y,G,Z,pe,ze){if(typeof pe=="string"&&pe!==""||typeof pe=="number"||typeof pe=="bigint")return Y=Y.get(Z)||null,R(G,Y,""+pe,ze);if(typeof pe=="object"&&pe!==null){switch(pe.$$typeof){case S:return Y=Y.get(pe.key===null?Z:pe.key)||null,P(G,Y,pe,ze);case C:return Y=Y.get(pe.key===null?Z:pe.key)||null,J(G,Y,pe,ze);case O:return pe=za(pe),oe(Y,G,Z,pe,ze)}if(U(pe)||q(pe))return Y=Y.get(Z)||null,ue(G,Y,pe,ze,null);if(typeof pe.then=="function")return oe(Y,G,Z,Di(pe),ze);if(pe.$$typeof===A)return oe(Y,G,Z,Ai(G,pe),ze);_i(G,pe)}return null}function Ce(Y,G,Z,pe){for(var ze=null,at=null,Te=G,Ve=G=0,Je=null;Te!==null&&Ve<Z.length;Ve++){Te.index>Ve?(Je=Te,Te=null):Je=Te.sibling;var lt=re(Y,Te,Z[Ve],pe);if(lt===null){Te===null&&(Te=Je);break}e&&Te&&lt.alternate===null&&n(Y,Te),G=g(lt,G,Ve),at===null?ze=lt:at.sibling=lt,at=lt,Te=Je}if(Ve===Z.length)return l(Y,Te),tt&&Er(Y,Ve),ze;if(Te===null){for(;Ve<Z.length;Ve++)Te=me(Y,Z[Ve],pe),Te!==null&&(G=g(Te,G,Ve),at===null?ze=Te:at.sibling=Te,at=Te);return tt&&Er(Y,Ve),ze}for(Te=o(Te);Ve<Z.length;Ve++)Je=oe(Te,Y,Ve,Z[Ve],pe),Je!==null&&(e&&Je.alternate!==null&&Te.delete(Je.key===null?Ve:Je.key),G=g(Je,G,Ve),at===null?ze=Je:at.sibling=Je,at=Je);return e&&Te.forEach(function(ma){return n(Y,ma)}),tt&&Er(Y,Ve),ze}function De(Y,G,Z,pe){if(Z==null)throw Error(i(151));for(var ze=null,at=null,Te=G,Ve=G=0,Je=null,lt=Z.next();Te!==null&&!lt.done;Ve++,lt=Z.next()){Te.index>Ve?(Je=Te,Te=null):Je=Te.sibling;var ma=re(Y,Te,lt.value,pe);if(ma===null){Te===null&&(Te=Je);break}e&&Te&&ma.alternate===null&&n(Y,Te),G=g(ma,G,Ve),at===null?ze=ma:at.sibling=ma,at=ma,Te=Je}if(lt.done)return l(Y,Te),tt&&Er(Y,Ve),ze;if(Te===null){for(;!lt.done;Ve++,lt=Z.next())lt=me(Y,lt.value,pe),lt!==null&&(G=g(lt,G,Ve),at===null?ze=lt:at.sibling=lt,at=lt);return tt&&Er(Y,Ve),ze}for(Te=o(Te);!lt.done;Ve++,lt=Z.next())lt=oe(Te,Y,Ve,lt.value,pe),lt!==null&&(e&&lt.alternate!==null&&Te.delete(lt.key===null?Ve:lt.key),G=g(lt,G,Ve),at===null?ze=lt:at.sibling=lt,at=lt);return e&&Te.forEach(function(M0){return n(Y,M0)}),tt&&Er(Y,Ve),ze}function ht(Y,G,Z,pe){if(typeof Z=="object"&&Z!==null&&Z.type===E&&Z.key===null&&(Z=Z.props.children),typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case S:e:{for(var ze=Z.key;G!==null;){if(G.key===ze){if(ze=Z.type,ze===E){if(G.tag===7){l(Y,G.sibling),pe=p(G,Z.props.children),pe.return=Y,Y=pe;break e}}else if(G.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===O&&za(ze)===G.type){l(Y,G.sibling),pe=p(G,Z.props),os(pe,Z),pe.return=Y,Y=pe;break e}l(Y,G);break}else n(Y,G);G=G.sibling}Z.type===E?(pe=Ta(Z.props.children,Y.mode,pe,Z.key),pe.return=Y,Y=pe):(pe=Ni(Z.type,Z.key,Z.props,null,Y.mode,pe),os(pe,Z),pe.return=Y,Y=pe)}return j(Y);case C:e:{for(ze=Z.key;G!==null;){if(G.key===ze)if(G.tag===4&&G.stateNode.containerInfo===Z.containerInfo&&G.stateNode.implementation===Z.implementation){l(Y,G.sibling),pe=p(G,Z.children||[]),pe.return=Y,Y=pe;break e}else{l(Y,G);break}else n(Y,G);G=G.sibling}pe=$c(Z,Y.mode,pe),pe.return=Y,Y=pe}return j(Y);case O:return Z=za(Z),ht(Y,G,Z,pe)}if(U(Z))return Ce(Y,G,Z,pe);if(q(Z)){if(ze=q(Z),typeof ze!="function")throw Error(i(150));return Z=ze.call(Z),De(Y,G,Z,pe)}if(typeof Z.then=="function")return ht(Y,G,Di(Z),pe);if(Z.$$typeof===A)return ht(Y,G,Ai(Y,Z),pe);_i(Y,Z)}return typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint"?(Z=""+Z,G!==null&&G.tag===6?(l(Y,G.sibling),pe=p(G,Z),pe.return=Y,Y=pe):(l(Y,G),pe=Ic(Z,Y.mode,pe),pe.return=Y,Y=pe),j(Y)):l(Y,G)}return function(Y,G,Z,pe){try{is=0;var ze=ht(Y,G,Z,pe);return gl=null,ze}catch(Te){if(Te===xl||Te===Mi)throw Te;var at=An(29,Te,null,Y.mode);return at.lanes=pe,at.return=Y,at}finally{}}}var _a=em(!0),tm=em(!1),Qr=!1;function Qc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Zc(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Zr(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Jr(e,n,l){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(ot&2)!==0){var p=o.pending;return p===null?n.next=n:(n.next=p.next,p.next=n),o.pending=n,n=Ei(e),Ip(e,null,l),n}return Ci(e,o,n,l),Ei(e)}function cs(e,n,l){if(n=n.updateQueue,n!==null&&(n=n.shared,(l&4194048)!==0)){var o=n.lanes;o&=e.pendingLanes,l|=o,n.lanes=l,Ne(e,l)}}function Jc(e,n){var l=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,l===o)){var p=null,g=null;if(l=l.firstBaseUpdate,l!==null){do{var j={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};g===null?p=g=j:g=g.next=j,l=l.next}while(l!==null);g===null?p=g=n:g=g.next=n}else p=g=n;l={baseState:o.baseState,firstBaseUpdate:p,lastBaseUpdate:g,shared:o.shared,callbacks:o.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=n:e.next=n,l.lastBaseUpdate=n}var eu=!1;function us(){if(eu){var e=hl;if(e!==null)throw e}}function ds(e,n,l,o){eu=!1;var p=e.updateQueue;Qr=!1;var g=p.firstBaseUpdate,j=p.lastBaseUpdate,R=p.shared.pending;if(R!==null){p.shared.pending=null;var P=R,J=P.next;P.next=null,j===null?g=J:j.next=J,j=P;var ue=e.alternate;ue!==null&&(ue=ue.updateQueue,R=ue.lastBaseUpdate,R!==j&&(R===null?ue.firstBaseUpdate=J:R.next=J,ue.lastBaseUpdate=P))}if(g!==null){var me=p.baseState;j=0,ue=J=P=null,R=g;do{var re=R.lane&-536870913,oe=re!==R.lane;if(oe?(Ze&re)===re:(o&re)===re){re!==0&&re===ml&&(eu=!0),ue!==null&&(ue=ue.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});e:{var Ce=e,De=R;re=n;var ht=l;switch(De.tag){case 1:if(Ce=De.payload,typeof Ce=="function"){me=Ce.call(ht,me,re);break e}me=Ce;break e;case 3:Ce.flags=Ce.flags&-65537|128;case 0:if(Ce=De.payload,re=typeof Ce=="function"?Ce.call(ht,me,re):Ce,re==null)break e;me=v({},me,re);break e;case 2:Qr=!0}}re=R.callback,re!==null&&(e.flags|=64,oe&&(e.flags|=8192),oe=p.callbacks,oe===null?p.callbacks=[re]:oe.push(re))}else oe={lane:re,tag:R.tag,payload:R.payload,callback:R.callback,next:null},ue===null?(J=ue=oe,P=me):ue=ue.next=oe,j|=re;if(R=R.next,R===null){if(R=p.shared.pending,R===null)break;oe=R,R=oe.next,oe.next=null,p.lastBaseUpdate=oe,p.shared.pending=null}}while(!0);ue===null&&(P=me),p.baseState=P,p.firstBaseUpdate=J,p.lastBaseUpdate=ue,g===null&&(p.shared.lanes=0),aa|=j,e.lanes=j,e.memoizedState=me}}function nm(e,n){if(typeof e!="function")throw Error(i(191,e));e.call(n)}function rm(e,n){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;e<l.length;e++)nm(l[e],n)}var vl=D(null),Oi=D(0);function am(e,n){e=Br,X(Oi,e),X(vl,n),Br=e|n.baseLanes}function tu(){X(Oi,Br),X(vl,vl.current)}function nu(){Br=Oi.current,W(vl),W(Oi)}var Ln=D(null),Kn=null;function ea(e){var n=e.alternate;X($t,$t.current&1),X(Ln,e),Kn===null&&(n===null||vl.current!==null||n.memoizedState!==null)&&(Kn=e)}function ru(e){X($t,$t.current),X(Ln,e),Kn===null&&(Kn=e)}function lm(e){e.tag===22?(X($t,$t.current),X(Ln,e),Kn===null&&(Kn=e)):ta()}function ta(){X($t,$t.current),X(Ln,Ln.current)}function Mn(e){W(Ln),Kn===e&&(Kn=null),W($t)}var $t=D(0);function Bi(e){for(var n=e;n!==null;){if(n.tag===13){var l=n.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||cd(l)||ud(l)))return n}else if(n.tag===19&&(n.memoizedProps.revealOrder==="forwards"||n.memoizedProps.revealOrder==="backwards"||n.memoizedProps.revealOrder==="unstable_legacy-backwards"||n.memoizedProps.revealOrder==="together")){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Rr=0,He=null,pt=null,Vt=null,Ii=!1,yl=!1,Oa=!1,$i=0,fs=0,bl=null,S1=0;function _t(){throw Error(i(321))}function au(e,n){if(n===null)return!1;for(var l=0;l<n.length&&l<e.length;l++)if(!Rn(e[l],n[l]))return!1;return!0}function lu(e,n,l,o,p,g){return Rr=g,He=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,M.H=e===null||e.memoizedState===null?Pm:bu,Oa=!1,g=l(o,p),Oa=!1,yl&&(g=im(n,l,o,p)),sm(e),g}function sm(e){M.H=hs;var n=pt!==null&&pt.next!==null;if(Rr=0,Vt=pt=He=null,Ii=!1,fs=0,bl=null,n)throw Error(i(300));e===null||Ft||(e=e.dependencies,e!==null&&Ri(e)&&(Ft=!0))}function im(e,n,l,o){He=e;var p=0;do{if(yl&&(bl=null),fs=0,yl=!1,25<=p)throw Error(i(301));if(p+=1,Vt=pt=null,e.updateQueue!=null){var g=e.updateQueue;g.lastEffect=null,g.events=null,g.stores=null,g.memoCache!=null&&(g.memoCache.index=0)}M.H=Vm,g=n(l,o)}while(yl);return g}function k1(){var e=M.H,n=e.useState()[0];return n=typeof n.then=="function"?ps(n):n,e=e.useState()[0],(pt!==null?pt.memoizedState:null)!==e&&(He.flags|=1024),n}function su(){var e=$i!==0;return $i=0,e}function iu(e,n,l){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l}function ou(e){if(Ii){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Ii=!1}Rr=0,Vt=pt=He=null,yl=!1,fs=$i=0,bl=null}function xn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Vt===null?He.memoizedState=Vt=e:Vt=Vt.next=e,Vt}function Ut(){if(pt===null){var e=He.alternate;e=e!==null?e.memoizedState:null}else e=pt.next;var n=Vt===null?He.memoizedState:Vt.next;if(n!==null)Vt=n,pt=e;else{if(e===null)throw He.alternate===null?Error(i(467)):Error(i(310));pt=e,e={memoizedState:pt.memoizedState,baseState:pt.baseState,baseQueue:pt.baseQueue,queue:pt.queue,next:null},Vt===null?He.memoizedState=Vt=e:Vt=Vt.next=e}return Vt}function Ui(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ps(e){var n=fs;return fs+=1,bl===null&&(bl=[]),e=Qp(bl,e,n),n=He,(Vt===null?n.memoizedState:Vt.next)===null&&(n=n.alternate,M.H=n===null||n.memoizedState===null?Pm:bu),e}function Hi(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return ps(e);if(e.$$typeof===A)return sn(e)}throw Error(i(438,String(e)))}function cu(e){var n=null,l=He.updateQueue;if(l!==null&&(n=l.memoCache),n==null){var o=He.alternate;o!==null&&(o=o.updateQueue,o!==null&&(o=o.memoCache,o!=null&&(n={data:o.data.map(function(p){return p.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),l===null&&(l=Ui(),He.updateQueue=l),l.memoCache=n,l=n.data[n.index],l===void 0)for(l=n.data[n.index]=Array(e),o=0;o<e;o++)l[o]=_;return n.index++,l}function Ar(e,n){return typeof n=="function"?n(e):n}function Pi(e){var n=Ut();return uu(n,pt,e)}function uu(e,n,l){var o=e.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=l;var p=e.baseQueue,g=o.pending;if(g!==null){if(p!==null){var j=p.next;p.next=g.next,g.next=j}n.baseQueue=p=g,o.pending=null}if(g=e.baseState,p===null)e.memoizedState=g;else{n=p.next;var R=j=null,P=null,J=n,ue=!1;do{var me=J.lane&-536870913;if(me!==J.lane?(Ze&me)===me:(Rr&me)===me){var re=J.revertLane;if(re===0)P!==null&&(P=P.next={lane:0,revertLane:0,gesture:null,action:J.action,hasEagerState:J.hasEagerState,eagerState:J.eagerState,next:null}),me===ml&&(ue=!0);else if((Rr&re)===re){J=J.next,re===ml&&(ue=!0);continue}else me={lane:0,revertLane:J.revertLane,gesture:null,action:J.action,hasEagerState:J.hasEagerState,eagerState:J.eagerState,next:null},P===null?(R=P=me,j=g):P=P.next=me,He.lanes|=re,aa|=re;me=J.action,Oa&&l(g,me),g=J.hasEagerState?J.eagerState:l(g,me)}else re={lane:me,revertLane:J.revertLane,gesture:J.gesture,action:J.action,hasEagerState:J.hasEagerState,eagerState:J.eagerState,next:null},P===null?(R=P=re,j=g):P=P.next=re,He.lanes|=me,aa|=me;J=J.next}while(J!==null&&J!==n);if(P===null?j=g:P.next=R,!Rn(g,e.memoizedState)&&(Ft=!0,ue&&(l=hl,l!==null)))throw l;e.memoizedState=g,e.baseState=j,e.baseQueue=P,o.lastRenderedState=g}return p===null&&(o.lanes=0),[e.memoizedState,o.dispatch]}function du(e){var n=Ut(),l=n.queue;if(l===null)throw Error(i(311));l.lastRenderedReducer=e;var o=l.dispatch,p=l.pending,g=n.memoizedState;if(p!==null){l.pending=null;var j=p=p.next;do g=e(g,j.action),j=j.next;while(j!==p);Rn(g,n.memoizedState)||(Ft=!0),n.memoizedState=g,n.baseQueue===null&&(n.baseState=g),l.lastRenderedState=g}return[g,o]}function om(e,n,l){var o=He,p=Ut(),g=tt;if(g){if(l===void 0)throw Error(i(407));l=l()}else l=n();var j=!Rn((pt||p).memoizedState,l);if(j&&(p.memoizedState=l,Ft=!0),p=p.queue,mu(dm.bind(null,o,p,e),[e]),p.getSnapshot!==n||j||Vt!==null&&Vt.memoizedState.tag&1){if(o.flags|=2048,jl(9,{destroy:void 0},um.bind(null,o,p,l,n),null),yt===null)throw Error(i(349));g||(Rr&127)!==0||cm(o,n,l)}return l}function cm(e,n,l){e.flags|=16384,e={getSnapshot:n,value:l},n=He.updateQueue,n===null?(n=Ui(),He.updateQueue=n,n.stores=[e]):(l=n.stores,l===null?n.stores=[e]:l.push(e))}function um(e,n,l,o){n.value=l,n.getSnapshot=o,fm(n)&&pm(e)}function dm(e,n,l){return l(function(){fm(n)&&pm(e)})}function fm(e){var n=e.getSnapshot;e=e.value;try{var l=n();return!Rn(e,l)}catch{return!0}}function pm(e){var n=Na(e,2);n!==null&&En(n,e,2)}function fu(e){var n=xn();if(typeof e=="function"){var l=e;if(e=l(),Oa){bn(!0);try{l()}finally{bn(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ar,lastRenderedState:e},n}function mm(e,n,l,o){return e.baseState=l,uu(e,pt,typeof o=="function"?o:Ar)}function w1(e,n,l,o,p){if(Gi(e))throw Error(i(485));if(e=n.action,e!==null){var g={payload:p,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(j){g.listeners.push(j)}};M.T!==null?l(!0):g.isTransition=!1,o(g),l=n.pending,l===null?(g.next=n.pending=g,hm(n,g)):(g.next=l.next,n.pending=l.next=g)}}function hm(e,n){var l=n.action,o=n.payload,p=e.state;if(n.isTransition){var g=M.T,j={};M.T=j;try{var R=l(p,o),P=M.S;P!==null&&P(j,R),xm(e,n,R)}catch(J){pu(e,n,J)}finally{g!==null&&j.types!==null&&(g.types=j.types),M.T=g}}else try{g=l(p,o),xm(e,n,g)}catch(J){pu(e,n,J)}}function xm(e,n,l){l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(function(o){gm(e,n,o)},function(o){return pu(e,n,o)}):gm(e,n,l)}function gm(e,n,l){n.status="fulfilled",n.value=l,vm(n),e.state=l,n=e.pending,n!==null&&(l=n.next,l===n?e.pending=null:(l=l.next,n.next=l,hm(e,l)))}function pu(e,n,l){var o=e.pending;if(e.pending=null,o!==null){o=o.next;do n.status="rejected",n.reason=l,vm(n),n=n.next;while(n!==o)}e.action=null}function vm(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function ym(e,n){return n}function bm(e,n){if(tt){var l=yt.formState;if(l!==null){e:{var o=He;if(tt){if(wt){t:{for(var p=wt,g=Yn;p.nodeType!==8;){if(!g){p=null;break t}if(p=Xn(p.nextSibling),p===null){p=null;break t}}g=p.data,p=g==="F!"||g==="F"?p:null}if(p){wt=Xn(p.nextSibling),o=p.data==="F!";break e}}Kr(o)}o=!1}o&&(n=l[0])}}return l=xn(),l.memoizedState=l.baseState=n,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ym,lastRenderedState:n},l.queue=o,l=$m.bind(null,He,o),o.dispatch=l,o=fu(!1),g=yu.bind(null,He,!1,o.queue),o=xn(),p={state:n,dispatch:null,action:e,pending:null},o.queue=p,l=w1.bind(null,He,p,g,l),p.dispatch=l,o.memoizedState=e,[n,l,!1]}function jm(e){var n=Ut();return Sm(n,pt,e)}function Sm(e,n,l){if(n=uu(e,n,ym)[0],e=Pi(Ar)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var o=ps(n)}catch(j){throw j===xl?Mi:j}else o=n;n=Ut();var p=n.queue,g=p.dispatch;return l!==n.memoizedState&&(He.flags|=2048,jl(9,{destroy:void 0},C1.bind(null,p,l),null)),[o,g,e]}function C1(e,n){e.action=n}function km(e){var n=Ut(),l=pt;if(l!==null)return Sm(n,l,e);Ut(),n=n.memoizedState,l=Ut();var o=l.queue.dispatch;return l.memoizedState=e,[n,o,!1]}function jl(e,n,l,o){return e={tag:e,create:l,deps:o,inst:n,next:null},n=He.updateQueue,n===null&&(n=Ui(),He.updateQueue=n),l=n.lastEffect,l===null?n.lastEffect=e.next=e:(o=l.next,l.next=e,e.next=o,n.lastEffect=e),e}function wm(){return Ut().memoizedState}function Vi(e,n,l,o){var p=xn();He.flags|=e,p.memoizedState=jl(1|n,{destroy:void 0},l,o===void 0?null:o)}function Fi(e,n,l,o){var p=Ut();o=o===void 0?null:o;var g=p.memoizedState.inst;pt!==null&&o!==null&&au(o,pt.memoizedState.deps)?p.memoizedState=jl(n,g,l,o):(He.flags|=e,p.memoizedState=jl(1|n,g,l,o))}function Cm(e,n){Vi(8390656,8,e,n)}function mu(e,n){Fi(2048,8,e,n)}function E1(e){He.flags|=4;var n=He.updateQueue;if(n===null)n=Ui(),He.updateQueue=n,n.events=[e];else{var l=n.events;l===null?n.events=[e]:l.push(e)}}function Em(e){var n=Ut().memoizedState;return E1({ref:n,nextImpl:e}),function(){if((ot&2)!==0)throw Error(i(440));return n.impl.apply(void 0,arguments)}}function Nm(e,n){return Fi(4,2,e,n)}function Tm(e,n){return Fi(4,4,e,n)}function Rm(e,n){if(typeof n=="function"){e=e();var l=n(e);return function(){typeof l=="function"?l():n(null)}}if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Am(e,n,l){l=l!=null?l.concat([e]):null,Fi(4,4,Rm.bind(null,n,e),l)}function hu(){}function Lm(e,n){var l=Ut();n=n===void 0?null:n;var o=l.memoizedState;return n!==null&&au(n,o[1])?o[0]:(l.memoizedState=[e,n],e)}function Mm(e,n){var l=Ut();n=n===void 0?null:n;var o=l.memoizedState;if(n!==null&&au(n,o[1]))return o[0];if(o=e(),Oa){bn(!0);try{e()}finally{bn(!1)}}return l.memoizedState=[o,n],o}function xu(e,n,l){return l===void 0||(Rr&1073741824)!==0&&(Ze&261930)===0?e.memoizedState=n:(e.memoizedState=l,e=zh(),He.lanes|=e,aa|=e,l)}function zm(e,n,l,o){return Rn(l,n)?l:vl.current!==null?(e=xu(e,l,o),Rn(e,n)||(Ft=!0),e):(Rr&42)===0||(Rr&1073741824)!==0&&(Ze&261930)===0?(Ft=!0,e.memoizedState=l):(e=zh(),He.lanes|=e,aa|=e,n)}function Dm(e,n,l,o,p){var g=B.p;B.p=g!==0&&8>g?g:8;var j=M.T,R={};M.T=R,yu(e,!1,n,l);try{var P=p(),J=M.S;if(J!==null&&J(R,P),P!==null&&typeof P=="object"&&typeof P.then=="function"){var ue=j1(P,o);ms(e,n,ue,_n(e))}else ms(e,n,o,_n(e))}catch(me){ms(e,n,{then:function(){},status:"rejected",reason:me},_n())}finally{B.p=g,j!==null&&R.types!==null&&(j.types=R.types),M.T=j}}function N1(){}function gu(e,n,l,o){if(e.tag!==5)throw Error(i(476));var p=_m(e).queue;Dm(e,p,n,F,l===null?N1:function(){return Om(e),l(o)})}function _m(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:F,baseState:F,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ar,lastRenderedState:F},next:null};var l={};return n.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ar,lastRenderedState:l},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function Om(e){var n=_m(e);n.next===null&&(n=e.alternate.memoizedState),ms(e,n.next.queue,{},_n())}function vu(){return sn(Ls)}function Bm(){return Ut().memoizedState}function Im(){return Ut().memoizedState}function T1(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var l=_n();e=Zr(l);var o=Jr(n,e,l);o!==null&&(En(o,n,l),cs(o,n,l)),n={cache:qc()},e.payload=n;return}n=n.return}}function R1(e,n,l){var o=_n();l={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Gi(e)?Um(n,l):(l=Oc(e,n,l,o),l!==null&&(En(l,e,o),Hm(l,n,o)))}function $m(e,n,l){var o=_n();ms(e,n,l,o)}function ms(e,n,l,o){var p={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(Gi(e))Um(n,p);else{var g=e.alternate;if(e.lanes===0&&(g===null||g.lanes===0)&&(g=n.lastRenderedReducer,g!==null))try{var j=n.lastRenderedState,R=g(j,l);if(p.hasEagerState=!0,p.eagerState=R,Rn(R,j))return Ci(e,n,p,0),yt===null&&wi(),!1}catch{}finally{}if(l=Oc(e,n,p,o),l!==null)return En(l,e,o),Hm(l,n,o),!0}return!1}function yu(e,n,l,o){if(o={lane:2,revertLane:Qu(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},Gi(e)){if(n)throw Error(i(479))}else n=Oc(e,l,o,2),n!==null&&En(n,e,2)}function Gi(e){var n=e.alternate;return e===He||n!==null&&n===He}function Um(e,n){yl=Ii=!0;var l=e.pending;l===null?n.next=n:(n.next=l.next,l.next=n),e.pending=n}function Hm(e,n,l){if((l&4194048)!==0){var o=n.lanes;o&=e.pendingLanes,l|=o,n.lanes=l,Ne(e,l)}}var hs={readContext:sn,use:Hi,useCallback:_t,useContext:_t,useEffect:_t,useImperativeHandle:_t,useLayoutEffect:_t,useInsertionEffect:_t,useMemo:_t,useReducer:_t,useRef:_t,useState:_t,useDebugValue:_t,useDeferredValue:_t,useTransition:_t,useSyncExternalStore:_t,useId:_t,useHostTransitionStatus:_t,useFormState:_t,useActionState:_t,useOptimistic:_t,useMemoCache:_t,useCacheRefresh:_t};hs.useEffectEvent=_t;var Pm={readContext:sn,use:Hi,useCallback:function(e,n){return xn().memoizedState=[e,n===void 0?null:n],e},useContext:sn,useEffect:Cm,useImperativeHandle:function(e,n,l){l=l!=null?l.concat([e]):null,Vi(4194308,4,Rm.bind(null,n,e),l)},useLayoutEffect:function(e,n){return Vi(4194308,4,e,n)},useInsertionEffect:function(e,n){Vi(4,2,e,n)},useMemo:function(e,n){var l=xn();n=n===void 0?null:n;var o=e();if(Oa){bn(!0);try{e()}finally{bn(!1)}}return l.memoizedState=[o,n],o},useReducer:function(e,n,l){var o=xn();if(l!==void 0){var p=l(n);if(Oa){bn(!0);try{l(n)}finally{bn(!1)}}}else p=n;return o.memoizedState=o.baseState=p,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:p},o.queue=e,e=e.dispatch=R1.bind(null,He,e),[o.memoizedState,e]},useRef:function(e){var n=xn();return e={current:e},n.memoizedState=e},useState:function(e){e=fu(e);var n=e.queue,l=$m.bind(null,He,n);return n.dispatch=l,[e.memoizedState,l]},useDebugValue:hu,useDeferredValue:function(e,n){var l=xn();return xu(l,e,n)},useTransition:function(){var e=fu(!1);return e=Dm.bind(null,He,e.queue,!0,!1),xn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,l){var o=He,p=xn();if(tt){if(l===void 0)throw Error(i(407));l=l()}else{if(l=n(),yt===null)throw Error(i(349));(Ze&127)!==0||cm(o,n,l)}p.memoizedState=l;var g={value:l,getSnapshot:n};return p.queue=g,Cm(dm.bind(null,o,g,e),[e]),o.flags|=2048,jl(9,{destroy:void 0},um.bind(null,o,g,l,n),null),l},useId:function(){var e=xn(),n=yt.identifierPrefix;if(tt){var l=pr,o=fr;l=(o&~(1<<32-qt(o)-1)).toString(32)+l,n="_"+n+"R_"+l,l=$i++,0<l&&(n+="H"+l.toString(32)),n+="_"}else l=S1++,n="_"+n+"r_"+l.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:vu,useFormState:bm,useActionState:bm,useOptimistic:function(e){var n=xn();n.memoizedState=n.baseState=e;var l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=l,n=yu.bind(null,He,!0,l),l.dispatch=n,[e,n]},useMemoCache:cu,useCacheRefresh:function(){return xn().memoizedState=T1.bind(null,He)},useEffectEvent:function(e){var n=xn(),l={impl:e};return n.memoizedState=l,function(){if((ot&2)!==0)throw Error(i(440));return l.impl.apply(void 0,arguments)}}},bu={readContext:sn,use:Hi,useCallback:Lm,useContext:sn,useEffect:mu,useImperativeHandle:Am,useInsertionEffect:Nm,useLayoutEffect:Tm,useMemo:Mm,useReducer:Pi,useRef:wm,useState:function(){return Pi(Ar)},useDebugValue:hu,useDeferredValue:function(e,n){var l=Ut();return zm(l,pt.memoizedState,e,n)},useTransition:function(){var e=Pi(Ar)[0],n=Ut().memoizedState;return[typeof e=="boolean"?e:ps(e),n]},useSyncExternalStore:om,useId:Bm,useHostTransitionStatus:vu,useFormState:jm,useActionState:jm,useOptimistic:function(e,n){var l=Ut();return mm(l,pt,e,n)},useMemoCache:cu,useCacheRefresh:Im};bu.useEffectEvent=Em;var Vm={readContext:sn,use:Hi,useCallback:Lm,useContext:sn,useEffect:mu,useImperativeHandle:Am,useInsertionEffect:Nm,useLayoutEffect:Tm,useMemo:Mm,useReducer:du,useRef:wm,useState:function(){return du(Ar)},useDebugValue:hu,useDeferredValue:function(e,n){var l=Ut();return pt===null?xu(l,e,n):zm(l,pt.memoizedState,e,n)},useTransition:function(){var e=du(Ar)[0],n=Ut().memoizedState;return[typeof e=="boolean"?e:ps(e),n]},useSyncExternalStore:om,useId:Bm,useHostTransitionStatus:vu,useFormState:km,useActionState:km,useOptimistic:function(e,n){var l=Ut();return pt!==null?mm(l,pt,e,n):(l.baseState=e,[e,l.queue.dispatch])},useMemoCache:cu,useCacheRefresh:Im};Vm.useEffectEvent=Em;function ju(e,n,l,o){n=e.memoizedState,l=l(o,n),l=l==null?n:v({},n,l),e.memoizedState=l,e.lanes===0&&(e.updateQueue.baseState=l)}var Su={enqueueSetState:function(e,n,l){e=e._reactInternals;var o=_n(),p=Zr(o);p.payload=n,l!=null&&(p.callback=l),n=Jr(e,p,o),n!==null&&(En(n,e,o),cs(n,e,o))},enqueueReplaceState:function(e,n,l){e=e._reactInternals;var o=_n(),p=Zr(o);p.tag=1,p.payload=n,l!=null&&(p.callback=l),n=Jr(e,p,o),n!==null&&(En(n,e,o),cs(n,e,o))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var l=_n(),o=Zr(l);o.tag=2,n!=null&&(o.callback=n),n=Jr(e,o,l),n!==null&&(En(n,e,l),cs(n,e,l))}};function Fm(e,n,l,o,p,g,j){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(o,g,j):n.prototype&&n.prototype.isPureReactComponent?!ts(l,o)||!ts(p,g):!0}function Gm(e,n,l,o){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(l,o),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(l,o),n.state!==e&&Su.enqueueReplaceState(n,n.state,null)}function Ba(e,n){var l=n;if("ref"in n){l={};for(var o in n)o!=="ref"&&(l[o]=n[o])}if(e=e.defaultProps){l===n&&(l=v({},l));for(var p in e)l[p]===void 0&&(l[p]=e[p])}return l}function Wm(e){ki(e)}function qm(e){console.error(e)}function Ym(e){ki(e)}function Wi(e,n){try{var l=e.onUncaughtError;l(n.value,{componentStack:n.stack})}catch(o){setTimeout(function(){throw o})}}function Km(e,n,l){try{var o=e.onCaughtError;o(l.value,{componentStack:l.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(p){setTimeout(function(){throw p})}}function ku(e,n,l){return l=Zr(l),l.tag=3,l.payload={element:null},l.callback=function(){Wi(e,n)},l}function Xm(e){return e=Zr(e),e.tag=3,e}function Qm(e,n,l,o){var p=l.type.getDerivedStateFromError;if(typeof p=="function"){var g=o.value;e.payload=function(){return p(g)},e.callback=function(){Km(n,l,o)}}var j=l.stateNode;j!==null&&typeof j.componentDidCatch=="function"&&(e.callback=function(){Km(n,l,o),typeof p!="function"&&(la===null?la=new Set([this]):la.add(this));var R=o.stack;this.componentDidCatch(o.value,{componentStack:R!==null?R:""})})}function A1(e,n,l,o,p){if(l.flags|=32768,o!==null&&typeof o=="object"&&typeof o.then=="function"){if(n=l.alternate,n!==null&&pl(n,l,p,!0),l=Ln.current,l!==null){switch(l.tag){case 31:case 13:return Kn===null?ao():l.alternate===null&&Ot===0&&(Ot=3),l.flags&=-257,l.flags|=65536,l.lanes=p,o===zi?l.flags|=16384:(n=l.updateQueue,n===null?l.updateQueue=new Set([o]):n.add(o),Yu(e,o,p)),!1;case 22:return l.flags|=65536,o===zi?l.flags|=16384:(n=l.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([o])},l.updateQueue=n):(l=n.retryQueue,l===null?n.retryQueue=new Set([o]):l.add(o)),Yu(e,o,p)),!1}throw Error(i(435,l.tag))}return Yu(e,o,p),ao(),!1}if(tt)return n=Ln.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=p,o!==Pc&&(e=Error(i(422),{cause:o}),as(Gn(e,l)))):(o!==Pc&&(n=Error(i(423),{cause:o}),as(Gn(n,l))),e=e.current.alternate,e.flags|=65536,p&=-p,e.lanes|=p,o=Gn(o,l),p=ku(e.stateNode,o,p),Jc(e,p),Ot!==4&&(Ot=2)),!1;var g=Error(i(520),{cause:o});if(g=Gn(g,l),ks===null?ks=[g]:ks.push(g),Ot!==4&&(Ot=2),n===null)return!0;o=Gn(o,l),l=n;do{switch(l.tag){case 3:return l.flags|=65536,e=p&-p,l.lanes|=e,e=ku(l.stateNode,o,e),Jc(l,e),!1;case 1:if(n=l.type,g=l.stateNode,(l.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||g!==null&&typeof g.componentDidCatch=="function"&&(la===null||!la.has(g))))return l.flags|=65536,p&=-p,l.lanes|=p,p=Xm(p),Qm(p,e,l,o),Jc(l,p),!1}l=l.return}while(l!==null);return!1}var wu=Error(i(461)),Ft=!1;function on(e,n,l,o){n.child=e===null?tm(n,null,l,o):_a(n,e.child,l,o)}function Zm(e,n,l,o,p){l=l.render;var g=n.ref;if("ref"in o){var j={};for(var R in o)R!=="ref"&&(j[R]=o[R])}else j=o;return La(n),o=lu(e,n,l,j,g,p),R=su(),e!==null&&!Ft?(iu(e,n,p),Lr(e,n,p)):(tt&&R&&Uc(n),n.flags|=1,on(e,n,o,p),n.child)}function Jm(e,n,l,o,p){if(e===null){var g=l.type;return typeof g=="function"&&!Bc(g)&&g.defaultProps===void 0&&l.compare===null?(n.tag=15,n.type=g,eh(e,n,g,o,p)):(e=Ni(l.type,null,o,n,n.mode,p),e.ref=n.ref,e.return=n,n.child=e)}if(g=e.child,!Mu(e,p)){var j=g.memoizedProps;if(l=l.compare,l=l!==null?l:ts,l(j,o)&&e.ref===n.ref)return Lr(e,n,p)}return n.flags|=1,e=Cr(g,o),e.ref=n.ref,e.return=n,n.child=e}function eh(e,n,l,o,p){if(e!==null){var g=e.memoizedProps;if(ts(g,o)&&e.ref===n.ref)if(Ft=!1,n.pendingProps=o=g,Mu(e,p))(e.flags&131072)!==0&&(Ft=!0);else return n.lanes=e.lanes,Lr(e,n,p)}return Cu(e,n,l,o,p)}function th(e,n,l,o){var p=o.children,g=e!==null?e.memoizedState:null;if(e===null&&n.stateNode===null&&(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.mode==="hidden"){if((n.flags&128)!==0){if(g=g!==null?g.baseLanes|l:l,e!==null){for(o=n.child=e.child,p=0;o!==null;)p=p|o.lanes|o.childLanes,o=o.sibling;o=p&~g}else o=0,n.child=null;return nh(e,n,g,l,o)}if((l&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&Li(n,g!==null?g.cachePool:null),g!==null?am(n,g):tu(),lm(n);else return o=n.lanes=536870912,nh(e,n,g!==null?g.baseLanes|l:l,l,o)}else g!==null?(Li(n,g.cachePool),am(n,g),ta(),n.memoizedState=null):(e!==null&&Li(n,null),tu(),ta());return on(e,n,p,l),n.child}function xs(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function nh(e,n,l,o,p){var g=Kc();return g=g===null?null:{parent:Pt._currentValue,pool:g},n.memoizedState={baseLanes:l,cachePool:g},e!==null&&Li(n,null),tu(),lm(n),e!==null&&pl(e,n,o,!0),n.childLanes=p,null}function qi(e,n){return n=Ki({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function rh(e,n,l){return _a(n,e.child,null,l),e=qi(n,n.pendingProps),e.flags|=2,Mn(n),n.memoizedState=null,e}function L1(e,n,l){var o=n.pendingProps,p=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(tt){if(o.mode==="hidden")return e=qi(n,o),n.lanes=536870912,xs(null,e);if(ru(n),(e=wt)?(e=hx(e,Yn),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:qr!==null?{id:fr,overflow:pr}:null,retryLane:536870912,hydrationErrors:null},l=Up(e),l.return=n,n.child=l,ln=n,wt=null)):e=null,e===null)throw Kr(n);return n.lanes=536870912,null}return qi(n,o)}var g=e.memoizedState;if(g!==null){var j=g.dehydrated;if(ru(n),p)if(n.flags&256)n.flags&=-257,n=rh(e,n,l);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(i(558));else if(Ft||pl(e,n,l,!1),p=(l&e.childLanes)!==0,Ft||p){if(o=yt,o!==null&&(j=Bt(o,l),j!==0&&j!==g.retryLane))throw g.retryLane=j,Na(e,j),En(o,e,j),wu;ao(),n=rh(e,n,l)}else e=g.treeContext,wt=Xn(j.nextSibling),ln=n,tt=!0,Yr=null,Yn=!1,e!==null&&Vp(n,e),n=qi(n,o),n.flags|=4096;return n}return e=Cr(e.child,{mode:o.mode,children:o.children}),e.ref=n.ref,n.child=e,e.return=n,e}function Yi(e,n){var l=n.ref;if(l===null)e!==null&&e.ref!==null&&(n.flags|=4194816);else{if(typeof l!="function"&&typeof l!="object")throw Error(i(284));(e===null||e.ref!==l)&&(n.flags|=4194816)}}function Cu(e,n,l,o,p){return La(n),l=lu(e,n,l,o,void 0,p),o=su(),e!==null&&!Ft?(iu(e,n,p),Lr(e,n,p)):(tt&&o&&Uc(n),n.flags|=1,on(e,n,l,p),n.child)}function ah(e,n,l,o,p,g){return La(n),n.updateQueue=null,l=im(n,o,l,p),sm(e),o=su(),e!==null&&!Ft?(iu(e,n,g),Lr(e,n,g)):(tt&&o&&Uc(n),n.flags|=1,on(e,n,l,g),n.child)}function lh(e,n,l,o,p){if(La(n),n.stateNode===null){var g=cl,j=l.contextType;typeof j=="object"&&j!==null&&(g=sn(j)),g=new l(o,g),n.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,g.updater=Su,n.stateNode=g,g._reactInternals=n,g=n.stateNode,g.props=o,g.state=n.memoizedState,g.refs={},Qc(n),j=l.contextType,g.context=typeof j=="object"&&j!==null?sn(j):cl,g.state=n.memoizedState,j=l.getDerivedStateFromProps,typeof j=="function"&&(ju(n,l,j,o),g.state=n.memoizedState),typeof l.getDerivedStateFromProps=="function"||typeof g.getSnapshotBeforeUpdate=="function"||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(j=g.state,typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount(),j!==g.state&&Su.enqueueReplaceState(g,g.state,null),ds(n,o,g,p),us(),g.state=n.memoizedState),typeof g.componentDidMount=="function"&&(n.flags|=4194308),o=!0}else if(e===null){g=n.stateNode;var R=n.memoizedProps,P=Ba(l,R);g.props=P;var J=g.context,ue=l.contextType;j=cl,typeof ue=="object"&&ue!==null&&(j=sn(ue));var me=l.getDerivedStateFromProps;ue=typeof me=="function"||typeof g.getSnapshotBeforeUpdate=="function",R=n.pendingProps!==R,ue||typeof g.UNSAFE_componentWillReceiveProps!="function"&&typeof g.componentWillReceiveProps!="function"||(R||J!==j)&&Gm(n,g,o,j),Qr=!1;var re=n.memoizedState;g.state=re,ds(n,o,g,p),us(),J=n.memoizedState,R||re!==J||Qr?(typeof me=="function"&&(ju(n,l,me,o),J=n.memoizedState),(P=Qr||Fm(n,l,P,o,re,J,j))?(ue||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount()),typeof g.componentDidMount=="function"&&(n.flags|=4194308)):(typeof g.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=o,n.memoizedState=J),g.props=o,g.state=J,g.context=j,o=P):(typeof g.componentDidMount=="function"&&(n.flags|=4194308),o=!1)}else{g=n.stateNode,Zc(e,n),j=n.memoizedProps,ue=Ba(l,j),g.props=ue,me=n.pendingProps,re=g.context,J=l.contextType,P=cl,typeof J=="object"&&J!==null&&(P=sn(J)),R=l.getDerivedStateFromProps,(J=typeof R=="function"||typeof g.getSnapshotBeforeUpdate=="function")||typeof g.UNSAFE_componentWillReceiveProps!="function"&&typeof g.componentWillReceiveProps!="function"||(j!==me||re!==P)&&Gm(n,g,o,P),Qr=!1,re=n.memoizedState,g.state=re,ds(n,o,g,p),us();var oe=n.memoizedState;j!==me||re!==oe||Qr||e!==null&&e.dependencies!==null&&Ri(e.dependencies)?(typeof R=="function"&&(ju(n,l,R,o),oe=n.memoizedState),(ue=Qr||Fm(n,l,ue,o,re,oe,P)||e!==null&&e.dependencies!==null&&Ri(e.dependencies))?(J||typeof g.UNSAFE_componentWillUpdate!="function"&&typeof g.componentWillUpdate!="function"||(typeof g.componentWillUpdate=="function"&&g.componentWillUpdate(o,oe,P),typeof g.UNSAFE_componentWillUpdate=="function"&&g.UNSAFE_componentWillUpdate(o,oe,P)),typeof g.componentDidUpdate=="function"&&(n.flags|=4),typeof g.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof g.componentDidUpdate!="function"||j===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof g.getSnapshotBeforeUpdate!="function"||j===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),n.memoizedProps=o,n.memoizedState=oe),g.props=o,g.state=oe,g.context=P,o=ue):(typeof g.componentDidUpdate!="function"||j===e.memoizedProps&&re===e.memoizedState||(n.flags|=4),typeof g.getSnapshotBeforeUpdate!="function"||j===e.memoizedProps&&re===e.memoizedState||(n.flags|=1024),o=!1)}return g=o,Yi(e,n),o=(n.flags&128)!==0,g||o?(g=n.stateNode,l=o&&typeof l.getDerivedStateFromError!="function"?null:g.render(),n.flags|=1,e!==null&&o?(n.child=_a(n,e.child,null,p),n.child=_a(n,null,l,p)):on(e,n,l,p),n.memoizedState=g.state,e=n.child):e=Lr(e,n,p),e}function sh(e,n,l,o){return Ra(),n.flags|=256,on(e,n,l,o),n.child}var Eu={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Nu(e){return{baseLanes:e,cachePool:Kp()}}function Tu(e,n,l){return e=e!==null?e.childLanes&~l:0,n&&(e|=Dn),e}function ih(e,n,l){var o=n.pendingProps,p=!1,g=(n.flags&128)!==0,j;if((j=g)||(j=e!==null&&e.memoizedState===null?!1:($t.current&2)!==0),j&&(p=!0,n.flags&=-129),j=(n.flags&32)!==0,n.flags&=-33,e===null){if(tt){if(p?ea(n):ta(),(e=wt)?(e=hx(e,Yn),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:qr!==null?{id:fr,overflow:pr}:null,retryLane:536870912,hydrationErrors:null},l=Up(e),l.return=n,n.child=l,ln=n,wt=null)):e=null,e===null)throw Kr(n);return ud(e)?n.lanes=32:n.lanes=536870912,null}var R=o.children;return o=o.fallback,p?(ta(),p=n.mode,R=Ki({mode:"hidden",children:R},p),o=Ta(o,p,l,null),R.return=n,o.return=n,R.sibling=o,n.child=R,o=n.child,o.memoizedState=Nu(l),o.childLanes=Tu(e,j,l),n.memoizedState=Eu,xs(null,o)):(ea(n),Ru(n,R))}var P=e.memoizedState;if(P!==null&&(R=P.dehydrated,R!==null)){if(g)n.flags&256?(ea(n),n.flags&=-257,n=Au(e,n,l)):n.memoizedState!==null?(ta(),n.child=e.child,n.flags|=128,n=null):(ta(),R=o.fallback,p=n.mode,o=Ki({mode:"visible",children:o.children},p),R=Ta(R,p,l,null),R.flags|=2,o.return=n,R.return=n,o.sibling=R,n.child=o,_a(n,e.child,null,l),o=n.child,o.memoizedState=Nu(l),o.childLanes=Tu(e,j,l),n.memoizedState=Eu,n=xs(null,o));else if(ea(n),ud(R)){if(j=R.nextSibling&&R.nextSibling.dataset,j)var J=j.dgst;j=J,o=Error(i(419)),o.stack="",o.digest=j,as({value:o,source:null,stack:null}),n=Au(e,n,l)}else if(Ft||pl(e,n,l,!1),j=(l&e.childLanes)!==0,Ft||j){if(j=yt,j!==null&&(o=Bt(j,l),o!==0&&o!==P.retryLane))throw P.retryLane=o,Na(e,o),En(j,e,o),wu;cd(R)||ao(),n=Au(e,n,l)}else cd(R)?(n.flags|=192,n.child=e.child,n=null):(e=P.treeContext,wt=Xn(R.nextSibling),ln=n,tt=!0,Yr=null,Yn=!1,e!==null&&Vp(n,e),n=Ru(n,o.children),n.flags|=4096);return n}return p?(ta(),R=o.fallback,p=n.mode,P=e.child,J=P.sibling,o=Cr(P,{mode:"hidden",children:o.children}),o.subtreeFlags=P.subtreeFlags&65011712,J!==null?R=Cr(J,R):(R=Ta(R,p,l,null),R.flags|=2),R.return=n,o.return=n,o.sibling=R,n.child=o,xs(null,o),o=n.child,R=e.child.memoizedState,R===null?R=Nu(l):(p=R.cachePool,p!==null?(P=Pt._currentValue,p=p.parent!==P?{parent:P,pool:P}:p):p=Kp(),R={baseLanes:R.baseLanes|l,cachePool:p}),o.memoizedState=R,o.childLanes=Tu(e,j,l),n.memoizedState=Eu,xs(e.child,o)):(ea(n),l=e.child,e=l.sibling,l=Cr(l,{mode:"visible",children:o.children}),l.return=n,l.sibling=null,e!==null&&(j=n.deletions,j===null?(n.deletions=[e],n.flags|=16):j.push(e)),n.child=l,n.memoizedState=null,l)}function Ru(e,n){return n=Ki({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function Ki(e,n){return e=An(22,e,null,n),e.lanes=0,e}function Au(e,n,l){return _a(n,e.child,null,l),e=Ru(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function oh(e,n,l){e.lanes|=n;var o=e.alternate;o!==null&&(o.lanes|=n),Gc(e.return,n,l)}function Lu(e,n,l,o,p,g){var j=e.memoizedState;j===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:o,tail:l,tailMode:p,treeForkCount:g}:(j.isBackwards=n,j.rendering=null,j.renderingStartTime=0,j.last=o,j.tail=l,j.tailMode=p,j.treeForkCount=g)}function ch(e,n,l){var o=n.pendingProps,p=o.revealOrder,g=o.tail;o=o.children;var j=$t.current,R=(j&2)!==0;if(R?(j=j&1|2,n.flags|=128):j&=1,X($t,j),on(e,n,o,l),o=tt?rs:0,!R&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&oh(e,l,n);else if(e.tag===19)oh(e,l,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(p){case"forwards":for(l=n.child,p=null;l!==null;)e=l.alternate,e!==null&&Bi(e)===null&&(p=l),l=l.sibling;l=p,l===null?(p=n.child,n.child=null):(p=l.sibling,l.sibling=null),Lu(n,!1,p,l,g,o);break;case"backwards":case"unstable_legacy-backwards":for(l=null,p=n.child,n.child=null;p!==null;){if(e=p.alternate,e!==null&&Bi(e)===null){n.child=p;break}e=p.sibling,p.sibling=l,l=p,p=e}Lu(n,!0,l,null,g,o);break;case"together":Lu(n,!1,null,null,void 0,o);break;default:n.memoizedState=null}return n.child}function Lr(e,n,l){if(e!==null&&(n.dependencies=e.dependencies),aa|=n.lanes,(l&n.childLanes)===0)if(e!==null){if(pl(e,n,l,!1),(l&n.childLanes)===0)return null}else return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,l=Cr(e,e.pendingProps),n.child=l,l.return=n;e.sibling!==null;)e=e.sibling,l=l.sibling=Cr(e,e.pendingProps),l.return=n;l.sibling=null}return n.child}function Mu(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&Ri(e)))}function M1(e,n,l){switch(n.tag){case 3:ne(n,n.stateNode.containerInfo),Xr(n,Pt,e.memoizedState.cache),Ra();break;case 27:case 5:Le(n);break;case 4:ne(n,n.stateNode.containerInfo);break;case 10:Xr(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,ru(n),null;break;case 13:var o=n.memoizedState;if(o!==null)return o.dehydrated!==null?(ea(n),n.flags|=128,null):(l&n.child.childLanes)!==0?ih(e,n,l):(ea(n),e=Lr(e,n,l),e!==null?e.sibling:null);ea(n);break;case 19:var p=(e.flags&128)!==0;if(o=(l&n.childLanes)!==0,o||(pl(e,n,l,!1),o=(l&n.childLanes)!==0),p){if(o)return ch(e,n,l);n.flags|=128}if(p=n.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),X($t,$t.current),o)break;return null;case 22:return n.lanes=0,th(e,n,l,n.pendingProps);case 24:Xr(n,Pt,e.memoizedState.cache)}return Lr(e,n,l)}function uh(e,n,l){if(e!==null)if(e.memoizedProps!==n.pendingProps)Ft=!0;else{if(!Mu(e,l)&&(n.flags&128)===0)return Ft=!1,M1(e,n,l);Ft=(e.flags&131072)!==0}else Ft=!1,tt&&(n.flags&1048576)!==0&&Pp(n,rs,n.index);switch(n.lanes=0,n.tag){case 16:e:{var o=n.pendingProps;if(e=za(n.elementType),n.type=e,typeof e=="function")Bc(e)?(o=Ba(e,o),n.tag=1,n=lh(null,n,e,o,l)):(n.tag=0,n=Cu(null,n,e,o,l));else{if(e!=null){var p=e.$$typeof;if(p===I){n.tag=11,n=Zm(null,n,e,o,l);break e}else if(p===k){n.tag=14,n=Jm(null,n,e,o,l);break e}}throw n=Q(e)||e,Error(i(306,n,""))}}return n;case 0:return Cu(e,n,n.type,n.pendingProps,l);case 1:return o=n.type,p=Ba(o,n.pendingProps),lh(e,n,o,p,l);case 3:e:{if(ne(n,n.stateNode.containerInfo),e===null)throw Error(i(387));o=n.pendingProps;var g=n.memoizedState;p=g.element,Zc(e,n),ds(n,o,null,l);var j=n.memoizedState;if(o=j.cache,Xr(n,Pt,o),o!==g.cache&&Wc(n,[Pt],l,!0),us(),o=j.element,g.isDehydrated)if(g={element:o,isDehydrated:!1,cache:j.cache},n.updateQueue.baseState=g,n.memoizedState=g,n.flags&256){n=sh(e,n,o,l);break e}else if(o!==p){p=Gn(Error(i(424)),n),as(p),n=sh(e,n,o,l);break e}else{switch(e=n.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(wt=Xn(e.firstChild),ln=n,tt=!0,Yr=null,Yn=!0,l=tm(n,null,o,l),n.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling}else{if(Ra(),o===p){n=Lr(e,n,l);break e}on(e,n,o,l)}n=n.child}return n;case 26:return Yi(e,n),e===null?(l=jx(n.type,null,n.pendingProps,null))?n.memoizedState=l:tt||(l=n.type,e=n.pendingProps,o=fo(le.current).createElement(l),o[Dt]=n,o[It]=e,cn(o,l,e),en(o),n.stateNode=o):n.memoizedState=jx(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return Le(n),e===null&&tt&&(o=n.stateNode=vx(n.type,n.pendingProps,le.current),ln=n,Yn=!0,p=wt,ca(n.type)?(dd=p,wt=Xn(o.firstChild)):wt=p),on(e,n,n.pendingProps.children,l),Yi(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&tt&&((p=o=wt)&&(o=o0(o,n.type,n.pendingProps,Yn),o!==null?(n.stateNode=o,ln=n,wt=Xn(o.firstChild),Yn=!1,p=!0):p=!1),p||Kr(n)),Le(n),p=n.type,g=n.pendingProps,j=e!==null?e.memoizedProps:null,o=g.children,sd(p,g)?o=null:j!==null&&sd(p,j)&&(n.flags|=32),n.memoizedState!==null&&(p=lu(e,n,k1,null,null,l),Ls._currentValue=p),Yi(e,n),on(e,n,o,l),n.child;case 6:return e===null&&tt&&((e=l=wt)&&(l=c0(l,n.pendingProps,Yn),l!==null?(n.stateNode=l,ln=n,wt=null,e=!0):e=!1),e||Kr(n)),null;case 13:return ih(e,n,l);case 4:return ne(n,n.stateNode.containerInfo),o=n.pendingProps,e===null?n.child=_a(n,null,o,l):on(e,n,o,l),n.child;case 11:return Zm(e,n,n.type,n.pendingProps,l);case 7:return on(e,n,n.pendingProps,l),n.child;case 8:return on(e,n,n.pendingProps.children,l),n.child;case 12:return on(e,n,n.pendingProps.children,l),n.child;case 10:return o=n.pendingProps,Xr(n,n.type,o.value),on(e,n,o.children,l),n.child;case 9:return p=n.type._context,o=n.pendingProps.children,La(n),p=sn(p),o=o(p),n.flags|=1,on(e,n,o,l),n.child;case 14:return Jm(e,n,n.type,n.pendingProps,l);case 15:return eh(e,n,n.type,n.pendingProps,l);case 19:return ch(e,n,l);case 31:return L1(e,n,l);case 22:return th(e,n,l,n.pendingProps);case 24:return La(n),o=sn(Pt),e===null?(p=Kc(),p===null&&(p=yt,g=qc(),p.pooledCache=g,g.refCount++,g!==null&&(p.pooledCacheLanes|=l),p=g),n.memoizedState={parent:o,cache:p},Qc(n),Xr(n,Pt,p)):((e.lanes&l)!==0&&(Zc(e,n),ds(n,null,null,l),us()),p=e.memoizedState,g=n.memoizedState,p.parent!==o?(p={parent:o,cache:o},n.memoizedState=p,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=p),Xr(n,Pt,o)):(o=g.cache,Xr(n,Pt,o),o!==p.cache&&Wc(n,[Pt],l,!0))),on(e,n,n.pendingProps.children,l),n.child;case 29:throw n.pendingProps}throw Error(i(156,n.tag))}function Mr(e){e.flags|=4}function zu(e,n,l,o,p){if((n=(e.mode&32)!==0)&&(n=!1),n){if(e.flags|=16777216,(p&335544128)===p)if(e.stateNode.complete)e.flags|=8192;else if(Bh())e.flags|=8192;else throw Da=zi,Xc}else e.flags&=-16777217}function dh(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Ex(n))if(Bh())e.flags|=8192;else throw Da=zi,Xc}function Xi(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?hn():536870912,e.lanes|=n,Cl|=n)}function gs(e,n){if(!tt)switch(e.tailMode){case"hidden":n=e.tail;for(var l=null;n!==null;)n.alternate!==null&&(l=n),n=n.sibling;l===null?e.tail=null:l.sibling=null;break;case"collapsed":l=e.tail;for(var o=null;l!==null;)l.alternate!==null&&(o=l),l=l.sibling;o===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:o.sibling=null}}function Ct(e){var n=e.alternate!==null&&e.alternate.child===e.child,l=0,o=0;if(n)for(var p=e.child;p!==null;)l|=p.lanes|p.childLanes,o|=p.subtreeFlags&65011712,o|=p.flags&65011712,p.return=e,p=p.sibling;else for(p=e.child;p!==null;)l|=p.lanes|p.childLanes,o|=p.subtreeFlags,o|=p.flags,p.return=e,p=p.sibling;return e.subtreeFlags|=o,e.childLanes=l,n}function z1(e,n,l){var o=n.pendingProps;switch(Hc(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ct(n),null;case 1:return Ct(n),null;case 3:return l=n.stateNode,o=null,e!==null&&(o=e.memoizedState.cache),n.memoizedState.cache!==o&&(n.flags|=2048),Tr(Pt),ge(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(e===null||e.child===null)&&(fl(n)?Mr(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Vc())),Ct(n),null;case 26:var p=n.type,g=n.memoizedState;return e===null?(Mr(n),g!==null?(Ct(n),dh(n,g)):(Ct(n),zu(n,p,null,o,l))):g?g!==e.memoizedState?(Mr(n),Ct(n),dh(n,g)):(Ct(n),n.flags&=-16777217):(e=e.memoizedProps,e!==o&&Mr(n),Ct(n),zu(n,p,e,o,l)),null;case 27:if(Ee(n),l=le.current,p=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==o&&Mr(n);else{if(!o){if(n.stateNode===null)throw Error(i(166));return Ct(n),null}e=ee.current,fl(n)?Fp(n):(e=vx(p,o,l),n.stateNode=e,Mr(n))}return Ct(n),null;case 5:if(Ee(n),p=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==o&&Mr(n);else{if(!o){if(n.stateNode===null)throw Error(i(166));return Ct(n),null}if(g=ee.current,fl(n))Fp(n);else{var j=fo(le.current);switch(g){case 1:g=j.createElementNS("http://www.w3.org/2000/svg",p);break;case 2:g=j.createElementNS("http://www.w3.org/1998/Math/MathML",p);break;default:switch(p){case"svg":g=j.createElementNS("http://www.w3.org/2000/svg",p);break;case"math":g=j.createElementNS("http://www.w3.org/1998/Math/MathML",p);break;case"script":g=j.createElement("div"),g.innerHTML="<script><\/script>",g=g.removeChild(g.firstChild);break;case"select":g=typeof o.is=="string"?j.createElement("select",{is:o.is}):j.createElement("select"),o.multiple?g.multiple=!0:o.size&&(g.size=o.size);break;default:g=typeof o.is=="string"?j.createElement(p,{is:o.is}):j.createElement(p)}}g[Dt]=n,g[It]=o;e:for(j=n.child;j!==null;){if(j.tag===5||j.tag===6)g.appendChild(j.stateNode);else if(j.tag!==4&&j.tag!==27&&j.child!==null){j.child.return=j,j=j.child;continue}if(j===n)break e;for(;j.sibling===null;){if(j.return===null||j.return===n)break e;j=j.return}j.sibling.return=j.return,j=j.sibling}n.stateNode=g;e:switch(cn(g,p,o),p){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&Mr(n)}}return Ct(n),zu(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,l),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==o&&Mr(n);else{if(typeof o!="string"&&n.stateNode===null)throw Error(i(166));if(e=le.current,fl(n)){if(e=n.stateNode,l=n.memoizedProps,o=null,p=ln,p!==null)switch(p.tag){case 27:case 5:o=p.memoizedProps}e[Dt]=n,e=!!(e.nodeValue===l||o!==null&&o.suppressHydrationWarning===!0||ix(e.nodeValue,l)),e||Kr(n,!0)}else e=fo(e).createTextNode(o),e[Dt]=n,n.stateNode=e}return Ct(n),null;case 31:if(l=n.memoizedState,e===null||e.memoizedState!==null){if(o=fl(n),l!==null){if(e===null){if(!o)throw Error(i(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(557));e[Dt]=n}else Ra(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Ct(n),e=!1}else l=Vc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return n.flags&256?(Mn(n),n):(Mn(n),null);if((n.flags&128)!==0)throw Error(i(558))}return Ct(n),null;case 13:if(o=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(p=fl(n),o!==null&&o.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=n.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[Dt]=n}else Ra(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Ct(n),p=!1}else p=Vc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=p),p=!0;if(!p)return n.flags&256?(Mn(n),n):(Mn(n),null)}return Mn(n),(n.flags&128)!==0?(n.lanes=l,n):(l=o!==null,e=e!==null&&e.memoizedState!==null,l&&(o=n.child,p=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(p=o.alternate.memoizedState.cachePool.pool),g=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(g=o.memoizedState.cachePool.pool),g!==p&&(o.flags|=2048)),l!==e&&l&&(n.child.flags|=8192),Xi(n,n.updateQueue),Ct(n),null);case 4:return ge(),e===null&&td(n.stateNode.containerInfo),Ct(n),null;case 10:return Tr(n.type),Ct(n),null;case 19:if(W($t),o=n.memoizedState,o===null)return Ct(n),null;if(p=(n.flags&128)!==0,g=o.rendering,g===null)if(p)gs(o,!1);else{if(Ot!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(g=Bi(e),g!==null){for(n.flags|=128,gs(o,!1),e=g.updateQueue,n.updateQueue=e,Xi(n,e),n.subtreeFlags=0,e=l,l=n.child;l!==null;)$p(l,e),l=l.sibling;return X($t,$t.current&1|2),tt&&Er(n,o.treeForkCount),n.child}e=e.sibling}o.tail!==null&&qe()>to&&(n.flags|=128,p=!0,gs(o,!1),n.lanes=4194304)}else{if(!p)if(e=Bi(g),e!==null){if(n.flags|=128,p=!0,e=e.updateQueue,n.updateQueue=e,Xi(n,e),gs(o,!0),o.tail===null&&o.tailMode==="hidden"&&!g.alternate&&!tt)return Ct(n),null}else 2*qe()-o.renderingStartTime>to&&l!==536870912&&(n.flags|=128,p=!0,gs(o,!1),n.lanes=4194304);o.isBackwards?(g.sibling=n.child,n.child=g):(e=o.last,e!==null?e.sibling=g:n.child=g,o.last=g)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=qe(),e.sibling=null,l=$t.current,X($t,p?l&1|2:l&1),tt&&Er(n,o.treeForkCount),e):(Ct(n),null);case 22:case 23:return Mn(n),nu(),o=n.memoizedState!==null,e!==null?e.memoizedState!==null!==o&&(n.flags|=8192):o&&(n.flags|=8192),o?(l&536870912)!==0&&(n.flags&128)===0&&(Ct(n),n.subtreeFlags&6&&(n.flags|=8192)):Ct(n),l=n.updateQueue,l!==null&&Xi(n,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),o=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),o!==l&&(n.flags|=2048),e!==null&&W(Ma),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),Tr(Pt),Ct(n),null;case 25:return null;case 30:return null}throw Error(i(156,n.tag))}function D1(e,n){switch(Hc(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Tr(Pt),ge(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return Ee(n),null;case 31:if(n.memoizedState!==null){if(Mn(n),n.alternate===null)throw Error(i(340));Ra()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(Mn(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));Ra()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return W($t),null;case 4:return ge(),null;case 10:return Tr(n.type),null;case 22:case 23:return Mn(n),nu(),e!==null&&W(Ma),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Tr(Pt),null;case 25:return null;default:return null}}function fh(e,n){switch(Hc(n),n.tag){case 3:Tr(Pt),ge();break;case 26:case 27:case 5:Ee(n);break;case 4:ge();break;case 31:n.memoizedState!==null&&Mn(n);break;case 13:Mn(n);break;case 19:W($t);break;case 10:Tr(n.type);break;case 22:case 23:Mn(n),nu(),e!==null&&W(Ma);break;case 24:Tr(Pt)}}function vs(e,n){try{var l=n.updateQueue,o=l!==null?l.lastEffect:null;if(o!==null){var p=o.next;l=p;do{if((l.tag&e)===e){o=void 0;var g=l.create,j=l.inst;o=g(),j.destroy=o}l=l.next}while(l!==p)}}catch(R){ft(n,n.return,R)}}function na(e,n,l){try{var o=n.updateQueue,p=o!==null?o.lastEffect:null;if(p!==null){var g=p.next;o=g;do{if((o.tag&e)===e){var j=o.inst,R=j.destroy;if(R!==void 0){j.destroy=void 0,p=n;var P=l,J=R;try{J()}catch(ue){ft(p,P,ue)}}}o=o.next}while(o!==g)}}catch(ue){ft(n,n.return,ue)}}function ph(e){var n=e.updateQueue;if(n!==null){var l=e.stateNode;try{rm(n,l)}catch(o){ft(e,e.return,o)}}}function mh(e,n,l){l.props=Ba(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(o){ft(e,n,o)}}function ys(e,n){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var o=e.stateNode;break;case 30:o=e.stateNode;break;default:o=e.stateNode}typeof l=="function"?e.refCleanup=l(o):l.current=o}}catch(p){ft(e,n,p)}}function mr(e,n){var l=e.ref,o=e.refCleanup;if(l!==null)if(typeof o=="function")try{o()}catch(p){ft(e,n,p)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(p){ft(e,n,p)}else l.current=null}function hh(e){var n=e.type,l=e.memoizedProps,o=e.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":l.autoFocus&&o.focus();break e;case"img":l.src?o.src=l.src:l.srcSet&&(o.srcset=l.srcSet)}}catch(p){ft(e,e.return,p)}}function Du(e,n,l){try{var o=e.stateNode;n0(o,e.type,l,n),o[It]=n}catch(p){ft(e,e.return,p)}}function xh(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ca(e.type)||e.tag===4}function _u(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||xh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&ca(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ou(e,n,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,n?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(e,n):(n=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,n.appendChild(e),l=l._reactRootContainer,l!=null||n.onclick!==null||(n.onclick=kr));else if(o!==4&&(o===27&&ca(e.type)&&(l=e.stateNode,n=null),e=e.child,e!==null))for(Ou(e,n,l),e=e.sibling;e!==null;)Ou(e,n,l),e=e.sibling}function Qi(e,n,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,n?l.insertBefore(e,n):l.appendChild(e);else if(o!==4&&(o===27&&ca(e.type)&&(l=e.stateNode),e=e.child,e!==null))for(Qi(e,n,l),e=e.sibling;e!==null;)Qi(e,n,l),e=e.sibling}function gh(e){var n=e.stateNode,l=e.memoizedProps;try{for(var o=e.type,p=n.attributes;p.length;)n.removeAttributeNode(p[0]);cn(n,o,l),n[Dt]=e,n[It]=l}catch(g){ft(e,e.return,g)}}var zr=!1,Gt=!1,Bu=!1,vh=typeof WeakSet=="function"?WeakSet:Set,tn=null;function _1(e,n){if(e=e.containerInfo,ad=yo,e=Ap(e),Ac(e)){if("selectionStart"in e)var l={start:e.selectionStart,end:e.selectionEnd};else e:{l=(l=e.ownerDocument)&&l.defaultView||window;var o=l.getSelection&&l.getSelection();if(o&&o.rangeCount!==0){l=o.anchorNode;var p=o.anchorOffset,g=o.focusNode;o=o.focusOffset;try{l.nodeType,g.nodeType}catch{l=null;break e}var j=0,R=-1,P=-1,J=0,ue=0,me=e,re=null;t:for(;;){for(var oe;me!==l||p!==0&&me.nodeType!==3||(R=j+p),me!==g||o!==0&&me.nodeType!==3||(P=j+o),me.nodeType===3&&(j+=me.nodeValue.length),(oe=me.firstChild)!==null;)re=me,me=oe;for(;;){if(me===e)break t;if(re===l&&++J===p&&(R=j),re===g&&++ue===o&&(P=j),(oe=me.nextSibling)!==null)break;me=re,re=me.parentNode}me=oe}l=R===-1||P===-1?null:{start:R,end:P}}else l=null}l=l||{start:0,end:0}}else l=null;for(ld={focusedElem:e,selectionRange:l},yo=!1,tn=n;tn!==null;)if(n=tn,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,tn=e;else for(;tn!==null;){switch(n=tn,g=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(l=0;l<e.length;l++)p=e[l],p.ref.impl=p.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&g!==null){e=void 0,l=n,p=g.memoizedProps,g=g.memoizedState,o=l.stateNode;try{var Ce=Ba(l.type,p);e=o.getSnapshotBeforeUpdate(Ce,g),o.__reactInternalSnapshotBeforeUpdate=e}catch(De){ft(l,l.return,De)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,l=e.nodeType,l===9)od(e);else if(l===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":od(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(i(163))}if(e=n.sibling,e!==null){e.return=n.return,tn=e;break}tn=n.return}}function yh(e,n,l){var o=l.flags;switch(l.tag){case 0:case 11:case 15:_r(e,l),o&4&&vs(5,l);break;case 1:if(_r(e,l),o&4)if(e=l.stateNode,n===null)try{e.componentDidMount()}catch(j){ft(l,l.return,j)}else{var p=Ba(l.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(p,n,e.__reactInternalSnapshotBeforeUpdate)}catch(j){ft(l,l.return,j)}}o&64&&ph(l),o&512&&ys(l,l.return);break;case 3:if(_r(e,l),o&64&&(e=l.updateQueue,e!==null)){if(n=null,l.child!==null)switch(l.child.tag){case 27:case 5:n=l.child.stateNode;break;case 1:n=l.child.stateNode}try{rm(e,n)}catch(j){ft(l,l.return,j)}}break;case 27:n===null&&o&4&&gh(l);case 26:case 5:_r(e,l),n===null&&o&4&&hh(l),o&512&&ys(l,l.return);break;case 12:_r(e,l);break;case 31:_r(e,l),o&4&&Sh(e,l);break;case 13:_r(e,l),o&4&&kh(e,l),o&64&&(e=l.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(l=F1.bind(null,l),u0(e,l))));break;case 22:if(o=l.memoizedState!==null||zr,!o){n=n!==null&&n.memoizedState!==null||Gt,p=zr;var g=Gt;zr=o,(Gt=n)&&!g?Or(e,l,(l.subtreeFlags&8772)!==0):_r(e,l),zr=p,Gt=g}break;case 30:break;default:_r(e,l)}}function bh(e){var n=e.alternate;n!==null&&(e.alternate=null,bh(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&pc(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Rt=null,Sn=!1;function Dr(e,n,l){for(l=l.child;l!==null;)jh(e,n,l),l=l.sibling}function jh(e,n,l){if(et&&typeof et.onCommitFiberUnmount=="function")try{et.onCommitFiberUnmount(Mt,l)}catch{}switch(l.tag){case 26:Gt||mr(l,n),Dr(e,n,l),l.memoizedState?l.memoizedState.count--:l.stateNode&&(l=l.stateNode,l.parentNode.removeChild(l));break;case 27:Gt||mr(l,n);var o=Rt,p=Sn;ca(l.type)&&(Rt=l.stateNode,Sn=!1),Dr(e,n,l),Ts(l.stateNode),Rt=o,Sn=p;break;case 5:Gt||mr(l,n);case 6:if(o=Rt,p=Sn,Rt=null,Dr(e,n,l),Rt=o,Sn=p,Rt!==null)if(Sn)try{(Rt.nodeType===9?Rt.body:Rt.nodeName==="HTML"?Rt.ownerDocument.body:Rt).removeChild(l.stateNode)}catch(g){ft(l,n,g)}else try{Rt.removeChild(l.stateNode)}catch(g){ft(l,n,g)}break;case 18:Rt!==null&&(Sn?(e=Rt,px(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,l.stateNode),zl(e)):px(Rt,l.stateNode));break;case 4:o=Rt,p=Sn,Rt=l.stateNode.containerInfo,Sn=!0,Dr(e,n,l),Rt=o,Sn=p;break;case 0:case 11:case 14:case 15:na(2,l,n),Gt||na(4,l,n),Dr(e,n,l);break;case 1:Gt||(mr(l,n),o=l.stateNode,typeof o.componentWillUnmount=="function"&&mh(l,n,o)),Dr(e,n,l);break;case 21:Dr(e,n,l);break;case 22:Gt=(o=Gt)||l.memoizedState!==null,Dr(e,n,l),Gt=o;break;default:Dr(e,n,l)}}function Sh(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{zl(e)}catch(l){ft(n,n.return,l)}}}function kh(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{zl(e)}catch(l){ft(n,n.return,l)}}function O1(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new vh),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new vh),n;default:throw Error(i(435,e.tag))}}function Zi(e,n){var l=O1(e);n.forEach(function(o){if(!l.has(o)){l.add(o);var p=G1.bind(null,e,o);o.then(p,p)}})}function kn(e,n){var l=n.deletions;if(l!==null)for(var o=0;o<l.length;o++){var p=l[o],g=e,j=n,R=j;e:for(;R!==null;){switch(R.tag){case 27:if(ca(R.type)){Rt=R.stateNode,Sn=!1;break e}break;case 5:Rt=R.stateNode,Sn=!1;break e;case 3:case 4:Rt=R.stateNode.containerInfo,Sn=!0;break e}R=R.return}if(Rt===null)throw Error(i(160));jh(g,j,p),Rt=null,Sn=!1,g=p.alternate,g!==null&&(g.return=null),p.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)wh(n,e),n=n.sibling}var ar=null;function wh(e,n){var l=e.alternate,o=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:kn(n,e),wn(e),o&4&&(na(3,e,e.return),vs(3,e),na(5,e,e.return));break;case 1:kn(n,e),wn(e),o&512&&(Gt||l===null||mr(l,l.return)),o&64&&zr&&(e=e.updateQueue,e!==null&&(o=e.callbacks,o!==null&&(l=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=l===null?o:l.concat(o))));break;case 26:var p=ar;if(kn(n,e),wn(e),o&512&&(Gt||l===null||mr(l,l.return)),o&4){var g=l!==null?l.memoizedState:null;if(o=e.memoizedState,l===null)if(o===null)if(e.stateNode===null){e:{o=e.type,l=e.memoizedProps,p=p.ownerDocument||p;t:switch(o){case"title":g=p.getElementsByTagName("title")[0],(!g||g[Wl]||g[Dt]||g.namespaceURI==="http://www.w3.org/2000/svg"||g.hasAttribute("itemprop"))&&(g=p.createElement(o),p.head.insertBefore(g,p.querySelector("head > title"))),cn(g,o,l),g[Dt]=e,en(g),o=g;break e;case"link":var j=wx("link","href",p).get(o+(l.href||""));if(j){for(var R=0;R<j.length;R++)if(g=j[R],g.getAttribute("href")===(l.href==null||l.href===""?null:l.href)&&g.getAttribute("rel")===(l.rel==null?null:l.rel)&&g.getAttribute("title")===(l.title==null?null:l.title)&&g.getAttribute("crossorigin")===(l.crossOrigin==null?null:l.crossOrigin)){j.splice(R,1);break t}}g=p.createElement(o),cn(g,o,l),p.head.appendChild(g);break;case"meta":if(j=wx("meta","content",p).get(o+(l.content||""))){for(R=0;R<j.length;R++)if(g=j[R],g.getAttribute("content")===(l.content==null?null:""+l.content)&&g.getAttribute("name")===(l.name==null?null:l.name)&&g.getAttribute("property")===(l.property==null?null:l.property)&&g.getAttribute("http-equiv")===(l.httpEquiv==null?null:l.httpEquiv)&&g.getAttribute("charset")===(l.charSet==null?null:l.charSet)){j.splice(R,1);break t}}g=p.createElement(o),cn(g,o,l),p.head.appendChild(g);break;default:throw Error(i(468,o))}g[Dt]=e,en(g),o=g}e.stateNode=o}else Cx(p,e.type,e.stateNode);else e.stateNode=kx(p,o,e.memoizedProps);else g!==o?(g===null?l.stateNode!==null&&(l=l.stateNode,l.parentNode.removeChild(l)):g.count--,o===null?Cx(p,e.type,e.stateNode):kx(p,o,e.memoizedProps)):o===null&&e.stateNode!==null&&Du(e,e.memoizedProps,l.memoizedProps)}break;case 27:kn(n,e),wn(e),o&512&&(Gt||l===null||mr(l,l.return)),l!==null&&o&4&&Du(e,e.memoizedProps,l.memoizedProps);break;case 5:if(kn(n,e),wn(e),o&512&&(Gt||l===null||mr(l,l.return)),e.flags&32){p=e.stateNode;try{nl(p,"")}catch(Ce){ft(e,e.return,Ce)}}o&4&&e.stateNode!=null&&(p=e.memoizedProps,Du(e,p,l!==null?l.memoizedProps:p)),o&1024&&(Bu=!0);break;case 6:if(kn(n,e),wn(e),o&4){if(e.stateNode===null)throw Error(i(162));o=e.memoizedProps,l=e.stateNode;try{l.nodeValue=o}catch(Ce){ft(e,e.return,Ce)}}break;case 3:if(ho=null,p=ar,ar=po(n.containerInfo),kn(n,e),ar=p,wn(e),o&4&&l!==null&&l.memoizedState.isDehydrated)try{zl(n.containerInfo)}catch(Ce){ft(e,e.return,Ce)}Bu&&(Bu=!1,Ch(e));break;case 4:o=ar,ar=po(e.stateNode.containerInfo),kn(n,e),wn(e),ar=o;break;case 12:kn(n,e),wn(e);break;case 31:kn(n,e),wn(e),o&4&&(o=e.updateQueue,o!==null&&(e.updateQueue=null,Zi(e,o)));break;case 13:kn(n,e),wn(e),e.child.flags&8192&&e.memoizedState!==null!=(l!==null&&l.memoizedState!==null)&&(eo=qe()),o&4&&(o=e.updateQueue,o!==null&&(e.updateQueue=null,Zi(e,o)));break;case 22:p=e.memoizedState!==null;var P=l!==null&&l.memoizedState!==null,J=zr,ue=Gt;if(zr=J||p,Gt=ue||P,kn(n,e),Gt=ue,zr=J,wn(e),o&8192)e:for(n=e.stateNode,n._visibility=p?n._visibility&-2:n._visibility|1,p&&(l===null||P||zr||Gt||Ia(e)),l=null,n=e;;){if(n.tag===5||n.tag===26){if(l===null){P=l=n;try{if(g=P.stateNode,p)j=g.style,typeof j.setProperty=="function"?j.setProperty("display","none","important"):j.display="none";else{R=P.stateNode;var me=P.memoizedProps.style,re=me!=null&&me.hasOwnProperty("display")?me.display:null;R.style.display=re==null||typeof re=="boolean"?"":(""+re).trim()}}catch(Ce){ft(P,P.return,Ce)}}}else if(n.tag===6){if(l===null){P=n;try{P.stateNode.nodeValue=p?"":P.memoizedProps}catch(Ce){ft(P,P.return,Ce)}}}else if(n.tag===18){if(l===null){P=n;try{var oe=P.stateNode;p?mx(oe,!0):mx(P.stateNode,!1)}catch(Ce){ft(P,P.return,Ce)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;l===n&&(l=null),n=n.return}l===n&&(l=null),n.sibling.return=n.return,n=n.sibling}o&4&&(o=e.updateQueue,o!==null&&(l=o.retryQueue,l!==null&&(o.retryQueue=null,Zi(e,l))));break;case 19:kn(n,e),wn(e),o&4&&(o=e.updateQueue,o!==null&&(e.updateQueue=null,Zi(e,o)));break;case 30:break;case 21:break;default:kn(n,e),wn(e)}}function wn(e){var n=e.flags;if(n&2){try{for(var l,o=e.return;o!==null;){if(xh(o)){l=o;break}o=o.return}if(l==null)throw Error(i(160));switch(l.tag){case 27:var p=l.stateNode,g=_u(e);Qi(e,g,p);break;case 5:var j=l.stateNode;l.flags&32&&(nl(j,""),l.flags&=-33);var R=_u(e);Qi(e,R,j);break;case 3:case 4:var P=l.stateNode.containerInfo,J=_u(e);Ou(e,J,P);break;default:throw Error(i(161))}}catch(ue){ft(e,e.return,ue)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function Ch(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;Ch(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),e=e.sibling}}function _r(e,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)yh(e,n.alternate,n),n=n.sibling}function Ia(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:na(4,n,n.return),Ia(n);break;case 1:mr(n,n.return);var l=n.stateNode;typeof l.componentWillUnmount=="function"&&mh(n,n.return,l),Ia(n);break;case 27:Ts(n.stateNode);case 26:case 5:mr(n,n.return),Ia(n);break;case 22:n.memoizedState===null&&Ia(n);break;case 30:Ia(n);break;default:Ia(n)}e=e.sibling}}function Or(e,n,l){for(l=l&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var o=n.alternate,p=e,g=n,j=g.flags;switch(g.tag){case 0:case 11:case 15:Or(p,g,l),vs(4,g);break;case 1:if(Or(p,g,l),o=g,p=o.stateNode,typeof p.componentDidMount=="function")try{p.componentDidMount()}catch(J){ft(o,o.return,J)}if(o=g,p=o.updateQueue,p!==null){var R=o.stateNode;try{var P=p.shared.hiddenCallbacks;if(P!==null)for(p.shared.hiddenCallbacks=null,p=0;p<P.length;p++)nm(P[p],R)}catch(J){ft(o,o.return,J)}}l&&j&64&&ph(g),ys(g,g.return);break;case 27:gh(g);case 26:case 5:Or(p,g,l),l&&o===null&&j&4&&hh(g),ys(g,g.return);break;case 12:Or(p,g,l);break;case 31:Or(p,g,l),l&&j&4&&Sh(p,g);break;case 13:Or(p,g,l),l&&j&4&&kh(p,g);break;case 22:g.memoizedState===null&&Or(p,g,l),ys(g,g.return);break;case 30:break;default:Or(p,g,l)}n=n.sibling}}function Iu(e,n){var l=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),e=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(e=n.memoizedState.cachePool.pool),e!==l&&(e!=null&&e.refCount++,l!=null&&ls(l))}function $u(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&ls(e))}function lr(e,n,l,o){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Eh(e,n,l,o),n=n.sibling}function Eh(e,n,l,o){var p=n.flags;switch(n.tag){case 0:case 11:case 15:lr(e,n,l,o),p&2048&&vs(9,n);break;case 1:lr(e,n,l,o);break;case 3:lr(e,n,l,o),p&2048&&(e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&ls(e)));break;case 12:if(p&2048){lr(e,n,l,o),e=n.stateNode;try{var g=n.memoizedProps,j=g.id,R=g.onPostCommit;typeof R=="function"&&R(j,n.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(P){ft(n,n.return,P)}}else lr(e,n,l,o);break;case 31:lr(e,n,l,o);break;case 13:lr(e,n,l,o);break;case 23:break;case 22:g=n.stateNode,j=n.alternate,n.memoizedState!==null?g._visibility&2?lr(e,n,l,o):bs(e,n):g._visibility&2?lr(e,n,l,o):(g._visibility|=2,Sl(e,n,l,o,(n.subtreeFlags&10256)!==0||!1)),p&2048&&Iu(j,n);break;case 24:lr(e,n,l,o),p&2048&&$u(n.alternate,n);break;default:lr(e,n,l,o)}}function Sl(e,n,l,o,p){for(p=p&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var g=e,j=n,R=l,P=o,J=j.flags;switch(j.tag){case 0:case 11:case 15:Sl(g,j,R,P,p),vs(8,j);break;case 23:break;case 22:var ue=j.stateNode;j.memoizedState!==null?ue._visibility&2?Sl(g,j,R,P,p):bs(g,j):(ue._visibility|=2,Sl(g,j,R,P,p)),p&&J&2048&&Iu(j.alternate,j);break;case 24:Sl(g,j,R,P,p),p&&J&2048&&$u(j.alternate,j);break;default:Sl(g,j,R,P,p)}n=n.sibling}}function bs(e,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var l=e,o=n,p=o.flags;switch(o.tag){case 22:bs(l,o),p&2048&&Iu(o.alternate,o);break;case 24:bs(l,o),p&2048&&$u(o.alternate,o);break;default:bs(l,o)}n=n.sibling}}var js=8192;function kl(e,n,l){if(e.subtreeFlags&js)for(e=e.child;e!==null;)Nh(e,n,l),e=e.sibling}function Nh(e,n,l){switch(e.tag){case 26:kl(e,n,l),e.flags&js&&e.memoizedState!==null&&S0(l,ar,e.memoizedState,e.memoizedProps);break;case 5:kl(e,n,l);break;case 3:case 4:var o=ar;ar=po(e.stateNode.containerInfo),kl(e,n,l),ar=o;break;case 22:e.memoizedState===null&&(o=e.alternate,o!==null&&o.memoizedState!==null?(o=js,js=16777216,kl(e,n,l),js=o):kl(e,n,l));break;default:kl(e,n,l)}}function Th(e){var n=e.alternate;if(n!==null&&(e=n.child,e!==null)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(e!==null)}}function Ss(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var l=0;l<n.length;l++){var o=n[l];tn=o,Ah(o,e)}Th(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Rh(e),e=e.sibling}function Rh(e){switch(e.tag){case 0:case 11:case 15:Ss(e),e.flags&2048&&na(9,e,e.return);break;case 3:Ss(e);break;case 12:Ss(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,Ji(e)):Ss(e);break;default:Ss(e)}}function Ji(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var l=0;l<n.length;l++){var o=n[l];tn=o,Ah(o,e)}Th(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:na(8,n,n.return),Ji(n);break;case 22:l=n.stateNode,l._visibility&2&&(l._visibility&=-3,Ji(n));break;default:Ji(n)}e=e.sibling}}function Ah(e,n){for(;tn!==null;){var l=tn;switch(l.tag){case 0:case 11:case 15:na(8,l,n);break;case 23:case 22:if(l.memoizedState!==null&&l.memoizedState.cachePool!==null){var o=l.memoizedState.cachePool.pool;o!=null&&o.refCount++}break;case 24:ls(l.memoizedState.cache)}if(o=l.child,o!==null)o.return=l,tn=o;else e:for(l=e;tn!==null;){o=tn;var p=o.sibling,g=o.return;if(bh(o),o===l){tn=null;break e}if(p!==null){p.return=g,tn=p;break e}tn=g}}}var B1={getCacheForType:function(e){var n=sn(Pt),l=n.data.get(e);return l===void 0&&(l=e(),n.data.set(e,l)),l},cacheSignal:function(){return sn(Pt).controller.signal}},I1=typeof WeakMap=="function"?WeakMap:Map,ot=0,yt=null,Ke=null,Ze=0,dt=0,zn=null,ra=!1,wl=!1,Uu=!1,Br=0,Ot=0,aa=0,$a=0,Hu=0,Dn=0,Cl=0,ks=null,Cn=null,Pu=!1,eo=0,Lh=0,to=1/0,no=null,la=null,Yt=0,sa=null,El=null,Ir=0,Vu=0,Fu=null,Mh=null,ws=0,Gu=null;function _n(){return(ot&2)!==0&&Ze!==0?Ze&-Ze:M.T!==null?Qu():Vr()}function zh(){if(Dn===0)if((Ze&536870912)===0||tt){var e=Un;Un<<=1,(Un&3932160)===0&&(Un=262144),Dn=e}else Dn=536870912;return e=Ln.current,e!==null&&(e.flags|=32),Dn}function En(e,n,l){(e===yt&&(dt===2||dt===9)||e.cancelPendingCommit!==null)&&(Nl(e,0),ia(e,Ze,Dn,!1)),rn(e,l),((ot&2)===0||e!==yt)&&(e===yt&&((ot&2)===0&&($a|=l),Ot===4&&ia(e,Ze,Dn,!1)),hr(e))}function Dh(e,n,l){if((ot&6)!==0)throw Error(i(327));var o=!l&&(n&127)===0&&(n&e.expiredLanes)===0||Ye(e,n),p=o?H1(e,n):qu(e,n,!0),g=o;do{if(p===0){wl&&!o&&ia(e,n,0,!1);break}else{if(l=e.current.alternate,g&&!$1(l)){p=qu(e,n,!1),g=!1;continue}if(p===2){if(g=n,e.errorRecoveryDisabledLanes&g)var j=0;else j=e.pendingLanes&-536870913,j=j!==0?j:j&536870912?536870912:0;if(j!==0){n=j;e:{var R=e;p=ks;var P=R.current.memoizedState.isDehydrated;if(P&&(Nl(R,j).flags|=256),j=qu(R,j,!1),j!==2){if(Uu&&!P){R.errorRecoveryDisabledLanes|=g,$a|=g,p=4;break e}g=Cn,Cn=p,g!==null&&(Cn===null?Cn=g:Cn.push.apply(Cn,g))}p=j}if(g=!1,p!==2)continue}}if(p===1){Nl(e,0),ia(e,n,0,!0);break}e:{switch(o=e,g=p,g){case 0:case 1:throw Error(i(345));case 4:if((n&4194048)!==n)break;case 6:ia(o,n,Dn,!ra);break e;case 2:Cn=null;break;case 3:case 5:break;default:throw Error(i(329))}if((n&62914560)===n&&(p=eo+300-qe(),10<p)){if(ia(o,n,Dn,!ra),Oe(o,0,!0)!==0)break e;Ir=n,o.timeoutHandle=dx(_h.bind(null,o,l,Cn,no,Pu,n,Dn,$a,Cl,ra,g,"Throttled",-0,0),p);break e}_h(o,l,Cn,no,Pu,n,Dn,$a,Cl,ra,g,null,-0,0)}}break}while(!0);hr(e)}function _h(e,n,l,o,p,g,j,R,P,J,ue,me,re,oe){if(e.timeoutHandle=-1,me=n.subtreeFlags,me&8192||(me&16785408)===16785408){me={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:kr},Nh(n,g,me);var Ce=(g&62914560)===g?eo-qe():(g&4194048)===g?Lh-qe():0;if(Ce=k0(me,Ce),Ce!==null){Ir=g,e.cancelPendingCommit=Ce(Vh.bind(null,e,n,g,l,o,p,j,R,P,ue,me,null,re,oe)),ia(e,g,j,!J);return}}Vh(e,n,g,l,o,p,j,R,P)}function $1(e){for(var n=e;;){var l=n.tag;if((l===0||l===11||l===15)&&n.flags&16384&&(l=n.updateQueue,l!==null&&(l=l.stores,l!==null)))for(var o=0;o<l.length;o++){var p=l[o],g=p.getSnapshot;p=p.value;try{if(!Rn(g(),p))return!1}catch{return!1}}if(l=n.child,n.subtreeFlags&16384&&l!==null)l.return=n,n=l;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function ia(e,n,l,o){n&=~Hu,n&=~$a,e.suspendedLanes|=n,e.pingedLanes&=~n,o&&(e.warmLanes|=n),o=e.expirationTimes;for(var p=n;0<p;){var g=31-qt(p),j=1<<g;o[g]=-1,p&=~j}l!==0&&Se(e,l,n)}function ro(){return(ot&6)===0?(Cs(0),!1):!0}function Wu(){if(Ke!==null){if(dt===0)var e=Ke.return;else e=Ke,Nr=Aa=null,ou(e),gl=null,is=0,e=Ke;for(;e!==null;)fh(e.alternate,e),e=e.return;Ke=null}}function Nl(e,n){var l=e.timeoutHandle;l!==-1&&(e.timeoutHandle=-1,l0(l)),l=e.cancelPendingCommit,l!==null&&(e.cancelPendingCommit=null,l()),Ir=0,Wu(),yt=e,Ke=l=Cr(e.current,null),Ze=n,dt=0,zn=null,ra=!1,wl=Ye(e,n),Uu=!1,Cl=Dn=Hu=$a=aa=Ot=0,Cn=ks=null,Pu=!1,(n&8)!==0&&(n|=n&32);var o=e.entangledLanes;if(o!==0)for(e=e.entanglements,o&=n;0<o;){var p=31-qt(o),g=1<<p;n|=e[p],o&=~g}return Br=n,wi(),l}function Oh(e,n){He=null,M.H=hs,n===xl||n===Mi?(n=Zp(),dt=3):n===Xc?(n=Zp(),dt=4):dt=n===wu?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,zn=n,Ke===null&&(Ot=1,Wi(e,Gn(n,e.current)))}function Bh(){var e=Ln.current;return e===null?!0:(Ze&4194048)===Ze?Kn===null:(Ze&62914560)===Ze||(Ze&536870912)!==0?e===Kn:!1}function Ih(){var e=M.H;return M.H=hs,e===null?hs:e}function $h(){var e=M.A;return M.A=B1,e}function ao(){Ot=4,ra||(Ze&4194048)!==Ze&&Ln.current!==null||(wl=!0),(aa&134217727)===0&&($a&134217727)===0||yt===null||ia(yt,Ze,Dn,!1)}function qu(e,n,l){var o=ot;ot|=2;var p=Ih(),g=$h();(yt!==e||Ze!==n)&&(no=null,Nl(e,n)),n=!1;var j=Ot;e:do try{if(dt!==0&&Ke!==null){var R=Ke,P=zn;switch(dt){case 8:Wu(),j=6;break e;case 3:case 2:case 9:case 6:Ln.current===null&&(n=!0);var J=dt;if(dt=0,zn=null,Tl(e,R,P,J),l&&wl){j=0;break e}break;default:J=dt,dt=0,zn=null,Tl(e,R,P,J)}}U1(),j=Ot;break}catch(ue){Oh(e,ue)}while(!0);return n&&e.shellSuspendCounter++,Nr=Aa=null,ot=o,M.H=p,M.A=g,Ke===null&&(yt=null,Ze=0,wi()),j}function U1(){for(;Ke!==null;)Uh(Ke)}function H1(e,n){var l=ot;ot|=2;var o=Ih(),p=$h();yt!==e||Ze!==n?(no=null,to=qe()+500,Nl(e,n)):wl=Ye(e,n);e:do try{if(dt!==0&&Ke!==null){n=Ke;var g=zn;t:switch(dt){case 1:dt=0,zn=null,Tl(e,n,g,1);break;case 2:case 9:if(Xp(g)){dt=0,zn=null,Hh(n);break}n=function(){dt!==2&&dt!==9||yt!==e||(dt=7),hr(e)},g.then(n,n);break e;case 3:dt=7;break e;case 4:dt=5;break e;case 7:Xp(g)?(dt=0,zn=null,Hh(n)):(dt=0,zn=null,Tl(e,n,g,7));break;case 5:var j=null;switch(Ke.tag){case 26:j=Ke.memoizedState;case 5:case 27:var R=Ke;if(j?Ex(j):R.stateNode.complete){dt=0,zn=null;var P=R.sibling;if(P!==null)Ke=P;else{var J=R.return;J!==null?(Ke=J,lo(J)):Ke=null}break t}}dt=0,zn=null,Tl(e,n,g,5);break;case 6:dt=0,zn=null,Tl(e,n,g,6);break;case 8:Wu(),Ot=6;break e;default:throw Error(i(462))}}P1();break}catch(ue){Oh(e,ue)}while(!0);return Nr=Aa=null,M.H=o,M.A=p,ot=l,Ke!==null?0:(yt=null,Ze=0,wi(),Ot)}function P1(){for(;Ke!==null&&!Ht();)Uh(Ke)}function Uh(e){var n=uh(e.alternate,e,Br);e.memoizedProps=e.pendingProps,n===null?lo(e):Ke=n}function Hh(e){var n=e,l=n.alternate;switch(n.tag){case 15:case 0:n=ah(l,n,n.pendingProps,n.type,void 0,Ze);break;case 11:n=ah(l,n,n.pendingProps,n.type.render,n.ref,Ze);break;case 5:ou(n);default:fh(l,n),n=Ke=$p(n,Br),n=uh(l,n,Br)}e.memoizedProps=e.pendingProps,n===null?lo(e):Ke=n}function Tl(e,n,l,o){Nr=Aa=null,ou(n),gl=null,is=0;var p=n.return;try{if(A1(e,p,n,l,Ze)){Ot=1,Wi(e,Gn(l,e.current)),Ke=null;return}}catch(g){if(p!==null)throw Ke=p,g;Ot=1,Wi(e,Gn(l,e.current)),Ke=null;return}n.flags&32768?(tt||o===1?e=!0:wl||(Ze&536870912)!==0?e=!1:(ra=e=!0,(o===2||o===9||o===3||o===6)&&(o=Ln.current,o!==null&&o.tag===13&&(o.flags|=16384))),Ph(n,e)):lo(n)}function lo(e){var n=e;do{if((n.flags&32768)!==0){Ph(n,ra);return}e=n.return;var l=z1(n.alternate,n,Br);if(l!==null){Ke=l;return}if(n=n.sibling,n!==null){Ke=n;return}Ke=n=e}while(n!==null);Ot===0&&(Ot=5)}function Ph(e,n){do{var l=D1(e.alternate,e);if(l!==null){l.flags&=32767,Ke=l;return}if(l=e.return,l!==null&&(l.flags|=32768,l.subtreeFlags=0,l.deletions=null),!n&&(e=e.sibling,e!==null)){Ke=e;return}Ke=e=l}while(e!==null);Ot=6,Ke=null}function Vh(e,n,l,o,p,g,j,R,P){e.cancelPendingCommit=null;do so();while(Yt!==0);if((ot&6)!==0)throw Error(i(327));if(n!==null){if(n===e.current)throw Error(i(177));if(g=n.lanes|n.childLanes,g|=_c,ae(e,l,g,j,R,P),e===yt&&(Ke=yt=null,Ze=0),El=n,sa=e,Ir=l,Vu=g,Fu=p,Mh=o,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,W1(Zt,function(){return Yh(),null})):(e.callbackNode=null,e.callbackPriority=0),o=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||o){o=M.T,M.T=null,p=B.p,B.p=2,j=ot,ot|=4;try{_1(e,n,l)}finally{ot=j,B.p=p,M.T=o}}Yt=1,Fh(),Gh(),Wh()}}function Fh(){if(Yt===1){Yt=0;var e=sa,n=El,l=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||l){l=M.T,M.T=null;var o=B.p;B.p=2;var p=ot;ot|=4;try{wh(n,e);var g=ld,j=Ap(e.containerInfo),R=g.focusedElem,P=g.selectionRange;if(j!==R&&R&&R.ownerDocument&&Rp(R.ownerDocument.documentElement,R)){if(P!==null&&Ac(R)){var J=P.start,ue=P.end;if(ue===void 0&&(ue=J),"selectionStart"in R)R.selectionStart=J,R.selectionEnd=Math.min(ue,R.value.length);else{var me=R.ownerDocument||document,re=me&&me.defaultView||window;if(re.getSelection){var oe=re.getSelection(),Ce=R.textContent.length,De=Math.min(P.start,Ce),ht=P.end===void 0?De:Math.min(P.end,Ce);!oe.extend&&De>ht&&(j=ht,ht=De,De=j);var Y=Tp(R,De),G=Tp(R,ht);if(Y&&G&&(oe.rangeCount!==1||oe.anchorNode!==Y.node||oe.anchorOffset!==Y.offset||oe.focusNode!==G.node||oe.focusOffset!==G.offset)){var Z=me.createRange();Z.setStart(Y.node,Y.offset),oe.removeAllRanges(),De>ht?(oe.addRange(Z),oe.extend(G.node,G.offset)):(Z.setEnd(G.node,G.offset),oe.addRange(Z))}}}}for(me=[],oe=R;oe=oe.parentNode;)oe.nodeType===1&&me.push({element:oe,left:oe.scrollLeft,top:oe.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;R<me.length;R++){var pe=me[R];pe.element.scrollLeft=pe.left,pe.element.scrollTop=pe.top}}yo=!!ad,ld=ad=null}finally{ot=p,B.p=o,M.T=l}}e.current=n,Yt=2}}function Gh(){if(Yt===2){Yt=0;var e=sa,n=El,l=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||l){l=M.T,M.T=null;var o=B.p;B.p=2;var p=ot;ot|=4;try{yh(e,n.alternate,n)}finally{ot=p,B.p=o,M.T=l}}Yt=3}}function Wh(){if(Yt===4||Yt===3){Yt=0,Tt();var e=sa,n=El,l=Ir,o=Mh;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?Yt=5:(Yt=0,El=sa=null,qh(e,e.pendingLanes));var p=e.pendingLanes;if(p===0&&(la=null),Jt(l),n=n.stateNode,et&&typeof et.onCommitFiberRoot=="function")try{et.onCommitFiberRoot(Mt,n,void 0,(n.current.flags&128)===128)}catch{}if(o!==null){n=M.T,p=B.p,B.p=2,M.T=null;try{for(var g=e.onRecoverableError,j=0;j<o.length;j++){var R=o[j];g(R.value,{componentStack:R.stack})}}finally{M.T=n,B.p=p}}(Ir&3)!==0&&so(),hr(e),p=e.pendingLanes,(l&261930)!==0&&(p&42)!==0?e===Gu?ws++:(ws=0,Gu=e):ws=0,Cs(0)}}function qh(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,ls(n)))}function so(){return Fh(),Gh(),Wh(),Yh()}function Yh(){if(Yt!==5)return!1;var e=sa,n=Vu;Vu=0;var l=Jt(Ir),o=M.T,p=B.p;try{B.p=32>l?32:l,M.T=null,l=Fu,Fu=null;var g=sa,j=Ir;if(Yt=0,El=sa=null,Ir=0,(ot&6)!==0)throw Error(i(331));var R=ot;if(ot|=4,Rh(g.current),Eh(g,g.current,j,l),ot=R,Cs(0,!1),et&&typeof et.onPostCommitFiberRoot=="function")try{et.onPostCommitFiberRoot(Mt,g)}catch{}return!0}finally{B.p=p,M.T=o,qh(e,n)}}function Kh(e,n,l){n=Gn(l,n),n=ku(e.stateNode,n,2),e=Jr(e,n,2),e!==null&&(rn(e,2),hr(e))}function ft(e,n,l){if(e.tag===3)Kh(e,e,l);else for(;n!==null;){if(n.tag===3){Kh(n,e,l);break}else if(n.tag===1){var o=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(la===null||!la.has(o))){e=Gn(l,e),l=Xm(2),o=Jr(n,l,2),o!==null&&(Qm(l,o,n,e),rn(o,2),hr(o));break}}n=n.return}}function Yu(e,n,l){var o=e.pingCache;if(o===null){o=e.pingCache=new I1;var p=new Set;o.set(n,p)}else p=o.get(n),p===void 0&&(p=new Set,o.set(n,p));p.has(l)||(Uu=!0,p.add(l),e=V1.bind(null,e,n,l),n.then(e,e))}function V1(e,n,l){var o=e.pingCache;o!==null&&o.delete(n),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,yt===e&&(Ze&l)===l&&(Ot===4||Ot===3&&(Ze&62914560)===Ze&&300>qe()-eo?(ot&2)===0&&Nl(e,0):Hu|=l,Cl===Ze&&(Cl=0)),hr(e)}function Xh(e,n){n===0&&(n=hn()),e=Na(e,n),e!==null&&(rn(e,n),hr(e))}function F1(e){var n=e.memoizedState,l=0;n!==null&&(l=n.retryLane),Xh(e,l)}function G1(e,n){var l=0;switch(e.tag){case 31:case 13:var o=e.stateNode,p=e.memoizedState;p!==null&&(l=p.retryLane);break;case 19:o=e.stateNode;break;case 22:o=e.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(n),Xh(e,l)}function W1(e,n){return ut(e,n)}var io=null,Rl=null,Ku=!1,oo=!1,Xu=!1,oa=0;function hr(e){e!==Rl&&e.next===null&&(Rl===null?io=Rl=e:Rl=Rl.next=e),oo=!0,Ku||(Ku=!0,Y1())}function Cs(e,n){if(!Xu&&oo){Xu=!0;do for(var l=!1,o=io;o!==null;){if(e!==0){var p=o.pendingLanes;if(p===0)var g=0;else{var j=o.suspendedLanes,R=o.pingedLanes;g=(1<<31-qt(42|e)+1)-1,g&=p&~(j&~R),g=g&201326741?g&201326741|1:g?g|2:0}g!==0&&(l=!0,ex(o,g))}else g=Ze,g=Oe(o,o===yt?g:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(g&3)===0||Ye(o,g)||(l=!0,ex(o,g));o=o.next}while(l);Xu=!1}}function q1(){Qh()}function Qh(){oo=Ku=!1;var e=0;oa!==0&&a0()&&(e=oa);for(var n=qe(),l=null,o=io;o!==null;){var p=o.next,g=Zh(o,n);g===0?(o.next=null,l===null?io=p:l.next=p,p===null&&(Rl=l)):(l=o,(e!==0||(g&3)!==0)&&(oo=!0)),o=p}Yt!==0&&Yt!==5||Cs(e),oa!==0&&(oa=0)}function Zh(e,n){for(var l=e.suspendedLanes,o=e.pingedLanes,p=e.expirationTimes,g=e.pendingLanes&-62914561;0<g;){var j=31-qt(g),R=1<<j,P=p[j];P===-1?((R&l)===0||(R&o)!==0)&&(p[j]=Hn(R,n)):P<=n&&(e.expiredLanes|=R),g&=~R}if(n=yt,l=Ze,l=Oe(e,e===n?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),o=e.callbackNode,l===0||e===n&&(dt===2||dt===9)||e.cancelPendingCommit!==null)return o!==null&&o!==null&&gt(o),e.callbackNode=null,e.callbackPriority=0;if((l&3)===0||Ye(e,l)){if(n=l&-l,n===e.callbackPriority)return n;switch(o!==null&&gt(o),Jt(l)){case 2:case 8:l=vt;break;case 32:l=Zt;break;case 268435456:l=rt;break;default:l=Zt}return o=Jh.bind(null,e),l=ut(l,o),e.callbackPriority=n,e.callbackNode=l,n}return o!==null&&o!==null&&gt(o),e.callbackPriority=2,e.callbackNode=null,2}function Jh(e,n){if(Yt!==0&&Yt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var l=e.callbackNode;if(so()&&e.callbackNode!==l)return null;var o=Ze;return o=Oe(e,e===yt?o:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),o===0?null:(Dh(e,o,n),Zh(e,qe()),e.callbackNode!=null&&e.callbackNode===l?Jh.bind(null,e):null)}function ex(e,n){if(so())return null;Dh(e,n,!0)}function Y1(){s0(function(){(ot&6)!==0?ut(kt,q1):Qh()})}function Qu(){if(oa===0){var e=ml;e===0&&(e=Nn,Nn<<=1,(Nn&261888)===0&&(Nn=256)),oa=e}return oa}function tx(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:xi(""+e)}function nx(e,n){var l=n.ownerDocument.createElement("input");return l.name=n.name,l.value=n.value,e.id&&l.setAttribute("form",e.id),n.parentNode.insertBefore(l,n),e=new FormData(e),l.parentNode.removeChild(l),e}function K1(e,n,l,o,p){if(n==="submit"&&l&&l.stateNode===p){var g=tx((p[It]||null).action),j=o.submitter;j&&(n=(n=j[It]||null)?tx(n.formAction):j.getAttribute("formAction"),n!==null&&(g=n,j=null));var R=new bi("action","action",null,o,p);e.push({event:R,listeners:[{instance:null,listener:function(){if(o.defaultPrevented){if(oa!==0){var P=j?nx(p,j):new FormData(p);gu(l,{pending:!0,data:P,method:p.method,action:g},null,P)}}else typeof g=="function"&&(R.preventDefault(),P=j?nx(p,j):new FormData(p),gu(l,{pending:!0,data:P,method:p.method,action:g},g,P))},currentTarget:p}]})}}for(var Zu=0;Zu<Dc.length;Zu++){var Ju=Dc[Zu],X1=Ju.toLowerCase(),Q1=Ju[0].toUpperCase()+Ju.slice(1);rr(X1,"on"+Q1)}rr(zp,"onAnimationEnd"),rr(Dp,"onAnimationIteration"),rr(_p,"onAnimationStart"),rr("dblclick","onDoubleClick"),rr("focusin","onFocus"),rr("focusout","onBlur"),rr(p1,"onTransitionRun"),rr(m1,"onTransitionStart"),rr(h1,"onTransitionCancel"),rr(Op,"onTransitionEnd"),el("onMouseEnter",["mouseout","mouseover"]),el("onMouseLeave",["mouseout","mouseover"]),el("onPointerEnter",["pointerout","pointerover"]),el("onPointerLeave",["pointerout","pointerover"]),ka("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ka("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ka("onBeforeInput",["compositionend","keypress","textInput","paste"]),ka("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ka("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ka("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Es="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Z1=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Es));function rx(e,n){n=(n&4)!==0;for(var l=0;l<e.length;l++){var o=e[l],p=o.event;o=o.listeners;e:{var g=void 0;if(n)for(var j=o.length-1;0<=j;j--){var R=o[j],P=R.instance,J=R.currentTarget;if(R=R.listener,P!==g&&p.isPropagationStopped())break e;g=R,p.currentTarget=J;try{g(p)}catch(ue){ki(ue)}p.currentTarget=null,g=P}else for(j=0;j<o.length;j++){if(R=o[j],P=R.instance,J=R.currentTarget,R=R.listener,P!==g&&p.isPropagationStopped())break e;g=R,p.currentTarget=J;try{g(p)}catch(ue){ki(ue)}p.currentTarget=null,g=P}}}}function Xe(e,n){var l=n[an];l===void 0&&(l=n[an]=new Set);var o=e+"__bubble";l.has(o)||(ax(n,e,2,!1),l.add(o))}function ed(e,n,l){var o=0;n&&(o|=4),ax(l,e,o,n)}var co="_reactListening"+Math.random().toString(36).slice(2);function td(e){if(!e[co]){e[co]=!0,Qf.forEach(function(l){l!=="selectionchange"&&(Z1.has(l)||ed(l,!1,e),ed(l,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[co]||(n[co]=!0,ed("selectionchange",!1,n))}}function ax(e,n,l,o){switch(zx(n)){case 2:var p=E0;break;case 8:p=N0;break;default:p=xd}l=p.bind(null,n,l,e),p=void 0,!jc||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(p=!0),o?p!==void 0?e.addEventListener(n,l,{capture:!0,passive:p}):e.addEventListener(n,l,!0):p!==void 0?e.addEventListener(n,l,{passive:p}):e.addEventListener(n,l,!1)}function nd(e,n,l,o,p){var g=o;if((n&1)===0&&(n&2)===0&&o!==null)e:for(;;){if(o===null)return;var j=o.tag;if(j===3||j===4){var R=o.stateNode.containerInfo;if(R===p)break;if(j===4)for(j=o.return;j!==null;){var P=j.tag;if((P===3||P===4)&&j.stateNode.containerInfo===p)return;j=j.return}for(;R!==null;){if(j=Qa(R),j===null)return;if(P=j.tag,P===5||P===6||P===26||P===27){o=g=j;continue e}R=R.parentNode}}o=o.return}cp(function(){var J=g,ue=yc(l),me=[];e:{var re=Bp.get(e);if(re!==void 0){var oe=bi,Ce=e;switch(e){case"keypress":if(vi(l)===0)break e;case"keydown":case"keyup":oe=Gb;break;case"focusin":Ce="focus",oe=Cc;break;case"focusout":Ce="blur",oe=Cc;break;case"beforeblur":case"afterblur":oe=Cc;break;case"click":if(l.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":oe=fp;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":oe=zb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":oe=Yb;break;case zp:case Dp:case _p:oe=Ob;break;case Op:oe=Xb;break;case"scroll":case"scrollend":oe=Lb;break;case"wheel":oe=Zb;break;case"copy":case"cut":case"paste":oe=Ib;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":oe=mp;break;case"toggle":case"beforetoggle":oe=e1}var De=(n&4)!==0,ht=!De&&(e==="scroll"||e==="scrollend"),Y=De?re!==null?re+"Capture":null:re;De=[];for(var G=J,Z;G!==null;){var pe=G;if(Z=pe.stateNode,pe=pe.tag,pe!==5&&pe!==26&&pe!==27||Z===null||Y===null||(pe=Yl(G,Y),pe!=null&&De.push(Ns(G,pe,Z))),ht)break;G=G.return}0<De.length&&(re=new oe(re,Ce,null,l,ue),me.push({event:re,listeners:De}))}}if((n&7)===0){e:{if(re=e==="mouseover"||e==="pointerover",oe=e==="mouseout"||e==="pointerout",re&&l!==vc&&(Ce=l.relatedTarget||l.fromElement)&&(Qa(Ce)||Ce[Fr]))break e;if((oe||re)&&(re=ue.window===ue?ue:(re=ue.ownerDocument)?re.defaultView||re.parentWindow:window,oe?(Ce=l.relatedTarget||l.toElement,oe=J,Ce=Ce?Qa(Ce):null,Ce!==null&&(ht=u(Ce),De=Ce.tag,Ce!==ht||De!==5&&De!==27&&De!==6)&&(Ce=null)):(oe=null,Ce=J),oe!==Ce)){if(De=fp,pe="onMouseLeave",Y="onMouseEnter",G="mouse",(e==="pointerout"||e==="pointerover")&&(De=mp,pe="onPointerLeave",Y="onPointerEnter",G="pointer"),ht=oe==null?re:ql(oe),Z=Ce==null?re:ql(Ce),re=new De(pe,G+"leave",oe,l,ue),re.target=ht,re.relatedTarget=Z,pe=null,Qa(ue)===J&&(De=new De(Y,G+"enter",Ce,l,ue),De.target=Z,De.relatedTarget=ht,pe=De),ht=pe,oe&&Ce)t:{for(De=J1,Y=oe,G=Ce,Z=0,pe=Y;pe;pe=De(pe))Z++;pe=0;for(var ze=G;ze;ze=De(ze))pe++;for(;0<Z-pe;)Y=De(Y),Z--;for(;0<pe-Z;)G=De(G),pe--;for(;Z--;){if(Y===G||G!==null&&Y===G.alternate){De=Y;break t}Y=De(Y),G=De(G)}De=null}else De=null;oe!==null&&lx(me,re,oe,De,!1),Ce!==null&&ht!==null&&lx(me,ht,Ce,De,!0)}}e:{if(re=J?ql(J):window,oe=re.nodeName&&re.nodeName.toLowerCase(),oe==="select"||oe==="input"&&re.type==="file")var at=Sp;else if(bp(re))if(kp)at=u1;else{at=o1;var Te=i1}else oe=re.nodeName,!oe||oe.toLowerCase()!=="input"||re.type!=="checkbox"&&re.type!=="radio"?J&&gc(J.elementType)&&(at=Sp):at=c1;if(at&&(at=at(e,J))){jp(me,at,l,ue);break e}Te&&Te(e,re,J),e==="focusout"&&J&&re.type==="number"&&J.memoizedProps.value!=null&&xc(re,"number",re.value)}switch(Te=J?ql(J):window,e){case"focusin":(bp(Te)||Te.contentEditable==="true")&&(sl=Te,Lc=J,ns=null);break;case"focusout":ns=Lc=sl=null;break;case"mousedown":Mc=!0;break;case"contextmenu":case"mouseup":case"dragend":Mc=!1,Lp(me,l,ue);break;case"selectionchange":if(f1)break;case"keydown":case"keyup":Lp(me,l,ue)}var Ve;if(Nc)e:{switch(e){case"compositionstart":var Je="onCompositionStart";break e;case"compositionend":Je="onCompositionEnd";break e;case"compositionupdate":Je="onCompositionUpdate";break e}Je=void 0}else ll?vp(e,l)&&(Je="onCompositionEnd"):e==="keydown"&&l.keyCode===229&&(Je="onCompositionStart");Je&&(hp&&l.locale!=="ko"&&(ll||Je!=="onCompositionStart"?Je==="onCompositionEnd"&&ll&&(Ve=up()):(Wr=ue,Sc="value"in Wr?Wr.value:Wr.textContent,ll=!0)),Te=uo(J,Je),0<Te.length&&(Je=new pp(Je,e,null,l,ue),me.push({event:Je,listeners:Te}),Ve?Je.data=Ve:(Ve=yp(l),Ve!==null&&(Je.data=Ve)))),(Ve=n1?r1(e,l):a1(e,l))&&(Je=uo(J,"onBeforeInput"),0<Je.length&&(Te=new pp("onBeforeInput","beforeinput",null,l,ue),me.push({event:Te,listeners:Je}),Te.data=Ve)),K1(me,e,J,l,ue)}rx(me,n)})}function Ns(e,n,l){return{instance:e,listener:n,currentTarget:l}}function uo(e,n){for(var l=n+"Capture",o=[];e!==null;){var p=e,g=p.stateNode;if(p=p.tag,p!==5&&p!==26&&p!==27||g===null||(p=Yl(e,l),p!=null&&o.unshift(Ns(e,p,g)),p=Yl(e,n),p!=null&&o.push(Ns(e,p,g))),e.tag===3)return o;e=e.return}return[]}function J1(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function lx(e,n,l,o,p){for(var g=n._reactName,j=[];l!==null&&l!==o;){var R=l,P=R.alternate,J=R.stateNode;if(R=R.tag,P!==null&&P===o)break;R!==5&&R!==26&&R!==27||J===null||(P=J,p?(J=Yl(l,g),J!=null&&j.unshift(Ns(l,J,P))):p||(J=Yl(l,g),J!=null&&j.push(Ns(l,J,P)))),l=l.return}j.length!==0&&e.push({event:n,listeners:j})}var e0=/\r\n?/g,t0=/\u0000|\uFFFD/g;function sx(e){return(typeof e=="string"?e:""+e).replace(e0,`
50
- `).replace(t0,"")}function ix(e,n){return n=sx(n),sx(e)===n}function mt(e,n,l,o,p,g){switch(l){case"children":typeof o=="string"?n==="body"||n==="textarea"&&o===""||nl(e,o):(typeof o=="number"||typeof o=="bigint")&&n!=="body"&&nl(e,""+o);break;case"className":mi(e,"class",o);break;case"tabIndex":mi(e,"tabindex",o);break;case"dir":case"role":case"viewBox":case"width":case"height":mi(e,l,o);break;case"style":ip(e,o,g);break;case"data":if(n!=="object"){mi(e,"data",o);break}case"src":case"href":if(o===""&&(n!=="a"||l!=="href")){e.removeAttribute(l);break}if(o==null||typeof o=="function"||typeof o=="symbol"||typeof o=="boolean"){e.removeAttribute(l);break}o=xi(""+o),e.setAttribute(l,o);break;case"action":case"formAction":if(typeof o=="function"){e.setAttribute(l,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof g=="function"&&(l==="formAction"?(n!=="input"&&mt(e,n,"name",p.name,p,null),mt(e,n,"formEncType",p.formEncType,p,null),mt(e,n,"formMethod",p.formMethod,p,null),mt(e,n,"formTarget",p.formTarget,p,null)):(mt(e,n,"encType",p.encType,p,null),mt(e,n,"method",p.method,p,null),mt(e,n,"target",p.target,p,null)));if(o==null||typeof o=="symbol"||typeof o=="boolean"){e.removeAttribute(l);break}o=xi(""+o),e.setAttribute(l,o);break;case"onClick":o!=null&&(e.onclick=kr);break;case"onScroll":o!=null&&Xe("scroll",e);break;case"onScrollEnd":o!=null&&Xe("scrollend",e);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(i(61));if(l=o.__html,l!=null){if(p.children!=null)throw Error(i(60));e.innerHTML=l}}break;case"multiple":e.multiple=o&&typeof o!="function"&&typeof o!="symbol";break;case"muted":e.muted=o&&typeof o!="function"&&typeof o!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(o==null||typeof o=="function"||typeof o=="boolean"||typeof o=="symbol"){e.removeAttribute("xlink:href");break}l=xi(""+o),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":o!=null&&typeof o!="function"&&typeof o!="symbol"?e.setAttribute(l,""+o):e.removeAttribute(l);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":o&&typeof o!="function"&&typeof o!="symbol"?e.setAttribute(l,""):e.removeAttribute(l);break;case"capture":case"download":o===!0?e.setAttribute(l,""):o!==!1&&o!=null&&typeof o!="function"&&typeof o!="symbol"?e.setAttribute(l,o):e.removeAttribute(l);break;case"cols":case"rows":case"size":case"span":o!=null&&typeof o!="function"&&typeof o!="symbol"&&!isNaN(o)&&1<=o?e.setAttribute(l,o):e.removeAttribute(l);break;case"rowSpan":case"start":o==null||typeof o=="function"||typeof o=="symbol"||isNaN(o)?e.removeAttribute(l):e.setAttribute(l,o);break;case"popover":Xe("beforetoggle",e),Xe("toggle",e),pi(e,"popover",o);break;case"xlinkActuate":Sr(e,"http://www.w3.org/1999/xlink","xlink:actuate",o);break;case"xlinkArcrole":Sr(e,"http://www.w3.org/1999/xlink","xlink:arcrole",o);break;case"xlinkRole":Sr(e,"http://www.w3.org/1999/xlink","xlink:role",o);break;case"xlinkShow":Sr(e,"http://www.w3.org/1999/xlink","xlink:show",o);break;case"xlinkTitle":Sr(e,"http://www.w3.org/1999/xlink","xlink:title",o);break;case"xlinkType":Sr(e,"http://www.w3.org/1999/xlink","xlink:type",o);break;case"xmlBase":Sr(e,"http://www.w3.org/XML/1998/namespace","xml:base",o);break;case"xmlLang":Sr(e,"http://www.w3.org/XML/1998/namespace","xml:lang",o);break;case"xmlSpace":Sr(e,"http://www.w3.org/XML/1998/namespace","xml:space",o);break;case"is":pi(e,"is",o);break;case"innerText":case"textContent":break;default:(!(2<l.length)||l[0]!=="o"&&l[0]!=="O"||l[1]!=="n"&&l[1]!=="N")&&(l=Rb.get(l)||l,pi(e,l,o))}}function rd(e,n,l,o,p,g){switch(l){case"style":ip(e,o,g);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(i(61));if(l=o.__html,l!=null){if(p.children!=null)throw Error(i(60));e.innerHTML=l}}break;case"children":typeof o=="string"?nl(e,o):(typeof o=="number"||typeof o=="bigint")&&nl(e,""+o);break;case"onScroll":o!=null&&Xe("scroll",e);break;case"onScrollEnd":o!=null&&Xe("scrollend",e);break;case"onClick":o!=null&&(e.onclick=kr);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Zf.hasOwnProperty(l))e:{if(l[0]==="o"&&l[1]==="n"&&(p=l.endsWith("Capture"),n=l.slice(2,p?l.length-7:void 0),g=e[It]||null,g=g!=null?g[l]:null,typeof g=="function"&&e.removeEventListener(n,g,p),typeof o=="function")){typeof g!="function"&&g!==null&&(l in e?e[l]=null:e.hasAttribute(l)&&e.removeAttribute(l)),e.addEventListener(n,o,p);break e}l in e?e[l]=o:o===!0?e.setAttribute(l,""):pi(e,l,o)}}}function cn(e,n,l){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Xe("error",e),Xe("load",e);var o=!1,p=!1,g;for(g in l)if(l.hasOwnProperty(g)){var j=l[g];if(j!=null)switch(g){case"src":o=!0;break;case"srcSet":p=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,n));default:mt(e,n,g,j,l,null)}}p&&mt(e,n,"srcSet",l.srcSet,l,null),o&&mt(e,n,"src",l.src,l,null);return;case"input":Xe("invalid",e);var R=g=j=p=null,P=null,J=null;for(o in l)if(l.hasOwnProperty(o)){var ue=l[o];if(ue!=null)switch(o){case"name":p=ue;break;case"type":j=ue;break;case"checked":P=ue;break;case"defaultChecked":J=ue;break;case"value":g=ue;break;case"defaultValue":R=ue;break;case"children":case"dangerouslySetInnerHTML":if(ue!=null)throw Error(i(137,n));break;default:mt(e,n,o,ue,l,null)}}rp(e,g,R,P,J,j,p,!1);return;case"select":Xe("invalid",e),o=j=g=null;for(p in l)if(l.hasOwnProperty(p)&&(R=l[p],R!=null))switch(p){case"value":g=R;break;case"defaultValue":j=R;break;case"multiple":o=R;default:mt(e,n,p,R,l,null)}n=g,l=j,e.multiple=!!o,n!=null?tl(e,!!o,n,!1):l!=null&&tl(e,!!o,l,!0);return;case"textarea":Xe("invalid",e),g=p=o=null;for(j in l)if(l.hasOwnProperty(j)&&(R=l[j],R!=null))switch(j){case"value":o=R;break;case"defaultValue":p=R;break;case"children":g=R;break;case"dangerouslySetInnerHTML":if(R!=null)throw Error(i(91));break;default:mt(e,n,j,R,l,null)}lp(e,o,p,g);return;case"option":for(P in l)if(l.hasOwnProperty(P)&&(o=l[P],o!=null))switch(P){case"selected":e.selected=o&&typeof o!="function"&&typeof o!="symbol";break;default:mt(e,n,P,o,l,null)}return;case"dialog":Xe("beforetoggle",e),Xe("toggle",e),Xe("cancel",e),Xe("close",e);break;case"iframe":case"object":Xe("load",e);break;case"video":case"audio":for(o=0;o<Es.length;o++)Xe(Es[o],e);break;case"image":Xe("error",e),Xe("load",e);break;case"details":Xe("toggle",e);break;case"embed":case"source":case"link":Xe("error",e),Xe("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(J in l)if(l.hasOwnProperty(J)&&(o=l[J],o!=null))switch(J){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,n));default:mt(e,n,J,o,l,null)}return;default:if(gc(n)){for(ue in l)l.hasOwnProperty(ue)&&(o=l[ue],o!==void 0&&rd(e,n,ue,o,l,void 0));return}}for(R in l)l.hasOwnProperty(R)&&(o=l[R],o!=null&&mt(e,n,R,o,l,null))}function n0(e,n,l,o){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var p=null,g=null,j=null,R=null,P=null,J=null,ue=null;for(oe in l){var me=l[oe];if(l.hasOwnProperty(oe)&&me!=null)switch(oe){case"checked":break;case"value":break;case"defaultValue":P=me;default:o.hasOwnProperty(oe)||mt(e,n,oe,null,o,me)}}for(var re in o){var oe=o[re];if(me=l[re],o.hasOwnProperty(re)&&(oe!=null||me!=null))switch(re){case"type":g=oe;break;case"name":p=oe;break;case"checked":J=oe;break;case"defaultChecked":ue=oe;break;case"value":j=oe;break;case"defaultValue":R=oe;break;case"children":case"dangerouslySetInnerHTML":if(oe!=null)throw Error(i(137,n));break;default:oe!==me&&mt(e,n,re,oe,o,me)}}hc(e,j,R,P,J,ue,g,p);return;case"select":oe=j=R=re=null;for(g in l)if(P=l[g],l.hasOwnProperty(g)&&P!=null)switch(g){case"value":break;case"multiple":oe=P;default:o.hasOwnProperty(g)||mt(e,n,g,null,o,P)}for(p in o)if(g=o[p],P=l[p],o.hasOwnProperty(p)&&(g!=null||P!=null))switch(p){case"value":re=g;break;case"defaultValue":R=g;break;case"multiple":j=g;default:g!==P&&mt(e,n,p,g,o,P)}n=R,l=j,o=oe,re!=null?tl(e,!!l,re,!1):!!o!=!!l&&(n!=null?tl(e,!!l,n,!0):tl(e,!!l,l?[]:"",!1));return;case"textarea":oe=re=null;for(R in l)if(p=l[R],l.hasOwnProperty(R)&&p!=null&&!o.hasOwnProperty(R))switch(R){case"value":break;case"children":break;default:mt(e,n,R,null,o,p)}for(j in o)if(p=o[j],g=l[j],o.hasOwnProperty(j)&&(p!=null||g!=null))switch(j){case"value":re=p;break;case"defaultValue":oe=p;break;case"children":break;case"dangerouslySetInnerHTML":if(p!=null)throw Error(i(91));break;default:p!==g&&mt(e,n,j,p,o,g)}ap(e,re,oe);return;case"option":for(var Ce in l)if(re=l[Ce],l.hasOwnProperty(Ce)&&re!=null&&!o.hasOwnProperty(Ce))switch(Ce){case"selected":e.selected=!1;break;default:mt(e,n,Ce,null,o,re)}for(P in o)if(re=o[P],oe=l[P],o.hasOwnProperty(P)&&re!==oe&&(re!=null||oe!=null))switch(P){case"selected":e.selected=re&&typeof re!="function"&&typeof re!="symbol";break;default:mt(e,n,P,re,o,oe)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var De in l)re=l[De],l.hasOwnProperty(De)&&re!=null&&!o.hasOwnProperty(De)&&mt(e,n,De,null,o,re);for(J in o)if(re=o[J],oe=l[J],o.hasOwnProperty(J)&&re!==oe&&(re!=null||oe!=null))switch(J){case"children":case"dangerouslySetInnerHTML":if(re!=null)throw Error(i(137,n));break;default:mt(e,n,J,re,o,oe)}return;default:if(gc(n)){for(var ht in l)re=l[ht],l.hasOwnProperty(ht)&&re!==void 0&&!o.hasOwnProperty(ht)&&rd(e,n,ht,void 0,o,re);for(ue in o)re=o[ue],oe=l[ue],!o.hasOwnProperty(ue)||re===oe||re===void 0&&oe===void 0||rd(e,n,ue,re,o,oe);return}}for(var Y in l)re=l[Y],l.hasOwnProperty(Y)&&re!=null&&!o.hasOwnProperty(Y)&&mt(e,n,Y,null,o,re);for(me in o)re=o[me],oe=l[me],!o.hasOwnProperty(me)||re===oe||re==null&&oe==null||mt(e,n,me,re,o,oe)}function ox(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function r0(){if(typeof performance.getEntriesByType=="function"){for(var e=0,n=0,l=performance.getEntriesByType("resource"),o=0;o<l.length;o++){var p=l[o],g=p.transferSize,j=p.initiatorType,R=p.duration;if(g&&R&&ox(j)){for(j=0,R=p.responseEnd,o+=1;o<l.length;o++){var P=l[o],J=P.startTime;if(J>R)break;var ue=P.transferSize,me=P.initiatorType;ue&&ox(me)&&(P=P.responseEnd,j+=ue*(P<R?1:(R-J)/(P-J)))}if(--o,n+=8*(g+j)/(p.duration/1e3),e++,10<e)break}}if(0<e)return n/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var ad=null,ld=null;function fo(e){return e.nodeType===9?e:e.ownerDocument}function cx(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function ux(e,n){if(e===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&n==="foreignObject"?0:e}function sd(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var id=null;function a0(){var e=window.event;return e&&e.type==="popstate"?e===id?!1:(id=e,!0):(id=null,!1)}var dx=typeof setTimeout=="function"?setTimeout:void 0,l0=typeof clearTimeout=="function"?clearTimeout:void 0,fx=typeof Promise=="function"?Promise:void 0,s0=typeof queueMicrotask=="function"?queueMicrotask:typeof fx<"u"?function(e){return fx.resolve(null).then(e).catch(i0)}:dx;function i0(e){setTimeout(function(){throw e})}function ca(e){return e==="head"}function px(e,n){var l=n,o=0;do{var p=l.nextSibling;if(e.removeChild(l),p&&p.nodeType===8)if(l=p.data,l==="/$"||l==="/&"){if(o===0){e.removeChild(p),zl(n);return}o--}else if(l==="$"||l==="$?"||l==="$~"||l==="$!"||l==="&")o++;else if(l==="html")Ts(e.ownerDocument.documentElement);else if(l==="head"){l=e.ownerDocument.head,Ts(l);for(var g=l.firstChild;g;){var j=g.nextSibling,R=g.nodeName;g[Wl]||R==="SCRIPT"||R==="STYLE"||R==="LINK"&&g.rel.toLowerCase()==="stylesheet"||l.removeChild(g),g=j}}else l==="body"&&Ts(e.ownerDocument.body);l=p}while(l);zl(n)}function mx(e,n){var l=e;e=0;do{var o=l.nextSibling;if(l.nodeType===1?n?(l._stashedDisplay=l.style.display,l.style.display="none"):(l.style.display=l._stashedDisplay||"",l.getAttribute("style")===""&&l.removeAttribute("style")):l.nodeType===3&&(n?(l._stashedText=l.nodeValue,l.nodeValue=""):l.nodeValue=l._stashedText||""),o&&o.nodeType===8)if(l=o.data,l==="/$"){if(e===0)break;e--}else l!=="$"&&l!=="$?"&&l!=="$~"&&l!=="$!"||e++;l=o}while(l)}function od(e){var n=e.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var l=n;switch(n=n.nextSibling,l.nodeName){case"HTML":case"HEAD":case"BODY":od(l),pc(l);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(l.rel.toLowerCase()==="stylesheet")continue}e.removeChild(l)}}function o0(e,n,l,o){for(;e.nodeType===1;){var p=l;if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!o&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(o){if(!e[Wl])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(g=e.getAttribute("rel"),g==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(g!==p.rel||e.getAttribute("href")!==(p.href==null||p.href===""?null:p.href)||e.getAttribute("crossorigin")!==(p.crossOrigin==null?null:p.crossOrigin)||e.getAttribute("title")!==(p.title==null?null:p.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(g=e.getAttribute("src"),(g!==(p.src==null?null:p.src)||e.getAttribute("type")!==(p.type==null?null:p.type)||e.getAttribute("crossorigin")!==(p.crossOrigin==null?null:p.crossOrigin))&&g&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(n==="input"&&e.type==="hidden"){var g=p.name==null?null:""+p.name;if(p.type==="hidden"&&e.getAttribute("name")===g)return e}else return e;if(e=Xn(e.nextSibling),e===null)break}return null}function c0(e,n,l){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!l||(e=Xn(e.nextSibling),e===null))return null;return e}function hx(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Xn(e.nextSibling),e===null))return null;return e}function cd(e){return e.data==="$?"||e.data==="$~"}function ud(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function u0(e,n){var l=e.ownerDocument;if(e.data==="$~")e._reactRetry=n;else if(e.data!=="$?"||l.readyState!=="loading")n();else{var o=function(){n(),l.removeEventListener("DOMContentLoaded",o)};l.addEventListener("DOMContentLoaded",o),e._reactRetry=o}}function Xn(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"||n==="F!"||n==="F")break;if(n==="/$"||n==="/&")return null}}return e}var dd=null;function xx(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var l=e.data;if(l==="/$"||l==="/&"){if(n===0)return Xn(e.nextSibling);n--}else l!=="$"&&l!=="$!"&&l!=="$?"&&l!=="$~"&&l!=="&"||n++}e=e.nextSibling}return null}function gx(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var l=e.data;if(l==="$"||l==="$!"||l==="$?"||l==="$~"||l==="&"){if(n===0)return e;n--}else l!=="/$"&&l!=="/&"||n++}e=e.previousSibling}return null}function vx(e,n,l){switch(n=fo(l),e){case"html":if(e=n.documentElement,!e)throw Error(i(452));return e;case"head":if(e=n.head,!e)throw Error(i(453));return e;case"body":if(e=n.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function Ts(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);pc(e)}var Qn=new Map,yx=new Set;function po(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var $r=B.d;B.d={f:d0,r:f0,D:p0,C:m0,L:h0,m:x0,X:v0,S:g0,M:y0};function d0(){var e=$r.f(),n=ro();return e||n}function f0(e){var n=Za(e);n!==null&&n.tag===5&&n.type==="form"?Om(n):$r.r(e)}var Al=typeof document>"u"?null:document;function bx(e,n,l){var o=Al;if(o&&typeof n=="string"&&n){var p=Vn(n);p='link[rel="'+e+'"][href="'+p+'"]',typeof l=="string"&&(p+='[crossorigin="'+l+'"]'),yx.has(p)||(yx.add(p),e={rel:e,crossOrigin:l,href:n},o.querySelector(p)===null&&(n=o.createElement("link"),cn(n,"link",e),en(n),o.head.appendChild(n)))}}function p0(e){$r.D(e),bx("dns-prefetch",e,null)}function m0(e,n){$r.C(e,n),bx("preconnect",e,n)}function h0(e,n,l){$r.L(e,n,l);var o=Al;if(o&&e&&n){var p='link[rel="preload"][as="'+Vn(n)+'"]';n==="image"&&l&&l.imageSrcSet?(p+='[imagesrcset="'+Vn(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(p+='[imagesizes="'+Vn(l.imageSizes)+'"]')):p+='[href="'+Vn(e)+'"]';var g=p;switch(n){case"style":g=Ll(e);break;case"script":g=Ml(e)}Qn.has(g)||(e=v({rel:"preload",href:n==="image"&&l&&l.imageSrcSet?void 0:e,as:n},l),Qn.set(g,e),o.querySelector(p)!==null||n==="style"&&o.querySelector(Rs(g))||n==="script"&&o.querySelector(As(g))||(n=o.createElement("link"),cn(n,"link",e),en(n),o.head.appendChild(n)))}}function x0(e,n){$r.m(e,n);var l=Al;if(l&&e){var o=n&&typeof n.as=="string"?n.as:"script",p='link[rel="modulepreload"][as="'+Vn(o)+'"][href="'+Vn(e)+'"]',g=p;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":g=Ml(e)}if(!Qn.has(g)&&(e=v({rel:"modulepreload",href:e},n),Qn.set(g,e),l.querySelector(p)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(As(g)))return}o=l.createElement("link"),cn(o,"link",e),en(o),l.head.appendChild(o)}}}function g0(e,n,l){$r.S(e,n,l);var o=Al;if(o&&e){var p=Ja(o).hoistableStyles,g=Ll(e);n=n||"default";var j=p.get(g);if(!j){var R={loading:0,preload:null};if(j=o.querySelector(Rs(g)))R.loading=5;else{e=v({rel:"stylesheet",href:e,"data-precedence":n},l),(l=Qn.get(g))&&fd(e,l);var P=j=o.createElement("link");en(P),cn(P,"link",e),P._p=new Promise(function(J,ue){P.onload=J,P.onerror=ue}),P.addEventListener("load",function(){R.loading|=1}),P.addEventListener("error",function(){R.loading|=2}),R.loading|=4,mo(j,n,o)}j={type:"stylesheet",instance:j,count:1,state:R},p.set(g,j)}}}function v0(e,n){$r.X(e,n);var l=Al;if(l&&e){var o=Ja(l).hoistableScripts,p=Ml(e),g=o.get(p);g||(g=l.querySelector(As(p)),g||(e=v({src:e,async:!0},n),(n=Qn.get(p))&&pd(e,n),g=l.createElement("script"),en(g),cn(g,"link",e),l.head.appendChild(g)),g={type:"script",instance:g,count:1,state:null},o.set(p,g))}}function y0(e,n){$r.M(e,n);var l=Al;if(l&&e){var o=Ja(l).hoistableScripts,p=Ml(e),g=o.get(p);g||(g=l.querySelector(As(p)),g||(e=v({src:e,async:!0,type:"module"},n),(n=Qn.get(p))&&pd(e,n),g=l.createElement("script"),en(g),cn(g,"link",e),l.head.appendChild(g)),g={type:"script",instance:g,count:1,state:null},o.set(p,g))}}function jx(e,n,l,o){var p=(p=le.current)?po(p):null;if(!p)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(n=Ll(l.href),l=Ja(p).hoistableStyles,o=l.get(n),o||(o={type:"style",instance:null,count:0,state:null},l.set(n,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=Ll(l.href);var g=Ja(p).hoistableStyles,j=g.get(e);if(j||(p=p.ownerDocument||p,j={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},g.set(e,j),(g=p.querySelector(Rs(e)))&&!g._p&&(j.instance=g,j.state.loading=5),Qn.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},Qn.set(e,l),g||b0(p,e,l,j.state))),n&&o===null)throw Error(i(528,""));return j}if(n&&o!==null)throw Error(i(529,""));return null;case"script":return n=l.async,l=l.src,typeof l=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=Ml(l),l=Ja(p).hoistableScripts,o=l.get(n),o||(o={type:"script",instance:null,count:0,state:null},l.set(n,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Ll(e){return'href="'+Vn(e)+'"'}function Rs(e){return'link[rel="stylesheet"]['+e+"]"}function Sx(e){return v({},e,{"data-precedence":e.precedence,precedence:null})}function b0(e,n,l,o){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?o.loading=1:(n=e.createElement("link"),o.preload=n,n.addEventListener("load",function(){return o.loading|=1}),n.addEventListener("error",function(){return o.loading|=2}),cn(n,"link",l),en(n),e.head.appendChild(n))}function Ml(e){return'[src="'+Vn(e)+'"]'}function As(e){return"script[async]"+e}function kx(e,n,l){if(n.count++,n.instance===null)switch(n.type){case"style":var o=e.querySelector('style[data-href~="'+Vn(l.href)+'"]');if(o)return n.instance=o,en(o),o;var p=v({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return o=(e.ownerDocument||e).createElement("style"),en(o),cn(o,"style",p),mo(o,l.precedence,e),n.instance=o;case"stylesheet":p=Ll(l.href);var g=e.querySelector(Rs(p));if(g)return n.state.loading|=4,n.instance=g,en(g),g;o=Sx(l),(p=Qn.get(p))&&fd(o,p),g=(e.ownerDocument||e).createElement("link"),en(g);var j=g;return j._p=new Promise(function(R,P){j.onload=R,j.onerror=P}),cn(g,"link",o),n.state.loading|=4,mo(g,l.precedence,e),n.instance=g;case"script":return g=Ml(l.src),(p=e.querySelector(As(g)))?(n.instance=p,en(p),p):(o=l,(p=Qn.get(g))&&(o=v({},l),pd(o,p)),e=e.ownerDocument||e,p=e.createElement("script"),en(p),cn(p,"link",o),e.head.appendChild(p),n.instance=p);case"void":return null;default:throw Error(i(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(o=n.instance,n.state.loading|=4,mo(o,l.precedence,e));return n.instance}function mo(e,n,l){for(var o=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),p=o.length?o[o.length-1]:null,g=p,j=0;j<o.length;j++){var R=o[j];if(R.dataset.precedence===n)g=R;else if(g!==p)break}g?g.parentNode.insertBefore(e,g.nextSibling):(n=l.nodeType===9?l.head:l,n.insertBefore(e,n.firstChild))}function fd(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function pd(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var ho=null;function wx(e,n,l){if(ho===null){var o=new Map,p=ho=new Map;p.set(l,o)}else p=ho,o=p.get(l),o||(o=new Map,p.set(l,o));if(o.has(e))return o;for(o.set(e,null),l=l.getElementsByTagName(e),p=0;p<l.length;p++){var g=l[p];if(!(g[Wl]||g[Dt]||e==="link"&&g.getAttribute("rel")==="stylesheet")&&g.namespaceURI!=="http://www.w3.org/2000/svg"){var j=g.getAttribute(n)||"";j=e+j;var R=o.get(j);R?R.push(g):o.set(j,[g])}}return o}function Cx(e,n,l){e=e.ownerDocument||e,e.head.insertBefore(l,n==="title"?e.querySelector("head > title"):null)}function j0(e,n,l){if(l===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return e=n.disabled,typeof n.precedence=="string"&&e==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function Ex(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function S0(e,n,l,o){if(l.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var p=Ll(o.href),g=n.querySelector(Rs(p));if(g){n=g._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=xo.bind(e),n.then(e,e)),l.state.loading|=4,l.instance=g,en(g);return}g=n.ownerDocument||n,o=Sx(o),(p=Qn.get(p))&&fd(o,p),g=g.createElement("link"),en(g);var j=g;j._p=new Promise(function(R,P){j.onload=R,j.onerror=P}),cn(g,"link",o),l.instance=g}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,n),(n=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=xo.bind(e),n.addEventListener("load",l),n.addEventListener("error",l))}}var md=0;function k0(e,n){return e.stylesheets&&e.count===0&&vo(e,e.stylesheets),0<e.count||0<e.imgCount?function(l){var o=setTimeout(function(){if(e.stylesheets&&vo(e,e.stylesheets),e.unsuspend){var g=e.unsuspend;e.unsuspend=null,g()}},6e4+n);0<e.imgBytes&&md===0&&(md=62500*r0());var p=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&vo(e,e.stylesheets),e.unsuspend)){var g=e.unsuspend;e.unsuspend=null,g()}},(e.imgBytes>md?50:800)+n);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(o),clearTimeout(p)}}:null}function xo(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)vo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var go=null;function vo(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,go=new Map,n.forEach(w0,e),go=null,xo.call(e))}function w0(e,n){if(!(n.state.loading&4)){var l=go.get(e);if(l)var o=l.get(null);else{l=new Map,go.set(e,l);for(var p=e.querySelectorAll("link[data-precedence],style[data-precedence]"),g=0;g<p.length;g++){var j=p[g];(j.nodeName==="LINK"||j.getAttribute("media")!=="not all")&&(l.set(j.dataset.precedence,j),o=j)}o&&l.set(null,o)}p=n.instance,j=p.getAttribute("data-precedence"),g=l.get(j)||o,g===o&&l.set(null,p),l.set(j,p),this.count++,o=xo.bind(this),p.addEventListener("load",o),p.addEventListener("error",o),g?g.parentNode.insertBefore(p,g.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(p,e.firstChild)),n.state.loading|=4}}var Ls={$$typeof:A,Provider:null,Consumer:null,_currentValue:F,_currentValue2:F,_threadCount:0};function C0(e,n,l,o,p,g,j,R,P){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=jr(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jr(0),this.hiddenUpdates=jr(null),this.identifierPrefix=o,this.onUncaughtError=p,this.onCaughtError=g,this.onRecoverableError=j,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=P,this.incompleteTransitions=new Map}function Nx(e,n,l,o,p,g,j,R,P,J,ue,me){return e=new C0(e,n,l,j,P,J,ue,me,R),n=1,g===!0&&(n|=24),g=An(3,null,null,n),e.current=g,g.stateNode=e,n=qc(),n.refCount++,e.pooledCache=n,n.refCount++,g.memoizedState={element:o,isDehydrated:l,cache:n},Qc(g),e}function Tx(e){return e?(e=cl,e):cl}function Rx(e,n,l,o,p,g){p=Tx(p),o.context===null?o.context=p:o.pendingContext=p,o=Zr(n),o.payload={element:l},g=g===void 0?null:g,g!==null&&(o.callback=g),l=Jr(e,o,n),l!==null&&(En(l,e,n),cs(l,e,n))}function Ax(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var l=e.retryLane;e.retryLane=l!==0&&l<n?l:n}}function hd(e,n){Ax(e,n),(e=e.alternate)&&Ax(e,n)}function Lx(e){if(e.tag===13||e.tag===31){var n=Na(e,67108864);n!==null&&En(n,e,67108864),hd(e,67108864)}}function Mx(e){if(e.tag===13||e.tag===31){var n=_n();n=St(n);var l=Na(e,n);l!==null&&En(l,e,n),hd(e,n)}}var yo=!0;function E0(e,n,l,o){var p=M.T;M.T=null;var g=B.p;try{B.p=2,xd(e,n,l,o)}finally{B.p=g,M.T=p}}function N0(e,n,l,o){var p=M.T;M.T=null;var g=B.p;try{B.p=8,xd(e,n,l,o)}finally{B.p=g,M.T=p}}function xd(e,n,l,o){if(yo){var p=gd(o);if(p===null)nd(e,n,o,bo,l),Dx(e,o);else if(R0(p,e,n,l,o))o.stopPropagation();else if(Dx(e,o),n&4&&-1<T0.indexOf(e)){for(;p!==null;){var g=Za(p);if(g!==null)switch(g.tag){case 3:if(g=g.stateNode,g.current.memoizedState.isDehydrated){var j=jt(g.pendingLanes);if(j!==0){var R=g;for(R.pendingLanes|=2,R.entangledLanes|=2;j;){var P=1<<31-qt(j);R.entanglements[1]|=P,j&=~P}hr(g),(ot&6)===0&&(to=qe()+500,Cs(0))}}break;case 31:case 13:R=Na(g,2),R!==null&&En(R,g,2),ro(),hd(g,2)}if(g=gd(o),g===null&&nd(e,n,o,bo,l),g===p)break;p=g}p!==null&&o.stopPropagation()}else nd(e,n,o,null,l)}}function gd(e){return e=yc(e),vd(e)}var bo=null;function vd(e){if(bo=null,e=Qa(e),e!==null){var n=u(e);if(n===null)e=null;else{var l=n.tag;if(l===13){if(e=d(n),e!==null)return e;e=null}else if(l===31){if(e=f(n),e!==null)return e;e=null}else if(l===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return bo=e,null}function zx(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(zt()){case kt:return 2;case vt:return 8;case Zt:case ve:return 32;case rt:return 268435456;default:return 32}default:return 32}}var yd=!1,ua=null,da=null,fa=null,Ms=new Map,zs=new Map,pa=[],T0="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Dx(e,n){switch(e){case"focusin":case"focusout":ua=null;break;case"dragenter":case"dragleave":da=null;break;case"mouseover":case"mouseout":fa=null;break;case"pointerover":case"pointerout":Ms.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":zs.delete(n.pointerId)}}function Ds(e,n,l,o,p,g){return e===null||e.nativeEvent!==g?(e={blockedOn:n,domEventName:l,eventSystemFlags:o,nativeEvent:g,targetContainers:[p]},n!==null&&(n=Za(n),n!==null&&Lx(n)),e):(e.eventSystemFlags|=o,n=e.targetContainers,p!==null&&n.indexOf(p)===-1&&n.push(p),e)}function R0(e,n,l,o,p){switch(n){case"focusin":return ua=Ds(ua,e,n,l,o,p),!0;case"dragenter":return da=Ds(da,e,n,l,o,p),!0;case"mouseover":return fa=Ds(fa,e,n,l,o,p),!0;case"pointerover":var g=p.pointerId;return Ms.set(g,Ds(Ms.get(g)||null,e,n,l,o,p)),!0;case"gotpointercapture":return g=p.pointerId,zs.set(g,Ds(zs.get(g)||null,e,n,l,o,p)),!0}return!1}function _x(e){var n=Qa(e.target);if(n!==null){var l=u(n);if(l!==null){if(n=l.tag,n===13){if(n=d(l),n!==null){e.blockedOn=n,dr(e.priority,function(){Mx(l)});return}}else if(n===31){if(n=f(l),n!==null){e.blockedOn=n,dr(e.priority,function(){Mx(l)});return}}else if(n===3&&l.stateNode.current.memoizedState.isDehydrated){e.blockedOn=l.tag===3?l.stateNode.containerInfo:null;return}}}e.blockedOn=null}function jo(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var l=gd(e.nativeEvent);if(l===null){l=e.nativeEvent;var o=new l.constructor(l.type,l);vc=o,l.target.dispatchEvent(o),vc=null}else return n=Za(l),n!==null&&Lx(n),e.blockedOn=l,!1;n.shift()}return!0}function Ox(e,n,l){jo(e)&&l.delete(n)}function A0(){yd=!1,ua!==null&&jo(ua)&&(ua=null),da!==null&&jo(da)&&(da=null),fa!==null&&jo(fa)&&(fa=null),Ms.forEach(Ox),zs.forEach(Ox)}function So(e,n){e.blockedOn===n&&(e.blockedOn=null,yd||(yd=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,A0)))}var ko=null;function Bx(e){ko!==e&&(ko=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){ko===e&&(ko=null);for(var n=0;n<e.length;n+=3){var l=e[n],o=e[n+1],p=e[n+2];if(typeof o!="function"){if(vd(o||l)===null)continue;break}var g=Za(l);g!==null&&(e.splice(n,3),n-=3,gu(g,{pending:!0,data:p,method:l.method,action:o},o,p))}}))}function zl(e){function n(P){return So(P,e)}ua!==null&&So(ua,e),da!==null&&So(da,e),fa!==null&&So(fa,e),Ms.forEach(n),zs.forEach(n);for(var l=0;l<pa.length;l++){var o=pa[l];o.blockedOn===e&&(o.blockedOn=null)}for(;0<pa.length&&(l=pa[0],l.blockedOn===null);)_x(l),l.blockedOn===null&&pa.shift();if(l=(e.ownerDocument||e).$$reactFormReplay,l!=null)for(o=0;o<l.length;o+=3){var p=l[o],g=l[o+1],j=p[It]||null;if(typeof g=="function")j||Bx(l);else if(j){var R=null;if(g&&g.hasAttribute("formAction")){if(p=g,j=g[It]||null)R=j.formAction;else if(vd(p)!==null)continue}else R=j.action;typeof R=="function"?l[o+1]=R:(l.splice(o,3),o-=3),Bx(l)}}}function Ix(){function e(g){g.canIntercept&&g.info==="react-transition"&&g.intercept({handler:function(){return new Promise(function(j){return p=j})},focusReset:"manual",scroll:"manual"})}function n(){p!==null&&(p(),p=null),o||setTimeout(l,20)}function l(){if(!o&&!navigation.transition){var g=navigation.currentEntry;g&&g.url!=null&&navigation.navigate(g.url,{state:g.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var o=!1,p=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(l,100),function(){o=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),p!==null&&(p(),p=null)}}}function bd(e){this._internalRoot=e}wo.prototype.render=bd.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));var l=n.current,o=_n();Rx(l,o,e,n,null,null)},wo.prototype.unmount=bd.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Rx(e.current,2,null,e,null,null),ro(),n[Fr]=null}};function wo(e){this._internalRoot=e}wo.prototype.unstable_scheduleHydration=function(e){if(e){var n=Vr();e={blockedOn:null,target:e,priority:n};for(var l=0;l<pa.length&&n!==0&&n<pa[l].priority;l++);pa.splice(l,0,e),l===0&&_x(e)}};var $x=a.version;if($x!=="19.2.4")throw Error(i(527,$x,"19.2.4"));B.findDOMNode=function(e){var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=h(n),e=e!==null?y(e):null,e=e===null?null:e.stateNode,e};var L0={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:M,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Co=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Co.isDisabled&&Co.supportsFiber)try{Mt=Co.inject(L0),et=Co}catch{}}return Os.createRoot=function(e,n){if(!c(e))throw Error(i(299));var l=!1,o="",p=Wm,g=qm,j=Ym;return n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onUncaughtError!==void 0&&(p=n.onUncaughtError),n.onCaughtError!==void 0&&(g=n.onCaughtError),n.onRecoverableError!==void 0&&(j=n.onRecoverableError)),n=Nx(e,1,!1,null,null,l,o,null,p,g,j,Ix),e[Fr]=n.current,td(e),new bd(n)},Os.hydrateRoot=function(e,n,l){if(!c(e))throw Error(i(299));var o=!1,p="",g=Wm,j=qm,R=Ym,P=null;return l!=null&&(l.unstable_strictMode===!0&&(o=!0),l.identifierPrefix!==void 0&&(p=l.identifierPrefix),l.onUncaughtError!==void 0&&(g=l.onUncaughtError),l.onCaughtError!==void 0&&(j=l.onCaughtError),l.onRecoverableError!==void 0&&(R=l.onRecoverableError),l.formState!==void 0&&(P=l.formState)),n=Nx(e,1,!0,n,l??null,o,p,P,g,j,R,Ix),n.context=Tx(null),l=n.current,o=_n(),o=St(o),p=Zr(o),p.callback=null,Jr(l,p,o),l=o,n.current.lanes=l,rn(n,l),hr(n),e[Fr]=n.current,td(e),new wo(n)},Os.version="19.2.4",Os}var Kx;function U0(){if(Kx)return kd.exports;Kx=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(a){console.error(a)}}return t(),kd.exports=$0(),kd.exports}var H0=U0();/**
51
- * react-router v7.13.1
52
- *
53
- * Copyright (c) Remix Software Inc.
54
- *
55
- * This source code is licensed under the MIT license found in the
56
- * LICENSE.md file in the root directory of this source tree.
57
- *
58
- * @license MIT
59
- */var Xx="popstate";function Qx(t){return typeof t=="object"&&t!=null&&"pathname"in t&&"search"in t&&"hash"in t&&"state"in t&&"key"in t}function P0(t={}){function a(c,u){let{pathname:d="/",search:f="",hash:x=""}=Hl(c.location.hash.substring(1));return!d.startsWith("/")&&!d.startsWith(".")&&(d="/"+d),of("",{pathname:d,search:f,hash:x},u.state&&u.state.usr||null,u.state&&u.state.key||"default")}function s(c,u){let d=c.document.querySelector("base"),f="";if(d&&d.getAttribute("href")){let x=c.location.href,h=x.indexOf("#");f=h===-1?x:x.slice(0,h)}return f+"#"+(typeof u=="string"?u:Qs(u))}function i(c,u){ir(c.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(u)})`)}return F0(a,s,i,t)}function Qt(t,a){if(t===!1||t===null||typeof t>"u")throw new Error(a)}function ir(t,a){if(!t){typeof console<"u"&&console.warn(a);try{throw new Error(a)}catch{}}}function V0(){return Math.random().toString(36).substring(2,10)}function Zx(t,a){return{usr:t.state,key:t.key,idx:a,masked:t.unstable_mask?{pathname:t.pathname,search:t.search,hash:t.hash}:void 0}}function of(t,a,s=null,i,c){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof a=="string"?Hl(a):a,state:s,key:a&&a.key||i||V0(),unstable_mask:c}}function Qs({pathname:t="/",search:a="",hash:s=""}){return a&&a!=="?"&&(t+=a.charAt(0)==="?"?a:"?"+a),s&&s!=="#"&&(t+=s.charAt(0)==="#"?s:"#"+s),t}function Hl(t){let a={};if(t){let s=t.indexOf("#");s>=0&&(a.hash=t.substring(s),t=t.substring(0,s));let i=t.indexOf("?");i>=0&&(a.search=t.substring(i),t=t.substring(0,i)),t&&(a.pathname=t)}return a}function F0(t,a,s,i={}){let{window:c=document.defaultView,v5Compat:u=!1}=i,d=c.history,f="POP",x=null,h=y();h==null&&(h=0,d.replaceState({...d.state,idx:h},""));function y(){return(d.state||{idx:null}).idx}function v(){f="POP";let w=y(),N=w==null?null:w-h;h=w,x&&x({action:f,location:E.location,delta:N})}function b(w,N){f="PUSH";let T=Qx(w)?w:of(E.location,w,N);s&&s(T,w),h=y()+1;let A=Zx(T,h),I=E.createHref(T.unstable_mask||T);try{d.pushState(A,"",I)}catch(L){if(L instanceof DOMException&&L.name==="DataCloneError")throw L;c.location.assign(I)}u&&x&&x({action:f,location:E.location,delta:1})}function S(w,N){f="REPLACE";let T=Qx(w)?w:of(E.location,w,N);s&&s(T,w),h=y();let A=Zx(T,h),I=E.createHref(T.unstable_mask||T);d.replaceState(A,"",I),u&&x&&x({action:f,location:E.location,delta:0})}function C(w){return G0(w)}let E={get action(){return f},get location(){return t(c,d)},listen(w){if(x)throw new Error("A history only accepts one active listener");return c.addEventListener(Xx,v),x=w,()=>{c.removeEventListener(Xx,v),x=null}},createHref(w){return a(c,w)},createURL:C,encodeLocation(w){let N=C(w);return{pathname:N.pathname,search:N.search,hash:N.hash}},push:b,replace:S,go(w){return d.go(w)}};return E}function G0(t,a=!1){let s="http://localhost";typeof window<"u"&&(s=window.location.origin!=="null"?window.location.origin:window.location.href),Qt(s,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:Qs(t);return i=i.replace(/ $/,"%20"),!a&&i.startsWith("//")&&(i=s+i),new URL(i,s)}function Tv(t,a,s="/"){return W0(t,a,s,!1)}function W0(t,a,s,i){let c=typeof a=="string"?Hl(a):a,u=Hr(c.pathname||"/",s);if(u==null)return null;let d=Rv(t);q0(d);let f=null;for(let x=0;f==null&&x<d.length;++x){let h=aj(u);f=nj(d[x],h,i)}return f}function Rv(t,a=[],s=[],i="",c=!1){let u=(d,f,x=c,h)=>{let y={relativePath:h===void 0?d.path||"":h,caseSensitive:d.caseSensitive===!0,childrenIndex:f,route:d};if(y.relativePath.startsWith("/")){if(!y.relativePath.startsWith(i)&&x)return;Qt(y.relativePath.startsWith(i),`Absolute route path "${y.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),y.relativePath=y.relativePath.slice(i.length)}let v=vr([i,y.relativePath]),b=s.concat(y);d.children&&d.children.length>0&&(Qt(d.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${v}".`),Rv(d.children,a,b,v,x)),!(d.path==null&&!d.index)&&a.push({path:v,score:ej(v,d.index),routesMeta:b})};return t.forEach((d,f)=>{var x;if(d.path===""||!((x=d.path)!=null&&x.includes("?")))u(d,f);else for(let h of Av(d.path))u(d,f,!0,h)}),a}function Av(t){let a=t.split("/");if(a.length===0)return[];let[s,...i]=a,c=s.endsWith("?"),u=s.replace(/\?$/,"");if(i.length===0)return c?[u,""]:[u];let d=Av(i.join("/")),f=[];return f.push(...d.map(x=>x===""?u:[u,x].join("/"))),c&&f.push(...d),f.map(x=>t.startsWith("/")&&x===""?"/":x)}function q0(t){t.sort((a,s)=>a.score!==s.score?s.score-a.score:tj(a.routesMeta.map(i=>i.childrenIndex),s.routesMeta.map(i=>i.childrenIndex)))}var Y0=/^:[\w-]+$/,K0=3,X0=2,Q0=1,Z0=10,J0=-2,Jx=t=>t==="*";function ej(t,a){let s=t.split("/"),i=s.length;return s.some(Jx)&&(i+=J0),a&&(i+=X0),s.filter(c=>!Jx(c)).reduce((c,u)=>c+(Y0.test(u)?K0:u===""?Q0:Z0),i)}function tj(t,a){return t.length===a.length&&t.slice(0,-1).every((i,c)=>i===a[c])?t[t.length-1]-a[a.length-1]:0}function nj(t,a,s=!1){let{routesMeta:i}=t,c={},u="/",d=[];for(let f=0;f<i.length;++f){let x=i[f],h=f===i.length-1,y=u==="/"?a:a.slice(u.length)||"/",v=Wo({path:x.relativePath,caseSensitive:x.caseSensitive,end:h},y),b=x.route;if(!v&&h&&s&&!i[i.length-1].route.index&&(v=Wo({path:x.relativePath,caseSensitive:x.caseSensitive,end:!1},y)),!v)return null;Object.assign(c,v.params),d.push({params:c,pathname:vr([u,v.pathname]),pathnameBase:oj(vr([u,v.pathnameBase])),route:b}),v.pathnameBase!=="/"&&(u=vr([u,v.pathnameBase]))}return d}function Wo(t,a){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[s,i]=rj(t.path,t.caseSensitive,t.end),c=a.match(s);if(!c)return null;let u=c[0],d=u.replace(/(.)\/+$/,"$1"),f=c.slice(1);return{params:i.reduce((h,{paramName:y,isOptional:v},b)=>{if(y==="*"){let C=f[b]||"";d=u.slice(0,u.length-C.length).replace(/(.)\/+$/,"$1")}const S=f[b];return v&&!S?h[y]=void 0:h[y]=(S||"").replace(/%2F/g,"/"),h},{}),pathname:u,pathnameBase:d,pattern:t}}function rj(t,a=!1,s=!0){ir(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],c="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,f,x,h,y)=>{if(i.push({paramName:f,isOptional:x!=null}),x){let v=y.charAt(h+d.length);return v&&v!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),c+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):s?c+="\\/*$":t!==""&&t!=="/"&&(c+="(?:(?=\\/|$))"),[new RegExp(c,a?void 0:"i"),i]}function aj(t){try{return t.split("/").map(a=>decodeURIComponent(a).replace(/\//g,"%2F")).join("/")}catch(a){return ir(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${a}).`),t}}function Hr(t,a){if(a==="/")return t;if(!t.toLowerCase().startsWith(a.toLowerCase()))return null;let s=a.endsWith("/")?a.length-1:a.length,i=t.charAt(s);return i&&i!=="/"?null:t.slice(s)||"/"}var lj=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function sj(t,a="/"){let{pathname:s,search:i="",hash:c=""}=typeof t=="string"?Hl(t):t,u;return s?(s=s.replace(/\/\/+/g,"/"),s.startsWith("/")?u=eg(s.substring(1),"/"):u=eg(s,a)):u=a,{pathname:u,search:cj(i),hash:uj(c)}}function eg(t,a){let s=a.replace(/\/+$/,"").split("/");return t.split("/").forEach(c=>{c===".."?s.length>1&&s.pop():c!=="."&&s.push(c)}),s.length>1?s.join("/"):"/"}function Nd(t,a,s,i){return`Cannot include a '${t}' character in a manually specified \`to.${a}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${s}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function ij(t){return t.filter((a,s)=>s===0||a.route.path&&a.route.path.length>0)}function Lv(t){let a=ij(t);return a.map((s,i)=>i===a.length-1?s.pathname:s.pathnameBase)}function Rf(t,a,s,i=!1){let c;typeof t=="string"?c=Hl(t):(c={...t},Qt(!c.pathname||!c.pathname.includes("?"),Nd("?","pathname","search",c)),Qt(!c.pathname||!c.pathname.includes("#"),Nd("#","pathname","hash",c)),Qt(!c.search||!c.search.includes("#"),Nd("#","search","hash",c)));let u=t===""||c.pathname==="",d=u?"/":c.pathname,f;if(d==null)f=s;else{let v=a.length-1;if(!i&&d.startsWith("..")){let b=d.split("/");for(;b[0]==="..";)b.shift(),v-=1;c.pathname=b.join("/")}f=v>=0?a[v]:"/"}let x=sj(c,f),h=d&&d!=="/"&&d.endsWith("/"),y=(u||d===".")&&s.endsWith("/");return!x.pathname.endsWith("/")&&(h||y)&&(x.pathname+="/"),x}var vr=t=>t.join("/").replace(/\/\/+/g,"/"),oj=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),cj=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,uj=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t,dj=class{constructor(t,a,s,i=!1){this.status=t,this.statusText=a||"",this.internal=i,s instanceof Error?(this.data=s.toString(),this.error=s):this.data=s}};function fj(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function pj(t){return t.map(a=>a.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Mv=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function zv(t,a){let s=t;if(typeof s!="string"||!lj.test(s))return{absoluteURL:void 0,isExternal:!1,to:s};let i=s,c=!1;if(Mv)try{let u=new URL(window.location.href),d=s.startsWith("//")?new URL(u.protocol+s):new URL(s),f=Hr(d.pathname,a);d.origin===u.origin&&f!=null?s=f+d.search+d.hash:c=!0}catch{ir(!1,`<Link to="${s}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:i,isExternal:c,to:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Dv=["POST","PUT","PATCH","DELETE"];new Set(Dv);var mj=["GET",...Dv];new Set(mj);var Pl=m.createContext(null);Pl.displayName="DataRouter";var ec=m.createContext(null);ec.displayName="DataRouterState";var hj=m.createContext(!1),_v=m.createContext({isTransitioning:!1});_v.displayName="ViewTransition";var xj=m.createContext(new Map);xj.displayName="Fetchers";var gj=m.createContext(null);gj.displayName="Await";var tr=m.createContext(null);tr.displayName="Navigation";var tc=m.createContext(null);tc.displayName="Location";var Pr=m.createContext({outlet:null,matches:[],isDataRoute:!1});Pr.displayName="Route";var Af=m.createContext(null);Af.displayName="RouteError";var Ov="REACT_ROUTER_ERROR",vj="REDIRECT",yj="ROUTE_ERROR_RESPONSE";function bj(t){if(t.startsWith(`${Ov}:${vj}:{`))try{let a=JSON.parse(t.slice(28));if(typeof a=="object"&&a&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.location=="string"&&typeof a.reloadDocument=="boolean"&&typeof a.replace=="boolean")return a}catch{}}function jj(t){if(t.startsWith(`${Ov}:${yj}:{`))try{let a=JSON.parse(t.slice(40));if(typeof a=="object"&&a&&typeof a.status=="number"&&typeof a.statusText=="string")return new dj(a.status,a.statusText,a.data)}catch{}}function Sj(t,{relative:a}={}){Qt(li(),"useHref() may be used only in the context of a <Router> component.");let{basename:s,navigator:i}=m.useContext(tr),{hash:c,pathname:u,search:d}=si(t,{relative:a}),f=u;return s!=="/"&&(f=u==="/"?s:vr([s,u])),i.createHref({pathname:f,search:d,hash:c})}function li(){return m.useContext(tc)!=null}function ya(){return Qt(li(),"useLocation() may be used only in the context of a <Router> component."),m.useContext(tc).location}var Bv="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Iv(t){m.useContext(tr).static||m.useLayoutEffect(t)}function kj(){let{isDataRoute:t}=m.useContext(Pr);return t?Oj():wj()}function wj(){Qt(li(),"useNavigate() may be used only in the context of a <Router> component.");let t=m.useContext(Pl),{basename:a,navigator:s}=m.useContext(tr),{matches:i}=m.useContext(Pr),{pathname:c}=ya(),u=JSON.stringify(Lv(i)),d=m.useRef(!1);return Iv(()=>{d.current=!0}),m.useCallback((x,h={})=>{if(ir(d.current,Bv),!d.current)return;if(typeof x=="number"){s.go(x);return}let y=Rf(x,JSON.parse(u),c,h.relative==="path");t==null&&a!=="/"&&(y.pathname=y.pathname==="/"?a:vr([a,y.pathname])),(h.replace?s.replace:s.push)(y,h.state,h)},[a,s,u,c,t])}m.createContext(null);function si(t,{relative:a}={}){let{matches:s}=m.useContext(Pr),{pathname:i}=ya(),c=JSON.stringify(Lv(s));return m.useMemo(()=>Rf(t,JSON.parse(c),i,a==="path"),[t,c,i,a])}function Cj(t,a,s){Qt(li(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:i}=m.useContext(tr),{matches:c}=m.useContext(Pr),u=c[c.length-1],d=u?u.params:{},f=u?u.pathname:"/",x=u?u.pathnameBase:"/",h=u&&u.route;{let w=h&&h.path||"";Uv(f,!h||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${f}" (under <Route path="${w}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
60
-
61
- Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let y=ya(),v;v=y;let b=v.pathname||"/",S=b;if(x!=="/"){let w=x.replace(/^\//,"").split("/");S="/"+b.replace(/^\//,"").split("/").slice(w.length).join("/")}let C=Tv(t,{pathname:S});return ir(h||C!=null,`No routes matched location "${v.pathname}${v.search}${v.hash}" `),ir(C==null||C[C.length-1].route.element!==void 0||C[C.length-1].route.Component!==void 0||C[C.length-1].route.lazy!==void 0,`Matched leaf route at location "${v.pathname}${v.search}${v.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),Aj(C&&C.map(w=>Object.assign({},w,{params:Object.assign({},d,w.params),pathname:vr([x,i.encodeLocation?i.encodeLocation(w.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?x:vr([x,i.encodeLocation?i.encodeLocation(w.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathnameBase])})),c,s)}function Ej(){let t=_j(),a=fj(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),s=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",c={padding:"0.5rem",backgroundColor:i},u={padding:"2px 4px",backgroundColor:i},d=null;return console.error("Error handled by React Router default ErrorBoundary:",t),d=m.createElement(m.Fragment,null,m.createElement("p",null,"💿 Hey developer 👋"),m.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",m.createElement("code",{style:u},"ErrorBoundary")," or"," ",m.createElement("code",{style:u},"errorElement")," prop on your route.")),m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},a),s?m.createElement("pre",{style:c},s):null,d)}var Nj=m.createElement(Ej,null),$v=class extends m.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,a){return a.location!==t.location||a.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:a.error,location:a.location,revalidation:t.revalidation||a.revalidation}}componentDidCatch(t,a){this.props.onError?this.props.onError(t,a):console.error("React Router caught the following error during render",t)}render(){let t=this.state.error;if(this.context&&typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){const s=jj(t.digest);s&&(t=s)}let a=t!==void 0?m.createElement(Pr.Provider,{value:this.props.routeContext},m.createElement(Af.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?m.createElement(Tj,{error:t},a):a}};$v.contextType=hj;var Td=new WeakMap;function Tj({children:t,error:a}){let{basename:s}=m.useContext(tr);if(typeof a=="object"&&a&&"digest"in a&&typeof a.digest=="string"){let i=bj(a.digest);if(i){let c=Td.get(a);if(c)throw c;let u=zv(i.location,s);if(Mv&&!Td.get(a))if(u.isExternal||i.reloadDocument)window.location.href=u.absoluteURL||u.to;else{const d=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(u.to,{replace:i.replace}));throw Td.set(a,d),d}return m.createElement("meta",{httpEquiv:"refresh",content:`0;url=${u.absoluteURL||u.to}`})}}return t}function Rj({routeContext:t,match:a,children:s}){let i=m.useContext(Pl);return i&&i.static&&i.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=a.route.id),m.createElement(Pr.Provider,{value:t},s)}function Aj(t,a=[],s){let i=s==null?void 0:s.state;if(t==null){if(!i)return null;if(i.errors)t=i.matches;else if(a.length===0&&!i.initialized&&i.matches.length>0)t=i.matches;else return null}let c=t,u=i==null?void 0:i.errors;if(u!=null){let y=c.findIndex(v=>v.route.id&&(u==null?void 0:u[v.route.id])!==void 0);Qt(y>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(u).join(",")}`),c=c.slice(0,Math.min(c.length,y+1))}let d=!1,f=-1;if(s&&i){d=i.renderFallback;for(let y=0;y<c.length;y++){let v=c[y];if((v.route.HydrateFallback||v.route.hydrateFallbackElement)&&(f=y),v.route.id){let{loaderData:b,errors:S}=i,C=v.route.loader&&!b.hasOwnProperty(v.route.id)&&(!S||S[v.route.id]===void 0);if(v.route.lazy||C){s.isStatic&&(d=!0),f>=0?c=c.slice(0,f+1):c=[c[0]];break}}}}let x=s==null?void 0:s.onError,h=i&&x?(y,v)=>{var b,S;x(y,{location:i.location,params:((S=(b=i.matches)==null?void 0:b[0])==null?void 0:S.params)??{},unstable_pattern:pj(i.matches),errorInfo:v})}:void 0;return c.reduceRight((y,v,b)=>{let S,C=!1,E=null,w=null;i&&(S=u&&v.route.id?u[v.route.id]:void 0,E=v.route.errorElement||Nj,d&&(f<0&&b===0?(Uv("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),C=!0,w=null):f===b&&(C=!0,w=v.route.hydrateFallbackElement||null)));let N=a.concat(c.slice(0,b+1)),T=()=>{let A;return S?A=E:C?A=w:v.route.Component?A=m.createElement(v.route.Component,null):v.route.element?A=v.route.element:A=y,m.createElement(Rj,{match:v,routeContext:{outlet:y,matches:N,isDataRoute:i!=null},children:A})};return i&&(v.route.ErrorBoundary||v.route.errorElement||b===0)?m.createElement($v,{location:i.location,revalidation:i.revalidation,component:E,error:S,children:T(),routeContext:{outlet:null,matches:N,isDataRoute:!0},onError:h}):T()},null)}function Lf(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Lj(t){let a=m.useContext(Pl);return Qt(a,Lf(t)),a}function Mj(t){let a=m.useContext(ec);return Qt(a,Lf(t)),a}function zj(t){let a=m.useContext(Pr);return Qt(a,Lf(t)),a}function Mf(t){let a=zj(t),s=a.matches[a.matches.length-1];return Qt(s.route.id,`${t} can only be used on routes that contain a unique "id"`),s.route.id}function Dj(){return Mf("useRouteId")}function _j(){var i;let t=m.useContext(Af),a=Mj("useRouteError"),s=Mf("useRouteError");return t!==void 0?t:(i=a.errors)==null?void 0:i[s]}function Oj(){let{router:t}=Lj("useNavigate"),a=Mf("useNavigate"),s=m.useRef(!1);return Iv(()=>{s.current=!0}),m.useCallback(async(c,u={})=>{ir(s.current,Bv),s.current&&(typeof c=="number"?await t.navigate(c):await t.navigate(c,{fromRouteId:a,...u}))},[t,a])}var tg={};function Uv(t,a,s){!a&&!tg[t]&&(tg[t]=!0,ir(!1,s))}m.memo(Bj);function Bj({routes:t,future:a,state:s,isStatic:i,onError:c}){return Cj(t,void 0,{state:s,isStatic:i,onError:c})}function Ij({basename:t="/",children:a=null,location:s,navigationType:i="POP",navigator:c,static:u=!1,unstable_useTransitions:d}){Qt(!li(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let f=t.replace(/^\/*/,"/"),x=m.useMemo(()=>({basename:f,navigator:c,static:u,unstable_useTransitions:d,future:{}}),[f,c,u,d]);typeof s=="string"&&(s=Hl(s));let{pathname:h="/",search:y="",hash:v="",state:b=null,key:S="default",unstable_mask:C}=s,E=m.useMemo(()=>{let w=Hr(h,f);return w==null?null:{location:{pathname:w,search:y,hash:v,state:b,key:S,unstable_mask:C},navigationType:i}},[f,h,y,v,b,S,i,C]);return ir(E!=null,`<Router basename="${f}"> is not able to match the URL "${h}${y}${v}" because it does not start with the basename, so the <Router> won't render anything.`),E==null?null:m.createElement(tr.Provider,{value:x},m.createElement(tc.Provider,{children:a,value:E}))}var $o="get",Uo="application/x-www-form-urlencoded";function nc(t){return typeof HTMLElement<"u"&&t instanceof HTMLElement}function $j(t){return nc(t)&&t.tagName.toLowerCase()==="button"}function Uj(t){return nc(t)&&t.tagName.toLowerCase()==="form"}function Hj(t){return nc(t)&&t.tagName.toLowerCase()==="input"}function Pj(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Vj(t,a){return t.button===0&&(!a||a==="_self")&&!Pj(t)}var Eo=null;function Fj(){if(Eo===null)try{new FormData(document.createElement("form"),0),Eo=!1}catch{Eo=!0}return Eo}var Gj=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Rd(t){return t!=null&&!Gj.has(t)?(ir(!1,`"${t}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Uo}"`),null):t}function Wj(t,a){let s,i,c,u,d;if(Uj(t)){let f=t.getAttribute("action");i=f?Hr(f,a):null,s=t.getAttribute("method")||$o,c=Rd(t.getAttribute("enctype"))||Uo,u=new FormData(t)}else if($j(t)||Hj(t)&&(t.type==="submit"||t.type==="image")){let f=t.form;if(f==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let x=t.getAttribute("formaction")||f.getAttribute("action");if(i=x?Hr(x,a):null,s=t.getAttribute("formmethod")||f.getAttribute("method")||$o,c=Rd(t.getAttribute("formenctype"))||Rd(f.getAttribute("enctype"))||Uo,u=new FormData(f,t),!Fj()){let{name:h,type:y,value:v}=t;if(y==="image"){let b=h?`${h}.`:"";u.append(`${b}x`,"0"),u.append(`${b}y`,"0")}else h&&u.append(h,v)}}else{if(nc(t))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');s=$o,i=null,c=Uo,d=t}return u&&c==="text/plain"&&(d=u,u=void 0),{action:i,method:s.toLowerCase(),encType:c,formData:u,body:d}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function zf(t,a){if(t===!1||t===null||typeof t>"u")throw new Error(a)}function qj(t,a,s,i){let c=typeof t=="string"?new URL(t,typeof window>"u"?"server://singlefetch/":window.location.origin):t;return s?c.pathname.endsWith("/")?c.pathname=`${c.pathname}_.${i}`:c.pathname=`${c.pathname}.${i}`:c.pathname==="/"?c.pathname=`_root.${i}`:a&&Hr(c.pathname,a)==="/"?c.pathname=`${a.replace(/\/$/,"")}/_root.${i}`:c.pathname=`${c.pathname.replace(/\/$/,"")}.${i}`,c}async function Yj(t,a){if(t.id in a)return a[t.id];try{let s=await import(t.module);return a[t.id]=s,s}catch(s){return console.error(`Error loading route module \`${t.module}\`, reloading page...`),console.error(s),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Kj(t){return t==null?!1:t.href==null?t.rel==="preload"&&typeof t.imageSrcSet=="string"&&typeof t.imageSizes=="string":typeof t.rel=="string"&&typeof t.href=="string"}async function Xj(t,a,s){let i=await Promise.all(t.map(async c=>{let u=a.routes[c.route.id];if(u){let d=await Yj(u,s);return d.links?d.links():[]}return[]}));return eS(i.flat(1).filter(Kj).filter(c=>c.rel==="stylesheet"||c.rel==="preload").map(c=>c.rel==="stylesheet"?{...c,rel:"prefetch",as:"style"}:{...c,rel:"prefetch"}))}function ng(t,a,s,i,c,u){let d=(x,h)=>s[h]?x.route.id!==s[h].route.id:!0,f=(x,h)=>{var y;return s[h].pathname!==x.pathname||((y=s[h].route.path)==null?void 0:y.endsWith("*"))&&s[h].params["*"]!==x.params["*"]};return u==="assets"?a.filter((x,h)=>d(x,h)||f(x,h)):u==="data"?a.filter((x,h)=>{var v;let y=i.routes[x.route.id];if(!y||!y.hasLoader)return!1;if(d(x,h)||f(x,h))return!0;if(x.route.shouldRevalidate){let b=x.route.shouldRevalidate({currentUrl:new URL(c.pathname+c.search+c.hash,window.origin),currentParams:((v=s[0])==null?void 0:v.params)||{},nextUrl:new URL(t,window.origin),nextParams:x.params,defaultShouldRevalidate:!0});if(typeof b=="boolean")return b}return!0}):[]}function Qj(t,a,{includeHydrateFallback:s}={}){return Zj(t.map(i=>{let c=a.routes[i.route.id];if(!c)return[];let u=[c.module];return c.clientActionModule&&(u=u.concat(c.clientActionModule)),c.clientLoaderModule&&(u=u.concat(c.clientLoaderModule)),s&&c.hydrateFallbackModule&&(u=u.concat(c.hydrateFallbackModule)),c.imports&&(u=u.concat(c.imports)),u}).flat(1))}function Zj(t){return[...new Set(t)]}function Jj(t){let a={},s=Object.keys(t).sort();for(let i of s)a[i]=t[i];return a}function eS(t,a){let s=new Set;return new Set(a),t.reduce((i,c)=>{let u=JSON.stringify(Jj(c));return s.has(u)||(s.add(u),i.push({key:u,link:c})),i},[])}function Hv(){let t=m.useContext(Pl);return zf(t,"You must render this element inside a <DataRouterContext.Provider> element"),t}function tS(){let t=m.useContext(ec);return zf(t,"You must render this element inside a <DataRouterStateContext.Provider> element"),t}var Df=m.createContext(void 0);Df.displayName="FrameworkContext";function Pv(){let t=m.useContext(Df);return zf(t,"You must render this element inside a <HydratedRouter> element"),t}function nS(t,a){let s=m.useContext(Df),[i,c]=m.useState(!1),[u,d]=m.useState(!1),{onFocus:f,onBlur:x,onMouseEnter:h,onMouseLeave:y,onTouchStart:v}=a,b=m.useRef(null);m.useEffect(()=>{if(t==="render"&&d(!0),t==="viewport"){let E=N=>{N.forEach(T=>{d(T.isIntersecting)})},w=new IntersectionObserver(E,{threshold:.5});return b.current&&w.observe(b.current),()=>{w.disconnect()}}},[t]),m.useEffect(()=>{if(i){let E=setTimeout(()=>{d(!0)},100);return()=>{clearTimeout(E)}}},[i]);let S=()=>{c(!0)},C=()=>{c(!1),d(!1)};return s?t!=="intent"?[u,b,{}]:[u,b,{onFocus:Bs(f,S),onBlur:Bs(x,C),onMouseEnter:Bs(h,S),onMouseLeave:Bs(y,C),onTouchStart:Bs(v,S)}]:[!1,b,{}]}function Bs(t,a){return s=>{t&&t(s),s.defaultPrevented||a(s)}}function rS({page:t,...a}){let{router:s}=Hv(),i=m.useMemo(()=>Tv(s.routes,t,s.basename),[s.routes,t,s.basename]);return i?m.createElement(lS,{page:t,matches:i,...a}):null}function aS(t){let{manifest:a,routeModules:s}=Pv(),[i,c]=m.useState([]);return m.useEffect(()=>{let u=!1;return Xj(t,a,s).then(d=>{u||c(d)}),()=>{u=!0}},[t,a,s]),i}function lS({page:t,matches:a,...s}){let i=ya(),{future:c,manifest:u,routeModules:d}=Pv(),{basename:f}=Hv(),{loaderData:x,matches:h}=tS(),y=m.useMemo(()=>ng(t,a,h,u,i,"data"),[t,a,h,u,i]),v=m.useMemo(()=>ng(t,a,h,u,i,"assets"),[t,a,h,u,i]),b=m.useMemo(()=>{if(t===i.pathname+i.search+i.hash)return[];let E=new Set,w=!1;if(a.forEach(T=>{var I;let A=u.routes[T.route.id];!A||!A.hasLoader||(!y.some(L=>L.route.id===T.route.id)&&T.route.id in x&&((I=d[T.route.id])!=null&&I.shouldRevalidate)||A.hasClientLoader?w=!0:E.add(T.route.id))}),E.size===0)return[];let N=qj(t,f,c.unstable_trailingSlashAwareDataRequests,"data");return w&&E.size>0&&N.searchParams.set("_routes",a.filter(T=>E.has(T.route.id)).map(T=>T.route.id).join(",")),[N.pathname+N.search]},[f,c.unstable_trailingSlashAwareDataRequests,x,i,u,y,a,t,d]),S=m.useMemo(()=>Qj(v,u),[v,u]),C=aS(v);return m.createElement(m.Fragment,null,b.map(E=>m.createElement("link",{key:E,rel:"prefetch",as:"fetch",href:E,...s})),S.map(E=>m.createElement("link",{key:E,rel:"modulepreload",href:E,...s})),C.map(({key:E,link:w})=>m.createElement("link",{key:E,nonce:s.nonce,...w,crossOrigin:w.crossOrigin??s.crossOrigin})))}function sS(...t){return a=>{t.forEach(s=>{typeof s=="function"?s(a):s!=null&&(s.current=a)})}}var iS=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{iS&&(window.__reactRouterVersion="7.13.1")}catch{}function oS({basename:t,children:a,unstable_useTransitions:s,window:i}){let c=m.useRef();c.current==null&&(c.current=P0({window:i,v5Compat:!0}));let u=c.current,[d,f]=m.useState({action:u.action,location:u.location}),x=m.useCallback(h=>{s===!1?f(h):m.startTransition(()=>f(h))},[s]);return m.useLayoutEffect(()=>u.listen(x),[u,x]),m.createElement(Ij,{basename:t,children:a,location:d.location,navigationType:d.action,navigator:u,unstable_useTransitions:s})}var Vv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Fv=m.forwardRef(function({onClick:a,discover:s="render",prefetch:i="none",relative:c,reloadDocument:u,replace:d,unstable_mask:f,state:x,target:h,to:y,preventScrollReset:v,viewTransition:b,unstable_defaultShouldRevalidate:S,...C},E){let{basename:w,navigator:N,unstable_useTransitions:T}=m.useContext(tr),A=typeof y=="string"&&Vv.test(y),I=zv(y,w);y=I.to;let L=Sj(y,{relative:c}),H=ya(),k=null;if(f){let U=Rf(f,[],H.unstable_mask?H.unstable_mask.pathname:"/",!0);w!=="/"&&(U.pathname=U.pathname==="/"?w:vr([w,U.pathname])),k=N.createHref(U)}let[O,z,_]=nS(i,C),$=fS(y,{replace:d,unstable_mask:f,state:x,target:h,preventScrollReset:v,relative:c,viewTransition:b,unstable_defaultShouldRevalidate:S,unstable_useTransitions:T});function q(U){a&&a(U),U.defaultPrevented||$(U)}let K=!(I.isExternal||u),Q=m.createElement("a",{...C,..._,href:(K?k:void 0)||I.absoluteURL||L,onClick:K?q:a,ref:sS(E,z),target:h,"data-discover":!A&&s==="render"?"true":void 0});return O&&!A?m.createElement(m.Fragment,null,Q,m.createElement(rS,{page:L})):Q});Fv.displayName="Link";var cS=m.forwardRef(function({"aria-current":a="page",caseSensitive:s=!1,className:i="",end:c=!1,style:u,to:d,viewTransition:f,children:x,...h},y){let v=si(d,{relative:h.relative}),b=ya(),S=m.useContext(ec),{navigator:C,basename:E}=m.useContext(tr),w=S!=null&&gS(v)&&f===!0,N=C.encodeLocation?C.encodeLocation(v).pathname:v.pathname,T=b.pathname,A=S&&S.navigation&&S.navigation.location?S.navigation.location.pathname:null;s||(T=T.toLowerCase(),A=A?A.toLowerCase():null,N=N.toLowerCase()),A&&E&&(A=Hr(A,E)||A);const I=N!=="/"&&N.endsWith("/")?N.length-1:N.length;let L=T===N||!c&&T.startsWith(N)&&T.charAt(I)==="/",H=A!=null&&(A===N||!c&&A.startsWith(N)&&A.charAt(N.length)==="/"),k={isActive:L,isPending:H,isTransitioning:w},O=L?a:void 0,z;typeof i=="function"?z=i(k):z=[i,L?"active":null,H?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let _=typeof u=="function"?u(k):u;return m.createElement(Fv,{...h,"aria-current":O,className:z,ref:y,style:_,to:d,viewTransition:f},typeof x=="function"?x(k):x)});cS.displayName="NavLink";var uS=m.forwardRef(({discover:t="render",fetcherKey:a,navigate:s,reloadDocument:i,replace:c,state:u,method:d=$o,action:f,onSubmit:x,relative:h,preventScrollReset:y,viewTransition:v,unstable_defaultShouldRevalidate:b,...S},C)=>{let{unstable_useTransitions:E}=m.useContext(tr),w=hS(),N=xS(f,{relative:h}),T=d.toLowerCase()==="get"?"get":"post",A=typeof f=="string"&&Vv.test(f),I=L=>{if(x&&x(L),L.defaultPrevented)return;L.preventDefault();let H=L.nativeEvent.submitter,k=(H==null?void 0:H.getAttribute("formmethod"))||d,O=()=>w(H||L.currentTarget,{fetcherKey:a,method:k,navigate:s,replace:c,state:u,relative:h,preventScrollReset:y,viewTransition:v,unstable_defaultShouldRevalidate:b});E&&s!==!1?m.startTransition(()=>O()):O()};return m.createElement("form",{ref:C,method:T,action:N,onSubmit:i?x:I,...S,"data-discover":!A&&t==="render"?"true":void 0})});uS.displayName="Form";function dS(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Gv(t){let a=m.useContext(Pl);return Qt(a,dS(t)),a}function fS(t,{target:a,replace:s,unstable_mask:i,state:c,preventScrollReset:u,relative:d,viewTransition:f,unstable_defaultShouldRevalidate:x,unstable_useTransitions:h}={}){let y=kj(),v=ya(),b=si(t,{relative:d});return m.useCallback(S=>{if(Vj(S,a)){S.preventDefault();let C=s!==void 0?s:Qs(v)===Qs(b),E=()=>y(t,{replace:C,unstable_mask:i,state:c,preventScrollReset:u,relative:d,viewTransition:f,unstable_defaultShouldRevalidate:x});h?m.startTransition(()=>E()):E()}},[v,y,b,s,i,c,a,t,u,d,f,x,h])}var pS=0,mS=()=>`__${String(++pS)}__`;function hS(){let{router:t}=Gv("useSubmit"),{basename:a}=m.useContext(tr),s=Dj(),i=t.fetch,c=t.navigate;return m.useCallback(async(u,d={})=>{let{action:f,method:x,encType:h,formData:y,body:v}=Wj(u,a);if(d.navigate===!1){let b=d.fetcherKey||mS();await i(b,s,d.action||f,{unstable_defaultShouldRevalidate:d.unstable_defaultShouldRevalidate,preventScrollReset:d.preventScrollReset,formData:y,body:v,formMethod:d.method||x,formEncType:d.encType||h,flushSync:d.flushSync})}else await c(d.action||f,{unstable_defaultShouldRevalidate:d.unstable_defaultShouldRevalidate,preventScrollReset:d.preventScrollReset,formData:y,body:v,formMethod:d.method||x,formEncType:d.encType||h,replace:d.replace,state:d.state,fromRouteId:s,flushSync:d.flushSync,viewTransition:d.viewTransition})},[i,c,a,s])}function xS(t,{relative:a}={}){let{basename:s}=m.useContext(tr),i=m.useContext(Pr);Qt(i,"useFormAction must be used inside a RouteContext");let[c]=i.matches.slice(-1),u={...si(t||".",{relative:a})},d=ya();if(t==null){u.search=d.search;let f=new URLSearchParams(u.search),x=f.getAll("index");if(x.some(y=>y==="")){f.delete("index"),x.filter(v=>v).forEach(v=>f.append("index",v));let y=f.toString();u.search=y?`?${y}`:""}}return(!t||t===".")&&c.route.index&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),s!=="/"&&(u.pathname=u.pathname==="/"?s:vr([s,u.pathname])),Qs(u)}function gS(t,{relative:a}={}){let s=m.useContext(_v);Qt(s!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=Gv("useViewTransitionState"),c=si(t,{relative:a});if(!s.isTransitioning)return!1;let u=Hr(s.currentLocation.pathname,i)||s.currentLocation.pathname,d=Hr(s.nextLocation.pathname,i)||s.nextLocation.pathname;return Wo(c.pathname,d)!=null||Wo(c.pathname,u)!=null}var rc=Nv();const vS=Ev(rc),yS="modulepreload",bS=function(t){return"/"+t},rg={},Vl=function(a,s,i){let c=Promise.resolve();if(s&&s.length>0){let d=function(h){return Promise.all(h.map(y=>Promise.resolve(y).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),x=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));c=d(s.map(h=>{if(h=bS(h),h in rg)return;rg[h]=!0;const y=h.endsWith(".css"),v=y?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${v}`))return;const b=document.createElement("link");if(b.rel=y?"stylesheet":yS,y||(b.as="script"),b.crossOrigin="",b.href=h,x&&b.setAttribute("nonce",x),document.head.appendChild(b),y)return new Promise((S,C)=>{b.addEventListener("load",S),b.addEventListener("error",()=>C(new Error(`Unable to preload CSS for ${h}`)))})}))}function u(d){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=d,window.dispatchEvent(f),!f.defaultPrevented)throw d}return c.then(d=>{for(const f of d||[])f.status==="rejected"&&u(f.reason);return a().catch(u)})},jS=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function No(t){if(typeof t!="string")return null;const a=t.trim();return a===""||!jS.test(a)||a==="0.0.0"?null:a}function Wv(t){if(t.preferInstalled){const c=No(t.installedCurrentVersion);if(c)return{version:c,versionSource:"registry"}}const a=No(t.frontmatterVersion);if(a)return{version:a,versionSource:"frontmatter"};const s=No(t.registryCurrentVersion);if(s)return{version:s,versionSource:"registry"};const i=No(t.pluginVersion);return i?{version:i,versionSource:"plugin"}:{version:"1.0.0",versionSource:"default"}}const ag={own:"authoring-project",installed:"available-project",global:"available-personal"},cf=new Set(["available-project","available-personal","available-plugin","authoring-project","authoring-plugin"]);function SS(t){if(typeof t=="string"){if(cf.has(t))return t;if(Object.prototype.hasOwnProperty.call(ag,t))return ag[t]}return"authoring-project"}function kS(t){return t.startsWith("available-")?"available":"authoring"}function wS(t){const a=t.indexOf("-");return t.slice(a+1)}const Zn="";class Ga extends Error{constructor(a,s,i){super(a),this.name="ApiError",this.status=s,this.details=i}}async function _e(t,a){const s=await fetch(`${Zn}${t}`,a);if(!s.ok){const i=await s.json().catch(()=>({error:s.statusText})),c=i&&typeof i=="object"?i:void 0;throw new Ga((i==null?void 0:i.error)||`HTTP ${s.status}`,s.status,c)}return s.json()}async function lg(t,a){const s=await fetch(t,a);return s.status>=502&&s.status<=504?(await new Promise(i=>setTimeout(i,250)),fetch(t,a)):s}function nn(t){return typeof t=="string"&&t.length>0?t:null}function CS(t){return typeof t=="number"&&Number.isFinite(t)?t:null}function Ad(t){if(!Array.isArray(t))return null;const a=t.filter(s=>typeof s=="string"&&s.length>0);return a.length>0?a:null}function ES(t){const a=t??{};let s;a.origin==="source"||a.origin==="installed"?s=a.origin:(s="source",console.warn(`[api.getSkills] skill ${String(a.plugin)}/${String(a.skill)} has invalid origin=${JSON.stringify(a.origin)}; defaulting to 'source'`));let i;a.scope==="own"||a.scope==="installed"||a.scope==="global"?i=a.scope:i=s==="installed"?"installed":"own";let c;a.installMethod==="authored"||a.installMethod==="copied"||a.installMethod==="symlinked"?c=a.installMethod:c=i==="own"?"authored":"copied";const u=typeof a.scopeV2=="string"&&cf.has(a.scopeV2)?a.scopeV2:SS(a.scope),d=kS(u),f=wS(u),x=typeof a.precedenceRank=="number"?a.precedenceRank:void 0;let h;a.shadowedBy===null?h=null:typeof a.shadowedBy=="string"&&cf.has(a.shadowedBy)?h=a.shadowedBy:h=void 0;const y={plugin:typeof a.plugin=="string"?a.plugin:"",skill:typeof a.skill=="string"?a.skill:"",dir:typeof a.dir=="string"?a.dir:"",hasEvals:!!a.hasEvals,hasBenchmark:!!a.hasBenchmark,evalCount:typeof a.evalCount=="number"?a.evalCount:0,assertionCount:typeof a.assertionCount=="number"?a.assertionCount:0,benchmarkStatus:a.benchmarkStatus==="pass"||a.benchmarkStatus==="fail"||a.benchmarkStatus==="pending"||a.benchmarkStatus==="stale"||a.benchmarkStatus==="missing"?a.benchmarkStatus:"missing",lastBenchmark:typeof a.lastBenchmark=="string"?a.lastBenchmark:null,origin:s,scope:i,isSymlink:typeof a.isSymlink=="boolean"?a.isSymlink:!1,symlinkTarget:nn(a.symlinkTarget),installMethod:c,sourcePath:nn(a.sourcePath),scopeV2:u,group:d,source:f,pluginName:nn(a.pluginName),pluginNamespace:nn(a.pluginNamespace),pluginMarketplace:nn(a.pluginMarketplace),pluginManifestPath:nn(a.pluginManifestPath),pluginVersion:nn(a.pluginVersion),precedenceRank:x,shadowedBy:h,description:nn(a.description),version:nn(a.version),category:nn(a.category),author:nn(a.author),license:nn(a.license),homepage:nn(a.homepage),repoUrl:nn(a.repoUrl),skillPath:nn(a.skillPath),tags:Ad(a.tags),deps:Ad(a.deps),mcpDeps:Ad(a.mcpDeps),entryPoint:nn(a.entryPoint),lastModified:nn(a.lastModified),sizeBytes:CS(a.sizeBytes),sourceAgent:nn(a.sourceAgent)};if(a.provenance&&typeof a.provenance=="object"){const b=a.provenance;(b.promotedFrom==="installed"||b.promotedFrom==="global")&&typeof b.sourcePath=="string"&&typeof b.promotedAt=="number"?y.provenance={promotedFrom:b.promotedFrom,sourcePath:b.sourcePath,promotedAt:b.promotedAt,sourceSkillVersion:typeof b.sourceSkillVersion=="string"?b.sourceSkillVersion:void 0}:y.provenance=null}else a.provenance===null&&(y.provenance=null);typeof a.updateAvailable=="boolean"&&(y.updateAvailable=a.updateAvailable),typeof a.currentVersion=="string"&&(y.currentVersion=a.currentVersion),typeof a.latestVersion=="string"&&(y.latestVersion=a.latestVersion),typeof a.pinnedVersion=="string"&&(y.pinnedVersion=a.pinnedVersion);const v=Wv({frontmatterVersion:y.version??null,registryCurrentVersion:y.currentVersion??null,pluginVersion:y.pluginVersion??null,installedCurrentVersion:y.currentVersion??null,preferInstalled:y.origin==="installed"});return y.resolvedVersion=v.version,y.versionSource=v.versionSource,y}const ke={getConfig(){return _e("/api/config")},setConfig(t,a){return _e("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,model:a})})},async getSkills(t){const a=new URLSearchParams;t!=null&&t.scope&&a.set("scope",t.scope),t!=null&&t.agent&&a.set("agent",t.agent);const s=a.toString(),i=await _e(`/api/skills${s?"?"+s:""}`);return Array.isArray(i)?i.map(ES):[]},async convertToPlugin(t){return _e("/api/authoring/convert-to-plugin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})},getAgents(){return _e("/api/agents")},getSkillDetail(t,a){return _e(`/api/skills/${t}/${a}`)},async getEvals(t,a){const s=await _e(`/api/skills/${t}/${a}/evals`);if(s&&typeof s=="object"&&"exists"in s){if(s.exists===!1)return{skill_name:a,evals:[]};const{exists:i,...c}=s;return c}return s},getEvalsEnvelope(t,a){return _e(`/api/skills/${t}/${a}/evals`)},getActivationHistoryEnvelope(t,a){return _e(`/api/skills/${t}/${a}/activation-history`)},saveEvals(t,a,s){return _e(`/api/skills/${t}/${a}/evals`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})},generateEvals(t,a){return _e(`/api/skills/${t}/${a}/generate-evals`,{method:"POST"})},async getLatestBenchmark(t,a){const s=await fetch(`${Zn}/api/skills/${t}/${a}/benchmark/latest`);if(!s.ok){const i=await s.json().catch(()=>({error:s.statusText}));throw new Ga(i.error||`HTTP ${s.status}`,s.status)}return s.json()},getHistory(t,a,s){const i=new URLSearchParams;s!=null&&s.model&&i.set("model",s.model),s!=null&&s.type&&i.set("type",s.type),s!=null&&s.from&&i.set("from",s.from),s!=null&&s.to&&i.set("to",s.to);const c=i.toString();return _e(`/api/skills/${t}/${a}/history${c?"?"+c:""}`)},getHistoryEntry(t,a,s){return _e(`/api/skills/${t}/${a}/history/${encodeURIComponent(s)}`)},compareRuns(t,a,s,i){return _e(`/api/skills/${t}/${a}/history-compare?a=${encodeURIComponent(s)}&b=${encodeURIComponent(i)}`)},getCaseHistory(t,a,s,i){const c=new URLSearchParams;i&&c.set("model",i);const u=c.toString();return _e(`/api/skills/${t}/${a}/history/case/${s}${u?"?"+u:""}`)},deleteHistoryEntry(t,a,s){return _e(`/api/skills/${t}/${a}/history/${encodeURIComponent(s)}`,{method:"DELETE"})},deleteSkill(t,a){return _e(`/api/skills/${t}/${a}`,{method:"DELETE"})},uninstallSkill(t,a){return _e(`/api/skills/${t}/${a}/uninstall`,{method:"POST"})},improveSkill(t,a,s){return _e(`/api/skills/${t}/${a}/improve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})},instructEdit(t,a,s){return _e(`/api/skills/${t}/${a}/improve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:"instruct",...s})})},applyImprovement(t,a,s){return _e(`/api/skills/${t}/${a}/apply-improvement`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:s})})},getStats(t,a){return _e(`/api/skills/${t}/${a}/stats`)},getDependencies(t,a){return _e(`/api/skills/${t}/${a}/dependencies`)},getProjectLayout(){return _e("/api/project-layout")},getProjectGitHubStatus(){return _e("/api/project/github-status")},createSkill(t){return _e("/api/skills/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})},detectEngines(){return _e("/api/studio/detect-engines")},saveDraft(t){return _e("/api/skills/save-draft",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})},getSkillCreatorStatus(){return _e("/api/skill-creator-status")},generateSkill(t){return _e("/api/skills/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})},getSkillFiles(t,a){return _e(`/api/skills/${t}/${a}/files`)},getSkillFile(t,a,s){return _e(`/api/skills/${t}/${a}/file?path=${encodeURIComponent(s)}`)},saveSkillFile(t,a,s,i){return _e(`/api/skills/${t}/${a}/file`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:s,content:i})})},getLeaderboard(t,a){return _e(`/api/skills/${t}/${a}/leaderboard`)},getLeaderboardEntry(t,a,s){return _e(`/api/skills/${t}/${a}/leaderboard/${encodeURIComponent(s)}`)},startSweep(t,a,s){const i=`${Zn}/api/skills/${t}/${a}/sweep`,c=new EventSource(i);return fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(s)}),c},getCredentials(t,a){return _e(`/api/credentials/${t}/${a}`)},setCredential(t,a,s,i){return _e(`/api/credentials/${t}/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s,value:i})})},getParams(t,a){return _e(`/api/credentials/${t}/${a}/params`)},getParamsRevealed(t,a,s){const i=s?`reveal=true&key=${encodeURIComponent(s)}`:"reveal=true";return _e(`/api/credentials/${t}/${a}/params?${i}`)},searchModels(){return _e("/api/openrouter/models")},async getSkillVersions(t,a){const s=await _e(`/api/skills/${t}/${a}/versions`);return Array.isArray(s)?s:Array.isArray(s.versions)?s.versions:[]},getSkillVersionsEnvelope(t,a){return _e(`/api/skills/${t}/${a}/versions`)},getVersionDiff(t,a,s,i){return _e(`/api/skills/${t}/${a}/versions/diff?from=${s}&to=${i}`)},startBatchUpdate(t){const a=`${Zn}/api/skills/batch-update`,s=new EventSource(a);return fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({skills:t})}),s},startSkillUpdate(t,a){const s=`${Zn}/api/skills/${t}/${a}/update`,i=new EventSource(s);return fetch(s,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"}}),i},async postSkillUpdate(t,a,s){let i,c;if(s&&typeof s.aborted=="boolean")i=s;else if(s&&typeof s=="object"){const y=s;i=y.signal,c=y.agentId}const u=c?`?agent=${encodeURIComponent(c)}`:"",d=`${Zn}/api/skills/${t}/${a}/update${u}`,f=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},signal:i});let x,h="";if(f.body){const y=f.body.getReader(),v=new TextDecoder;let b=!1,S="";for(;!b;){const E=await y.read();if(b=E.done,E.value){const w=v.decode(E.value,{stream:!b});S+=w,h.length<200&&(h+=w)}}const C=S.match(/event:\s*done[\s\S]*?data:\s*(\{[^\n]+\})/);if(C)try{x=JSON.parse(C[1]).version}catch{}h=h.slice(0,200)}else{const y=await f.text();h=y.slice(0,200);const v=y.match(/event:\s*done[\s\S]*?data:\s*(\{[^\n]+\})/);if(v)try{x=JSON.parse(v[1]).version}catch{}}return{ok:f.ok,status:f.status,body:h,version:x}},async rescanSkill(t,a){const s=`${t}/${a}`,i=await fetch(`${Zn}/api/v1/skills/${encodeURIComponent(s)}/rescan`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!i.ok)throw new Error(`rescan failed: HTTP ${i.status}`);return await i.json()},async getSkillUpdates(){try{const t=await fetch(`${Zn}/api/skills/updates`);return t.ok?await t.json():[]}catch{return[]}},async checkSkillUpdates(t){if(t.length===0)return[];try{const a=[...t].sort(),s=await lg(`${Zn}/api/v1/skills/check-updates`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({skills:a.map(c=>({name:c,currentVersion:"0.0.0"}))})});if(!s.ok)return[];const i=await s.json().catch(()=>null);return Array.isArray(i)?i:i&&typeof i=="object"&&Array.isArray(i.results)?i.results.map(c=>({skillId:typeof c.skillId=="string"?c.skillId:typeof c.name=="string"?c.name:"",version:typeof c.version=="string"?c.version:typeof c.latest=="string"?c.latest:"",eventId:typeof c.eventId=="string"?c.eventId:"",publishedAt:typeof c.publishedAt=="string"?c.publishedAt:"",diffSummary:typeof c.diffSummary=="string"?c.diffSummary:void 0,trackedForUpdates:typeof c.trackedForUpdates=="boolean"?c.trackedForUpdates:void 0,updateAvailable:typeof c.updateAvailable=="boolean"?c.updateAvailable:void 0,installed:typeof c.installed=="string"?c.installed:void 0,latest:typeof c.latest=="string"?c.latest:void 0,name:typeof c.name=="string"?c.name:void 0})):[]}catch{return[]}},async resolveInstalledSkillIds(t){if(t.length===0)return[];try{const a=await lg(`${Zn}/api/v1/skills/check-updates`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({skills:t.map(u=>({name:u.name,currentVersion:u.currentVersion??"0.0.0"}))})});if(!a.ok)return t.map(u=>({plugin:u.plugin,skill:u.skill}));const s=await a.json().catch(()=>null),i=Array.isArray(s)?s:Array.isArray(s==null?void 0:s.results)?s.results:[],c=new Map(i.map(u=>[u.name,u]));return t.map(u=>{const d=c.get(u.name);return{plugin:u.plugin,skill:u.skill,uuid:typeof(d==null?void 0:d.id)=="string"&&d.id.length>0?d.id:void 0,slug:typeof(d==null?void 0:d.slug)=="string"&&d.slug.length>0?d.slug:void 0}})}catch{return t.map(s=>({plugin:s.plugin,skill:s.skill}))}},promoteSkill(t,a,s){const i=s!=null&&s.overwrite?"?overwrite=true":"";return Ld(`/api/skills/${t}/${a}/promote${i}`,s==null?void 0:s.onEvent,s==null?void 0:s.signal)},testInstallSkill(t,a,s){const i=new URLSearchParams;(s==null?void 0:s.dest)==="global"&&i.set("dest","global"),s!=null&&s.overwrite&&i.set("overwrite","true");const c=i.toString();return Ld(`/api/skills/${t}/${a}/test-install${c?"?"+c:""}`,s==null?void 0:s.onEvent,s==null?void 0:s.signal)},revertSkill(t,a,s){return Ld(`/api/skills/${t}/${a}/revert`,s==null?void 0:s.onEvent,s==null?void 0:s.signal)},listStudioOps(t){const a=new URLSearchParams;(t==null?void 0:t.before)!=null&&a.set("before",String(t.before)),(t==null?void 0:t.limit)!=null&&a.set("limit",String(t.limit));const s=a.toString();return _e(`/api/studio/ops${s?"?"+s:""}`)},deleteStudioOp(t){return _e(`/api/studio/ops/${encodeURIComponent(t)}`,{method:"DELETE"})},studioOpsStream(){return new EventSource(`${Zn}/api/studio/ops/stream`)},gitRemote(){return _e("/api/git/remote")},gitDiff(){return _e("/api/git/diff",{method:"POST"})},gitStatus(){return _e("/api/git/status")},gitCommitMessage(t){return _e("/api/git/commit-message",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t??{})})},gitPublish(t){return _e("/api/git/publish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t??{})})}};async function Ld(t,a,s){const i=await fetch(`${Zn}${t}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},signal:s});if(!i.ok||!i.body){let y=`HTTP ${i.status}`,v;try{const S=await i.json();S.error&&(y=S.error),typeof S.code=="string"&&(v=S.code)}catch{}const b=new Ga(y,i.status);throw v&&(b.code=v),b}const c=i.body.getReader(),u=new TextDecoder;let d="",f="",x=null,h=null;for(;;){const{done:y,value:v}=await c.read();if(y)break;d+=u.decode(v,{stream:!0});const b=d.split(`
62
- `);d=b.pop()??"";for(const S of b)if(S.startsWith("event: "))f=S.slice(7).trim();else if(S.startsWith("data: ")){let C={};try{C=JSON.parse(S.slice(6))}catch{f="";continue}if(f==="started"||f==="copied"||f==="deleted"||f==="indexed"||f==="done"||f==="error"){const E={type:f,...C};a==null||a(E),E.type==="done"&&(x=E),E.type==="error"&&(h=E)}f=""}}if(h){const y=new Ga(h.message,500);throw y.code=h.code,y}if(!x)throw new Ga("Transfer stream ended without 'done' event",500);return x}function NS(t,a){if(!t||!a)return!1;const s=/^(\d+)\.(\d+)\.(\d+)/,i=t.match(s),c=a.match(s);if(!i||!c)return!1;const[,u,d,f]=i.map(Number),[,x,h,y]=c.map(Number);return u!==x?u>x:d!==h?d>h:f>=y}function TS(t,a){if(!a.length)return t;const s=new Map,i=new Map;for(const c of a){const u=c.name.split("/"),d=u.pop()||c.name;if(i.set(d,c),u.length>=1){const f=u[u.length-1];s.set(`${f}/${d}`,c)}}return t.map(c=>{if(c.origin!=="installed")return c;let u;if(c.pluginName?u=s.get(`${c.pluginName}/${c.skill}`):u=i.get(c.skill),!u)return c;const d=u.updateAvailable&&!NS(c.version,u.latest),f={...c,updateAvailable:d,currentVersion:u.installed,latestVersion:u.latest??void 0};typeof u.trackedForUpdates=="boolean"&&(f.trackedForUpdates=u.trackedForUpdates);const x=Wv({frontmatterVersion:f.version??null,registryCurrentVersion:f.currentVersion??null,pluginVersion:f.pluginVersion??null,installedCurrentVersion:f.currentVersion??null,preferInstalled:!0});return f.resolvedVersion=x.version,f.versionSource=x.versionSource,f})}const Ho=new Map,Pa=new Map,Ps=new Map;function Bn(t){Ho.delete(t),Pa.delete(t);const a=Ps.get(t);if(a)for(const s of a)s()}function qa(t,a,s={}){const{ttl:i=3e4,enabled:c=!0}=s,[,u]=m.useState(0),[d,f]=m.useState(void 0),[x,h]=m.useState(0),y=m.useRef(!0),v=m.useRef(t);v.current=t;const b=()=>{f(void 0),Bn(t),h(E=>E+1)};m.useEffect(()=>(y.current=!0,()=>{y.current=!1}),[]),m.useEffect(()=>{if(!c)return;const E=()=>{y.current&&h(w=>w+1)};return Ps.has(t)||Ps.set(t,new Set),Ps.get(t).add(E),()=>{var w;(w=Ps.get(t))==null||w.delete(E)}},[t,c]),m.useEffect(()=>{if(!c)return;const E=Ho.get(t);if(!(!E||Date.now()-E.fetchedAt>i))return;if(Pa.has(t)){const A=Pa.get(t),I=()=>{y.current&&v.current===t&&u(L=>L+1)};A.subscribers.push(I);return}const N={promise:Promise.resolve(),subscribers:[]},T=a().then(A=>{Ho.set(t,{data:A,fetchedAt:Date.now()}),Pa.delete(t),y.current&&v.current===t&&(f(void 0),u(I=>I+1));for(const I of N.subscribers)I()},A=>{Pa.delete(t);const I=A instanceof Error?A:new Error(String(A));y.current&&v.current===t&&(f(I),u(L=>L+1));for(const L of N.subscribers)L()});N.promise=T,Pa.set(t,N)},[t,a,i,c,x]);const S=Ho.get(t),C=c&&!S&&!d&&Pa.has(t);return{data:S==null?void 0:S.data,loading:C,error:d,revalidate:b}}function RS(t){const[a,s]=m.useState(()=>typeof window>"u"?!1:window.matchMedia(t).matches);return m.useEffect(()=>{const i=window.matchMedia(t);s(i.matches);const c=u=>s(u.matches);return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),a}const AS=500,uf="vskill.updates.seenLastId";function LS(){if(typeof window>"u")return null;try{return window.localStorage.getItem(uf)}catch{return null}}function Md(t){if(!(typeof window>"u"))try{t==null?window.localStorage.removeItem(uf):window.localStorage.setItem(uf,t)}catch{}}function MS(){let t=new Map;const a=new Set,s=new Set,i=[];let c=LS();c&&(s.add(c),i.push(c));function u(){t=new Map(t);for(const f of Array.from(a))f()}function d(f){if(!s.has(f)){if(s.add(f),i.push(f),i.length>AS){const x=i.shift();x&&s.delete(x)}c=f,Md(f)}}return{getSnapshot(){return t},subscribe(f){return a.add(f),()=>{a.delete(f)}},ingest(f){return s.has(f.eventId)?"duplicate":(d(f.eventId),t.set(f.skillId,{skillId:f.skillId,version:f.version,diffSummary:f.diffSummary,eventId:f.eventId,publishedAt:f.publishedAt,receivedAt:Date.now()}),u(),"stored")},dismiss(f){t.has(f)&&(t.delete(f),u())},clearSeen(){s.clear(),i.length=0,c=null,Md(null)},mergeBulk(f){if(f.length!==0){for(const x of f)t.set(x.skillId,x);u()}},getSeenLastId(){return c},reset(){t=new Map,s.clear(),i.length=0,c=null,Md(null),u()}}}const Ua=MS(),zS=3e5,DS=500,_S=15e3,OS=6e4,BS=6e4,IS="/api/v1/skills/stream";function sg(t){const a=new Map;for(const i of t)a.set(i.name,i);const s=new Map;for(const i of t){const c=i.name.split("/").pop()||i.name;c!==i.name&&s.set(c,(s.get(c)??0)+1)}for(const i of t){const c=i.name.split("/").pop()||i.name;c!==i.name&&((s.get(c)??0)>1||a.has(c)||a.set(c,i))}return a}function ig(t){let a=0;for(const s of t)s.updateAvailable&&a++;return a}function $S(t){if(!t||typeof t!="object")return!1;const a=t;return a.type==="skill.updated"&&typeof a.eventId=="string"&&typeof a.skillId=="string"&&typeof a.version=="string"}function US(t){const a=(t==null?void 0:t.intervalMs)??zS,s=(t==null?void 0:t.debounceMs)??DS,i=(t==null?void 0:t.timeoutMs)??_S,c=(t==null?void 0:t.staleAfterMs)??OS,u=(t==null?void 0:t.disconnectFallbackMs)??BS,d=(t==null?void 0:t.streamUrlBase)??IS,f=m.useMemo(()=>!(t!=null&&t.skillIds)||t.skillIds.length===0?"":[...t.skillIds].sort().join(","),[t==null?void 0:t.skillIds]),x=m.useMemo(()=>{const D=(t==null?void 0:t.trackingSkillIds)??(t==null?void 0:t.skillIds)??[];return D.length===0?"":[...D].sort().join(",")},[t==null?void 0:t.trackingSkillIds,t==null?void 0:t.skillIds]),[h,y]=m.useState([]),[v,b]=m.useState(()=>new Map),[S,C]=m.useState(0),[E,w]=m.useState(!1),[N,T]=m.useState(null),[A,I]=m.useState(null),L=m.useRef(null),H=m.useRef(null),k=m.useRef(null),O=m.useRef(null),z=m.useRef(!0),[_,$]=m.useState(()=>f?"connecting":"fallback"),q=m.useRef(_);q.current=_;const K=m.useSyncExternalStore(D=>Ua.subscribe(D),()=>Ua.getSnapshot(),()=>Ua.getSnapshot()),Q=K.size,U=m.useCallback(async()=>{w(!0);const D=new AbortController,W=setTimeout(()=>D.abort(),i);try{const X=await Promise.race([ke.getSkillUpdates(),new Promise((ee,de)=>{D.signal.addEventListener("abort",()=>{de(new Error("TIMEOUT"))})})]);if(X==="TIMEOUT")throw new Error("TIMEOUT");if(!z.current)return;y(X),b(sg(X)),C(ig(X)),H.current=Date.now(),T(H.current),I(null)}catch(X){if(!z.current)return;I(X instanceof Error?X:new Error(String(X)))}finally{clearTimeout(W),z.current&&w(!1)}},[i]),M=m.useCallback(()=>{if(L.current)return L.current;const D=U().finally(()=>{L.current=null});return L.current=D,D},[U]),B=m.useCallback(()=>{k.current==null&&(k.current=setInterval(()=>{M()},a))},[a,M]),F=m.useCallback(()=>{k.current!=null&&(clearInterval(k.current),k.current=null)},[]);m.useEffect(()=>{z.current=!0,(H.current==null||Date.now()-H.current>c)&&M(),(typeof document>"u"||document.visibilityState!=="hidden")&&B();const X=()=>{if(O.current&&(clearTimeout(O.current),O.current=null),document.visibilityState==="hidden"){F();return}O.current=setTimeout(()=>{O.current=null,(H.current==null||Date.now()-H.current>c)&&M(),B()},s)};return typeof document<"u"&&document.addEventListener("visibilitychange",X),()=>{z.current=!1,typeof document<"u"&&document.removeEventListener("visibilitychange",X),O.current&&clearTimeout(O.current),F()}},[]);const te=m.useCallback(async D=>{if(D.length!==0)try{const W=await ke.checkSkillUpdates(D);if(!z.current||W.length===0)return;const X=Date.now(),ee=W.filter(le=>le.skillId&&le.eventId&&le.version).map(le=>({skillId:le.skillId,version:le.version,eventId:le.eventId,publishedAt:le.publishedAt,diffSummary:le.diffSummary,receivedAt:X}));ee.length>0&&Ua.mergeBulk(ee);const de=W.filter(le=>typeof le.trackedForUpdates=="boolean"||typeof le.updateAvailable=="boolean").map(le=>({name:le.name??le.skillId,installed:le.installed??"",latest:le.latest??null,updateAvailable:le.updateAvailable??!1,trackedForUpdates:typeof le.trackedForUpdates=="boolean"?le.trackedForUpdates:void 0}));de.length>0&&y(le=>{const ce=new Map;for(const Le of le)ce.set(Le.name,Le);let ne=0;for(const Le of de){const Ee=Le.name,Me=ce.get(Ee);if(Me){const Pe={...Me};Me.trackedForUpdates===void 0&&Le.trackedForUpdates!==void 0&&(Pe.trackedForUpdates=Le.trackedForUpdates),ce.set(Ee,Pe)}else ce.set(Ee,{name:Le.name,installed:Le.installed??"",latest:Le.latest??null,updateAvailable:Le.updateAvailable??!1,trackedForUpdates:Le.trackedForUpdates}),ne+=1}if(ne===0&&ce.size===le.length)return le;const ge=[...ce.values()];return b(sg(ge)),C(ig(ge)),ge})}catch{}},[]);m.useEffect(()=>{const D=f||x;if(!D){$("fallback");return}if(typeof window>"u"||typeof EventSource>"u"){$("fallback");return}$("connecting");const W=D.split(","),X=`${d}?skills=${encodeURIComponent(D)}`;let ee=null,de=null,le=null;const ce=()=>{de==null&&(de=setTimeout(()=>{de=null,z.current&&q.current!=="connected"&&$("fallback")},u))},ne=()=>{de!=null&&(clearTimeout(de),de=null)};ce();const ge=1e3,Le=()=>{z.current&&le==null&&(le=setTimeout(()=>{if(le=null,!!z.current&&!(ee&&ee.readyState!==EventSource.CLOSED)){if(ee)try{ee.close()}catch{}Pe()}},ge))},Ee=ie=>{if(!z.current)return;let fe;try{fe=JSON.parse(ie.data)}catch{return}if(!$S(fe)||Ua.ingest(fe)==="duplicate")return;if(typeof document>"u"||document.visibilityState!=="hidden"){const je=`${fe.skillId} updated to ${fe.version}`;window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:je,severity:"info",skillId:fe.skillId,version:fe.version,eventId:fe.eventId}}))}},Me=()=>{z.current&&(Ua.clearSeen(),te(W))},Pe=()=>{z.current&&(ee=new EventSource(X),ee.onopen=()=>{z.current&&(ne(),$("connected"))},ee.onerror=()=>{z.current&&(ce(),ee&&ee.readyState===EventSource.CLOSED&&Le())},ee.onmessage=Ee,ee.addEventListener("gone",Me))};return Pe(),()=>{if(ne(),le!=null&&(clearTimeout(le),le=null),ee){try{ee.removeEventListener("gone",Me)}catch{}try{ee.close()}catch{}}}},[f,x,d,u,te]),m.useEffect(()=>{if(!x)return;const D=x.split(",");te(D)},[x,te]);const V=m.useCallback(D=>{Ua.dismiss(D)},[]);return{updates:h,updatesMap:v,updateCount:S,isRefreshing:E,lastFetchAt:N,error:A,refresh:M,updatesById:K,pushUpdateCount:Q,status:_,dismiss:V}}function HS(t){const a=[];for(const s of t){const i=typeof s.uuid=="string"&&s.uuid.length>0,c=typeof s.slug=="string"&&s.slug.length>0;if(!i&&!c)continue;const u={};i&&(u.uuid=s.uuid),c&&(u.slug=s.slug),a.push(u)}return a}const PS={selectedSkill:null,mode:"browse",searchQuery:"",skills:[],skillsLoading:!0,skillsError:null,isMobile:!1,mobileView:"list",updateNotificationDismissed:!1,revealSkillId:null};function VS(t,a){switch(a.type){case"SELECT_SKILL":return{...t,selectedSkill:a.skill,mode:"browse",mobileView:t.isMobile?"detail":t.mobileView};case"CLEAR_SELECTION":return{...t,selectedSkill:null};case"SET_MODE":return{...t,mode:a.mode,selectedSkill:a.mode==="create"?null:t.selectedSkill};case"SET_SEARCH":return{...t,searchQuery:a.query};case"SET_SKILLS":return{...t,skills:a.skills,skillsLoading:!1,skillsError:null};case"SET_SKILLS_ERROR":return{...t,skillsError:a.error,skillsLoading:!1};case"SET_SKILLS_LOADING":return{...t,skillsLoading:a.loading};case"SET_MOBILE":return{...t,isMobile:a.isMobile};case"SET_MOBILE_VIEW":return{...t,mobileView:a.view};case"DISMISS_UPDATE_NOTIFICATION":return{...t,updateNotificationDismissed:!0};case"REVEAL_SKILL":return{...t,selectedSkill:a.skill,revealSkillId:`${a.skill.plugin}/${a.skill.skill}`,mode:"browse",mobileView:t.isMobile?"detail":t.mobileView};case"CLEAR_REVEAL":return{...t,revealSkillId:null};default:return t}}const qv=m.createContext(null),Yv=qv;function cr(){const t=m.useContext(Yv);if(!t)throw new Error("useStudio must be used within StudioProvider");return t}function FS({children:t}){const[a,s]=m.useReducer(VS,PS),i=RS("(max-width: 767px)");m.useEffect(()=>{s({type:"SET_MOBILE",isMobile:i})},[i]);const[c,u]=m.useState(()=>{try{const te=window.localStorage.getItem("vskill.studio.prefs");if(!te)return null;const V=JSON.parse(te);return typeof V.activeAgent=="string"?V.activeAgent:null}catch{return null}}),[d,f]=m.useState(c!==null);m.useEffect(()=>{function te(V){if(!(V instanceof CustomEvent))return;const D=V.detail;D!=null&&D.agentId&&(u(D.agentId),f(!0))}return window.addEventListener("studio:agent-changed",te),()=>window.removeEventListener("studio:agent-changed",te)},[]),m.useEffect(()=>{if(d)return;let te=!1;return ke.getAgents().then(V=>{if(te)return;const D=(V==null?void 0:V.suggested)??"claude-code";u(W=>W??D),f(!0)}).catch(()=>{te||(u(V=>V??"claude-code"),f(!0))}),()=>{te=!0}},[d]);const x=m.useCallback(()=>{if(!d||!c)return Promise.resolve();s({type:"SET_SKILLS_LOADING",loading:!0});const te={agent:c};return ke.getSkills(te).then(V=>{s({type:"SET_SKILLS",skills:V});const W=window.location.hash.match(/^#\/skills\/([^/]+)\/([^/?]+)/);if(W){const[,X,ee]=W,de=V.find(le=>le.plugin===X&&le.skill===ee);de&&s({type:"SELECT_SKILL",skill:{plugin:X,skill:ee,origin:de.origin}})}}).catch(V=>s({type:"SET_SKILLS_ERROR",error:V.message}))},[c,d]);m.useEffect(()=>{x()},[x]);const h=m.useCallback(te=>{s({type:"SELECT_SKILL",skill:te}),window.location.hash=`/skills/${te.plugin}/${te.skill}`},[]),y=m.useRef(a.skills);m.useEffect(()=>{y.current=a.skills},[a.skills]);const v=m.useCallback((te,V)=>{const D=y.current,W=te?D.find(de=>de.plugin===te&&de.skill===V):D.find(de=>de.skill===V&&de.source!=="plugin");if(!te&&!W){typeof console<"u"&&console.warn(`[StudioContext] revealSkill: no plugin provided and skill "${V}" not yet in state — skipping reveal`);return}const X=(W==null?void 0:W.plugin)??te,ee=(W==null?void 0:W.origin)??"source";s({type:"REVEAL_SKILL",skill:{plugin:X,skill:V,origin:ee}}),window.location.hash=`/skills/${X}/${V}`},[]),b=m.useCallback(()=>{s({type:"CLEAR_REVEAL"})},[]),S=m.useCallback(()=>{s({type:"CLEAR_SELECTION"}),window.location.hash.startsWith("#/skills/")&&history.replaceState(null,"",window.location.pathname+window.location.search)},[]),C=m.useCallback(te=>{s({type:"SET_MODE",mode:te})},[]),E=m.useCallback(te=>{s({type:"SET_SEARCH",query:te})},[]),w=m.useCallback(te=>{s({type:"SET_MOBILE_VIEW",view:te})},[]),N=m.useCallback(()=>{s({type:"DISMISS_UPDATE_NOTIFICATION"})},[]),T=m.useRef(new Map),A=m.useRef(""),I=m.useRef(!1),[L,H]=m.useState(""),k=m.useMemo(()=>a.skills.map(te=>`${te.plugin}/${te.skill}`),[a.skills]),O=m.useMemo(()=>L?L.split(",").filter(Boolean):[],[L]),z=US({skillIds:O,trackingSkillIds:k}),_=m.useRef("");m.useEffect(()=>{const te=a.skills.filter(ee=>ee.origin==="installed");if(te.length===0){H(""),_.current="";return}const V=new Map;for(const ee of z.updates)V.set(ee.name.split("/").pop()||ee.name,ee);const D=te.map(ee=>{const de=V.get(ee.skill),le=ee.currentVersion??(de==null?void 0:de.installed)??ee.version??ee.pluginVersion??"1.0.0";return{plugin:ee.plugin,skill:ee.skill,name:(de==null?void 0:de.name)??ee.skill,currentVersion:le}}),W=D.map(ee=>`${ee.plugin}/${ee.skill}@${ee.currentVersion}#${ee.name}`).sort().join("|");if(W===_.current)return;_.current=W;let X=!1;return ke.resolveInstalledSkillIds(D).then(ee=>{if(X)return;const ce=[...HS(ee).flatMap(ne=>[ne.uuid,ne.slug].filter(Boolean))].sort().join(",");ce!==A.current&&(A.current=ce,T.current=new Map(ee.map(ne=>[`${ne.plugin}/${ne.skill}`,{uuid:ne.uuid,slug:ne.slug}])),H(ce))}).catch(ee=>{if(X||(_.current=""),!I.current){I.current=!0;const de=ee instanceof Error?ee.message:String(ee);console.warn("[studio] resolveInstalledSkillIds failed (using polling fallback):",de)}}),()=>{X=!0}},[a.skills,z.updates]);const $=m.useMemo(()=>{const te=a.skills.map(V=>{if(!V.updateAvailable&&V.latestVersion===void 0&&V.trackedForUpdates===void 0)return V;const D={...V};return delete D.updateAvailable,delete D.currentVersion,delete D.latestVersion,delete D.trackedForUpdates,D});return TS(te,z.updates)},[a.skills,z.updates]),q=m.useMemo(()=>{const te={source:0,installed:0};for(const V of $)V.updateAvailable&&(te[V.origin]+=1);return te},[$]),K=m.useMemo(()=>({...a,skills:$}),[a,$]),Q=z.updateCount,U=z.refresh,M=z.isRefreshing,B=m.useCallback((te,V)=>{U(),x(),Bn(`versions/${te}/${V}`),z.dismiss(`${te}/${V}`)},[U,x,z]),F=m.useMemo(()=>({state:K,selectSkill:h,clearSelection:S,setMode:C,setSearch:E,setMobileView:w,refreshSkills:x,updateCount:Q,dismissUpdateNotification:N,updates:z.updates,outdatedByOrigin:q,isRefreshingUpdates:M,refreshUpdates:U,revealSkill:v,clearReveal:b,updatesById:z.updatesById,pushUpdateCount:z.pushUpdateCount,updateStreamStatus:z.status,dismissPushUpdate:z.dismiss,activeAgent:c,onSkillUpdated:B}),[K,h,S,C,E,w,x,Q,N,z.updates,q,M,U,v,b,z.updatesById,z.pushUpdateCount,z.status,z.dismiss,c,B]);return r.jsx(Yv.Provider,{value:F,children:t})}const GS={config:null,loading:!0};function WS(t,a){switch(a.type){case"SET_CONFIG":return{config:a.config,loading:!1};case"SET_LOADING":return{...t,loading:!0};default:return t}}const Kv=m.createContext(null);function Ya(){const t=m.useContext(Kv);if(!t)throw new Error("useConfig must be used within ConfigProvider");return t}function qS({children:t}){const[a,s]=m.useReducer(WS,GS),i=m.useCallback(()=>{ke.getConfig().then(d=>s({type:"SET_CONFIG",config:d})).catch(()=>{})},[]);m.useEffect(()=>{i()},[i]);const c=m.useCallback(async(d,f)=>{const x=await ke.setConfig(d,f);return s({type:"SET_CONFIG",config:x}),x},[]),u=m.useMemo(()=>({config:a.config,loading:a.loading,updateConfig:c,refreshConfig:i}),[a,c,i]);return r.jsx(Kv.Provider,{value:u,children:t})}function YS({topRail:t,sidebar:a,main:s,statusBar:i,resizeHandle:c,banner:u,liveMessage:d,sidebarWidth:f=320,sidebarHidden:x=!1}){const h={"--top-rail-height":"48px","--status-bar-height":"28px","--sidebar-width":`${f}px`,display:"grid",gridTemplateRows:"var(--top-rail-height) 1fr var(--status-bar-height)",height:"100vh",overflow:"hidden",background:"var(--bg-canvas)",color:"var(--text-primary)"},y={display:"grid",gridTemplateColumns:x?"1fr":"var(--sidebar-width) auto 1fr",minHeight:0,overflow:"hidden"};return r.jsxs("div",{className:"studio-shell",style:h,children:[u,r.jsx("header",{style:{borderBottom:"1px solid var(--border-default)",background:"var(--bg-canvas)",display:"flex",alignItems:"center",minHeight:0},children:t}),r.jsxs("div",{style:y,children:[!x&&r.jsx("aside",{"aria-label":"Skills sidebar",style:{minHeight:0,overflow:"hidden",borderRight:c?"none":"1px solid var(--border-default)",background:"var(--bg-canvas)",display:"flex",flexDirection:"column"},children:a}),!x&&c,r.jsx("main",{style:{minHeight:0,overflow:"auto",background:"var(--bg-canvas)"},children:s})]}),r.jsx("footer",{role:"contentinfo",style:{borderTop:"1px solid var(--border-default)",background:"var(--bg-canvas)",display:"flex",alignItems:"center",minHeight:0},children:i}),r.jsx("div",{"aria-live":"polite",role:"status",style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:0},children:d??""})]})}const og=["claude-cli","anthropic","openai","openrouter","cursor","codex-cli","gemini-cli","copilot","zed","ollama","lm-studio"],KS={"claude-cli":".claude",cursor:".cursor","codex-cli":".codex","gemini-cli":".gemini",copilot:".github",zed:".zed"},XS={"claude-cli":"claude",cursor:"cursor","codex-cli":"codex","gemini-cli":"gemini"},QS={"claude-cli":"cli-install",anthropic:"api-key",openai:"api-key",openrouter:"api-key",cursor:"cli-install","codex-cli":"cli-install","gemini-cli":"cli-install",copilot:"cli-install",zed:"cli-install",ollama:"start-service","lm-studio":"start-service"},ZS={"claude-cli":"subscription",anthropic:"per-token",openai:"per-token",openrouter:"per-token",cursor:"subscription","codex-cli":"subscription","gemini-cli":"subscription",copilot:"subscription",zed:"subscription",ollama:"free","lm-studio":"free"};function JS(t,a){var f,x;const s=KS[t.id]??null,i=XS[t.id]??null,c=s?!!((f=a==null?void 0:a.wrapperFolders)!=null&&f[s]):!1,u=i?!!((x=a==null?void 0:a.binaries)!=null&&x[i]):!0,d=t.models.map(h=>({id:h.id,displayName:h.label,billingMode:ZS[t.id]??"per-token",...h.pricing?{pricing:h.pricing}:{},...h.resolvedId?{resolvedId:h.resolvedId}:{}}));return{id:t.id,displayName:e2(t.id,t.label),wrapperFolder:s,wrapperFolderPresent:c,binaryAvailable:u,endpointReachable:t.id==="ollama"||t.id==="lm-studio"?t.available:null,available:t.available,ctaType:t.available?null:QS[t.id]??null,models:d,resolvedModel:t.resolvedModel??null}}function e2(t,a){return{"claude-cli":"Claude Code",anthropic:"Anthropic API",openai:"OpenAI API",openrouter:"OpenRouter",cursor:"Cursor","codex-cli":"Codex CLI","gemini-cli":"Gemini CLI",copilot:"GitHub Copilot",zed:"Zed",ollama:"Ollama","lm-studio":"LM Studio"}[t]??a}function t2(t){const a=new Map(t.map(i=>[i.id,i])),s=[];for(const i of og){const c=a.get(i);c&&s.push(c)}for(const i of t)og.includes(i.id)||s.push(i);return s}function n2(t){const[a,s]=m.useState(null),[i,c]=m.useState("loading"),[u,d]=m.useState(null),[f,x]=m.useState(null),h=m.useRef(null),y=m.useRef(0),v=m.useRef(t==null?void 0:t.onStaleCatalog),b=m.useRef(t==null?void 0:t.onSetActiveError);m.useEffect(()=>{v.current=t==null?void 0:t.onStaleCatalog,b.current=t==null?void 0:t.onSetActiveError},[t==null?void 0:t.onStaleCatalog,t==null?void 0:t.onSetActiveError]);const S=m.useCallback(async()=>{try{const T=await fetch("/api/config");if(!T.ok)throw new Error(`/api/config returned ${T.status}`);const A=await T.json(),I=t2((A.providers||[]).map(L=>JS(L,A.detection)));s({agents:I,activeAgent:A.provider??null,activeModel:A.model??null}),c("ready"),d(null)}catch(T){c("error"),d(T.message)}},[]);m.useEffect(()=>{S()},[S]);const C=m.useCallback(async()=>{var A;const T=Date.now();if(!(T-y.current<5*6e4))try{const I=await fetch("/api/openrouter/models");if(!I.ok){I.status!==400&&x(`OpenRouter catalog fetch failed (${I.status})`);return}const L=await I.json();y.current=T,x(null),s(O=>{if(!O)return O;const z=O.agents.map(_=>{if(_.id!=="openrouter")return _;const $=L.models.map(K=>({id:K.id,displayName:K.name,contextWindow:K.contextWindow,pricing:K.pricing,billingMode:"per-token"}));return{..._,models:$,catalogAgeMs:L.ageSec?L.ageSec*1e3:0,cacheStale:!!L.stale}});return{...O,agents:z}});const H=L.ageSec??0;(L.stale===!0||H>600)&&((A=v.current)==null||A.call(v,"openrouter",H*1e3))}catch(I){x(`OpenRouter catalog unreachable: ${I.message}`)}},[]),E=m.useCallback(T=>{h.current=T,T==="openrouter"&&C()},[C]),w=m.useCallback(()=>{y.current=0,S()},[S]),N=m.useCallback(async(T,A)=>{var H,k;let I;try{I=await fetch("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:T,model:A})})}catch(O){(H=b.current)==null||H.call(b,`Network error while setting ${T}: ${O.message}`);return}if(I.ok){s(O=>O&&{...O,activeAgent:T,activeModel:A});return}let L=`Failed to set ${T} (${I.status})`;try{const O=await I.json();O&&typeof O.error=="string"&&(L=O.error)}catch{}(k=b.current)==null||k.call(b,L)},[]);return{status:i,catalog:a,error:u,openRouterError:f,focusAgent:E,refresh:w,activeAgentId:(a==null?void 0:a.activeAgent)??null,activeModelId:(a==null?void 0:a.activeModel)??null,setActive:N}}function zd({variant:t,label:a,onActivate:s,installUrl:i,tooltip:c}){function u(f){if(f.stopPropagation(),t==="cli-install"&&i){window.open(i,"_blank","noopener,noreferrer");return}s()}function d(f){(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),u(f))}return r.jsx("button",{type:"button","data-testid":`locked-cta-${t}`,onClick:u,onKeyDown:d,className:"inline-flex items-center gap-1.5 px-0 py-0 text-[11px] font-medium",style:{color:"var(--accent, var(--text-primary))",background:"transparent",border:"none",cursor:"pointer"},"aria-label":a,...c?{title:c}:{},children:a})}function df({unlocked:t=!1,size:a=10}){return t?r.jsxs("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1"}),r.jsx("path",{d:"M5 7V4.5A3 3 0 0 1 11 3.5"})]}):r.jsxs("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[r.jsx("rect",{x:"3",y:"7",width:"10",height:"7",rx:"1"}),r.jsx("path",{d:"M5 7V4.5A3 3 0 0 1 11 4.5V7"})]})}const r2={sectionOwn:"Own",sectionInstalled:"Installed",searchPlaceholder:"Search skills",searchShortcutHint:"Press / to search",emptyOwnHeadline:"No skills yet.",emptyOwnBody:"Run vskill new <name> to create one.",emptyInstalledHeadline:"No installed skills.",emptyInstalledBody:"Run vskill install <skill> to add one.",emptyFilteredHeadline:"No matches in this section.",emptyFilteredBody:"Clear the search or try another query.",loadErrorHeadline:"Couldn't load skills.",loadErrorRetry:"Retry",duplicateBadge:"synced from Own",updateAvailableBadge:"Update available",countBadgeFiltered:(t,a)=>`${t} of ${a}`},a2={appTitle:"Skill Studio",commandPaletteButtonLabel:"Open command palette",commandPaletteHint:"⌘K",themeToggleLight:"Switch to light theme",themeToggleDark:"Switch to dark theme",themeToggleAuto:"Switch to auto theme",projectPathLabel:"Project",modelLabel:"Model",healthLabel:"Health"},l2={tabOverview:"Overview",tabVersions:"Versions",tabBenchmark:"Benchmark",emptyHeadline:"Select a skill to see details.",emptyBody:"Pick one from the sidebar.",loadErrorHeadline:t=>`Couldn't load SKILL.md for ${t}.`,loadErrorBody:"Check the file path and your workspace permissions.",openInEditor:"Open in editor",copyPath:"Copy path",copyConfigSnippet:"Copy config snippet",depNotInstalledTooltip:"Not installed",missingValue:"—",announceViewingOwn:t=>`Viewing ${t} (Own)`,announceViewingInstalled:t=>`Viewing ${t} (Installed)`,moreFields:"More fields",sourceAgent:"Source agent",noMcpDependencies:"No MCP dependencies.",filesystemGroup:"Filesystem",benchmarkGroup:"Benchmark",metadataGroup:"Frontmatter"},s2={open:"Open",copyPath:"Copy Path",revealInEditor:"Reveal in Editor",edit:"Edit",duplicate:"Duplicate",runBenchmark:"Run Benchmark",update:"Update",uninstall:"Uninstall",retry:"Retry",editPlaceholder:"Edit lands with 0675. Open the file in your editor.",delete:"Delete",deletePluginTooltip:"Plugin skills are managed by their owning plugin — uninstall the plugin to remove.",undo:"Undo"},i2={inputPlaceholder:"Type a command or search",emptyResults:"No matches. Try a different query.",groupNavigation:"Navigation",groupActions:"Actions",groupTheme:"Theme",actionSelectSkill:"Select skill",actionRunBenchmark:"Run benchmark",actionSwitchTheme:"Switch theme",actionNewSkill:"New skill",closeLabel:"Close palette"},o2={title:"Keyboard shortcuts",closeLabel:"Close shortcuts",groupNavigation:"Navigation",groupActions:"Actions",groupTheme:"Theme",search:"Focus search",moveDown:"Move selection down",moveUp:"Move selection up",openSelected:"Open selected skill",openPalette:"Open command palette",openShortcuts:"Open this cheatsheet",toggleSidebar:"Toggle sidebar",toggleTheme:"Toggle theme"},c2={pathCopied:"Path copied.",configCopied:"Config copied.",skillDuplicated:"Skill duplicated.",benchmarkQueued:"Benchmark queued.",themeUpdated:"Theme updated.",skillUpdated:"Skill updated.",actionFailed:"Action failed. Retry or check logs.",networkError:"Network error. Check your connection.",permissionDenied:"Permission denied. Check file access.",unknownError:"Something went wrong. Retry or check logs."},u2={disconnected:"Disconnected — reconnecting…",reconnected:"Reconnected.",loading:"Loading skills…",loadingPlaceholderCount:"—"},d2={fieldRequired:"This field is required.",nameInvalid:"Use letters, numbers, and hyphens.",descriptionRequired:"Description is required.",saveFailed:"Save failed. Check the form for errors."},f2={boundaryHeadline:"Something broke in this view.",boundaryBody:"Reload the page to recover.",boundaryAction:"Reload"},p2={triggerLabel:"Agent and model",popoverTitle:"Select agent and model",footerHint:"↑↓ navigate · Enter select · Esc close",settingsButton:"Settings",keyboardShortcut:"⌘K",noModelsYet:"No models yet.",searchPlaceholder:"Search 300+ models…",noMatches:t=>`No models match "${t}"`,clearSearch:"Clear",currentlyActive:"Currently active"},m2={claudeCli:{name:"Claude Code",caption:"Delegates to the `claude` CLI — your existing Claude Code session handles quota.",missingBinary:"Claude Code not found. Install it: `npm install -g @anthropic-ai/claude-code`. Or choose a provider with an API key.",installCta:"Install Claude Code →",installUrl:"https://docs.claude.com/en/docs/claude-code"},anthropic:{name:"Anthropic API",caption:"Direct access via your Anthropic API key.",addKeyCta:"Add API key →",keyIssuanceUrl:"https://platform.claude.com/settings/keys",keyPrefix:"sk-ant-"},openai:{name:"OpenAI",caption:"GPT-4, GPT-5, and the o-series reasoning models.",addKeyCta:"Add API key →",keyIssuanceUrl:"https://platform.openai.com/api-keys",keyPrefix:"sk-",pastePlaceholder:"Paste OpenAI API key (sk-proj-...)"},openrouter:{name:"OpenRouter",caption:"300+ models from every major vendor.",addKeyCta:"Add API key →",emptyCardBody:"Add your OpenRouter API key to browse 300+ models",keyIssuanceUrl:"https://openrouter.ai/settings/keys",keyPrefix:"sk-or-"},cursor:{name:"Cursor",caption:"Cursor IDE composer.",installCta:"Install Cursor →"},codexCli:{name:"Codex CLI",caption:"OpenAI Codex CLI.",installCta:"Install Codex CLI →"},geminiCli:{name:"Gemini CLI",caption:"Google Gemini CLI.",installCta:"Install Gemini CLI →"},copilot:{name:"GitHub Copilot",caption:"GitHub Copilot CLI.",installCta:"Install Copilot →"},zed:{name:"Zed",caption:"Zed editor.",installCta:"Install Zed →"},ollama:{name:"Ollama",caption:"Local models, free.",startServiceCta:"Start service →"},lmStudio:{name:"LM Studio",caption:"Local models, free.",startServiceCta:"Start LM Studio server →",startServiceTooltip:"Open LM Studio → Developer tab → Start Server (default port 1234)."}},h2={subscriptionBilling:"· subscription",free:"· free"},x2={title:"Settings",sectionApiKeys:"API Keys",banner:"Keys are stored locally on this device only. Never synced, never committed to git, never transmitted off-device except to the provider's own API.",storagePath:t=>`Keys stored at ${t} · protected by file permissions (0600 on macOS/Linux)`,storagePathFallback:"Keys stored locally on this device.",copyPath:"Copy path",pathCopied:"Path copied.",show:"Show",hide:"Hide",paste:"Paste",save:"Save",remove:"Remove",removeConfirm:t=>`Remove ${t} API key?`,keyStoredAt:t=>`Key stored locally — updated ${t}`,noKey:"No key stored",enterNonEmpty:"Enter a non-empty key",prefixWarn:t=>`This doesn't look like a typical ${t} key. Save anyway?`,keySaved:t=>`${t} API key saved (local only, never synced)`,keyRemoved:t=>`${t} API key removed`},g2={providersLabel:"Providers",providerSummary:(t,a)=>`${t}/${a} providers`,locked:t=>`${t} — locked. Click to add a key.`,lockedCli:t=>`${t} — locked. Click for install instructions.`,unlocked:t=>`${t} — unlocked.`},v2={triggerAriaLabel:"Choose active agent for the sidebar",popoverTitle:"Choose active agent",statsInstalled:"Installed",statsGlobal:"Global",statsPlugins:"Plugins",statsLastSync:"Last sync",statsHealthOk:"Fresh",statsHealthStale:"Updates available",statsHealthMissing:"Not detected",switchCta:"Switch for this studio session",notDetectedSubheading:"Not detected",setUpCta:t=>`Set up ${t}`,sharedFolderBanner:t=>`Shared folder — consumed by ${t}`},y2={ownLabel:"Own",installedLabel:"Installed",globalLabel:"Global",emptyOwn:"No authored skills — run vskill new.",emptyInstalled:t=>`No skills installed for ${t} in this project — run vskill install.`,emptyGlobal:t=>`No global skills for ${t} — run vskill install --global.`},b2={compactLabel:"Uses your Claude Code session · overflow billed at API rates",tooltip:"vSkill delegates to the `claude` CLI — your existing Claude Code session handles quota. If you've enabled extra usage in your account settings, excess runs at standard API rates. Run /usage in Claude Code or visit claude.com Settings → Usage to see remaining quota — vskill can't display it directly.",firstUseBanner:"Claude Code uses your existing session. No API key needed — vskill just runs the official claude binary on your behalf.",learnMore:"Learn more"},j2={title:t=>`Set up ${t}`,close:"Close",copy:"Copy",copied:"Copied",requiredEnv:"Required env vars",getKey:"Get a key",installRun:"Install & run",learnMore:"Learn more",fallbackTitle:"No setup guide available",fallbackBody:"We don't ship a setup guide for this provider yet."},S2={groupAvailable:"Available",groupAuthoring:"Authoring",sourceProject:"Project",sourcePersonal:"Personal",sourcePlugin:"Plugins",authoringSkills:"Skills"},k2={anthropic:{name:"Anthropic API",description:"Direct API access to Claude via your Anthropic API key. Pay-per-token billing.",envVars:["ANTHROPIC_API_KEY"],keyUrl:"https://platform.claude.com/settings/keys",learnMoreUrl:"https://docs.claude.com/en/docs/get-started"},openai:{name:"OpenAI",description:"Access to GPT-4, GPT-5 and the o-series reasoning models via your OpenAI API key.",envVars:["OPENAI_API_KEY"],keyUrl:"https://platform.openai.com/api-keys",learnMoreUrl:"https://platform.openai.com/docs"},openrouter:{name:"OpenRouter",description:"One API key, 300+ models from Anthropic, OpenAI, Google, Meta, and more.",envVars:["OPENROUTER_API_KEY"],keyUrl:"https://openrouter.ai/keys",learnMoreUrl:"https://openrouter.ai/docs"},gemini:{name:"Gemini",description:"Google Gemini models (2.5 Pro, Flash) via Google AI Studio. Free tier available.",envVars:["GEMINI_API_KEY"],keyUrl:"https://aistudio.google.com/apikey",learnMoreUrl:"https://ai.google.dev/gemini-api/docs"},ollama:{name:"Ollama",description:"Local models on your own machine. Zero external calls, zero cost after download.",envVars:["OLLAMA_HOST"],installCmd:"curl -fsSL https://ollama.com/install.sh | sh",startCmd:"ollama serve",pullExample:"ollama pull llama3.2",learnMoreUrl:"https://ollama.com/download"},lmStudio:{name:"LM Studio",description:"Desktop app + local server for running open models with a GUI. Compatible with the OpenAI API.",envVars:["LM_STUDIO_BASE_URL"],installCmd:"Download from https://lmstudio.ai and launch the app, then start the local server.",startCmd:"# In LM Studio: Developer → Start Server (default port 1234)",pullExample:"# In LM Studio: Discover → download any GGUF model",learnMoreUrl:"https://lmstudio.ai/docs"},claudeCode:{name:"Claude Code",description:"No API key needed if you're logged into Claude Code. vskill just runs the official claude binary on your behalf — your existing Claude Code session handles quota.",loginHint:"If you're not logged in, run claude in your terminal and authenticate with your Anthropic account.",learnMoreUrl:"https://docs.claude.com/en/docs/claude-code"}},se={sidebar:r2,shell:a2,detail:l2,actions:s2,palette:i2,shortcuts:o2,toasts:c2,connection:u2,forms:d2,errors:f2,picker:p2,providers:m2,models:h2,settings:x2,statusBar:g2,scopePicker:v2,scopeSection:y2,claudeCodeLabel:b2,setupDrawer:j2,setupProviders:k2,scopeLabels:S2},w2=new Set(["claude-cli","claude-code"]);function cg(t){return w2.has(t)}const ug=new Set(["claude-cli","claude-code","anthropic","openai","openrouter","cursor","codex-cli","gemini-cli","copilot","zed"]);function C2({agents:t,activeAgentId:a,focusedAgentId:s,onFocus:i,onSelect:c,onOpenSettings:u}){const d=t.filter(x=>ug.has(x.id)),f=t.filter(x=>!ug.has(x.id));return r.jsxs("div",{role:"listbox","aria-label":"Agent","data-testid":"agent-list",style:{width:240,borderRight:"1px solid var(--border-default, var(--border-subtle))",display:"flex",flexDirection:"column",overflowY:"auto"},children:[d.map(x=>r.jsx(dg,{agent:x,isActive:x.id===a,isFocused:x.id===s,onFocus:i,onSelect:c,onOpenSettings:u},x.id)),f.length>0&&r.jsx("div",{style:{borderTop:"1px solid var(--border-default, var(--border-subtle))",margin:"4px 0"},"aria-hidden":"true"}),f.map(x=>r.jsx(dg,{agent:x,isActive:x.id===a,isFocused:x.id===s,onFocus:i,onSelect:c,onOpenSettings:u},x.id))]})}function dg({agent:t,isActive:a,isFocused:s,onFocus:i,onSelect:c,onOpenSettings:u}){const{providers:d}=se,f={"claude-cli":d.claudeCli.caption,anthropic:d.anthropic.caption,openrouter:d.openrouter.caption},x={"claude-cli":{label:d.claudeCli.installCta,url:d.claudeCli.installUrl},cursor:{label:d.cursor.installCta},"codex-cli":{label:d.codexCli.installCta},"gemini-cli":{label:d.geminiCli.installCta},copilot:{label:d.copilot.installCta},zed:{label:d.zed.installCta}},h=cg(t.id),y={minHeight:36,height:h?"auto":36,padding:h?"6px 12px":"0 12px",display:"flex",alignItems:"center",gap:8,cursor:"pointer",position:"relative",background:s?"var(--surface-muted, var(--surface-3))":"transparent",borderLeft:a?"1px solid var(--accent, var(--color-accent))":"1px solid transparent",fontFamily:"'Inter Tight Variable', 'Inter Tight', system-ui, sans-serif",fontSize:13,fontWeight:a?500:400,color:"var(--text-primary)"};return a&&(y.background="color-mix(in srgb, var(--accent, var(--color-accent)) 10%, transparent)"),r.jsxs("div",{role:"option","aria-selected":a,"data-testid":`agent-row-${t.id}`,"data-focused":s||void 0,tabIndex:s?0:-1,onMouseEnter:()=>i(t.id),onFocus:()=>i(t.id),onClick:()=>c(t.id),style:y,children:[t.wrapperFolder&&r.jsx("span",{"data-testid":`wrapper-dot-${t.id}`,"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:t.wrapperFolderPresent?"var(--accent, var(--color-accent))":"transparent",border:t.wrapperFolderPresent?"none":"1px solid var(--border-default, var(--border-subtle))"}}),!t.wrapperFolder&&r.jsx("span",{style:{width:6,height:6,flexShrink:0},"aria-hidden":"true"}),r.jsxs("span",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[r.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.displayName}),cg(t.id)&&r.jsx("span",{"data-testid":"claude-code-billing-label",title:se.claudeCodeLabel.tooltip,style:{fontSize:10,color:"var(--text-secondary, var(--text-tertiary))",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:1},children:se.claudeCodeLabel.compactLabel})]}),r.jsx("span",{"aria-label":t.available?"available":"locked",style:{color:t.available?"var(--accent, var(--color-accent))":"var(--text-muted, var(--text-tertiary))",flexShrink:0},children:t.available?r.jsx(df,{unlocked:!0,size:10}):r.jsx(df,{size:10})}),a&&r.jsx("span",{style:{fontSize:10,textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600,color:"var(--accent-ink, var(--accent))",flexShrink:0},"data-testid":`active-badge-${t.id}`,children:se.picker.currentlyActive}),!t.available&&t.ctaType==="api-key"&&r.jsx(zd,{variant:"api-key",label:t.id==="anthropic"?d.anthropic.addKeyCta:d.openrouter.addKeyCta,onActivate:()=>u(t.id)}),!t.available&&t.ctaType==="cli-install"&&x[t.id]&&r.jsx(zd,{variant:"cli-install",label:x[t.id].label,installUrl:x[t.id].url,onActivate:()=>{}}),!t.available&&t.ctaType==="start-service"&&r.jsx(zd,{variant:"start-service",label:t.id==="ollama"?d.ollama.startServiceCta:d.lmStudio.startServiceCta,onActivate:()=>u(t.id)}),f[t.id]&&r.jsx("span",{className:"sr-only","data-testid":`caption-${t.id}`,children:f[t.id]})]})}function E2(t,a,s,i){const d=t>=80,f=m.useRef(null),[x,h]=m.useState(0),y=m.useCallback(S=>{h(S.currentTarget.scrollTop)},[]),{visibleStart:v,visibleEnd:b}=m.useMemo(()=>{if(!d)return{visibleStart:0,visibleEnd:t};const S=Math.max(0,Math.floor(x/a)-4),C=Math.ceil(s/a)+8,E=Math.min(t,S+C);return{visibleStart:S,visibleEnd:E}},[d,x,a,s,t,4]);return{visibleStart:v,visibleEnd:b,totalHeight:t*a,offsetTop:v*a,virtualised:d,containerProps:{onScroll:y,ref:f,style:{overflowY:"auto",maxHeight:s,willChange:d?"transform":void 0}}}}const Xv=44,N2=352,T2=60,fg=480;function R2(t){var u,d;const a=t.contextWindow?t.contextWindow>=1e6?`${Math.round(t.contextWindow/1e6)}M`:t.contextWindow>=1e3?`${Math.round(t.contextWindow/1e3)}k`:String(t.contextWindow):null;if(t.billingMode==="subscription")return a?`${a} ctx ${se.models.subscriptionBilling}`:se.models.subscriptionBilling.trim();if(t.billingMode==="free")return a?`local · ${a} ctx · free`:"local · free";const s=((u=t.pricing)==null?void 0:u.prompt)??0,i=((d=t.pricing)==null?void 0:d.completion)??0,c=`$${s.toFixed(2)} / $${i.toFixed(2)} per 1M tokens`;return a?`${a} ctx · ${c}`:c}function A2(t,a){if(!a)return t;const s=a.toLowerCase();return t.filter(c=>c.displayName.toLowerCase().includes(s)).sort((c,u)=>{const d=c.displayName.toLowerCase().indexOf(s),f=u.displayName.toLowerCase().indexOf(s);return d!==f?d-f:c.displayName.length-u.displayName.length})}function L2({agent:t,activeModelId:a,focusedIndex:s=-1,onSelect:i,onOpenSettings:c}){const[u,d]=m.useState(""),[f,x]=m.useState(""),h=m.useRef(null);if(m.useEffect(()=>{const b=setTimeout(()=>x(u),T2);return()=>clearTimeout(b)},[u]),m.useEffect(()=>{t.id==="openrouter"&&t.available&&h.current&&h.current.focus()},[t.id,t.available]),t.id==="openrouter"&&!t.available)return r.jsxs("div",{"data-testid":"openrouter-empty-card",style:{width:fg,padding:20,display:"flex",flexDirection:"column",gap:12},children:[r.jsx("p",{style:{margin:0,color:"var(--text-primary)",fontSize:13,lineHeight:1.5},children:se.providers.openrouter.emptyCardBody}),r.jsx("button",{type:"button",onClick:()=>c("openrouter"),style:{alignSelf:"flex-start",padding:"6px 10px",borderRadius:6,background:"var(--accent, var(--color-accent))",color:"var(--bg-surface, white)",border:"none",fontSize:12,fontWeight:500,cursor:"pointer"},children:se.providers.openrouter.addKeyCta})]});const y=m.useMemo(()=>A2(t.models,f),[t.models,f]),v=E2(y.length,Xv,N2);return r.jsxs("div",{role:"listbox","aria-label":"Model","data-testid":"model-list",style:{width:fg,display:"flex",flexDirection:"column"},children:[t.id==="openrouter"&&r.jsx("div",{style:{padding:8,borderBottom:"1px solid var(--border-default, var(--border-subtle))"},children:r.jsx("input",{ref:h,type:"text",placeholder:se.picker.searchPlaceholder,value:u,onChange:b=>d(b.target.value),"data-testid":"model-search-input","aria-label":se.picker.searchPlaceholder,style:{width:"100%",padding:"6px 8px",background:"var(--surface-2, var(--bg-surface))",border:"1px solid var(--border-subtle)",borderRadius:4,color:"var(--text-primary)",fontSize:12,fontFamily:"'Inter Tight Variable', 'Inter Tight', system-ui, sans-serif"}})}),y.length===0&&f?r.jsxs("div",{style:{padding:16},"data-testid":"no-matches",children:[r.jsx("div",{style:{color:"var(--text-muted, var(--text-tertiary))",fontSize:12,marginBottom:8},children:se.picker.noMatches(f)}),r.jsx("button",{type:"button",onClick:()=>d(""),style:{padding:"4px 8px",background:"transparent",border:"1px solid var(--border-subtle)",borderRadius:4,color:"var(--text-primary)",fontSize:12,cursor:"pointer"},children:se.picker.clearSearch})]}):y.length===0?r.jsx("div",{style:{padding:16,color:"var(--text-muted, var(--text-tertiary))",fontSize:12},children:se.picker.noModelsYet}):r.jsx("div",{...v.containerProps,children:r.jsx("div",{style:{height:v.virtualised?v.totalHeight:"auto",position:"relative"},children:r.jsx("div",{style:{transform:v.virtualised?`translateY(${v.offsetTop}px)`:void 0},children:y.slice(v.visibleStart,v.visibleEnd).map((b,S)=>{const C=v.visibleStart+S;return r.jsx(z2,{model:b,isActive:b.id===a,isFocused:s===C,onSelect:()=>i(b.id),resolvedModel:t.id==="claude-cli"?t.resolvedModel??null:null},b.id)})})})})]})}function M2(t,a,s){return a&&a.toLowerCase().includes(t.toLowerCase())?a:s??null}function z2({model:t,isActive:a,isFocused:s,onSelect:i,resolvedModel:c}){const u=R2(t),d=M2(t.id,c,t.resolvedId),f=d!==null,x=a?"color-mix(in srgb, var(--accent, var(--color-accent)) 10%, transparent)":s?"var(--surface-muted, var(--surface-3))":"transparent",h=a?"1px solid var(--accent, var(--color-accent))":"1px solid transparent";return r.jsxs("button",{type:"button",role:"option","aria-selected":a,"data-testid":`model-row-${t.id}`,"data-focused":s||void 0,onClick:i,title:t.id,style:{width:"100%",minHeight:Xv,padding:"4px 12px",display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"center",gap:2,background:x,borderLeft:h,cursor:"pointer",fontFamily:"'Inter Tight Variable', 'Inter Tight', system-ui, sans-serif",textAlign:"left"},children:[r.jsx("span",{style:{fontSize:14,fontWeight:500,color:"var(--text-primary)"},children:t.displayName}),r.jsx("span",{style:{fontSize:12,fontFamily:"'JetBrains Mono Variable', 'JetBrains Mono', monospace",fontVariantNumeric:"tabular-nums",color:"var(--text-muted, var(--text-tertiary))"},children:u}),f&&r.jsxs("span",{"data-testid":`model-row-${t.id}-resolved`,style:{fontSize:11,fontFamily:"'JetBrains Mono Variable', 'JetBrains Mono', monospace",color:"var(--text-muted, var(--text-tertiary))"},children:["routing to ",d]})]})}const pg={anthropic:{stored:!1,updatedAt:null},openai:{stored:!1,updatedAt:null},openrouter:{stored:!1,updatedAt:null}};function D2(){const[t,a]=m.useState(null),[s,i]=m.useState(!0),[c,u]=m.useState(null),d=m.useCallback(async()=>{i(!0);try{const h=await fetch("/api/settings/keys");if(!h.ok)throw new Error(`GET /api/settings/keys returned ${h.status}`);const y=await h.json();a({...pg,...y}),u(null)}catch(h){u(h.message),a(pg)}finally{i(!1)}},[]);m.useEffect(()=>{d()},[d]);const f=m.useCallback(async(h,y)=>{const v=await fetch("/api/settings/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:h,key:y})});if(!v.ok){const S=await v.json().catch(()=>({error:v.statusText}));throw new Error(S.error||`POST /api/settings/keys returned ${v.status}`)}const b=await v.json();return await d(),b},[d]),x=m.useCallback(async h=>{const y=await fetch(`/api/settings/keys/${h}`,{method:"DELETE"});if(!y.ok)throw new Error(`DELETE /api/settings/keys/${h} returned ${y.status}`);await d()},[d]);return{state:t,loading:s,error:c,save:f,remove:x,refresh:d}}function _2({onMigrated:t,fetchImpl:a}){const[s,i]=m.useState({kind:"loading"}),c=a??globalThis.fetch,u=m.useCallback(async()=>{var h;try{const y=await c("/api/settings/migration-status");if(!y.ok){i({kind:"hidden"});return}const v=await y.json();v.pending&&(((h=v.darwinKeys)==null?void 0:h.length)??0)>0?i({kind:"visible",darwinKeys:v.darwinKeys??[]}):i({kind:"hidden"})}catch{i({kind:"hidden"})}},[c]);m.useEffect(()=>{u()},[u]);const d=m.useCallback(async()=>{i({kind:"working"});try{const h=await c("/api/settings/migration-perform",{method:"POST",headers:{"Content-Type":"application/json"}});if(!h.ok){i({kind:"error",message:`Migration failed (${h.status})`});return}const y=await h.json().catch(()=>({migrated:[]}));t==null||t(y.migrated??[]),await u()}catch(h){i({kind:"error",message:h.message})}},[c,u,t]),f=m.useCallback(async()=>{i({kind:"hidden"});try{await c("/api/settings/migration-acknowledge",{method:"POST",headers:{"Content-Type":"application/json"}})}catch{}},[c]);if(s.kind==="loading"||s.kind==="hidden")return null;if(s.kind==="error")return r.jsxs("div",{role:"status","data-testid":"migration-banner",style:{padding:"10px 12px",borderRadius:6,background:"color-mix(in srgb, var(--danger, #b33) 15%, transparent)",color:"var(--text-primary)",fontSize:12,marginBottom:12,display:"flex",alignItems:"center",gap:8},children:[r.jsx("span",{style:{flex:1},children:s.message}),r.jsx("button",{type:"button",onClick:()=>void u(),"data-testid":"migration-retry",style:Dd,children:"Retry"})]});const x=s.kind==="working";return r.jsxs("div",{role:"note","data-testid":"migration-banner",style:{padding:"10px 12px",borderRadius:6,background:"color-mix(in srgb, var(--accent, var(--color-accent)) 12%, transparent)",color:"var(--text-primary)",fontSize:12,marginBottom:12,display:"flex",alignItems:"center",gap:8},children:[r.jsxs("div",{style:{flex:1},children:[r.jsx("strong",{style:{display:"block",marginBottom:2},children:"Migrate from macOS Keychain"}),r.jsx("span",{style:{color:"var(--text-muted, var(--text-tertiary))"},children:"We found stored credentials from a previous vskill version. Import them into the new on-disk store."})]}),r.jsx("button",{type:"button",onClick:()=>void d(),disabled:x,"data-testid":"migration-migrate",style:{...Dd,background:"var(--accent, var(--color-accent))",color:"white",opacity:x?.6:1},children:x?"Importing…":"Migrate"}),r.jsx("button",{type:"button",onClick:()=>void f(),"data-testid":"migration-dismiss",style:{...Dd,background:"transparent",border:"none",color:"var(--text-muted, var(--text-tertiary))",textDecoration:"underline",padding:"4px 6px"},children:"Dismiss for 30 days"})]})}const Dd={padding:"4px 10px",background:"var(--surface-2, transparent)",border:"1px solid var(--border-subtle)",borderRadius:4,color:"var(--text-primary)",fontSize:12,cursor:"pointer"},O2=[{id:"anthropic",name:se.providers.anthropic.name,keyIssuanceUrl:se.providers.anthropic.keyIssuanceUrl,prefix:se.providers.anthropic.keyPrefix,placeholder:`Paste ${se.providers.anthropic.name} key`},{id:"openai",name:se.providers.openai.name,keyIssuanceUrl:se.providers.openai.keyIssuanceUrl,prefix:se.providers.openai.keyPrefix,placeholder:se.providers.openai.pastePlaceholder},{id:"openrouter",name:se.providers.openrouter.name,keyIssuanceUrl:se.providers.openrouter.keyIssuanceUrl,prefix:se.providers.openrouter.keyPrefix,placeholder:`Paste ${se.providers.openrouter.name} key`}];function B2(t){const a=Date.now()-new Date(t).getTime();return a<6e4?"just now":a<36e5?`${Math.round(a/6e4)}m ago`:a<864e5?`${Math.round(a/36e5)}h ago`:new Date(t).toLocaleString()}function Qv({open:t,onClose:a,initialProvider:s,onToast:i}){const{state:c,save:u,remove:d,refresh:f}=D2(),x=m.useRef(null),h=m.useRef(null),[y,v]=m.useState(null);m.useEffect(()=>{if(!t)return;let S=!1;return(async()=>{try{const C=await fetch("/api/settings/storage-path");if(!C.ok)throw new Error(`GET /api/settings/storage-path returned ${C.status}`);const E=await C.json();S||v(E.path??null)}catch{S||v(null)}})(),()=>{S=!0}},[t]),m.useEffect(()=>{if(!t)return;const S=document.activeElement,C=setTimeout(()=>{var N;const E=s?`input[data-provider="${s}"]`:"input[data-provider]",w=(N=x.current)==null?void 0:N.querySelector(E);w==null||w.focus()},0);return()=>{var E;clearTimeout(C),(E=S==null?void 0:S.focus)==null||E.call(S)}},[t,s]),m.useEffect(()=>{if(!t)return;const S=C=>{if(C.key==="Escape"){C.preventDefault(),a();return}if(C.key==="Tab"&&x.current){const E=x.current.querySelectorAll("button, [href], input, select, textarea, [tabindex]:not([tabindex='-1'])");if(E.length===0)return;const w=E[0],N=E[E.length-1];C.shiftKey&&document.activeElement===w?(C.preventDefault(),N.focus()):!C.shiftKey&&document.activeElement===N&&(C.preventDefault(),w.focus())}};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[t,a]);const b=m.useCallback(async()=>{var S,C;if(y)try{await((C=(S=navigator.clipboard)==null?void 0:S.writeText)==null?void 0:C.call(S,y)),i==null||i(se.settings.pathCopied)}catch{}},[i,y]);return t?r.jsx("div",{role:"dialog","aria-modal":"true","aria-labelledby":"settings-modal-title","data-testid":"settings-modal",style:{position:"fixed",inset:0,background:"color-mix(in srgb, black 40%, transparent)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},onClick:S=>{S.target===S.currentTarget&&a()},children:r.jsxs("div",{ref:x,style:{background:"var(--bg-surface, var(--surface-1))",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:8,width:560,maxHeight:"80vh",overflowY:"auto",padding:20,fontFamily:"'Inter Tight Variable', 'Inter Tight', system-ui, sans-serif",color:"var(--text-primary)"},onClick:S=>S.stopPropagation(),children:[r.jsx("h2",{id:"settings-modal-title",style:{margin:"0 0 16px 0",fontSize:16,fontWeight:600},children:se.settings.title}),r.jsx(_2,{onMigrated:()=>{f()}}),r.jsx("div",{role:"note","data-testid":"settings-banner",style:{padding:"8px 12px",borderRadius:6,background:"color-mix(in srgb, var(--info, var(--accent-muted)) 20%, transparent)",color:"var(--text-primary)",fontSize:12,marginBottom:16},children:se.settings.banner}),r.jsxs("section",{"aria-labelledby":"settings-api-keys-title",style:{marginBottom:20},children:[r.jsx("h3",{id:"settings-api-keys-title",style:{fontSize:13,fontWeight:600,margin:"0 0 12px 0"},children:se.settings.sectionApiKeys}),O2.map(S=>r.jsx(I2,{providerId:S.id,providerName:S.name,keyIssuanceUrl:S.keyIssuanceUrl,prefix:S.prefix,placeholder:S.placeholder,metadata:c==null?void 0:c[S.id],onSave:async C=>{const E=await u(S.id,C);return i==null||i(se.settings.keySaved(S.name)),E},onRemove:async()=>{await d(S.id),i==null||i(se.settings.keyRemoved(S.name))},inputRef:S.id===(s??"anthropic")?h:void 0},S.id))]}),r.jsxs("div",{"data-testid":"settings-storage-path",style:{fontSize:11,color:"var(--text-muted, var(--text-tertiary))",fontStyle:"italic",display:"flex",alignItems:"center",gap:8,marginBottom:12},children:[r.jsx("span",{style:{flex:1},children:y?se.settings.storagePath(y):se.settings.storagePathFallback}),r.jsx("button",{type:"button",onClick:b,disabled:!y,"data-testid":"settings-copy-path",style:{...Va,opacity:y?1:.5,cursor:y?"pointer":"not-allowed"},children:se.settings.copyPath})]}),r.jsx("div",{style:{marginTop:20,display:"flex",justifyContent:"flex-end"},children:r.jsx("button",{type:"button",onClick:a,style:{padding:"6px 12px",background:"var(--surface-2, transparent)",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:6,color:"var(--text-primary)",fontSize:12,cursor:"pointer"},children:"Close"})})]})}):null}function I2({providerId:t,providerName:a,keyIssuanceUrl:s,prefix:i,placeholder:c,metadata:u,onSave:d,onRemove:f,inputRef:x}){const[h,y]=m.useState(""),[v,b]=m.useState(!1),[S,C]=m.useState(!1),[E,w]=m.useState(!1),[N,T]=m.useState(null),A=h.trim(),I=A.length===0,L=A.length>0&&!A.startsWith(i),H=m.useCallback(async()=>{if(I)return;C(!0);const z=A;y("");try{const _=await d(z);_.warning?T(_.warning):T(null)}finally{C(!1)}},[I,d,A]),k=m.useCallback(async()=>{var z;try{if(!((z=navigator.clipboard)!=null&&z.readText))return;const _=await navigator.clipboard.readText();y(_)}catch{}},[]),O=m.useCallback(async()=>{w(!1),await f()},[f]);return r.jsxs("div",{"data-testid":`provider-row-${t}`,style:{padding:12,border:"1px solid var(--border-subtle)",borderRadius:6,marginBottom:8,display:"flex",flexDirection:"column",gap:8},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[r.jsx("strong",{style:{fontSize:13},children:a}),r.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",style:{fontSize:12,color:"var(--accent, var(--color-accent))"},children:"Get a key →"})]}),r.jsxs("div",{style:{display:"flex",gap:6},children:[r.jsx("input",{ref:x,type:v?"text":"password",value:h,onChange:z=>{y(z.target.value),T(null)},"data-provider":t,placeholder:c,style:{flex:1,padding:"6px 8px",border:"1px solid var(--border-subtle)",borderRadius:4,background:"var(--surface-2, var(--bg-surface))",color:"var(--text-primary)",fontSize:12,fontFamily:"'JetBrains Mono Variable', 'JetBrains Mono', monospace"}}),r.jsx("button",{type:"button",onClick:()=>b(!v),style:Va,children:v?se.settings.hide:se.settings.show}),r.jsx("button",{type:"button",onClick:k,style:Va,children:se.settings.paste})]}),L&&r.jsx("div",{role:"status","data-testid":`prefix-warn-${t}`,style:mg,children:se.settings.prefixWarn(a)}),N&&r.jsx("div",{role:"status",style:mg,children:N}),r.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[r.jsx("button",{type:"button",onClick:H,disabled:I||S,"data-testid":`save-${t}`,style:{...Va,background:I?"var(--surface-2)":"var(--accent, var(--color-accent))",color:I?"var(--text-muted)":"white",cursor:I?"not-allowed":"pointer"},children:se.settings.save}),(u==null?void 0:u.stored)&&r.jsx(r.Fragment,{children:E?r.jsxs(r.Fragment,{children:[r.jsx("span",{style:{fontSize:12},children:se.settings.removeConfirm(a)}),r.jsx("button",{type:"button",onClick:O,"data-testid":`remove-confirm-${t}`,style:{...Va,background:"var(--danger, #b33)",color:"white"},children:"Confirm"}),r.jsx("button",{type:"button",onClick:()=>w(!1),style:Va,children:"Cancel"})]}):r.jsx("button",{type:"button",onClick:()=>w(!0),"data-testid":`remove-${t}`,style:{...Va,color:"var(--text-muted)"},children:se.settings.remove})}),r.jsx("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-muted, var(--text-tertiary))"},"data-testid":`status-${t}`,children:u!=null&&u.stored&&u.updatedAt?se.settings.keyStoredAt(B2(u.updatedAt)):se.settings.noKey})]})]})}const Va={padding:"4px 8px",background:"var(--surface-2, transparent)",border:"1px solid var(--border-subtle)",borderRadius:4,color:"var(--text-primary)",fontSize:12,cursor:"pointer"},mg={fontSize:11,color:"var(--warning, var(--text-muted))"};function $2(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function U2({onToast:t}){const{status:a,catalog:s,focusAgent:i,setActive:c}=n2({onStaleCatalog:(_,$)=>{const q=Math.round($/6e4);t==null||t(`Using cached ${_} catalog (${q} min old)`)},onSetActiveError:_=>t==null?void 0:t(_)}),[u,d]=m.useState(!1),[f,x]=m.useState(!1),[h,y]=m.useState(),[v,b]=m.useState(null),[S,C]=m.useState("agents"),[E,w]=m.useState(0),N=m.useRef(null);m.useRef(null),m.useEffect(()=>{var _;s&&!v&&b(s.activeAgent??((_=s.agents[0])==null?void 0:_.id)??null)},[s,v]);const T=(s==null?void 0:s.agents)??[],A=m.useMemo(()=>T.find(_=>_.id===v)??T[0],[T,v]);m.useEffect(()=>{w(0)},[v]);const I=m.useCallback(()=>{var _;d(!0),C("agents"),b((s==null?void 0:s.activeAgent)??((_=T[0])==null?void 0:_.id)??null),w(0)},[s,T]),L=m.useCallback(()=>{var _;d(!1),(_=N.current)==null||_.focus()},[]);m.useEffect(()=>{const _=$=>{var K;if(!($.metaKey||$.ctrlKey)||$.key.toLowerCase()!=="k")return;const q=(K=document.activeElement)==null?void 0:K.tagName;q==="INPUT"||q==="TEXTAREA"||($.preventDefault(),d(Q=>!Q))};return window.addEventListener("keydown",_),()=>window.removeEventListener("keydown",_)},[]),m.useEffect(()=>{if(!u)return;const _=q=>{if(q.key==="Escape"){q.preventDefault(),L();return}if(q.key==="ArrowDown"){q.preventDefault(),$(1);return}if(q.key==="ArrowUp"){q.preventDefault(),$(-1);return}if(q.key==="ArrowRight"&&S==="agents"){q.preventDefault(),C("models"),w(K=>{const Q=((A==null?void 0:A.models.length)??1)-1;return Math.max(0,Math.min(K,Math.max(0,Q)))});return}if(q.key==="ArrowLeft"&&S==="models"){q.preventDefault(),C("agents");return}if(q.key==="Enter"){if(q.preventDefault(),S==="agents"&&A)C("models"),w(0);else if(S==="models"&&A){const K=Math.max(0,Math.min(A.models.length-1,E)),Q=A.models[K];Q&&(c(A.id,Q.id),L())}return}};function $(q){if(S==="agents"){const K=T.findIndex(U=>U.id===v),Q=T[Math.max(0,Math.min(T.length-1,K+q))];Q&&(b(Q.id),i(Q.id));return}if(S==="models"&&A){const K=A.models.length;if(K===0)return;w(Q=>{const U=Q+q;return Math.max(0,Math.min(K-1,U))})}}return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[u,S,T,v,A,E,L,i,c]);const H=m.useCallback(_=>{y(_==="anthropic"||_==="openrouter"?_:void 0),x(!0),d(!1)},[]),k=T.find(_=>_.id===(s==null?void 0:s.activeAgent)),O=k==null?void 0:k.models.find(_=>_.id===(s==null?void 0:s.activeModel)),z=m.useMemo(()=>{if(a!=="ready"||!s)return"Loading…";const _=(k==null?void 0:k.displayName)??"Agent",$=(O==null?void 0:O.displayName)??s.activeModel??"Model";return`${_} · ${$}`},[a,s,k,O]);return r.jsxs(r.Fragment,{children:[r.jsxs("button",{ref:N,type:"button","data-testid":"agent-model-picker-trigger",onClick:()=>u?L():I(),"aria-haspopup":"listbox","aria-expanded":u,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 10px",background:"var(--surface-2, var(--bg-surface))",border:"1px solid var(--border-subtle)",borderRadius:6,color:"var(--text-primary)",fontSize:12,cursor:"pointer",fontFamily:"'Inter Tight Variable', 'Inter Tight', system-ui, sans-serif"},children:[r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:k!=null&&k.available?"var(--accent, var(--color-accent))":"var(--text-muted, var(--text-tertiary))",flexShrink:0}}),r.jsx("span",{children:z})]}),u&&typeof document<"u"&&rc.createPortal(r.jsxs(H2,{reducedMotion:$2(),onClickOutside:L,children:[r.jsxs("div",{style:{display:"flex",height:440,maxHeight:"60vh"},children:[r.jsx(C2,{agents:T,activeAgentId:(s==null?void 0:s.activeAgent)??null,focusedAgentId:v,onFocus:_=>{b(_),i(_)},onSelect:_=>{b(_),i(_),C("models")},onOpenSettings:H}),A&&r.jsx(L2,{agent:A,activeModelId:(s==null?void 0:s.activeModel)??null,focusedIndex:S==="models"?E:-1,onSelect:_=>{c(A.id,_),L()},onOpenSettings:H})]}),r.jsxs("div",{style:{height:32,borderTop:"1px solid var(--border-default, var(--border-subtle))",padding:"0 12px",display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:11,color:"var(--text-muted, var(--text-tertiary))"},children:[r.jsx("button",{type:"button",onClick:()=>H(),"data-testid":"picker-footer-settings",style:{background:"transparent",border:"none",color:"var(--text-primary)",fontSize:11,cursor:"pointer",padding:"0 4px"},children:se.picker.settingsButton}),r.jsx("span",{style:{fontFamily:"'JetBrains Mono Variable', 'JetBrains Mono', monospace"},children:se.picker.footerHint})]})]}),document.body),r.jsx(Qv,{open:f,onClose:()=>x(!1),initialProvider:h,onToast:t})]})}function H2({children:t,reducedMotion:a,onClickOutside:s}){const i=m.useRef(null);return m.useEffect(()=>{const c=u=>{i.current&&!i.current.contains(u.target)&&s()};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[s]),r.jsxs("div",{ref:i,"data-testid":"agent-model-picker-popover",role:"dialog","aria-label":"Select agent and model",style:{position:"fixed",top:56,left:"50%",transform:"translateX(-50%)",width:720,background:"var(--bg-surface, var(--surface-1))",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:8,overflow:"hidden",zIndex:90,animation:a?void 0:"agentPickerFadeIn 120ms cubic-bezier(0.2, 0, 0, 1)"},children:[t,r.jsx("style",{children:`@keyframes agentPickerFadeIn {
63
- from { opacity: 0; transform: translateX(-50%) translateY(2px); }
64
- to { opacity: 1; transform: translateX(-50%) translateY(0); }
65
- }`})]})}function hg(){typeof window>"u"||(window.location.hash="#/")}function P2({onHome:t}){const[a,s]=m.useState(!1),[i,c]=m.useState(!1),u=f=>{f.metaKey||f.ctrlKey||f.shiftKey||f.button!==0||(f.preventDefault(),hg(),t==null||t())},d=f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),hg(),t==null||t())};return r.jsxs("a",{href:"#/",role:"link","data-testid":"studio-logo","aria-label":"Skill Studio — home",onClick:u,onKeyDown:d,onFocus:()=>s(!0),onBlur:()=>s(!1),onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),style:{display:"inline-flex",alignItems:"center",gap:10,flexShrink:0,padding:"4px 6px",margin:"-4px -6px",borderRadius:6,textDecoration:"none",color:"inherit",cursor:"pointer",outline:a?"2px solid var(--border-focus)":"none",outlineOffset:2,background:i?"color-mix(in srgb, var(--text-primary) 4%, transparent)":"transparent",transition:"background-color var(--duration-fast, 120ms) var(--ease-standard, ease)"},children:[r.jsx("span",{"aria-hidden":"true",style:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:6,background:"color-mix(in srgb, var(--accent-surface) 20%, transparent)"},children:r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent-surface)",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"22 12 18 12 15 21 9 3 6 12 2 12"})})}),r.jsx("span",{style:{fontSize:13,fontWeight:600,letterSpacing:"-0.01em",color:"var(--text-primary)"},children:"Skill Studio"})]})}const xg=m.memo(function({message:a,politeness:s="polite",role:i}){const c=i??(s==="assertive"?"alert":"status");return r.jsx("div",{"aria-live":s,"aria-atomic":"true",role:c,"data-testid":"aria-live","data-politeness":s,style:{position:"absolute",width:1,height:1,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:0,padding:0,margin:-1},children:a})});function V2({toast:t,onDismiss:a}){const[s,i]=m.useState(!0),c=m.useRef(null);m.useEffect(()=>(c.current=requestAnimationFrame(()=>{c.current=requestAnimationFrame(()=>i(!1))}),()=>{c.current!=null&&cancelAnimationFrame(c.current)}),[]);const u={success:"var(--status-installed)",info:"var(--text-secondary)",error:"var(--color-accent, var(--accent-surface))"};return r.jsxs("div",{role:t.severity==="error"?"alert":"status","data-testid":"toast-item","data-severity":t.severity,style:{display:"flex",alignItems:"center",gap:12,padding:"10px 12px",minWidth:240,maxWidth:360,background:"var(--bg-canvas)",color:"var(--text-primary)",border:"1px solid var(--border-default)",borderLeft:`3px solid ${u[t.severity]}`,borderRadius:6,boxShadow:"0 8px 24px rgba(0,0,0,0.12)",fontFamily:"var(--font-sans)",fontSize:12,transform:s?"translateY(8px)":"translateY(0)",opacity:s?0:1,transition:"transform var(--duration-base, 180ms) var(--ease-standard, ease), opacity var(--duration-base, 180ms) var(--ease-standard, ease)"},children:[r.jsx("span",{style:{flex:1,minWidth:0},children:t.message}),t.action&&r.jsx("button",{type:"button",onClick:()=>{t.action.onInvoke(),a(t.id)},style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"3px 8px",color:"var(--text-primary)",cursor:"pointer",fontSize:11,fontFamily:"var(--font-sans)"},children:t.action.label}),r.jsx("button",{type:"button","aria-label":"Dismiss",onClick:()=>a(t.id),style:{background:"transparent",border:"none",padding:2,color:"var(--text-secondary)",cursor:"pointer",fontSize:14,lineHeight:1},children:"×"})]})}function F2({toasts:t,onDismiss:a,liveMessage:s,liveAssertiveMessage:i}){return r.jsxs(r.Fragment,{children:[r.jsx(xg,{politeness:"polite",message:s}),r.jsx(xg,{politeness:"assertive",message:i}),t.length>0&&r.jsx("div",{"data-testid":"toast-stack",style:{position:"fixed",right:16,bottom:16,display:"flex",flexDirection:"column-reverse",gap:8,zIndex:50,pointerEvents:"none"},children:t.map(c=>r.jsx("div",{style:{pointerEvents:"auto"},children:r.jsx(V2,{toast:c,onDismiss:a})},c.id))})]})}const Zv=m.createContext(null);function ac(){const t=m.useContext(Zv);if(!t)throw new Error("useToast must be used inside <ToastProvider>.");return t}function G2({children:t,maxVisible:a=4,defaultDurationMs:s=4e3}){const[i,c]=m.useState([]),[u,d]=m.useState(""),[f,x]=m.useState(""),h=m.useRef(new Map),y=m.useCallback(w=>{const N=h.current.get(w);N&&(clearTimeout(N),h.current.delete(w)),c(T=>T.filter(A=>A.id!==w))},[]),v=m.useCallback((w,N)=>{if(N<=0)return;const T=setTimeout(()=>{y(w)},N);h.current.set(w,T)},[y]),b=m.useCallback(w=>{const N=w.id??`toast-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,T={id:N,message:w.message,severity:w.severity??"info",durationMs:w.durationMs??s,action:w.action};return c(A=>[...A,T]),T.severity==="error"?x(T.message):d(T.message),v(N,T.durationMs),N},[s,v]),S=m.useCallback(()=>{for(const w of h.current.values())clearTimeout(w);h.current.clear(),c([])},[]);m.useEffect(()=>{function w(N){N.key==="Escape"&&c(T=>{if(T.length===0)return T;const A=T.slice(0,a),I=A[A.length-1],L=h.current.get(I.id);return L&&(clearTimeout(L),h.current.delete(I.id)),T.filter(H=>H.id!==I.id)})}return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[a]),m.useEffect(()=>()=>{for(const w of h.current.values())clearTimeout(w);h.current.clear()},[]);const C=i.slice(0,a),E=m.useMemo(()=>({toast:b,dismiss:y,clear:S}),[b,y,S]);return r.jsxs(Zv.Provider,{value:E,children:[t,r.jsx(F2,{toasts:C,onDismiss:y,liveMessage:u,liveAssertiveMessage:f})]})}function W2(){const{data:t,loading:a}=qa("platform-health",async()=>{const s=await fetch("/api/platform/health");return s.ok?await s.json():{degraded:!1,reason:"platform-unreachable",statsAgeMs:0,oldestActiveAgeMs:0}},{ttl:6e4});return{data:t,loading:a}}const q2=m.lazy(()=>Vl(()=>import("./UpdateDropdown-DTP2sv27.js"),__vite__mapDeps([0,1])));function Y2(){const{updateCount:t,updates:a,isRefreshingUpdates:s,refreshUpdates:i,selectSkill:c,revealSkill:u,skills:d,updatesById:f,activeAgent:x}=cr(),{toast:h}=ac(),{data:y}=W2(),v=(y==null?void 0:y.degraded)===!0,b=m.useMemo(()=>{if(!f||f.size===0)return;const H=new Map;for(const[k,O]of f)O.diffSummary&&H.set(k,O.diffSummary);return H.size>0?H:void 0},[f]),[S,C]=m.useState(!1),E=m.useRef(null),w=m.useCallback(()=>C(!1),[]),N=v?"var(--color-own)":t>0?"var(--text-primary)":"var(--text-secondary)",T=t>9?"9+":String(t),A=t===0?"No updates available":`${t} updates available, open summary`,I=v?`${A} — platform crawler degraded`:A,L=v?"Update checks paused — verified-skill.com crawler is degraded. Your submissions are queued.":void 0;return r.jsxs("span",{"data-testid":"update-bell-anchor",style:{position:"relative",display:"inline-flex"},children:[r.jsxs("button",{ref:E,type:"button","data-testid":"update-bell","aria-label":I,"aria-haspopup":"dialog","aria-expanded":S,title:L,onClick:()=>C(H=>!H),style:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",height:26,width:26,padding:0,borderRadius:4,border:"1px solid transparent",background:"transparent",color:N,cursor:"pointer"},children:[r.jsxs("svg",{"data-testid":"update-bell-icon",width:18,height:18,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",style:{display:"block",opacity:t>0||v?1:.75,color:N},children:[r.jsx("path",{d:"M5.5 17h11l-1.2-1.8a2 2 0 0 1-.3-1.1V10a4 4 0 1 0-8 0v4.1a2 2 0 0 1-.3 1.1L5.5 17Z"}),r.jsx("path",{d:"M10 20a2 2 0 0 0 4 0"}),r.jsx("circle",{cx:"17",cy:"7",r:"2.2",fill:"currentColor",stroke:"none"})]}),t>0&&r.jsx("span",{"data-testid":"update-bell-badge","aria-hidden":"true",style:{position:"absolute",top:-2,right:-2,minWidth:14,height:14,padding:"0 3px",borderRadius:999,background:"var(--color-own)",color:"var(--color-paper)",fontSize:9,fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums",display:"inline-flex",alignItems:"center",justifyContent:"center",fontWeight:600,lineHeight:1},children:T})]}),S&&r.jsx(m.Suspense,{fallback:r.jsx("span",{"data-testid":"update-bell-fallback",children:"Loading…"}),children:r.jsx(q2,{updates:a,isRefreshing:s,diffSummariesById:b,onRefresh:()=>i(),onSelectSkill:H=>{const k=H.localSkill??H.name.split("/").pop()??"",O=H.localPlugin??"";if(u)u(O,k);else{const _=H.name.split("/"),$=_.length>=2?_[_.length-2]:_[0];c({plugin:$,skill:k,origin:"installed"})}if(!(d??[]).some(_=>_.skill===k&&(O===""||_.plugin===O))){const _=H.installLocations??[];if(_.length>0){const $=x?_.filter(K=>K.agent===x):[],q=x?_.filter(K=>K.agent!==x):_;if($.length>0&&q.length>0){const K=q.length>=2?`Also installed under ${q.length} other locations.`:`Also installed under ${q[0].agentLabel}.`;h({severity:"info",message:K})}else{const K=_[0].agentLabel;h({severity:"info",message:`Skill installed under ${K} — switch to ${K} to view details.`})}}}w()},onViewAll:()=>{window.location.hash="#/updates",w()},onClose:w,anchorRef:E})})]})}function gg(t){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:navigate-scope",{detail:t}))}function K2({projectName:t,selected:a,onHome:s,projectPickerSlot:i,onRequestCreateSkill:c,findSkillsSlot:u}){const d=a?a.origin==="installed"?"Project":"Skills":null;return r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:16,height:"100%",width:"100%",padding:"0 16px",fontFamily:"var(--font-sans)"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[r.jsx(P2,{onHome:s}),i?r.jsx("div",{style:{borderLeft:"1px solid var(--border-default)",paddingLeft:10,display:"flex",alignItems:"center"},children:i}):t&&r.jsx("span",{title:t,style:{fontSize:12,color:"var(--text-secondary)",borderLeft:"1px solid var(--border-default)",paddingLeft:10,maxWidth:220,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]}),r.jsx("nav",{"aria-label":"Breadcrumb",style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:6,fontSize:12,color:"var(--text-secondary)"},children:a&&d&&r.jsxs(r.Fragment,{children:[r.jsx(vg,{segment:"origin",onClick:()=>gg({scope:"origin",origin:a.origin}),style:{textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600,color:a.origin==="installed"?"var(--status-installed)":"var(--status-own)"},children:d}),r.jsx(yg,{}),r.jsx(vg,{segment:"plugin",onClick:()=>gg({scope:"plugin",plugin:a.plugin}),style:{fontFamily:"var(--font-mono)",fontSize:11},children:a.plugin}),r.jsx(yg,{}),r.jsx("span",{"data-breadcrumb-segment":"skill","aria-current":"page",style:{color:"var(--text-primary)",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.skill})]})}),r.jsxs("div",{"data-toprail-right":"true",style:{display:"flex",alignItems:"center",gap:12,flexShrink:0},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[u,c&&r.jsxs("button",{type:"button","data-slot":"create-skill-button",onClick:c,"aria-label":"Create a new skill",title:"Create a new skill",style:{display:"inline-flex",alignItems:"center",gap:6,height:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--color-action, #2F5B8E)",background:"var(--color-action, #2F5B8E)",color:"var(--color-action-ink, #FFFFFF)",fontSize:12,fontWeight:600,fontFamily:"var(--font-sans)",cursor:"pointer",letterSpacing:"0.01em",boxShadow:"0 1px 2px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.12)"},children:[r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"New Skill"]})]}),r.jsx("span",{"aria-hidden":"true",style:{width:1,height:18,background:"var(--border-default)"}}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("span",{"data-slot":"agent-model-picker",style:{minWidth:200},children:r.jsx(U2,{})}),r.jsx("span",{"data-slot":"update-bell",style:{display:"inline-flex"},children:r.jsx(Y2,{})})]})]})]})}function vg({segment:t,onClick:a,style:s,children:i}){return r.jsx("button",{type:"button","data-breadcrumb-segment":t,onClick:a,style:{background:"transparent",border:"none",padding:0,cursor:"pointer",color:"var(--text-secondary)",fontFamily:"inherit",...s},onMouseEnter:c=>{c.currentTarget.style.color="var(--color-accent-ink)"},onMouseLeave:c=>{const u=(s==null?void 0:s.color)??"var(--text-secondary)";c.currentTarget.style.color=u},children:i})}function yg(){return r.jsx("span",{"aria-hidden":"true",style:{color:"var(--border-default)",fontSize:10},children:"›"})}const lc="vskill-theme";function Jv(t){return t==="light"||t==="dark"||t==="auto"?t:"auto"}function X2(t,a){return t==="light"||t==="dark"?t:a?"dark":"light"}function Q2(t){try{const a=t.getItem(lc);return Jv(a)}catch{return"auto"}}function Z2(t,a){try{t.setItem(lc,a)}catch{}}function J2(t,a,s){t.dataset.theme=s,t.dataset.themeMode=a}function ek(t){if(!t)return!1;try{return t("(prefers-color-scheme: dark)").matches}catch{return!1}}const ey=m.createContext(null);function tk({storage:t,matchMedia:a,target:s,children:i}){const c=t??(typeof window<"u"?window.localStorage:void 0),u=a??(typeof window<"u"?window.matchMedia.bind(window):void 0),d=s??(typeof document<"u"?document.documentElement:void 0),[f,x]=m.useState(()=>c?Q2(c):"auto"),[h,y]=m.useState(()=>ek(u)),v=m.useMemo(()=>X2(f,h),[f,h]);m.useEffect(()=>{d&&J2(d,f,v)},[d,f,v]),m.useEffect(()=>{if(!u)return;const C=u("(prefers-color-scheme: dark)"),E=N=>y(N.matches);if(typeof C.addEventListener=="function")return C.addEventListener("change",E),()=>C.removeEventListener("change",E);const w=C;return w.addListener(E),()=>w.removeListener(E)},[u]),m.useEffect(()=>{if(typeof window>"u")return;const C=E=>{E.key===lc&&x(Jv(E.newValue))};return window.addEventListener("storage",C),()=>window.removeEventListener("storage",C)},[]),m.useEffect(()=>{if(!u||!d)return;let C;try{C=u("(prefers-contrast: more)")}catch{return}const E=T=>{T?d.dataset.contrast="more":d.dataset.contrast==="more"&&delete d.dataset.contrast};E(C.matches);const w=T=>E(T.matches);if(typeof C.addEventListener=="function")return C.addEventListener("change",w),()=>C.removeEventListener("change",w);const N=C;return N.addListener(w),()=>N.removeListener(w)},[u,d]);const b=m.useCallback(C=>{x(C),c&&Z2(c,C)},[c]),S=m.useMemo(()=>({mode:f,resolvedTheme:v,setTheme:b}),[f,v,b]);return r.jsx(ey.Provider,{value:S,children:i})}function ty(){const t=m.useContext(ey);if(!t)throw new Error("useTheme must be used inside <ThemeProvider>. Wrap the app root in main.tsx.");return t}const bg=["claude-cli","anthropic","openrouter","ollama","lm-studio"];function nk(t){const a=new Map(t.map(i=>[i.id,i])),s=[];for(const i of bg){const c=a.get(i);c&&s.push(c)}for(const i of t)bg.includes(i.id)||s.push(i);return s}function rk(t){const[a,s]=m.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(`(max-width: ${t}px)`).matches);return m.useEffect(()=>{var u;if(typeof window>"u"||!window.matchMedia)return;const i=window.matchMedia(`(max-width: ${t}px)`),c=()=>s(i.matches);return(u=i.addEventListener)==null||u.call(i,"change",c),()=>{var d;return(d=i.removeEventListener)==null?void 0:d.call(i,"change",c)}},[t]),a}function ak({providers:t,onOpenSettings:a,onOpenInstallHelp:s}){const i=nk(t),c=rk(640),[u,d]=m.useState(!1),f=m.useCallback(x=>{x.available||x.kind==="api-key"?a==null||a(x.id):s==null||s(x.id)},[a,s]);if(c){const x=i.filter(h=>h.available).length;return r.jsxs("div",{"data-testid":"providers-segment",style:{position:"relative",display:"inline-flex",alignItems:"center"},children:[r.jsx("button",{type:"button","data-testid":"providers-summary",onClick:()=>d(!u),"aria-label":se.statusBar.providerSummary(x,i.length),style:{background:"transparent",border:"none",color:"var(--text-secondary)",fontSize:11,cursor:"pointer",padding:"0 4px"},children:se.statusBar.providerSummary(x,i.length)}),u&&r.jsx("div",{role:"menu",style:{position:"absolute",bottom:"120%",right:0,background:"var(--bg-surface, var(--surface-1))",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:6,padding:6,minWidth:180,display:"flex",flexDirection:"column",gap:2,zIndex:80},children:i.map(h=>r.jsx(jg,{p:h,onClick:f},h.id))})]})}return r.jsx("div",{"data-testid":"providers-segment",style:{display:"inline-flex",alignItems:"center",gap:4},children:i.map(x=>r.jsx(jg,{p:x,onClick:f,compact:!0},x.id))})}function jg({p:t,onClick:a,compact:s}){const i=t.available?se.statusBar.unlocked(t.label):t.kind==="cli-install"?se.statusBar.lockedCli(t.label):se.statusBar.locked(t.label);return r.jsxs("button",{type:"button","data-testid":`provider-glyph-${t.id}`,"data-available":t.available,"aria-label":i,title:i,onClick:()=>a(t),style:{display:"inline-flex",alignItems:"center",gap:4,background:"transparent",border:"none",color:t.available?"var(--status-installed)":"var(--text-muted, var(--text-tertiary))",cursor:"pointer",padding:s?"2px":"4px 6px",fontSize:11},children:[r.jsx(df,{unlocked:t.available,size:10}),!s&&r.jsx("span",{children:t.label})]})}function lk(){try{return typeof localStorage>"u"?null:localStorage.getItem(lc)}catch{return null}}function sk({projectPath:t,modelName:a,health:s="ok",onPathClick:i,providers:c,onOpenProviderSettings:u,onOpenProviderInstallHelp:d}){const{mode:f,resolvedTheme:x,setTheme:h}=ty(),v=lk()==="auto",b=ik(f,x,v),S=s==="down"||s==="degraded"?"var(--status-own)":"var(--status-installed)";return r.jsxs("div",{role:"contentinfo",style:{display:"flex",alignItems:"center",gap:12,height:"100%",width:"100%",padding:"0 12px",fontSize:11,fontFamily:"var(--font-sans)",color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:[r.jsx("span",{title:a??"",style:{fontFamily:"var(--font-mono)"},children:a??"—"}),r.jsx(Sg,{}),r.jsxs("span",{"aria-label":`Health: ${s}`,style:{display:"inline-flex",alignItems:"center",gap:6},children:[r.jsx(ok,{color:S}),r.jsx("span",{style:{textTransform:"capitalize"},children:s})]}),c&&c.length>0&&r.jsxs(r.Fragment,{children:[r.jsx(Sg,{}),r.jsx(ak,{providers:c,onOpenSettings:u,onOpenInstallHelp:d})]}),r.jsx("div",{style:{flex:1}}),r.jsxs("button",{type:"button","data-testid":"theme-toggle",onClick:()=>h(b),"aria-label":`Switch to ${b} theme`,title:`Theme: ${f} — click for ${b}`,style:{display:"inline-flex",alignItems:"center",gap:6,background:"transparent",border:"1px solid var(--border-default)",padding:"2px 8px",borderRadius:4,color:"var(--text-secondary)",cursor:"pointer",fontSize:11,height:20},children:[r.jsx(ck,{mode:f}),r.jsx("span",{style:{textTransform:"capitalize"},children:f})]})]})}function ik(t,a,s){return t==="light"?"dark":t==="dark"?"auto":s?"light":a==="light"?"dark":"light"}function ok({color:t}){return r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:t,display:"inline-block",flexShrink:0}})}function Sg(){return r.jsx("span",{"aria-hidden":"true",style:{color:"var(--border-default)"},children:"|"})}function ck({mode:t}){return t==="dark"?r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):t==="light"?r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"4"}),r.jsx("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"})]}):r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"9"}),r.jsx("path",{d:"M12 3a9 9 0 0 0 0 18z",fill:"currentColor"})]})}const ff=new Set;function ny(){for(const t of ff)t()}const uk=5,dk=1e3,fk=6e4;function pk(){const[t,a]=m.useState(void 0),[s,i]=m.useState(!1),[c,u]=m.useState(!0),d=m.useRef(0),f=m.useRef(null),x=m.useRef(null),h=m.useRef(!0),y=m.useRef(0),[v,b]=m.useState(0),S=()=>{x.current!==null&&(clearTimeout(x.current),x.current=null)},C=m.useCallback(()=>{f.current&&(f.current.abort(),f.current=null)},[]),E=m.useCallback(async()=>{if(!h.current||document.visibilityState==="hidden")return;C();const N=new AbortController;f.current=N;try{const T=await fetch("/api/plugins",{signal:N.signal});if(!h.current)return;const A=await T.json();if(!h.current)return;d.current=0,a(A.plugins??[]),u(!1),i(!1),x.current=setTimeout(()=>{h.current&&b(I=>I+1)},fk)}catch(T){if(!h.current||T instanceof DOMException&&T.name==="AbortError")return;if(d.current+=1,u(!1),d.current>uk){i(!0);return}const A=dk*Math.pow(2,d.current-1);x.current=setTimeout(()=>{h.current&&b(I=>I+1)},A)}},[C]);m.useEffect(()=>(h.current=!0,()=>{h.current=!1,S(),C()}),[C]),m.useEffect(()=>{document.visibilityState!=="hidden"&&(S(),E())},[v,E]),m.useEffect(()=>{const N=()=>{document.visibilityState==="hidden"?(S(),C()):(d.current=0,i(!1),b(T=>T+1))};return document.addEventListener("visibilitychange",N),()=>{document.removeEventListener("visibilitychange",N)}},[C]);const w=m.useCallback(()=>{d.current=0,i(!1),S(),y.current+=1,b(N=>N+1)},[]);return m.useEffect(()=>(ff.add(w),()=>{ff.delete(w)}),[w]),{plugins:t,paused:s,loading:c,retry:w}}const sc=0,ba=1,Fl=2,ry=4;function kg(t){return()=>t}function mk(t){t()}function ay(t,a){return s=>t(a(s))}function wg(t,a){return()=>t(a)}function hk(t,a){return s=>t(a,s)}function _f(t){return t!==void 0}function xk(...t){return()=>{t.map(mk)}}function Gl(){}function ic(t,a){return a(t),t}function gk(t,a){return a(t)}function Nt(...t){return t}function ct(t,a){return t(ba,a)}function Fe(t,a){t(sc,a)}function Of(t){t(Fl)}function Lt(t){return t(ry)}function Ae(t,a){return ct(t,hk(a,sc))}function sr(t,a){const s=t(ba,i=>{s(),a(i)});return s}function Cg(t){let a,s;return i=>c=>{a=c,s&&clearTimeout(s),s=setTimeout(()=>{i(a)},t)}}function ly(t,a){return t===a}function Et(t=ly){let a;return s=>i=>{t(a,i)||(a=i,s(i))}}function Ie(t){return a=>s=>{t(s)&&a(s)}}function we(t){return a=>ay(a,t)}function xr(t){return a=>()=>{a(t)}}function xe(t,...a){const s=vk(...a);return((i,c)=>{switch(i){case Fl:Of(t);return;case ba:return ct(t,s(c))}})}function gr(t,a){return s=>i=>{s(a=t(a,i))}}function Wa(t){return a=>s=>{t>0?t--:a(s)}}function Ur(t){let a=null,s;return i=>c=>{a=c,!s&&(s=setTimeout(()=>{s=void 0,i(a)},t))}}function We(...t){const a=new Array(t.length);let s=0,i=null;const c=2**t.length-1;return t.forEach((u,d)=>{const f=2**d;ct(u,x=>{const h=s;s|=f,a[d]=x,h!==c&&s===c&&i&&(i(),i=null)})}),u=>d=>{const f=()=>{u([d].concat(a))};s===c?f():i=f}}function vk(...t){return a=>t.reduceRight(gk,a)}function yk(t){let a,s;const i=()=>a==null?void 0:a();return function(c,u){switch(c){case ba:return u?s===u?void 0:(i(),s=u,a=ct(t,u),a):(i(),Gl);case Fl:i(),s=null;return}}}function ye(t){let a=t;const s=nt();return((i,c)=>{switch(i){case sc:a=c;break;case ba:{c(a);break}case ry:return a}return s(i,c)})}function pn(t,a){return ic(ye(a),s=>Ae(t,s))}function nt(){const t=[];return((a,s)=>{switch(a){case sc:t.slice().forEach(i=>{i(s)});return;case Fl:t.splice(0,t.length);return;case ba:return t.push(s),()=>{const i=t.indexOf(s);i>-1&&t.splice(i,1)}}})}function In(t){return ic(nt(),a=>Ae(t,a))}function st(t,a=[],{singleton:s}={singleton:!0}){return{constructor:t,dependencies:a,id:bk(),singleton:s}}const bk=()=>Symbol();function jk(t){const a=new Map,s=({constructor:i,dependencies:c,id:u,singleton:d})=>{if(d&&a.has(u))return a.get(u);const f=i(c.map(x=>s(x)));return d&&a.set(u,f),f};return s(t)}function Wt(...t){const a=nt(),s=new Array(t.length);let i=0;const c=2**t.length-1;return t.forEach((u,d)=>{const f=2**d;ct(u,x=>{s[d]=x,i|=f,i===c&&Fe(a,s)})}),function(u,d){switch(u){case Fl:{Of(a);return}case ba:return i===c&&d(s),ct(a,d)}}}function Be(t,a=ly){return xe(t,Et(a))}function pf(...t){return function(a,s){switch(a){case Fl:return;case ba:return xk(...t.map(i=>ct(i,s)))}}}const Xt={DEBUG:0,INFO:1,WARN:2,ERROR:3},Sk={[Xt.DEBUG]:"debug",[Xt.ERROR]:"error",[Xt.INFO]:"log",[Xt.WARN]:"warn"},kk=()=>typeof globalThis>"u"?window:globalThis,ja=st(()=>{const t=ye(Xt.ERROR);return{log:ye((a,s,i=Xt.INFO)=>{const c=kk().VIRTUOSO_LOG_LEVEL??Lt(t);i>=c&&console[Sk[i]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",a,s)}),logLevel:t}},[],{singleton:!0});function Ka(t,a,s){return Bf(t,a,s).callbackRef}function Bf(t,a,s){const i=Re.useRef(null);let c=d=>{};const u=Re.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(d=>{const f=()=>{const x=d[0].target;x.offsetParent!==null&&t(x)};s?f():requestAnimationFrame(f)}):null,[t,s]);return c=d=>{d&&a?(u==null||u.observe(d),i.current=d):(i.current&&(u==null||u.unobserve(i.current)),i.current=null)},{callbackRef:c,ref:i}}function wk(t,a,s,i,c,u,d,f,x){const h=Re.useCallback(y=>{const v=Ck(y.children,a,f?"offsetWidth":"offsetHeight",c);let b=y.parentElement;for(;b.dataset.virtuosoScroller===void 0;)b=b.parentElement;const S=b.lastElementChild.dataset.viewportType==="window";let C;S&&(C=b.ownerDocument.defaultView);const E=d?f?d.scrollLeft:d.scrollTop:S?f?C.scrollX||C.document.documentElement.scrollLeft:C.scrollY||C.document.documentElement.scrollTop:f?b.scrollLeft:b.scrollTop,w=d?f?d.scrollWidth:d.scrollHeight:S?f?C.document.documentElement.scrollWidth:C.document.documentElement.scrollHeight:f?b.scrollWidth:b.scrollHeight,N=d?f?d.offsetWidth:d.offsetHeight:S?f?C.innerWidth:C.innerHeight:f?b.offsetWidth:b.offsetHeight;i({scrollHeight:w,scrollTop:Math.max(E,0),viewportHeight:N}),u==null||u(f?Eg("column-gap",getComputedStyle(y).columnGap,c):Eg("row-gap",getComputedStyle(y).rowGap,c)),v!==null&&t(v)},[t,a,c,u,d,i,f]);return Bf(h,s,x)}function Ck(t,a,s,i){const c=t.length;if(c===0)return null;const u=[];for(let d=0;d<c;d++){const f=t.item(d);if(f.dataset.index===void 0)continue;const x=parseInt(f.dataset.index),h=parseFloat(f.dataset.knownSize),y=a(f,s);if(y===0&&i("Zero-sized element, this should not happen",{child:f},Xt.ERROR),y===h)continue;const v=u[u.length-1];u.length===0||v.size!==y||v.endIndex!==x-1?u.push({endIndex:x,size:y,startIndex:x}):u[u.length-1].endIndex++}return u}function Eg(t,a,s){return a!=="normal"&&(a==null?void 0:a.endsWith("px"))!==!0&&s(`${t} was not resolved to pixel value correctly`,a,Xt.WARN),a==="normal"?0:parseInt(a??"0",10)}function sy(t,a,s){const i=Re.useRef(null),c=Re.useCallback(x=>{if(!(x!=null&&x.offsetParent))return;const h=x.getBoundingClientRect(),y=h.width;let v,b;if(a){const S=a.getBoundingClientRect(),C=h.top-S.top;b=S.height-Math.max(0,C),v=C+a.scrollTop}else{const S=d.current.ownerDocument.defaultView;b=S.innerHeight-Math.max(0,h.top),v=h.top+S.scrollY}i.current={listHeight:h.height,offsetTop:v,visibleHeight:b,visibleWidth:y},t(i.current)},[t,a]),{callbackRef:u,ref:d}=Bf(c,!0,s),f=Re.useCallback(()=>{c(d.current)},[c,d]);return Re.useEffect(()=>{var h;if(a){a.addEventListener("scroll",f);const y=new ResizeObserver(()=>{requestAnimationFrame(f)});return y.observe(a),()=>{a.removeEventListener("scroll",f),y.unobserve(a)}}const x=(h=d.current)==null?void 0:h.ownerDocument.defaultView;return x==null||x.addEventListener("scroll",f),x==null||x.addEventListener("resize",f),()=>{x==null||x.removeEventListener("scroll",f),x==null||x.removeEventListener("resize",f)}},[f,a,d]),u}const yn=st(()=>{const t=nt(),a=nt(),s=ye(0),i=nt(),c=ye(0),u=nt(),d=nt(),f=ye(0),x=ye(0),h=ye(0),y=ye(0),v=nt(),b=nt(),S=ye(!1),C=ye(!1),E=ye(!1);return Ae(xe(t,we(({scrollTop:w})=>w)),a),Ae(xe(t,we(({scrollHeight:w})=>w)),d),Ae(a,c),{deviation:s,fixedFooterHeight:h,fixedHeaderHeight:x,footerHeight:y,headerHeight:f,horizontalDirection:C,scrollBy:b,scrollContainerState:t,scrollHeight:d,scrollingInProgress:S,scrollTo:v,scrollTop:a,skipAnimationFrameInResizeObserver:E,smoothScrollTargetReached:i,statefulScrollTop:c,viewportHeight:u}},[],{singleton:!0}),Zs={lvl:0};function iy(t,a){const s=t.length;if(s===0)return[];let{index:i,value:c}=a(t[0]);const u=[];for(let d=1;d<s;d++){const{index:f,value:x}=a(t[d]);u.push({end:f-1,start:i,value:c}),i=f,c=x}return u.push({end:1/0,start:i,value:c}),u}function xt(t){return t===Zs}function Js(t,a){if(!xt(t))return a===t.k?t.v:a<t.k?Js(t.l,a):Js(t.r,a)}function or(t,a,s="k"){if(xt(t))return[-1/0,void 0];if(Number(t[s])===a)return[t.k,t.v];if(Number(t[s])<a){const i=or(t.r,a,s);return i[0]===-1/0?[t.k,t.v]:i}return or(t.l,a,s)}function On(t,a,s){return xt(t)?uy(a,s,1):a===t.k?Kt(t,{k:a,v:s}):a<t.k?Ng(Kt(t,{l:On(t.l,a,s)})):Ng(Kt(t,{r:On(t.r,a,s)}))}function Ol(){return Zs}function Bl(t,a,s){if(xt(t))return[];const i=or(t,a)[0];return Ek(hf(t,i,s))}function mf(t,a){if(xt(t))return Zs;const{k:s,l:i,r:c}=t;if(a===s){if(xt(i))return c;if(xt(c))return i;const[u,d]=cy(i);return Po(Kt(t,{k:u,l:oy(i),v:d}))}return a<s?Po(Kt(t,{l:mf(i,a)})):Po(Kt(t,{r:mf(c,a)}))}function Fa(t){return xt(t)?[]:[...Fa(t.l),{k:t.k,v:t.v},...Fa(t.r)]}function hf(t,a,s){if(xt(t))return[];const{k:i,l:c,r:u,v:d}=t;let f=[];return i>a&&(f=f.concat(hf(c,a,s))),i>=a&&i<=s&&f.push({k:i,v:d}),i<=s&&(f=f.concat(hf(u,a,s))),f}function Po(t){const{l:a,lvl:s,r:i}=t;if(i.lvl>=s-1&&a.lvl>=s-1)return t;if(s>i.lvl+1){if(_d(a))return dy(Kt(t,{lvl:s-1}));if(!xt(a)&&!xt(a.r))return Kt(a.r,{l:Kt(a,{r:a.r.l}),lvl:s,r:Kt(t,{l:a.r.r,lvl:s-1})});throw new Error("Unexpected empty nodes")}if(_d(t))return xf(Kt(t,{lvl:s-1}));if(!xt(i)&&!xt(i.l)){const c=i.l,u=_d(c)?i.lvl-1:i.lvl;return Kt(c,{l:Kt(t,{lvl:s-1,r:c.l}),lvl:c.lvl+1,r:xf(Kt(i,{l:c.r,lvl:u}))})}throw new Error("Unexpected empty nodes")}function Kt(t,a){return uy(a.k!==void 0?a.k:t.k,a.v!==void 0?a.v:t.v,a.lvl!==void 0?a.lvl:t.lvl,a.l!==void 0?a.l:t.l,a.r!==void 0?a.r:t.r)}function oy(t){return xt(t.r)?t.l:Po(Kt(t,{r:oy(t.r)}))}function _d(t){return xt(t)||t.lvl>t.r.lvl}function cy(t){return xt(t.r)?[t.k,t.v]:cy(t.r)}function uy(t,a,s,i=Zs,c=Zs){return{k:t,l:i,lvl:s,r:c,v:a}}function Ng(t){return xf(dy(t))}function dy(t){const{l:a}=t;return!xt(a)&&a.lvl===t.lvl?Kt(a,{r:Kt(t,{l:a.r})}):t}function xf(t){const{lvl:a,r:s}=t;return!xt(s)&&!xt(s.r)&&s.lvl===a&&s.r.lvl===a?Kt(s,{l:Kt(t,{r:s.l}),lvl:a+1}):t}function Ek(t){return iy(t,({k:a,v:s})=>({index:a,value:s}))}function fy(t,a){return!!(t&&t.startIndex===a.startIndex&&t.endIndex===a.endIndex)}function ei(t,a){return!!(t&&t[0]===a[0]&&t[1]===a[1])}const If=st(()=>({recalcInProgress:ye(!1)}),[],{singleton:!0});function py(t,a,s){return t[qo(t,a,s)]}function qo(t,a,s,i=0){let c=t.length-1;for(;i<=c;){const u=Math.floor((i+c)/2),d=t[u],f=s(d,a);if(f===0)return u;if(f===-1){if(c-i<2)return u-1;c=u-1}else{if(c===i)return u;i=u+1}}throw new Error(`Failed binary finding record in array - ${t.join(",")}, searched for ${a}`)}function Nk(t,a,s,i){const c=qo(t,a,i),u=qo(t,s,i,c);return t.slice(c,u+1)}function va(t,a){return Math.round(t.getBoundingClientRect()[a])}function oc(t){return!xt(t.groupOffsetTree)}function $f({index:t},a){return a===t?0:a<t?-1:1}function Tk(){return{groupIndices:[],groupOffsetTree:Ol(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:Ol()}}function Rk(t,a){let s=xt(t)?0:1/0;for(const i of a){const{endIndex:c,size:u,startIndex:d}=i;if(s=Math.min(s,d),xt(t)){t=On(t,0,u);continue}const f=Bl(t,d-1,c+1);if(f.some(Ok(i)))continue;let x=!1,h=!1;for(const{end:y,start:v,value:b}of f)x?(c>=v||u===b)&&(t=mf(t,v)):(h=b!==u,x=!0),y>c&&c>=v&&b!==u&&(t=On(t,c+1,b));h&&(t=On(t,d,u))}return[t,s]}function Ak(t){return typeof t.groupIndex<"u"}function Lk({offset:t},a){return a===t?0:a<t?-1:1}function ti(t,a,s){if(a.length===0)return 0;const{index:i,offset:c,size:u}=py(a,t,$f),d=t-i,f=u*d+(d-1)*s+c;return f>0?f+s:f}function my(t,a){if(!oc(a))return t;let s=0;for(;a.groupIndices[s]<=t+s;)s++;return t+s}function hy(t,a,s){if(Ak(t))return a.groupIndices[t.groupIndex]+1;const i=t.index==="LAST"?s:t.index;let c=my(i,a);return c=Math.max(0,c,Math.min(s,c)),c}function Mk(t,a,s,i=0){return i>0&&(a=Math.max(a,py(t,i,$f).offset)),iy(Nk(t,a,s,Lk),_k)}function zk(t,[a,s,i,c]){a.length>0&&i("received item sizes",a,Xt.DEBUG);const u=t.sizeTree;let d=u,f=0;if(s.length>0&&xt(u)&&a.length===2){const b=a[0].size,S=a[1].size;d=s.reduce((C,E)=>On(On(C,E,b),E+1,S),d)}else[d,f]=Rk(d,a);if(d===u)return t;const{lastIndex:x,lastOffset:h,lastSize:y,offsetTree:v}=gf(t.offsetTree,f,d,c);return{groupIndices:s,groupOffsetTree:s.reduce((b,S)=>On(b,S,ti(S,v,c)),Ol()),lastIndex:x,lastOffset:h,lastSize:y,offsetTree:v,sizeTree:d}}function Dk(t){return Fa(t).map(({k:a,v:s},i,c)=>{const u=c[i+1];return{endIndex:u!==void 0?u.k-1:1/0,size:s,startIndex:a}})}function Tg(t,a){let s=0,i=0;for(;s<t;)s+=a[i+1]-a[i]-1,i++;return i-(s===t?0:1)}function gf(t,a,s,i){let c=t,u=0,d=0,f=0,x=0;if(a!==0){x=qo(c,a-1,$f),f=c[x].offset;const h=or(s,a-1);u=h[0],d=h[1],c.length&&c[x].size===or(s,a)[1]&&(x-=1),c=c.slice(0,x+1)}else c=[];for(const{start:h,value:y}of Bl(s,a,1/0)){const v=h-u,b=v*d+f+v*i;c.push({index:h,offset:b,size:y}),u=h,f=b,d=y}return{lastIndex:u,lastOffset:f,lastSize:d,offsetTree:c}}function _k(t){return{index:t.index,value:t}}function Ok(t){const{endIndex:a,size:s,startIndex:i}=t;return c=>c.start===i&&(c.end===a||c.end===1/0)&&c.value===s}const Bk={offsetHeight:"height",offsetWidth:"width"},br=st(([{log:t},{recalcInProgress:a}])=>{const s=nt(),i=nt(),c=pn(i,0),u=nt(),d=nt(),f=ye(0),x=ye([]),h=ye(void 0),y=ye(void 0),v=ye(void 0),b=ye(void 0),S=ye((k,O)=>va(k,Bk[O])),C=ye(void 0),E=ye(0),w=Tk(),N=pn(xe(s,We(x,t,E),gr(zk,w),Et()),w),T=pn(xe(x,Et(),gr((k,O)=>({current:O,prev:k.current}),{current:[],prev:[]}),we(({prev:k})=>k)),[]);Ae(xe(x,Ie(k=>k.length>0),We(N,E),we(([k,O,z])=>{const _=k.reduce(($,q,K)=>On($,q,ti(q,O.offsetTree,z)||K),Ol());return{...O,groupIndices:k,groupOffsetTree:_}})),N),Ae(xe(i,We(N),Ie(([k,{lastIndex:O}])=>k<O),we(([k,{lastIndex:O,lastSize:z}])=>[{endIndex:O,size:z,startIndex:k}])),s),Ae(h,y);const A=pn(xe(h,we(k=>k===void 0)),!0);Ae(xe(y,Ie(k=>k!==void 0&&xt(Lt(N).sizeTree)),we(k=>{const O=Lt(v),z=Lt(x).length>0;return O!==void 0&&O!==0?z?[{endIndex:0,size:O,startIndex:0},{endIndex:1,size:k,startIndex:1}]:[]:[{endIndex:0,size:k,startIndex:0}]})),s),Ae(xe(b,Ie(k=>k!==void 0&&k.length>0&&xt(Lt(N).sizeTree)),we(k=>{const O=[];let z=k[0],_=0;for(let $=1;$<k.length;$++){const q=k[$];q!==z&&(O.push({endIndex:$-1,size:z,startIndex:_}),z=q,_=$)}return O.push({endIndex:k.length-1,size:z,startIndex:_}),O})),s),Ae(xe(x,We(v,y),Ie(([,k,O])=>k!==void 0&&O!==void 0),we(([k,O,z])=>{const _=[];for(let $=0;$<k.length;$++){const q=k[$],K=k[$+1];_.push({startIndex:q,endIndex:q,size:O}),K!==void 0&&_.push({startIndex:q+1,endIndex:K-1,size:z})}return _})),s);const I=In(xe(s,We(N),gr(({sizes:k},[O,z])=>({changed:z!==k,sizes:z}),{changed:!1,sizes:w}),we(k=>k.changed)));ct(xe(f,gr((k,O)=>({diff:k.prev-O,prev:O}),{diff:0,prev:0}),we(k=>k.diff)),k=>{const{groupIndices:O}=Lt(N);if(k>0)Fe(a,!0),Fe(u,k+Tg(k,O));else if(k<0){const z=Lt(T);z.length>0&&(k-=Tg(-k,z)),Fe(d,k)}}),ct(xe(f,We(t)),([k,O])=>{k<0&&O("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:f},Xt.ERROR)});const L=In(u);Ae(xe(u,We(N),we(([k,O])=>{const z=O.groupIndices.length>0,_=[],$=O.lastSize;if(z){const q=Js(O.sizeTree,0);let K=0,Q=0;for(;K<k;){const M=O.groupIndices[Q],B=O.groupIndices.length===Q+1?1/0:O.groupIndices[Q+1]-M-1;_.push({endIndex:M,size:q,startIndex:M}),_.push({endIndex:M+1+B-1,size:$,startIndex:M+1}),Q++,K+=B+1}const U=Fa(O.sizeTree);return K!==k&&U.shift(),U.reduce((M,{k:B,v:F})=>{let te=M.ranges;return M.prevSize!==0&&(te=[...M.ranges,{endIndex:B+k-1,size:M.prevSize,startIndex:M.prevIndex}]),{prevIndex:B+k,prevSize:F,ranges:te}},{prevIndex:k,prevSize:0,ranges:_}).ranges}return Fa(O.sizeTree).reduce((q,{k:K,v:Q})=>({prevIndex:K+k,prevSize:Q,ranges:[...q.ranges,{endIndex:K+k-1,size:q.prevSize,startIndex:q.prevIndex}]}),{prevIndex:0,prevSize:$,ranges:[]}).ranges})),s);const H=In(xe(d,We(N,E),we(([k,{offsetTree:O},z])=>{const _=-k;return ti(_,O,z)})));return Ae(xe(d,We(N,E),we(([k,O,z])=>{if(O.groupIndices.length>0){if(xt(O.sizeTree))return O;let $=Ol();const q=Lt(T);let K=0,Q=0,U=0;for(;K<-k;){U=q[Q];const M=q[Q+1]-U-1;Q++,K+=M+1}if($=Fa(O.sizeTree).reduce((M,{k:B,v:F})=>On(M,Math.max(0,B+k),F),$),K!==-k){const M=Js(O.sizeTree,U);$=On($,0,M);const B=or(O.sizeTree,-k+1)[1];$=On($,1,B)}return{...O,sizeTree:$,...gf(O.offsetTree,0,$,z)}}const _=Fa(O.sizeTree).reduce(($,{k:q,v:K})=>On($,Math.max(0,q+k),K),Ol());return{...O,sizeTree:_,...gf(O.offsetTree,0,_,z)}})),N),{beforeUnshiftWith:L,data:C,defaultItemSize:y,firstItemIndex:f,fixedItemSize:h,fixedGroupSize:v,gap:E,groupIndices:x,heightEstimates:b,itemSize:S,listRefresh:I,shiftWith:d,shiftWithOffset:H,sizeRanges:s,sizes:N,statefulTotalCount:c,totalCount:i,trackItemSizes:A,unshiftWith:u}},Nt(ja,If),{singleton:!0});function Ik(t){return t.reduce((a,s)=>(a.groupIndices.push(a.totalCount),a.totalCount+=s+1,a),{groupIndices:[],totalCount:0})}const xy=st(([{groupIndices:t,sizes:a,totalCount:s},{headerHeight:i,scrollTop:c}])=>{const u=nt(),d=nt(),f=In(xe(u,we(Ik)));return Ae(xe(f,we(x=>x.totalCount)),s),Ae(xe(f,we(x=>x.groupIndices)),t),Ae(xe(Wt(c,a,i),Ie(([x,h])=>oc(h)),we(([x,h,y])=>or(h.groupOffsetTree,Math.max(x-y,0),"v")[0]),Et(),we(x=>[x])),d),{groupCounts:u,topItemsIndexes:d}},Nt(br,yn)),Sa=st(([{log:t}])=>{const a=ye(!1),s=In(xe(a,Ie(i=>i),Et()));return ct(a,i=>{i&&Lt(t)("props updated",{},Xt.DEBUG)}),{didMount:s,propsReady:a}},Nt(ja),{singleton:!0}),$k=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function gy(t){const a=typeof t=="number"?{index:t}:t;return a.align||(a.align="start"),(!a.behavior||!$k)&&(a.behavior="auto"),a.offset===void 0&&(a.offset=0),a}const ii=st(([{gap:t,listRefresh:a,sizes:s,totalCount:i},{fixedFooterHeight:c,fixedHeaderHeight:u,footerHeight:d,headerHeight:f,scrollingInProgress:x,scrollTo:h,smoothScrollTargetReached:y,viewportHeight:v},{log:b}])=>{const S=nt(),C=nt(),E=ye(0);let w=null,N=null,T=null;function A(){w!==null&&(w(),w=null),T!==null&&(T(),T=null),N&&(clearTimeout(N),N=null),Fe(x,!1)}return Ae(xe(S,We(s,v,i,E,f,d,b),We(t,u,c),we(([[I,L,H,k,O,z,_,$],q,K,Q])=>{const U=gy(I),{align:M,behavior:B,offset:F}=U,te=k-1,V=hy(U,L,te);let D=ti(V,L.offsetTree,q)+z;M==="end"?(D+=K+or(L.sizeTree,V)[1]-H+Q,V===te&&(D+=_)):M==="center"?D+=(K+or(L.sizeTree,V)[1]-H+Q)/2:D-=O,F!==void 0&&F!==0&&(D+=F);const W=X=>{A(),X?($("retrying to scroll to",{location:I},Xt.DEBUG),Fe(S,I)):(Fe(C,!0),$("list did not change, scroll successful",{},Xt.DEBUG))};if(A(),B==="smooth"){let X=!1;T=ct(a,ee=>{X=X||ee}),w=sr(y,()=>{W(X)})}else w=sr(xe(a,Uk(150)),W);return N=setTimeout(()=>{A()},1200),Fe(x,!0),$("scrolling from index to",{behavior:B,index:V,top:D},Xt.DEBUG),{behavior:B,top:D}})),h),{scrollTargetReached:C,scrollToIndex:S,topListHeight:E}},Nt(br,yn,ja),{singleton:!0});function Uk(t){return a=>{const s=setTimeout(()=>{a(!1)},t);return i=>{i&&(a(!0),clearTimeout(s))}}}function Uf(t,a){t===0?a():requestAnimationFrame(()=>{Uf(t-1,a)})}function Hf(t,a){const s=a-1;return typeof t=="number"?t:t.index==="LAST"?s:t.index}const oi=st(([{defaultItemSize:t,listRefresh:a,sizes:s},{scrollTop:i},{scrollTargetReached:c,scrollToIndex:u},{didMount:d}])=>{const f=ye(!0),x=ye(0),h=ye(!0);return Ae(xe(d,We(x),Ie(([y,v])=>v!==0),xr(!1)),f),Ae(xe(d,We(x),Ie(([y,v])=>v!==0),xr(!1)),h),ct(xe(Wt(a,d),We(f,s,t,h),Ie(([[,y],v,{sizeTree:b},S,C])=>y&&(!xt(b)||_f(S))&&!v&&!C),We(x)),([,y])=>{sr(c,()=>{Fe(h,!0)}),Uf(4,()=>{sr(i,()=>{Fe(f,!0)}),Fe(u,y)})}),{initialItemFinalLocationReached:h,initialTopMostItemIndex:x,scrolledToInitialItem:f}},Nt(br,yn,ii,Sa),{singleton:!0});function vy(t,a){return Math.abs(t-a)<1.01}const ni="up",Ws="down",Hk="none",Pk={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},Vk=0,ci=st(([{footerHeight:t,headerHeight:a,scrollBy:s,scrollContainerState:i,scrollTop:c,viewportHeight:u}])=>{const d=ye(!1),f=ye(!0),x=nt(),h=nt(),y=ye(4),v=ye(Vk),b=pn(xe(pf(xe(Be(c),Wa(1),xr(!0)),xe(Be(c),Wa(1),xr(!1),Cg(100))),Et()),!1),S=pn(xe(pf(xe(s,xr(!0)),xe(s,xr(!1),Cg(200))),Et()),!1);Ae(xe(Wt(Be(c),Be(v)),we(([T,A])=>T<=A),Et()),f),Ae(xe(f,Ur(50)),h);const C=In(xe(Wt(i,Be(u),Be(a),Be(t),Be(y)),gr((T,[{scrollHeight:A,scrollTop:I},L,H,k,O])=>{const z=I+L-A>-O,_={scrollHeight:A,scrollTop:I,viewportHeight:L};if(z){let q,K;return I>T.state.scrollTop?(q="SCROLLED_DOWN",K=T.state.scrollTop-I):(q="SIZE_DECREASED",K=T.state.scrollTop-I||T.scrollTopDelta),{atBottom:!0,atBottomBecause:q,scrollTopDelta:K,state:_}}let $;return _.scrollHeight>T.state.scrollHeight?$="SIZE_INCREASED":L<T.state.viewportHeight?$="VIEWPORT_HEIGHT_DECREASING":I<T.state.scrollTop?$="SCROLLING_UPWARDS":$="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:$,state:_}},Pk),Et((T,A)=>T!==void 0&&T.atBottom===A.atBottom))),E=pn(xe(i,gr((T,{scrollHeight:A,scrollTop:I,viewportHeight:L})=>{if(!vy(T.scrollHeight,A)){const H=A-(I+L)<1;return T.scrollTop!==I&&H?{changed:!0,jump:T.scrollTop-I,scrollHeight:A,scrollTop:I}:{changed:!0,jump:0,scrollHeight:A,scrollTop:I}}return{changed:!1,jump:0,scrollHeight:A,scrollTop:I}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),Ie(T=>T.changed),we(T=>T.jump)),0);Ae(xe(C,we(T=>T.atBottom)),d),Ae(xe(d,Ur(50)),x);const w=ye(Ws);Ae(xe(i,we(({scrollTop:T})=>T),Et(),gr((T,A)=>Lt(S)?{direction:T.direction,prevScrollTop:A}:{direction:A<T.prevScrollTop?ni:Ws,prevScrollTop:A},{direction:Ws,prevScrollTop:0}),we(T=>T.direction)),w),Ae(xe(i,Ur(50),xr(Hk)),w);const N=ye(0);return Ae(xe(b,Ie(T=>!T),xr(0)),N),Ae(xe(c,Ur(100),We(b),Ie(([T,A])=>A),gr(([T,A],[I])=>[A,I],[0,0]),we(([T,A])=>A-T)),N),{atBottomState:C,atBottomStateChange:x,atBottomThreshold:y,atTopStateChange:h,atTopThreshold:v,isAtBottom:d,isAtTop:f,isScrolling:b,lastJumpDueToItemResize:E,scrollDirection:w,scrollVelocity:N}},Nt(yn)),ri="top",ai="bottom",Rg="none";function Ag(t,a,s){return typeof t=="number"?s===ni&&a===ri||s===Ws&&a===ai?t:0:s===ni?a===ri?t.main:t.reverse:a===ai?t.main:t.reverse}function Lg(t,a){return typeof t=="number"?t:t[a]??0}const Pf=st(([{deviation:t,fixedHeaderHeight:a,headerHeight:s,scrollTop:i,viewportHeight:c}])=>{const u=nt(),d=ye(0),f=ye(0),x=ye(0),h=pn(xe(Wt(Be(i),Be(c),Be(s),Be(u,ei),Be(x),Be(d),Be(a),Be(t),Be(f)),we(([y,v,b,[S,C],E,w,N,T,A])=>{const I=y-T,L=w+N,H=Math.max(b-I,0);let k=Rg;const O=Lg(A,ri),z=Lg(A,ai);return S-=T,S+=b+N,C+=b+N,C-=T,S>y+L-O&&(k=ni),C<y-H+v+z&&(k=Ws),k!==Rg?[Math.max(I-b-Ag(E,ri,k)-O,0),I-H-N+v+Ag(E,ai,k)+z]:null}),Ie(y=>y!==null),Et(ei)),[0,0]);return{increaseViewportBy:f,listBoundary:u,overscan:x,topListHeight:d,visibleRange:h}},Nt(yn),{singleton:!0});function Fk(t,a,s){if(oc(a)){const i=my(t,a);return[{index:or(a.groupOffsetTree,i)[0],offset:0,size:0},{data:s==null?void 0:s[0],index:i,offset:0,size:0}]}return[{data:s==null?void 0:s[0],index:t,offset:0,size:0}]}const Od={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Vo(t,a,s,i,c,u){const{lastIndex:d,lastOffset:f,lastSize:x}=c;let h=0,y=0;if(t.length>0){h=t[0].offset;const E=t[t.length-1];y=E.offset+E.size}const v=s-d,b=f+v*x+(v-1)*i,S=h,C=b-y;return{bottom:y,firstItemIndex:u,items:Mg(t,c,u),offsetBottom:C,offsetTop:h,top:S,topItems:Mg(a,c,u),topListHeight:a.reduce((E,w)=>w.size+E,0),totalCount:s}}function yy(t,a,s,i,c,u){let d=0;if(s.groupIndices.length>0)for(const y of s.groupIndices){if(y-d>=t)break;d++}const f=t+d,x=Hf(a,f),h=Array.from({length:f}).map((y,v)=>({data:u[v+x],index:v+x,offset:0,size:0}));return Vo(h,[],f,c,s,i)}function Mg(t,a,s){if(t.length===0)return[];if(!oc(a))return t.map(h=>({...h,index:h.index+s,originalIndex:h.index}));const i=t[0].index,c=t[t.length-1].index,u=[],d=Bl(a.groupOffsetTree,i,c);let f,x=0;for(const h of t){(!f||f.end<h.index)&&(f=d.shift(),x=a.groupIndices.indexOf(f.start));let y;h.index===f.start?y={index:x,type:"group"}:y={groupIndex:x,index:h.index-(x+1)+s},u.push({...y,data:h.data,offset:h.offset,originalIndex:h.index,size:h.size})}return u}function zg(t,a){return t===void 0?0:typeof t=="number"?t:t[a]??0}const Xa=st(([{data:t,firstItemIndex:a,gap:s,sizes:i,totalCount:c},u,{listBoundary:d,topListHeight:f,visibleRange:x},{initialTopMostItemIndex:h,scrolledToInitialItem:y},{topListHeight:v},b,{didMount:S},{recalcInProgress:C}])=>{const E=ye([]),w=ye(0),N=nt(),T=ye(0);Ae(u.topItemsIndexes,E);const A=pn(xe(Wt(S,C,Be(x,ei),Be(c),Be(i),Be(h),y,Be(E),Be(a),Be(s),Be(T),t),Ie(([k,O,,z,,,,,,,,_])=>{const $=_!==void 0&&_.length!==z;return k&&!O&&!$}),we(([,,[k,O],z,_,$,q,K,Q,U,M,B])=>{var ge,Le;const F=_,{offsetTree:te,sizeTree:V}=F,D=Lt(w);if(z===0)return{...Od,totalCount:z};if(k===0&&O===0)return D===0?{...Od,totalCount:z}:yy(D,$,_,Q,U,B||[]);if(xt(V))return D>0?null:Vo(Fk(Hf($,z),F,B),[],z,U,F,Q);const W=[];if(K.length>0){const Ee=K[0],Me=K[K.length-1];let Pe=0;for(const ie of Bl(V,Ee,Me)){const fe=ie.value,he=Math.max(ie.start,Ee),be=Math.min(ie.end,Me);for(let je=he;je<=be;je++)W.push({data:B==null?void 0:B[je],index:je,offset:Pe,size:fe}),Pe+=fe}}if(!q)return Vo([],W,z,U,F,Q);const X=K.length>0?K[K.length-1]+1:0,ee=Mk(te,k,O,X);if(ee.length===0)return null;const de=z-1,le=ic([],Ee=>{for(const Me of ee){const Pe=Me.value;let ie=Pe.offset,fe=Me.start;const he=Pe.size;if(Pe.offset<k){fe+=Math.floor((k-Pe.offset+U)/(he+U));const je=fe-Me.start;ie+=je*he+je*U}fe<X&&(ie+=(X-fe)*he,fe=X);const be=Math.min(Me.end,de);for(let je=fe;je<=be&&!(ie>=O);je++)Ee.push({data:B==null?void 0:B[je],index:je,offset:ie,size:he}),ie+=he+U}}),ce=zg(M,ri),ne=zg(M,ai);if(le.length>0&&(ce>0||ne>0)){const Ee=le[0],Me=le[le.length-1];if(ce>0&&Ee.index>X){const Pe=Math.min(ce,Ee.index-X),ie=[];let fe=Ee.offset;for(let he=Ee.index-1;he>=Ee.index-Pe;he--){const be=((ge=Bl(V,he,he)[0])==null?void 0:ge.value)??Ee.size;fe-=be+U,ie.unshift({data:B==null?void 0:B[he],index:he,offset:fe,size:be})}le.unshift(...ie)}if(ne>0&&Me.index<de){const Pe=Math.min(ne,de-Me.index);let ie=Me.offset+Me.size+U;for(let fe=Me.index+1;fe<=Me.index+Pe;fe++){const he=((Le=Bl(V,fe,fe)[0])==null?void 0:Le.value)??Me.size;le.push({data:B==null?void 0:B[fe],index:fe,offset:ie,size:he}),ie+=he+U}}}return Vo(le,W,z,U,F,Q)}),Ie(k=>k!==null),Et()),Od);Ae(xe(t,Ie(_f),we(k=>k==null?void 0:k.length)),c),Ae(xe(A,we(k=>k.topListHeight)),v),Ae(v,f),Ae(xe(A,we(k=>[k.top,k.bottom])),d),Ae(xe(A,we(k=>k.items)),N);const I=In(xe(A,Ie(({items:k})=>k.length>0),We(c,t),Ie(([{items:k},O])=>k[k.length-1].originalIndex===O-1),we(([,k,O])=>[k-1,O]),Et(ei),we(([k])=>k))),L=In(xe(A,Ur(200),Ie(({items:k,topItems:O})=>k.length>0&&k[0].originalIndex===O.length),we(({items:k})=>k[0].index),Et())),H=In(xe(A,Ie(({items:k})=>k.length>0),we(({items:k})=>{let O=0,z=k.length-1;for(;k[O].type==="group"&&O<z;)O++;for(;k[z].type==="group"&&z>O;)z--;return{endIndex:k[z].index,startIndex:k[O].index}}),Et(fy)));return{endReached:I,initialItemCount:w,itemsRendered:N,listState:A,minOverscanItemCount:T,rangeChanged:H,startReached:L,topItemsIndexes:E,...b}},Nt(br,xy,Pf,oi,ii,ci,Sa,If),{singleton:!0}),by=st(([{fixedFooterHeight:t,fixedHeaderHeight:a,footerHeight:s,headerHeight:i},{listState:c}])=>{const u=nt(),d=pn(xe(Wt(s,t,i,a,c),we(([f,x,h,y,v])=>f+x+h+y+v.offsetBottom+v.bottom)),0);return Ae(Be(d),u),{totalListHeight:d,totalListHeightChanged:u}},Nt(yn,Xa),{singleton:!0}),Gk=st(([{viewportHeight:t},{totalListHeight:a}])=>{const s=ye(!1),i=pn(xe(Wt(s,t,a),Ie(([c])=>c),we(([,c,u])=>Math.max(0,c-u)),Ur(0),Et()),0);return{alignToBottom:s,paddingTopAddition:i}},Nt(yn,by),{singleton:!0}),jy=st(()=>({context:ye(null)})),Wk=({itemBottom:t,itemTop:a,locationParams:{align:s,behavior:i,...c},viewportBottom:u,viewportTop:d})=>a<d?{...c,align:s??"start",...i!==void 0?{behavior:i}:{}}:t>u?{...c,align:s??"end",...i!==void 0?{behavior:i}:{}}:null,Sy=st(([{gap:t,sizes:a,totalCount:s},{fixedFooterHeight:i,fixedHeaderHeight:c,headerHeight:u,scrollingInProgress:d,scrollTop:f,viewportHeight:x},{scrollToIndex:h}])=>{const y=nt();return Ae(xe(y,We(a,x,s,u,c,i,f),We(t),we(([[v,b,S,C,E,w,N,T],A])=>{const{calculateViewLocation:I=Wk,done:L,...H}=v,k=hy(v,b,C-1),O=ti(k,b.offsetTree,A)+E+w,z=O+or(b.sizeTree,k)[1],_=T+w,$=T+S-N,q=I({itemBottom:z,itemTop:O,locationParams:H,viewportBottom:$,viewportTop:_});return q!==null?L&&sr(xe(d,Ie(K=>!K),Wa(Lt(d)?1:2)),L):L==null||L(),q}),Ie(v=>v!==null)),h),{scrollIntoView:y}},Nt(br,yn,ii,Xa,ja),{singleton:!0});function Dg(t){return t===!1?!1:t==="smooth"?"smooth":"auto"}const qk=(t,a)=>typeof t=="function"?Dg(t(a)):a&&Dg(t),Yk=st(([{listRefresh:t,totalCount:a,fixedItemSize:s,data:i},{atBottomState:c,isAtBottom:u},{scrollToIndex:d},{scrolledToInitialItem:f},{didMount:x,propsReady:h},{log:y},{scrollingInProgress:v},{context:b},{scrollIntoView:S}])=>{const C=ye(!1),E=nt();let w=null;function N(L){Fe(d,{align:"end",behavior:L,index:"LAST"})}ct(xe(Wt(xe(Be(a),Wa(1)),x),We(Be(C),u,f,v),we(([[L,H],k,O,z,_])=>{let $=H&&z,q="auto";return $&&(q=qk(k,O||_),$=$&&q!==!1),{followOutputBehavior:q,shouldFollow:$,totalCount:L}}),Ie(({shouldFollow:L})=>L)),({followOutputBehavior:L,totalCount:H})=>{w!==null&&(w(),w=null),Lt(s)!==void 0?requestAnimationFrame(()=>{Lt(y)("following output to ",{totalCount:H},Xt.DEBUG),N(L)}):w=sr(t,()=>{Lt(y)("following output to ",{totalCount:H},Xt.DEBUG),N(L),w=null})});function T(L){const H=sr(c,k=>{L&&!k.atBottom&&k.notAtBottomBecause==="SIZE_INCREASED"&&w===null&&(Lt(y)("scrolling to bottom due to increased size",{},Xt.DEBUG),N("auto"))});setTimeout(H,100)}ct(xe(Wt(Be(C),a,h),Ie(([L,,H])=>L!==!1&&H),gr(({value:L},[,H])=>({refreshed:L===H,value:H}),{refreshed:!1,value:0}),Ie(({refreshed:L})=>L),We(C,a)),([,L])=>{Lt(f)&&T(L!==!1)}),ct(E,()=>{T(Lt(C)!==!1)}),ct(Wt(Be(C),c),([L,H])=>{L!==!1&&!H.atBottom&&H.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&N("auto")});const A=ye(null),I=nt();return Ae(pf(xe(Be(i),we(L=>(L==null?void 0:L.length)??0)),xe(Be(a))),I),ct(xe(Wt(xe(I,Wa(1)),x),We(Be(A),f,v,b),we(([[L,H],k,O,z,_])=>H&&O&&(k==null?void 0:k({context:_,totalCount:L,scrollingInProgress:z}))),Ie(L=>!!L),Ur(0)),L=>{w!==null&&(w(),w=null),Lt(s)!==void 0?requestAnimationFrame(()=>{Lt(y)("scrolling into view",{}),Fe(S,L)}):w=sr(t,()=>{Lt(y)("scrolling into view",{}),Fe(S,L),w=null})}),{autoscrollToBottom:E,followOutput:C,scrollIntoViewOnChange:A}},Nt(br,ci,ii,oi,Sa,ja,yn,jy,Sy)),Kk=st(([{data:t,firstItemIndex:a,gap:s,sizes:i},{initialTopMostItemIndex:c},{initialItemCount:u,listState:d},{didMount:f}])=>(Ae(xe(f,We(u),Ie(([,x])=>x!==0),We(c,i,a,s,t),we(([[,x],h,y,v,b,S=[]])=>yy(x,h,y,v,b,S))),d),{}),Nt(br,oi,Xa,Sa),{singleton:!0}),Xk=st(([{didMount:t},{scrollTo:a},{listState:s}])=>{const i=ye(0);return ct(xe(t,We(i),Ie(([,c])=>c!==0),we(([,c])=>({top:c}))),c=>{sr(xe(s,Wa(1),Ie(u=>u.items.length>1)),()=>{requestAnimationFrame(()=>{Fe(a,c)})})}),{initialScrollTop:i}},Nt(Sa,yn,Xa),{singleton:!0}),ky=st(([{scrollVelocity:t}])=>{const a=ye(!1),s=nt(),i=ye(!1);return Ae(xe(t,We(i,a,s),Ie(([c,u])=>u!==!1&&u!==void 0),we(([c,u,d,f])=>{const{enter:x,exit:h}=u;if(d){if(h(c,f))return!1}else if(x(c,f))return!0;return d}),Et()),a),ct(xe(Wt(a,t,s),We(i)),([[c,u,d],f])=>{c&&f!==!1&&f!==void 0&&f.change&&f.change(u,d)}),{isSeeking:a,scrollSeekConfiguration:i,scrollSeekRangeChanged:s,scrollVelocity:t}},Nt(ci),{singleton:!0}),Vf=st(([{scrollContainerState:t,scrollTo:a}])=>{const s=nt(),i=nt(),c=nt(),u=ye(!1),d=ye(void 0);return Ae(xe(Wt(s,i),we(([{scrollTop:f,viewportHeight:x},{offsetTop:h,listHeight:y}])=>({scrollHeight:y,scrollTop:Math.max(0,f-h),viewportHeight:x}))),t),Ae(xe(a,We(i),we(([f,{offsetTop:x}])=>({...f,top:f.top+x}))),c),{customScrollParent:d,useWindowScroll:u,windowScrollContainerState:s,windowScrollTo:c,windowViewportRect:i}},Nt(yn)),Qk=st(([{sizeRanges:t,sizes:a},{headerHeight:s,scrollTop:i},{initialTopMostItemIndex:c},{didMount:u},{useWindowScroll:d,windowScrollContainerState:f,windowViewportRect:x}])=>{const h=nt(),y=ye(void 0),v=ye(null),b=ye(null);return Ae(f,v),Ae(x,b),ct(xe(h,We(a,i,d,v,b,s)),([S,C,E,w,N,T,A])=>{const I=Dk(C.sizeTree);w&&N!==null&&T!==null&&(E=N.scrollTop-T.offsetTop),E-=A,S({ranges:I,scrollTop:E})}),Ae(xe(y,Ie(_f),we(Zk)),c),Ae(xe(u,We(y),Ie(([,S])=>S!==void 0),Et(),we(([,S])=>S.ranges)),t),{getState:h,restoreStateFrom:y}},Nt(br,yn,oi,Sa,Vf));function Zk(t){return{align:"start",index:0,offset:t.scrollTop}}const Jk=st(([{topItemsIndexes:t}])=>{const a=ye(0);return Ae(xe(a,Ie(s=>s>=0),we(s=>Array.from({length:s}).map((i,c)=>c))),t),{topItemCount:a}},Nt(Xa));function wy(t){let a=!1,s;return(()=>(a||(a=!0,s=t()),s))}const ew=wy(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),tw=st(([{deviation:t,scrollBy:a,scrollingInProgress:s,scrollTop:i},{isAtBottom:c,isScrolling:u,lastJumpDueToItemResize:d,scrollDirection:f},{listState:x},{beforeUnshiftWith:h,gap:y,shiftWithOffset:v,sizes:b},{log:S},{recalcInProgress:C}])=>{const E=In(xe(x,We(d),gr(([,N,T,A],[{bottom:I,items:L,offsetBottom:H,totalCount:k},O])=>{const z=I+H;let _=0;return T===k&&N.length>0&&L.length>0&&(L[0].originalIndex===0&&N[0].originalIndex===0||(_=z-A,_!==0&&(_+=O))),[_,L,k,z]},[0,[],0,0]),Ie(([N])=>N!==0),We(i,f,s,c,S,C),Ie(([,N,T,A,,,I])=>!I&&!A&&N!==0&&T===ni),we(([[N],,,,,T])=>(T("Upward scrolling compensation",{amount:N},Xt.DEBUG),N))));function w(N){N>0?(Fe(a,{behavior:"auto",top:-N}),Fe(t,0)):(Fe(t,0),Fe(a,{behavior:"auto",top:-N}))}return ct(xe(E,We(t,u)),([N,T,A])=>{A&&ew()?Fe(t,T-N):w(-N)}),ct(xe(Wt(pn(u,!1),t,C),Ie(([N,T,A])=>!N&&!A&&T!==0),we(([N,T])=>T),Ur(1)),w),Ae(xe(v,we(N=>({top:-N}))),a),ct(xe(h,We(b,y),we(([N,{groupIndices:T,lastSize:A,sizeTree:I},L])=>{function H($){return $*(A+L)}if(T.length===0)return H(N);let k=0;const O=Js(I,0);let z=0,_=0;for(;z<N;){z++,k+=O;let $=T.length===_+1?1/0:T[_+1]-T[_]-1;z+$>N&&(k-=O,$=N-z+1),z+=$,k+=H($),_++}return k})),N=>{Fe(t,N),requestAnimationFrame(()=>{Fe(a,{top:N}),requestAnimationFrame(()=>{Fe(t,0),Fe(C,!1)})})}),{deviation:t}},Nt(yn,ci,Xa,br,ja,If)),nw=st(([t,a,s,i,c,u,d,f,x,h,y])=>({...t,...a,...s,...i,...c,...u,...d,...f,...x,...h,...y}),Nt(Pf,Kk,Sa,ky,by,Xk,Gk,Vf,Sy,ja,jy)),Cy=st(([{data:t,defaultItemSize:a,firstItemIndex:s,fixedItemSize:i,fixedGroupSize:c,gap:u,groupIndices:d,heightEstimates:f,itemSize:x,sizeRanges:h,sizes:y,statefulTotalCount:v,totalCount:b,trackItemSizes:S},{initialItemFinalLocationReached:C,initialTopMostItemIndex:E,scrolledToInitialItem:w},N,T,A,I,{scrollToIndex:L},H,{topItemCount:k},{groupCounts:O},z])=>{const{listState:_,minOverscanItemCount:$,topItemsIndexes:q,rangeChanged:K,...Q}=I;return Ae(K,z.scrollSeekRangeChanged),Ae(xe(z.windowViewportRect,we(U=>U.visibleHeight)),N.viewportHeight),{data:t,defaultItemHeight:a,firstItemIndex:s,fixedItemHeight:i,fixedGroupHeight:c,gap:u,groupCounts:O,heightEstimates:f,initialItemFinalLocationReached:C,initialTopMostItemIndex:E,scrolledToInitialItem:w,sizeRanges:h,topItemCount:k,topItemsIndexes:q,totalCount:b,...A,groupIndices:d,itemSize:x,listState:_,minOverscanItemCount:$,scrollToIndex:L,statefulTotalCount:v,trackItemSizes:S,rangeChanged:K,...Q,...z,...N,sizes:y,...T}},Nt(br,oi,yn,Qk,Yk,Xa,ii,tw,Jk,xy,nw));function rw(t,a){const s={},i={};let c=0;const u=t.length;for(;c<u;)i[t[c]]=1,c+=1;for(const d in a)Object.hasOwn(i,d)||(s[d]=a[d]);return s}const To=typeof document<"u"?Re.useLayoutEffect:Re.useEffect;function Ey(t,a,s){const i=Object.keys(a.required||{}),c=Object.keys(a.optional||{}),u=Object.keys(a.methods||{}),d=Object.keys(a.events||{}),f=Re.createContext({});function x(w,N){w.propsReady!==void 0&&Fe(w.propsReady,!1);for(const T of i){const A=w[a.required[T]];Fe(A,N[T])}for(const T of c)if(T in N){const A=w[a.optional[T]];Fe(A,N[T])}w.propsReady!==void 0&&Fe(w.propsReady,!0)}function h(w){return u.reduce((N,T)=>(N[T]=A=>{const I=w[a.methods[T]];Fe(I,A)},N),{})}function y(w){return d.reduce((N,T)=>(N[T]=yk(w[a.events[T]]),N),{})}const v=Re.forwardRef(function(w,N){const{children:T,...A}=w,[I]=Re.useState(()=>ic(jk(t),k=>{x(k,A)})),[L]=Re.useState(wg(y,I));To(()=>{for(const k of d)k in A&&ct(L[k],A[k]);return()=>{Object.values(L).map(Of)}},[A,L,I]),To(()=>{x(I,A)}),Re.useImperativeHandle(N,kg(h(I)));const H=s;return r.jsx(f.Provider,{value:I,children:s!==void 0?r.jsx(H,{...rw([...i,...c,...d],A),children:T}):T})}),b=w=>{const N=Re.useContext(f);return Re.useCallback(T=>{Fe(N[w],T)},[N,w])},S=w=>{const N=Re.useContext(f)[w],T=Re.useCallback(A=>ct(N,A),[N]);return Re.useSyncExternalStore(T,()=>Lt(N),()=>Lt(N))},C=w=>{const N=Re.useContext(f)[w],[T,A]=Re.useState(wg(Lt,N));return To(()=>ct(N,I=>{I!==T&&A(kg(I))}),[N,T]),T},E=parseInt(Re.version)>=18?S:C;return{Component:v,useEmitter:(w,N)=>{const T=Re.useContext(f)[w];To(()=>ct(T,N),[N,T])},useEmitterValue:E,usePublisher:b}}const Ny=Re.createContext(void 0),Ty=Re.createContext(void 0),Bd="-webkit-sticky",_g="sticky",Ff=wy(()=>{if(typeof document>"u")return _g;const t=document.createElement("div");return t.style.position=Bd,t.style.position===Bd?Bd:_g}),Ry=typeof document<"u"?Re.useLayoutEffect:Re.useEffect;function Id(t){return"self"in t}function aw(t){return"body"in t}function Ay(t,a,s,i=Gl,c,u){const d=Re.useRef(null),f=Re.useRef(null),x=Re.useRef(null),h=Re.useCallback(b=>{let S,C,E;const w=b.target;if(aw(w)||Id(w)){const T=Id(w)?w:w.defaultView;E=u===!0?T.scrollX:T.scrollY,S=u===!0?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight,C=u===!0?T.innerWidth:T.innerHeight}else E=u===!0?w.scrollLeft:w.scrollTop,S=u===!0?w.scrollWidth:w.scrollHeight,C=u===!0?w.offsetWidth:w.offsetHeight;const N=()=>{t({scrollHeight:S,scrollTop:Math.max(E,0),viewportHeight:C})};b.suppressFlushSync===!0?N():vS.flushSync(N),f.current!==null&&(E===f.current||E<=0||E===S-C)&&(f.current=null,a(!0),x.current&&(clearTimeout(x.current),x.current=null))},[t,a,u]);Re.useEffect(()=>{const b=c||d.current;return i(c||d.current),h({suppressFlushSync:!0,target:b}),b.addEventListener("scroll",h,{passive:!0}),()=>{i(null),b.removeEventListener("scroll",h)}},[d,h,s,i,c]);function y(b){const S=d.current;if(!S||(u===!0?"offsetWidth"in S&&S.offsetWidth===0:"offsetHeight"in S&&S.offsetHeight===0))return;const C=b.behavior==="smooth";let E,w,N;Id(S)?(w=Math.max(va(S.document.documentElement,u===!0?"width":"height"),u===!0?S.document.documentElement.scrollWidth:S.document.documentElement.scrollHeight),E=u===!0?S.innerWidth:S.innerHeight,N=u===!0?window.scrollX:window.scrollY):(w=S[u===!0?"scrollWidth":"scrollHeight"],E=va(S,u===!0?"width":"height"),N=S[u===!0?"scrollLeft":"scrollTop"]);const T=w-E;if(b.top=Math.ceil(Math.max(Math.min(T,b.top),0)),vy(E,w)||b.top===N){t({scrollHeight:w,scrollTop:N,viewportHeight:E}),C&&a(!0);return}C?(f.current=b.top,x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{x.current=null,f.current=null,a(!0)},1e3)):f.current=null,u===!0&&(b={...b.behavior!==void 0?{behavior:b.behavior}:{},left:b.top}),S.scrollTo(b)}function v(b){u===!0&&(b={...b.behavior!==void 0?{behavior:b.behavior}:{},...b.top!==void 0?{left:b.top}:{}}),d.current.scrollBy(b)}return{scrollByCallback:v,scrollerRef:d,scrollToCallback:y}}function Gf(t){return t}const lw=st(()=>{const t=ye(f=>`Item ${f}`),a=ye(f=>`Group ${f}`),s=ye({}),i=ye(Gf),c=ye("div"),u=ye(Gl),d=(f,x=null)=>pn(xe(s,we(h=>h[f]),Et()),x);return{components:s,computeItemKey:i,EmptyPlaceholder:d("EmptyPlaceholder"),FooterComponent:d("Footer"),GroupComponent:d("Group","div"),groupContent:a,HeaderComponent:d("Header"),HeaderFooterTag:c,ItemComponent:d("Item","div"),itemContent:t,ListComponent:d("List","div"),ScrollerComponent:d("Scroller","div"),scrollerRef:u,ScrollSeekPlaceholder:d("ScrollSeekPlaceholder"),TopItemListComponent:d("TopItemList")}}),sw=st(([t,a])=>({...t,...a}),Nt(Cy,lw)),iw=({height:t})=>r.jsx("div",{style:{height:t}}),ow={overflowAnchor:"none",position:Ff(),zIndex:1},Ly={overflowAnchor:"none"},cw={...Ly,display:"inline-block",height:"100%"},Og=Re.memo(function({showTopList:t=!1}){const a=Ue("listState"),s=Jn("sizeRanges"),i=Ue("useWindowScroll"),c=Ue("customScrollParent"),u=Jn("windowScrollContainerState"),d=Jn("scrollContainerState"),f=c||i?u:d,x=Ue("itemContent"),h=Ue("context"),y=Ue("groupContent"),v=Ue("trackItemSizes"),b=Ue("itemSize"),S=Ue("log"),C=Jn("gap"),E=Ue("horizontalDirection"),{callbackRef:w}=wk(s,b,v,t?Gl:f,S,C,c,E,Ue("skipAnimationFrameInResizeObserver")),[N,T]=Re.useState(0);Wf("deviation",Q=>{N!==Q&&T(Q)});const A=Ue("EmptyPlaceholder"),I=Ue("ScrollSeekPlaceholder")??iw,L=Ue("ListComponent"),H=Ue("ItemComponent"),k=Ue("GroupComponent"),O=Ue("computeItemKey"),z=Ue("isSeeking"),_=Ue("groupIndices").length>0,$=Ue("alignToBottom"),q=Ue("initialItemFinalLocationReached"),K=t?{}:{boxSizing:"border-box",...E?{display:"inline-block",height:"100%",marginLeft:N!==0?N:$?"auto":0,paddingLeft:a.offsetTop,paddingRight:a.offsetBottom,whiteSpace:"nowrap"}:{marginTop:N!==0?N:$?"auto":0,paddingBottom:a.offsetBottom,paddingTop:a.offsetTop},...q?{}:{visibility:"hidden"}};return!t&&a.totalCount===0&&A!==null&&A!==void 0?r.jsx(A,{...fn(A,h)}):r.jsx(L,{...fn(L,h),"data-testid":t?"virtuoso-top-item-list":"virtuoso-item-list",ref:w,style:K,children:(t?a.topItems:a.items).map(Q=>{const U=Q.originalIndex,M=O(U+a.firstItemIndex,Q.data,h);return z?m.createElement(I,{...fn(I,h),height:Q.size,index:Q.index,key:M,type:Q.type||"item",...Q.type==="group"?{}:{groupIndex:Q.groupIndex}}):Q.type==="group"?m.createElement(k,{...fn(k,h),"data-index":U,"data-item-index":Q.index,"data-known-size":Q.size,key:M,style:ow},y(Q.index,h)):m.createElement(H,{...fn(H,h),...pw(H,Q.data),"data-index":U,"data-item-group-index":Q.groupIndex,"data-item-index":Q.index,"data-known-size":Q.size,key:M,style:E?cw:Ly},_?x(Q.index,Q.groupIndex,Q.data,h):x(Q.index,Q.data,h))})})}),uw={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},dw={outline:"none",overflowX:"auto",position:"relative"},cc=t=>({height:"100%",position:"absolute",top:0,width:"100%",...t?{display:"flex",flexDirection:"column"}:void 0}),fw={position:Ff(),top:0,width:"100%",zIndex:1};function fn(t,a){if(typeof t!="string")return{context:a}}function pw(t,a){return{item:typeof t=="string"?void 0:a}}const mw=Re.memo(function(){const t=Ue("HeaderComponent"),a=Jn("headerHeight"),s=Ue("HeaderFooterTag"),i=Ka(Re.useMemo(()=>u=>{a(va(u,"height"))},[a]),!0,Ue("skipAnimationFrameInResizeObserver")),c=Ue("context");return t!=null?r.jsx(s,{ref:i,children:r.jsx(t,{...fn(t,c)})}):null}),hw=Re.memo(function(){const t=Ue("FooterComponent"),a=Jn("footerHeight"),s=Ue("HeaderFooterTag"),i=Ka(Re.useMemo(()=>u=>{a(va(u,"height"))},[a]),!0,Ue("skipAnimationFrameInResizeObserver")),c=Ue("context");return t!=null?r.jsx(s,{ref:i,children:r.jsx(t,{...fn(t,c)})}):null});function My({useEmitter:t,useEmitterValue:a,usePublisher:s}){return Re.memo(function({children:i,style:c,context:u,...d}){const f=s("scrollContainerState"),x=a("ScrollerComponent"),h=s("smoothScrollTargetReached"),y=a("scrollerRef"),v=a("horizontalDirection")||!1,{scrollByCallback:b,scrollerRef:S,scrollToCallback:C}=Ay(f,h,x,y,void 0,v);return t("scrollTo",C),t("scrollBy",b),r.jsx(x,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:S,style:{...v?dw:uw,...c},tabIndex:0,...d,...fn(x,u),children:i})})}function zy({useEmitter:t,useEmitterValue:a,usePublisher:s}){return Re.memo(function({children:i,style:c,context:u,...d}){const f=s("windowScrollContainerState"),x=a("ScrollerComponent"),h=s("smoothScrollTargetReached"),y=a("totalListHeight"),v=a("deviation"),b=a("customScrollParent"),S=Re.useRef(null),C=a("scrollerRef"),{scrollByCallback:E,scrollerRef:w,scrollToCallback:N}=Ay(f,h,x,C,b);return Ry(()=>{var T;return w.current=b||((T=S.current)==null?void 0:T.ownerDocument.defaultView),()=>{w.current=null}},[w,b]),t("windowScrollTo",N),t("scrollBy",E),r.jsx(x,{ref:S,"data-virtuoso-scroller":!0,style:{position:"relative",...c,...y!==0?{height:y+v}:void 0},...d,...fn(x,u),children:i})})}const xw=({children:t})=>{const a=Re.useContext(Ny),s=Jn("viewportHeight"),i=Jn("fixedItemHeight"),c=Ue("alignToBottom"),u=Ue("horizontalDirection"),d=Re.useMemo(()=>ay(s,x=>va(x,u?"width":"height")),[s,u]),f=Ka(d,!0,Ue("skipAnimationFrameInResizeObserver"));return Re.useEffect(()=>{a&&(s(a.viewportHeight),i(a.itemHeight))},[a,s,i]),r.jsx("div",{"data-viewport-type":"element",ref:f,style:cc(c),children:t})},gw=({children:t})=>{const a=Re.useContext(Ny),s=Jn("windowViewportRect"),i=Jn("fixedItemHeight"),c=Ue("customScrollParent"),u=sy(s,c,Ue("skipAnimationFrameInResizeObserver")),d=Ue("alignToBottom");return Re.useEffect(()=>{a&&(i(a.itemHeight),s({listHeight:0,offsetTop:0,visibleHeight:a.viewportHeight,visibleWidth:100}))},[a,s,i]),r.jsx("div",{"data-viewport-type":"window",ref:u,style:cc(d),children:t})},vw=({children:t})=>{const a=Ue("TopItemListComponent")??"div",s=Ue("headerHeight"),i={...fw,marginTop:`${s}px`},c=Ue("context");return r.jsx(a,{style:i,...fn(a,c),children:t})},yw=Re.memo(function(t){const a=Ue("useWindowScroll"),s=Ue("topItemsIndexes").length>0,i=Ue("customScrollParent"),c=Ue("context");return r.jsxs(i||a?Sw:jw,{...t,context:c,children:[s&&r.jsx(vw,{children:r.jsx(Og,{showTopList:!0})}),r.jsxs(i||a?gw:xw,{children:[r.jsx(mw,{}),r.jsx(Og,{}),r.jsx(hw,{})]})]})}),{Component:bw,useEmitter:Wf,useEmitterValue:Ue,usePublisher:Jn}=Ey(sw,{optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",heightEstimates:"heightEstimates",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},yw),jw=My({useEmitter:Wf,useEmitterValue:Ue,usePublisher:Jn}),Sw=zy({useEmitter:Wf,useEmitterValue:Ue,usePublisher:Jn}),kw=bw,ww=st(()=>{const t=ye(h=>r.jsxs("td",{children:["Item $",h]})),a=ye(null),s=ye(h=>r.jsxs("td",{colSpan:1e3,children:["Group ",h]})),i=ye(null),c=ye(null),u=ye({}),d=ye(Gf),f=ye(Gl),x=(h,y=null)=>pn(xe(u,we(v=>v[h]),Et()),y);return{components:u,computeItemKey:d,context:a,EmptyPlaceholder:x("EmptyPlaceholder"),FillerRow:x("FillerRow"),fixedFooterContent:c,fixedHeaderContent:i,itemContent:t,groupContent:s,ScrollerComponent:x("Scroller","div"),scrollerRef:f,ScrollSeekPlaceholder:x("ScrollSeekPlaceholder"),TableBodyComponent:x("TableBody","tbody"),TableComponent:x("Table","table"),TableFooterComponent:x("TableFoot","tfoot"),TableHeadComponent:x("TableHead","thead"),TableRowComponent:x("TableRow","tr"),GroupComponent:x("Group","tr")}});Nt(Cy,ww);Ff();const Bg={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},Cw={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Ig,floor:Yo,max:qs,min:$d,round:$g}=Math;function Ug(t,a,s){return Array.from({length:a-t+1}).map((i,c)=>({data:s===null?null:s[c+t],index:c+t}))}function Ew(t){return{...Cw,items:t}}function Ro(t,a){return t!==void 0&&t.width===a.width&&t.height===a.height}function Nw(t,a){return t!==void 0&&t.column===a.column&&t.row===a.row}const Tw=st(([{increaseViewportBy:t,listBoundary:a,overscan:s,visibleRange:i},{footerHeight:c,headerHeight:u,scrollBy:d,scrollContainerState:f,scrollTo:x,scrollTop:h,smoothScrollTargetReached:y,viewportHeight:v},b,S,{didMount:C,propsReady:E},{customScrollParent:w,useWindowScroll:N,windowScrollContainerState:T,windowScrollTo:A,windowViewportRect:I},L])=>{const H=ye(0),k=ye(0),O=ye(Bg),z=ye({height:0,width:0}),_=ye({height:0,width:0}),$=nt(),q=nt(),K=ye(0),Q=ye(null),U=ye({column:0,row:0}),M=nt(),B=nt(),F=ye(!1),te=ye(0),V=ye(!0),D=ye(!1),W=ye(!1);ct(xe(C,We(te),Ie(([ne,ge])=>ge!==0)),()=>{Fe(V,!1)}),ct(xe(Wt(C,V,_,z,te,D),Ie(([ne,ge,Le,Ee,,Me])=>ne&&!ge&&Le.height!==0&&Ee.height!==0&&!Me)),([,,,,ne])=>{Fe(D,!0),Uf(1,()=>{Fe($,ne)}),sr(xe(h),()=>{Fe(a,[0,0]),Fe(V,!0)})}),Ae(xe(B,Ie(ne=>ne!=null&&ne.scrollTop>0),xr(0)),k),ct(xe(C,We(B),Ie(([,ne])=>ne!=null)),([,ne])=>{ne&&(Fe(z,ne.viewport),Fe(_,ne.item),Fe(U,ne.gap),ne.scrollTop>0&&(Fe(F,!0),sr(xe(h,Wa(1)),ge=>{Fe(F,!1)}),Fe(x,{top:ne.scrollTop})))}),Ae(xe(z,we(({height:ne})=>ne)),v),Ae(xe(Wt(Be(z,Ro),Be(_,Ro),Be(U,(ne,ge)=>ne!==void 0&&ne.column===ge.column&&ne.row===ge.row),Be(h)),we(([ne,ge,Le,Ee])=>({gap:Le,item:ge,scrollTop:Ee,viewport:ne}))),M),Ae(xe(Wt(Be(H),i,Be(U,Nw),Be(_,Ro),Be(z,Ro),Be(Q),Be(k),Be(F),Be(V),Be(te)),Ie(([,,,,,,,ne])=>!ne),we(([ne,[ge,Le],Ee,Me,Pe,ie,fe,,he,be])=>{const{column:je,row:Ge}=Ee,{height:ut,width:gt}=Me,{width:Ht}=Pe;if(fe===0&&(ne===0||Ht===0))return Bg;if(gt===0){const it=Hf(be,ne),bt=it+Math.max(fe-1,0);return Ew(Ug(it,bt,ie))}const Tt=Dy(Ht,gt,je);let qe,zt;he?ge===0&&Le===0&&fe>0?(qe=0,zt=fe-1):(qe=Tt*Yo((ge+Ge)/(ut+Ge)),zt=Tt*Ig((Le+Ge)/(ut+Ge))-1,zt=$d(ne-1,qs(zt,Tt-1)),qe=$d(zt,qs(0,qe))):(qe=0,zt=-1);const kt=Ug(qe,zt,ie),{bottom:vt,top:Zt}=Hg(Pe,Ee,Me,kt),ve=Ig(ne/Tt),rt=ve*ut+(ve-1)*Ge-vt;return{bottom:vt,itemHeight:ut,items:kt,itemWidth:gt,offsetBottom:rt,offsetTop:Zt,top:Zt}})),O),Ae(xe(Q,Ie(ne=>ne!==null),we(ne=>ne.length)),H),Ae(xe(Wt(z,_,O,U),Ie(([ne,ge,{items:Le}])=>Le.length>0&&ge.height!==0&&ne.height!==0),we(([ne,ge,{items:Le},Ee])=>{const{bottom:Me,top:Pe}=Hg(ne,Ee,ge,Le);return[Pe,Me]}),Et(ei)),a);const X=ye(!1);Ae(xe(h,We(X),we(([ne,ge])=>ge||ne!==0)),X);const ee=In(xe(Wt(O,H),Ie(([{items:ne}])=>ne.length>0),We(X),Ie(([[ne,ge],Le])=>{const Ee=ne.items[ne.items.length-1].index===ge-1;return(Le||ne.bottom>0&&ne.itemHeight>0&&ne.offsetBottom===0&&ne.items.length===ge)&&Ee}),we(([[,ne]])=>ne-1),Et())),de=In(xe(Be(O),Ie(({items:ne})=>ne.length>0&&ne[0].index===0),xr(0),Et())),le=In(xe(Be(O),We(F),Ie(([{items:ne},ge])=>ne.length>0&&!ge),we(([{items:ne}])=>({endIndex:ne[ne.length-1].index,startIndex:ne[0].index})),Et(fy),Ur(0)));Ae(le,S.scrollSeekRangeChanged),Ae(xe($,We(z,_,H,U),we(([ne,ge,Le,Ee,Me])=>{const Pe=gy(ne),{align:ie,behavior:fe,offset:he}=Pe;let be=Pe.index;be==="LAST"&&(be=Ee-1),be=qs(0,be,$d(Ee-1,be));let je=vf(ge,Me,Le,be);return ie==="end"?je=$g(je-ge.height+Le.height):ie==="center"&&(je=$g(je-ge.height/2+Le.height/2)),he!==void 0&&he!==0&&(je+=he),{behavior:fe,top:je}})),x);const ce=pn(xe(O,we(ne=>ne.offsetBottom+ne.bottom)),0);return Ae(xe(I,we(ne=>({height:ne.visibleHeight,width:ne.visibleWidth}))),z),{customScrollParent:w,data:Q,deviation:K,footerHeight:c,gap:U,headerHeight:u,increaseViewportBy:t,initialItemCount:k,itemDimensions:_,overscan:s,restoreStateFrom:B,scrollBy:d,scrollContainerState:f,scrollHeight:q,scrollTo:x,scrollToIndex:$,scrollTop:h,smoothScrollTargetReached:y,totalCount:H,useWindowScroll:N,viewportDimensions:z,windowScrollContainerState:T,windowScrollTo:A,windowViewportRect:I,...S,gridState:O,horizontalDirection:W,initialTopMostItemIndex:te,totalListHeight:ce,...b,endReached:ee,propsReady:E,rangeChanged:le,startReached:de,stateChanged:M,stateRestoreInProgress:F,...L}},Nt(Pf,yn,ci,ky,Sa,Vf,ja));function Dy(t,a,s){return qs(1,Yo((t+s)/(Yo(a)+s)))}function Hg(t,a,s,i){const{height:c}=s;if(c===void 0||i.length===0)return{bottom:0,top:0};const u=vf(t,a,s,i[0].index);return{bottom:vf(t,a,s,i[i.length-1].index)+c,top:u}}function vf(t,a,s,i){const c=Dy(t.width,s.width,a.column),u=Yo(i/c),d=u*s.height+qs(0,u-1)*a.row;return d>0?d+a.row:d}const Rw=st(()=>{const t=ye(v=>`Item ${v}`),a=ye({}),s=ye(null),i=ye("virtuoso-grid-item"),c=ye("virtuoso-grid-list"),u=ye(Gf),d=ye("div"),f=ye(Gl),x=(v,b=null)=>pn(xe(a,we(S=>S[v]),Et()),b),h=ye(!1),y=ye(!1);return Ae(Be(y),h),{components:a,computeItemKey:u,context:s,FooterComponent:x("Footer"),HeaderComponent:x("Header"),headerFooterTag:d,itemClassName:i,ItemComponent:x("Item","div"),itemContent:t,listClassName:c,ListComponent:x("List","div"),readyStateChanged:h,reportReadyState:y,ScrollerComponent:x("Scroller","div"),scrollerRef:f,ScrollSeekPlaceholder:x("ScrollSeekPlaceholder","div")}}),Aw=st(([t,a])=>({...t,...a}),Nt(Tw,Rw)),Lw=Re.memo(function(){const t=At("gridState"),a=At("listClassName"),s=At("itemClassName"),i=At("itemContent"),c=At("computeItemKey"),u=At("isSeeking"),d=er("scrollHeight"),f=At("ItemComponent"),x=At("ListComponent"),h=At("ScrollSeekPlaceholder"),y=At("context"),v=er("itemDimensions"),b=er("gap"),S=At("log"),C=At("stateRestoreInProgress"),E=er("reportReadyState"),w=Ka(Re.useMemo(()=>N=>{const T=N.parentElement.parentElement.scrollHeight;d(T);const A=N.firstChild;if(A!==null){const{height:I,width:L}=A.getBoundingClientRect();v({height:I,width:L})}b({column:Pg("column-gap",getComputedStyle(N).columnGap,S),row:Pg("row-gap",getComputedStyle(N).rowGap,S)})},[d,v,b,S]),!0,!1);return Ry(()=>{t.itemHeight>0&&t.itemWidth>0&&E(!0)},[t]),C?null:r.jsx(x,{className:a,ref:w,...fn(x,y),"data-testid":"virtuoso-item-list",style:{paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},children:t.items.map(N=>{const T=c(N.index,N.data,y);return u?r.jsx(h,{...fn(h,y),height:t.itemHeight,index:N.index,width:t.itemWidth},T):m.createElement(f,{...fn(f,y),className:s,"data-index":N.index,key:T},i(N.index,N.data,y))})})}),Mw=Re.memo(function(){const t=At("HeaderComponent"),a=er("headerHeight"),s=At("headerFooterTag"),i=Ka(Re.useMemo(()=>u=>{a(va(u,"height"))},[a]),!0,!1),c=At("context");return t!=null?r.jsx(s,{ref:i,children:r.jsx(t,{...fn(t,c)})}):null}),zw=Re.memo(function(){const t=At("FooterComponent"),a=er("footerHeight"),s=At("headerFooterTag"),i=Ka(Re.useMemo(()=>u=>{a(va(u,"height"))},[a]),!0,!1),c=At("context");return t!=null?r.jsx(s,{ref:i,children:r.jsx(t,{...fn(t,c)})}):null}),Dw=({children:t})=>{const a=Re.useContext(Ty),s=er("itemDimensions"),i=er("viewportDimensions"),c=Ka(Re.useMemo(()=>u=>{i(u.getBoundingClientRect())},[i]),!0,!1);return Re.useEffect(()=>{a&&(i({height:a.viewportHeight,width:a.viewportWidth}),s({height:a.itemHeight,width:a.itemWidth}))},[a,i,s]),r.jsx("div",{ref:c,style:cc(!1),children:t})},_w=({children:t})=>{const a=Re.useContext(Ty),s=er("windowViewportRect"),i=er("itemDimensions"),c=At("customScrollParent"),u=sy(s,c,!1);return Re.useEffect(()=>{a&&(i({height:a.itemHeight,width:a.itemWidth}),s({listHeight:0,offsetTop:0,visibleHeight:a.viewportHeight,visibleWidth:a.viewportWidth}))},[a,s,i]),r.jsx("div",{ref:u,style:cc(!1),children:t})},Ow=Re.memo(function({...t}){const a=At("useWindowScroll"),s=At("customScrollParent"),i=s||a?Iw:Bw,c=s||a?_w:Dw,u=At("context");return r.jsx(i,{...t,...fn(i,u),children:r.jsxs(c,{children:[r.jsx(Mw,{}),r.jsx(Lw,{}),r.jsx(zw,{})]})})}),{useEmitter:_y,useEmitterValue:At,usePublisher:er}=Ey(Aw,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},Ow),Bw=My({useEmitter:_y,useEmitterValue:At,usePublisher:er}),Iw=zy({useEmitter:_y,useEmitterValue:At,usePublisher:er});function Pg(t,a,s){return a!=="normal"&&(a==null?void 0:a.endsWith("px"))!==!0&&s(`${t} was not resolved to pixel value correctly`,a,Xt.WARN),a==="normal"?0:parseInt(a??"0",10)}const $w={source:"vskill-sidebar-own-collapsed",installed:"vskill-sidebar-installed-collapsed"},Oy={source:"Own",installed:"Installed"};function Uw(t){try{const a=localStorage.getItem(t);if(a!=null)return a==="true"}catch{}try{if(typeof sessionStorage<"u"){const a=sessionStorage.getItem(t);if(a!=null)return a==="true"}}catch{}return!1}function Hw(t,a){const s=a?"true":"false";try{localStorage.setItem(t,s)}catch{}try{typeof sessionStorage<"u"&&sessionStorage.setItem(t,s)}catch{}}function Vg({origin:t,count:a,filteredCount:s,updateCount:i,children:c}){const u=$w[t],[d,f]=m.useState(()=>Uw(u)),x=m.useCallback(()=>{f(b=>{const S=!b;return Hw(u,S),S})},[u]),h=Oy[t],y=`sidebar-section-${t}-header`,v=`sidebar-section-${t}-group`;return r.jsxs("section",{"aria-labelledby":y,style:{display:"flex",flexDirection:"column",minHeight:0},children:[r.jsxs("button",{id:y,type:"button","data-testid":"sidebar-section-header","aria-expanded":!d,"aria-controls":v,onClick:x,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"8px 12px 6px 14px",background:"transparent",border:"none",cursor:"pointer",color:"var(--text-primary)",fontFamily:"var(--font-sans)",textAlign:"left"},children:[r.jsx(Vw,{collapsed:d}),r.jsx("h2",{"aria-level":2,style:{fontSize:11,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--text-primary)",margin:0},children:h}),r.jsx("span",{style:{fontSize:10,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums",fontFamily:"var(--font-mono)"},children:s!=null&&s!==a?`(${s} of ${a})`:`(${a})`}),i!=null&&i>0&&r.jsx(Pw,{origin:t,updateCount:i})]}),!d&&r.jsx("div",{id:v,role:"group","aria-labelledby":y,style:{display:"flex",flexDirection:"column",minHeight:0},children:c})]})}function Pw({origin:t,updateCount:a}){const[s,i]=m.useState(!1),c=Oy[t].toLowerCase(),u=`${a} updates available in ${c} section, view all`;return r.jsxs("span",{role:"link",tabIndex:0,"data-testid":"sidebar-section-update-chip","aria-label":u,onClick:d=>{d.stopPropagation(),window.location.hash="#/updates"},onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),d.stopPropagation(),window.location.hash="#/updates")},onFocus:()=>i(!0),onBlur:()=>i(!1),style:{display:"inline-flex",alignItems:"center",gap:2,fontSize:10,color:"var(--color-own)",fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums",cursor:"pointer",padding:"0 4px",borderRadius:3,outline:s?"2px solid var(--border-focus)":"none",outlineOffset:2},children:[a," updates",r.jsx("span",{"aria-hidden":"true",style:{fontSize:9,marginLeft:2},children:"▾"})]})}function Vw({collapsed:t}){return r.jsx("svg",{"aria-hidden":"true",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:t?"rotate(0deg)":"rotate(90deg)",transition:"transform var(--duration-fast, 120ms) var(--ease-standard, ease)",flexShrink:0},children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})}function qf(t,a){const s=a.trim().toLowerCase();return s?t.skill.toLowerCase().includes(s)||t.plugin.toLowerCase().includes(s)||t.dir.toLowerCase().includes(s):!0}function Fw({value:t,onChange:a,placeholder:s="Filter skills…",validationPattern:i,validationMessage:c="Invalid filter expression"}){const u=m.useRef(null),d=m.useId(),f=!!i&&t.trim()!==""&&!i.test(t);return m.useEffect(()=>{function x(h){var b;if(h.key!=="/")return;const y=h.target;if(!y)return;const v=y.tagName;v==="INPUT"||v==="TEXTAREA"||y.isContentEditable||(h.preventDefault(),(b=u.current)==null||b.focus())}return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[]),r.jsxs("div",{role:"search",style:{display:"flex",alignItems:"center",gap:6,padding:"6px 12px",borderBottom:"1px solid var(--border-default)"},children:[r.jsxs("svg",{"aria-hidden":"true",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},children:[r.jsx("circle",{cx:"11",cy:"11",r:"8"}),r.jsx("path",{d:"M21 21l-4.35-4.35"})]}),r.jsx("input",{ref:u,type:"search","aria-label":"Filter skills","aria-invalid":f?!0:void 0,"aria-describedby":f?d:void 0,value:t,placeholder:s,onChange:x=>a(x.currentTarget.value),onKeyDown:x=>{x.key==="Escape"&&(a(""),x.currentTarget.blur())},style:{flex:1,minWidth:0,border:"none",outline:"none",background:"transparent",color:"var(--text-primary)",fontFamily:"var(--font-sans)",fontSize:12,padding:"2px 0"}}),f&&r.jsx("span",{id:d,role:"alert","aria-live":"polite",style:{fontFamily:"var(--font-sans)",fontSize:10,color:"var(--text-error, #B42318)",marginLeft:4,whiteSpace:"nowrap"},children:c}),r.jsx("kbd",{"aria-hidden":"true",style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-secondary)",border:"1px solid var(--border-default)",padding:"1px 5px",borderRadius:3,display:t?"none":"inline-block"},children:"/"})]})}function Gw({target:t}){const a=typeof t=="string"&&t.length>0,s=a?`symlinked → ${t}`:"symlinked — cycle detected or target unresolved",i=a?`symlinked from ${t}`:"symlinked, target unresolved";return r.jsx("span",{"data-testid":"symlink-chip",role:"img","aria-label":i,title:s,tabIndex:0,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:14,height:14,borderRadius:3,color:"var(--text-secondary)",flexShrink:0},children:r.jsxs("svg",{"data-testid":"symlink-glyph",width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),r.jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})})}function Ww({skill:t}){if(!t.updateAvailable)return null;const a=t.currentVersion??"",s=t.latestVersion,i=s?`Update available: ${a} → ${s}`.trim():"Update available";return r.jsx("span",{"data-testid":"skill-row-update-glyph",title:i,"aria-label":"Update available",style:{color:"var(--color-own)",display:"inline-flex",flexShrink:0},children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M12 19V5"}),r.jsx("path",{d:"M5 12l7-7 7 7"})]})})}function qw({skillId:t,trackedForUpdates:a}){let s=null;try{s=m.useContext(qv)}catch{s=null}const i=s==null?void 0:s.updatesById.get(t);if(i){const c=`Update available → ${i.version}${i.diffSummary?` — ${i.diffSummary}`:""}`;return r.jsx("span",{"data-testid":"update-chip-update-dot","aria-label":`Update available: ${i.version}`,title:c,style:{display:"inline-block",width:8,height:8,borderRadius:999,background:"var(--color-accent, #2563eb)",flexShrink:0}})}return a?null:r.jsx("span",{"data-testid":"update-chip-untracked-dot","aria-label":"Not tracked for updates",title:"Not tracked — run `vskill outdated` manually",style:{display:"inline-block",width:6,height:6,borderRadius:999,background:"var(--text-muted, var(--text-secondary))",opacity:.55,flexShrink:0}})}function Yw(t,a,s){if(!(!t||t==="frontmatter"))return t==="plugin"?`Inherited from ${s&&s.trim()!==""?s:"plugin"} plugin v${a}`:t==="registry"?"Inherited from registry":"No version declared"}function ui(t){const{version:a,showPrefix:s=!0,size:i="md",source:c,pluginName:u}=t,d=typeof a=="string"?a.trim():"",f=d===""||d==="0.0.0"?"1.0.0":d,x=s&&!f.startsWith("v")?`v${f}`:f,h=i==="sm"?10:12,y=i==="sm"?1:2,v=i==="sm"?5:8,b=c==="registry"||c==="plugin",S=Yw(c,f,u),C=t.title??S,E={display:"inline-flex",alignItems:"center",padding:`${y}px ${v}px`,border:"1px solid var(--border, var(--border-default))",borderRadius:4,background:"var(--bg-subtle, var(--surface-1, transparent))",color:"var(--text-secondary)",fontFamily:"var(--font-mono, var(--font-geist-mono))",fontSize:h,fontVariantNumeric:"tabular-nums",lineHeight:1.2,whiteSpace:"nowrap",flexShrink:0};return b&&(E.fontStyle="italic"),r.jsx("span",{"data-testid":t["data-testid"]??"version-badge","data-version":f,"data-version-source":c,title:C,style:E,children:x})}function Kw({skill:t,isSelected:a,onSelect:s,onContextMenu:i,dirty:c}){const u=t.origin==="installed"?"var(--status-installed)":"var(--status-own)";return r.jsxs("button",{type:"button",onClick:s,onContextMenu:i?d=>{d.preventDefault(),i(d,t)}:void 0,"aria-current":a?"true":void 0,"aria-selected":!!a,"data-testid":"skill-row","data-selected":a,"data-origin":t.origin,"data-skill-id":`${t.plugin}/${t.skill}`,style:{display:"flex",alignItems:"center",gap:8,width:"100%",height:36,padding:"0 12px 0 14px",background:a?"color-mix(in srgb, var(--accent-surface) 10%, transparent)":"transparent",boxShadow:a?"inset 2px 0 0 var(--color-accent, var(--accent-surface))":"none",border:"none",borderRadius:0,color:"var(--text-primary)",cursor:"pointer",fontFamily:"var(--font-sans)",fontSize:13,textAlign:"left",transition:"background-color var(--duration-fast, 120ms) var(--ease-standard, ease), box-shadow var(--duration-base, 180ms) var(--ease-standard, ease)"},children:[r.jsx("span",{"aria-hidden":"true","aria-label":t.updateAvailable?"Update available":void 0,title:t.updateAvailable?`Update available${t.latestVersion?` → ${t.latestVersion}`:""}`:void 0,style:{width:t.updateAvailable?10:6,height:t.updateAvailable?10:6,borderRadius:"50%",background:u,display:"inline-block",flexShrink:0,boxShadow:t.updateAvailable?"0 0 0 2px var(--color-own, #d97706)":"none",transition:"box-shadow 180ms ease, width 180ms ease, height 180ms ease"}}),r.jsx("span",{title:t.skill,style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.skill}),c&&r.jsx("span",{"aria-label":"Uncommitted changes","data-testid":"skill-row-dirty-dot",title:"Uncommitted changes — open this skill, click Publish to commit & push",style:{width:7,height:7,borderRadius:"50%",background:"var(--color-warning, #f59e0b)",display:"inline-block",flexShrink:0,boxShadow:"0 0 0 1px rgba(245,158,11,0.25)"}}),r.jsx(ui,{version:t.resolvedVersion??t.version??"1.0.0",source:t.versionSource??(t.version?"frontmatter":"default"),pluginName:t.pluginName??null,size:"sm",showPrefix:!1,"data-testid":"skill-row-version"}),t.isSymlink&&r.jsx(Gw,{target:t.symlinkTarget??null}),r.jsx(Ww,{skill:t}),r.jsx(qw,{skillId:`${t.plugin}/${t.skill}`,trackedForUpdates:t.trackedForUpdates??!0})]})}const Ys=m.memo(Kw);function Xw({plugin:t,skills:a,selectedKey:s,onSelect:i,onContextMenu:c,dirtySkillIds:u}){const d=[...a].sort((f,x)=>f.skill.localeCompare(x.skill));return r.jsxs("div",{role:"group","aria-label":`${t} (${a.length})`,children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px 4px 14px"},children:[r.jsx("span",{style:{fontSize:10,fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--text-secondary)",fontFamily:"var(--font-sans)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t,children:t}),r.jsxs("span",{style:{fontSize:10,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums",fontFamily:"var(--font-mono)"},children:["(",a.length,")"]})]}),r.jsx("div",{role:"list",children:d.map(f=>{const x=!!s&&s.plugin===f.plugin&&s.skill===f.skill;return r.jsx("div",{role:"listitem",children:r.jsx(Ys,{skill:f,isSelected:x,onSelect:()=>i(f),onContextMenu:c,dirty:u==null?void 0:u.has(`${f.plugin}/${f.skill}`)})},`${f.plugin}/${f.skill}`)})})]})}function Qw(t,a){if(!t||typeof window>"u")return a;try{const s=window.localStorage.getItem(t);return s===null?a:s==="true"}catch{return a}}function Ud({skills:t,pluginName:a,initialCollapsed:s=!1,persistKey:i,renderSkill:c,headerActionSlot:u,forceOpen:d=!1}){var S;const f=a??((S=t[0])==null?void 0:S.pluginName)??"unknown-plugin",[x,h]=m.useState(()=>Qw(i,s)),y=d?!1:x,v=m.useCallback(()=>{h(C=>{const E=!C;if(i&&typeof window<"u")try{window.localStorage.setItem(i,String(E))}catch{}return E})},[i]),b=y?"▸":"▾";return r.jsxs("div",{"data-vskill-plugin-tree":f,role:"group","aria-label":`${f} (${t.length})`,children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",paddingRight:6},children:[r.jsxs("button",{type:"button",onClick:v,"aria-expanded":!y,style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"4px 4px 4px 18px",background:"transparent",border:"none",cursor:"pointer",textAlign:"left",color:"var(--text-primary)",fontSize:12,fontWeight:500},children:[r.jsx("span",{"aria-hidden":!0,className:"vskill-chevron tabular-nums",style:{width:16,display:"inline-block",textAlign:"center",fontSize:14,fontWeight:700,color:"var(--color-ink, var(--text-primary))"},children:b}),r.jsx("span",{className:"vskill-plugin-name",style:{fontFamily:"var(--font-mono)"},children:f}),r.jsxs("span",{className:"vskill-plugin-count tabular-nums",style:{marginLeft:"auto",fontSize:11,color:"var(--text-tertiary)",fontFamily:"var(--font-mono)"},children:["(",t.length,")"]})]}),u&&r.jsx("div",{style:{display:"inline-flex",alignItems:"center",flexShrink:0},children:u})]}),!y&&r.jsx("div",{className:"vskill-plugin-tree-children",style:{paddingLeft:36,borderLeft:"1px solid var(--border-subtle, rgba(128,128,128,0.2))",marginLeft:24},children:t.map(C=>r.jsx("div",{"data-vskill-plugin-skill":C.pluginNamespace??C.skill,children:c(C)},`${C.pluginNamespace??C.skill}`))})]})}function Fo({open:t,title:a,body:s,confirmLabel:i="Confirm",cancelLabel:c="Cancel",variant:u="default",onConfirm:d,onCancel:f}){const x=m.useRef(null),h=m.useRef(null),y=m.useRef(null);if(m.useEffect(()=>{if(t)return y.current=document.activeElement??null,requestAnimationFrame(()=>{var C;(C=h.current)==null||C.focus()}),()=>{var C,E;(E=(C=y.current)==null?void 0:C.focus)==null||E.call(C),y.current=null}},[t]),m.useEffect(()=>{if(!t)return;function C(E){if(E.key==="Escape"){E.preventDefault(),f();return}if(E.key==="Tab"&&x.current){const w=x.current.querySelectorAll("button:not([disabled])");if(w.length===0)return;const N=w[0],T=w[w.length-1];E.shiftKey&&document.activeElement===N?(E.preventDefault(),T.focus()):!E.shiftKey&&document.activeElement===T&&(E.preventDefault(),N.focus())}}return window.addEventListener("keydown",C,!0),()=>window.removeEventListener("keydown",C,!0)},[t,f]),!t)return null;const v="confirm-dialog-title",b="confirm-dialog-body",S=u==="destructive"?{background:"var(--red, #d92d20)",color:"#fff",border:"1px solid var(--red, #d92d20)"}:{background:"var(--accent-surface)",color:"var(--text-primary)",border:"1px solid var(--border-default)"};return r.jsx("div",{"data-testid":"confirm-dialog-overlay",onMouseDown:C=>{C.target===C.currentTarget&&f()},style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:r.jsxs("div",{ref:x,role:"alertdialog","aria-modal":"true","aria-labelledby":v,"aria-describedby":b,"data-testid":"confirm-dialog",style:{background:"var(--bg-canvas)",color:"var(--text-primary)",border:"1px solid var(--border-default)",borderRadius:8,padding:20,width:"min(440px, 92vw)",boxShadow:"0 20px 48px rgba(0,0,0,0.32)",fontFamily:"var(--font-sans)"},children:[r.jsx("h2",{id:v,style:{margin:0,fontSize:16,fontWeight:600,marginBottom:8},children:a}),r.jsx("p",{id:b,style:{margin:0,fontSize:13,color:"var(--text-secondary)",marginBottom:16,lineHeight:1.5},children:s}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[r.jsx("button",{ref:h,type:"button","data-testid":"confirm-dialog-cancel",onClick:f,style:{padding:"6px 14px",borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-primary)",border:"1px solid var(--border-default)",fontSize:13},children:c}),r.jsx("button",{type:"button","data-testid":"confirm-dialog-confirm",onClick:d,style:{padding:"6px 14px",borderRadius:6,cursor:"pointer",fontSize:13,...S},children:i})]})]})})}function Zw(t){const a=(typeof navigator<"u"?navigator.platform:"").toLowerCase();return a.includes("mac")?"system Trash":a.includes("win")?"Recycle Bin":"Trash"}function Hd(t,a){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,severity:a}}))}function Jw({pluginName:t,enabled:a,onAfterAction:s}){const[i,c]=m.useState(!1),[u,d]=m.useState(null),[f,x]=m.useState(null),[h,y]=m.useState(!1),v=m.useRef(null);m.useEffect(()=>{if(!i)return;function C(E){v.current&&!v.current.contains(E.target)&&c(!1)}return document.addEventListener("mousedown",C),()=>document.removeEventListener("mousedown",C)},[i]);async function b(C){d(C),x(null);try{const E=await fetch(`/api/plugins/${encodeURIComponent(t)}/${C}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),w=await E.json().catch(()=>({}));if(!E.ok||!w.ok){const N=w.error??`${C} failed (${E.status})`;x(N),C==="uninstall"&&Hd(`Failed to uninstall ${t}: ${N}`,"error");return}if(C==="uninstall"){const N=w.fallback==="orphan-cache-removed"?`Removed orphaned ${t}`:`Uninstalled ${t}`;Hd(N,"success")}Bn("skills"),ny(),s==null||s(),c(!1)}catch(E){const w=E instanceof Error?E.message:String(E);x(w),C==="uninstall"&&Hd(`Failed to uninstall ${t}: ${w}`,"error")}finally{d(null)}}function S(){y(!0)}return r.jsxs("div",{ref:v,style:{position:"relative",display:"inline-flex"},children:[r.jsx("button",{type:"button","aria-label":`Manage ${t}`,title:`Manage ${t}`,onClick:C=>{C.stopPropagation(),c(E=>!E)},"data-vskill-plugin-action-trigger":t,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,marginLeft:4,border:"none",background:i?"var(--surface-2, rgba(0,0,0,0.08))":"transparent",color:"var(--text-tertiary)",borderRadius:4,cursor:"pointer",fontSize:14,lineHeight:1},onMouseEnter:C=>{C.currentTarget.style.color="var(--text-primary)",C.currentTarget.style.background="var(--surface-2, rgba(0,0,0,0.06))"},onMouseLeave:C=>{C.currentTarget.style.color="var(--text-tertiary)",C.currentTarget.style.background=i?"var(--surface-2, rgba(0,0,0,0.08))":"transparent"},children:"⋯"}),i&&r.jsxs("div",{role:"menu",style:{position:"absolute",top:"calc(100% + 2px)",right:0,minWidth:160,background:"var(--color-paper, #fff)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:6,boxShadow:"0 4px 6px -1px rgba(0,0,0,0.08), 0 8px 14px -4px rgba(0,0,0,0.12)",padding:4,zIndex:30,fontFamily:"var(--font-sans)"},children:[a?r.jsx(Pd,{onClick:()=>void b("disable"),disabled:u!==null,busy:u==="disable",label:"Disable",hint:"Keep installed, turn off"}):r.jsx(Pd,{onClick:()=>void b("enable"),disabled:u!==null,busy:u==="enable",label:"Enable",hint:"Activate plugin"}),r.jsx(Pd,{onClick:S,disabled:u!==null,busy:u==="uninstall",label:"Uninstall",hint:"Remove plugin + skills",danger:!0}),f&&r.jsx("div",{style:{padding:"6px 8px",fontSize:11,color:"var(--color-error, #b91c1c)",background:"color-mix(in oklch, var(--color-error, #b91c1c) 8%, transparent)",borderRadius:4,marginTop:4,lineHeight:1.4,maxWidth:240,wordBreak:"break-word"},children:f})]}),r.jsx(Fo,{open:h,title:`Uninstall ${t}?`,body:`This removes the ${t} plugin and all of its skills. You can reinstall it later from the marketplace.`,confirmLabel:"Uninstall",cancelLabel:"Cancel",variant:"destructive",onCancel:()=>{y(!1),c(!1)},onConfirm:()=>{y(!1),b("uninstall")}})]})}function Pd({onClick:t,disabled:a,busy:s,label:i,hint:c,danger:u}){return r.jsxs("button",{type:"button",onClick:d=>{d.stopPropagation(),t()},disabled:a,role:"menuitem",style:{display:"block",width:"100%",padding:"6px 10px",textAlign:"left",border:"none",background:"transparent",borderRadius:4,cursor:a?"not-allowed":"pointer",color:u?"var(--color-error, #b91c1c)":"var(--text-primary)",opacity:a&&!s?.5:1,fontFamily:"inherit"},onMouseEnter:d=>{a||(d.currentTarget.style.background="var(--surface-2, rgba(0,0,0,0.05))")},onMouseLeave:d=>{d.currentTarget.style.background="transparent"},children:[r.jsx("div",{style:{fontSize:12,fontWeight:500},children:s?`${i}…`:i}),r.jsx("div",{style:{fontSize:10,color:"var(--text-tertiary)"},children:c})]})}const eC=/^[a-z][a-z0-9-]{0,62}[a-z0-9]$/;function tC({anchorSkillDir:t,candidateLabel:a,initialName:s,initialDescription:i,onConverted:c,onCancel:u}){const[d,f]=m.useState(s),[x,h]=m.useState(i??""),[y,v]=m.useState(!1),[b,S]=m.useState(null),[C,E]=m.useState(null),w=eC.test(d),N=y||!w,T=m.useCallback(async A=>{if(A.preventDefault(),!N){v(!0),S(null),E(null);try{const I=await ke.convertToPlugin({anchorSkillDir:t,pluginName:d.trim(),description:x.trim()});c({pluginDir:I.pluginDir,manifestPath:I.manifestPath,validation:I.validation})}catch(I){if(I instanceof Ga){S(I.message);const L=I.details;L&&typeof L.stderr=="string"&&E(L.stderr)}else S(I instanceof Error?I.message:String(I));v(!1)}}},[N,t,d,x,c]);return r.jsx("div",{role:"dialog","aria-modal":"true","aria-labelledby":"vskill-convert-dialog-title",style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.45)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3},onClick:A=>{A.target===A.currentTarget&&!y&&u()},children:r.jsxs("form",{onSubmit:T,style:{background:"var(--bg-primary, #fff)",color:"var(--text-primary, #111)",borderRadius:8,padding:20,width:"min(540px, 92vw)",boxShadow:"0 12px 48px rgba(0,0,0,0.25)",fontFamily:"var(--font-sans)"},children:[r.jsxs("h2",{id:"vskill-convert-dialog-title",style:{margin:0,fontSize:16,fontWeight:600},children:["Convert ",r.jsxs("span",{style:{fontFamily:"var(--font-mono)"},children:[a,"/"]})," to a plugin"]}),r.jsxs("p",{style:{marginTop:8,marginBottom:16,fontSize:13,color:"var(--text-secondary)"},children:["Writes ",r.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:".claude-plugin/plugin.json"})," into this folder and validates it via ",r.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:"claude plugin validate"}),". The skills already on disk will appear nested under the new plugin."]}),r.jsx("label",{style:{display:"block",fontSize:12,fontWeight:500,marginBottom:4},children:"Plugin name"}),r.jsx("input",{type:"text",value:d,onChange:A=>f(A.target.value),disabled:y,autoFocus:!0,style:{width:"100%",padding:"6px 8px",fontSize:13,fontFamily:"var(--font-mono)",boxSizing:"border-box",border:"1px solid var(--border-subtle)",borderRadius:4}}),!w&&r.jsx("div",{style:{fontSize:11,color:"var(--color-error, #c00)",marginTop:4},children:"Must be kebab-case (lowercase letters, digits, hyphens; 2–64 chars)."}),r.jsx("label",{style:{display:"block",fontSize:12,fontWeight:500,marginTop:12,marginBottom:4},children:"Description"}),r.jsx("input",{type:"text",value:x,onChange:A=>h(A.target.value),disabled:y,style:{width:"100%",padding:"6px 8px",fontSize:13,boxSizing:"border-box",border:"1px solid var(--border-subtle)",borderRadius:4}}),b&&r.jsxs("div",{role:"alert",style:{marginTop:12,padding:8,fontSize:12,background:"var(--color-error-bg, #fee)",color:"var(--color-error, #c00)",borderRadius:4},children:[r.jsx("div",{style:{fontWeight:500},children:b}),C&&r.jsx("pre",{style:{marginTop:6,padding:6,fontSize:11,fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",background:"rgba(0,0,0,0.04)",borderRadius:3,maxHeight:160,overflow:"auto"},children:C})]}),r.jsxs("div",{style:{marginTop:16,display:"flex",justifyContent:"flex-end",gap:8},children:[r.jsx("button",{type:"button",onClick:u,disabled:y,style:{padding:"6px 12px",fontSize:13,background:"transparent",border:"1px solid var(--border-subtle)",borderRadius:4,cursor:y?"not-allowed":"pointer"},children:"Cancel"}),r.jsx("button",{type:"submit",disabled:N,style:{padding:"6px 12px",fontSize:13,background:"var(--color-accent, #2b6cb0)",color:"white",border:"none",borderRadius:4,cursor:N?"not-allowed":"pointer",opacity:N?.5:1},children:y?"Converting…":"Convert"})]})]})})}function Fg({name:t,count:a,className:s,variant:i,collapsed:c,onToggle:u,action:d}){const f=i==="authoring"?"var(--color-own, #f59e0b)":"var(--color-accent, #2f6f8f)",x=i==="authoring"?"color-mix(in oklch, var(--color-own, #f59e0b) 10%, var(--color-paper, #fff))":"color-mix(in oklch, var(--color-accent, #2f6f8f) 8%, var(--color-paper, #fff))",h=typeof u=="function",y={position:"sticky",top:0,zIndex:4,backdropFilter:"saturate(1.4) blur(10px)",WebkitBackdropFilter:"saturate(1.4) blur(10px)",background:x,borderLeft:`3px solid ${f}`,borderBottom:"1px solid var(--border-subtle, rgba(128,128,128,0.2))",padding:"7px 10px 7px 9px",fontFamily:"var(--font-serif, ui-serif)",fontSize:13,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--text-primary)",display:"flex",alignItems:"center",gap:8,width:"100%",cursor:h?"pointer":"default",border:"none",textAlign:"left"},v=c?"▸":"▾",b=r.jsxs(r.Fragment,{children:[h&&r.jsx("span",{"aria-hidden":!0,style:{fontSize:15,fontWeight:700,color:f,width:16,display:"inline-block",textAlign:"center",letterSpacing:0,textTransform:"none"},children:v}),r.jsx("span",{className:"vskill-group-header-name",children:t}),r.jsxs("span",{className:"vskill-group-header-count tabular-nums",style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:500,color:"var(--text-secondary)",letterSpacing:0,textTransform:"none"},children:["(",a,")"]}),d&&r.jsx("span",{style:{marginLeft:"auto"},children:r.jsx(nC,{label:d.label,title:d.title,icon:d.icon,onClick:d.onClick,accent:f})})]});return h?r.jsx("button",{type:"button","data-vskill-group-header":t,className:["vskill-group-header select-none",s??""].join(" ").trim(),style:y,onClick:()=>u(!c),"aria-expanded":!c,children:b}):r.jsx("div",{"data-vskill-group-header":t,role:"heading","aria-level":3,className:["vskill-group-header select-none",s??""].join(" ").trim(),style:y,children:b})}function nC({label:t,title:a,icon:s,onClick:i,accent:c}){return r.jsxs("button",{type:"button","aria-label":t,title:a??t,onClick:u=>{u.stopPropagation(),i()},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:4,height:22,padding:"0 7px",border:`1px solid ${c}`,background:"transparent",color:c,borderRadius:4,fontSize:10,fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",cursor:"pointer",fontFamily:"inherit"},onMouseEnter:u=>{u.currentTarget.style.background=`color-mix(in oklch, ${c} 15%, transparent)`},onMouseLeave:u=>{u.currentTarget.style.background="transparent"},children:[s,t]})}function rC(){return r.jsxs("div",{"aria-hidden":"true",role:"presentation",style:{display:"flex",alignItems:"center",gap:8,height:36,padding:"0 12px 0 14px"},children:[r.jsx("span",{className:"placeholder",style:{width:6,height:6,borderRadius:"50%",flexShrink:0}}),r.jsx("span",{className:"placeholder",style:{height:10,flex:1,borderRadius:3,maxWidth:180}})]})}function aC(t){const a=t.key.split("+").map(f=>f.trim()).filter(Boolean);let s=!!t.meta,i=!!t.ctrl,c=!!t.shift,u=!!t.alt,d=t.key;if(a.length>1){for(const f of a.slice(0,-1)){const x=f.toLowerCase();x==="cmd"||x==="meta"||x==="⌘"?s=!0:x==="ctrl"||x==="control"?i=!0:x==="shift"?c=!0:(x==="alt"||x==="option")&&(u=!0)}d=a[a.length-1]}return{key:d.length===1?d.toLowerCase():d,meta:s,ctrl:i,shift:c,alt:u,allowInInputs:!!t.allowInInputs,handler:t.handler}}function lC(t){if(!t||!(t instanceof HTMLElement))return!1;const a=t.tagName;if(a==="INPUT"||a==="TEXTAREA"||t.isContentEditable)return!0;const s=t.getAttribute("contenteditable");return s!=null&&s!=="false"||t.getAttribute("role")==="textbox"}function sC(t,a){const s=!!t.metaKey,i=!!t.ctrlKey,c=!!t.shiftKey,u=!!t.altKey;return s!==a.meta||i!==a.ctrl||c!==a.shift||u!==a.alt?!1:(t.key.length===1?t.key.toLowerCase():t.key)===a.key}function yf(t,a={}){const{enabled:s=!0,target:i}=a,c=m.useRef([]),u=Array.isArray(t)?t:[t];c.current=u.map(aC),m.useEffect(()=>{if(!s)return;const d=i??(typeof window<"u"?window:void 0);if(!d)return;function f(x){const h=x,y=lC(h.target);for(const v of c.current){if(!sC(h,v))continue;const b=v.meta||v.ctrl||v.alt;if(!(y&&!v.allowInInputs&&!b)){v.handler(h);return}}}return d.addEventListener("keydown",f),()=>{d.removeEventListener("keydown",f)}},[s,i])}function By(){const{data:t,loading:a,error:s,revalidate:i}=qa("project-github-status",()=>ke.getProjectGitHubStatus());return{status:t,loading:a,error:s,revalidate:i}}function iC(t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(`vskill-github-hint-dismissed-${t}`)==="true"}catch{return!1}}function oC({projectRoot:t}){const{status:a,loading:s}=By();if(s||!a||a.status==="github"||iC(t))return null;const i=a.status==="no-git"?"GitHub not connected — run `gh repo create ...` to publish your skills":"Origin is not GitHub — add a github.com remote to publish",c=()=>{typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:focus-publish-row"))};return r.jsx("button",{type:"button","data-testid":"sidebar-github-not-connected","aria-label":"GitHub not connected — click for help",title:i,onClick:c,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"transparent",border:"none",cursor:"pointer",color:"var(--color-own, #f59e0b)"},children:r.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("path",{d:"m2 2 20 20"}),r.jsx("path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193"}),r.jsx("path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07"})]})})}const cC=200;function uC(t){return t.scope==="own"||t.scope==="installed"||t.scope==="global"?t.scope:t.origin==="installed"?"installed":"own"}function dC(t,a){const s={availableProject:[],availablePersonal:[],availablePlugin:[],authoringProject:[],authoringPlugin:[]};for(const d of t){const f=d.scopeV2??(d.scope==="installed"?"available-project":d.scope==="global"?"available-personal":"authoring-project");f==="available-project"?s.availableProject.push(d):f==="available-personal"?s.availablePersonal.push(d):f==="available-plugin"?s.availablePlugin.push(d):f==="authoring-plugin"?s.authoringPlugin.push(d):s.authoringProject.push(d)}function i(d){const f=d.filter(y=>qf(y,a)),x={};for(const y of f){const v=y.pluginName??y.plugin;(x[v]||(x[v]=[])).push(y)}const h=Object.entries(x).sort((y,v)=>y[0].localeCompare(v[0]));return{total:d.length,filtered:f.length,byPlugin:h}}const c=i(s.authoringProject),u=c.byPlugin.filter(([d,f])=>f.length>=2&&d.trim().length>=2).map(([d,f])=>({groupKey:d,skills:f,anchorSkillDir:f[0].dir}));return{availableProject:i(s.availableProject),availablePersonal:i(s.availablePersonal),availablePlugin:i(s.availablePlugin),authoringProject:c,authoringPlugin:i(s.authoringPlugin),authoringCandidatePlugins:u}}function fC(t,a){const s=[],i=[],c=[];for(const d of t){const f=uC(d);f==="global"?c.push(d):f==="installed"?i.push(d):s.push(d)}function u(d){var y;const f=d.filter(v=>qf(v,a)),x={};for(const v of f)(x[y=v.plugin]||(x[y]=[])).push(v);const h=Object.entries(x).sort((v,b)=>v[0].localeCompare(b[0]));return{total:d.length,filtered:f.length,byPlugin:h}}return{own:u(s),installed:u(i),global:u(c)}}function pC(t,a){const s=[],i=[];for(const u of t)(u.origin==="installed"?i:s).push(u);function c(u){var h;const d=u.filter(y=>qf(y,a)),f={};for(const y of d)(f[h=y.plugin]||(f[h]=[])).push(y);const x=Object.entries(f).sort((y,v)=>y[0].localeCompare(v[0]));return{total:u.length,filtered:d.length,byPlugin:x}}return{own:c(s),installed:c(i)}}function mC({skills:t,selectedKey:a,onSelect:s,isLoading:i,error:c,onRetry:u,onContextMenu:d,outdatedByOrigin:f,activeAgentId:x,outdatedByScope:h,topSlot:y,revealSkillId:v,onRevealComplete:b,dirtySkillIds:S,onSkillsChanged:C}){const[E,w]=m.useState(null),N=!!x||t.some(ce=>ce.scope!==void 0&&ce.scope!==null),T=x??"claude-cli",[A,I]=m.useState(""),L=m.useDeferredValue(A),H=m.useMemo(()=>fC(t,L),[t,L]),k=m.useMemo(()=>dC(t,L),[t,L]),O=T==="claude-code",{plugins:z}=pk(),_=O?{plugins:z??[]}:void 0,$=m.useMemo(()=>{const ce=new Map;for(const ne of(_==null?void 0:_.plugins)??[]){const ge=ce.get(ne.name);ce.set(ne.name,!!ge||!!ne.enabled)}return ce},[_==null?void 0:_.plugins]),[q,K]=m.useState(()=>bf(`vskill-sidebar-${T}-group-available-collapsed`)),[Q,U]=m.useState(()=>bf(`vskill-sidebar-${T}-group-authoring-collapsed`)),M=m.useCallback(ce=>{K(ce);try{window.localStorage.setItem(`vskill-sidebar-${T}-group-available-collapsed`,String(ce))}catch{}},[T]),B=m.useCallback(ce=>{U(ce);try{window.localStorage.setItem(`vskill-sidebar-${T}-group-authoring-collapsed`,String(ce))}catch{}},[T]),{own:F,installed:te}=m.useMemo(()=>pC(t,L),[t,L]),D=H.own.filtered+H.installed.filtered+H.global.filtered>=cC,W=m.useMemo(()=>{const ce=ne=>{const ge=[];for(const[,Le]of ne){const Ee=[...Le].sort((Me,Pe)=>Me.skill.localeCompare(Pe.skill));ge.push(...Ee)}return ge};return N?[...ce(H.own.byPlugin),...ce(H.installed.byPlugin),...ce(H.global.byPlugin)]:[...ce(F.byPlugin),...ce(te.byPlugin)]},[N,H.own.byPlugin,H.installed.byPlugin,H.global.byPlugin,F.byPlugin,te.byPlugin]),X=m.useMemo(()=>a?W.findIndex(ce=>ce.plugin===a.plugin&&ce.skill===a.skill):-1,[W,a]),ee=m.useCallback(ce=>{if(W.length===0)return;const ne=X<0?ce>0?0:W.length-1:Math.min(Math.max(X+ce,0),W.length-1);s(W[ne])},[W,X,s]),de=m.useMemo(()=>{if(!v)return null;const[ce,ne]=v.split("/");if(!ce||!ne)return null;const ge=t.find(Me=>Me.plugin===ce&&Me.skill===ne);if(!ge)return{plugin:ce,skill:ne,bucket:null,pluginName:null};const Le=ge.source==="plugin"?"plugin":"project",Ee=Le==="plugin"?ge.pluginName??ce:null;return{plugin:ce,skill:ne,bucket:Le,pluginName:Ee}},[v,t]),le=m.useRef(null);return m.useEffect(()=>{if(!v){le.current=null;return}if(le.current===v)return;const ce=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(v):v.replace(/["\\]/g,"\\$&"),ne=document.querySelector(`[data-skill-id="${ce}"]`);ne&&(le.current=v,ne.scrollIntoView({behavior:"smooth",block:"nearest"}),b==null||b())},[v,b,t]),yf([{key:"j",handler:()=>ee(1)},{key:"k",handler:()=>ee(-1)},{key:"Enter",handler:()=>{X>=0&&s(W[X])}}],{enabled:!i&&!c}),r.jsxs("div",{"data-testid":"sidebar",style:{display:"flex",flexDirection:"column",minHeight:0,height:"100%",fontFamily:"var(--font-sans)"},children:[y,r.jsx(Fw,{value:A,onChange:I}),i&&r.jsx(jC,{}),!i&&c&&r.jsx(SC,{error:c,onRetry:u}),!i&&!c&&N&&r.jsxs("div",{style:{flex:1,overflowY:"auto",minHeight:0},children:[r.jsx(Fg,{name:se.scopeLabels.groupAvailable.toUpperCase(),variant:"available",collapsed:q,onToggle:M,count:k.availableProject.total+k.availablePersonal.total+k.availablePlugin.total}),!q&&r.jsxs(r.Fragment,{children:[r.jsx(Is,{label:se.scopeLabels.sourceProject,storageKey:`vskill-sidebar-${T}-available-project-collapsed`,count:k.availableProject.total,filteredCount:A?k.availableProject.filtered:null,updateCount:(h==null?void 0:h.installed)??(f==null?void 0:f.installed),headerRightSlot:O?r.jsx(oC,{projectRoot:T}):null,children:k.availableProject.filtered===0?r.jsx(Wg,{queryActive:!!A,agentId:T}):r.jsx($s,{items:k.availableProject.byPlugin,selectedKey:a,onSelect:s,onContextMenu:d,useVirtual:D,dirtySkillIds:S})}),r.jsx(Is,{label:se.scopeLabels.sourcePersonal,storageKey:`vskill-sidebar-${T}-available-personal-collapsed`,count:k.availablePersonal.total,filteredCount:A?k.availablePersonal.filtered:null,updateCount:h==null?void 0:h.global,children:k.availablePersonal.filtered===0?r.jsx(xC,{queryActive:!!A,agentId:T}):r.jsx($s,{items:k.availablePersonal.byPlugin,selectedKey:a,onSelect:s,onContextMenu:d,useVirtual:D,dirtySkillIds:S})}),O&&r.jsxs(Is,{label:se.scopeLabels.sourcePlugin,storageKey:`vskill-sidebar-${T}-available-plugin-collapsed`,count:k.availablePlugin.total,filteredCount:A?k.availablePlugin.filtered:null,children:[r.jsxs("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("studio:open-marketplace")),style:{display:"flex",alignItems:"center",gap:6,margin:"4px 14px 6px",padding:"4px 8px",fontSize:11,fontWeight:500,border:"1px dashed var(--color-accent, #2f6f8f)",borderRadius:4,background:"transparent",color:"var(--color-accent, #2f6f8f)",cursor:"pointer"},children:[r.jsx("span",{"aria-hidden":!0,children:"🛒"})," Browse marketplaces…"]}),k.availablePlugin.filtered===0?r.jsx(gC,{queryActive:!!A,hasInstalled:k.availablePlugin.total>0}):k.availablePlugin.byPlugin.map(([ce,ne])=>r.jsx(Ud,{pluginName:ce,skills:ne,persistKey:`vskill-plugin-available-${ce}-collapsed`,headerActionSlot:O?r.jsx(Jw,{pluginName:ce,enabled:$.get(ce)??!0}):void 0,renderSkill:ge=>r.jsx(Ys,{skill:ge,isSelected:(a==null?void 0:a.plugin)===ge.plugin&&(a==null?void 0:a.skill)===ge.skill,onSelect:()=>s(ge),onContextMenu:d,dirty:S==null?void 0:S.has(`${ge.plugin}/${ge.skill}`)})},`available-${ce}`))]})]}),r.jsx(bC,{}),r.jsx(Fg,{name:se.scopeLabels.groupAuthoring.toUpperCase(),variant:"authoring",collapsed:de?!1:Q,onToggle:B,count:k.authoringProject.total+k.authoringPlugin.total,action:{label:"New",title:"Create a new skill (standalone or plugin)",icon:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),onClick:()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:request-create-skill",{detail:{mode:"standalone"}}))}}}),(!Q||de)&&r.jsxs(r.Fragment,{children:[r.jsx(Is,{label:se.scopeLabels.authoringSkills,storageKey:`vskill-sidebar-${T}-authoring-project-collapsed`,count:k.authoringProject.total,filteredCount:A?k.authoringProject.filtered:null,updateCount:(h==null?void 0:h.own)??(f==null?void 0:f.source),forceOpen:(de==null?void 0:de.bucket)==="project",children:k.authoringProject.filtered===0?r.jsx(Gg,{queryActive:!!A}):r.jsxs(r.Fragment,{children:[k.authoringCandidatePlugins.map(ce=>r.jsx(Ud,{pluginName:ce.groupKey,skills:ce.skills,persistKey:`vskill-candidate-plugin-${ce.groupKey}-collapsed`,headerActionSlot:r.jsx("button",{type:"button",onClick:ne=>{ne.stopPropagation(),w({candidateLabel:ce.groupKey,initialName:ce.groupKey,anchorSkillDir:ce.anchorSkillDir})},title:"Write .claude-plugin/plugin.json into this folder so Claude Code recognizes it as a plugin",style:{fontSize:10,fontWeight:500,padding:"2px 8px",borderRadius:10,border:"1px solid var(--border-subtle, rgba(128,128,128,0.3))",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontFamily:"var(--font-sans)"},children:"Not a plugin yet · Convert →"}),renderSkill:ne=>r.jsx(Ys,{skill:ne,isSelected:(a==null?void 0:a.plugin)===ne.plugin&&(a==null?void 0:a.skill)===ne.skill,onSelect:()=>s(ne),onContextMenu:d,dirty:S==null?void 0:S.has(`${ne.plugin}/${ne.skill}`)})},`candidate-${ce.groupKey}`)),r.jsx($s,{items:k.authoringProject.byPlugin.filter(([ce])=>!k.authoringCandidatePlugins.some(ne=>ne.groupKey===ce)),selectedKey:a,onSelect:s,onContextMenu:d,useVirtual:D,dirtySkillIds:S})]})}),O&&r.jsx(Is,{label:se.scopeLabels.sourcePlugin,storageKey:`vskill-sidebar-${T}-authoring-plugin-collapsed`,count:k.authoringPlugin.total,filteredCount:A?k.authoringPlugin.filtered:null,forceOpen:(de==null?void 0:de.bucket)==="plugin",children:k.authoringPlugin.filtered===0?r.jsx(vC,{queryActive:!!A,hasSources:k.authoringPlugin.total>0,candidates:k.authoringCandidatePlugins,onPromote:ce=>w({candidateLabel:ce.groupKey,initialName:ce.groupKey,anchorSkillDir:ce.anchorSkillDir})}):k.authoringPlugin.byPlugin.map(([ce,ne])=>r.jsx(Ud,{pluginName:ce,skills:ne,persistKey:`vskill-plugin-authoring-${ce}-collapsed`,forceOpen:(de==null?void 0:de.bucket)==="plugin"&&de.pluginName===ce,renderSkill:ge=>r.jsx(Ys,{skill:ge,isSelected:(a==null?void 0:a.plugin)===ge.plugin&&(a==null?void 0:a.skill)===ge.skill,onSelect:()=>s(ge),onContextMenu:d,dirty:S==null?void 0:S.has(`${ge.plugin}/${ge.skill}`)})},`authoring-${ce}`))})]})]}),!i&&!c&&!N&&r.jsxs("div",{style:{flex:1,overflowY:"auto",minHeight:0},children:[r.jsx(Vg,{origin:"source",count:F.total,filteredCount:A?F.filtered:null,updateCount:f==null?void 0:f.source,children:F.filtered===0?r.jsx(Gg,{queryActive:!!A}):r.jsx($s,{items:F.byPlugin,selectedKey:a,onSelect:s,onContextMenu:d,useVirtual:D,dirtySkillIds:S})}),r.jsx(yC,{}),r.jsx(Vg,{origin:"installed",count:te.total,filteredCount:A?te.filtered:null,updateCount:f==null?void 0:f.installed,children:te.filtered===0?r.jsx(Wg,{queryActive:!!A}):r.jsx($s,{items:te.byPlugin,selectedKey:a,onSelect:s,onContextMenu:d,useVirtual:D,dirtySkillIds:S})})]}),E&&r.jsx(tC,{anchorSkillDir:E.anchorSkillDir,candidateLabel:E.candidateLabel,initialName:E.initialName,onCancel:()=>w(null),onConverted:ce=>{w(null),C==null||C(),ce.validation==="skipped"&&window.alert("Plugin manifest written, but schema validation was skipped because the 'claude' CLI is not on PATH. Install Claude Code to enable plugin schema validation.")}})]})}function bf(t){if(typeof window>"u")return!1;try{return window.localStorage.getItem(t)==="true"}catch{return!1}}function Is({label:t,storageKey:a,count:s,filteredCount:i,updateCount:c,children:u,forceOpen:d=!1,headerRightSlot:f}){const[x,h]=m.useState(()=>bf(a)),y=d?!1:x,v=m.useCallback(()=>{h(S=>{const C=!S;if(typeof window<"u")try{window.localStorage.setItem(a,String(C))}catch{}return C})},[a]),b=i!=null&&i!==s?`${i} of ${s}`:String(s);return r.jsxs("section",{"data-vskill-named-scope":t,children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",width:"100%",padding:"6px 12px",gap:8},children:[r.jsxs("button",{type:"button",onClick:v,"aria-expanded":!y,style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0,padding:0,background:"transparent",border:"none",cursor:"pointer",fontFamily:"var(--font-sans)",textAlign:"left"},children:[r.jsx("span",{"aria-hidden":!0,style:{fontSize:14,fontWeight:700,color:"var(--color-ink, var(--text-primary))",width:16,display:"inline-block",textAlign:"center"},children:y?"▸":"▾"}),r.jsx("span",{style:{fontSize:12,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--text-primary)"},children:t}),r.jsxs("span",{style:{fontSize:11,color:"var(--text-tertiary)",fontVariantNumeric:"tabular-nums",fontFamily:"var(--font-mono)"},children:["(",b,")"]}),c!=null&&c>0&&r.jsxs("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--color-own, #f59e0b)"},children:[c," update",c!==1?"s":""]})]}),f]}),!y&&r.jsx("div",{style:{paddingLeft:18},children:u})]})}function hC(t){const a=[];for(const[s,i]of t){const c=[...i].sort((u,d)=>u.skill.localeCompare(d.skill));a.push({kind:"header",plugin:s,count:c.length});for(const u of c)a.push({kind:"row",skill:u})}return a}function $s({items:t,selectedKey:a,onSelect:s,onContextMenu:i,useVirtual:c,dirtySkillIds:u}){if(c){const d=hC(t);return r.jsx("div",{"data-virtualized":"true",style:{height:420,minHeight:200},children:r.jsx(kw,{overscan:4,totalCount:d.length,itemContent:f=>{const x=d[f];if(!x)return null;if(x.kind==="header")return r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px 4px 14px"},children:[r.jsx("span",{style:{fontSize:10,fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--text-secondary)",fontFamily:"var(--font-sans)"},children:x.plugin}),r.jsxs("span",{style:{fontSize:10,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums",fontFamily:"var(--font-mono)"},children:["(",x.count,")"]})]});const h=x.skill,y=!!a&&a.plugin===h.plugin&&a.skill===h.skill;return r.jsx(Ys,{skill:h,isSelected:y,onSelect:()=>s(h),onContextMenu:i,dirty:u==null?void 0:u.has(`${h.plugin}/${h.skill}`)})}})})}return r.jsx("div",{"data-virtualized":"false",children:t.map(([d,f])=>r.jsx(Xw,{plugin:d,skills:f,selectedKey:a,onSelect:s,onContextMenu:i,dirtySkillIds:u},d))})}function Gg({queryActive:t}){return t?r.jsx(yr,{headline:"No matches in this section.",body:"Adjust the filter or press Escape to clear."}):r.jsx(yr,{headline:"No skills yet.",body:r.jsxs(r.Fragment,{children:["Create one with ",r.jsx($l,{children:"vskill new"})," or the"," ",r.jsx("strong",{style:{color:"var(--text-primary)"},children:"New skill"})," action in the top rail."]})})}function Wg({queryActive:t,agentId:a}){return t?r.jsx(yr,{headline:"No matches in this section.",body:"Adjust the filter or press Escape to clear."}):r.jsx(yr,{headline:a?`No skills installed for ${a} in this project.`:"No installed skills.",body:r.jsxs(r.Fragment,{children:["Run ",r.jsx($l,{children:"vskill install <skill>"})," to add one."]})})}function xC({queryActive:t,agentId:a}){return t?r.jsx(yr,{headline:"No matches in this section.",body:"Adjust the filter or press Escape to clear."}):r.jsx(yr,{headline:`No global skills for ${a}.`,body:r.jsxs(r.Fragment,{children:["Run ",r.jsx($l,{children:"vskill install --global <skill>"})," to add one."]})})}function gC({queryActive:t,hasInstalled:a}){return t&&a?r.jsx(yr,{headline:"No matches in this section.",body:"Adjust the filter or press Escape to clear."}):r.jsx(yr,{headline:"No plugin skills installed yet.",body:r.jsxs(r.Fragment,{children:["Click ",r.jsx($l,{children:"Browse marketplaces…"})," above to add one."]})})}function vC({queryActive:t,hasSources:a,candidates:s,onPromote:i}){return t&&a?r.jsx(yr,{headline:"No matches in this section.",body:"Adjust the filter or press Escape to clear."}):r.jsxs(r.Fragment,{children:[r.jsx(yr,{headline:"No plugin sources in this project.",body:r.jsxs(r.Fragment,{children:["Add ",r.jsx($l,{children:"<plugin>/.claude-plugin/plugin.json"})," to author one, or ",r.jsx($l,{children:"vskill plugin new"})," from the terminal."]})}),s&&s.length>0&&r.jsxs("div",{style:{padding:"0 14px 12px",display:"flex",flexDirection:"column",gap:6},children:[r.jsxs("div",{style:{fontSize:11,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:2},children:["Candidate folders (",s.length,")"]}),s.map(c=>r.jsxs("button",{type:"button",onClick:()=>i==null?void 0:i(c),title:`Promote ${c.groupKey}/ to a Claude Code plugin`,style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8,padding:"6px 8px",fontSize:12,background:"transparent",border:"1px dashed var(--border-subtle, rgba(128,128,128,0.35))",borderRadius:4,color:"var(--text-primary)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)"},children:[r.jsxs("span",{children:[c.groupKey,"/ ",r.jsxs("span",{style:{color:"var(--text-tertiary)"},children:["(",c.skills.length," skills)"]})]}),r.jsx("span",{style:{fontFamily:"var(--font-sans)",fontSize:11,color:"var(--text-secondary)"},children:"Promote →"})]},`promote-${c.groupKey}`))]})]})}function yr({headline:t,body:a}){return r.jsxs("div",{style:{padding:"12px 14px 16px",fontSize:12,color:"var(--text-secondary)",lineHeight:1.5},children:[r.jsx("div",{style:{fontWeight:500,color:"var(--text-primary)",marginBottom:4},children:t}),r.jsx("div",{children:a})]})}function $l({children:t}){return r.jsx("code",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-primary)",background:"color-mix(in srgb, var(--border-default) 45%, transparent)",padding:"1px 4px",borderRadius:3},children:t})}function yC(){return r.jsx("div",{"aria-hidden":"true",style:{height:1,background:"var(--border-default)",margin:"4px 14px"}})}function bC(){return r.jsx("div",{"aria-hidden":"true","data-testid":"scope-bold-divider",style:{height:3,background:"var(--color-rule)",boxShadow:"inset 0 1px 0 color-mix(in srgb, var(--color-rule) 50%, transparent)",margin:"12px 0"}})}function jC(){return r.jsx("div",{style:{padding:"8px 0"},children:[0,1,2,3,4,5].map(t=>r.jsx(rC,{},t))})}function SC({error:t,onRetry:a}){return r.jsxs("div",{role:"alert",style:{margin:"12px 14px",padding:12,border:"1px solid var(--border-default)",borderRadius:6,background:"var(--bg-canvas)",color:"var(--text-primary)",fontSize:12},children:[r.jsx("div",{style:{fontWeight:600,marginBottom:4},children:"Couldn't load skills."}),r.jsxs("details",{children:[r.jsx("summary",{style:{cursor:"pointer",color:"var(--text-secondary)",fontSize:11,marginBottom:4},children:kC(t)}),r.jsx("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-secondary)",margin:"6px 0 0"},children:t})]}),a&&r.jsx("button",{type:"button",onClick:a,style:{marginTop:8,background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"4px 10px",color:"var(--text-primary)",cursor:"pointer",fontSize:11,fontFamily:"var(--font-sans)"},children:"Retry"})]})}function kC(t){const a=t.split(`
66
- `)[0]??t;return a.length>80?a.slice(0,77)+"…":a}const Iy=240,$y=480,Uy="vskill-sidebar-width",Ks=320;function Yf(t){return Number.isFinite(t)?Math.round(Math.max(Iy,Math.min($y,t))):Ks}function wC(){try{const t=localStorage.getItem(Uy);if(!t)return Ks;const a=Number(t);return Number.isFinite(a)?Yf(a):Ks}catch{return Ks}}function CC(t){try{localStorage.setItem(Uy,String(Yf(t)))}catch{}}function EC({initialWidth:t,onChange:a}){const s=m.useRef({startX:0,startWidth:t,pointerId:null}),i=m.useRef(t);return m.useEffect(()=>{i.current=t},[t]),m.useEffect(()=>{function c(d){if(s.current.pointerId==null||d.pointerId!==s.current.pointerId)return;const f=d.clientX-s.current.startX,x=Yf(s.current.startWidth+f);i.current=x,a(x)}function u(d){s.current.pointerId==null||d.pointerId!==s.current.pointerId||(s.current.pointerId=null,CC(i.current))}return window.addEventListener("pointermove",c),window.addEventListener("pointerup",u),window.addEventListener("pointercancel",u),()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",u)}},[a]),r.jsx("div",{role:"separator","aria-orientation":"vertical","aria-valuemin":Iy,"aria-valuemax":$y,"aria-valuenow":t,"aria-label":"Resize sidebar",title:"Drag to resize sidebar",onPointerDown:c=>{const u=c.currentTarget;s.current.startX=c.clientX,s.current.startWidth=i.current,s.current.pointerId=c.pointerId;try{u.setPointerCapture(c.pointerId)}catch{}},style:{width:4,alignSelf:"stretch",cursor:"col-resize",background:"var(--border-default)",userSelect:"none",touchAction:"none"}})}const NC=/^[ MADRCU?!]{1,2} +/;function TC(t){return t.replace(NC,"")}function RC(t,a){const s=t.endsWith("/")?t:t+"/";return a===t?"":a.startsWith(s)?a.slice(s.length):null}function AC(t,a,s){const i=new Set;if(a.length===0||t.length===0)return i;const c=a.map(u=>TC(u).trim()).filter(u=>u.length>0);for(const u of t){const d=u.dir;if(!d)continue;const f=RC(s,d);if(f===null)continue;const x=`${u.plugin}/${u.skill}`;if(f===""){c.length>0&&i.add(x);continue}const h=f+"/";for(const y of c)if(y===f||y.startsWith(h)){i.add(x);break}}return i}const LC=5e3;function MC(t,a,s=LC){const[i,c]=m.useState([]),u=m.useRef(t);return u.current=t,m.useEffect(()=>{if(!a){c([]);return}let d=!1,f=null;const x=async()=>{try{const y=await ke.gitStatus();d||c(y.paths??[])}catch{d||c([])}d||(f=setTimeout(x,s))};x();const h=()=>{x()};return typeof window<"u"&&window.addEventListener("studio:content-saved",h),()=>{d=!0,f&&clearTimeout(f),typeof window<"u"&&window.removeEventListener("studio:content-saved",h)}},[a,s]),a?AC(u.current,i,a):new Set}function zC({connected:t,hint:a,onRetry:s}){return t?null:r.jsxs("aside",{"aria-live":"assertive",role:"alert",style:{display:"flex",alignItems:"center",gap:10,padding:"6px 12px",background:"color-mix(in srgb, var(--status-own) 15%, transparent)",borderBottom:"1px solid var(--border-default)",color:"var(--text-primary)",fontFamily:"var(--font-sans)",fontSize:12},children:[r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:"var(--status-own)",display:"inline-block",flexShrink:0}}),r.jsx("span",{style:{fontWeight:500},children:"Disconnected — reconnecting…"}),a&&r.jsx("span",{style:{color:"var(--text-secondary)",fontSize:11},children:a}),r.jsx("div",{style:{flex:1}}),s&&r.jsx("button",{type:"button",onClick:s,style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"2px 8px",color:"var(--text-primary)",cursor:"pointer",fontSize:11,fontFamily:"var(--font-sans)"},children:"Retry now"})]})}function Hy(t,a){if(t!==401||typeof window>"u"||!a||typeof a!="object")return;const s=a;s.error==="invalid_api_key"&&(s.provider!=="anthropic"&&s.provider!=="openai"&&s.provider!=="openrouter"||window.dispatchEvent(new CustomEvent("studio:api-key-error",{detail:{provider:s.provider}})))}function Py(t){if(t!==void 0)try{return JSON.stringify(t)}catch(a){console.error("Failed to serialize request body:",a);try{const s=new WeakSet;return JSON.stringify(t,(i,c)=>{if(typeof c=="object"&&c!==null){if(s.has(c))return"[Circular]";s.add(c)}return c})}catch{return JSON.stringify({error:"Request body could not be serialized"})}}}function Vd(){const[t,a]=m.useState([]),[s,i]=m.useState(!1),[c,u]=m.useState(!1),[d,f]=m.useState(null),x=m.useRef(null),h=m.useCallback(async(v,b)=>{a([]),i(!0),u(!1),f(null);const S=new AbortController;x.current=S;try{const C=Py(b),E=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json"},body:C,signal:S.signal});if(!E.ok||!E.body){let I=`HTTP ${E.status}`,L;try{L=await E.json(),L&&typeof L=="object"&&"error"in L&&typeof L.error=="string"&&(I=L.error)}catch{}throw Hy(E.status,L),new Error(I)}const w=E.body.getReader(),N=new TextDecoder;let T="",A="";for(;;){const{done:I,value:L}=await w.read();if(I)break;T+=N.decode(L,{stream:!0});const H=T.split(`
67
- `);T=H.pop()||"";for(const k of H)if(k.startsWith("event: "))A=k.slice(7).trim();else if(k.startsWith("data: ")){try{const O=JSON.parse(k.slice(6)),z={event:A,data:O};A==="done"?(u(!0),a(_=>[..._,z])):a(_=>[..._,z])}catch{}A=""}}}catch(C){C.name!=="AbortError"&&f(C.message)}finally{i(!1),x.current=null}},[]),y=m.useCallback(()=>{var v;(v=x.current)==null||v.abort()},[]);return{events:t,running:s,done:c,error:d,start:h,stop:y}}function DC(t){const a=m.useRef(t);a.current=t;const[s,i]=m.useState(new Set),c=m.useRef(new Map),u=m.useCallback(async(h,y,v)=>{var S;(S=c.current.get(h))==null||S.abort();const b=new AbortController;c.current.set(h,b),i(C=>{const E=new Set(C);return E.add(h),E});try{const C=Py(v),E=await fetch(y,{method:"POST",headers:{"Content-Type":"application/json"},body:C,signal:b.signal});if(!E.ok||!E.body){let I=`HTTP ${E.status}`,L;try{L=await E.json(),L&&typeof L=="object"&&"error"in L&&typeof L.error=="string"&&(I=L.error)}catch{}throw Hy(E.status,L),new Error(I)}const w=E.body.getReader(),N=new TextDecoder;let T="",A="";for(;;){const{done:I,value:L}=await w.read();if(I)break;T+=N.decode(L,{stream:!0});const H=T.split(`
68
- `);T=H.pop()||"";for(const k of H)if(k.startsWith("event: "))A=k.slice(7).trim();else if(k.startsWith("data: ")){try{const O=JSON.parse(k.slice(6)),z={event:A,data:O};a.current.onEvent(h,z)}catch{}A=""}}a.current.onDone(h)}catch(C){C.name!=="AbortError"&&a.current.onError(h,C.message)}finally{i(C=>{const E=new Set(C);return E.delete(h),E}),c.current.delete(h)}},[]),d=m.useCallback(h=>{var y;(y=c.current.get(h))==null||y.abort()},[]),f=m.useCallback(()=>{for(const h of c.current.values())h.abort()},[]),x=s.size>0;return{runningSet:s,startCase:u,stopCase:d,stopAll:f,isAnyCaseRunning:x}}const _C={plugin:"",skill:"",skillContent:"",savedContent:"",isDirty:!1,evals:null,evalsError:null,activePanel:"tests",selectedCaseId:null,caseRunStates:new Map,bulkRunActive:!1,runMode:null,latestBenchmark:null,inlineResults:new Map,improveTarget:null,aiEditOpen:!1,aiEditLoading:!1,aiEditResult:null,aiEditError:null,aiEditClassifiedError:null,aiEditProgress:[],aiEditEvalChanges:[],aiEditEvalSelections:new Map,aiEditEvalsRetry:null,generateEvalsLoading:!1,generateEvalsProgress:[],generateEvalsError:null,regressions:[],iterationCount:0,activationPrompts:"",activationResults:[],activationSummary:null,activationRunning:!1,activationError:null,activationTotalPrompts:0,activationStartedAt:null,activationClassifyingStatus:null,generatingPrompts:!1,generatingPromptsError:null,activationPromptsSource:null,activationPromptsCanonical:"",savingTestCases:!1,savingTestCasesError:null,savingTestCasesSuccess:null,activationHistory:null,activationHistoryLoading:!1,loading:!0,error:null};function OC(t,a){var s,i;switch(a.type){case"SET_LOADING":return{...t,loading:a.loading};case"SET_ERROR":return{...t,error:a.error};case"INIT_DATA":{const c=new Map;if(a.benchmark)for(const d of a.benchmark.cases)c.set(d.eval_id,{status:d.status,passRate:d.pass_rate,errorMessage:d.error_message||void 0,durationMs:d.durationMs,tokens:d.tokens,output:d.output,assertions:d.assertions.map(f=>({assertion_id:f.id,text:f.text,pass:f.pass,reasoning:f.reasoning}))});const u=((i=(s=a.evals)==null?void 0:s.evals[0])==null?void 0:i.id)??null;return{...t,skillContent:a.skillContent,savedContent:a.skillContent,isDirty:!1,evals:a.evals,evalsError:a.evalsError??null,latestBenchmark:a.benchmark,inlineResults:c,selectedCaseId:u,loading:!1,error:null}}case"SET_PANEL":return{...t,activePanel:a.panel};case"SET_CONTENT":return{...t,skillContent:a.content,isDirty:a.content!==t.savedContent};case"CONTENT_SAVED":return{...t,savedContent:t.skillContent,isDirty:!1};case"SET_EVALS":return{...t,evals:a.evals};case"SELECT_CASE":return{...t,selectedCaseId:a.caseId};case"CASE_RUN_START":{const c=new Map(t.caseRunStates);return c.set(a.caseId,{status:"running",startedAt:Date.now(),mode:a.mode}),{...t,caseRunStates:c,runMode:a.mode,activePanel:"run"}}case"CASE_RUN_COMPLETE":{const c=new Map(t.caseRunStates),u=c.get(a.caseId);c.set(a.caseId,{status:"complete",mode:u==null?void 0:u.mode});const d=new Map(t.inlineResults);return d.set(a.caseId,a.result),{...t,caseRunStates:c,inlineResults:d}}case"CASE_RUN_ERROR":{const c=new Map(t.caseRunStates),u=c.get(a.caseId);c.set(a.caseId,{status:"error",mode:u==null?void 0:u.mode});const d=new Map(t.inlineResults);return d.set(a.caseId,{status:"error",errorMessage:a.error,assertions:[]}),{...t,caseRunStates:c,inlineResults:d}}case"CASE_RUN_CANCEL":{const c=new Map(t.caseRunStates),u=c.get(a.caseId);return c.set(a.caseId,{status:"cancelled",mode:u==null?void 0:u.mode}),{...t,caseRunStates:c}}case"BULK_RUN_START":{const c=new Map(t.caseRunStates);for(const u of a.caseIds)c.set(u,{status:"queued",mode:a.mode});return{...t,caseRunStates:c,bulkRunActive:!0,runMode:a.mode,activePanel:"run"}}case"BULK_RUN_COMPLETE":return{...t,bulkRunActive:!1,latestBenchmark:a.benchmark??t.latestBenchmark,iterationCount:t.iterationCount+1};case"CANCEL_ALL":{const c=new Map(t.caseRunStates);for(const[u,d]of c)(d.status==="running"||d.status==="queued")&&c.set(u,{status:"cancelled"});return{...t,caseRunStates:c,bulkRunActive:!1}}case"UPDATE_INLINE_RESULT":{const c=new Map(t.inlineResults);return c.set(a.evalId,a.result),{...t,inlineResults:c}}case"OPEN_IMPROVE":return{...t,improveTarget:a.evalId,activePanel:"editor"};case"CLOSE_IMPROVE":return{...t,improveTarget:null};case"OPEN_AI_EDIT":return{...t,aiEditOpen:!0,aiEditResult:null,aiEditError:null,aiEditClassifiedError:null,aiEditProgress:[],aiEditEvalChanges:[],aiEditEvalSelections:new Map,aiEditEvalsRetry:null};case"CLOSE_AI_EDIT":return{...t,aiEditOpen:!1,aiEditLoading:!1,aiEditResult:null,aiEditError:null,aiEditClassifiedError:null,aiEditProgress:[],aiEditEvalChanges:[],aiEditEvalSelections:new Map,aiEditEvalsRetry:null};case"AI_EDIT_LOADING":return{...t,aiEditLoading:!0,aiEditError:null,aiEditClassifiedError:null,aiEditProgress:[]};case"AI_EDIT_PROGRESS":return{...t,aiEditProgress:[...t.aiEditProgress,a.entry]};case"AI_EDIT_RESULT":{const c=a.evalChanges??[],u=new Map;for(let d=0;d<c.length;d++)u.set(d,!0);return{...t,aiEditLoading:!1,aiEditResult:{improved:a.improved,reasoning:a.reasoning,evalChanges:c},aiEditEvalChanges:c,aiEditEvalSelections:u}}case"AI_EDIT_ERROR":return{...t,aiEditLoading:!1,aiEditError:a.message,aiEditClassifiedError:a.classified??null};case"GENERATE_EVALS_START":return{...t,generateEvalsLoading:!0,generateEvalsProgress:[],generateEvalsError:null};case"GENERATE_EVALS_PROGRESS":return{...t,generateEvalsProgress:[...t.generateEvalsProgress,a.entry]};case"GENERATE_EVALS_DONE":return{...t,generateEvalsLoading:!1,evals:a.evals};case"GENERATE_EVALS_ERROR":return{...t,generateEvalsLoading:!1,generateEvalsError:a.classified};case"TOGGLE_EVAL_CHANGE":{const c=new Map(t.aiEditEvalSelections);return c.set(a.index,!c.get(a.index)),{...t,aiEditEvalSelections:c}}case"SELECT_ALL_EVAL_CHANGES":{const c=new Map(t.aiEditEvalSelections);for(const u of c.keys())c.set(u,!0);return{...t,aiEditEvalSelections:c}}case"DESELECT_ALL_EVAL_CHANGES":{const c=new Map(t.aiEditEvalSelections);for(const u of c.keys())c.set(u,!1);return{...t,aiEditEvalSelections:c}}case"SET_EVALS_RETRY":return{...t,aiEditEvalsRetry:a.evalsFile};case"SET_REGRESSIONS":return{...t,regressions:a.regressions};case"INCREMENT_ITERATION":return{...t,iterationCount:t.iterationCount+1};case"SET_ACTIVATION_PROMPTS":{const c=a.prompts===t.activationPromptsCanonical;return{...t,activationPrompts:a.prompts,activationPromptsSource:c?t.activationPromptsSource:t.activationPromptsSource===null||t.activationPromptsSource==="skill-md"||t.activationPromptsSource==="ai-generated"?"user-typed":t.activationPromptsSource}}case"SET_PROMPTS_SOURCE":return{...t,activationPromptsSource:a.source,activationPromptsCanonical:a.canonical??t.activationPromptsCanonical};case"ACTIVATION_START":return{...t,activationRunning:!0,activationResults:[],activationSummary:null,activationError:null,activationClassifyingStatus:null,activationStartedAt:Date.now()};case"ACTIVATION_RESULT":return{...t,activationResults:[...t.activationResults,a.result]};case"ACTIVATION_DONE":return{...t,activationRunning:!1,activationSummary:a.summary,activationClassifyingStatus:null};case"ACTIVATION_CLASSIFYING":return{...t,activationClassifyingStatus:`Classifying prompt ${a.index}/${a.total}...`};case"ACTIVATION_ERROR":return{...t,activationRunning:!1,activationError:a.error,activationClassifyingStatus:null};case"ACTIVATION_RESET":return{...t,activationResults:[],activationSummary:null,activationError:null};case"ACTIVATION_TIMEOUT":return{...t,activationRunning:!1,activationError:"Activation test timed out after 120 seconds"};case"ACTIVATION_CANCEL":return{...t,activationRunning:!1};case"GENERATE_PROMPTS_START":return{...t,generatingPrompts:!0,generatingPromptsError:null};case"GENERATE_PROMPTS_DONE":return{...t,generatingPrompts:!1};case"GENERATE_PROMPTS_ERROR":return{...t,generatingPrompts:!1,generatingPromptsError:a.error};case"SAVE_TEST_CASES_START":return{...t,savingTestCases:!0,savingTestCasesError:null,savingTestCasesSuccess:null};case"SAVE_TEST_CASES_SUCCESS":return{...t,savingTestCases:!1,savingTestCasesSuccess:`Saved ${a.count} test case${a.count===1?"":"s"} to SKILL.md`,activationPromptsSource:"skill-md",activationPromptsCanonical:t.activationPrompts};case"SAVE_TEST_CASES_ERROR":return{...t,savingTestCases:!1,savingTestCasesError:a.error};case"CLEAR_SAVE_TEST_CASES_FEEDBACK":return{...t,savingTestCasesSuccess:null,savingTestCasesError:null};case"ACTIVATION_HISTORY_LOADED":return{...t,activationHistory:a.runs,activationHistoryLoading:!1};default:return t}}function BC(t){if(t==="unit"||t==="integration")return t}function IC(t,a){const s=a.data;if(a.event==="output_ready"&&(t.output=s.output,s.durationMs!=null&&(t.durationMs=s.durationMs),s.tokens!=null&&(t.tokens=s.tokens)),a.event==="outputs_ready"&&(t.output=s.skillOutput,s.skillDurationMs!=null&&(t.durationMs=s.skillDurationMs),s.skillTokens!=null&&(t.tokens=s.skillTokens)),a.event==="assertion_result"){const i={assertion_id:s.assertion_id,text:s.text,pass:s.pass,reasoning:s.reasoning};t.assertions.find(c=>c.assertion_id===i.assertion_id)||t.assertions.push(i)}a.event==="case_complete"&&(t.status=s.status,t.passRate=s.pass_rate,t.errorMessage=s.error_message||void 0,t.classifiedError=s.classified_error||void 0)}const Vy=m.createContext(null);function nr(){const t=m.useContext(Vy);if(!t)throw new Error("useWorkspace must be used within WorkspaceProvider");return t}function $C({plugin:t,skill:a,origin:s,children:i}){const c=s==="installed",{config:u}=Ya(),[d,f]=m.useReducer(OC,{..._C,plugin:t,skill:a}),x=m.useRef(new Set),h=m.useRef(new Set),y=m.useRef(new Map),v=m.useCallback((ie,fe)=>{let he=y.current.get(ie);he||(he={assertions:[]},y.current.set(ie,he)),IC(he,fe),f({type:"UPDATE_INLINE_RESULT",evalId:ie,result:{...he,assertions:[...he.assertions]}})},[]),b=m.useCallback(ie=>{if(h.current.has(ie))return;h.current.add(ie);const fe=y.current.get(ie)??{assertions:[]};f({type:"CASE_RUN_COMPLETE",caseId:ie,result:{...fe,assertions:[...fe.assertions]}}),x.current.has(ie)&&(x.current.delete(ie),x.current.size===0&&ke.getLatestBenchmark(t,a).then(he=>f({type:"BULK_RUN_COMPLETE",benchmark:he})).catch(()=>f({type:"BULK_RUN_COMPLETE",benchmark:null})))},[t,a]),S=m.useCallback((ie,fe)=>{h.current.has(ie)||(h.current.add(ie),f({type:"CASE_RUN_ERROR",caseId:ie,error:fe}),x.current.has(ie)&&(x.current.delete(ie),x.current.size===0&&ke.getLatestBenchmark(t,a).then(he=>f({type:"BULK_RUN_COMPLETE",benchmark:he})).catch(()=>f({type:"BULK_RUN_COMPLETE",benchmark:null}))))},[t,a]),{startCase:C,stopCase:E,stopAll:w}=DC({onEvent:v,onDone:b,onError:S});m.useEffect(()=>()=>{w()},[w]);const N=m.useCallback(async()=>{try{const ie=await fetch(`/api/skills/${t}/${a}/activation-history`);if(!ie.ok){if(ie.status===404){f({type:"ACTIVATION_HISTORY_LOADED",runs:[]});return}return}const fe=await ie.json();f({type:"ACTIVATION_HISTORY_LOADED",runs:fe.runs||[]})}catch{}},[t,a]);m.useEffect(()=>{let ie=!1;async function fe(){try{const[he,be,je]=await Promise.allSettled([ke.getSkillDetail(t,a),ke.getEvals(t,a),ke.getLatestBenchmark(t,a)]);if(ie)return;let Ge=null,ut=null;if(be.status==="fulfilled")Ge=be.value;else{const gt=be.reason;ut=(gt==null?void 0:gt.message)??"Failed to load test cases"}f({type:"INIT_DATA",skillContent:he.status==="fulfilled"?he.value.skillContent:"",evals:Ge,evalsError:ut,benchmark:je.status==="fulfilled"?je.value:null})}catch(he){ie||f({type:"SET_ERROR",error:he.message})}}return fe(),N(),()=>{ie=!0}},[t,a,N]);const T=m.useCallback(async ie=>{if(c)return;const fe=ie??d.skillContent;try{await ke.applyImprovement(t,a,fe),ie!==void 0&&ie!==d.skillContent&&f({type:"SET_CONTENT",content:ie}),f({type:"CONTENT_SAVED"})}catch(he){f({type:"SET_ERROR",error:he.message})}},[c,t,a,d.skillContent]),A=m.useCallback(async ie=>{if(!c)try{const fe=await ke.saveEvals(t,a,ie);f({type:"SET_EVALS",evals:fe})}catch(fe){f({type:"SET_ERROR",error:fe.message})}},[c,t,a]),I=m.useCallback((ie,fe="benchmark")=>{if(c)return;const he=d.caseRunStates.get(ie);if((he==null?void 0:he.status)==="running")return;y.current.delete(ie),h.current.delete(ie),f({type:"CASE_RUN_START",caseId:ie,mode:fe});const be=fe==="comparison"?{eval_ids:[ie]}:fe==="baseline"?{mode:"baseline"}:{};if(u!=null&&u.provider&&(be.provider=u.provider),u!=null&&u.model&&(be.model=u.model),fe==="comparison"){const je=`/api/skills/${t}/${a}/compare`;C(ie,je,be)}else{const je=`/api/skills/${t}/${a}/benchmark/case/${ie}`;C(ie,je,Object.keys(be).length>0?be:void 0)}},[c,t,a,d.caseRunStates,C,u]),L=m.useCallback((ie="benchmark")=>{var be;if(c)return;const fe=((be=d.evals)==null?void 0:be.evals)??[];if(fe.length===0)return;const he=fe.map(je=>je.id);for(const je of he)y.current.delete(je),h.current.delete(je);f({type:"BULK_RUN_START",caseIds:he,mode:ie}),x.current=new Set(he);for(const je of he){const Ge=ie==="comparison"?{eval_ids:[je]}:ie==="baseline"?{mode:"baseline"}:{};if(u!=null&&u.provider&&(Ge.provider=u.provider),u!=null&&u.model&&(Ge.model=u.model),ie==="comparison")C(je,`/api/skills/${t}/${a}/compare`,Ge);else{const ut=`/api/skills/${t}/${a}/benchmark/case/${je}`;C(je,ut,Object.keys(Ge).length>0?Ge:void 0)}}},[c,t,a,d.evals,C,u]),H=m.useCallback(ie=>{E(ie),f({type:"CASE_RUN_CANCEL",caseId:ie}),x.current.delete(ie),h.current.add(ie)},[E]),k=m.useCallback(()=>{w(),f({type:"CANCEL_ALL"}),x.current.clear()},[w]),O=m.useCallback(async(ie,fe)=>{f({type:"OPEN_IMPROVE",evalId:ie})},[]),z=m.useCallback(async(ie,fe)=>{try{await ke.applyImprovement(t,a,fe),f({type:"SET_CONTENT",content:fe}),f({type:"CONTENT_SAVED"}),f({type:"CLOSE_IMPROVE"}),I(ie,"benchmark")}catch(he){f({type:"SET_ERROR",error:he.message})}},[t,a,I]),_=Vd(),$=m.useRef(null),q=m.useRef(0);m.useEffect(()=>{const ie=_.events;for(let fe=q.current;fe<ie.length;fe++){const he=ie[fe],be=he.data;if(he.event==="progress"&&f({type:"AI_EDIT_PROGRESS",entry:{timestamp:Date.now(),phase:be.phase,message:be.message}}),he.event==="done"){const je=be.improved,Ge=be.reasoning,ut=be.evalChanges??[];f({type:"AI_EDIT_RESULT",improved:je,reasoning:Ge,evalChanges:ut})}if(he.event==="error"){const je=be;f({type:"AI_EDIT_ERROR",message:je.description||"Unknown error",classified:je})}}q.current=ie.length},[_.events]),m.useEffect(()=>{_.error&&f({type:"AI_EDIT_ERROR",message:_.error})},[_.error]),m.useEffect(()=>()=>{_.stop()},[_.stop]);const K=m.useCallback(async(ie,fe,he)=>{c||(q.current=0,f({type:"AI_EDIT_LOADING"}),$.current=_.stop,_.start(`/api/skills/${t}/${a}/improve?sse`,{mode:"instruct",instruction:ie,content:d.skillContent,evals:d.evals??{skill_name:a,evals:[]},provider:fe,model:he}))},[c,t,a,d.skillContent,d.evals,_]),Q=m.useCallback(()=>{_.stop(),f({type:"AI_EDIT_ERROR",message:"Cancelled"})},[_]),U=m.useCallback(async()=>{const ie=d.aiEditResult;if(ie!=null&&ie.improved)try{if(await ke.applyImprovement(t,a,ie.improved),f({type:"SET_CONTENT",content:ie.improved}),f({type:"CONTENT_SAVED"}),d.aiEditEvalChanges.length>0&&Array.from(d.aiEditEvalSelections.values()).some(Boolean)){const{mergeEvalChanges:he}=await Vl(async()=>{const{mergeEvalChanges:Ge}=await import("./mergeEvalChanges-Dpbbs4d4.js");return{mergeEvalChanges:Ge}},[]),be=d.evals??{skill_name:a,evals:[]},je=he(be,d.aiEditEvalChanges,d.aiEditEvalSelections);try{const Ge=await ke.saveEvals(t,a,je);f({type:"SET_EVALS",evals:Ge})}catch(Ge){f({type:"SET_EVALS_RETRY",evalsFile:je}),f({type:"SET_ERROR",error:`SKILL.md saved, but test cases failed to save: ${Ge.message}. You can retry from the AI Edit panel.`});return}}f({type:"CLOSE_AI_EDIT"})}catch(fe){f({type:"SET_ERROR",error:fe.message})}},[t,a,d.aiEditResult,d.evals,d.aiEditEvalChanges,d.aiEditEvalSelections]),M=m.useCallback(()=>{f({type:"CLOSE_AI_EDIT"})},[]),B=m.useCallback(ie=>{f({type:"TOGGLE_EVAL_CHANGE",index:ie})},[]),F=m.useCallback(()=>{f({type:"SELECT_ALL_EVAL_CHANGES"})},[]),te=m.useCallback(()=>{f({type:"DESELECT_ALL_EVAL_CHANGES"})},[]),V=m.useCallback(async()=>{const ie=d.aiEditEvalsRetry;if(ie)try{const fe=await ke.saveEvals(t,a,ie);f({type:"SET_EVALS",evals:fe}),f({type:"SET_ERROR",error:null}),f({type:"CLOSE_AI_EDIT"})}catch(fe){f({type:"SET_ERROR",error:`Retry failed: ${fe.message}`})}},[t,a,d.aiEditEvalsRetry]),D=m.useCallback(async()=>{try{const ie=await ke.getSkillDetail(t,a);f({type:"SET_CONTENT",content:ie.skillContent}),f({type:"CONTENT_SAVED"})}catch{}},[t,a]),W=Vd(),X=m.useRef(0);m.useEffect(()=>{const ie=W.events;for(let fe=X.current;fe<ie.length;fe++){const he=ie[fe],be=he.data;if(he.event==="progress"&&f({type:"GENERATE_EVALS_PROGRESS",entry:{timestamp:Date.now(),phase:be.phase,message:be.message}}),he.event==="done"){const je=be;ke.saveEvals(t,a,je).then(Ge=>f({type:"GENERATE_EVALS_DONE",evals:Ge})).catch(Ge=>f({type:"SET_ERROR",error:Ge.message}))}he.event==="error"&&f({type:"GENERATE_EVALS_ERROR",classified:be})}X.current=ie.length},[W.events,t,a]),m.useEffect(()=>{W.error&&f({type:"SET_ERROR",error:W.error})},[W.error]),m.useEffect(()=>()=>{W.stop()},[W.stop]);const ee=m.useCallback(async ie=>{if(c)return;X.current=0,f({type:"GENERATE_EVALS_START"});const fe={};u!=null&&u.provider&&(fe.provider=u.provider),u!=null&&u.model&&(fe.model=u.model);const he=BC(ie==null?void 0:ie.testType);he&&(fe.testType=he),W.start(`/api/skills/${t}/${a}/generate-evals?sse`,Object.keys(fe).length>0?fe:void 0)},[c,t,a,W,u]),de=Vd(),le=m.useRef(0);m.useEffect(()=>()=>{de.stop()},[de.stop]),m.useEffect(()=>{const ie=de.events;for(let fe=le.current;fe<ie.length;fe++){const he=ie[fe];if(he.event==="classifying"){const be=he.data;f({type:"ACTIVATION_CLASSIFYING",index:be.index,total:be.total})}if(he.event==="prompt_result"&&f({type:"ACTIVATION_RESULT",result:he.data}),he.event==="done"){ce.current&&(clearTimeout(ce.current),ce.current=null);const be=he.data;if(be.error)f({type:"ACTIVATION_ERROR",error:be.error});else{f({type:"ACTIVATION_DONE",summary:be});const je={id:`run-${Date.now()}`,timestamp:new Date().toISOString(),model:(u==null?void 0:u.model)||"unknown",provider:(u==null?void 0:u.provider)||"unknown",promptCount:be.total,summary:{precision:be.precision,recall:be.recall,reliability:be.reliability,tp:be.tp,tn:be.tn,fp:be.fp,fn:be.fn}};f({type:"ACTIVATION_HISTORY_LOADED",runs:[je,...d.activationHistory??[]]})}}}le.current=ie.length},[de.events,u,d.activationHistory]),m.useEffect(()=>{de.error&&(ce.current&&(clearTimeout(ce.current),ce.current=null),f({type:"ACTIVATION_ERROR",error:de.error}))},[de.error]);const ce=m.useRef(null),ne=m.useCallback(()=>{ce.current&&(clearTimeout(ce.current),ce.current=null),de.stop(),f({type:"ACTIVATION_CANCEL",totalPrompts:0})},[de]),ge=m.useCallback(ie=>{const he=ie.trim().split(`
69
- `).filter(Boolean).map(je=>je.startsWith("!")?{prompt:je.slice(1).trim(),expected:"should_not_activate"}:je.startsWith("+")?{prompt:je.slice(1).trim(),expected:"should_activate"}:{prompt:je.trim(),expected:"auto"});le.current=0,f({type:"ACTIVATION_START"}),f({type:"SET_ACTIVATION_PROMPTS",prompts:ie});const be={prompts:he};u!=null&&u.provider&&(be.provider=u.provider),u!=null&&u.model&&(be.model=u.model),de.start(`/api/skills/${t}/${a}/activation-test`,be),ce.current&&clearTimeout(ce.current),ce.current=setTimeout(()=>{de.stop(),f({type:"ACTIVATION_TIMEOUT"}),ce.current=null},12e4)},[t,a,de,u]),Le=m.useCallback(async(ie=8)=>{f({type:"GENERATE_PROMPTS_START"});try{const fe={count:ie};u!=null&&u.provider&&(fe.provider=u.provider),u!=null&&u.model&&(fe.model=u.model);const he=await fetch(`/api/skills/${t}/${a}/activation-prompts`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(fe)});if(!he.ok){let Tt=`HTTP ${he.status}`;try{const qe=await he.json();qe.error&&(Tt=qe.error)}catch{}throw new Error(Tt)}const be=he.body.getReader(),je=new TextDecoder;let Ge="",ut="",gt=[];for(;;){const{done:Tt,value:qe}=await be.read();if(Tt)break;Ge+=je.decode(qe,{stream:!0});const zt=Ge.split(`
70
- `);Ge=zt.pop()||"";for(const kt of zt)if(kt.startsWith("event: "))ut=kt.slice(7).trim();else if(kt.startsWith("data: ")){try{const vt=JSON.parse(kt.slice(6));if(ut==="done"){if(vt.error)throw new Error(vt.error);gt=vt.prompts||[]}if(ut==="error")throw new Error(vt.message||vt.description||"Generation failed")}catch(vt){if(!(vt instanceof SyntaxError))throw vt}ut=""}}const Ht=gt.map(Tt=>`${Tt.expected==="should_activate"?"+":"!"}${Tt.prompt}`).join(`
71
- `);f({type:"SET_PROMPTS_SOURCE",source:"ai-generated",canonical:Ht}),f({type:"SET_ACTIVATION_PROMPTS",prompts:Ht}),f({type:"GENERATE_PROMPTS_DONE"})}catch(fe){f({type:"GENERATE_PROMPTS_ERROR",error:fe.message})}},[t,a,u]),Ee=m.useCallback(async()=>{try{const ie=await fetch(`/api/skills/${t}/${a}/test-cases`);if(!ie.ok)return;const fe=await ie.json();if(!fe.prompts||fe.prompts.length===0)return;const he=fe.prompts.map(be=>be.expected==="should_activate"?`+${be.prompt}`:be.expected==="should_not_activate"?`!${be.prompt}`:be.prompt).join(`
72
- `);f({type:"SET_PROMPTS_SOURCE",source:"skill-md",canonical:he}),f({type:"SET_ACTIVATION_PROMPTS",prompts:he})}catch{}},[t,a]),Me=m.useCallback(async()=>{f({type:"SAVE_TEST_CASES_START"});try{const fe=d.activationPrompts.split(`
73
- `).map(je=>je.trim()).filter(Boolean).map(je=>je.startsWith("!")?{prompt:je.slice(1).trim(),expected:"should_not_activate"}:je.startsWith("+")?{prompt:je.slice(1).trim(),expected:"should_activate"}:{prompt:je,expected:"auto"}),he=await fetch(`/api/skills/${t}/${a}/test-cases`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompts:fe})}),be=await he.json().catch(()=>({}));if(!he.ok||!be.ok)throw new Error(be.error||`HTTP ${he.status}`);f({type:"SAVE_TEST_CASES_SUCCESS",count:be.count??fe.length}),setTimeout(()=>f({type:"CLEAR_SAVE_TEST_CASES_FEEDBACK"}),3e3)}catch(ie){f({type:"SAVE_TEST_CASES_ERROR",error:ie.message})}},[t,a,d.activationPrompts]),Pe=m.useMemo(()=>({state:d,dispatch:f,isReadOnly:c,saveContent:T,saveEvals:A,runCase:I,runAll:L,cancelCase:H,cancelAll:k,improveForCase:O,applyImproveAndRerun:z,refreshSkillContent:D,generateEvals:ee,runActivationTest:ge,cancelActivation:ne,generateActivationPrompts:Le,fetchActivationHistory:N,loadTestCasesFromSkillMd:Ee,saveTestCasesToSkillMd:Me,submitAiEdit:K,cancelAiEdit:Q,applyAiEdit:U,discardAiEdit:M,toggleEvalChange:B,selectAllEvalChanges:F,deselectAllEvalChanges:te,retryEvalsSave:V}),[d,c,T,A,I,L,H,k,O,z,D,ee,ge,ne,Le,N,Ee,Me,K,Q,U,M,B,F,te,V]);return r.jsx(Vy.Provider,{value:Pe,children:i})}function UC(t){const a=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!a)return{metadata:{},body:t};const s=a[1],i=a[2].trim(),c={},u=s.split(`
74
- `);let d="",f=!1;for(const x of u){const h=x.match(/^[ \t]+([\w-]+):\s*(.*)$/);if(h&&d&&f){const b=h[1],S=h[2].trim();let C=c[d];if((typeof C!="object"||Array.isArray(C))&&(C={},c[d]=C),!S)C[b]=[];else{const E=S.match(/^\[(.+)\]$/);E?C[b]=E[1].split(",").map(w=>w.trim().replace(/^["']|["']$/g,"")).filter(Boolean):C[b]=S.replace(/^["']|["']$/g,"")}continue}const y=x.match(/^\s+-\s+(.+)$/);if(y&&d){f=!1;const b=c[d];Array.isArray(b)?b.push(y[1].trim().replace(/^["']|["']$/g,"")):c[d]=[y[1].trim().replace(/^["']|["']$/g,"")];continue}const v=x.match(/^([\w-]+):\s*(.*)$/);if(v){d=v[1];const b=v[2].trim();if(f=!1,!b){c[d]={},f=!0;continue}const S=b.match(/^\[(.+)\]$/);if(S){c[d]=S[1].split(",").map(C=>C.trim().replace(/^["']|["']$/g,"")).filter(Boolean);continue}c[d]=b.replace(/^["']|["']$/g,"")}}return{metadata:c,body:i}}function uc(t){if(!t)return"";try{let a=t.replace(/^---\n[\s\S]*?\n---\n?/,""),s=HC(a);return s=s.replace(/```(\w*)\n([\s\S]*?)```/g,'<pre style="background:var(--surface-2);padding:0.75rem;border-radius:6px;overflow-x:auto;font-size:12px;line-height:1.5;margin:0.5rem 0;border:1px solid var(--border-subtle)"><code>$2</code></pre>'),s=s.replace(/^### (.+)$/gm,'<div style="font-weight:600;font-size:14px;margin:0.75rem 0 0.25rem;color:var(--text-primary)">$1</div>'),s=s.replace(/^## (.+)$/gm,'<div style="font-weight:700;font-size:15px;margin:0.75rem 0 0.25rem;color:var(--text-primary)">$1</div>'),s=s.replace(/^# (.+)$/gm,'<div style="font-weight:700;font-size:1rem;margin:0.75rem 0 0.25rem;color:var(--text-primary)">$1</div>'),s=s.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer" style="color:var(--accent);text-decoration:underline">$1</a>'),s=s.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),s=s.replace(/\*([^*]+)\*/g,"<em>$1</em>"),s=s.replace(/`([^`]+)`/g,'<code style="background:var(--surface-3);padding:0.1rem 0.3rem;border-radius:3px;font-size:0.85em">$1</code>'),s=s.replace(/^- (.+)$/gm,'<div style="padding-left:1rem;margin:0.15rem 0">• $1</div>'),s=s.replace(/^(\d+)\. (.+)$/gm,'<div style="padding-left:1rem;margin:0.15rem 0">$1. $2</div>'),s=s.replace(/\n\n/g,'<div style="height:0.5rem"></div>'),s=s.replace(/\n/g,"<br/>"),s}catch{return`<pre style="white-space:pre-wrap;font-size:12px;line-height:1.5">${t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}</pre>`}}function HC(t){const a=t.split(`
75
- `),s=[];let i=0;for(;i<a.length;)if(a[i].trim().startsWith("|")&&i+1<a.length&&a[i+1].trim().startsWith("|")&&/\|[\s-:]+\|/.test(a[i+1])){const c=qg(a[i]);i+=2;const u=[];for(;i<a.length&&a[i].trim().startsWith("|");)u.push(qg(a[i])),i++;const d='style="text-align:left;padding:0.4rem 0.6rem;font-weight:600;font-size:12px;color:var(--text-primary);border-bottom:1px solid var(--border-default)"',f='style="padding:0.4rem 0.6rem;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)"';let x='<table style="width:100%;border-collapse:collapse;margin:0.5rem 0;border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden">';x+="<thead><tr>";for(const h of c)x+=`<th ${d}>${h}</th>`;x+="</tr></thead><tbody>";for(const h of u){x+="<tr>";for(const y of h)x+=`<td ${f}>${y}</td>`;x+="</tr>"}x+="</tbody></table>",s.push(x)}else s.push(a[i]),i++;return s.join(`
76
- `)}function qg(t){return t.split("|").map(a=>a.trim()).filter(a=>a.length>0)}function dc(t,a){const s=t.split(`
77
- `),i=a.split(`
78
- `);if(s.length>1e3||i.length>1e3)return[...s.map(y=>({type:"unchanged",content:y}))];const c=s.length,u=i.length,d=Array.from({length:c+1},()=>new Array(u+1).fill(0));for(let y=1;y<=c;y++)for(let v=1;v<=u;v++)s[y-1]===i[v-1]?d[y][v]=d[y-1][v-1]+1:d[y][v]=Math.max(d[y-1][v],d[y][v-1]);const f=[];let x=c,h=u;for(;x>0||h>0;)x>0&&h>0&&s[x-1]===i[h-1]?(f.push({type:"unchanged",content:s[x-1]}),x--,h--):h>0&&(x===0||d[x][h-1]>=d[x-1][h])?(f.push({type:"added",content:i[h-1]}),h--):(f.push({type:"removed",content:s[x-1]}),x--);return f.reverse()}function PC(t,a){if(a&&new Set(["generating","comparing","judging","judging_assertion","preparing","parsing","generating_skill","generating_baseline","scoring","action_items"]).has(t))return r.jsx("div",{className:"spinner",style:{width:10,height:10,flexShrink:0}});const i=new Set(["generating","comparing","preparing","generating_skill","generating_baseline","scoring","action_items"]);return r.jsx("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{background:i.has(t)?"var(--accent)":"var(--green)"}})}function di({entries:t,isRunning:a}){const[s,i]=m.useState(!1),c=m.useRef(null);return m.useEffect(()=>{c.current&&!s&&(c.current.scrollTop=c.current.scrollHeight)},[t,s]),t.length===0&&!a?null:r.jsxs("div",{className:"mt-2 animate-fade-in",style:{borderTop:"1px solid var(--border-subtle)"},children:[r.jsxs("button",{onClick:()=>i(!s),className:"w-full flex items-center justify-between px-3 py-2 text-[11px] font-medium transition-colors duration-150",style:{color:"var(--text-tertiary)"},onMouseEnter:u=>{u.currentTarget.style.color="var(--text-primary)"},onMouseLeave:u=>{u.currentTarget.style.color="var(--text-tertiary)"},children:[r.jsxs("span",{className:"flex items-center gap-2",children:[a&&r.jsx("div",{className:"spinner",style:{width:10,height:10}}),"Progress Log (",t.length,")"]}),r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",style:{transform:s?"rotate(0)":"rotate(180deg)",transition:"transform 0.2s ease"},children:r.jsx("polyline",{points:"6 9 12 15 18 9"})})]}),!s&&r.jsx("div",{ref:c,className:"px-3 pb-3 space-y-1 max-h-48 overflow-y-auto",children:t.map((u,d)=>{const f=d===t.length-1&&a,x=d===0?"0s":`+${((u.timestamp-t[0].timestamp)/1e3).toFixed(1)}s`;return r.jsxs("div",{className:"flex items-center gap-2 text-[11px] animate-fade-in",style:{opacity:f?1:.7},children:[PC(u.phase,f),r.jsx("span",{className:"font-mono flex-shrink-0",style:{color:"var(--text-tertiary)",width:40},children:x}),r.jsx("span",{style:{color:f?"var(--text-primary)":"var(--text-secondary)"},children:u.message}),u.current!=null&&u.total!=null&&r.jsxs("span",{className:"font-mono flex-shrink-0",style:{color:"var(--text-tertiary)"},children:["[",u.current,"/",u.total,"]"]})]},d)})})]})}const Yg={rate_limit:{icon:"⏱",color:"var(--amber, #f59e0b)"},context_window:{icon:"⚠",color:"var(--amber, #f59e0b)"},auth:{icon:"🔒",color:"var(--red, #ef4444)"},timeout:{icon:"⌛",color:"var(--amber, #f59e0b)"},model_not_found:{icon:"🔍",color:"var(--red, #ef4444)"},provider_unavailable:{icon:"⚡",color:"var(--red, #ef4444)"},parse_error:{icon:"❓",color:"var(--amber, #f59e0b)"},unknown:{icon:"❌",color:"var(--red, #ef4444)"}};function fc({error:t,onRetry:a,onDismiss:s}){const[i,c]=m.useState(null),u=m.useRef(null);m.useEffect(()=>(t.category==="rate_limit"&&t.retryAfterMs?c(Math.ceil(t.retryAfterMs/1e3)):c(null),()=>{u.current&&clearInterval(u.current)}),[t]),m.useEffect(()=>{if(!(i==null||i<=0))return u.current=setInterval(()=>{c(x=>x==null||x<=1?(u.current&&clearInterval(u.current),0):x-1)},1e3),()=>{u.current&&clearInterval(u.current)}},[i!=null&&i>0]);const d=Yg[t.category]||Yg.unknown,f=i!=null&&i>0;return r.jsxs("div",{className:"rounded-lg overflow-hidden animate-fade-in",style:{border:`1px solid color-mix(in srgb, ${d.color} 30%, transparent)`,background:`color-mix(in srgb, ${d.color} 6%, var(--surface-1))`},children:[r.jsxs("div",{className:"flex items-center justify-between px-3.5 py-2.5",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{style:{fontSize:14},children:d.icon}),r.jsx("span",{className:"text-[12px] font-semibold",style:{color:d.color},children:t.title})]}),s&&r.jsx("button",{onClick:s,className:"w-5 h-5 rounded flex items-center justify-center",style:{color:"var(--text-tertiary)"},children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),r.jsxs("div",{className:"px-3.5 pb-3",children:[r.jsx("p",{className:"text-[11.5px] mb-1.5",style:{color:"var(--text-secondary)"},children:t.description}),r.jsx("p",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:t.hint}),(a||i!=null)&&r.jsx("div",{className:"flex items-center gap-2 mt-2.5",children:a&&r.jsx("button",{onClick:a,disabled:f,className:"btn btn-secondary text-[11px]",style:{padding:"4px 10px",opacity:f?.5:1},children:f?`Retry in ${i}s`:"Retry"})})]})]})}function VC({plugin:t,skill:a,skillContent:s,onApplied:i}){const[c,u]=m.useState("closed"),{config:d}=Ya(),[f,x]=m.useState("claude-cli"),[h,y]=m.useState("opus"),[v,b]=m.useState([]),[S,C]=m.useState(""),[E,w]=m.useState(""),[N,T]=m.useState(null),[A,I]=m.useState(null),[L,H]=m.useState([]),[k,O]=m.useState(!1),z=m.useRef(null);m.useEffect(()=>{if(!d)return;d.providers.find(B=>B.id==="claude-cli"&&B.available)&&(x("claude-cli"),y("opus"))},[d]),m.useEffect(()=>()=>{var M;(M=z.current)==null||M.abort()},[]);function _(){return d==null?void 0:d.providers.find(M=>M.id===f&&M.available)}const $=m.useCallback(()=>{var M;(M=z.current)==null||M.abort(),u("open")},[]);async function q(){u("loading"),T(null),I(null),H([]);const M=new AbortController;z.current=M;try{const B=await fetch(`/api/skills/${encodeURIComponent(t)}/${encodeURIComponent(a)}/improve?sse`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:f,model:h}),signal:M.signal});if(!B.ok||!B.body){let W=`HTTP ${B.status}`;try{const X=await B.json();X.error&&(W=X.error)}catch{}throw new Error(W)}const F=B.body.getReader(),te=new TextDecoder;let V="",D="";for(;;){const{done:W,value:X}=await F.read();if(W)break;V+=te.decode(X,{stream:!0});const ee=V.split(`
79
- `);V=ee.pop()||"";for(const de of ee)if(de.startsWith("event: "))D=de.slice(7).trim();else if(de.startsWith("data: ")){try{const le=JSON.parse(de.slice(6));D==="progress"?H(ce=>[...ce,{phase:le.phase,message:le.message,timestamp:Date.now()}]):D==="done"||D==="complete"?(C(le.improved),w(le.reasoning||""),b(dc(le.original||s,le.improved)),u("diff_shown")):D==="error"&&(T(le.message||le.description||"Unknown error"),le.category&&I(le),u("open"))}catch{}D=""}}}catch(B){B.name!=="AbortError"&&(T(B.message),u("open"))}finally{z.current=null}}async function K(){O(!0);try{await ke.applyImprovement(t,a,S),i(S),u("closed")}catch(M){T(M.message)}finally{O(!1)}}function Q(){u("closed"),b([]),C(""),w(""),T(null)}if(c==="closed")return r.jsxs("button",{onClick:()=>u("open"),className:"btn btn-secondary mb-5",disabled:!s,children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),r.jsx("path",{d:"M2 17l10 5 10-5"}),r.jsx("path",{d:"M2 12l10 5 10-5"})]}),"Improve Skill"]});const U=_();return r.jsxs("div",{className:"mb-5 rounded-xl overflow-hidden animate-fade-in",style:{border:"1px solid var(--border-subtle)",background:"var(--surface-1)"},children:[r.jsxs("div",{className:"flex items-center justify-between px-5 py-3.5",style:{background:"var(--surface-2)",borderBottom:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center",style:{background:"rgba(168,85,247,0.15)"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#a855f7",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),r.jsx("path",{d:"M2 17l10 5 10-5"}),r.jsx("path",{d:"M2 12l10 5 10-5"})]})}),r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:"AI Skill Improvement"})]}),r.jsx("button",{onClick:Q,className:"w-7 h-7 rounded-lg flex items-center justify-center transition-colors duration-150",style:{color:"var(--text-tertiary)"},onMouseEnter:M=>{M.currentTarget.style.background="var(--surface-3)"},onMouseLeave:M=>{M.currentTarget.style.background="transparent"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),r.jsxs("div",{className:"px-5 py-4",children:[(c==="open"||c==="loading")&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-end gap-3 mb-4",children:[r.jsxs("div",{className:"flex-1",children:[r.jsx("label",{className:"text-[11px] font-medium mb-1 block",style:{color:"var(--text-tertiary)"},children:"Provider"}),r.jsx("select",{className:"input-field text-[12px] py-1.5",value:f,onChange:M=>{x(M.target.value);const B=d==null?void 0:d.providers.find(F=>F.id===M.target.value);B!=null&&B.models[0]&&y(B.models[0].id)},disabled:c==="loading",children:d==null?void 0:d.providers.filter(M=>M.available).map(M=>r.jsx("option",{value:M.id,children:M.label},M.id))})]}),r.jsxs("div",{className:"flex-1",children:[r.jsx("label",{className:"text-[11px] font-medium mb-1 block",style:{color:"var(--text-tertiary)"},children:"Model"}),r.jsx("select",{className:"input-field text-[12px] py-1.5",value:h,onChange:M=>y(M.target.value),disabled:c==="loading",children:U==null?void 0:U.models.map(M=>r.jsx("option",{value:M.id,children:M.label},M.id))})]}),c==="loading"?r.jsx("button",{onClick:$,className:"btn btn-secondary flex-shrink-0",children:"Cancel"}):r.jsx("button",{onClick:q,className:"btn btn-primary flex-shrink-0",children:"Improve"})]}),c==="loading"&&L.length>0&&r.jsx("div",{className:"mt-3",children:r.jsx(di,{entries:L,isRunning:!0})})]}),N&&r.jsx("div",{className:"mb-4",children:A?r.jsx(fc,{error:A,onRetry:q,onDismiss:()=>{T(null),I(null)}}):r.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)"},children:N})}),c==="diff_shown"&&r.jsxs(r.Fragment,{children:[E&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-lg text-[12px]",style:{background:"rgba(168,85,247,0.08)",color:"var(--text-secondary)",border:"1px solid rgba(168,85,247,0.2)"},children:[r.jsx("span",{className:"font-semibold",style:{color:"#a855f7"},children:"AI Reasoning: "}),E]}),r.jsx("div",{className:"rounded-lg overflow-hidden mb-4",style:{border:"1px solid var(--border-subtle)",maxHeight:"400px",overflowY:"auto"},children:v.map((M,B)=>r.jsxs("div",{className:"px-3 py-0.5 text-[11px] font-mono",style:{background:M.type==="added"?"rgba(34,197,94,0.1)":M.type==="removed"?"rgba(239,68,68,0.1)":"transparent",color:M.type==="added"?"var(--green)":M.type==="removed"?"var(--red)":"var(--text-secondary)",borderLeft:M.type==="added"?"3px solid var(--green)":M.type==="removed"?"3px solid var(--red)":"3px solid transparent"},children:[r.jsx("span",{style:{userSelect:"none",opacity:.5,marginRight:8},children:M.type==="added"?"+":M.type==="removed"?"-":" "}),M.content]},B))}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx("button",{onClick:K,disabled:k,className:"btn btn-primary",children:k?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"spinner",style:{width:12,height:12}})," Applying..."]}):r.jsxs(r.Fragment,{children:[r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})})," Apply"]})}),r.jsx("button",{onClick:Q,className:"btn btn-secondary",children:"Discard"})]})]})]})]})}const Kg={remove:{bg:"var(--red-muted)",color:"var(--red)",label:"REMOVE"},modify:{bg:"rgba(251,191,36,0.15)",color:"#fbbf24",label:"MODIFY"},add:{bg:"var(--green-muted)",color:"var(--green)",label:"ADD"}},FC={remove:"var(--red)",modify:"#fbbf24",add:"var(--green)"};function GC({change:t,index:a,selected:s,onToggle:i,originalEval:c}){var v;const[u,d]=m.useState(!1),f=Kg[t.action]??Kg.add,x=FC[t.action]??"var(--border-subtle)",h=t.action==="remove"?(c==null?void 0:c.name)??`Eval #${t.evalId}`:((v=t.eval)==null?void 0:v.name)??"Unnamed",y=m.useCallback(()=>i(a),[i,a]);return r.jsxs("div",{className:"rounded-lg transition-all duration-150",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)",borderLeft:`3px solid ${x}`,opacity:s?1:.5},children:[r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2.5",children:[r.jsx("input",{type:"checkbox",checked:s,onChange:y,className:"flex-shrink-0",style:{accentColor:"var(--accent)"}}),r.jsx("span",{className:"pill text-[9px] font-bold flex-shrink-0",style:{background:f.bg,color:f.color,padding:"1px 6px"},children:f.label}),r.jsx("span",{className:"text-[12px] font-medium truncate",style:{color:"var(--text-primary)"},children:h}),r.jsx("span",{className:"text-[11px] truncate flex-1",style:{color:"var(--text-tertiary)"},children:t.reason}),r.jsx("button",{onClick:()=>d(!u),className:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded transition-colors duration-150",style:{color:"var(--text-tertiary)"},onMouseEnter:b=>{b.currentTarget.style.background="var(--surface-3)"},onMouseLeave:b=>{b.currentTarget.style.background="transparent"},children:r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{transform:u?"rotate(90deg)":"rotate(0)",transition:"transform 0.15s ease"},children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})})]}),u&&r.jsxs("div",{className:"px-4 pb-3 animate-fade-in",style:{borderTop:"1px solid var(--border-subtle)"},children:[t.action==="add"&&t.eval&&r.jsx(WC,{evalCase:t.eval}),t.action==="modify"&&t.eval&&c&&r.jsx(qC,{original:c,proposed:t.eval}),t.action==="remove"&&c&&r.jsx(YC,{evalCase:c})]})]})}function WC({evalCase:t}){var a;return r.jsxs("div",{className:"pt-2.5 space-y-2",children:[r.jsx(jf,{label:"Prompt",value:t.prompt}),r.jsx(jf,{label:"Expected",value:t.expected_output}),r.jsxs("div",{children:[r.jsxs("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:["Assertions (",((a=t.assertions)==null?void 0:a.length)??0,")"]}),r.jsx("div",{className:"mt-1 space-y-1",children:(t.assertions??[]).map(s=>r.jsxs("div",{className:"text-[11px] flex items-start gap-1.5",style:{color:"var(--text-secondary)"},children:[r.jsx("span",{style:{color:"var(--green)"},children:"+"})," ",s.text]},s.id))})]})]})}function qC({original:t,proposed:a}){const s=[];t.name!==a.name&&s.push({label:"Name",old:t.name,new:a.name}),t.prompt!==a.prompt&&s.push({label:"Prompt",old:t.prompt,new:a.prompt}),t.expected_output!==a.expected_output&&s.push({label:"Expected",old:t.expected_output,new:a.expected_output});const i=t.assertions??[],c=a.assertions??[],u=new Set(i.map(h=>h.text)),d=new Set(c.map(h=>h.text)),f=c.filter(h=>!u.has(h.text)),x=i.filter(h=>!d.has(h.text));return r.jsxs("div",{className:"pt-2.5 space-y-2",children:[s.map(h=>r.jsxs("div",{children:[r.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:h.label}),r.jsxs("div",{className:"mt-1 text-[11px] font-mono rounded p-2",style:{background:"var(--surface-1)"},children:[r.jsxs("div",{style:{color:"var(--red)",textDecoration:"line-through"},children:["- ",Sf(h.old,120)]}),r.jsxs("div",{style:{color:"var(--green)"},children:["+ ",Sf(h.new,120)]})]})]},h.label)),(f.length>0||x.length>0)&&r.jsxs("div",{children:[r.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Assertions"}),r.jsxs("div",{className:"mt-1 space-y-0.5",children:[x.map(h=>r.jsxs("div",{className:"text-[11px]",style:{color:"var(--red)"},children:["- ",h.text]},h.id)),f.map(h=>r.jsxs("div",{className:"text-[11px]",style:{color:"var(--green)"},children:["+ ",h.text]},h.id))]})]}),s.length===0&&f.length===0&&x.length===0&&r.jsx("div",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:"No visible field changes"})]})}function YC({evalCase:t}){var a;return r.jsxs("div",{className:"pt-2.5 space-y-2",style:{opacity:.7},children:[r.jsx(jf,{label:"Prompt",value:t.prompt}),r.jsxs("div",{children:[r.jsxs("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:["Assertions (",((a=t.assertions)==null?void 0:a.length)??0,")"]}),r.jsx("div",{className:"mt-1 space-y-0.5",children:(t.assertions??[]).map(s=>r.jsx("div",{className:"text-[11px]",style:{color:"var(--red)",textDecoration:"line-through"},children:s.text},s.id))})]})]})}function jf({label:t,value:a}){return r.jsxs("div",{children:[r.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:t}),r.jsx("div",{className:"mt-0.5 text-[11px] p-2 rounded font-mono",style:{background:"var(--surface-1)",color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:Sf(a,300)})]})}function Sf(t,a){return t.length>a?t.slice(0,a)+"...":t}const Xg={remove:0,modify:1,add:2};function KC({changes:t,selections:a,currentEvals:s,onToggle:i,onSelectAll:c,onDeselectAll:u}){if(t.length===0)return null;const d=t.map((x,h)=>({change:x,originalIndex:h}));d.sort((x,h)=>(Xg[x.change.action]??2)-(Xg[h.change.action]??2));const f=Array.from(a.values()).filter(Boolean).length;return r.jsxs("div",{className:"mt-3 animate-fade-in",children:[r.jsxs("div",{className:"flex items-center justify-between mb-2",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[11px] font-semibold",style:{color:"var(--text-primary)"},children:"Test Case Changes"}),r.jsxs("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["(",f,"/",t.length," selected)"]})]}),r.jsxs("div",{className:"flex gap-1.5",children:[r.jsx("button",{onClick:c,className:"text-[10px] px-2 py-0.5 rounded transition-colors duration-150",style:{color:"var(--accent)",background:"transparent"},onMouseEnter:x=>{x.currentTarget.style.background="var(--accent-muted)"},onMouseLeave:x=>{x.currentTarget.style.background="transparent"},children:"Select All"}),r.jsx("button",{onClick:u,className:"text-[10px] px-2 py-0.5 rounded transition-colors duration-150",style:{color:"var(--text-tertiary)",background:"transparent"},onMouseEnter:x=>{x.currentTarget.style.background="var(--surface-3)"},onMouseLeave:x=>{x.currentTarget.style.background="transparent"},children:"Deselect All"})]})]}),r.jsx("div",{className:"space-y-1.5 overflow-auto",style:{maxHeight:240},children:d.map(({change:x,originalIndex:h})=>r.jsx(GC,{change:x,index:h,selected:a.get(h)??!1,onToggle:i,originalEval:x.evalId!=null?s.find(y=>y.id===x.evalId):void 0},h))})]})}function XC(){var M;const{state:t,dispatch:a,submitAiEdit:s,applyAiEdit:i,discardAiEdit:c,cancelAiEdit:u,toggleEvalChange:d,selectAllEvalChanges:f,deselectAllEvalChanges:x,retryEvalsSave:h}=nr(),{aiEditLoading:y,aiEditResult:v,aiEditError:b,aiEditClassifiedError:S,aiEditProgress:C,aiEditEvalChanges:E,aiEditEvalSelections:w,aiEditEvalsRetry:N}=t,[T,A]=m.useState(""),{config:I}=Ya(),[L,H]=m.useState("claude-cli"),[k,O]=m.useState("opus"),z=m.useRef(null);m.useEffect(()=>{var B;(B=z.current)==null||B.focus()},[]),m.useEffect(()=>{if(!I)return;I.providers.find(F=>F.id==="claude-cli"&&F.available)&&(H("claude-cli"),O("opus"))},[I]);const _=I==null?void 0:I.providers.find(B=>B.id===L&&B.available),$=m.useCallback(()=>{const B=T.trim();!B||y||s(B,L,k)},[T,y,s,L,k]),q=m.useCallback(B=>{B.key==="Enter"&&!B.shiftKey&&(B.preventDefault(),$()),B.key==="Escape"&&(B.preventDefault(),y?u():c())},[$,y,u,c]),K=m.useCallback(()=>{a({type:"CLOSE_AI_EDIT"}),a({type:"OPEN_AI_EDIT"})},[a]),Q=v?dc(t.skillContent,v.improved):[],U=((M=t.evals)==null?void 0:M.evals)??[];return r.jsxs("div",{className:"animate-fade-in",style:{background:"var(--surface-1)",borderTop:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5",style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-2)"},children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:"w-6 h-6 rounded-md flex items-center justify-center",style:{background:"rgba(168,85,247,0.15)"},children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"#a855f7",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M15 4V2"}),r.jsx("path",{d:"M15 16v-2"}),r.jsx("path",{d:"M8 9h2"}),r.jsx("path",{d:"M20 9h2"}),r.jsx("path",{d:"M17.8 11.8L19 13"}),r.jsx("path",{d:"M15 9h.01"}),r.jsx("path",{d:"M17.8 6.2L19 5"}),r.jsx("path",{d:"M11 6.2L9.7 5"}),r.jsx("path",{d:"M3 21l9-9"})]})}),r.jsx("span",{className:"text-[12px] font-semibold",style:{color:"var(--text-primary)"},children:"AI Edit"}),r.jsx("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:"Describe what to change — Enter to submit, Esc to dismiss"})]}),r.jsx("button",{onClick:c,className:"w-6 h-6 rounded-md flex items-center justify-center transition-colors duration-150",style:{color:"var(--text-tertiary)"},onMouseEnter:B=>{B.currentTarget.style.background="var(--surface-3)"},onMouseLeave:B=>{B.currentTarget.style.background="transparent"},children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),r.jsxs("div",{className:"px-4 py-3",children:[!v&&r.jsxs(r.Fragment,{children:[r.jsx("textarea",{ref:z,value:T,onChange:B=>A(B.target.value),onKeyDown:q,placeholder:"e.g., Add an error handling section...",disabled:y,rows:4,className:"w-full resize-y outline-none",style:{background:"var(--surface-0)",color:"var(--text-primary)",border:"1px solid var(--border-subtle)",borderRadius:6,padding:"10px 12px",fontSize:12.5,lineHeight:1.5,fontFamily:"var(--font-mono, 'JetBrains Mono', ui-monospace, monospace)",minHeight:96,maxHeight:240}}),r.jsxs("div",{className:"flex items-end gap-2.5 mt-2",children:[r.jsxs("div",{style:{minWidth:200},children:[r.jsx("label",{className:"text-[10px] font-medium mb-0.5 block",style:{color:"var(--text-tertiary)"},children:"Provider"}),r.jsx("select",{className:"input-field text-[11px] py-1",value:L,onChange:B=>{H(B.target.value);const F=I==null?void 0:I.providers.find(te=>te.id===B.target.value);F!=null&&F.models[0]&&O(F.models[0].id)},disabled:y,style:{width:"100%"},children:I==null?void 0:I.providers.filter(B=>B.available).map(B=>r.jsx("option",{value:B.id,children:B.label},B.id))})]}),r.jsxs("div",{style:{minWidth:200},children:[r.jsx("label",{className:"text-[10px] font-medium mb-0.5 block",style:{color:"var(--text-tertiary)"},children:"Model"}),r.jsx("select",{className:"input-field text-[11px] py-1",value:k,onChange:B=>O(B.target.value),disabled:y,style:{width:"100%"},children:_==null?void 0:_.models.map(B=>r.jsx("option",{value:B.id,children:B.label},B.id))})]}),r.jsx("div",{className:"flex-1"}),y?r.jsx("button",{onClick:u,className:"btn btn-secondary flex-shrink-0 text-[11px]",style:{padding:"6px 14px"},children:"Cancel"}):r.jsx("button",{onClick:$,disabled:!T.trim(),className:"btn btn-primary flex-shrink-0 text-[11px]",style:{padding:"6px 14px"},children:"Submit"})]}),y&&C.length>0&&r.jsx("div",{className:"mt-2.5",children:r.jsx(di,{entries:C,isRunning:!0})})]}),b&&r.jsx("div",{className:"mt-3",children:S?r.jsx(fc,{error:S,onRetry:K,onDismiss:c}):r.jsx("div",{className:"px-3 py-2.5 rounded-lg text-[12px]",style:{background:"var(--red-muted)",color:"var(--red)"},children:b})}),v&&r.jsxs("div",{className:"animate-fade-in",children:[v.reasoning&&r.jsxs("div",{className:"mb-3 px-3 py-2.5 rounded-lg text-[11.5px]",style:{background:"rgba(168,85,247,0.08)",color:"var(--text-secondary)",border:"1px solid rgba(168,85,247,0.2)"},children:[r.jsx("span",{className:"font-semibold",style:{color:"#a855f7"},children:"AI Reasoning: "}),v.reasoning]}),r.jsx("div",{className:"mb-1",children:r.jsx("span",{className:"text-[11px] font-semibold",style:{color:"var(--text-primary)"},children:"SKILL.md Changes"})}),r.jsx("div",{className:"rounded-lg overflow-hidden mb-3",style:{border:"1px solid var(--border-subtle)",maxHeight:300,overflowY:"auto"},children:Q.map((B,F)=>r.jsxs("div",{className:"px-3 py-0.5 text-[10.5px] font-mono",style:{background:B.type==="added"?"rgba(34,197,94,0.1)":B.type==="removed"?"rgba(239,68,68,0.1)":"transparent",color:B.type==="added"?"var(--green)":B.type==="removed"?"var(--red)":"var(--text-secondary)",borderLeft:B.type==="added"?"3px solid var(--green)":B.type==="removed"?"3px solid var(--red)":"3px solid transparent"},children:[r.jsx("span",{style:{userSelect:"none",opacity:.5,marginRight:8},children:B.type==="added"?"+":B.type==="removed"?"-":" "}),B.content]},F))}),r.jsx(KC,{changes:E,selections:w,currentEvals:U,onToggle:d,onSelectAll:f,onDeselectAll:x}),N&&r.jsxs("div",{className:"mt-3 px-3 py-2.5 rounded-lg text-[12px] flex items-center justify-between",style:{background:"rgba(251,191,36,0.12)",border:"1px solid rgba(251,191,36,0.3)",color:"#fbbf24"},children:[r.jsx("span",{children:"Test case save failed. SKILL.md was saved successfully."}),r.jsx("button",{onClick:h,className:"btn text-[11px]",style:{background:"rgba(251,191,36,0.2)",color:"#fbbf24",padding:"3px 10px"},children:"Retry Save"})]}),r.jsxs("div",{className:"flex gap-2 mt-3",children:[r.jsxs("button",{onClick:i,className:"btn btn-primary text-[11px]",style:{padding:"5px 12px"},children:[r.jsx("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})}),"Apply"]}),r.jsx("button",{onClick:c,className:"btn btn-secondary text-[11px]",style:{padding:"5px 12px"},children:"Discard"}),r.jsx("button",{onClick:K,className:"btn btn-ghost text-[11px]",style:{padding:"5px 12px"},children:"Try Again"})]})]})]})]})}function QC(t,a){const[s,i]=m.useState([]),[c,u]=m.useState("SKILL.md"),[d,f]=m.useState(null),[x,h]=m.useState(!1),[y,v]=m.useState(null),[b,S]=m.useState(null),C=m.useCallback(async()=>{try{const N=await ke.getSkillFiles(t,a);i(N.files),S(null)}catch(N){i([]),S(N.message??"Unable to load skill files")}},[t,a]);m.useEffect(()=>{u("SKILL.md"),f(null),v(null),S(null),C()},[t,a,C]);const E=m.useCallback(async N=>{if(u(N),N==="SKILL.md"){f(null),v(null);return}h(!0),v(null);try{const T=await ke.getSkillFile(t,a,N);f(T)}catch(T){v(`Unable to open file: ${T.message}`),f(null)}finally{h(!1)}},[t,a]),w=m.useCallback(()=>{C()},[C]);return{files:s,activeFile:c,secondaryContent:d,loading:x,error:y,loadError:b,selectFile:E,refresh:w,isSkillMd:c==="SKILL.md"}}function ZC(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function JC(t){const a=[],s=new Map;for(const i of t){const c=i.path.split("/"),d={name:c[c.length-1],path:i.path,type:i.type,size:i.size,children:[]};s.set(i.path,d)}for(const i of t){const c=i.path.split("/");if(c.length===1){const u=s.get(i.path);u&&a.push(u)}else{const u=c.slice(0,-1).join("/"),d=s.get(u),f=s.get(i.path);d&&f&&d.children.push(f)}}return a}function Fy({expanded:t}){return r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:t?"rotate(90deg)":"rotate(0deg)",transition:"transform 0.15s"},children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})}function Gy(){return r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})})}function eE(){return r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),r.jsx("polyline",{points:"14 2 14 8 20 8"})]})}function tE(){return r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("polyline",{points:"23 4 23 10 17 10"}),r.jsx("polyline",{points:"1 20 1 14 7 14"}),r.jsx("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})]})}function Wy({node:t,depth:a,activeFile:s,onSelect:i}){const[c,u]=m.useState(!0),d=t.path===s;return t.type==="dir"?r.jsxs("div",{children:[r.jsxs("button",{onClick:()=>u(!c),style:{display:"flex",alignItems:"center",gap:4,width:"100%",paddingLeft:`${4+a*14}px`,paddingTop:2,paddingBottom:2,background:"none",border:"none",cursor:"pointer",color:"var(--text-secondary)",fontSize:11,fontFamily:"var(--font-mono, monospace)",textAlign:"left"},children:[r.jsx(Fy,{expanded:c}),r.jsx(Gy,{}),r.jsxs("span",{children:[t.name,"/"]})]}),c&&t.children.map(f=>r.jsx(Wy,{node:f,depth:a+1,activeFile:s,onSelect:i},f.path))]}):r.jsxs("button",{onClick:()=>i(t.path),style:{display:"flex",alignItems:"center",gap:4,width:"100%",paddingLeft:`${4+a*14}px`,paddingTop:2,paddingBottom:2,background:d?"var(--accent-muted)":"none",border:"none",cursor:"pointer",color:d?"var(--accent)":"var(--text-tertiary)",fontSize:11,fontFamily:"var(--font-mono, monospace)",textAlign:"left",borderRadius:3},children:[r.jsx("span",{style:{width:10}}),r.jsx(eE,{}),r.jsx("span",{style:{flex:1},children:t.name}),r.jsx("span",{style:{fontSize:9,color:"var(--text-tertiary)",marginRight:4,whiteSpace:"nowrap"},children:ZC(t.size)})]})}function nE({files:t,activeFile:a,onSelect:s,onRefresh:i,loadError:c}){const[u,d]=m.useState(!1),f=m.useMemo(()=>JC(t),[t]);return r.jsxs("div",{style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-0)"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"3px 8px",cursor:"pointer",userSelect:"none"},onClick:()=>d(!u),children:[r.jsx(Fy,{expanded:u}),r.jsx(Gy,{}),r.jsx("span",{style:{fontSize:11,fontFamily:"var(--font-mono, monospace)",color:"var(--text-secondary)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a}),r.jsx("button",{onClick:x=>{x.stopPropagation(),i()},style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-tertiary)",padding:"2px 4px",display:"flex",alignItems:"center",borderRadius:3},title:"Refresh file list",children:r.jsx(tE,{})})]}),u&&r.jsx("div",{style:{maxHeight:240,overflowY:"auto",padding:"2px 4px 4px"},children:c?r.jsx("div",{style:{fontSize:11,color:"var(--text-warning, var(--text-tertiary))",padding:"4px 8px"},title:c,children:"Skill files not accessible from this workspace"}):f.length===0?r.jsx("div",{style:{fontSize:11,color:"var(--text-tertiary)",padding:"4px 8px"},children:"No files found"}):f.map(x=>r.jsx(Wy,{node:x,depth:0,activeFile:a,onSelect:s},x.path))})]})}function Ao(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function rE(t){try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}function aE(t){const a=t.toLowerCase();return a.endsWith(".json")?"json":a.endsWith(".md")?"md":"other"}function Qg({content:t}){return r.jsx("textarea",{readOnly:!0,value:t,style:{flex:1,width:"100%",resize:"none",background:"var(--surface-1)",color:"var(--text-primary)",border:"none",outline:"none",padding:"12px 16px",fontSize:12,fontFamily:"var(--font-mono, monospace)",lineHeight:1.6}})}function Zg({content:t,fileType:a}){if(a==="json"){const s=rE(t);return r.jsx("pre",{style:{flex:1,margin:0,padding:"12px 16px",overflow:"auto",background:"var(--surface-0)",color:"var(--text-primary)",fontSize:12,fontFamily:"var(--font-mono, monospace)",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:s})}return a==="md"?r.jsx("div",{style:{flex:1,overflow:"auto",padding:"16px 20px",background:"var(--surface-0)",color:"var(--text-primary)",fontSize:13,lineHeight:1.6},dangerouslySetInnerHTML:{__html:uc(t)}}):r.jsx("pre",{style:{flex:1,margin:0,padding:"12px 16px",overflow:"auto",background:"var(--surface-0)",color:"var(--text-primary)",fontSize:12,fontFamily:"var(--font-mono, monospace)",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t})}function Jg(t){try{return JSON.stringify(JSON.parse(t),null,2).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"([^"\\]|\\.)*"\s*:/g,s=>`<span style="color:#6383ff">${s}</span>`).replace(/:\s*"([^"\\]|\\.)*"/g,s=>`<span style="color:#22c55e">${s.slice(0,2)}<span style="color:#22c55e">${s.slice(2)}</span></span>`).replace(/:\s*(-?\d+\.?\d*)/g,(s,i)=>`: <span style="color:#fb923c">${i}</span>`).replace(/:\s*(true|false|null)/g,(s,i)=>`: <span style="color:#a855f7">${i}</span>`)}catch{return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}}function lE({file:t,loading:a,error:s,viewMode:i,plugin:c,skill:u,onSaved:d,onDirtyChange:f}){const[x,h]=m.useState(i),[y,v]=m.useState(!1),[b,S]=m.useState(""),[C,E]=m.useState(!1),[w,N]=m.useState(null),T=i!==x?i:x;m.useEffect(()=>{f==null||f(y)},[y,f]);const A=m.useCallback(()=>{(t==null?void 0:t.content)!=null&&(S(t.content),v(!0))},[t]),I=m.useCallback(()=>{v(!1)},[]),L=m.useCallback(async()=>{if(!(!c||!u||!t)){E(!0);try{await ke.saveSkillFile(c,u,t.path,b),N("Saved"),v(!1),d==null||d(),setTimeout(()=>N(null),2e3)}catch(O){N(`Save failed: ${O.message}`),setTimeout(()=>N(null),3e3)}finally{E(!1)}}},[c,u,t,b,d]);if(m.useEffect(()=>{if(!y)return;const O=z=>{(z.ctrlKey||z.metaKey)&&z.key==="s"&&(z.preventDefault(),L())};return document.addEventListener("keydown",O),()=>document.removeEventListener("keydown",O)},[y,L]),a)return r.jsx("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-tertiary)",fontSize:13},children:"Loading…"});if(s)return r.jsx("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:r.jsxs("div",{style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)",borderRadius:8,padding:"16px 20px",maxWidth:400,textAlign:"center"},children:[r.jsx("div",{style:{fontSize:13,color:"var(--text-primary)",fontWeight:600,marginBottom:6},children:"Unable to open file"}),r.jsx("div",{style:{fontSize:12,color:"var(--text-tertiary)"},children:s})]})});if(!t)return null;if(t.binary)return r.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-tertiary)",fontSize:13},children:["Binary file (",Ao(t.size),") — cannot be displayed"]});const H=t.content??"",k=aE(t.path);return r.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[t.truncated&&r.jsxs("div",{style:{padding:"4px 12px",background:"var(--warning-muted, #fef3c7)",borderBottom:"1px solid var(--border-subtle)",fontSize:11,color:"var(--warning-text, #92400e)"},children:["File truncated at ",Ao(512*1024)," — ",Ao(t.size)," total"]}),r.jsxs("div",{style:{display:"flex",gap:4,padding:"4px 8px",borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-0)"},children:[(k==="md"||k==="json")&&["raw","split","preview"].map(O=>r.jsx("button",{onClick:()=>h(O),style:{padding:"2px 8px",fontSize:11,background:T===O?"var(--accent-muted)":"none",color:T===O?"var(--accent)":"var(--text-tertiary)",border:"none",borderRadius:3,cursor:"pointer",textTransform:"capitalize"},children:O},O)),r.jsxs("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-tertiary)",display:"flex",alignItems:"center",gap:6},children:[Ao(t.size),c&&u&&!t.binary&&!y&&r.jsx("button",{onClick:A,style:{padding:"1px 6px",fontSize:10,background:"var(--accent-muted)",color:"var(--accent)",border:"none",borderRadius:3,cursor:"pointer"},children:"Edit"}),y&&r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:L,disabled:C,style:{padding:"1px 6px",fontSize:10,background:"var(--accent)",color:"#fff",border:"none",borderRadius:3,cursor:"pointer",opacity:C?.6:1},children:C?"Saving...":"Save"}),r.jsx("button",{onClick:I,style:{padding:"1px 6px",fontSize:10,background:"var(--surface-3)",color:"var(--text-tertiary)",border:"none",borderRadius:3,cursor:"pointer"},children:"Cancel"})]})]})]}),w&&r.jsx("div",{style:{padding:"4px 12px",background:w.startsWith("Save failed")?"var(--red-muted)":"var(--green-muted)",borderBottom:"1px solid var(--border-subtle)",fontSize:11,color:w.startsWith("Save failed")?"var(--red)":"var(--green)"},children:w}),r.jsx("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:y?r.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},children:[r.jsx("textarea",{value:b,onChange:O=>S(O.target.value),style:{flex:1,width:"100%",resize:"none",background:"var(--surface-0)",color:"var(--text-primary)",border:"none",outline:"none",padding:"12px 16px",fontSize:12,fontFamily:"var(--font-mono, monospace)",lineHeight:1.6}}),r.jsxs("div",{style:{position:"sticky",bottom:0,display:"flex",alignItems:"center",gap:8,padding:"6px 12px",background:"var(--surface-1)",borderTop:"1px solid var(--border-subtle)"},children:[r.jsx("span",{style:{flex:1,fontSize:11,color:"var(--text-tertiary)"},children:"Unsaved changes"}),r.jsx("button",{onClick:L,disabled:C,style:{padding:"3px 12px",fontSize:11,background:"var(--accent)",color:"#fff",border:"none",borderRadius:4,cursor:"pointer",opacity:C?.6:1},children:C?"Saving...":"Save"}),r.jsx("button",{onClick:I,style:{padding:"3px 12px",fontSize:11,background:"var(--surface-3)",color:"var(--text-tertiary)",border:"none",borderRadius:4,cursor:"pointer"},children:"Cancel"})]})]}):T==="split"&&k!=="other"?r.jsxs(r.Fragment,{children:[r.jsx("div",{style:{flex:1,display:"flex",flexDirection:"column",borderRight:"1px solid var(--border-subtle)"},children:r.jsx(Qg,{content:H})}),r.jsx("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"auto"},children:k==="json"?r.jsx("pre",{style:{flex:1,margin:0,padding:"12px 16px",overflow:"auto",background:"var(--surface-0)",fontSize:12,fontFamily:"var(--font-mono, monospace)",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},dangerouslySetInnerHTML:{__html:Jg(H)}}):r.jsx(Zg,{content:H,fileType:k})})]}):T==="preview"&&k!=="other"?k==="json"?r.jsx("pre",{style:{flex:1,margin:0,padding:"12px 16px",overflow:"auto",background:"var(--surface-0)",fontSize:12,fontFamily:"var(--font-mono, monospace)",lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},dangerouslySetInnerHTML:{__html:Jg(H)}}):r.jsx(Zg,{content:H,fileType:k}):r.jsx(Qg,{content:H})})]})}const sE=/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/,iE=/^https:\/\/github\.com\/([^/]+)\/(.+?)(?:\.git)?$/;function oE(t){const a=t.trim();if(!a)throw new Error("normalizeRemoteUrl: empty input");let s=a.match(sE);if(s)return`https://github.com/${s[1]}/${s[2]}`;if(s=a.match(iE),s)return`https://github.com/${s[1]}/${s[2]}`;throw new Error(`normalizeRemoteUrl: unrecognized remote URL: ${t}`)}function qy(t){const a=oE(t);return`https://verified-skill.com/submit?repo=${encodeURIComponent(a)}`}function ev(t,a){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,severity:a}}))}function cE({remoteUrl:t,fileCount:a,provider:s,model:i,onClose:c,defaultMode:u="manual"}){const[d,f]=m.useState(u),[x,h]=m.useState(""),[y,v]=m.useState(!1),[b,S]=m.useState(!1),[C,E]=m.useState(null),[w,N]=m.useState(null),T=m.useCallback(async()=>{v(!0),E(null);try{const Q=await ke.gitCommitMessage({provider:s,model:i});h(Q.message)}catch(Q){const U=Q instanceof Error?Q.message:String(Q);E(U)}finally{v(!1)}},[s,i]);m.useEffect(()=>{u==="ai"&&!x&&T()},[]);const A=m.useCallback(()=>{f("ai"),N(null),x.trim()||T()},[x,T]),I=m.useCallback(()=>{f("manual"),E(null)},[]),L=m.useCallback(async()=>{const Q=x.trim();if(!(!Q||b)){S(!0),N(null);try{const U=await ke.gitPublish({commitMessage:Q}),M=U.remoteUrl??t,B=qy(M);window.open(B,"_blank","noopener,noreferrer");const F=(U.commitSha??"").slice(0,7),te=U.branch??"";ev(`Opening verified-skill.com — ${F} on ${te}`,"info"),c()}catch(U){const M=U instanceof Error?U.message:String(U),B=M.length>200?M.slice(0,200)+"…":M;N(B),ev(`Publish failed: ${B}`,"error")}finally{S(!1)}}},[x,b,t,c]),H=x.trim().length>0&&!b&&!y,k="#E6EDF3",O="#9CA3AF",z="rgba(255,255,255,0.12)",_="#0F1115",$={fontSize:11,fontWeight:600,letterSpacing:"0.06em",textTransform:"uppercase",color:O,fontFamily:"var(--font-mono, monospace)",marginBottom:6,display:"block"},q={flex:1,height:32,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,fontSize:12,fontFamily:"var(--font-mono, monospace)",background:"transparent",color:O,border:"none",cursor:"pointer",transition:"background 120ms ease, color 120ms ease"},K={...q,background:"rgba(255,255,255,0.08)",color:k,fontWeight:600};return r.jsxs(r.Fragment,{children:[r.jsx("div",{"aria-hidden":"true",onClick:b?void 0:c,style:{position:"fixed",inset:0,background:"rgba(0, 0, 0, 0.55)",backdropFilter:"blur(6px)",WebkitBackdropFilter:"blur(6px)",zIndex:999,animation:"publishDrawerBackdropIn 150ms ease-out"}}),r.jsx("div",{role:"presentation",style:{position:"fixed",inset:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3,padding:24,pointerEvents:"none"},children:r.jsxs("div",{role:"dialog","aria-label":"Publish","aria-modal":"true",style:{pointerEvents:"auto",width:520,maxWidth:"calc(100vw - 48px)",maxHeight:"80vh",overflowY:"auto",background:"#1A1D24",border:`1px solid ${z}`,borderRadius:10,padding:24,boxShadow:"0 24px 64px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.05)",color:k,fontFamily:"var(--font-mono, monospace)",animation:"publishDrawerIn 180ms cubic-bezier(0.2, 0.8, 0.2, 1)"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:4},children:[r.jsx("strong",{style:{fontSize:16,fontWeight:700,letterSpacing:"-0.01em",color:k,fontFamily:"var(--font-sans, var(--font-mono, sans-serif))"},children:"Publish skill"}),r.jsx("button",{type:"button","aria-label":"Dismiss",onClick:b?void 0:c,disabled:b,style:{background:"none",border:"none",color:O,fontSize:22,lineHeight:1,cursor:b?"not-allowed":"pointer",padding:0,opacity:b?.4:1},children:"×"})]}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,color:O,fontVariantNumeric:"tabular-nums",marginBottom:18},children:[r.jsx("span",{"aria-hidden":"true",style:{color:"#F59E0B",fontFamily:"monospace"},children:"▮"}),r.jsxs("span",{children:[a," file",a===1?"":"s"," changed"]})]}),r.jsx("div",{style:{height:1,background:z,margin:"0 -24px 18px"}}),r.jsx("span",{style:$,children:"Mode"}),r.jsxs("div",{role:"tablist","aria-label":"Commit message mode","data-testid":"publish-mode-toggle",style:{display:"flex",border:`1px solid ${z}`,borderRadius:6,overflow:"hidden",marginBottom:16,background:_},children:[r.jsx("button",{type:"button",role:"tab","aria-selected":d==="manual","data-testid":"publish-mode-manual",onClick:I,disabled:b,style:d==="manual"?K:q,children:"Write yourself"}),r.jsx("div",{style:{width:1,background:z}}),r.jsx("button",{type:"button",role:"tab","aria-selected":d==="ai","data-testid":"publish-mode-ai",onClick:A,disabled:b,style:d==="ai"?K:q,children:y&&d==="ai"?"Generating…":"Generate with AI"})]}),r.jsx("label",{htmlFor:"commit-message",style:$,children:"Commit message"}),r.jsx("textarea",{id:"commit-message",value:x,onChange:Q=>h(Q.target.value),rows:5,disabled:y||b,placeholder:y?"Generating with AI…":d==="ai"?"Click Generate to draft a message":"Type your commit message…",style:{width:"100%",background:_,border:`1px solid ${z}`,borderRadius:6,padding:"10px 12px",fontFamily:"var(--font-mono, monospace)",fontSize:13,lineHeight:1.6,color:k,resize:"vertical",outline:"none"}}),d==="ai"&&r.jsx("button",{type:"button",onClick:T,disabled:y||b,"data-testid":"publish-generate-button",style:{marginTop:10,padding:"8px 14px",background:y?"rgba(255,255,255,0.06)":"#2563EB",color:y?O:"#FFFFFF",border:"1px solid "+(y?z:"#2563EB"),borderRadius:6,fontFamily:"var(--font-mono, monospace)",fontSize:12,fontWeight:600,cursor:y||b?"not-allowed":"pointer",display:"inline-flex",alignItems:"center",gap:6},children:y?"Generating…":"Generate with AI"}),C&&d==="ai"&&r.jsxs("div",{role:"alert","data-testid":"publish-error-generate",style:{marginTop:10,padding:"8px 12px",border:"1px solid oklch(65% 0.14 25 / 0.35)",background:"oklch(65% 0.14 25 / 0.06)",borderRadius:4,fontSize:11,color:"oklch(70% 0.14 25)",fontFamily:"var(--font-mono, monospace)",lineHeight:1.5},children:[r.jsx("strong",{style:{fontWeight:600},children:"AI generation failed."})," ",C," ",r.jsx("button",{type:"button",onClick:T,disabled:y,style:{background:"none",border:"none",color:"var(--color-accent)",cursor:y?"not-allowed":"pointer",fontFamily:"inherit",fontSize:"inherit",textDecoration:"underline",padding:0},children:"Retry"})]}),w&&r.jsxs("div",{role:"alert","data-testid":"publish-error-push",style:{marginTop:10,padding:"8px 12px",border:"1px solid oklch(65% 0.14 25 / 0.35)",background:"oklch(65% 0.14 25 / 0.06)",borderRadius:4,fontSize:11,color:"oklch(70% 0.14 25)",fontFamily:"var(--font-mono, monospace)",lineHeight:1.5},children:[r.jsx("strong",{style:{fontWeight:600},children:"Publish failed."})," ",w]}),r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:18,gap:6},children:[r.jsx("div",{style:{minHeight:28},children:d==="ai"&&r.jsx("button",{type:"button","aria-label":"Regenerate",onClick:T,disabled:y||b,className:"btn btn-ghost text-[11px]",style:{padding:"4px 10px"},children:y?"Generating…":"Regenerate"})}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("button",{type:"button","aria-label":"Cancel",onClick:c,disabled:b,style:{padding:"8px 14px",background:"transparent",color:k,border:`1px solid ${z}`,borderRadius:6,fontFamily:"var(--font-mono, monospace)",fontSize:12,fontWeight:500,cursor:b?"not-allowed":"pointer",opacity:b?.5:1},children:"Cancel"}),r.jsx("button",{type:"button","aria-label":"Commit & Push",onClick:L,disabled:!H,"data-testid":"publish-commit-push",style:{padding:"8px 16px",background:H?"#22C55E":"rgba(255,255,255,0.06)",color:H?"#0B0F12":O,border:"1px solid "+(H?"#22C55E":z),borderRadius:6,fontFamily:"var(--font-mono, monospace)",fontSize:12,fontWeight:700,cursor:H?"pointer":"not-allowed"},children:b?"Publishing…":"Commit & Push"})]})]})]})}),r.jsx("style",{children:`
80
- @keyframes publishDrawerBackdropIn { from { opacity: 0 } to { opacity: 1 } }
81
- @keyframes publishDrawerIn {
82
- from { opacity: 0; transform: translateY(4px) }
83
- to { opacity: 1; transform: translateY(0) }
84
- }
85
- @media (prefers-reduced-motion: reduce) {
86
- [role="dialog"][aria-label="Publish"],
87
- [role="dialog"][aria-label="Publish"] + * { animation: none !important }
88
- }
89
- `})]})}function tv(t,a){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,severity:a}}))}function Yy({remoteUrl:t,provider:a,model:s}){const[i,c]=m.useState(!1),[u,d]=m.useState(!1),[f,x]=m.useState(0),h=m.useCallback(async()=>{if(!(i||u)){c(!0);try{let v=!1,b=0;try{const T=await ke.gitDiff();v=!!T.hasChanges,b=T.fileCount??0}catch{}if(v){x(b),d(!0);return}const S=await ke.gitPublish(),C=S.remoteUrl??t,E=qy(C);window.open(E,"_blank","noopener,noreferrer");const w=(S.commitSha??"").slice(0,7),N=S.branch??"";tv(`Opening verified-skill.com — ${w} on ${N}`,"info")}catch(v){const b=v instanceof Error?v.message:String(v),S=b.length>200?b.slice(0,200)+"…":b;tv(`Publish failed: ${S}`,"error")}finally{c(!1)}}},[i,u,t]),y=m.useCallback(()=>d(!1),[]);return r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button","aria-label":"Publish",onClick:h,disabled:i,className:"btn btn-primary text-[11px]",style:{padding:"5px 14px"},title:"Push committed changes and open verified-skill.com to submit",children:i?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"spinner",style:{width:11,height:11,borderWidth:1.5}})," Publishing…"]}):"Publish"}),u&&r.jsx(cE,{remoteUrl:t,fileCount:f,provider:a,model:s,onClose:y})]})}const uE={hasRemote:!1,remoteUrl:null,branch:null,loading:!0,error:null};function dE(){const[t,a]=m.useState(uE);return m.useEffect(()=>{let s=!1;return ke.gitRemote().then(i=>{s||a({hasRemote:!!i.hasRemote,remoteUrl:i.remoteUrl??null,branch:i.branch??null,loading:!1,error:null})}).catch(i=>{s||a({hasRemote:!1,remoteUrl:null,branch:null,loading:!1,error:i instanceof Error?i:new Error(String(i))})}),()=>{s=!0}},[]),t}const fE=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function kf(t){if(typeof t!="string")return null;const a=t.trim().match(fE);return a?{major:Number(a[1]),minor:Number(a[2]),patch:Number(a[3])}:null}function Vs(t,a){const s=kf(t);if(!s)throw new Error(`bumpVersion: not a valid semver: ${JSON.stringify(t)}`);switch(a){case"patch":return`${s.major}.${s.minor}.${s.patch+1}`;case"minor":return`${s.major}.${s.minor+1}.0`;case"major":return`${s.major+1}.0.0`}}function pE(t,a){const s=kf(a);if(!s)return{valid:!1,reason:`Invalid semver: ${JSON.stringify(a)}`};if(t==null)return{valid:!0};const i=kf(t);return i?i.major===s.major&&i.minor===s.minor&&i.patch===s.patch?{valid:!0}:s.major<i.major||s.major===i.major&&s.minor<i.minor||s.major===i.major&&s.minor===i.minor&&s.patch<i.patch?{valid:!1,reason:`Version cannot decrease (from ${t} → ${a}). Use the same or higher version.`}:s.major!==i.major?s.major!==i.major+1?{valid:!1,reason:`Major version can only increase by 1 at a time (got ${i.major} → ${s.major}).`}:s.minor!==0||s.patch!==0?{valid:!1,reason:`When bumping major, minor and patch must be reset to 0 (got ${a}; expected ${s.major}.0.0).`}:{valid:!0}:s.minor!==i.minor?s.minor!==i.minor+1?{valid:!1,reason:`Minor version can only increase by 1 at a time (got ${i.minor} → ${s.minor}).`}:s.patch!==0?{valid:!1,reason:`When bumping minor, patch must be reset to 0 (got ${a}; expected ${s.major}.${s.minor}.0).`}:{valid:!0}:s.patch!==i.patch+1?{valid:!1,reason:`Patch version can only increase by 1 at a time (got ${i.patch} → ${s.patch}).`}:{valid:!0}:{valid:!0}}const Ky=/^---\n([\s\S]*?)\n---(?:\n|$)/,wf=/^version:\s*["']?([^"'\n]+?)["']?\s*$/m;function Ko(t){const a=t.match(Ky);if(!a)return null;const s=a[1].match(wf);return s&&s[1].trim()||null}function Xy(t,a){const s=`version: "${a}"`,i=t.match(Ky);if(!i)return`---
90
- ${s}
91
- ---
92
- ${t}`;const c=i[1],u=(i.index??0)+i[0].length,d=t.slice(u),f=t.slice(0,i.index??0);let x;wf.test(c)?x=c.replace(wf,s):x=`${s}
93
- ${c}`;const h=i[0].endsWith(`---
94
- `)?`---
95
- `:"---";return`${f}---
96
- ${x}
97
- ${h}${d}`}function mE(t,a){const s=Ko(a),i=Ko(t);if(s!==null&&i!==null&&s===i)try{const c=Vs(s,"patch");return{contentToSave:Xy(t,c),version:c,fromVersion:s}}catch{return{contentToSave:t,version:i,fromVersion:s}}return{contentToSave:t,version:i,fromVersion:s}}function Dl(t){return t.testType==="integration"?"integration":"unit"}function Ul(t){return t>=.8?"var(--green)":t>=.5?"var(--yellow)":"var(--red)"}function Qy(t){const a=new Date(t);return a.toLocaleDateString(void 0,{month:"short",day:"numeric"})+", "+a.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1})}function Zy(t){return t==null?"--":t>=1e3?`${(t/1e3).toFixed(1)}s`:`${t}ms`}const hE=new Set(["benchmark","comparison","baseline"]);function nv(t,a,s,i){return t.map(({rate:c,idx:u,total:d})=>{const f=i+u/(d-1)*(a-i*2),x=i+(s-i*2)-c*(s-i*2);return`${f},${x}`})}function Jy({entries:t}){const a=t.filter(v=>hE.has(v.type)).slice().reverse(),s=a.map((v,b,S)=>({rate:v.pass_rate,idx:b,total:S.length})).filter((v,b)=>{const S=a[b].type;return S==="benchmark"||S==="comparison"}),i=a.flatMap((v,b)=>v.type==="baseline"?[{rate:v.pass_rate,idx:b,total:a.length}]:v.type==="comparison"&&v.baselinePassRate!=null?[{rate:v.baselinePassRate,idx:b,total:a.length}]:[]);if(s.length<2&&i.length<2)return null;const c=80,u=24,d=2,f=s.length>=2?nv(s,c,u,d):[],x=i.length>=2?nv(i,c,u,d):[],h=f[f.length-1],y=x[x.length-1];return r.jsxs("svg",{width:c,height:u,style:{display:"block",flexShrink:0},children:[x.length>0&&r.jsx("polyline",{points:x.join(" "),fill:"none",stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeLinejoin:"round",strokeDasharray:"3 2"}),f.length>0&&r.jsx("polyline",{points:f.join(" "),fill:"none",stroke:"var(--accent)",strokeWidth:1.5,strokeLinejoin:"round"}),y&&r.jsx("circle",{cx:parseFloat(y.split(",")[0]),cy:parseFloat(y.split(",")[1]),r:2.5,fill:"var(--text-tertiary)"}),h&&r.jsx("circle",{cx:parseFloat(h.split(",")[0]),cy:parseFloat(h.split(",")[1]),r:2.5,fill:"var(--accent)"})]})}function eb(t,a,s){const i=isNaN(a)?0:a,c=[],u=[],d=[];if((t==="PASS"||t==="EFFECTIVE")&&i>=.7){const h=c.length>0?` Met criteria: ${c.map(y=>y.criterion).join(", ")}.`:"";return{explanation:`${t} (score ${i.toFixed(2)}): evaluation met expectations.${h}`}}if(t==="FAIL"||t==="DEGRADING"){const h=u.length>0?` Failed criteria: ${u.map(v=>v.criterion).join(", ")}.`:"",y=[...u.map(v=>`Improve "${v.criterion}" (score: ${v.score.toFixed(2)})`),...d.map(v=>`Strengthen "${v.criterion}" (score: ${v.score.toFixed(2)})`)];return y.length===0&&y.push("Review prompt instructions and add more specific guidance"),{explanation:`${t} (score ${i.toFixed(2)}): evaluation did not meet expectations.${h}`,recommendations:y}}if(t==="INEFFECTIVE"){if(i<.2){const y=[...u.map(v=>`Rework "${v.criterion}" — currently at ${v.score.toFixed(2)}`),"Consider adding examples to your system prompt","Review the rubric criteria for achievability"];return{explanation:`${t} (score ${i.toFixed(2)}): evaluation is significantly below expectations.`,recommendations:y}}const h=[...u.map(y=>`Rework "${y.criterion}" — currently at ${y.score.toFixed(2)}`),...d.map(y=>`Strengthen "${y.criterion}" (score: ${y.score.toFixed(2)})`)];return h.length===0&&h.push("Consider restructuring your prompt approach"),{explanation:`${t} (score ${i.toFixed(2)}): below expectations but showing some capability.`,recommendations:h}}if(t==="MARGINAL"){const h=[...d.map(y=>`Strengthen "${y.criterion}" (score: ${y.score.toFixed(2)})`),...u.map(y=>`Improve "${y.criterion}" (score: ${y.score.toFixed(2)})`)];return h.length===0&&h.push(c.length>0?"Assertion pass rate is below target despite strong rubric scores — review test case alignment":"Review prompt instructions for areas of improvement"),{explanation:`${t} (score ${i.toFixed(2)}): moderate improvement detected.`,recommendations:h}}if(t==="EMERGING"){const h=[...u.map(y=>`Improve "${y.criterion}" (score: ${y.score.toFixed(2)})`),...d.map(y=>`Strengthen "${y.criterion}" (score: ${y.score.toFixed(2)})`)];return h.length===0&&h.push(c.length>0?"Assertion pass rate is below target despite strong rubric scores — review test case alignment":"Add more specific guidance to your prompt instructions"),{explanation:`${t} (score ${i.toFixed(2)}): early promise — focus on weak areas to improve.`,recommendations:h}}const f=c.length>0?` Passing: ${c.map(h=>h.criterion).join(", ")}.`:"",x=d.length>0?` Needs improvement: ${d.map(h=>h.criterion).join(", ")}.`:"";return{explanation:`${t} (score ${i.toFixed(2)}): mixed results.${f}${x}`}}const tb={EFFECTIVE:"Strong Improvement",MARGINAL:"Moderate Improvement",EMERGING:"Early Promise",INEFFECTIVE:"Needs Work",DEGRADING:"Regression"};function xE(t){return Object.hasOwn(tb,t)}function gE(t){return xE(t)?tb[t]:t}function vE(){const{state:t}=nr(),{plugin:a,skill:s}=t,[i,c]=m.useState([]),[u,d]=m.useState([]),[f,x]=m.useState(!0),[h,y]=m.useState(null),[v,b]=m.useState(new Set),[S,C]=m.useState({}),[E,w]=m.useState(null),[N,T]=m.useState(""),[A,I]=m.useState(!1),[L,H]=m.useState(""),[k,O]=m.useState(""),z=m.useCallback(async()=>{x(!0),y(null);try{const[U,M]=await Promise.all([ke.getCredentials(a,s),ke.getParams(a,s)]);c(U.credentials),d(M.params)}catch(U){y(U instanceof Error?U.message:"Failed to load parameters"),c([]),d([])}finally{x(!1)}},[a,s]);m.useEffect(()=>{z()},[z]);const _=m.useCallback(async(U,M)=>{I(!0),y(null);try{await ke.setCredential(a,s,U,M),w(null),T(""),await z()}catch(B){y(B instanceof Error?B.message:`Failed to save ${U}`)}finally{I(!1)}},[a,s,z]),$=m.useCallback(async()=>{const U=L.trim().toUpperCase(),M=k.trim();if(!(!U||!M)){I(!0),y(null);try{await ke.setCredential(a,s,U,M),H(""),O(""),await z()}catch(B){y(B instanceof Error?B.message:`Failed to add ${U}`)}finally{I(!1)}}},[a,s,L,k,z]),q=m.useCallback(async U=>{if(v.has(U)){b(M=>{const B=new Set(M);return B.delete(U),B}),C(M=>{const B={...M};return delete B[U],B});return}try{const B=(await ke.getParamsRevealed(a,s,U)).params.find(F=>F.name===U);B!=null&&B.value&&(C(F=>({...F,[U]:B.value})),b(F=>new Set(F).add(U)))}catch{}},[a,s,v]),K=new Set(i.map(U=>U.name)),Q=[...i.map(U=>{const M=u.find(B=>B.name===U.name);return{name:U.name,status:U.status,maskedValue:(M==null?void 0:M.maskedValue)??""}}),...u.filter(U=>!K.has(U.name)).map(U=>({name:U.name,status:U.status,maskedValue:U.maskedValue}))];return r.jsxs("div",{className:"py-2 px-3",children:[r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider mb-2",style:{color:"var(--text-tertiary)"},children:"Parameters"}),h&&r.jsx("div",{className:"text-[10px] px-2 py-1.5 rounded mb-2",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid var(--red-muted)"},role:"alert",children:h}),f&&Q.length===0&&r.jsx("div",{className:"text-[11px] py-2",style:{color:"var(--text-tertiary)"},children:"Loading..."}),!f&&Q.length===0&&!h&&r.jsx("div",{className:"text-[11px] py-2",style:{color:"var(--text-tertiary)"},children:"No parameters configured"}),Q.map(U=>r.jsxs("div",{className:"flex items-center gap-2 py-1.5",style:{borderBottom:"1px solid var(--border-subtle)"},children:[r.jsx("span",{className:"text-[10px] font-mono flex-1 truncate",style:{color:"var(--text-primary)"},children:U.name}),r.jsx("span",{className:"text-[9px] font-semibold px-1.5 py-0.5 rounded-full",style:{background:U.status==="ready"?"var(--green-muted)":"var(--red-muted)",color:U.status==="ready"?"var(--green)":"var(--red)"},children:U.status}),(U.maskedValue||U.status==="ready")&&r.jsxs("span",{className:"text-[10px] font-mono",style:{color:"var(--text-secondary)"},children:[v.has(U.name)?S[U.name]??U.maskedValue:U.maskedValue||"***",r.jsx("button",{onClick:()=>q(U.name),className:"text-[9px] ml-1",style:{color:"var(--accent)",cursor:"pointer",background:"none",border:"none"},"aria-label":`${v.has(U.name)?"Hide":"Reveal"} value for ${U.name}`,children:v.has(U.name)?"hide":"show"})]}),E===U.name?r.jsxs("div",{className:"flex gap-1",children:[r.jsx("input",{value:N,onChange:M=>T(M.target.value),onKeyDown:M=>{M.key==="Enter"&&N.trim()&&_(U.name,N)},className:"input-field text-[10px] font-mono",style:{width:120},placeholder:"New value...","aria-label":`New value for ${U.name}`,autoFocus:!0}),r.jsx("button",{onClick:()=>_(U.name,N),disabled:A||!N.trim(),className:"text-[10px] font-medium",style:{color:"var(--green)",background:"none",border:"none",cursor:"pointer"},children:"Save"}),r.jsx("button",{onClick:()=>{w(null),T("")},className:"text-[10px]",style:{color:"var(--text-tertiary)",background:"none",border:"none",cursor:"pointer"},children:"Cancel"})]}):r.jsx("button",{onClick:()=>{w(U.name),T("")},className:"text-[10px]",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer"},children:"Edit"})]},U.name)),r.jsxs("div",{className:"mt-3 pt-2",style:{borderTop:"1px solid var(--border-subtle)"},children:[r.jsx("div",{className:"text-[10px] font-medium mb-1.5",style:{color:"var(--text-secondary)"},children:"Add New Parameter"}),r.jsxs("div",{className:"flex gap-1.5",children:[r.jsx("input",{value:L,onChange:U=>H(U.target.value),className:"input-field text-[10px] font-mono flex-1",placeholder:"KEY_NAME","aria-label":"Parameter key name"}),r.jsx("input",{value:k,onChange:U=>O(U.target.value),onKeyDown:U=>{U.key==="Enter"&&L.trim()&&k.trim()&&$()},className:"input-field text-[10px] font-mono flex-1",placeholder:"value",type:"password","aria-label":"Parameter value"}),r.jsx("button",{onClick:$,disabled:A||!L.trim()||!k.trim(),className:"text-[10px] font-medium px-2 py-1 rounded",style:{background:"var(--accent-muted)",color:"var(--accent)",border:"none",cursor:A?"not-allowed":"pointer"},children:"Add"})]})]})]})}const Us="This is an installed copy (read-only). Open the source skill to edit.";function yE(t,a,s){const[i,c]=m.useState(null),[u,d]=m.useState(!1),f=m.useRef("");m.useEffect(()=>{const h=`${t}/${a}/${s}`;f.current!==h&&(f.current=h,d(!0),ke.getCaseHistory(t,a,s).then(y=>c(y)).catch(()=>c([])).finally(()=>d(!1)))},[t,a,s]);const x=m.useCallback(()=>{d(!0),f.current="",ke.getCaseHistory(t,a,s).then(h=>c(h)).catch(()=>c([])).finally(()=>d(!1))},[t,a,s]);return{entries:i,loading:u,refetch:x}}function bE(t,a,s){const i={flaky:!1,nonDiscriminating:!1,regression:!1};if(!s||s.length===0)return i;const u=s.slice(0,10).map(x=>x.assertions.find(h=>h.id===t)).filter(Boolean);if(u.length>=2){const h=u.filter(y=>y.pass).length/u.length;h>=.3&&h<=.7&&(i.flaky=!0)}const d=s.find(x=>x.type==="benchmark"),f=s.find(x=>x.type==="baseline");if(d&&f){const x=d.assertions.find(y=>y.id===t),h=f.assertions.find(y=>y.id===t);x!=null&&x.pass&&(h!=null&&h.pass)&&(i.nonDiscriminating=!0)}if(a&&!a.pass&&s.length>=1){const h=s[0].assertions.find(y=>y.id===t);h!=null&&h.pass&&(i.regression=!0)}return i}function jE({embedded:t=!1}={}){var te;const{state:a,dispatch:s,saveEvals:i,runCase:c,runAll:u,cancelCase:d,cancelAll:f,generateEvals:x,isReadOnly:h}=nr(),{evals:y,evalsError:v,selectedCaseId:b,inlineResults:S,caseRunStates:C,generateEvalsLoading:E,generateEvalsProgress:w,generateEvalsError:N}=a,T=m.useMemo(()=>{for(const V of C.values())if(V.status==="running"||V.status==="queued")return!0;return!1},[C]),[A,I]=m.useState(!1),[L,H]=m.useState("all"),k={skill_name:a.skill,evals:[]},O=y??k,z=O.evals,_=m.useMemo(()=>L==="all"?z:z.filter(V=>Dl(V)===L),[L,z]),$=_.find(V=>V.id===b)??null;m.useEffect(()=>{b!==null&&!_.find(V=>V.id===b)&&s({type:"SELECT_CASE",caseId:_.length>0?_[0].id:null})},[_,b,s]);const[q,K]=m.useState([]),Q=m.useMemo(()=>z.some(V=>Dl(V)==="integration"),[z]);m.useEffect(()=>{Q&&ke.getCredentials(a.plugin,a.skill).then(V=>K(V.credentials)).catch(()=>K([]))},[a.plugin,a.skill,Q]);const U=m.useMemo(()=>new Set(q.filter(V=>V.status==="missing").map(V=>V.name)),[q]),[M,B]=m.useState(!1),F=m.useCallback(V=>{B(!1),x(V?{testType:V}:void 0)},[x]);return!y||z.length===0?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 px-8",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center",style:{background:v?"var(--red-muted)":"var(--accent-muted)"},children:v?r.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--red)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),r.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}):r.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M9 11l3 3L22 4"}),r.jsx("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})]})}),r.jsx("div",{className:"text-center",children:v?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"text-[14px] font-medium mb-1",style:{color:"var(--red)"},children:"Invalid evals.json"}),r.jsx("div",{className:"text-[11px] font-mono px-3 py-2 rounded mt-1 max-w-sm text-left break-words",style:{color:"var(--text-secondary)",background:"var(--surface-2)"},children:v}),r.jsx("div",{className:"text-[12px] mt-2",style:{color:"var(--text-tertiary)"},children:"Fix the evals.json file and reload, or regenerate test cases with AI"})]}):r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"text-[14px] font-medium mb-1",style:{color:"var(--text-primary)"},children:"No test cases yet"}),r.jsx("div",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"Create test cases to start evaluating your skill"})]})}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx("button",{onClick:()=>I(!0),disabled:h,title:h?Us:void 0,className:"btn btn-primary text-[12px]",children:"Create Test Case"}),r.jsxs("div",{style:{position:"relative"},children:[r.jsxs("div",{className:"flex",children:[r.jsx("button",{onClick:()=>F("unit"),disabled:E||h,title:h?Us:void 0,className:"btn btn-secondary text-[12px]",style:{borderTopRightRadius:0,borderBottomRightRadius:0},children:E?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"spinner",style:{width:12,height:12,borderWidth:1.5}})," Generating..."]}):"Generate Unit Tests"}),r.jsx("button",{onClick:()=>B(!M),disabled:E||h,title:h?Us:void 0,className:"btn btn-secondary text-[12px]",style:{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeft:"1px solid var(--border-default)",padding:"4px 6px"},children:r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:r.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),M&&r.jsx("div",{className:"absolute right-0 mt-1 rounded-lg py-1 z-50",style:{background:"var(--surface-1)",border:"1px solid var(--border-default)",minWidth:180,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:r.jsx("button",{onClick:()=>F("integration"),className:"w-full text-left px-3 py-2 text-[12px] transition-colors duration-100",style:{color:"var(--text-secondary)",background:"transparent"},onMouseEnter:V=>{V.currentTarget.style.background="var(--surface-2)"},onMouseLeave:V=>{V.currentTarget.style.background="transparent"},children:"Generate Integration Tests"})})]})]}),E&&w.length>0&&r.jsx("div",{className:"w-full max-w-md mt-3",children:r.jsx(di,{entries:w,isRunning:!0})}),N&&r.jsx("div",{className:"w-full max-w-md mt-3",children:r.jsx(fc,{error:N,onRetry:()=>F()})}),A&&r.jsx(rv,{evals:O,onSave:V=>{i(V),I(!1)},onCancel:()=>I(!1)})]}):r.jsxs("div",{style:{display:"grid",gridTemplateColumns:"280px 1fr",height:"100%",overflow:"hidden"},children:[r.jsxs("div",{className:"overflow-auto",style:{borderRight:"1px solid var(--border-subtle)",background:"var(--surface-1)"},children:[r.jsxs("div",{className:"px-3 py-2",style:{borderBottom:"1px solid var(--border-subtle)",display:"flex",flexWrap:"wrap",alignItems:"center",rowGap:6,columnGap:8},children:[r.jsxs("span",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)",flex:"1 1 auto",minWidth:0},children:["Test Cases (",_.length,")"]}),r.jsx("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:6,marginLeft:"auto",flexShrink:0},children:!t&&(T?r.jsx("button",{onClick:f,className:"btn text-[10px] px-2 py-0.5",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid var(--red-muted)",whiteSpace:"nowrap"},children:"Cancel All"}):r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:()=>u("benchmark"),disabled:_.length===0||h,title:h?Us:void 0,className:"btn btn-primary text-[10px] px-2 py-0.5",style:{whiteSpace:"nowrap"},children:"Run All"}),r.jsx("button",{onClick:()=>u("comparison"),disabled:_.length===0||h,title:h?Us:void 0,className:"btn btn-secondary text-[10px] px-2 py-0.5",style:{whiteSpace:"nowrap"},children:"Compare All"})]}))})]}),r.jsx("div",{className:"flex px-3 py-1.5 gap-1",style:{borderBottom:"1px solid var(--border-subtle)"},children:["all","unit","integration"].map(V=>r.jsx("button",{onClick:()=>H(V),style:{padding:"2px 8px",fontSize:10,fontWeight:L===V?600:400,background:L===V?"var(--accent-muted)":"transparent",color:L===V?"var(--accent)":"var(--text-tertiary)",border:"none",borderRadius:4,cursor:"pointer",textTransform:"capitalize"},children:V==="all"?`All (${z.length})`:V==="unit"?`Unit (${z.filter(D=>Dl(D)==="unit").length})`:`Integration (${z.filter(D=>Dl(D)==="integration").length})`},V))}),r.jsxs("div",{className:"py-1",children:[_.length===0&&z.length>0&&r.jsxs("div",{className:"flex items-center justify-center py-8 px-3 text-[12px]",style:{color:"var(--text-tertiary)"},children:["No ",L==="all"?"":L+" ","tests yet"]}),_.map(V=>{var ee;const D=S.get(V.id),W=b===V.id,X=Dl(V);return r.jsxs("button",{onClick:()=>s({type:"SELECT_CASE",caseId:V.id}),className:"w-full text-left px-3 py-2.5 transition-all duration-150",style:{background:W?"var(--accent-muted)":"transparent",borderLeft:W?"3px solid var(--accent)":"3px solid transparent"},onMouseEnter:de=>{W||(de.currentTarget.style.background="var(--surface-2)")},onMouseLeave:de=>{W||(de.currentTarget.style.background="transparent")},children:[r.jsxs("div",{className:"flex items-center justify-between gap-2 mb-0.5 min-w-0",children:[r.jsxs("span",{className:"text-[12px] font-medium flex items-center gap-1.5 min-w-0 flex-1",style:{color:W?"var(--text-primary)":"var(--text-secondary)"},children:[r.jsxs("span",{className:"truncate min-w-0 flex-1",children:["#",V.id," ",V.name]}),r.jsx("span",{title:X==="unit"?"Unit test":"Integration test","aria-label":X==="unit"?"Unit test":"Integration test",style:{flexShrink:0,fontSize:9,fontWeight:600,padding:"1px 5px",borderRadius:9999,background:X==="unit"?"var(--accent-muted)":"var(--orange-muted)",color:X==="unit"?"var(--accent)":"var(--orange)",whiteSpace:"nowrap",letterSpacing:"0.02em"},children:X==="unit"?"U":"I"}),X==="integration"&&((ee=V.requiredCredentials)==null?void 0:ee.some(de=>U.has(de)))&&r.jsx("span",{title:"Configure credentials to run",style:{flexShrink:0,display:"inline-flex"},children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--orange)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})})]}),r.jsx(nb,{result:D})]}),r.jsxs("div",{className:"text-[11px] flex items-center gap-2",style:{color:"var(--text-tertiary)"},children:[V.assertions.length," assertion",V.assertions.length!==1?"s":"",(D==null?void 0:D.passRate)!=null&&r.jsx(wE,{passRate:D.passRate})]})]},V.id)})]}),r.jsx("div",{className:"px-3 py-2",children:!h&&r.jsx("button",{onClick:()=>I(!0),className:"w-full py-2 rounded-lg text-[12px] font-medium transition-all duration-150",style:{border:"1px dashed var(--border-default)",color:"var(--text-tertiary)",background:"transparent"},onMouseEnter:V=>{V.currentTarget.style.borderColor="var(--accent)",V.currentTarget.style.color="var(--accent)"},onMouseLeave:V=>{V.currentTarget.style.borderColor="var(--border-default)",V.currentTarget.style.color="var(--text-tertiary)"},children:"+ Add Test Case"})}),r.jsx("div",{style:{borderTop:"1px solid var(--border-subtle)"},children:r.jsx(vE,{})})]}),r.jsx("div",{className:"overflow-auto",children:$?r.jsx(SE,{evalCase:$,result:S.get($.id),evals:y,caseStatus:((te=C.get($.id))==null?void 0:te.status)??"idle",onSaveEvals:i,onRun:V=>c(V,"benchmark"),onCompare:V=>c(V,"comparison"),onCancel:V=>d(V),onImprove:V=>s({type:"OPEN_IMPROVE",evalId:V}),embedded:t}):r.jsx("div",{className:"flex items-center justify-center h-full text-[13px]",style:{color:"var(--text-tertiary)"},children:"Select a test case"})}),A&&r.jsx(rv,{evals:O,onSave:V=>{i(V),I(!1)},onCancel:()=>I(!1)})]})}function SE({evalCase:t,result:a,evals:s,caseStatus:i,onSaveEvals:c,onRun:u,onCompare:d,onCancel:f,onImprove:x,embedded:h=!1}){const{state:y,isReadOnly:v}=nr(),{plugin:b,skill:S}=y,{entries:C,loading:E}=yE(b,S,t.id),[w,N]=m.useState(!1),[T,A]=m.useState(t.prompt),[I,L]=m.useState(!1),[H,k]=m.useState(t.expected_output);m.useState(()=>{A(t.prompt),k(t.expected_output)});const O=m.useCallback(V=>{c({...s,evals:s.evals.map(D=>D.id===V.id?V:D)})},[s,c]),z=m.useCallback(()=>{O({...t,prompt:T}),N(!1)},[t,T,O]),_=m.useCallback(()=>{O({...t,expected_output:H}),L(!1)},[t,H,O]),$=m.useCallback(()=>{O({...t,assertions:[...t.assertions,{id:`assert-${Date.now()}`,text:"New assertion",type:"boolean"}]})},[t,O]),q=m.useCallback((V,D)=>{O({...t,assertions:t.assertions.map(W=>W.id===V?{...W,text:D}:W)})},[t,O]),K=m.useCallback(V=>{O({...t,assertions:t.assertions.filter(D=>D.id!==V)})},[t,O]),Q=m.useCallback(()=>{confirm("Delete this test case?")&&c({...s,evals:s.evals.filter(V=>V.id!==t.id)})},[s,t.id,c]),U=a&&a.assertions.length>0&&a.assertions.every(V=>V.pass),M=a&&a.assertions.some(V=>!V.pass),B=Dl(t),F=t.requiredCredentials??[],te=B==="integration"&&F.length>0;return r.jsxs("div",{className:"p-5 animate-fade-in",children:[r.jsxs("div",{className:"mb-4",style:{display:"flex",flexWrap:"wrap",alignItems:"center",rowGap:8,columnGap:12},children:[r.jsxs("div",{className:"flex items-center gap-2",style:{flex:"1 1 240px",minWidth:0},children:[r.jsxs("span",{className:"text-[16px] font-semibold",title:`#${t.id} ${t.name}`,style:{color:"var(--text-primary)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["#",t.id," ",t.name]}),v?r.jsx("span",{style:{fontSize:10,fontWeight:600,padding:"2px 7px",borderRadius:9999,background:B==="unit"?"var(--accent-muted)":"var(--orange-muted)",color:B==="unit"?"var(--accent)":"var(--orange)"},children:B==="unit"?"Unit":"Integration"}):r.jsx("button",{onClick:()=>{if((B==="unit"?"integration":"unit")==="unit"){const{requiredCredentials:D,requirements:W,cleanup:X,...ee}=t;O({...ee,testType:"unit"})}else O({...t,testType:"integration"})},title:`Click to switch to ${B==="unit"?"integration":"unit"}`,style:{fontSize:10,fontWeight:600,padding:"2px 7px",borderRadius:9999,background:B==="unit"?"var(--accent-muted)":"var(--orange-muted)",color:B==="unit"?"var(--accent)":"var(--orange)",border:"none",cursor:"pointer"},children:B==="unit"?"Unit":"Integration"}),r.jsx(nb,{result:a})]}),r.jsxs("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8,marginLeft:"auto",flexShrink:0},children:[!h&&(i==="running"||i==="queued"?r.jsxs("button",{onClick:()=>f(t.id),className:"btn text-[12px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid var(--red-muted)",whiteSpace:"nowrap"},children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:4},children:r.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"1"})}),"Cancel"]}):r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:()=>u(t.id),disabled:v,className:"btn btn-primary text-[12px]",style:{whiteSpace:"nowrap"},children:"Run"}),r.jsx("button",{onClick:()=>d(t.id),disabled:v,className:"btn btn-secondary text-[12px]",style:{whiteSpace:"nowrap"},children:"A/B Compare"})]})),M&&!v&&i!=="running"&&i!=="queued"&&r.jsx("button",{onClick:()=>x(t.id),className:"btn btn-secondary text-[12px]",style:{whiteSpace:"nowrap"},children:"Fix with AI"}),!v&&i!=="running"&&i!=="queued"&&r.jsx("button",{onClick:Q,className:"btn btn-ghost text-[12px]","aria-label":"Delete test case",title:"Delete test case",style:{color:"var(--red)"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("polyline",{points:"3 6 5 6 21 6"}),r.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})]}),v&&B==="integration"&&r.jsxs("div",{"data-testid":"platform-integration-note",className:"mb-4 px-4 py-3 rounded-xl flex items-center gap-3",style:{background:"var(--accent-muted)",border:"1px solid var(--accent-muted)"},children:[r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),r.jsx("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),r.jsx("line",{x1:"12",y1:"17",x2:"12",y2:"21"})]}),r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--accent)"},children:"Run locally in vSkill Studio"})]}),U&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-xl flex items-center gap-3",style:{background:"var(--green-muted)",border:"1px solid var(--green-muted)"},children:[r.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"2.5",children:[r.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),r.jsx("polyline",{points:"22 4 12 14.01 9 11.01"})]}),r.jsx("span",{className:"text-[13px] font-medium",style:{color:"var(--green)"},children:"All assertions passing"})]}),te&&r.jsxs("div",{className:"mb-4 px-4 py-3 rounded-xl",style:{background:"var(--orange-muted)",border:"1px solid var(--orange-muted)"},children:[r.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--orange)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),r.jsx("span",{className:"text-[12px] font-semibold",style:{color:"var(--orange)"},children:"Required Credentials"})]}),r.jsx("div",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:"This integration test requires the following environment variables:"}),r.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:F.map(V=>r.jsx("span",{style:{fontSize:10,fontFamily:"var(--font-mono, monospace)",padding:"2px 6px",borderRadius:4,background:"var(--orange-muted)",color:"var(--orange)"},children:V},V))})]}),!v&&B==="integration"&&r.jsx(NE,{evalCase:t,onUpdate:O}),r.jsx(Lo,{title:"Prompt",children:w?r.jsxs("div",{children:[r.jsx("textarea",{value:T,onChange:V=>A(V.target.value),className:"input-field w-full",rows:4,style:{fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:12},autoFocus:!0}),r.jsxs("div",{className:"flex gap-2 mt-2",children:[r.jsx("button",{onClick:z,className:"btn btn-primary text-[12px]",children:"Save"}),r.jsx("button",{onClick:()=>{A(t.prompt),N(!1)},className:"btn btn-ghost text-[12px]",children:"Cancel"})]})]}):r.jsx("div",{className:"p-3 rounded-lg text-[12px] transition-all duration-150",style:{background:"var(--surface-2)",color:"var(--text-secondary)",fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre-wrap",border:"1px solid var(--border-subtle)",maxHeight:200,overflowY:"auto",cursor:v?"default":"pointer"},onClick:()=>{v||N(!0)},onMouseEnter:V=>{v||(V.currentTarget.style.borderColor="var(--border-hover)")},onMouseLeave:V=>{V.currentTarget.style.borderColor="var(--border-subtle)"},children:t.prompt||r.jsx("span",{style:{color:"var(--text-tertiary)",fontStyle:"italic"},children:v?"No prompt":"Click to edit prompt..."})})}),r.jsx(Lo,{title:"Expected Output",children:I?r.jsxs("div",{children:[r.jsx("textarea",{value:H,onChange:V=>k(V.target.value),className:"input-field w-full",rows:3,style:{fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:12},autoFocus:!0}),r.jsxs("div",{className:"flex gap-2 mt-2",children:[r.jsx("button",{onClick:_,className:"btn btn-primary text-[12px]",children:"Save"}),r.jsx("button",{onClick:()=>{k(t.expected_output),L(!1)},className:"btn btn-ghost text-[12px]",children:"Cancel"})]})]}):r.jsx("div",{className:"p-3 rounded-lg text-[12px] transition-all duration-150",style:{background:"var(--surface-2)",color:"var(--text-tertiary)",fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre-wrap",border:"1px solid var(--border-subtle)",maxHeight:200,overflowY:"auto",cursor:v?"default":"pointer"},onClick:()=>{v||L(!0)},onMouseEnter:V=>{v||(V.currentTarget.style.borderColor="var(--border-hover)")},onMouseLeave:V=>{V.currentTarget.style.borderColor="var(--border-subtle)"},children:t.expected_output||r.jsx("span",{style:{fontStyle:"italic"},children:v?"No expected output":"Click to edit expected output..."})})}),r.jsx(Lo,{title:`Assertions (${t.assertions.length})`,action:v?void 0:r.jsx("button",{onClick:$,className:"btn btn-ghost text-[11px]",children:"+ Add"}),children:t.assertions.length===0?r.jsx("div",{className:"text-[12px] text-center py-4",style:{color:"var(--text-tertiary)"},children:'No assertions. Click "+ Add" to create one.'}):r.jsx("div",{className:"space-y-2",children:t.assertions.map(V=>{const D=a==null?void 0:a.assertions.find(X=>X.assertion_id===V.id),W=bE(V.id,D,C);return r.jsx(kE,{assertion:V,result:D,badges:W,isReadOnly:v,onUpdate:X=>q(V.id,X),onDelete:()=>K(V.id)},V.id)})})}),(a==null?void 0:a.output)&&r.jsx(CE,{output:a.output,durationMs:a.durationMs,tokens:a.tokens}),a&&a.passRate!=null&&a.passRate<.2&&(()=>{const V=eb("INEFFECTIVE",a.passRate);return V.recommendations&&V.recommendations.length>0?r.jsx(Lo,{title:"Recommendations",children:r.jsxs("div",{className:"rounded-xl p-4",style:{background:"var(--orange-muted)",border:"1px solid var(--orange-muted)"},children:[r.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--orange)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),r.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]}),r.jsx("span",{className:"text-[12px] font-semibold",style:{color:"var(--orange)"},children:"This eval is significantly below expectations"})]}),r.jsx("ul",{className:"space-y-1.5 ml-1",children:V.recommendations.map((D,W)=>r.jsxs("li",{className:"flex items-start gap-2 text-[12px]",style:{color:"var(--text-secondary)"},children:[r.jsx("span",{style:{color:"var(--orange)",fontWeight:600,flexShrink:0},children:"•"}),D]},W))})]})}):null})(),!h&&r.jsx(EE,{evalId:t.id,sharedEntries:C,sharedLoading:E})]},t.id)}function kE({assertion:t,result:a,badges:s,isReadOnly:i,onUpdate:c,onDelete:u}){const[d,f]=m.useState(!1),[x,h]=m.useState(t.text),[y,v]=m.useState(!1),b=()=>{c(x),f(!1)};return r.jsx("div",{className:"rounded-lg px-3 py-2.5 transition-all duration-150",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:r.jsxs("div",{className:"flex items-start gap-2",children:[a?r.jsx("span",{className:"mt-0.5 rounded-full flex-shrink-0",style:{width:18,height:18,display:"flex",alignItems:"center",justifyContent:"center",background:a.pass?"var(--green-muted)":"var(--red-muted)"},children:a.pass?r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"3",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})}):r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--red)",strokeWidth:"3",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}):r.jsx("span",{className:"mt-0.5 rounded-full flex-shrink-0",style:{width:18,height:18,border:"1.5px dashed var(--text-tertiary)",background:"transparent"},title:"Not run yet"}),(s==null?void 0:s.regression)&&r.jsx("span",{className:"mt-0.5 flex-shrink-0",title:"Regression: was passing, now failing",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:16,height:18,color:"var(--red)",fontSize:14,fontWeight:700,lineHeight:1},children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--red)",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("polyline",{points:"19 12 12 19 5 12"})]})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[r.jsx("span",{className:"text-[10px] font-mono font-semibold",style:{color:"var(--text-tertiary)"},children:t.id}),(s==null?void 0:s.flaky)&&r.jsx("span",{title:"Flaky: 30-70% pass rate across recent runs",style:{display:"inline-block",fontSize:9,fontWeight:600,lineHeight:1,padding:"2px 6px",borderRadius:9999,background:"var(--yellow-muted)",color:"var(--yellow)",whiteSpace:"nowrap"},children:"Flaky"}),(s==null?void 0:s.nonDiscriminating)&&r.jsx("span",{title:"Non-discriminating: passes on both skill and baseline runs",style:{display:"inline-block",fontSize:9,fontWeight:600,lineHeight:1,padding:"2px 6px",borderRadius:9999,background:"var(--surface-3)",color:"var(--text-tertiary)",whiteSpace:"nowrap"},children:"Non-Discrim."})]}),d?r.jsxs("div",{className:"flex gap-2",children:[r.jsx("input",{value:x,onChange:S=>h(S.target.value),onKeyDown:S=>{S.key==="Enter"&&b(),S.key==="Escape"&&f(!1)},className:"input-field flex-1 text-[12px]",autoFocus:!0}),r.jsx("button",{onClick:b,className:"btn btn-primary text-[11px]",children:"Save"})]}):r.jsx("div",{className:"text-[12px]",style:{color:"var(--text-secondary)",cursor:i?"default":"pointer"},onClick:()=>{i||(h(t.text),f(!0))},children:t.text}),(a==null?void 0:a.reasoning)&&r.jsx("button",{onClick:()=>v(!y),className:"text-[11px] mt-1 transition-colors duration-150",style:{color:"var(--text-tertiary)"},children:y?"Hide reasoning":"Show reasoning"}),y&&(a==null?void 0:a.reasoning)&&r.jsx("div",{className:"mt-1 text-[11px] p-2 rounded",style:{background:"var(--surface-1)",color:"var(--text-tertiary)"},children:a.reasoning})]}),!i&&r.jsx("button",{onClick:u,className:"btn btn-ghost p-1 opacity-0 group-hover:opacity-100",style:{color:"var(--text-tertiary)"},onMouseEnter:S=>{S.currentTarget.style.color="var(--red)",S.currentTarget.style.opacity="1"},onMouseLeave:S=>{S.currentTarget.style.color="var(--text-tertiary)",S.currentTarget.style.opacity=""},children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})})}function Lo({title:t,action:a,children:s}){return r.jsxs("div",{className:"mb-5",children:[r.jsxs("div",{className:"flex items-center justify-between mb-2",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:t}),a]}),s]})}function nb({result:t}){const[a,s]=m.useState(!1),i={padding:"2px 8px",borderRadius:9999,flexShrink:0,minWidth:44,justifyContent:"center",position:"relative",cursor:"default"};if(!t||t.status==null)return r.jsx("span",{className:"pill text-[10px]",title:"Not run yet","aria-label":"Not run yet",style:{...i,background:"var(--surface-3)",color:"var(--text-tertiary)"},children:"--"});const c=t.status==="pass",u=t.passRate??0,d=c?"PASS":"FAIL",f=eb(d,u),x=t.passRate!=null?`${Math.round(t.passRate*100)}%`:d;return r.jsxs("span",{className:"pill text-[10px]",style:{...i,background:c?"var(--green-muted)":"var(--red-muted)",color:c?"var(--green)":"var(--red)",fontWeight:600},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),"aria-label":`${d} ${x}`,"aria-describedby":a?"verdict-tooltip":void 0,children:[x,a&&r.jsx("div",{id:"verdict-tooltip",role:"tooltip",style:{position:"absolute",bottom:"calc(100% + 6px)",right:0,padding:"6px 10px",background:"var(--surface-4)",border:"1px solid var(--border-subtle)",borderRadius:6,fontSize:11,color:"var(--text-secondary)",whiteSpace:"nowrap",zIndex:50,maxWidth:300,width:"max-content",boxShadow:"0 4px 12px rgba(0,0,0,0.15)"},children:f.explanation})]})}function wE({passRate:t}){const a=Math.round(t*100);return r.jsx("div",{className:"flex items-center gap-1",children:r.jsx("div",{className:"rounded-full overflow-hidden",style:{width:32,height:4,background:"var(--surface-4)"},children:r.jsx("div",{className:"h-full rounded-full",style:{width:`${a}%`,background:a>=80?"var(--green)":a>=50?"var(--yellow)":"var(--red)"}})})})}function CE({output:t,durationMs:a,tokens:s}){const[i,c]=m.useState(!1);return r.jsxs("div",{className:"mb-5",children:[r.jsxs("button",{onClick:()=>c(!i),className:"flex items-center gap-2 text-[11px] font-semibold uppercase tracking-wider mb-2 transition-colors duration-150",style:{color:"var(--text-tertiary)"},children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{transform:i?"rotate(90deg)":"rotate(0)",transition:"transform 0.2s ease"},children:r.jsx("polyline",{points:"9 18 15 12 9 6"})}),"LLM Output",a!=null&&r.jsxs("span",{style:{fontWeight:400},children:["(",(a/1e3).toFixed(1),"s)"]}),s!=null&&r.jsxs("span",{style:{fontWeight:400},children:["(",s," tokens)"]})]}),i&&r.jsx("pre",{className:"text-[12px] p-4 rounded-lg overflow-auto animate-fade-in",style:{background:"var(--surface-1)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",maxHeight:400,fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t})]})}function Fd(t){return t==="baseline"?"right":t==="comparison"?"full":"left"}function Gd({entry:t}){return r.jsxs("div",{className:"rounded-lg px-3 py-2.5",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--text-primary)"},children:Qy(t.timestamp)}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:t.model}),r.jsx("span",{className:"pill",style:{fontSize:9,padding:"1px 6px",background:t.type==="benchmark"?"var(--accent-muted)":t.type==="comparison"?"var(--purple-muted)":"var(--orange-muted)",color:t.type==="benchmark"?"var(--accent)":t.type==="comparison"?"var(--purple)":"var(--orange)"},children:t.type}),r.jsxs("span",{className:"text-[12px] font-semibold ml-auto",style:{color:Ul(t.pass_rate)},children:[Math.round(t.pass_rate*100),"%"]})]}),r.jsxs("div",{className:"flex items-center gap-4 mb-1.5 text-[10px]",style:{fontFamily:"var(--font-mono, monospace)",color:"var(--text-tertiary)"},children:[t.durationMs!=null&&r.jsx("span",{children:Zy(t.durationMs)}),t.tokens!=null&&r.jsxs("span",{children:[t.tokens>=1e3?`${(t.tokens/1e3).toFixed(1)}k`:t.tokens," tok"]})]}),t.type==="comparison"&&t.baselinePassRate!=null&&(()=>{const a=t.pass_rate-t.baselinePassRate,s=a>.001?"skill":a<-.001?"baseline":"tie",i=a>0?"+":"",c=s==="skill"?"var(--green)":s==="baseline"?"var(--red)":"var(--text-tertiary)";return r.jsxs("div",{className:"flex items-center gap-2 mb-1.5",children:[r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:"vs baseline:"}),r.jsxs("span",{className:"text-[11px] font-semibold",style:{color:a>=0?"var(--green)":"var(--red)"},children:[i,(a*100).toFixed(1),"%"]}),r.jsx("span",{className:"pill text-[9px]",style:{padding:"1px 5px",background:"var(--surface-3)",color:c},children:s})]})})(),r.jsx("div",{className:"space-y-0.5",children:t.assertions.map(a=>r.jsxs("div",{className:"flex items-start gap-1.5",children:[r.jsx("span",{className:"mt-0.5 rounded-full flex-shrink-0",style:{width:14,height:14,display:"flex",alignItems:"center",justifyContent:"center",background:a.pass?"var(--green-muted)":"var(--red-muted)"},children:a.pass?r.jsx("svg",{width:"8",height:"8",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"3",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})}):r.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 24 24",fill:"none",stroke:"var(--red)",strokeWidth:"3",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:a.text})]},a.id))})]})}function EE({evalId:t,sharedEntries:a,sharedLoading:s}){const{state:i,dispatch:c}=nr(),{plugin:u,skill:d}=i,[f,x]=m.useState(!0),h=a??null,y=s??!1,v=m.useCallback(()=>{x(E=>!E)},[]),b=h?h.slice(0,10):[],S=b.some(E=>{const w=Fd(E.type);return w==="left"||w==="full"}),C=b.some(E=>{const w=Fd(E.type);return w==="right"||w==="full"});return r.jsxs("div",{className:"mb-5",children:[r.jsxs("button",{onClick:v,className:"flex items-center gap-2 text-[11px] font-semibold uppercase tracking-wider mb-2 transition-colors duration-150",style:{color:"var(--text-tertiary)"},children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",style:{transform:f?"rotate(90deg)":"rotate(0)",transition:"transform 0.2s ease"},children:r.jsx("polyline",{points:"9 18 15 12 9 6"})}),"Execution History",h&&h.length>0&&r.jsxs("span",{style:{fontWeight:400},children:["(",h.length," run",h.length!==1?"s":"",")"]})]}),f&&r.jsx("div",{className:"animate-fade-in",children:y?r.jsxs("div",{className:"flex items-center gap-2 py-3",children:[r.jsx("div",{className:"spinner",style:{width:14,height:14,borderWidth:1.5}}),r.jsx("span",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"Loading history..."})]}):!h||h.length===0?r.jsx("div",{className:"text-[12px] py-3",style:{color:"var(--text-tertiary)"},children:"No history for this case"}):r.jsxs("div",{children:[b.length>=2&&r.jsx("div",{className:"mb-2",children:r.jsx(Jy,{entries:b})}),r.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)",gridColumn:"1"},children:"Skill"}),r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)",gridColumn:"2"},children:"Baseline"}),!S&&r.jsx("div",{style:{gridColumn:"1",fontSize:12,color:"var(--text-tertiary)"},children:"No skill runs"}),!C&&r.jsx("div",{style:{gridColumn:"2",fontSize:12,color:"var(--text-tertiary)"},children:"No baseline runs"}),b.map((E,w)=>{const N=Fd(E.type);return N==="full"?r.jsx("div",{style:{gridColumn:"1 / -1"},children:r.jsx(Gd,{entry:E})},w):N==="left"?r.jsxs(m.Fragment,{children:[r.jsx("div",{style:{gridColumn:"1"},children:r.jsx(Gd,{entry:E})}),r.jsx("div",{style:{gridColumn:"2"}})]},w):r.jsxs(m.Fragment,{children:[r.jsx("div",{style:{gridColumn:"1"}}),r.jsx("div",{style:{gridColumn:"2"},children:r.jsx(Gd,{entry:E})})]},w)})]}),r.jsx("button",{onClick:()=>c({type:"SET_PANEL",panel:"history"}),className:"mt-2 text-[11px] font-medium transition-colors duration-150",style:{color:"var(--accent)"},onMouseEnter:E=>{E.currentTarget.style.textDecoration="underline"},onMouseLeave:E=>{E.currentTarget.style.textDecoration="none"},children:"View full history →"})]})})]})}function rv({evals:t,onSave:a,onCancel:s}){const[i,c]=m.useState(""),[u,d]=m.useState(""),[f,x]=m.useState(""),[h,y]=m.useState([{id:`assert-${Date.now()}`,text:"",type:"boolean"}]),[v,b]=m.useState("unit"),[S,C]=m.useState(""),[E,w]=m.useState([]),[N,T]=m.useState(""),[A,I]=m.useState(""),L=Math.max(0,...t.evals.map(z=>z.id))+1,H=z=>{b(z),z==="unit"&&(w([]),C(""),T(""),I(""))},k=()=>{const z=S.trim().toUpperCase();z&&!E.includes(z)&&w([...E,z]),C("")},O=()=>{if(!i.trim()||!u.trim())return;const z={id:L,name:i.trim(),prompt:u.trim(),expected_output:f.trim(),files:[],assertions:h.filter(_=>_.text.trim()),...v==="integration"?{testType:"integration",...E.length>0?{requiredCredentials:E}:{},...N||A?{requirements:{...N?{platform:N}:{},...A?{chromeProfile:A}:{}}}:{}}:{}};a({...t,evals:[...t.evals,z]})};return r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center animate-overlay-in",style:{background:"rgba(0,0,0,0.6)"},children:r.jsxs("div",{className:"w-full max-w-lg rounded-xl p-6 animate-modal-in",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)",maxHeight:"85vh",overflowY:"auto"},children:[r.jsx("div",{className:"text-[15px] font-semibold mb-4",style:{color:"var(--text-primary)"},children:"New Test Case"}),r.jsxs("div",{className:"mb-3",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-1.5 block",style:{color:"var(--text-tertiary)"},children:"Type"}),r.jsx("div",{className:"flex gap-1 p-0.5 rounded-lg",style:{background:"var(--surface-2)",display:"inline-flex"},children:["unit","integration"].map(z=>r.jsx("button",{onClick:()=>H(z),className:"px-3 py-1 rounded-md text-[12px] font-medium transition-all duration-150",style:{background:v===z?z==="unit"?"var(--accent-muted)":"var(--orange-muted)":"transparent",color:v===z?z==="unit"?"var(--accent)":"var(--orange)":"var(--text-tertiary)",border:"none",cursor:"pointer",textTransform:"capitalize"},children:z},z))})]}),r.jsxs("label",{className:"block mb-3",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Name"}),r.jsx("input",{value:i,onChange:z=>c(z.target.value),className:"input-field",placeholder:"e.g., auth-check",autoFocus:!0})]}),r.jsxs("label",{className:"block mb-3",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Prompt"}),r.jsx("textarea",{value:u,onChange:z=>d(z.target.value),className:"input-field",rows:3,placeholder:"User prompt to test..."})]}),r.jsxs("label",{className:"block mb-3",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Expected Output"}),r.jsx("textarea",{value:f,onChange:z=>x(z.target.value),className:"input-field",rows:2,placeholder:"Description of expected behavior..."})]}),r.jsxs("div",{className:"mb-4",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-2 block",style:{color:"var(--text-tertiary)"},children:"Assertions"}),h.map((z,_)=>r.jsxs("div",{className:"flex gap-2 mb-2",children:[r.jsx("input",{value:z.text,onChange:$=>y(h.map((q,K)=>K===_?{...q,text:$.target.value}:q)),className:"input-field flex-1 text-[12px]",placeholder:"e.g., Output includes a greeting"}),h.length>1&&r.jsx("button",{onClick:()=>y(h.filter(($,q)=>q!==_)),className:"btn btn-ghost p-1",style:{color:"var(--text-tertiary)"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},z.id)),r.jsx("button",{onClick:()=>y([...h,{id:`assert-${Date.now()}`,text:"",type:"boolean"}]),className:"text-[11px] mt-1 transition-colors duration-150",style:{color:"var(--accent)"},children:"+ Add Assertion"})]}),v==="integration"&&r.jsxs("div",{className:"mb-4 p-3 rounded-lg",style:{background:"var(--orange-muted)",border:"1px solid var(--orange-muted)"},children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-2 block",style:{color:"var(--orange)"},children:"Integration Settings"}),r.jsxs("div",{className:"mb-3",children:[r.jsx("span",{className:"text-[11px] mb-1 block",style:{color:"var(--text-secondary)"},children:"Required Credentials"}),r.jsx("div",{className:"flex flex-wrap gap-1.5 mb-1.5",children:E.map(z=>r.jsxs("span",{className:"flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono",style:{background:"var(--orange-muted)",color:"var(--orange)"},children:[z,r.jsx("button",{onClick:()=>w(E.filter(_=>_!==z)),style:{color:"var(--orange)",lineHeight:1},children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},z))}),r.jsxs("div",{className:"flex gap-1.5",children:[r.jsx("input",{value:S,onChange:z=>C(z.target.value),onKeyDown:z=>{z.key==="Enter"&&(z.preventDefault(),k())},className:"input-field flex-1 text-[11px] font-mono",placeholder:"e.g., SLACK_BOT_TOKEN"}),r.jsx("button",{onClick:k,className:"btn btn-ghost text-[11px]",style:{color:"var(--orange)"},children:"Add"})]})]}),r.jsxs("label",{className:"block mb-3",children:[r.jsx("span",{className:"text-[11px] mb-1 block",style:{color:"var(--text-secondary)"},children:"Platform"}),r.jsx("input",{value:N,onChange:z=>T(z.target.value),className:"input-field text-[11px]",placeholder:"e.g., linkedin, twitter"})]}),r.jsxs("label",{className:"block",children:[r.jsx("span",{className:"text-[11px] mb-1 block",style:{color:"var(--text-secondary)"},children:"Chrome Profile"}),r.jsx("input",{value:A,onChange:z=>I(z.target.value),className:"input-field text-[11px]",placeholder:"e.g., Default"})]})]}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx("button",{onClick:s,className:"btn btn-secondary text-[12px]",children:"Cancel"}),r.jsx("button",{onClick:O,disabled:!i.trim()||!u.trim(),className:"btn btn-primary text-[12px]",children:"Save"})]})]})})}function NE({evalCase:t,onUpdate:a}){var d,f;const[s,i]=m.useState(""),c=()=>{const x=s.trim().toUpperCase();x&&!(t.requiredCredentials??[]).includes(x)&&a({...t,requiredCredentials:[...t.requiredCredentials??[],x]}),i("")},u=x=>{const h=(t.requiredCredentials??[]).filter(y=>y!==x);a({...t,requiredCredentials:h.length>0?h:void 0})};return r.jsxs("div",{className:"mb-4 p-3 rounded-lg",style:{background:"var(--orange-muted)",border:"1px solid var(--orange-muted)"},children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider mb-2 block",style:{color:"var(--orange)"},children:"Integration Settings"}),r.jsxs("div",{className:"mb-2.5",children:[r.jsx("span",{className:"text-[10px] mb-1 block",style:{color:"var(--text-secondary)"},children:"Required Credentials"}),r.jsx("div",{className:"flex flex-wrap gap-1.5 mb-1.5",children:(t.requiredCredentials??[]).map(x=>r.jsxs("span",{className:"flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono",style:{background:"var(--orange-muted)",color:"var(--orange)"},children:[x,r.jsx("button",{onClick:()=>u(x),style:{color:"var(--orange)",lineHeight:1},children:r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},x))}),r.jsxs("div",{className:"flex gap-1.5",children:[r.jsx("input",{value:s,onChange:x=>i(x.target.value),onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),c())},className:"input-field flex-1 text-[11px] font-mono",placeholder:"e.g., GITHUB_TOKEN"}),r.jsx("button",{onClick:c,className:"btn btn-ghost text-[11px]",style:{color:"var(--orange)"},children:"Add"})]})]}),r.jsxs("div",{className:"mb-2.5",children:[r.jsx("span",{className:"text-[10px] mb-1 block",style:{color:"var(--text-secondary)"},children:"Platform"}),r.jsx("input",{value:((d=t.requirements)==null?void 0:d.platform)??"",onChange:x=>a({...t,requirements:{...t.requirements,platform:x.target.value||void 0}}),className:"input-field text-[11px]",placeholder:"e.g., linkedin, twitter"})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-[10px] mb-1 block",style:{color:"var(--text-secondary)"},children:"Chrome Profile"}),r.jsx("input",{value:((f=t.requirements)==null?void 0:f.chromeProfile)??"",onChange:x=>a({...t,requirements:{...t.requirements,chromeProfile:x.target.value||void 0}}),className:"input-field text-[11px]",placeholder:"e.g., Default"})]})]})}function Wd(t,a){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,severity:a}}))}function TE({size:t=15}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("polyline",{points:"16 18 22 12 16 6"}),r.jsx("polyline",{points:"8 6 2 12 8 18"})]})}function RE({size:t=15}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"3"}),r.jsx("line",{x1:"12",y1:"3",x2:"12",y2:"21"})]})}function AE({size:t=15}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),r.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}function LE({size:t=15}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M15 4V2"}),r.jsx("path",{d:"M15 16v-2"}),r.jsx("path",{d:"M8 9h2"}),r.jsx("path",{d:"M20 9h2"}),r.jsx("path",{d:"M17.8 11.8L19 13"}),r.jsx("path",{d:"M15 9h.01"}),r.jsx("path",{d:"M17.8 6.2L19 5"}),r.jsx("path",{d:"M11 6.2L9.7 5"}),r.jsx("path",{d:"M3 21l9-9"})]})}function qd({size:t=15}){return r.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M12 3l1.5 5.5L19 10l-5.5 1.5L12 17l-1.5-5.5L5 10l5.5-1.5L12 3z"})})}function ME(){const{state:t,dispatch:a,saveContent:s,isReadOnly:i}=nr(),{plugin:c,skill:u,skillContent:d,isDirty:f,improveTarget:x,aiEditOpen:h}=t,[y,v]=m.useState("split"),[b,S]=m.useState(!1),C=m.useRef(null),[E,w]=m.useState(!1),[N,T]=m.useState(""),[A,I]=m.useState(!1),[L,H]=m.useState(null),[k,O]=m.useState([]),[z,_]=m.useState([]),[$,q]=m.useState(null),K=m.useRef(null),{config:Q}=Ya(),U=dE(),{files:M,activeFile:B,secondaryContent:F,loading:te,error:V,loadError:D,selectFile:W,refresh:X,isSkillMd:ee}=QC(c??"",u??""),[de,le]=m.useState(!1),ce=m.useCallback(ve=>{de&&!window.confirm("You have unsaved changes. Discard?")||W(ve)},[de,W]);m.useEffect(()=>()=>{var ve;(ve=K.current)==null||ve.abort()},[]);const{metadata:ne,body:ge}=UC(d),Le=ne["allowed-tools"],Ee=Array.isArray(Le)?Le:typeof Le=="string"?[Le]:[],Me=ne.name,Pe=ne.description,ie=ne.metadata,fe=typeof ie=="object"&&!Array.isArray(ie)?ie:null,he=ne.version||(fe==null?void 0:fe.version),be=ne.tags||(fe==null?void 0:fe.tags),je=Array.isArray(be)?be:typeof be=="string"?be.split(",").map(ve=>ve.trim()).filter(Boolean):[],Ge=new Set(["name","description","metadata","allowed-tools","version","tags"]),ut=Object.entries(ne).filter(([ve])=>!Ge.has(ve)),gt=m.useCallback(async()=>{const{contentToSave:ve,version:rt,fromVersion:it}=mE(d,t.savedContent);if(rt!==null){const bt=pE(it,rt);if(!bt.valid){Wd(`Save blocked: ${bt.reason??"invalid version transition"}`,"error");return}}S(!0),await s(ve),S(!1),typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:content-saved",{detail:{plugin:c,skill:u,version:rt}}))},[s,d,t.savedContent,c,u]),Ht=m.useCallback(ve=>{const rt=Ko(d)??"1.0.0";let it;try{it=Vs(rt,ve)}catch(Mt){const et=Mt instanceof Error?Mt.message:String(Mt);Wd(`Bump failed: ${et}`,"error");return}const bt=Xy(d,it);a({type:"SET_CONTENT",content:bt}),Wd(`Bumped to v${it} (${ve}). Click Save to commit.`,"info")},[d,a]),Tt=m.useCallback(ve=>{(ve.ctrlKey||ve.metaKey)&&ve.key==="s"&&(ve.preventDefault(),ve.stopPropagation(),f&&gt()),(ve.ctrlKey||ve.metaKey)&&ve.key==="k"&&(ve.preventDefault(),ve.stopPropagation(),a({type:h?"CLOSE_AI_EDIT":"OPEN_AI_EDIT"}))},[f,gt,h,a]),qe=m.useCallback(async()=>{var rt,it;if(!N.trim())return;(rt=K.current)==null||rt.abort();const ve=new AbortController;K.current=ve,I(!0),q(null),_([]),H(null),O([]);try{const bt=(Q==null?void 0:Q.provider)||"claude-cli",Mt=(Q==null?void 0:Q.model)||"sonnet",et=await fetch("/api/skills/generate?sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:N,provider:bt,model:Mt}),signal:ve.signal});if(!et.ok||!et.body){let ur=`HTTP ${et.status}`;try{const Nn=await et.json();Nn.error&&(ur=Nn.error)}catch{}throw new Error(ur)}const bn=et.body.getReader(),qt=new TextDecoder;let mn="",un="";for(;;){const{done:ur,value:Nn}=await bn.read();if(ur)break;mn+=qt.decode(Nn,{stream:!0});const Un=mn.split(`
98
- `);mn=Un.pop()||"";for(const Tn of Un)if(Tn.startsWith("event: "))un=Tn.slice(7).trim();else if(Tn.startsWith("data: ")){try{const jt=JSON.parse(Tn.slice(6));if(un==="progress")_(Oe=>[...Oe,{phase:jt.phase,message:jt.message,timestamp:Date.now()}]);else if(un==="done"||un==="complete"){const Oe=["---"];jt.name&&Oe.push(`name: ${jt.name}`),jt.description&&Oe.push(`description: "${jt.description.replace(/"/g,'\\"')}"`),jt.model&&Oe.push(`model: ${jt.model}`),(it=jt.allowedTools)!=null&&it.trim()&&Oe.push(`allowed-tools: ${jt.allowedTools.trim()}`),Oe.push("---","",jt.body||"");const Ye=Oe.join(`
99
- `);H(Ye),O(dc(d,Ye)),I(!1)}else un==="error"&&(q(jt.message||jt.description||"Generation failed"),I(!1))}catch{}un=""}}}catch(bt){bt.name!=="AbortError"&&q(bt.message)}finally{I(!1),K.current=null}},[N,Q,d]),zt=m.useCallback(()=>{L&&a({type:"SET_CONTENT",content:L}),w(!1),H(null),O([]),T(""),_([])},[L,a]),kt=m.useCallback(()=>{w(!1),H(null),O([]),T(""),_([]),q(null)},[]),vt=m.useCallback(()=>{var ve;E?((ve=K.current)==null||ve.abort(),kt()):(h&&a({type:"CLOSE_AI_EDIT"}),w(!0))},[E,h,a,kt]),Zt=[{mode:"raw",icon:r.jsx(TE,{}),label:"Editor"},{mode:"split",icon:r.jsx(RE,{}),label:"Split"},{mode:"preview",icon:r.jsx(AE,{}),label:"Preview"}];return r.jsxs("div",{className:"flex flex-col",style:{height:"100%",overflow:"auto"},onKeyDown:Tt,tabIndex:-1,children:[r.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5",style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-1)"},children:[r.jsx("div",{className:"flex items-center",style:{background:"var(--surface-2)",borderRadius:8,padding:2,gap:1},children:Zt.map(({mode:ve,icon:rt,label:it})=>r.jsxs("button",{onClick:()=>v(ve),title:it,className:"flex items-center gap-1.5 rounded-md transition-all duration-150",style:{padding:"5px 10px",background:y===ve?"var(--surface-4)":"transparent",color:y===ve?"var(--text-primary)":"var(--text-tertiary)",fontSize:11,fontWeight:y===ve?600:400,border:"none",cursor:"pointer"},children:[rt,r.jsx("span",{style:{letterSpacing:"0.01em"},children:it})]},ve))}),ee?i?r.jsx("div",{className:"flex items-center gap-2",children:r.jsxs("span",{className:"flex items-center gap-1.5 text-[11px]",style:{color:"var(--text-tertiary)"},children:[r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"Read-only"]})}):r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("button",{onClick:()=>{h?a({type:"CLOSE_AI_EDIT"}):(E&&kt(),a({type:"OPEN_AI_EDIT"}))},title:"Edit with AI (Ctrl+K)",className:"flex items-center gap-1.5 rounded-md transition-all duration-150",style:{padding:"4px 10px",fontSize:11,fontWeight:h?600:400,border:"none",cursor:"pointer",color:h?"var(--purple)":"var(--text-tertiary)",background:h?"var(--purple-muted)":"transparent"},children:[r.jsx(LE,{size:13}),r.jsx("span",{children:"AI Edit"})]}),r.jsxs("button",{onClick:vt,title:"Regenerate skill from prompt",className:"flex items-center gap-1.5 rounded-md transition-all duration-150",style:{padding:"4px 10px",fontSize:11,fontWeight:E?600:400,border:"none",cursor:"pointer",color:E?"var(--purple)":"var(--text-tertiary)",background:E?"var(--purple-muted)":"transparent"},children:[r.jsx(qd,{size:13}),r.jsx("span",{children:"Regenerate"})]}),r.jsx("div",{style:{width:1,height:16,background:"var(--border-subtle)"}}),!i&&(()=>{const ve=Ko(d)??"1.0.0";let rt=ve,it=ve,bt=ve;try{rt=Vs(ve,"patch"),it=Vs(ve,"minor"),bt=Vs(ve,"major")}catch{}const Mt={padding:"4px 8px"};return r.jsxs("div",{style:{display:"inline-flex",gap:2,alignItems:"center"},"aria-label":"Version bump","data-testid":"version-bump-controls",children:[r.jsx("button",{type:"button",onClick:()=>Ht("patch"),title:`Bump patch: ${ve} → ${rt}`,"aria-label":"Bump patch version",className:"btn btn-ghost text-[11px]",style:Mt,children:"+patch"}),r.jsx("button",{type:"button",onClick:()=>Ht("minor"),title:`Bump minor: ${ve} → ${it}`,"aria-label":"Bump minor version",className:"btn btn-ghost text-[11px]",style:Mt,children:"+minor"}),r.jsx("button",{type:"button",onClick:()=>Ht("major"),title:`Bump major: ${ve} → ${bt}`,"aria-label":"Bump major version",className:"btn btn-ghost text-[11px]",style:Mt,children:"+major"})]})})(),f&&r.jsx("button",{onClick:()=>a({type:"SET_CONTENT",content:t.savedContent}),className:"btn btn-ghost text-[11px]",style:{padding:"4px 8px"},children:"Discard"}),r.jsx("button",{onClick:gt,disabled:!f||b,className:"btn btn-primary text-[11px]",style:{padding:"5px 14px"},children:b?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"spinner",style:{width:11,height:11,borderWidth:1.5}})," Saving..."]}):"Save"}),U.hasRemote&&U.remoteUrl&&r.jsx(Yy,{remoteUrl:U.remoteUrl,provider:Q==null?void 0:Q.provider,model:Q==null?void 0:Q.model})]}):null]}),c&&u&&r.jsx(nE,{files:M,activeFile:B,onSelect:ce,onRefresh:X,loadError:D}),!ee&&r.jsx(lE,{file:F,loading:te,error:V,viewMode:y,plugin:c??void 0,skill:u??void 0,onSaved:()=>{W(B),X()},onDirtyChange:le}),ee&&r.jsxs("div",{className:"flex-1 overflow-hidden",style:{display:"grid",gridTemplateColumns:y==="raw"||y==="preview"?"1fr":"1fr 1fr",minHeight:"60vh"},children:[y!=="preview"&&r.jsx("div",{className:"flex flex-col overflow-hidden",style:{borderRight:y==="split"?"1px solid var(--border-subtle)":"none"},children:r.jsx("textarea",{ref:C,value:d,onChange:ve=>{!i&&!b&&a({type:"SET_CONTENT",content:ve.target.value})},onKeyDown:Tt,spellCheck:!1,readOnly:i||b,className:"flex-1 w-full resize-none outline-none",style:{background:"var(--surface-0)",color:"var(--text-primary)",fontFamily:"var(--font-mono, 'JetBrains Mono', ui-monospace, monospace)",fontSize:12.5,lineHeight:1.7,tabSize:2,border:"none",padding:"16px 20px",opacity:i?.7:1}})}),y!=="raw"&&r.jsx("div",{className:"overflow-auto",style:{background:"var(--surface-0)"},children:r.jsxs("div",{className:"animate-fade-in",style:{padding:"20px 24px",maxWidth:720},children:[(Me||he||Pe)&&r.jsxs("div",{style:{marginBottom:20},children:[r.jsxs("div",{className:"flex items-baseline gap-3",style:{marginBottom:8},children:[Me&&r.jsx("h2",{style:{fontSize:18,fontWeight:700,color:"var(--text-primary)",letterSpacing:"-0.02em",lineHeight:1.2,margin:0},children:Me}),he&&r.jsxs("span",{style:{fontSize:10,fontWeight:600,color:"var(--accent)",background:"var(--accent-muted)",padding:"2px 7px",borderRadius:4,letterSpacing:"0.03em",fontFamily:"var(--font-mono, ui-monospace, monospace)"},children:["v",he]})]}),Pe&&r.jsx("p",{style:{fontSize:12.5,lineHeight:1.65,color:"var(--text-secondary)",margin:0,paddingLeft:12,borderLeft:"2px solid var(--accent)",maxWidth:600},children:Pe})]}),je.length>0&&r.jsx("div",{className:"flex flex-wrap items-center gap-1.5",style:{marginBottom:16},children:je.map(ve=>r.jsx("span",{style:{fontSize:10,fontWeight:500,color:"var(--text-tertiary)",background:"var(--surface-2)",padding:"3px 8px",borderRadius:4,letterSpacing:"0.02em"},children:ve},ve))}),Ee.length>0&&r.jsx("div",{style:{marginBottom:16},children:r.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[r.jsx("span",{style:{fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--text-tertiary)",marginRight:4},children:"Tools"}),Ee.map(ve=>r.jsx("span",{style:{fontSize:10.5,fontFamily:"var(--font-mono, ui-monospace, monospace)",color:"var(--accent)",background:"var(--accent-muted)",padding:"2px 7px",borderRadius:4},children:ve},ve))]})}),ut.length>0&&r.jsx("div",{style:{marginBottom:16,padding:"8px 0",borderTop:"1px solid var(--border-subtle)",borderBottom:"1px solid var(--border-subtle)"},children:ut.map(([ve,rt],it)=>{const bt=Array.isArray(rt)?rt.join(", "):typeof rt=="object"?Object.entries(rt).map(([Mt,et])=>`${Mt}: ${Array.isArray(et)?et.join(", "):et}`).join(" | "):rt;return r.jsxs("div",{className:"flex items-baseline gap-3",style:{padding:"4px 0",borderTop:it>0?"1px solid var(--border-subtle)":"none"},children:[r.jsx("span",{style:{fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--text-tertiary)",minWidth:80,flexShrink:0},children:ve}),r.jsx("span",{style:{fontSize:12,color:"var(--text-secondary)"},children:bt})]},ve)})}),(Me||Pe||je.length>0||Ee.length>0||ut.length>0)&&ge&&r.jsx("div",{style:{height:1,background:"linear-gradient(90deg, var(--accent) 0%, var(--border-subtle) 40%, transparent 100%)",marginBottom:20,opacity:.5}}),ge&&r.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto",style:{color:"var(--text-secondary)",wordBreak:"break-word"},dangerouslySetInnerHTML:{__html:uc(ge)}})]})})]}),ee&&h&&r.jsx(XC,{}),ee&&E&&r.jsx("div",{className:"animate-fade-in",style:{borderTop:"1px solid var(--border-subtle)",background:"var(--surface-1)"},children:r.jsxs("div",{className:"px-4 py-3",children:[!L&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r.jsx(qd,{size:14}),r.jsx("span",{className:"text-[12px] font-semibold",style:{color:"var(--text-primary)"},children:"Regenerate Skill"})]}),r.jsx("div",{className:"flex gap-2 mb-2",children:r.jsx("textarea",{value:N,onChange:ve=>T(ve.target.value),placeholder:"Describe what this skill should do...",rows:2,disabled:A,className:"flex-1 px-3 py-2 rounded-lg text-[12px] resize-none",style:{background:"var(--surface-0)",color:"var(--text-primary)",border:"1px solid var(--border-subtle)",outline:"none",opacity:A?.5:1},onKeyDown:ve=>{ve.key==="Enter"&&(ve.ctrlKey||ve.metaKey)&&N.trim()&&!A&&(ve.preventDefault(),qe())}})}),r.jsxs("div",{className:"flex items-center gap-2",children:[A?r.jsx("button",{onClick:()=>{var ve;(ve=K.current)==null||ve.abort(),I(!1)},className:"btn btn-secondary text-[11px]",style:{padding:"4px 12px"},children:"Cancel"}):r.jsx("button",{onClick:qe,disabled:!N.trim(),className:"btn btn-primary text-[11px]",style:{padding:"4px 12px"},children:"Generate"}),r.jsx("button",{onClick:kt,className:"btn btn-ghost text-[11px]",style:{padding:"4px 8px"},children:"Close"})]}),A&&z.length>0&&r.jsx("div",{className:"mt-2",children:r.jsx(di,{entries:z,isRunning:!0})}),$&&r.jsxs("div",{className:"mt-2 px-3 py-2 rounded-lg text-[12px]",style:{background:"var(--red-muted)",color:"var(--red)"},children:[$,r.jsx("button",{onClick:qe,className:"ml-2 underline",style:{color:"var(--red)"},children:"Retry"})]})]}),L&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r.jsx(qd,{size:14}),r.jsx("span",{className:"text-[12px] font-semibold",style:{color:"var(--text-primary)"},children:"Regenerated — Review Changes"})]}),r.jsx("div",{className:"rounded-lg overflow-hidden mb-3",style:{border:"1px solid var(--border-subtle)",maxHeight:"300px",overflowY:"auto"},children:k.map((ve,rt)=>r.jsxs("div",{className:"px-3 py-0.5 text-[11px] font-mono",style:{background:ve.type==="added"?"var(--green-muted)":ve.type==="removed"?"var(--red-muted)":"transparent",color:ve.type==="added"?"var(--green)":ve.type==="removed"?"var(--red)":"var(--text-secondary)",borderLeft:ve.type==="added"?"3px solid var(--green)":ve.type==="removed"?"3px solid var(--red)":"3px solid transparent"},children:[r.jsx("span",{style:{userSelect:"none",opacity:.5,marginRight:8},children:ve.type==="added"?"+":ve.type==="removed"?"-":" "}),ve.content]},rt))}),r.jsxs("div",{className:"flex gap-2",children:[r.jsxs("button",{onClick:zt,className:"btn btn-primary text-[11px]",style:{padding:"4px 12px"},children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})}),"Apply"]}),r.jsx("button",{onClick:kt,className:"btn btn-secondary text-[11px]",style:{padding:"4px 12px"},children:"Discard"})]})]})]})}),ee&&x!==null&&c&&u&&r.jsx("div",{style:{borderTop:"1px solid var(--border-subtle)"},children:r.jsx(VC,{plugin:c,skill:u,skillContent:d,onApplied:ve=>{a({type:"SET_CONTENT",content:ve}),a({type:"CONTENT_SAVED"}),a({type:"CLOSE_IMPROVE"})}})}),ee&&r.jsx(zE,{})]})}function zE(){const[t,a]=m.useState(()=>{var i;return typeof window>"u"?!1:((i=window.localStorage)==null?void 0:i.getItem("vskill:editor-eval-cases-open"))==="1"}),s=i=>{var u;const c=i.currentTarget.open;if(a(c),typeof window<"u")try{(u=window.localStorage)==null||u.setItem("vskill:editor-eval-cases-open",c?"1":"0")}catch{}};return r.jsxs("details",{"data-testid":"editor-eval-cases-section",open:t,onToggle:s,style:{borderTop:"1px solid var(--border-subtle)",background:"var(--bg-canvas)"},children:[r.jsx("summary",{style:{padding:"10px 16px",fontFamily:"var(--font-sans)",fontSize:13,fontWeight:500,color:"var(--text-primary)",cursor:"pointer",userSelect:"none",background:"var(--surface-1)",borderBottom:t?"1px solid var(--border-subtle)":"none"},children:"Eval cases"}),t&&r.jsx("div",{"data-testid":"editor-eval-cases-body",style:{height:520,overflow:"hidden"},children:r.jsx(jE,{embedded:!0})})]})}function $n(t,a){return a==="free"?"Free":a==="subscription"&&t==null?"Included":t==null?"N/A":t>=1?`$${t.toFixed(2)}`:t===0?"$0.00":t>=.001?`$${t.toFixed(4)}`:`$${t.toPrecision(3).replace(/0+$/,"").replace(/\.$/,"")}`}function rb(t,a){return t==null||a==null?"N/A":`${t.toLocaleString("en-US")} in / ${a.toLocaleString("en-US")} out`}function DE(t){return t==="baseline"?"Baseline Pass Rate":"Skill Pass Rate"}function _E(t,a){let s="";if(a){const c=new Date(a);isNaN(c.getTime())||(s=c.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"}))}return[t,s].filter(Boolean).join(" · ")}function OE(t,a,s){const i=s===1?"test case":"test cases";if(t===0)return`Your skill performs the same as the baseline across ${s} ${i}`;const c=Math.round(Math.abs(t)*a);if(c===0)return`Your skill performs the same as the baseline across ${s} ${i}`;const u=t>0?"more":"fewer";return`Your skill passes ${c} ${u} assertions across ${s} ${i}`}function av(t,a){const s=i=>{const c=i/5*100;return isFinite(c)?Math.round(Math.min(100,Math.max(0,c))):0};return{skill:s(t),baseline:s(a)}}function BE(t){return t==="skill"?{text:"Skill wins",isSkill:!0}:t==="baseline"?{text:"Baseline wins",isSkill:!1}:{text:"Tie",isSkill:!1}}function IE(t,a){const s=t+a,i=s*10,c=s*25,u=d=>d>=60?`${Math.round(d/60)}m`:`${d}s`;return`${u(i)}–${u(c)}`}const $E={anthropic:.01,openrouter:.01,ollama:0,"lm-studio":0,"claude-cli":0,"codex-cli":0,"gemini-cli":0};function UE(t,a){if(!t)return null;const s=$E[t];if(s==null||s===0)return null;const i=s*a*.5,c=s*a*2;return`${$n(i)}–${$n(c)}`}function HE(){const{state:t,runCase:a,runAll:s,cancelCase:i,cancelAll:c,isReadOnly:u}=nr(),{evals:d,caseRunStates:f,bulkRunActive:x,latestBenchmark:h,inlineResults:y}=t,{config:v}=Ya(),b=(d==null?void 0:d.evals)??[],S=m.useMemo(()=>{for(const k of f.values())if(k.status==="running"||k.status==="queued")return!0;return!1},[f]),C=b.filter(k=>{const O=f.get(k.id);return O&&(O.status==="complete"||O.status==="error"||O.status==="cancelled")}).length,E=b.filter(k=>{const O=f.get(k.id);return O&&(O.status==="running"||O.status==="queued")}).length,w=m.useRef(null),[N,T]=m.useState(0);m.useEffect(()=>{if(S&&!w.current&&(w.current=Date.now()),!S){w.current=null,T(0);return}const k=setInterval(()=>{w.current&&T(Math.round((Date.now()-w.current)/1e3))},1e3);return()=>clearInterval(k)},[S]);const A=b.reduce((k,O)=>k+O.assertions.length,0),I=b.length+A,L=m.useMemo(()=>IE(b.length,A),[b.length,A]),H=m.useMemo(()=>UE((v==null?void 0:v.provider)??null,I),[v==null?void 0:v.provider,I]);return r.jsxs("div",{className:"p-5",children:[u&&r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg mb-4 text-[11px]",style:{background:"var(--surface-2)",color:"var(--text-tertiary)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"Installed skill — benchmarking is disabled. Edit the source skill to run benchmarks."]}),r.jsxs("div",{className:"rounded-xl p-4 mb-5",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:"Benchmark"}),S&&r.jsxs("span",{className:"text-[11px] font-medium",style:{color:"var(--accent)"},children:[E," running"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[S&&r.jsxs("button",{onClick:c,className:"btn text-[12px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid var(--red-muted)"},children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:4},children:r.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"1"})}),"Cancel All"]}),r.jsx("button",{onClick:()=>s("comparison"),disabled:b.length===0||S||u,className:"btn btn-primary text-[12px]",title:"Runs both your skill and the baseline, then compares results side by side",children:"Run A/B Test"}),r.jsx("button",{onClick:()=>s("benchmark"),disabled:b.length===0||S||u,className:"btn btn-secondary text-[12px]",title:"Runs benchmark using your skill only",children:"Test Skill"}),r.jsx("button",{onClick:()=>s("baseline"),disabled:b.length===0||S||u,className:"btn btn-secondary text-[12px]",title:"Runs benchmark using the baseline (no skill) for reference",children:"Test Baseline"})]}),!S&&b.length>0&&r.jsxs("div",{className:"flex items-center gap-3 mt-2 text-[10px]",style:{color:"var(--text-tertiary)"},children:[r.jsxs("span",{children:["Est. duration: ",L]}),H&&r.jsxs("span",{children:["Est. cost: ",H]}),!H&&(v==null?void 0:v.provider)&&(v.provider==="claude-cli"||v.provider==="codex-cli")&&r.jsx("span",{children:"Cost: Included"}),!H&&(v==null?void 0:v.provider)&&(v.provider==="ollama"||v.provider==="lm-studio"||v.provider==="gemini-cli")&&r.jsx("span",{children:"Cost: Free"})]})]}),S&&b.length>0&&r.jsxs("div",{className:"mb-5",children:[r.jsxs("div",{className:"flex items-center justify-between mb-2",children:[r.jsxs("span",{className:"text-[12px] font-medium",style:{color:"var(--text-secondary)"},children:["Progress: ",C,"/",b.length," cases"]}),r.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[Math.round(C/b.length*100),"%"]})]}),r.jsx("div",{className:"rounded-full overflow-hidden",style:{height:6,background:"var(--surface-3)"},children:r.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${C/b.length*100}%`,background:"var(--accent)"}})}),r.jsxs("div",{className:"flex items-center justify-between mt-1.5",children:[r.jsxs("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["Elapsed: ",N>=60?`${Math.floor(N/60)}m ${N%60}s`:`${N}s`]}),r.jsxs("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["Est. total: ",L]})]})]}),r.jsx("div",{className:"space-y-3 stagger-children",children:b.map(k=>{const O=y.get(k.id),z=f.get(k.id),_=(z==null?void 0:z.status)??"idle",$=h==null?void 0:h.cases.find(q=>q.eval_id===k.id);return r.jsx(VE,{name:k.name,evalId:k.id,result:O,caseCost:$==null?void 0:$.cost,caseBillingMode:$==null?void 0:$.billingMode,caseInputTokens:$==null?void 0:$.inputTokens,caseOutputTokens:$==null?void 0:$.outputTokens,caseStatus:_,runMode:(z==null?void 0:z.mode)??null,comparisonDetail:$==null?void 0:$.comparisonDetail,isReadOnly:u,onRun:q=>a(q,"benchmark"),onBaseline:q=>a(q,"baseline"),onCompare:q=>a(q,"comparison"),onCancel:q=>i(q)},k.id)})}),!S&&h&&h.cases.length>0&&r.jsxs("div",{className:"mt-5",children:[r.jsxs("div",{className:"rounded-xl p-4 mb-4",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:DE(h.type)}),r.jsx("span",{className:"text-[20px] font-bold",style:{color:(h.overall_pass_rate??0)>=.8?"var(--green)":(h.overall_pass_rate??0)>=.5?"var(--yellow)":"var(--red)"},children:h.overall_pass_rate!=null?`${Math.round(h.overall_pass_rate*100)}%`:"--"})]}),h.totalDurationMs!=null&&r.jsxs("div",{className:"text-[11px] mt-1",style:{color:"var(--text-tertiary)"},children:["Total: ",(h.totalDurationMs/1e3).toFixed(1),"s",h.model&&` | Model: ${h.model}`,h.totalInputTokens!=null&&h.totalOutputTokens!=null&&` | Tokens: ${rb(h.totalInputTokens,h.totalOutputTokens)}`,h.totalCost!=null&&` | Cost: ${$n(h.totalCost)}`]}),h.overall_pass_rate>=.9999&&!h.comparison&&r.jsx("button",{onClick:()=>s("comparison"),disabled:b.length===0||u,className:"text-[13px] font-semibold mt-3 w-full rounded-lg transition-opacity duration-150",style:{padding:"10px 0",background:"var(--green)",color:"var(--color-paper)",border:"none",cursor:"pointer",opacity:b.length===0?.5:1},children:"Run Final A/B Comparison"})]}),h.comparison&&r.jsxs("div",{className:"rounded-xl p-4",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Skill vs Baseline"}),(()=>{const k=_E(h.model,h.timestamp);return k?r.jsx("div",{className:"text-[10px] mt-0.5 mb-3",style:{color:"var(--text-tertiary)"},children:k}):r.jsx("div",{className:"mb-3"})})(),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsx(lv,{label:"Skill",value:h.comparison.skillPassRate,color:"var(--accent)"}),r.jsx(lv,{label:"Baseline",value:h.comparison.baselinePassRate,color:"var(--text-tertiary)"})]}),r.jsxs("div",{className:"mt-3 text-[12px] font-medium",style:{color:h.comparison.delta>0?"var(--green)":h.comparison.delta<0?"var(--red)":"var(--text-tertiary)"},children:["Delta: ",h.comparison.delta>0?"+":"",(h.comparison.delta*100).toFixed(1),"%",h.verdict&&` | ${gE(h.verdict)}`]}),(()=>{const k=h.cases.reduce((z,_)=>z+_.assertions.length,0),O=OE(h.comparison.delta,k,h.cases.length);return r.jsx("div",{className:"mt-1 text-[11px]",style:{color:"var(--text-tertiary)"},children:O})})()]})]})]})}const PE={benchmark:{label:"Skill",bg:"var(--accent-muted)",color:"var(--accent)"},baseline:{label:"Baseline",bg:"var(--surface-3)",color:"var(--text-tertiary)"},comparison:{label:"Compare",bg:"var(--purple-muted)",color:"var(--purple)"}};function VE({name:t,evalId:a,result:s,caseCost:i,caseBillingMode:c,caseInputTokens:u,caseOutputTokens:d,caseStatus:f,runMode:x,comparisonDetail:h,isReadOnly:y,onRun:v,onBaseline:b,onCompare:S,onCancel:C}){const[E,w]=m.useState(!1),N=f==="running"||f==="queued",T=f==="complete"||f==="error";return r.jsxs("div",{className:"rounded-xl overflow-hidden transition-all duration-200",style:{background:"var(--surface-1)",border:N?"1px solid var(--accent)":"1px solid var(--border-subtle)",boxShadow:N?"0 0 12px rgba(99, 131, 255, 0.15)":"none"},children:[r.jsxs("div",{className:"flex items-center justify-between px-4 py-3",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[f==="running"&&r.jsx("span",{className:"spinner",style:{width:14,height:14,borderWidth:1.5}}),f==="queued"&&r.jsx("span",{className:"text-[10px] font-medium",style:{color:"var(--text-tertiary)"},children:"queued"}),r.jsxs("span",{className:"text-[13px] font-medium",style:{color:"var(--text-primary)"},children:["#",a," ",t]}),x&&(N||T)&&(()=>{const A=PE[x];return A?r.jsx("span",{className:"pill text-[9px] font-semibold",style:{background:A.bg,color:A.color,padding:"1px 6px"},children:A.label}):null})()]}),r.jsxs("div",{className:"flex items-center gap-2",children:[N?r.jsx("button",{onClick:()=>C(a),className:"btn text-[10px] px-2 py-1",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid var(--red-muted)"},children:"Cancel"}):r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:()=>S(a),disabled:y,className:"btn btn-primary text-[10px] px-2 py-1",children:"Compare"}),r.jsx("button",{onClick:()=>v(a),disabled:y,className:"btn btn-secondary text-[10px] px-2 py-1",children:"Skill"}),r.jsx("button",{onClick:()=>b(a),disabled:y,className:"btn btn-secondary text-[10px] px-2 py-1",children:"Base"})]}),s&&s.status!=null&&r.jsx("span",{className:"pill text-[10px]",style:{background:s.status==="pass"?"var(--green-muted)":"var(--red-muted)",color:s.status==="pass"?"var(--green)":"var(--red)"},children:s.passRate!=null?`${Math.round(s.passRate*100)}%`:s.status}),u!=null&&d!=null&&r.jsx("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)",fontFamily:"var(--font-mono, monospace)"},children:rb(u,d)}),i!=null&&r.jsx("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)",fontFamily:"var(--font-mono, monospace)"},children:$n(i,c)}),f==="cancelled"&&r.jsx("span",{className:"pill text-[10px]",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:"cancelled"})]})]}),s&&s.assertions.length>0&&r.jsxs("div",{className:"px-4 pb-3",children:[r.jsx("div",{className:"space-y-1",children:s.assertions.map(A=>r.jsxs("div",{className:"flex items-center gap-2 text-[11px]",children:[r.jsx("span",{style:{color:A.pass?"var(--green)":"var(--red)"},children:A.pass?"PASS":"FAIL"}),r.jsx("span",{style:{color:"var(--text-secondary)"},children:A.text})]},A.assertion_id))}),s.output&&r.jsx("button",{onClick:()=>w(!E),className:"text-[11px] mt-2 transition-colors duration-150",style:{color:"var(--text-tertiary)"},children:E?"Hide output":"Show output"}),E&&s.output&&r.jsx("pre",{className:"text-[11px] mt-2 p-3 rounded-lg overflow-auto",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",maxHeight:200,fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre-wrap"},children:s.output})]}),h&&r.jsx("div",{className:"px-4 pb-3",children:r.jsx("div",{className:"rounded-lg px-3 py-2",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:r.jsx("div",{className:"flex items-center gap-4 text-[11px] flex-wrap",children:(()=>{const A=av(h.skillContentScore,h.baselineContentScore),I=av(h.skillStructureScore,h.baselineStructureScore),L=BE(h.winner);return r.jsxs(r.Fragment,{children:[r.jsxs("span",{style:{color:"var(--text-secondary)"},children:["Content: Skill ",A.skill,"% / Baseline ",A.baseline,"%"]}),r.jsx("span",{style:{color:"var(--text-tertiary)"},children:"·"}),r.jsxs("span",{style:{color:"var(--text-secondary)"},children:["Structure: Skill ",I.skill,"% / Baseline ",I.baseline,"%"]}),r.jsx("span",{style:{color:"var(--text-tertiary)"},children:"·"}),r.jsx("span",{style:{color:L.isSkill?"var(--accent)":"var(--text-tertiary)",fontWeight:500},children:L.text})]})})()})})}),s&&s.errorMessage&&r.jsx(FE,{errorMessage:s.errorMessage,classifiedError:s.classifiedError})]})}const Yd={rate_limit:"⏱",context_window:"⚠",auth:"🔒",timeout:"⌛",provider_unavailable:"⚡",parse_error:"❓",unknown:"❌"};function FE({errorMessage:t,classifiedError:a}){const[s,i]=m.useState(!1),c=(a==null?void 0:a.title)??"Error",u=a==null?void 0:a.hint,d=a?Yd[a.category]??Yd.unknown:Yd.unknown;return r.jsx("div",{className:"px-4 pb-3",children:r.jsxs("div",{className:"rounded-lg overflow-hidden",style:{background:"var(--red-muted)",border:"1px solid var(--red-muted)"},children:[r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2",children:[r.jsx("span",{style:{fontSize:12},children:d}),r.jsx("span",{className:"text-[11.5px] font-semibold flex-1",style:{color:"var(--red)"},children:c}),r.jsx("button",{onClick:()=>i(!s),className:"text-[10px] px-1.5 py-0.5 rounded transition-colors duration-150",style:{color:"var(--text-tertiary)",background:"transparent"},children:s?"Hide details":"Details"})]}),u&&r.jsx("div",{className:"px-3 pb-2 text-[10.5px]",style:{color:"var(--text-secondary)"},children:u}),s&&r.jsx("pre",{className:"text-[10px] px-3 pb-2.5 overflow-auto",style:{color:"var(--text-tertiary)",maxHeight:120,fontFamily:"var(--font-mono, ui-monospace, monospace)",whiteSpace:"pre-wrap",wordBreak:"break-all",margin:0},children:t})]})})}function lv({label:t,value:a,color:s}){return r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center justify-between mb-1",children:[r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:t}),r.jsxs("span",{className:"text-[12px] font-semibold",style:{color:s},children:[Math.round(a*100),"%"]})]}),r.jsx("div",{className:"rounded-full overflow-hidden",style:{height:6,background:"var(--surface-3)"},children:r.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${a*100}%`,background:s}})})]})}const sv={TP:{bg:"var(--green-muted)",text:"var(--green)"},TN:{bg:"var(--green-muted)",text:"var(--green)"},FP:{bg:"var(--red-muted)",text:"var(--red)"},FN:{bg:"var(--red-muted)",text:"var(--red)"},SCOPE_WARNING:{bg:"var(--yellow-muted)",text:"var(--yellow)"},DRIFT_WARNING:{bg:"var(--yellow-muted)",text:"var(--yellow)"}},GE={scope_warning:"Description claims broader scope than name+tags suggest. Either narrow the description or add explicit '+' prefix to confirm intended scope.",drift_warning:"Description omits intent that classifier inferred from name+tags. Description may need to mention this case explicitly."};function WE(){const{state:t,dispatch:a,runActivationTest:s,cancelActivation:i,generateActivationPrompts:c,loadTestCasesFromSkillMd:u,saveTestCasesToSkillMd:d}=nr(),{plugin:f,skill:x,activationPrompts:h,activationResults:y,activationSummary:v,activationRunning:b,activationError:S,activationStartedAt:C,activationClassifyingStatus:E,generatingPrompts:w,generatingPromptsError:N,activationPromptsSource:T,savingTestCases:A,savingTestCasesError:I,savingTestCasesSuccess:L,activationHistory:H}=t,{state:k}=cr(),O=k.skills.find(le=>le.plugin===f&&le.skill===x),z=(O==null?void 0:O.resolvedVersion)??(O==null?void 0:O.version)??null,[_,$]=m.useState(h),[q,K]=m.useState(null),[Q,U]=m.useState(!1);m.useEffect(()=>{h&&h!==_&&$(h)},[h]),m.useEffect(()=>{a({type:"SET_ACTIVATION_PROMPTS",prompts:_})},[_,a]),m.useEffect(()=>{fetch(`/api/skills/${f}/${x}/description`).then(le=>le.json()).then(le=>K(le.rawContent||le.description||null)).catch(()=>K(null))},[f,x]),m.useEffect(()=>{(!h||h.trim().length===0)&&u()},[f,x]);function M(){s(_)}function B(){c(8)}function F(){d()}const te=_.trim().split(`
100
- `).filter(Boolean).length,V=le=>le.verdict==="scope_warning"||le.verdict==="drift_warning",D=y.filter(le=>(le.classification==="TP"||le.classification==="TN")&&!V(le)),W=y.filter(le=>(le.classification==="FP"||le.classification==="FN")&&!V(le));y.filter(V);const X=(q==null?void 0:q.replace(/^---[\s\S]*?---\s*/,"").trim())??null,ee=_.trim().length>0,de=X?uc(X):"";return r.jsxs("div",{className:"p-5 space-y-5",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-[14px] font-semibold",style:{color:"var(--text-primary)"},children:"Activation Test"}),r.jsx("div",{className:"text-[12px] mt-0.5",style:{color:"var(--text-tertiary)"},children:"Test whether this skill's description activates for relevant prompts and stays silent for irrelevant ones."})]}),r.jsxs("div",{className:"grid grid-cols-[3fr_2fr] gap-4 items-stretch",children:[r.jsxs("div",{className:"glass-card p-4 flex flex-col gap-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("label",{className:"text-[11px] font-semibold uppercase tracking-widest",style:{color:"var(--text-tertiary)"},children:"Test Prompts"}),T==="skill-md"&&r.jsx("span",{className:"pill",style:{background:"var(--green-muted)",color:"var(--green)",fontSize:"9px",padding:"1px 5px"},title:"Loaded from the ## Test Cases block in SKILL.md. Save back any edits to persist them.",children:"from SKILL.md"}),T==="ai-generated"&&r.jsx("span",{className:"pill",style:{background:"var(--purple-muted)",color:"var(--purple)",fontSize:"9px",padding:"1px 5px"},title:"AI-generated. Save as test cases to persist into SKILL.md.",children:"AI-generated"})]}),r.jsxs("div",{className:"flex gap-1.5",children:[r.jsx("button",{onClick:F,disabled:A||!ee||b,className:"text-[10px] px-2.5 py-1 rounded-md transition-colors duration-150 flex items-center gap-1.5",style:{background:A?"var(--surface-3)":"var(--surface-2)",color:ee?"var(--green)":"var(--text-tertiary)",border:"1px solid var(--border-subtle)",opacity:ee?1:.5,cursor:ee?"pointer":"not-allowed"},title:ee?"Write the current prompts back to SKILL.md as a ## Test Cases block":"No prompts to save",onMouseEnter:le=>{ee&&!A&&(le.currentTarget.style.background="var(--surface-3)")},onMouseLeave:le=>{A||(le.currentTarget.style.background="var(--surface-2)")},children:A?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"spinner",style:{borderTopColor:"var(--green)",borderColor:"var(--border-subtle)",width:10,height:10}}),"Saving..."]}):r.jsxs(r.Fragment,{children:[r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),r.jsx("polyline",{points:"17 21 17 13 7 13 7 21"}),r.jsx("polyline",{points:"7 3 7 8 15 8"})]}),"Save as test cases"]})}),r.jsx("button",{onClick:B,disabled:w||!X||b,className:"text-[10px] px-2.5 py-1 rounded-md transition-colors duration-150 flex items-center gap-1.5",style:{background:w?"var(--surface-3)":"var(--surface-2)",color:X?"var(--accent)":"var(--text-tertiary)",border:"1px solid var(--border-subtle)",opacity:X?1:.5,cursor:X?"pointer":"not-allowed"},title:X?void 0:"No skill description available",onMouseEnter:le=>{X&&!w&&(le.currentTarget.style.background="var(--surface-3)")},onMouseLeave:le=>{w||(le.currentTarget.style.background="var(--surface-2)")},children:w?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"spinner",style:{borderTopColor:"var(--accent)",borderColor:"var(--border-subtle)",width:10,height:10}}),"Generating..."]}):r.jsxs(r.Fragment,{children:[r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M12 3v3m6.36.64l-2.12 2.12M21 12h-3m-.64 6.36l-2.12-2.12M12 21v-3m-4.24.64l2.12-2.12M3 12h3m.64-6.36l2.12 2.12"})}),ee?"Regenerate":"Generate"," Test Prompts"]})})]})]}),L&&r.jsx("div",{className:"text-[11px] px-2 py-1 rounded",style:{color:"var(--green)",background:"var(--green-muted)"},"aria-live":"polite",children:L}),I&&r.jsxs("div",{className:"text-[11px] px-2 py-1 rounded",style:{color:"var(--red)",background:"var(--red-muted)"},"aria-live":"polite",children:["Save failed: ",I]}),!X&&!b&&r.jsx("div",{className:"text-[11px] mt-1",style:{color:"var(--text-tertiary)"},"aria-live":"polite",children:"Add a description to your skill's frontmatter to enable prompt generation."}),N&&r.jsx("div",{className:"text-[11px] px-2 py-1 rounded",style:{color:"var(--red)",background:"var(--red-muted)"},children:N}),r.jsx("textarea",{className:"input-field resize-y font-mono text-[12px]",style:{minHeight:140,height:140},value:_,onChange:le=>$(le.target.value),placeholder:`How do I write a unit test?
101
- What edge cases should I test?
102
- +Deploy this to production
103
- !What's the weather like today?
104
- !Write me a poem about flowers`}),r.jsxs("div",{className:"flex items-center flex-wrap gap-x-3 gap-y-1 text-[11px]",style:{color:"var(--text-tertiary)"},children:[r.jsx("span",{children:"One prompt per line"}),r.jsx(Mo,{}),r.jsx("span",{children:"No prefix = auto-classify"}),r.jsx(Mo,{}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx("code",{className:"px-1 rounded",style:{background:"var(--surface-2)"},children:"+"}),"= must activate"]}),r.jsx(Mo,{}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx("code",{className:"px-1 rounded",style:{background:"var(--surface-2)"},children:"!"}),"= must NOT activate"]}),r.jsx(Mo,{}),r.jsxs("span",{style:{fontVariantNumeric:"tabular-nums"},children:[te," prompt",te!==1?"s":""]})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("button",{onClick:M,disabled:b||!_.trim(),className:"btn btn-primary",children:b?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"spinner",style:{borderTopColor:"var(--color-paper)",borderColor:"var(--border-default)",width:14,height:14}}),"Testing..."]}):r.jsxs(r.Fragment,{children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("circle",{cx:"12",cy:"12",r:"6"}),r.jsx("circle",{cx:"12",cy:"12",r:"2"})]}),"Run Activation Test"]})}),b&&r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:i,className:"btn btn-secondary text-[12px]",children:"Cancel"}),r.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[E||`${y.length} / ${te} prompts tested`,C&&r.jsx(XE,{startedAt:C})]})]})]})]}),r.jsxs("div",{className:"glass-card flex flex-col overflow-hidden",children:[r.jsx("div",{className:"px-4 pt-3.5 pb-2.5 flex-shrink-0",style:{borderBottom:"1px solid var(--border-subtle)"},children:r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-widest",style:{color:"var(--text-tertiary)"},children:"Skill Description"})}),r.jsx("div",{className:"flex-1 overflow-auto px-4 py-3",style:{minHeight:0},children:X?r.jsx("div",{className:"text-[12px] leading-relaxed",style:{color:"var(--text-secondary)"},dangerouslySetInnerHTML:{__html:de}}):r.jsx("div",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"No description available"})})]})]}),S&&r.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid var(--red-muted)"},children:S}),b&&y.length===0&&r.jsxs("div",{className:"text-center py-12 animate-fade-in",children:[r.jsx("div",{className:"spinner-lg mx-auto mb-4"}),r.jsx("p",{className:"text-[14px]",style:{color:"var(--text-secondary)"},children:"Testing activation against skill description..."})]}),y.length>0&&r.jsxs("div",{className:"space-y-5",children:[W.length>0&&r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--red)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),r.jsx("line",{x1:"9",y1:"9",x2:"15",y2:"15"})]}),r.jsxs("span",{className:"text-[12px] font-semibold",style:{color:"var(--red)"},children:["Incorrect (",W.length,")"]}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:"— These need attention"})]}),r.jsx("div",{className:"space-y-1.5 stagger-children",children:W.map((le,ce)=>r.jsx(iv,{result:le},`incorrect-${ce}`))})]}),D.length>0&&r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("polyline",{points:"16 10 11 15 8 12"})]}),r.jsxs("span",{className:"text-[12px] font-semibold",style:{color:"var(--green)"},children:["Correct (",D.length,")"]})]}),r.jsx("div",{className:"space-y-1.5 stagger-children",children:D.map((le,ce)=>r.jsx(iv,{result:le},`correct-${ce}`))})]})]}),v&&r.jsxs("div",{className:"glass-card p-6 animate-fade-in-scale",style:{borderColor:"var(--border-active)",borderWidth:2},children:[r.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-widest mb-2",style:{color:"var(--text-tertiary)"},children:"Summary"}),v.autoClassifiedCount!=null&&v.autoClassifiedCount>0&&r.jsxs("div",{className:"text-[11px] mb-3",style:{color:"var(--text-tertiary)"},children:[v.autoClassifiedCount," of ",v.total," prompts auto-classified from skill name and tags"]}),r.jsxs("div",{className:"grid grid-cols-3 gap-6 mb-5",children:[r.jsx(Kd,{label:"Precision",value:v.precision,description:"Of all activations, how many were correct?",detail:`${v.tp} true / ${v.tp+v.fp} total activations`}),r.jsx(Kd,{label:"Recall",value:v.recall,description:"Of expected activations, how many fired?",detail:`${v.tp} activated / ${v.tp+v.fn} expected`}),r.jsx(Kd,{label:"Reliability",value:v.reliability,description:"Overall correct classification rate",detail:`${v.tp+v.tn} correct / ${v.total} total`})]}),r.jsxs("div",{className:"pt-4",style:{borderTop:"1px solid var(--border-subtle)"},children:[r.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-widest mb-3 text-center",style:{color:"var(--text-tertiary)"},children:"Confusion Matrix"}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 max-w-xs mx-auto",children:[r.jsx(zo,{label:"True Positive",abbr:"TP",count:v.tp,bg:"var(--green-muted)",color:"var(--green)",description:"Correctly activated"}),r.jsx(zo,{label:"False Positive",abbr:"FP",count:v.fp,bg:"var(--red-muted)",color:"var(--red)",description:"Wrongly activated"}),r.jsx(zo,{label:"False Negative",abbr:"FN",count:v.fn,bg:"var(--red-muted)",color:"var(--red)",description:"Missed activation"}),r.jsx(zo,{label:"True Negative",abbr:"TN",count:v.tn,bg:"var(--green-muted)",color:"var(--green)",description:"Correctly silent"})]}),r.jsxs("div",{className:"mt-3 max-w-xs mx-auto text-center text-[11px]",style:{color:"var(--text-tertiary)"},title:"Auto-classified disagreements: not real failures, but worth reviewing. Hover a yellow row for details.",children:["Warnings:"," ",r.jsxs("span",{style:{color:(v.scopeWarnings??0)>0?"var(--yellow)":"var(--text-tertiary)"},children:[v.scopeWarnings??0," scope"]}),", ",r.jsxs("span",{style:{color:(v.driftWarnings??0)>0?"var(--yellow)":"var(--text-tertiary)"},children:[v.driftWarnings??0," drift"]})]})]})]}),r.jsx(qE,{history:H,expanded:Q,onToggle:()=>U(!Q),skillVersion:z})]})}function qE({history:t,expanded:a,onToggle:s,skillVersion:i}){return t===null?null:r.jsxs("div",{className:"glass-card overflow-hidden",children:[r.jsxs("button",{className:"w-full px-4 py-3 flex items-center justify-between text-left",style:{borderBottom:a?"1px solid var(--border-subtle)":"none"},onClick:s,children:[r.jsxs("span",{className:"text-[11px] font-semibold uppercase tracking-widest",style:{color:"var(--text-tertiary)"},children:["Test History",t.length>0&&r.jsxs("span",{className:"ml-2 font-normal",style:{color:"var(--text-tertiary)"},children:["(",t.length," run",t.length!==1?"s":"",")"]})]}),r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:a?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s"},children:r.jsx("polyline",{points:"6 9 12 15 18 9"})})]}),a&&r.jsx("div",{className:"px-4 py-3",children:t.length===0?r.jsx("div",{className:"text-[12px] py-4 text-center",style:{color:"var(--text-tertiary)"},children:"No test runs yet"}):r.jsx("div",{className:"space-y-2",children:t.map(c=>r.jsx(YE,{run:c,skillVersion:i},c.id))})})]})}function YE({run:t,skillVersion:a}){const s=Math.round(t.summary.reliability*100),i=s>=80?"var(--green)":s>=60?"var(--yellow)":"var(--red)",c=s>=80?"Good":s>=60?"Needs Work":"Poor",u=i;return r.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5 rounded-lg",style:{background:"var(--surface-1)"},children:[r.jsx("div",{className:"flex-1 min-w-0",children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:KE(t.timestamp)}),r.jsx(ui,{version:a??null,size:"sm","data-testid":"activation-row-version"}),r.jsx("span",{className:"pill text-[9px] px-1.5",style:{background:"var(--surface-2)",color:"var(--text-tertiary)"},children:t.model||t.provider}),r.jsxs("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:[t.promptCount," prompts"]})]})}),r.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[r.jsxs("span",{className:"text-[12px] font-semibold",style:{color:i,fontVariantNumeric:"tabular-nums"},children:[s,"%"]}),r.jsx("span",{className:"text-[10px] font-medium px-2 py-0.5 rounded",style:{color:u,background:`color-mix(in srgb, ${u} 10%, transparent)`},children:c})]})]})}function KE(t){const a=Date.now(),s=new Date(t).getTime(),i=Math.floor((a-s)/1e3);if(i<60)return"just now";const c=Math.floor(i/60);if(c<60)return`${c}m ago`;const u=Math.floor(c/60);if(u<24)return`${u}h ago`;const d=Math.floor(u/24);return d<7?`${d}d ago`:new Date(t).toLocaleDateString()}function Mo(){return r.jsx("span",{style:{color:"var(--border-subtle)",userSelect:"none"},children:"·"})}function iv({result:t}){const a=t.verdict==="scope_warning"||t.verdict==="drift_warning",s=a?t.verdict==="scope_warning"?"SCOPE_WARNING":"DRIFT_WARNING":t.classification,i=sv[s]||sv.FN,c=!a&&(t.classification==="TP"||t.classification==="TN"),u=t.verdict==="scope_warning"?"scope warn":t.verdict==="drift_warning"?"drift warn":null,d=t.verdict&&t.verdict!=="ok"?GE[t.verdict]:void 0;return r.jsxs("div",{className:"flex items-start gap-3 p-4 rounded-xl transition-all duration-200",style:{background:i.bg,border:"1px solid transparent"},children:[r.jsx("div",{className:"flex-shrink-0 mt-0.5",children:r.jsx("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center",style:{background:`color-mix(in srgb, ${i.text} 20%, transparent)`},children:c?r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:i.text,strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})}):a?r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:i.text,strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),r.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),r.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}):r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:i.text,strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("div",{className:"flex items-center gap-2 mb-1",children:r.jsx("span",{className:"text-[13px] font-medium",style:{color:"var(--text-primary)"},children:t.prompt})}),r.jsxs("div",{className:"flex items-center gap-3 text-[12px]",children:[r.jsx("span",{className:"pill",style:{background:"var(--surface-3)",color:i.text,fontWeight:700,fontSize:"10px",padding:"1px 6px"},title:d,children:u??t.classification}),r.jsx("span",{style:{color:t.activate?"var(--green)":"var(--text-tertiary)"},children:t.activate?"Activated":"Silent"}),r.jsxs("span",{style:{color:"var(--text-tertiary)"},children:["Expected: ",t.expected==="should_activate"?"activate":"stay silent"]}),r.jsxs("span",{style:{color:"var(--text-tertiary)"},children:[t.confidence," confidence"]}),t.autoClassified&&r.jsx("span",{className:"pill",style:{background:"var(--purple-muted)",color:"var(--purple)",fontSize:"9px",padding:"1px 5px"},children:"auto"})]}),t.reasoning&&r.jsx("div",{className:"text-[11px] mt-1.5",style:{color:"var(--text-tertiary)"},children:t.reasoning})]})]})}function Kd({label:t,value:a,description:s,detail:i}){const c=Math.round(a*100),u=c>=80?"var(--green)":c>=60?"var(--yellow)":"var(--red)";return r.jsxs("div",{className:"text-center",children:[r.jsxs("div",{className:"text-[28px] font-bold tracking-tight",style:{color:u},children:[c,"%"]}),r.jsx("div",{className:"text-[12px] font-medium mt-0.5",style:{color:"var(--text-secondary)"},children:t}),r.jsx("div",{className:"text-[10px] mt-1",style:{color:"var(--text-tertiary)"},children:s}),r.jsx("div",{className:"text-[10px] mt-0.5 font-mono",style:{color:"var(--text-tertiary)"},children:i})]})}function zo({abbr:t,count:a,bg:s,color:i,description:c}){return r.jsxs("div",{className:"text-center p-3 rounded-lg",style:{background:s},children:[r.jsx("div",{className:"text-[20px] font-bold",style:{color:i},children:a}),r.jsx("div",{className:"text-[11px] font-semibold",style:{color:i},children:t}),r.jsx("div",{className:"text-[9px] mt-0.5",style:{color:"var(--text-tertiary)"},children:c})]})}function XE({startedAt:t}){const[a,s]=m.useState(0);return m.useEffect(()=>{const i=setInterval(()=>s(Math.floor((Date.now()-t)/1e3)),1e3);return()=>clearInterval(i)},[t]),r.jsxs("span",{className:"ml-2",children:["(",a,"s)"]})}function QE(t){return t==="benchmark"||t==="activation"||t==="ab"}function ZE({mode:t}){return t==="activation"?r.jsx(WE,{}):r.jsx(HE,{})}const Xd={benchmark:"#6383ff",comparison:"#a78bfa",baseline:"#fb923c"},ov={benchmark:"Benchmark",comparison:"Comparison",baseline:"Baseline"},Cf=600,Ef=180,gn=40,Qd=Cf-gn*2,ha=Ef-gn*2,JE=[25,50,75,100];function cv(t){return new Date(t).toLocaleDateString(void 0,{month:"short",day:"numeric"})}function eN(t){return t==null?"--":`${(t/1e3).toFixed(1)}s`}function tN({entries:t,onPointClick:a}){const[s,i]=m.useState(null),c=m.useMemo(()=>[...t].reverse(),[t]);if(c.length<2)return null;const u=c.length,d=c.map((h,y)=>{const v=gn+y/(u-1)*Qd,b=h.passRate*100,S=gn+ha-b/100*ha;return{x:v,y:S,pct:b,entry:h}}),f=d.map(h=>`${h.x},${h.y}`).join(" "),x=Array.from(new Set(c.map(h=>h.type)));return r.jsxs("div",{className:"glass-card p-5 animate-fade-in",style:{position:"relative",overflowX:u>=20?"auto":void 0},children:[r.jsx("div",{className:"text-[13px] font-semibold mb-2",style:{color:"var(--text-primary)"},children:"Pass Rate Trend"}),r.jsx("div",{className:"flex items-center gap-5 mb-3",children:x.map(h=>r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:Xd[h]??"var(--text-tertiary)"}}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:ov[h]??h})]},h))}),r.jsxs("svg",{width:Cf,height:Ef,viewBox:`0 0 ${Cf} ${Ef}`,style:{display:"block",overflow:"visible"},children:[JE.map(h=>{const y=gn+ha-h/100*ha;return r.jsxs("g",{children:[r.jsx("line",{x1:gn,y1:y,x2:gn+Qd,y2:y,stroke:"var(--border-subtle)",strokeWidth:.5,strokeDasharray:"4 4"}),r.jsxs("text",{x:gn-8,y:y+3.5,textAnchor:"end",style:{fill:"var(--text-tertiary)",fontSize:10},children:[h,"%"]})]},h)}),r.jsx("line",{x1:gn,y1:gn+ha,x2:gn+Qd,y2:gn+ha,stroke:"var(--border-subtle)",strokeWidth:1}),r.jsx("text",{x:gn-8,y:gn+ha+3.5,textAnchor:"end",style:{fill:"var(--text-tertiary)",fontSize:10},children:"0%"}),r.jsx("polyline",{points:f,fill:"none",stroke:"var(--border-subtle)",strokeWidth:1.5,strokeLinejoin:"round"}),d.map((h,y)=>r.jsx("circle",{cx:h.x,cy:h.y,r:5,fill:Xd[h.entry.type]??"var(--text-tertiary)",stroke:"var(--surface-2)",strokeWidth:2,style:{cursor:"pointer",transition:"r 0.15s ease"},onMouseEnter:v=>{v.currentTarget.setAttribute("r","7"),i({x:h.x,y:h.y,entry:h.entry})},onMouseLeave:v=>{v.currentTarget.setAttribute("r","5"),i(null)},onClick:()=>a==null?void 0:a(h.entry)},y)),nN(u).map(h=>r.jsx("text",{x:d[h].x,y:gn+ha+16,textAnchor:"middle",style:{fill:"var(--text-tertiary)",fontSize:10},children:cv(c[h].timestamp)},h))]}),s&&r.jsxs("div",{style:{position:"absolute",left:s.x,top:s.y-12,transform:"translate(-50%, -100%)",background:"var(--surface-3)",border:"1px solid var(--border-subtle)",borderRadius:8,padding:"8px 12px",pointerEvents:"none",zIndex:10,whiteSpace:"nowrap"},children:[r.jsx("div",{className:"text-[11px] font-medium",style:{color:"var(--text-primary)"},children:cv(s.entry.timestamp)}),r.jsx("div",{className:"text-[11px] mt-0.5",style:{color:"var(--text-tertiary)"},children:s.entry.model}),r.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[r.jsx("span",{className:"text-[9px] font-semibold px-1.5 py-0.5 rounded-full",style:{background:Xd[s.entry.type]??"var(--text-tertiary)",color:"#fff"},children:ov[s.entry.type]??s.entry.type}),r.jsxs("span",{className:"text-[12px] font-semibold",style:{color:"var(--text-primary)"},children:[Math.round(s.entry.passRate*100),"%"]})]}),r.jsxs("div",{className:"text-[10px] mt-1.5 flex items-center gap-3",style:{color:"var(--text-tertiary)"},children:[r.jsx("span",{children:eN(s.entry.totalDurationMs)}),r.jsx("span",{children:s.entry.totalTokens!=null?`${s.entry.totalTokens} tokens`:"--"})]})]})]})}function nN(t){if(t<=3)return Array.from({length:t},(i,c)=>c);if(t<=6)return[0,Math.floor(t/2),t-1];if(t<20)return[0,Math.floor(t/3),Math.floor(2*t/3),t-1];const a=Math.ceil(t/10),s=[0];for(let i=a;i<t-1;i+=a)s.push(i);return s.push(t-1),s}const Fs=new Map;let vn=null,Go=null,Do=1e3,_l=0;function ab(){if(vn)return;vn=new EventSource("/api/events");const t=a=>s=>{let i={};try{i=s.data?JSON.parse(s.data):{}}catch{}const c=Fs.get(a);if(c)for(const u of c)u(i)};vn.addEventListener("benchmark:complete",t("benchmark:complete")),vn.addEventListener("history:written",t("history:written")),vn.addEventListener("leaderboard:updated",t("leaderboard:updated")),vn.onerror=()=>{vn==null||vn.close(),vn=null,_l>0&&(Go=setTimeout(()=>{Do=Math.min(Do*2,3e4),ab()},Do))},vn.onopen=()=>{Do=1e3}}function rN(){Go!=null&&(clearTimeout(Go),Go=null),vn==null||vn.close(),vn=null}function aN(t,a){return Fs.has(t)||Fs.set(t,new Set),Fs.get(t).add(a),_l++,ab(),()=>{var s;(s=Fs.get(t))==null||s.delete(a),_l--,_l<=0&&(_l=0,queueMicrotask(()=>{_l<=0&&rN()}))}}function Xo(t,a){const s=m.useRef(a);s.current=a,m.useEffect(()=>aN(t,c=>s.current(c)),[t])}function Qo(t){return t>=.8?"var(--green)":t>=.5?"var(--yellow)":"var(--red)"}function lN(t){return t>=1e3?`${(t/1e3).toFixed(1)}s`:`${Math.round(t)}ms`}function sN({rate:t,label:a}){const s=Math.round(t*100);return r.jsx("div",{className:"flex items-center gap-3",children:r.jsxs("div",{className:"flex-1",children:[r.jsxs("div",{className:"flex items-center justify-between mb-1",children:[r.jsx("span",{className:"text-[11px] truncate",style:{color:"var(--text-primary)",maxWidth:"70%"},children:a}),r.jsxs("span",{className:"text-[11px] font-semibold",style:{color:Qo(t)},children:[s,"%"]})]}),r.jsx("div",{className:"h-1.5 rounded-full overflow-hidden",style:{background:"var(--surface-3)"},children:r.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${s}%`,background:Qo(t)}})})]})})}function iN({points:t}){if(t.length<2)return null;const a=200,s=48,i=4,c=t.length,u=t.map((x,h)=>{const y=i+h/(c-1)*(a-i*2),v=i+(s-i*2)-x.passRate*(s-i*2);return{x:y,y:v}}),d=`M ${u[0].x},${s-i} `+u.map(x=>`L ${x.x},${x.y}`).join(" ")+` L ${u[u.length-1].x},${s-i} Z`,f=u.map((x,h)=>`${h===0?"M":"L"} ${x.x},${x.y}`).join(" ");return r.jsxs("svg",{width:a,height:s,style:{display:"block"},children:[r.jsx("path",{d,fill:"var(--accent-muted)"}),r.jsx("path",{d:f,fill:"none",stroke:"var(--accent)",strokeWidth:1.5,strokeLinejoin:"round"}),r.jsx("circle",{cx:u[u.length-1].x,cy:u[u.length-1].y,r:3,fill:"var(--accent)"})]})}function oN({plugin:t,skill:a}){const s=`stats/${t}/${a}`,i=m.useCallback(()=>ke.getStats(t,a),[t,a]),{data:c,loading:u}=qa(s,i),d=m.useCallback(()=>Bn(s),[s]);if(Xo("benchmark:complete",d),Xo("history:written",d),u)return r.jsxs("div",{className:"space-y-4",children:[r.jsx("div",{className:"skeleton h-24 rounded-xl"}),r.jsx("div",{className:"skeleton h-48 rounded-xl"}),r.jsx("div",{className:"skeleton h-36 rounded-xl"})]});if(!c||c.totalRuns===0)return r.jsxs("div",{className:"text-center py-12",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center mx-auto mb-3",style:{background:"var(--surface-2)"},children:r.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",children:[r.jsx("path",{d:"M18 20V10"}),r.jsx("path",{d:"M12 20V4"}),r.jsx("path",{d:"M6 20v-6"})]})}),r.jsx("p",{className:"text-[13px]",style:{color:"var(--text-tertiary)"},children:"No benchmark data yet"}),r.jsx("p",{className:"text-[11px] mt-1",style:{color:"var(--text-tertiary)"},children:"Run some benchmarks to see statistics"})]});const f=c.trendPoints.length>0?c.trendPoints[c.trendPoints.length-1].passRate:0,x=c.trendPoints.length>0?c.trendPoints[0].passRate:0,h=f-x,y=c.assertionStats.slice(0,10);return r.jsxs("div",{className:"space-y-4 stagger-children",children:[r.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-widest font-semibold mb-1",style:{color:"var(--text-tertiary)"},children:"Total Runs"}),r.jsx("div",{className:"text-[24px] font-bold",style:{color:"var(--text-primary)"},children:c.totalRuns})]}),r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-widest font-semibold mb-1",style:{color:"var(--text-tertiary)"},children:"Latest Pass Rate"}),r.jsxs("div",{className:"text-[24px] font-bold",style:{color:Qo(f)},children:[Math.round(f*100),"%"]})]}),r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-widest font-semibold mb-1",style:{color:"var(--text-tertiary)"},children:"Trend"}),r.jsxs("div",{className:"text-[24px] font-bold",style:{color:h>=0?"var(--green)":"var(--red)"},children:[h>=0?"+":"",Math.round(h*100),"%"]})]}),r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-widest font-semibold mb-1",style:{color:"var(--text-tertiary)"},children:"Models Tested"}),r.jsx("div",{className:"text-[24px] font-bold",style:{color:"var(--text-primary)"},children:c.modelStats.length})]}),c.totalCost!=null&&r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-widest font-semibold mb-1",style:{color:"var(--text-tertiary)"},children:"Total Cost"}),r.jsx("div",{className:"text-[20px] font-bold",style:{color:"var(--text-primary)"},children:$n(c.totalCost)})]}),c.costPerRun!=null&&r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("div",{className:"text-[10px] uppercase tracking-widest font-semibold mb-1",style:{color:"var(--text-tertiary)"},children:"Avg Cost/Run"}),r.jsx("div",{className:"text-[20px] font-bold",style:{color:"var(--text-primary)"},children:$n(c.costPerRun)})]})]}),c.trendPoints.length>=2&&r.jsxs("div",{className:"glass-card p-5",children:[r.jsx("div",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Pass Rate Over Time"}),r.jsx(iN,{points:c.trendPoints})]}),c.modelStats.length>0&&r.jsxs("div",{className:"glass-card p-5",children:[r.jsx("div",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Model Performance"}),r.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:12},children:[r.jsx("thead",{children:r.jsxs("tr",{style:{borderBottom:"1px solid var(--border-subtle)"},children:[r.jsx("th",{style:{textAlign:"left",padding:"6px 8px",color:"var(--text-tertiary)",fontWeight:600,fontSize:11},children:"Model"}),r.jsx("th",{style:{textAlign:"center",padding:"6px 8px",color:"var(--text-tertiary)",fontWeight:600,fontSize:11},children:"Runs"}),r.jsx("th",{style:{textAlign:"center",padding:"6px 8px",color:"var(--text-tertiary)",fontWeight:600,fontSize:11},children:"Avg Pass Rate"}),r.jsx("th",{style:{textAlign:"center",padding:"6px 8px",color:"var(--text-tertiary)",fontWeight:600,fontSize:11},children:"Avg Duration"}),r.jsx("th",{style:{textAlign:"center",padding:"6px 8px",color:"var(--text-tertiary)",fontWeight:600,fontSize:11},children:"Avg Cost"})]})}),r.jsx("tbody",{children:c.modelStats.map(v=>r.jsxs("tr",{style:{borderBottom:"1px solid var(--border-subtle)"},children:[r.jsx("td",{style:{padding:"8px",color:"var(--text-primary)",fontWeight:500},children:v.model}),r.jsx("td",{style:{padding:"8px",textAlign:"center",fontFamily:"var(--font-mono, monospace)",color:"var(--text-secondary)"},children:v.runs}),r.jsx("td",{style:{padding:"8px",textAlign:"center"},children:r.jsxs("span",{className:"font-semibold",style:{color:Qo(v.avgPassRate)},children:[Math.round(v.avgPassRate*100),"%"]})}),r.jsx("td",{style:{padding:"8px",textAlign:"center",fontFamily:"var(--font-mono, monospace)",color:"var(--text-secondary)"},children:lN(v.avgDurationMs)}),r.jsx("td",{style:{padding:"8px",textAlign:"center",fontFamily:"var(--font-mono, monospace)",color:"var(--text-secondary)"},children:v.avgCost!=null?$n(v.avgCost):"N/A"})]},v.model))})]})]}),y.length>0&&r.jsxs("div",{className:"glass-card p-5",children:[r.jsx("div",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Weakest Assertions"}),r.jsx("div",{className:"space-y-3",children:y.map(v=>r.jsxs("button",{className:"block w-full text-left rounded-lg p-2 -mx-2 transition-colors duration-150",style:{background:"transparent"},onMouseEnter:b=>{b.currentTarget.style.background="var(--surface-2)"},onMouseLeave:b=>{b.currentTarget.style.background="transparent"},onClick:()=>{},children:[r.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[r.jsxs("span",{className:"text-[10px] font-mono px-1 py-0.5 rounded flex-shrink-0",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:["#",v.evalId]}),r.jsx("span",{className:"text-[10px] truncate",style:{color:"var(--text-tertiary)"},children:v.evalName}),r.jsxs("span",{className:"text-[10px] ml-auto flex-shrink-0",style:{color:"var(--text-tertiary)",fontFamily:"var(--font-mono, monospace)"},children:[v.totalRuns," runs"]})]}),r.jsx(sN,{rate:v.passRate,label:v.text})]},`${v.evalId}:${v.id}`))})]})]})}function cN({plugin:t,skill:a}){const[s,i]=m.useState(null),[c,u]=m.useState(null),[d,f]=m.useState({}),[x,h]=m.useState({});m.useEffect(()=>{ke.getEvals(t,a).then(i).catch(()=>i(null))},[t,a]);async function y(v){if(c===v){u(null);return}if(u(v),!d[v]){h(b=>({...b,[v]:!0}));try{const b=await ke.getCaseHistory(t,a,v);f(S=>({...S,[v]:b}))}catch{f(b=>({...b,[v]:[]}))}finally{h(b=>({...b,[v]:!1}))}}}return s?r.jsx("div",{className:"space-y-2 stagger-children",children:s.evals.map(v=>{const b=d[v.id]||[],S=c===v.id,C=x[v.id],E=b.length>0?b[0].pass_rate:null;return r.jsxs("div",{className:"glass-card overflow-hidden",children:[r.jsxs("button",{onClick:()=>y(v.id),className:"w-full text-left p-4 flex items-center gap-3 transition-colors duration-150",style:{background:S?"var(--surface-2)":"transparent"},onMouseEnter:w=>{S||(w.currentTarget.style.background="var(--surface-2)")},onMouseLeave:w=>{S||(w.currentTarget.style.background="transparent")},children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2.5",strokeLinecap:"round",style:{transform:S?"rotate(90deg)":"rotate(0)",transition:"transform 0.2s ease",flexShrink:0},children:r.jsx("polyline",{points:"9 18 15 12 9 6"})}),r.jsxs("span",{className:"text-[11px] font-mono px-1.5 py-0.5 rounded flex-shrink-0",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:["#",v.id]}),r.jsx("span",{className:"text-[13px] font-medium flex-1 truncate",style:{color:"var(--text-primary)"},children:v.name}),b.length>=2&&r.jsx(Jy,{entries:b}),E!=null&&r.jsxs("span",{className:"text-[12px] font-semibold flex-shrink-0",style:{color:Ul(E)},children:[Math.round(E*100),"%"]}),b.length>0&&r.jsxs("span",{className:"text-[10px] flex-shrink-0",style:{color:"var(--text-tertiary)",fontFamily:"var(--font-mono, monospace)"},children:[b.length," runs"]})]}),S&&r.jsx("div",{className:"border-t animate-fade-in",style:{borderColor:"var(--border-subtle)"},children:C?r.jsxs("div",{className:"p-4 flex items-center gap-2",children:[r.jsx("div",{className:"spinner",style:{width:14,height:14}}),r.jsx("span",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"Loading history..."})]}):b.length===0?r.jsx("div",{className:"p-4",children:r.jsx("p",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"No history for this eval case"})}):r.jsx("div",{className:"divide-y",style:{borderColor:"var(--border-subtle)"},children:b.map((w,N)=>r.jsxs("div",{className:"p-4",style:{background:N===0?"var(--surface-2)":"transparent"},children:[r.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--text-primary)"},children:Qy(w.timestamp)}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:w.model}),r.jsx("span",{className:"pill",style:{fontSize:9,padding:"1px 6px",background:w.type==="benchmark"?"rgba(99,131,255,0.15)":w.type==="comparison"?"var(--purple-muted)":"rgba(251,146,60,0.15)",color:w.type==="benchmark"?"#6383ff":w.type==="comparison"?"var(--purple)":"#fb923c"},children:w.type}),r.jsxs("span",{className:"text-[12px] font-semibold ml-auto",style:{color:Ul(w.pass_rate)},children:[Math.round(w.pass_rate*100),"%"]})]}),r.jsxs("div",{className:"flex items-center gap-4 mb-2 text-[10px]",style:{fontFamily:"var(--font-mono, monospace)",color:"var(--text-tertiary)"},children:[w.durationMs!=null&&r.jsx("span",{children:Zy(w.durationMs)}),w.tokens!=null&&r.jsxs("span",{children:[w.tokens>=1e3?`${(w.tokens/1e3).toFixed(1)}k`:w.tokens," tok"]})]}),r.jsx("div",{className:"space-y-1",children:w.assertions.map(T=>r.jsxs("div",{className:"flex items-start gap-2 py-0.5",children:[r.jsx("div",{className:"w-3.5 h-3.5 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5",style:{background:T.pass?"var(--green)":"var(--red)"},children:r.jsx("svg",{width:"7",height:"7",viewBox:"0 0 24 24",fill:"none",stroke:"#fff",strokeWidth:"3.5",strokeLinecap:"round",strokeLinejoin:"round",children:T.pass?r.jsx("polyline",{points:"20 6 9 17 4 12"}):r.jsxs(r.Fragment,{children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("div",{className:"text-[11px]",style:{color:"var(--text-primary)"},children:T.text}),T.reasoning&&r.jsx("div",{className:"text-[10px] mt-0.5",style:{color:"var(--text-tertiary)"},children:T.reasoning})]})]},T.id))})]},N))})})]},v.id)})}):r.jsx("div",{className:"text-center py-12",children:r.jsx("p",{className:"text-[13px]",style:{color:"var(--text-tertiary)"},children:"No eval cases found"})})}function uN(){const{state:t,dispatch:a}=nr(),{plugin:s,skill:i}=t,{state:c}=cr(),u=c.skills.find(F=>F.plugin===s&&F.skill===i),d=(u==null?void 0:u.resolvedVersion)??(u==null?void 0:u.version)??null,[f,x]=m.useState("timeline"),[h,y]=m.useState(""),[v,b]=m.useState(""),[S,C]=m.useState(!1),[E,w]=m.useState([]),[N,T]=m.useState(null),[A,I]=m.useState(!1),[L,H]=m.useState(null),[k,O]=m.useState(!1),z=`history/${s}/${i}?model=${h}&type=${v}`,_=m.useCallback(()=>ke.getHistory(s,i,{model:h||void 0,type:v||void 0}),[s,i,h,v]),{data:$,loading:q}=qa(z,_),K=$??[];m.useEffect(()=>{!$||$.length<2||ke.compareRuns(s,i,$[0].timestamp,$[1].timestamp).then(F=>{const te=F.regressions.filter(V=>V.change==="regression");a({type:"SET_REGRESSIONS",regressions:te})}).catch(()=>{})},[$,s,i,a]);const Q=m.useCallback(()=>Bn(z),[z]);Xo("history:written",Q);const U=m.useCallback(async F=>{if(S){w(te=>te.includes(F)?te.filter(V=>V!==F):te.length>=2?[te[1],F]:[...te,F]);return}O(!0);try{const te=await ke.getHistoryEntry(s,i,F);H(te)}catch{}finally{O(!1)}},[s,i,S]),M=m.useCallback(async()=>{if(E.length===2){I(!0);try{const F=await ke.compareRuns(s,i,E[0],E[1]);T(F)}catch{}finally{I(!1)}}},[s,i,E]),B=[...new Set(K.map(F=>F.model))];return q?r.jsxs("div",{className:"p-5",children:[r.jsx("div",{className:"skeleton h-5 w-32 mb-4"}),r.jsx("div",{className:"skeleton h-48 rounded-xl mb-4"}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"skeleton h-12 rounded-lg"}),r.jsx("div",{className:"skeleton h-12 rounded-lg"})]})]}):r.jsxs("div",{className:"p-5",children:[r.jsx("div",{className:"flex items-center gap-1 mb-4",children:["timeline","per-eval","statistics"].map(F=>r.jsx("button",{onClick:()=>x(F),className:"px-4 py-2 rounded-lg text-[12px] font-medium transition-all duration-150",style:{background:f===F?"var(--accent-muted)":"transparent",color:f===F?"var(--accent)":"var(--text-tertiary)"},children:F==="timeline"?"Timeline":F==="per-eval"?"Per Eval":"Statistics"},F))}),f==="timeline"&&r.jsxs("div",{children:[K.length>0&&r.jsx("div",{className:"mb-5 rounded-xl p-4",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:r.jsx(tN,{entries:K,onPointClick:F=>U(F.timestamp)})}),r.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[r.jsxs("select",{value:h,onChange:F=>y(F.target.value),className:"input-field text-[12px]",style:{width:150},children:[r.jsx("option",{value:"",children:"All Models"}),B.map(F=>r.jsx("option",{value:F,children:F},F))]}),r.jsxs("select",{value:v,onChange:F=>b(F.target.value),className:"input-field text-[12px]",style:{width:150},children:[r.jsx("option",{value:"",children:"All Types"}),r.jsx("option",{value:"benchmark",children:"Benchmark"}),r.jsx("option",{value:"comparison",children:"Comparison"}),r.jsx("option",{value:"baseline",children:"Baseline"}),r.jsx("option",{value:"model-compare",children:"Model Compare"}),r.jsx("option",{value:"improve",children:"AI Improve"}),r.jsx("option",{value:"instruct",children:"AI Edit"}),r.jsx("option",{value:"ai-generate",children:"AI Generate"}),r.jsx("option",{value:"eval-generate",children:"Eval Generate"})]}),r.jsx("div",{className:"flex-1"}),r.jsx("button",{onClick:()=>{C(!S),w([]),T(null)},className:`btn text-[12px] ${S?"btn-primary":"btn-secondary"}`,children:S?"Exit Compare":"Compare Runs"}),S&&E.length===2&&r.jsx("button",{onClick:M,disabled:A,className:"btn btn-primary text-[12px]",children:A?"Comparing...":"Compare"})]}),r.jsx("div",{className:"space-y-2",children:K.length===0?r.jsx("div",{className:"text-center py-8 text-[13px]",style:{color:"var(--text-tertiary)"},children:"No benchmark runs yet"}):K.map(F=>{const te=E.includes(F.timestamp);return r.jsx("button",{onClick:()=>U(F.timestamp),className:"w-full text-left rounded-lg px-4 py-3 transition-all duration-150",style:{background:te?"var(--accent-muted)":"var(--surface-1)",border:te?"1px solid var(--accent)":"1px solid var(--border-subtle)"},onMouseEnter:V=>{te||(V.currentTarget.style.borderColor="var(--border-hover)")},onMouseLeave:V=>{te||(V.currentTarget.style.borderColor="var(--border-subtle)")},children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[S&&r.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:te?"var(--accent)":"var(--border-default)",background:te?"var(--accent)":"transparent"},children:te&&r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})})}),r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--text-primary)"},children:new Date(F.timestamp).toLocaleString()}),r.jsx("span",{className:"pill text-[9px]",style:{background:F.type==="comparison"?"var(--purple-muted)":F.type==="baseline"?"var(--surface-3)":F.type==="model-compare"?"var(--accent-muted)":F.type==="improve"||F.type==="instruct"?"var(--purple-muted)":F.type==="ai-generate"?"var(--green-muted)":F.type==="eval-generate"?"var(--orange-muted)":"var(--accent-muted)",color:F.type==="comparison"?"var(--purple)":F.type==="baseline"?"var(--text-tertiary)":F.type==="model-compare"?"var(--accent)":F.type==="improve"||F.type==="instruct"?"var(--purple)":F.type==="ai-generate"?"var(--green)":F.type==="eval-generate"?"var(--orange)":"var(--accent)"},children:F.type==="model-compare"?"model compare":F.type==="improve"?"ai improve":F.type==="instruct"?"ai edit":F.type==="ai-generate"?"ai generate":F.type==="eval-generate"?"eval generate":F.type})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(ui,{version:d,size:"sm","data-testid":"history-row-version"}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:F.model}),F.totalCost!=null&&F.totalCost>0&&r.jsx("span",{className:"text-[11px] font-mono",style:{color:"var(--text-tertiary)"},children:$n(F.totalCost)}),r.jsxs("span",{className:"text-[12px] font-semibold",style:{color:F.passRate>=.8?"var(--green)":F.passRate>=.5?"var(--yellow)":"var(--red)"},children:[Math.round(F.passRate*100),"%"]})]})]})},F.timestamp)})}),N&&r.jsx(dN,{result:N}),L&&!S&&r.jsx(fN,{run:L,onClose:()=>H(null)})]}),f==="per-eval"&&r.jsx(cN,{plugin:s,skill:i}),f==="statistics"&&r.jsx(oN,{plugin:s,skill:i})]})}function dN({result:t}){const a=t.regressions.filter(i=>i.change==="regression"),s=t.regressions.filter(i=>i.change==="improvement");return r.jsxs("div",{className:"mt-4 rounded-xl p-4",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:["Comparison: ",new Date(t.runA.timestamp).toLocaleDateString()," vs ",new Date(t.runB.timestamp).toLocaleDateString()]}),(t.runA.totalCost!=null||t.runB.totalCost!=null)&&r.jsxs("div",{className:"flex items-center gap-4 mb-3 text-[11px]",style:{color:"var(--text-secondary)"},children:[r.jsxs("span",{children:["Run A cost: ",$n(t.runA.totalCost??null)]}),r.jsxs("span",{children:["Run B cost: ",$n(t.runB.totalCost??null)]}),t.runA.totalCost!=null&&t.runB.totalCost!=null&&r.jsxs("span",{style:{color:t.runB.totalCost<=t.runA.totalCost?"var(--green)":"var(--red)"},children:["Delta: ",$n(t.runB.totalCost-t.runA.totalCost)]})]}),a.length>0&&r.jsxs("div",{className:"mb-3",children:[r.jsxs("div",{className:"text-[11px] font-semibold uppercase tracking-wider mb-1",style:{color:"var(--red)"},children:["Regressions (",a.length,")"]}),a.map(i=>r.jsxs("div",{className:"text-[12px] py-1",style:{color:"var(--text-secondary)"},children:["#",i.evalId," ",i.evalName,": ",r.jsx("span",{style:{color:"var(--red)"},children:i.assertionId})," (was passing, now failing)"]},`${i.evalId}-${i.assertionId}`))]}),s.length>0&&r.jsxs("div",{className:"mb-3",children:[r.jsxs("div",{className:"text-[11px] font-semibold uppercase tracking-wider mb-1",style:{color:"var(--green)"},children:["Improvements (",s.length,")"]}),s.map(i=>r.jsxs("div",{className:"text-[12px] py-1",style:{color:"var(--text-secondary)"},children:["#",i.evalId," ",i.evalName,": ",r.jsx("span",{style:{color:"var(--green)"},children:i.assertionId})," (was failing, now passing)"]},`${i.evalId}-${i.assertionId}`))]}),r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider mb-2 mt-3",style:{color:"var(--text-tertiary)"},children:"Case Diffs"}),r.jsx("div",{className:"rounded-lg overflow-hidden",style:{border:"1px solid var(--border-subtle)"},children:r.jsxs("table",{className:"w-full text-[12px]",children:[r.jsx("thead",{children:r.jsxs("tr",{style:{background:"var(--surface-2)"},children:[r.jsx("th",{className:"text-left px-3 py-2 font-medium",style:{color:"var(--text-tertiary)"},children:"Case"}),r.jsx("th",{className:"text-right px-3 py-2 font-medium",style:{color:"var(--text-tertiary)"},children:"Run A"}),r.jsx("th",{className:"text-right px-3 py-2 font-medium",style:{color:"var(--text-tertiary)"},children:"Run B"})]})}),r.jsx("tbody",{children:t.caseDiffs.map(i=>r.jsxs("tr",{style:{borderTop:"1px solid var(--border-subtle)"},children:[r.jsxs("td",{className:"px-3 py-2",style:{color:"var(--text-secondary)"},children:["#",i.eval_id," ",i.eval_name]}),r.jsx("td",{className:"text-right px-3 py-2",style:{color:i.passRateA!=null?i.passRateA>=.8?"var(--green)":i.passRateA>=.5?"var(--yellow)":"var(--red)":"var(--text-tertiary)"},children:i.passRateA!=null?`${Math.round(i.passRateA*100)}%`:i.statusA}),r.jsx("td",{className:"text-right px-3 py-2",style:{color:i.passRateB!=null?i.passRateB>=.8?"var(--green)":i.passRateB>=.5?"var(--yellow)":"var(--red)":"var(--text-tertiary)"},children:i.passRateB!=null?`${Math.round(i.passRateB*100)}%`:i.statusB})]},i.eval_id))})]})})]})}function fN({run:t,onClose:a}){return(t.type==="improve"||t.type==="instruct")&&t.improve?r.jsx(pN,{run:t,onClose:a}):r.jsxs("div",{className:"mt-4 rounded-xl p-4",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsxs("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:["Run: ",new Date(t.timestamp).toLocaleString()]}),r.jsx("button",{onClick:a,className:"btn btn-ghost text-[11px]",children:"Close"})]}),r.jsxs("div",{className:"text-[11px] mb-3",style:{color:"var(--text-tertiary)"},children:["Model: ",t.model," | Cases: ",t.cases.length," | Pass Rate: ",t.overall_pass_rate!=null?`${Math.round(t.overall_pass_rate*100)}%`:"--",t.totalCost!=null&&t.totalCost>0&&` | Cost: ${$n(t.totalCost)}`]}),r.jsx("div",{className:"space-y-2",children:t.cases.map(s=>r.jsx("div",{className:"rounded-lg px-3 py-2",style:{background:"var(--surface-2)"},children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-[12px]",style:{color:"var(--text-secondary)"},children:["#",s.eval_id," ",s.eval_name]}),r.jsxs("div",{className:"flex items-center gap-2",children:[s.cost!=null&&s.cost>0&&r.jsx("span",{className:"text-[10px] font-mono",style:{color:"var(--text-tertiary)"},children:$n(s.cost)}),r.jsx("span",{className:"text-[11px] font-semibold",style:{color:s.status==="pass"?"var(--green)":"var(--red)"},children:s.pass_rate!=null?`${Math.round(s.pass_rate*100)}%`:s.status})]})]})},s.eval_id))})]})}function pN({run:t,onClose:a}){var u;const s=m.useMemo(()=>t.improve?dc(t.improve.original,t.improve.improved):[],[t.improve]),i=m.useMemo(()=>{const d=s.filter(x=>x.type==="added").length,f=s.filter(x=>x.type==="removed").length;return{added:d,removed:f}},[s]),c=m.useMemo(()=>{let d=0,f=0;return s.map(x=>x.type==="removed"?(d++,{...x,origNum:d,newNum:null}):x.type==="added"?(f++,{...x,origNum:null,newNum:f}):(d++,f++,{...x,origNum:d,newNum:f}))},[s]);return r.jsxs("div",{className:"mt-4 rounded-xl overflow-hidden animate-fade-in",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between px-5 py-3.5",style:{background:"var(--surface-2)",borderBottom:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"w-8 h-8 rounded-lg flex items-center justify-center",style:{background:"var(--purple-muted)"},children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--purple)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),r.jsx("path",{d:"M2 17l10 5 10-5"}),r.jsx("path",{d:"M2 12l10 5 10-5"})]})}),r.jsxs("div",{children:[r.jsx("div",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:"SKILL.md Changes"}),r.jsxs("div",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:[new Date(t.timestamp).toLocaleString()," · ",t.model]})]})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"flex items-center gap-2 text-[11px]",children:[r.jsxs("span",{style:{color:"var(--green)"},children:["+",i.added]}),r.jsxs("span",{style:{color:"var(--red)"},children:["-",i.removed]})]}),r.jsx("button",{onClick:a,className:"w-7 h-7 rounded-lg flex items-center justify-center transition-colors duration-150",style:{color:"var(--text-tertiary)"},onMouseEnter:d=>{d.currentTarget.style.background="var(--surface-3)"},onMouseLeave:d=>{d.currentTarget.style.background="transparent"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]}),((u=t.improve)==null?void 0:u.reasoning)&&r.jsxs("div",{className:"mx-4 mt-4 px-4 py-3 rounded-lg text-[12px]",style:{background:"var(--purple-muted)",border:"1px solid var(--purple-muted)",color:"var(--text-secondary)"},children:[r.jsx("span",{className:"font-semibold",style:{color:"var(--purple)"},children:"AI Reasoning: "}),t.improve.reasoning]}),r.jsx("div",{className:"mx-4 my-4 rounded-lg overflow-hidden",style:{border:"1px solid var(--border-subtle)",maxHeight:480,overflowY:"auto"},children:r.jsx("table",{className:"w-full",style:{borderCollapse:"collapse",fontFamily:"var(--font-mono, monospace)"},children:r.jsx("tbody",{children:c.map((d,f)=>r.jsxs("tr",{style:{background:d.type==="added"?"var(--green-muted)":d.type==="removed"?"var(--red-muted)":"transparent"},children:[r.jsx("td",{className:"text-right select-none px-2",style:{width:40,fontSize:10,color:d.type==="removed"?"var(--red)":"var(--text-tertiary)",opacity:d.origNum?.6:.2,borderRight:"1px solid var(--border-subtle)"},children:d.origNum??""}),r.jsx("td",{className:"text-right select-none px-2",style:{width:40,fontSize:10,color:d.type==="added"?"var(--green)":"var(--text-tertiary)",opacity:d.newNum?.6:.2,borderRight:"1px solid var(--border-subtle)"},children:d.newNum??""}),r.jsx("td",{className:"select-none text-center",style:{width:20,fontSize:11,fontWeight:700,color:d.type==="added"?"var(--green)":d.type==="removed"?"var(--red)":"transparent",borderRight:d.type==="added"?"2px solid var(--green)":d.type==="removed"?"2px solid var(--red)":"2px solid transparent"},children:d.type==="added"?"+":d.type==="removed"?"-":" "}),r.jsx("td",{className:"px-3 py-px whitespace-pre-wrap",style:{fontSize:11,lineHeight:1.6,color:d.type==="added"?"var(--green)":d.type==="removed"?"var(--red)":"var(--text-secondary)"},children:d.content||"​"})]},f))})})})]})}function lb({data:t}){if(t.length<2)return r.jsx("span",{style:{color:"var(--text-tertiary)",fontSize:10},children:"--"});const a=t.slice(-10),s=80,i=24,c=2,u=s-c*2,d=i-c*2,f=a.length,x=Math.min(...a),y=Math.max(...a)-x||1,v=a.map((C,E)=>{const w=c+E/(f-1)*u,N=c+d-(C-x)/y*d;return`${w.toFixed(1)},${N.toFixed(1)}`}),b=a[a.length-1],S=Ul(b);return r.jsxs("svg",{width:s,height:i,viewBox:`0 0 ${s} ${i}`,style:{display:"block"},children:[r.jsx("polyline",{points:v.join(" "),fill:"none",stroke:S,strokeWidth:1.5,strokeLinejoin:"round",strokeLinecap:"round"}),(()=>{const[C,E]=v[v.length-1].split(",");return r.jsx("circle",{cx:C,cy:E,r:2.5,fill:S})})()]})}function mN(){return r.jsxs("span",{className:"pill",style:{background:"var(--yellow-muted)",color:"var(--yellow)",fontSize:9,fontWeight:700,gap:3},children:[r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"var(--yellow)",stroke:"none",children:r.jsx("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})}),"Best Model"]})}function hN({pct:t}){const a=t>=10?"var(--green)":t>=0?"var(--yellow)":"var(--red)",s=t>=10?"var(--green-muted)":t>=0?"var(--yellow-muted)":"var(--red-muted)",i=t>=0?"+":"";return r.jsxs("span",{className:"pill",style:{background:s,color:a,fontSize:10,fontWeight:600},children:[i,t.toFixed(1),"%"]})}function xN({score:t,rating:a}){const s={excellent:{bg:"var(--green-muted)",fg:"var(--green)"},good:{bg:"var(--green-muted)",fg:"var(--green)"},marginal:{bg:"var(--yellow-muted)",fg:"var(--yellow)"},minimal:{bg:"var(--yellow-muted)",fg:"var(--yellow)"},harmful:{bg:"var(--red-muted)",fg:"var(--red)"}},i=s[a]??s.minimal,c=t>=0?"+":"";return r.jsxs("div",{className:"flex items-center gap-2 mt-3",children:[r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:"Skill Quality:"}),r.jsxs("span",{className:"pill",style:{background:i.bg,color:i.fg,fontSize:11,fontWeight:600},children:[c,t.toFixed(1),"% (",a.toUpperCase(),")"]})]})}function gN({warning:t}){return r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg mb-3",style:{background:"var(--yellow-muted)",border:"1px solid var(--yellow-muted)"},children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--yellow)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),r.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),r.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--yellow)"},children:t})]})}function vN({active:t,onChange:a,hasBaseline:s}){return r.jsxs("div",{className:"flex gap-1 p-0.5 rounded-lg",style:{background:"var(--surface-2)"},children:[r.jsx("button",{onClick:()=>a("rankings"),className:"px-3 py-1 rounded-md text-[11px] font-medium transition-all",style:{background:t==="rankings"?"var(--surface-3)":"transparent",color:t==="rankings"?"var(--text-primary)":"var(--text-tertiary)"},children:"Rankings"}),r.jsx("button",{onClick:()=>a("amplification"),disabled:!s,className:"px-3 py-1 rounded-md text-[11px] font-medium transition-all",style:{background:t==="amplification"?"var(--surface-3)":"transparent",color:s&&t==="amplification"?"var(--text-primary)":"var(--text-tertiary)",opacity:s?1:.5,cursor:s?"pointer":"not-allowed"},title:s?"View skill amplification data":"Run sweep with --baseline to see amplification data",children:"Skill Amplification"})]})}function yN(t){var i,c,u;if(t.length===0)return[];const a=new Map;for(const d of t)for(const f of d.models){if(f.status==="error")continue;const x=`${f.provider}/${f.model}`;a.has(x)||a.set(x,{provider:f.provider,passRates:[],lastRubric:null,lastDuration:0,lastCost:null,lastBaselinePassRate:void 0,lastSkillDelta:void 0,lastAmplificationPct:void 0,lastCompositeScore:void 0,hasBaseline:!1});const h=a.get(x);h.passRates.push(f.passRate.mean),h.lastRubric=((i=f.rubricScore)==null?void 0:i.mean)??null,h.lastDuration=f.duration.mean,h.lastCost=((c=f.cost)==null?void 0:c.total)??null,h.lastCompositeScore=f.compositeScore,f.baselinePassRate!=null&&(h.lastBaselinePassRate=f.baselinePassRate.mean,h.lastSkillDelta=(u=f.skillDelta)==null?void 0:u.mean,h.lastAmplificationPct=f.amplificationPct,h.hasBaseline=!0)}const s=[];for(const[d,f]of a){const[x,...h]=d.split("/");s.push({rank:0,model:h.join("/"),provider:x,passRate:f.passRates[f.passRates.length-1],rubricScore:f.lastRubric,duration:f.lastDuration,cost:f.lastCost,sparklineData:f.passRates,isBest:!1,baselinePassRate:f.lastBaselinePassRate,skillDelta:f.lastSkillDelta,amplificationPct:f.lastAmplificationPct,compositeScore:f.lastCompositeScore,hasBaseline:f.hasBaseline})}return s.sort((d,f)=>{const x=d.compositeScore??d.passRate;return(f.compositeScore??f.passRate)-x}),s.forEach((d,f)=>{d.rank=f+1}),s.length>0&&(s[0].isBest=!0),s}const sb=(t="left")=>({padding:"10px 12px",fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--text-tertiary)",textAlign:t,whiteSpace:"nowrap"});function bN({entries:t}){return r.jsx("div",{className:"glass-card",style:{overflow:"hidden"},children:r.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[r.jsx("thead",{children:r.jsx("tr",{style:{borderBottom:"1px solid var(--border-subtle)"},children:["#","Model","Pass Rate","Rubric","Duration","Cost","Trend"].map(a=>r.jsx("th",{style:sb(a==="#"?"center":"left"),children:a},a))})}),r.jsx("tbody",{children:t.map(a=>r.jsxs("tr",{style:{borderBottom:"1px solid var(--border-subtle)"},onMouseEnter:s=>{s.currentTarget.style.background="var(--surface-2)"},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[r.jsx("td",{style:{padding:"10px 12px",textAlign:"center",fontSize:12,fontWeight:600,color:"var(--text-tertiary)",width:40},children:a.rank}),r.jsx("td",{style:{padding:"10px 12px"},children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--text-primary)"},children:a.model}),r.jsx("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:a.provider}),a.isBest&&r.jsx(mN,{})]})}),r.jsx("td",{style:{padding:"10px 12px"},children:r.jsxs("span",{className:"pill",style:{background:a.passRate>=.7?"var(--green-muted)":a.passRate>=.4?"var(--yellow-muted)":"var(--red-muted)",color:Ul(a.passRate),fontSize:11,fontWeight:600},children:[Math.round(a.passRate*100),"%"]})}),r.jsx("td",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-secondary)"},children:a.rubricScore!=null?a.rubricScore.toFixed(1):"--"}),r.jsx("td",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-secondary)"},children:a.duration<1e3?`${Math.round(a.duration)}ms`:`${(a.duration/1e3).toFixed(1)}s`}),r.jsx("td",{style:{padding:"10px 12px",fontSize:12,color:"var(--text-secondary)"},children:a.cost!=null?`$${a.cost.toFixed(4)}`:"N/A"}),r.jsx("td",{style:{padding:"10px 12px"},children:r.jsx(lb,{data:a.sparklineData})})]},`${a.provider}/${a.model}`))})]})})}function jN({entries:t}){const a=[...t].filter(s=>s.hasBaseline).sort((s,i)=>(i.amplificationPct??0)-(s.amplificationPct??0));return a.length===0?r.jsx("div",{className:"flex items-center justify-center py-8",children:r.jsx("div",{className:"text-center",children:r.jsxs("div",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:["No baseline data available. Run sweep with ",r.jsx("code",{children:"--baseline"})," flag."]})})}):r.jsx("div",{className:"glass-card",style:{overflow:"hidden"},children:r.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[r.jsx("thead",{children:r.jsx("tr",{style:{borderBottom:"1px solid var(--border-subtle)"},children:["#","Model","With Skill","Without Skill","Delta","Amplification","Trend"].map(s=>r.jsx("th",{style:sb(s==="#"?"center":"left"),children:s},s))})}),r.jsx("tbody",{children:a.map((s,i)=>r.jsxs("tr",{style:{borderBottom:"1px solid var(--border-subtle)"},onMouseEnter:c=>{c.currentTarget.style.background="var(--surface-2)"},onMouseLeave:c=>{c.currentTarget.style.background="transparent"},children:[r.jsx("td",{style:{padding:"10px 12px",textAlign:"center",fontSize:12,fontWeight:600,color:"var(--text-tertiary)",width:40},children:i+1}),r.jsx("td",{style:{padding:"10px 12px"},children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--text-primary)"},children:s.model}),r.jsx("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:s.provider})]})}),r.jsx("td",{style:{padding:"10px 12px"},children:r.jsxs("span",{className:"pill",style:{background:s.passRate>=.7?"var(--green-muted)":s.passRate>=.4?"var(--yellow-muted)":"var(--red-muted)",color:Ul(s.passRate),fontSize:11,fontWeight:600},children:[Math.round(s.passRate*100),"%"]})}),r.jsx("td",{style:{padding:"10px 12px"},children:s.baselinePassRate!=null?r.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:[Math.round(s.baselinePassRate*100),"%"]}):"--"}),r.jsx("td",{style:{padding:"10px 12px"},children:s.skillDelta!=null?r.jsxs("span",{className:"text-[11px] font-medium",style:{color:s.skillDelta>=0?"var(--green)":"var(--red)"},children:[s.skillDelta>=0?"+":"",(s.skillDelta*100).toFixed(1),"pp"]}):"--"}),r.jsx("td",{style:{padding:"10px 12px"},children:s.amplificationPct!=null&&isFinite(s.amplificationPct)?r.jsx(hN,{pct:s.amplificationPct}):"--"}),r.jsx("td",{style:{padding:"10px 12px"},children:r.jsx(lb,{data:s.sparklineData})})]},`${s.provider}/${s.model}`))})]})})}function SN(){const{state:t}=nr(),{plugin:a,skill:s}=t,[i,c]=m.useState("rankings"),u=`leaderboard/${a}/${s}`,d=m.useCallback(()=>ke.getLeaderboard(a,s),[a,s]),{data:f,loading:x,error:h}=qa(u,d),y=(f==null?void 0:f.entries)??[],v=(h==null?void 0:h.message)??null;m.useEffect(()=>{c("rankings")},[a,s]);const b=m.useCallback(()=>Bn(u),[u]);Xo("leaderboard:updated",b);const S=m.useMemo(()=>yN(y),[y]),C=S.some(N=>N.hasBaseline),E=y[0],w=E==null?void 0:E.judgeBiasWarning;return x?r.jsx("div",{className:"flex items-center justify-center h-full",children:r.jsx("div",{className:"spinner spinner-lg"})}):v?r.jsx("div",{className:"flex items-center justify-center h-full px-8",children:r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"text-[14px] font-medium mb-1",style:{color:"var(--red)"},children:"Failed to load leaderboard"}),r.jsx("div",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:v})]})}):S.length===0?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 px-8",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center",style:{background:"var(--accent-muted)"},children:r.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M18 20V10"}),r.jsx("path",{d:"M12 20V4"}),r.jsx("path",{d:"M6 20v-6"})]})}),r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"text-[14px] font-medium mb-1",style:{color:"var(--text-primary)"},children:"No sweep results yet"}),r.jsx("div",{className:"text-[12px] mb-3",style:{color:"var(--text-tertiary)"},children:"Run your first model sweep to compare performance across models:"}),r.jsx("div",{className:"text-[11px] font-mono px-4 py-3 rounded-lg text-left",style:{background:"var(--surface-2)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)"},children:'vskill eval sweep --models "anthropic/claude-sonnet-4,openrouter/meta-llama/llama-3.1-70b" --judge "anthropic/claude-sonnet-4"'}),r.jsxs("div",{className:"text-[11px] mt-2",style:{color:"var(--text-tertiary)"},children:["Add ",r.jsx("code",{children:"--baseline"})," to measure skill amplification per model."]})]})]}):r.jsxs("div",{className:"p-5 animate-fade-in",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("div",{className:"text-[15px] font-semibold",style:{color:"var(--text-primary)"},children:"Model Leaderboard"}),r.jsx(vN,{active:i,onChange:c,hasBaseline:C})]}),r.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[y.length," sweep",y.length!==1?"s":""," · ",S.length," model",S.length!==1?"s":""]})]}),w&&r.jsx(gN,{warning:w}),i==="rankings"?r.jsx(bN,{entries:S}):r.jsx(jN,{entries:S}),i==="amplification"&&(E==null?void 0:E.skillQualityScore)!=null&&(E==null?void 0:E.skillQualityRating)&&r.jsx(xN,{score:E.skillQualityScore,rating:E.skillQualityRating})]})}function kN(t){if(!t)return[];const a=t.split(`
105
- `),s=[];for(const i of a)if(!(i.startsWith("--- ")||i.startsWith("+++ "))){if(i.startsWith("@@")){s.push({type:"header",content:i});continue}if(i.startsWith("+")){s.push({type:"add",content:i.slice(1)});continue}if(i.startsWith("-")){s.push({type:"remove",content:i.slice(1)});continue}(i.startsWith(" ")||i===""&&s.length>0)&&s.push({type:"context",content:i.startsWith(" ")?i.slice(1):""})}return s}function Kf({contentDiff:t,fromLabel:a,toLabel:s,diffSummary:i,maxHeight:c=480,collapsible:u=!1,renderContext:d="inline",onRetry:f}){const[x,h]=m.useState(u),[y,v]=m.useState("unified"),b=m.useRef(null),S=m.useRef(null),C=m.useMemo(()=>kN(t),[t]),E=m.useMemo(()=>{const L=C.filter(k=>k.type==="add").length,H=C.filter(k=>k.type==="remove").length;return{added:L,removed:H}},[C]),w=m.useMemo(()=>{let L=0,H=0;return C.filter(k=>k.type!=="header").map(k=>k.type==="remove"?(L++,{...k,origNum:L,newNum:null}):k.type==="add"?(H++,{...k,origNum:null,newNum:H}):(L++,H++,{...k,origNum:L,newNum:H}))},[C]),N=m.useMemo(()=>{const L=[],H=[];for(const k of w)if(k.type==="remove")L.push(k);else if(k.type==="add")H.push(k);else{for(;L.length<H.length;)L.push({type:"context",content:"",origNum:null,newNum:null});for(;H.length<L.length;)H.push({type:"context",content:"",origNum:null,newNum:null});L.push(k),H.push(k)}for(;L.length<H.length;)L.push({type:"context",content:"",origNum:null,newNum:null});for(;H.length<L.length;)H.push({type:"context",content:"",origNum:null,newNum:null});return{left:L,right:H}},[w]),T=m.useCallback(L=>{const H=L==="left"?b.current:S.current,k=L==="left"?S.current:b.current;H&&k&&(k.scrollTop=H.scrollTop)},[]);if(!t||C.length===0)return r.jsxs("div",{className:"rounded-lg p-6 text-center",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsx("div",{className:"text-[13px] mb-2",style:{color:"var(--text-tertiary)"},children:"Unable to load diff. Try again."}),f&&r.jsx("button",{onClick:f,className:"btn btn-secondary text-[12px]",children:"Retry"})]});const A=d==="modal"?"fixed inset-0 z-50 flex items-center justify-center bg-black/50":"",I=r.jsxs("div",{className:"rounded-xl overflow-hidden animate-fade-in",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between px-5 py-3",style:{background:"var(--surface-2)",borderBottom:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:[a," → ",s]}),r.jsxs("div",{className:"flex items-center gap-2 text-[11px]",children:[r.jsxs("span",{style:{color:"var(--green)"},children:["+",E.added]}),r.jsxs("span",{style:{color:"var(--red)"},children:["-",E.removed]})]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{onClick:()=>v(y==="unified"?"side-by-side":"unified"),className:"btn btn-ghost text-[11px]",children:y==="unified"?"Side-by-side":"Unified"}),u&&r.jsx("button",{onClick:()=>h(!x),className:"btn btn-ghost text-[11px]",children:x?"Expand":"Collapse"})]})]}),i&&r.jsx("div",{className:"mx-4 mt-3 px-4 py-2 rounded-lg text-[12px]",style:{background:"var(--accent-muted)",color:"var(--text-secondary)"},children:i}),!x&&(y==="unified"?r.jsx("div",{className:"mx-4 my-4 rounded-lg overflow-hidden",style:{border:"1px solid var(--border-subtle)",maxHeight:c,overflowY:"auto"},children:r.jsx("table",{className:"w-full",style:{borderCollapse:"collapse",fontFamily:"var(--font-mono, monospace)"},children:r.jsx("tbody",{children:w.map((L,H)=>r.jsxs("tr",{style:{background:L.type==="add"?"rgba(34,197,94,0.08)":L.type==="remove"?"rgba(239,68,68,0.08)":"transparent"},children:[r.jsx("td",{className:"text-right select-none px-2",style:{width:40,fontSize:10,color:L.type==="remove"?"rgba(239,68,68,0.5)":"var(--text-tertiary)",opacity:L.origNum?.6:.2,borderRight:"1px solid var(--border-subtle)"},children:L.origNum??""}),r.jsx("td",{className:"text-right select-none px-2",style:{width:40,fontSize:10,color:L.type==="add"?"rgba(34,197,94,0.5)":"var(--text-tertiary)",opacity:L.newNum?.6:.2,borderRight:"1px solid var(--border-subtle)"},children:L.newNum??""}),r.jsx("td",{className:"select-none text-center",style:{width:20,fontSize:11,fontWeight:700,color:L.type==="add"?"var(--green)":L.type==="remove"?"var(--red)":"transparent",borderRight:L.type==="add"?"2px solid var(--green)":L.type==="remove"?"2px solid var(--red)":"2px solid transparent"},children:L.type==="add"?"+":L.type==="remove"?"-":" "}),r.jsx("td",{className:"px-3 py-px whitespace-pre-wrap",style:{fontSize:11,lineHeight:1.6,color:L.type==="add"?"var(--green)":L.type==="remove"?"var(--red)":"var(--text-secondary)"},children:L.content||"​"})]},H))})})}):r.jsxs("div",{className:"mx-4 my-4 grid grid-cols-2 gap-0 rounded-lg overflow-hidden",style:{border:"1px solid var(--border-subtle)"},children:[r.jsx("div",{ref:b,style:{maxHeight:c,overflowY:"auto",borderRight:"1px solid var(--border-subtle)"},onScroll:()=>T("left"),children:r.jsx("table",{className:"w-full",style:{borderCollapse:"collapse",fontFamily:"var(--font-mono, monospace)"},children:r.jsx("tbody",{children:N.left.map((L,H)=>r.jsxs("tr",{style:{background:L.type==="remove"?"rgba(239,68,68,0.08)":"transparent"},children:[r.jsx("td",{className:"text-right select-none px-2",style:{width:35,fontSize:10,color:"var(--text-tertiary)",opacity:.6,borderRight:"1px solid var(--border-subtle)"},children:L.origNum??""}),r.jsx("td",{className:"px-3 py-px whitespace-pre-wrap",style:{fontSize:11,lineHeight:1.6,color:L.type==="remove"?"var(--red)":"var(--text-secondary)"},children:L.content||"​"})]},H))})})}),r.jsx("div",{ref:S,style:{maxHeight:c,overflowY:"auto"},onScroll:()=>T("right"),children:r.jsx("table",{className:"w-full",style:{borderCollapse:"collapse",fontFamily:"var(--font-mono, monospace)"},children:r.jsx("tbody",{children:N.right.map((L,H)=>r.jsxs("tr",{style:{background:L.type==="add"?"rgba(34,197,94,0.08)":"transparent"},children:[r.jsx("td",{className:"text-right select-none px-2",style:{width:35,fontSize:10,color:"var(--text-tertiary)",opacity:.6,borderRight:"1px solid var(--border-subtle)"},children:L.newNum??""}),r.jsx("td",{className:"px-3 py-px whitespace-pre-wrap",style:{fontSize:11,lineHeight:1.6,color:L.type==="add"?"var(--green)":"var(--text-secondary)"},children:L.content||"​"})]},H))})})})]}))]});return d==="modal"?r.jsx("div",{className:A,children:r.jsx("div",{style:{width:"80%",maxWidth:900},children:I})}):I}const Zd="https://verified-skill.com/submit",wN=/^https:\/\/github\.com\/[^/?#@:]+\/[^/?#@:]+(?:[/?#].*)?$/;function CN(t){if(!t)return Zd;const a=t.trim();return!a||!wN.test(a)?Zd:`${Zd}?repo=${encodeURIComponent(a)}`}const EN={sm:{icon:12,fontSize:"0.625rem",gap:"0.25rem",px:"0.375rem",py:"0.125rem",height:"18px",radius:"3px"},md:{icon:14,fontSize:"0.6875rem",gap:"0.3rem",px:"0.5rem",py:"0.15rem",height:"22px",radius:"4px"},lg:{icon:16,fontSize:"0.75rem",gap:"0.375rem",px:"0.625rem",py:"0.2rem",height:"26px",radius:"4px"}};function NN({size:t}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[r.jsx("path",{d:"M10 1L3 4.5V9.5C3 13.64 5.99 17.52 10 18.5C14.01 17.52 17 13.64 17 9.5V4.5L10 1Z",fill:"currentColor",fillOpacity:"0.15",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),r.jsx("path",{d:"M7.5 10.5L9.5 12.5L13 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function TN({size:t}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[r.jsx("path",{d:"M10 1L11.9 4.1L15.5 3.5L14.2 7L17 9.5L14.2 12L15.5 15.5L11.9 14.9L10 18L8.1 14.9L4.5 15.5L5.8 12L3 9.5L5.8 7L4.5 3.5L8.1 4.1L10 1Z",fill:"currentColor",fillOpacity:"0.15",stroke:"currentColor",strokeWidth:"1.1",strokeLinejoin:"round"}),r.jsx("path",{d:"M10 6.5L10.9 8.6L13.1 8.8L11.4 10.3L11.9 12.5L10 11.3L8.1 12.5L8.6 10.3L6.9 8.8L9.1 8.6L10 6.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.4",strokeLinejoin:"round"})]})}const uv={VERIFIED:{color:"var(--tier-verified)",bg:"var(--tier-verified-bg)",border:"var(--tier-verified-border)"},CERTIFIED:{color:"var(--tier-certified)",bg:"var(--tier-certified-bg)",border:"var(--tier-certified-border)"},TAINTED:{color:"var(--tier-tainted)",bg:"var(--tier-tainted-bg)",border:"var(--tier-tainted-border)"}},RN={VERIFIED:"Security-Scanned",CERTIFIED:"Trusted Publisher",TAINTED:"Tainted"};function ib(t){return RN[t]??t}function AN({size:t}){return r.jsxs("svg",{width:t,height:t,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[r.jsx("path",{d:"M10 2L1.5 17.5H18.5L10 2Z",fill:"currentColor",fillOpacity:"0.15",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),r.jsx("path",{d:"M10 8V12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r.jsx("circle",{cx:"10",cy:"14.5",r:"1",fill:"currentColor"})]})}function LN({tier:t,size:a}){return t==="TAINTED"?r.jsx(AN,{size:a}):t==="CERTIFIED"?r.jsx(TN,{size:a}):r.jsx(NN,{size:a})}function t4({tier:t,size:a="md",isTainted:s}){const i=EN[a],c=s?"TAINTED":t,u=uv[c]??uv.VERIFIED;return r.jsxs("span",{"data-testid":"tier-badge","data-tier":c,style:{display:"inline-flex",alignItems:"center",gap:i.gap,padding:`${i.py} ${i.px}`,height:i.height,borderRadius:i.radius,fontFamily:"var(--font-geist-mono)",fontSize:i.fontSize,fontWeight:600,letterSpacing:"0.03em",whiteSpace:"nowrap",color:u.color,backgroundColor:u.bg,border:`1px solid ${u.border}`,lineHeight:1},children:[r.jsx(LN,{tier:c,size:i.icon}),ib(c)]})}const dv={CERTIFIED:{bg:"var(--yellow-muted)",text:"var(--yellow)"},VERIFIED:{bg:"var(--accent-muted)",text:"var(--accent)"},COMMUNITY:{bg:"var(--surface-3)",text:"var(--text-tertiary)"}};function MN(t,a){return t?t.length>a?t.slice(0,a)+"…":t:""}function zN(t){if(!t)return"";const a=t.trim();if(!a)return"";const s=a.toLowerCase();return s==="0 files"||s==="no files"||s==="no file changes"?"Metadata-only release — no file changes":a}function DN(){const{state:t}=nr(),{plugin:a,skill:s}=t,i=cr(),{onSkillUpdated:c,updateCount:u}=i,d=m.useMemo(()=>i.state.skills.find(M=>M.plugin===a&&M.skill===s)??null,[i.state.skills,a,s]),f=`versions/${a}/${s}`,x=m.useCallback(()=>ke.getSkillVersions(a,s),[a,s]),{data:h,loading:y}=qa(f,x),[v,b]=m.useState(null),[S,C]=m.useState(null),[E,w]=m.useState(null),[N,T]=m.useState(!1),[A,I]=m.useState("idle"),[L,H]=m.useState(null),k=m.useRef(null),O=m.useRef(null),z=m.useMemo(()=>(h==null?void 0:h.find(M=>M.isInstalled))??null,[h]),_=m.useMemo(()=>(h==null?void 0:h[0])??null,[h]),$=z&&_&&z.version!==_.version,q=m.useCallback(M=>{v?!S&&M!==v?C(M):(b(M),C(null),w(null)):(b(M),w(null))},[v,S]),K=m.useCallback(async(M,B)=>{T(!0);try{const F=await ke.getVersionDiff(a,s,M,B);w(F)}catch{w(null)}finally{T(!1)}},[a,s]);m.useEffect(()=>{if(v&&S){const M=h||[],B=M.findIndex(D=>D.version===v),F=M.findIndex(D=>D.version===S),[te,V]=B>F?[v,S]:[S,v];K(te,V)}},[v,S,h,K]);const Q=m.useCallback(()=>{!z||!_||(b(z.version),C(_.version))},[z,_]),U=m.useCallback(async()=>{I("updating"),H(null);const M=new AbortController;k.current=M;try{const B=await ke.postSkillUpdate(a,s,M.signal);if(B.ok)I("done"),c(a,s);else{const F=`Update failed (HTTP ${B.status}): ${B.body||"no response body"}`;I("error"),H(F)}}catch(B){if(B instanceof DOMException&&B.name==="AbortError")return;const F=B instanceof Error?B.message:"Network error";I("error"),H(F)}finally{k.current===M&&(k.current=null)}},[a,s,c]);if(m.useEffect(()=>()=>{var M;(M=k.current)==null||M.abort(),k.current=null},[]),y)return r.jsxs("div",{className:"p-5",children:[r.jsx("div",{className:"skeleton h-5 w-40 mb-4"}),r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"skeleton h-14 rounded-lg"}),r.jsx("div",{className:"skeleton h-14 rounded-lg"}),r.jsx("div",{className:"skeleton h-14 rounded-lg"})]})]});if(!h||h.length===0){if((d==null?void 0:d.origin)==="source"){const B=CN((d==null?void 0:d.homepage)??null);return r.jsxs("div",{className:"flex flex-col items-center justify-center h-full py-16 px-8","data-testid":"versions-empty-state-local",children:[r.jsx("div",{className:"text-[14px] font-semibold mb-2",style:{color:"var(--text-primary)"},children:"No published versions yet"}),r.jsx("div",{className:"text-[13px] text-center mb-5 max-w-md",style:{color:"var(--text-tertiary)",lineHeight:1.5},children:"This skill is local-only — the version history shown here is sourced from verified-skill.com. Submit your skill to start tracking versions and share it with others."}),r.jsx("a",{href:B,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary text-[12px]","data-testid":"versions-empty-state-cta",children:"Submit on verified-skill.com"})]})}return d!=null&&d.version?r.jsxs("div",{className:"p-5",children:[r.jsx("div",{className:"text-[14px] font-semibold mb-4",style:{color:"var(--text-primary)"},children:"Version History"}),r.jsxs("div",{className:"relative",children:[r.jsx("div",{className:"absolute left-3 top-0 bottom-0",style:{width:2,background:"var(--border-subtle)"}}),r.jsxs("div",{"data-testid":"version-row-local",className:"w-full text-left pl-8 pr-4 py-3 relative rounded-lg",style:{background:"transparent",border:"1px solid transparent"},children:[r.jsx("span",{className:"absolute left-1.5 top-4 rounded-full",style:{width:10,height:10,background:"var(--accent)",border:"2px solid var(--accent)"}}),r.jsx("div",{className:"flex items-center justify-between",children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:d.version}),r.jsx("span",{className:"text-[9px] font-medium px-1.5 py-0.5 rounded-full",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:"LOCAL"}),r.jsx("span",{className:"text-[9px] font-medium px-1.5 py-0.5 rounded-full",style:{background:"var(--accent-muted)",color:"var(--accent)"},children:"installed"})]})}),r.jsx("div",{className:"text-[11px] mt-1",style:{color:"var(--text-tertiary)"},children:"Local-only — this skill is not registered on verified-skill.com, so no upstream history is available."})]})]})]}):r.jsx("div",{className:"flex flex-col items-center justify-center h-full py-16","data-testid":"versions-empty-state-installed",children:r.jsx("div",{className:"text-[13px]",style:{color:"var(--text-tertiary)"},children:"No version history available"})})}return r.jsxs("div",{className:"p-5",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsx("div",{className:"text-[14px] font-semibold",style:{color:"var(--text-primary)"},children:"Version History"}),r.jsxs("div",{className:"flex items-center gap-2",children:[$&&r.jsx("button",{onClick:Q,className:"btn btn-secondary text-[11px]",children:"View changes since installed"}),$&&A!=="done"&&(A==="error"?r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"text-[11px]",style:{color:"var(--red)"},children:L||"Update failed"}),r.jsx("button",{onClick:U,className:"btn btn-secondary text-[11px]",children:"Retry"})]}):r.jsx("button",{onClick:U,disabled:A!=="idle",className:"btn btn-primary text-[11px]",children:A==="idle"?`Update to ${_==null?void 0:_.version}`:A==="updating"?"Starting update...":A==="scanning"?"Scanning...":"Installing..."})),u>1&&r.jsxs("button",{onClick:()=>{window.location.hash="#/updates"},className:"text-[11px] hover:underline",style:{color:"var(--text-tertiary)",background:"transparent",border:"none",cursor:"pointer"},children:["Manage all updates (",u,")"]})]})]}),v&&!S&&r.jsxs("div",{className:"text-[11px] mb-3 px-3 py-2 rounded-lg",style:{background:"var(--accent-muted)",color:"var(--accent)"},children:["Click another version to compare with ",v]}),r.jsxs("div",{className:"relative",children:[r.jsx("div",{className:"absolute left-3 top-0 bottom-0",style:{width:2,background:"var(--border-subtle)"}}),r.jsx("div",{className:"space-y-1",children:h.map(M=>{const B=dv[M.certTier]||dv.COMMUNITY,F=M.version===v||M.version===S,te=M.isInstalled;return r.jsxs("button",{onClick:()=>q(M.version),className:"w-full text-left pl-8 pr-4 py-3 relative rounded-lg transition-all duration-150",style:{background:F?"var(--accent-muted)":"transparent",border:F?"1px solid var(--accent)":"1px solid transparent",cursor:"pointer"},onMouseEnter:V=>{F||(V.currentTarget.style.background="var(--surface-1)")},onMouseLeave:V=>{F||(V.currentTarget.style.background="transparent")},children:[r.jsx("span",{className:"absolute left-1.5 top-4 rounded-full",style:{width:te?10:8,height:te?10:8,background:te?"var(--accent)":"var(--surface-3)",border:te?"2px solid var(--accent)":"2px solid var(--border-default)"}}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:M.version}),r.jsx("span",{className:"text-[9px] font-medium px-1.5 py-0.5 rounded-full",style:{background:B.bg,color:B.text},children:ib(M.certTier)}),te&&r.jsx("span",{className:"text-[9px] font-medium px-1.5 py-0.5 rounded-full",style:{background:"var(--accent-muted)",color:"var(--accent)"},children:"installed"})]}),r.jsx("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:new Date(M.createdAt).toLocaleDateString()})]}),(()=>{const V=zN(M.diffSummary);return V?r.jsx("div",{"data-testid":"version-row-diff-summary",className:"text-[11px] mt-1",style:{color:"var(--text-tertiary)"},children:MN(V,80)}):null})()]},M.version)})}),r.jsx("div",{ref:O,style:{height:1}})]}),N&&r.jsx("div",{className:"mt-4",children:r.jsx("div",{className:"skeleton h-48 rounded-xl"})}),E&&!N&&r.jsx("div",{className:"mt-4",children:r.jsx(Kf,{contentDiff:E.contentDiff,fromLabel:E.from,toLabel:E.to,diffSummary:E.diffSummary,renderContext:"inline",onRetry:()=>v&&S&&K(E.from,E.to)})})]})}function _N(t){return t==="timeline"||t==="models"||t==="versions"}function ON({view:t}){return t==="models"?r.jsx(SN,{}):t==="versions"?r.jsx(DN,{}):r.jsx(uN,{})}function BN(t){const a={prompt:t.prompt,provider:t.provider,model:t.model};return t.targetAgents&&t.targetAgents.length>0&&(a.targetAgents=t.targetAgents),a}function IN(t){var c;const a=t.userName.trim().length>0,s=t.userPlugin.trim().length>0||t.userNewPlugin.trim().length>0,i=t.forceLayout===3;return{applyName:a?null:t.aiName??null,applySuggestedPlugin:!i&&!s&&!!((c=t.aiSuggestedPlugin)!=null&&c.plugin),suggestedPluginValue:i||s?null:t.aiSuggestedPlugin??null}}function Zo(t,a=!0){let s=t.toLowerCase().replace(/[^a-z0-9]+/g,"-");return a&&(s=s.replace(/^-+|-+$/g,"")),s}function $N(t,a,s,i){const u=`.../${t.split("/").slice(-2).join("/")}`;switch(a){case 1:return`${u}/${s}/skills/${i}/SKILL.md`;case 2:return`${u}/plugins/${s}/skills/${i}/SKILL.md`;case 3:return`${u}/skills/${i}/SKILL.md`}}function UN({onCreated:t,resolveAiConfigOverride:a,forceLayout:s}){const[i,c]=m.useState("ai"),[u,d]=m.useState(null),[f,x]=m.useState(!0),{config:h}=Ya(),[y,v]=m.useState(""),[b,S]=m.useState(s??3),[C,E]=m.useState(""),[w,N]=m.useState(""),[T,A]=m.useState(""),[I,L]=m.useState(""),[H,k]=m.useState(""),[O,z]=m.useState(""),[_,$]=m.useState("write"),[q,K]=m.useState([]),[Q,U]=m.useState(!1),[M,B]=m.useState(null),[F,te]=m.useState(null),[V,D]=m.useState(null),[W,X]=m.useState("vskill"),[ee,de]=m.useState("1.0.0"),[le,ce]=m.useState(!0),ne=m.useCallback(async()=>{try{const Oe=await ke.detectEngines();D(Oe),X(Ye=>Ye!=="vskill"?Ye:Oe.vskillSkillBuilder?"vskill":Oe.anthropicSkillCreator?"anthropic-skill-creator":"none")}catch{D({vskillSkillBuilder:!1,anthropicSkillCreator:!1,vskillVersion:null,anthropicPath:null})}},[]);m.useEffect(()=>{ne()},[ne]);const[ge,Le]=m.useState(""),[Ee,Me]=m.useState(!1),[Pe,ie]=m.useState(!1),[fe,he]=m.useState(null),[be,je]=m.useState(null),[Ge,ut]=m.useState([]),gt=m.useRef(null),Ht=m.useRef(null),Tt=m.useRef(null),qe=m.useRef(null),zt=m.useRef(null),[kt,vt]=m.useState(!1),[Zt,ve]=m.useState(!1),rt=m.useRef(y),it=m.useRef(C),bt=m.useRef(w);m.useEffect(()=>{rt.current=y},[y]),m.useEffect(()=>{it.current=C},[C]),m.useEffect(()=>{bt.current=w},[w]),m.useEffect(()=>{ke.getProjectLayout().then(Oe=>{if(d(Oe),s)return;S(Oe.suggestedLayout);const Ye=Oe.detectedLayouts.find(Hn=>Hn.layout===Oe.suggestedLayout);Ye!=null&&Ye.existingPlugins.length&&E(Ye.existingPlugins[0])}).catch(()=>{}).finally(()=>x(!1))},[s]),m.useEffect(()=>{var Oe;i==="ai"&&((Oe=gt.current)==null||Oe.focus())},[i]),m.useEffect(()=>()=>{var Oe;(Oe=Ht.current)==null||Oe.abort()},[]);const Mt=m.useMemo(()=>{var Oe;return u?((Oe=u.detectedLayouts.find(Ye=>Ye.layout===b))==null?void 0:Oe.existingPlugins)||[]:[]},[u,b]),et=C==="__new__"?w:C,bn=u?$N(u.root,b,et||"{plugin}",y||"{skill}"):"",qt=m.useMemo(()=>u?u.detectedLayouts.filter(Oe=>Oe.layout!==4):[],[u]),mn=m.useMemo(()=>{if(!u)return null;const Oe=u.detectedLayouts.find(hn=>hn.layout===2&&hn.existingPlugins.length>0),Ye=u.detectedLayouts.find(hn=>hn.layout===1&&hn.existingPlugins.length>0),Hn=Oe||Ye;return Hn?{layout:Hn.layout,plugins:Hn.existingPlugins}:null},[u]),un=m.useCallback(()=>{if(a)return a();if(!h)return{provider:"claude-cli",model:"sonnet"};const Oe=h.provider||"claude-cli",Ye=h.model||"sonnet";return{provider:Oe,model:Ye}},[h,a]),ur=m.useCallback(()=>{var Oe;(Oe=Ht.current)==null||Oe.abort(),Me(!1)},[]),Nn=m.useCallback(()=>{he(null),je(null)},[]),Un=m.useCallback(async()=>{var hn,jr;if(he(null),je(null),ut([]),Tt.current=null,qe.current=null,!ge.trim()){he("Describe what your skill should do");return}Me(!0);const Oe=new AbortController;Ht.current=Oe;const{provider:Ye,model:Hn}=un();try{const rn=await fetch("/api/skills/generate?sse",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(BN({prompt:ge.trim(),provider:Ye,model:Hn,targetAgents:q})),signal:Oe.signal});if(!rn.ok||!rn.body){let St=`HTTP ${rn.status}`;try{const Jt=await rn.json();Jt.error&&(St=Jt.error)}catch{}throw new Error(St)}const ae=rn.body.getReader(),Se=new TextDecoder;let Ne="",Bt="";for(;;){const{done:St,value:Jt}=await ae.read();if(St)break;Ne+=Se.decode(Jt,{stream:!0});const Vr=Ne.split(`
106
- `);Ne=Vr.pop()||"";for(const dr of Vr)if(dr.startsWith("event: "))Bt=dr.slice(7).trim();else if(dr.startsWith("data: ")){try{const Qe=JSON.parse(dr.slice(6));if(Bt==="progress")ut(Dt=>[...Dt,{phase:Qe.phase,message:Qe.message,timestamp:Date.now()}]);else if(Bt==="provenance")qe.current={resolvedModelId:typeof Qe.resolvedModelId=="string"?Qe.resolvedModelId:null,snapshotDate:typeof Qe.snapshotDate=="string"?Qe.snapshotDate:null};else if(Bt==="done"||Bt==="complete"){const Dt={prompt:ge.trim(),provider:un().provider,model:un().model,resolvedModelId:((hn=qe.current)==null?void 0:hn.resolvedModelId)??null,snapshotDate:((jr=qe.current)==null?void 0:jr.snapshotDate)??null,reasoning:Qe.reasoning||""},It=IN({userName:rt.current,userPlugin:it.current,userNewPlugin:bt.current,aiName:Qe.name,aiSuggestedPlugin:Qe.suggestedPlugin&&Qe.suggestedPlugin.plugin?{plugin:Qe.suggestedPlugin.plugin,layout:Qe.suggestedPlugin.layout}:null,forceLayout:s});if(It.applyName!==null&&v(It.applyName),A(Qe.description),L(Qe.model||""),k(Qe.allowedTools||""),z(Qe.body),ie(!0),Tt.current=Dt,c("manual"),s===3)S(3),E(""),N("");else if(It.applySuggestedPlugin&&It.suggestedPluginValue){const an=It.suggestedPluginValue;if(((u==null?void 0:u.detectedLayouts.flatMap(Gr=>Gr.existingPlugins))??[]).includes(an.plugin))if(E(an.plugin),an.layout&&(an.layout===1||an.layout===2))S(an.layout);else{const Gr=u==null?void 0:u.detectedLayouts.find(fi=>fi.existingPlugins.includes(an.plugin));Gr&&(Gr.layout===1||Gr.layout===2)&&S(Gr.layout)}else E("__new__"),N(an.plugin)}else!It.applySuggestedPlugin&&it.current.trim().length===0&&bt.current.trim().length===0&&b===3&&mn&&ve(!0);const Fr={name:Qe.name,plugin:et||"",layout:b,description:Qe.description,model:Qe.model||void 0,allowedTools:Qe.allowedTools||void 0,body:Qe.body,aiMeta:Dt};ke.saveDraft(Fr).then(an=>{vt(!0),an!=null&&an.dir&&(zt.current=an.dir)}).catch(()=>{})}else Bt==="error"&&(he(Qe.message||Qe.description||"Unknown error"),Qe.category&&je(Qe))}catch{}Bt=""}}}catch(rn){rn.name!=="AbortError"&&he(rn.message)}finally{Me(!1),Ht.current=null}},[ge,un,b,mn,et,u,q,s]),Tn=m.useCallback(async()=>{var Oe;if(B(null),te(null),!y.trim()){B("Skill name is required");return}if(!T.trim()){B("Description is required");return}if(b!==3&&!et.trim()){B("Plugin name is required");return}if(!le){B("Version is not valid semver");return}U(!0);try{const Ye=await ke.createSkill({name:Zo(y),plugin:et||"",layout:b,description:T,model:I||void 0,allowedTools:H||void 0,body:O,aiMeta:Tt.current||void 0,draftDir:zt.current||void 0,version:ee.trim()||void 0,engine:W});zt.current=null,t(Ye.plugin,Ye.skill)}catch(Ye){if(Ye instanceof Ga&&Ye.status===409&&((Oe=Ye.details)==null?void 0:Oe.code)==="skill-already-exists"){const Hn=typeof Ye.details.plugin=="string"?Ye.details.plugin:"",hn=typeof Ye.details.skill=="string"?Ye.details.skill:Zo(y);te("Skill already existed — opened it."),zt.current=null,t(Hn,hn)}else B(Ye.message)}finally{U(!1)}},[y,T,b,et,I,H,O,ee,le,W,t]),jt=m.useCallback(()=>{mn&&(S(mn.layout),E(mn.plugins[0]),ve(!1))},[mn]);return{mode:i,setMode:c,layout:u,layoutLoading:f,selectedLayout:b,setSelectedLayout:S,creatableLayouts:qt,availablePlugins:Mt,pathPreview:bn,plugin:C,setPlugin:E,newPlugin:w,setNewPlugin:N,effectivePlugin:et,name:y,setName:v,description:T,setDescription:A,model:I,setModel:L,allowedTools:H,setAllowedTools:k,body:O,setBody:z,bodyViewMode:_,setBodyViewMode:$,aiPrompt:ge,setAiPrompt:Le,generating:Ee,aiGenerated:Pe,aiError:fe,aiClassifiedError:be,aiProgress:Ge,promptRef:gt,handleGenerate:Un,handleCancelGenerate:ur,clearAiError:Nn,targetAgents:q,setTargetAgents:K,draftSaved:kt,showPluginRecommendation:Zt,setShowPluginRecommendation:ve,pluginLayoutInfo:mn,applyPluginRecommendation:jt,creating:Q,error:M,info:F,handleCreate:Tn,engineDetection:V,refreshEngineDetection:ne,engine:W,setEngine:X,version:ee,setVersion:de,versionValid:le,setVersionValid:ce,standaloneLocked:s===3}}function ob(){return r.jsx("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})})}function HN(){return r.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),r.jsx("polyline",{points:"14 2 14 8 20 8"})]})}function cb({node:t,depth:a=0}){var s;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-1.5 py-0.5",style:{paddingLeft:`${a*16}px`,color:t.type==="dir"?"var(--text-secondary)":"var(--text-tertiary)",fontSize:12,fontFamily:"var(--font-mono, monospace)"},children:[t.type==="dir"?r.jsx(ob,{}):r.jsx(HN,{}),r.jsxs("span",{children:[t.name,t.type==="dir"?"/":""]})]}),(s=t.children)==null?void 0:s.map(i=>r.jsx(cb,{node:i,depth:a+1},i.name))]})}function PN(t,a,s){const i=[];a&&i.push({name:"evals.json",type:"file"}),i.push({name:"history",type:"dir"});const c=[{name:"SKILL.md",type:"file"},{name:"evals",type:"dir",children:i}];return s&&c.push({name:"draft.json",type:"file"}),{name:t||"{skill}",type:"dir",children:c}}function VN({skillName:t,hasEvals:a,isDraft:s}){const i=PN(t,a,s);return r.jsxs("div",{className:"glass-card p-4",children:[r.jsxs("h3",{className:"text-[13px] font-semibold mb-3 flex items-center gap-2",style:{color:"var(--text-primary)"},children:[r.jsx("div",{className:"w-5 h-5 rounded-md flex items-center justify-center",style:{background:"var(--accent-muted)"},children:r.jsx(ob,{})}),"Skill Structure"]}),r.jsx("div",{className:"rounded-lg px-3 py-2",style:{background:"var(--surface-0)",border:"1px solid var(--border-subtle)"},children:r.jsx(cb,{node:i})})]})}const xa={background:"var(--surface-3)",color:"var(--text-primary)",border:"1px solid var(--border-subtle)"};function Jd({size:t=14,color:a="currentColor"}){return r.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M12 3l1.912 5.813a2 2 0 001.275 1.275L21 12l-5.813 1.912a2 2 0 00-1.275 1.275L12 21l-1.912-5.813a2 2 0 00-1.275-1.275L3 12l5.813-1.912a2 2 0 001.275-1.275L12 3z"})})}function FN({onCreated:t,onCancel:a}){const s=UN({onCreated:t});return r.jsxs("div",{className:"px-8 py-6 max-w-4xl animate-fade-in overflow-auto h-full",children:[r.jsxs("div",{className:"mb-5",children:[r.jsx("h2",{className:"text-[20px] font-semibold tracking-tight",style:{color:"var(--text-primary)"},children:"Create a New Skill"}),r.jsx("div",{className:"flex items-center justify-between mt-2",children:r.jsxs("div",{className:"inline-flex rounded-lg p-0.5",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:[r.jsx("button",{onClick:()=>s.setMode("ai"),className:"px-3 py-1.5 rounded-md text-[12px] font-medium transition-all duration-200",style:{background:s.mode==="ai"?"rgba(168,85,247,0.15)":"transparent",color:s.mode==="ai"?"#a855f7":"var(--text-tertiary)",boxShadow:s.mode==="ai"?"0 1px 3px rgba(168,85,247,0.15)":"none",cursor:"pointer",border:"none"},children:r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx(Jd,{size:12}),"AI-Assisted"]})}),r.jsx("button",{onClick:()=>s.setMode("manual"),className:"px-3 py-1.5 rounded-md text-[12px] font-medium transition-all duration-200",style:{background:s.mode==="manual"?"var(--surface-4, var(--surface-3))":"transparent",color:s.mode==="manual"?"var(--text-primary)":"var(--text-tertiary)",boxShadow:s.mode==="manual"?"0 1px 3px rgba(0,0,0,0.1)":"none",cursor:"pointer",border:"none"},children:"Manual"})]})})]}),s.layoutLoading&&r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"skeleton h-10 w-full rounded-lg"}),r.jsx("div",{className:"skeleton h-10 w-full rounded-lg"})]}),!s.layoutLoading&&s.layout&&s.mode==="ai"&&r.jsxs("div",{className:"space-y-4 animate-fade-in",children:[r.jsxs("div",{className:"glass-card p-4",children:[r.jsxs("h3",{className:"text-[13px] font-semibold mb-3 flex items-center gap-2",style:{color:"var(--text-primary)"},children:[r.jsx("div",{className:"w-5 h-5 rounded-md flex items-center justify-center",style:{background:"rgba(168,85,247,0.15)"},children:r.jsx(Jd,{size:11,color:"#a855f7"})}),"Describe Your Skill"]}),r.jsx("textarea",{ref:s.promptRef,value:s.aiPrompt,onChange:i=>s.setAiPrompt(i.target.value),placeholder:`e.g., A skill that helps format SQL queries, optimize them for performance, and explain query execution plans.
107
-
108
- Include any specific behaviors, constraints, or output formats you want.`,rows:5,disabled:s.generating,className:"w-full px-3 py-2.5 rounded-lg text-[13px] resize-y",style:{...xa,minHeight:"120px"},onKeyDown:i=>{i.key==="Enter"&&(i.metaKey||i.ctrlKey)&&(i.preventDefault(),s.handleGenerate())}}),r.jsx("p",{className:"text-[11px] mt-2",style:{color:"var(--text-quaternary, var(--text-tertiary))"},children:"Cmd+Enter to generate"})]}),s.generating&&s.aiProgress.length>0&&r.jsx(di,{entries:s.aiProgress,isRunning:!0}),s.aiError&&r.jsx("div",{children:s.aiClassifiedError?r.jsx(fc,{error:s.aiClassifiedError,onRetry:s.handleGenerate,onDismiss:s.clearAiError}):r.jsxs("div",{children:[r.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid rgba(248,113,113,0.2)"},children:s.aiError}),r.jsx("button",{onClick:s.handleGenerate,className:"mt-2 text-[12px] font-medium",style:{color:"#a855f7",background:"none",border:"none",cursor:"pointer"},children:"Retry"})]})}),r.jsxs("div",{className:"flex items-center gap-3",children:[s.generating?r.jsx("button",{onClick:s.handleCancelGenerate,className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150 flex items-center gap-2",style:{background:"var(--surface-3)",color:"var(--text-secondary)",border:"none",cursor:"pointer"},children:"Cancel Generation"}):r.jsxs("button",{onClick:s.handleGenerate,disabled:!s.aiPrompt.trim(),className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150 flex items-center gap-2",style:{background:s.aiPrompt.trim()?"#a855f7":"var(--surface-3)",color:s.aiPrompt.trim()?"#fff":"var(--text-tertiary)",cursor:s.aiPrompt.trim()?"pointer":"not-allowed",border:"none"},children:[r.jsx(Jd,{size:14}),"Generate"]}),r.jsx("button",{onClick:a,className:"px-4 py-2.5 rounded-lg text-[13px] font-medium",style:{color:"var(--text-secondary)",background:"none",border:"none",cursor:"pointer"},children:"Cancel"}),!s.generating&&r.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:["or fill in the form manually",r.jsx("button",{onClick:()=>s.setMode("manual"),className:"ml-1 font-medium",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer"},children:"below"})]})]})]}),!s.layoutLoading&&s.layout&&s.mode==="manual"&&r.jsxs("div",{className:"space-y-4 animate-fade-in",children:[r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("h3",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Location"}),s.creatableLayouts.length>1&&r.jsxs("div",{className:"mb-3",children:[r.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-2 block",style:{color:"var(--text-tertiary)"},children:"Layout"}),r.jsx("div",{className:"flex gap-2",children:s.creatableLayouts.map(i=>r.jsx("button",{onClick:()=>{s.setSelectedLayout(i.layout),s.setPlugin(i.existingPlugins[0]||""),s.setNewPlugin("")},className:"px-3 py-1.5 rounded-lg text-[12px] font-medium transition-all duration-150",style:{background:s.selectedLayout===i.layout?"var(--accent)":"var(--surface-3)",color:s.selectedLayout===i.layout?"#fff":"var(--text-secondary)",border:`1px solid ${s.selectedLayout===i.layout?"var(--accent)":"var(--border-subtle)"}`,cursor:"pointer"},children:i.label},i.layout))})]}),s.selectedLayout!==3&&r.jsxs("div",{className:"mb-3",children:[r.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-2 block",style:{color:"var(--text-tertiary)"},children:"Plugin"}),r.jsxs("select",{value:s.plugin,onChange:i=>{s.setPlugin(i.target.value),s.setNewPlugin("")},className:"w-full px-3 py-2 rounded-lg text-[13px]",style:xa,children:[s.availablePlugins.map(i=>r.jsx("option",{value:i,children:i},i)),r.jsx("option",{value:"__new__",children:"+ New plugin..."})]}),s.plugin==="__new__"&&r.jsx("input",{type:"text",value:s.newPlugin,onChange:i=>s.setNewPlugin(Zo(i.target.value)),placeholder:"my-plugin",className:"w-full mt-2 px-3 py-2 rounded-lg text-[13px]",style:xa})]}),r.jsx("div",{className:"px-3 py-2 rounded-lg text-[11px] font-mono",style:{background:"var(--surface-0)",color:"var(--text-tertiary)",border:"1px solid var(--border-subtle)"},children:s.pathPreview})]}),s.showPluginRecommendation&&s.pluginLayoutInfo&&s.selectedLayout===3&&r.jsxs("div",{className:"px-4 py-3 rounded-lg text-[12px] animate-fade-in flex items-center justify-between gap-3",style:{background:"rgba(59,130,246,0.08)",color:"var(--text-secondary)",border:"1px solid rgba(59,130,246,0.2)"},children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#3b82f6",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),r.jsx("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]}),r.jsxs("span",{children:["Plugins detected (",r.jsx("strong",{children:s.pluginLayoutInfo.plugins.slice(0,3).join(", ")}),"). Add this skill to a plugin for better organization."]})]}),r.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[r.jsx("button",{onClick:s.applyPluginRecommendation,className:"px-3 py-1 rounded-md text-[11px] font-medium",style:{background:"#3b82f6",color:"#fff",border:"none",cursor:"pointer"},children:"Use plugin"}),r.jsx("button",{onClick:()=>s.setShowPluginRecommendation(!1),className:"w-5 h-5 rounded flex items-center justify-center",style:{color:"var(--text-tertiary)",background:"none",border:"none",cursor:"pointer"},children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]}),r.jsxs("div",{className:"glass-card p-4",children:[r.jsx("h3",{className:"text-[13px] font-semibold mb-3",style:{color:"var(--text-primary)"},children:"Skill Details"}),r.jsxs("div",{className:"mb-3",children:[r.jsxs("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:["Name ",r.jsx("span",{style:{color:"var(--red)"},children:"*"})]}),r.jsx("input",{type:"text",value:s.name,onChange:i=>s.setName(Zo(i.target.value,!1)),placeholder:"my-skill",className:"w-full px-3 py-2 rounded-lg text-[13px]",style:xa})]}),r.jsxs("div",{className:"mb-3",children:[r.jsxs("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:["Description ",r.jsx("span",{style:{color:"var(--red)"},children:"*"})]}),r.jsx("textarea",{value:s.description,onChange:i=>s.setDescription(i.target.value),placeholder:"Brief description",rows:3,className:"w-full px-3 py-2 rounded-lg text-[13px] resize-y",style:{...xa,minHeight:"72px"}})]}),r.jsxs("div",{className:"flex gap-3",children:[r.jsxs("div",{className:"flex-1",children:[r.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Model"}),r.jsxs("select",{value:s.model,onChange:i=>s.setModel(i.target.value),className:"w-full px-3 py-2 rounded-lg text-[13px]",style:xa,children:[r.jsx("option",{value:"",children:"Any"}),r.jsx("option",{value:"opus",children:"Opus"}),r.jsx("option",{value:"sonnet",children:"Sonnet"}),r.jsx("option",{value:"haiku",children:"Haiku"})]})]}),r.jsxs("div",{className:"flex-1",children:[r.jsx("label",{className:"text-[11px] font-medium uppercase tracking-wider mb-1 block",style:{color:"var(--text-tertiary)"},children:"Allowed Tools"}),r.jsx("input",{type:"text",value:s.allowedTools,onChange:i=>s.setAllowedTools(i.target.value),placeholder:"Read, Write, Edit...",className:"w-full px-3 py-2 rounded-lg text-[13px]",style:xa})]})]})]}),r.jsxs("div",{className:"glass-card p-4",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center",style:{background:"var(--accent-muted)"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),r.jsx("polyline",{points:"14 2 14 8 20 8"}),r.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),r.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"})]})}),r.jsxs("div",{children:[r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:"SKILL.md"}),r.jsx("span",{className:"text-[11px] ml-2",style:{color:"var(--text-tertiary)"},children:"Skill Definition"})]})]}),r.jsx("div",{className:"flex items-center",style:{background:"var(--surface-2)",borderRadius:8,padding:2,gap:1},children:["write","preview"].map(i=>r.jsxs("button",{onClick:()=>s.setBodyViewMode(i),className:"flex items-center gap-1 rounded-md transition-all duration-150",style:{padding:"4px 10px",background:s.bodyViewMode===i?"var(--surface-4)":"transparent",color:s.bodyViewMode===i?"var(--text-primary)":"var(--text-tertiary)",fontSize:11,fontWeight:s.bodyViewMode===i?600:400,border:"none",cursor:"pointer"},children:[i==="write"?r.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("polyline",{points:"16 18 22 12 16 6"}),r.jsx("polyline",{points:"8 6 2 12 8 18"})]}):r.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),r.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),r.jsx("span",{children:i==="write"?"Write":"Preview"})]},i))})]}),s.bodyViewMode==="write"?r.jsx("textarea",{value:s.body,onChange:i=>s.setBody(i.target.value),placeholder:`# /my-skill
109
-
110
- You are an expert at...
111
- `,rows:8,className:"w-full px-3 py-2 rounded-lg text-[13px] font-mono resize-y",style:{...xa,minHeight:"150px"}}):s.body.trim()?r.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto rounded-lg px-4 py-3",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",minHeight:"150px",maxHeight:"400px",overflowY:"auto"},dangerouslySetInnerHTML:{__html:uc(s.body)}}):r.jsx("div",{className:"text-[13px] leading-relaxed overflow-x-auto rounded-lg px-4 py-3",style:{background:"var(--surface-0)",color:"var(--text-secondary)",border:"1px solid var(--border-subtle)",minHeight:"150px",maxHeight:"400px",overflowY:"auto"},children:r.jsx("span",{style:{color:"var(--text-tertiary)"},children:"Start writing to see preview"})})]}),r.jsx(VN,{skillName:s.name||"{skill}",hasEvals:!1,isDraft:s.draftSaved}),s.error&&r.jsx("div",{className:"px-4 py-3 rounded-lg text-[13px]",style:{background:"var(--red-muted)",color:"var(--red)",border:"1px solid rgba(248,113,113,0.2)"},children:s.error}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("button",{onClick:s.handleCreate,disabled:s.creating||!s.name||!s.description,className:"px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:s.creating||!s.name||!s.description?"var(--surface-3)":"var(--accent)",color:s.creating||!s.name||!s.description?"var(--text-tertiary)":"#fff",cursor:s.creating||!s.name||!s.description?"not-allowed":"pointer",border:"none"},children:s.creating?"Creating...":"Create Skill"}),r.jsx("button",{onClick:a,className:"px-4 py-2.5 rounded-lg text-[13px] font-medium",style:{color:"var(--text-secondary)",background:"none",border:"none",cursor:"pointer"},children:"Cancel"})]})]})]})}function fv(){return r.jsx("div",{className:"w-16 h-16 rounded-2xl flex items-center justify-center",style:{background:"var(--surface-2)"},children:r.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),r.jsx("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"}),r.jsx("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"})]})})}function Gs({variant:t,message:a,onRetry:s}){const{setMode:i,setSearch:c}=cr(),[u,d]=m.useState(!1);return t==="no-selection"?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in",children:[r.jsx("div",{className:"mb-5",children:u?r.jsx(fv,{}):r.jsx("img",{src:"/images/empty-studio.webp",width:128,height:128,alt:"",onError:()=>d(!0),style:{objectFit:"contain"}})}),r.jsx("p",{className:"text-[14px] font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Select a skill to view details"}),r.jsx("p",{className:"text-[12px]",style:{color:"var(--text-tertiary)"},children:"Choose a skill from the list to edit, test, and evaluate"})]}):t==="no-skills"?r.jsxs("div",{className:"text-center py-12 px-4 animate-fade-in-scale",children:[r.jsx("div",{className:"w-14 h-14 rounded-2xl flex items-center justify-center mx-auto mb-4",style:{background:"var(--surface-2)"},children:r.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"})})}),r.jsx("p",{className:"text-[14px] font-medium",style:{color:"var(--text-secondary)"},children:"No skills found"}),r.jsxs("p",{className:"text-[12px] mt-1 mb-4",style:{color:"var(--text-tertiary)"},children:["Check your ",r.jsx("code",{className:"px-1.5 py-0.5 rounded text-[11px]",style:{background:"var(--surface-2)"},children:"--root"})," directory, or create your first skill"]}),r.jsxs("button",{onClick:()=>i("create"),className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:"var(--accent)",color:"#fff",border:"none",cursor:"pointer"},onMouseEnter:f=>{f.currentTarget.style.opacity="0.9"},onMouseLeave:f=>{f.currentTarget.style.opacity="1"},children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Create Your First Skill"]})]}):t==="no-project-skills"?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in","data-testid":"empty-state-no-project-skills",children:[r.jsx("div",{className:"mb-5",children:u?r.jsx(fv,{}):r.jsx("img",{src:"/images/empty-studio.webp",width:128,height:128,alt:"",onError:()=>d(!0),style:{objectFit:"contain"}})}),r.jsx("p",{className:"text-[15px] font-medium mb-1",style:{color:"var(--text-primary)"},children:"No skills installed for this project yet."}),r.jsx("p",{className:"text-[12px] mb-5",style:{color:"var(--text-tertiary)",maxWidth:360,textAlign:"center"},children:"Browse the marketplace to install one, or author a new skill from scratch."}),r.jsxs("div",{className:"flex gap-3",children:[r.jsxs("button",{type:"button","data-testid":"empty-state-browse-marketplaces",onClick:()=>{window.dispatchEvent(new CustomEvent("studio:open-marketplace"))},className:"inline-flex items-center gap-2 px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:"var(--accent)",color:"#fff",border:"none",cursor:"pointer"},"aria-label":"Browse marketplaces",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("circle",{cx:"9",cy:"21",r:"1"}),r.jsx("circle",{cx:"20",cy:"21",r:"1"}),r.jsx("path",{d:"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"})]}),"Browse marketplaces"]}),r.jsxs("button",{type:"button","data-testid":"empty-state-create-skill",onClick:()=>i("create"),className:"inline-flex items-center gap-2 px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150",style:{background:"var(--surface-2)",color:"var(--text-primary)",border:"1px solid var(--border-default, var(--border-subtle))",cursor:"pointer"},"aria-label":"Create new skill",children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Create new skill"]})]})]}):t==="error"?r.jsx("div",{className:"flex flex-col items-center justify-center h-full px-8 animate-fade-in",children:r.jsxs("div",{className:"px-5 py-4 rounded-lg text-center max-w-sm",style:{background:"var(--red-muted)",border:"1px solid rgba(248,113,113,0.2)"},children:[r.jsx("p",{className:"text-[13px] mb-3",style:{color:"var(--red)"},children:a||"Failed to load skill data"}),s&&r.jsx("button",{onClick:s,className:"px-4 py-2 rounded-lg text-[12px] font-medium",style:{background:"var(--surface-3)",color:"var(--text-primary)",border:"none",cursor:"pointer"},children:"Retry"})]})}):r.jsxs("div",{className:"px-4 py-8 text-center animate-fade-in",children:[r.jsx("p",{className:"text-[13px] mb-2",style:{color:"var(--text-tertiary)"},children:"No skills match your search"}),r.jsx("button",{onClick:()=>c(""),className:"text-[12px] font-medium",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer",textDecoration:"underline"},children:"Clear search"})]})}function GN(t,a){const[s,i]=t.split(".").map(Number),[c,u]=a.split(".").map(Number);return c>s?"major":u>i?"minor":"patch"}const WN={major:{bg:"var(--red-muted)",text:"var(--red)"},minor:{bg:"var(--yellow-muted)",text:"var(--yellow)"},patch:{bg:"var(--green-muted)",text:"var(--green)"}};function ub(){const[t,a]=m.useState([]),[s,i]=m.useState(!0),[c,u]=m.useState(new Set),[d,f]=m.useState(new Map),[x,h]=m.useState(!1),[y,v]=m.useState(new Set),[b,S]=m.useState(new Map),[C,E]=m.useState(null),[w,N]=m.useState(null),[T,A]=m.useState(!1),I=m.useCallback(async()=>{i(!0);try{const $=await ke.getSkillUpdates();a($.filter(q=>q.updateAvailable))}catch{a([])}finally{i(!1)}},[]);m.useEffect(()=>{I()},[I]);const L=m.useMemo(()=>t.filter($=>!$.pinned),[t]),H=m.useCallback($=>{u(q=>{const K=new Set(q);return K.has($)?K.delete($):K.add($),K})},[]),k=m.useCallback(()=>{c.size===L.length?u(new Set):u(new Set(L.map($=>$.name)))},[c,L]),O=m.useCallback(()=>{const $=[...c];if(!$.length)return;h(!0),f(new Map($.map(K=>[K,{skill:K,status:"pending"}])));const q=ke.startBatchUpdate($);q.addEventListener("progress",K=>{try{const Q=JSON.parse(K.data);f(U=>new Map(U).set(Q.skill,Q))}catch{}}),q.addEventListener("done",K=>{q.close(),h(!1);try{const Q=JSON.parse(K.data);E(`Updated ${Q.updated??0} skills, ${Q.failed??0} failed`),setTimeout(()=>E(null),5e3)}catch{}I()}),q.addEventListener("error",()=>{q.close(),h(!1),E("Batch update failed"),setTimeout(()=>E(null),5e3)})},[c,I]),z=m.useCallback(async $=>{const q=$.name.split("/"),K=q.length>=3?q[q.length-2]:q[0],Q=q[q.length-1];v(U=>new Set(U).add($.name)),S(U=>{const M=new Map(U);return M.delete($.name),M});try{const U=await ke.postSkillUpdate(K,Q);if(U.ok)I();else{const M=`Update failed (HTTP ${U.status}): ${U.body}`;S(B=>new Map(B).set($.name,M)),E(`Couldn't update ${Q} — HTTP ${U.status}`),setTimeout(()=>E(null),5e3)}}catch(U){const M=U instanceof Error?U.message:"Network error";S(B=>new Map(B).set($.name,M)),E(`Couldn't update ${Q} — ${M}`),setTimeout(()=>E(null),5e3)}finally{v(U=>{const M=new Set(U);return M.delete($.name),M})}},[I]),_=m.useCallback(async $=>{if(!$.latest)return;const q=$.name.split("/"),K=q.length>=3?q[q.length-2]:q[0],Q=q[q.length-1];A(!0);try{const U=await ke.getVersionDiff(K,Q,$.installed,$.latest);N({skill:$,diff:U})}catch{N(null)}finally{A(!1)}},[]);return s?r.jsxs("div",{"data-testid":"updates-panel",className:"p-6",children:[r.jsx("div",{className:"skeleton h-6 w-48 mb-4"}),r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"skeleton h-16 rounded-lg"}),r.jsx("div",{className:"skeleton h-16 rounded-lg"})]})]}):t.length===0?r.jsxs("div",{"data-testid":"updates-panel",className:"flex flex-col items-center justify-center h-full py-16",children:[r.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"var(--green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",className:"mb-4",children:[r.jsx("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),r.jsx("polyline",{points:"22 4 12 14.01 9 11.01"})]}),r.jsx("div",{className:"text-[15px] font-semibold mb-2",style:{color:"var(--text-primary)"},children:"All skills are up to date"}),r.jsx("div",{className:"text-[12px] mb-4",style:{color:"var(--text-tertiary)"},children:"No updates available for installed skills."}),r.jsx("button",{onClick:I,className:"btn btn-secondary text-[12px]",children:"Refresh"})]}):r.jsxs("div",{"data-testid":"updates-panel",className:"p-6",children:[C&&r.jsx("div",{className:"fixed top-4 right-4 z-50 px-4 py-3 rounded-lg text-[13px] font-medium animate-fade-in",style:{background:"var(--surface-3)",color:"var(--text-primary)",border:"1px solid var(--border-subtle)"},children:C}),r.jsxs("div",{className:"flex items-center justify-between mb-5",children:[r.jsxs("div",{className:"text-[16px] font-semibold",style:{color:"var(--text-primary)"},children:["Available Updates (",L.length,")"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{onClick:I,className:"btn btn-ghost text-[12px]",disabled:x,children:"Refresh"}),r.jsx("button",{onClick:O,disabled:c.size===0||x,className:"btn btn-primary text-[12px]",children:x?"Updating...":`Update Selected (${c.size})`})]})]}),r.jsx("div",{className:"flex items-center gap-2 mb-3",children:r.jsxs("button",{onClick:k,className:"flex items-center gap-2 text-[12px] font-medium",style:{color:"var(--text-secondary)",background:"transparent",border:"none",cursor:"pointer"},children:[r.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:c.size===L.length&&L.length>0?"var(--accent)":"var(--border-default)",background:c.size===L.length&&L.length>0?"var(--accent)":"transparent"},children:c.size===L.length&&L.length>0&&r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})})}),"Select All"]})}),r.jsx("div",{className:"space-y-2",children:t.map($=>{const q=$.name.split("/").pop()||$.name,K=$.latest?GN($.installed,$.latest):"patch",Q=WN[K],U=!!$.pinned,M=y.has($.name),B=d.get($.name),F=c.has($.name);return r.jsx("div",{className:"rounded-lg px-4 py-3 transition-all duration-150",style:{background:"var(--surface-1)",border:"1px solid var(--border-subtle)",opacity:U?.7:1},children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("button",{onClick:()=>!U&&H($.name),disabled:U,className:"flex-shrink-0",style:{background:"transparent",border:"none",cursor:U?"not-allowed":"pointer"},children:r.jsx("span",{className:"w-4 h-4 rounded border flex items-center justify-center",style:{borderColor:F?"var(--accent)":"var(--border-default)",background:F?"var(--accent)":"transparent",opacity:U?.4:1},children:F&&r.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"var(--color-paper)",strokeWidth:"3",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})})})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[r.jsx("span",{className:"text-[13px] font-medium",style:{color:"var(--text-primary)"},children:q}),U&&r.jsx("span",{className:"text-[10px]",title:"Pinned — unpin from CLI to update",children:"📌"}),r.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:Q.bg,color:Q.text},children:K})]}),r.jsxs("div",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[$.installed," → ",$.latest||"?",U&&` (pinned at ${$.pinnedVersion||$.installed})`]})]}),B&&r.jsxs("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:B.status==="done"?"var(--green-muted)":B.status==="error"?"var(--red-muted)":"var(--yellow-muted)",color:B.status==="done"?"var(--green)":B.status==="error"?"var(--red)":"var(--yellow)"},children:[B.status,B.error&&`: ${B.error}`]}),r.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[r.jsx("button",{onClick:()=>_($),className:"btn btn-ghost text-[11px]",disabled:T,children:"View Changes"}),r.jsx("button",{onClick:()=>z($),disabled:U||M||x,title:U?"Pinned — unpin from CLI to update":"",className:`btn ${U?"btn-ghost":"btn-primary"} text-[11px]`,children:M?r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx("span",{className:"spinner spinner-sm"})," Updating"]}):(B==null?void 0:B.status)==="done"?r.jsx("span",{style:{color:"var(--green)"},children:"✓"}):"Update"})]})]})},$.name)})}),w&&r.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{background:"rgba(0,0,0,0.5)"},onClick:()=>N(null),children:r.jsxs("div",{style:{width:"80%",maxWidth:900},onClick:$=>$.stopPropagation(),children:[r.jsx("div",{className:"mb-2 flex justify-end",children:r.jsx("button",{onClick:()=>N(null),className:"btn btn-ghost text-[12px]",children:"Close"})}),r.jsx(Kf,{contentDiff:w.diff.contentDiff,fromLabel:w.diff.from,toLabel:w.diff.to,diffSummary:w.diff.diffSummary,renderContext:"inline"})]})})]})}const qN=Object.freeze(Object.defineProperty({__proto__:null,UpdatesPanel:ub},Symbol.toStringTag,{value:"Module"}));function YN(t){return t==null?"var(--text-tertiary)":t>=.7?"var(--green)":t>=.4?"var(--yellow)":"var(--red)"}function KN(t){return t==null?"var(--surface-3)":t>=.7?"var(--green-muted)":t>=.4?"var(--yellow-muted)":"var(--red-muted)"}function XN(t){if(!t||typeof t!="string")return null;const a=t.trim();if(!a)return null;if(!a.includes("://")){const[s]=a.split("/");return s&&/^[A-Za-z0-9][A-Za-z0-9-]{0,38}$/.test(s)?s:null}try{const s=new URL(a),i=s.hostname.toLowerCase();if(i!=="github.com"&&i!=="www.github.com"&&i!=="raw.githubusercontent.com")return null;const u=s.pathname.split("/").filter(Boolean)[0];return!u||!/^[A-Za-z0-9][A-Za-z0-9-]{0,38}$/.test(u)?null:u}catch{return null}}function db(t){const{author:a,repoUrl:s}=t,i=XN(s??null),c=a&&a.trim()!==""?a:i??"—",[u,d]=m.useState(!1),f=m.useCallback(async()=>{var x;try{await((x=navigator.clipboard)==null?void 0:x.writeText(c)),d(!0),setTimeout(()=>d(!1),1500)}catch{}},[c]);return i?r.jsx("a",{"data-testid":t["data-testid"]??"author-link",href:`https://github.com/${i}`,target:"_blank",rel:"noopener noreferrer",style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-accent, var(--text-primary))",textDecoration:"none",borderBottom:"1px dotted var(--border-default, var(--border))",whiteSpace:"nowrap"},children:c}):!a||a.trim()===""?r.jsx("span",{"data-testid":t["data-testid"]??"author-link-empty",style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)"},children:"—"}):r.jsxs("button",{type:"button","data-testid":t["data-testid"]??"author-copy",title:`Copy "${c}"`,onClick:f,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 6px",border:"1px solid var(--border-default, var(--border))",borderRadius:4,background:"transparent",fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",cursor:"pointer",whiteSpace:"nowrap"},children:[c,r.jsx("span",{"aria-hidden":"true",style:{fontSize:10,opacity:.7},children:u?"✓":"⧉"})]})}function QN(t){let a=t.split("#")[0].split("?")[0].replace(/\/+$/,"");return a=a.replace(/\/(?:tree|blob)\/[^/]+(?:\/.*)?$/,""),a}function ZN(t,a){const s=QN(t),i=(a??"").replace(/^\/+/,"").replace(/\/+$/,"");return i?`${s}/blob/HEAD/${i}`:`${s}/blob/HEAD/`}function pv(t){if(!t)return"source";const a=t.replace(/\/+$/,""),s=a.lastIndexOf("/");return s===-1?a:a.slice(s+1)}function fb(t){const{repoUrl:a,skillPath:s,absolutePath:i}=t,[c,u]=m.useState(!1),d=typeof a=="string"&&a.trim()!==""&&/^https?:\/\//.test(a.trim()),f=s?pv(s):i?pv(i):"source",x=m.useCallback(async()=>{var v;const y=i??s??"";if(y)try{await((v=navigator.clipboard)==null?void 0:v.writeText(y)),u(!0),setTimeout(()=>u(!1),1500)}catch{}},[i,s]);if(d){const y=ZN(a,s);return r.jsxs("a",{"data-testid":t["data-testid"]??"source-file-link",href:y,target:"_blank",rel:"noopener noreferrer",title:y,style:{display:"inline-flex",alignItems:"center",gap:4,fontFamily:"var(--font-mono, var(--font-geist-mono))",fontSize:12,color:"var(--text-accent, var(--text-primary))",textDecoration:"none",whiteSpace:"nowrap",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis"},children:[r.jsx("span",{children:f}),r.jsx("span",{"aria-hidden":"true",children:"↗"})]})}if(!i&&!s)return r.jsx("span",{"data-testid":t["data-testid"]??"source-file-empty",style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)"},children:"—"});const h=i??s??"";return r.jsxs("button",{type:"button","data-testid":t["data-testid"]??"source-file-copy",title:`Copy ${h}`,onClick:x,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 6px",border:"1px solid var(--border-default, var(--border))",borderRadius:4,background:"transparent",fontFamily:"var(--font-mono, var(--font-geist-mono))",fontSize:12,color:"var(--text-secondary)",cursor:"pointer",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[r.jsx("span",{children:f}),r.jsx("span",{"aria-hidden":"true",style:{fontSize:10,opacity:.7},children:c?"✓":"⧉"})]})}function mv(t,a="info"){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,severity:a}}))}function pb(t){return t.skill?eT({skill:t.skill}):nT({state:t.state,isReadOnly:t.isReadOnly,onDelete:t.onDelete})}function JN(t,a=48){if(t.length<=a)return t;const s=t.slice(0,12),i=t.slice(t.length-(a-12-1));return`${s}…${i}`}function eT({skill:t}){const[a,s]=m.useState(!1),i=(t.sourcePath??t.dir)||"—",c=m.useCallback(async()=>{var f;try{await((f=navigator.clipboard)==null?void 0:f.writeText(i)),s(!0),setTimeout(()=>s(!1),1500),mv(se.toasts.pathCopied,"info")}catch{mv(se.toasts.permissionDenied,"error")}},[i]),u=t.origin==="installed"?"Project":"Skills",d=t.origin==="installed"?"var(--status-installed)":"var(--status-own)";return r.jsxs("div",{"data-testid":"detail-header",style:{background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px",boxShadow:"none"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",marginBottom:4},children:[r.jsx("span",{"data-testid":"detail-header-plugin",children:t.plugin}),r.jsx("span",{"aria-hidden":"true",style:{color:"var(--text-secondary)"},children:"›"}),r.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,color:"var(--text-secondary)",fontSize:11,letterSpacing:.3,textTransform:"uppercase"},children:[r.jsx("span",{"data-origin-dot":t.origin,"aria-label":`Origin: ${u}`,style:{display:"inline-block",width:7,height:7,borderRadius:999,background:d}}),u]})]}),r.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,marginBottom:8},children:[r.jsx("h2",{"data-testid":"detail-header-name",style:{fontFamily:"var(--font-serif)",fontSize:20,fontWeight:500,lineHeight:1.25,color:"var(--text-primary)",margin:0},children:t.skill}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("span",{"data-testid":"detail-header-version",children:r.jsx(ui,{version:t.resolvedVersion??t.version??null,source:t.versionSource,pluginName:t.pluginName??null})}),t.pluginName&&t.pluginVersion&&r.jsxs("span",{"data-testid":"detail-header-plugin-chip",title:`This skill ships in plugin ${t.pluginName} v${t.pluginVersion}. The plugin version is independent of this skill's own version track.`,style:{display:"inline-flex",alignItems:"baseline",gap:4,fontFamily:"var(--font-sans)",fontSize:11,color:"var(--text-tertiary)",padding:"2px 6px",borderRadius:4,background:"var(--surface-1, transparent)",border:"1px solid var(--border-subtle, transparent)",whiteSpace:"nowrap"},children:[r.jsx("span",{children:"from"}),r.jsx("span",{style:{color:"var(--text-secondary)"},children:t.pluginName}),r.jsx("span",{"aria-hidden":"true",children:"@"}),r.jsx("span",{style:{fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums",color:"var(--text-secondary)"},children:t.pluginVersion})]}),t.origin==="source"&&r.jsx("button",{type:"button","data-testid":"detail-header-delete","aria-label":"Delete skill",title:"Delete skill",onClick:()=>{typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:request-delete",{detail:{skill:t}}))},className:"flex items-center justify-center transition-colors duration-150",style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-tertiary)",padding:4,borderRadius:4},onMouseEnter:f=>{f.currentTarget.style.color="var(--red)"},onMouseLeave:f=>{f.currentTarget.style.color="var(--text-tertiary)"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("polyline",{points:"3 6 5 6 21 6"}),r.jsx("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),r.jsx("path",{d:"M10 11v6"}),r.jsx("path",{d:"M14 11v6"}),r.jsx("path",{d:"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"})]})})]})]}),r.jsxs("div",{"data-testid":"detail-header-byline",style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:10,margin:"0 0 8px",fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)"},children:[r.jsx(db,{author:t.author??null,repoUrl:t.repoUrl??t.homepage??null}),r.jsx(fb,{repoUrl:t.repoUrl??null,skillPath:t.skillPath??null,absolutePath:t.dir})]}),r.jsx(tT,{skill:t}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[r.jsx("button",{type:"button","data-testid":"detail-header-path-chip",title:i,"aria-label":`Copy path ${i} to clipboard`,onClick:c,style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",border:"1px solid var(--border-default)",borderRadius:4,background:"transparent",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-secondary)",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",cursor:"pointer"},children:JN(i)}),r.jsxs("button",{"data-testid":"detail-header-copy-path",type:"button",onClick:c,"aria-label":"Copy skill path to clipboard",style:{display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,color:"var(--text-secondary)",fontFamily:"var(--font-sans)",fontSize:11,cursor:"pointer"},children:[r.jsxs("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),r.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),a?"Copied":"Copy"]})]})]})}function tT({skill:t}){const a=t.installMethod,s=t.symlinkTarget;if(!a)return null;let i="";switch(a){case"symlinked":i=s?`Symlinked from ${s}`:"Symlinked (target unresolved)";break;case"copied":i="Copied (independent)";break;case"authored":i="Authored";break;default:return null}return r.jsxs("div",{"data-testid":"detail-header-install-method",style:{display:"flex",alignItems:"center",gap:6,fontSize:11,color:"var(--text-secondary)",fontFamily:"var(--font-sans)",margin:"6px 0 8px"},children:[r.jsx("span",{style:{fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",fontSize:10,color:"var(--text-tertiary)"},children:"Install method"}),r.jsx("span",{style:{fontFamily:"var(--font-mono)"},children:i})]})}function nT({state:t,isReadOnly:a,onDelete:s}){const{plugin:i,skill:c,evals:u,latestBenchmark:d,isDirty:f,caseRunStates:x,regressions:h,iterationCount:y}=t,v=Array.from(x.values()).some(N=>N.status==="running"||N.status==="queued"),b=d==null?void 0:d.overall_pass_rate,S=(u==null?void 0:u.evals.reduce((N,T)=>N+T.assertions.length,0))??0,C=(u==null?void 0:u.evals.length)??0,E=YN(b),w=KN(b);return r.jsxs("div",{className:"flex items-center justify-between px-4 py-2.5",style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-1)",flexShrink:0},children:[r.jsxs("div",{className:"flex items-center gap-2 text-[13px]",children:[r.jsx("span",{style:{color:"var(--text-tertiary)"},children:i}),r.jsx(rT,{}),r.jsx("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:c}),a&&r.jsxs("span",{className:"ml-2 flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:[r.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),"installed"]}),f&&r.jsx("span",{className:"ml-2 text-[10px] font-semibold uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--yellow-muted)",color:"var(--yellow)"},children:"unsaved"}),v&&r.jsxs("span",{className:"ml-2 flex items-center gap-1.5 text-[11px]",style:{color:"var(--accent)"},children:[r.jsx("span",{className:"spinner",style:{width:12,height:12,borderWidth:1.5}}),"Running..."]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[!a&&s&&r.jsx("button",{disabled:v,onClick:()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:request-delete",{detail:{skill:{plugin:i,skill:c,dir:"",hasEvals:!1,hasBenchmark:!1,evalCount:0,assertionCount:0,benchmarkStatus:"missing",lastBenchmark:null,origin:"source"}}}))},title:"Delete skill",className:"flex items-center justify-center transition-colors duration-150",style:{background:"none",border:"none",cursor:v?"not-allowed":"pointer",color:"var(--text-tertiary)",padding:4,opacity:v?.4:1,borderRadius:4},onMouseEnter:N=>{v||(N.currentTarget.style.color="var(--red)")},onMouseLeave:N=>{N.currentTarget.style.color="var(--text-tertiary)"},children:r.jsx(aT,{})}),h.length>0&&r.jsxs("span",{className:"pill",style:{background:"var(--red-muted)",color:"var(--red)"},children:[r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:[r.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),r.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),r.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),h.length," regression",h.length>1?"s":""]}),y>0&&r.jsxs("span",{className:"pill",style:{background:"var(--purple-muted)",color:"var(--purple)"},children:["Iter ",y]}),r.jsx("span",{className:"pill",style:{background:w,color:E},children:b!=null?`${Math.round(b*100)}%`:"--"}),r.jsxs("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:[C," case",C!==1?"s":""," / ",S," assert",S!==1?"s":""]})]})]})}function rT(){return r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",children:r.jsx("polyline",{points:"9 18 15 12 9 6"})})}function aT(){return r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("polyline",{points:"3 6 5 6 21 6"}),r.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),r.jsx("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),r.jsx("line",{x1:"14",y1:"11",x2:"14",y2:"17"})]})}function ga(t){const{title:a,label:s,value:i,subtitle:c,description:u,linkLabel:d,children:f,onClick:x}=t,h=a??s??"",y=typeof x=="function",v=b=>{y&&(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),x==null||x())};return r.jsxs("div",{className:y?"metric-card metric-card-link":"metric-card","data-testid":t["data-testid"],role:y?"button":void 0,tabIndex:y?0:void 0,onClick:y?()=>x==null?void 0:x():void 0,onKeyDown:y?v:void 0,style:{background:"var(--card-bg, var(--bg-surface))",border:"1px solid var(--border, var(--border-default))",borderRadius:6,padding:"1rem",display:"flex",flexDirection:"column",gap:"0.375rem",minWidth:0,height:"100%",cursor:y?"pointer":void 0,wordBreak:"break-word",overflowWrap:"anywhere"},children:[h?r.jsx("div",{"data-testid":t["data-testid"]?`${t["data-testid"]}-title`:void 0,style:{fontFamily:"var(--font-geist-mono, var(--font-mono))",fontSize:"0.5625rem",fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--card-text-muted, var(--text-secondary))"},children:h}):null,r.jsx("div",{"data-testid":t["data-testid"]?`${t["data-testid"]}-value`:void 0,style:{fontFamily:"var(--font-geist-mono, var(--font-mono))",fontSize:"1.375rem",fontWeight:700,color:"var(--card-text, var(--text-primary))",lineHeight:1,fontVariantNumeric:"tabular-nums"},children:String(i)}),c?r.jsx("div",{style:{fontFamily:"var(--font-geist-mono, var(--font-mono))",fontSize:"0.625rem",color:"var(--card-text-muted, var(--text-secondary))"},children:c}):null,u?r.jsx("div",{style:{fontFamily:"var(--font-geist-mono, var(--font-mono))",fontSize:"0.5625rem",color:"var(--card-text-muted, var(--text-secondary))",lineHeight:1.4,opacity:.7},children:u}):null,f?r.jsx("div",{style:{flex:1,marginTop:"0.25rem"},children:f}):null,d?r.jsx("div",{style:{marginTop:"auto",paddingTop:"0.375rem",borderTop:"1px solid var(--border, var(--border-default))",fontFamily:"var(--font-geist-mono, var(--font-mono))",fontSize:"0.625rem",color:"var(--card-text-muted, var(--text-secondary))"},children:d}):null]})}const lT="Benchmarks are the aggregated score of this skill's evals (evals.yaml) run against its tests (tests/). Each test case produces a verdict; the benchmark is the mean pass rate.";function sT(t){const{onNavigate:a}=t,[s,i]=m.useState(t.open??!1),c=m.useCallback(()=>i(!1),[]);m.useEffect(()=>{if(!s)return;const d=f=>{f.key==="Escape"&&c()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[s,c]);const u=m.useCallback(d=>{a==null||a(d),i(!1)},[a]);return r.jsxs("span",{"data-testid":t["data-testid"]??"benchmark-info",style:{position:"relative",display:"inline-flex",alignItems:"center"},children:[r.jsx("button",{type:"button","data-testid":"benchmark-info-trigger","aria-label":"About benchmarks","aria-expanded":!!s,onClick:()=>i(d=>!d),style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"1px solid var(--border-default, var(--border))",borderRadius:999,background:"transparent",color:"var(--text-secondary)",fontSize:11,fontFamily:"var(--font-sans)",cursor:"pointer",lineHeight:1},children:"ℹ"}),s&&r.jsxs("div",{role:"dialog","data-testid":"benchmark-info-popover",style:{position:"absolute",top:"100%",right:0,marginTop:6,zIndex:20,width:280,padding:"10px 12px",background:"var(--bg-surface, var(--surface-1))",border:"1px solid var(--border-default, var(--border))",borderRadius:6,fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-primary)",boxShadow:"0 4px 16px rgba(0,0,0,0.08)"},children:[r.jsx("p",{style:{margin:"0 0 8px",lineHeight:1.45},children:lT}),r.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[r.jsx("button",{type:"button","data-testid":"benchmark-info-link-tests",onClick:()=>u("tests"),style:ef,children:"Tests →"}),r.jsx("button",{type:"button","data-testid":"benchmark-info-link-run",onClick:()=>u("run"),style:ef,children:"Run →"}),r.jsx("button",{type:"button","data-testid":"benchmark-info-close",onClick:c,style:{...ef,marginLeft:"auto",color:"var(--text-secondary)"},children:"Close"})]})]})]})}const ef={background:"transparent",border:"none",padding:0,fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-accent, var(--text-primary))",cursor:"pointer",textDecoration:"underline"};function iT(t){return`gh repo create ${t.trim()||"<repo-name>"} --public --source=. --remote=origin --push`}const oT="Add a GitHub remote: `gh repo create --public --source=.` (replace existing origin if needed).";function cT({value:t}){const[a,s]=m.useState(!1),i=m.useCallback(async()=>{try{await navigator.clipboard.writeText(t),s(!0),setTimeout(()=>s(!1),1500)}catch{}},[t]);return r.jsx("button",{type:"button","data-testid":"publish-status-copy","aria-label":"Copy GitHub setup command",onClick:i,style:{fontSize:11,padding:"3px 8px",borderRadius:4,border:"1px solid var(--border-default, var(--border-subtle))",background:"var(--surface-2)",color:"var(--text-primary)",cursor:"pointer"},children:a?"Copied":"Copy"})}function hv({tone:t,label:a}){const s=t==="ok"?"color-mix(in srgb, var(--color-ok, #22c55e) 18%, transparent)":"color-mix(in srgb, var(--color-own, #f59e0b) 18%, transparent)",i=t==="ok"?"var(--color-ok, #22c55e)":"var(--color-own, #f59e0b)";return r.jsx("span",{style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",borderRadius:999,fontSize:11,fontWeight:500,color:i,background:s},children:a})}function uT(t={}){const{status:a,loading:s}=By();if(s||!a)return null;if(a.status==="github")return r.jsxs("div",{"data-testid":"publish-status-row","data-status":"github",style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",padding:"10px 12px",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:8,background:"var(--bg-surface, var(--surface-1))"},children:[r.jsx(hv,{tone:"ok",label:"Publish-ready"}),r.jsxs("span",{style:{fontSize:12,color:"var(--text-secondary)"},children:["GitHub origin: ",a.githubOrigin]}),r.jsx("div",{style:{marginLeft:"auto"},children:r.jsx(Yy,{remoteUrl:a.githubOrigin??"",provider:t.provider,model:t.model})})]});const i=a.status==="no-git"?iT(t.projectBasename??""):oT;return r.jsxs("div",{"data-testid":"publish-status-row","data-status":a.status,style:{display:"flex",flexDirection:"column",gap:8,padding:"10px 12px",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:8,background:"var(--bg-surface, var(--surface-1))"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[r.jsx(hv,{tone:"warn",label:a.status==="no-git"?"No GitHub repo yet":"Origin is not GitHub"}),r.jsx("span",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Connect GitHub to publish your skills."})]}),r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[r.jsx("code",{"data-testid":"publish-status-command",style:{flex:1,minWidth:0,padding:"6px 10px",borderRadius:4,background:"var(--surface-2)",color:"var(--text-primary)",fontFamily:"var(--font-mono)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-all"},children:i}),r.jsx(cT,{value:i})]})]})}function dT({plugin:t,skill:a}){const[s,i]=m.useState([]),[c,u]=m.useState([]),[d,f]=m.useState(!0),[x,h]=m.useState(null);m.useEffect(()=>{ke.getDependencies(t,a).then(v=>{i(v.mcpDependencies),u(v.skillDependencies)}).catch(()=>{}).finally(()=>f(!1))},[t,a]);async function y(v,b){try{await navigator.clipboard.writeText(b),h(v),setTimeout(()=>h(null),2e3)}catch{}}return d?null:s.length===0&&c.length===0?r.jsx("div",{className:"mb-5 px-4 py-3 rounded-lg text-[12px]",style:{background:"var(--surface-2)",color:"var(--text-tertiary)",border:"1px solid var(--border-subtle)"},children:"No dependencies detected"}):r.jsxs("div",{className:"mb-5 rounded-xl overflow-hidden",style:{border:"1px solid var(--border-subtle)",background:"var(--surface-1)"},children:[r.jsxs("div",{className:"flex items-center gap-2.5 px-5 py-3.5",style:{background:"var(--surface-2)",borderBottom:"1px solid var(--border-subtle)"},children:[r.jsx("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center",style:{background:"rgba(234,179,8,0.15)"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#eab308",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),r.jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}),r.jsx("span",{className:"text-[13px] font-semibold",style:{color:"var(--text-primary)"},children:"Dependencies"}),r.jsx("span",{className:"pill text-[10px]",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:s.length+c.length})]}),r.jsxs("div",{className:"px-5 py-4",children:[s.length>0&&r.jsxs("div",{className:"space-y-3 mb-4",children:[r.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"MCP Servers"}),s.map(v=>r.jsxs("div",{className:"p-3 rounded-lg",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex items-center justify-between mb-2",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-[13px] font-medium",style:{color:"var(--text-primary)"},children:v.server}),r.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:v.transport})]}),r.jsx("button",{onClick:()=>y(v.server,v.configSnippet),className:"btn btn-ghost text-[11px] py-1 px-2",style:{color:x===v.server?"var(--green)":"var(--accent)"},children:x===v.server?r.jsxs(r.Fragment,{children:[r.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"20 6 9 17 4 12"})})," Copied!"]}):r.jsxs(r.Fragment,{children:[r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),r.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})," Copy Config"]})})]}),r.jsx("div",{className:"text-[11px] mb-2 font-mono",style:{color:"var(--text-tertiary)"},children:v.url}),r.jsx("div",{className:"flex flex-wrap gap-1.5",children:v.matchedTools.map(b=>r.jsx("span",{className:"px-2 py-0.5 rounded text-[10px] font-mono",style:{background:"var(--surface-3)",color:"var(--text-secondary)"},children:b},b))})]},v.server))]}),c.length>0&&r.jsxs("div",{children:[r.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-wider mb-2",style:{color:"var(--text-tertiary)"},children:"Skill Dependencies"}),r.jsx("div",{className:"space-y-1.5",children:c.map(v=>r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:[r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"})}),r.jsx("span",{className:"text-[12px] font-medium",style:{color:"var(--text-primary)"},children:v.name}),r.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded",style:{background:"var(--surface-3)",color:"var(--text-tertiary)"},children:v.source==="frontmatter"?"frontmatter":"referenced"})]},v.name))})]})]})]})}function fT({plugin:t,skill:a}){const[s,i]=m.useState([]),[c,u]=m.useState(!0),[d,f]=m.useState(null),[x,h]=m.useState(""),[y,v]=m.useState(!1),[b,S]=m.useState(null),[C,E]=m.useState(""),[w,N]=m.useState(""),[T,A]=m.useState(!1),[I,L]=m.useState(new Set),H=m.useCallback(async()=>{u(!0);try{const[_,$]=await Promise.all([ke.getCredentials(t,a).catch(()=>({credentials:[]})),ke.getParams(t,a).catch(()=>({params:[]}))]),q=new Map($.params.map(U=>[U.name,U])),K=new Set,Q=[];for(const U of _.credentials){K.add(U.name);const M=q.get(U.name);Q.push({name:U.name,status:U.status==="ready"||U.status==="resolved"?"ready":"missing",source:U.source,maskedValue:M==null?void 0:M.maskedValue})}for(const U of $.params)K.has(U.name)||Q.push({name:U.name,status:U.status,maskedValue:U.maskedValue});i(Q)}finally{u(!1)}},[t,a]);m.useEffect(()=>{H()},[H]);const k=m.useCallback(async _=>{if(I.has(_)){L($=>{const q=new Set($);return q.delete(_),q}),i($=>$.map(q=>q.name===_?{...q,revealedValue:void 0}:q));return}try{const q=(await ke.getParamsRevealed(t,a,_)).params.find(K=>K.name===_);q&&(i(K=>K.map(Q=>Q.name===_?{...Q,revealedValue:q.value}:Q)),L(K=>new Set(K).add(_)))}catch{}},[t,a,I]),O=async(_,$)=>{if(!(!_.trim()||!$.trim())){v(!0),S(null);try{await ke.setCredential(t,a,_,$),f(null),h(""),L(new Set),H()}catch(q){S(q.message)}finally{v(!1)}}},z=async()=>{if(!(!C.trim()||!w.trim())){v(!0),S(null);try{await ke.setCredential(t,a,C.trim().toUpperCase(),w),E(""),N(""),A(!1),H()}catch(_){S(_.message)}finally{v(!1)}}};return c?r.jsxs("div",{className:"mt-6",children:[r.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider mb-2",style:{color:"var(--text-tertiary)"},children:"Parameters & Secrets"}),r.jsx("div",{className:"skeleton h-20 rounded-xl"})]}):r.jsxs("div",{className:"mt-6",children:[r.jsxs("div",{className:"flex items-center justify-between mb-2",children:[r.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Parameters & Secrets"}),r.jsx("button",{onClick:()=>A(!T),className:"text-[11px] transition-colors duration-150",style:{color:"var(--accent)",background:"none",border:"none",cursor:"pointer"},children:"+ Add Parameter"})]}),b&&r.jsx("div",{className:"mb-2 px-3 py-2 rounded-lg text-[11px]",style:{background:"var(--red-muted)",color:"var(--red)"},children:b}),s.length===0&&!T?r.jsx("div",{className:"text-[12px] text-center py-6 rounded-xl",style:{color:"var(--text-tertiary)",background:"var(--surface-2)"},children:"No credentials configured for this skill"}):r.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid var(--border-subtle)"},children:s.map(_=>r.jsxs("div",{className:"flex items-center gap-3 px-3 py-2.5",style:{borderBottom:"1px solid var(--border-subtle)",background:"var(--surface-1)"},children:[r.jsx("span",{className:"text-[11px] font-mono font-medium truncate",style:{color:"var(--text-primary)",minWidth:80},children:_.name}),_.maskedValue&&r.jsx("span",{className:"text-[10px] font-mono truncate",style:{color:"var(--text-tertiary)",maxWidth:120},children:I.has(_.name)&&_.revealedValue!=null?_.revealedValue:_.maskedValue}),_.maskedValue&&r.jsx("button",{onClick:()=>k(_.name),className:"btn btn-ghost px-1",title:I.has(_.name)?"Hide value":"Reveal value",style:{color:"var(--text-tertiary)",lineHeight:1},children:I.has(_.name)?r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"}),r.jsx("path",{d:"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"}),r.jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),r.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}),r.jsx("span",{className:"text-[10px] font-semibold px-2 py-0.5 rounded-full",style:{background:_.status==="ready"?"var(--green-muted)":"var(--orange-muted)",color:_.status==="ready"?"var(--green)":"var(--orange)"},children:_.status==="ready"?"ready":"missing"}),_.source&&r.jsx("span",{className:"text-[9px]",style:{color:"var(--text-tertiary)"},children:_.source}),d===_.name?r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("input",{value:x,onChange:$=>h($.target.value),onKeyDown:$=>{$.key==="Enter"&&O(_.name,x)},className:"input-field text-[11px] font-mono",style:{width:160},placeholder:"Value...",autoFocus:!0}),r.jsx("button",{onClick:()=>O(_.name,x),disabled:y||!x.trim(),className:"btn btn-primary text-[10px] px-2 py-0.5",children:y?"...":"Save"}),r.jsx("button",{onClick:()=>{f(null),h("")},className:"btn btn-ghost text-[10px] px-1",children:r.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}):r.jsx("button",{onClick:()=>{f(_.name),h("")},className:"btn btn-ghost text-[10px] px-2 py-0.5",style:{color:"var(--accent)"},children:"Edit"})]},_.name))}),T&&r.jsxs("div",{className:"mt-2 p-3 rounded-lg",style:{background:"var(--surface-2)",border:"1px solid var(--border-subtle)"},children:[r.jsxs("div",{className:"flex gap-2 mb-2",children:[r.jsx("input",{value:C,onChange:_=>E(_.target.value),className:"input-field flex-1 text-[11px] font-mono",placeholder:"KEY_NAME",autoFocus:!0}),r.jsx("input",{value:w,onChange:_=>N(_.target.value),onKeyDown:_=>{_.key==="Enter"&&z()},className:"input-field flex-1 text-[11px] font-mono",placeholder:"Value",type:"password"})]}),r.jsxs("div",{className:"flex justify-end gap-1.5",children:[r.jsx("button",{onClick:()=>{A(!1),E(""),N("")},className:"btn btn-ghost text-[10px]",children:"Cancel"}),r.jsx("button",{onClick:z,disabled:y||!C.trim()||!w.trim(),className:"btn btn-primary text-[10px]",children:y?"Saving...":"Save"})]})]})]})}function xv({children:t}){return r.jsx("h3",{style:{fontFamily:"var(--font-sans)",fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:.6,color:"var(--text-tertiary)",margin:"0 0 8px"},children:t})}function pT({plugin:t,skill:a}){return r.jsxs("aside",{"data-testid":"skill-overview-rightrail",style:{display:"flex",flexDirection:"column",gap:16},children:[r.jsxs("section",{"data-testid":"overview-rightrail-setup",children:[r.jsx(xv,{children:"Setup"}),r.jsx(dT,{plugin:t,skill:a})]}),r.jsxs("section",{"data-testid":"overview-rightrail-credentials",children:[r.jsx(xv,{children:"Credentials"}),r.jsx(fT,{plugin:t,skill:a})]})]})}function mT(t){if(t==null||!Number.isFinite(t))return"—";if(t<1024)return`${t} B`;const a=t/1024;if(a<1024)return a>=10?`${Math.round(a)} KB`:`${a.toFixed(1).replace(/\.0$/,"")} KB`;const s=a/1024;return s>=10?`${Math.round(s)} MB`:`${s.toFixed(1).replace(/\.0$/,"")} MB`}function Hs(t){if(!t)return"—";const a=new Date(t);if(Number.isNaN(a.getTime()))return t;const s=Date.now()-a.getTime(),i=Math.floor(s/1e3);if(i<60)return"just now";const c=Math.floor(i/60);if(c<60)return`${c} min ago`;const u=Math.floor(c/60);if(u<24)return`${u} hr ago`;const d=Math.floor(u/24);if(d<30)return`${d} day${d===1?"":"s"} ago`;const f=Math.floor(d/30);if(f<12)return`${f} month${f===1?"":"s"} ago`;const x=Math.floor(f/12);return`${x} year${x===1?"":"s"} ago`}function hT(t){switch(t.benchmarkStatus){case"pass":case"fail":case"stale":return t.benchmarkStatus==="pass"?"100%":t.benchmarkStatus==="fail"?"0%":"—";default:return"—"}}function xT(t){const a=t.installMethod;if(!a)return null;const s=a==="authored"?"Authored":a==="copied"?"Copied":"Symlinked";return r.jsx("span",{"data-testid":"overview-install-method",style:{display:"inline-flex",alignItems:"center",padding:"1px 6px",border:"1px solid var(--border-default, var(--border))",borderRadius:4,fontFamily:"var(--font-mono, var(--font-geist-mono))",fontSize:10,color:"var(--text-secondary)",textTransform:"uppercase",letterSpacing:.4},children:s})}function gT(t){var v,b;const{skill:a,onNavigate:s,activationsCount:i=0,lastRunIso:c=null,repoUrl:u,skillPathInRepo:d}=t,f=u??(vT(a.homepage)?a.homepage??null:null),x=((v=a.mcpDeps)==null?void 0:v.length)??0,h=((b=a.deps)==null?void 0:b.length)??0,y=r.jsxs("div",{"data-testid":"skill-overview-main",style:{display:"flex",flexDirection:"column",gap:12},children:[r.jsxs("header",{"data-testid":"skill-overview-header",style:{position:"sticky",top:0,zIndex:5,display:"flex",flexDirection:"column",gap:6,padding:"10px 12px",background:"var(--bg-surface, var(--surface-1))",border:"1px solid var(--border-default, var(--border))",borderRadius:8},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[r.jsx("h2",{"data-testid":"skill-overview-name",style:{fontFamily:"var(--font-serif, var(--font-sans))",fontSize:18,fontWeight:500,color:"var(--text-primary)",margin:0,lineHeight:1.2},children:a.skill}),r.jsx(ui,{version:a.resolvedVersion??a.version??null,source:a.versionSource,pluginName:a.pluginName??null}),xT(a)]}),r.jsxs("div",{"data-testid":"skill-overview-byline",style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:10,fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)"},children:[r.jsx(db,{author:a.author??null,repoUrl:f}),a.category?r.jsxs("span",{children:["· ",a.category]}):null,r.jsx(fb,{repoUrl:f,skillPath:d??null,absolutePath:a.dir}),a.lastModified?r.jsxs("span",{title:a.lastModified,children:["· Updated ",Hs(a.lastModified)]}):null]})]}),r.jsx(uT,{}),r.jsxs("div",{"data-testid":"skill-overview-grid",className:"skill-overview-grid",style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:"0.75rem",alignItems:"stretch"},children:[r.jsx(ga,{title:"Benchmark",value:hT(a),subtitle:a.lastBenchmark?Hs(a.lastBenchmark):"Never run","data-testid":"metric-benchmark",onClick:s?()=>s("run"):void 0,children:r.jsx("div",{style:{marginTop:4,display:"inline-flex",alignItems:"center"},children:r.jsx(sT,{onNavigate:s})})}),r.jsx(ga,{title:"Tests",value:a.evalCount??0,subtitle:`${a.assertionCount??0} assertions`,"data-testid":"metric-tests",onClick:s?()=>s("tests"):void 0}),r.jsx(ga,{title:"Activations",value:i,subtitle:c?`Last: ${Hs(c)}`:"Never","data-testid":"metric-activations",onClick:s?()=>s("activation"):void 0}),r.jsx(ga,{title:"Last run",value:Hs(c??a.lastBenchmark??null),"data-testid":"metric-last-run",onClick:s?()=>s("history"):void 0}),r.jsx(ga,{title:"MCP deps",value:x,subtitle:x>0&&a.mcpDeps?a.mcpDeps.slice(0,3).join(", "):"None","data-testid":"metric-mcp-deps",onClick:s?()=>s("deps"):void 0}),r.jsx(ga,{title:"Skill deps",value:h,subtitle:h>0&&a.deps?a.deps.slice(0,3).join(", "):"None","data-testid":"metric-skill-deps",onClick:s?()=>s("deps"):void 0}),r.jsx(ga,{title:"Size",value:mT(a.sizeBytes),"data-testid":"metric-size"}),r.jsx(ga,{title:"Last modified",value:Hs(a.lastModified),subtitle:a.lastModified??void 0,"data-testid":"metric-last-modified"})]})]});return r.jsxs("div",{"data-testid":"skill-overview",className:"skill-overview",style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) 280px",gap:16,padding:16,alignItems:"start"},children:[y,r.jsx(pT,{plugin:a.plugin,skill:a.skill})]})}function vT(t){return t?/^https?:\/\/(?:www\.)?(?:github\.com|raw\.githubusercontent\.com)\//.test(t):!1}function yT({skill:t}){const{onSkillUpdated:a}=cr(),{toast:s}=ac(),[i,c]=m.useState("idle"),[u,d]=m.useState(null),[f,x]=m.useState(!1),[h,y]=m.useState(null),[v,b]=m.useState(!1),S=m.useRef(null),C=m.useCallback(async()=>{if(!t||i==="updating")return;const T=new AbortController;S.current=T,c("updating"),d(null);try{const A=await ke.postSkillUpdate(t.plugin,t.skill,T.signal);if(A.ok)c("done"),a(t.plugin,t.skill),s({message:`Updated ${t.skill}.`,severity:"success",durationMs:4e3});else{const I=`Update failed (HTTP ${A.status}): ${A.body}`;c("idle"),d(I),s({message:`Couldn't update ${t.skill} — HTTP ${A.status}`,severity:"error",durationMs:0,action:{label:"Retry",onInvoke:()=>{C()}}})}}catch(A){if(A instanceof DOMException&&A.name==="AbortError")return;const I=A instanceof Error?A.message:"Network error";c("idle"),d(I),s({message:`Couldn't update ${t.skill} — ${I}`,severity:"error",durationMs:0,action:{label:"Retry",onInvoke:()=>{C()}}})}finally{S.current===T&&(S.current=null)}},[t,i,a,s]);if(m.useEffect(()=>{if(!f||h!=null||!t||!t.latestVersion)return;let T=!1;return b(!0),ke.getVersionDiff(t.plugin,t.skill,t.currentVersion??"",t.latestVersion).then(A=>{T||y(A)}).catch(()=>{T||y(null)}).finally(()=>{T||b(!1)}),()=>{T=!0}},[f,h,t==null?void 0:t.plugin,t==null?void 0:t.skill,t==null?void 0:t.latestVersion,t==null?void 0:t.currentVersion,t]),m.useEffect(()=>()=>{var T;(T=S.current)==null||T.abort()},[]),!t||t.updateAvailable!==!0)return null;const E=t.latestVersion,w=i==="updating"?"Updating…":E?`Update to ${E}`:"Update",N=i==="updating";return r.jsxs("div",{"data-testid":"update-action",style:{display:"flex",flexDirection:"column",gap:6,padding:"12px 16px",borderTop:"1px solid var(--border-default)",borderBottom:"1px solid var(--border-default)"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[r.jsx("button",{type:"button","data-testid":"update-action-button",onClick:()=>{C()},disabled:N,style:{height:36,padding:"0 14px",background:"var(--color-ink)",color:"var(--color-paper)",border:"none",borderRadius:4,cursor:N?"not-allowed":"pointer",fontFamily:"var(--font-sans)",fontSize:13,fontWeight:500},children:w}),r.jsx("button",{type:"button","data-testid":"update-action-toggle-changelog",onClick:()=>x(T=>!T),disabled:N||!E,style:{background:"transparent",border:"none",color:"var(--text-secondary)",fontSize:12,fontFamily:"var(--font-sans)",cursor:"pointer",textDecoration:"underline"},children:f?"Hide changelog":"Preview changelog"})]}),i==="updating"&&r.jsx("div",{"data-testid":"update-action-progress",role:"status",style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted, var(--text-secondary))"},children:"Updating…"}),u&&i!=="updating"&&r.jsx("div",{"data-testid":"update-action-error",role:"alert",style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--color-error, #d32f2f)"},children:u}),f&&E&&r.jsxs("div",{"data-testid":"update-action-changelog",style:{paddingTop:8},children:[v&&r.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Loading changelog…"}),!v&&h&&r.jsx(Kf,{contentDiff:h.contentDiff,fromLabel:h.from,toLabel:h.to,diffSummary:h.diffSummary??void 0,renderContext:"inline"}),!v&&!h&&r.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:"Couldn't load changelog."})]})]})}const bT=3e4;function jT({plugin:t,skill:a,trackedForUpdates:s=!0,discoveryBackedOff:i=!1}){const c=cr(),[u,d]=m.useState(!1),[f,x]=m.useState(!1),[,h]=m.useState(0),y=m.useRef(null),v=m.useRef(null),b=`${t}/${a}`,S=c.updatesById.get(b);if(m.useEffect(()=>{if(!u)return;const E=setInterval(()=>h(w=>(w+1)%1e6),250);return()=>clearInterval(E)},[u]),m.useEffect(()=>{if(!u||!S)return;const E=v.current??0;S.receivedAt<E||(y.current&&(clearTimeout(y.current),y.current=null),d(!1),x(!1),v.current=null)},[u,S]),m.useEffect(()=>()=>{y.current&&clearTimeout(y.current)},[]),s===!1||i)return null;const C=async()=>{if(!u){x(!1),d(!0),v.current=Date.now(),y.current=setTimeout(()=>{d(!1),x(!0),y.current=null,v.current=null},bT);try{await ke.rescanSkill(t,a)}catch{y.current&&(clearTimeout(y.current),y.current=null),d(!1),v.current=null}}};return r.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[r.jsx("button",{type:"button","data-testid":"check-now-button",onClick:C,disabled:u,style:{height:26,padding:"0 10px",background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,color:"var(--text-secondary)",fontFamily:"var(--font-sans)",fontSize:12,cursor:u?"not-allowed":"pointer"},children:"Check now"}),u&&r.jsx("span",{"data-testid":"check-now-spinner","aria-label":"Checking for updates",role:"status",style:{display:"inline-block",width:10,height:10,borderRadius:"50%",border:"2px solid var(--text-secondary)",borderTopColor:"transparent",animation:"check-now-spin 800ms linear infinite"}}),f&&r.jsx("span",{"data-testid":"check-now-no-changes",style:{fontSize:11,color:"var(--text-secondary)",fontFamily:"var(--font-sans)"},children:"No changes detected"})]})}function ST(t,a){var s;typeof process<"u"&&((s=process==null?void 0:process.env)==null?void 0:s.NODE_ENV)==="production"||console.warn(`[SubTabBar] sub-tab "${a}" clicked under "${t}" but no onChange handler was wired. Pass an onChange prop or this click is a no-op.`)}function kT({tabs:t,active:a,onChange:s,parentTabId:i}){const[c,u]=m.useState(null),d=f=>{s?s(f):ST(i,f)};return r.jsx("div",{role:"tablist","aria-label":`${i} sub-sections`,"data-testid":`detail-subtab-bar-${i}`,style:{display:"flex",alignItems:"stretch",gap:2,borderBottom:"1px solid var(--border-subtle, var(--border-default))",padding:"0 16px",background:"var(--bg-canvas)",overflowX:"auto"},children:t.map(f=>{const x=f.id===a,h=c===f.id&&!x;return r.jsx("button",{type:"button",role:"tab","aria-selected":x,tabIndex:x?0:-1,id:`detail-subtab-${i}-${f.id}`,"data-testid":`detail-subtab-${i}-${f.id}`,onClick:()=>d(f.id),onMouseEnter:()=>u(f.id),onMouseLeave:()=>u(y=>y===f.id?null:y),style:{background:h?"var(--surface-2, rgba(0,0,0,0.04))":"transparent",border:"none",borderBottom:x?"2px solid var(--text-primary)":"2px solid var(--border-subtle, transparent)",padding:"8px 10px",marginBottom:-1,fontFamily:"var(--font-sans)",fontSize:13,fontWeight:x?500:400,color:x?"var(--text-primary)":"var(--text-secondary)",cursor:"pointer",whiteSpace:"nowrap",transition:"background 80ms ease"},children:f.label},f.id)})})}const wT=[{id:"overview",label:"Overview"},{id:"edit",label:"Edit",visibleWhen:({isReadOnly:t})=>!t},{id:"run",label:"Run"},{id:"history",label:"History"}];function mb(t){return wT.filter(a=>a.visibleWhen?a.visibleWhen({isReadOnly:t}):!0)}const CT={tests:{tab:"run",mode:"benchmark"},trigger:{tab:"run",mode:"activation"},activation:{tab:"run",mode:"activation"},versions:{tab:"history",view:"versions"},leaderboard:{tab:"history",view:"models"},editor:{tab:"edit"},overview:{tab:"overview"},edit:{tab:"edit"},run:{tab:"run"},history:{tab:"history"}};function Jo(t){return t?CT[t]??null:null}function Nf(t){const a=new URLSearchParams(t),s=a.get("tab"),i=a.get("panel");return Jo(s)??Jo(i)??{tab:"overview"}}function hb(t,a){return!a||new Set(mb(!0).map(i=>i.id)).has(t)?t:"overview"}const Il={run:[{id:"benchmark",label:"Benchmark"},{id:"activation",label:"Activation"},{id:"ab",label:"A/B"}],history:[{id:"timeline",label:"Timeline"},{id:"models",label:"Models"},{id:"versions",label:"Versions"}]};function Xs(t){const a=Il[t];return a&&a.length>0?a[0].id:""}function xb(t,a){const s=Il[t];if(!s)return"";const i=new URLSearchParams(a),c=t==="run"?"mode":t==="history"?"view":"sub",u=i.get(c)??i.get("sub");return u&&s.some(d=>d.id===u)?u:s[0].id}function ET(t){return t==="run"?"mode":t==="history"?"view":null}function NT(t){switch(t){case"editor":case"tests":case"deps":return{tab:"edit"};case"run":return{tab:"run",mode:"benchmark"};case"activation":return{tab:"run",mode:"activation"};case"history":return{tab:"history",view:"timeline"};case"leaderboard":return{tab:"history",view:"models"};case"versions":return{tab:"history",view:"versions"};default:return{tab:"overview"}}}function tf(){const{state:t,setMobileView:a}=cr();return t.isMobile?r.jsxs("button",{onClick:()=>a("list"),className:"flex items-center gap-1.5 px-3 py-2 text-[12px] font-medium",style:{background:"var(--surface-1)",color:"var(--text-secondary)",border:"none",borderBottom:"1px solid var(--border-subtle)",cursor:"pointer",width:"100%"},children:[r.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:r.jsx("polyline",{points:"15 18 9 12 15 6"})}),"Back to skills"]}):null}function TT(t={}){if(t.selectedSkillInfo!==void 0||t.loadError!==void 0)return RT(t);const{state:a,selectSkill:s,setMode:i,refreshSkills:c}=cr(),[u,d]=m.useState(typeof window<"u"?window.location.hash:"");if(m.useEffect(()=>{const h=()=>d(window.location.hash);return window.addEventListener("hashchange",h),()=>window.removeEventListener("hashchange",h)},[]),u==="#/updates")return r.jsxs("div",{className:"h-full overflow-auto animate-fade-in",children:[r.jsx(tf,{}),r.jsx(ub,{})]});if(a.mode==="create")return r.jsxs("div",{className:"h-full overflow-auto animate-fade-in",children:[r.jsx(tf,{}),r.jsx(FN,{onCreated:async(h,y)=>{i("browse"),await c(),s({plugin:h,skill:y,origin:"source"})},onCancel:()=>i("browse")})]});if(!a.selectedSkill)return a.skillsError?r.jsx(Gs,{variant:"error",message:a.skillsError,onRetry:c}):!a.skillsLoading&&a.skills.length===0?r.jsx(Gs,{variant:"no-skills"}):!a.skillsLoading&&a.skills.length>0&&!a.skills.some(h=>h.scopeV2==="available-project")?r.jsx(Gs,{variant:"no-project-skills"}):r.jsx(Gs,{variant:"no-selection"});const f=a.selectedSkill,x=a.skills.find(h=>h.plugin===f.plugin&&h.skill===f.skill)??null;return r.jsxs("div",{className:"flex flex-col h-full",children:[r.jsx(tf,{}),r.jsx(AT,{skillInfo:x,allSkills:a.skills,onSelectSkill:h=>s(h)})]})}function RT(t){const a=t.selectedSkillInfo??null,s=t.activeDetailTab??"overview";if(a==null)return MT();if(t.loadError)return zT(a,t.loadError);const i=t.allSkills&&t.onSelectSkill?{allSkills:t.allSkills,onSelectSkill:t.onSelectSkill}:void 0,c=t.activeDetailSub??Xs(s);return gb(a,s,t.onDetailTabChange,c,t.onDetailSubChange,i)}function AT({skillInfo:t,allSkills:a,onSelectSkill:s}){const i=m.useMemo(()=>typeof window>"u"?{tab:"overview"}:Nf(window.location.search),[]),[c,u]=m.useState(i.tab),[d,f]=m.useState(()=>i.mode?i.mode:i.view?i.view:xb(i.tab,typeof window<"u"?window.location.search:""));m.useEffect(()=>{if(!t||!(t.origin==="installed"))return;const y=hb(c,!0);y!==c&&(u(y),typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:"This skill is read-only — workbench tabs are hidden.",severity:"info"}})))},[t,c]),m.useEffect(()=>{f(Xs(c))},[c]),m.useEffect(()=>{if(typeof window>"u")return;const h=new URLSearchParams(window.location.search);h.delete("panel"),h.delete("sub"),c==="overview"?h.delete("tab"):h.set("tab",c);const y=ET(c),v=Il[c];h.delete("mode"),h.delete("view"),y&&v&&d&&d!==v[0].id&&h.set(y,d);const b=h.toString(),S=`${window.location.pathname}${b?"?"+b:""}${window.location.hash}`;window.history.replaceState(null,"",S)},[c,d]);const x=m.useMemo(()=>t?gb(t,c,u,d,f,{}):r.jsx(Gs,{variant:"no-selection"}),[t,c,d,a,s]);return r.jsx("div",{className:"flex flex-col h-full",style:{background:"var(--bg-canvas)"},children:x})}function LT(t,a,s){const i=mb(s);return r.jsx("div",{role:"tablist","aria-label":"Detail sections","data-testid":"detail-tab-bar",style:{display:"flex",alignItems:"stretch",gap:4,borderBottom:"1px solid var(--border-default)",padding:"0 16px",background:"var(--bg-canvas)",overflowX:"auto"},children:i.map(({id:c,label:u})=>{const d=c===t;return r.jsx("button",{type:"button",role:"tab","aria-selected":d,tabIndex:d?0:-1,id:`detail-tab-${c}`,"aria-controls":`detail-panel-${c}`,"data-testid":`detail-tab-${c}`,onClick:()=>a==null?void 0:a(c),style:{background:"transparent",border:"none",borderBottom:d?"2px solid var(--text-primary)":"2px solid transparent",padding:"10px 8px",marginBottom:-1,fontFamily:"var(--font-sans)",fontSize:13,fontWeight:d?500:400,color:d?"var(--text-primary)":"var(--text-secondary)",cursor:"pointer",whiteSpace:"nowrap"},children:u},c)})})}function MT(){return r.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:32,background:"var(--bg-canvas)"},children:[r.jsx("h2",{style:{fontFamily:"var(--font-serif)",fontSize:20,fontWeight:500,color:"var(--text-primary)",margin:0,marginBottom:8},children:"Select a skill to view details"}),r.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-secondary)",margin:0,maxWidth:420,textAlign:"center"},children:"Choose a skill from the sidebar — its frontmatter, filesystem info, and benchmark status will appear here."})]})}function zT(t,a){return r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:24,background:"var(--bg-canvas)",height:"100%"},children:[pb({skill:t}),r.jsxs("section",{role:"alert",style:{background:"var(--bg-surface)",border:"1px solid var(--border-default)",borderRadius:8,padding:"14px 16px"},children:[r.jsxs("h3",{style:{fontFamily:"var(--font-serif)",fontSize:15,fontWeight:500,color:"var(--text-primary)",margin:"0 0 8px"},children:["Couldn't load SKILL.md for ",t.skill]}),r.jsx("p",{style:{fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-secondary)",margin:"0 0 12px",wordBreak:"break-word"},children:a})]})]})}function DT({active:t,sub:a}){if(t==="edit")return r.jsx(ME,{});if(t==="run"){const s=QE(a)?a:"benchmark";return r.jsx(ZE,{mode:s})}if(t==="history"){const s=_N(a)?a:"timeline";return r.jsx(ON,{view:s})}return null}function _T({active:t,sub:a}){const{state:s,dispatch:i}=nr();return m.useEffect(()=>{if(t==="overview")return;const c=t==="edit"?"editor":t==="run"?a==="activation"?"activation":"run":t==="history"?a==="models"?"leaderboard":a==="versions"?"versions":"history":"editor";s.activePanel!==c&&i({type:"SET_PANEL",panel:c})},[t,a,s.activePanel,i]),null}function gb(t,a,s,i="",c,u){var b;const d=t.origin==="installed",f=hb(a,d),x=S=>{const C=NT(S);s==null||s(C.tab),c&&(C.mode?c(C.mode):C.view&&c(C.view))},h=r.jsx(gT,{skill:t,onNavigate:x,repoUrl:t.homepage??null}),y=u!=null?r.jsxs($C,{plugin:t.plugin,skill:t.skill,origin:t.origin,children:[r.jsx(_T,{active:f,sub:i}),r.jsx(DT,{active:f,sub:i})]},`${t.plugin}/${t.skill}`):r.jsxs("div",{style:{padding:16,fontFamily:"var(--font-sans)",color:"var(--text-secondary)",fontSize:13},children:["Select a skill from the sidebar to load its ",f," view."]}),v=t.origin==="installed"&&r.jsxs("div",{"data-testid":"read-only-banner",style:{display:"flex",alignItems:"center",gap:8,padding:"8px 16px",background:"var(--surface-2)",color:"var(--text-secondary)",borderBottom:"1px solid var(--border-subtle)",fontFamily:"var(--font-sans)",fontSize:12},children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,color:"var(--text-tertiary)"},children:[r.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),r.jsx("span",{style:{flex:1,minWidth:0},children:"This is an installed copy of the skill. Editing, generating tests, and running evals are disabled. Open the source skill to make changes."}),t.trackedForUpdates&&r.jsx("button",{type:"button","data-testid":"uninstall-button","aria-label":`Uninstall ${t.skill}`,onClick:()=>{typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:request-uninstall",{detail:{skill:{plugin:t.plugin,skill:t.skill,dir:t.dir??"",hasEvals:!1,hasBenchmark:!1,evalCount:0,assertionCount:0,benchmarkStatus:"missing",lastBenchmark:null,origin:"installed"}}}))},style:{flexShrink:0,marginLeft:8,padding:"3px 10px",fontSize:11,fontWeight:500,fontFamily:"var(--font-sans)",color:"var(--text-primary)",background:"transparent",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:4,cursor:"pointer"},children:"Uninstall"})]});return r.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--bg-canvas)"},children:[r.jsx("div",{style:{padding:16,paddingBottom:12},children:pb({skill:t})}),r.jsx(yT,{skill:t}),v,t.origin==="installed"&&t.scopeV2!=="available-plugin"&&r.jsx("div",{style:{padding:"8px 16px",borderBottom:"1px solid var(--border-default)"},children:r.jsx(jT,{plugin:t.plugin,skill:t.skill,trackedForUpdates:t.trackedForUpdates})}),LT(f,s,d),Il[f]&&r.jsx(kT,{parentTabId:f,tabs:Il[f],active:i||(((b=Il[f][0])==null?void 0:b.id)??""),onChange:c}),r.jsx("div",{role:"tabpanel",id:`detail-panel-${f}`,"aria-labelledby":`detail-tab-${f}`,"data-testid":`detail-panel-${f}`,style:{flex:1,minHeight:0,overflow:"auto"},children:f==="overview"?h:y})]})}function OT(){const{updateCount:t,state:a,dismissUpdateNotification:s}=cr(),i=t>0&&!a.updateNotificationDismissed;return m.useEffect(()=>{if(!i)return;const c=setTimeout(()=>s(),1e4);return()=>clearTimeout(c)},[i,s]),i?r.jsxs("div",{className:"fixed bottom-4 right-4 z-50 flex items-center gap-3 px-4 py-3 rounded-lg text-[13px] font-medium animate-fade-in",style:{background:"var(--yellow-muted)",border:"1px solid var(--yellow)",color:"var(--text-primary)"},children:[r.jsxs("span",{children:[t," update",t===1?"":"s"," available"]}),r.jsx("button",{onClick:()=>{window.location.hash="#/updates"},className:"px-2 py-0.5 rounded text-[12px] font-semibold",style:{background:"var(--yellow)",color:"var(--surface-0)",border:"none",cursor:"pointer"},children:"View Updates"}),r.jsx("button",{onClick:s,className:"text-[14px] leading-none",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",padding:"0 2px"},"aria-label":"Dismiss",children:"✕"})]}):null}const BT=[{name:se.shortcuts.groupNavigation,items:[{keys:"/",label:se.shortcuts.search},{keys:"j",label:se.shortcuts.moveDown},{keys:"k",label:se.shortcuts.moveUp},{keys:"Enter",label:se.shortcuts.openSelected},{keys:"Esc",label:"Close / clear"}]},{name:se.shortcuts.groupActions,items:[{keys:"⌘K",label:se.shortcuts.openPalette},{keys:"?",label:se.shortcuts.openShortcuts},{keys:"⌘B",label:se.shortcuts.toggleSidebar},{keys:"E",label:se.actions.edit}]},{name:se.shortcuts.groupTheme,items:[{keys:"⌘⇧D",label:se.shortcuts.toggleTheme}]}];function IT({open:t,onClose:a,groups:s=BT,title:i=se.shortcuts.title}){const c=m.useRef(null),u=m.useRef(null);return m.useEffect(()=>{var d;if(t)return c.current=document.activeElement??null,(d=u.current)==null||d.focus(),()=>{var f,x;(x=(f=c.current)==null?void 0:f.focus)==null||x.call(f),c.current=null}},[t]),m.useEffect(()=>{if(!t)return;function d(f){var x;if(f.key==="Escape"){f.preventDefault(),a();return}f.key==="Tab"&&(f.preventDefault(),(x=u.current)==null||x.focus())}return window.addEventListener("keydown",d,!0),()=>window.removeEventListener("keydown",d,!0)},[t,a]),t?r.jsx("div",{role:"presentation","data-testid":"shortcut-modal",style:{position:"fixed",inset:0,background:"color-mix(in srgb, var(--bg-canvas) 70%, transparent)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:60},onClick:d=>{d.target===d.currentTarget&&a()},children:r.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"shortcut-modal-title",style:{width:"min(480px, 92vw)",maxHeight:"80vh",overflow:"auto",background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:8,boxShadow:"0 16px 48px rgba(0,0,0,0.18)",padding:"16px 20px",fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[r.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[r.jsx("h2",{id:"shortcut-modal-title",style:{margin:0,fontFamily:"var(--font-serif)",fontWeight:500,fontSize:18},children:i}),r.jsx("button",{ref:u,type:"button","aria-label":"Close",onClick:a,style:{background:"transparent",border:"1px solid var(--border-default)",borderRadius:4,padding:"2px 8px",color:"var(--text-secondary)",cursor:"pointer",fontSize:13},children:"Esc"})]}),s.map(d=>r.jsxs("section",{style:{marginBottom:12},children:[r.jsx("h3",{style:{fontSize:10,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--text-secondary)",margin:"0 0 6px"},children:d.name}),r.jsx("ul",{style:{listStyle:"none",margin:0,padding:0},children:d.items.map(f=>r.jsxs("li",{style:{display:"flex",justifyContent:"space-between",padding:"4px 0",borderTop:"1px solid var(--border-default)",fontSize:13},children:[r.jsx("span",{children:f.label}),r.jsx("kbd",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-secondary)",border:"1px solid var(--border-default)",borderRadius:3,padding:"1px 6px"},children:f.keys})]},`${d.name}:${f.keys}`))})]},d.name))]})}):null}function $T(t){const a=se.actions,s=[{action:"open",label:a.open},{action:"copy-path",label:a.copyPath},{action:"reveal",label:a.revealInEditor},{action:"run-benchmark",label:a.runBenchmark}];if(t.origin==="source")return[...s,{action:"edit",label:a.edit},{action:"duplicate",label:a.duplicate},{action:"delete",label:a.delete}];const i=[...s];return t.updateAvailable&&i.push({action:"update",label:a.update}),i.push({action:"uninstall",label:a.uninstall}),i.push({action:"delete",label:a.delete,disabled:!0,title:a.deletePluginTooltip}),i}function UT({state:t,onClose:a,onAction:s,itemsOverride:i}){const c=m.useRef(null),u=m.useRef(null),[d,f]=m.useState(0),x=m.useMemo(()=>t.skill?i??$T(t.skill):[],[t.skill,i]),h=m.useMemo(()=>{if(typeof window>"u")return{left:t.x,top:t.y};const v=8,b=220,S=44+x.length*28;let C=t.x,E=t.y;return C+b+v>window.innerWidth&&(C=Math.max(v,t.x-b)),E+S+v>window.innerHeight&&(E=Math.max(v,t.y-S)),{left:C,top:E}},[t.x,t.y,x.length]);m.useEffect(()=>{if(t.open)return u.current=document.activeElement??null,f(0),requestAnimationFrame(()=>{var v;(v=c.current)==null||v.focus()}),()=>{var v,b;(b=(v=u.current)==null?void 0:v.focus)==null||b.call(v),u.current=null}},[t.open]);const y=m.useCallback(()=>{if(!t.skill)return;const v=x[d];!v||v.disabled||(s(v.action,t.skill),a())},[x,d,t.skill,s,a]);return m.useEffect(()=>{if(!t.open)return;function v(S){if(S.key==="Escape"){S.preventDefault(),a();return}if(S.key==="ArrowDown"){S.preventDefault(),f(C=>Math.min(C+1,Math.max(x.length-1,0)));return}if(S.key==="ArrowUp"){S.preventDefault(),f(C=>Math.max(C-1,0));return}if(S.key==="Enter"||S.key===" "){S.preventDefault(),y();return}}function b(S){c.current&&S.target instanceof Node&&(c.current.contains(S.target)||a())}return window.addEventListener("keydown",v,!0),window.addEventListener("mousedown",b,!0),()=>{window.removeEventListener("keydown",v,!0),window.removeEventListener("mousedown",b,!0)}},[t.open,a,x.length,y]),!t.open||!t.skill?null:r.jsx("div",{ref:c,role:"menu",tabIndex:-1,"data-testid":"context-menu",style:{position:"fixed",left:h.left,top:h.top,zIndex:70,minWidth:200,padding:4,background:"var(--bg-canvas)",border:"1px solid var(--border-default)",borderRadius:6,boxShadow:"0 12px 32px rgba(0,0,0,0.16)",fontFamily:"var(--font-sans)",fontSize:13,color:"var(--text-primary)",outline:"none"},children:x.map((v,b)=>r.jsx("div",{role:"menuitem","aria-disabled":v.disabled||void 0,title:v.title||void 0,"data-action":v.action,"data-selected":b===d||void 0,onMouseEnter:()=>f(b),onClick:()=>{v.disabled||(s(v.action,t.skill),a())},style:{padding:"5px 10px",borderRadius:4,cursor:v.disabled?"default":"pointer",opacity:v.disabled?.5:1,background:b===d?"color-mix(in srgb, var(--accent-surface) 10%, transparent)":"transparent"},children:v.label},v.action))})}const gv=t=>`${t.plugin}/${t.skill}`;function vv(t){const a=(t==null?void 0:t.delayMs)??1e4,s=t==null?void 0:t.onCommit,i=t==null?void 0:t.onFailure,c=(t==null?void 0:t.apiCall)??ke.deleteSkill.bind(ke),u=m.useRef(s),d=m.useRef(i),f=m.useRef(c);u.current=s,d.current=i,f.current=c;const x=m.useRef(new Map),[,h]=m.useState(0),y=m.useCallback(()=>h(w=>w+1),[]),v=m.useCallback(async w=>{var N,T;try{await f.current(w.skill.plugin,w.skill.skill),(N=u.current)==null||N.call(u,w.skill)}catch(A){(T=d.current)==null||T.call(d,w.skill,A)}finally{x.current.delete(gv(w.skill)),y()}},[y]),b=m.useCallback(w=>{const N=gv(w),T=x.current.get(N);T!=null&&T.timeoutId&&clearTimeout(T.timeoutId);const A={skill:w,timeoutId:null};A.timeoutId=setTimeout(()=>{A.timeoutId=null,v(A)},a),x.current.set(N,A),y()},[a,v,y]),S=m.useCallback(w=>{const N=x.current.get(w);N&&(N.timeoutId&&clearTimeout(N.timeoutId),x.current.delete(w),y())},[y]),C=m.useCallback(async()=>{const w=Array.from(x.current.values());for(const N of w)N.timeoutId&&(clearTimeout(N.timeoutId),N.timeoutId=null);await Promise.all(w.map(N=>v(N)))},[v]),E=m.useCallback(w=>x.current.has(w),[]);return m.useEffect(()=>{const w=()=>{C()};return window.addEventListener("beforeunload",w),()=>{window.removeEventListener("beforeunload",w)}},[C]),m.useEffect(()=>{const w=x.current;return()=>{for(const N of w.values())N.timeoutId&&(clearTimeout(N.timeoutId),N.timeoutId=null,v(N));w.clear()}},[]),{enqueueDelete:b,cancelDelete:S,flushPending:C,isPending:E}}const HT={"anthropic-api":{name:se.setupProviders.anthropic.name,description:se.setupProviders.anthropic.description,envVars:se.setupProviders.anthropic.envVars,keyUrl:se.setupProviders.anthropic.keyUrl,learnMoreUrl:se.setupProviders.anthropic.learnMoreUrl},openai:{name:se.setupProviders.openai.name,description:se.setupProviders.openai.description,envVars:se.setupProviders.openai.envVars,keyUrl:se.setupProviders.openai.keyUrl,learnMoreUrl:se.setupProviders.openai.learnMoreUrl},openrouter:{name:se.setupProviders.openrouter.name,description:se.setupProviders.openrouter.description,envVars:se.setupProviders.openrouter.envVars,keyUrl:se.setupProviders.openrouter.keyUrl,learnMoreUrl:se.setupProviders.openrouter.learnMoreUrl},gemini:{name:se.setupProviders.gemini.name,description:se.setupProviders.gemini.description,envVars:se.setupProviders.gemini.envVars,keyUrl:se.setupProviders.gemini.keyUrl,learnMoreUrl:se.setupProviders.gemini.learnMoreUrl},ollama:{name:se.setupProviders.ollama.name,description:se.setupProviders.ollama.description,envVars:se.setupProviders.ollama.envVars,install:[se.setupProviders.ollama.installCmd],start:[se.setupProviders.ollama.startCmd],pullExample:se.setupProviders.ollama.pullExample,learnMoreUrl:se.setupProviders.ollama.learnMoreUrl},"lm-studio":{name:se.setupProviders.lmStudio.name,description:se.setupProviders.lmStudio.description,envVars:se.setupProviders.lmStudio.envVars,install:[se.setupProviders.lmStudio.installCmd],start:[se.setupProviders.lmStudio.startCmd],pullExample:se.setupProviders.lmStudio.pullExample,learnMoreUrl:se.setupProviders.lmStudio.learnMoreUrl},"claude-code":{name:se.setupProviders.claudeCode.name,description:se.setupProviders.claudeCode.description,envVars:[],notes:[se.setupProviders.claudeCode.loginHint,se.claudeCodeLabel.compactLabel],learnMoreUrl:se.setupProviders.claudeCode.learnMoreUrl}};function PT(t){return t?HT[t]??null:null}function VT({open:t,providerKey:a,onClose:s}){const i=m.useRef(null);if(m.useEffect(()=>{if(!t)return;const d=f=>{f.key==="Escape"&&(f.preventDefault(),s())};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[t,s]),m.useEffect(()=>{if(!t)return;const d=i.current;if(!d)return;const f=d.querySelector("button, a[href], [tabindex]:not([tabindex='-1']), input, textarea, select");f==null||f.focus()},[t]),!t||typeof document>"u")return null;const c=PT(a),u=(c==null?void 0:c.name)??se.setupDrawer.fallbackTitle;return rc.createPortal(r.jsxs(r.Fragment,{children:[r.jsx("div",{"data-testid":"setup-drawer-backdrop","aria-hidden":"true",onClick:s,style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.4)",zIndex:99,animation:"vskillDrawerBackdropIn 120ms ease"}}),r.jsxs("div",{"data-testid":"setup-drawer",ref:i,role:"dialog","aria-modal":"true","aria-label":se.setupDrawer.title(u),style:{position:"fixed",top:0,right:0,bottom:0,width:"480px",maxWidth:"100vw",background:"var(--bg-surface, var(--surface-1))",borderLeft:"1px solid var(--border-default, var(--border-subtle))",boxShadow:"-8px 0 32px rgba(0,0,0,0.18)",display:"flex",flexDirection:"column",zIndex:100,fontFamily:"var(--font-sans)",animation:"vskillDrawerIn 200ms cubic-bezier(0.2, 0, 0, 1)"},children:[r.jsx(FT,{title:u,onClose:s}),r.jsx("div",{"data-testid":"setup-drawer-body",style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:c?r.jsx(GT,{content:c}):r.jsx(WT,{})}),r.jsx("style",{children:`@keyframes vskillDrawerIn {
112
- from { transform: translateX(100%); }
113
- to { transform: translateX(0); }
114
- }
115
- @keyframes vskillDrawerBackdropIn {
116
- from { opacity: 0; }
117
- to { opacity: 1; }
118
- }`})]})]}),document.body)}function FT({title:t,onClose:a}){return r.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 20px",borderBottom:"1px solid var(--border-default, var(--border-subtle))"},children:[r.jsx("h2",{style:{fontFamily:"var(--font-serif)",fontSize:18,fontWeight:500,margin:0,color:"var(--text-primary)"},children:se.setupDrawer.title(t)}),r.jsx("button",{type:"button","data-testid":"setup-drawer-close",onClick:a,"aria-label":se.setupDrawer.close,style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",fontSize:18,padding:4,lineHeight:1},children:"×"})]})}function GT({content:t}){var a,s;return r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[r.jsx("p",{style:{fontSize:14,lineHeight:1.5,color:"var(--text-primary)",margin:0},children:t.description}),t.notes&&t.notes.length>0&&r.jsx("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:6},children:t.notes.map(i=>r.jsx("li",{style:{fontSize:13,color:"var(--text-secondary)",padding:"8px 10px",background:"color-mix(in srgb, var(--accent-surface) 8%, transparent)",borderRadius:4},children:i},i))}),t.envVars.length>0&&r.jsxs("section",{children:[r.jsx("h3",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--text-secondary)",margin:"0 0 8px"},children:se.setupDrawer.requiredEnv}),r.jsx("ul",{style:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:6},children:t.envVars.map(i=>r.jsx("li",{children:r.jsx(qT,{name:i})},i))})]}),t.keyUrl&&r.jsx(YT,{href:t.keyUrl,label:se.setupDrawer.getKey,testId:"setup-drawer-get-key"}),(t.install||t.start||t.pullExample)&&r.jsxs("section",{children:[r.jsx("h3",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--text-secondary)",margin:"0 0 8px"},children:se.setupDrawer.installRun}),r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(a=t.install)==null?void 0:a.map((i,c)=>r.jsx(nf,{code:i},`install-${c}`)),(s=t.start)==null?void 0:s.map((i,c)=>r.jsx(nf,{code:i},`start-${c}`)),t.pullExample&&r.jsx(nf,{code:t.pullExample})]})]}),r.jsx("footer",{style:{marginTop:8},children:r.jsxs("a",{href:t.learnMoreUrl,target:"_blank",rel:"noopener noreferrer","data-testid":"setup-drawer-learn-more",style:{fontSize:12,color:"var(--color-accent, var(--accent-surface))",textDecoration:"none"},children:[se.setupDrawer.learnMore," →"]})})]})}function WT(){return r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[r.jsx("h3",{style:{margin:0,fontFamily:"var(--font-serif)",fontSize:16,fontWeight:500,color:"var(--text-primary)"},children:se.setupDrawer.fallbackTitle}),r.jsx("p",{style:{margin:0,fontSize:13,color:"var(--text-secondary)",lineHeight:1.5},children:se.setupDrawer.fallbackBody})]})}function qT({name:t}){const a=async()=>{var s;try{await((s=navigator.clipboard)==null?void 0:s.writeText(t))}catch{}};return r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",background:"color-mix(in srgb, var(--border-default) 30%, transparent)",borderRadius:4},children:[r.jsx("code",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text-primary)",flex:1},children:t}),r.jsx("button",{type:"button",onClick:a,"aria-label":`Copy ${t} to clipboard`,style:{background:"transparent",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:3,padding:"2px 8px",color:"var(--text-secondary)",fontSize:11,fontFamily:"var(--font-sans)",cursor:"pointer"},children:se.setupDrawer.copy})]})}function nf({code:t}){return r.jsx("pre",{style:{margin:0,padding:"8px 10px",background:"var(--bg-canvas, #111)",color:"var(--text-primary)",fontFamily:"var(--font-mono)",fontSize:11.5,lineHeight:1.5,borderRadius:4,border:"1px solid var(--border-default, var(--border-subtle))",overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t})}function YT({href:t,label:a,testId:s}){return r.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer","data-testid":s,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 14px",borderRadius:6,border:"1px solid var(--border-default, var(--border-subtle))",background:"color-mix(in srgb, var(--accent-surface) 12%, transparent)",color:"var(--text-primary)",textDecoration:"none",fontSize:13,fontWeight:500,fontFamily:"var(--font-sans)",width:"fit-content"},children:[a," →"]})}function KT(){const[t,a]=m.useState(!1),[s,i]=m.useState(null),c=m.useRef(null),u=m.useCallback((f,x)=>{var h;c.current=typeof document<"u"?document.activeElement:null,(h=x==null?void 0:x.beforeOpen)==null||h.call(x),i(f),a(!0)},[]),d=m.useCallback(()=>{a(!1);const f=c.current;f&&"focus"in f&&typeof f.focus=="function"&&queueMicrotask(()=>f.focus())},[]);return m.useMemo(()=>({open:u,close:d,isOpen:t,providerKey:s}),[u,d,t,s])}function XT(t){const a=[],s=[],i=new Set;for(const c of t){if(c.presence==="absent"||c.health==="missing"){s.push({kind:"individual",key:c.id,agent:c});continue}if(c.sharedFolderGroup&&c.sharedFolderGroup.length>1){const u=[...c.sharedFolderGroup].sort().join("+");if(i.has(u))continue;i.add(u);const d=t.filter(f=>c.sharedFolderGroup.includes(f.id));a.push({kind:"aggregate",key:`shared:${u}`,consumers:d,sharedFolderPath:c.sharedFolderPath??"~/.config/agents/skills",combinedCount:d.reduce((f,x)=>f+x.globalCount,0)});continue}a.push({kind:"individual",key:c.id,agent:c})}return{detected:a,notDetected:s}}function QT({agents:t,activeAgentId:a,focusedAgentId:s,onFocusAgent:i,onSwitch:c,onOpenSetup:u,onClose:d}){const f=m.useRef(null);m.useEffect(()=>{const y=v=>{v.key==="Escape"&&(v.preventDefault(),d())};return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[d]),m.useEffect(()=>{const y=b=>{f.current&&!f.current.contains(b.target)&&d()},v=setTimeout(()=>{document.addEventListener("mousedown",y)},0);return()=>{clearTimeout(v),document.removeEventListener("mousedown",y)}},[d]);const x=m.useMemo(()=>XT(t),[t]),h=t.find(y=>y.id===s)??t.find(y=>y.id===a)??t[0];return typeof document>"u"?null:rc.createPortal(r.jsxs("div",{ref:f,"data-testid":"agent-scope-picker-popover",role:"dialog","aria-label":se.scopePicker.popoverTitle,style:{position:"fixed",top:96,left:"50%",transform:"translateX(-50%)",width:600,maxWidth:"calc(100vw - 32px)",background:"var(--bg-surface, var(--surface-1))",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:8,boxShadow:"0 18px 40px rgba(0,0,0,0.25)",overflow:"hidden",zIndex:90,animation:"scopePickerFadeIn 120ms cubic-bezier(0.2, 0, 0, 1)"},children:[r.jsxs("div",{style:{display:"flex",height:360,maxHeight:"60vh"},children:[r.jsxs("section",{"data-testid":"agent-scope-picker-agents",style:{width:260,borderRight:"1px solid var(--border-default, var(--border-subtle))",overflowY:"auto",padding:"6px 0"},children:[x.detected.length===0&&x.notDetected.length===0&&r.jsx(yv,{}),x.detected.map(y=>y.kind==="aggregate"?r.jsx(JT,{row:y,onFocus:()=>{var v;return i(((v=y.consumers[0])==null?void 0:v.id)??a??"")}},y.key):r.jsx(ZT,{agent:y.agent,focused:y.agent.id===s,active:y.agent.id===a,onClick:()=>i(y.agent.id)},y.key)),x.notDetected.length>0&&r.jsxs(r.Fragment,{children:[r.jsx("div",{"data-testid":"agent-scope-not-detected-subheading",title:"These agents were not found on this machine. Hover a row to see which folder detection looked for.",style:{padding:"10px 14px 4px",fontSize:10,fontWeight:600,letterSpacing:"0.08em",textTransform:"uppercase",color:"var(--text-tertiary)"},children:se.scopePicker.notDetectedSubheading}),x.notDetected.map(y=>r.jsx(eR,{agent:y.agent},y.key))]})]}),r.jsx("section",{"data-testid":"agent-scope-picker-stats",style:{flex:1,overflowY:"auto",padding:"14px 16px"},children:h?r.jsx(tR,{agent:h,activeAgentId:a,onSwitch:()=>c(h.id)}):r.jsx(yv,{})})]}),r.jsx("style",{children:`@keyframes scopePickerFadeIn {
119
- from { opacity: 0; transform: translateX(-50%) translateY(2px); }
120
- to { opacity: 1; transform: translateX(-50%) translateY(0); }
121
- }`})]}),document.body)}function ZT({agent:t,focused:a,active:s,onClick:i}){const c=t.health==="ok"?"var(--color-ok, #22c55e)":t.health==="stale"?"var(--color-own, #f59e0b)":"var(--text-tertiary)";return r.jsxs("button",{type:"button","data-testid":"agent-scope-row","data-agent-id":t.id,"data-active":s?"true":"false",onClick:i,style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 14px",background:a?"color-mix(in srgb, var(--accent-surface) 10%, transparent)":"transparent",border:"none",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:c,flexShrink:0}}),r.jsx("span",{style:{flex:1,fontSize:13},children:t.displayName}),r.jsxs("span",{title:"project · personal · plugins",style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:[t.installedCount,"·",t.globalCount,"·",t.pluginCount??0]})]})}function JT({row:t,onFocus:a}){return r.jsxs("button",{type:"button","data-testid":"agent-scope-shared-folder-row",onClick:a,style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:4,width:"100%",padding:"8px 14px",background:"transparent",border:"none",borderTop:"1px dashed var(--border-subtle)",borderBottom:"1px dashed var(--border-subtle)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[r.jsx("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-secondary)"},children:t.sharedFolderPath}),r.jsxs("span",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[t.consumers.map(s=>r.jsx("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:10,background:"color-mix(in srgb, var(--color-global) 20%, transparent)",color:"var(--text-primary)"},children:s.id},s.id)),r.jsxs("span",{style:{fontSize:10,color:"var(--text-secondary)",fontFamily:"var(--font-mono)"},children:["· ",t.combinedCount," skills"]})]})]})}function eR({agent:t}){const a=t.isRemoteOnly?`${t.displayName} is a web-only product — no local CLI or folder to detect.`:t.resolvedGlobalDir?`Looked for ${t.resolvedGlobalDir} — not found.`:`${t.displayName} was not found on this machine.`;return r.jsxs("div",{"data-testid":`agent-scope-not-detected-row-${t.id}`,title:a,style:{display:"flex",alignItems:"center",gap:10,padding:"6px 14px",color:"var(--text-secondary)",fontFamily:"var(--font-sans)",fontSize:12},children:[r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:"var(--text-tertiary)",flexShrink:0}}),r.jsx("span",{style:{flex:1},children:t.displayName}),t.isRemoteOnly&&r.jsx("span",{"data-testid":`agent-scope-remote-badge-${t.id}`,"aria-label":"Remote-only agent",title:"Web-only agent — no local CLI to install skills into. Use the agent's web UI to load skills.",style:{background:"color-mix(in srgb, var(--text-tertiary) 18%, transparent)",border:"1px solid var(--border-default, var(--border-subtle))",borderRadius:10,padding:"1px 8px",color:"var(--text-secondary)",fontSize:10,letterSpacing:"0.04em",textTransform:"uppercase"},children:"Remote"})]})}function tR({agent:t,activeAgentId:a,onSwitch:s}){const i=t.id===a,c=t.isRemoteOnly===!0,u=i||c,d=i?"Active":c?"Remote-only":se.scopePicker.switchCta;return r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[r.jsxs("div",{children:[r.jsx("div",{style:{fontFamily:"var(--font-serif)",fontSize:16,fontWeight:500,color:"var(--text-primary)"},children:t.displayName}),r.jsx("div",{style:{fontSize:11,color:"var(--text-secondary)",marginTop:2},children:c?"Remote service — no local install":rR(t.health)})]}),r.jsxs("dl",{style:{display:"grid",gridTemplateColumns:"auto 1fr",gap:"4px 12px",margin:0,fontSize:12},children:[r.jsx(_o,{label:se.scopePicker.statsInstalled,value:String(t.installedCount)}),r.jsx(_o,{label:se.scopePicker.statsGlobal,value:String(t.globalCount)}),r.jsx(_o,{label:se.scopePicker.statsPlugins,value:String(t.pluginCount??0)}),r.jsx(_o,{label:se.scopePicker.statsLastSync,value:t.lastSync?nR(t.lastSync):"—"})]}),r.jsx("button",{type:"button","data-testid":"agent-scope-switch",onClick:s,disabled:u,title:c?"This agent has no local CLI to switch to":void 0,style:{alignSelf:"flex-start",padding:"8px 14px",borderRadius:6,border:"1px solid var(--border-default, var(--border-subtle))",background:u?"transparent":"color-mix(in srgb, var(--accent-surface) 20%, transparent)",color:"var(--text-primary)",fontSize:12,fontWeight:500,fontFamily:"var(--font-sans)",cursor:u?"default":"pointer",opacity:u?.5:1},children:d})]})}function _o({label:t,value:a}){return r.jsxs(r.Fragment,{children:[r.jsx("dt",{style:{color:"var(--text-secondary)",margin:0},children:t}),r.jsx("dd",{style:{color:"var(--text-primary)",margin:0,fontFamily:"var(--font-mono)",fontVariantNumeric:"tabular-nums"},children:a})]})}function yv(){return r.jsx("div",{style:{padding:"16px 18px",fontSize:12,color:"var(--text-secondary)"},children:"No agents detected yet."})}function nR(t){try{const a=new Date(t).getTime(),s=Date.now()-a;if(Number.isNaN(a))return"—";const i=Math.round(s/6e4);if(i<1)return"just now";if(i<60)return`${i}m ago`;const c=Math.round(i/60);return c<24?`${c}h ago`:`${Math.round(c/24)}d ago`}catch{return"—"}}function rR(t){switch(t){case"ok":return se.scopePicker.statsHealthOk;case"stale":return se.scopePicker.statsHealthStale;case"missing":return se.scopePicker.statsHealthMissing}}function aR(t){const a=new Map;for(const s of t.sharedFolders??[])for(const i of s.consumers)a.set(i,s);return t.agents.map(s=>{const i=a.get(s.id);return{id:s.id,displayName:s.displayName,presence:s.detected?"detected":"absent",installedCount:s.localSkillCount,globalCount:s.globalSkillCount,pluginCount:s.pluginSkillCount??0,lastSync:s.lastSync,health:s.health,sharedFolderGroup:i?i.consumers:void 0,sharedFolderPath:i?i.path:void 0,isRemoteOnly:s.isRemoteOnly,resolvedGlobalDir:s.resolvedGlobalDir}})}function lR({agents:t,activeAgentId:a,onActiveAgentChange:s,onOpenSetup:i}){const[c,u]=m.useState(!1),[d,f]=m.useState(null),x=m.useRef(null),h=m.useMemo(()=>t.find(S=>S.id===a)??t[0]??null,[t,a]),y=m.useMemo(()=>h?h.health==="ok"?"var(--color-ok, #22c55e)":h.health==="stale"?"var(--color-own, #f59e0b)":"var(--text-tertiary)":"var(--text-tertiary)",[h]),v=m.useCallback(()=>{var S;u(!1),(S=x.current)==null||S.focus()},[]),b=m.useCallback(S=>{s(S),u(!1)},[s]);return r.jsxs(r.Fragment,{children:[r.jsxs("button",{ref:x,type:"button","data-testid":"agent-scope-picker-trigger","aria-haspopup":"dialog","aria-expanded":c,onClick:()=>u(S=>!S),onKeyDown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),u(!0))},style:{display:"flex",alignItems:"center",gap:10,height:"40px",width:"100%",padding:"0 14px",background:"var(--bg-surface, var(--surface-1))",border:"none",borderBottom:"1px solid var(--border-default, var(--border-subtle))",cursor:"pointer",color:"var(--text-primary)",fontFamily:"var(--font-sans)",fontSize:13,fontWeight:500,textAlign:"left",position:"sticky",top:0,zIndex:2},children:[r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:y,flexShrink:0}}),r.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:(h==null?void 0:h.displayName)??"Select agent"}),r.jsxs("span",{title:"project · personal · plugins",style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-secondary)",fontVariantNumeric:"tabular-nums"},children:["(",(h==null?void 0:h.installedCount)??0," · ",(h==null?void 0:h.globalCount)??0," · ",(h==null?void 0:h.pluginCount)??0,")"]}),r.jsx("span",{"aria-hidden":"true",style:{fontSize:10,color:"var(--text-secondary)"},children:"▾"})]}),c&&r.jsx(QT,{agents:t,activeAgentId:a,focusedAgentId:d??a,onFocusAgent:f,onSwitch:b,onOpenSetup:S=>{i(S),v()},onClose:v})]})}const vb="vskill-ccode-banner-dismissed",sR=new Set(["claude-cli","claude-code"]);function iR(){try{return sessionStorage.getItem(vb)==="true"}catch{return!1}}function oR(){try{sessionStorage.setItem(vb,"true")}catch{}}function cR({activeAgentId:t}){const[a,s]=m.useState(()=>iR()),i=m.useCallback(()=>{typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:open-setup-drawer",{detail:{provider:"claude-code"}}))},[]),c=m.useCallback(()=>{oR(),s(!0)},[]);return!t||!sR.has(t)||a?null:r.jsxs("div",{"data-testid":"claude-code-first-use-banner",role:"note","aria-label":"Claude Code session info",style:{display:"flex",alignItems:"flex-start",gap:10,padding:"8px 12px",borderBottom:"1px solid var(--border-default, var(--border-subtle))",background:"color-mix(in srgb, var(--accent-surface) 8%, transparent)",fontFamily:"var(--font-sans)",fontSize:12,color:"var(--text-primary)",lineHeight:1.45},children:[r.jsx("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:"var(--color-ok, #22c55e)",marginTop:6,flexShrink:0}}),r.jsxs("div",{style:{flex:1,minWidth:0},children:[r.jsxs("span",{children:[se.claudeCodeLabel.firstUseBanner," "]}),r.jsx("button",{type:"button","data-testid":"claude-code-first-use-banner-learn-more",onClick:i,style:{background:"transparent",border:"none",padding:0,color:"var(--color-accent, var(--accent-surface))",cursor:"pointer",textDecoration:"underline",fontFamily:"inherit",fontSize:"inherit"},children:se.claudeCodeLabel.learnMore})]}),r.jsx("button",{type:"button","data-testid":"claude-code-first-use-banner-dismiss",onClick:c,"aria-label":"Dismiss Claude Code info banner",style:{background:"transparent",border:"none",color:"var(--text-secondary)",cursor:"pointer",fontSize:14,lineHeight:1,padding:2,flexShrink:0},children:"×"})]})}function uR(){const[t,a]=m.useState(null),[s,i]=m.useState("loading"),[c,u]=m.useState(null),d=m.useCallback(async()=>{try{const f=await ke.getAgents();a(f),i("ready"),u(null)}catch(f){i("error"),u(f.message)}},[]);return m.useEffect(()=>{d()},[d]),m.useEffect(()=>{const f=()=>void d();return window.addEventListener("studio:agent-changed",f),()=>window.removeEventListener("studio:agent-changed",f)},[d]),{status:s,response:t,error:c,refresh:()=>void d()}}const Oo="workspace",dR=["skills","agents"];async function fR(){const t=await fetch("/api/workspace");if(!t.ok)throw new Error(`GET /api/workspace failed: ${t.status}`);return await t.json()}async function pR(t){const a=await fetch("/api/workspace/active",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:t})});if(!a.ok){const s=await a.json().catch(()=>({}));throw new Error(s.error??`POST /api/workspace/active failed: ${a.status}`)}return await a.json()}async function mR(t){const a=await fetch("/api/workspace/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){const s=await a.json().catch(()=>({}));throw new Error(s.error??`POST /api/workspace/projects failed: ${a.status}`)}return await a.json()}async function hR(t){const a=await fetch(`/api/workspace/projects/${encodeURIComponent(t)}`,{method:"DELETE"});if(!a.ok){const s=await a.json().catch(()=>({}));throw new Error(s.error??`DELETE /api/workspace/projects/${t} failed: ${a.status}`)}return await a.json()}function rf(){for(const t of dR)Bn(t)}function xR(){const{data:t,loading:a,error:s,revalidate:i}=qa(Oo,fR),c=t,u=c==null?void 0:c.projects.find(h=>h.id===c.activeProjectId),d=m.useCallback(async h=>{await pR(h),Bn(Oo),rf()},[]),f=m.useCallback(async h=>{await mR(h),Bn(Oo),rf()},[]),x=m.useCallback(async h=>{await hR(h),Bn(Oo),rf()},[]);return{workspace:c,activeProject:u,loading:a,error:s,switchProject:d,addProject:f,removeProject:x,revalidate:i}}function gR({workspace:t,onSwitch:a,onAdd:s,onRemove:i,isPathStale:c}){const[u,d]=m.useState(!1),[f,x]=m.useState(!1),[h,y]=m.useState(""),[v,b]=m.useState(null),[S,C]=m.useState(null),[E,w]=m.useState(null),[N,T]=m.useState(!1),A=m.useRef(null),I=(t==null?void 0:t.projects)??[],L=I.find(z=>z.id===(t==null?void 0:t.activeProjectId));m.useEffect(()=>{if(!u)return;function z(_){A.current&&!A.current.contains(_.target)&&(d(!1),x(!1),b(null))}return document.addEventListener("mousedown",z),()=>document.removeEventListener("mousedown",z)},[u]);async function H(){b(null);const z=h.trim();if(!z){b("Paste an absolute path (e.g. /Users/you/projects/my-skill)");return}if(!z.startsWith("/")&&!/^[A-Za-z]:[\\/]/.test(z)){b("Path must be absolute. In Terminal, cd to the folder and run: pwd — then paste the result here.");return}try{await s({path:z}),y(""),x(!1)}catch(_){const $=_ instanceof Error?_.message:String(_);/does not exist/i.test($)?b(`Path not found on disk: ${z}`):/Duplicate/i.test($)?b("That project is already registered."):b($)}}async function k(){if(b(null),typeof window<"u"&&"showDirectoryPicker"in window)try{const z=await window.showDirectoryPicker();y(z.name),x(!0)}catch{}else x(!0)}function O(z){if(z.length<=50)return z;const _=z.split("/");return _.length<=4?z:`${_.slice(0,3).join("/")}/…/${_.slice(-2).join("/")}`}return r.jsxs("div",{ref:A,"data-vskill-project-picker":!0,style:{position:"relative",display:"inline-block"},children:[r.jsxs("button",{type:"button",onClick:()=>d(z=>!z),"aria-expanded":u,"aria-haspopup":"menu",title:(L==null?void 0:L.path)??"No project selected",style:{display:"flex",alignItems:"center",gap:8,padding:"4px 10px",border:"1px solid transparent",borderRadius:6,background:u?"var(--surface-2, rgba(0,0,0,0.05))":"transparent",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:13,color:"var(--text-primary)",transition:"background-color 120ms ease"},children:[r.jsx("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:"50%",flexShrink:0,backgroundColor:(L==null?void 0:L.colorDot)??"var(--text-tertiary, #999)"}}),r.jsx("span",{style:{maxWidth:180,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:L?L.name:"No project"}),r.jsx("span",{"aria-hidden":!0,style:{fontSize:10,color:"var(--text-tertiary, #999)",marginLeft:2},children:u?"▴":"▾"})]}),u&&r.jsxs("div",{role:"menu","aria-label":"Switch project",style:{position:"absolute",top:"calc(100% + 4px)",left:0,minWidth:280,maxWidth:420,width:"max-content",background:"var(--color-paper, #fff)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:8,boxShadow:"0 4px 6px -1px rgba(0,0,0,0.08), 0 10px 20px -5px rgba(0,0,0,0.12)",overflow:"hidden",zIndex:50,fontFamily:"var(--font-sans)"},children:[I.length===0&&r.jsx("div",{style:{padding:"16px 16px 12px",fontSize:12,color:"var(--text-tertiary)",lineHeight:1.5},children:"No projects registered. Add one to get started."}),I.length>0&&r.jsx("ul",{role:"none",style:{listStyle:"none",margin:0,padding:4,maxHeight:320,overflowY:"auto"},children:I.map(z=>{const _=c?c(z.path):!1,$=z.id===(t==null?void 0:t.activeProjectId),q=S===z.id;return r.jsxs("li",{role:"menuitem","data-stale":_?"true":"false",onMouseEnter:()=>C(z.id),onMouseLeave:()=>C(K=>K===z.id?null:K),onClick:()=>{if(!_){if($){d(!1);return}w(z)}},style:{display:"flex",alignItems:"center",gap:10,padding:"8px 10px",borderRadius:6,cursor:_?"not-allowed":"pointer",background:q&&!_?"var(--surface-2, rgba(0,0,0,0.04))":$?"var(--surface-1, rgba(0,0,0,0.02))":"transparent",opacity:_?.5:1,transition:"background-color 120ms ease"},children:[r.jsx("span",{"aria-hidden":!0,style:{width:10,height:10,borderRadius:"50%",flexShrink:0,backgroundColor:z.colorDot,boxShadow:$?"0 0 0 2px color-mix(in oklch, currentColor 20%, transparent)":"none"}}),r.jsxs("div",{style:{flex:1,minWidth:0},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:13,fontWeight:$?600:500,color:"var(--text-primary)",lineHeight:1.3},children:[r.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:z.name}),$&&r.jsx("span",{"aria-label":"Active",style:{fontSize:10,color:"var(--color-action, #2F5B8E)",letterSpacing:"0.05em",textTransform:"uppercase",fontWeight:600},children:"Active"})]}),r.jsx("div",{title:z.path,style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-tertiary)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:O(z.path)}),_&&r.jsx("div",{style:{fontSize:10,color:"var(--color-own, #b45309)",marginTop:2},children:"Path no longer exists"})]}),r.jsx("button",{type:"button","aria-label":`Remove ${z.name}`,onClick:K=>{K.stopPropagation(),i(z.id)},style:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:"transparent",borderRadius:4,cursor:"pointer",color:"var(--text-tertiary)",opacity:q?1:0,transition:"opacity 120ms ease, color 120ms ease, background-color 120ms ease",flexShrink:0},onMouseEnter:K=>{K.currentTarget.style.color="var(--color-error, #b91c1c)",K.currentTarget.style.backgroundColor="color-mix(in oklch, var(--color-error, #b91c1c) 10%, transparent)"},onMouseLeave:K=>{K.currentTarget.style.color="var(--text-tertiary)",K.currentTarget.style.backgroundColor="transparent"},children:r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("polyline",{points:"3 6 5 6 21 6"}),r.jsx("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),r.jsx("path",{d:"M10 11v6"}),r.jsx("path",{d:"M14 11v6"}),r.jsx("path",{d:"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"})]})})]},z.id)})}),r.jsxs("div",{style:{borderTop:"1px solid var(--border-subtle, rgba(0,0,0,0.08))",padding:f?8:6},children:[!f&&r.jsxs("button",{type:"button",onClick:()=>void k(),className:"vskill-project-add",style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"8px 10px",border:"none",borderRadius:6,background:"transparent",cursor:"pointer",fontFamily:"var(--font-sans)",fontSize:13,fontWeight:500,color:"var(--color-action, #2F5B8E)",transition:"background-color 120ms ease"},onMouseEnter:z=>{z.currentTarget.style.backgroundColor="color-mix(in oklch, var(--color-action, #2F5B8E) 10%, transparent)"},onMouseLeave:z=>{z.currentTarget.style.backgroundColor="transparent"},children:[r.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[r.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add project"]}),f&&r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[r.jsx("input",{type:"text",value:h,onChange:z=>y(z.target.value),onKeyDown:z=>{z.key==="Enter"&&H(),z.key==="Escape"&&(x(!1),b(null))},placeholder:"/absolute/path/to/project",autoFocus:!0,style:{width:"100%",padding:"6px 8px",fontFamily:"var(--font-mono)",fontSize:12,border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:4,background:"var(--surface-0, #fff)",color:"var(--text-primary)",outline:"none"}}),r.jsxs("div",{style:{display:"flex",gap:6,justifyContent:"flex-end"},children:[r.jsx("button",{type:"button",onClick:()=>{x(!1),b(null),y("")},style:{padding:"4px 10px",fontSize:12,border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:4,background:"transparent",color:"var(--text-primary)",cursor:"pointer"},children:"Cancel"}),r.jsx("button",{type:"button",onClick:()=>void H(),style:{padding:"4px 10px",fontSize:12,border:"none",borderRadius:4,background:"var(--color-action, #2F5B8E)",color:"var(--color-paper, #fff)",cursor:"pointer",fontWeight:500},children:"Add"})]}),v&&r.jsx("div",{style:{fontSize:11,color:"var(--color-error, #b91c1c)"},children:v})]})]})]}),E&&r.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Switch project instructions",style:{position:"fixed",inset:0,zIndex:80,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>w(null),children:[r.jsx("div",{style:{position:"absolute",inset:0,background:"rgba(0,0,0,0.40)"}}),r.jsxs("div",{onClick:z=>z.stopPropagation(),style:{position:"relative",width:"min(520px, 92vw)",background:"var(--color-paper, #fff)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:10,boxShadow:"0 10px 15px -3px rgba(0,0,0,0.12), 0 20px 40px -8px rgba(0,0,0,0.18)",padding:18,fontFamily:"var(--font-sans)",color:"var(--text-primary)"},children:[r.jsxs("h2",{style:{margin:0,fontSize:16,fontWeight:600,fontFamily:"var(--font-serif, ui-serif)",marginBottom:8},children:["Switch to ",E.name]}),r.jsx("p",{style:{fontSize:13,color:"var(--text-secondary)",lineHeight:1.5,margin:0,marginBottom:12},children:"Skill Studio's skill scanner reads from the folder it was launched in, so switching projects from the browser isn't possible. Quit this server and relaunch from the target folder:"}),r.jsx("div",{style:{background:"var(--surface-1, #0f0f10)",color:"var(--text-primary)",padding:"10px 12px",borderRadius:6,fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",wordBreak:"break-all",border:"1px solid var(--border-subtle, rgba(255,255,255,0.08))"},children:`cd "${E.path}" && npx vskill@latest studio`}),r.jsxs("div",{style:{display:"flex",gap:8,marginTop:14,justifyContent:"flex-end"},children:[r.jsx("button",{type:"button",onClick:async()=>{try{await navigator.clipboard.writeText(`cd "${E.path}" && npx vskill@latest studio`),T(!0),setTimeout(()=>T(!1),1600)}catch{}},style:{padding:"7px 14px",fontSize:13,fontWeight:600,border:"1px solid var(--color-action, #2F5B8E)",borderRadius:6,background:"var(--color-action, #2F5B8E)",color:"#ffffff",cursor:"pointer",boxShadow:"0 1px 2px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.12)"},children:N?"Copied!":"Copy command"}),r.jsx("button",{type:"button",onClick:()=>w(null),style:{padding:"7px 12px",fontSize:13,fontWeight:500,border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:6,background:"transparent",color:"var(--text-primary)",cursor:"pointer"},children:"Close"})]})]})]})]})}function vR(t,a){const s=a.trim().toLowerCase().split(/\s+/).filter(Boolean);return s.length===0?t:t.filter(i=>{const c=`${i.name} ${i.path}`.toLowerCase();return s.every(u=>c.includes(u))})}function yR({open:t,projects:a,onSwitch:s,onClose:i}){const[c,u]=m.useState(""),[d,f]=m.useState(0),x=m.useMemo(()=>vR(a,c),[a,c]);m.useEffect(()=>{t||(u(""),f(0))},[t]),m.useEffect(()=>{d>=x.length&&f(0)},[x.length,d]);const h=y=>{if(y.key==="Escape"){y.preventDefault(),i();return}if(y.key==="ArrowDown"){y.preventDefault(),f(v=>Math.min(v+1,Math.max(x.length-1,0)));return}if(y.key==="ArrowUp"){y.preventDefault(),f(v=>Math.max(v-1,0));return}if(y.key==="Enter"){y.preventDefault();const v=x[d];v&&(s(v.id),i())}};return t?r.jsxs("div",{role:"dialog","aria-modal":"true","data-vskill-project-palette":!0,className:"vskill-project-palette fixed inset-0 z-50 flex items-start justify-center pt-24",children:[r.jsx("div",{className:"absolute inset-0 bg-black/30",onClick:i}),r.jsxs("div",{className:"relative w-[520px] max-w-[92vw] bg-background border rounded shadow-lg",children:[r.jsx("input",{type:"text",autoFocus:!0,value:c,onChange:y=>u(y.target.value),onKeyDown:h,placeholder:"Switch project…",className:"w-full px-3 py-2 text-sm border-b outline-none"}),r.jsxs("ul",{role:"listbox",className:"max-h-80 overflow-auto",children:[x.length===0&&r.jsx("li",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No matches."}),x.map((y,v)=>r.jsxs("li",{role:"option","aria-selected":v===d,"data-highlighted":v===d,className:["flex items-center gap-2 px-3 py-2 text-sm cursor-pointer",v===d?"bg-muted":""].join(" "),onMouseEnter:()=>f(v),onClick:()=>{s(y.id),i()},children:[r.jsx("span",{"aria-hidden":!0,className:"inline-block w-2 h-2 rounded-full",style:{backgroundColor:y.colorDot}}),r.jsxs("span",{className:"flex-1",children:[r.jsx("span",{className:"vskill-palette-name",children:y.name}),r.jsx("span",{className:"ml-2 vskill-palette-path text-xs font-mono text-muted-foreground",children:y.path})]})]},y.id))]})]})]}):null}const bv=/^[a-z][a-z0-9-]{0,62}[a-z0-9]$/;function bR({open:t,onClose:a,initialMode:s="standalone",isClaudeCode:i,projectRoot:c,onCreated:u}){const[d,f]=m.useState("destination"),[x,h]=m.useState(s),[y,v]=m.useState(""),[b,S]=m.useState(""),[C,E]=m.useState(""),[w,N]=m.useState([]),[T,A]=m.useState(!1),[I,L]=m.useState(null);if(m.useEffect(()=>{t&&(f("destination"),h(s),v(""),S(""),E(""),L(null))},[t,s]),m.useEffect(()=>{if(!t)return;let U=!0;return fetch("/api/authoring/plugins").then(M=>M.json()).then(M=>{U&&N(M.plugins??[])}).catch(()=>{}),()=>{U=!1}},[t]),m.useEffect(()=>{if(!t)return;function U(M){M.key==="Escape"&&(M.preventDefault(),a())}return document.addEventListener("keydown",U),()=>document.removeEventListener("keydown",U)},[t,a]),!t)return null;const H=w.length>0,k=i&&H,O=i,z=bv.test(y),_=x==="existing-plugin"?b.length>0:bv.test(b),$=!T&&z&&(x==="standalone"||_),q=jR(c,x,b,y);async function K(){L(null),A(!0);try{const B=new URLSearchParams;B.set("mode",x),B.set("skillName",y),b&&B.set("pluginName",b);const F=await fetch(`/api/authoring/skill-exists?${B.toString()}`),te=await F.json();if(!F.ok){L(te.error??`Check failed: ${F.status}`);return}if(te.exists){L(`Skill '${y}' already exists${te.path?` at ${te.path}`:""}`);return}}catch(B){L(B instanceof Error?B.message:String(B));return}finally{A(!1)}const U=new URLSearchParams;U.set("mode",x),U.set("skillName",y),C.trim()&&U.set("description",C.trim()),b&&U.set("pluginName",b);const M=`#/create?${U.toString()}`;typeof window<"u"&&(window.location.hash=M),a()}async function Q(){L(null),A(!0);try{const U=await fetch("/api/authoring/create-skill",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:x,skillName:y,description:C.trim()||void 0,pluginName:x==="standalone"?void 0:b})}),M=await U.json();if(!U.ok||!M.ok){L(M.error??`Create failed: ${U.status}`);return}Bn("skills"),u==null||u({mode:x,skillName:y,pluginName:M.pluginName??null,skillMdPath:M.skillMdPath}),a()}catch(U){L(U instanceof Error?U.message:String(U))}finally{A(!1)}}return r.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Create skill","data-vskill-create-skill-modal":!0,style:{position:"fixed",inset:0,zIndex:100,display:"flex",alignItems:"center",justifyContent:"center"},children:[r.jsx("div",{onClick:a,style:{position:"absolute",inset:0,background:"rgba(0,0,0,0.45)"}}),r.jsxs("div",{style:{position:"relative",width:"min(560px, 92vw)",maxHeight:"86vh",overflow:"auto",background:"var(--color-paper, #fff)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:10,boxShadow:"0 10px 15px -3px rgba(0,0,0,0.12), 0 20px 40px -8px rgba(0,0,0,0.18)",fontFamily:"var(--font-sans)"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 18px",borderBottom:"1px solid var(--border-subtle, rgba(0,0,0,0.08))"},children:[r.jsx("h2",{style:{margin:0,fontSize:16,fontWeight:600,color:"var(--text-primary)",fontFamily:"var(--font-serif, ui-serif)",letterSpacing:"0.01em"},children:d==="destination"?"Create a skill":"Name and describe"}),r.jsxs("div",{style:{fontSize:11,color:"var(--text-tertiary)",marginLeft:"auto",fontVariantNumeric:"tabular-nums"},children:["Step ",d==="destination"?"1":"2"," of 2"]})]}),d==="destination"&&r.jsxs("div",{style:{padding:14,display:"flex",flexDirection:"column",gap:10},children:[r.jsx(af,{title:"Standalone skill",subtitle:"A single skill in this project",description:"Lives at <project>/skills/<name>/SKILL.md. Works with every agent.",icon:"📄",selected:x==="standalone",onClick:()=>h("standalone")}),r.jsx(af,{title:"Add to existing plugin",subtitle:k?`${w.length} plugin source${w.length===1?"":"s"} in this project`:i?"No plugin sources in this project yet":"Claude Code only",description:"Appends a skill to an existing <plugin>/.claude-plugin/plugin.json source.",icon:"🧩",disabled:!k,selected:x==="existing-plugin",onClick:()=>k&&h("existing-plugin")}),r.jsx(af,{title:"Plugin (multi-skill)",subtitle:O?"Bundle related skills under one Claude Code plugin":"Claude Code only",description:"Creates <folder>/.claude-plugin/plugin.json and <folder>/skills/<first>/SKILL.md.",icon:"📦",disabled:!O,selected:x==="new-plugin",onClick:()=>O&&h("new-plugin")})]}),d==="details"&&r.jsxs("div",{style:{padding:16,display:"flex",flexDirection:"column",gap:12},children:[x==="new-plugin"&&r.jsx(Bo,{label:"Plugin name",hint:"kebab-case",children:r.jsx("input",{type:"text",value:b,onChange:U=>S(U.target.value.trim()),placeholder:"my-first-plugin",autoFocus:!0,style:Io(!b||_)})}),x==="existing-plugin"&&r.jsx(Bo,{label:"Plugin",children:r.jsxs("select",{value:b,onChange:U=>S(U.target.value),style:{...Io(!0),fontFamily:"var(--font-mono)"},children:[r.jsx("option",{value:"",children:"Select a plugin…"}),w.map(U=>r.jsx("option",{value:U.name,children:U.name},U.path))]})}),r.jsx(Bo,{label:"Skill name",hint:"kebab-case",children:r.jsx("input",{type:"text",value:y,onChange:U=>v(U.target.value.trim()),placeholder:"my-new-skill",autoFocus:x!=="new-plugin",style:Io(!y||z)})}),r.jsx(Bo,{label:"Description",hint:"One short sentence — shown in frontmatter",children:r.jsx("textarea",{value:C,onChange:U=>E(U.target.value),rows:2,placeholder:"Does a thing when Claude needs X",style:{...Io(!0),resize:"vertical",minHeight:52,fontFamily:"var(--font-sans)"}})}),q&&r.jsxs("div",{style:{padding:"8px 10px",fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text-secondary)",background:"var(--surface-1, rgba(0,0,0,0.03))",border:"1px solid var(--border-subtle, rgba(0,0,0,0.08))",borderRadius:4,wordBreak:"break-all"},children:[r.jsx("div",{style:{fontSize:10,color:"var(--text-tertiary)",marginBottom:2,fontFamily:"var(--font-sans)"},children:"Will create:"}),q.map((U,M)=>r.jsx("div",{children:U},M))]}),I&&r.jsx("div",{style:{fontSize:12,color:"var(--color-error, #b91c1c)",padding:"6px 10px",background:"color-mix(in oklch, var(--color-error, #b91c1c) 8%, transparent)",borderRadius:4},children:I})]}),r.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"12px 16px",borderTop:"1px solid var(--border-subtle, rgba(0,0,0,0.08))",background:"var(--surface-1, rgba(0,0,0,0.02))"},children:[r.jsx("button",{type:"button",onClick:a,style:lf,children:"Cancel"}),d==="destination"&&r.jsx("button",{type:"button",onClick:()=>f("details"),style:jv,children:"Continue →"}),d==="details"&&r.jsxs(r.Fragment,{children:[r.jsx("button",{type:"button",onClick:()=>f("destination"),style:lf,children:"← Back"}),r.jsx("button",{type:"button",onClick:()=>void K(),disabled:!$,style:{...lf,opacity:$?1:.5,cursor:$?"pointer":"not-allowed"},title:"Opens the AI generation flow with this destination pre-selected (choose Claude Code, Anthropic API, OpenRouter, or local models)",children:"Generate with AI"}),r.jsx("button",{type:"button",onClick:()=>void Q(),disabled:!$,style:{...jv,opacity:$?1:.5,cursor:$?"pointer":"not-allowed"},title:"Creates an empty SKILL.md scaffold you can fill in by hand",children:T?"Creating…":"Create empty scaffold"})]})]})]})]})}function af({title:t,subtitle:a,description:s,icon:i,selected:c,disabled:u,onClick:d}){return r.jsxs("button",{type:"button",onClick:d,disabled:u,"aria-pressed":c,style:{display:"flex",gap:12,padding:"12px 14px",textAlign:"left",borderRadius:8,border:c?"2px solid var(--color-accent, #2f6f8f)":"1px solid var(--border-default, rgba(0,0,0,0.12))",background:c?"color-mix(in oklch, var(--color-accent, #2f6f8f) 8%, var(--color-paper, #fff))":u?"var(--surface-1, rgba(0,0,0,0.02))":"var(--color-paper, #fff)",color:u?"var(--text-tertiary)":"var(--text-primary)",cursor:u?"not-allowed":"pointer",opacity:u?.6:1,fontFamily:"inherit",width:"100%",transition:"border-color 120ms ease, background-color 120ms ease"},children:[r.jsx("span",{"aria-hidden":!0,style:{fontSize:22,lineHeight:1,marginTop:2},children:i}),r.jsxs("div",{style:{flex:1,minWidth:0},children:[r.jsx("div",{style:{fontSize:14,fontWeight:600,lineHeight:1.3},children:t}),r.jsx("div",{style:{fontSize:11,color:"var(--text-tertiary)",marginTop:2,textTransform:"uppercase",letterSpacing:"0.04em"},children:a}),r.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",marginTop:6,lineHeight:1.5},children:s})]})]})}function Bo({label:t,hint:a,children:s}){return r.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[r.jsxs("span",{style:{display:"flex",alignItems:"baseline",gap:8},children:[r.jsx("span",{style:{fontSize:12,fontWeight:600,color:"var(--text-primary)"},children:t}),a&&r.jsx("span",{style:{fontSize:11,color:"var(--text-tertiary)"},children:a})]}),s]})}function Io(t){return{width:"100%",padding:"7px 10px",fontSize:13,fontFamily:"var(--font-mono)",border:`1px solid ${t?"var(--border-default, rgba(0,0,0,0.12))":"var(--color-error, #b91c1c)"}`,borderRadius:4,background:"var(--surface-0, #fff)",color:"var(--text-primary)",outline:"none",boxSizing:"border-box"}}const jv={padding:"8px 16px",fontSize:13,fontWeight:600,border:"1px solid var(--color-action, #2F5B8E)",borderRadius:6,background:"var(--color-action, #2F5B8E)",color:"var(--color-action-ink, #FFFFFF)",cursor:"pointer",fontFamily:"inherit",boxShadow:"0 1px 2px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.12)",letterSpacing:"0.01em"},lf={padding:"7px 12px",fontSize:13,fontWeight:500,border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:6,background:"transparent",color:"var(--text-primary)",cursor:"pointer",fontFamily:"inherit"};function jR(t,a,s,i){const c=i||"<skill-name>",u=s||"<plugin-name>",d=t||"<project>";return a==="standalone"?[`${d}/skills/${c}/SKILL.md`]:a==="existing-plugin"?[`${d}/${u}/skills/${c}/SKILL.md`]:a==="new-plugin"?[`${d}/${u}/.claude-plugin/plugin.json`,`${d}/${u}/skills/${c}/SKILL.md`]:null}function yb(t){return t.trim().toLowerCase()}function SR(t,a){const s=yb(a);return s?t.filter(i=>i.name.toLowerCase().includes(s)||i.source.toLowerCase().includes(s)):t}function kR(t,a){const s=yb(a);return s?t.filter(i=>[i.name,i.description??"",i.category??"",i.author??""].join(" ").toLowerCase().includes(s)):t}function wR({open:t,onClose:a,onInstall:s,onUninstall:i,installedNames:c}){const[u,d]=m.useState(null),[f,x]=m.useState([]),[h,y]=m.useState(null),[v,b]=m.useState(null),[S,C]=m.useState(!1),[E,w]=m.useState(null),[N,T]=m.useState(""),[A,I]=m.useState("");m.useEffect(()=>{h?T(""):I("")},[h]);const L=m.useMemo(()=>SR(f,N),[f,N]),H=m.useMemo(()=>kR((v==null?void 0:v.plugins)??[],A),[v,A]);return m.useEffect(()=>{t&&(C(!0),w(null),fetch("/api/plugins/marketplaces").then(k=>k.json()).then(k=>{if(k.error)throw new Error(k.error);x(k.marketplaces??[])}).catch(k=>w(k instanceof Error?k.message:String(k))).finally(()=>C(!1)))},[t]),m.useEffect(()=>{if(!h){b(null);return}C(!0),w(null),fetch(`/api/plugins/marketplaces/${encodeURIComponent(h)}`).then(k=>k.json()).then(k=>{if(k.error)throw new Error(k.error);b(k)}).catch(k=>w(k instanceof Error?k.message:String(k))).finally(()=>C(!1))},[h]),m.useEffect(()=>{if(!t)return;function k(O){O.key==="Escape"&&a()}return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[t,a]),t?r.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Plugin marketplace","data-vskill-marketplace-drawer":!0,style:{position:"fixed",inset:0,zIndex:80},children:[r.jsx("div",{onClick:a,style:{position:"absolute",inset:0,background:"rgba(0,0,0,0.38)"}}),r.jsxs("aside",{style:{position:"absolute",top:0,right:0,bottom:0,width:"min(480px, 94vw)",background:"var(--color-paper, #fff)",borderLeft:"1px solid var(--border-default, rgba(0,0,0,0.12))",boxShadow:"-10px 0 30px -8px rgba(0,0,0,0.18)",display:"flex",flexDirection:"column",fontFamily:"var(--font-sans)"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 18px",borderBottom:"1px solid var(--border-subtle, rgba(0,0,0,0.08))"},children:[h&&r.jsx("button",{type:"button",onClick:()=>y(null),"aria-label":"Back to marketplaces",style:{border:"none",background:"transparent",fontSize:14,color:"var(--text-secondary)",cursor:"pointer",padding:0},children:"← Back"}),r.jsx("h2",{style:{margin:0,fontSize:15,fontWeight:600,color:"var(--text-primary)",fontFamily:"var(--font-serif, ui-serif)",flex:1},children:h?(v==null?void 0:v.name)??h:"Browse plugins"}),r.jsx("button",{type:"button",onClick:a,"aria-label":"Close",style:{border:"none",background:"transparent",fontSize:16,color:"var(--text-secondary)",cursor:"pointer",padding:"4px 6px"},children:"✕"})]}),r.jsxs("div",{style:{flex:1,overflowY:"auto",padding:12},children:[S&&r.jsx("div",{style:{padding:12,fontSize:12,color:"var(--text-tertiary)"},children:"Loading…"}),E&&r.jsx("div",{style:{padding:10,fontSize:12,color:"var(--color-error, #b91c1c)",background:"color-mix(in oklch, var(--color-error, #b91c1c) 8%, transparent)",borderRadius:4},children:E}),!h&&!S&&f.length===0&&!E&&r.jsx(CR,{}),!h&&f.length>0&&r.jsx(Sv,{value:N,onChange:T,placeholder:"Search marketplaces…",ariaLabel:"Search marketplaces",testId:"marketplace-search"}),!h&&f.length>0&&L.length===0&&r.jsxs("div",{style:{padding:12,fontSize:12,color:"var(--text-tertiary)"},children:["No marketplaces match “",N,"”."]}),!h&&L.map(k=>r.jsxs("button",{type:"button",onClick:()=>y(k.name),style:NR,onMouseEnter:O=>{O.currentTarget.style.background="var(--surface-2, rgba(0,0,0,0.04))"},onMouseLeave:O=>{O.currentTarget.style.background="transparent"},children:[r.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:k.name}),r.jsx("div",{style:{fontSize:11,color:"var(--text-tertiary)",fontFamily:"var(--font-mono)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:k.source})]},k.name)),h&&v&&r.jsxs(r.Fragment,{children:[v.description&&r.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",padding:"0 6px 12px",lineHeight:1.5},children:v.description}),v.plugins.length===0&&r.jsx("div",{style:{padding:12,fontSize:12,color:"var(--text-tertiary)"},children:"This marketplace has no plugins catalogued yet."}),v.plugins.length>0&&r.jsx(Sv,{value:A,onChange:I,placeholder:"Search plugins…",ariaLabel:"Search plugins",testId:"plugin-search"}),v.plugins.length>0&&H.length===0&&r.jsxs("div",{style:{padding:12,fontSize:12,color:"var(--text-tertiary)"},children:["No plugins match “",A,"”."]}),H.map(k=>{const O=c.has(k.name);return r.jsx("div",{style:{padding:"10px 8px",borderBottom:"1px solid var(--border-subtle, rgba(0,0,0,0.05))"},children:r.jsxs("div",{style:{display:"flex",alignItems:"start",gap:8},children:[r.jsxs("div",{style:{flex:1,minWidth:0},children:[r.jsxs("div",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)",display:"flex",alignItems:"baseline",gap:8},children:[k.name,k.version&&r.jsx("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-tertiary)"},children:k.version}),k.category&&r.jsx("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:10,background:"var(--surface-2, rgba(0,0,0,0.05))",color:"var(--text-secondary)"},children:k.category})]}),k.description&&r.jsx("div",{style:{fontSize:11,color:"var(--text-secondary)",marginTop:4,lineHeight:1.5},children:k.description})]}),O&&i?r.jsx("button",{type:"button",disabled:u===k.name,onClick:async()=>{d(k.name);try{await i(k.name)}finally{d(null)}},"aria-label":`Uninstall ${k.name}`,style:{flexShrink:0,padding:"5px 12px",fontSize:12,fontWeight:600,border:"1px solid var(--color-error, #b91c1c)",borderRadius:4,background:"transparent",color:"var(--color-error, #b91c1c)",cursor:u===k.name?"wait":"pointer",opacity:u===k.name?.6:1,fontFamily:"inherit"},children:u===k.name?"Uninstalling…":"Uninstall"}):r.jsx("button",{type:"button",disabled:O,onClick:()=>s(k.name,h),style:{flexShrink:0,padding:"5px 12px",fontSize:12,fontWeight:600,border:O?"none":"1px solid var(--color-action, #2F5B8E)",borderRadius:4,background:O?"var(--surface-2, rgba(0,0,0,0.05))":"var(--color-action, #2F5B8E)",color:O?"var(--text-tertiary)":"var(--color-action-ink, #FFFFFF)",cursor:O?"default":"pointer",fontFamily:"inherit",boxShadow:O?"none":"0 1px 2px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.12)"},children:O?"Installed":"Install"})]})},k.name)})]})]}),!h&&r.jsx("div",{style:{borderTop:"1px solid var(--border-subtle, rgba(0,0,0,0.08))",padding:12},children:r.jsx(ER,{onAdded:()=>{Bn("marketplaces"),fetch("/api/plugins/marketplaces").then(k=>k.json()).then(k=>x(k.marketplaces??[]))}})})]})]}):null}function Sv({value:t,onChange:a,placeholder:s,ariaLabel:i,testId:c}){return r.jsx("div",{style:{padding:"0 4px 10px"},children:r.jsx("input",{type:"search",value:t,onChange:u=>a(u.target.value),placeholder:s,"aria-label":i,"data-testid":c,style:{width:"100%",padding:"6px 10px",fontSize:12,fontFamily:"var(--font-sans)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:4,background:"var(--surface-0, #fff)",color:"var(--text-primary)",outline:"none",boxSizing:"border-box"}})})}function CR(){return r.jsxs("div",{style:{padding:20,fontSize:12,color:"var(--text-tertiary)",lineHeight:1.6},children:["No marketplaces configured yet. Add one below — examples:",r.jsxs("ul",{style:{marginTop:8,paddingLeft:16},children:[r.jsx("li",{children:r.jsx("code",{children:"anthropics/claude-plugins-official"})}),r.jsx("li",{children:r.jsx("code",{children:"openai/codex-plugin-cc"})})]})]})}function ER({onAdded:t}){const[a,s]=m.useState(""),[i,c]=m.useState(!1),[u,d]=m.useState(null);async function f(){const x=a.trim();if(x){c(!0),d(null);try{const h=await fetch("/api/plugins/marketplaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:x})}),y=await h.json().catch(()=>({}));if(!h.ok||!y.ok){d(y.error??`Add failed (${h.status})`);return}s(""),t()}catch(h){d(h instanceof Error?h.message:String(h))}finally{c(!1)}}}return r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[r.jsx("label",{style:{fontSize:11,color:"var(--text-tertiary)",fontWeight:500},children:"Add marketplace (GitHub owner/repo, URL, or path)"}),r.jsxs("div",{style:{display:"flex",gap:6},children:[r.jsx("input",{type:"text",value:a,onChange:x=>s(x.target.value),onKeyDown:x=>{x.key==="Enter"&&f()},placeholder:"anthropics/claude-plugins-official",disabled:i,style:{flex:1,padding:"6px 8px",fontSize:12,fontFamily:"var(--font-mono)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderRadius:4,background:"var(--surface-0, #fff)",color:"var(--text-primary)",outline:"none"}}),r.jsx("button",{type:"button",onClick:()=>void f(),disabled:i||!a.trim(),style:{padding:"6px 14px",fontSize:12,fontWeight:600,border:"1px solid var(--color-action, #2F5B8E)",borderRadius:4,background:"var(--color-action, #2F5B8E)",color:"var(--color-action-ink, #FFFFFF)",cursor:i||!a.trim()?"not-allowed":"pointer",opacity:i||!a.trim()?.5:1,boxShadow:"0 1px 2px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.12)",fontFamily:"inherit"},children:i?"Adding…":"Add"})]}),u&&r.jsx("div",{style:{fontSize:11,color:"var(--color-error, #b91c1c)"},children:u})]})}const NR={display:"block",width:"100%",textAlign:"left",padding:"10px 12px",border:"none",borderRadius:6,background:"transparent",cursor:"pointer",fontFamily:"inherit",marginBottom:2},sf=12;function TR({job:t,onDone:a}){const[s,i]=m.useState([]),[c,u]=m.useState("running"),[d,f]=m.useState(!1);if(m.useEffect(()=>{if(!t)return;i([]),u("running"),f(!1);const v=new AbortController;let b=[],S="running";return(async()=>{try{const C=await fetch("/api/plugins/install/stream",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({plugin:t.ref}),signal:v.signal});if(!C.ok||!C.body){u("failed"),a({ok:!1,code:C.status,lines:[`HTTP ${C.status}`]});return}const E=C.body.getReader(),w=new TextDecoder;let N="";for(;;){const{value:T,done:A}=await E.read();if(A)break;N+=w.decode(T,{stream:!0});const I=N.split(/\n\n/);N=I.pop()??"";for(const L of I){const H=L.match(/^data:\s*(.*)$/m);if(H)try{const k=JSON.parse(H[1]);k.type==="stdout"&&k.line?(b=[...b,k.line].slice(-sf),i(b)):k.type==="stderr"&&k.line?(b=[...b,`⚠ ${k.line}`].slice(-sf),i(b)):k.type==="done"?(S=k.ok?"ok":"failed",u(S),ny(),Bn("skills"),a({ok:k.ok??!1,code:k.code??null,lines:b})):k.type==="error"&&k.error&&(b=[...b,`✘ ${k.error}`].slice(-sf),i(b))}catch{}}}S==="running"&&a({ok:!0,code:0,lines:b})}catch(C){if(C.name==="AbortError")return;u("failed"),a({ok:!1,code:null,lines:[...b,C instanceof Error?C.message:String(C)]})}})(),()=>v.abort()},[t==null?void 0:t.ref]),!t)return null;const x=c==="ok"?"var(--color-installed, #2F6A4A)":c==="failed"?"var(--color-error, #b91c1c)":"var(--color-accent, #2f6f8f)",h=c==="ok"?"✔":c==="failed"?"✘":"…",y=c==="ok"?"Installed":c==="failed"?"Install failed":"Installing";return r.jsxs("div",{role:"status","aria-live":"polite","data-vskill-install-toast":!0,style:{position:"fixed",bottom:16,right:16,width:"min(420px, 92vw)",background:"var(--color-paper, #fff)",border:"1px solid var(--border-default, rgba(0,0,0,0.12))",borderLeft:`3px solid ${x}`,borderRadius:6,boxShadow:"0 10px 20px -6px rgba(0,0,0,0.18)",zIndex:90,fontFamily:"var(--font-sans)",overflow:"hidden"},children:[r.jsxs("button",{type:"button",onClick:()=>f(v=>!v),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"10px 12px",border:"none",background:"transparent",cursor:"pointer",textAlign:"left",fontFamily:"inherit"},children:[r.jsx("span",{"aria-hidden":!0,style:{fontSize:16,color:x,width:16,textAlign:"center"},children:c==="running"?r.jsx(RR,{}):h}),r.jsxs("span",{style:{flex:1,minWidth:0},children:[r.jsxs("span",{style:{fontSize:12,fontWeight:600,color:"var(--text-primary)"},children:[y,": ",t.plugin,r.jsxs("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-primary)",marginLeft:4},children:["@",t.marketplace]})]}),!d&&s.length>0&&r.jsx("span",{style:{display:"block",fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-primary)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s[s.length-1]})]}),r.jsx("span",{"aria-hidden":!0,style:{fontSize:10,color:"var(--text-primary)"},children:d?"▾":"▸"})]}),d&&r.jsx("pre",{style:{margin:0,padding:"0 12px 12px",maxHeight:180,overflowY:"auto",fontFamily:"var(--font-mono)",fontSize:10,lineHeight:1.5,color:"var(--text-secondary)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:s.length===0?"Waiting for output…":s.join(`
122
- `)})]})}function RR(){return r.jsx("span",{"aria-hidden":!0,style:{display:"inline-block",width:10,height:10,borderRadius:"50%",border:"2px solid var(--color-accent, #2f6f8f)",borderTopColor:"transparent",animation:"vskill-spin 800ms linear infinite"},children:r.jsx("style",{children:"@keyframes vskill-spin { to { transform: rotate(360deg); } }"})})}const AR=3e3,LR={anthropic:"Anthropic",openai:"OpenAI",openrouter:"OpenRouter"};function kv(t){return t==="anthropic"||t==="openai"||t==="openrouter"}function MR(){const{toast:t}=ac(),a=m.useRef(new Map),s=m.useCallback(i=>{if(!kv(i.provider))return;const c=Date.now(),u=a.current.get(i.provider)??0;if(c-u<AR)return;a.current.set(i.provider,c);const d=LR[i.provider];t({message:`${d} API key invalid or missing. Open Settings →`,severity:"error",action:{label:"Open Settings",onInvoke:()=>{typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:open-settings",{detail:{provider:i.provider}}))}}})},[t]);return m.useEffect(()=>{function i(c){const u=c.detail;!u||!kv(u.provider)||s({provider:u.provider})}return window.addEventListener("studio:api-key-error",i),()=>window.removeEventListener("studio:api-key-error",i)},[s]),{report:s}}const bb="vskill.studio.prefs";function jb(){try{return typeof window>"u"?null:window.localStorage??null}catch{return null}}function Sb(){const t=jb();if(!t)return{};try{const a=t.getItem(bb);if(!a)return{};const s=JSON.parse(a);return s&&typeof s=="object"&&!Array.isArray(s)?s:{}}catch{return{}}}function zR(t,a){const s=jb();if(s)try{const c={...Sb(),[t]:a};s.setItem(bb,JSON.stringify(c))}catch{}}function DR(t,a){const i=Sb()[t];return i===void 0?a:i}const wv={open:!1,x:0,y:0,skill:null};function _R(t,a){return{open:!0,x:t.clientX,y:t.clientY,skill:a}}function Ha(t,a="info"){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,severity:a}}))}function OR(t){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:request-delete",{detail:{skill:t}}))}function BR(t,a){var s;switch(t){case"copy-path":try{(s=navigator.clipboard)==null||s.writeText(a.dir)}catch{Ha(se.toasts.permissionDenied,"error");return}Ha(se.toasts.pathCopied,"info");return;case"open":case"reveal":case"edit":Ha(se.actions.editPlaceholder,"info");return;case"run-benchmark":Ha(se.toasts.benchmarkQueued,"info");return;case"duplicate":Ha(se.toasts.skillDuplicated,"info");return;case"update":Ha(se.toasts.skillUpdated,"info");return;case"uninstall":Ha(se.actions.editPlaceholder,"info");return;case"delete":OR(a);return;default:return}}function IR(t){return t.startsWith("#/create")}function $R(t){return t.startsWith("#/updates")}function kb(t){const[a,s]=m.useState(()=>typeof window<"u"&&t(window.location.hash));return m.useEffect(()=>{function i(){s(t(window.location.hash))}return window.addEventListener("hashchange",i),i(),()=>window.removeEventListener("hashchange",i)},[]),a}function UR(){return kb(IR)}function HR(){return kb($R)}function PR(){var i,c;if(typeof navigator>"u")return"⌘⇧K";const t=((i=navigator.platform)==null?void 0:i.toUpperCase())??"",a=((c=navigator.userAgent)==null?void 0:c.toUpperCase())??"";return t.includes("MAC")||a.includes("MAC")?"⌘⇧K":"Ctrl+Shift+K"}function VR(){if(typeof window>"u"||typeof window.matchMedia!="function")return!1;try{return window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}function FR(){const[t,a]=m.useState("⌘⇧K");m.useEffect(()=>{a(PR())},[]);const s=VR();function i(){window.dispatchEvent(new CustomEvent("openFindSkills"))}return r.jsxs("button",{type:"button",onClick:i,"aria-label":`Find verified skills — opens search (${t})`,title:`Find verified skills (${t})`,"data-testid":"find-skills-nav-button",style:{display:"inline-flex",alignItems:"center",gap:6,height:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border-default)",background:"transparent",color:"var(--text-secondary)",fontSize:12,fontWeight:500,fontFamily:"var(--font-sans)",cursor:"pointer",letterSpacing:"0.01em"},children:[r.jsxs("svg",{"data-icon":"search","aria-hidden":"true",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[r.jsx("circle",{cx:"11",cy:"11",r:"8"}),r.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),r.jsx("span",{children:"Find skills"}),r.jsx("kbd",{"data-animated":s?"false":"true",style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-faint)",border:"1px solid var(--border-default)",borderRadius:4,padding:"1px 5px",marginLeft:2,lineHeight:1},children:t})]})}const GR=m.lazy(()=>Vl(()=>import("./FindSkillsPalette-BBj-hoqE.js"),__vite__mapDeps([2,1])).then(t=>({default:t.FindSkillsPalette}))),WR=m.lazy(()=>Vl(()=>import("./SkillDetailPanel-Xymi4aZg.js"),__vite__mapDeps([3,4,1])).then(t=>({default:t.SkillDetailPanel}))),qR=m.lazy(()=>Vl(()=>import("./CreateSkillPage-D9ZsmNub.js"),__vite__mapDeps([5,1])).then(t=>({default:t.CreateSkillPage}))),YR=m.lazy(()=>Vl(()=>Promise.resolve().then(()=>qN),void 0).then(t=>({default:t.UpdatesPanel})));function KR(){return r.jsx(qS,{children:r.jsx(FS,{children:r.jsxs(G2,{children:[r.jsx(XR,{}),r.jsx(OT,{})]})})})}function XR(){var jr,rn;const{state:t,selectSkill:a,clearSelection:s,refreshSkills:i,outdatedByOrigin:c,revealSkill:u,clearReveal:d}=cr(),{config:f}=Ya(),{resolvedTheme:x,setTheme:h}=ty(),{toast:y}=ac(),[v,b]=m.useState(()=>wC()),[S]=m.useState(!0),[C,E]=m.useState(!1),[w,N]=m.useState(!1),[T,A]=m.useState(()=>typeof window>"u"?"overview":Nf(window.location.search).tab),[I,L]=m.useState(()=>{if(typeof window>"u")return"";const ae=Nf(window.location.search);return ae.mode?ae.mode:ae.view?ae.view:xb(ae.tab,window.location.search)}),H=m.useCallback(ae=>{A(Se=>(Se!==ae&&L(Xs(ae)),ae))},[]);m.useEffect(()=>{if(typeof window>"u")return;const ae=()=>{const Se=new URLSearchParams(window.location.search),Ne=Se.get("tab"),Bt=Se.get("panel"),St=Jo(Ne)??Jo(Bt);if(!St)return;const Jt=new URLSearchParams(window.location.search);Jt.delete("panel"),Jt.delete("sub"),St.tab==="overview"?Jt.delete("tab"):Jt.set("tab",St.tab),Jt.delete("mode"),Jt.delete("view"),St.mode&&Jt.set("mode",St.mode),St.view&&Jt.set("view",St.view);const Vr=Jt.toString(),dr=`${window.location.pathname}${Vr?"?"+Vr:""}${window.location.hash}`,Qe=`${window.location.pathname}${window.location.search}${window.location.hash}`;dr!==Qe&&window.history.replaceState(null,"",dr),A(St.tab),St.mode?L(St.mode):St.view?L(St.view):L(Xs(St.tab))};return ae(),window.addEventListener("popstate",ae),()=>window.removeEventListener("popstate",ae)},[]),m.useEffect(()=>{if(typeof window>"u")return;const ae=new URLSearchParams(window.location.search);ae.delete("panel"),ae.delete("sub"),T==="overview"?ae.delete("tab"):ae.set("tab",T),ae.delete("mode"),ae.delete("view"),!(I===Xs(T))&&I&&(T==="run"?ae.set("mode",I):T==="history"&&ae.set("view",I));const Ne=ae.toString(),Bt=`${window.location.pathname}${Ne?"?"+Ne:""}${window.location.hash}`,St=`${window.location.pathname}${window.location.search}${window.location.hash}`;Bt!==St&&window.history.replaceState(null,"",Bt)},[T,I]);const[k,O]=m.useState(wv),z=m.useCallback((ae,Se)=>{O(_R(ae,Se))},[]),_=uR(),[$,q]=m.useState(()=>DR("activeAgent",null)),K=m.useCallback(ae=>{q(ae),zR("activeAgent",ae),typeof window<"u"&&window.dispatchEvent(new CustomEvent("studio:agent-changed",{detail:{agentId:ae}}))},[]);m.useEffect(()=>{var ae;!$&&((ae=_.response)!=null&&ae.suggested)&&K(_.response.suggested)},[$,(jr=_.response)==null?void 0:jr.suggested,K]);const Q=m.useMemo(()=>_.response?aR(_.response):[],[_.response]),{workspace:U,switchProject:M,addProject:B,removeProject:F,activeProject:te}=xR(),[V,D]=m.useState(!1),[W,X]=m.useState(!1),[ee,de]=m.useState("standalone"),le=m.useCallback((ae="standalone")=>{de(ae),X(!0)},[]);m.useEffect(()=>{function ae(Se){if(!(Se instanceof CustomEvent))return;const Ne=Se.detail;le((Ne==null?void 0:Ne.mode)??"standalone")}return window.addEventListener("studio:request-create-skill",ae),()=>window.removeEventListener("studio:request-create-skill",ae)},[le]);const[ce,ne]=m.useState(!1),[ge,Le]=m.useState(null),[Ee,Me]=m.useState(null);m.useEffect(()=>{function ae(){ne(!0)}return window.addEventListener("studio:open-marketplace",ae),()=>window.removeEventListener("studio:open-marketplace",ae)},[]);const Pe=m.useMemo(()=>{const ae=new Set;for(const Se of t.skills)Se.source==="plugin"&&Se.pluginName&&ae.add(Se.pluginName);return ae},[t.skills]);yf([{key:"p",meta:!0,handler:ae=>{var Ne;const Se=typeof document<"u"?document.activeElement:null;Se&&Se.tagName==="INPUT"||((Ne=ae==null?void 0:ae.preventDefault)==null||Ne.call(ae),D(Bt=>!Bt))}}],{enabled:!0});const ie=KT(),fe=ie.open;m.useEffect(()=>{function ae(Se){if(!(Se instanceof CustomEvent))return;const Ne=Se.detail;Ne!=null&&Ne.provider&&fe(Ne.provider)}return window.addEventListener("studio:open-setup-drawer",ae),()=>window.removeEventListener("studio:open-setup-drawer",ae)},[fe]);const he=m.useCallback(()=>{O(wv)},[]);m.useEffect(()=>{function ae(Se){if(!(Se instanceof CustomEvent))return;const Ne=Se.detail;Ne!=null&&Ne.message&&y({message:Ne.message,severity:Ne.severity??"info"})}return window.addEventListener("studio:toast",ae),()=>window.removeEventListener("studio:toast",ae)},[y]),MR();const[be,je]=m.useState(!1),[Ge,ut]=m.useState(void 0);m.useEffect(()=>{function ae(Se){if(!(Se instanceof CustomEvent))return;const Ne=Se.detail;ut(Ne==null?void 0:Ne.provider),je(!0)}return window.addEventListener("studio:open-settings",ae),()=>window.removeEventListener("studio:open-settings",ae)},[]),m.useEffect(()=>{document.documentElement.style.setProperty("--sidebar-width",`${v}px`)},[v]),m.useEffect(()=>{function ae(){i()}return window.addEventListener("studio:content-saved",ae),()=>window.removeEventListener("studio:content-saved",ae)},[i]);const[gt,Ht]=m.useState(null),[Tt,qe]=m.useState(()=>new Set),zt=m.useRef(!1),kt=m.useMemo(()=>Zw(),[]),vt=m.useCallback(ae=>`${ae.plugin}/${ae.skill}`,[]),Zt=m.useCallback(ae=>{qe(Se=>{const Ne=new Set(Se);return Ne.add(vt(ae)),Ne})},[vt]),ve=m.useCallback(ae=>{qe(Se=>{const Ne=new Set(Se);return Ne.delete(vt(ae)),Ne})},[vt]),rt=vv({delayMs:1e4,onCommit:ae=>{i(),ve(ae)},onFailure:(ae,Se)=>{ve(ae),y({message:`Couldn't delete ${ae.skill}: ${Se.message}`,severity:"error",durationMs:0,action:{label:se.actions.retry,onInvoke:()=>{Zt(ae),rt.enqueueDelete(ae)}}})}});m.useEffect(()=>{function ae(Se){if(!(Se instanceof CustomEvent))return;const Ne=Se.detail;Ne!=null&&Ne.skill&&Ht(Ne.skill)}return window.addEventListener("studio:request-delete",ae),()=>window.removeEventListener("studio:request-delete",ae)},[]);const[it,bt]=m.useState(null),Mt=vv({delayMs:250,apiCall:(ae,Se)=>api.uninstallSkill(ae,Se),onCommit:ae=>{i(),ve(ae)},onFailure:(ae,Se)=>{ve(ae),y({message:`Couldn't uninstall ${ae.skill}: ${Se.message}`,severity:"error",durationMs:0,action:{label:se.actions.retry,onInvoke:()=>{Zt(ae),Mt.enqueueDelete(ae)}}})}});m.useEffect(()=>{function ae(Se){if(!(Se instanceof CustomEvent))return;const Ne=Se.detail;Ne!=null&&Ne.skill&&bt(Ne.skill)}return window.addEventListener("studio:request-uninstall",ae),()=>window.removeEventListener("studio:request-uninstall",ae)},[]);const et=m.useCallback(()=>{const ae=it;if(bt(null),!ae)return;const Se={plugin:ae.plugin,skill:ae.skill};Zt(Se),Mt.enqueueDelete(Se),y({message:`Uninstalled ${ae.skill}. Sent to your ${kt}.`,severity:"info",durationMs:4e3})},[it,Zt,Mt,y,kt]),bn=m.useCallback(()=>{bt(null)},[]),qt=m.useCallback(()=>{const ae=gt;if(Ht(null),!ae)return;const Se={plugin:ae.plugin,skill:ae.skill};Zt(Se),rt.enqueueDelete(Se);const Ne=zt.current?"":`Sent to your ${kt}. Open Trash to restore. `;zt.current=!0,y({message:`${Ne}Deleted ${ae.skill}`,severity:"info",durationMs:1e4,action:{label:se.actions.undo,onInvoke:()=>{rt.cancelDelete(vt(Se)),ve(Se)}}})},[gt,Zt,ve,rt,y,kt,vt]),mn=m.useCallback(()=>{Ht(null)},[]),un=m.useMemo(()=>t.skills.filter(ae=>!Tt.has(vt(ae))),[t.skills,Tt,vt]),ur=MC(un,(te==null?void 0:te.path)??null),Nn=m.useMemo(()=>t.selectedSkill?t.skills.find(ae=>ae.plugin===t.selectedSkill.plugin&&ae.skill===t.selectedSkill.skill)??null:null,[t.skills,t.selectedSkill]),Un=m.useCallback(ae=>{a({plugin:ae.plugin,skill:ae.skill,origin:ae.origin})},[a]),Tn=m.useMemo(()=>{if(!t.selectedSkill)return"";const ae=t.selectedSkill.origin==="installed"?"Installed":"Own";return`Viewing ${t.selectedSkill.skill} (${ae})`},[t.selectedSkill]),[jt,Oe]=m.useState(null);yf([{key:"cmd+k",handler:()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("openFindSkills"))}},{key:"ctrl+k",handler:()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("openFindSkills"))}},{key:"?",handler:()=>E(ae=>!ae)},{key:"cmd+shift+d",handler:()=>h(x==="light"?"dark":"light")},{key:"ctrl+shift+d",handler:()=>h(x==="light"?"dark":"light")},{key:"cmd+b",handler:()=>N(ae=>!ae)},{key:"ctrl+b",handler:()=>N(ae=>!ae)},{key:"e",handler:()=>y({message:se.actions.editPlaceholder,severity:"info"})}]);const Ye=UR(),hn=HR()?r.jsx(m.Suspense,{fallback:r.jsx("div",{style:{padding:40},children:"Loading…"}),children:r.jsx(YR,{})}):Ye?r.jsx(m.Suspense,{fallback:r.jsx("div",{style:{padding:40},children:"Loading…"}),children:r.jsx(qR,{})}):r.jsx(TT,{selectedSkillInfo:Nn,activeDetailTab:T,onDetailTabChange:H,activeDetailSub:I,onDetailSubChange:L,allSkills:t.skills,onSelectSkill:Un});return r.jsxs(r.Fragment,{children:[r.jsx(YS,{sidebarWidth:v,sidebarHidden:w||t.isMobile&&t.mobileView==="detail",banner:r.jsx(zC,{connected:S}),liveMessage:Tn,topRail:r.jsx(K2,{projectName:(f==null?void 0:f.projectName)??null,selected:t.selectedSkill,onHome:s,onRequestCreateSkill:()=>le("standalone"),projectPickerSlot:U&&U.projects.length>0?r.jsx(gR,{workspace:U,onSwitch:M,onAdd:B,onRemove:F}):void 0,findSkillsSlot:r.jsx(FR,{})}),sidebar:r.jsx(mC,{skills:un,selectedKey:t.selectedSkill?{plugin:t.selectedSkill.plugin,skill:t.selectedSkill.skill}:null,onSelect:Un,isLoading:t.skillsLoading,error:t.skillsError??null,onRetry:i,onContextMenu:z,outdatedByOrigin:c,activeAgentId:$,revealSkillId:t.revealSkillId,onRevealComplete:d,dirtySkillIds:ur,onSkillsChanged:i,topSlot:_.status==="ready"&&Q.length>0?r.jsxs(r.Fragment,{children:[r.jsx(lR,{agents:Q,activeAgentId:$,onActiveAgentChange:K,onOpenSetup:ae=>ie.open(ae)}),r.jsx(cR,{activeAgentId:$})]}):null}),resizeHandle:r.jsx(EC,{initialWidth:v??Ks,onChange:b}),main:hn,statusBar:r.jsx(sk,{projectPath:(f==null?void 0:f.root)??null,modelName:(f==null?void 0:f.model)??null,health:f!=null&&f.error?"degraded":"ok",providers:(rn=f==null?void 0:f.providers)==null?void 0:rn.map(ae=>{const Se=ae.id;return{id:Se,label:ae.label,available:ae.available,kind:Se==="ollama"||Se==="lm-studio"?"start-service":Se==="anthropic"||Se==="openrouter"?"api-key":"cli-install"}})})}),r.jsx(IT,{open:C,onClose:()=>E(!1)}),r.jsx(VT,{open:ie.isOpen,providerKey:ie.providerKey,onClose:ie.close}),r.jsx(UT,{state:k,onClose:he,onAction:(ae,Se)=>BR(ae,Se)}),r.jsx(m.Suspense,{fallback:null,children:r.jsx(GR,{onSelect:ae=>{const Se=ae.name.split("/");Se.length===3&&Oe({owner:Se[0],repo:Se[1],slug:Se[2],displayName:ae.displayName??ae.name})}})}),jt&&r.jsx(m.Suspense,{fallback:null,children:r.jsx(WR,{selectedSkill:jt,onClose:()=>Oe(null)})}),r.jsx(yR,{open:V,projects:(U==null?void 0:U.projects)??[],onSwitch:ae=>{M(ae)},onClose:()=>D(!1)}),r.jsx(bR,{open:W,onClose:()=>X(!1),initialMode:ee,isClaudeCode:$==="claude-code",projectRoot:(te==null?void 0:te.path)??(f==null?void 0:f.projectName)??"",onCreated:ae=>{i(),setTimeout(()=>{u(ae.pluginName??"",ae.skillName)},500)}}),r.jsx(wR,{open:ce,onClose:()=>ne(!1),installedNames:Pe,onInstall:(ae,Se)=>{Le({plugin:ae,marketplace:Se,ref:`${ae}@${Se}`}),ne(!1)},onUninstall:async ae=>{if(await new Promise(Ne=>{Me({plugin:ae,resolve:Ne})}))try{const Ne=await fetch(`/api/plugins/${encodeURIComponent(ae)}/uninstall`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),Bt=await Ne.json().catch(()=>({}));if(!Ne.ok||!Bt.ok){y({message:Bt.error??`Uninstall failed (${Ne.status})`,severity:"error"});return}const St=Bt.fallback==="orphan-cache-removed"?`Removed orphaned ${ae}.`:`Uninstalled ${ae}.`;y({message:St,severity:"success"}),i()}catch(Ne){y({message:Ne instanceof Error?Ne.message:String(Ne),severity:"error"})}}}),r.jsx(Qv,{open:be,onClose:()=>je(!1),initialProvider:Ge,onToast:ae=>y({message:ae,severity:"info"})}),r.jsx(TR,{job:ge,onDone:ae=>{ae.ok&&(i(),setTimeout(()=>Le(null),3e3))}}),r.jsx(Fo,{open:gt!==null,title:gt?`Delete "${gt.skill}"?`:"",body:`It will be sent to your ${kt}. You can recover it from there.`,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"destructive",onConfirm:qt,onCancel:mn}),r.jsx(Fo,{open:it!==null,title:it?`Uninstall "${it.skill}"?`:"",body:`It will be sent to your ${kt} and the lockfile entry will be removed. You can re-install with vskill install.`,confirmLabel:"Uninstall",cancelLabel:"Cancel",variant:"destructive",onConfirm:et,onCancel:bn}),r.jsx(Fo,{open:Ee!==null,title:Ee?`Uninstall ${Ee.plugin}?`:"",body:Ee?`This removes the ${Ee.plugin} plugin and all of its skills. You can reinstall it later from the marketplace.`:"",confirmLabel:"Uninstall",cancelLabel:"Cancel",variant:"destructive",onConfirm:()=>{Ee==null||Ee.resolve(!0),Me(null)},onCancel:()=>{Ee==null||Ee.resolve(!1),Me(null)}})]})}const Cv="vskill.migrations.scope-rename.v1",QR={own:"authoring-project",installed:"available-project",global:"available-personal"},ZR=/^vskill-sidebar-(.+)-(own|installed|global)-collapsed$/;function JR(t){if(t.getItem(Cv)==="done")return;const a=[];for(let s=0;s<t.length;s++){const i=t.key(s);if(!i)continue;const c=i.match(ZR);if(!c)continue;const[,u,d]=c,f=QR[d];if(!f)continue;const x=t.getItem(i);x!==null&&a.push({oldKey:i,newKey:`vskill-sidebar-${u}-${f}-collapsed`,value:x})}for(const{oldKey:s,newKey:i,value:c}of a)t.getItem(i)===null&&t.setItem(i,c),t.removeItem(s);t.setItem(Cv,"done")}if(typeof PerformanceObserver<"u")try{const t=new PerformanceObserver(a=>{for(const s of a.getEntries())if(s.name==="first-contentful-paint"){window.__vskillPaint=s.startTime,t.disconnect();return}});t.observe({type:"paint",buffered:!0})}catch{}if(typeof window<"u"&&window.localStorage)try{JR(window.localStorage)}catch{}H0.createRoot(document.getElementById("root")).render(r.jsx(m.StrictMode,{children:r.jsx(oS,{children:r.jsx(tk,{children:r.jsx(KR,{})})})}));export{fc as E,Fv as L,di as P,Re as R,VN as S,t4 as T,Vl as _,cr as a,Sb as b,UN as c,uc as d,ac as e,ke as f,DR as g,ib as h,r as j,m as r,Zo as t,Ya as u,zR as w};