@clef-sh/ui 0.1.23 → 0.1.24-beta.169
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/index-BpvAgeMe.js +81 -0
- package/dist/client/assets/index-KdyAJlJL.css +1 -0
- package/dist/client/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2 +0 -0
- package/dist/client/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2 +0 -0
- package/dist/client/assets/instrument-serif-latin-400-normal-BVbkICAY.woff +0 -0
- package/dist/client/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2 +0 -0
- package/dist/client/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2 +0 -0
- package/dist/client/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff +0 -0
- package/dist/client/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dist/client/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
- package/dist/client/index.html +4 -8
- package/dist/client-lib/components/Sidebar.d.ts.map +1 -1
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +11 -1
- package/dist/server/envelope.js.map +1 -1
- package/package.json +8 -8
- package/src/client/App.tsx +3 -7
- package/src/client/clef-wordmark.d.ts +24 -0
- package/src/client/components/Sidebar.tsx +3 -19
- package/src/client/index.html +2 -6
- package/src/client/main.tsx +1 -0
- package/src/client/styles.css +1 -0
- package/dist/client/assets/index-YcTmzmJ5.js +0 -34
- package/dist/client/assets/index-qsLTYpc9.css +0 -2
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
(function(){const d=document.createElement("link").relList;if(d&&d.supports&&d.supports("modulepreload"))return;for(const m of document.querySelectorAll('link[rel="modulepreload"]'))p(m);new MutationObserver(m=>{for(const v of m)if(v.type==="childList")for(const b of v.addedNodes)b.tagName==="LINK"&&b.rel==="modulepreload"&&p(b)}).observe(document,{childList:!0,subtree:!0});function i(m){const v={};return m.integrity&&(v.integrity=m.integrity),m.referrerPolicy&&(v.referrerPolicy=m.referrerPolicy),m.crossOrigin==="use-credentials"?v.credentials="include":m.crossOrigin==="anonymous"?v.credentials="omit":v.credentials="same-origin",v}function p(m){if(m.ep)return;m.ep=!0;const v=i(m);fetch(m.href,v)}})();function Gd(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var go={exports:{}},Qr={},vo={exports:{}},_e={};var vd;function sp(){if(vd)return _e;vd=1;var o=Symbol.for("react.element"),d=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),v=Symbol.for("react.provider"),b=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),S=Symbol.for("react.suspense"),j=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),I=Symbol.iterator;function $(g){return g===null||typeof g!="object"?null:(g=I&&g[I]||g["@@iterator"],typeof g=="function"?g:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},O=Object.assign,z={};function L(g,P,we){this.props=g,this.context=P,this.refs=z,this.updater=we||B}L.prototype.isReactComponent={},L.prototype.setState=function(g,P){if(typeof g!="object"&&typeof g!="function"&&g!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,g,P,"setState")},L.prototype.forceUpdate=function(g){this.updater.enqueueForceUpdate(this,g,"forceUpdate")};function q(){}q.prototype=L.prototype;function le(g,P,we){this.props=g,this.context=P,this.refs=z,this.updater=we||B}var ue=le.prototype=new q;ue.constructor=le,O(ue,L.prototype),ue.isPureReactComponent=!0;var N=Array.isArray,M=Object.prototype.hasOwnProperty,ne={current:null},Y={key:!0,ref:!0,__self:!0,__source:!0};function oe(g,P,we){var ke,K={},Se=null,te=null;if(P!=null)for(ke in P.ref!==void 0&&(te=P.ref),P.key!==void 0&&(Se=""+P.key),P)M.call(P,ke)&&!Y.hasOwnProperty(ke)&&(K[ke]=P[ke]);var xe=arguments.length-2;if(xe===1)K.children=we;else if(1<xe){for(var Ce=Array(xe),A=0;A<xe;A++)Ce[A]=arguments[A+2];K.children=Ce}if(g&&g.defaultProps)for(ke in xe=g.defaultProps,xe)K[ke]===void 0&&(K[ke]=xe[ke]);return{$$typeof:o,type:g,key:Se,ref:te,props:K,_owner:ne.current}}function Ee(g,P){return{$$typeof:o,type:g.type,key:P,ref:g.ref,props:g.props,_owner:g._owner}}function ae(g){return typeof g=="object"&&g!==null&&g.$$typeof===o}function V(g){var P={"=":"=0",":":"=2"};return"$"+g.replace(/[=:]/g,function(we){return P[we]})}var ie=/\/+/g;function y(g,P){return typeof g=="object"&&g!==null&&g.key!=null?V(""+g.key):P.toString(36)}function J(g,P,we,ke,K){var Se=typeof g;(Se==="undefined"||Se==="boolean")&&(g=null);var te=!1;if(g===null)te=!0;else switch(Se){case"string":case"number":te=!0;break;case"object":switch(g.$$typeof){case o:case d:te=!0}}if(te)return te=g,K=K(te),g=ke===""?"."+y(te,0):ke,N(K)?(we="",g!=null&&(we=g.replace(ie,"$&/")+"/"),J(K,P,we,"",function(A){return A})):K!=null&&(ae(K)&&(K=Ee(K,we+(!K.key||te&&te.key===K.key?"":(""+K.key).replace(ie,"$&/")+"/")+g)),P.push(K)),1;if(te=0,ke=ke===""?".":ke+":",N(g))for(var xe=0;xe<g.length;xe++){Se=g[xe];var Ce=ke+y(Se,xe);te+=J(Se,P,we,Ce,K)}else if(Ce=$(g),typeof Ce=="function")for(g=Ce.call(g),xe=0;!(Se=g.next()).done;)Se=Se.value,Ce=ke+y(Se,xe++),te+=J(Se,P,we,Ce,K);else if(Se==="object")throw P=String(g),Error("Objects are not valid as a React child (found: "+(P==="[object Object]"?"object with keys {"+Object.keys(g).join(", ")+"}":P)+"). If you meant to render a collection of children, use an array instead.");return te}function X(g,P,we){if(g==null)return g;var ke=[],K=0;return J(g,ke,"","",function(Se){return P.call(we,Se,K++)}),ke}function ce(g){if(g._status===-1){var P=g._result;P=P(),P.then(function(we){(g._status===0||g._status===-1)&&(g._status=1,g._result=we)},function(we){(g._status===0||g._status===-1)&&(g._status=2,g._result=we)}),g._status===-1&&(g._status=0,g._result=P)}if(g._status===1)return g._result.default;throw g._result}var k={current:null},R={transition:null},ee={ReactCurrentDispatcher:k,ReactCurrentBatchConfig:R,ReactCurrentOwner:ne};function Q(){throw Error("act(...) is not supported in production builds of React.")}return _e.Children={map:X,forEach:function(g,P,we){X(g,function(){P.apply(this,arguments)},we)},count:function(g){var P=0;return X(g,function(){P++}),P},toArray:function(g){return X(g,function(P){return P})||[]},only:function(g){if(!ae(g))throw Error("React.Children.only expected to receive a single React element child.");return g}},_e.Component=L,_e.Fragment=i,_e.Profiler=m,_e.PureComponent=le,_e.StrictMode=p,_e.Suspense=S,_e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ee,_e.act=Q,_e.cloneElement=function(g,P,we){if(g==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+g+".");var ke=O({},g.props),K=g.key,Se=g.ref,te=g._owner;if(P!=null){if(P.ref!==void 0&&(Se=P.ref,te=ne.current),P.key!==void 0&&(K=""+P.key),g.type&&g.type.defaultProps)var xe=g.type.defaultProps;for(Ce in P)M.call(P,Ce)&&!Y.hasOwnProperty(Ce)&&(ke[Ce]=P[Ce]===void 0&&xe!==void 0?xe[Ce]:P[Ce])}var Ce=arguments.length-2;if(Ce===1)ke.children=we;else if(1<Ce){xe=Array(Ce);for(var A=0;A<Ce;A++)xe[A]=arguments[A+2];ke.children=xe}return{$$typeof:o,type:g.type,key:K,ref:Se,props:ke,_owner:te}},_e.createContext=function(g){return g={$$typeof:b,_currentValue:g,_currentValue2:g,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},g.Provider={$$typeof:v,_context:g},g.Consumer=g},_e.createElement=oe,_e.createFactory=function(g){var P=oe.bind(null,g);return P.type=g,P},_e.createRef=function(){return{current:null}},_e.forwardRef=function(g){return{$$typeof:T,render:g}},_e.isValidElement=ae,_e.lazy=function(g){return{$$typeof:_,_payload:{_status:-1,_result:g},_init:ce}},_e.memo=function(g,P){return{$$typeof:j,type:g,compare:P===void 0?null:P}},_e.startTransition=function(g){var P=R.transition;R.transition={};try{g()}finally{R.transition=P}},_e.unstable_act=Q,_e.useCallback=function(g,P){return k.current.useCallback(g,P)},_e.useContext=function(g){return k.current.useContext(g)},_e.useDebugValue=function(){},_e.useDeferredValue=function(g){return k.current.useDeferredValue(g)},_e.useEffect=function(g,P){return k.current.useEffect(g,P)},_e.useId=function(){return k.current.useId()},_e.useImperativeHandle=function(g,P,we){return k.current.useImperativeHandle(g,P,we)},_e.useInsertionEffect=function(g,P){return k.current.useInsertionEffect(g,P)},_e.useLayoutEffect=function(g,P){return k.current.useLayoutEffect(g,P)},_e.useMemo=function(g,P){return k.current.useMemo(g,P)},_e.useReducer=function(g,P,we){return k.current.useReducer(g,P,we)},_e.useRef=function(g){return k.current.useRef(g)},_e.useState=function(g){return k.current.useState(g)},_e.useSyncExternalStore=function(g,P,we){return k.current.useSyncExternalStore(g,P,we)},_e.useTransition=function(){return k.current.useTransition()},_e.version="18.3.1",_e}var yd;function To(){return yd||(yd=1,vo.exports=sp()),vo.exports}var jd;function lp(){if(jd)return Qr;jd=1;var o=To(),d=Symbol.for("react.element"),i=Symbol.for("react.fragment"),p=Object.prototype.hasOwnProperty,m=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,v={key:!0,ref:!0,__self:!0,__source:!0};function b(T,S,j){var _,I={},$=null,B=null;j!==void 0&&($=""+j),S.key!==void 0&&($=""+S.key),S.ref!==void 0&&(B=S.ref);for(_ in S)p.call(S,_)&&!v.hasOwnProperty(_)&&(I[_]=S[_]);if(T&&T.defaultProps)for(_ in S=T.defaultProps,S)I[_]===void 0&&(I[_]=S[_]);return{$$typeof:d,type:T,key:$,ref:B,props:I,_owner:m.current}}return Qr.Fragment=i,Qr.jsx=b,Qr.jsxs=b,Qr}var kd;function ap(){return kd||(kd=1,go.exports=lp()),go.exports}var r=ap(),u=To();const bt=Gd(u);var pl={},yo={exports:{}},jt={},jo={exports:{}},ko={};var bd;function op(){return bd||(bd=1,(function(o){function d(R,ee){var Q=R.length;R.push(ee);e:for(;0<Q;){var g=Q-1>>>1,P=R[g];if(0<m(P,ee))R[g]=ee,R[Q]=P,Q=g;else break e}}function i(R){return R.length===0?null:R[0]}function p(R){if(R.length===0)return null;var ee=R[0],Q=R.pop();if(Q!==ee){R[0]=Q;e:for(var g=0,P=R.length,we=P>>>1;g<we;){var ke=2*(g+1)-1,K=R[ke],Se=ke+1,te=R[Se];if(0>m(K,Q))Se<P&&0>m(te,K)?(R[g]=te,R[Se]=Q,g=Se):(R[g]=K,R[ke]=Q,g=ke);else if(Se<P&&0>m(te,Q))R[g]=te,R[Se]=Q,g=Se;else break e}}return ee}function m(R,ee){var Q=R.sortIndex-ee.sortIndex;return Q!==0?Q:R.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var v=performance;o.unstable_now=function(){return v.now()}}else{var b=Date,T=b.now();o.unstable_now=function(){return b.now()-T}}var S=[],j=[],_=1,I=null,$=3,B=!1,O=!1,z=!1,L=typeof setTimeout=="function"?setTimeout:null,q=typeof clearTimeout=="function"?clearTimeout:null,le=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function ue(R){for(var ee=i(j);ee!==null;){if(ee.callback===null)p(j);else if(ee.startTime<=R)p(j),ee.sortIndex=ee.expirationTime,d(S,ee);else break;ee=i(j)}}function N(R){if(z=!1,ue(R),!O)if(i(S)!==null)O=!0,ce(M);else{var ee=i(j);ee!==null&&k(N,ee.startTime-R)}}function M(R,ee){O=!1,z&&(z=!1,q(oe),oe=-1),B=!0;var Q=$;try{for(ue(ee),I=i(S);I!==null&&(!(I.expirationTime>ee)||R&&!V());){var g=I.callback;if(typeof g=="function"){I.callback=null,$=I.priorityLevel;var P=g(I.expirationTime<=ee);ee=o.unstable_now(),typeof P=="function"?I.callback=P:I===i(S)&&p(S),ue(ee)}else p(S);I=i(S)}if(I!==null)var we=!0;else{var ke=i(j);ke!==null&&k(N,ke.startTime-ee),we=!1}return we}finally{I=null,$=Q,B=!1}}var ne=!1,Y=null,oe=-1,Ee=5,ae=-1;function V(){return!(o.unstable_now()-ae<Ee)}function ie(){if(Y!==null){var R=o.unstable_now();ae=R;var ee=!0;try{ee=Y(!0,R)}finally{ee?y():(ne=!1,Y=null)}}else ne=!1}var y;if(typeof le=="function")y=function(){le(ie)};else if(typeof MessageChannel<"u"){var J=new MessageChannel,X=J.port2;J.port1.onmessage=ie,y=function(){X.postMessage(null)}}else y=function(){L(ie,0)};function ce(R){Y=R,ne||(ne=!0,y())}function k(R,ee){oe=L(function(){R(o.unstable_now())},ee)}o.unstable_IdlePriority=5,o.unstable_ImmediatePriority=1,o.unstable_LowPriority=4,o.unstable_NormalPriority=3,o.unstable_Profiling=null,o.unstable_UserBlockingPriority=2,o.unstable_cancelCallback=function(R){R.callback=null},o.unstable_continueExecution=function(){O||B||(O=!0,ce(M))},o.unstable_forceFrameRate=function(R){0>R||125<R?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Ee=0<R?Math.floor(1e3/R):5},o.unstable_getCurrentPriorityLevel=function(){return $},o.unstable_getFirstCallbackNode=function(){return i(S)},o.unstable_next=function(R){switch($){case 1:case 2:case 3:var ee=3;break;default:ee=$}var Q=$;$=ee;try{return R()}finally{$=Q}},o.unstable_pauseExecution=function(){},o.unstable_requestPaint=function(){},o.unstable_runWithPriority=function(R,ee){switch(R){case 1:case 2:case 3:case 4:case 5:break;default:R=3}var Q=$;$=R;try{return ee()}finally{$=Q}},o.unstable_scheduleCallback=function(R,ee,Q){var g=o.unstable_now();switch(typeof Q=="object"&&Q!==null?(Q=Q.delay,Q=typeof Q=="number"&&0<Q?g+Q:g):Q=g,R){case 1:var P=-1;break;case 2:P=250;break;case 5:P=1073741823;break;case 4:P=1e4;break;default:P=5e3}return P=Q+P,R={id:_++,callback:ee,priorityLevel:R,startTime:Q,expirationTime:P,sortIndex:-1},Q>g?(R.sortIndex=Q,d(j,R),i(S)===null&&R===i(j)&&(z?(q(oe),oe=-1):z=!0,k(N,Q-g))):(R.sortIndex=P,d(S,R),O||B||(O=!0,ce(M))),R},o.unstable_shouldYield=V,o.unstable_wrapCallback=function(R){var ee=$;return function(){var Q=$;$=ee;try{return R.apply(this,arguments)}finally{$=Q}}}})(ko)),ko}var wd;function ip(){return wd||(wd=1,jo.exports=op()),jo.exports}var Nd;function cp(){if(Nd)return jt;Nd=1;var o=To(),d=ip();function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var p=new Set,m={};function v(e,t){b(e,t),b(e+"Capture",t)}function b(e,t){for(m[e]=t,e=0;e<t.length;e++)p.add(t[e])}var T=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),S=Object.prototype.hasOwnProperty,j=/^[: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]*$/,_={},I={};function $(e){return S.call(I,e)?!0:S.call(_,e)?!1:j.test(e)?I[e]=!0:(_[e]=!0,!1)}function B(e,t,n,s){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function O(e,t,n,s){if(t===null||typeof t>"u"||B(e,t,n,s))return!0;if(s)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function z(e,t,n,s,l,a,c){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=c}var L={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){L[e]=new z(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];L[t]=new z(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){L[e]=new z(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){L[e]=new z(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){L[e]=new z(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){L[e]=new z(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){L[e]=new z(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){L[e]=new z(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){L[e]=new z(e,5,!1,e.toLowerCase(),null,!1,!1)});var q=/[\-:]([a-z])/g;function le(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(q,le);L[t]=new z(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(q,le);L[t]=new z(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(q,le);L[t]=new z(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){L[e]=new z(e,1,!1,e.toLowerCase(),null,!1,!1)}),L.xlinkHref=new z("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){L[e]=new z(e,1,!1,e.toLowerCase(),null,!0,!0)});function ue(e,t,n,s){var l=L.hasOwnProperty(t)?L[t]:null;(l!==null?l.type!==0:s||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(O(t,n,l,s)&&(n=null),s||l===null?$(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):l.mustUseProperty?e[l.propertyName]=n===null?l.type===3?!1:"":n:(t=l.attributeName,s=l.attributeNamespace,n===null?e.removeAttribute(t):(l=l.type,n=l===3||l===4&&n===!0?"":""+n,s?e.setAttributeNS(s,t,n):e.setAttribute(t,n))))}var N=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,M=Symbol.for("react.element"),ne=Symbol.for("react.portal"),Y=Symbol.for("react.fragment"),oe=Symbol.for("react.strict_mode"),Ee=Symbol.for("react.profiler"),ae=Symbol.for("react.provider"),V=Symbol.for("react.context"),ie=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),J=Symbol.for("react.suspense_list"),X=Symbol.for("react.memo"),ce=Symbol.for("react.lazy"),k=Symbol.for("react.offscreen"),R=Symbol.iterator;function ee(e){return e===null||typeof e!="object"?null:(e=R&&e[R]||e["@@iterator"],typeof e=="function"?e:null)}var Q=Object.assign,g;function P(e){if(g===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);g=t&&t[1]||""}return`
|
|
2
|
+
`+g+e}var we=!1;function ke(e,t){if(!e||we)return"";we=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(E){var s=E}Reflect.construct(e,[],t)}else{try{t.call()}catch(E){s=E}e.call(t.prototype)}else{try{throw Error()}catch(E){s=E}e()}}catch(E){if(E&&s&&typeof E.stack=="string"){for(var l=E.stack.split(`
|
|
3
|
+
`),a=s.stack.split(`
|
|
4
|
+
`),c=l.length-1,f=a.length-1;1<=c&&0<=f&&l[c]!==a[f];)f--;for(;1<=c&&0<=f;c--,f--)if(l[c]!==a[f]){if(c!==1||f!==1)do if(c--,f--,0>f||l[c]!==a[f]){var x=`
|
|
5
|
+
`+l[c].replace(" at new "," at ");return e.displayName&&x.includes("<anonymous>")&&(x=x.replace("<anonymous>",e.displayName)),x}while(1<=c&&0<=f);break}}}finally{we=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?P(e):""}function K(e){switch(e.tag){case 5:return P(e.type);case 16:return P("Lazy");case 13:return P("Suspense");case 19:return P("SuspenseList");case 0:case 2:case 15:return e=ke(e.type,!1),e;case 11:return e=ke(e.type.render,!1),e;case 1:return e=ke(e.type,!0),e;default:return""}}function Se(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Y:return"Fragment";case ne:return"Portal";case Ee:return"Profiler";case oe:return"StrictMode";case y:return"Suspense";case J:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case V:return(e.displayName||"Context")+".Consumer";case ae:return(e._context.displayName||"Context")+".Provider";case ie:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case X:return t=e.displayName||null,t!==null?t:Se(e.type)||"Memo";case ce:t=e._payload,e=e._init;try{return Se(e(t))}catch{}}return null}function te(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Se(t);case 8:return t===oe?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function xe(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ce(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function A(e){var t=Ce(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(c){s=""+c,a.call(this,c)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(c){s=""+c},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function be(e){e._valueTracker||(e._valueTracker=A(e))}function je(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=Ce(e)?e.checked?"true":"false":e.value),e=s,e!==n?(t.setValue(e),!0):!1}function Te(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}}function Ke(e,t){var n=t.checked;return Q({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function qe(e,t){var n=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;n=xe(t.value!=null?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function pt(e,t){t=t.checked,t!=null&&ue(e,"checked",t,!1)}function wn(e,t){pt(e,t);var n=xe(t.value),s=t.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ur(e,t.type,n):t.hasOwnProperty("defaultValue")&&ur(e,t.type,xe(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ns(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ur(e,t,n){(t!=="number"||Te(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Nn=Array.isArray;function Wt(e,t,n,s){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&s&&(e[n].defaultSelected=!0)}else{for(n=""+xe(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,s&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Sn(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(i(91));return Q({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function zn(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(i(92));if(Nn(n)){if(1<n.length)throw Error(i(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:xe(n)}}function rs(e,t){var n=xe(t.value),s=xe(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),s!=null&&(e.defaultValue=""+s)}function H(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Re(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?se(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var he,Ae=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,s,l){MSApp.execUnsafeLocalFunction(function(){return e(t,n,s,l)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(he=he||document.createElement("div"),he.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var mt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ao=["Webkit","ms","Moz","O"];Object.keys(mt).forEach(function(e){Ao.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),mt[t]=mt[e]})});function ss(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||mt.hasOwnProperty(e)&&mt[e]?(""+t).trim():t+"px"}function ls(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var s=n.indexOf("--")===0,l=ss(n,t[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,l):e[n]=l}}var iu=Q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _l(e,t){if(t){if(iu[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(i(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(t.style!=null&&typeof t.style!="object")throw Error(i(62))}}function Tl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";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 Rl=null;function $l(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Pl=null,Fn=null,Bn=null;function Io(e){if(e=Lr(e)){if(typeof Pl!="function")throw Error(i(280));var t=e.stateNode;t&&(t=_s(t),Pl(e.stateNode,e.type,t))}}function Mo(e){Fn?Bn?Bn.push(e):Bn=[e]:Fn=e}function Do(){if(Fn){var e=Fn,t=Bn;if(Bn=Fn=null,Io(e),t)for(e=0;e<t.length;e++)Io(t[e])}}function Oo(e,t){return e(t)}function zo(){}var Ll=!1;function Fo(e,t,n){if(Ll)return e(t,n);Ll=!0;try{return Oo(e,t,n)}finally{Ll=!1,(Fn!==null||Bn!==null)&&(zo(),Do())}}function fr(e,t){var n=e.stateNode;if(n===null)return null;var s=_s(n);if(s===null)return null;n=s[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(i(231,t,typeof n));return n}var Al=!1;if(T)try{var pr={};Object.defineProperty(pr,"passive",{get:function(){Al=!0}}),window.addEventListener("test",pr,pr),window.removeEventListener("test",pr,pr)}catch{Al=!1}function cu(e,t,n,s,l,a,c,f,x){var E=Array.prototype.slice.call(arguments,3);try{t.apply(n,E)}catch(F){this.onError(F)}}var mr=!1,as=null,os=!1,Il=null,du={onError:function(e){mr=!0,as=e}};function uu(e,t,n,s,l,a,c,f,x){mr=!1,as=null,cu.apply(du,arguments)}function fu(e,t,n,s,l,a,c,f,x){if(uu.apply(this,arguments),mr){if(mr){var E=as;mr=!1,as=null}else throw Error(i(198));os||(os=!0,Il=E)}}function Cn(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function Bo(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Uo(e){if(Cn(e)!==e)throw Error(i(188))}function pu(e){var t=e.alternate;if(!t){if(t=Cn(e),t===null)throw Error(i(188));return t!==e?null:e}for(var n=e,s=t;;){var l=n.return;if(l===null)break;var a=l.alternate;if(a===null){if(s=l.return,s!==null){n=s;continue}break}if(l.child===a.child){for(a=l.child;a;){if(a===n)return Uo(l),e;if(a===s)return Uo(l),t;a=a.sibling}throw Error(i(188))}if(n.return!==s.return)n=l,s=a;else{for(var c=!1,f=l.child;f;){if(f===n){c=!0,n=l,s=a;break}if(f===s){c=!0,s=l,n=a;break}f=f.sibling}if(!c){for(f=a.child;f;){if(f===n){c=!0,n=a,s=l;break}if(f===s){c=!0,s=a,n=l;break}f=f.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==s)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function Ko(e){return e=pu(e),e!==null?Ho(e):null}function Ho(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Ho(e);if(t!==null)return t;e=e.sibling}return null}var Vo=d.unstable_scheduleCallback,Wo=d.unstable_cancelCallback,mu=d.unstable_shouldYield,xu=d.unstable_requestPaint,Ve=d.unstable_now,hu=d.unstable_getCurrentPriorityLevel,Ml=d.unstable_ImmediatePriority,qo=d.unstable_UserBlockingPriority,is=d.unstable_NormalPriority,gu=d.unstable_LowPriority,Qo=d.unstable_IdlePriority,cs=null,Bt=null;function vu(e){if(Bt&&typeof Bt.onCommitFiberRoot=="function")try{Bt.onCommitFiberRoot(cs,e,void 0,(e.current.flags&128)===128)}catch{}}var At=Math.clz32?Math.clz32:ku,yu=Math.log,ju=Math.LN2;function ku(e){return e>>>=0,e===0?32:31-(yu(e)/ju|0)|0}var ds=64,us=4194304;function xr(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function fs(e,t){var n=e.pendingLanes;if(n===0)return 0;var s=0,l=e.suspendedLanes,a=e.pingedLanes,c=n&268435455;if(c!==0){var f=c&~l;f!==0?s=xr(f):(a&=c,a!==0&&(s=xr(a)))}else c=n&~l,c!==0?s=xr(c):a!==0&&(s=xr(a));if(s===0)return 0;if(t!==0&&t!==s&&(t&l)===0&&(l=s&-s,a=t&-t,l>=a||l===16&&(a&4194240)!==0))return t;if((s&4)!==0&&(s|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0<t;)n=31-At(t),l=1<<n,s|=e[n],t&=~l;return s}function bu(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64: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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function wu(e,t){for(var n=e.suspendedLanes,s=e.pingedLanes,l=e.expirationTimes,a=e.pendingLanes;0<a;){var c=31-At(a),f=1<<c,x=l[c];x===-1?((f&n)===0||(f&s)!==0)&&(l[c]=bu(f,t)):x<=t&&(e.expiredLanes|=f),a&=~f}}function Dl(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Yo(){var e=ds;return ds<<=1,(ds&4194240)===0&&(ds=64),e}function Ol(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function hr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-At(t),e[t]=n}function Nu(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<n;){var l=31-At(n),a=1<<l;t[l]=0,s[l]=-1,e[l]=-1,n&=~a}}function zl(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var s=31-At(n),l=1<<s;l&t|e[s]&t&&(e[s]|=t),n&=~l}}var Ie=0;function Go(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Jo,Fl,Xo,Zo,ei,Bl=!1,ps=[],tn=null,nn=null,rn=null,gr=new Map,vr=new Map,sn=[],Su="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 submit".split(" ");function ti(e,t){switch(e){case"focusin":case"focusout":tn=null;break;case"dragenter":case"dragleave":nn=null;break;case"mouseover":case"mouseout":rn=null;break;case"pointerover":case"pointerout":gr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":vr.delete(t.pointerId)}}function yr(e,t,n,s,l,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:s,nativeEvent:a,targetContainers:[l]},t!==null&&(t=Lr(t),t!==null&&Fl(t)),e):(e.eventSystemFlags|=s,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function Cu(e,t,n,s,l){switch(t){case"focusin":return tn=yr(tn,e,t,n,s,l),!0;case"dragenter":return nn=yr(nn,e,t,n,s,l),!0;case"mouseover":return rn=yr(rn,e,t,n,s,l),!0;case"pointerover":var a=l.pointerId;return gr.set(a,yr(gr.get(a)||null,e,t,n,s,l)),!0;case"gotpointercapture":return a=l.pointerId,vr.set(a,yr(vr.get(a)||null,e,t,n,s,l)),!0}return!1}function ni(e){var t=En(e.target);if(t!==null){var n=Cn(t);if(n!==null){if(t=n.tag,t===13){if(t=Bo(n),t!==null){e.blockedOn=t,ei(e.priority,function(){Xo(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ms(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kl(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var s=new n.constructor(n.type,n);Rl=s,n.target.dispatchEvent(s),Rl=null}else return t=Lr(n),t!==null&&Fl(t),e.blockedOn=n,!1;t.shift()}return!0}function ri(e,t,n){ms(e)&&n.delete(t)}function Eu(){Bl=!1,tn!==null&&ms(tn)&&(tn=null),nn!==null&&ms(nn)&&(nn=null),rn!==null&&ms(rn)&&(rn=null),gr.forEach(ri),vr.forEach(ri)}function jr(e,t){e.blockedOn===t&&(e.blockedOn=null,Bl||(Bl=!0,d.unstable_scheduleCallback(d.unstable_NormalPriority,Eu)))}function kr(e){function t(l){return jr(l,e)}if(0<ps.length){jr(ps[0],e);for(var n=1;n<ps.length;n++){var s=ps[n];s.blockedOn===e&&(s.blockedOn=null)}}for(tn!==null&&jr(tn,e),nn!==null&&jr(nn,e),rn!==null&&jr(rn,e),gr.forEach(t),vr.forEach(t),n=0;n<sn.length;n++)s=sn[n],s.blockedOn===e&&(s.blockedOn=null);for(;0<sn.length&&(n=sn[0],n.blockedOn===null);)ni(n),n.blockedOn===null&&sn.shift()}var Un=N.ReactCurrentBatchConfig,xs=!0;function _u(e,t,n,s){var l=Ie,a=Un.transition;Un.transition=null;try{Ie=1,Ul(e,t,n,s)}finally{Ie=l,Un.transition=a}}function Tu(e,t,n,s){var l=Ie,a=Un.transition;Un.transition=null;try{Ie=4,Ul(e,t,n,s)}finally{Ie=l,Un.transition=a}}function Ul(e,t,n,s){if(xs){var l=Kl(e,t,n,s);if(l===null)aa(e,t,s,hs,n),ti(e,s);else if(Cu(l,e,t,n,s))s.stopPropagation();else if(ti(e,s),t&4&&-1<Su.indexOf(e)){for(;l!==null;){var a=Lr(l);if(a!==null&&Jo(a),a=Kl(e,t,n,s),a===null&&aa(e,t,s,hs,n),a===l)break;l=a}l!==null&&s.stopPropagation()}else aa(e,t,s,null,n)}}var hs=null;function Kl(e,t,n,s){if(hs=null,e=$l(s),e=En(e),e!==null)if(t=Cn(e),t===null)e=null;else if(n=t.tag,n===13){if(e=Bo(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return hs=e,null}function si(e){switch(e){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"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 1;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"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(hu()){case Ml:return 1;case qo:return 4;case is:case gu:return 16;case Qo:return 536870912;default:return 16}default:return 16}}var ln=null,Hl=null,gs=null;function li(){if(gs)return gs;var e,t=Hl,n=t.length,s,l="value"in ln?ln.value:ln.textContent,a=l.length;for(e=0;e<n&&t[e]===l[e];e++);var c=n-e;for(s=1;s<=c&&t[n-s]===l[a-s];s++);return gs=l.slice(e,1<s?1-s:void 0)}function vs(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function ys(){return!0}function ai(){return!1}function wt(e){function t(n,s,l,a,c){this._reactName=n,this._targetInst=l,this.type=s,this.nativeEvent=a,this.target=c,this.currentTarget=null;for(var f in e)e.hasOwnProperty(f)&&(n=e[f],this[f]=n?n(a):a[f]);return this.isDefaultPrevented=(a.defaultPrevented!=null?a.defaultPrevented:a.returnValue===!1)?ys:ai,this.isPropagationStopped=ai,this}return Q(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=ys)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=ys)},persist:function(){},isPersistent:ys}),t}var Kn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Vl=wt(Kn),br=Q({},Kn,{view:0,detail:0}),Ru=wt(br),Wl,ql,wr,js=Q({},br,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Yl,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!==wr&&(wr&&e.type==="mousemove"?(Wl=e.screenX-wr.screenX,ql=e.screenY-wr.screenY):ql=Wl=0,wr=e),Wl)},movementY:function(e){return"movementY"in e?e.movementY:ql}}),oi=wt(js),$u=Q({},js,{dataTransfer:0}),Pu=wt($u),Lu=Q({},br,{relatedTarget:0}),Ql=wt(Lu),Au=Q({},Kn,{animationName:0,elapsedTime:0,pseudoElement:0}),Iu=wt(Au),Mu=Q({},Kn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Du=wt(Mu),Ou=Q({},Kn,{data:0}),ii=wt(Ou),zu={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Fu={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"},Bu={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Uu(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Bu[e])?!!t[e]:!1}function Yl(){return Uu}var Ku=Q({},br,{key:function(e){if(e.key){var t=zu[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=vs(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Fu[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Yl,charCode:function(e){return e.type==="keypress"?vs(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?vs(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Hu=wt(Ku),Vu=Q({},js,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),ci=wt(Vu),Wu=Q({},br,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Yl}),qu=wt(Wu),Qu=Q({},Kn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Yu=wt(Qu),Gu=Q({},js,{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}),Ju=wt(Gu),Xu=[9,13,27,32],Gl=T&&"CompositionEvent"in window,Nr=null;T&&"documentMode"in document&&(Nr=document.documentMode);var Zu=T&&"TextEvent"in window&&!Nr,di=T&&(!Gl||Nr&&8<Nr&&11>=Nr),ui=" ",fi=!1;function pi(e,t){switch(e){case"keyup":return Xu.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function mi(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Hn=!1;function ef(e,t){switch(e){case"compositionend":return mi(t);case"keypress":return t.which!==32?null:(fi=!0,ui);case"textInput":return e=t.data,e===ui&&fi?null:e;default:return null}}function tf(e,t){if(Hn)return e==="compositionend"||!Gl&&pi(e,t)?(e=li(),gs=Hl=ln=null,Hn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return di&&t.locale!=="ko"?null:t.data;default:return null}}var nf={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 xi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!nf[e.type]:t==="textarea"}function hi(e,t,n,s){Mo(s),t=Ss(t,"onChange"),0<t.length&&(n=new Vl("onChange","change",null,n,s),e.push({event:n,listeners:t}))}var Sr=null,Cr=null;function rf(e){Ai(e,0)}function ks(e){var t=Yn(e);if(je(t))return e}function sf(e,t){if(e==="change")return t}var gi=!1;if(T){var Jl;if(T){var Xl="oninput"in document;if(!Xl){var vi=document.createElement("div");vi.setAttribute("oninput","return;"),Xl=typeof vi.oninput=="function"}Jl=Xl}else Jl=!1;gi=Jl&&(!document.documentMode||9<document.documentMode)}function yi(){Sr&&(Sr.detachEvent("onpropertychange",ji),Cr=Sr=null)}function ji(e){if(e.propertyName==="value"&&ks(Cr)){var t=[];hi(t,Cr,e,$l(e)),Fo(rf,t)}}function lf(e,t,n){e==="focusin"?(yi(),Sr=t,Cr=n,Sr.attachEvent("onpropertychange",ji)):e==="focusout"&&yi()}function af(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ks(Cr)}function of(e,t){if(e==="click")return ks(t)}function cf(e,t){if(e==="input"||e==="change")return ks(t)}function df(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var It=typeof Object.is=="function"?Object.is:df;function Er(e,t){if(It(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(s=0;s<n.length;s++){var l=n[s];if(!S.call(t,l)||!It(e[l],t[l]))return!1}return!0}function ki(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function bi(e,t){var n=ki(e);e=0;for(var s;n;){if(n.nodeType===3){if(s=e+n.textContent.length,e<=t&&s>=t)return{node:n,offset:t-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ki(n)}}function wi(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wi(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ni(){for(var e=window,t=Te();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Te(e.document)}return t}function Zl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function uf(e){var t=Ni(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&wi(n.ownerDocument.documentElement,n)){if(s!==null&&Zl(n)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,a=Math.min(s.start,l);s=s.end===void 0?a:Math.min(s.end,l),!e.extend&&a>s&&(l=s,s=a,a=l),l=bi(n,a);var c=bi(n,s);l&&c&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==c.node||e.focusOffset!==c.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),a>s?(e.addRange(t),e.extend(c.node,c.offset)):(t.setEnd(c.node,c.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var ff=T&&"documentMode"in document&&11>=document.documentMode,Vn=null,ea=null,_r=null,ta=!1;function Si(e,t,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ta||Vn==null||Vn!==Te(s)||(s=Vn,"selectionStart"in s&&Zl(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),_r&&Er(_r,s)||(_r=s,s=Ss(ea,"onSelect"),0<s.length&&(t=new Vl("onSelect","select",null,t,n),e.push({event:t,listeners:s}),t.target=Vn)))}function bs(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Wn={animationend:bs("Animation","AnimationEnd"),animationiteration:bs("Animation","AnimationIteration"),animationstart:bs("Animation","AnimationStart"),transitionend:bs("Transition","TransitionEnd")},na={},Ci={};T&&(Ci=document.createElement("div").style,"AnimationEvent"in window||(delete Wn.animationend.animation,delete Wn.animationiteration.animation,delete Wn.animationstart.animation),"TransitionEvent"in window||delete Wn.transitionend.transition);function ws(e){if(na[e])return na[e];if(!Wn[e])return e;var t=Wn[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Ci)return na[e]=t[n];return e}var Ei=ws("animationend"),_i=ws("animationiteration"),Ti=ws("animationstart"),Ri=ws("transitionend"),$i=new Map,Pi="abort auxClick 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(" ");function an(e,t){$i.set(e,t),v(t,[e])}for(var ra=0;ra<Pi.length;ra++){var sa=Pi[ra],pf=sa.toLowerCase(),mf=sa[0].toUpperCase()+sa.slice(1);an(pf,"on"+mf)}an(Ei,"onAnimationEnd"),an(_i,"onAnimationIteration"),an(Ti,"onAnimationStart"),an("dblclick","onDoubleClick"),an("focusin","onFocus"),an("focusout","onBlur"),an(Ri,"onTransitionEnd"),b("onMouseEnter",["mouseout","mouseover"]),b("onMouseLeave",["mouseout","mouseover"]),b("onPointerEnter",["pointerout","pointerover"]),b("onPointerLeave",["pointerout","pointerover"]),v("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),v("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),v("onBeforeInput",["compositionend","keypress","textInput","paste"]),v("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),v("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),v("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Tr="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(" "),xf=new Set("cancel close invalid load scroll toggle".split(" ").concat(Tr));function Li(e,t,n){var s=e.type||"unknown-event";e.currentTarget=n,fu(s,t,void 0,e),e.currentTarget=null}function Ai(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var s=e[n],l=s.event;s=s.listeners;e:{var a=void 0;if(t)for(var c=s.length-1;0<=c;c--){var f=s[c],x=f.instance,E=f.currentTarget;if(f=f.listener,x!==a&&l.isPropagationStopped())break e;Li(l,f,E),a=x}else for(c=0;c<s.length;c++){if(f=s[c],x=f.instance,E=f.currentTarget,f=f.listener,x!==a&&l.isPropagationStopped())break e;Li(l,f,E),a=x}}}if(os)throw e=Il,os=!1,Il=null,e}function De(e,t){var n=t[fa];n===void 0&&(n=t[fa]=new Set);var s=e+"__bubble";n.has(s)||(Ii(t,e,2,!1),n.add(s))}function la(e,t,n){var s=0;t&&(s|=4),Ii(n,e,s,t)}var Ns="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){if(!e[Ns]){e[Ns]=!0,p.forEach(function(n){n!=="selectionchange"&&(xf.has(n)||la(n,!1,e),la(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ns]||(t[Ns]=!0,la("selectionchange",!1,t))}}function Ii(e,t,n,s){switch(si(t)){case 1:var l=_u;break;case 4:l=Tu;break;default:l=Ul}n=l.bind(null,t,n,e),l=void 0,!Al||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),s?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function aa(e,t,n,s,l){var a=s;if((t&1)===0&&(t&2)===0&&s!==null)e:for(;;){if(s===null)return;var c=s.tag;if(c===3||c===4){var f=s.stateNode.containerInfo;if(f===l||f.nodeType===8&&f.parentNode===l)break;if(c===4)for(c=s.return;c!==null;){var x=c.tag;if((x===3||x===4)&&(x=c.stateNode.containerInfo,x===l||x.nodeType===8&&x.parentNode===l))return;c=c.return}for(;f!==null;){if(c=En(f),c===null)return;if(x=c.tag,x===5||x===6){s=a=c;continue e}f=f.parentNode}}s=s.return}Fo(function(){var E=a,F=$l(n),U=[];e:{var D=$i.get(e);if(D!==void 0){var re=Vl,fe=e;switch(e){case"keypress":if(vs(n)===0)break e;case"keydown":case"keyup":re=Hu;break;case"focusin":fe="focus",re=Ql;break;case"focusout":fe="blur",re=Ql;break;case"beforeblur":case"afterblur":re=Ql;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":re=oi;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":re=Pu;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":re=qu;break;case Ei:case _i:case Ti:re=Iu;break;case Ri:re=Yu;break;case"scroll":re=Ru;break;case"wheel":re=Ju;break;case"copy":case"cut":case"paste":re=Du;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":re=ci}var pe=(t&4)!==0,We=!pe&&e==="scroll",w=pe?D!==null?D+"Capture":null:D;pe=[];for(var h=E,C;h!==null;){C=h;var W=C.stateNode;if(C.tag===5&&W!==null&&(C=W,w!==null&&(W=fr(h,w),W!=null&&pe.push($r(h,W,C)))),We)break;h=h.return}0<pe.length&&(D=new re(D,fe,null,n,F),U.push({event:D,listeners:pe}))}}if((t&7)===0){e:{if(D=e==="mouseover"||e==="pointerover",re=e==="mouseout"||e==="pointerout",D&&n!==Rl&&(fe=n.relatedTarget||n.fromElement)&&(En(fe)||fe[qt]))break e;if((re||D)&&(D=F.window===F?F:(D=F.ownerDocument)?D.defaultView||D.parentWindow:window,re?(fe=n.relatedTarget||n.toElement,re=E,fe=fe?En(fe):null,fe!==null&&(We=Cn(fe),fe!==We||fe.tag!==5&&fe.tag!==6)&&(fe=null)):(re=null,fe=E),re!==fe)){if(pe=oi,W="onMouseLeave",w="onMouseEnter",h="mouse",(e==="pointerout"||e==="pointerover")&&(pe=ci,W="onPointerLeave",w="onPointerEnter",h="pointer"),We=re==null?D:Yn(re),C=fe==null?D:Yn(fe),D=new pe(W,h+"leave",re,n,F),D.target=We,D.relatedTarget=C,W=null,En(F)===E&&(pe=new pe(w,h+"enter",fe,n,F),pe.target=C,pe.relatedTarget=We,W=pe),We=W,re&&fe)t:{for(pe=re,w=fe,h=0,C=pe;C;C=qn(C))h++;for(C=0,W=w;W;W=qn(W))C++;for(;0<h-C;)pe=qn(pe),h--;for(;0<C-h;)w=qn(w),C--;for(;h--;){if(pe===w||w!==null&&pe===w.alternate)break t;pe=qn(pe),w=qn(w)}pe=null}else pe=null;re!==null&&Mi(U,D,re,pe,!1),fe!==null&&We!==null&&Mi(U,We,fe,pe,!0)}}e:{if(D=E?Yn(E):window,re=D.nodeName&&D.nodeName.toLowerCase(),re==="select"||re==="input"&&D.type==="file")var me=sf;else if(xi(D))if(gi)me=cf;else{me=af;var ve=lf}else(re=D.nodeName)&&re.toLowerCase()==="input"&&(D.type==="checkbox"||D.type==="radio")&&(me=of);if(me&&(me=me(e,E))){hi(U,me,n,F);break e}ve&&ve(e,D,E),e==="focusout"&&(ve=D._wrapperState)&&ve.controlled&&D.type==="number"&&ur(D,"number",D.value)}switch(ve=E?Yn(E):window,e){case"focusin":(xi(ve)||ve.contentEditable==="true")&&(Vn=ve,ea=E,_r=null);break;case"focusout":_r=ea=Vn=null;break;case"mousedown":ta=!0;break;case"contextmenu":case"mouseup":case"dragend":ta=!1,Si(U,n,F);break;case"selectionchange":if(ff)break;case"keydown":case"keyup":Si(U,n,F)}var ye;if(Gl)e:{switch(e){case"compositionstart":var Ne="onCompositionStart";break e;case"compositionend":Ne="onCompositionEnd";break e;case"compositionupdate":Ne="onCompositionUpdate";break e}Ne=void 0}else Hn?pi(e,n)&&(Ne="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(Ne="onCompositionStart");Ne&&(di&&n.locale!=="ko"&&(Hn||Ne!=="onCompositionStart"?Ne==="onCompositionEnd"&&Hn&&(ye=li()):(ln=F,Hl="value"in ln?ln.value:ln.textContent,Hn=!0)),ve=Ss(E,Ne),0<ve.length&&(Ne=new ii(Ne,e,null,n,F),U.push({event:Ne,listeners:ve}),ye?Ne.data=ye:(ye=mi(n),ye!==null&&(Ne.data=ye)))),(ye=Zu?ef(e,n):tf(e,n))&&(E=Ss(E,"onBeforeInput"),0<E.length&&(F=new ii("onBeforeInput","beforeinput",null,n,F),U.push({event:F,listeners:E}),F.data=ye))}Ai(U,t)})}function $r(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ss(e,t){for(var n=t+"Capture",s=[];e!==null;){var l=e,a=l.stateNode;l.tag===5&&a!==null&&(l=a,a=fr(e,n),a!=null&&s.unshift($r(e,a,l)),a=fr(e,t),a!=null&&s.push($r(e,a,l))),e=e.return}return s}function qn(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Mi(e,t,n,s,l){for(var a=t._reactName,c=[];n!==null&&n!==s;){var f=n,x=f.alternate,E=f.stateNode;if(x!==null&&x===s)break;f.tag===5&&E!==null&&(f=E,l?(x=fr(n,a),x!=null&&c.unshift($r(n,x,f))):l||(x=fr(n,a),x!=null&&c.push($r(n,x,f)))),n=n.return}c.length!==0&&e.push({event:t,listeners:c})}var hf=/\r\n?/g,gf=/\u0000|\uFFFD/g;function Di(e){return(typeof e=="string"?e:""+e).replace(hf,`
|
|
6
|
+
`).replace(gf,"")}function Cs(e,t,n){if(t=Di(t),Di(e)!==t&&n)throw Error(i(425))}function Es(){}var oa=null,ia=null;function ca(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var da=typeof setTimeout=="function"?setTimeout:void 0,vf=typeof clearTimeout=="function"?clearTimeout:void 0,Oi=typeof Promise=="function"?Promise:void 0,yf=typeof queueMicrotask=="function"?queueMicrotask:typeof Oi<"u"?function(e){return Oi.resolve(null).then(e).catch(jf)}:da;function jf(e){setTimeout(function(){throw e})}function ua(e,t){var n=t,s=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"){if(s===0){e.removeChild(l),kr(t);return}s--}else n!=="$"&&n!=="$?"&&n!=="$!"||s++;n=l}while(n);kr(t)}function on(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function zi(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Qn=Math.random().toString(36).slice(2),Ut="__reactFiber$"+Qn,Pr="__reactProps$"+Qn,qt="__reactContainer$"+Qn,fa="__reactEvents$"+Qn,kf="__reactListeners$"+Qn,bf="__reactHandles$"+Qn;function En(e){var t=e[Ut];if(t)return t;for(var n=e.parentNode;n;){if(t=n[qt]||n[Ut]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=zi(e);e!==null;){if(n=e[Ut])return n;e=zi(e)}return t}e=n,n=e.parentNode}return null}function Lr(e){return e=e[Ut]||e[qt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Yn(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function _s(e){return e[Pr]||null}var pa=[],Gn=-1;function cn(e){return{current:e}}function Oe(e){0>Gn||(e.current=pa[Gn],pa[Gn]=null,Gn--)}function Me(e,t){Gn++,pa[Gn]=e.current,e.current=t}var dn={},rt=cn(dn),xt=cn(!1),_n=dn;function Jn(e,t){var n=e.type.contextTypes;if(!n)return dn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var l={},a;for(a in n)l[a]=t[a];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function ht(e){return e=e.childContextTypes,e!=null}function Ts(){Oe(xt),Oe(rt)}function Fi(e,t,n){if(rt.current!==dn)throw Error(i(168));Me(rt,t),Me(xt,n)}function Bi(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var l in s)if(!(l in t))throw Error(i(108,te(e)||"Unknown",l));return Q({},n,s)}function Rs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||dn,_n=rt.current,Me(rt,e),Me(xt,xt.current),!0}function Ui(e,t,n){var s=e.stateNode;if(!s)throw Error(i(169));n?(e=Bi(e,t,_n),s.__reactInternalMemoizedMergedChildContext=e,Oe(xt),Oe(rt),Me(rt,e)):Oe(xt),Me(xt,n)}var Qt=null,$s=!1,ma=!1;function Ki(e){Qt===null?Qt=[e]:Qt.push(e)}function wf(e){$s=!0,Ki(e)}function un(){if(!ma&&Qt!==null){ma=!0;var e=0,t=Ie;try{var n=Qt;for(Ie=1;e<n.length;e++){var s=n[e];do s=s(!0);while(s!==null)}Qt=null,$s=!1}catch(l){throw Qt!==null&&(Qt=Qt.slice(e+1)),Vo(Ml,un),l}finally{Ie=t,ma=!1}}return null}var Xn=[],Zn=0,Ps=null,Ls=0,Et=[],_t=0,Tn=null,Yt=1,Gt="";function Rn(e,t){Xn[Zn++]=Ls,Xn[Zn++]=Ps,Ps=e,Ls=t}function Hi(e,t,n){Et[_t++]=Yt,Et[_t++]=Gt,Et[_t++]=Tn,Tn=e;var s=Yt;e=Gt;var l=32-At(s)-1;s&=~(1<<l),n+=1;var a=32-At(t)+l;if(30<a){var c=l-l%5;a=(s&(1<<c)-1).toString(32),s>>=c,l-=c,Yt=1<<32-At(t)+l|n<<l|s,Gt=a+e}else Yt=1<<a|n<<l|s,Gt=e}function xa(e){e.return!==null&&(Rn(e,1),Hi(e,1,0))}function ha(e){for(;e===Ps;)Ps=Xn[--Zn],Xn[Zn]=null,Ls=Xn[--Zn],Xn[Zn]=null;for(;e===Tn;)Tn=Et[--_t],Et[_t]=null,Gt=Et[--_t],Et[_t]=null,Yt=Et[--_t],Et[_t]=null}var Nt=null,St=null,ze=!1,Mt=null;function Vi(e,t){var n=Pt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Wi(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Nt=e,St=on(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Nt=e,St=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Tn!==null?{id:Yt,overflow:Gt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Pt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Nt=e,St=null,!0):!1;default:return!1}}function ga(e){return(e.mode&1)!==0&&(e.flags&128)===0}function va(e){if(ze){var t=St;if(t){var n=t;if(!Wi(e,t)){if(ga(e))throw Error(i(418));t=on(n.nextSibling);var s=Nt;t&&Wi(e,t)?Vi(s,n):(e.flags=e.flags&-4097|2,ze=!1,Nt=e)}}else{if(ga(e))throw Error(i(418));e.flags=e.flags&-4097|2,ze=!1,Nt=e}}}function qi(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Nt=e}function As(e){if(e!==Nt)return!1;if(!ze)return qi(e),ze=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!ca(e.type,e.memoizedProps)),t&&(t=St)){if(ga(e))throw Qi(),Error(i(418));for(;t;)Vi(e,t),t=on(t.nextSibling)}if(qi(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){St=on(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}St=null}}else St=Nt?on(e.stateNode.nextSibling):null;return!0}function Qi(){for(var e=St;e;)e=on(e.nextSibling)}function er(){St=Nt=null,ze=!1}function ya(e){Mt===null?Mt=[e]:Mt.push(e)}var Nf=N.ReactCurrentBatchConfig;function Ar(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(i(309));var s=n.stateNode}if(!s)throw Error(i(147,e));var l=s,a=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===a?t.ref:(t=function(c){var f=l.refs;c===null?delete f[a]:f[a]=c},t._stringRef=a,t)}if(typeof e!="string")throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Is(e,t){throw e=Object.prototype.toString.call(t),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Yi(e){var t=e._init;return t(e._payload)}function Gi(e){function t(w,h){if(e){var C=w.deletions;C===null?(w.deletions=[h],w.flags|=16):C.push(h)}}function n(w,h){if(!e)return null;for(;h!==null;)t(w,h),h=h.sibling;return null}function s(w,h){for(w=new Map;h!==null;)h.key!==null?w.set(h.key,h):w.set(h.index,h),h=h.sibling;return w}function l(w,h){return w=yn(w,h),w.index=0,w.sibling=null,w}function a(w,h,C){return w.index=C,e?(C=w.alternate,C!==null?(C=C.index,C<h?(w.flags|=2,h):C):(w.flags|=2,h)):(w.flags|=1048576,h)}function c(w){return e&&w.alternate===null&&(w.flags|=2),w}function f(w,h,C,W){return h===null||h.tag!==6?(h=uo(C,w.mode,W),h.return=w,h):(h=l(h,C),h.return=w,h)}function x(w,h,C,W){var me=C.type;return me===Y?F(w,h,C.props.children,W,C.key):h!==null&&(h.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===ce&&Yi(me)===h.type)?(W=l(h,C.props),W.ref=Ar(w,h,C),W.return=w,W):(W=ll(C.type,C.key,C.props,null,w.mode,W),W.ref=Ar(w,h,C),W.return=w,W)}function E(w,h,C,W){return h===null||h.tag!==4||h.stateNode.containerInfo!==C.containerInfo||h.stateNode.implementation!==C.implementation?(h=fo(C,w.mode,W),h.return=w,h):(h=l(h,C.children||[]),h.return=w,h)}function F(w,h,C,W,me){return h===null||h.tag!==7?(h=On(C,w.mode,W,me),h.return=w,h):(h=l(h,C),h.return=w,h)}function U(w,h,C){if(typeof h=="string"&&h!==""||typeof h=="number")return h=uo(""+h,w.mode,C),h.return=w,h;if(typeof h=="object"&&h!==null){switch(h.$$typeof){case M:return C=ll(h.type,h.key,h.props,null,w.mode,C),C.ref=Ar(w,null,h),C.return=w,C;case ne:return h=fo(h,w.mode,C),h.return=w,h;case ce:var W=h._init;return U(w,W(h._payload),C)}if(Nn(h)||ee(h))return h=On(h,w.mode,C,null),h.return=w,h;Is(w,h)}return null}function D(w,h,C,W){var me=h!==null?h.key:null;if(typeof C=="string"&&C!==""||typeof C=="number")return me!==null?null:f(w,h,""+C,W);if(typeof C=="object"&&C!==null){switch(C.$$typeof){case M:return C.key===me?x(w,h,C,W):null;case ne:return C.key===me?E(w,h,C,W):null;case ce:return me=C._init,D(w,h,me(C._payload),W)}if(Nn(C)||ee(C))return me!==null?null:F(w,h,C,W,null);Is(w,C)}return null}function re(w,h,C,W,me){if(typeof W=="string"&&W!==""||typeof W=="number")return w=w.get(C)||null,f(h,w,""+W,me);if(typeof W=="object"&&W!==null){switch(W.$$typeof){case M:return w=w.get(W.key===null?C:W.key)||null,x(h,w,W,me);case ne:return w=w.get(W.key===null?C:W.key)||null,E(h,w,W,me);case ce:var ve=W._init;return re(w,h,C,ve(W._payload),me)}if(Nn(W)||ee(W))return w=w.get(C)||null,F(h,w,W,me,null);Is(h,W)}return null}function fe(w,h,C,W){for(var me=null,ve=null,ye=h,Ne=h=0,et=null;ye!==null&&Ne<C.length;Ne++){ye.index>Ne?(et=ye,ye=null):et=ye.sibling;var Le=D(w,ye,C[Ne],W);if(Le===null){ye===null&&(ye=et);break}e&&ye&&Le.alternate===null&&t(w,ye),h=a(Le,h,Ne),ve===null?me=Le:ve.sibling=Le,ve=Le,ye=et}if(Ne===C.length)return n(w,ye),ze&&Rn(w,Ne),me;if(ye===null){for(;Ne<C.length;Ne++)ye=U(w,C[Ne],W),ye!==null&&(h=a(ye,h,Ne),ve===null?me=ye:ve.sibling=ye,ve=ye);return ze&&Rn(w,Ne),me}for(ye=s(w,ye);Ne<C.length;Ne++)et=re(ye,w,Ne,C[Ne],W),et!==null&&(e&&et.alternate!==null&&ye.delete(et.key===null?Ne:et.key),h=a(et,h,Ne),ve===null?me=et:ve.sibling=et,ve=et);return e&&ye.forEach(function(jn){return t(w,jn)}),ze&&Rn(w,Ne),me}function pe(w,h,C,W){var me=ee(C);if(typeof me!="function")throw Error(i(150));if(C=me.call(C),C==null)throw Error(i(151));for(var ve=me=null,ye=h,Ne=h=0,et=null,Le=C.next();ye!==null&&!Le.done;Ne++,Le=C.next()){ye.index>Ne?(et=ye,ye=null):et=ye.sibling;var jn=D(w,ye,Le.value,W);if(jn===null){ye===null&&(ye=et);break}e&&ye&&jn.alternate===null&&t(w,ye),h=a(jn,h,Ne),ve===null?me=jn:ve.sibling=jn,ve=jn,ye=et}if(Le.done)return n(w,ye),ze&&Rn(w,Ne),me;if(ye===null){for(;!Le.done;Ne++,Le=C.next())Le=U(w,Le.value,W),Le!==null&&(h=a(Le,h,Ne),ve===null?me=Le:ve.sibling=Le,ve=Le);return ze&&Rn(w,Ne),me}for(ye=s(w,ye);!Le.done;Ne++,Le=C.next())Le=re(ye,w,Ne,Le.value,W),Le!==null&&(e&&Le.alternate!==null&&ye.delete(Le.key===null?Ne:Le.key),h=a(Le,h,Ne),ve===null?me=Le:ve.sibling=Le,ve=Le);return e&&ye.forEach(function(rp){return t(w,rp)}),ze&&Rn(w,Ne),me}function We(w,h,C,W){if(typeof C=="object"&&C!==null&&C.type===Y&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case M:e:{for(var me=C.key,ve=h;ve!==null;){if(ve.key===me){if(me=C.type,me===Y){if(ve.tag===7){n(w,ve.sibling),h=l(ve,C.props.children),h.return=w,w=h;break e}}else if(ve.elementType===me||typeof me=="object"&&me!==null&&me.$$typeof===ce&&Yi(me)===ve.type){n(w,ve.sibling),h=l(ve,C.props),h.ref=Ar(w,ve,C),h.return=w,w=h;break e}n(w,ve);break}else t(w,ve);ve=ve.sibling}C.type===Y?(h=On(C.props.children,w.mode,W,C.key),h.return=w,w=h):(W=ll(C.type,C.key,C.props,null,w.mode,W),W.ref=Ar(w,h,C),W.return=w,w=W)}return c(w);case ne:e:{for(ve=C.key;h!==null;){if(h.key===ve)if(h.tag===4&&h.stateNode.containerInfo===C.containerInfo&&h.stateNode.implementation===C.implementation){n(w,h.sibling),h=l(h,C.children||[]),h.return=w,w=h;break e}else{n(w,h);break}else t(w,h);h=h.sibling}h=fo(C,w.mode,W),h.return=w,w=h}return c(w);case ce:return ve=C._init,We(w,h,ve(C._payload),W)}if(Nn(C))return fe(w,h,C,W);if(ee(C))return pe(w,h,C,W);Is(w,C)}return typeof C=="string"&&C!==""||typeof C=="number"?(C=""+C,h!==null&&h.tag===6?(n(w,h.sibling),h=l(h,C),h.return=w,w=h):(n(w,h),h=uo(C,w.mode,W),h.return=w,w=h),c(w)):n(w,h)}return We}var tr=Gi(!0),Ji=Gi(!1),Ms=cn(null),Ds=null,nr=null,ja=null;function ka(){ja=nr=Ds=null}function ba(e){var t=Ms.current;Oe(Ms),e._currentValue=t}function wa(e,t,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function rr(e,t){Ds=e,ja=nr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(gt=!0),e.firstContext=null)}function Tt(e){var t=e._currentValue;if(ja!==e)if(e={context:e,memoizedValue:t,next:null},nr===null){if(Ds===null)throw Error(i(308));nr=e,Ds.dependencies={lanes:0,firstContext:e}}else nr=nr.next=e;return t}var $n=null;function Na(e){$n===null?$n=[e]:$n.push(e)}function Xi(e,t,n,s){var l=t.interleaved;return l===null?(n.next=n,Na(t)):(n.next=l.next,l.next=n),t.interleaved=n,Jt(e,s)}function Jt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var fn=!1;function Sa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Zi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Xt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pn(e,t,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,($e&2)!==0){var l=s.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),s.pending=t,Jt(e,n)}return l=s.interleaved,l===null?(t.next=t,Na(s)):(t.next=l.next,l.next=t),s.interleaved=t,Jt(e,n)}function Os(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,zl(e,n)}}function ec(e,t){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var l=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var c={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?l=a=c:a=a.next=c,n=n.next}while(n!==null);a===null?l=a=t:a=a.next=t}else l=a=t;n={baseState:s.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function zs(e,t,n,s){var l=e.updateQueue;fn=!1;var a=l.firstBaseUpdate,c=l.lastBaseUpdate,f=l.shared.pending;if(f!==null){l.shared.pending=null;var x=f,E=x.next;x.next=null,c===null?a=E:c.next=E,c=x;var F=e.alternate;F!==null&&(F=F.updateQueue,f=F.lastBaseUpdate,f!==c&&(f===null?F.firstBaseUpdate=E:f.next=E,F.lastBaseUpdate=x))}if(a!==null){var U=l.baseState;c=0,F=E=x=null,f=a;do{var D=f.lane,re=f.eventTime;if((s&D)===D){F!==null&&(F=F.next={eventTime:re,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,next:null});e:{var fe=e,pe=f;switch(D=t,re=n,pe.tag){case 1:if(fe=pe.payload,typeof fe=="function"){U=fe.call(re,U,D);break e}U=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=pe.payload,D=typeof fe=="function"?fe.call(re,U,D):fe,D==null)break e;U=Q({},U,D);break e;case 2:fn=!0}}f.callback!==null&&f.lane!==0&&(e.flags|=64,D=l.effects,D===null?l.effects=[f]:D.push(f))}else re={eventTime:re,lane:D,tag:f.tag,payload:f.payload,callback:f.callback,next:null},F===null?(E=F=re,x=U):F=F.next=re,c|=D;if(f=f.next,f===null){if(f=l.shared.pending,f===null)break;D=f,f=D.next,D.next=null,l.lastBaseUpdate=D,l.shared.pending=null}}while(!0);if(F===null&&(x=U),l.baseState=x,l.firstBaseUpdate=E,l.lastBaseUpdate=F,t=l.shared.interleaved,t!==null){l=t;do c|=l.lane,l=l.next;while(l!==t)}else a===null&&(l.shared.lanes=0);An|=c,e.lanes=c,e.memoizedState=U}}function tc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var s=e[t],l=s.callback;if(l!==null){if(s.callback=null,s=n,typeof l!="function")throw Error(i(191,l));l.call(s)}}}var Ir={},Kt=cn(Ir),Mr=cn(Ir),Dr=cn(Ir);function Pn(e){if(e===Ir)throw Error(i(174));return e}function Ca(e,t){switch(Me(Dr,t),Me(Mr,e),Me(Kt,Ir),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Re(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Re(t,e)}Oe(Kt),Me(Kt,t)}function sr(){Oe(Kt),Oe(Mr),Oe(Dr)}function nc(e){Pn(Dr.current);var t=Pn(Kt.current),n=Re(t,e.type);t!==n&&(Me(Mr,e),Me(Kt,n))}function Ea(e){Mr.current===e&&(Oe(Kt),Oe(Mr))}var Be=cn(0);function Fs(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var _a=[];function Ta(){for(var e=0;e<_a.length;e++)_a[e]._workInProgressVersionPrimary=null;_a.length=0}var Bs=N.ReactCurrentDispatcher,Ra=N.ReactCurrentBatchConfig,Ln=0,Ue=null,Ye=null,Xe=null,Us=!1,Or=!1,zr=0,Sf=0;function st(){throw Error(i(321))}function $a(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!It(e[n],t[n]))return!1;return!0}function Pa(e,t,n,s,l,a){if(Ln=a,Ue=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Bs.current=e===null||e.memoizedState===null?Tf:Rf,e=n(s,l),Or){a=0;do{if(Or=!1,zr=0,25<=a)throw Error(i(301));a+=1,Xe=Ye=null,t.updateQueue=null,Bs.current=$f,e=n(s,l)}while(Or)}if(Bs.current=Vs,t=Ye!==null&&Ye.next!==null,Ln=0,Xe=Ye=Ue=null,Us=!1,t)throw Error(i(300));return e}function La(){var e=zr!==0;return zr=0,e}function Ht(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Xe===null?Ue.memoizedState=Xe=e:Xe=Xe.next=e,Xe}function Rt(){if(Ye===null){var e=Ue.alternate;e=e!==null?e.memoizedState:null}else e=Ye.next;var t=Xe===null?Ue.memoizedState:Xe.next;if(t!==null)Xe=t,Ye=e;else{if(e===null)throw Error(i(310));Ye=e,e={memoizedState:Ye.memoizedState,baseState:Ye.baseState,baseQueue:Ye.baseQueue,queue:Ye.queue,next:null},Xe===null?Ue.memoizedState=Xe=e:Xe=Xe.next=e}return Xe}function Fr(e,t){return typeof t=="function"?t(e):t}function Aa(e){var t=Rt(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var s=Ye,l=s.baseQueue,a=n.pending;if(a!==null){if(l!==null){var c=l.next;l.next=a.next,a.next=c}s.baseQueue=l=a,n.pending=null}if(l!==null){a=l.next,s=s.baseState;var f=c=null,x=null,E=a;do{var F=E.lane;if((Ln&F)===F)x!==null&&(x=x.next={lane:0,action:E.action,hasEagerState:E.hasEagerState,eagerState:E.eagerState,next:null}),s=E.hasEagerState?E.eagerState:e(s,E.action);else{var U={lane:F,action:E.action,hasEagerState:E.hasEagerState,eagerState:E.eagerState,next:null};x===null?(f=x=U,c=s):x=x.next=U,Ue.lanes|=F,An|=F}E=E.next}while(E!==null&&E!==a);x===null?c=s:x.next=f,It(s,t.memoizedState)||(gt=!0),t.memoizedState=s,t.baseState=c,t.baseQueue=x,n.lastRenderedState=s}if(e=n.interleaved,e!==null){l=e;do a=l.lane,Ue.lanes|=a,An|=a,l=l.next;while(l!==e)}else l===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Ia(e){var t=Rt(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var s=n.dispatch,l=n.pending,a=t.memoizedState;if(l!==null){n.pending=null;var c=l=l.next;do a=e(a,c.action),c=c.next;while(c!==l);It(a,t.memoizedState)||(gt=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),n.lastRenderedState=a}return[a,s]}function rc(){}function sc(e,t){var n=Ue,s=Rt(),l=t(),a=!It(s.memoizedState,l);if(a&&(s.memoizedState=l,gt=!0),s=s.queue,Ma(oc.bind(null,n,s,e),[e]),s.getSnapshot!==t||a||Xe!==null&&Xe.memoizedState.tag&1){if(n.flags|=2048,Br(9,ac.bind(null,n,s,l,t),void 0,null),Ze===null)throw Error(i(349));(Ln&30)!==0||lc(n,t,l)}return l}function lc(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Ue.updateQueue,t===null?(t={lastEffect:null,stores:null},Ue.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function ac(e,t,n,s){t.value=n,t.getSnapshot=s,ic(t)&&cc(e)}function oc(e,t,n){return n(function(){ic(t)&&cc(e)})}function ic(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!It(e,n)}catch{return!0}}function cc(e){var t=Jt(e,1);t!==null&&Ft(t,e,1,-1)}function dc(e){var t=Ht();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Fr,lastRenderedState:e},t.queue=e,e=e.dispatch=_f.bind(null,Ue,e),[t.memoizedState,e]}function Br(e,t,n,s){return e={tag:e,create:t,destroy:n,deps:s,next:null},t=Ue.updateQueue,t===null?(t={lastEffect:null,stores:null},Ue.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(s=n.next,n.next=e,e.next=s,t.lastEffect=e)),e}function uc(){return Rt().memoizedState}function Ks(e,t,n,s){var l=Ht();Ue.flags|=e,l.memoizedState=Br(1|t,n,void 0,s===void 0?null:s)}function Hs(e,t,n,s){var l=Rt();s=s===void 0?null:s;var a=void 0;if(Ye!==null){var c=Ye.memoizedState;if(a=c.destroy,s!==null&&$a(s,c.deps)){l.memoizedState=Br(t,n,a,s);return}}Ue.flags|=e,l.memoizedState=Br(1|t,n,a,s)}function fc(e,t){return Ks(8390656,8,e,t)}function Ma(e,t){return Hs(2048,8,e,t)}function pc(e,t){return Hs(4,2,e,t)}function mc(e,t){return Hs(4,4,e,t)}function xc(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function hc(e,t,n){return n=n!=null?n.concat([e]):null,Hs(4,4,xc.bind(null,t,e),n)}function Da(){}function gc(e,t){var n=Rt();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&$a(t,s[1])?s[0]:(n.memoizedState=[e,t],e)}function vc(e,t){var n=Rt();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&$a(t,s[1])?s[0]:(e=e(),n.memoizedState=[e,t],e)}function yc(e,t,n){return(Ln&21)===0?(e.baseState&&(e.baseState=!1,gt=!0),e.memoizedState=n):(It(n,t)||(n=Yo(),Ue.lanes|=n,An|=n,e.baseState=!0),t)}function Cf(e,t){var n=Ie;Ie=n!==0&&4>n?n:4,e(!0);var s=Ra.transition;Ra.transition={};try{e(!1),t()}finally{Ie=n,Ra.transition=s}}function jc(){return Rt().memoizedState}function Ef(e,t,n){var s=gn(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},kc(e))bc(t,n);else if(n=Xi(e,t,n,s),n!==null){var l=ct();Ft(n,e,s,l),wc(n,t,s)}}function _f(e,t,n){var s=gn(e),l={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(kc(e))bc(t,l);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var c=t.lastRenderedState,f=a(c,n);if(l.hasEagerState=!0,l.eagerState=f,It(f,c)){var x=t.interleaved;x===null?(l.next=l,Na(t)):(l.next=x.next,x.next=l),t.interleaved=l;return}}catch{}n=Xi(e,t,l,s),n!==null&&(l=ct(),Ft(n,e,s,l),wc(n,t,s))}}function kc(e){var t=e.alternate;return e===Ue||t!==null&&t===Ue}function bc(e,t){Or=Us=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function wc(e,t,n){if((n&4194240)!==0){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,zl(e,n)}}var Vs={readContext:Tt,useCallback:st,useContext:st,useEffect:st,useImperativeHandle:st,useInsertionEffect:st,useLayoutEffect:st,useMemo:st,useReducer:st,useRef:st,useState:st,useDebugValue:st,useDeferredValue:st,useTransition:st,useMutableSource:st,useSyncExternalStore:st,useId:st,unstable_isNewReconciler:!1},Tf={readContext:Tt,useCallback:function(e,t){return Ht().memoizedState=[e,t===void 0?null:t],e},useContext:Tt,useEffect:fc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ks(4194308,4,xc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ks(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ks(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=Ht();return t=n!==void 0?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=Ef.bind(null,Ue,e),[s.memoizedState,e]},useRef:function(e){var t=Ht();return e={current:e},t.memoizedState=e},useState:dc,useDebugValue:Da,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=dc(!1),t=e[0];return e=Cf.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=Ue,l=Ht();if(ze){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Ze===null)throw Error(i(349));(Ln&30)!==0||lc(s,t,n)}l.memoizedState=n;var a={value:n,getSnapshot:t};return l.queue=a,fc(oc.bind(null,s,a,e),[e]),s.flags|=2048,Br(9,ac.bind(null,s,a,n,t),void 0,null),n},useId:function(){var e=Ht(),t=Ze.identifierPrefix;if(ze){var n=Gt,s=Yt;n=(s&~(1<<32-At(s)-1)).toString(32)+n,t=":"+t+"R"+n,n=zr++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=Sf++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Rf={readContext:Tt,useCallback:gc,useContext:Tt,useEffect:Ma,useImperativeHandle:hc,useInsertionEffect:pc,useLayoutEffect:mc,useMemo:vc,useReducer:Aa,useRef:uc,useState:function(){return Aa(Fr)},useDebugValue:Da,useDeferredValue:function(e){var t=Rt();return yc(t,Ye.memoizedState,e)},useTransition:function(){var e=Aa(Fr)[0],t=Rt().memoizedState;return[e,t]},useMutableSource:rc,useSyncExternalStore:sc,useId:jc,unstable_isNewReconciler:!1},$f={readContext:Tt,useCallback:gc,useContext:Tt,useEffect:Ma,useImperativeHandle:hc,useInsertionEffect:pc,useLayoutEffect:mc,useMemo:vc,useReducer:Ia,useRef:uc,useState:function(){return Ia(Fr)},useDebugValue:Da,useDeferredValue:function(e){var t=Rt();return Ye===null?t.memoizedState=e:yc(t,Ye.memoizedState,e)},useTransition:function(){var e=Ia(Fr)[0],t=Rt().memoizedState;return[e,t]},useMutableSource:rc,useSyncExternalStore:sc,useId:jc,unstable_isNewReconciler:!1};function Dt(e,t){if(e&&e.defaultProps){t=Q({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Oa(e,t,n,s){t=e.memoizedState,n=n(s,t),n=n==null?t:Q({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ws={isMounted:function(e){return(e=e._reactInternals)?Cn(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var s=ct(),l=gn(e),a=Xt(s,l);a.payload=t,n!=null&&(a.callback=n),t=pn(e,a,l),t!==null&&(Ft(t,e,l,s),Os(t,e,l))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var s=ct(),l=gn(e),a=Xt(s,l);a.tag=1,a.payload=t,n!=null&&(a.callback=n),t=pn(e,a,l),t!==null&&(Ft(t,e,l,s),Os(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ct(),s=gn(e),l=Xt(n,s);l.tag=2,t!=null&&(l.callback=t),t=pn(e,l,s),t!==null&&(Ft(t,e,s,n),Os(t,e,s))}};function Nc(e,t,n,s,l,a,c){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,a,c):t.prototype&&t.prototype.isPureReactComponent?!Er(n,s)||!Er(l,a):!0}function Sc(e,t,n){var s=!1,l=dn,a=t.contextType;return typeof a=="object"&&a!==null?a=Tt(a):(l=ht(t)?_n:rt.current,s=t.contextTypes,a=(s=s!=null)?Jn(e,l):dn),t=new t(n,a),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Ws,e.stateNode=t,t._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=a),t}function Cc(e,t,n,s){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,s),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,s),t.state!==e&&Ws.enqueueReplaceState(t,t.state,null)}function za(e,t,n,s){var l=e.stateNode;l.props=n,l.state=e.memoizedState,l.refs={},Sa(e);var a=t.contextType;typeof a=="object"&&a!==null?l.context=Tt(a):(a=ht(t)?_n:rt.current,l.context=Jn(e,a)),l.state=e.memoizedState,a=t.getDerivedStateFromProps,typeof a=="function"&&(Oa(e,t,a,n),l.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof l.getSnapshotBeforeUpdate=="function"||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(t=l.state,typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount(),t!==l.state&&Ws.enqueueReplaceState(l,l.state,null),zs(e,n,l,s),l.state=e.memoizedState),typeof l.componentDidMount=="function"&&(e.flags|=4194308)}function lr(e,t){try{var n="",s=t;do n+=K(s),s=s.return;while(s);var l=n}catch(a){l=`
|
|
7
|
+
Error generating stack: `+a.message+`
|
|
8
|
+
`+a.stack}return{value:e,source:t,stack:l,digest:null}}function Fa(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ba(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Pf=typeof WeakMap=="function"?WeakMap:Map;function Ec(e,t,n){n=Xt(-1,n),n.tag=3,n.payload={element:null};var s=t.value;return n.callback=function(){Zs||(Zs=!0,no=s),Ba(e,t)},n}function _c(e,t,n){n=Xt(-1,n),n.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var l=t.value;n.payload=function(){return s(l)},n.callback=function(){Ba(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch=="function"&&(n.callback=function(){Ba(e,t),typeof s!="function"&&(xn===null?xn=new Set([this]):xn.add(this));var c=t.stack;this.componentDidCatch(t.value,{componentStack:c!==null?c:""})}),n}function Tc(e,t,n){var s=e.pingCache;if(s===null){s=e.pingCache=new Pf;var l=new Set;s.set(t,l)}else l=s.get(t),l===void 0&&(l=new Set,s.set(t,l));l.has(n)||(l.add(n),e=Wf.bind(null,e,t,n),t.then(e,e))}function Rc(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function $c(e,t,n,s,l){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Xt(-1,1),t.tag=2,pn(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var Lf=N.ReactCurrentOwner,gt=!1;function it(e,t,n,s){t.child=e===null?Ji(t,null,n,s):tr(t,e.child,n,s)}function Pc(e,t,n,s,l){n=n.render;var a=t.ref;return rr(t,l),s=Pa(e,t,n,s,a,l),n=La(),e!==null&&!gt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Zt(e,t,l)):(ze&&n&&xa(t),t.flags|=1,it(e,t,s,l),t.child)}function Lc(e,t,n,s,l){if(e===null){var a=n.type;return typeof a=="function"&&!co(a)&&a.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=a,Ac(e,t,a,s,l)):(e=ll(n.type,null,s,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,(e.lanes&l)===0){var c=a.memoizedProps;if(n=n.compare,n=n!==null?n:Er,n(c,s)&&e.ref===t.ref)return Zt(e,t,l)}return t.flags|=1,e=yn(a,s),e.ref=t.ref,e.return=t,t.child=e}function Ac(e,t,n,s,l){if(e!==null){var a=e.memoizedProps;if(Er(a,s)&&e.ref===t.ref)if(gt=!1,t.pendingProps=s=a,(e.lanes&l)!==0)(e.flags&131072)!==0&&(gt=!0);else return t.lanes=e.lanes,Zt(e,t,l)}return Ua(e,t,n,s,l)}function Ic(e,t,n){var s=t.pendingProps,l=s.children,a=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Me(or,Ct),Ct|=n;else{if((n&1073741824)===0)return e=a!==null?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Me(or,Ct),Ct|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=a!==null?a.baseLanes:n,Me(or,Ct),Ct|=s}else a!==null?(s=a.baseLanes|n,t.memoizedState=null):s=n,Me(or,Ct),Ct|=s;return it(e,t,l,n),t.child}function Mc(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ua(e,t,n,s,l){var a=ht(n)?_n:rt.current;return a=Jn(t,a),rr(t,l),n=Pa(e,t,n,s,a,l),s=La(),e!==null&&!gt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Zt(e,t,l)):(ze&&s&&xa(t),t.flags|=1,it(e,t,n,l),t.child)}function Dc(e,t,n,s,l){if(ht(n)){var a=!0;Rs(t)}else a=!1;if(rr(t,l),t.stateNode===null)Qs(e,t),Sc(t,n,s),za(t,n,s,l),s=!0;else if(e===null){var c=t.stateNode,f=t.memoizedProps;c.props=f;var x=c.context,E=n.contextType;typeof E=="object"&&E!==null?E=Tt(E):(E=ht(n)?_n:rt.current,E=Jn(t,E));var F=n.getDerivedStateFromProps,U=typeof F=="function"||typeof c.getSnapshotBeforeUpdate=="function";U||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(f!==s||x!==E)&&Cc(t,c,s,E),fn=!1;var D=t.memoizedState;c.state=D,zs(t,s,c,l),x=t.memoizedState,f!==s||D!==x||xt.current||fn?(typeof F=="function"&&(Oa(t,n,F,s),x=t.memoizedState),(f=fn||Nc(t,n,f,s,D,x,E))?(U||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(t.flags|=4194308)):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=s,t.memoizedState=x),c.props=s,c.state=x,c.context=E,s=f):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),s=!1)}else{c=t.stateNode,Zi(e,t),f=t.memoizedProps,E=t.type===t.elementType?f:Dt(t.type,f),c.props=E,U=t.pendingProps,D=c.context,x=n.contextType,typeof x=="object"&&x!==null?x=Tt(x):(x=ht(n)?_n:rt.current,x=Jn(t,x));var re=n.getDerivedStateFromProps;(F=typeof re=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(f!==U||D!==x)&&Cc(t,c,s,x),fn=!1,D=t.memoizedState,c.state=D,zs(t,s,c,l);var fe=t.memoizedState;f!==U||D!==fe||xt.current||fn?(typeof re=="function"&&(Oa(t,n,re,s),fe=t.memoizedState),(E=fn||Nc(t,n,E,s,D,fe,x)||!1)?(F||typeof c.UNSAFE_componentWillUpdate!="function"&&typeof c.componentWillUpdate!="function"||(typeof c.componentWillUpdate=="function"&&c.componentWillUpdate(s,fe,x),typeof c.UNSAFE_componentWillUpdate=="function"&&c.UNSAFE_componentWillUpdate(s,fe,x)),typeof c.componentDidUpdate=="function"&&(t.flags|=4),typeof c.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof c.componentDidUpdate!="function"||f===e.memoizedProps&&D===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||f===e.memoizedProps&&D===e.memoizedState||(t.flags|=1024),t.memoizedProps=s,t.memoizedState=fe),c.props=s,c.state=fe,c.context=x,s=E):(typeof c.componentDidUpdate!="function"||f===e.memoizedProps&&D===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||f===e.memoizedProps&&D===e.memoizedState||(t.flags|=1024),s=!1)}return Ka(e,t,n,s,a,l)}function Ka(e,t,n,s,l,a){Mc(e,t);var c=(t.flags&128)!==0;if(!s&&!c)return l&&Ui(t,n,!1),Zt(e,t,a);s=t.stateNode,Lf.current=t;var f=c&&typeof n.getDerivedStateFromError!="function"?null:s.render();return t.flags|=1,e!==null&&c?(t.child=tr(t,e.child,null,a),t.child=tr(t,null,f,a)):it(e,t,f,a),t.memoizedState=s.state,l&&Ui(t,n,!0),t.child}function Oc(e){var t=e.stateNode;t.pendingContext?Fi(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Fi(e,t.context,!1),Ca(e,t.containerInfo)}function zc(e,t,n,s,l){return er(),ya(l),t.flags|=256,it(e,t,n,s),t.child}var Ha={dehydrated:null,treeContext:null,retryLane:0};function Va(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fc(e,t,n){var s=t.pendingProps,l=Be.current,a=!1,c=(t.flags&128)!==0,f;if((f=c)||(f=e!==null&&e.memoizedState===null?!1:(l&2)!==0),f?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),Me(Be,l&1),e===null)return va(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(c=s.children,e=s.fallback,a?(s=t.mode,a=t.child,c={mode:"hidden",children:c},(s&1)===0&&a!==null?(a.childLanes=0,a.pendingProps=c):a=al(c,s,0,null),e=On(e,s,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Va(n),t.memoizedState=Ha,e):Wa(t,c));if(l=e.memoizedState,l!==null&&(f=l.dehydrated,f!==null))return Af(e,t,c,s,f,l,n);if(a){a=s.fallback,c=t.mode,l=e.child,f=l.sibling;var x={mode:"hidden",children:s.children};return(c&1)===0&&t.child!==l?(s=t.child,s.childLanes=0,s.pendingProps=x,t.deletions=null):(s=yn(l,x),s.subtreeFlags=l.subtreeFlags&14680064),f!==null?a=yn(f,a):(a=On(a,c,n,null),a.flags|=2),a.return=t,s.return=t,s.sibling=a,t.child=s,s=a,a=t.child,c=e.child.memoizedState,c=c===null?Va(n):{baseLanes:c.baseLanes|n,cachePool:null,transitions:c.transitions},a.memoizedState=c,a.childLanes=e.childLanes&~n,t.memoizedState=Ha,s}return a=e.child,e=a.sibling,s=yn(a,{mode:"visible",children:s.children}),(t.mode&1)===0&&(s.lanes=n),s.return=t,s.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=s,t.memoizedState=null,s}function Wa(e,t){return t=al({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function qs(e,t,n,s){return s!==null&&ya(s),tr(t,e.child,null,n),e=Wa(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Af(e,t,n,s,l,a,c){if(n)return t.flags&256?(t.flags&=-257,s=Fa(Error(i(422))),qs(e,t,c,s)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(a=s.fallback,l=t.mode,s=al({mode:"visible",children:s.children},l,0,null),a=On(a,l,c,null),a.flags|=2,s.return=t,a.return=t,s.sibling=a,t.child=s,(t.mode&1)!==0&&tr(t,e.child,null,c),t.child.memoizedState=Va(c),t.memoizedState=Ha,a);if((t.mode&1)===0)return qs(e,t,c,null);if(l.data==="$!"){if(s=l.nextSibling&&l.nextSibling.dataset,s)var f=s.dgst;return s=f,a=Error(i(419)),s=Fa(a,s,void 0),qs(e,t,c,s)}if(f=(c&e.childLanes)!==0,gt||f){if(s=Ze,s!==null){switch(c&-c){case 4:l=2;break;case 16:l=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=(l&(s.suspendedLanes|c))!==0?0:l,l!==0&&l!==a.retryLane&&(a.retryLane=l,Jt(e,l),Ft(s,e,l,-1))}return io(),s=Fa(Error(i(421))),qs(e,t,c,s)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=qf.bind(null,e),l._reactRetry=t,null):(e=a.treeContext,St=on(l.nextSibling),Nt=t,ze=!0,Mt=null,e!==null&&(Et[_t++]=Yt,Et[_t++]=Gt,Et[_t++]=Tn,Yt=e.id,Gt=e.overflow,Tn=t),t=Wa(t,s.children),t.flags|=4096,t)}function Bc(e,t,n){e.lanes|=t;var s=e.alternate;s!==null&&(s.lanes|=t),wa(e.return,t,n)}function qa(e,t,n,s,l){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:l}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=s,a.tail=n,a.tailMode=l)}function Uc(e,t,n){var s=t.pendingProps,l=s.revealOrder,a=s.tail;if(it(e,t,s.children,n),s=Be.current,(s&2)!==0)s=s&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Bc(e,n,t);else if(e.tag===19)Bc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(Me(Be,s),(t.mode&1)===0)t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&Fs(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),qa(t,!1,l,n,a);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&Fs(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}qa(t,!0,n,null,a);break;case"together":qa(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Qs(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Zt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),An|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=yn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=yn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function If(e,t,n){switch(t.tag){case 3:Oc(t),er();break;case 5:nc(t);break;case 1:ht(t.type)&&Rs(t);break;case 4:Ca(t,t.stateNode.containerInfo);break;case 10:var s=t.type._context,l=t.memoizedProps.value;Me(Ms,s._currentValue),s._currentValue=l;break;case 13:if(s=t.memoizedState,s!==null)return s.dehydrated!==null?(Me(Be,Be.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Fc(e,t,n):(Me(Be,Be.current&1),e=Zt(e,t,n),e!==null?e.sibling:null);Me(Be,Be.current&1);break;case 19:if(s=(n&t.childLanes)!==0,(e.flags&128)!==0){if(s)return Uc(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),Me(Be,Be.current),s)break;return null;case 22:case 23:return t.lanes=0,Ic(e,t,n)}return Zt(e,t,n)}var Kc,Qa,Hc,Vc;Kc=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Qa=function(){},Hc=function(e,t,n,s){var l=e.memoizedProps;if(l!==s){e=t.stateNode,Pn(Kt.current);var a=null;switch(n){case"input":l=Ke(e,l),s=Ke(e,s),a=[];break;case"select":l=Q({},l,{value:void 0}),s=Q({},s,{value:void 0}),a=[];break;case"textarea":l=Sn(e,l),s=Sn(e,s),a=[];break;default:typeof l.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=Es)}_l(n,s);var c;n=null;for(E in l)if(!s.hasOwnProperty(E)&&l.hasOwnProperty(E)&&l[E]!=null)if(E==="style"){var f=l[E];for(c in f)f.hasOwnProperty(c)&&(n||(n={}),n[c]="")}else E!=="dangerouslySetInnerHTML"&&E!=="children"&&E!=="suppressContentEditableWarning"&&E!=="suppressHydrationWarning"&&E!=="autoFocus"&&(m.hasOwnProperty(E)?a||(a=[]):(a=a||[]).push(E,null));for(E in s){var x=s[E];if(f=l?.[E],s.hasOwnProperty(E)&&x!==f&&(x!=null||f!=null))if(E==="style")if(f){for(c in f)!f.hasOwnProperty(c)||x&&x.hasOwnProperty(c)||(n||(n={}),n[c]="");for(c in x)x.hasOwnProperty(c)&&f[c]!==x[c]&&(n||(n={}),n[c]=x[c])}else n||(a||(a=[]),a.push(E,n)),n=x;else E==="dangerouslySetInnerHTML"?(x=x?x.__html:void 0,f=f?f.__html:void 0,x!=null&&f!==x&&(a=a||[]).push(E,x)):E==="children"?typeof x!="string"&&typeof x!="number"||(a=a||[]).push(E,""+x):E!=="suppressContentEditableWarning"&&E!=="suppressHydrationWarning"&&(m.hasOwnProperty(E)?(x!=null&&E==="onScroll"&&De("scroll",e),a||f===x||(a=[])):(a=a||[]).push(E,x))}n&&(a=a||[]).push("style",n);var E=a;(t.updateQueue=E)&&(t.flags|=4)}},Vc=function(e,t,n,s){n!==s&&(t.flags|=4)};function Ur(e,t){if(!ze)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function lt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,s=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,s|=l.subtreeFlags&14680064,s|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,s|=l.subtreeFlags,s|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=s,e.childLanes=n,t}function Mf(e,t,n){var s=t.pendingProps;switch(ha(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return lt(t),null;case 1:return ht(t.type)&&Ts(),lt(t),null;case 3:return s=t.stateNode,sr(),Oe(xt),Oe(rt),Ta(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(As(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Mt!==null&&(lo(Mt),Mt=null))),Qa(e,t),lt(t),null;case 5:Ea(t);var l=Pn(Dr.current);if(n=t.type,e!==null&&t.stateNode!=null)Hc(e,t,n,s,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!s){if(t.stateNode===null)throw Error(i(166));return lt(t),null}if(e=Pn(Kt.current),As(t)){s=t.stateNode,n=t.type;var a=t.memoizedProps;switch(s[Ut]=t,s[Pr]=a,e=(t.mode&1)!==0,n){case"dialog":De("cancel",s),De("close",s);break;case"iframe":case"object":case"embed":De("load",s);break;case"video":case"audio":for(l=0;l<Tr.length;l++)De(Tr[l],s);break;case"source":De("error",s);break;case"img":case"image":case"link":De("error",s),De("load",s);break;case"details":De("toggle",s);break;case"input":qe(s,a),De("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!a.multiple},De("invalid",s);break;case"textarea":zn(s,a),De("invalid",s)}_l(n,a),l=null;for(var c in a)if(a.hasOwnProperty(c)){var f=a[c];c==="children"?typeof f=="string"?s.textContent!==f&&(a.suppressHydrationWarning!==!0&&Cs(s.textContent,f,e),l=["children",f]):typeof f=="number"&&s.textContent!==""+f&&(a.suppressHydrationWarning!==!0&&Cs(s.textContent,f,e),l=["children",""+f]):m.hasOwnProperty(c)&&f!=null&&c==="onScroll"&&De("scroll",s)}switch(n){case"input":be(s),ns(s,a,!0);break;case"textarea":be(s),H(s);break;case"select":case"option":break;default:typeof a.onClick=="function"&&(s.onclick=Es)}s=l,t.updateQueue=s,s!==null&&(t.flags|=4)}else{c=l.nodeType===9?l:l.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=se(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=c.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=c.createElement(n,{is:s.is}):(e=c.createElement(n),n==="select"&&(c=e,s.multiple?c.multiple=!0:s.size&&(c.size=s.size))):e=c.createElementNS(e,n),e[Ut]=t,e[Pr]=s,Kc(e,t,!1,!1),t.stateNode=e;e:{switch(c=Tl(n,s),n){case"dialog":De("cancel",e),De("close",e),l=s;break;case"iframe":case"object":case"embed":De("load",e),l=s;break;case"video":case"audio":for(l=0;l<Tr.length;l++)De(Tr[l],e);l=s;break;case"source":De("error",e),l=s;break;case"img":case"image":case"link":De("error",e),De("load",e),l=s;break;case"details":De("toggle",e),l=s;break;case"input":qe(e,s),l=Ke(e,s),De("invalid",e);break;case"option":l=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},l=Q({},s,{value:void 0}),De("invalid",e);break;case"textarea":zn(e,s),l=Sn(e,s),De("invalid",e);break;default:l=s}_l(n,l),f=l;for(a in f)if(f.hasOwnProperty(a)){var x=f[a];a==="style"?ls(e,x):a==="dangerouslySetInnerHTML"?(x=x?x.__html:void 0,x!=null&&Ae(e,x)):a==="children"?typeof x=="string"?(n!=="textarea"||x!=="")&&Fe(e,x):typeof x=="number"&&Fe(e,""+x):a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&a!=="autoFocus"&&(m.hasOwnProperty(a)?x!=null&&a==="onScroll"&&De("scroll",e):x!=null&&ue(e,a,x,c))}switch(n){case"input":be(e),ns(e,s,!1);break;case"textarea":be(e),H(e);break;case"option":s.value!=null&&e.setAttribute("value",""+xe(s.value));break;case"select":e.multiple=!!s.multiple,a=s.value,a!=null?Wt(e,!!s.multiple,a,!1):s.defaultValue!=null&&Wt(e,!!s.multiple,s.defaultValue,!0);break;default:typeof l.onClick=="function"&&(e.onclick=Es)}switch(n){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return lt(t),null;case 6:if(e&&t.stateNode!=null)Vc(e,t,e.memoizedProps,s);else{if(typeof s!="string"&&t.stateNode===null)throw Error(i(166));if(n=Pn(Dr.current),Pn(Kt.current),As(t)){if(s=t.stateNode,n=t.memoizedProps,s[Ut]=t,(a=s.nodeValue!==n)&&(e=Nt,e!==null))switch(e.tag){case 3:Cs(s.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Cs(s.nodeValue,n,(e.mode&1)!==0)}a&&(t.flags|=4)}else s=(n.nodeType===9?n:n.ownerDocument).createTextNode(s),s[Ut]=t,t.stateNode=s}return lt(t),null;case 13:if(Oe(Be),s=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ze&&St!==null&&(t.mode&1)!==0&&(t.flags&128)===0)Qi(),er(),t.flags|=98560,a=!1;else if(a=As(t),s!==null&&s.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(i(317));a[Ut]=t}else er(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;lt(t),a=!1}else Mt!==null&&(lo(Mt),Mt=null),a=!0;if(!a)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=n,t):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(Be.current&1)!==0?Ge===0&&(Ge=3):io())),t.updateQueue!==null&&(t.flags|=4),lt(t),null);case 4:return sr(),Qa(e,t),e===null&&Rr(t.stateNode.containerInfo),lt(t),null;case 10:return ba(t.type._context),lt(t),null;case 17:return ht(t.type)&&Ts(),lt(t),null;case 19:if(Oe(Be),a=t.memoizedState,a===null)return lt(t),null;if(s=(t.flags&128)!==0,c=a.rendering,c===null)if(s)Ur(a,!1);else{if(Ge!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(c=Fs(e),c!==null){for(t.flags|=128,Ur(a,!1),s=c.updateQueue,s!==null&&(t.updateQueue=s,t.flags|=4),t.subtreeFlags=0,s=n,n=t.child;n!==null;)a=n,e=s,a.flags&=14680066,c=a.alternate,c===null?(a.childLanes=0,a.lanes=e,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=c.childLanes,a.lanes=c.lanes,a.child=c.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=c.memoizedProps,a.memoizedState=c.memoizedState,a.updateQueue=c.updateQueue,a.type=c.type,e=c.dependencies,a.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Me(Be,Be.current&1|2),t.child}e=e.sibling}a.tail!==null&&Ve()>ir&&(t.flags|=128,s=!0,Ur(a,!1),t.lanes=4194304)}else{if(!s)if(e=Fs(c),e!==null){if(t.flags|=128,s=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ur(a,!0),a.tail===null&&a.tailMode==="hidden"&&!c.alternate&&!ze)return lt(t),null}else 2*Ve()-a.renderingStartTime>ir&&n!==1073741824&&(t.flags|=128,s=!0,Ur(a,!1),t.lanes=4194304);a.isBackwards?(c.sibling=t.child,t.child=c):(n=a.last,n!==null?n.sibling=c:t.child=c,a.last=c)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Ve(),t.sibling=null,n=Be.current,Me(Be,s?n&1|2:n&1),t):(lt(t),null);case 22:case 23:return oo(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&(t.mode&1)!==0?(Ct&1073741824)!==0&&(lt(t),t.subtreeFlags&6&&(t.flags|=8192)):lt(t),null;case 24:return null;case 25:return null}throw Error(i(156,t.tag))}function Df(e,t){switch(ha(t),t.tag){case 1:return ht(t.type)&&Ts(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return sr(),Oe(xt),Oe(rt),Ta(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Ea(t),null;case 13:if(Oe(Be),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));er()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Oe(Be),null;case 4:return sr(),null;case 10:return ba(t.type._context),null;case 22:case 23:return oo(),null;case 24:return null;default:return null}}var Ys=!1,at=!1,Of=typeof WeakSet=="function"?WeakSet:Set,de=null;function ar(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){He(e,t,s)}else n.current=null}function Ya(e,t,n){try{n()}catch(s){He(e,t,s)}}var Wc=!1;function zf(e,t){if(oa=xs,e=Ni(),Zl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var l=s.anchorOffset,a=s.focusNode;s=s.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var c=0,f=-1,x=-1,E=0,F=0,U=e,D=null;t:for(;;){for(var re;U!==n||l!==0&&U.nodeType!==3||(f=c+l),U!==a||s!==0&&U.nodeType!==3||(x=c+s),U.nodeType===3&&(c+=U.nodeValue.length),(re=U.firstChild)!==null;)D=U,U=re;for(;;){if(U===e)break t;if(D===n&&++E===l&&(f=c),D===a&&++F===s&&(x=c),(re=U.nextSibling)!==null)break;U=D,D=U.parentNode}U=re}n=f===-1||x===-1?null:{start:f,end:x}}else n=null}n=n||{start:0,end:0}}else n=null;for(ia={focusedElem:e,selectionRange:n},xs=!1,de=t;de!==null;)if(t=de,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,de=e;else for(;de!==null;){t=de;try{var fe=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(fe!==null){var pe=fe.memoizedProps,We=fe.memoizedState,w=t.stateNode,h=w.getSnapshotBeforeUpdate(t.elementType===t.type?pe:Dt(t.type,pe),We);w.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var C=t.stateNode.containerInfo;C.nodeType===1?C.textContent="":C.nodeType===9&&C.documentElement&&C.removeChild(C.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(W){He(t,t.return,W)}if(e=t.sibling,e!==null){e.return=t.return,de=e;break}de=t.return}return fe=Wc,Wc=!1,fe}function Kr(e,t,n){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var l=s=s.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,a!==void 0&&Ya(t,n,a)}l=l.next}while(l!==s)}}function Gs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function Ga(e){var t=e.ref;if(t!==null){var n=e.stateNode;e.tag,e=n,typeof t=="function"?t(e):t.current=e}}function qc(e){var t=e.alternate;t!==null&&(e.alternate=null,qc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ut],delete t[Pr],delete t[fa],delete t[kf],delete t[bf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Qc(e){return e.tag===5||e.tag===3||e.tag===4}function Yc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Qc(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.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 Ja(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Es));else if(s!==4&&(e=e.child,e!==null))for(Ja(e,t,n),e=e.sibling;e!==null;)Ja(e,t,n),e=e.sibling}function Xa(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Xa(e,t,n),e=e.sibling;e!==null;)Xa(e,t,n),e=e.sibling}var tt=null,Ot=!1;function mn(e,t,n){for(n=n.child;n!==null;)Gc(e,t,n),n=n.sibling}function Gc(e,t,n){if(Bt&&typeof Bt.onCommitFiberUnmount=="function")try{Bt.onCommitFiberUnmount(cs,n)}catch{}switch(n.tag){case 5:at||ar(n,t);case 6:var s=tt,l=Ot;tt=null,mn(e,t,n),tt=s,Ot=l,tt!==null&&(Ot?(e=tt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):tt.removeChild(n.stateNode));break;case 18:tt!==null&&(Ot?(e=tt,n=n.stateNode,e.nodeType===8?ua(e.parentNode,n):e.nodeType===1&&ua(e,n),kr(e)):ua(tt,n.stateNode));break;case 4:s=tt,l=Ot,tt=n.stateNode.containerInfo,Ot=!0,mn(e,t,n),tt=s,Ot=l;break;case 0:case 11:case 14:case 15:if(!at&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){l=s=s.next;do{var a=l,c=a.destroy;a=a.tag,c!==void 0&&((a&2)!==0||(a&4)!==0)&&Ya(n,t,c),l=l.next}while(l!==s)}mn(e,t,n);break;case 1:if(!at&&(ar(n,t),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(f){He(n,t,f)}mn(e,t,n);break;case 21:mn(e,t,n);break;case 22:n.mode&1?(at=(s=at)||n.memoizedState!==null,mn(e,t,n),at=s):mn(e,t,n);break;default:mn(e,t,n)}}function Jc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Of),t.forEach(function(s){var l=Qf.bind(null,e,s);n.has(s)||(n.add(s),s.then(l,l))})}}function zt(e,t){var n=t.deletions;if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];try{var a=e,c=t,f=c;e:for(;f!==null;){switch(f.tag){case 5:tt=f.stateNode,Ot=!1;break e;case 3:tt=f.stateNode.containerInfo,Ot=!0;break e;case 4:tt=f.stateNode.containerInfo,Ot=!0;break e}f=f.return}if(tt===null)throw Error(i(160));Gc(a,c,l),tt=null,Ot=!1;var x=l.alternate;x!==null&&(x.return=null),l.return=null}catch(E){He(l,t,E)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Xc(t,e),t=t.sibling}function Xc(e,t){var n=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(zt(t,e),Vt(e),s&4){try{Kr(3,e,e.return),Gs(3,e)}catch(pe){He(e,e.return,pe)}try{Kr(5,e,e.return)}catch(pe){He(e,e.return,pe)}}break;case 1:zt(t,e),Vt(e),s&512&&n!==null&&ar(n,n.return);break;case 5:if(zt(t,e),Vt(e),s&512&&n!==null&&ar(n,n.return),e.flags&32){var l=e.stateNode;try{Fe(l,"")}catch(pe){He(e,e.return,pe)}}if(s&4&&(l=e.stateNode,l!=null)){var a=e.memoizedProps,c=n!==null?n.memoizedProps:a,f=e.type,x=e.updateQueue;if(e.updateQueue=null,x!==null)try{f==="input"&&a.type==="radio"&&a.name!=null&&pt(l,a),Tl(f,c);var E=Tl(f,a);for(c=0;c<x.length;c+=2){var F=x[c],U=x[c+1];F==="style"?ls(l,U):F==="dangerouslySetInnerHTML"?Ae(l,U):F==="children"?Fe(l,U):ue(l,F,U,E)}switch(f){case"input":wn(l,a);break;case"textarea":rs(l,a);break;case"select":var D=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!a.multiple;var re=a.value;re!=null?Wt(l,!!a.multiple,re,!1):D!==!!a.multiple&&(a.defaultValue!=null?Wt(l,!!a.multiple,a.defaultValue,!0):Wt(l,!!a.multiple,a.multiple?[]:"",!1))}l[Pr]=a}catch(pe){He(e,e.return,pe)}}break;case 6:if(zt(t,e),Vt(e),s&4){if(e.stateNode===null)throw Error(i(162));l=e.stateNode,a=e.memoizedProps;try{l.nodeValue=a}catch(pe){He(e,e.return,pe)}}break;case 3:if(zt(t,e),Vt(e),s&4&&n!==null&&n.memoizedState.isDehydrated)try{kr(t.containerInfo)}catch(pe){He(e,e.return,pe)}break;case 4:zt(t,e),Vt(e);break;case 13:zt(t,e),Vt(e),l=e.child,l.flags&8192&&(a=l.memoizedState!==null,l.stateNode.isHidden=a,!a||l.alternate!==null&&l.alternate.memoizedState!==null||(to=Ve())),s&4&&Jc(e);break;case 22:if(F=n!==null&&n.memoizedState!==null,e.mode&1?(at=(E=at)||F,zt(t,e),at=E):zt(t,e),Vt(e),s&8192){if(E=e.memoizedState!==null,(e.stateNode.isHidden=E)&&!F&&(e.mode&1)!==0)for(de=e,F=e.child;F!==null;){for(U=de=F;de!==null;){switch(D=de,re=D.child,D.tag){case 0:case 11:case 14:case 15:Kr(4,D,D.return);break;case 1:ar(D,D.return);var fe=D.stateNode;if(typeof fe.componentWillUnmount=="function"){s=D,n=D.return;try{t=s,fe.props=t.memoizedProps,fe.state=t.memoizedState,fe.componentWillUnmount()}catch(pe){He(s,n,pe)}}break;case 5:ar(D,D.return);break;case 22:if(D.memoizedState!==null){td(U);continue}}re!==null?(re.return=D,de=re):td(U)}F=F.sibling}e:for(F=null,U=e;;){if(U.tag===5){if(F===null){F=U;try{l=U.stateNode,E?(a=l.style,typeof a.setProperty=="function"?a.setProperty("display","none","important"):a.display="none"):(f=U.stateNode,x=U.memoizedProps.style,c=x!=null&&x.hasOwnProperty("display")?x.display:null,f.style.display=ss("display",c))}catch(pe){He(e,e.return,pe)}}}else if(U.tag===6){if(F===null)try{U.stateNode.nodeValue=E?"":U.memoizedProps}catch(pe){He(e,e.return,pe)}}else if((U.tag!==22&&U.tag!==23||U.memoizedState===null||U===e)&&U.child!==null){U.child.return=U,U=U.child;continue}if(U===e)break e;for(;U.sibling===null;){if(U.return===null||U.return===e)break e;F===U&&(F=null),U=U.return}F===U&&(F=null),U.sibling.return=U.return,U=U.sibling}}break;case 19:zt(t,e),Vt(e),s&4&&Jc(e);break;case 21:break;default:zt(t,e),Vt(e)}}function Vt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(Qc(n)){var s=n;break e}n=n.return}throw Error(i(160))}switch(s.tag){case 5:var l=s.stateNode;s.flags&32&&(Fe(l,""),s.flags&=-33);var a=Yc(e);Xa(e,a,l);break;case 3:case 4:var c=s.stateNode.containerInfo,f=Yc(e);Ja(e,f,c);break;default:throw Error(i(161))}}catch(x){He(e,e.return,x)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Ff(e,t,n){de=e,Zc(e)}function Zc(e,t,n){for(var s=(e.mode&1)!==0;de!==null;){var l=de,a=l.child;if(l.tag===22&&s){var c=l.memoizedState!==null||Ys;if(!c){var f=l.alternate,x=f!==null&&f.memoizedState!==null||at;f=Ys;var E=at;if(Ys=c,(at=x)&&!E)for(de=l;de!==null;)c=de,x=c.child,c.tag===22&&c.memoizedState!==null?nd(l):x!==null?(x.return=c,de=x):nd(l);for(;a!==null;)de=a,Zc(a),a=a.sibling;de=l,Ys=f,at=E}ed(e)}else(l.subtreeFlags&8772)!==0&&a!==null?(a.return=l,de=a):ed(e)}}function ed(e){for(;de!==null;){var t=de;if((t.flags&8772)!==0){var n=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:at||Gs(5,t);break;case 1:var s=t.stateNode;if(t.flags&4&&!at)if(n===null)s.componentDidMount();else{var l=t.elementType===t.type?n.memoizedProps:Dt(t.type,n.memoizedProps);s.componentDidUpdate(l,n.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var a=t.updateQueue;a!==null&&tc(t,a,s);break;case 3:var c=t.updateQueue;if(c!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}tc(t,c,n)}break;case 5:var f=t.stateNode;if(n===null&&t.flags&4){n=f;var x=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":x.autoFocus&&n.focus();break;case"img":x.src&&(n.src=x.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var E=t.alternate;if(E!==null){var F=E.memoizedState;if(F!==null){var U=F.dehydrated;U!==null&&kr(U)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}at||t.flags&512&&Ga(t)}catch(D){He(t,t.return,D)}}if(t===e){de=null;break}if(n=t.sibling,n!==null){n.return=t.return,de=n;break}de=t.return}}function td(e){for(;de!==null;){var t=de;if(t===e){de=null;break}var n=t.sibling;if(n!==null){n.return=t.return,de=n;break}de=t.return}}function nd(e){for(;de!==null;){var t=de;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Gs(4,t)}catch(x){He(t,n,x)}break;case 1:var s=t.stateNode;if(typeof s.componentDidMount=="function"){var l=t.return;try{s.componentDidMount()}catch(x){He(t,l,x)}}var a=t.return;try{Ga(t)}catch(x){He(t,a,x)}break;case 5:var c=t.return;try{Ga(t)}catch(x){He(t,c,x)}}}catch(x){He(t,t.return,x)}if(t===e){de=null;break}var f=t.sibling;if(f!==null){f.return=t.return,de=f;break}de=t.return}}var Bf=Math.ceil,Js=N.ReactCurrentDispatcher,Za=N.ReactCurrentOwner,$t=N.ReactCurrentBatchConfig,$e=0,Ze=null,Qe=null,nt=0,Ct=0,or=cn(0),Ge=0,Hr=null,An=0,Xs=0,eo=0,Vr=null,vt=null,to=0,ir=1/0,en=null,Zs=!1,no=null,xn=null,el=!1,hn=null,tl=0,Wr=0,ro=null,nl=-1,rl=0;function ct(){return($e&6)!==0?Ve():nl!==-1?nl:nl=Ve()}function gn(e){return(e.mode&1)===0?1:($e&2)!==0&&nt!==0?nt&-nt:Nf.transition!==null?(rl===0&&(rl=Yo()),rl):(e=Ie,e!==0||(e=window.event,e=e===void 0?16:si(e.type)),e)}function Ft(e,t,n,s){if(50<Wr)throw Wr=0,ro=null,Error(i(185));hr(e,n,s),(($e&2)===0||e!==Ze)&&(e===Ze&&(($e&2)===0&&(Xs|=n),Ge===4&&vn(e,nt)),yt(e,s),n===1&&$e===0&&(t.mode&1)===0&&(ir=Ve()+500,$s&&un()))}function yt(e,t){var n=e.callbackNode;wu(e,t);var s=fs(e,e===Ze?nt:0);if(s===0)n!==null&&Wo(n),e.callbackNode=null,e.callbackPriority=0;else if(t=s&-s,e.callbackPriority!==t){if(n!=null&&Wo(n),t===1)e.tag===0?wf(sd.bind(null,e)):Ki(sd.bind(null,e)),yf(function(){($e&6)===0&&un()}),n=null;else{switch(Go(s)){case 1:n=Ml;break;case 4:n=qo;break;case 16:n=is;break;case 536870912:n=Qo;break;default:n=is}n=fd(n,rd.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function rd(e,t){if(nl=-1,rl=0,($e&6)!==0)throw Error(i(327));var n=e.callbackNode;if(cr()&&e.callbackNode!==n)return null;var s=fs(e,e===Ze?nt:0);if(s===0)return null;if((s&30)!==0||(s&e.expiredLanes)!==0||t)t=sl(e,s);else{t=s;var l=$e;$e|=2;var a=ad();(Ze!==e||nt!==t)&&(en=null,ir=Ve()+500,Mn(e,t));do try{Hf();break}catch(f){ld(e,f)}while(!0);ka(),Js.current=a,$e=l,Qe!==null?t=0:(Ze=null,nt=0,t=Ge)}if(t!==0){if(t===2&&(l=Dl(e),l!==0&&(s=l,t=so(e,l))),t===1)throw n=Hr,Mn(e,0),vn(e,s),yt(e,Ve()),n;if(t===6)vn(e,s);else{if(l=e.current.alternate,(s&30)===0&&!Uf(l)&&(t=sl(e,s),t===2&&(a=Dl(e),a!==0&&(s=a,t=so(e,a))),t===1))throw n=Hr,Mn(e,0),vn(e,s),yt(e,Ve()),n;switch(e.finishedWork=l,e.finishedLanes=s,t){case 0:case 1:throw Error(i(345));case 2:Dn(e,vt,en);break;case 3:if(vn(e,s),(s&130023424)===s&&(t=to+500-Ve(),10<t)){if(fs(e,0)!==0)break;if(l=e.suspendedLanes,(l&s)!==s){ct(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=da(Dn.bind(null,e,vt,en),t);break}Dn(e,vt,en);break;case 4:if(vn(e,s),(s&4194240)===s)break;for(t=e.eventTimes,l=-1;0<s;){var c=31-At(s);a=1<<c,c=t[c],c>l&&(l=c),s&=~a}if(s=l,s=Ve()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Bf(s/1960))-s,10<s){e.timeoutHandle=da(Dn.bind(null,e,vt,en),s);break}Dn(e,vt,en);break;case 5:Dn(e,vt,en);break;default:throw Error(i(329))}}}return yt(e,Ve()),e.callbackNode===n?rd.bind(null,e):null}function so(e,t){var n=Vr;return e.current.memoizedState.isDehydrated&&(Mn(e,t).flags|=256),e=sl(e,t),e!==2&&(t=vt,vt=n,t!==null&&lo(t)),e}function lo(e){vt===null?vt=e:vt.push.apply(vt,e)}function Uf(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var s=0;s<n.length;s++){var l=n[s],a=l.getSnapshot;l=l.value;try{if(!It(a(),l))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function vn(e,t){for(t&=~eo,t&=~Xs,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-At(t),s=1<<n;e[n]=-1,t&=~s}}function sd(e){if(($e&6)!==0)throw Error(i(327));cr();var t=fs(e,0);if((t&1)===0)return yt(e,Ve()),null;var n=sl(e,t);if(e.tag!==0&&n===2){var s=Dl(e);s!==0&&(t=s,n=so(e,s))}if(n===1)throw n=Hr,Mn(e,0),vn(e,t),yt(e,Ve()),n;if(n===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Dn(e,vt,en),yt(e,Ve()),null}function ao(e,t){var n=$e;$e|=1;try{return e(t)}finally{$e=n,$e===0&&(ir=Ve()+500,$s&&un())}}function In(e){hn!==null&&hn.tag===0&&($e&6)===0&&cr();var t=$e;$e|=1;var n=$t.transition,s=Ie;try{if($t.transition=null,Ie=1,e)return e()}finally{Ie=s,$t.transition=n,$e=t,($e&6)===0&&un()}}function oo(){Ct=or.current,Oe(or)}function Mn(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,vf(n)),Qe!==null)for(n=Qe.return;n!==null;){var s=n;switch(ha(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&Ts();break;case 3:sr(),Oe(xt),Oe(rt),Ta();break;case 5:Ea(s);break;case 4:sr();break;case 13:Oe(Be);break;case 19:Oe(Be);break;case 10:ba(s.type._context);break;case 22:case 23:oo()}n=n.return}if(Ze=e,Qe=e=yn(e.current,null),nt=Ct=t,Ge=0,Hr=null,eo=Xs=An=0,vt=Vr=null,$n!==null){for(t=0;t<$n.length;t++)if(n=$n[t],s=n.interleaved,s!==null){n.interleaved=null;var l=s.next,a=n.pending;if(a!==null){var c=a.next;a.next=l,s.next=c}n.pending=s}$n=null}return e}function ld(e,t){do{var n=Qe;try{if(ka(),Bs.current=Vs,Us){for(var s=Ue.memoizedState;s!==null;){var l=s.queue;l!==null&&(l.pending=null),s=s.next}Us=!1}if(Ln=0,Xe=Ye=Ue=null,Or=!1,zr=0,Za.current=null,n===null||n.return===null){Ge=1,Hr=t,Qe=null;break}e:{var a=e,c=n.return,f=n,x=t;if(t=nt,f.flags|=32768,x!==null&&typeof x=="object"&&typeof x.then=="function"){var E=x,F=f,U=F.tag;if((F.mode&1)===0&&(U===0||U===11||U===15)){var D=F.alternate;D?(F.updateQueue=D.updateQueue,F.memoizedState=D.memoizedState,F.lanes=D.lanes):(F.updateQueue=null,F.memoizedState=null)}var re=Rc(c);if(re!==null){re.flags&=-257,$c(re,c,f,a,t),re.mode&1&&Tc(a,E,t),t=re,x=E;var fe=t.updateQueue;if(fe===null){var pe=new Set;pe.add(x),t.updateQueue=pe}else fe.add(x);break e}else{if((t&1)===0){Tc(a,E,t),io();break e}x=Error(i(426))}}else if(ze&&f.mode&1){var We=Rc(c);if(We!==null){(We.flags&65536)===0&&(We.flags|=256),$c(We,c,f,a,t),ya(lr(x,f));break e}}a=x=lr(x,f),Ge!==4&&(Ge=2),Vr===null?Vr=[a]:Vr.push(a),a=c;do{switch(a.tag){case 3:a.flags|=65536,t&=-t,a.lanes|=t;var w=Ec(a,x,t);ec(a,w);break e;case 1:f=x;var h=a.type,C=a.stateNode;if((a.flags&128)===0&&(typeof h.getDerivedStateFromError=="function"||C!==null&&typeof C.componentDidCatch=="function"&&(xn===null||!xn.has(C)))){a.flags|=65536,t&=-t,a.lanes|=t;var W=_c(a,f,t);ec(a,W);break e}}a=a.return}while(a!==null)}id(n)}catch(me){t=me,Qe===n&&n!==null&&(Qe=n=n.return);continue}break}while(!0)}function ad(){var e=Js.current;return Js.current=Vs,e===null?Vs:e}function io(){(Ge===0||Ge===3||Ge===2)&&(Ge=4),Ze===null||(An&268435455)===0&&(Xs&268435455)===0||vn(Ze,nt)}function sl(e,t){var n=$e;$e|=2;var s=ad();(Ze!==e||nt!==t)&&(en=null,Mn(e,t));do try{Kf();break}catch(l){ld(e,l)}while(!0);if(ka(),$e=n,Js.current=s,Qe!==null)throw Error(i(261));return Ze=null,nt=0,Ge}function Kf(){for(;Qe!==null;)od(Qe)}function Hf(){for(;Qe!==null&&!mu();)od(Qe)}function od(e){var t=ud(e.alternate,e,Ct);e.memoizedProps=e.pendingProps,t===null?id(e):Qe=t,Za.current=null}function id(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&32768)===0){if(n=Mf(n,t,Ct),n!==null){Qe=n;return}}else{if(n=Df(n,t),n!==null){n.flags&=32767,Qe=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ge=6,Qe=null;return}}if(t=t.sibling,t!==null){Qe=t;return}Qe=t=e}while(t!==null);Ge===0&&(Ge=5)}function Dn(e,t,n){var s=Ie,l=$t.transition;try{$t.transition=null,Ie=1,Vf(e,t,n,s)}finally{$t.transition=l,Ie=s}return null}function Vf(e,t,n,s){do cr();while(hn!==null);if(($e&6)!==0)throw Error(i(327));n=e.finishedWork;var l=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var a=n.lanes|n.childLanes;if(Nu(e,a),e===Ze&&(Qe=Ze=null,nt=0),(n.subtreeFlags&2064)===0&&(n.flags&2064)===0||el||(el=!0,fd(is,function(){return cr(),null})),a=(n.flags&15990)!==0,(n.subtreeFlags&15990)!==0||a){a=$t.transition,$t.transition=null;var c=Ie;Ie=1;var f=$e;$e|=4,Za.current=null,zf(e,n),Xc(n,e),uf(ia),xs=!!oa,ia=oa=null,e.current=n,Ff(n),xu(),$e=f,Ie=c,$t.transition=a}else e.current=n;if(el&&(el=!1,hn=e,tl=l),a=e.pendingLanes,a===0&&(xn=null),vu(n.stateNode),yt(e,Ve()),t!==null)for(s=e.onRecoverableError,n=0;n<t.length;n++)l=t[n],s(l.value,{componentStack:l.stack,digest:l.digest});if(Zs)throw Zs=!1,e=no,no=null,e;return(tl&1)!==0&&e.tag!==0&&cr(),a=e.pendingLanes,(a&1)!==0?e===ro?Wr++:(Wr=0,ro=e):Wr=0,un(),null}function cr(){if(hn!==null){var e=Go(tl),t=$t.transition,n=Ie;try{if($t.transition=null,Ie=16>e?16:e,hn===null)var s=!1;else{if(e=hn,hn=null,tl=0,($e&6)!==0)throw Error(i(331));var l=$e;for($e|=4,de=e.current;de!==null;){var a=de,c=a.child;if((de.flags&16)!==0){var f=a.deletions;if(f!==null){for(var x=0;x<f.length;x++){var E=f[x];for(de=E;de!==null;){var F=de;switch(F.tag){case 0:case 11:case 15:Kr(8,F,a)}var U=F.child;if(U!==null)U.return=F,de=U;else for(;de!==null;){F=de;var D=F.sibling,re=F.return;if(qc(F),F===E){de=null;break}if(D!==null){D.return=re,de=D;break}de=re}}}var fe=a.alternate;if(fe!==null){var pe=fe.child;if(pe!==null){fe.child=null;do{var We=pe.sibling;pe.sibling=null,pe=We}while(pe!==null)}}de=a}}if((a.subtreeFlags&2064)!==0&&c!==null)c.return=a,de=c;else e:for(;de!==null;){if(a=de,(a.flags&2048)!==0)switch(a.tag){case 0:case 11:case 15:Kr(9,a,a.return)}var w=a.sibling;if(w!==null){w.return=a.return,de=w;break e}de=a.return}}var h=e.current;for(de=h;de!==null;){c=de;var C=c.child;if((c.subtreeFlags&2064)!==0&&C!==null)C.return=c,de=C;else e:for(c=h;de!==null;){if(f=de,(f.flags&2048)!==0)try{switch(f.tag){case 0:case 11:case 15:Gs(9,f)}}catch(me){He(f,f.return,me)}if(f===c){de=null;break e}var W=f.sibling;if(W!==null){W.return=f.return,de=W;break e}de=f.return}}if($e=l,un(),Bt&&typeof Bt.onPostCommitFiberRoot=="function")try{Bt.onPostCommitFiberRoot(cs,e)}catch{}s=!0}return s}finally{Ie=n,$t.transition=t}}return!1}function cd(e,t,n){t=lr(n,t),t=Ec(e,t,1),e=pn(e,t,1),t=ct(),e!==null&&(hr(e,1,t),yt(e,t))}function He(e,t,n){if(e.tag===3)cd(e,e,n);else for(;t!==null;){if(t.tag===3){cd(t,e,n);break}else if(t.tag===1){var s=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(xn===null||!xn.has(s))){e=lr(n,e),e=_c(t,e,1),t=pn(t,e,1),e=ct(),t!==null&&(hr(t,1,e),yt(t,e));break}}t=t.return}}function Wf(e,t,n){var s=e.pingCache;s!==null&&s.delete(t),t=ct(),e.pingedLanes|=e.suspendedLanes&n,Ze===e&&(nt&n)===n&&(Ge===4||Ge===3&&(nt&130023424)===nt&&500>Ve()-to?Mn(e,0):eo|=n),yt(e,t)}function dd(e,t){t===0&&((e.mode&1)===0?t=1:(t=us,us<<=1,(us&130023424)===0&&(us=4194304)));var n=ct();e=Jt(e,t),e!==null&&(hr(e,t,n),yt(e,n))}function qf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),dd(e,n)}function Qf(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(i(314))}s!==null&&s.delete(t),dd(e,n)}var ud;ud=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||xt.current)gt=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return gt=!1,If(e,t,n);gt=(e.flags&131072)!==0}else gt=!1,ze&&(t.flags&1048576)!==0&&Hi(t,Ls,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;Qs(e,t),e=t.pendingProps;var l=Jn(t,rt.current);rr(t,n),l=Pa(null,t,s,e,l,n);var a=La();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ht(s)?(a=!0,Rs(t)):a=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Sa(t),l.updater=Ws,t.stateNode=l,l._reactInternals=t,za(t,s,e,n),t=Ka(null,t,s,!0,a,n)):(t.tag=0,ze&&a&&xa(t),it(null,t,l,n),t=t.child),t;case 16:s=t.elementType;e:{switch(Qs(e,t),e=t.pendingProps,l=s._init,s=l(s._payload),t.type=s,l=t.tag=Gf(s),e=Dt(s,e),l){case 0:t=Ua(null,t,s,e,n);break e;case 1:t=Dc(null,t,s,e,n);break e;case 11:t=Pc(null,t,s,e,n);break e;case 14:t=Lc(null,t,s,Dt(s.type,e),n);break e}throw Error(i(306,s,""))}return t;case 0:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Dt(s,l),Ua(e,t,s,l,n);case 1:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Dt(s,l),Dc(e,t,s,l,n);case 3:e:{if(Oc(t),e===null)throw Error(i(387));s=t.pendingProps,a=t.memoizedState,l=a.element,Zi(e,t),zs(t,s,null,n);var c=t.memoizedState;if(s=c.element,a.isDehydrated)if(a={element:s,isDehydrated:!1,cache:c.cache,pendingSuspenseBoundaries:c.pendingSuspenseBoundaries,transitions:c.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){l=lr(Error(i(423)),t),t=zc(e,t,s,n,l);break e}else if(s!==l){l=lr(Error(i(424)),t),t=zc(e,t,s,n,l);break e}else for(St=on(t.stateNode.containerInfo.firstChild),Nt=t,ze=!0,Mt=null,n=Ji(t,null,s,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(er(),s===l){t=Zt(e,t,n);break e}it(e,t,s,n)}t=t.child}return t;case 5:return nc(t),e===null&&va(t),s=t.type,l=t.pendingProps,a=e!==null?e.memoizedProps:null,c=l.children,ca(s,l)?c=null:a!==null&&ca(s,a)&&(t.flags|=32),Mc(e,t),it(e,t,c,n),t.child;case 6:return e===null&&va(t),null;case 13:return Fc(e,t,n);case 4:return Ca(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=tr(t,null,s,n):it(e,t,s,n),t.child;case 11:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Dt(s,l),Pc(e,t,s,l,n);case 7:return it(e,t,t.pendingProps,n),t.child;case 8:return it(e,t,t.pendingProps.children,n),t.child;case 12:return it(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,l=t.pendingProps,a=t.memoizedProps,c=l.value,Me(Ms,s._currentValue),s._currentValue=c,a!==null)if(It(a.value,c)){if(a.children===l.children&&!xt.current){t=Zt(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var f=a.dependencies;if(f!==null){c=a.child;for(var x=f.firstContext;x!==null;){if(x.context===s){if(a.tag===1){x=Xt(-1,n&-n),x.tag=2;var E=a.updateQueue;if(E!==null){E=E.shared;var F=E.pending;F===null?x.next=x:(x.next=F.next,F.next=x),E.pending=x}}a.lanes|=n,x=a.alternate,x!==null&&(x.lanes|=n),wa(a.return,n,t),f.lanes|=n;break}x=x.next}}else if(a.tag===10)c=a.type===t.type?null:a.child;else if(a.tag===18){if(c=a.return,c===null)throw Error(i(341));c.lanes|=n,f=c.alternate,f!==null&&(f.lanes|=n),wa(c,n,t),c=a.sibling}else c=a.child;if(c!==null)c.return=a;else for(c=a;c!==null;){if(c===t){c=null;break}if(a=c.sibling,a!==null){a.return=c.return,c=a;break}c=c.return}a=c}it(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,s=t.pendingProps.children,rr(t,n),l=Tt(l),s=s(l),t.flags|=1,it(e,t,s,n),t.child;case 14:return s=t.type,l=Dt(s,t.pendingProps),l=Dt(s.type,l),Lc(e,t,s,l,n);case 15:return Ac(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:Dt(s,l),Qs(e,t),t.tag=1,ht(s)?(e=!0,Rs(t)):e=!1,rr(t,n),Sc(t,s,l),za(t,s,l,n),Ka(null,t,s,!0,e,n);case 19:return Uc(e,t,n);case 22:return Ic(e,t,n)}throw Error(i(156,t.tag))};function fd(e,t){return Vo(e,t)}function Yf(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pt(e,t,n,s){return new Yf(e,t,n,s)}function co(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Gf(e){if(typeof e=="function")return co(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ie)return 11;if(e===X)return 14}return 2}function yn(e,t){var n=e.alternate;return n===null?(n=Pt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ll(e,t,n,s,l,a){var c=2;if(s=e,typeof e=="function")co(e)&&(c=1);else if(typeof e=="string")c=5;else e:switch(e){case Y:return On(n.children,l,a,t);case oe:c=8,l|=8;break;case Ee:return e=Pt(12,n,t,l|2),e.elementType=Ee,e.lanes=a,e;case y:return e=Pt(13,n,t,l),e.elementType=y,e.lanes=a,e;case J:return e=Pt(19,n,t,l),e.elementType=J,e.lanes=a,e;case k:return al(n,l,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ae:c=10;break e;case V:c=9;break e;case ie:c=11;break e;case X:c=14;break e;case ce:c=16,s=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return t=Pt(c,n,t,l),t.elementType=e,t.type=s,t.lanes=a,t}function On(e,t,n,s){return e=Pt(7,e,s,t),e.lanes=n,e}function al(e,t,n,s){return e=Pt(22,e,s,t),e.elementType=k,e.lanes=n,e.stateNode={isHidden:!1},e}function uo(e,t,n){return e=Pt(6,e,null,t),e.lanes=n,e}function fo(e,t,n){return t=Pt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jf(e,t,n,s,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ol(0),this.expirationTimes=Ol(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ol(0),this.identifierPrefix=s,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function po(e,t,n,s,l,a,c,f,x){return e=new Jf(e,t,n,f,x),t===1?(t=1,a===!0&&(t|=8)):t=0,a=Pt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sa(a),e}function Xf(e,t,n){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ne,key:s==null?null:""+s,children:e,containerInfo:t,implementation:n}}function pd(e){if(!e)return dn;e=e._reactInternals;e:{if(Cn(e)!==e||e.tag!==1)throw Error(i(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(ht(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(i(171))}if(e.tag===1){var n=e.type;if(ht(n))return Bi(e,n,t)}return t}function md(e,t,n,s,l,a,c,f,x){return e=po(n,s,!0,e,l,a,c,f,x),e.context=pd(null),n=e.current,s=ct(),l=gn(n),a=Xt(s,l),a.callback=t??null,pn(n,a,l),e.current.lanes=l,hr(e,l,s),yt(e,s),e}function ol(e,t,n,s){var l=t.current,a=ct(),c=gn(l);return n=pd(n),t.context===null?t.context=n:t.pendingContext=n,t=Xt(a,c),t.payload={element:e},s=s===void 0?null:s,s!==null&&(t.callback=s),e=pn(l,t,c),e!==null&&(Ft(e,l,c,a),Os(e,l,c)),c}function il(e){return e=e.current,e.child?(e.child.tag===5,e.child.stateNode):null}function xd(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function mo(e,t){xd(e,t),(e=e.alternate)&&xd(e,t)}function Zf(){return null}var hd=typeof reportError=="function"?reportError:function(e){console.error(e)};function xo(e){this._internalRoot=e}cl.prototype.render=xo.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));ol(e,t,null,null)},cl.prototype.unmount=xo.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;In(function(){ol(null,e,null,null)}),t[qt]=null}};function cl(e){this._internalRoot=e}cl.prototype.unstable_scheduleHydration=function(e){if(e){var t=Zo();e={blockedOn:null,target:e,priority:t};for(var n=0;n<sn.length&&t!==0&&t<sn[n].priority;n++);sn.splice(n,0,e),n===0&&ni(e)}};function ho(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function dl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function gd(){}function ep(e,t,n,s,l){if(l){if(typeof s=="function"){var a=s;s=function(){var E=il(c);a.call(E)}}var c=md(t,s,e,0,null,!1,!1,"",gd);return e._reactRootContainer=c,e[qt]=c.current,Rr(e.nodeType===8?e.parentNode:e),In(),c}for(;l=e.lastChild;)e.removeChild(l);if(typeof s=="function"){var f=s;s=function(){var E=il(x);f.call(E)}}var x=po(e,0,!1,null,null,!1,!1,"",gd);return e._reactRootContainer=x,e[qt]=x.current,Rr(e.nodeType===8?e.parentNode:e),In(function(){ol(t,x,n,s)}),x}function ul(e,t,n,s,l){var a=n._reactRootContainer;if(a){var c=a;if(typeof l=="function"){var f=l;l=function(){var x=il(c);f.call(x)}}ol(t,c,e,l)}else c=ep(n,t,e,l,s);return il(c)}Jo=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=xr(t.pendingLanes);n!==0&&(zl(t,n|1),yt(t,Ve()),($e&6)===0&&(ir=Ve()+500,un()))}break;case 13:In(function(){var s=Jt(e,1);if(s!==null){var l=ct();Ft(s,e,1,l)}}),mo(e,1)}},Fl=function(e){if(e.tag===13){var t=Jt(e,134217728);if(t!==null){var n=ct();Ft(t,e,134217728,n)}mo(e,134217728)}},Xo=function(e){if(e.tag===13){var t=gn(e),n=Jt(e,t);if(n!==null){var s=ct();Ft(n,e,t,s)}mo(e,t)}},Zo=function(){return Ie},ei=function(e,t){var n=Ie;try{return Ie=e,t()}finally{Ie=n}},Pl=function(e,t,n){switch(t){case"input":if(wn(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var s=n[t];if(s!==e&&s.form===e.form){var l=_s(s);if(!l)throw Error(i(90));je(s),wn(s,l)}}}break;case"textarea":rs(e,n);break;case"select":t=n.value,t!=null&&Wt(e,!!n.multiple,t,!1)}},Oo=ao,zo=In;var tp={usingClientEntryPoint:!1,Events:[Lr,Yn,_s,Mo,Do,ao]},qr={findFiberByHostInstance:En,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},np={bundleType:qr.bundleType,version:qr.version,rendererPackageName:qr.rendererPackageName,rendererConfig:qr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:N.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Ko(e),e===null?null:e.stateNode},findFiberByHostInstance:qr.findFiberByHostInstance||Zf,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var fl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fl.isDisabled&&fl.supportsFiber)try{cs=fl.inject(np),Bt=fl}catch{}}return jt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tp,jt.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!ho(t))throw Error(i(200));return Xf(e,t,null,n)},jt.createRoot=function(e,t){if(!ho(e))throw Error(i(299));var n=!1,s="",l=hd;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(s=t.identifierPrefix),t.onRecoverableError!==void 0&&(l=t.onRecoverableError)),t=po(e,1,!1,null,null,n,!1,s,l),e[qt]=t.current,Rr(e.nodeType===8?e.parentNode:e),new xo(t)},jt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=Ko(t),e=e===null?null:e.stateNode,e},jt.flushSync=function(e){return In(e)},jt.hydrate=function(e,t,n){if(!dl(t))throw Error(i(200));return ul(null,e,t,!0,n)},jt.hydrateRoot=function(e,t,n){if(!ho(e))throw Error(i(405));var s=n!=null&&n.hydratedSources||null,l=!1,a="",c=hd;if(n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(a=n.identifierPrefix),n.onRecoverableError!==void 0&&(c=n.onRecoverableError)),t=md(t,null,e,1,n??null,l,!1,a,c),e[qt]=t.current,Rr(e),s)for(e=0;e<s.length;e++)n=s[e],l=n._getVersion,l=l(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,l]:t.mutableSourceEagerHydrationData.push(n,l);return new cl(t)},jt.render=function(e,t,n){if(!dl(t))throw Error(i(200));return ul(null,e,t,!1,n)},jt.unmountComponentAtNode=function(e){if(!dl(e))throw Error(i(40));return e._reactRootContainer?(In(function(){ul(null,null,e,!1,function(){e._reactRootContainer=null,e[qt]=null})}),!0):!1},jt.unstable_batchedUpdates=ao,jt.unstable_renderSubtreeIntoContainer=function(e,t,n,s){if(!dl(n))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return ul(e,t,n,!1,s)},jt.version="18.3.1-next-f1338f8080-20240426",jt}var Sd;function dp(){if(Sd)return yo.exports;Sd=1;function o(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(d){console.error(d)}}return o(),yo.exports=cp(),yo.exports}var Cd;function up(){if(Cd)return pl;Cd=1;var o=dp();return pl.createRoot=o.createRoot,pl.hydrateRoot=o.hydrateRoot,pl}var fp=up();const pp=Gd(fp),mp="0 0 15.185487747192383 40.768211364746094",xp="m12.049 3.5296c0.305 3.1263-2.019 5.6563-4.0772 7.7014-0.9349 0.897-0.155 0.148-0.6437 0.594-0.1022-0.479-0.2986-1.731-0.2802-2.11 0.1304-2.6939 2.3198-6.5875 4.2381-8.0236 0.309 0.5767 0.563 0.6231 0.763 1.8382zm0.651 16.142c-1.232-0.906-2.85-1.144-4.3336-0.885-0.1913-1.255-0.3827-2.51-0.574-3.764 2.3506-2.329 4.9066-5.0322 5.0406-8.5394 0.059-2.232-0.276-4.6714-1.678-6.4836-1.7004 0.12823-2.8995 2.156-3.8019 3.4165-1.4889 2.6705-1.1414 5.9169-0.57 8.7965-0.8094 0.952-1.9296 1.743-2.7274 2.734-2.3561 2.308-4.4085 5.43-4.0046 8.878 0.18332 3.334 2.5894 6.434 5.8702 7.227 1.2457 0.315 2.5639 0.346 3.8241 0.099 0.2199 2.25 1.0266 4.629 0.0925 6.813-0.7007 1.598-2.7875 3.004-4.3325 2.192-0.5994-0.316-0.1137-0.051-0.478-0.252 1.0698-0.257 1.9996-1.036 2.26-1.565 0.8378-1.464-0.3998-3.639-2.1554-3.358-2.262 0.046-3.1904 3.14-1.7356 4.685 1.3468 1.52 3.833 1.312 5.4301 0.318 1.8125-1.18 2.0395-3.544 1.8325-5.562-0.07-0.678-0.403-2.67-0.444-3.387 0.697-0.249 0.209-0.059 1.193-0.449 2.66-1.053 4.357-4.259 3.594-7.122-0.318-1.469-1.044-2.914-2.302-3.792zm0.561 5.757c0.214 1.991-1.053 4.321-3.079 4.96-0.136-0.795-0.172-1.011-0.2626-1.475-0.4822-2.46-0.744-4.987-1.116-7.481 1.6246-0.168 3.4576 0.543 4.0226 2.184 0.244 0.577 0.343 1.197 0.435 1.812zm-5.1486 5.196c-2.5441 0.141-4.9995-1.595-5.6343-4.081-0.749-2.153-0.5283-4.63 0.8207-6.504 1.1151-1.702 2.6065-3.105 4.0286-4.543 0.183 1.127 0.366 2.254 0.549 3.382-2.9906 0.782-5.0046 4.725-3.215 7.451 0.5324 0.764 1.9765 2.223 2.7655 1.634-1.102-0.683-2.0033-1.859-1.8095-3.227-0.0821-1.282 1.3699-2.911 2.6513-3.198 0.4384 2.869 0.9413 6.073 1.3797 8.943-0.5054 0.1-1.0211 0.143-1.536 0.143z",hp=`
|
|
9
|
+
<style>
|
|
10
|
+
:host {
|
|
11
|
+
--_accent: var(--clef-accent, #f0a500);
|
|
12
|
+
--_text: var(--clef-text, #e7eaf3);
|
|
13
|
+
--_size: 28px;
|
|
14
|
+
/* Mark dominates the lockup (~1.6x the wordmark cap-height), matching
|
|
15
|
+
* the brand bundle's proportions: mark 56 / text 34 in the canonical
|
|
16
|
+
* preview. The size attribute controls mark height; text scales below. */
|
|
17
|
+
display: inline-flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: calc(var(--_size) * 0.3);
|
|
20
|
+
line-height: 1;
|
|
21
|
+
vertical-align: middle;
|
|
22
|
+
}
|
|
23
|
+
:host([surface="light"]) {
|
|
24
|
+
--_text: var(--clef-text, #06070b);
|
|
25
|
+
}
|
|
26
|
+
:host([variant="mark"]) .text { display: none; }
|
|
27
|
+
:host([variant="text"]) .mark { display: none; }
|
|
28
|
+
:host([variant="text"]) { gap: 0; }
|
|
29
|
+
:host([tld="false"]) .tld { display: none; }
|
|
30
|
+
.mark {
|
|
31
|
+
width: auto;
|
|
32
|
+
height: var(--_size);
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
fill: var(--_accent);
|
|
35
|
+
stroke: var(--_accent);
|
|
36
|
+
stroke-width: 0.7;
|
|
37
|
+
stroke-linejoin: round;
|
|
38
|
+
stroke-linecap: round;
|
|
39
|
+
display: block;
|
|
40
|
+
}
|
|
41
|
+
.text {
|
|
42
|
+
font-family: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
43
|
+
font-weight: 600;
|
|
44
|
+
font-size: calc(var(--_size) * 0.62);
|
|
45
|
+
letter-spacing: -0.02em;
|
|
46
|
+
color: var(--_text);
|
|
47
|
+
white-space: nowrap;
|
|
48
|
+
}
|
|
49
|
+
.tld { color: var(--_accent); }
|
|
50
|
+
</style>
|
|
51
|
+
<svg class="mark" viewBox="${mp}" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
|
|
52
|
+
<path d="${xp}"/>
|
|
53
|
+
</svg>
|
|
54
|
+
<span class="text"><span class="name">clef</span><span class="tld">.sh</span></span>
|
|
55
|
+
`;let ml=null;function gp(){return ml||(ml=document.createElement("template"),ml.innerHTML=hp),ml}const Lo=class Lo extends HTMLElement{connectedCallback(){this.shadowRoot||this.attachShadow({mode:"open"}).appendChild(gp().content.cloneNode(!0)),this.applySize(),this.hasAttribute("aria-label")||this.setAttribute("aria-label","Clef"),this.setAttribute("role","img")}attributeChangedCallback(d){d==="size"&&this.shadowRoot&&this.applySize()}applySize(){const d=this.getAttribute("size"),i=d?Number(d):NaN;Number.isFinite(i)&&i>0?this.style.setProperty("--_size",`${i}px`):this.style.removeProperty("--_size")}};Lo.observedAttributes=["size"];let Eo=Lo;function vp(o="clef-wordmark"){typeof window>"u"||typeof customElements>"u"||customElements.get(o)||customElements.define(o,Eo)}vp();const Ed="clef_ui_token";let Nl=null;function yp(){const d=new URLSearchParams(window.location.search).get("token");if(d){Nl=d,sessionStorage.setItem(Ed,d);const i=new URL(window.location.href);i.searchParams.delete("token"),window.history.replaceState({},"",i.pathname+i.hash)}else Nl=sessionStorage.getItem(Ed)}function ge(o,d){const i=new Headers(d?.headers);return Nl&&i.set("Authorization",`Bearer ${Nl}`),fetch(o,{...d,headers:i})}const jp=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Jd=(...o)=>o.filter((d,i,p)=>!!d&&d.trim()!==""&&p.indexOf(d)===i).join(" ").trim();var kp={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const bp=u.forwardRef(({color:o="currentColor",size:d=24,strokeWidth:i=2,absoluteStrokeWidth:p,className:m="",children:v,iconNode:b,...T},S)=>u.createElement("svg",{ref:S,...kp,width:d,height:d,stroke:o,strokeWidth:p?Number(i)*24/Number(d):i,className:Jd("lucide",m),...T},[...b.map(([j,_])=>u.createElement(j,_)),...Array.isArray(v)?v:[v]]));const ft=(o,d)=>{const i=u.forwardRef(({className:p,...m},v)=>u.createElement(bp,{ref:v,iconNode:d,className:Jd(`lucide-${jp(o)}`,p),...m}));return i.displayName=`${o}`,i};const wp=ft("ArrowLeftRight",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);const Np=ft("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Sp=ft("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);const Cp=ft("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);const Xd=ft("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);const Ep=ft("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);const _p=ft("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);const Tp=ft("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);const Zd=ft("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);const Rp=ft("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);const $p=ft("Scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]);const eu=ft("ScanSearch",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);const Pp=ft("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);const Lp=ft("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);const Ap=ft("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);function Ip({activeView:o,setView:d,activeNs:i,setNs:p,manifest:m,matrixStatuses:v,gitStatus:b,lintErrorCount:T,scanIssueCount:S,policyOverdueCount:j}){const _=b?b.staged.length+b.unstaged.length+b.untracked.length:0,I=m?.namespaces??[];return r.jsxs("div",{className:"flex h-screen w-[220px] shrink-0 flex-col border-r border-edge bg-ink-850",children:[r.jsxs("div",{className:"flex items-center gap-2.5 border-b border-edge px-5 pt-5 pb-4",children:[r.jsx("clef-wordmark",{size:28}),r.jsxs("div",{className:"ml-auto font-mono text-[9px] uppercase tracking-[0.12em] text-ash",children:[m?.sops.default_backend??"local"," / main"]})]}),r.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto overflow-x-hidden px-2.5 py-3",children:[r.jsx(dt,{icon:_p,label:"Matrix",active:o==="matrix",onClick:()=>d("matrix")}),r.jsx(dt,{icon:wp,label:"Diff",active:o==="diff",onClick:()=>d("diff")}),r.jsx(dt,{icon:Np,label:"Lint",active:o==="lint",onClick:()=>d("lint"),badge:T>0?String(T):void 0,badgeTone:"stop"}),r.jsx(dt,{icon:eu,label:"Scan",active:o==="scan",onClick:()=>d("scan"),badge:S>0?String(S):void 0,badgeTone:"warn"}),r.jsx(dt,{icon:Pp,label:"Schema",active:o==="schema",onClick:()=>d("schema")}),r.jsx(dt,{icon:$p,label:"Policy",active:o==="policy",onClick:()=>d("policy"),badge:j>0?String(j):void 0,badgeTone:"stop"}),r.jsx(dt,{icon:Lp,label:"Import",active:o==="import",onClick:()=>d("import")}),r.jsx(dt,{icon:Ap,label:"Recipients",active:o==="recipients",onClick:()=>d("recipients")}),r.jsx(dt,{icon:Ep,label:"Service IDs",active:o==="identities",onClick:()=>d("identities"),badge:m?.service_identities?.length?String(m.service_identities.length):void 0,badgeTone:"purple"}),r.jsx(dt,{icon:Zd,label:"Backend",active:o==="backend",onClick:()=>d("backend")}),r.jsx(dt,{icon:Rp,label:"Reset",active:o==="reset",onClick:()=>d("reset")}),r.jsx(dt,{icon:Cp,label:"Manifest",active:o==="manifest",onClick:()=>d("manifest")}),r.jsx(dt,{icon:Tp,label:"Envelope",active:o==="envelope",onClick:()=>d("envelope")}),r.jsx(dt,{icon:Sp,label:"History",active:o==="history",onClick:()=>d("history")}),r.jsx("div",{className:"mt-5 mb-1.5 px-2",children:r.jsx("span",{className:"font-sans text-[10px] font-semibold uppercase tracking-[0.1em] text-ash-deep",children:"Namespaces"})}),I.map($=>{const B=v.some(O=>O.cell.namespace===$.name&&O.issues.length>0);return r.jsx(dt,{icon:Xd,label:$.name,active:o==="editor"&&i===$.name,onClick:()=>{d("editor"),p($.name)},badge:B?"!":void 0,badgeTone:"warn"},$.name)})]}),r.jsxs("div",{className:"border-t border-edge px-4 py-3",children:[r.jsx("div",{className:"flex items-center gap-1.5 text-ash",children:r.jsxs("span",{className:"font-mono text-[10px]",children:[_," uncommitted"]})}),r.jsxs("div",{className:"mt-1.5 flex items-center gap-1.5 text-go-500",children:[r.jsx("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-go-500 shadow-[0_0_5px_var(--color-go-500)]"}),r.jsxs("span",{className:"font-mono text-[10px]",children:[m?.sops.default_backend??"age"," key loaded"]})]})]})]})}function dt({icon:o,label:d,active:i,onClick:p,badge:m,badgeTone:v="warn"}){const b="relative flex items-center gap-2.5 rounded-md px-2.5 py-1.5 mb-0.5 cursor-pointer transition-colors",T=i?"bg-gold-500/10 text-gold-500 font-semibold border-l-4 border-gold-500 pl-[6px]":"border-l-4 border-transparent text-bone hover:bg-ink-800";return r.jsxs("div",{role:"button",tabIndex:0,"data-testid":`nav-${d.toLowerCase()}`,onClick:p,onKeyDown:S=>{S.key==="Enter"&&p()},className:`${b} ${T}`,children:[r.jsx(o,{size:14,strokeWidth:1.75,className:i?"text-gold-500":"text-ash","aria-hidden":"true"}),r.jsx("span",{className:"flex-1 font-sans text-[13px]",children:d}),m&&r.jsx(Dp,{tone:v,children:m})]})}const Mp={stop:"text-stop-500 bg-stop-500/15 border-stop-500/40",warn:"text-warn-500 bg-warn-500/15 border-warn-500/40",purple:"text-purple-400 bg-purple-400/15 border-purple-400/40"};function Dp({tone:o,children:d}){return r.jsx("span",{className:`rounded-sm border px-1.5 py-px font-mono text-[9px] font-bold ${Mp[o]}`,children:d})}const Op={primary:"bg-gold-500 text-ink-950 border border-transparent hover:bg-gold-400",ghost:"bg-transparent text-bone border border-edge-strong hover:bg-ink-800",danger:"bg-stop-500/15 text-stop-500 border border-stop-500/40 hover:bg-stop-500/25"};function Z({children:o,variant:d="ghost",onClick:i,icon:p,type:m="button",className:v,style:b,...T}){return r.jsxs("button",{type:m,onClick:i,...T,className:["inline-flex items-center gap-1.5 rounded-md px-3 py-1 font-sans text-[12px] font-semibold cursor-pointer transition-colors disabled:cursor-not-allowed disabled:opacity-60",Op[d],v??""].join(" ").trim(),children:[p&&r.jsx("span",{className:"flex",children:p}),o]})}const zp={dev:{text:"text-go-500",bg:"bg-go-500/10",border:"border-go-500/20",label:"DEV"},staging:{text:"text-warn-500",bg:"bg-warn-500/10",border:"border-warn-500/20",label:"STG"},production:{text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/20",label:"PRD"}};function ot({env:o,small:d}){const i=zp[o]??{text:"text-ash",bg:"bg-transparent",border:"border-ash/20",label:o.toUpperCase().slice(0,3)},p=d?"text-[9px] px-1.5 py-px":"text-[10px] px-2 py-0.5";return r.jsx("span",{className:`inline-block rounded-sm border font-mono font-bold tracking-[0.08em] ${i.text} ${i.bg} ${i.border} ${p}`,children:i.label})}const Fp={ok:"bg-go-500 shadow-[0_0_6px_rgb(52_211_153_/_0.53)]",missing_keys:"bg-stop-500 shadow-[0_0_6px_rgb(248_113_113_/_0.53)]",schema_warn:"bg-warn-500 shadow-[0_0_6px_rgb(251_191_36_/_0.53)]",sops_error:"bg-stop-500 shadow-[0_0_6px_rgb(248_113_113_/_0.53)]"};function Bp({status:o}){const d=Fp[o]??"bg-ash shadow-[0_0_6px_rgb(155_163_183_/_0.53)]";return r.jsx("span",{"data-testid":"status-dot",className:`inline-block h-[7px] w-[7px] rounded-full ${d}`})}function Ro(...o){return o.filter(Boolean).join(" ")}const Up=bt.forwardRef(function({tone:d="default",interactive:i=!1,className:p,children:m,...v},b){const T="bg-ink-850 border rounded-card",S=d==="error"?"border-stop-500/40":"border-edge",j=i?"transition-shadow transition-colors hover:border-edge-strong hover:shadow-soft-drop":"";return r.jsx("div",{ref:b,className:Ro(T,S,j,p),...v,children:m})});function Kp({title:o,subtitle:d,actions:i,className:p,...m}){return r.jsxs("div",{className:Ro("flex items-center justify-between px-4 py-3 border-b border-edge",p),...m,children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("div",{className:"font-sans text-[13px] font-bold text-bone",children:o}),d?r.jsx("div",{className:"font-mono text-[10px] text-ash-dim mt-0.5",children:d}):null]}),i?r.jsx("div",{className:"flex gap-2 shrink-0",children:i}):null]})}function Hp({className:o,children:d,...i}){return r.jsx("div",{className:Ro("p-4",o),...i,children:d})}const Sl=Up;Sl.Header=Kp;Sl.Body=Hp;function Cl(...o){return o.filter(Boolean).join(" ")}const Vp=bt.forwardRef(function({className:d,children:i,...p},m){return r.jsx("div",{ref:m,className:Cl("flex items-center justify-between px-7 py-5 border-b border-edge bg-ink-900",d),...p,children:i})});function Wp({className:o,children:d,...i}){return r.jsx("h1",{className:Cl("text-[20px] font-semibold text-bone tracking-[-0.015em] m-0",o),...i,children:d})}function qp({className:o,children:d,...i}){return r.jsx("div",{className:Cl("font-mono text-[11px] text-ash-dim",o),...i,children:d})}function Qp({className:o,children:d,...i}){return r.jsx("div",{className:Cl("flex gap-2",o),...i,children:d})}const G=Vp;G.Title=Wp;G.Subtitle=qp;G.Actions=Qp;function _d(...o){return o.filter(Boolean).join(" ")}const Yp={default:"bg-ash-deep",go:"bg-go-500",warn:"bg-warn-500",stop:"bg-stop-500",gold:"bg-gold-500"};bt.forwardRef(function({label:d,value:i,tone:p="default",icon:m,className:v,...b},T){return r.jsxs("div",{ref:T,"data-tone":p,className:_d("bg-ink-850 border border-edge rounded-card p-4 relative overflow-hidden",v),...b,children:[r.jsx("span",{"aria-hidden":!0,className:_d("absolute inset-y-0 left-0 w-[3px]",Yp[p])}),r.jsxs("div",{className:"flex items-start justify-between",children:[r.jsx("div",{className:"font-mono text-[10px] uppercase tracking-[0.08em] text-ash-dim",children:d}),m?r.jsx("div",{className:"text-ash-dim",children:m}):null]}),r.jsx("div",{className:"font-mono text-[28px] text-bone mt-2",children:i})]})});const tu="w-full bg-ink-950 border border-edge rounded-md px-2.5 py-1.5 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim disabled:text-ash-dim disabled:bg-ink-900";function nu(...o){return o.filter(Boolean).join(" ")}const kt=bt.forwardRef(function({className:d,...i},p){return r.jsx("input",{ref:p,className:nu(tu,d),...i})});bt.forwardRef(function({className:d,...i},p){return r.jsx("textarea",{ref:p,className:nu(tu,d),...i})});function El(...o){return o.filter(Boolean).join(" ")}function ru({required:o,className:d,children:i,...p}){return r.jsxs("label",{className:El("font-sans text-[11px] font-medium text-ash uppercase tracking-[0.08em]",d),...p,children:[i,o?r.jsx("span",{className:"text-stop-500",children:" *"}):null]})}function su({className:o,children:d,...i}){return r.jsx("div",{className:El("font-sans text-[11px] text-ash-dim mt-1",o),...i,children:d})}function lu({className:o,children:d,...i}){return r.jsx("div",{role:"alert",className:El("font-sans text-[11px] text-stop-500 mt-1",o),...i,children:d})}const Gp=bt.forwardRef(function({label:d,hint:i,error:p,required:m,className:v,children:b,htmlFor:T,...S},j){return r.jsxs("div",{ref:j,className:El("flex flex-col gap-1.5",v),...S,children:[r.jsx(ru,{required:m,htmlFor:T,children:d}),r.jsx("div",{children:b}),p?r.jsx(lu,{children:p}):i?r.jsx(su,{children:i}):null]})}),ut=Gp;ut.Label=ru;ut.Hint=su;ut.Error=lu;function Jp(...o){return o.filter(Boolean).join(" ")}const kn=bt.forwardRef(function({icon:d,title:i,body:p,action:m,className:v,...b},T){return r.jsxs("div",{ref:T,className:Jp("flex flex-col items-center justify-center border border-dashed border-edge rounded-md p-6 text-center",v),...b,children:[d?r.jsx("div",{className:"text-ash-dim mb-3 text-[32px] leading-none","aria-hidden":!0,children:d}):null,r.jsx("div",{className:"font-sans text-[13px] font-semibold text-bone",children:i}),p?r.jsx("div",{className:"font-sans text-[12px] text-ash-dim mt-1",children:p}):null,m?r.jsx("div",{className:"mt-3",children:m}):null]})});function Zr(...o){return o.filter(Boolean).join(" ")}const Xp=bt.forwardRef(function({className:d,children:i,...p},m){return r.jsx("div",{ref:m,className:Zr("bg-ink-850 border border-edge rounded-card overflow-hidden",d),...p,children:r.jsx("table",{className:"w-full border-collapse",children:i})})});function Zp({className:o,children:d,...i}){return r.jsx("thead",{className:Zr("bg-ink-800 border-b border-edge",o),...i,children:d})}function em({className:o,children:d,...i}){return r.jsx("th",{className:Zr("px-5 py-3 font-sans text-[11px] font-semibold text-ash-dim uppercase tracking-[0.08em] text-left",o),...i,children:d})}function tm({interactive:o,tone:d,className:i,children:p,...m}){const v=o?"hover:bg-ink-800 cursor-pointer transition-colors":"",b=d==="drift"?"shadow-[inset_4px_0_0_0_var(--color-stop-500)]":"";return r.jsx("tr",{className:Zr("border-b border-edge last:border-0",v,b,i),...m,children:p})}function nm({className:o,children:d,...i}){return r.jsx("td",{className:Zr("px-5 py-3 font-sans text-[12px] text-bone",o),...i,children:d})}const Pe=Xp;Pe.Header=Zp;Pe.Row=tm;Pe.HeaderCell=em;Pe.Cell=nm;u.createContext(null);function $o(...o){return o.filter(Boolean).join(" ")}function rm({open:o,onClose:d,children:i}){return u.useEffect(()=>{if(!o)return;function p(m){m.key==="Escape"&&d()}return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[o,d]),o?r.jsx("div",{"data-testid":"dialog-scrim",className:"fixed inset-0 z-50 bg-[rgba(4,5,8,0.72)] flex items-center justify-center",onClick:d,children:r.jsx("div",{role:"dialog","aria-modal":"true",className:"bg-ink-850 border border-edge rounded-card shadow-plate w-full max-w-md p-5",onClick:p=>p.stopPropagation(),children:i})}):null}function sm({className:o,children:d,...i}){return r.jsx("div",{className:$o("font-sans text-[15px] font-semibold text-bone mb-3",o),...i,children:d})}function lm({className:o,children:d,...i}){return r.jsx("div",{className:$o("font-sans text-[13px] text-bone",o),...i,children:d})}function am({className:o,children:d,...i}){return r.jsx("div",{className:$o("flex gap-2 justify-end mt-4",o),...i,children:d})}const Je=rm;Je.Title=sm;Je.Body=lm;Je.Footer=am;u.createContext(null);function om(...o){return o.filter(Boolean).join(" ")}function im(o,d){switch(o){case"go":return d==="solid"?"bg-go-500/15 text-go-500 border border-transparent":"border border-go-500/40 text-go-500";case"warn":return d==="solid"?"bg-warn-500/15 text-warn-500 border border-transparent":"border border-warn-500/40 text-warn-500";case"stop":return d==="solid"?"bg-stop-500/15 text-stop-500 border border-transparent":"border border-stop-500/40 text-stop-500";case"gold":return d==="solid"?"bg-gold-500/15 text-gold-500 border border-transparent":"border border-gold-500/40 text-gold-500";case"blue":return d==="solid"?"bg-blue-400/15 text-blue-400 border border-transparent":"border border-blue-400/40 text-blue-400";case"purple":return d==="solid"?"bg-purple-400/15 text-purple-400 border border-transparent":"border border-purple-400/40 text-purple-400";default:return d==="solid"?"bg-edge text-ash border border-transparent":"border border-edge text-ash-dim"}}const _o=bt.forwardRef(function({tone:d="default",variant:i="outline",className:p,children:m,...v},b){return r.jsx("span",{ref:b,className:om("inline-flex items-center font-mono text-[9px] font-bold uppercase tracking-[0.08em] rounded-sm px-1.5 py-0.5",im(d,i),p),...v,children:m})});function cm(o){if(!o.cell.exists)return"missing_keys";const d=o.issues.some(p=>p.type==="missing_keys"||p.type==="sops_error"),i=o.issues.some(p=>p.type==="schema_warning");return d?"missing_keys":i?"schema_warn":"ok"}function dm(o){if(!o)return"never";const i=new Date().getTime()-o.getTime(),p=Math.floor(i/(1e3*60*60));if(p<1)return"just now";if(p<24)return`${p}h ago`;const m=Math.floor(p/24);return m<7?`${m}d ago`:`${Math.floor(m/7)}w ago`}function um({namespaces:o,environments:d,matrixStatuses:i,onNamespaceClick:p,onSyncClick:m,syncingNs:v}){return r.jsxs(Pe,{"data-testid":"matrix-table",children:[r.jsx(Pe.Header,{children:r.jsxs("tr",{children:[r.jsx(Pe.HeaderCell,{className:"w-[180px]",children:"Namespace"}),d.map(b=>r.jsx(Pe.HeaderCell,{className:"border-l border-edge",children:r.jsxs("span",{className:"inline-flex items-center gap-2",children:[r.jsx(ot,{env:b.name}),r.jsx("span",{className:"font-sans text-[12px] font-medium text-bone normal-case tracking-normal",children:b.name})]})},b.name))]})}),r.jsx("tbody",{children:o.map(b=>{const S=i.filter(j=>j.cell.namespace===b.name).some(j=>j.issues.some(_=>_.type==="missing_keys"));return r.jsxs(Pe.Row,{"data-testid":`matrix-row-${b.name}`,role:"button",tabIndex:0,interactive:!!p,tone:S?"drift":void 0,onClick:()=>p?.(b.name),onKeyDown:j=>{j.key==="Enter"&&p?.(b.name)},children:[r.jsx(Pe.Cell,{className:"px-5 py-4",children:r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx(Xd,{size:11,strokeWidth:1.75,className:"text-ash-deep","aria-hidden":"true"}),r.jsx("span",{className:"flex-1 font-mono text-[13px] font-semibold text-bone",children:b.name}),S&&v!==b.name&&m&&r.jsx("button",{"data-testid":`sync-btn-${b.name}`,onClick:j=>{j.stopPropagation(),m(b.name)},className:"rounded border border-gold-500/30 bg-gold-500/10 px-2 py-0.5 font-sans text-[10px] font-semibold text-gold-500 cursor-pointer hover:bg-gold-500/20",children:"Sync"})]})}),d.map(j=>{const _=i.find(q=>q.cell.namespace===b.name&&q.cell.environment===j.name),I=_?cm(_):"ok",$=_?.keyCount??0,B=_?.lastModified?dm(_.lastModified instanceof Date?_.lastModified:new Date(_.lastModified)):"never",O=_?new Set(_.issues.filter(q=>q.type==="missing_keys"&&q.key).map(q=>q.key)).size:0,z=_?_.issues.filter(q=>q.type==="schema_warning").length:0,L=_?.pendingCount??0;return r.jsx(Pe.Cell,{className:"border-l border-edge px-5 py-3.5",children:r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx(Bp,{status:I}),r.jsxs("span",{className:"font-mono text-[11px] text-ash",children:[$," keys"]}),O>0&&r.jsxs("span",{className:"rounded-sm border border-stop-500/20 bg-stop-500/10 px-1.5 py-px font-mono text-[10px] text-stop-500",children:["-",O," missing"]}),z>0&&r.jsxs("span",{className:"rounded-sm border border-warn-500/20 bg-warn-500/10 px-1.5 py-px font-mono text-[10px] text-warn-500",children:[z," warn"]}),L>0&&r.jsxs("span",{className:"rounded-sm border border-gold-500/20 bg-gold-500/10 px-1.5 py-px font-mono text-[10px] text-gold-500",children:[L," pending"]})]}),r.jsx("div",{className:"font-mono text-[10px] text-ash-deep",children:B})]})},j.name)})]},b.name)})})]})}function fm({namespace:o,onComplete:d,onCancel:i}){const[p,m]=u.useState("loading"),[v,b]=u.useState(null),[T,S]=u.useState(null),[j,_]=u.useState(null);u.useEffect(()=>{let $=!1;return(async()=>{try{const B=await ge("/api/sync/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({namespace:o})});if($)return;if(!B.ok){const z=await B.json();_(z.error||"Preview failed"),m("error");return}const O=await B.json();b(O),m("preview")}catch{$||(_("Failed to load sync preview"),m("error"))}})(),()=>{$=!0}},[o]);const I=async()=>{m("syncing");try{const $=await ge("/api/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({namespace:o})});if(!$.ok){const O=await $.json();_(O.error||"Sync failed"),m("error");return}const B=await $.json();S(B.result),m("done"),setTimeout(d,1500)}catch{_("Sync failed"),m("error")}};return r.jsxs("div",{"data-testid":"sync-panel",className:"my-2 rounded-lg border border-edge bg-ink-850 px-5 py-4",children:[p==="loading"&&r.jsx("div",{className:"font-sans text-[13px] text-ash",children:"Loading sync preview..."}),p==="preview"&&v&&r.jsx(r.Fragment,{children:v.totalKeys===0?r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx("span",{"data-testid":"sync-in-sync",className:"font-sans text-[13px] text-go-500",children:"All environments in sync"}),r.jsx(Z,{onClick:i,children:"Close"})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"mb-2.5 font-sans text-[13px] font-semibold text-bone",children:["Sync ",o," — ",v.totalKeys," key",v.totalKeys!==1?"s":""," to scaffold"]}),v.hasProtectedEnvs&&r.jsx("div",{className:"mb-2.5 rounded border border-warn-500/20 bg-warn-500/10 px-3 py-1.5 font-sans text-[12px] text-warn-500",children:"Includes protected environment(s)"}),r.jsx("div",{"data-testid":"sync-preview-list",className:"mb-3",children:v.cells.map($=>r.jsxs("div",{className:"flex items-center gap-2 py-1",children:[r.jsx(ot,{env:$.environment}),r.jsx("span",{className:"font-mono text-[12px] text-ash",children:$.missingKeys.join(", ")})]},`${$.namespace}/${$.environment}`))}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Z,{variant:"primary","data-testid":"sync-execute-btn",onClick:I,children:"Sync Now"}),r.jsx(Z,{"data-testid":"sync-cancel-btn",onClick:i,children:"Cancel"})]})]})}),p==="syncing"&&r.jsx("div",{className:"font-sans text-[13px] text-gold-500",children:"Syncing..."}),p==="done"&&T&&r.jsxs("div",{"data-testid":"sync-done",className:"font-sans text-[13px] text-go-500",children:["Synced ",T.totalKeysScaffolded," key",T.totalKeysScaffolded!==1?"s":""," ","across ",T.modifiedCells.length," environment",T.modifiedCells.length!==1?"s":""]}),p==="error"&&r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx("span",{className:"font-sans text-[13px] text-stop-500",children:j}),r.jsx(Z,{onClick:i,children:"Close"})]})]})}function pm({setView:o,setNs:d,setEnv:i,manifest:p,matrixStatuses:m,reloadMatrix:v}){const[b,T]=u.useState(null);if(!p)return r.jsxs("div",{className:"flex flex-1 flex-col",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Secret Matrix"}),r.jsx(G.Subtitle,{children:"Loading..."})]})}),r.jsx("div",{className:"flex-1 p-7",children:r.jsx("p",{className:"font-sans text-[13px] text-ash",children:"Loading manifest..."})})]});const S=p.environments,j=p.namespaces,_=m.length===0&&j.length>0,I=m.filter(L=>L.cell.exists&&L.issues.length===0).length,$=m.filter(L=>!L.cell.exists||L.issues.some(q=>q.type==="missing_keys")).length,B=m.filter(L=>L.issues.some(q=>q.type==="schema_warning")).length,O=m.reduce((L,q)=>L+(q.pendingCount??0),0),z=j.length*S.length;return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Secret Matrix"}),r.jsx(G.Subtitle,{children:`${j.length} namespaces · ${S.length} environments · ${z} files`})]}),r.jsxs(G.Actions,{children:[r.jsx(Z,{onClick:()=>o("lint"),children:"Lint All"}),r.jsx(Z,{onClick:()=>o("manifest"),"data-testid":"matrix-add-environment-btn",children:"+ Environment"}),r.jsx(Z,{variant:"primary",onClick:()=>o("manifest"),"data-testid":"matrix-add-namespace-btn",children:"+ Namespace"})]})]}),r.jsxs("div",{className:"relative flex-1 overflow-auto p-7",children:[_&&r.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-ink-950/85 rounded-lg",children:r.jsxs("div",{className:"rounded-card border border-edge bg-ink-850 px-9 py-6 text-center",children:[r.jsx("div",{className:"mb-2 text-[20px] text-gold-500",children:"♪"}),r.jsx("div",{className:"font-sans text-[13px] text-ash",children:"Loading..."})]})}),r.jsx(mm,{healthy:I,missing:$,warn:B,pending:O}),r.jsx(um,{namespaces:j,environments:S,matrixStatuses:m,onNamespaceClick:(L,q)=>{d(L),q&&i?.(q),o("editor")},onSyncClick:L=>T(L),syncingNs:b}),b&&r.jsx(fm,{namespace:b,onComplete:()=>{T(null),v?.()},onCancel:()=>T(null)}),r.jsx("div",{className:"mt-5 flex gap-2.5",children:r.jsx(Z,{"data-testid":"diff-environments-btn",onClick:()=>o("diff"),children:"Diff environments"})})]})]})}const xl="rounded-pill border px-3.5 py-1 font-sans text-[12px] font-medium";function mm({healthy:o,missing:d,warn:i,pending:p}){return r.jsxs("div",{className:"mb-7 flex gap-2.5",children:[r.jsxs("span",{className:`${xl} text-go-500 bg-go-500/10 border-go-500/20`,children:[o," healthy"]}),r.jsxs("span",{className:`${xl} text-stop-500 bg-stop-500/10 border-stop-500/20`,children:[d," missing keys"]}),r.jsxs("span",{className:`${xl} text-warn-500 bg-warn-500/10 border-warn-500/20`,children:[i," schema warning",i!==1?"s":""]}),p>0&&r.jsxs("span",{className:`${xl} text-gold-500 bg-gold-500/10 border-gold-500/20`,children:[p," pending value",p!==1?"s":""]})]})}const xm={dev:"border-go-500",staging:"border-warn-500",production:"border-stop-500"},hm="flex-1 rounded border border-edge-strong bg-ink-800 px-2.5 py-1 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500",gm="shrink-0 basis-[240px] rounded border border-gold-500/40 bg-ink-800 px-2.5 py-1.5 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500",vm="flex-1 rounded border border-edge bg-ink-800 px-2.5 py-1.5 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500";function ym({ns:o,initialEnv:d,manifest:i}){const[p,m]=u.useState(d??""),[v,b]=u.useState([]),[T,S]=u.useState(!1),[j,_]=u.useState("value"),[I,$]=u.useState(""),[B,O]=u.useState(""),[z,L]=u.useState(null),[q,le]=u.useState(null),[ue,N]=u.useState(null),[M,ne]=u.useState(!1),[Y,oe]=u.useState(null),[Ee,ae]=u.useState(!1),[V,ie]=u.useState(""),[y,J]=u.useState([]),[X,ce]=u.useState(null),k=u.useRef(),R=300*1e3;u.useEffect(()=>()=>clearTimeout(k.current),[]);const ee=i?.environments??[],Q=ee.find(A=>A.name===p)?.protected===!0;u.useEffect(()=>{ee.length>0&&!p&&m(ee[0].name)},[ee,p]);const g=u.useCallback(async()=>{if(!(!p||!o)){ne(!0),oe(null);try{const A=await ge(`/api/namespace/${o}/${p}`);if(!A.ok){const pt=await A.json();oe(pt.error||"Failed to load"),b([]);return}const be=await A.json(),je=new Set(be.pending??[]),Te=Object.entries(be.values).map(([pt,wn])=>({key:pt,value:String(wn),type:"string",required:!1,visible:!1,edited:!1,isNew:!1,pending:je.has(pt)}));b(Te);const Ke=be.metadata?.backend??"age",qe=be.metadata?.recipients?.length??0;ie(`encrypted with ${Ke} · ${qe} recipient${qe!==1?"s":""}`)}catch{oe("Failed to load namespace data"),b([])}finally{ne(!1)}}},[o,p]);u.useEffect(()=>{g()},[g]),u.useEffect(()=>{o&&ge(`/api/lint/${o}`).then(A=>A.ok?A.json():{issues:[]}).then(A=>J(A.issues??[])).catch(()=>J([]))},[o]);const P=A=>{b(be=>be.map(je=>je.key===A?{...je,visible:!je.visible}:je)),clearTimeout(k.current),k.current=setTimeout(()=>{b(be=>be.map(je=>({...je,value:"",visible:!1})))},R)},we=(A,be)=>{b(je=>je.map(Te=>Te.key===A?{...Te,value:be,edited:!0}:Te))},ke=async A=>{const be=v.filter(je=>je.edited);if(be.length!==0){ae(!0),oe(null);try{let je=null;for(const Te of be){const Ke={value:Te.value};A&&(Ke.confirmed=!0);const qe=await ge(`/api/namespace/${o}/${p}/${Te.key}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ke)});if(!qe.ok){je=(await qe.json().catch(()=>({}))).error||`Failed to save ${Te.key}`;break}}await g(),je&&oe(je)}catch{await g(),oe("Failed to save changes")}finally{ae(!1)}}},K=async A=>{if(!I.trim())return;const be=I.trim(),je=j==="random"?{random:!0}:{value:B};A&&(je.confirmed=!0);try{const Te=await ge(`/api/namespace/${o}/${p}/${be}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(je)});if(!Te.ok){const qe=await Te.json();oe(qe.error||"Failed to add key");return}const Ke=await Te.json();Ke.warning&&oe(Ke.warning),b(qe=>[...qe,{key:be,value:j==="random"?"":B,type:"string",required:!1,visible:!1,edited:!1,isNew:!0,pending:j==="random"}])}catch{oe("Failed to add key")}finally{S(!1),_("value"),$(""),O("")}},Se=async A=>{try{const be=await ge(`/api/namespace/${o}/${p}/${A}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({random:!0,...Q&&{confirmed:!0}})});if(!be.ok){const je=await be.json();oe(je.error||"Failed to reset key");return}b(je=>je.map(Te=>Te.key===A?{...Te,pending:!0,value:"",edited:!1}:Te))}catch{oe("Failed to reset key")}finally{le(null),L(null)}},te=async A=>{try{const be=await ge(`/api/namespace/${o}/${p}/${A}/accept`,{method:"POST"});if(!be.ok){const Te=await be.json();oe(Te.error||"Failed to accept value");return}const je=await be.json();b(Te=>Te.map(Ke=>Ke.key===A?{...Ke,pending:!1,value:je.value??Ke.value}:Ke))}catch{oe("Failed to accept value")}},xe=async A=>{try{const be=await ge(`/api/namespace/${o}/${p}/${A}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q?{confirmed:!0}:{})});if(!be.ok){const je=await be.json();oe(je.error||"Failed to delete key");return}b(je=>je.filter(Te=>Te.key!==A))}catch{oe("Failed to delete key")}finally{N(null)}},Ce=v.some(A=>A.edited);return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:`/${o}`}),r.jsxs(G.Subtitle,{children:["Namespace · ",v.length," keys"]})]}),r.jsxs(G.Actions,{children:[Ce&&r.jsx(Z,{variant:"primary",disabled:Ee,onClick:()=>{Q?ce("save"):ke()},children:Ee?"Saving...":"Save"}),r.jsx(Z,{variant:"primary","data-testid":"add-key-btn",onClick:()=>S(!0),children:"+ Add key"})]})]}),r.jsxs("div",{className:"flex border-b border-edge bg-ink-800 px-6",children:[ee.map(A=>{const be=p===A.name,je=xm[A.name]??"border-ash",Te=be?je:"border-transparent";return r.jsxs("div",{role:"tab",tabIndex:0,onClick:()=>m(A.name),onKeyDown:Ke=>{Ke.key==="Enter"&&m(A.name)},className:`-mb-px flex cursor-pointer items-center gap-1.5 border-b-2 px-4 py-2.5 ${Te}`,children:[r.jsx(ot,{env:A.name,small:!0}),r.jsx("span",{className:`font-sans text-[13px] ${be?"font-semibold text-bone":"font-normal text-ash"}`,children:A.name})]},A.name)}),r.jsx("div",{className:"flex-1"}),r.jsx("div",{className:"flex items-center py-2.5",children:r.jsx("span",{className:"font-mono text-[10px] text-ash",children:V})})]}),r.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[Q&&r.jsxs("div",{"data-testid":"production-warning",className:"mb-5 flex items-center gap-2.5 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-2.5",children:[r.jsx("span",{className:"text-[14px]",children:"🔒"}),r.jsxs("span",{className:"font-sans text-[12px] text-stop-500",children:[r.jsx("strong",{children:"Production environment."})," Changes will require confirmation before committing."]})]}),M&&r.jsx("p",{className:"font-sans text-ash",children:"Loading..."}),Y&&r.jsx("div",{className:"mb-5 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3 font-sans text-[12px] text-stop-500",children:Y}),!M&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"rounded-card border border-edge bg-ink-850",children:[r.jsx("div",{className:"grid grid-cols-[260px_1fr_90px_36px] items-center rounded-t-card border-b border-edge bg-ink-800 px-5 py-2.5",children:["Key","Value","Type",""].map(A=>r.jsx("span",{className:"font-sans text-[11px] font-semibold uppercase tracking-[0.07em] text-ash",children:A},A||"actions"))}),v.map((A,be)=>{const je=A.pending?"bg-gold-500/[0.07]":A.edited?"bg-gold-500/[0.03]":"bg-transparent",Te=A.pending?"border-l-[3px] border-gold-500/55":A.edited?"border-l-2 border-gold-500":"border-l-2 border-transparent",Ke=be<v.length-1?"border-b border-edge":"border-b-0";return r.jsxs("div",{className:`grid min-h-[48px] grid-cols-[260px_1fr_90px_36px] items-center px-5 ${je} ${Te} ${Ke}`,children:[r.jsxs("div",{className:"flex items-center gap-2 pr-4",children:[A.required&&r.jsx("span",{className:"text-[14px] leading-none text-gold-500",children:"*"}),r.jsx("span",{className:"font-mono text-[12px] text-bone",children:A.key}),A.edited&&r.jsx("span",{"data-testid":"dirty-dot",className:"inline-block h-1.5 w-1.5 shrink-0 rounded-full bg-gold-500"})]}),r.jsxs("div",{className:"flex items-center gap-2 pr-4",children:[A.pending&&!A.visible?r.jsxs("span",{className:"font-mono text-[11px] italic text-gold-500",children:["PENDING ","—"," not yet set"]}):A.visible?r.jsx("input",{type:"text","data-testid":`value-input-${A.key}`,value:A.value,onChange:qe=>we(A.key,qe.target.value),autoComplete:"off",placeholder:A.pending?"Enter real value...":void 0,className:hm}):r.jsx("span",{className:"font-mono text-[13px] tracking-[0.15em] text-ash",children:"••••••••••••••••••••••••"}),A.pending&&!A.visible?r.jsxs("div",{className:"flex gap-1.5",children:[r.jsx("button",{"data-testid":`set-value-${A.key}`,onClick:()=>P(A.key),className:"cursor-pointer rounded border border-gold-500/40 bg-gold-500/10 px-2.5 py-0.5 font-sans text-[11px] font-semibold text-gold-500 hover:bg-gold-500/20",children:"Set value"}),r.jsx("button",{"data-testid":`accept-value-${A.key}`,onClick:()=>te(A.key),title:"Accept the random value as the final secret",className:"cursor-pointer rounded border border-go-500/40 bg-go-500/10 px-2.5 py-0.5 font-sans text-[11px] font-semibold text-go-500 hover:bg-go-500/20",children:"Accept random"})]}):r.jsx("button",{"data-testid":`eye-${A.key}`,onClick:()=>P(A.key),"aria-label":A.visible?"Hide value":"Reveal value",className:`flex cursor-pointer items-center bg-transparent p-1 text-[13px] ${A.visible?"text-gold-500":"text-ash-dim"}`,children:"👁"})]}),r.jsx("div",{children:A.pending?r.jsx("span",{className:"rounded-sm border border-gold-500/20 bg-gold-500/10 px-1.5 py-0.5 font-mono text-[10px] font-bold text-gold-500",children:"PENDING"}):r.jsx("span",{className:"rounded-sm border border-blue-400/20 bg-blue-400/10 px-1.5 py-0.5 font-mono text-[10px] text-blue-400",children:A.type})}),r.jsxs("div",{className:"relative flex justify-center",children:[r.jsx("button",{"data-testid":`overflow-${A.key}`,onClick:()=>L(z===A.key?null:A.key),className:"cursor-pointer bg-transparent p-1 text-[16px] text-ash-dim",children:"⋯"}),z===A.key&&r.jsxs("div",{"data-testid":`overflow-menu-${A.key}`,className:"absolute right-0 top-full z-10 min-w-[200px] rounded-md border border-edge bg-ink-850 p-1 shadow-soft-drop",children:[r.jsx("button",{"data-testid":`reset-random-${A.key}`,onClick:()=>{L(null),le(A.key)},title:"Use this to immediately invalidate a compromised secret while you arrange a replacement.",className:"block w-full cursor-pointer rounded bg-transparent px-2.5 py-1.5 text-left font-sans text-[12px] text-gold-500 hover:bg-ink-800",children:"Reset to random (pending)"}),r.jsx("button",{"data-testid":`delete-key-${A.key}`,onClick:()=>{L(null),N(A.key)},className:"block w-full cursor-pointer rounded bg-transparent px-2.5 py-1.5 text-left font-sans text-[12px] text-stop-500 hover:bg-ink-800",children:"Delete key"})]})]})]},A.key)}),T&&r.jsxs("div",{className:"flex flex-col gap-2.5 border-t border-edge px-5 py-3",children:[r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx("input",{"data-testid":"new-key-input",placeholder:"KEY_NAME",value:I,onChange:A=>$(A.target.value),className:gm}),r.jsxs("div",{role:"radiogroup",className:"flex overflow-hidden rounded-md border border-edge",children:[r.jsx("button",{"data-testid":"mode-set-value",role:"radio","aria-checked":j==="value",onClick:()=>{_("value"),O("")},className:`cursor-pointer border-r border-edge px-3.5 py-1 font-sans text-[11px] font-semibold ${j==="value"?"bg-gold-500/15 text-gold-500":"bg-transparent text-ash"}`,children:"Set value"}),r.jsx("button",{"data-testid":"mode-random",role:"radio","aria-checked":j==="random",onClick:()=>{_("random"),O("")},className:`cursor-pointer px-3.5 py-1 font-sans text-[11px] font-semibold ${j==="random"?"bg-gold-500/15 text-gold-500":"bg-transparent text-ash"}`,children:"Random (pending)"})]})]}),r.jsxs("div",{className:"flex items-center gap-2.5",children:[j==="value"?r.jsx("input",{"data-testid":"new-value-input",type:"password",placeholder:"value",value:B,onChange:A=>O(A.target.value),autoComplete:"off",className:vm}):r.jsx("div",{className:"flex-1 px-2.5 py-1.5 font-mono text-[11px] italic text-gold-500",children:"A cryptographically random placeholder will be generated server-side."}),r.jsx(Z,{variant:"primary","data-testid":"add-key-submit",onClick:()=>{Q?ce("add"):K()},children:j==="random"?"Generate random value":"Add"}),r.jsx(Z,{onClick:()=>{S(!1),_("value"),$(""),O("")},children:"Cancel"})]})]})]}),q&&r.jsxs("div",{"data-testid":"confirm-reset-dialog",className:"mt-4 rounded-lg border border-gold-500/30 bg-gold-500/[0.04] px-4 py-3.5 font-sans text-[12px]",children:[r.jsxs("p",{className:"m-0 mb-2.5 text-bone",children:["Reset ",r.jsx("strong",{className:"font-mono",children:q})," to a random placeholder? The current value will be overwritten."]}),Q&&r.jsxs("p",{className:"m-0 mb-2.5 text-[12px] font-semibold text-stop-500",children:["🔒"," This is a protected environment."]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Z,{variant:"primary","data-testid":"confirm-reset-yes",onClick:()=>Se(q),children:"Reset to random"}),r.jsx(Z,{"data-testid":"confirm-reset-no",onClick:()=>le(null),children:"Cancel"})]})]}),ue&&r.jsxs("div",{"data-testid":"confirm-delete-dialog",className:"mt-4 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3.5 font-sans text-[12px]",children:[r.jsxs("p",{className:"m-0 mb-2.5 text-bone",children:["Permanently delete ",r.jsx("strong",{className:"font-mono",children:ue})," from"," ",r.jsx("strong",{children:p}),"? This cannot be undone."]}),Q&&r.jsxs("p",{className:"m-0 mb-2.5 text-[12px] font-semibold text-stop-500",children:["🔒"," This is a protected environment."]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Z,{variant:"danger","data-testid":"confirm-delete-yes",onClick:()=>xe(ue),children:"Delete"}),r.jsx(Z,{"data-testid":"confirm-delete-no",onClick:()=>N(null),children:"Cancel"})]})]}),X&&r.jsxs("div",{"data-testid":"confirm-protected-dialog",className:"mt-4 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3.5 font-sans text-[12px]",children:[r.jsxs("p",{className:"m-0 mb-2.5 text-bone",children:["🔒"," ",r.jsx("strong",{className:"text-stop-500",children:"Protected environment."})," You are about to ",X==="save"?"commit changes to":"add a key to"," ",r.jsx("strong",{children:p}),". Are you sure?"]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Z,{variant:"primary","data-testid":"confirm-protected-yes",onClick:async()=>{const A=X;ce(null),A==="save"?await ke(!0):await K(!0)},children:"Confirm"}),r.jsx(Z,{"data-testid":"confirm-protected-no",onClick:()=>ce(null),children:"Cancel"})]})]}),r.jsxs("div",{className:"mt-6",children:[r.jsxs("div",{className:"mb-2.5 font-sans text-[11px] font-semibold uppercase tracking-[0.08em] text-ash",children:["Schema · schemas/",o,".yaml"]}),r.jsx("div",{"data-testid":"schema-summary",className:"rounded-lg border border-edge bg-ink-850 px-4 py-3 font-mono text-[11px] leading-relaxed text-ash",children:(()=>{const A=y.filter(je=>je.severity==="error"),be=y.filter(je=>je.severity==="warning");return A.length===0&&be.length===0?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"text-go-500",children:"✓"})," All required keys present · ",r.jsx("span",{className:"text-go-500",children:"✓"})," All types valid · ",r.jsx("span",{className:"text-ash-dim",children:"0 warnings"})]}):r.jsxs(r.Fragment,{children:[A.length>0&&r.jsxs("span",{className:"text-stop-500",children:[A.length," error",A.length!==1?"s":""]}),A.length>0&&be.length>0&&r.jsx("span",{children:" · "}),be.length>0&&r.jsxs("span",{className:"text-warn-500",children:[be.length," warning",be.length!==1?"s":""]})]})})()})]})]})]})]})}const jm=["string","integer","boolean"],Td="rounded border border-edge bg-ink-950 px-2 py-1 font-sans text-[12px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim disabled:text-ash",Rd="rounded border border-edge bg-ink-950 px-2 py-1 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim disabled:text-ash";function km({ns:o,manifest:d}){const[i,p]=u.useState([]),[m,v]=u.useState(!1),[b,T]=u.useState(null),[S,j]=u.useState(""),[_,I]=u.useState({}),[$,B]=u.useState(!1),[O,z]=u.useState(!1),[L,q]=u.useState(null),[le,ue]=u.useState(null),[N,M]=u.useState(null),ne=u.useRef(!1),Y=d?.environments??[];u.useEffect(()=>{if(!S&&Y.length>0){const X=Y.find(ce=>!ce.protected)??Y[0];j(X.name)}},[Y,S]);const oe=u.useCallback(async()=>{if(o){ne.current=!1,B(!0),q(null);try{const X=await ge(`/api/namespaces/${o}/schema`),ce=await X.json();if(!X.ok){q(ce.error||"Failed to load schema"),ne.current||p([]);return}const k=ce;v(k.attached),T(k.path),ne.current||p($d(k.schema))}catch{q("Failed to load schema")}finally{B(!1)}}},[o]),Ee=u.useCallback(async()=>{if(!(!o||!S))try{const X=await ge(`/api/namespace/${o}/${S}`);if(!X.ok){I({});return}const ce=await X.json();I(ce.values??{})}catch{I({})}},[o,S]);u.useEffect(()=>{oe()},[oe]),u.useEffect(()=>{Ee()},[Ee]);const ae=async()=>{z(!0),q(null),ue(null);try{const X=Cm(i),ce=await ge(`/api/namespaces/${o}/schema`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({schema:X})}),k=await ce.json();if(!ce.ok){q(k.error||"Failed to save schema");return}const R=k;v(R.attached),T(R.path),M(R.path),ue(new Date().toLocaleTimeString()),p($d(R.schema))}catch(X){q(X instanceof Error?X.message:"Failed to save schema")}finally{z(!1)}},V=()=>{ne.current=!0,p(X=>[...X,{originalName:null,name:"",type:"string",required:!0,pattern:"",description:""}])},ie=X=>{ne.current=!0,p(ce=>ce.filter((k,R)=>R!==X))},y=(X,ce)=>{ne.current=!0,p(k=>k.map((R,ee)=>ee===X?{...R,...ce}:R))},J=u.useMemo(()=>Em(i),[i]);return r.jsxs("div",{className:"flex h-full flex-col",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:`Schema · ${o||"(no namespace selected)"}`}),r.jsx(G.Subtitle,{children:m&&b?b:o?`no schema attached yet — saving will create one at schemas/${o}.yaml`:""})]}),r.jsxs(G.Actions,{children:[r.jsx(Z,{onClick:V,disabled:!o||$,children:"+ Add key"}),r.jsx(Z,{variant:"primary",onClick:ae,disabled:!o||O||!J.ok,children:O?"Saving…":"Save"})]})]}),r.jsxs("div",{className:"flex-1 overflow-auto px-6 py-4 font-sans text-bone",children:[L&&r.jsx("div",{className:"mb-3 rounded-md border border-stop-500/30 bg-stop-500/10 px-3 py-2 text-[12px] text-stop-500",children:L}),le&&N&&!L&&r.jsxs("div",{className:"mb-3 rounded-md border border-edge bg-ink-850 px-3 py-2 text-[12px] text-ash",children:["Saved at ",le," · ",N]}),$&&r.jsx("div",{className:"text-[12px] text-ash",children:"Loading…"}),!$&&i.length===0&&r.jsx(kn,{title:"No keys declared yet",body:"Click + Add key to start building the schema."}),!$&&i.length>0&&r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx(bm,{environments:Y.map(X=>X.name),value:S,onChange:j}),i.map((X,ce)=>r.jsx(wm,{row:X,error:J.rowErrors[ce],sampleValue:X.name?_[X.name]:void 0,onChange:k=>y(ce,k),onRemove:()=>ie(ce)},`${X.originalName??"new"}-${ce}`))]})]})]})}function bm(o){return o.environments.length===0?null:r.jsxs("div",{className:"mb-1 flex items-center gap-2 text-[11px] text-ash",children:[r.jsx("span",{children:"Pattern preview against:"}),r.jsx("select",{value:o.value,onChange:d=>o.onChange(d.target.value),className:"rounded border border-edge bg-ink-850 px-1.5 py-0.5 font-mono text-[11px] text-bone",children:o.environments.map(d=>r.jsx("option",{value:d,children:d},d))})]})}function wm(o){const{row:d,error:i,sampleValue:p,onChange:m,onRemove:v}=o,b=Sm(d.pattern,p),[T,S]=u.useState(!1);u.useEffect(()=>{if(!d.pattern||d.type!=="string")return;S(!0);const _=setTimeout(()=>S(!1),180);return()=>clearTimeout(_)},[d.pattern,p,d.type]);const j=T?"text-ash":b==="match"?"text-go-500":b==="miss"?"text-stop-500":"text-ash";return r.jsxs("div",{className:`grid grid-cols-[minmax(140px,1fr)_110px_auto_1fr_auto] items-center gap-x-2 gap-y-2 rounded-md border bg-ink-850 p-3 ${i?"border-stop-500":"border-edge"}`,children:[r.jsx("input",{placeholder:"KEY_NAME",value:d.name,onChange:_=>m({name:_.target.value}),className:Rd}),r.jsx("select",{value:d.type,onChange:_=>m({type:_.target.value}),className:Td,children:jm.map(_=>r.jsx("option",{value:_,children:_},_))}),r.jsxs("label",{className:"flex items-center gap-1.5 text-[11px] text-bone",children:[r.jsx("input",{type:"checkbox",checked:d.required,onChange:_=>m({required:_.target.checked}),className:"accent-gold-500"}),"required"]}),r.jsx("input",{placeholder:d.type==="string"?"pattern: ^regex$ (optional)":"— (strings only)",value:d.pattern,disabled:d.type!=="string",onChange:_=>m({pattern:_.target.value}),className:`${Rd} ${d.type!=="string"?"opacity-60":""}`}),r.jsx(Z,{variant:"danger",onClick:v,children:"Remove"}),r.jsx("input",{placeholder:"description (optional)",value:d.description,onChange:_=>m({description:_.target.value}),className:`${Td} col-span-5`}),i&&r.jsx("div",{className:"col-span-5 text-[11px] text-stop-500",children:i}),d.type==="string"&&d.pattern&&r.jsx("div",{className:`col-span-5 flex items-center gap-2 font-mono text-[11px] ${j}`,children:T?r.jsxs(r.Fragment,{children:[r.jsx(Nm,{}),r.jsx("span",{children:"testing…"})]}):p===void 0?r.jsx("span",{children:"No sample value in the selected env."}):b==="invalid"?r.jsx("span",{children:"Invalid regex."}):b==="match"?r.jsx("span",{"data-testid":"pattern-result",children:"✔ matches sample value"}):r.jsx("span",{"data-testid":"pattern-result",children:"✖ did not match"})})]})}function Nm(){return r.jsx("span",{"aria-hidden":"true",className:"inline-block h-2.5 w-2.5 rounded-full border-[1.5px] border-edge border-t-bone animate-[clef-schema-spin_0.6s_linear_infinite]"})}function Sm(o,d){if(!o||d===void 0)return"no-sample";let i;try{i=new RegExp(o)}catch{return"invalid"}return i.test(d)?"match":"miss"}function $d(o){return Object.entries(o.keys).map(([d,i])=>({originalName:d,name:d,type:i.type,required:i.required,pattern:i.pattern??"",description:i.description??""}))}function Cm(o){const d={};for(const i of o)i.name&&(d[i.name]={type:i.type,required:i.required,...i.pattern&&i.type==="string"?{pattern:i.pattern}:{},...i.description?{description:i.description}:{}});return{keys:d}}function Em(o){const d={},i=new Map;return o.forEach((p,m)=>{if(!p.name.trim()){d[m]="Key name is required.";return}if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(p.name)){d[m]="Key name must start with a letter or underscore and contain only letters, digits, and underscores.";return}const v=i.get(p.name);if(v!==void 0){d[m]=`Duplicate key name (also row ${v+1}).`;return}if(i.set(p.name,m),p.type==="string"&&p.pattern)try{new RegExp(p.pattern)}catch(b){d[m]=`Pattern is not a valid regex: ${b.message}.`}}),{ok:Object.keys(d).length===0,rowErrors:d}}function bn({text:o}){const[d,i]=u.useState(!1),p=u.useCallback(()=>{navigator.clipboard?.writeText(o),i(!0),setTimeout(()=>i(!1),1800)},[o]);return r.jsx("button",{"data-testid":"copy-button",onClick:p,className:`cursor-pointer rounded-sm border px-2 py-0.5 font-mono text-[10px] transition-colors ${d?"border-go-500/40 bg-go-500/10 text-go-500":"border-edge-strong bg-transparent text-ash-dim hover:bg-ink-800"}`,children:d?"copied!":"copy"})}function Pd(o,d){return o.length>d?o.slice(0,d)+"…":o}const bo="rounded-md border border-edge bg-ink-850 px-2.5 py-1 font-mono text-[12px] text-bone cursor-pointer focus:outline-none focus:border-edge-strong";function _m({manifest:o}){const d=o?.environments??[],i=o?.namespaces??[],[p,m]=u.useState(i[0]?.name??""),[v,b]=u.useState(d[0]?.name??""),[T,S]=u.useState(d[d.length-1]?.name??""),[j,_]=u.useState(!1),[I,$]=u.useState(!1),[B,O]=u.useState(null),[z,L]=u.useState(!1),[q,le]=u.useState(!1);u.useEffect(()=>{i.length>0&&!p&&m(i[0].name),d.length>0&&!v&&b(d[0].name),d.length>1&&!T&&S(d[d.length-1].name)},[i,d,p,v,T]);const ue=u.useCallback(async()=>{if(!(!p||!v||!T||v===T)){L(!0);try{const J=await ge(`/api/diff/${p}/${v}/${T}${I?"?showValues=true":""}`);J.ok?O(await J.json()):O(null)}catch{O(null)}finally{L(!1)}}},[p,v,T,I]);u.useEffect(()=>{ue()},[ue]);const N=B?.rows??[],M=N.filter(y=>j||y.status!=="identical"),ne=N.filter(y=>y.status==="changed").length,Y=N.filter(y=>y.status==="missing_a").length,oe=N.filter(y=>y.status==="missing_b").length,Ee=N.filter(y=>y.status==="identical").length,ae=N.filter(y=>y.status==="missing_a"||y.status==="missing_b"),V={changed:{label:"Changed",text:"text-warn-500",bg:"bg-warn-500/10",border:"border-warn-500/30"},identical:{label:"Identical",text:"text-ash",bg:"bg-ash/10",border:"border-ash/20"},missing_a:{label:`Missing in ${v}`,text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/30"},missing_b:{label:`Missing in ${T}`,text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/30"}},ie=[{label:`${ne} changed`,text:"text-warn-500",bg:"bg-warn-500/10",border:"border-warn-500/30"},...Y>0?[{label:`${Y} missing in ${v}`,text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/30"}]:[],...oe>0?[{label:`${oe} missing in ${T}`,text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/30"}]:[],{label:`${Ee} identical`,text:"text-ash",bg:"bg-ash/10",border:"border-ash/20"}];return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Environment Diff"}),r.jsx(G.Subtitle,{children:"Compare secrets across environments"})]}),r.jsx(G.Actions,{children:r.jsxs(Z,{variant:"primary","data-testid":"sync-missing-btn",onClick:()=>{le(!0),setTimeout(()=>le(!1),2e3)},children:["Sync missing keys ","→"]})})]}),q&&r.jsx("div",{"data-testid":"coming-soon-toast",className:"fixed right-5 top-5 z-[1000] rounded-md border border-gold-500/30 bg-ink-850 px-4 py-2.5 font-sans text-[12px] text-gold-500",children:"Coming soon"}),r.jsxs("div",{className:"flex flex-wrap items-center gap-3 border-b border-edge bg-ink-800 px-6 py-3.5",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"font-sans text-[12px] text-ash",children:"Namespace"}),r.jsx("select",{value:p,onChange:y=>m(y.target.value),className:bo,children:i.map(y=>r.jsx("option",{value:y.name,children:y.name},y.name))})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"font-sans text-[12px] text-ash",children:"Compare"}),r.jsx("select",{value:v,onChange:y=>b(y.target.value),className:bo,children:d.map(y=>r.jsx("option",{value:y.name,children:y.name},y.name))}),r.jsx("span",{className:"font-mono text-[12px] text-ash-dim",children:"→"}),r.jsx("select",{value:T,onChange:y=>S(y.target.value),className:bo,children:d.map(y=>r.jsx("option",{value:y.name,children:y.name},y.name))})]}),r.jsx("div",{className:"flex-1"}),r.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5",children:[r.jsx("input",{type:"checkbox",checked:I,onChange:y=>$(y.target.checked),"data-testid":"show-values-toggle",className:"accent-gold-500"}),r.jsx("span",{className:"font-sans text-[12px] text-ash",children:"Show values"})]}),r.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5",children:[r.jsx("input",{type:"checkbox",checked:j,onChange:y=>_(y.target.checked),className:"accent-gold-500"}),r.jsx("span",{className:"font-sans text-[12px] text-ash",children:"Show identical"})]})]}),r.jsx("div",{className:"flex gap-2.5 border-b border-edge px-6 py-2.5",children:ie.map(y=>r.jsx("span",{className:`rounded-pill border px-2.5 py-px font-mono text-[11px] ${y.text} ${y.bg} ${y.border}`,children:y.label},y.label))}),r.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[z&&r.jsx(kn,{title:"Loading...",body:"Computing diff between environments"}),!z&&r.jsxs(r.Fragment,{children:[r.jsxs(Pe,{"data-testid":"diff-table",children:[r.jsx(Pe.Header,{children:r.jsxs("tr",{children:[r.jsx(Pe.HeaderCell,{className:"w-[220px]",children:"Key"}),r.jsx(Pe.HeaderCell,{children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ot,{env:v,small:!0}),r.jsx("span",{children:v})]})}),r.jsx(Pe.HeaderCell,{children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ot,{env:T,small:!0}),r.jsx("span",{children:T})]})}),r.jsx(Pe.HeaderCell,{className:"w-[120px]",children:"Status"})]})}),r.jsx("tbody",{children:M.map(y=>{const J=y.status,X=V[J],ce=J==="changed",k=J==="missing_a"||J==="missing_b",R=ce?"bg-warn-500/[0.025]":k?"bg-stop-500/[0.025]":"";return r.jsxs(Pe.Row,{tone:k?"drift":void 0,className:R,children:[r.jsx(Pe.Cell,{className:"font-mono text-[12px] text-bone",children:y.key}),r.jsx(Pe.Cell,{children:y.valueA!==null?r.jsx("span",{className:`font-mono text-[11px] ${ce?"rounded-sm bg-warn-500/15 px-1.5 py-0.5 text-warn-500":"text-ash"}`,children:Pd(y.valueA,36)}):r.jsxs("span",{className:"font-mono text-[11px] italic text-ash-dim",children:["—"," not set ","—"]})}),r.jsx(Pe.Cell,{children:y.valueB!==null?r.jsx("span",{className:`font-mono text-[11px] ${ce?"rounded-sm bg-blue-400/15 px-1.5 py-0.5 text-blue-400":"text-ash"}`,children:Pd(y.valueB,36)}):r.jsxs("span",{className:"font-mono text-[11px] italic text-ash-dim",children:["—"," not set ","—"]})}),r.jsx(Pe.Cell,{children:r.jsx("span",{className:`inline-block rounded-sm border px-2 py-0.5 font-mono text-[10px] font-semibold ${X.text} ${X.bg} ${X.border}`,children:X.label})})]},y.key)})})]}),ae.length>0&&r.jsx("div",{"data-testid":"fix-hint",className:"mt-5 flex flex-col gap-2.5 rounded-md border border-edge bg-ink-850 px-[18px] py-3.5",children:ae.map(y=>{const J=y.status==="missing_a"?v:T,X=`clef set ${p}/${J} ${y.key}`;return r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("span",{className:"text-[16px]",children:"💡"}),r.jsxs("span",{className:"flex-1 font-sans text-[12px] text-ash",children:[r.jsx("strong",{className:"text-bone",children:y.key})," is missing in"," ",r.jsx(ot,{env:J,small:!0}),". Run"," ",r.jsx("code",{className:"rounded-sm bg-gold-500/15 px-1.5 py-px font-mono text-[11px] text-gold-500",children:X})," ","to add it."]}),r.jsx(bn,{text:X})]},y.key)})})]})]})]})}const Tm={error:{label:"Error",icon:"✕",text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/30",rowStripe:"border-l-[3px] border-l-stop-500/40"},warning:{label:"Warning",icon:"⚠",text:"text-warn-500",bg:"bg-warn-500/10",border:"border-warn-500/30",rowStripe:"border-l-[3px] border-l-warn-500/40"},info:{label:"Info",icon:"i",text:"text-blue-400",bg:"bg-blue-400/10",border:"border-blue-400/30",rowStripe:"border-l-[3px] border-l-blue-400/40"}},Ld={matrix:{label:"Matrix",tone:"gold"},schema:{label:"Schema",tone:"blue"},sops:{label:"SOPS",tone:"purple"}},Rm={all:{text:"text-ash",bgActive:"bg-ash/15",borderActive:"border-ash/30"},error:{text:"text-stop-500",bgActive:"bg-stop-500/15",borderActive:"border-stop-500/40"},warning:{text:"text-warn-500",bgActive:"bg-warn-500/15",borderActive:"border-warn-500/40"},info:{text:"text-blue-400",bgActive:"bg-blue-400/15",borderActive:"border-blue-400/40"}};function $m({setView:o,setNs:d}){const[i,p]=u.useState("all"),[m,v]=u.useState([]),[b,T]=u.useState(null),[S,j]=u.useState(!1),_=u.useCallback(async()=>{j(!0);try{const N=await ge("/api/lint");N.ok&&T(await N.json())}catch{}finally{j(!1)}},[]);u.useEffect(()=>{_()},[_]);const I=b?.issues??[],$=b?.fileCount??0,B=I.filter(N=>N.severity==="error"),O=I.filter(N=>N.severity==="warning"),z=I.filter(N=>N.severity==="info"),L=I.map((N,M)=>({...N,_idx:M})).filter(N=>!m.includes(N._idx)).filter(N=>i==="all"||N.severity===i||N.category===i),q=N=>{if(N.file){const M=N.file.split("/"),ne=M[M.length-2]??M[0];d(ne),o("editor")}},le=L.length===0,ue=[{key:"all",label:"All issues",count:I.length},{key:"error",label:"Errors",count:B.length},{key:"warning",label:"Warnings",count:O.length},{key:"info",label:"Info",count:z.length}];return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Lint"}),r.jsx(G.Subtitle,{children:"clef lint — full repo health check"})]}),r.jsxs(G.Actions,{children:[r.jsxs(Z,{onClick:_,children:[r.jsx(Zd,{size:12,className:"mr-1 inline-block align-[-2px]"}),"Re-run"]}),B.length===0&&r.jsx(Z,{variant:"primary",children:"All clear — commit"})]})]}),!S&&!le&&r.jsxs("div",{className:"flex flex-wrap items-center gap-2.5 border-b border-edge bg-ink-800 px-6 py-3.5",children:[ue.map(N=>{const M=Rm[N.key],ne=i===N.key,Y="flex items-center gap-1.5 rounded-pill border px-3 py-1 font-sans text-[12px] transition-colors",oe=ne?`${M.text} ${M.bgActive} ${M.borderActive} font-semibold`:"text-ash border-edge font-normal hover:border-edge-strong";return r.jsxs("button",{"data-testid":`filter-${N.key}`,onClick:()=>p(N.key),className:`${Y} ${oe}`,children:[r.jsx("span",{className:`font-mono text-[11px] font-bold ${M.text}`,children:N.count}),N.label]},N.key)}),r.jsx("div",{className:"flex-1"}),["matrix","schema","sops"].map(N=>{const M=Ld[N],ne=i===N;return r.jsx("button",{onClick:()=>p(ne?"all":N),className:`rounded-sm border px-2.5 py-1 font-mono text-[10px] font-semibold uppercase tracking-[0.06em] transition-colors ${ne?"bg-ink-800 border-edge-strong text-bone":"border-edge-strong text-ash-dim hover:text-ash"}`,children:r.jsx(_o,{tone:M.tone,variant:ne?"solid":"outline",children:M.label})},N)})]}),r.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[S&&r.jsxs(r.Fragment,{children:[r.jsx("style",{children:`
|
|
56
|
+
@keyframes clef-scan-line {
|
|
57
|
+
0% { transform: scaleX(0); opacity: 0; }
|
|
58
|
+
10% { opacity: 1; }
|
|
59
|
+
50% { transform: scaleX(1); opacity: 1; }
|
|
60
|
+
80% { transform: scaleX(1); opacity: 0.3; }
|
|
61
|
+
100% { transform: scaleX(0); opacity: 0; }
|
|
62
|
+
}
|
|
63
|
+
@keyframes clef-scan-glow {
|
|
64
|
+
0%, 100% { opacity: 0.4; }
|
|
65
|
+
50% { opacity: 1; }
|
|
66
|
+
}
|
|
67
|
+
.clef-scan-line { animation: clef-scan-line 1.8s ease-in-out infinite; transform-origin: left; opacity: 0; }
|
|
68
|
+
.clef-scan-line-0 { animation-delay: 0s; width: 120px; }
|
|
69
|
+
.clef-scan-line-1 { animation-delay: 0.3s; width: 90px; }
|
|
70
|
+
.clef-scan-line-2 { animation-delay: 0.6s; width: 105px; }
|
|
71
|
+
.clef-scan-glow { animation: clef-scan-glow 1.8s ease-in-out infinite; }
|
|
72
|
+
`}),r.jsx("div",{className:"flex items-center justify-center px-6 py-12",children:r.jsxs("div",{className:"min-w-[200px] rounded-card border border-edge bg-ink-850 px-10 py-7 text-center",children:[r.jsx("div",{className:"mb-4 flex flex-col gap-1.5",children:[0,1,2].map(N=>r.jsx("div",{className:`h-[3px] rounded-sm bg-gold-500 clef-scan-line clef-scan-line-${N}`},N))}),r.jsx("div",{className:"font-mono text-[11px] text-ash clef-scan-glow",children:"Linting..."})]})})]}),!S&&le&&r.jsx(kn,{"data-testid":"all-clear",icon:r.jsx("span",{className:"text-go-500",children:"✓"}),title:"All clear",body:`No issues found across ${$} files`}),!S&&!le&&["error","warning","info"].map(N=>{const M=L.filter(Y=>Y.severity===N);if(!M.length)return null;const ne=Tm[N];return r.jsxs("div",{className:"mb-6",children:[r.jsxs("div",{className:"mb-2.5 flex items-center gap-2.5",children:[r.jsx("div",{className:`flex h-[22px] w-[22px] items-center justify-center rounded-full border font-mono text-[11px] font-bold ${ne.bg} ${ne.border} ${ne.text}`,children:ne.icon}),r.jsxs("span",{className:`font-sans text-[13px] font-semibold ${ne.text}`,children:[ne.label,"s"]}),r.jsx("span",{className:`rounded-pill border px-2 py-px font-mono text-[10px] ${ne.bg} ${ne.border} ${ne.text}`,children:M.length})]}),r.jsx(Sl,{children:M.map((Y,oe)=>{const Ee=Y.category??"matrix",ae=Ld[Ee]??{label:Y.category,tone:"default"},V=Y.file?.split("/")??[],ie=V.length>=2?V[V.length-1]?.replace(".enc.yaml",""):void 0,y=oe===M.length-1;return r.jsxs("div",{className:`flex items-start gap-3.5 px-[18px] py-3.5 ${ne.rowStripe} ${y?"":"border-b border-edge"}`,children:[r.jsx("div",{className:"shrink-0 pt-0.5",children:r.jsx(_o,{tone:ae.tone,children:ae.label})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[r.jsx("span",{"data-testid":`file-ref-${Y.file}`,role:"link",tabIndex:0,onClick:()=>q(Y),onKeyDown:J=>{J.key==="Enter"&&q(Y)},className:`font-mono text-[12px] font-semibold text-gold-500 ${Y.file?"cursor-pointer underline decoration-gold-500/40 decoration-dotted":"cursor-default no-underline"}`,children:Y.file}),Y.key&&r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"font-mono text-[11px] text-ash-dim",children:"→"}),r.jsx("span",{className:"rounded-sm border border-edge-strong bg-ink-900 px-[7px] py-px font-mono text-[11px] text-bone",children:Y.key})]}),ie&&r.jsx(ot,{env:ie,small:!0})]}),r.jsx("div",{className:`font-sans text-[12px] text-ash ${Y.fixCommand?"mb-2.5":""}`,children:Y.message}),Y.fixCommand&&r.jsxs("div",{className:"flex w-fit items-center gap-2 rounded-md border border-edge-strong bg-ink-800 px-2.5 py-1.5",children:[r.jsx("span",{className:"font-mono text-[11px] text-go-500",children:"$"}),r.jsx("span",{className:"font-mono text-[11px] text-bone",children:Y.fixCommand}),r.jsx(bn,{text:Y.fixCommand})]})]}),r.jsx("button",{onClick:()=>v(J=>[...J,Y._idx]),title:"Dismiss","aria-label":"Dismiss issue",className:"shrink-0 cursor-pointer border-none bg-transparent px-1 text-[16px] leading-none text-ash-dim transition-colors hover:text-bone",children:"×"})]},Y._idx)})})]},N)}),!S&&!le&&r.jsxs("div",{className:"mt-2 flex items-center gap-3 rounded-md border border-edge bg-ink-850 px-4 py-3",children:[r.jsx("span",{className:"text-[14px]",children:"💡"}),r.jsxs("span",{className:"font-sans text-[12px] text-ash",children:["Fix all errors before committing. Warnings and info items won't block commits but should be reviewed. Run"," ",r.jsx("code",{className:"rounded-sm bg-gold-500/15 px-1.5 py-px font-mono text-[11px] text-gold-500",children:"clef lint --fix"})," ","to auto-resolve safe issues."]})]})]})]})}function Pm(){const[o,d]=u.useState("idle"),[i,p]=u.useState("all"),[m,v]=u.useState(null),[b,T]=u.useState(null),[S,j]=u.useState([]),[_,I]=u.useState("all");u.useEffect(()=>{ge("/api/scan/status").then(N=>N.ok?N.json():null).then(N=>{if(N?.lastRun){v(N.lastRun),T(N.lastRunAt);const M=N.lastRun.matches.length>0||N.lastRun.unencryptedMatrixFiles.length>0;d(M?"issues":"clean")}}).catch(()=>{})},[]);const $=u.useCallback(async()=>{d("scanning"),j([]);try{const N=await ge("/api/scan",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({severity:i})});if(!N.ok)throw new Error("Scan failed");const M=await N.json();v(M),T(new Date().toISOString());const ne=M.matches.length>0||M.unencryptedMatrixFiles.length>0;d(ne?"issues":"clean")}catch{d("idle")}},[i]),B=async N=>{try{await ge("/api/editor/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:N})})}catch{}},O=N=>{if(!N)return"";const M=Date.now()-new Date(N).getTime();return M<6e4?"just now":`${Math.floor(M/6e4)}m ago`},z=(m?.matches??[]).map((N,M)=>({...N,_idx:M})).filter(N=>!S.includes(N._idx)).filter(N=>_==="pattern"?N.matchType==="pattern":_==="entropy"?N.matchType==="entropy":!0),L=S.length,q=(m?.matches.length??0)+(m?.unencryptedMatrixFiles.length??0),le=m?(m.durationMs/1e3).toFixed(1):"0.0",ue=[{key:"all",label:"All"},{key:"unencrypted",label:"Unencrypted"},{key:"pattern",label:"Pattern"},{key:"entropy",label:"Entropy"}];return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Scan"}),r.jsx(G.Subtitle,{children:"clef scan — detect plaintext secrets"})]}),(o==="issues"||o==="clean")&&r.jsx(G.Actions,{children:r.jsx(Z,{onClick:$,children:"↺ Scan again"})})]}),r.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[o==="idle"&&r.jsxs("div",{"data-testid":"scan-idle",className:"mx-auto max-w-[520px] pt-10",children:[r.jsxs("div",{className:"mb-6 flex flex-col items-center gap-3 text-center",children:[r.jsx(eu,{className:"text-ash-dim",size:40,"aria-hidden":!0}),r.jsx("div",{className:"font-sans text-[14px] leading-relaxed text-ash",children:"Scans your repository for secrets that have escaped the Clef matrix — plaintext values in files that should be encrypted."})]}),r.jsxs("div",{className:"mb-6",children:[r.jsx("div",{className:"mb-2.5 font-sans text-[12px] font-semibold uppercase tracking-[0.05em] text-ash",children:"Severity"}),["all","high"].map(N=>r.jsxs("label",{className:`mb-2 flex cursor-pointer items-center gap-2.5 font-sans text-[13px] ${i===N?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"severity",value:N,checked:i===N,onChange:()=>p(N),className:"accent-gold-500","data-testid":`severity-${N}`}),N==="all"?"All (patterns + entropy)":"High (patterns only)"]},N))]}),r.jsx(Z,{variant:"primary",onClick:$,"data-testid":"scan-button",children:"Scan repository"}),r.jsxs("div",{className:"mt-6 rounded-md border border-edge bg-ink-850 px-4 py-3 font-sans text-[12px] text-ash",children:["ℹ️ ",r.jsx("code",{className:"font-mono",children:"clef scan"})," runs automatically on every commit via the pre-commit hook."]})]}),o==="scanning"&&r.jsxs("div",{"data-testid":"scan-scanning",className:"flex flex-col items-center justify-center gap-4 pt-20",children:[r.jsx("div",{className:"h-10 w-10 animate-spin rounded-full border-[3px] border-gold-500/30 border-t-gold-500"}),r.jsx("div",{className:"font-sans text-[14px] text-ash",children:"Scanning..."})]}),o==="clean"&&m&&r.jsxs("div",{"data-testid":"scan-clean",className:"flex flex-col items-center justify-center gap-3.5 pt-14",children:[r.jsx("div",{className:"flex h-14 w-14 items-center justify-center rounded-full border border-go-500/30 bg-go-500/15 text-[24px] text-go-500",children:"✓"}),r.jsx("div",{className:"font-sans text-[16px] font-semibold text-go-500",children:"No issues found"}),r.jsxs("div",{className:"font-mono text-[12px] text-ash",children:[m.filesScanned," files scanned in ",le,"s"]}),r.jsxs("div",{className:"font-mono text-[11px] text-ash-dim",children:["Last run: ",O(b)]})]}),o==="issues"&&m&&r.jsxs("div",{children:[r.jsxs("div",{className:"mb-5 flex flex-wrap items-center gap-3",children:[r.jsxs("span",{className:"font-sans text-[14px] font-semibold text-bone",children:[q," issue",q!==1?"s":""," found in ",m.filesScanned," ","files (",le,"s)"]}),r.jsx("div",{className:"flex-1"}),ue.map(({key:N,label:M})=>{const ne=_===N;return r.jsx("button",{"data-testid":`filter-${N}`,onClick:()=>I(N),className:`cursor-pointer rounded-md border px-2.5 py-1 font-mono text-[11px] ${ne?"border-gold-500/30 bg-gold-500/10 font-semibold text-gold-500":"border-edge-strong bg-transparent text-ash"}`,children:M},N)})]}),(_==="all"||_==="unencrypted")&&m.unencryptedMatrixFiles.map(N=>r.jsx(Ad,{type:"error",typeLabel:"UNENCRYPTED FILE",file:N,message:"Missing SOPS metadata — file is in plaintext.",fixCommand:`clef encrypt ${N.replace(/\.enc\.(yaml|json)$/,"")}`,onViewFile:()=>B(N)},`unenc-${N}`)),z.map(N=>r.jsx(Ad,{type:"warning",typeLabel:N.matchType==="pattern"?(N.patternName??"Pattern match").toUpperCase():`HIGH ENTROPY (${N.entropy?.toFixed(1)})`,file:`${N.file}:${N.line}`,message:N.preview,fixCommand:N.matchType==="pattern"?"clef set <namespace>/<env> <KEY>":`clef set <namespace>/<env> ${N.preview.split("=")[0]}`,onViewFile:()=>B(N.file),onDismiss:()=>j(M=>[...M,N._idx])},`match-${N._idx}`)),L>0&&r.jsxs("div",{className:"mt-3 font-mono text-[11px] text-ash-dim",children:[L," dismissed"]})]})]})]})}function Ad({type:o,typeLabel:d,file:i,message:p,fixCommand:m,onViewFile:v,onDismiss:b}){const T=o==="error"?"border-l-stop-500/40":"border-l-warn-500/40",S=o==="error"?"text-stop-500 bg-stop-500/15 border-stop-500/30":"text-warn-500 bg-warn-500/15 border-warn-500/30";return r.jsxs("div",{className:`mb-3 flex items-start gap-3.5 rounded-md border border-edge border-l-[3px] bg-ink-850 px-4.5 py-3.5 ${T}`,children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"mb-1.5 flex flex-wrap items-center gap-2",children:[r.jsx("span",{className:`rounded-sm border px-1.5 py-0.5 font-mono text-[9px] font-bold tracking-[0.07em] ${S}`,children:d}),r.jsx("span",{className:`font-mono text-[12px] text-gold-500 ${v?"cursor-pointer":""}`,onClick:v,role:v?"button":void 0,tabIndex:v?0:void 0,onKeyDown:v?j=>{j.key==="Enter"&&v()}:void 0,children:i})]}),r.jsx("div",{className:"mb-2.5 font-mono text-[12px] text-bone","data-testid":"match-preview",children:p}),r.jsxs("div",{className:"flex w-fit items-center gap-2 rounded-md border border-edge-strong bg-ink-800 px-2.5 py-1.5",children:[r.jsx("span",{className:"font-mono text-[11px] text-go-500",children:"$"}),r.jsx("span",{className:"font-mono text-[11px] text-bone",children:m}),r.jsx(bn,{text:m})]}),v&&r.jsx("button",{"data-testid":"view-file-button",onClick:v,className:"mt-2 cursor-pointer rounded-md border border-edge-strong bg-transparent px-2 py-0.5 font-sans text-[11px] text-ash",children:"View file"})]}),b&&r.jsx("button",{"data-testid":"dismiss-button",onClick:b,title:"Dismiss","aria-label":"Dismiss issue",className:"shrink-0 cursor-pointer border-none bg-transparent px-1 text-[16px] leading-none text-ash-dim",children:"×"})]})}const au=864e5,Lm={overdue:{label:"Overdue",icon:"✕",textClass:"text-stop-500",bgClass:"bg-stop-500/15",borderClass:"border-stop-500/40",stripeClass:"border-l-stop-500/40",badgeTone:"stop"},unknown:{label:"Unknown",icon:"?",textClass:"text-warn-500",bgClass:"bg-warn-500/15",borderClass:"border-warn-500/40",stripeClass:"border-l-warn-500/40",badgeTone:"warn"},ok:{label:"OK",icon:"✓",textClass:"text-go-500",bgClass:"bg-go-500/15",borderClass:"border-go-500/40",stripeClass:"border-l-go-500/40",badgeTone:"go"}},Am={dev:{text:"text-go-500",bg:"bg-go-500/10",border:"border-go-500/20"},staging:{text:"text-warn-500",bg:"bg-warn-500/10",border:"border-warn-500/20"},production:{text:"text-stop-500",bg:"bg-stop-500/10",border:"border-stop-500/20"}};function wo(o){return o.last_rotated_known?o.rotation_overdue?"overdue":"ok":"unknown"}function Im(o){return Math.floor((Date.now()-new Date(o).getTime())/au)}function Mm(o){if(!o.last_rotated_at||!o.rotation_due)return null;const d=new Date(o.rotation_due).getTime(),i=new Date(o.last_rotated_at).getTime();return Math.round((d-i)/au)}const Dm=[{key:"all",label:"All keys",textClass:"text-ash",bgClass:"bg-ash/10",borderClass:"border-ash/30"},{key:"overdue",label:"Overdue",textClass:"text-stop-500",bgClass:"bg-stop-500/15",borderClass:"border-stop-500/40"},{key:"unknown",label:"Unknown",textClass:"text-warn-500",bgClass:"bg-warn-500/15",borderClass:"border-warn-500/40"},{key:"ok",label:"Compliant",textClass:"text-go-500",bgClass:"bg-go-500/15",borderClass:"border-go-500/40"}];function Om({setView:o,setNs:d}){const[i,p]=u.useState(null),[m,v]=u.useState(""),[b,T]=u.useState(!1),[S,j]=u.useState("all"),[_,I]=u.useState(!1),[$,B]=u.useState(null),O=u.useCallback(async()=>{T(!0),B(null);try{const[V,ie]=await Promise.all([ge("/api/policy/check"),ge("/api/policy")]);if(V.ok?p(await V.json()):B(`policy check failed: HTTP ${V.status}`),ie.ok){const y=await ie.json();v(y.rawYaml)}}catch(V){B(V instanceof Error?V.message:"policy check failed")}finally{T(!1)}},[]);u.useEffect(()=>{O()},[O]);const z=V=>{const ie=V.split("/");return ie.length>=2?ie[ie.length-2]:ie[0]},L=V=>{const ie=z(V.path);ie&&(d(ie),o("editor"))},q=i?.files??[],le=i?.summary,ue=i?.policy,N=i?.source,M=u.useMemo(()=>q.flatMap(V=>V.keys.map(ie=>({file:V,key:ie}))),[q]),ne=u.useMemo(()=>S==="all"?M:M.filter(V=>wo(V.key)===S),[M,S]),Y=u.useMemo(()=>{let V=0,ie=0,y=0;for(const J of M){const X=wo(J.key);X==="overdue"?V++:X==="unknown"?ie++:y++}return{overdue:V,unknown:ie,ok:y,total:M.length}},[M]),oe=Y.total>0&&Y.overdue===0&&Y.unknown===0,Ee=!b&&q.length===0,ae={all:Y.total,overdue:Y.overdue,unknown:Y.unknown,ok:Y.ok};return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Policy"}),r.jsx(G.Subtitle,{children:"clef policy check — rotation verdicts"})]}),r.jsx(G.Actions,{children:r.jsxs(Z,{onClick:O,children:["↻"," Re-run"]})})]}),ue&&r.jsxs("div",{className:"border-b border-edge bg-ink-850 px-6 py-4",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx("span",{className:"font-sans text-[11px] font-semibold uppercase tracking-[0.08em] text-ash-dim",children:"Default"}),r.jsxs("span",{className:"font-mono text-[13px] text-bone",children:[ue.rotation?.max_age_days??"—",r.jsx("span",{className:"ml-0.5 text-ash",children:"d"})]}),ue.rotation?.environments&&Object.entries(ue.rotation.environments).map(([V,ie])=>{const y=Am[V]??{text:"text-ash",bg:"bg-transparent",border:"border-ash/20"};return r.jsxs("span",{className:`inline-flex items-center gap-1.5 rounded-sm border px-2 py-0.5 font-mono text-[11px] ${y.text} ${y.bg} ${y.border}`,children:[r.jsx("span",{className:"font-bold tracking-[0.06em]",children:V.toUpperCase()}),r.jsxs("span",{children:[ie.max_age_days,"d"]})]},V)}),r.jsx("div",{className:"flex-1"}),r.jsx("span",{"data-testid":"policy-source",className:`rounded-sm border px-2 py-0.5 font-mono text-[10px] ${N==="file"?"border-go-500/30 bg-go-500/10 text-go-500":"border-edge bg-transparent text-ash"}`,children:N==="file"?".clef/policy.yaml":"Built-in default"}),m&&r.jsx("button",{"data-testid":"toggle-yaml",onClick:()=>I(V=>!V),className:"cursor-pointer rounded-md border border-gold-500/30 bg-transparent px-2 py-0.5 font-sans text-[11px] text-gold-500 hover:bg-gold-500/10",children:_?"Hide YAML":"View YAML"})]}),_&&m&&r.jsx("pre",{"data-testid":"raw-yaml",className:"mt-3 max-h-[200px] overflow-auto rounded-md border border-edge-strong bg-ink-800 px-3.5 py-3 font-mono text-[11px] text-bone",children:m})]}),!b&&Y.total>0&&r.jsx("div",{className:"flex flex-wrap items-center gap-2.5 border-b border-edge bg-ink-800 px-6 py-3.5",children:Dm.map(V=>{const ie=S===V.key,y=ae[V.key];return r.jsxs("button",{"data-testid":`filter-${V.key}`,onClick:()=>j(V.key),className:`flex cursor-pointer items-center gap-1.5 rounded-pill border px-3 py-1 font-sans text-[12px] transition-colors ${ie?`${V.textClass} ${V.bgClass} ${V.borderClass} font-semibold`:"border-edge bg-transparent text-ash hover:text-bone"}`,children:[r.jsx("span",{className:`font-mono text-[11px] font-bold ${V.textClass}`,children:y}),V.label]},V.key)})}),r.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[b&&r.jsx(kn,{title:"Evaluating policy..."}),!b&&$&&r.jsx(kn,{"data-testid":"policy-load-error",title:"Failed to load policy",body:$}),!b&&!$&&Ee&&r.jsx(kn,{"data-testid":"no-files",title:"No matrix files to evaluate.",body:"Add a namespace to your manifest to start tracking rotation policy."}),!b&&oe&&r.jsxs("div",{"data-testid":"all-compliant",className:"flex flex-col items-center justify-center gap-3.5 py-14",children:[r.jsx("div",{className:"flex h-14 w-14 items-center justify-center rounded-full border border-go-500/30 bg-go-500/15 text-[24px] text-go-500",children:"✓"}),r.jsx("div",{className:"font-sans text-[16px] font-semibold text-go-500",children:"All compliant"}),r.jsxs("div",{className:"font-mono text-[12px] text-ash",children:[Y.total," key",Y.total===1?"":"s"," within rotation window across"," ",le?.total_files??0," file",le?.total_files===1?"":"s"]})]}),!b&&!oe&&!Ee&&ue&&["overdue","unknown","ok"].map(V=>{if(S!=="all"&&S!==V)return null;const ie=ne.filter(J=>wo(J.key)===V);if(!ie.length)return null;const y=Lm[V];return r.jsxs("div",{className:"mb-6",children:[r.jsxs("div",{className:"mb-2.5 flex items-center gap-2.5",children:[r.jsx("div",{className:`flex h-[22px] w-[22px] items-center justify-center rounded-full border font-mono text-[11px] font-bold ${y.borderClass} ${y.bgClass} ${y.textClass}`,children:y.icon}),r.jsx("span",{className:`font-sans text-[13px] font-semibold ${y.textClass}`,children:y.label}),r.jsx("span",{className:`rounded-pill border px-2 py-px font-mono text-[10px] ${y.borderClass} ${y.bgClass} ${y.textClass}`,children:ie.length})]}),r.jsx(Sl,{className:"overflow-hidden",children:ie.map((J,X)=>{const{file:ce,key:k}=J,R=Mm(k),ee=z(ce.path)??"<namespace>",Q=V==="unknown"?`No rotation record · run clef set ${ee}/${ce.environment} ${k.key} to establish`:k.last_rotated_at?`Last rotated ${Im(k.last_rotated_at)}d ago · limit ${R??"?"}d · ${k.rotation_count} rotation${k.rotation_count===1?"":"s"}`:"Rotation state inconsistent",g=V==="overdue"?`${y.label} ${k.days_overdue}d`:y.label;return r.jsxs("div",{className:`flex items-start gap-3.5 border-l-[3px] px-4.5 py-3.5 transition-colors ${y.stripeClass} ${X<ie.length-1?"border-b border-edge":""}`,children:[r.jsx("div",{className:"shrink-0 pt-0.5",children:r.jsx(_o,{tone:y.badgeTone,variant:"solid",children:g})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[r.jsx("span",{"data-testid":`key-ref-${k.key}`,className:"font-mono text-[13px] font-bold text-bone",children:k.key}),r.jsx("span",{className:"font-mono text-[10px] text-ash",children:"←"}),r.jsx("span",{"data-testid":`file-ref-${ce.path}`,role:"link",tabIndex:0,onClick:()=>L(ce),onKeyDown:P=>{P.key==="Enter"&&L(ce)},className:"cursor-pointer font-mono text-[11px] font-medium text-gold-500 underline decoration-gold-500/40 decoration-dotted",children:ce.path}),r.jsx(ot,{env:ce.environment,small:!0})]}),r.jsx("div",{className:"font-sans text-[12px] text-ash",children:Q})]})]},`${ce.path}-${k.key}-${X}`)})})]},V)}),!b&&le&&le.total_files>0&&r.jsxs("div",{className:"mt-2 flex items-center gap-3 rounded-md border border-edge bg-ink-850 px-4 py-3",children:[r.jsx("span",{className:"text-[14px]",children:"💡"}),r.jsxs("span",{className:"font-sans text-[12px] text-ash",children:["Edit"," ",r.jsx("code",{className:"rounded-sm bg-gold-500/10 px-1.5 py-px font-mono text-[11px] text-gold-500",children:".clef/policy.yaml"})," ","to change rotation limits. Run"," ",r.jsx("code",{className:"rounded-sm bg-gold-500/10 px-1.5 py-px font-mono text-[11px] text-gold-500",children:"clef policy check"})," ","locally to reproduce this verdict."]})]})]})]})}const Id="w-full rounded-md border border-edge bg-ink-850 px-2.5 py-1.5 font-sans text-[13px] text-bone outline-none cursor-pointer focus-visible:border-gold-500",zm="w-full box-border rounded-lg border border-edge bg-ink-850 p-3.5 font-mono text-[12px] text-bone outline-none resize-y focus-visible:border-gold-500";function Fm({manifest:o,setView:d}){const[i,p]=u.useState(1),[m,v]=u.useState(""),[b,T]=u.useState(""),[S,j]=u.useState(""),[_,I]=u.useState("auto"),[$,B]=u.useState(null),[O,z]=u.useState([]),[L,q]=u.useState(null),[le,ue]=u.useState(!1),[N,M]=u.useState(null);u.useEffect(()=>{o&&(!m&&o.namespaces.length>0&&v(o.namespaces[0].name),!b&&o.environments.length>0&&T(o.environments[0].name))},[o,m,b]);const ne=o?.namespaces??[],Y=o?.environments??[],oe=async()=>{if(!m||!b||!S.trim()){M("Please select a namespace, environment, and paste content.");return}ue(!0),M(null);try{const y=await ge("/api/import/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:`${m}/${b}`,content:S,format:_==="auto"?void 0:_,overwriteKeys:O})});if(!y.ok){const X=await y.json();M(X.error??"Preview failed");return}const J=await y.json();B(J),z([]),p(2)}catch(y){M(y instanceof Error?y.message:"Preview failed")}finally{ue(!1)}},Ee=async()=>{if(!$)return;ue(!0),M(null);const y=[...$.wouldImport,...$.wouldSkip.filter(J=>O.includes(J.key)).map(J=>J.key)];try{const J=await ge("/api/import/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:`${m}/${b}`,content:S,format:_==="auto"?void 0:_,keys:y,overwriteKeys:O})});if(!J.ok){const ce=await J.json();M(ce.error??"Import failed");return}const X=await J.json();q(X),j(""),p(3)}catch(J){M(J instanceof Error?J.message:"Import failed")}finally{ue(!1)}},ae=()=>{p(1),j(""),B(null),q(null),z([]),M(null)},V=y=>{z(J=>J.includes(y)?J.filter(X=>X!==y):[...J,y])},ie=($?.wouldImport.length??0)+O.filter(y=>$?.wouldSkip.some(J=>J.key===y)).length;return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Import"}),r.jsx(G.Subtitle,{children:"clef import — bulk migrate secrets"})]})}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[r.jsx("div",{className:"mb-8 flex items-center",children:[1,2,3].map((y,J)=>r.jsxs(bt.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:`flex h-6 w-6 items-center justify-center rounded-full font-mono text-[11px] font-bold ${i>=y?"bg-gold-500 border border-gold-500 text-ink-950":"bg-ink-850 border border-edge text-ash-dim"}`,children:y}),r.jsx("span",{className:`font-sans text-[12px] ${i>=y?"text-bone":"text-ash-dim"} ${i===y?"font-semibold":"font-normal"}`,children:y===1?"Source":y===2?"Preview":"Done"})]}),J<2&&r.jsx("div",{className:`mx-3 h-px min-w-[40px] flex-1 ${i>y?"bg-gold-500":"bg-edge"}`})]},y))}),N&&r.jsx("div",{className:"mb-4 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3 font-sans text-[13px] text-stop-500",children:N}),i===1&&r.jsxs("div",{children:[r.jsxs("div",{className:"mb-5",children:[r.jsx(No,{children:"Target"}),r.jsxs("div",{className:"flex gap-3",children:[r.jsxs("div",{className:"flex-1",children:[r.jsx(Md,{children:"Namespace"}),r.jsx("select",{value:m,onChange:y=>v(y.target.value),className:Id,children:ne.map(y=>r.jsx("option",{value:y.name,children:y.name},y.name))})]}),r.jsxs("div",{className:"flex-1",children:[r.jsx(Md,{children:"Environment"}),r.jsx("select",{value:b,onChange:y=>T(y.target.value),className:Id,children:Y.map(y=>r.jsx("option",{value:y.name,children:y.name},y.name))})]})]})]}),r.jsxs("div",{className:"mb-5",children:[r.jsx(No,{children:"Format"}),r.jsx("div",{className:"flex gap-4",children:["auto","dotenv","json","yaml"].map(y=>r.jsxs("label",{className:`flex cursor-pointer items-center gap-1.5 font-sans text-[13px] ${_===y?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"format",value:y,checked:_===y,onChange:()=>I(y),className:"accent-gold-500"}),y==="auto"?"Auto":y]},y))})]}),r.jsxs("div",{className:"mb-2",children:[r.jsx(No,{children:"Paste secrets"}),r.jsx("textarea",{value:S,onChange:y=>j(y.target.value),placeholder:_==="json"?`{
|
|
73
|
+
"DB_HOST": "localhost",
|
|
74
|
+
"DB_PORT": "5432"
|
|
75
|
+
}`:_==="yaml"?`DB_HOST: localhost
|
|
76
|
+
DB_PORT: '5432'`:`DB_HOST=localhost
|
|
77
|
+
DB_PORT=5432
|
|
78
|
+
# Comments are ignored`,rows:12,className:zm})]}),r.jsx("div",{className:"mb-6 rounded-md border border-edge bg-ink-850 px-3.5 py-2.5 font-sans text-[11px] leading-relaxed text-ash",children:"Values are sent directly to the local Clef server (127.0.0.1) and encrypted immediately. They are never stored in browser memory beyond this session."}),r.jsx(Z,{variant:"primary",onClick:oe,disabled:le||!S.trim(),children:le?"Previewing...":"Next: Preview"})]}),i===2&&$&&r.jsxs("div",{children:[r.jsxs("div",{className:"mb-5 font-sans text-[13px] text-ash",children:["Importing to"," ",r.jsxs("span",{className:"font-semibold text-gold-500",children:[m,"/",b]}),". ",$.totalKeys," key",$.totalKeys!==1?"s":""," parsed."]}),$.warnings.length>0&&r.jsx("div",{className:"mb-4",children:$.warnings.map((y,J)=>r.jsxs("div",{className:"mb-1 font-mono text-[11px] text-warn-500",children:["⚠ ",y]},J))}),$.wouldImport.length>0&&r.jsxs("div",{className:"mb-4",children:[r.jsxs(hl,{toneClass:"text-go-500",children:["New keys (",$.wouldImport.length,")"]}),$.wouldImport.map(y=>r.jsx(So,{icon:"→",iconClass:"text-go-500",label:y},y))]}),$.wouldSkip.length>0&&r.jsxs("div",{className:"mb-4",children:[r.jsxs(hl,{toneClass:"text-warn-500",children:["Already exists (",$.wouldSkip.length,") — toggle to overwrite"]}),$.wouldSkip.map(({key:y,reason:J})=>{const X=O.includes(y);return r.jsxs("div",{className:`mb-1 flex items-center gap-2.5 rounded-md border px-2.5 py-1.5 ${X?"border-warn-500/30 bg-warn-500/10":"border-edge bg-transparent"}`,children:[r.jsx("input",{type:"checkbox",checked:X,onChange:()=>V(y),className:"accent-warn-500",id:`overwrite-${y}`}),r.jsx("label",{htmlFor:`overwrite-${y}`,className:`flex-1 cursor-pointer font-mono text-[12px] ${X?"text-warn-500":"text-ash"}`,children:y}),r.jsx("span",{className:"font-sans text-[11px] text-ash-dim",children:J})]},y)})]}),$.wouldImport.length===0&&$.wouldSkip.length===0&&r.jsx("div",{className:"py-6 text-center font-sans text-[13px] text-ash",children:"No importable keys found."}),r.jsxs("div",{className:"mt-6 flex gap-2.5",children:[r.jsx(Z,{variant:"ghost",onClick:()=>p(1),children:"Back"}),r.jsx(Z,{variant:"primary",onClick:Ee,disabled:le||ie===0,children:le?"Importing...":`Import ${ie} key${ie!==1?"s":""}`})]})]}),i===3&&L&&r.jsxs("div",{children:[r.jsxs("div",{className:"flex flex-col items-center pt-5 pb-8",children:[r.jsx("div",{className:`mb-4 flex h-14 w-14 items-center justify-center rounded-full text-[24px] ${L.failed.length>0?"border border-stop-500/30 bg-stop-500/10 text-stop-500":"border border-go-500/30 bg-go-500/10 text-go-500"}`,children:L.failed.length>0?"⚠":"✓"}),r.jsx("div",{className:`mb-2 font-sans text-[16px] font-semibold ${L.failed.length>0?"text-warn-500":"text-go-500"}`,children:L.failed.length>0?"Import completed with errors":"Import complete"}),r.jsxs("div",{className:"font-mono text-[12px] text-ash",children:[L.imported.length," imported, ",L.skipped.length," skipped,"," ",L.failed.length," failed"]})]}),L.imported.length>0&&r.jsxs("div",{className:"mb-4",children:[r.jsxs(hl,{toneClass:"text-go-500",children:["Imported (",L.imported.length,")"]}),L.imported.map(y=>r.jsx(So,{icon:"✓",iconClass:"text-go-500",label:y},y))]}),L.failed.length>0&&r.jsxs("div",{className:"mb-4",children:[r.jsxs(hl,{toneClass:"text-stop-500",children:["Failed (",L.failed.length,")"]}),L.failed.map(({key:y,error:J})=>r.jsx(So,{icon:"✗",iconClass:"text-stop-500",label:y,note:J},y))]}),r.jsxs("div",{className:"mt-6 flex gap-2.5",children:[r.jsx(Z,{variant:"primary",onClick:()=>d("matrix"),children:"View in Matrix"}),r.jsx(Z,{variant:"ghost",onClick:ae,children:"Import more"})]})]})]})})]})}function No({children:o}){return r.jsx("div",{className:"mb-2 font-sans text-[12px] font-semibold uppercase tracking-[0.05em] text-ash",children:o})}function Md({children:o}){return r.jsx("div",{className:"mb-1 font-sans text-[11px] text-ash-dim",children:o})}function hl({children:o,toneClass:d}){return r.jsx("div",{className:`mb-2 font-sans text-[11px] font-semibold uppercase tracking-[0.06em] ${d}`,children:o})}function So({icon:o,iconClass:d,label:i,note:p}){return r.jsxs("div",{className:"mb-px flex items-center gap-2.5 rounded-md px-2.5 py-1",children:[r.jsx("span",{className:`font-mono text-[13px] ${d}`,children:o}),r.jsx("span",{className:"flex-1 font-mono text-[12px] text-bone",children:i}),p&&r.jsx("span",{className:"font-sans text-[11px] text-ash-dim",children:p})]})}function Bm({manifest:o,reloadManifest:d}){const[i,p]=u.useState({kind:"none"}),[m,v]=u.useState(null),b=u.useCallback(()=>{p({kind:"none"}),v(null)},[]);if(!o)return r.jsx("div",{className:"flex flex-1 flex-col",children:r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Manifest"}),r.jsx(G.Subtitle,{children:"Loading..."})]})})});const T=o.namespaces,S=o.environments;return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Manifest"}),r.jsx(G.Subtitle,{children:`${T.length} namespaces · ${S.length} environments`})]})}),r.jsxs("div",{className:"flex-1 overflow-auto p-7",children:[r.jsx(Dd,{title:"Namespaces",actionLabel:"+ Namespace",onAction:()=>p({kind:"addNamespace"}),actionTestId:"add-namespace-btn",children:T.length===0?r.jsx(Fd,{message:"No namespaces declared yet."}):r.jsx(Od,{children:T.map(j=>r.jsx(zd,{testId:`namespace-row-${j.name}`,name:j.name,description:j.description,badges:j.schema?[{label:`schema: ${j.schema}`,tone:"purple"}]:[],onEdit:()=>p({kind:"editNamespace",ns:j}),onDelete:()=>p({kind:"removeNamespace",ns:j})},j.name))})}),r.jsx("div",{className:"mt-9",children:r.jsx(Dd,{title:"Environments",actionLabel:"+ Environment",onAction:()=>p({kind:"addEnvironment"}),actionTestId:"add-environment-btn",children:S.length===0?r.jsx(Fd,{message:"No environments declared yet."}):r.jsx(Od,{children:S.map(j=>r.jsx(zd,{testId:`environment-row-${j.name}`,name:j.name,description:j.description,badges:j.protected?[{label:"protected",tone:"stop"}]:[],onEdit:()=>p({kind:"editEnvironment",env:j}),onDelete:()=>p({kind:"removeEnvironment",env:j})},j.name))})})})]}),r.jsx(Km,{open:i.kind==="addNamespace",onClose:b,onSubmit:async j=>{const _=await ge("/api/namespaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)});if(!_.ok){const I=await _.json();return v(I.error??"Failed to add namespace"),!1}return d(),b(),!0},existingNames:T.map(j=>j.name),error:m,setError:v}),i.kind==="editNamespace"&&r.jsx(Hm,{ns:i.ns,existingNames:T.map(j=>j.name),onClose:b,onSubmit:async j=>{const _=await ge(`/api/namespaces/${encodeURIComponent(i.ns.name)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)});if(!_.ok){const I=await _.json();return v(I.error??"Failed to edit namespace"),!1}return d(),b(),!0},error:m,setError:v}),i.kind==="removeNamespace"&&r.jsx(Bd,{title:"Delete namespace",subjectKind:"namespace",subjectName:i.ns.name,impactDescription:`This will delete every encrypted cell file under '${i.ns.name}/' across all environments and remove '${i.ns.name}' from any service identity that references it.`,onClose:b,onConfirm:async()=>{const j=await ge(`/api/namespaces/${encodeURIComponent(i.ns.name)}`,{method:"DELETE"});if(!j.ok){const _=await j.json();return v(_.error??"Failed to remove namespace"),!1}return d(),b(),!0},error:m}),r.jsx(Vm,{open:i.kind==="addEnvironment",existingNames:S.map(j=>j.name),onClose:b,onSubmit:async j=>{const _=await ge("/api/environments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)});if(!_.ok){const I=await _.json();return v(I.error??"Failed to add environment"),!1}return d(),b(),!0},error:m,setError:v}),i.kind==="editEnvironment"&&r.jsx(Wm,{env:i.env,existingNames:S.map(j=>j.name),onClose:b,onSubmit:async j=>{const _=await ge(`/api/environments/${encodeURIComponent(i.env.name)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)});if(!_.ok){const I=await _.json();return v(I.error??"Failed to edit environment"),!1}return d(),b(),!0},error:m,setError:v}),i.kind==="removeEnvironment"&&r.jsx(Bd,{title:"Delete environment",subjectKind:"environment",subjectName:i.env.name,impactDescription:i.env.protected?`'${i.env.name}' is a protected environment and will be refused. Run "Edit" first and unprotect it before removing.`:`This will delete every encrypted cell file for '${i.env.name}' across all namespaces and remove the '${i.env.name}' entry from every service identity.`,onClose:b,onConfirm:async()=>{const j=await ge(`/api/environments/${encodeURIComponent(i.env.name)}`,{method:"DELETE"});if(!j.ok){const _=await j.json();return v(_.error??"Failed to remove environment"),!1}return d(),b(),!0},error:m})]})}function Dd(o){return r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center justify-between mb-3.5",children:[r.jsx("h2",{className:"font-sans text-[14px] font-semibold text-bone tracking-[-0.01em] m-0",children:o.title}),r.jsx(Z,{variant:"primary",onClick:o.onAction,"data-testid":o.actionTestId,children:o.actionLabel})]}),o.children]})}function Od(o){return r.jsx("div",{className:"border border-edge rounded-lg bg-ink-850 overflow-hidden",children:o.children})}const Um={purple:"text-purple-400 bg-purple-400/10 border-purple-400/20",stop:"text-stop-500 bg-stop-500/10 border-stop-500/20"};function zd(o){return r.jsxs("div",{"data-testid":o.testId,className:"flex items-center px-4 py-3 border-b border-edge last:border-0 gap-3",children:[r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"font-mono text-[13px] font-semibold text-bone flex items-center gap-2",children:[o.name,o.badges.map(d=>r.jsx("span",{className:`font-sans text-[10px] font-medium border rounded-pill px-2 py-px ${Um[d.tone]}`,children:d.label},d.label))]}),o.description&&r.jsx("div",{className:"font-sans text-[12px] text-ash mt-0.5",children:o.description})]}),r.jsx(Z,{onClick:o.onEdit,"data-testid":`${o.testId}-edit`,children:"Edit"}),r.jsx(Z,{onClick:o.onDelete,"data-testid":`${o.testId}-delete`,children:"Delete"})]})}function Fd(o){return r.jsx("div",{className:"p-6 border border-dashed border-edge rounded-lg text-center font-sans text-[12px] text-ash",children:o.message})}function es(o){return r.jsx(Je.Title,{children:r.jsx("h3",{className:"font-sans text-[16px] font-semibold text-bone m-0",children:o.children})})}function ts(o){return r.jsx("div",{"data-testid":"manifest-modal-error",className:"px-3 py-2 bg-stop-500/10 border border-stop-500/20 rounded-md text-stop-500 font-sans text-[12px] mb-3",children:o.message})}function dr(o){return/^[A-Za-z0-9._-]+$/.test(o)}function Km(o){const[d,i]=u.useState(""),[p,m]=u.useState(""),[v,b]=u.useState(""),[T,S]=u.useState(!1);bt.useEffect(()=>{o.open&&(i(""),m(""),b(""),S(!1))},[o.open]);const j=d.trim(),_=o.existingNames.includes(j),I=j.length>0&&dr(j)&&!_,$=j?dr(j)?_?`A namespace named '${j}' already exists.`:null:"Use letters, numbers, '.', '_', or '-' only.":null;return r.jsxs(Je,{open:o.open,onClose:o.onClose,children:[r.jsx(es,{children:"Add namespace"}),r.jsxs(Je.Body,{children:[o.error&&r.jsx(ts,{message:o.error}),r.jsxs("div",{className:"flex flex-col gap-3.5",children:[r.jsx(ut,{label:"Name",hint:$??void 0,children:r.jsx(kt,{value:d,onChange:B=>{i(B.target.value),o.setError(null)},placeholder:"payments","data-testid":"namespace-name-input",autoFocus:!0})}),r.jsx(ut,{label:"Description",children:r.jsx(kt,{value:p,onChange:B=>m(B.target.value),placeholder:"Payment processing secrets","data-testid":"namespace-description-input"})}),r.jsx(ut,{label:"Schema (optional)",hint:"Path to a YAML schema file in the repo.",children:r.jsx(kt,{value:v,onChange:B=>b(B.target.value),placeholder:"schemas/payments.yaml","data-testid":"namespace-schema-input"})})]})]}),r.jsxs(Je.Footer,{children:[r.jsx(Z,{onClick:o.onClose,"data-testid":"namespace-add-cancel",children:"Cancel"}),r.jsx(Z,{variant:"primary",disabled:!I||T,"data-testid":"namespace-add-submit",onClick:async()=>{S(!0),await o.onSubmit({name:j,description:p.trim()||void 0,schema:v.trim()||void 0}),S(!1)},children:T?"Adding...":"Add namespace"})]})]})}function Hm(o){const[d,i]=u.useState(o.ns.name),[p,m]=u.useState(o.ns.description??""),[v,b]=u.useState(o.ns.schema??""),[T,S]=u.useState(!1),j=d.trim(),_=j!==o.ns.name,I=_&&o.existingNames.includes(j),$=!_||dr(j)&&!I,B=j?$?null:I?`A namespace named '${j}' already exists.`:"Use letters, numbers, '.', '_', or '-' only.":"Name cannot be empty.",O=_||p!==(o.ns.description??"")||v!==(o.ns.schema??"");return r.jsxs(Je,{open:!0,onClose:o.onClose,children:[r.jsx(es,{children:`Edit namespace '${o.ns.name}'`}),r.jsxs(Je.Body,{children:[o.error&&r.jsx(ts,{message:o.error}),r.jsxs("div",{className:"flex flex-col gap-3.5",children:[r.jsx(ut,{label:"Name",hint:B??void 0,children:r.jsx(kt,{value:d,onChange:z=>{i(z.target.value),o.setError(null)},"data-testid":"namespace-rename-input",autoFocus:!0})}),r.jsx(ut,{label:"Description",children:r.jsx(kt,{value:p,onChange:z=>m(z.target.value),"data-testid":"namespace-description-input"})}),r.jsx(ut,{label:"Schema (optional)",hint:"Empty to clear.",children:r.jsx(kt,{value:v,onChange:z=>b(z.target.value),"data-testid":"namespace-schema-input"})})]})]}),r.jsxs(Je.Footer,{children:[r.jsx(Z,{onClick:o.onClose,"data-testid":"namespace-edit-cancel",children:"Cancel"}),r.jsx(Z,{variant:"primary",disabled:!O||!!B||T,"data-testid":"namespace-edit-submit",onClick:async()=>{S(!0);const z={};_&&(z.rename=j),p!==(o.ns.description??"")&&(z.description=p),v!==(o.ns.schema??"")&&(z.schema=v),await o.onSubmit(z),S(!1)},children:T?"Saving...":"Save changes"})]})]})}function Vm(o){const[d,i]=u.useState(""),[p,m]=u.useState(""),[v,b]=u.useState(!1),[T,S]=u.useState(!1);bt.useEffect(()=>{o.open&&(i(""),m(""),b(!1),S(!1))},[o.open]);const j=d.trim(),_=o.existingNames.includes(j),I=j.length>0&&dr(j)&&!_,$=j?dr(j)?_?`An environment named '${j}' already exists.`:null:"Use letters, numbers, '.', '_', or '-' only.":null;return r.jsxs(Je,{open:o.open,onClose:o.onClose,children:[r.jsx(es,{children:"Add environment"}),r.jsxs(Je.Body,{children:[o.error&&r.jsx(ts,{message:o.error}),r.jsxs("div",{className:"flex flex-col gap-3.5",children:[r.jsx(ut,{label:"Name",hint:$??void 0,children:r.jsx(kt,{value:d,onChange:B=>{i(B.target.value),o.setError(null)},placeholder:"staging","data-testid":"environment-name-input",autoFocus:!0})}),r.jsx(ut,{label:"Description",children:r.jsx(kt,{value:p,onChange:B=>m(B.target.value),placeholder:"Pre-production","data-testid":"environment-description-input"})}),r.jsxs("label",{className:"flex items-center gap-2 font-sans text-[12px] text-bone cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:v,onChange:B=>b(B.target.checked),"data-testid":"environment-protected-checkbox"}),"Mark as protected"]})]})]}),r.jsxs(Je.Footer,{children:[r.jsx(Z,{onClick:o.onClose,"data-testid":"environment-add-cancel",children:"Cancel"}),r.jsx(Z,{variant:"primary",disabled:!I||T,"data-testid":"environment-add-submit",onClick:async()=>{S(!0),await o.onSubmit({name:j,description:p.trim()||void 0,protected:v||void 0}),S(!1)},children:T?"Adding...":"Add environment"})]})]})}function Wm(o){const[d,i]=u.useState(o.env.name),[p,m]=u.useState(o.env.description??""),[v,b]=u.useState(o.env.protected===!0),[T,S]=u.useState(!1),j=d.trim(),_=j!==o.env.name,I=_&&o.existingNames.includes(j),$=!_||dr(j)&&!I,B=j?$?null:I?`An environment named '${j}' already exists.`:"Use letters, numbers, '.', '_', or '-' only.":"Name cannot be empty.",O=v!==(o.env.protected===!0),z=_||p!==(o.env.description??"")||O;return r.jsxs(Je,{open:!0,onClose:o.onClose,children:[r.jsx(es,{children:`Edit environment '${o.env.name}'`}),r.jsxs(Je.Body,{children:[o.error&&r.jsx(ts,{message:o.error}),r.jsxs("div",{className:"flex flex-col gap-3.5",children:[r.jsx(ut,{label:"Name",hint:B??void 0,children:r.jsx(kt,{value:d,onChange:L=>{i(L.target.value),o.setError(null)},"data-testid":"environment-rename-input",autoFocus:!0})}),r.jsx(ut,{label:"Description",children:r.jsx(kt,{value:p,onChange:L=>m(L.target.value),"data-testid":"environment-description-input"})}),r.jsxs("label",{className:"flex items-center gap-2 font-sans text-[12px] text-bone cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:v,onChange:L=>b(L.target.checked),"data-testid":"environment-protected-checkbox"}),"Protected (write operations require confirmation)"]})]})]}),r.jsxs(Je.Footer,{children:[r.jsx(Z,{onClick:o.onClose,"data-testid":"environment-edit-cancel",children:"Cancel"}),r.jsx(Z,{variant:"primary",disabled:!z||!!B||T,"data-testid":"environment-edit-submit",onClick:async()=>{S(!0);const L={};_&&(L.rename=j),p!==(o.env.description??"")&&(L.description=p),O&&(L.protected=v),await o.onSubmit(L),S(!1)},children:T?"Saving...":"Save changes"})]})]})}function Bd(o){const[d,i]=u.useState(""),[p,m]=u.useState(!1),v=d===o.subjectName;return r.jsxs(Je,{open:!0,onClose:o.onClose,children:[r.jsx(es,{children:o.title}),r.jsxs(Je.Body,{children:[o.error&&r.jsx(ts,{message:o.error}),r.jsx("p",{className:"font-sans text-[12px] text-bone m-0 mb-3 leading-relaxed",children:o.impactDescription}),r.jsx(ut,{label:`Type the ${o.subjectKind} name to confirm`,children:r.jsx(kt,{value:d,onChange:b=>i(b.target.value),placeholder:o.subjectName,"data-testid":`${o.subjectKind}-remove-confirm-input`,autoFocus:!0})})]}),r.jsxs(Je.Footer,{children:[r.jsx(Z,{onClick:o.onClose,"data-testid":`${o.subjectKind}-remove-cancel`,children:"Cancel"}),r.jsx(Z,{variant:"primary",disabled:!v||p,"data-testid":`${o.subjectKind}-remove-submit`,onClick:async()=>{m(!0),await o.onConfirm(),m(!1)},children:p?"Deleting...":`Delete ${o.subjectKind}`})]})]})}const qm="w-full box-border rounded-md bg-ink-950 px-3 py-2 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim",Qm="w-full box-border rounded-md border border-edge bg-ink-950 px-3 py-2 font-sans text-[13px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim";function Ym({manifest:o,setView:d}){const[i,p]=u.useState([]),[m,v]=u.useState(0),[b,T]=u.useState(!1),[S,j]=u.useState(""),[_,I]=u.useState(""),[$,B]=u.useState(null),[O,z]=u.useState(!1),[L,q]=u.useState(null),[le,ue]=u.useState(null),[N,M]=u.useState(0),[ne,Y]=u.useState(!1),[oe,Ee]=u.useState(null),ae=u.useRef(null),V=u.useCallback(async()=>{try{const k=await ge("/api/recipients");if(k.ok){const R=await k.json();p(R.recipients),v(R.totalFiles)}}catch{}},[]);u.useEffect(()=>{V()},[V]),u.useEffect(()=>{if(!S.trim()){B(null);return}return ae.current&&clearTimeout(ae.current),ae.current=setTimeout(async()=>{try{const k=await ge(`/api/recipients/validate?key=${encodeURIComponent(S.trim())}`);if(k.ok){const R=await k.json();B(R)}}catch{}},300),()=>{ae.current&&clearTimeout(ae.current)}},[S]);const ie=async()=>{if($?.valid){z(!0),q(null);try{const k=await ge("/api/recipients/add",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:S.trim(),label:_.trim()||void 0})});if(!k.ok){const ee=await k.json();q(ee.error??"Failed to add recipient");return}const R=await k.json();p(R.recipients),T(!1),j(""),I(""),B(null)}catch(k){q(k instanceof Error?k.message:"Failed to add recipient")}finally{z(!1)}}},y=k=>{ue(k),M(1),Y(!1)},J=()=>{ue(null),M(0),Y(!1)},X=async()=>{if(le){z(!0),q(null);try{const k=await ge("/api/recipients/remove",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:le.key})});if(!k.ok){const Q=await k.json();q(Q.error??"Failed to remove recipient");return}const R=await k.json();p(R.recipients);const ee=le.label??le.preview;Ee({name:ee,targets:R.rotationReminder??[]}),J()}catch(k){q(k instanceof Error?k.message:"Failed to remove recipient")}finally{z(!1)}}},ce=$?$.valid?"border border-go-500/40":"border border-stop-500/40":"border border-edge";return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Recipients"}),r.jsx(G.Subtitle,{children:"clef recipients -- manage age encryption keys"})]}),!b&&N===0&&r.jsx(G.Actions,{children:r.jsx(Z,{variant:"primary",onClick:()=>T(!0),children:"+ Add recipient"})})]}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[L&&r.jsx("div",{className:"mb-4 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3 font-sans text-[13px] text-stop-500",children:L}),oe&&r.jsxs("div",{"data-testid":"rotation-banner",className:"mb-5 rounded-lg border border-warn-500/30 bg-warn-500/10 px-4 py-3.5",children:[r.jsx("div",{className:"mb-2 font-sans text-[13px] font-semibold text-warn-500",children:"Rotation reminder"}),r.jsxs("div",{className:"mb-2.5 font-sans text-[13px] leading-relaxed text-bone",children:[r.jsx("strong",{children:oe.name})," has been removed and files re-encrypted. However, the removed key may still decrypt old versions of these files from git history. Rotate secret values in the following targets to complete revocation:"]}),oe.targets.length>0&&r.jsx("div",{className:"mb-3 pl-3 font-mono text-[11px] text-ash",children:oe.targets.map(k=>r.jsx("div",{className:"mb-px",children:k},k))}),r.jsxs("div",{className:"flex gap-2.5",children:[r.jsx(Z,{variant:"primary",onClick:()=>d("matrix"),children:"Go to Matrix to rotate"}),r.jsx(Z,{variant:"ghost",onClick:()=>Ee(null),children:"Dismiss"})]})]}),b&&r.jsxs("div",{"data-testid":"add-form",className:"mb-6 rounded-lg border border-edge bg-ink-850 p-5",children:[r.jsx("div",{className:"mb-4 font-sans text-[14px] font-semibold text-bone",children:"Add recipient"}),r.jsxs("div",{className:"mb-3.5",children:[r.jsx(Ud,{children:"Age public key"}),r.jsx("input",{type:"text",value:S,onChange:k=>j(k.target.value),placeholder:"age1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq","data-testid":"add-key-input",className:`${qm} ${ce}`}),$&&!$.valid&&r.jsx("div",{className:"mt-1 font-sans text-[11px] text-stop-500",children:$.error}),$?.valid&&r.jsx("div",{className:"mt-1 font-sans text-[11px] text-go-500",children:"Valid age public key"})]}),r.jsxs("div",{className:"mb-3.5",children:[r.jsx(Ud,{children:"Label (optional)"}),r.jsx("input",{type:"text",value:_,onChange:k=>I(k.target.value),placeholder:"e.g. alice@example.com","data-testid":"add-label-input",className:Qm})]}),r.jsxs("div",{className:"mb-4 rounded-md border border-warn-500/30 bg-warn-500/10 px-3.5 py-2.5 font-sans text-[12px] leading-relaxed text-warn-500",children:["Adding a recipient will re-encrypt ",m," file",m!==1?"s":"",". This may take a moment."]}),r.jsxs("div",{className:"flex gap-2.5",children:[r.jsx(Z,{variant:"ghost",onClick:()=>{T(!1),j(""),I(""),B(null),q(null)},children:"Cancel"}),r.jsx(Z,{variant:"primary",onClick:ie,disabled:O||!$?.valid,children:O?"Re-encrypting...":"Add and re-encrypt"})]})]}),N===1&&le&&r.jsxs("div",{"data-testid":"remove-dialog",className:"mb-6 rounded-lg border border-stop-500/30 bg-ink-850 p-5",children:[r.jsx("div",{className:"mb-3 font-sans text-[14px] font-semibold text-stop-500",children:"Remove recipient"}),r.jsxs("div",{className:"mb-4 font-sans text-[13px] leading-relaxed text-bone",children:["You are about to remove"," ",r.jsx("strong",{className:"text-gold-500",children:le.label??le.preview})," ","(",le.preview,"). All ",m," encrypted file",m!==1?"s":""," will be re-encrypted without this key."]}),r.jsxs("div",{className:"mb-4 rounded-md border border-stop-500/30 bg-stop-500/10 px-3.5 py-3 font-sans text-[12px] leading-relaxed text-stop-500",children:["Re-encryption only removes ",r.jsx("em",{children:"future"})," access. The removed key can still decrypt old versions from git history. You must rotate all secret values after removal."]}),r.jsxs("label",{className:"mb-4 flex cursor-pointer items-start gap-2.5 font-sans text-[13px] text-bone",children:[r.jsx("input",{type:"checkbox",checked:ne,onChange:k=>Y(k.target.checked),"data-testid":"acknowledge-checkbox",className:"mt-0.5 accent-stop-500"}),"I understand — I will rotate secrets after removal"]}),r.jsxs("div",{className:"flex gap-2.5",children:[r.jsx(Z,{variant:"ghost",onClick:J,children:"Cancel"}),r.jsx(Z,{variant:"danger",onClick:()=>M(2),disabled:!ne,children:"Continue"})]})]}),N===2&&le&&r.jsxs("div",{"data-testid":"remove-confirm-dialog",className:"mb-6 rounded-lg border border-stop-500/30 bg-ink-850 p-5",children:[r.jsx("div",{className:"mb-3 font-sans text-[14px] font-semibold text-stop-500",children:"Confirm removal"}),r.jsxs("div",{className:"mb-4 font-sans text-[13px] leading-relaxed text-bone",children:["This will remove"," ",r.jsx("strong",{className:"text-gold-500",children:le.label??le.preview})," ","and re-encrypt all ",m," file",m!==1?"s":"",". This cannot be undone."]}),r.jsxs("div",{className:"flex gap-2.5",children:[r.jsx(Z,{variant:"ghost",onClick:J,children:"Cancel"}),r.jsx(Z,{variant:"danger",onClick:X,disabled:O,children:O?"Re-encrypting...":"Remove and re-encrypt"})]})]}),i.length===0&&!b&&r.jsx(kn,{title:"No recipients configured",body:"Add an age public key to get started."}),i.length>0&&r.jsxs("div",{children:[r.jsxs("div",{className:"mb-2.5 font-sans text-[12px] font-semibold uppercase tracking-[0.05em] text-ash",children:["Recipients (",i.length,")"]}),i.map(k=>r.jsxs("div",{"data-testid":"recipient-row",className:"mb-2 flex items-center gap-3.5 rounded-lg border border-edge bg-ink-850 px-4 py-3",children:[r.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-gold-500/30 bg-gold-500/10 text-[14px]",children:"🔑"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[k.label&&r.jsx("div",{className:"mb-0.5 font-sans text-[13px] font-semibold text-bone",children:k.label}),r.jsx("div",{className:"overflow-hidden text-ellipsis whitespace-nowrap font-mono text-[11px] text-ash",children:k.preview})]}),r.jsx(Z,{variant:"ghost",onClick:()=>y(k),disabled:N!==0||O,children:"Remove"})]},k.key)),r.jsxs("div",{className:"mt-3 font-mono text-[11px] text-ash-dim",children:[m," encrypted file",m!==1?"s":""," in the matrix"]})]})]})})]})}function Ud({children:o}){return r.jsx("div",{className:"mb-1.5 font-sans text-[12px] font-semibold uppercase tracking-[0.05em] text-ash",children:o})}const Kd="w-full box-border rounded-md border border-edge bg-ink-850 px-3 py-2 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim",gl="rounded-md border border-edge bg-ink-850 px-2 py-1.5 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500",Co="cursor-pointer rounded-md border border-edge-strong bg-transparent px-3 py-1 font-sans text-[12px] text-ash hover:bg-ink-800";function Gm({manifest:o}){const[d,i]=u.useState("list"),[p,m]=u.useState([]),[v,b]=u.useState(null),[T,S]=u.useState(""),[j,_]=u.useState(""),[I,$]=u.useState(""),[B,O]=u.useState(new Set),[z,L]=u.useState({}),[q,le]=u.useState("ci"),[ue,N]=u.useState(!0),[M,ne]=u.useState(!1),[Y,oe]=u.useState(!1),[Ee,ae]=u.useState(""),[V,ie]=u.useState({}),[y,J]=u.useState(""),[X,ce]=u.useState(!1),[k,R]=u.useState({}),[ee,Q]=u.useState(!1),[g,P]=u.useState(""),[we,ke]=u.useState(void 0),[K,Se]=u.useState({}),[te,xe]=u.useState(!1),[Ce,A]=u.useState(""),be=u.useCallback(async()=>{try{const H=await ge("/api/service-identities");if(H.ok){const se=await H.json();m(se.identities)}}catch{}},[]);u.useEffect(()=>{be()},[be]);const je=p.find(H=>H.name===v),Te=u.useCallback(()=>{_(""),$(""),O(new Set);const H={};for(const se of o?.environments??[])H[se.name]={type:"age",provider:"aws",keyId:""};L(H),le("ci"),N(!0),ne(!1),ae(""),i("create")},[o]),Ke=u.useCallback(H=>{const se={};for(const[Re,he]of Object.entries(H.environments)){const Ae=he.type==="kms"?"kms":"age";se[Re]={type:Ae,provider:he.kms?.provider??"aws",keyId:he.kms?.keyId??"",originalType:Ae,originalKeyId:he.kms?.keyId??""}}R(se),P(""),i("update")},[]),qe=u.useCallback(()=>{b(null),S(""),i("list")},[]),pt=u.useCallback(()=>{S(""),A(""),i("detail")},[]);async function wn(){oe(!0),ae("");try{const H={};for(const[Ae,Fe]of Object.entries(z))Fe.type==="kms"&&(H[Ae]={provider:Fe.provider,keyId:Fe.keyId});const se={name:j.trim(),description:I.trim(),namespaces:Array.from(B)};q==="runtime"&&(se.packOnly=!0),ue?se.sharedRecipient=!0:Object.keys(H).length>0&&(se.kmsEnvConfigs=H);const Re=await ge("/api/service-identities",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(se)}),he=await Re.json();if(!Re.ok){ae(he.error??"Failed to create service identity.");return}J(he.identity.name),ie(he.privateKeys??{}),ce(he.sharedRecipient===!0),i("keys")}catch{ae("Network error. Check that the UI server is running.")}finally{oe(!1)}}async function ns(){if(v){Q(!0),P("");try{const H={};for(const[he,Ae]of Object.entries(k))Ae.type==="kms"&&(Ae.originalType!=="kms"||Ae.keyId!==Ae.originalKeyId)&&(H[he]={provider:Ae.provider,keyId:Ae.keyId});if(Object.keys(H).length===0){P("No changes to apply.");return}const se=await ge(`/api/service-identities/${encodeURIComponent(v)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({kmsEnvConfigs:H})}),Re=await se.json();if(!se.ok){P(Re.error??"Failed to update service identity.");return}await be(),pt()}catch{P("Network error. Check that the UI server is running.")}finally{Q(!1)}}}async function ur(H){if(v){ke(H),S("");try{const se=await ge(`/api/service-identities/${encodeURIComponent(v)}/rotate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({environment:H})}),Re=await se.json();if(!se.ok){S(Re.error??"Failed to rotate key.");return}Se(Re.privateKeys??{}),await be(),i("rotate-keys")}catch{S("Network error. Check that the UI server is running.")}finally{ke(void 0)}}}async function Nn(){if(v){xe(!0),A("");try{const H=await ge(`/api/service-identities/${encodeURIComponent(v)}`,{method:"DELETE"});if(!H.ok){const se=await H.json();A(se.error??"Failed to delete service identity.");return}await be(),qe()}catch{A("Network error. Check that the UI server is running.")}finally{xe(!1)}}}if(d==="list")return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Service Identities"}),r.jsx(G.Subtitle,{children:"Per-service cryptographic access scoping"})]}),o&&r.jsx(G.Actions,{children:r.jsx(Z,{variant:"primary",onClick:Te,children:"+ New identity"})})]}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[T&&r.jsx(Gr,{children:T}),p.length===0&&r.jsxs("div",{className:"px-6 py-12 text-center font-sans text-[13px] text-ash",children:[r.jsx("div",{className:"mb-3 text-[28px] opacity-40",children:"🔑"}),"No service identities configured.",o&&r.jsx("div",{className:"mt-4 flex justify-center",children:r.jsx(Z,{variant:"primary",onClick:Te,children:"Create the first one"})})]}),p.map(H=>r.jsxs("div",{role:"button",tabIndex:0,"data-testid":`si-${H.name}`,onClick:()=>{b(H.name),S(""),i("detail")},onKeyDown:se=>{se.key==="Enter"&&(b(H.name),i("detail"))},className:"mb-2 cursor-pointer rounded-lg border border-edge bg-ink-850 px-5 py-4 transition-colors hover:border-edge-strong",children:[r.jsxs("div",{className:"mb-2 flex items-center gap-2.5",children:[r.jsx("span",{className:"font-sans text-[14px] font-semibold text-bone",children:H.name}),H.packOnly&&r.jsx("span",{"data-testid":`si-runtime-badge-${H.name}`,className:"rounded-sm border border-warn-500/20 bg-warn-500/10 px-1.5 py-px font-mono text-[9px] text-warn-500",children:"runtime"})]}),r.jsxs("div",{className:"mb-2.5 font-sans text-[12px] text-ash",children:["Scoped to: ",r.jsx("span",{className:"text-bone",children:H.namespaces.join(", ")})]}),r.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries(H.environments).map(([se,Re])=>r.jsxs("span",{className:"inline-flex items-center gap-1",children:[r.jsx(ot,{env:se,small:!0}),r.jsx("span",{className:`font-mono text-[9px] ${Re.type==="kms"?"text-purple-400":"text-ash-dim"}`,children:Re.type==="kms"?"KMS":"age"})]},se))})]},H.name))]})})]});if(d==="detail")return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:je?.name??v??""}),je?.description&&r.jsx(G.Subtitle,{children:je.description})]}),r.jsxs(G.Actions,{children:[je&&r.jsx(Z,{"data-testid":"update-backends-btn",variant:"ghost",onClick:()=>Ke(je),children:"Update backends"}),r.jsxs("button",{"data-testid":"back-button",onClick:qe,className:Co,children:["←"," Back"]})]})]}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[T&&r.jsx(Gr,{children:T}),je&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"mb-5",children:[r.jsx(vl,{children:"Scoped namespaces"}),r.jsx("div",{className:"flex gap-1.5",children:je.namespaces.map(H=>r.jsx("span",{className:"rounded border border-gold-500/20 bg-gold-500/[0.08] px-2 py-0.5 font-mono text-[11px] text-gold-500",children:H},H))})]}),je.packOnly&&r.jsx("div",{"data-testid":"runtime-info-banner",className:"mb-5 rounded-lg border border-warn-500/20 bg-warn-500/10 px-4 py-2.5 font-sans text-[12px] leading-relaxed text-warn-500",children:"Runtime identity — keys are not registered on encrypted files. This identity can only decrypt packed artifacts."}),r.jsx(vl,{children:"Environment keys"}),o?.environments.map(H=>{const se=je.environments[H.name];if(!se)return null;const Re=se.protected??!1,he=we===H.name;return r.jsxs("div",{"data-testid":`env-${H.name}`,className:"mb-2.5 rounded-lg border border-edge bg-ink-850 px-5 py-4",children:[r.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx(ot,{env:H.name}),Re&&r.jsx("span",{className:"text-[12px] text-stop-500",children:"🔒"}),se.type==="kms"&&r.jsx("span",{className:"rounded-sm border border-purple-400/20 bg-purple-400/10 px-1.5 py-px font-mono text-[10px] text-purple-400",children:"KMS"})]}),se.type==="age"&&r.jsx("button",{"data-testid":`rotate-${H.name}`,disabled:he,onClick:()=>ur(H.name),className:`rounded border border-edge-strong px-2.5 py-0.5 font-sans text-[11px] ${he?"cursor-default text-ash-dim opacity-50":"cursor-pointer text-ash hover:bg-ink-800"}`,children:he?"Rotating…":"Rotate key"})]}),se.type==="kms"&&se.kms&&r.jsxs("div",{className:"font-mono text-[11px] text-ash",children:[r.jsxs("div",{className:"mb-2",children:["Authentication: ",r.jsx("span",{className:"text-purple-400",children:"IAM + KMS"})]}),r.jsxs("div",{children:["Provider: ",r.jsx("span",{className:"text-bone",children:se.kms.provider})]}),r.jsxs("div",{className:"mt-1",children:["Key ID: ",r.jsx("span",{className:"break-all text-bone",children:se.kms.keyId})]}),r.jsx("div",{className:"mt-2.5 rounded border border-purple-400/20 bg-purple-400/10 px-3 py-2 font-sans text-[11px] text-purple-400",children:"No keys to provision. CI and runtime authenticate via IAM role with kms:Decrypt permission."})]}),se.type==="age"&&r.jsxs("div",{className:"font-mono text-[11px] text-ash",children:[r.jsxs("div",{className:"mb-2",children:["Authentication: ",r.jsx("span",{className:"text-go-500",children:"age key"})]}),r.jsxs("div",{children:["Public key:"," ",r.jsx("span",{className:"text-bone",children:se.publicKey?`${se.publicKey.slice(0,12)}...${se.publicKey.slice(-6)}`:"unknown"})]})]})]},H.name)}),r.jsx("div",{className:"mt-8 flex justify-end border-t border-edge pt-5",children:r.jsx(Z,{"data-testid":"delete-identity-btn",variant:"danger",onClick:()=>{A(""),i("delete-confirm")},children:"Delete identity"})})]})]})})]});if(d==="delete-confirm")return r.jsxs("div",{"data-testid":"delete-confirm-view",className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Delete service identity"}),r.jsx(G.Subtitle,{children:"This action cannot be undone"})]})}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[560px]",children:[Ce&&r.jsx(Gr,{children:Ce}),r.jsxs("div",{className:"mb-6 rounded-lg border border-stop-500/40 bg-stop-500/[0.06] px-5 py-4 font-sans text-[13px] text-stop-500",children:[r.jsxs("div",{className:"mb-2 font-semibold",children:["Delete ",r.jsx("span",{className:"font-mono",children:v}),"?"]}),r.jsxs("div",{className:"text-[12px] leading-relaxed text-ash",children:["This will remove the identity from ",r.jsx("span",{className:"font-mono",children:"clef.yaml"})," and de-register its recipients from all scoped encrypted files. Any runtimes currently using this identity's private key will lose access on the next artifact refresh."]})]}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx(Z,{"data-testid":"cancel-delete-btn",variant:"ghost",onClick:pt,disabled:te,children:"Cancel"}),r.jsx(Z,{"data-testid":"confirm-delete-btn",variant:"danger",onClick:Nn,disabled:te,children:te?"Deleting…":"Delete identity"})]})]})})]});if(d==="rotate-keys")return r.jsxs("div",{"data-testid":"rotate-keys-view",className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Key rotated"}),r.jsx(G.Subtitle,{children:`New keys for ${v}`})]})}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[r.jsxs("div",{className:"mb-5 flex items-start gap-2.5 rounded-lg border border-warn-500/40 bg-warn-500/[0.06] px-4 py-3.5 font-sans text-[13px] text-warn-500",children:[r.jsx("span",{className:"shrink-0 text-[16px]",children:"⚠"}),r.jsx("span",{children:"Copy the new private key now — it will not be shown again. Provision it to the runtime and invalidate the old key."})]}),r.jsx(vl,{children:"New private keys"}),Object.entries(K).map(([H,se])=>r.jsxs("div",{className:"mb-2.5 rounded-lg border border-edge bg-ink-850 px-4 py-3.5",children:[r.jsxs("div",{className:"mb-2.5 flex items-center justify-between",children:[r.jsx(ot,{env:H}),r.jsx(bn,{text:se})]}),r.jsx("div",{className:"break-all rounded bg-ink-950 px-2.5 py-2 font-mono text-[11px] text-ash",children:se})]},H)),r.jsx("div",{className:"mt-2 flex justify-end",children:r.jsx(Z,{"data-testid":"rotate-done-btn",variant:"primary",onClick:pt,children:"Done"})})]})})]});if(d==="update"){const H=o?.environments??[],Re=Object.values(k).filter(he=>he.type!=="kms"?!1:he.originalType!=="kms"||he.keyId!==he.originalKeyId).length>0&&Object.entries(k).every(([,he])=>he.type!=="kms"?!0:he.keyId.trim()!=="");return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Update backends"}),r.jsx(G.Subtitle,{children:`Environment backends for ${v}`})]}),r.jsx(G.Actions,{children:r.jsxs("button",{onClick:pt,className:Co,children:["←"," Cancel"]})})]}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[560px]",children:[g&&r.jsx(Gr,{children:g}),r.jsx("div",{className:"mb-4 font-sans text-[12px] leading-relaxed text-ash",children:"Switch age environments to KMS, or update an existing KMS key ID. To revert KMS to age, delete and recreate the identity."}),r.jsx("div",{className:"mb-7 flex flex-col gap-2",children:H.map(he=>{const Ae=k[he.name];return Ae?r.jsxs("div",{className:"rounded-lg border border-edge bg-ink-850 px-4 py-3.5",children:[r.jsxs("div",{className:`flex items-center justify-between ${Ae.type==="kms"?"mb-3":""}`,children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ot,{env:he.name}),he.protected&&r.jsx("span",{className:"text-[11px] text-stop-500",children:"🔒"})]}),r.jsx("div",{className:"flex gap-1",children:["age","kms"].map(Fe=>{const mt=Ae.originalType==="kms"&&Fe==="age",ss=Ae.type===Fe?Fe==="kms"?"bg-purple-400 border-purple-400 text-ghost":"bg-gold-500 border-gold-500 text-ink-950":"bg-transparent border-edge text-ash";return r.jsx("button",{"data-testid":Fe==="kms"?`update-kms-toggle-${he.name}`:void 0,disabled:mt,onClick:()=>{mt||R(ls=>({...ls,[he.name]:{...Ae,type:Fe}}))},title:mt?"KMS → age requires delete and recreate":void 0,className:`rounded border px-2.5 py-0.5 font-mono text-[11px] transition-colors ${ss} ${mt?"cursor-not-allowed opacity-40":"cursor-pointer"}`,children:Fe.toUpperCase()},Fe)})})]}),Ae.type==="kms"&&r.jsxs("div",{className:"flex gap-2",children:[r.jsxs("select",{value:Ae.provider,onChange:Fe=>R(mt=>({...mt,[he.name]:{...Ae,provider:Fe.target.value}})),className:`${gl} w-[90px] shrink-0`,children:[r.jsx("option",{value:"aws",children:"AWS"}),r.jsx("option",{value:"gcp",children:"GCP"}),r.jsx("option",{value:"azure",children:"Azure"})]}),r.jsx("input",{"data-testid":`update-keyid-${he.name}`,value:Ae.keyId,onChange:Fe=>R(mt=>({...mt,[he.name]:{...Ae,keyId:Fe.target.value}})),placeholder:"arn:aws:kms:… or key resource ID",className:`${gl} flex-1`})]})]},he.name):null})}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx(Z,{"data-testid":"update-cancel-btn",variant:"ghost",onClick:pt,disabled:ee,children:"Cancel"}),r.jsx(Z,{"data-testid":"update-submit-btn",variant:"primary",onClick:ns,disabled:!Re||ee,children:ee?"Saving…":"Save changes"})]})]})})]})}if(d==="keys"){const H=Object.keys(V).length>0,se=X?Object.values(V)[0]:void 0,Re=X?Object.keys(V):[];return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:`${y} created`}),r.jsx(G.Subtitle,{children:"Service identity ready"})]})}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[H&&r.jsxs("div",{className:"mb-5 flex items-start gap-2.5 rounded-lg border border-warn-500/40 bg-warn-500/[0.06] px-4 py-3.5 font-sans text-[13px] text-warn-500",children:[r.jsx("span",{className:"shrink-0 text-[16px]",children:"⚠"}),r.jsx("span",{children:X?`Copy this key now — it will not be shown again. Set it as CLEF_AGE_KEY in your CI. It decrypts: ${Re.join(", ")}.`:"Copy these private keys now — they will not be shown again. Store each key securely and provision it to the relevant runtime."})]}),!H&&r.jsx("div",{className:"mb-5 rounded-lg border border-purple-400/30 bg-purple-400/10 px-4 py-3.5 font-sans text-[13px] text-purple-400",children:"All environments use KMS. No private keys to provision — runtimes authenticate via IAM role."}),r.jsx(vl,{children:"Private keys"}),X&&se?r.jsxs("div",{className:"mb-2.5 rounded-lg border border-gold-500/30 bg-ink-850 px-4 py-3.5",children:[r.jsxs("div",{className:"mb-2.5 flex items-center justify-between",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx("span",{className:"font-mono text-[11px] font-semibold text-gold-500",children:"CLEF_AGE_KEY"}),r.jsx("span",{className:"font-sans text-[11px] text-ash-dim",children:"—"}),Re.map(he=>r.jsx(ot,{env:he,small:!0},he))]}),r.jsx(bn,{text:se})]}),r.jsx("div",{className:"break-all rounded bg-ink-950 px-2.5 py-2 font-mono text-[11px] text-ash",children:se})]}):Object.entries(V).map(([he,Ae])=>r.jsxs("div",{className:"mb-2.5 rounded-lg border border-edge bg-ink-850 px-4 py-3.5",children:[r.jsxs("div",{className:"mb-2.5 flex items-center justify-between",children:[r.jsx(ot,{env:he}),r.jsx(bn,{text:Ae})]}),r.jsx("div",{className:"break-all rounded bg-ink-950 px-2.5 py-2 font-mono text-[11px] text-ash",children:Ae})]},he)),r.jsx("div",{className:"mt-2 flex justify-end",children:r.jsx(Z,{variant:"primary",onClick:()=>{be(),qe()},children:"Done"})})]})})]})}const Wt=o?.namespaces??[],Sn=o?.environments??[],zn=j.trim()&&p.some(H=>H.name===j.trim())?"A service identity with this name already exists.":"",rs=j.trim()!==""&&!zn&&B.size>0&&Sn.every(H=>{const se=z[H.name];return se?.type==="age"||se?.type==="kms"&&se.provider&&se.keyId.trim()});return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"New service identity"}),r.jsx(G.Subtitle,{children:"Scope cryptographic access to specific namespaces"})]}),r.jsx(G.Actions,{children:r.jsxs("button",{onClick:qe,className:Co,children:["←"," Cancel"]})})]}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[560px]",children:[Ee&&r.jsx(Gr,{children:Ee}),r.jsxs("div",{className:"mb-5",children:[r.jsx(Yr,{children:"Name"}),r.jsx("input",{"data-testid":"si-name-input",value:j,onChange:H=>_(H.target.value),placeholder:"e.g. api-gateway",className:Kd}),zn&&r.jsx("div",{className:"mt-1.5 font-sans text-[12px] text-stop-500",children:zn})]}),r.jsxs("div",{className:"mb-6",children:[r.jsx(Yr,{children:"Description (optional)"}),r.jsx("input",{value:I,onChange:H=>$(H.target.value),placeholder:"e.g. API gateway service account",className:Kd})]}),r.jsxs("div",{className:"mb-6",children:[r.jsx(Yr,{children:"Role"}),r.jsx("div",{className:"mb-2 flex w-fit overflow-hidden rounded-md border border-edge",children:["ci","runtime"].map(H=>r.jsx("button",{"data-testid":`role-${H}`,onClick:()=>{le(H),N(H==="ci"),ne(!1)},className:`cursor-pointer border-none px-4 py-1.5 font-sans text-[12px] transition-colors ${q===H?"bg-gold-500 font-semibold text-ink-950":"bg-transparent font-normal text-ash"}`,children:H==="ci"?"CI":"Runtime"},H))}),r.jsx("div",{className:"font-sans text-[12px] leading-relaxed text-ash",children:q==="ci"?"Decrypts files directly. Keys are registered on encrypted SOPS files. Use for CI pipelines and local tools.":"Decrypts packed artifacts only. Keys are NOT added to encrypted files — smaller blast radius for deployment targets (Lambda, ECS, containers)."})]}),r.jsxs("div",{className:"mb-6",children:[r.jsx(Yr,{children:"Namespaces"}),r.jsx("div",{className:"mb-2.5 font-sans text-[12px] text-ash",children:"This identity can decrypt secrets only from the selected namespaces."}),Wt.length===0&&r.jsx("div",{className:"font-sans text-[12px] text-ash-dim",children:"No namespaces defined in manifest."}),r.jsx("div",{className:"flex flex-col gap-1.5",children:Wt.map(H=>{const se=B.has(H.name);return r.jsxs("label",{"data-testid":`ns-checkbox-${H.name}`,className:`flex cursor-pointer items-center gap-2.5 rounded-md border px-3.5 py-2.5 transition-colors ${se?"border-gold-500/40 bg-gold-500/[0.08]":"border-edge bg-ink-850"}`,children:[r.jsx("input",{type:"checkbox",checked:se,onChange:Re=>{const he=new Set(B);Re.target.checked?he.add(H.name):he.delete(H.name),O(he)},className:"accent-gold-500"}),r.jsx("span",{className:`font-mono text-[12px] ${se?"text-gold-500":"text-bone"}`,children:H.name}),H.description&&r.jsxs("span",{className:"font-sans text-[11px] text-ash",children:["— ",H.description]})]},H.name)})})]}),r.jsxs("div",{className:"mb-7",children:[r.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[r.jsx(Yr,{children:"Environment backends"}),r.jsxs("label",{"data-testid":"shared-recipient-toggle",className:`flex cursor-pointer select-none items-center gap-1.5 font-sans text-[11px] ${ue?"text-gold-500":"text-ash"}`,children:[r.jsxs("div",{className:`relative h-4 w-7 shrink-0 rounded-full transition-colors ${ue?"bg-gold-500":"bg-edge"}`,children:[r.jsx("div",{className:`absolute top-0.5 h-3 w-3 rounded-full bg-white transition-all ${ue?"left-3.5":"left-0.5"}`}),r.jsx("input",{type:"checkbox",checked:ue,onChange:H=>{N(H.target.checked);const se=q==="ci";ne(H.target.checked!==se)},className:"absolute h-0 w-0 opacity-0"})]}),"Shared age key"]})]}),r.jsx("div",{className:"mb-2.5 font-sans text-[12px] text-ash",children:ue?"One age key pair for all environments — one CI secret, easier to provision.":"Age generates a key pair per environment. KMS uses your cloud provider — no key material is provisioned."}),M&&r.jsx("div",{"data-testid":"shared-recipient-warning",className:"mb-2.5 rounded-md border border-warn-500/40 bg-warn-500/[0.06] px-3.5 py-2.5 font-sans text-[12px] leading-relaxed text-warn-500",children:q==="ci"&&!ue?"Most CI pipelines use a single key. Per-environment keys are useful when your CI environments have separate secret access controls (e.g. GitHub environment protection rules).":"Runtime workloads typically use per-environment keys for isolation. A shared key means a compromised key in any environment decrypts artifacts for all environments."}),r.jsx("div",{className:"flex flex-col gap-2",children:ue?r.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-gold-500/30 bg-gold-500/[0.08] px-4 py-3.5",children:[r.jsx("div",{className:"flex flex-wrap gap-1.5",children:Sn.map(H=>r.jsx(ot,{env:H.name,small:!0},H.name))}),r.jsx("span",{className:"ml-auto font-mono text-[11px] text-gold-500",children:"age (shared)"})]}):Sn.map(H=>{const se=z[H.name]??{type:"age",provider:"aws",keyId:""};return r.jsxs("div",{className:"rounded-lg border border-edge bg-ink-850 px-4 py-3.5",children:[r.jsxs("div",{className:`flex items-center justify-between ${se.type==="kms"?"mb-3":""}`,children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ot,{env:H.name}),H.protected&&r.jsx("span",{className:"text-[11px] text-stop-500",children:"🔒"})]}),r.jsx("div",{className:"flex gap-1",children:["age","kms"].map(Re=>{const Ae=se.type===Re?Re==="kms"?"bg-purple-400 border-purple-400 text-ghost":"bg-gold-500 border-gold-500 text-ink-950":"bg-transparent border-edge text-ash";return r.jsx("button",{onClick:()=>L(Fe=>({...Fe,[H.name]:{...se,type:Re}})),className:`cursor-pointer rounded border px-2.5 py-0.5 font-mono text-[11px] transition-colors ${Ae}`,children:Re.toUpperCase()},Re)})})]}),se.type==="kms"&&r.jsxs("div",{className:"flex gap-2",children:[r.jsxs("select",{value:se.provider,onChange:Re=>L(he=>({...he,[H.name]:{...se,provider:Re.target.value}})),className:`${gl} w-[90px] shrink-0`,children:[r.jsx("option",{value:"aws",children:"AWS"}),r.jsx("option",{value:"gcp",children:"GCP"}),r.jsx("option",{value:"azure",children:"Azure"})]}),r.jsx("input",{value:se.keyId,onChange:Re=>L(he=>({...he,[H.name]:{...se,keyId:Re.target.value}})),placeholder:"arn:aws:kms:… or key resource ID",className:`${gl} flex-1`})]})]},H.name)})})]}),r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsx(Z,{variant:"ghost",onClick:qe,disabled:Y,children:"Cancel"}),r.jsx(Z,{"data-testid":"create-si-submit",variant:"primary",onClick:wn,disabled:!rs||Y,children:Y?"Creating…":"Create identity"})]})]})})]})}function vl({children:o}){return r.jsx("div",{className:"mb-1.5 font-sans text-[12px] font-semibold uppercase tracking-[0.05em] text-ash",children:o})}function Yr({children:o}){return r.jsx("div",{className:"mb-1.5 font-sans text-[12px] font-semibold text-ash",children:o})}function Gr({children:o}){return r.jsx("div",{className:"mb-4 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3 font-sans text-[13px] text-stop-500",children:o})}const yl={age:"age",awskms:"AWS KMS",gcpkms:"GCP KMS",azurekv:"Azure Key Vault",pgp:"PGP",hsm:"HSM (PKCS#11)"},Jm={awskms:"arn:aws:kms:region:account:key/id",gcpkms:"projects/.../locations/.../keyRings/.../cryptoKeys/...",azurekv:"https://vault-name.vault.azure.net/keys/key-name/version",pgp:"PGP fingerprint",hsm:"pkcs11:slot=0;label=clef-dek-wrapper"},Xm=["age","awskms","gcpkms","azurekv","pgp","hsm"],Zm="w-full box-border rounded-md border border-edge bg-ink-850 px-3 py-2 font-mono text-[12px] text-bone outline-none focus-visible:border-gold-500 placeholder:text-ash-dim",ex="w-full rounded-md border border-edge bg-ink-850 px-2.5 py-1.5 font-sans text-[13px] text-bone cursor-pointer outline-none focus-visible:border-gold-500";function tx({manifest:o,setView:d,reloadManifest:i}){const[p,m]=u.useState(1),[v,b]=u.useState(null),[T,S]=u.useState("age"),[j,_]=u.useState(""),[I,$]=u.useState("all"),[B,O]=u.useState(""),[z,L]=u.useState(null),[q,le]=u.useState(!1),[ue,N]=u.useState(!1),[M,ne]=u.useState(null),[Y,oe]=u.useState(!1),[Ee,ae]=u.useState(null);u.useEffect(()=>{V()},[]),u.useEffect(()=>{o&&o.environments.length>0&&!B&&O(o.environments[0].name)},[o,B]);const V=async()=>{try{const k=await ge("/api/backend-config");k.ok&&b(await k.json())}catch{}},ie=async(k=!1)=>{oe(!0),ae(null);const R={target:{backend:T,key:T!=="age"?j:void 0},environment:I==="single"?B:void 0,confirmed:k||void 0};try{const ee=await ge("/api/migrate-backend/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(R)});if(ee.status===409){le(!0),oe(!1);return}if(!ee.ok){const g=await ee.json();ae(g.error??"Preview failed"),oe(!1);return}const Q=await ee.json();L(Q),le(!1),N(!1),m(2)}catch(ee){ae(ee instanceof Error?ee.message:"Preview failed")}finally{oe(!1)}},y=async()=>{m(3),ae(null);const k={target:{backend:T,key:T!=="age"?j:void 0},environment:I==="single"?B:void 0,confirmed:!0};try{const R=await ge("/api/migrate-backend/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});if(!R.ok){const Q=await R.json();ae(Q.error??"Migration failed"),m(2);return}const ee=await R.json();ne(ee),i(),m(4)}catch(R){ae(R instanceof Error?R.message:"Migration failed"),m(2)}},J=()=>{m(1),L(null),ne(null),le(!1),N(!1),ae(null),V()},X=o?.environments??[],ce=z?.events.filter(k=>k.type==="info"&&k.message.startsWith("Would")).length??0;return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Backend"}),r.jsx(G.Subtitle,{children:"clef migrate-backend — change encryption backend"})]})}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"mx-auto max-w-[620px]",children:[r.jsx("div",{className:"mb-8 flex items-center",children:[1,2,3,4].map((k,R)=>r.jsxs(bt.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:`flex h-6 w-6 items-center justify-center rounded-full font-mono text-[11px] font-bold ${p>=k?"bg-gold-500 border border-gold-500 text-ink-950":"bg-ink-850 border border-edge text-ash-dim"}`,children:k}),r.jsx("span",{className:`font-sans text-[12px] ${p>=k?"text-bone":"text-ash-dim"} ${p===k?"font-semibold":"font-normal"}`,children:k===1?"Configure":k===2?"Preview":k===3?"Migrate":"Done"})]}),R<3&&r.jsx("div",{className:`mx-3 h-px min-w-[20px] flex-1 ${p>k?"bg-gold-500":"bg-edge"}`})]},k))}),Ee&&r.jsx("div",{className:"mb-4 rounded-lg border border-stop-500/30 bg-stop-500/10 px-4 py-3 font-sans text-[13px] text-stop-500",children:Ee}),p===1&&r.jsxs("div",{children:[v&&r.jsxs("div",{className:"mb-6",children:[r.jsx(jl,{children:"Current Configuration"}),r.jsxs("div",{className:"rounded-lg border border-edge bg-ink-850 p-3.5",children:[r.jsxs("div",{className:"mb-2 font-mono text-[12px] text-bone",children:["Default backend:"," ",r.jsx("span",{className:"font-semibold text-gold-500",children:yl[v.global.default_backend]})]}),v.environments.map(k=>r.jsxs("div",{className:"mb-px flex items-center gap-2 font-mono text-[11px] text-ash",children:[r.jsxs("span",{children:[k.protected?"🔒 ":"",k.name]}),r.jsx("span",{className:"text-ash-dim",children:"→"}),r.jsxs("span",{className:k.hasOverride?"text-warn-500":"text-ash",children:[yl[k.effective.backend],k.hasOverride?" (override)":""]})]},k.name))]})]}),r.jsxs("div",{className:"mb-5",children:[r.jsx(jl,{children:"Target Backend"}),r.jsx("div",{className:"flex flex-col gap-1.5",children:Xm.map(k=>r.jsxs("label",{className:`flex cursor-pointer items-center gap-2 font-sans text-[13px] ${T===k?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"backend",value:k,checked:T===k,onChange:()=>{S(k),_("")},className:"accent-gold-500","data-testid":`backend-radio-${k}`}),yl[k]]},k))})]}),T!=="age"&&r.jsxs("div",{className:"mb-5",children:[r.jsx(jl,{children:"Key Identifier"}),r.jsx("input",{type:"text",value:j,onChange:k=>_(k.target.value),placeholder:Jm[T],"data-testid":"backend-key-input",className:Zm})]}),r.jsxs("div",{className:"mb-6",children:[r.jsx(jl,{children:"Scope"}),r.jsxs("div",{className:"mb-2 flex gap-4",children:[r.jsxs("label",{className:`flex cursor-pointer items-center gap-1.5 font-sans text-[13px] ${I==="all"?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"scope",checked:I==="all",onChange:()=>$("all"),className:"accent-gold-500"}),"All environments"]}),r.jsxs("label",{className:`flex cursor-pointer items-center gap-1.5 font-sans text-[13px] ${I==="single"?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"scope",checked:I==="single",onChange:()=>$("single"),className:"accent-gold-500"}),"Single environment"]})]}),I==="single"&&r.jsx("select",{value:B,onChange:k=>O(k.target.value),"data-testid":"env-select",className:ex,children:X.map(k=>r.jsxs("option",{value:k.name,children:[k.name,k.protected?" (protected)":""]},k.name))})]}),q&&r.jsxs("div",{className:"mb-4 rounded-lg border border-warn-500/30 bg-warn-500/10 px-4 py-3",children:[r.jsx("div",{className:"mb-2 font-sans text-[13px] text-warn-500",children:"This migration affects protected environments."}),r.jsxs("label",{className:"flex cursor-pointer items-center gap-2 font-sans text-[12px] text-bone",children:[r.jsx("input",{type:"checkbox",checked:ue,onChange:k=>N(k.target.checked),className:"accent-warn-500","data-testid":"protected-confirm"}),"I understand and want to proceed"]})]}),r.jsx(Z,{variant:"primary",onClick:()=>ie(ue),disabled:Y||T!=="age"&&!j.trim(),children:Y?"Loading...":q&&ue?"Confirm & Preview":"Preview"})]}),p===2&&z&&r.jsxs("div",{children:[r.jsxs("div",{className:"mb-5 font-sans text-[13px] text-ash",children:["Migrating to"," ",r.jsx("span",{className:"font-semibold text-gold-500",children:yl[T]}),I==="single"?` (${B} only)`:" (all environments)"]}),z.events.filter(k=>k.type==="info").length>0&&r.jsxs("div",{className:"mb-4",children:[r.jsxs(Hd,{toneClass:"text-go-500",children:["Files to migrate (",z.events.filter(k=>k.type==="info").length,")"]}),z.events.filter(k=>k.type==="info").map((k,R)=>r.jsx(Vd,{icon:"→",iconClass:"text-go-500",label:k.message},R))]}),z.events.filter(k=>k.type==="skip").length>0&&r.jsxs("div",{className:"mb-4",children:[r.jsxs(Hd,{toneClass:"text-ash-dim",children:["Already on target (",z.events.filter(k=>k.type==="skip").length,")"]}),z.events.filter(k=>k.type==="skip").map((k,R)=>r.jsx(Vd,{icon:"↷",iconClass:"text-ash-dim",label:k.message},R))]}),z.result.warnings.length>0&&r.jsx("div",{className:"mb-4",children:z.result.warnings.map((k,R)=>r.jsxs("div",{className:"mb-1 font-mono text-[11px] text-warn-500",children:["⚠ ",k]},R))}),r.jsxs("div",{className:"mt-6 flex gap-2.5",children:[r.jsx(Z,{variant:"ghost",onClick:J,children:"Back"}),r.jsxs(Z,{variant:"primary",onClick:y,disabled:ce===0,"data-testid":"apply-button",children:["Migrate ",ce," file",ce!==1?"s":""]})]})]}),p===3&&r.jsxs("div",{className:"flex flex-col items-center pt-10",children:[r.jsx("div",{className:"mb-4 h-10 w-10 animate-spin rounded-full border-[3px] border-edge border-t-gold-500"}),r.jsx("div",{className:"font-sans text-[14px] text-ash",children:"Migrating... this may take a moment"})]}),p===4&&M&&r.jsxs("div",{children:[r.jsxs("div",{className:"flex flex-col items-center pt-5 pb-8",children:[r.jsx("div",{className:`mb-4 flex h-14 w-14 items-center justify-center rounded-full text-[24px] ${M.result.rolledBack?"border border-stop-500/30 bg-stop-500/10 text-stop-500":"border border-go-500/30 bg-go-500/10 text-go-500"}`,children:M.result.rolledBack?"⚠":"✓"}),r.jsx("div",{className:`mb-2 font-sans text-[16px] font-semibold ${M.result.rolledBack?"text-stop-500":"text-go-500"}`,children:M.result.rolledBack?"Migration failed":"Migration complete"}),M.result.rolledBack&&M.result.error&&r.jsx("div",{className:"mb-2 text-center font-mono text-[12px] text-stop-500",children:M.result.error}),M.result.rolledBack&&r.jsx("div",{className:"mb-2 font-sans text-[12px] text-ash",children:"All changes have been rolled back."}),!M.result.rolledBack&&r.jsxs("div",{className:"font-mono text-[12px] text-ash",children:[M.result.migratedFiles.length," migrated,"," ",M.result.skippedFiles.length," skipped,"," ",M.result.verifiedFiles.length," verified"]})]}),M.result.warnings.length>0&&r.jsx("div",{className:"mb-4",children:M.result.warnings.map((k,R)=>r.jsxs("div",{className:"mb-1 font-mono text-[11px] text-warn-500",children:["⚠ ",k]},R))}),!M.result.rolledBack&&r.jsxs("div",{className:"mb-6 rounded-md border border-edge bg-ink-850 px-3.5 py-2.5 font-mono text-[11px] text-ash",children:['git add clef.yaml .sops.yaml secrets/ && git commit -m "chore: migrate backend to ',T,'"']}),r.jsxs("div",{className:"flex gap-2.5",children:[r.jsx(Z,{variant:"primary",onClick:()=>d("matrix"),children:"View in Matrix"}),r.jsx(Z,{variant:"ghost",onClick:J,children:"Migrate again"})]})]})]})})]})}function jl({children:o}){return r.jsx("div",{className:"mb-2 font-sans text-[12px] font-semibold uppercase tracking-[0.05em] text-ash",children:o})}function Hd({children:o,toneClass:d}){return r.jsx("div",{className:`mb-2 font-sans text-[11px] font-semibold uppercase tracking-[0.06em] ${d}`,children:o})}function Vd({icon:o,iconClass:d,label:i}){return r.jsxs("div",{className:"mb-px flex items-center gap-2.5 rounded-md px-2.5 py-1",children:[r.jsx("span",{className:`font-mono text-[13px] ${d}`,children:o}),r.jsx("span",{className:"font-mono text-[12px] text-bone",children:i})]})}const nx=["age","awskms","gcpkms","azurekv","pgp"],rx={age:"age",awskms:"AWS KMS",gcpkms:"GCP KMS",azurekv:"Azure Key Vault",pgp:"PGP"},sx={awskms:"arn:aws:kms:region:account:key/id",gcpkms:"projects/.../locations/.../keyRings/.../cryptoKeys/...",azurekv:"https://vault-name.vault.azure.net/keys/key-name/version",pgp:"PGP fingerprint"},kl="w-full bg-ink-850 border border-edge rounded-md px-2.5 py-1.5 font-sans text-[13px] text-bone outline-none cursor-pointer focus-visible:border-gold-500";function lx({manifest:o,setView:d,reloadManifest:i}){const p=o?.environments??[],m=o?.namespaces??[],v=p[0]?.name??"",b=m[0]?.name??"",[T,S]=u.useState("idle"),[j,_]=u.useState(null),[I,$]=u.useState("env"),[B,O]=u.useState(v),[z,L]=u.useState(b),[q,le]=u.useState(b),[ue,N]=u.useState(v),[M,ne]=u.useState(!1),[Y,oe]=u.useState("age"),[Ee,ae]=u.useState(""),[V,ie]=u.useState(""),[y,J]=u.useState(""),[X,ce]=u.useState(null),k=I==="env"?B?{kind:"env",name:B}:null:I==="namespace"?z?{kind:"namespace",name:z}:null:q&&ue?{kind:"cell",namespace:q,environment:ue}:null,R=k?k.kind==="env"?`env ${k.name}`:k.kind==="namespace"?`namespace ${k.name}`:`${k.namespace}/${k.environment}`:"",ee=M&&Y!=="age"&&Ee.trim().length===0,Q=y===R&&R.length>0,g=k!==null&&Q&&!ee&&T==="idle",P=X?Object.values(X.pendingKeysByCell).reduce((K,Se)=>K+Se.length,0):0,we=async()=>{if(!k)return;S("running"),_(null);const K=V.split(",").map(te=>te.trim()).filter(te=>te.length>0),Se={scope:k};M&&(Se.backend=Y,Y!=="age"&&(Se.key=Ee.trim())),K.length>0&&(Se.keys=K);try{const te=await ge("/api/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Se)});if(!te.ok){const Ce=await te.json().catch(()=>({error:"Reset failed"}));_(Ce.error??"Reset failed"),S("idle");return}const xe=await te.json();ce(xe.result),i(),S("done")}catch(te){_(te instanceof Error?te.message:"Reset failed"),S("idle")}},ke=()=>{S("idle"),ce(null),_(null),J("")};return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"Reset"}),r.jsx(G.Subtitle,{children:"clef reset — destructively scaffold fresh placeholders"})]})}),r.jsx("div",{className:"flex-1 overflow-auto p-6",children:r.jsxs("div",{className:"max-w-[620px] mx-auto",children:[j&&r.jsx("div",{"data-testid":"reset-error",className:"bg-stop-500/10 border border-stop-500/40 rounded-lg px-4 py-3 mb-4 font-sans text-[13px] text-stop-500",children:j}),T==="idle"&&r.jsxs("div",{children:[r.jsxs("div",{className:"mb-5",children:[r.jsx(bl,{children:"Scope"}),r.jsx("div",{className:"flex gap-4 mb-2.5",children:["env","namespace","cell"].map(K=>r.jsxs("label",{className:`flex items-center gap-1.5 cursor-pointer font-sans text-[13px] ${I===K?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"reset-scope-kind",checked:I===K,onChange:()=>{$(K),J("")},"data-testid":`reset-scope-${K}`,className:"accent-gold-500"}),K==="env"?"Environment":K==="namespace"?"Namespace":"Cell"]},K))}),I==="env"&&r.jsx("select",{value:B,onChange:K=>{O(K.target.value),J("")},"data-testid":"reset-env-select",className:kl,children:p.map(K=>r.jsxs("option",{value:K.name,children:[K.name,K.protected?" (protected)":""]},K.name))}),I==="namespace"&&r.jsx("select",{value:z,onChange:K=>{L(K.target.value),J("")},"data-testid":"reset-namespace-select",className:kl,children:m.map(K=>r.jsx("option",{value:K.name,children:K.name},K.name))}),I==="cell"&&r.jsxs("div",{className:"flex gap-2",children:[r.jsx("select",{value:q,onChange:K=>{le(K.target.value),J("")},"data-testid":"reset-cell-namespace-select",className:`${kl} flex-1`,children:m.map(K=>r.jsx("option",{value:K.name,children:K.name},K.name))}),r.jsx("select",{value:ue,onChange:K=>{N(K.target.value),J("")},"data-testid":"reset-cell-env-select",className:`${kl} flex-1`,children:p.map(K=>r.jsxs("option",{value:K.name,children:[K.name,K.protected?" (protected)":""]},K.name))})]})]}),r.jsxs("div",{className:"mb-5",children:[r.jsxs("label",{className:"flex items-center gap-2 cursor-pointer font-sans text-[13px] text-bone",children:[r.jsx("input",{type:"checkbox",checked:M,onChange:K=>ne(K.target.checked),"data-testid":"reset-switch-backend",className:"accent-gold-500"}),"Switch backend as part of reset"]}),M&&r.jsxs("div",{className:"mt-3 p-3.5 bg-ink-850 border border-edge rounded-lg",children:[r.jsx(bl,{children:"Target Backend"}),r.jsx("div",{className:"flex flex-col gap-1.5",children:nx.map(K=>r.jsxs("label",{className:`flex items-center gap-2 cursor-pointer font-sans text-[13px] ${Y===K?"text-bone":"text-ash"}`,children:[r.jsx("input",{type:"radio",name:"reset-target-backend",checked:Y===K,onChange:()=>{oe(K),ae("")},"data-testid":`reset-backend-radio-${K}`,className:"accent-gold-500"}),rx[K]]},K))}),Y!=="age"&&r.jsx("div",{className:"mt-3",children:r.jsx(ut,{label:"Key Identifier",children:r.jsx(kt,{type:"text",value:Ee,onChange:K=>ae(K.target.value),placeholder:sx[Y],"data-testid":"reset-backend-key-input"})})})]})]}),r.jsxs("div",{className:"mb-5",children:[r.jsx(bl,{children:"Explicit Keys (optional)"}),r.jsx(kt,{type:"text",value:V,onChange:K=>ie(K.target.value),placeholder:"DB_URL, DB_PASSWORD","data-testid":"reset-keys-input"}),r.jsx("div",{className:"font-sans text-[11px] text-ash mt-1.5",children:"Comma-separated. Ignored when the namespace has a schema — schema keys are authoritative."})]}),r.jsxs("div",{className:"bg-stop-500/10 border border-stop-500/40 rounded-lg px-4 py-3.5 mb-4 font-sans text-[13px] text-stop-500 leading-relaxed",children:["⚠"," This will ",r.jsx("strong",{children:"ABANDON"})," the current encrypted contents of the affected cells. Decryption will ",r.jsx("strong",{children:"NOT"})," be attempted. This cannot be undone except via ",r.jsx("code",{children:"git revert"}),"."]}),r.jsxs("div",{className:"mb-5",children:[r.jsxs(bl,{children:["Type ",r.jsx("code",{className:"text-bone",children:R||"<scope>"})," to confirm"]}),r.jsx(kt,{type:"text",value:y,onChange:K=>J(K.target.value),placeholder:R,"data-testid":"reset-confirm-input",disabled:!k})]}),r.jsxs(Z,{variant:"danger",onClick:we,disabled:!g,"data-testid":"reset-submit",children:["Reset ",R||"<scope>"]})]}),T==="running"&&r.jsxs("div",{className:"flex flex-col items-center pt-10","data-testid":"reset-running",children:[r.jsx("div",{className:"w-10 h-10 border-[3px] border-edge border-t-gold-500 rounded-full mb-4 animate-spin"}),r.jsxs("div",{className:"font-sans text-[14px] text-ash",children:["Resetting ",R,"..."]})]}),T==="done"&&X&&r.jsxs("div",{"data-testid":"reset-done",children:[r.jsxs("div",{className:"flex flex-col items-center pt-5 pb-6",children:[r.jsx("div",{className:"w-14 h-14 rounded-full bg-go-500/15 border border-go-500/40 flex items-center justify-center text-[24px] text-go-500 mb-4",children:"✓"}),r.jsx("div",{className:"font-sans font-semibold text-[16px] text-go-500 mb-2",children:"Reset complete"}),r.jsxs("div",{className:"font-mono text-[12px] text-ash",children:[X.scaffoldedCells.length," cell",X.scaffoldedCells.length===1?"":"s"," scaffolded",P>0?`, ${P} pending placeholder${P===1?"":"s"}`:""]})]}),X.backendChanged&&r.jsxs("div",{className:"bg-ink-850 border border-edge rounded-md px-3.5 py-2.5 mb-4 font-mono text-[11px] text-ash",children:["Backend override written for: ",X.affectedEnvironments.join(", ")]}),P>0&&r.jsxs("div",{className:"font-sans text-[12px] text-ash mb-4 leading-relaxed",children:["Run ",r.jsx("code",{children:"clef set"})," (or use the namespace editor) to replace placeholders with real values."]}),r.jsxs("div",{className:"flex gap-2.5",children:[r.jsx(Z,{variant:"primary",onClick:()=>d("matrix"),"data-testid":"reset-view-matrix",children:"View in Matrix"}),r.jsx(Z,{variant:"ghost",onClick:ke,"data-testid":"reset-start-over",children:"Reset another"})]})]})]})})]})}function bl({children:o}){return r.jsx("div",{className:"font-sans text-[12px] font-semibold text-ash mb-2 uppercase tracking-[0.05em]",children:o})}const Wd="font-mono text-[12px] bg-ink-850 text-bone border border-edge rounded-sm px-2 py-0.5 outline-none focus-visible:border-gold-500",qd="flex items-center gap-2 font-mono text-[12px] text-ash";function ax({manifest:o}){const d=o?.namespaces??[],i=o?.environments??[],[p,m]=u.useState(d[0]?.name??""),[v,b]=u.useState(i[0]?.name??""),[T,S]=u.useState([]),[j,_]=u.useState(!1),[I,$]=u.useState(null);u.useEffect(()=>{d.length>0&&!p&&m(d[0].name),i.length>0&&!v&&b(i[0].name)},[d,i,p,v]);const B=u.useCallback(async()=>{if(!(!p||!v)){_(!0),$(null);try{const O=await ge(`/api/git/log/${p}/${v}`);if(O.ok){const z=await O.json();S(z.log)}else{const z=await O.json().catch(()=>({}));$(z.error??"Failed to load history"),S([])}}catch{$("Network error — could not load history"),S([])}finally{_(!1)}}},[p,v]);return u.useEffect(()=>{B()},[B]),r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsx(G,{children:r.jsxs("div",{children:[r.jsx(G.Title,{children:"History"}),r.jsx(G.Subtitle,{children:"Commit log per encrypted file"})]})}),r.jsxs("div",{className:"flex gap-3 px-6 py-4 border-b border-edge",children:[r.jsxs("label",{className:qd,children:["Namespace",r.jsx("select",{value:p,onChange:O=>m(O.target.value),className:Wd,children:d.map(O=>r.jsx("option",{value:O.name,children:O.name},O.name))})]}),r.jsxs("label",{className:qd,children:["Environment",r.jsx("select",{value:v,onChange:O=>b(O.target.value),className:Wd,children:i.map(O=>r.jsx("option",{value:O.name,children:O.name},O.name))})]})]}),r.jsxs("div",{className:"flex-1 overflow-auto px-6 pb-6",children:[j&&r.jsx("div",{className:"p-6 font-mono text-[12px] text-ash",children:"Loading…"}),!j&&I&&r.jsx("div",{className:"p-6 font-mono text-[12px] text-stop-500",children:I}),!j&&!I&&T.length===0&&r.jsx("div",{className:"pt-6",children:r.jsx(kn,{title:"No commits found",body:`No history for ${p}/${v}.`})}),!j&&!I&&T.length>0&&r.jsx("div",{className:"mt-4",children:r.jsxs(Pe,{children:[r.jsx(Pe.Header,{children:r.jsxs("tr",{children:[r.jsx(Pe.HeaderCell,{children:"Hash"}),r.jsx(Pe.HeaderCell,{children:"Date"}),r.jsx(Pe.HeaderCell,{children:"Author"}),r.jsx(Pe.HeaderCell,{children:"Message"})]})}),r.jsx("tbody",{children:T.map(O=>r.jsxs(Pe.Row,{children:[r.jsx(Pe.Cell,{className:"font-mono text-gold-500",children:O.hash.slice(0,7)}),r.jsx(Pe.Cell,{className:"text-ash whitespace-nowrap",children:new Date(O.date).toLocaleDateString()}),r.jsx(Pe.Cell,{className:"text-ash",children:O.author}),r.jsx(Pe.Cell,{children:O.message})]},O.hash))})]})})]})]})}function ox(o){return o?`value for key "${o}" will be printed in this window until the reveal timer expires`:"all decrypted values will be printed in this window until the reveal timer expires"}const Qd=15*1e3,ou="w-full bg-ink-950 text-bone border border-edge-strong rounded-md outline-none font-mono focus-visible:border-gold-500";function ix(){const[o,d]=u.useState(""),[i,p]=u.useState(!1),[m,v]=u.useState(!1),[b,T]=u.useState(null),[S,j]=u.useState(""),[_,I]=u.useState(!1),[$,B]=u.useState(null),[O,z]=u.useState(null),[L,q]=u.useState(!1),[le,ue]=u.useState({}),[N,M]=u.useState(null),[ne,Y]=u.useState(()=>Date.now()),oe=u.useRef(),[Ee,ae]=u.useState(null);u.useEffect(()=>{ge("/api/envelope/config").then(te=>te.ok?te.json():null).then(te=>ae(te)).catch(()=>ae(null))},[]),u.useEffect(()=>{if(!N)return;const te=setInterval(()=>Y(Date.now()),1e3);return()=>clearInterval(te)},[N]),u.useEffect(()=>()=>clearTimeout(oe.current),[]);const V=u.useCallback(()=>{clearTimeout(oe.current);const te=Date.now()+Qd;M(te),Y(Date.now()),oe.current=setTimeout(()=>{ue({}),M(null)},Qd)},[]),ie=u.useCallback(()=>{clearTimeout(oe.current),T(null),B(null),z(null),ue({}),M(null),j("")},[]),y=u.useCallback(async()=>{if(o.trim()){v(!0),ie();try{const te=await ge("/api/envelope/inspect",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({raw:o})});if(!te.ok){T(null),p(!1);return}const xe=await te.json();T(xe),p(!xe.error)}catch{T(null),p(!1)}finally{v(!1)}}},[o,ie]),J=u.useCallback(async()=>{if(i){I(!0);try{const xe=await(await ge("/api/envelope/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({raw:o,signerKey:S||void 0})})).json();B(xe)}catch{B(null)}finally{I(!1)}}},[i,o,S]),X=u.useCallback(async()=>{if(i){q(!0);try{const xe=await(await ge("/api/envelope/decrypt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({raw:o})})).json();z(xe),ue({}),M(null)}catch{z(null)}finally{q(!1)}}},[i,o]),ce=u.useCallback(async()=>{if(i){q(!0);try{const xe=await(await ge("/api/envelope/decrypt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({raw:o,reveal:!0})})).json();z(xe),xe.values&&(ue(xe.values),V())}catch{}finally{q(!1)}}},[i,o,V]),k=u.useCallback(async te=>{if(i)try{const Ce=await(await ge("/api/envelope/decrypt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({raw:o,key:te})})).json();!Ce.error&&Ce.values&&te in Ce.values&&(ue(A=>({...A,[te]:Ce.values[te]})),V())}catch{}},[i,o,V]),R=u.useCallback(te=>{ue(xe=>{const Ce={...xe};return delete Ce[te],Ce})},[]),ee=u.useCallback(()=>{const te=new Blob([JSON.stringify(le,null,2)],{type:"application/json"}),xe=URL.createObjectURL(te),Ce=document.createElement("a");Ce.href=xe,Ce.download="envelope-revealed.json",Ce.click(),URL.revokeObjectURL(xe)},[le]),Q=Object.keys(le).length>0,g=Object.keys(le).length===1?Object.keys(le)[0]:void 0,P=N?Math.max(0,N-ne):0,we=u.useMemo(()=>yx(P),[P]),ke=u.useMemo(()=>{const te={};return b&&(te.inspect=b),$&&(te.verify=$),O&&(te.decrypt=O),Object.keys(te).length>0?JSON.stringify(te,null,2):null},[b,$,O]),[K,Se]=u.useState(!1);return r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs(G,{children:[r.jsxs("div",{children:[r.jsx(G.Title,{children:"Envelope Debugger"}),r.jsx(G.Subtitle,{children:"paste a packed artifact — inspect, verify, decrypt"})]}),ke?r.jsx(G.Actions,{children:r.jsx(Z,{onClick:()=>Se(te=>!te),children:K?"Hide raw JSON":"View raw JSON"})}):null]}),r.jsxs("div",{className:"flex-1 overflow-y-auto px-6 py-4 flex flex-col gap-3.5","data-testid":"envelope-screen",children:[r.jsx(cx,{rawJson:o,setRawJson:d,onLoad:y,loading:m}),b&&r.jsx(dx,{result:b}),i&&b&&!b.error&&r.jsx(ux,{signerKey:S,setSignerKey:j,onVerify:J,loading:_,result:$,signaturePresent:b.signature.present}),i&&b&&!b.error&&r.jsx(fx,{config:Ee,result:O,loading:L,onDecryptKeys:X,onRevealAll:ce,onRevealOne:k,onHideOne:R,onExportJson:ee,revealedKeys:le,anyRevealed:Q,singleKeyRevealed:g,countdown:we}),K&&ke&&r.jsx("pre",{"data-testid":"raw-json",className:"font-mono text-[11px] bg-ink-850 border border-edge rounded-lg p-3.5 text-ash max-h-[320px] overflow-y-auto",children:ke})]})]})}function cx({rawJson:o,setRawJson:d,onLoad:i,loading:p}){const m=u.useMemo(()=>{if(!o.trim())return{state:"empty"};try{return JSON.parse(o),{state:"valid",bytes:new Blob([o]).size}}catch{return{state:"invalid"}}},[o]),v=m.state==="invalid"?"text-stop-500":m.state==="valid"?"text-go-500":"text-ash";return r.jsxs(Xr,{title:"Paste",subtitle:"paste a packed envelope JSON",children:[r.jsx("textarea",{"data-testid":"envelope-paste-textarea",value:o,onChange:b=>d(b.target.value),placeholder:'{ "version": 1, "identity": "...", ... }',spellCheck:!1,className:`${ou} min-h-[120px] max-h-[280px] resize-y text-[12px] p-2.5`}),r.jsxs("div",{className:"flex items-center justify-between mt-2.5",children:[r.jsx("span",{className:`font-mono text-[11px] ${v}`,"data-testid":"paste-status",children:m.state==="valid"?`✓ valid (${gx(m.bytes)})`:m.state==="invalid"?"✕ invalid JSON":"paste to begin"}),r.jsx(Z,{variant:"primary",onClick:i,disabled:m.state!=="valid"||p,children:p?"Loading…":"Load"})]})]})}function dx({result:o}){if(o.error)return r.jsx(Xr,{title:"Inspect",tone:"error",children:r.jsx(Po,{code:o.error.code,message:o.error.message})});const d=o.ciphertextHash??"",i=o.envelope,p=[["version",r.jsx(Lt,{children:o.version===null?"?":String(o.version)},"v")],["identity",r.jsx(Lt,{children:o.identity??"?"},"i")],["environment",r.jsx(Lt,{children:o.environment??"?"},"e")],["packedAt",r.jsxs(Lt,{children:[o.packedAt??"?",o.packedAtAgeMs!==null?` (${hx(o.packedAtAgeMs)})`:""]},"p")],["revision",r.jsx(Lt,{children:o.revision??"?"},"r")],["ciphertextHash",r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(Lt,{children:d?vx(d):"?"}),r.jsx(Jr,{tone:o.ciphertextHashVerified===!0?"ok":o.ciphertextHashVerified===!1?"fail":"muted",label:o.ciphertextHashVerified===!0?"verified":o.ciphertextHashVerified===!1?"MISMATCH":"not checked"}),d&&r.jsx(bn,{text:d})]},"ch")],["ciphertext bytes",r.jsx(Lt,{children:o.ciphertextBytes===null?"?":String(o.ciphertextBytes)},"cb")],["envelope",r.jsxs(Lt,{children:[i?i.provider:"?",i&&i.kms?` · ${i.kms.keyId}`:""]},"env")],["signature",r.jsx("span",{className:"flex items-center gap-2",children:o.signature.present?r.jsxs(r.Fragment,{children:[r.jsx(Lt,{children:o.signature.algorithm??"unknown"}),r.jsx(Jr,{tone:"muted",label:"run verify to check"})]}):r.jsx(Jr,{tone:"muted",label:"absent"})},"sig")],["expiry",o.expiresAt?r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(Lt,{children:o.expiresAt}),r.jsx(Jr,{tone:o.expired?"fail":"ok",label:o.expired?"EXPIRED":"ok"})]},"ex"):r.jsx(Lt,{children:"none"},"ex")],["revocation",o.revoked?r.jsx(Jr,{tone:"fail",label:`REVOKED at ${o.revokedAt??"?"}`},"rv"):r.jsx(Lt,{children:"none"},"rv")]];return r.jsx(Xr,{title:"Inspect",subtitle:"auto-populates from the pasted JSON",children:r.jsx("div",{className:"flex flex-col gap-1.5",children:p.map(([m,v])=>r.jsx(px,{label:m,value:v},m))})})}function ux({signerKey:o,setSignerKey:d,onVerify:i,loading:p,result:m,signaturePresent:v}){const b=v?"paste the signer public key (PEM or base64 DER SPKI) to verify the signature":"no signature on this artifact — verify only checks hash / expiry / revocation",T=m?.overall==="pass"?"bg-go-500/15 text-go-500":m?.overall==="fail"?"bg-stop-500/10 text-stop-500":"bg-edge text-ash";return r.jsxs(Xr,{title:"Verify",subtitle:b,children:[v&&r.jsx("textarea",{"data-testid":"envelope-signer-key",value:o,onChange:S=>d(S.target.value),placeholder:`-----BEGIN PUBLIC KEY-----
|
|
79
|
+
...
|
|
80
|
+
-----END PUBLIC KEY-----`,spellCheck:!1,className:`${ou} min-h-[72px] max-h-[160px] resize-y text-[11px] p-2 mb-2.5`}),r.jsx("div",{className:"flex justify-end mb-2.5",children:r.jsx(Z,{variant:"primary",onClick:i,disabled:p,children:p?"Verifying…":"Run verify"})}),m?.error&&r.jsx(Po,{code:m.error.code,message:m.error.message}),m&&!m.error&&r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsx(wl,{label:"ciphertext hash",status:m.checks.hash.status==="ok"?"pass":"fail",detail:m.checks.hash.status}),r.jsx(wl,{label:"signature",status:xx(m.checks.signature.status),detail:`${m.checks.signature.status}${m.checks.signature.algorithm?` (${m.checks.signature.algorithm})`:""}`}),r.jsx(wl,{label:"expiry",status:m.checks.expiry.status==="expired"?"fail":m.checks.expiry.status==="absent"?"muted":"pass",detail:m.checks.expiry.expiresAt??"no expiry"}),r.jsx(wl,{label:"revocation",status:m.checks.revocation.status==="revoked"?"fail":"muted",detail:m.checks.revocation.revokedAt??"not revoked"}),r.jsxs("div",{className:`mt-1.5 px-3 py-2 rounded-md font-sans text-[12px] font-bold tracking-[0.05em] ${T}`,"data-testid":"verify-overall",children:["OVERALL: ",m.overall.toUpperCase()]})]})]})}function fx({config:o,result:d,loading:i,onDecryptKeys:p,onRevealAll:m,onRevealOne:v,onHideOne:b,onExportJson:T,revealedKeys:S,anyRevealed:j,singleKeyRevealed:_,countdown:I}){const $=o?.ageIdentity.configured===!0,B=$&&o.ageIdentity.source==="CLEF_AGE_KEY",O=$?o.ageIdentity.source==="CLEF_AGE_KEY_FILE"?`$CLEF_AGE_KEY_FILE · ${o.ageIdentity.path??""}`:"$CLEF_AGE_KEY (inline)":"no identity configured on server — relaunch clef ui with CLEF_AGE_KEY_FILE set",z=$?`Decrypting with ${O}. The pasted envelope must be encrypted for this key — usually a service identity's age key, not your personal one.`:O;return r.jsxs(Xr,{title:"Decrypt",subtitle:z,children:[B&&r.jsxs("div",{"data-testid":"inline-key-warning",className:"mb-3 px-3 py-2 rounded-md bg-warn-500/15 border border-warn-500/40 text-warn-500 font-sans text-[12px] leading-relaxed",children:["⚠ "," This key was passed inline via ",r.jsx("code",{children:"$CLEF_AGE_KEY"}),", which lands the secret in your shell history (",r.jsx("code",{children:"~/.zsh_history"}),", ",r.jsx("code",{children:"~/.bash_history"}),") and in"," ",r.jsx("code",{children:"ps aux"})," while the process runs. Prefer pointing at a file:"," ",r.jsx("code",{children:"CLEF_AGE_KEY_FILE=/path/to/key clef ui"}),". Rotate the current key if it may already have been captured."]}),d?.error&&r.jsx(Po,{code:d.error.code,message:d.error.message,hint:mx(d.error,$)}),!d&&r.jsx("div",{className:"flex justify-end",children:r.jsx(Z,{variant:"primary",onClick:p,disabled:i||!$,"data-testid":"decrypt-keys",children:i?"Decrypting…":"Decrypt (keys)"})}),d&&!d.error&&r.jsxs(r.Fragment,{children:[j&&r.jsxs("div",{"data-testid":"reveal-banner",className:"mb-3 px-3 py-2.5 rounded-md bg-warn-500/15 border border-warn-500/40 text-warn-500 font-sans text-[12px] flex items-center justify-between gap-2.5",children:[r.jsxs("span",{children:["⚠ "," ",ox(_)]}),r.jsxs("span",{className:"font-mono text-[11px]","data-testid":"reveal-countdown",children:["auto-clears in ",I]})]}),r.jsx("div",{className:"flex flex-col gap-1.5",children:d.keys.map(L=>{const q=Object.prototype.hasOwnProperty.call(S,L);return r.jsxs("div",{"data-testid":`decrypt-row-${L}`,className:"flex items-center gap-2.5 px-2.5 py-2 bg-ink-950 border border-edge rounded-md",children:[r.jsx("span",{className:"font-mono text-[12px] text-bone basis-[200px] shrink-0 grow-0 overflow-hidden text-ellipsis",children:L}),r.jsx("span",{className:`font-mono text-[12px] flex-1 overflow-hidden text-ellipsis whitespace-nowrap ${q?"text-bone":"text-ash-dim"}`,"data-testid":`decrypt-value-${L}`,children:q?S[L]:"●".repeat(10)}),r.jsx("button",{"data-testid":`reveal-toggle-${L}`,onClick:()=>q?b(L):v(L),className:"bg-transparent border border-edge-strong rounded text-ash font-mono text-[11px] px-2 py-0.5 cursor-pointer",children:q?"hide":"reveal"}),q&&r.jsx(bn,{text:S[L]})]},L)})}),r.jsxs("div",{className:"mt-3.5 flex justify-between gap-2",children:[r.jsxs(Z,{onClick:p,disabled:i,children:["↻"," Re-fetch keys"]}),r.jsxs("div",{className:"flex gap-2",children:[j&&r.jsx(Z,{onClick:T,"data-testid":"export-json",children:"Export JSON"}),r.jsx(Z,{variant:"primary",onClick:m,disabled:i,"data-testid":"reveal-all",children:"Reveal all"})]})]})]})]})}function Xr({title:o,subtitle:d,tone:i="default",children:p}){const m=i==="error"?"border-stop-500/40":"border-edge";return r.jsxs("div",{className:`bg-ink-850 border rounded-lg p-4 ${m}`,"data-testid":`envelope-card-${o.toLowerCase()}`,children:[r.jsxs("div",{className:"mb-2.5",children:[r.jsx("div",{className:"font-sans text-[13px] font-bold text-bone",children:o}),d&&r.jsx("div",{className:"font-mono text-[10px] text-ash mt-0.5",children:d})]}),p]})}function px({label:o,value:d}){return r.jsxs("div",{className:"flex items-center gap-2.5",children:[r.jsx("span",{className:"font-mono text-[11px] text-ash basis-[140px] shrink-0 grow-0",children:o}),r.jsx("span",{className:"flex-1 min-w-0 text-[12px]",children:d})]})}function wl({label:o,status:d,detail:i}){const p=d==="pass"?"text-go-500":d==="fail"?"text-stop-500":d==="warn"?"text-warn-500":"text-ash",m=d==="pass"?"✓":d==="fail"?"✕":"·";return r.jsxs("div",{className:"flex items-center gap-2.5 px-2.5 py-1.5 bg-ink-950 border border-edge rounded-md","data-testid":`verify-row-${o.replace(/\s+/g,"-")}`,children:[r.jsx("span",{className:`font-mono font-bold w-3 ${p}`,children:m}),r.jsx("span",{className:"font-sans text-[12px] text-bone basis-[140px] shrink-0 grow-0",children:o}),r.jsx("span",{className:"font-mono text-[11px] text-ash flex-1",children:i})]})}function Jr({tone:o,label:d}){const i=o==="ok"?"text-go-500 bg-go-500/15 border-go-500/40":o==="fail"?"text-stop-500 bg-stop-500/10 border-stop-500/40":o==="warn"?"text-warn-500 bg-warn-500/15 border-warn-500/40":"text-ash bg-ash/10 border-ash/30";return r.jsx("span",{className:`font-mono text-[10px] font-bold border rounded-sm px-1.5 py-px ${i}`,children:d})}function Po({code:o,message:d,hint:i}){return r.jsxs("div",{role:"alert","data-testid":"envelope-error",className:"px-3 py-2.5 bg-stop-500/10 border border-stop-500/40 rounded-md font-mono text-[11px] text-stop-500",children:[r.jsxs("div",{children:[r.jsx("strong",{children:o})," ","—"," ",d]}),i&&r.jsxs("div",{"data-testid":"envelope-error-hint",className:"mt-2.5 pt-2.5 border-t border-stop-500/30 text-bone font-sans text-[12px] leading-relaxed",children:[r.jsx("div",{className:"mb-2",children:i.title}),r.jsx("pre",{className:"m-0 px-2.5 py-2 bg-ink-950 border border-edge rounded text-gold-500 font-mono text-[11px] whitespace-pre-wrap break-all",children:i.commands.join(`
|
|
81
|
+
`)})]})]})}function mx(o,d){if(o.code==="key_resolution_failed")return{title:"No age key on the server. Stop this server (Ctrl-C) and relaunch clef ui pointing at a key file:",commands:["CLEF_AGE_KEY_FILE=/path/to/your-key.txt clef ui","# avoid CLEF_AGE_KEY='AGE-SECRET-KEY-...' — the key ends up in shell history"]};if(o.code==="decrypt_failed"&&/no identity matched/i.test(o.message))return{title:d?"The server's age key isn't one of this envelope's recipients. This usually means the envelope was packed for a service identity — relaunch clef ui with that identity's key:":"This envelope's recipients don't include any key on the server. Relaunch clef ui with the matching age key:",commands:["# find the service identity's private key and launch with it","CLEF_AGE_KEY_FILE=/path/to/service-identity.key clef ui"]}}function Lt({children:o}){return r.jsx("span",{className:"font-mono text-[12px] text-bone",children:o})}function xx(o){switch(o){case"valid":return"pass";case"invalid":return"fail";case"not_verified":return"warn";default:return"muted"}}function hx(o){const d=Math.floor(o/1e3);if(d<60)return`${d}s ago`;const i=Math.floor(d/60);if(i<60)return`${i}m ago`;const p=Math.floor(i/60);return p<24?`${p}h ago`:`${Math.floor(p/24)}d ago`}function gx(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/1024/1024).toFixed(1)} MB`}function vx(o){return o.length<=16?o:`${o.slice(0,8)}…${o.slice(-8)}`}function yx(o){const d=Math.max(0,Math.floor(o/1e3)),i=Math.floor(d/60),p=d%60;return`${i}:${String(p).padStart(2,"0")}`}function jx(){const[o,d]=u.useState("matrix"),[i,p]=u.useState(""),[m,v]=u.useState(""),[b,T]=u.useState(!0),[S,j]=u.useState(null),[_,I]=u.useState([]),[$,B]=u.useState(null),[O,z]=u.useState(0),[L,q]=u.useState(0),[le,ue]=u.useState(0),N=u.useCallback(async()=>{try{const ae=await ge("/api/manifest");if(ae.ok){const V=await ae.json();j(V),p(ie=>ie||(V.namespaces[0]?.name??""))}}catch{}finally{T(!1)}},[]),M=u.useCallback(async()=>{try{const ae=await ge("/api/matrix");ae.ok&&I(await ae.json())}catch{}},[]),ne=u.useCallback(async()=>{try{const ae=await ge("/api/git/status");ae.ok&&B(await ae.json())}catch{}},[]),Y=u.useCallback(async()=>{try{const ae=await ge("/api/lint");if(ae.ok){const V=await ae.json();z(V.issues.filter(ie=>ie.severity==="error").length)}}catch{}},[]),oe=u.useCallback(async()=>{try{const ae=await ge("/api/scan/status");if(ae.ok){const V=await ae.json();if(V.lastRun){const ie=(V.lastRun.matches?.length??0)+(V.lastRun.unencryptedMatrixFiles?.length??0);q(ie)}}}catch{}},[]),Ee=u.useCallback(async()=>{try{const ae=await ge("/api/policy/check");if(ae.ok){const V=await ae.json();ue(V.summary?.rotation_overdue??0)}}catch{}},[]);return u.useEffect(()=>{N(),M(),ne(),Y(),oe(),Ee()},[N,M,ne,Y,oe,Ee]),u.useEffect(()=>{N(),M()},[o,N,M]),b?r.jsx("div",{className:"flex h-screen items-center justify-center bg-ink-950 font-sans text-ash",children:r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"mb-3 flex justify-center",children:r.jsx("clef-wordmark",{variant:"mark",size:36})}),r.jsx("div",{className:"text-[13px]",children:"Loading..."})]})}):r.jsxs("div",{className:"flex h-screen overflow-hidden bg-ink-950 font-sans text-bone",children:[r.jsx(Ip,{activeView:o,setView:d,activeNs:i,setNs:p,manifest:S,matrixStatuses:_,gitStatus:$,lintErrorCount:O,scanIssueCount:L,policyOverdueCount:le}),r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[o==="matrix"&&r.jsx(pm,{setView:d,setNs:p,setEnv:v,manifest:S,matrixStatuses:_,reloadMatrix:M}),o==="editor"&&r.jsx(ym,{ns:i,initialEnv:m,manifest:S}),o==="schema"&&r.jsx(km,{ns:i,manifest:S}),o==="diff"&&r.jsx(_m,{manifest:S}),o==="lint"&&r.jsx($m,{setView:d,setNs:p}),o==="scan"&&r.jsx(Pm,{}),o==="policy"&&r.jsx(Om,{setView:d,setNs:p}),o==="import"&&r.jsx(Fm,{manifest:S,setView:d}),o==="recipients"&&r.jsx(Ym,{manifest:S,setView:d}),o==="identities"&&r.jsx(Gm,{manifest:S}),o==="backend"&&r.jsx(tx,{manifest:S,setView:d,reloadManifest:N}),o==="reset"&&r.jsx(lx,{manifest:S,setView:d,reloadManifest:N}),o==="history"&&r.jsx(ax,{manifest:S}),o==="manifest"&&r.jsx(Bm,{manifest:S,reloadManifest:N}),o==="envelope"&&r.jsx(ix,{})]})]})}yp();const Yd=document.getElementById("root");Yd&&pp.createRoot(Yd).render(r.jsx(bt.StrictMode,{children:r.jsx(jx,{})}));
|