syntaur 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/dist/assets/{_basePickBy-Cx0q44iE.js → _basePickBy-CFyquBjL.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-CfFbkKif.js → _baseUniq-S9hlXGZI.js} +1 -1
- package/dashboard/dist/assets/{arc-XluBomWz.js → arc-DNRWeoWH.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-CihGybG6.js → architectureDiagram-2XIMDMQ5-BujnKgOd.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-BPUKO5fj.js → blockDiagram-WCTKOSBZ-DOaDmG_o.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-DKVq_j1f.js → c4Diagram-IC4MRINW-BeBwVhQx.js} +1 -1
- package/dashboard/dist/assets/channel-yUe8n53Y.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-DAaE8oN2.js → chunk-4BX2VUAB-CtzM4Epf.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-BZoVpy5G.js → chunk-55IACEB6-D2cd1TFn.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-Cuo9M0jI.js → chunk-FMBD7UC4-DAqRATzJ.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-DGzypY5S.js → chunk-JSJVCQXG-CIEi981s.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-DfxYbrKI.js → chunk-KX2RTZJC-BMv4Xwdm.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-BEbwpe5N.js → chunk-NQ4KR5QH-BKTm5ctg.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-DDjrkJqg.js → chunk-QZHKN3VN-DjmLZcpF.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-BSMHQ3p4.js → chunk-WL4C6EOR-CphX8dKS.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-C0f25bKl.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-C0f25bKl.js +1 -0
- package/dashboard/dist/assets/clone-D-aj2eAK.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-BgUyyImN.js → cose-bilkent-S5V4N54A-BZ-8TY36.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-zAe7pq6F.js → dagre-KLK3FWXG-Bx5whsTp.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-B1bVb4ll.js → diagram-E7M64L7V-BVOQiv2e.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-DZCxJIkJ.js → diagram-IFDJBPK2-D7bQBDL_.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-BuPgL5q1.js → diagram-P4PSJMXO-CwO6aafO.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-l3YvnHT9.js → erDiagram-INFDFZHY-DCNz82wG.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-CLOLQLdW.js → flowDiagram-PKNHOUZH-Dq6yNscM.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-D1yLx2Ap.js → ganttDiagram-A5KZAMGK-B2xtuK0X.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-uC4rY3UQ.js → gitGraphDiagram-K3NZZRJ6-D8mNkQd3.js} +1 -1
- package/dashboard/dist/assets/{graph-DvUnLFOz.js → graph-DMbUUtaR.js} +1 -1
- package/dashboard/dist/assets/index-BlikGvSd.js +550 -0
- package/dashboard/dist/assets/index-CsyJIOqR.css +1 -0
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-B6jLLOUk.js → infoDiagram-LFFYTUFH-BsrDYNxL.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-CDvhubqL.js → ishikawaDiagram-PHBUUO56-DlUJjWQM.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-BOtMcoBj.js → journeyDiagram-4ABVD52K-DBbVdCE_.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-DC05q9p4.js → kanban-definition-K7BYSVSG-Cuv3IHJ_.js} +1 -1
- package/dashboard/dist/assets/{layout-B4jiZlj6.js → layout-CgL4rycu.js} +1 -1
- package/dashboard/dist/assets/{linear-DpQXVSyZ.js → linear-CgnhFMi4.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-aNcWKq-4.js → mermaid.core-C3eCFd8P.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-Dv4qo7wQ.js → mindmap-definition-YRQLILUH-Bsm6cGkL.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-ByRY4ahm.js → pieDiagram-SKSYHLDU-DBRLfMtc.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-Dt5_Xjwp.js → quadrantDiagram-337W2JSQ-CES4NNws.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-CSRV6VcE.js → requirementDiagram-Z7DCOOCP-B0cUyFW2.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-DA8gxGEq.js → sankeyDiagram-WA2Y5GQK-LVaVg6wF.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-CVZr9aKv.js → sequenceDiagram-2WXFIKYE-BISSySYI.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-yIU4X0e8.js → stateDiagram-RAJIS63D-rdMNHAXE.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-ti7j33kD.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-DnfvRVEJ.js → timeline-definition-YZTLITO2-fVRyntnZ.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-p5sbmBwK.js → treemap-KZPCXAKY-ECgEamZF.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-Do2Vp3nv.js → vennDiagram-LZ73GAT5-DkL5XCcJ.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-BrfAGQWt.js → xychartDiagram-JWTSCODW-DSQCD2gS.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/dashboard/server.js +328 -123
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +795 -488
- package/dist/index.js.map +1 -1
- package/dist/launch/index.js +75 -10
- package/dist/launch/index.js.map +1 -1
- package/package.json +1 -1
- package/dashboard/dist/assets/channel-mNClnLVi.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-Dv6vdcHm.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-Dv6vdcHm.js +0 -1
- package/dashboard/dist/assets/clone-CRLXHkrd.js +0 -1
- package/dashboard/dist/assets/index-BoVXMp5e.js +0 -535
- package/dashboard/dist/assets/index-XappA8I7.css +0 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-DMBx3hAg.js +0 -1
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
var vE=Object.defineProperty;var wE=(e,t,n)=>t in e?vE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var zb=(e,t,n)=>wE(e,typeof t!="symbol"?t+"":t,n);function jE(e,t){for(var n=0;n<t.length;n++){const s=t[n];if(typeof s!="string"&&!Array.isArray(s)){for(const i in s)if(i!=="default"&&!(i in e)){const l=Object.getOwnPropertyDescriptor(s,i);l&&Object.defineProperty(e,i,l.get?l:{enumerable:!0,get:()=>s[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const c of l.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&s(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function s(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();function jd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Gz(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function s(){return this instanceof s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(s){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:function(){return e[s]}})}),n}var Zp={exports:{}},ll={},em={exports:{}},ot={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Bb;function kE(){if(Bb)return ot;Bb=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),x=Symbol.iterator;function y(B){return B===null||typeof B!="object"?null:(B=x&&B[x]||B["@@iterator"],typeof B=="function"?B:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,k={};function w(B,ee,I){this.props=B,this.context=ee,this.refs=k,this.updater=I||b}w.prototype.isReactComponent={},w.prototype.setState=function(B,ee){if(typeof B!="object"&&typeof B!="function"&&B!=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,B,ee,"setState")},w.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function j(){}j.prototype=w.prototype;function C(B,ee,I){this.props=B,this.context=ee,this.refs=k,this.updater=I||b}var N=C.prototype=new j;N.constructor=C,E(N,w.prototype),N.isPureReactComponent=!0;var T=Array.isArray,L=Object.prototype.hasOwnProperty,P={current:null},$={key:!0,ref:!0,__self:!0,__source:!0};function F(B,ee,I){var ue,me={},U=null,se=null;if(ee!=null)for(ue in ee.ref!==void 0&&(se=ee.ref),ee.key!==void 0&&(U=""+ee.key),ee)L.call(ee,ue)&&!$.hasOwnProperty(ue)&&(me[ue]=ee[ue]);var de=arguments.length-2;if(de===1)me.children=I;else if(1<de){for(var ye=Array(de),je=0;je<de;je++)ye[je]=arguments[je+2];me.children=ye}if(B&&B.defaultProps)for(ue in de=B.defaultProps,de)me[ue]===void 0&&(me[ue]=de[ue]);return{$$typeof:e,type:B,key:U,ref:se,props:me,_owner:P.current}}function X(B,ee){return{$$typeof:e,type:B.type,key:ee,ref:B.ref,props:B.props,_owner:B._owner}}function te(B){return typeof B=="object"&&B!==null&&B.$$typeof===e}function D(B){var ee={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(I){return ee[I]})}var W=/\/+/g;function Z(B,ee){return typeof B=="object"&&B!==null&&B.key!=null?D(""+B.key):ee.toString(36)}function M(B,ee,I,ue,me){var U=typeof B;(U==="undefined"||U==="boolean")&&(B=null);var se=!1;if(B===null)se=!0;else switch(U){case"string":case"number":se=!0;break;case"object":switch(B.$$typeof){case e:case t:se=!0}}if(se)return se=B,me=me(se),B=ue===""?"."+Z(se,0):ue,T(me)?(I="",B!=null&&(I=B.replace(W,"$&/")+"/"),M(me,ee,I,"",function(je){return je})):me!=null&&(te(me)&&(me=X(me,I+(!me.key||se&&se.key===me.key?"":(""+me.key).replace(W,"$&/")+"/")+B)),ee.push(me)),1;if(se=0,ue=ue===""?".":ue+":",T(B))for(var de=0;de<B.length;de++){U=B[de];var ye=ue+Z(U,de);se+=M(U,ee,I,ye,me)}else if(ye=y(B),typeof ye=="function")for(B=ye.call(B),de=0;!(U=B.next()).done;)U=U.value,ye=ue+Z(U,de++),se+=M(U,ee,I,ye,me);else if(U==="object")throw ee=String(B),Error("Objects are not valid as a React child (found: "+(ee==="[object Object]"?"object with keys {"+Object.keys(B).join(", ")+"}":ee)+"). If you meant to render a collection of children, use an array instead.");return se}function K(B,ee,I){if(B==null)return B;var ue=[],me=0;return M(B,ue,"","",function(U){return ee.call(I,U,me++)}),ue}function J(B){if(B._status===-1){var ee=B._result;ee=ee(),ee.then(function(I){(B._status===0||B._status===-1)&&(B._status=1,B._result=I)},function(I){(B._status===0||B._status===-1)&&(B._status=2,B._result=I)}),B._status===-1&&(B._status=0,B._result=ee)}if(B._status===1)return B._result.default;throw B._result}var le={current:null},_={transition:null},G={ReactCurrentDispatcher:le,ReactCurrentBatchConfig:_,ReactCurrentOwner:P};function A(){throw Error("act(...) is not supported in production builds of React.")}return ot.Children={map:K,forEach:function(B,ee,I){K(B,function(){ee.apply(this,arguments)},I)},count:function(B){var ee=0;return K(B,function(){ee++}),ee},toArray:function(B){return K(B,function(ee){return ee})||[]},only:function(B){if(!te(B))throw Error("React.Children.only expected to receive a single React element child.");return B}},ot.Component=w,ot.Fragment=n,ot.Profiler=i,ot.PureComponent=C,ot.StrictMode=s,ot.Suspense=p,ot.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=G,ot.act=A,ot.cloneElement=function(B,ee,I){if(B==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+B+".");var ue=E({},B.props),me=B.key,U=B.ref,se=B._owner;if(ee!=null){if(ee.ref!==void 0&&(U=ee.ref,se=P.current),ee.key!==void 0&&(me=""+ee.key),B.type&&B.type.defaultProps)var de=B.type.defaultProps;for(ye in ee)L.call(ee,ye)&&!$.hasOwnProperty(ye)&&(ue[ye]=ee[ye]===void 0&&de!==void 0?de[ye]:ee[ye])}var ye=arguments.length-2;if(ye===1)ue.children=I;else if(1<ye){de=Array(ye);for(var je=0;je<ye;je++)de[je]=arguments[je+2];ue.children=de}return{$$typeof:e,type:B.type,key:me,ref:U,props:ue,_owner:se}},ot.createContext=function(B){return B={$$typeof:c,_currentValue:B,_currentValue2:B,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},B.Provider={$$typeof:l,_context:B},B.Consumer=B},ot.createElement=F,ot.createFactory=function(B){var ee=F.bind(null,B);return ee.type=B,ee},ot.createRef=function(){return{current:null}},ot.forwardRef=function(B){return{$$typeof:u,render:B}},ot.isValidElement=te,ot.lazy=function(B){return{$$typeof:h,_payload:{_status:-1,_result:B},_init:J}},ot.memo=function(B,ee){return{$$typeof:m,type:B,compare:ee===void 0?null:ee}},ot.startTransition=function(B){var ee=_.transition;_.transition={};try{B()}finally{_.transition=ee}},ot.unstable_act=A,ot.useCallback=function(B,ee){return le.current.useCallback(B,ee)},ot.useContext=function(B){return le.current.useContext(B)},ot.useDebugValue=function(){},ot.useDeferredValue=function(B){return le.current.useDeferredValue(B)},ot.useEffect=function(B,ee){return le.current.useEffect(B,ee)},ot.useId=function(){return le.current.useId()},ot.useImperativeHandle=function(B,ee,I){return le.current.useImperativeHandle(B,ee,I)},ot.useInsertionEffect=function(B,ee){return le.current.useInsertionEffect(B,ee)},ot.useLayoutEffect=function(B,ee){return le.current.useLayoutEffect(B,ee)},ot.useMemo=function(B,ee){return le.current.useMemo(B,ee)},ot.useReducer=function(B,ee,I){return le.current.useReducer(B,ee,I)},ot.useRef=function(B){return le.current.useRef(B)},ot.useState=function(B){return le.current.useState(B)},ot.useSyncExternalStore=function(B,ee,I){return le.current.useSyncExternalStore(B,ee,I)},ot.useTransition=function(){return le.current.useTransition()},ot.version="18.3.1",ot}var Ub;function Uh(){return Ub||(Ub=1,em.exports=kE()),em.exports}/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.production.min.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var Vb;function SE(){if(Vb)return ll;Vb=1;var e=Uh(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(u,p,m){var h,x={},y=null,b=null;m!==void 0&&(y=""+m),p.key!==void 0&&(y=""+p.key),p.ref!==void 0&&(b=p.ref);for(h in p)s.call(p,h)&&!l.hasOwnProperty(h)&&(x[h]=p[h]);if(u&&u.defaultProps)for(h in p=u.defaultProps,p)x[h]===void 0&&(x[h]=p[h]);return{$$typeof:t,type:u,key:y,ref:b,props:x,_owner:i.current}}return ll.Fragment=n,ll.jsx=c,ll.jsxs=c,ll}var Hb;function NE(){return Hb||(Hb=1,Zp.exports=SE()),Zp.exports}var r=NE(),f=Uh();const Zt=jd(f),Cj=jE({__proto__:null,default:Zt},[f]);var hu={},tm={exports:{}},Zn={},nm={exports:{}},rm={};/**
|
|
18
|
+
* @license React
|
|
19
|
+
* scheduler.production.min.js
|
|
20
|
+
*
|
|
21
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/var Wb;function CE(){return Wb||(Wb=1,(function(e){function t(_,G){var A=_.length;_.push(G);e:for(;0<A;){var B=A-1>>>1,ee=_[B];if(0<i(ee,G))_[B]=G,_[A]=ee,A=B;else break e}}function n(_){return _.length===0?null:_[0]}function s(_){if(_.length===0)return null;var G=_[0],A=_.pop();if(A!==G){_[0]=A;e:for(var B=0,ee=_.length,I=ee>>>1;B<I;){var ue=2*(B+1)-1,me=_[ue],U=ue+1,se=_[U];if(0>i(me,A))U<ee&&0>i(se,me)?(_[B]=se,_[U]=A,B=U):(_[B]=me,_[ue]=A,B=ue);else if(U<ee&&0>i(se,A))_[B]=se,_[U]=A,B=U;else break e}}return G}function i(_,G){var A=_.sortIndex-G.sortIndex;return A!==0?A:_.id-G.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var c=Date,u=c.now();e.unstable_now=function(){return c.now()-u}}var p=[],m=[],h=1,x=null,y=3,b=!1,E=!1,k=!1,w=typeof setTimeout=="function"?setTimeout:null,j=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function N(_){for(var G=n(m);G!==null;){if(G.callback===null)s(m);else if(G.startTime<=_)s(m),G.sortIndex=G.expirationTime,t(p,G);else break;G=n(m)}}function T(_){if(k=!1,N(_),!E)if(n(p)!==null)E=!0,J(L);else{var G=n(m);G!==null&&le(T,G.startTime-_)}}function L(_,G){E=!1,k&&(k=!1,j(F),F=-1),b=!0;var A=y;try{for(N(G),x=n(p);x!==null&&(!(x.expirationTime>G)||_&&!D());){var B=x.callback;if(typeof B=="function"){x.callback=null,y=x.priorityLevel;var ee=B(x.expirationTime<=G);G=e.unstable_now(),typeof ee=="function"?x.callback=ee:x===n(p)&&s(p),N(G)}else s(p);x=n(p)}if(x!==null)var I=!0;else{var ue=n(m);ue!==null&&le(T,ue.startTime-G),I=!1}return I}finally{x=null,y=A,b=!1}}var P=!1,$=null,F=-1,X=5,te=-1;function D(){return!(e.unstable_now()-te<X)}function W(){if($!==null){var _=e.unstable_now();te=_;var G=!0;try{G=$(!0,_)}finally{G?Z():(P=!1,$=null)}}else P=!1}var Z;if(typeof C=="function")Z=function(){C(W)};else if(typeof MessageChannel<"u"){var M=new MessageChannel,K=M.port2;M.port1.onmessage=W,Z=function(){K.postMessage(null)}}else Z=function(){w(W,0)};function J(_){$=_,P||(P=!0,Z())}function le(_,G){F=w(function(){_(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(_){_.callback=null},e.unstable_continueExecution=function(){E||b||(E=!0,J(L))},e.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):X=0<_?Math.floor(1e3/_):5},e.unstable_getCurrentPriorityLevel=function(){return y},e.unstable_getFirstCallbackNode=function(){return n(p)},e.unstable_next=function(_){switch(y){case 1:case 2:case 3:var G=3;break;default:G=y}var A=y;y=G;try{return _()}finally{y=A}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(_,G){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var A=y;y=_;try{return G()}finally{y=A}},e.unstable_scheduleCallback=function(_,G,A){var B=e.unstable_now();switch(typeof A=="object"&&A!==null?(A=A.delay,A=typeof A=="number"&&0<A?B+A:B):A=B,_){case 1:var ee=-1;break;case 2:ee=250;break;case 5:ee=1073741823;break;case 4:ee=1e4;break;default:ee=5e3}return ee=A+ee,_={id:h++,callback:G,priorityLevel:_,startTime:A,expirationTime:ee,sortIndex:-1},A>B?(_.sortIndex=A,t(m,_),n(p)===null&&_===n(m)&&(k?(j(F),F=-1):k=!0,le(T,A-B))):(_.sortIndex=ee,t(p,_),E||b||(E=!0,J(L))),_},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(_){var G=y;return function(){var A=y;y=G;try{return _.apply(this,arguments)}finally{y=A}}}})(rm)),rm}var Kb;function EE(){return Kb||(Kb=1,nm.exports=CE()),nm.exports}/**
|
|
26
|
+
* @license React
|
|
27
|
+
* react-dom.production.min.js
|
|
28
|
+
*
|
|
29
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
30
|
+
*
|
|
31
|
+
* This source code is licensed under the MIT license found in the
|
|
32
|
+
* LICENSE file in the root directory of this source tree.
|
|
33
|
+
*/var qb;function TE(){if(qb)return Zn;qb=1;var e=Uh(),t=EE();function n(o){for(var a="https://reactjs.org/docs/error-decoder.html?invariant="+o,d=1;d<arguments.length;d++)a+="&args[]="+encodeURIComponent(arguments[d]);return"Minified React error #"+o+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var s=new Set,i={};function l(o,a){c(o,a),c(o+"Capture",a)}function c(o,a){for(i[o]=a,o=0;o<a.length;o++)s.add(a[o])}var u=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),p=Object.prototype.hasOwnProperty,m=/^[: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]*$/,h={},x={};function y(o){return p.call(x,o)?!0:p.call(h,o)?!1:m.test(o)?x[o]=!0:(h[o]=!0,!1)}function b(o,a,d,g){if(d!==null&&d.type===0)return!1;switch(typeof a){case"function":case"symbol":return!0;case"boolean":return g?!1:d!==null?!d.acceptsBooleans:(o=o.toLowerCase().slice(0,5),o!=="data-"&&o!=="aria-");default:return!1}}function E(o,a,d,g){if(a===null||typeof a>"u"||b(o,a,d,g))return!0;if(g)return!1;if(d!==null)switch(d.type){case 3:return!a;case 4:return a===!1;case 5:return isNaN(a);case 6:return isNaN(a)||1>a}return!1}function k(o,a,d,g,v,S,R){this.acceptsBooleans=a===2||a===3||a===4,this.attributeName=g,this.attributeNamespace=v,this.mustUseProperty=d,this.propertyName=o,this.type=a,this.sanitizeURL=S,this.removeEmptyString=R}var w={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(o){w[o]=new k(o,0,!1,o,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(o){var a=o[0];w[a]=new k(a,1,!1,o[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(o){w[o]=new k(o,2,!1,o.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){w[o]=new k(o,2,!1,o,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(o){w[o]=new k(o,3,!1,o.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(o){w[o]=new k(o,3,!0,o,null,!1,!1)}),["capture","download"].forEach(function(o){w[o]=new k(o,4,!1,o,null,!1,!1)}),["cols","rows","size","span"].forEach(function(o){w[o]=new k(o,6,!1,o,null,!1,!1)}),["rowSpan","start"].forEach(function(o){w[o]=new k(o,5,!1,o.toLowerCase(),null,!1,!1)});var j=/[\-:]([a-z])/g;function C(o){return o[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(o){var a=o.replace(j,C);w[a]=new k(a,1,!1,o,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var a=o.replace(j,C);w[a]=new k(a,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(o){var a=o.replace(j,C);w[a]=new k(a,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(o){w[o]=new k(o,1,!1,o.toLowerCase(),null,!1,!1)}),w.xlinkHref=new k("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(o){w[o]=new k(o,1,!1,o.toLowerCase(),null,!0,!0)});function N(o,a,d,g){var v=w.hasOwnProperty(a)?w[a]:null;(v!==null?v.type!==0:g||!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(E(a,d,v,g)&&(d=null),g||v===null?y(a)&&(d===null?o.removeAttribute(a):o.setAttribute(a,""+d)):v.mustUseProperty?o[v.propertyName]=d===null?v.type===3?!1:"":d:(a=v.attributeName,g=v.attributeNamespace,d===null?o.removeAttribute(a):(v=v.type,d=v===3||v===4&&d===!0?"":""+d,g?o.setAttributeNS(g,a,d):o.setAttribute(a,d))))}var T=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,L=Symbol.for("react.element"),P=Symbol.for("react.portal"),$=Symbol.for("react.fragment"),F=Symbol.for("react.strict_mode"),X=Symbol.for("react.profiler"),te=Symbol.for("react.provider"),D=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),K=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),le=Symbol.for("react.offscreen"),_=Symbol.iterator;function G(o){return o===null||typeof o!="object"?null:(o=_&&o[_]||o["@@iterator"],typeof o=="function"?o:null)}var A=Object.assign,B;function ee(o){if(B===void 0)try{throw Error()}catch(d){var a=d.stack.trim().match(/\n( *(at )?)/);B=a&&a[1]||""}return`
|
|
34
|
+
`+B+o}var I=!1;function ue(o,a){if(!o||I)return"";I=!0;var d=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(a)if(a=function(){throw Error()},Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(a,[])}catch(ce){var g=ce}Reflect.construct(o,[],a)}else{try{a.call()}catch(ce){g=ce}o.call(a.prototype)}else{try{throw Error()}catch(ce){g=ce}o()}}catch(ce){if(ce&&g&&typeof ce.stack=="string"){for(var v=ce.stack.split(`
|
|
35
|
+
`),S=g.stack.split(`
|
|
36
|
+
`),R=v.length-1,V=S.length-1;1<=R&&0<=V&&v[R]!==S[V];)V--;for(;1<=R&&0<=V;R--,V--)if(v[R]!==S[V]){if(R!==1||V!==1)do if(R--,V--,0>V||v[R]!==S[V]){var q=`
|
|
37
|
+
`+v[R].replace(" at new "," at ");return o.displayName&&q.includes("<anonymous>")&&(q=q.replace("<anonymous>",o.displayName)),q}while(1<=R&&0<=V);break}}}finally{I=!1,Error.prepareStackTrace=d}return(o=o?o.displayName||o.name:"")?ee(o):""}function me(o){switch(o.tag){case 5:return ee(o.type);case 16:return ee("Lazy");case 13:return ee("Suspense");case 19:return ee("SuspenseList");case 0:case 2:case 15:return o=ue(o.type,!1),o;case 11:return o=ue(o.type.render,!1),o;case 1:return o=ue(o.type,!0),o;default:return""}}function U(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case $:return"Fragment";case P:return"Portal";case X:return"Profiler";case F:return"StrictMode";case Z:return"Suspense";case M:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case D:return(o.displayName||"Context")+".Consumer";case te:return(o._context.displayName||"Context")+".Provider";case W:var a=o.render;return o=o.displayName,o||(o=a.displayName||a.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case K:return a=o.displayName||null,a!==null?a:U(o.type)||"Memo";case J:a=o._payload,o=o._init;try{return U(o(a))}catch{}}return null}function se(o){var a=o.type;switch(o.tag){case 24:return"Cache";case 9:return(a.displayName||"Context")+".Consumer";case 10:return(a._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return o=a.render,o=o.displayName||o.name||"",a.displayName||(o!==""?"ForwardRef("+o+")":"ForwardRef");case 7:return"Fragment";case 5:return a;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(a);case 8:return a===F?"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 a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a}return null}function de(o){switch(typeof o){case"boolean":case"number":case"string":case"undefined":return o;case"object":return o;default:return""}}function ye(o){var a=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function je(o){var a=ye(o)?"checked":"value",d=Object.getOwnPropertyDescriptor(o.constructor.prototype,a),g=""+o[a];if(!o.hasOwnProperty(a)&&typeof d<"u"&&typeof d.get=="function"&&typeof d.set=="function"){var v=d.get,S=d.set;return Object.defineProperty(o,a,{configurable:!0,get:function(){return v.call(this)},set:function(R){g=""+R,S.call(this,R)}}),Object.defineProperty(o,a,{enumerable:d.enumerable}),{getValue:function(){return g},setValue:function(R){g=""+R},stopTracking:function(){o._valueTracker=null,delete o[a]}}}}function fe(o){o._valueTracker||(o._valueTracker=je(o))}function Ve(o){if(!o)return!1;var a=o._valueTracker;if(!a)return!0;var d=a.getValue(),g="";return o&&(g=ye(o)?o.checked?"true":"false":o.value),o=g,o!==d?(a.setValue(o),!0):!1}function pe(o){if(o=o||(typeof document<"u"?document:void 0),typeof o>"u")return null;try{return o.activeElement||o.body}catch{return o.body}}function Re(o,a){var d=a.checked;return A({},a,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:d??o._wrapperState.initialChecked})}function O(o,a){var d=a.defaultValue==null?"":a.defaultValue,g=a.checked!=null?a.checked:a.defaultChecked;d=de(a.value!=null?a.value:d),o._wrapperState={initialChecked:g,initialValue:d,controlled:a.type==="checkbox"||a.type==="radio"?a.checked!=null:a.value!=null}}function H(o,a){a=a.checked,a!=null&&N(o,"checked",a,!1)}function Q(o,a){H(o,a);var d=de(a.value),g=a.type;if(d!=null)g==="number"?(d===0&&o.value===""||o.value!=d)&&(o.value=""+d):o.value!==""+d&&(o.value=""+d);else if(g==="submit"||g==="reset"){o.removeAttribute("value");return}a.hasOwnProperty("value")?Ie(o,a.type,d):a.hasOwnProperty("defaultValue")&&Ie(o,a.type,de(a.defaultValue)),a.checked==null&&a.defaultChecked!=null&&(o.defaultChecked=!!a.defaultChecked)}function ge(o,a,d){if(a.hasOwnProperty("value")||a.hasOwnProperty("defaultValue")){var g=a.type;if(!(g!=="submit"&&g!=="reset"||a.value!==void 0&&a.value!==null))return;a=""+o._wrapperState.initialValue,d||a===o.value||(o.value=a),o.defaultValue=a}d=o.name,d!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,d!==""&&(o.name=d)}function Ie(o,a,d){(a!=="number"||pe(o.ownerDocument)!==o)&&(d==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+d&&(o.defaultValue=""+d))}var Te=Array.isArray;function et(o,a,d,g){if(o=o.options,a){a={};for(var v=0;v<d.length;v++)a["$"+d[v]]=!0;for(d=0;d<o.length;d++)v=a.hasOwnProperty("$"+o[d].value),o[d].selected!==v&&(o[d].selected=v),v&&g&&(o[d].defaultSelected=!0)}else{for(d=""+de(d),a=null,v=0;v<o.length;v++){if(o[v].value===d){o[v].selected=!0,g&&(o[v].defaultSelected=!0);return}a!==null||o[v].disabled||(a=o[v])}a!==null&&(a.selected=!0)}}function He(o,a){if(a.dangerouslySetInnerHTML!=null)throw Error(n(91));return A({},a,{value:void 0,defaultValue:void 0,children:""+o._wrapperState.initialValue})}function jt(o,a){var d=a.value;if(d==null){if(d=a.children,a=a.defaultValue,d!=null){if(a!=null)throw Error(n(92));if(Te(d)){if(1<d.length)throw Error(n(93));d=d[0]}a=d}a==null&&(a=""),d=a}o._wrapperState={initialValue:de(d)}}function Ht(o,a){var d=de(a.value),g=de(a.defaultValue);d!=null&&(d=""+d,d!==o.value&&(o.value=d),a.defaultValue==null&&o.defaultValue!==d&&(o.defaultValue=d)),g!=null&&(o.defaultValue=""+g)}function st(o){var a=o.textContent;a===o._wrapperState.initialValue&&a!==""&&a!==null&&(o.value=a)}function ae(o){switch(o){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 be(o,a){return o==null||o==="http://www.w3.org/1999/xhtml"?ae(a):o==="http://www.w3.org/2000/svg"&&a==="foreignObject"?"http://www.w3.org/1999/xhtml":o}var $e,We=(function(o){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(a,d,g,v){MSApp.execUnsafeLocalFunction(function(){return o(a,d,g,v)})}:o})(function(o,a){if(o.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in o)o.innerHTML=a;else{for($e=$e||document.createElement("div"),$e.innerHTML="<svg>"+a.valueOf().toString()+"</svg>",a=$e.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;a.firstChild;)o.appendChild(a.firstChild)}});function Xe(o,a){if(a){var d=o.firstChild;if(d&&d===o.lastChild&&d.nodeType===3){d.nodeValue=a;return}}o.textContent=a}var it={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},Wt=["Webkit","ms","Moz","O"];Object.keys(it).forEach(function(o){Wt.forEach(function(a){a=a+o.charAt(0).toUpperCase()+o.substring(1),it[a]=it[o]})});function xt(o,a,d){return a==null||typeof a=="boolean"||a===""?"":d||typeof a!="number"||a===0||it.hasOwnProperty(o)&&it[o]?(""+a).trim():a+"px"}function tn(o,a){o=o.style;for(var d in a)if(a.hasOwnProperty(d)){var g=d.indexOf("--")===0,v=xt(d,a[d],g);d==="float"&&(d="cssFloat"),g?o.setProperty(d,v):o[d]=v}}var St=A({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 yt(o,a){if(a){if(St[o]&&(a.children!=null||a.dangerouslySetInnerHTML!=null))throw Error(n(137,o));if(a.dangerouslySetInnerHTML!=null){if(a.children!=null)throw Error(n(60));if(typeof a.dangerouslySetInnerHTML!="object"||!("__html"in a.dangerouslySetInnerHTML))throw Error(n(61))}if(a.style!=null&&typeof a.style!="object")throw Error(n(62))}}function kt(o,a){if(o.indexOf("-")===-1)return typeof a.is=="string";switch(o){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 Tt=null;function ar(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var lr=null,xe=null,Fe=null;function Oe(o){if(o=qa(o)){if(typeof lr!="function")throw Error(n(280));var a=o.stateNode;a&&(a=Rc(a),lr(o.stateNode,o.type,a))}}function Nt(o){xe?Fe?Fe.push(o):Fe=[o]:xe=o}function Rn(){if(xe){var o=xe,a=Fe;if(Fe=xe=null,Oe(o),a)for(o=0;o<a.length;o++)Oe(a[o])}}function Kt(o,a){return o(a)}function nn(){}var Bt=!1;function qn(o,a,d){if(Bt)return o(a,d);Bt=!0;try{return Kt(o,a,d)}finally{Bt=!1,(xe!==null||Fe!==null)&&(nn(),Rn())}}function ut(o,a){var d=o.stateNode;if(d===null)return null;var g=Rc(d);if(g===null)return null;d=g[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(g=!g.disabled)||(o=o.type,g=!(o==="button"||o==="input"||o==="select"||o==="textarea")),o=!g;break e;default:o=!1}if(o)return null;if(d&&typeof d!="function")throw Error(n(231,a,typeof d));return d}var bn=!1;if(u)try{var Ct={};Object.defineProperty(Ct,"passive",{get:function(){bn=!0}}),window.addEventListener("test",Ct,Ct),window.removeEventListener("test",Ct,Ct)}catch{bn=!1}function ne(o,a,d,g,v,S,R,V,q){var ce=Array.prototype.slice.call(arguments,3);try{a.apply(d,ce)}catch(we){this.onError(we)}}var Pe=!1,qe=null,It=!1,fn=null,bt={onError:function(o){Pe=!0,qe=o}};function bf(o,a,d,g,v,S,R,V,q){Pe=!1,qe=null,ne.apply(bt,arguments)}function Ca(o,a,d,g,v,S,R,V,q){if(bf.apply(this,arguments),Pe){if(Pe){var ce=qe;Pe=!1,qe=null}else throw Error(n(198));It||(It=!0,fn=ce)}}function Or(o){var a=o,d=o;if(o.alternate)for(;a.return;)a=a.return;else{o=a;do a=o,(a.flags&4098)!==0&&(d=a.return),o=a.return;while(o)}return a.tag===3?d:null}function Yo(o){if(o.tag===13){var a=o.memoizedState;if(a===null&&(o=o.alternate,o!==null&&(a=o.memoizedState)),a!==null)return a.dehydrated}return null}function Jo(o){if(Or(o)!==o)throw Error(n(188))}function Ea(o){var a=o.alternate;if(!a){if(a=Or(o),a===null)throw Error(n(188));return a!==o?null:o}for(var d=o,g=a;;){var v=d.return;if(v===null)break;var S=v.alternate;if(S===null){if(g=v.return,g!==null){d=g;continue}break}if(v.child===S.child){for(S=v.child;S;){if(S===d)return Jo(v),o;if(S===g)return Jo(v),a;S=S.sibling}throw Error(n(188))}if(d.return!==g.return)d=v,g=S;else{for(var R=!1,V=v.child;V;){if(V===d){R=!0,d=v,g=S;break}if(V===g){R=!0,g=v,d=S;break}V=V.sibling}if(!R){for(V=S.child;V;){if(V===d){R=!0,d=S,g=v;break}if(V===g){R=!0,g=S,d=v;break}V=V.sibling}if(!R)throw Error(n(189))}}if(d.alternate!==g)throw Error(n(190))}if(d.tag!==3)throw Error(n(188));return d.stateNode.current===d?o:a}function Xo(o){return o=Ea(o),o!==null?Qo(o):null}function Qo(o){if(o.tag===5||o.tag===6)return o;for(o=o.child;o!==null;){var a=Qo(o);if(a!==null)return a;o=o.sibling}return null}var Zo=t.unstable_scheduleCallback,mo=t.unstable_cancelCallback,vf=t.unstable_shouldYield,ei=t.unstable_requestPaint,Pt=t.unstable_now,wf=t.unstable_getCurrentPriorityLevel,Ta=t.unstable_ImmediatePriority,dc=t.unstable_UserBlockingPriority,Fn=t.unstable_NormalPriority,jf=t.unstable_LowPriority,fc=t.unstable_IdlePriority,ti=null,br=null;function kf(o){if(br&&typeof br.onCommitFiberRoot=="function")try{br.onCommitFiberRoot(ti,o,void 0,(o.current.flags&128)===128)}catch{}}var ht=Math.clz32?Math.clz32:Sf,ho=Math.log,Pa=Math.LN2;function Sf(o){return o>>>=0,o===0?32:31-(ho(o)/Pa|0)|0}var ni=64,go=4194304;function xs(o){switch(o&-o){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 o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function xo(o,a){var d=o.pendingLanes;if(d===0)return 0;var g=0,v=o.suspendedLanes,S=o.pingedLanes,R=d&268435455;if(R!==0){var V=R&~v;V!==0?g=xs(V):(S&=R,S!==0&&(g=xs(S)))}else R=d&~v,R!==0?g=xs(R):S!==0&&(g=xs(S));if(g===0)return 0;if(a!==0&&a!==g&&(a&v)===0&&(v=g&-g,S=a&-a,v>=S||v===16&&(S&4194240)!==0))return a;if((g&4)!==0&&(g|=d&16),a=o.entangledLanes,a!==0)for(o=o.entanglements,a&=g;0<a;)d=31-ht(a),v=1<<d,g|=o[d],a&=~v;return g}function yo(o,a){switch(o){case 1:case 2:case 4:return a+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 a+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 Ra(o,a){for(var d=o.suspendedLanes,g=o.pingedLanes,v=o.expirationTimes,S=o.pendingLanes;0<S;){var R=31-ht(S),V=1<<R,q=v[R];q===-1?((V&d)===0||(V&g)!==0)&&(v[R]=yo(V,a)):q<=a&&(o.expiredLanes|=V),S&=~V}}function Aa(o){return o=o.pendingLanes&-1073741825,o!==0?o:o&1073741824?1073741824:0}function pc(){var o=ni;return ni<<=1,(ni&4194240)===0&&(ni=64),o}function An(o){for(var a=[],d=0;31>d;d++)a.push(o);return a}function bo(o,a,d){o.pendingLanes|=a,a!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,a=31-ht(a),o[a]=d}function Da(o,a){var d=o.pendingLanes&~a;o.pendingLanes=a,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=a,o.mutableReadLanes&=a,o.entangledLanes&=a,a=o.entanglements;var g=o.eventTimes;for(o=o.expirationTimes;0<d;){var v=31-ht(d),S=1<<v;a[v]=0,g[v]=-1,o[v]=-1,d&=~S}}function $a(o,a){var d=o.entangledLanes|=a;for(o=o.entanglements;d;){var g=31-ht(d),v=1<<g;v&a|o[g]&a&&(o[g]|=a),d&=~v}}var vt=0;function mc(o){return o&=-o,1<o?4<o?(o&268435455)!==0?16:536870912:4:1}var Xr,z,oe,he,Ae,tt=!1,at=[],dt=null,an=null,rn=null,vn=new Map,zn=new Map,_r=[],hc="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 vo(o,a){switch(o){case"focusin":case"focusout":dt=null;break;case"dragenter":case"dragleave":an=null;break;case"mouseover":case"mouseout":rn=null;break;case"pointerover":case"pointerout":vn.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":zn.delete(a.pointerId)}}function vr(o,a,d,g,v,S){return o===null||o.nativeEvent!==S?(o={blockedOn:a,domEventName:d,eventSystemFlags:g,nativeEvent:S,targetContainers:[v]},a!==null&&(a=qa(a),a!==null&&z(a)),o):(o.eventSystemFlags|=g,a=o.targetContainers,v!==null&&a.indexOf(v)===-1&&a.push(v),o)}function VN(o,a,d,g,v){switch(a){case"focusin":return dt=vr(dt,o,a,d,g,v),!0;case"dragenter":return an=vr(an,o,a,d,g,v),!0;case"mouseover":return rn=vr(rn,o,a,d,g,v),!0;case"pointerover":var S=v.pointerId;return vn.set(S,vr(vn.get(S)||null,o,a,d,g,v)),!0;case"gotpointercapture":return S=v.pointerId,zn.set(S,vr(zn.get(S)||null,o,a,d,g,v)),!0}return!1}function Sx(o){var a=wo(o.target);if(a!==null){var d=Or(a);if(d!==null){if(a=d.tag,a===13){if(a=Yo(d),a!==null){o.blockedOn=a,Ae(o.priority,function(){oe(d)});return}}else if(a===3&&d.stateNode.current.memoizedState.isDehydrated){o.blockedOn=d.tag===3?d.stateNode.containerInfo:null;return}}}o.blockedOn=null}function gc(o){if(o.blockedOn!==null)return!1;for(var a=o.targetContainers;0<a.length;){var d=Cf(o.domEventName,o.eventSystemFlags,a[0],o.nativeEvent);if(d===null){d=o.nativeEvent;var g=new d.constructor(d.type,d);Tt=g,d.target.dispatchEvent(g),Tt=null}else return a=qa(d),a!==null&&z(a),o.blockedOn=d,!1;a.shift()}return!0}function Nx(o,a,d){gc(o)&&d.delete(a)}function HN(){tt=!1,dt!==null&&gc(dt)&&(dt=null),an!==null&&gc(an)&&(an=null),rn!==null&&gc(rn)&&(rn=null),vn.forEach(Nx),zn.forEach(Nx)}function La(o,a){o.blockedOn===a&&(o.blockedOn=null,tt||(tt=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,HN)))}function Ia(o){function a(v){return La(v,o)}if(0<at.length){La(at[0],o);for(var d=1;d<at.length;d++){var g=at[d];g.blockedOn===o&&(g.blockedOn=null)}}for(dt!==null&&La(dt,o),an!==null&&La(an,o),rn!==null&&La(rn,o),vn.forEach(a),zn.forEach(a),d=0;d<_r.length;d++)g=_r[d],g.blockedOn===o&&(g.blockedOn=null);for(;0<_r.length&&(d=_r[0],d.blockedOn===null);)Sx(d),d.blockedOn===null&&_r.shift()}var ri=T.ReactCurrentBatchConfig,xc=!0;function WN(o,a,d,g){var v=vt,S=ri.transition;ri.transition=null;try{vt=1,Nf(o,a,d,g)}finally{vt=v,ri.transition=S}}function KN(o,a,d,g){var v=vt,S=ri.transition;ri.transition=null;try{vt=4,Nf(o,a,d,g)}finally{vt=v,ri.transition=S}}function Nf(o,a,d,g){if(xc){var v=Cf(o,a,d,g);if(v===null)Vf(o,a,g,yc,d),vo(o,g);else if(VN(v,o,a,d,g))g.stopPropagation();else if(vo(o,g),a&4&&-1<hc.indexOf(o)){for(;v!==null;){var S=qa(v);if(S!==null&&Xr(S),S=Cf(o,a,d,g),S===null&&Vf(o,a,g,yc,d),S===v)break;v=S}v!==null&&g.stopPropagation()}else Vf(o,a,g,null,d)}}var yc=null;function Cf(o,a,d,g){if(yc=null,o=ar(g),o=wo(o),o!==null)if(a=Or(o),a===null)o=null;else if(d=a.tag,d===13){if(o=Yo(a),o!==null)return o;o=null}else if(d===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null);return yc=o,null}function Cx(o){switch(o){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(wf()){case Ta:return 1;case dc:return 4;case Fn:case jf:return 16;case fc:return 536870912;default:return 16}default:return 16}}var Is=null,Ef=null,bc=null;function Ex(){if(bc)return bc;var o,a=Ef,d=a.length,g,v="value"in Is?Is.value:Is.textContent,S=v.length;for(o=0;o<d&&a[o]===v[o];o++);var R=d-o;for(g=1;g<=R&&a[d-g]===v[S-g];g++);return bc=v.slice(o,1<g?1-g:void 0)}function vc(o){var a=o.keyCode;return"charCode"in o?(o=o.charCode,o===0&&a===13&&(o=13)):o=a,o===10&&(o=13),32<=o||o===13?o:0}function wc(){return!0}function Tx(){return!1}function cr(o){function a(d,g,v,S,R){this._reactName=d,this._targetInst=v,this.type=g,this.nativeEvent=S,this.target=R,this.currentTarget=null;for(var V in o)o.hasOwnProperty(V)&&(d=o[V],this[V]=d?d(S):S[V]);return this.isDefaultPrevented=(S.defaultPrevented!=null?S.defaultPrevented:S.returnValue===!1)?wc:Tx,this.isPropagationStopped=Tx,this}return A(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var d=this.nativeEvent;d&&(d.preventDefault?d.preventDefault():typeof d.returnValue!="unknown"&&(d.returnValue=!1),this.isDefaultPrevented=wc)},stopPropagation:function(){var d=this.nativeEvent;d&&(d.stopPropagation?d.stopPropagation():typeof d.cancelBubble!="unknown"&&(d.cancelBubble=!0),this.isPropagationStopped=wc)},persist:function(){},isPersistent:wc}),a}var si={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(o){return o.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Tf=cr(si),Oa=A({},si,{view:0,detail:0}),qN=cr(Oa),Pf,Rf,_a,jc=A({},Oa,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Df,button:0,buttons:0,relatedTarget:function(o){return o.relatedTarget===void 0?o.fromElement===o.srcElement?o.toElement:o.fromElement:o.relatedTarget},movementX:function(o){return"movementX"in o?o.movementX:(o!==_a&&(_a&&o.type==="mousemove"?(Pf=o.screenX-_a.screenX,Rf=o.screenY-_a.screenY):Rf=Pf=0,_a=o),Pf)},movementY:function(o){return"movementY"in o?o.movementY:Rf}}),Px=cr(jc),GN=A({},jc,{dataTransfer:0}),YN=cr(GN),JN=A({},Oa,{relatedTarget:0}),Af=cr(JN),XN=A({},si,{animationName:0,elapsedTime:0,pseudoElement:0}),QN=cr(XN),ZN=A({},si,{clipboardData:function(o){return"clipboardData"in o?o.clipboardData:window.clipboardData}}),eC=cr(ZN),tC=A({},si,{data:0}),Rx=cr(tC),nC={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},rC={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"},sC={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function oC(o){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(o):(o=sC[o])?!!a[o]:!1}function Df(){return oC}var iC=A({},Oa,{key:function(o){if(o.key){var a=nC[o.key]||o.key;if(a!=="Unidentified")return a}return o.type==="keypress"?(o=vc(o),o===13?"Enter":String.fromCharCode(o)):o.type==="keydown"||o.type==="keyup"?rC[o.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Df,charCode:function(o){return o.type==="keypress"?vc(o):0},keyCode:function(o){return o.type==="keydown"||o.type==="keyup"?o.keyCode:0},which:function(o){return o.type==="keypress"?vc(o):o.type==="keydown"||o.type==="keyup"?o.keyCode:0}}),aC=cr(iC),lC=A({},jc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ax=cr(lC),cC=A({},Oa,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Df}),uC=cr(cC),dC=A({},si,{propertyName:0,elapsedTime:0,pseudoElement:0}),fC=cr(dC),pC=A({},jc,{deltaX:function(o){return"deltaX"in o?o.deltaX:"wheelDeltaX"in o?-o.wheelDeltaX:0},deltaY:function(o){return"deltaY"in o?o.deltaY:"wheelDeltaY"in o?-o.wheelDeltaY:"wheelDelta"in o?-o.wheelDelta:0},deltaZ:0,deltaMode:0}),mC=cr(pC),hC=[9,13,27,32],$f=u&&"CompositionEvent"in window,Ma=null;u&&"documentMode"in document&&(Ma=document.documentMode);var gC=u&&"TextEvent"in window&&!Ma,Dx=u&&(!$f||Ma&&8<Ma&&11>=Ma),$x=" ",Lx=!1;function Ix(o,a){switch(o){case"keyup":return hC.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ox(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var oi=!1;function xC(o,a){switch(o){case"compositionend":return Ox(a);case"keypress":return a.which!==32?null:(Lx=!0,$x);case"textInput":return o=a.data,o===$x&&Lx?null:o;default:return null}}function yC(o,a){if(oi)return o==="compositionend"||!$f&&Ix(o,a)?(o=Ex(),bc=Ef=Is=null,oi=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return Dx&&a.locale!=="ko"?null:a.data;default:return null}}var bC={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 _x(o){var a=o&&o.nodeName&&o.nodeName.toLowerCase();return a==="input"?!!bC[o.type]:a==="textarea"}function Mx(o,a,d,g){Nt(g),a=Ec(a,"onChange"),0<a.length&&(d=new Tf("onChange","change",null,d,g),o.push({event:d,listeners:a}))}var Fa=null,za=null;function vC(o){ny(o,0)}function kc(o){var a=ui(o);if(Ve(a))return o}function wC(o,a){if(o==="change")return a}var Fx=!1;if(u){var Lf;if(u){var If="oninput"in document;if(!If){var zx=document.createElement("div");zx.setAttribute("oninput","return;"),If=typeof zx.oninput=="function"}Lf=If}else Lf=!1;Fx=Lf&&(!document.documentMode||9<document.documentMode)}function Bx(){Fa&&(Fa.detachEvent("onpropertychange",Ux),za=Fa=null)}function Ux(o){if(o.propertyName==="value"&&kc(za)){var a=[];Mx(a,za,o,ar(o)),qn(vC,a)}}function jC(o,a,d){o==="focusin"?(Bx(),Fa=a,za=d,Fa.attachEvent("onpropertychange",Ux)):o==="focusout"&&Bx()}function kC(o){if(o==="selectionchange"||o==="keyup"||o==="keydown")return kc(za)}function SC(o,a){if(o==="click")return kc(a)}function NC(o,a){if(o==="input"||o==="change")return kc(a)}function CC(o,a){return o===a&&(o!==0||1/o===1/a)||o!==o&&a!==a}var Mr=typeof Object.is=="function"?Object.is:CC;function Ba(o,a){if(Mr(o,a))return!0;if(typeof o!="object"||o===null||typeof a!="object"||a===null)return!1;var d=Object.keys(o),g=Object.keys(a);if(d.length!==g.length)return!1;for(g=0;g<d.length;g++){var v=d[g];if(!p.call(a,v)||!Mr(o[v],a[v]))return!1}return!0}function Vx(o){for(;o&&o.firstChild;)o=o.firstChild;return o}function Hx(o,a){var d=Vx(o);o=0;for(var g;d;){if(d.nodeType===3){if(g=o+d.textContent.length,o<=a&&g>=a)return{node:d,offset:a-o};o=g}e:{for(;d;){if(d.nextSibling){d=d.nextSibling;break e}d=d.parentNode}d=void 0}d=Vx(d)}}function Wx(o,a){return o&&a?o===a?!0:o&&o.nodeType===3?!1:a&&a.nodeType===3?Wx(o,a.parentNode):"contains"in o?o.contains(a):o.compareDocumentPosition?!!(o.compareDocumentPosition(a)&16):!1:!1}function Kx(){for(var o=window,a=pe();a instanceof o.HTMLIFrameElement;){try{var d=typeof a.contentWindow.location.href=="string"}catch{d=!1}if(d)o=a.contentWindow;else break;a=pe(o.document)}return a}function Of(o){var a=o&&o.nodeName&&o.nodeName.toLowerCase();return a&&(a==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||a==="textarea"||o.contentEditable==="true")}function EC(o){var a=Kx(),d=o.focusedElem,g=o.selectionRange;if(a!==d&&d&&d.ownerDocument&&Wx(d.ownerDocument.documentElement,d)){if(g!==null&&Of(d)){if(a=g.start,o=g.end,o===void 0&&(o=a),"selectionStart"in d)d.selectionStart=a,d.selectionEnd=Math.min(o,d.value.length);else if(o=(a=d.ownerDocument||document)&&a.defaultView||window,o.getSelection){o=o.getSelection();var v=d.textContent.length,S=Math.min(g.start,v);g=g.end===void 0?S:Math.min(g.end,v),!o.extend&&S>g&&(v=g,g=S,S=v),v=Hx(d,S);var R=Hx(d,g);v&&R&&(o.rangeCount!==1||o.anchorNode!==v.node||o.anchorOffset!==v.offset||o.focusNode!==R.node||o.focusOffset!==R.offset)&&(a=a.createRange(),a.setStart(v.node,v.offset),o.removeAllRanges(),S>g?(o.addRange(a),o.extend(R.node,R.offset)):(a.setEnd(R.node,R.offset),o.addRange(a)))}}for(a=[],o=d;o=o.parentNode;)o.nodeType===1&&a.push({element:o,left:o.scrollLeft,top:o.scrollTop});for(typeof d.focus=="function"&&d.focus(),d=0;d<a.length;d++)o=a[d],o.element.scrollLeft=o.left,o.element.scrollTop=o.top}}var TC=u&&"documentMode"in document&&11>=document.documentMode,ii=null,_f=null,Ua=null,Mf=!1;function qx(o,a,d){var g=d.window===d?d.document:d.nodeType===9?d:d.ownerDocument;Mf||ii==null||ii!==pe(g)||(g=ii,"selectionStart"in g&&Of(g)?g={start:g.selectionStart,end:g.selectionEnd}:(g=(g.ownerDocument&&g.ownerDocument.defaultView||window).getSelection(),g={anchorNode:g.anchorNode,anchorOffset:g.anchorOffset,focusNode:g.focusNode,focusOffset:g.focusOffset}),Ua&&Ba(Ua,g)||(Ua=g,g=Ec(_f,"onSelect"),0<g.length&&(a=new Tf("onSelect","select",null,a,d),o.push({event:a,listeners:g}),a.target=ii)))}function Sc(o,a){var d={};return d[o.toLowerCase()]=a.toLowerCase(),d["Webkit"+o]="webkit"+a,d["Moz"+o]="moz"+a,d}var ai={animationend:Sc("Animation","AnimationEnd"),animationiteration:Sc("Animation","AnimationIteration"),animationstart:Sc("Animation","AnimationStart"),transitionend:Sc("Transition","TransitionEnd")},Ff={},Gx={};u&&(Gx=document.createElement("div").style,"AnimationEvent"in window||(delete ai.animationend.animation,delete ai.animationiteration.animation,delete ai.animationstart.animation),"TransitionEvent"in window||delete ai.transitionend.transition);function Nc(o){if(Ff[o])return Ff[o];if(!ai[o])return o;var a=ai[o],d;for(d in a)if(a.hasOwnProperty(d)&&d in Gx)return Ff[o]=a[d];return o}var Yx=Nc("animationend"),Jx=Nc("animationiteration"),Xx=Nc("animationstart"),Qx=Nc("transitionend"),Zx=new Map,ey="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 Os(o,a){Zx.set(o,a),l(a,[o])}for(var zf=0;zf<ey.length;zf++){var Bf=ey[zf],PC=Bf.toLowerCase(),RC=Bf[0].toUpperCase()+Bf.slice(1);Os(PC,"on"+RC)}Os(Yx,"onAnimationEnd"),Os(Jx,"onAnimationIteration"),Os(Xx,"onAnimationStart"),Os("dblclick","onDoubleClick"),Os("focusin","onFocus"),Os("focusout","onBlur"),Os(Qx,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Va="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(" "),AC=new Set("cancel close invalid load scroll toggle".split(" ").concat(Va));function ty(o,a,d){var g=o.type||"unknown-event";o.currentTarget=d,Ca(g,a,void 0,o),o.currentTarget=null}function ny(o,a){a=(a&4)!==0;for(var d=0;d<o.length;d++){var g=o[d],v=g.event;g=g.listeners;e:{var S=void 0;if(a)for(var R=g.length-1;0<=R;R--){var V=g[R],q=V.instance,ce=V.currentTarget;if(V=V.listener,q!==S&&v.isPropagationStopped())break e;ty(v,V,ce),S=q}else for(R=0;R<g.length;R++){if(V=g[R],q=V.instance,ce=V.currentTarget,V=V.listener,q!==S&&v.isPropagationStopped())break e;ty(v,V,ce),S=q}}}if(It)throw o=fn,It=!1,fn=null,o}function Ot(o,a){var d=a[Yf];d===void 0&&(d=a[Yf]=new Set);var g=o+"__bubble";d.has(g)||(ry(a,o,2,!1),d.add(g))}function Uf(o,a,d){var g=0;a&&(g|=4),ry(d,o,g,a)}var Cc="_reactListening"+Math.random().toString(36).slice(2);function Ha(o){if(!o[Cc]){o[Cc]=!0,s.forEach(function(d){d!=="selectionchange"&&(AC.has(d)||Uf(d,!1,o),Uf(d,!0,o))});var a=o.nodeType===9?o:o.ownerDocument;a===null||a[Cc]||(a[Cc]=!0,Uf("selectionchange",!1,a))}}function ry(o,a,d,g){switch(Cx(a)){case 1:var v=WN;break;case 4:v=KN;break;default:v=Nf}d=v.bind(null,a,d,o),v=void 0,!bn||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(v=!0),g?v!==void 0?o.addEventListener(a,d,{capture:!0,passive:v}):o.addEventListener(a,d,!0):v!==void 0?o.addEventListener(a,d,{passive:v}):o.addEventListener(a,d,!1)}function Vf(o,a,d,g,v){var S=g;if((a&1)===0&&(a&2)===0&&g!==null)e:for(;;){if(g===null)return;var R=g.tag;if(R===3||R===4){var V=g.stateNode.containerInfo;if(V===v||V.nodeType===8&&V.parentNode===v)break;if(R===4)for(R=g.return;R!==null;){var q=R.tag;if((q===3||q===4)&&(q=R.stateNode.containerInfo,q===v||q.nodeType===8&&q.parentNode===v))return;R=R.return}for(;V!==null;){if(R=wo(V),R===null)return;if(q=R.tag,q===5||q===6){g=S=R;continue e}V=V.parentNode}}g=g.return}qn(function(){var ce=S,we=ar(d),ke=[];e:{var ve=Zx.get(o);if(ve!==void 0){var Le=Tf,Me=o;switch(o){case"keypress":if(vc(d)===0)break e;case"keydown":case"keyup":Le=aC;break;case"focusin":Me="focus",Le=Af;break;case"focusout":Me="blur",Le=Af;break;case"beforeblur":case"afterblur":Le=Af;break;case"click":if(d.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Le=Px;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Le=YN;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Le=uC;break;case Yx:case Jx:case Xx:Le=QN;break;case Qx:Le=fC;break;case"scroll":Le=qN;break;case"wheel":Le=mC;break;case"copy":case"cut":case"paste":Le=eC;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Le=Ax}var Be=(a&4)!==0,sn=!Be&&o==="scroll",re=Be?ve!==null?ve+"Capture":null:ve;Be=[];for(var Y=ce,ie;Y!==null;){ie=Y;var Ne=ie.stateNode;if(ie.tag===5&&Ne!==null&&(ie=Ne,re!==null&&(Ne=ut(Y,re),Ne!=null&&Be.push(Wa(Y,Ne,ie)))),sn)break;Y=Y.return}0<Be.length&&(ve=new Le(ve,Me,null,d,we),ke.push({event:ve,listeners:Be}))}}if((a&7)===0){e:{if(ve=o==="mouseover"||o==="pointerover",Le=o==="mouseout"||o==="pointerout",ve&&d!==Tt&&(Me=d.relatedTarget||d.fromElement)&&(wo(Me)||Me[ys]))break e;if((Le||ve)&&(ve=we.window===we?we:(ve=we.ownerDocument)?ve.defaultView||ve.parentWindow:window,Le?(Me=d.relatedTarget||d.toElement,Le=ce,Me=Me?wo(Me):null,Me!==null&&(sn=Or(Me),Me!==sn||Me.tag!==5&&Me.tag!==6)&&(Me=null)):(Le=null,Me=ce),Le!==Me)){if(Be=Px,Ne="onMouseLeave",re="onMouseEnter",Y="mouse",(o==="pointerout"||o==="pointerover")&&(Be=Ax,Ne="onPointerLeave",re="onPointerEnter",Y="pointer"),sn=Le==null?ve:ui(Le),ie=Me==null?ve:ui(Me),ve=new Be(Ne,Y+"leave",Le,d,we),ve.target=sn,ve.relatedTarget=ie,Ne=null,wo(we)===ce&&(Be=new Be(re,Y+"enter",Me,d,we),Be.target=ie,Be.relatedTarget=sn,Ne=Be),sn=Ne,Le&&Me)t:{for(Be=Le,re=Me,Y=0,ie=Be;ie;ie=li(ie))Y++;for(ie=0,Ne=re;Ne;Ne=li(Ne))ie++;for(;0<Y-ie;)Be=li(Be),Y--;for(;0<ie-Y;)re=li(re),ie--;for(;Y--;){if(Be===re||re!==null&&Be===re.alternate)break t;Be=li(Be),re=li(re)}Be=null}else Be=null;Le!==null&&sy(ke,ve,Le,Be,!1),Me!==null&&sn!==null&&sy(ke,sn,Me,Be,!0)}}e:{if(ve=ce?ui(ce):window,Le=ve.nodeName&&ve.nodeName.toLowerCase(),Le==="select"||Le==="input"&&ve.type==="file")var Ke=wC;else if(_x(ve))if(Fx)Ke=NC;else{Ke=kC;var Ge=jC}else(Le=ve.nodeName)&&Le.toLowerCase()==="input"&&(ve.type==="checkbox"||ve.type==="radio")&&(Ke=SC);if(Ke&&(Ke=Ke(o,ce))){Mx(ke,Ke,d,we);break e}Ge&&Ge(o,ve,ce),o==="focusout"&&(Ge=ve._wrapperState)&&Ge.controlled&&ve.type==="number"&&Ie(ve,"number",ve.value)}switch(Ge=ce?ui(ce):window,o){case"focusin":(_x(Ge)||Ge.contentEditable==="true")&&(ii=Ge,_f=ce,Ua=null);break;case"focusout":Ua=_f=ii=null;break;case"mousedown":Mf=!0;break;case"contextmenu":case"mouseup":case"dragend":Mf=!1,qx(ke,d,we);break;case"selectionchange":if(TC)break;case"keydown":case"keyup":qx(ke,d,we)}var Ye;if($f)e:{switch(o){case"compositionstart":var Qe="onCompositionStart";break e;case"compositionend":Qe="onCompositionEnd";break e;case"compositionupdate":Qe="onCompositionUpdate";break e}Qe=void 0}else oi?Ix(o,d)&&(Qe="onCompositionEnd"):o==="keydown"&&d.keyCode===229&&(Qe="onCompositionStart");Qe&&(Dx&&d.locale!=="ko"&&(oi||Qe!=="onCompositionStart"?Qe==="onCompositionEnd"&&oi&&(Ye=Ex()):(Is=we,Ef="value"in Is?Is.value:Is.textContent,oi=!0)),Ge=Ec(ce,Qe),0<Ge.length&&(Qe=new Rx(Qe,o,null,d,we),ke.push({event:Qe,listeners:Ge}),Ye?Qe.data=Ye:(Ye=Ox(d),Ye!==null&&(Qe.data=Ye)))),(Ye=gC?xC(o,d):yC(o,d))&&(ce=Ec(ce,"onBeforeInput"),0<ce.length&&(we=new Rx("onBeforeInput","beforeinput",null,d,we),ke.push({event:we,listeners:ce}),we.data=Ye))}ny(ke,a)})}function Wa(o,a,d){return{instance:o,listener:a,currentTarget:d}}function Ec(o,a){for(var d=a+"Capture",g=[];o!==null;){var v=o,S=v.stateNode;v.tag===5&&S!==null&&(v=S,S=ut(o,d),S!=null&&g.unshift(Wa(o,S,v)),S=ut(o,a),S!=null&&g.push(Wa(o,S,v))),o=o.return}return g}function li(o){if(o===null)return null;do o=o.return;while(o&&o.tag!==5);return o||null}function sy(o,a,d,g,v){for(var S=a._reactName,R=[];d!==null&&d!==g;){var V=d,q=V.alternate,ce=V.stateNode;if(q!==null&&q===g)break;V.tag===5&&ce!==null&&(V=ce,v?(q=ut(d,S),q!=null&&R.unshift(Wa(d,q,V))):v||(q=ut(d,S),q!=null&&R.push(Wa(d,q,V)))),d=d.return}R.length!==0&&o.push({event:a,listeners:R})}var DC=/\r\n?/g,$C=/\u0000|\uFFFD/g;function oy(o){return(typeof o=="string"?o:""+o).replace(DC,`
|
|
38
|
+
`).replace($C,"")}function Tc(o,a,d){if(a=oy(a),oy(o)!==a&&d)throw Error(n(425))}function Pc(){}var Hf=null,Wf=null;function Kf(o,a){return o==="textarea"||o==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var qf=typeof setTimeout=="function"?setTimeout:void 0,LC=typeof clearTimeout=="function"?clearTimeout:void 0,iy=typeof Promise=="function"?Promise:void 0,IC=typeof queueMicrotask=="function"?queueMicrotask:typeof iy<"u"?function(o){return iy.resolve(null).then(o).catch(OC)}:qf;function OC(o){setTimeout(function(){throw o})}function Gf(o,a){var d=a,g=0;do{var v=d.nextSibling;if(o.removeChild(d),v&&v.nodeType===8)if(d=v.data,d==="/$"){if(g===0){o.removeChild(v),Ia(a);return}g--}else d!=="$"&&d!=="$?"&&d!=="$!"||g++;d=v}while(d);Ia(a)}function _s(o){for(;o!=null;o=o.nextSibling){var a=o.nodeType;if(a===1||a===3)break;if(a===8){if(a=o.data,a==="$"||a==="$!"||a==="$?")break;if(a==="/$")return null}}return o}function ay(o){o=o.previousSibling;for(var a=0;o;){if(o.nodeType===8){var d=o.data;if(d==="$"||d==="$!"||d==="$?"){if(a===0)return o;a--}else d==="/$"&&a++}o=o.previousSibling}return null}var ci=Math.random().toString(36).slice(2),Qr="__reactFiber$"+ci,Ka="__reactProps$"+ci,ys="__reactContainer$"+ci,Yf="__reactEvents$"+ci,_C="__reactListeners$"+ci,MC="__reactHandles$"+ci;function wo(o){var a=o[Qr];if(a)return a;for(var d=o.parentNode;d;){if(a=d[ys]||d[Qr]){if(d=a.alternate,a.child!==null||d!==null&&d.child!==null)for(o=ay(o);o!==null;){if(d=o[Qr])return d;o=ay(o)}return a}o=d,d=o.parentNode}return null}function qa(o){return o=o[Qr]||o[ys],!o||o.tag!==5&&o.tag!==6&&o.tag!==13&&o.tag!==3?null:o}function ui(o){if(o.tag===5||o.tag===6)return o.stateNode;throw Error(n(33))}function Rc(o){return o[Ka]||null}var Jf=[],di=-1;function Ms(o){return{current:o}}function _t(o){0>di||(o.current=Jf[di],Jf[di]=null,di--)}function Rt(o,a){di++,Jf[di]=o.current,o.current=a}var Fs={},Dn=Ms(Fs),Gn=Ms(!1),jo=Fs;function fi(o,a){var d=o.type.contextTypes;if(!d)return Fs;var g=o.stateNode;if(g&&g.__reactInternalMemoizedUnmaskedChildContext===a)return g.__reactInternalMemoizedMaskedChildContext;var v={},S;for(S in d)v[S]=a[S];return g&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=a,o.__reactInternalMemoizedMaskedChildContext=v),v}function Yn(o){return o=o.childContextTypes,o!=null}function Ac(){_t(Gn),_t(Dn)}function ly(o,a,d){if(Dn.current!==Fs)throw Error(n(168));Rt(Dn,a),Rt(Gn,d)}function cy(o,a,d){var g=o.stateNode;if(a=a.childContextTypes,typeof g.getChildContext!="function")return d;g=g.getChildContext();for(var v in g)if(!(v in a))throw Error(n(108,se(o)||"Unknown",v));return A({},d,g)}function Dc(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Fs,jo=Dn.current,Rt(Dn,o),Rt(Gn,Gn.current),!0}function uy(o,a,d){var g=o.stateNode;if(!g)throw Error(n(169));d?(o=cy(o,a,jo),g.__reactInternalMemoizedMergedChildContext=o,_t(Gn),_t(Dn),Rt(Dn,o)):_t(Gn),Rt(Gn,d)}var bs=null,$c=!1,Xf=!1;function dy(o){bs===null?bs=[o]:bs.push(o)}function FC(o){$c=!0,dy(o)}function zs(){if(!Xf&&bs!==null){Xf=!0;var o=0,a=vt;try{var d=bs;for(vt=1;o<d.length;o++){var g=d[o];do g=g(!0);while(g!==null)}bs=null,$c=!1}catch(v){throw bs!==null&&(bs=bs.slice(o+1)),Zo(Ta,zs),v}finally{vt=a,Xf=!1}}return null}var pi=[],mi=0,Lc=null,Ic=0,wr=[],jr=0,ko=null,vs=1,ws="";function So(o,a){pi[mi++]=Ic,pi[mi++]=Lc,Lc=o,Ic=a}function fy(o,a,d){wr[jr++]=vs,wr[jr++]=ws,wr[jr++]=ko,ko=o;var g=vs;o=ws;var v=32-ht(g)-1;g&=~(1<<v),d+=1;var S=32-ht(a)+v;if(30<S){var R=v-v%5;S=(g&(1<<R)-1).toString(32),g>>=R,v-=R,vs=1<<32-ht(a)+v|d<<v|g,ws=S+o}else vs=1<<S|d<<v|g,ws=o}function Qf(o){o.return!==null&&(So(o,1),fy(o,1,0))}function Zf(o){for(;o===Lc;)Lc=pi[--mi],pi[mi]=null,Ic=pi[--mi],pi[mi]=null;for(;o===ko;)ko=wr[--jr],wr[jr]=null,ws=wr[--jr],wr[jr]=null,vs=wr[--jr],wr[jr]=null}var ur=null,dr=null,Ut=!1,Fr=null;function py(o,a){var d=Cr(5,null,null,0);d.elementType="DELETED",d.stateNode=a,d.return=o,a=o.deletions,a===null?(o.deletions=[d],o.flags|=16):a.push(d)}function my(o,a){switch(o.tag){case 5:var d=o.type;return a=a.nodeType!==1||d.toLowerCase()!==a.nodeName.toLowerCase()?null:a,a!==null?(o.stateNode=a,ur=o,dr=_s(a.firstChild),!0):!1;case 6:return a=o.pendingProps===""||a.nodeType!==3?null:a,a!==null?(o.stateNode=a,ur=o,dr=null,!0):!1;case 13:return a=a.nodeType!==8?null:a,a!==null?(d=ko!==null?{id:vs,overflow:ws}:null,o.memoizedState={dehydrated:a,treeContext:d,retryLane:1073741824},d=Cr(18,null,null,0),d.stateNode=a,d.return=o,o.child=d,ur=o,dr=null,!0):!1;default:return!1}}function ep(o){return(o.mode&1)!==0&&(o.flags&128)===0}function tp(o){if(Ut){var a=dr;if(a){var d=a;if(!my(o,a)){if(ep(o))throw Error(n(418));a=_s(d.nextSibling);var g=ur;a&&my(o,a)?py(g,d):(o.flags=o.flags&-4097|2,Ut=!1,ur=o)}}else{if(ep(o))throw Error(n(418));o.flags=o.flags&-4097|2,Ut=!1,ur=o}}}function hy(o){for(o=o.return;o!==null&&o.tag!==5&&o.tag!==3&&o.tag!==13;)o=o.return;ur=o}function Oc(o){if(o!==ur)return!1;if(!Ut)return hy(o),Ut=!0,!1;var a;if((a=o.tag!==3)&&!(a=o.tag!==5)&&(a=o.type,a=a!=="head"&&a!=="body"&&!Kf(o.type,o.memoizedProps)),a&&(a=dr)){if(ep(o))throw gy(),Error(n(418));for(;a;)py(o,a),a=_s(a.nextSibling)}if(hy(o),o.tag===13){if(o=o.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(n(317));e:{for(o=o.nextSibling,a=0;o;){if(o.nodeType===8){var d=o.data;if(d==="/$"){if(a===0){dr=_s(o.nextSibling);break e}a--}else d!=="$"&&d!=="$!"&&d!=="$?"||a++}o=o.nextSibling}dr=null}}else dr=ur?_s(o.stateNode.nextSibling):null;return!0}function gy(){for(var o=dr;o;)o=_s(o.nextSibling)}function hi(){dr=ur=null,Ut=!1}function np(o){Fr===null?Fr=[o]:Fr.push(o)}var zC=T.ReactCurrentBatchConfig;function Ga(o,a,d){if(o=d.ref,o!==null&&typeof o!="function"&&typeof o!="object"){if(d._owner){if(d=d._owner,d){if(d.tag!==1)throw Error(n(309));var g=d.stateNode}if(!g)throw Error(n(147,o));var v=g,S=""+o;return a!==null&&a.ref!==null&&typeof a.ref=="function"&&a.ref._stringRef===S?a.ref:(a=function(R){var V=v.refs;R===null?delete V[S]:V[S]=R},a._stringRef=S,a)}if(typeof o!="string")throw Error(n(284));if(!d._owner)throw Error(n(290,o))}return o}function _c(o,a){throw o=Object.prototype.toString.call(a),Error(n(31,o==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":o))}function xy(o){var a=o._init;return a(o._payload)}function yy(o){function a(re,Y){if(o){var ie=re.deletions;ie===null?(re.deletions=[Y],re.flags|=16):ie.push(Y)}}function d(re,Y){if(!o)return null;for(;Y!==null;)a(re,Y),Y=Y.sibling;return null}function g(re,Y){for(re=new Map;Y!==null;)Y.key!==null?re.set(Y.key,Y):re.set(Y.index,Y),Y=Y.sibling;return re}function v(re,Y){return re=Gs(re,Y),re.index=0,re.sibling=null,re}function S(re,Y,ie){return re.index=ie,o?(ie=re.alternate,ie!==null?(ie=ie.index,ie<Y?(re.flags|=2,Y):ie):(re.flags|=2,Y)):(re.flags|=1048576,Y)}function R(re){return o&&re.alternate===null&&(re.flags|=2),re}function V(re,Y,ie,Ne){return Y===null||Y.tag!==6?(Y=qp(ie,re.mode,Ne),Y.return=re,Y):(Y=v(Y,ie),Y.return=re,Y)}function q(re,Y,ie,Ne){var Ke=ie.type;return Ke===$?we(re,Y,ie.props.children,Ne,ie.key):Y!==null&&(Y.elementType===Ke||typeof Ke=="object"&&Ke!==null&&Ke.$$typeof===J&&xy(Ke)===Y.type)?(Ne=v(Y,ie.props),Ne.ref=Ga(re,Y,ie),Ne.return=re,Ne):(Ne=au(ie.type,ie.key,ie.props,null,re.mode,Ne),Ne.ref=Ga(re,Y,ie),Ne.return=re,Ne)}function ce(re,Y,ie,Ne){return Y===null||Y.tag!==4||Y.stateNode.containerInfo!==ie.containerInfo||Y.stateNode.implementation!==ie.implementation?(Y=Gp(ie,re.mode,Ne),Y.return=re,Y):(Y=v(Y,ie.children||[]),Y.return=re,Y)}function we(re,Y,ie,Ne,Ke){return Y===null||Y.tag!==7?(Y=Do(ie,re.mode,Ne,Ke),Y.return=re,Y):(Y=v(Y,ie),Y.return=re,Y)}function ke(re,Y,ie){if(typeof Y=="string"&&Y!==""||typeof Y=="number")return Y=qp(""+Y,re.mode,ie),Y.return=re,Y;if(typeof Y=="object"&&Y!==null){switch(Y.$$typeof){case L:return ie=au(Y.type,Y.key,Y.props,null,re.mode,ie),ie.ref=Ga(re,null,Y),ie.return=re,ie;case P:return Y=Gp(Y,re.mode,ie),Y.return=re,Y;case J:var Ne=Y._init;return ke(re,Ne(Y._payload),ie)}if(Te(Y)||G(Y))return Y=Do(Y,re.mode,ie,null),Y.return=re,Y;_c(re,Y)}return null}function ve(re,Y,ie,Ne){var Ke=Y!==null?Y.key:null;if(typeof ie=="string"&&ie!==""||typeof ie=="number")return Ke!==null?null:V(re,Y,""+ie,Ne);if(typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case L:return ie.key===Ke?q(re,Y,ie,Ne):null;case P:return ie.key===Ke?ce(re,Y,ie,Ne):null;case J:return Ke=ie._init,ve(re,Y,Ke(ie._payload),Ne)}if(Te(ie)||G(ie))return Ke!==null?null:we(re,Y,ie,Ne,null);_c(re,ie)}return null}function Le(re,Y,ie,Ne,Ke){if(typeof Ne=="string"&&Ne!==""||typeof Ne=="number")return re=re.get(ie)||null,V(Y,re,""+Ne,Ke);if(typeof Ne=="object"&&Ne!==null){switch(Ne.$$typeof){case L:return re=re.get(Ne.key===null?ie:Ne.key)||null,q(Y,re,Ne,Ke);case P:return re=re.get(Ne.key===null?ie:Ne.key)||null,ce(Y,re,Ne,Ke);case J:var Ge=Ne._init;return Le(re,Y,ie,Ge(Ne._payload),Ke)}if(Te(Ne)||G(Ne))return re=re.get(ie)||null,we(Y,re,Ne,Ke,null);_c(Y,Ne)}return null}function Me(re,Y,ie,Ne){for(var Ke=null,Ge=null,Ye=Y,Qe=Y=0,kn=null;Ye!==null&&Qe<ie.length;Qe++){Ye.index>Qe?(kn=Ye,Ye=null):kn=Ye.sibling;var gt=ve(re,Ye,ie[Qe],Ne);if(gt===null){Ye===null&&(Ye=kn);break}o&&Ye&>.alternate===null&&a(re,Ye),Y=S(gt,Y,Qe),Ge===null?Ke=gt:Ge.sibling=gt,Ge=gt,Ye=kn}if(Qe===ie.length)return d(re,Ye),Ut&&So(re,Qe),Ke;if(Ye===null){for(;Qe<ie.length;Qe++)Ye=ke(re,ie[Qe],Ne),Ye!==null&&(Y=S(Ye,Y,Qe),Ge===null?Ke=Ye:Ge.sibling=Ye,Ge=Ye);return Ut&&So(re,Qe),Ke}for(Ye=g(re,Ye);Qe<ie.length;Qe++)kn=Le(Ye,re,Qe,ie[Qe],Ne),kn!==null&&(o&&kn.alternate!==null&&Ye.delete(kn.key===null?Qe:kn.key),Y=S(kn,Y,Qe),Ge===null?Ke=kn:Ge.sibling=kn,Ge=kn);return o&&Ye.forEach(function(Ys){return a(re,Ys)}),Ut&&So(re,Qe),Ke}function Be(re,Y,ie,Ne){var Ke=G(ie);if(typeof Ke!="function")throw Error(n(150));if(ie=Ke.call(ie),ie==null)throw Error(n(151));for(var Ge=Ke=null,Ye=Y,Qe=Y=0,kn=null,gt=ie.next();Ye!==null&&!gt.done;Qe++,gt=ie.next()){Ye.index>Qe?(kn=Ye,Ye=null):kn=Ye.sibling;var Ys=ve(re,Ye,gt.value,Ne);if(Ys===null){Ye===null&&(Ye=kn);break}o&&Ye&&Ys.alternate===null&&a(re,Ye),Y=S(Ys,Y,Qe),Ge===null?Ke=Ys:Ge.sibling=Ys,Ge=Ys,Ye=kn}if(gt.done)return d(re,Ye),Ut&&So(re,Qe),Ke;if(Ye===null){for(;!gt.done;Qe++,gt=ie.next())gt=ke(re,gt.value,Ne),gt!==null&&(Y=S(gt,Y,Qe),Ge===null?Ke=gt:Ge.sibling=gt,Ge=gt);return Ut&&So(re,Qe),Ke}for(Ye=g(re,Ye);!gt.done;Qe++,gt=ie.next())gt=Le(Ye,re,Qe,gt.value,Ne),gt!==null&&(o&>.alternate!==null&&Ye.delete(gt.key===null?Qe:gt.key),Y=S(gt,Y,Qe),Ge===null?Ke=gt:Ge.sibling=gt,Ge=gt);return o&&Ye.forEach(function(bE){return a(re,bE)}),Ut&&So(re,Qe),Ke}function sn(re,Y,ie,Ne){if(typeof ie=="object"&&ie!==null&&ie.type===$&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case L:e:{for(var Ke=ie.key,Ge=Y;Ge!==null;){if(Ge.key===Ke){if(Ke=ie.type,Ke===$){if(Ge.tag===7){d(re,Ge.sibling),Y=v(Ge,ie.props.children),Y.return=re,re=Y;break e}}else if(Ge.elementType===Ke||typeof Ke=="object"&&Ke!==null&&Ke.$$typeof===J&&xy(Ke)===Ge.type){d(re,Ge.sibling),Y=v(Ge,ie.props),Y.ref=Ga(re,Ge,ie),Y.return=re,re=Y;break e}d(re,Ge);break}else a(re,Ge);Ge=Ge.sibling}ie.type===$?(Y=Do(ie.props.children,re.mode,Ne,ie.key),Y.return=re,re=Y):(Ne=au(ie.type,ie.key,ie.props,null,re.mode,Ne),Ne.ref=Ga(re,Y,ie),Ne.return=re,re=Ne)}return R(re);case P:e:{for(Ge=ie.key;Y!==null;){if(Y.key===Ge)if(Y.tag===4&&Y.stateNode.containerInfo===ie.containerInfo&&Y.stateNode.implementation===ie.implementation){d(re,Y.sibling),Y=v(Y,ie.children||[]),Y.return=re,re=Y;break e}else{d(re,Y);break}else a(re,Y);Y=Y.sibling}Y=Gp(ie,re.mode,Ne),Y.return=re,re=Y}return R(re);case J:return Ge=ie._init,sn(re,Y,Ge(ie._payload),Ne)}if(Te(ie))return Me(re,Y,ie,Ne);if(G(ie))return Be(re,Y,ie,Ne);_c(re,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"?(ie=""+ie,Y!==null&&Y.tag===6?(d(re,Y.sibling),Y=v(Y,ie),Y.return=re,re=Y):(d(re,Y),Y=qp(ie,re.mode,Ne),Y.return=re,re=Y),R(re)):d(re,Y)}return sn}var gi=yy(!0),by=yy(!1),Mc=Ms(null),Fc=null,xi=null,rp=null;function sp(){rp=xi=Fc=null}function op(o){var a=Mc.current;_t(Mc),o._currentValue=a}function ip(o,a,d){for(;o!==null;){var g=o.alternate;if((o.childLanes&a)!==a?(o.childLanes|=a,g!==null&&(g.childLanes|=a)):g!==null&&(g.childLanes&a)!==a&&(g.childLanes|=a),o===d)break;o=o.return}}function yi(o,a){Fc=o,rp=xi=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&a)!==0&&(Jn=!0),o.firstContext=null)}function kr(o){var a=o._currentValue;if(rp!==o)if(o={context:o,memoizedValue:a,next:null},xi===null){if(Fc===null)throw Error(n(308));xi=o,Fc.dependencies={lanes:0,firstContext:o}}else xi=xi.next=o;return a}var No=null;function ap(o){No===null?No=[o]:No.push(o)}function vy(o,a,d,g){var v=a.interleaved;return v===null?(d.next=d,ap(a)):(d.next=v.next,v.next=d),a.interleaved=d,js(o,g)}function js(o,a){o.lanes|=a;var d=o.alternate;for(d!==null&&(d.lanes|=a),d=o,o=o.return;o!==null;)o.childLanes|=a,d=o.alternate,d!==null&&(d.childLanes|=a),d=o,o=o.return;return d.tag===3?d.stateNode:null}var Bs=!1;function lp(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wy(o,a){o=o.updateQueue,a.updateQueue===o&&(a.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,effects:o.effects})}function ks(o,a){return{eventTime:o,lane:a,tag:0,payload:null,callback:null,next:null}}function Us(o,a,d){var g=o.updateQueue;if(g===null)return null;if(g=g.shared,(pt&2)!==0){var v=g.pending;return v===null?a.next=a:(a.next=v.next,v.next=a),g.pending=a,js(o,d)}return v=g.interleaved,v===null?(a.next=a,ap(g)):(a.next=v.next,v.next=a),g.interleaved=a,js(o,d)}function zc(o,a,d){if(a=a.updateQueue,a!==null&&(a=a.shared,(d&4194240)!==0)){var g=a.lanes;g&=o.pendingLanes,d|=g,a.lanes=d,$a(o,d)}}function jy(o,a){var d=o.updateQueue,g=o.alternate;if(g!==null&&(g=g.updateQueue,d===g)){var v=null,S=null;if(d=d.firstBaseUpdate,d!==null){do{var R={eventTime:d.eventTime,lane:d.lane,tag:d.tag,payload:d.payload,callback:d.callback,next:null};S===null?v=S=R:S=S.next=R,d=d.next}while(d!==null);S===null?v=S=a:S=S.next=a}else v=S=a;d={baseState:g.baseState,firstBaseUpdate:v,lastBaseUpdate:S,shared:g.shared,effects:g.effects},o.updateQueue=d;return}o=d.lastBaseUpdate,o===null?d.firstBaseUpdate=a:o.next=a,d.lastBaseUpdate=a}function Bc(o,a,d,g){var v=o.updateQueue;Bs=!1;var S=v.firstBaseUpdate,R=v.lastBaseUpdate,V=v.shared.pending;if(V!==null){v.shared.pending=null;var q=V,ce=q.next;q.next=null,R===null?S=ce:R.next=ce,R=q;var we=o.alternate;we!==null&&(we=we.updateQueue,V=we.lastBaseUpdate,V!==R&&(V===null?we.firstBaseUpdate=ce:V.next=ce,we.lastBaseUpdate=q))}if(S!==null){var ke=v.baseState;R=0,we=ce=q=null,V=S;do{var ve=V.lane,Le=V.eventTime;if((g&ve)===ve){we!==null&&(we=we.next={eventTime:Le,lane:0,tag:V.tag,payload:V.payload,callback:V.callback,next:null});e:{var Me=o,Be=V;switch(ve=a,Le=d,Be.tag){case 1:if(Me=Be.payload,typeof Me=="function"){ke=Me.call(Le,ke,ve);break e}ke=Me;break e;case 3:Me.flags=Me.flags&-65537|128;case 0:if(Me=Be.payload,ve=typeof Me=="function"?Me.call(Le,ke,ve):Me,ve==null)break e;ke=A({},ke,ve);break e;case 2:Bs=!0}}V.callback!==null&&V.lane!==0&&(o.flags|=64,ve=v.effects,ve===null?v.effects=[V]:ve.push(V))}else Le={eventTime:Le,lane:ve,tag:V.tag,payload:V.payload,callback:V.callback,next:null},we===null?(ce=we=Le,q=ke):we=we.next=Le,R|=ve;if(V=V.next,V===null){if(V=v.shared.pending,V===null)break;ve=V,V=ve.next,ve.next=null,v.lastBaseUpdate=ve,v.shared.pending=null}}while(!0);if(we===null&&(q=ke),v.baseState=q,v.firstBaseUpdate=ce,v.lastBaseUpdate=we,a=v.shared.interleaved,a!==null){v=a;do R|=v.lane,v=v.next;while(v!==a)}else S===null&&(v.shared.lanes=0);To|=R,o.lanes=R,o.memoizedState=ke}}function ky(o,a,d){if(o=a.effects,a.effects=null,o!==null)for(a=0;a<o.length;a++){var g=o[a],v=g.callback;if(v!==null){if(g.callback=null,g=d,typeof v!="function")throw Error(n(191,v));v.call(g)}}}var Ya={},Zr=Ms(Ya),Ja=Ms(Ya),Xa=Ms(Ya);function Co(o){if(o===Ya)throw Error(n(174));return o}function cp(o,a){switch(Rt(Xa,a),Rt(Ja,o),Rt(Zr,Ya),o=a.nodeType,o){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:be(null,"");break;default:o=o===8?a.parentNode:a,a=o.namespaceURI||null,o=o.tagName,a=be(a,o)}_t(Zr),Rt(Zr,a)}function bi(){_t(Zr),_t(Ja),_t(Xa)}function Sy(o){Co(Xa.current);var a=Co(Zr.current),d=be(a,o.type);a!==d&&(Rt(Ja,o),Rt(Zr,d))}function up(o){Ja.current===o&&(_t(Zr),_t(Ja))}var qt=Ms(0);function Uc(o){for(var a=o;a!==null;){if(a.tag===13){var d=a.memoizedState;if(d!==null&&(d=d.dehydrated,d===null||d.data==="$?"||d.data==="$!"))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===o)break;for(;a.sibling===null;){if(a.return===null||a.return===o)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var dp=[];function fp(){for(var o=0;o<dp.length;o++)dp[o]._workInProgressVersionPrimary=null;dp.length=0}var Vc=T.ReactCurrentDispatcher,pp=T.ReactCurrentBatchConfig,Eo=0,Gt=null,pn=null,wn=null,Hc=!1,Qa=!1,Za=0,BC=0;function $n(){throw Error(n(321))}function mp(o,a){if(a===null)return!1;for(var d=0;d<a.length&&d<o.length;d++)if(!Mr(o[d],a[d]))return!1;return!0}function hp(o,a,d,g,v,S){if(Eo=S,Gt=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,Vc.current=o===null||o.memoizedState===null?WC:KC,o=d(g,v),Qa){S=0;do{if(Qa=!1,Za=0,25<=S)throw Error(n(301));S+=1,wn=pn=null,a.updateQueue=null,Vc.current=qC,o=d(g,v)}while(Qa)}if(Vc.current=qc,a=pn!==null&&pn.next!==null,Eo=0,wn=pn=Gt=null,Hc=!1,a)throw Error(n(300));return o}function gp(){var o=Za!==0;return Za=0,o}function es(){var o={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return wn===null?Gt.memoizedState=wn=o:wn=wn.next=o,wn}function Sr(){if(pn===null){var o=Gt.alternate;o=o!==null?o.memoizedState:null}else o=pn.next;var a=wn===null?Gt.memoizedState:wn.next;if(a!==null)wn=a,pn=o;else{if(o===null)throw Error(n(310));pn=o,o={memoizedState:pn.memoizedState,baseState:pn.baseState,baseQueue:pn.baseQueue,queue:pn.queue,next:null},wn===null?Gt.memoizedState=wn=o:wn=wn.next=o}return wn}function el(o,a){return typeof a=="function"?a(o):a}function xp(o){var a=Sr(),d=a.queue;if(d===null)throw Error(n(311));d.lastRenderedReducer=o;var g=pn,v=g.baseQueue,S=d.pending;if(S!==null){if(v!==null){var R=v.next;v.next=S.next,S.next=R}g.baseQueue=v=S,d.pending=null}if(v!==null){S=v.next,g=g.baseState;var V=R=null,q=null,ce=S;do{var we=ce.lane;if((Eo&we)===we)q!==null&&(q=q.next={lane:0,action:ce.action,hasEagerState:ce.hasEagerState,eagerState:ce.eagerState,next:null}),g=ce.hasEagerState?ce.eagerState:o(g,ce.action);else{var ke={lane:we,action:ce.action,hasEagerState:ce.hasEagerState,eagerState:ce.eagerState,next:null};q===null?(V=q=ke,R=g):q=q.next=ke,Gt.lanes|=we,To|=we}ce=ce.next}while(ce!==null&&ce!==S);q===null?R=g:q.next=V,Mr(g,a.memoizedState)||(Jn=!0),a.memoizedState=g,a.baseState=R,a.baseQueue=q,d.lastRenderedState=g}if(o=d.interleaved,o!==null){v=o;do S=v.lane,Gt.lanes|=S,To|=S,v=v.next;while(v!==o)}else v===null&&(d.lanes=0);return[a.memoizedState,d.dispatch]}function yp(o){var a=Sr(),d=a.queue;if(d===null)throw Error(n(311));d.lastRenderedReducer=o;var g=d.dispatch,v=d.pending,S=a.memoizedState;if(v!==null){d.pending=null;var R=v=v.next;do S=o(S,R.action),R=R.next;while(R!==v);Mr(S,a.memoizedState)||(Jn=!0),a.memoizedState=S,a.baseQueue===null&&(a.baseState=S),d.lastRenderedState=S}return[S,g]}function Ny(){}function Cy(o,a){var d=Gt,g=Sr(),v=a(),S=!Mr(g.memoizedState,v);if(S&&(g.memoizedState=v,Jn=!0),g=g.queue,bp(Py.bind(null,d,g,o),[o]),g.getSnapshot!==a||S||wn!==null&&wn.memoizedState.tag&1){if(d.flags|=2048,tl(9,Ty.bind(null,d,g,v,a),void 0,null),jn===null)throw Error(n(349));(Eo&30)!==0||Ey(d,a,v)}return v}function Ey(o,a,d){o.flags|=16384,o={getSnapshot:a,value:d},a=Gt.updateQueue,a===null?(a={lastEffect:null,stores:null},Gt.updateQueue=a,a.stores=[o]):(d=a.stores,d===null?a.stores=[o]:d.push(o))}function Ty(o,a,d,g){a.value=d,a.getSnapshot=g,Ry(a)&&Ay(o)}function Py(o,a,d){return d(function(){Ry(a)&&Ay(o)})}function Ry(o){var a=o.getSnapshot;o=o.value;try{var d=a();return!Mr(o,d)}catch{return!0}}function Ay(o){var a=js(o,1);a!==null&&Vr(a,o,1,-1)}function Dy(o){var a=es();return typeof o=="function"&&(o=o()),a.memoizedState=a.baseState=o,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:el,lastRenderedState:o},a.queue=o,o=o.dispatch=HC.bind(null,Gt,o),[a.memoizedState,o]}function tl(o,a,d,g){return o={tag:o,create:a,destroy:d,deps:g,next:null},a=Gt.updateQueue,a===null?(a={lastEffect:null,stores:null},Gt.updateQueue=a,a.lastEffect=o.next=o):(d=a.lastEffect,d===null?a.lastEffect=o.next=o:(g=d.next,d.next=o,o.next=g,a.lastEffect=o)),o}function $y(){return Sr().memoizedState}function Wc(o,a,d,g){var v=es();Gt.flags|=o,v.memoizedState=tl(1|a,d,void 0,g===void 0?null:g)}function Kc(o,a,d,g){var v=Sr();g=g===void 0?null:g;var S=void 0;if(pn!==null){var R=pn.memoizedState;if(S=R.destroy,g!==null&&mp(g,R.deps)){v.memoizedState=tl(a,d,S,g);return}}Gt.flags|=o,v.memoizedState=tl(1|a,d,S,g)}function Ly(o,a){return Wc(8390656,8,o,a)}function bp(o,a){return Kc(2048,8,o,a)}function Iy(o,a){return Kc(4,2,o,a)}function Oy(o,a){return Kc(4,4,o,a)}function _y(o,a){if(typeof a=="function")return o=o(),a(o),function(){a(null)};if(a!=null)return o=o(),a.current=o,function(){a.current=null}}function My(o,a,d){return d=d!=null?d.concat([o]):null,Kc(4,4,_y.bind(null,a,o),d)}function vp(){}function Fy(o,a){var d=Sr();a=a===void 0?null:a;var g=d.memoizedState;return g!==null&&a!==null&&mp(a,g[1])?g[0]:(d.memoizedState=[o,a],o)}function zy(o,a){var d=Sr();a=a===void 0?null:a;var g=d.memoizedState;return g!==null&&a!==null&&mp(a,g[1])?g[0]:(o=o(),d.memoizedState=[o,a],o)}function By(o,a,d){return(Eo&21)===0?(o.baseState&&(o.baseState=!1,Jn=!0),o.memoizedState=d):(Mr(d,a)||(d=pc(),Gt.lanes|=d,To|=d,o.baseState=!0),a)}function UC(o,a){var d=vt;vt=d!==0&&4>d?d:4,o(!0);var g=pp.transition;pp.transition={};try{o(!1),a()}finally{vt=d,pp.transition=g}}function Uy(){return Sr().memoizedState}function VC(o,a,d){var g=Ks(o);if(d={lane:g,action:d,hasEagerState:!1,eagerState:null,next:null},Vy(o))Hy(a,d);else if(d=vy(o,a,d,g),d!==null){var v=Un();Vr(d,o,g,v),Wy(d,a,g)}}function HC(o,a,d){var g=Ks(o),v={lane:g,action:d,hasEagerState:!1,eagerState:null,next:null};if(Vy(o))Hy(a,v);else{var S=o.alternate;if(o.lanes===0&&(S===null||S.lanes===0)&&(S=a.lastRenderedReducer,S!==null))try{var R=a.lastRenderedState,V=S(R,d);if(v.hasEagerState=!0,v.eagerState=V,Mr(V,R)){var q=a.interleaved;q===null?(v.next=v,ap(a)):(v.next=q.next,q.next=v),a.interleaved=v;return}}catch{}finally{}d=vy(o,a,v,g),d!==null&&(v=Un(),Vr(d,o,g,v),Wy(d,a,g))}}function Vy(o){var a=o.alternate;return o===Gt||a!==null&&a===Gt}function Hy(o,a){Qa=Hc=!0;var d=o.pending;d===null?a.next=a:(a.next=d.next,d.next=a),o.pending=a}function Wy(o,a,d){if((d&4194240)!==0){var g=a.lanes;g&=o.pendingLanes,d|=g,a.lanes=d,$a(o,d)}}var qc={readContext:kr,useCallback:$n,useContext:$n,useEffect:$n,useImperativeHandle:$n,useInsertionEffect:$n,useLayoutEffect:$n,useMemo:$n,useReducer:$n,useRef:$n,useState:$n,useDebugValue:$n,useDeferredValue:$n,useTransition:$n,useMutableSource:$n,useSyncExternalStore:$n,useId:$n,unstable_isNewReconciler:!1},WC={readContext:kr,useCallback:function(o,a){return es().memoizedState=[o,a===void 0?null:a],o},useContext:kr,useEffect:Ly,useImperativeHandle:function(o,a,d){return d=d!=null?d.concat([o]):null,Wc(4194308,4,_y.bind(null,a,o),d)},useLayoutEffect:function(o,a){return Wc(4194308,4,o,a)},useInsertionEffect:function(o,a){return Wc(4,2,o,a)},useMemo:function(o,a){var d=es();return a=a===void 0?null:a,o=o(),d.memoizedState=[o,a],o},useReducer:function(o,a,d){var g=es();return a=d!==void 0?d(a):a,g.memoizedState=g.baseState=a,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:a},g.queue=o,o=o.dispatch=VC.bind(null,Gt,o),[g.memoizedState,o]},useRef:function(o){var a=es();return o={current:o},a.memoizedState=o},useState:Dy,useDebugValue:vp,useDeferredValue:function(o){return es().memoizedState=o},useTransition:function(){var o=Dy(!1),a=o[0];return o=UC.bind(null,o[1]),es().memoizedState=o,[a,o]},useMutableSource:function(){},useSyncExternalStore:function(o,a,d){var g=Gt,v=es();if(Ut){if(d===void 0)throw Error(n(407));d=d()}else{if(d=a(),jn===null)throw Error(n(349));(Eo&30)!==0||Ey(g,a,d)}v.memoizedState=d;var S={value:d,getSnapshot:a};return v.queue=S,Ly(Py.bind(null,g,S,o),[o]),g.flags|=2048,tl(9,Ty.bind(null,g,S,d,a),void 0,null),d},useId:function(){var o=es(),a=jn.identifierPrefix;if(Ut){var d=ws,g=vs;d=(g&~(1<<32-ht(g)-1)).toString(32)+d,a=":"+a+"R"+d,d=Za++,0<d&&(a+="H"+d.toString(32)),a+=":"}else d=BC++,a=":"+a+"r"+d.toString(32)+":";return o.memoizedState=a},unstable_isNewReconciler:!1},KC={readContext:kr,useCallback:Fy,useContext:kr,useEffect:bp,useImperativeHandle:My,useInsertionEffect:Iy,useLayoutEffect:Oy,useMemo:zy,useReducer:xp,useRef:$y,useState:function(){return xp(el)},useDebugValue:vp,useDeferredValue:function(o){var a=Sr();return By(a,pn.memoizedState,o)},useTransition:function(){var o=xp(el)[0],a=Sr().memoizedState;return[o,a]},useMutableSource:Ny,useSyncExternalStore:Cy,useId:Uy,unstable_isNewReconciler:!1},qC={readContext:kr,useCallback:Fy,useContext:kr,useEffect:bp,useImperativeHandle:My,useInsertionEffect:Iy,useLayoutEffect:Oy,useMemo:zy,useReducer:yp,useRef:$y,useState:function(){return yp(el)},useDebugValue:vp,useDeferredValue:function(o){var a=Sr();return pn===null?a.memoizedState=o:By(a,pn.memoizedState,o)},useTransition:function(){var o=yp(el)[0],a=Sr().memoizedState;return[o,a]},useMutableSource:Ny,useSyncExternalStore:Cy,useId:Uy,unstable_isNewReconciler:!1};function zr(o,a){if(o&&o.defaultProps){a=A({},a),o=o.defaultProps;for(var d in o)a[d]===void 0&&(a[d]=o[d]);return a}return a}function wp(o,a,d,g){a=o.memoizedState,d=d(g,a),d=d==null?a:A({},a,d),o.memoizedState=d,o.lanes===0&&(o.updateQueue.baseState=d)}var Gc={isMounted:function(o){return(o=o._reactInternals)?Or(o)===o:!1},enqueueSetState:function(o,a,d){o=o._reactInternals;var g=Un(),v=Ks(o),S=ks(g,v);S.payload=a,d!=null&&(S.callback=d),a=Us(o,S,v),a!==null&&(Vr(a,o,v,g),zc(a,o,v))},enqueueReplaceState:function(o,a,d){o=o._reactInternals;var g=Un(),v=Ks(o),S=ks(g,v);S.tag=1,S.payload=a,d!=null&&(S.callback=d),a=Us(o,S,v),a!==null&&(Vr(a,o,v,g),zc(a,o,v))},enqueueForceUpdate:function(o,a){o=o._reactInternals;var d=Un(),g=Ks(o),v=ks(d,g);v.tag=2,a!=null&&(v.callback=a),a=Us(o,v,g),a!==null&&(Vr(a,o,g,d),zc(a,o,g))}};function Ky(o,a,d,g,v,S,R){return o=o.stateNode,typeof o.shouldComponentUpdate=="function"?o.shouldComponentUpdate(g,S,R):a.prototype&&a.prototype.isPureReactComponent?!Ba(d,g)||!Ba(v,S):!0}function qy(o,a,d){var g=!1,v=Fs,S=a.contextType;return typeof S=="object"&&S!==null?S=kr(S):(v=Yn(a)?jo:Dn.current,g=a.contextTypes,S=(g=g!=null)?fi(o,v):Fs),a=new a(d,S),o.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Gc,o.stateNode=a,a._reactInternals=o,g&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=v,o.__reactInternalMemoizedMaskedChildContext=S),a}function Gy(o,a,d,g){o=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(d,g),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(d,g),a.state!==o&&Gc.enqueueReplaceState(a,a.state,null)}function jp(o,a,d,g){var v=o.stateNode;v.props=d,v.state=o.memoizedState,v.refs={},lp(o);var S=a.contextType;typeof S=="object"&&S!==null?v.context=kr(S):(S=Yn(a)?jo:Dn.current,v.context=fi(o,S)),v.state=o.memoizedState,S=a.getDerivedStateFromProps,typeof S=="function"&&(wp(o,a,S,d),v.state=o.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof v.getSnapshotBeforeUpdate=="function"||typeof v.UNSAFE_componentWillMount!="function"&&typeof v.componentWillMount!="function"||(a=v.state,typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount(),a!==v.state&&Gc.enqueueReplaceState(v,v.state,null),Bc(o,d,v,g),v.state=o.memoizedState),typeof v.componentDidMount=="function"&&(o.flags|=4194308)}function vi(o,a){try{var d="",g=a;do d+=me(g),g=g.return;while(g);var v=d}catch(S){v=`
|
|
39
|
+
Error generating stack: `+S.message+`
|
|
40
|
+
`+S.stack}return{value:o,source:a,stack:v,digest:null}}function kp(o,a,d){return{value:o,source:null,stack:d??null,digest:a??null}}function Sp(o,a){try{console.error(a.value)}catch(d){setTimeout(function(){throw d})}}var GC=typeof WeakMap=="function"?WeakMap:Map;function Yy(o,a,d){d=ks(-1,d),d.tag=3,d.payload={element:null};var g=a.value;return d.callback=function(){tu||(tu=!0,Fp=g),Sp(o,a)},d}function Jy(o,a,d){d=ks(-1,d),d.tag=3;var g=o.type.getDerivedStateFromError;if(typeof g=="function"){var v=a.value;d.payload=function(){return g(v)},d.callback=function(){Sp(o,a)}}var S=o.stateNode;return S!==null&&typeof S.componentDidCatch=="function"&&(d.callback=function(){Sp(o,a),typeof g!="function"&&(Hs===null?Hs=new Set([this]):Hs.add(this));var R=a.stack;this.componentDidCatch(a.value,{componentStack:R!==null?R:""})}),d}function Xy(o,a,d){var g=o.pingCache;if(g===null){g=o.pingCache=new GC;var v=new Set;g.set(a,v)}else v=g.get(a),v===void 0&&(v=new Set,g.set(a,v));v.has(d)||(v.add(d),o=lE.bind(null,o,a,d),a.then(o,o))}function Qy(o){do{var a;if((a=o.tag===13)&&(a=o.memoizedState,a=a!==null?a.dehydrated!==null:!0),a)return o;o=o.return}while(o!==null);return null}function Zy(o,a,d,g,v){return(o.mode&1)===0?(o===a?o.flags|=65536:(o.flags|=128,d.flags|=131072,d.flags&=-52805,d.tag===1&&(d.alternate===null?d.tag=17:(a=ks(-1,1),a.tag=2,Us(d,a,1))),d.lanes|=1),o):(o.flags|=65536,o.lanes=v,o)}var YC=T.ReactCurrentOwner,Jn=!1;function Bn(o,a,d,g){a.child=o===null?by(a,null,d,g):gi(a,o.child,d,g)}function eb(o,a,d,g,v){d=d.render;var S=a.ref;return yi(a,v),g=hp(o,a,d,g,S,v),d=gp(),o!==null&&!Jn?(a.updateQueue=o.updateQueue,a.flags&=-2053,o.lanes&=~v,Ss(o,a,v)):(Ut&&d&&Qf(a),a.flags|=1,Bn(o,a,g,v),a.child)}function tb(o,a,d,g,v){if(o===null){var S=d.type;return typeof S=="function"&&!Kp(S)&&S.defaultProps===void 0&&d.compare===null&&d.defaultProps===void 0?(a.tag=15,a.type=S,nb(o,a,S,g,v)):(o=au(d.type,null,g,a,a.mode,v),o.ref=a.ref,o.return=a,a.child=o)}if(S=o.child,(o.lanes&v)===0){var R=S.memoizedProps;if(d=d.compare,d=d!==null?d:Ba,d(R,g)&&o.ref===a.ref)return Ss(o,a,v)}return a.flags|=1,o=Gs(S,g),o.ref=a.ref,o.return=a,a.child=o}function nb(o,a,d,g,v){if(o!==null){var S=o.memoizedProps;if(Ba(S,g)&&o.ref===a.ref)if(Jn=!1,a.pendingProps=g=S,(o.lanes&v)!==0)(o.flags&131072)!==0&&(Jn=!0);else return a.lanes=o.lanes,Ss(o,a,v)}return Np(o,a,d,g,v)}function rb(o,a,d){var g=a.pendingProps,v=g.children,S=o!==null?o.memoizedState:null;if(g.mode==="hidden")if((a.mode&1)===0)a.memoizedState={baseLanes:0,cachePool:null,transitions:null},Rt(ji,fr),fr|=d;else{if((d&1073741824)===0)return o=S!==null?S.baseLanes|d:d,a.lanes=a.childLanes=1073741824,a.memoizedState={baseLanes:o,cachePool:null,transitions:null},a.updateQueue=null,Rt(ji,fr),fr|=o,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null},g=S!==null?S.baseLanes:d,Rt(ji,fr),fr|=g}else S!==null?(g=S.baseLanes|d,a.memoizedState=null):g=d,Rt(ji,fr),fr|=g;return Bn(o,a,v,d),a.child}function sb(o,a){var d=a.ref;(o===null&&d!==null||o!==null&&o.ref!==d)&&(a.flags|=512,a.flags|=2097152)}function Np(o,a,d,g,v){var S=Yn(d)?jo:Dn.current;return S=fi(a,S),yi(a,v),d=hp(o,a,d,g,S,v),g=gp(),o!==null&&!Jn?(a.updateQueue=o.updateQueue,a.flags&=-2053,o.lanes&=~v,Ss(o,a,v)):(Ut&&g&&Qf(a),a.flags|=1,Bn(o,a,d,v),a.child)}function ob(o,a,d,g,v){if(Yn(d)){var S=!0;Dc(a)}else S=!1;if(yi(a,v),a.stateNode===null)Jc(o,a),qy(a,d,g),jp(a,d,g,v),g=!0;else if(o===null){var R=a.stateNode,V=a.memoizedProps;R.props=V;var q=R.context,ce=d.contextType;typeof ce=="object"&&ce!==null?ce=kr(ce):(ce=Yn(d)?jo:Dn.current,ce=fi(a,ce));var we=d.getDerivedStateFromProps,ke=typeof we=="function"||typeof R.getSnapshotBeforeUpdate=="function";ke||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||(V!==g||q!==ce)&&Gy(a,R,g,ce),Bs=!1;var ve=a.memoizedState;R.state=ve,Bc(a,g,R,v),q=a.memoizedState,V!==g||ve!==q||Gn.current||Bs?(typeof we=="function"&&(wp(a,d,we,g),q=a.memoizedState),(V=Bs||Ky(a,d,V,g,ve,q,ce))?(ke||typeof R.UNSAFE_componentWillMount!="function"&&typeof R.componentWillMount!="function"||(typeof R.componentWillMount=="function"&&R.componentWillMount(),typeof R.UNSAFE_componentWillMount=="function"&&R.UNSAFE_componentWillMount()),typeof R.componentDidMount=="function"&&(a.flags|=4194308)):(typeof R.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=g,a.memoizedState=q),R.props=g,R.state=q,R.context=ce,g=V):(typeof R.componentDidMount=="function"&&(a.flags|=4194308),g=!1)}else{R=a.stateNode,wy(o,a),V=a.memoizedProps,ce=a.type===a.elementType?V:zr(a.type,V),R.props=ce,ke=a.pendingProps,ve=R.context,q=d.contextType,typeof q=="object"&&q!==null?q=kr(q):(q=Yn(d)?jo:Dn.current,q=fi(a,q));var Le=d.getDerivedStateFromProps;(we=typeof Le=="function"||typeof R.getSnapshotBeforeUpdate=="function")||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||(V!==ke||ve!==q)&&Gy(a,R,g,q),Bs=!1,ve=a.memoizedState,R.state=ve,Bc(a,g,R,v);var Me=a.memoizedState;V!==ke||ve!==Me||Gn.current||Bs?(typeof Le=="function"&&(wp(a,d,Le,g),Me=a.memoizedState),(ce=Bs||Ky(a,d,ce,g,ve,Me,q)||!1)?(we||typeof R.UNSAFE_componentWillUpdate!="function"&&typeof R.componentWillUpdate!="function"||(typeof R.componentWillUpdate=="function"&&R.componentWillUpdate(g,Me,q),typeof R.UNSAFE_componentWillUpdate=="function"&&R.UNSAFE_componentWillUpdate(g,Me,q)),typeof R.componentDidUpdate=="function"&&(a.flags|=4),typeof R.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof R.componentDidUpdate!="function"||V===o.memoizedProps&&ve===o.memoizedState||(a.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||V===o.memoizedProps&&ve===o.memoizedState||(a.flags|=1024),a.memoizedProps=g,a.memoizedState=Me),R.props=g,R.state=Me,R.context=q,g=ce):(typeof R.componentDidUpdate!="function"||V===o.memoizedProps&&ve===o.memoizedState||(a.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||V===o.memoizedProps&&ve===o.memoizedState||(a.flags|=1024),g=!1)}return Cp(o,a,d,g,S,v)}function Cp(o,a,d,g,v,S){sb(o,a);var R=(a.flags&128)!==0;if(!g&&!R)return v&&uy(a,d,!1),Ss(o,a,S);g=a.stateNode,YC.current=a;var V=R&&typeof d.getDerivedStateFromError!="function"?null:g.render();return a.flags|=1,o!==null&&R?(a.child=gi(a,o.child,null,S),a.child=gi(a,null,V,S)):Bn(o,a,V,S),a.memoizedState=g.state,v&&uy(a,d,!0),a.child}function ib(o){var a=o.stateNode;a.pendingContext?ly(o,a.pendingContext,a.pendingContext!==a.context):a.context&&ly(o,a.context,!1),cp(o,a.containerInfo)}function ab(o,a,d,g,v){return hi(),np(v),a.flags|=256,Bn(o,a,d,g),a.child}var Ep={dehydrated:null,treeContext:null,retryLane:0};function Tp(o){return{baseLanes:o,cachePool:null,transitions:null}}function lb(o,a,d){var g=a.pendingProps,v=qt.current,S=!1,R=(a.flags&128)!==0,V;if((V=R)||(V=o!==null&&o.memoizedState===null?!1:(v&2)!==0),V?(S=!0,a.flags&=-129):(o===null||o.memoizedState!==null)&&(v|=1),Rt(qt,v&1),o===null)return tp(a),o=a.memoizedState,o!==null&&(o=o.dehydrated,o!==null)?((a.mode&1)===0?a.lanes=1:o.data==="$!"?a.lanes=8:a.lanes=1073741824,null):(R=g.children,o=g.fallback,S?(g=a.mode,S=a.child,R={mode:"hidden",children:R},(g&1)===0&&S!==null?(S.childLanes=0,S.pendingProps=R):S=lu(R,g,0,null),o=Do(o,g,d,null),S.return=a,o.return=a,S.sibling=o,a.child=S,a.child.memoizedState=Tp(d),a.memoizedState=Ep,o):Pp(a,R));if(v=o.memoizedState,v!==null&&(V=v.dehydrated,V!==null))return JC(o,a,R,g,V,v,d);if(S){S=g.fallback,R=a.mode,v=o.child,V=v.sibling;var q={mode:"hidden",children:g.children};return(R&1)===0&&a.child!==v?(g=a.child,g.childLanes=0,g.pendingProps=q,a.deletions=null):(g=Gs(v,q),g.subtreeFlags=v.subtreeFlags&14680064),V!==null?S=Gs(V,S):(S=Do(S,R,d,null),S.flags|=2),S.return=a,g.return=a,g.sibling=S,a.child=g,g=S,S=a.child,R=o.child.memoizedState,R=R===null?Tp(d):{baseLanes:R.baseLanes|d,cachePool:null,transitions:R.transitions},S.memoizedState=R,S.childLanes=o.childLanes&~d,a.memoizedState=Ep,g}return S=o.child,o=S.sibling,g=Gs(S,{mode:"visible",children:g.children}),(a.mode&1)===0&&(g.lanes=d),g.return=a,g.sibling=null,o!==null&&(d=a.deletions,d===null?(a.deletions=[o],a.flags|=16):d.push(o)),a.child=g,a.memoizedState=null,g}function Pp(o,a){return a=lu({mode:"visible",children:a},o.mode,0,null),a.return=o,o.child=a}function Yc(o,a,d,g){return g!==null&&np(g),gi(a,o.child,null,d),o=Pp(a,a.pendingProps.children),o.flags|=2,a.memoizedState=null,o}function JC(o,a,d,g,v,S,R){if(d)return a.flags&256?(a.flags&=-257,g=kp(Error(n(422))),Yc(o,a,R,g)):a.memoizedState!==null?(a.child=o.child,a.flags|=128,null):(S=g.fallback,v=a.mode,g=lu({mode:"visible",children:g.children},v,0,null),S=Do(S,v,R,null),S.flags|=2,g.return=a,S.return=a,g.sibling=S,a.child=g,(a.mode&1)!==0&&gi(a,o.child,null,R),a.child.memoizedState=Tp(R),a.memoizedState=Ep,S);if((a.mode&1)===0)return Yc(o,a,R,null);if(v.data==="$!"){if(g=v.nextSibling&&v.nextSibling.dataset,g)var V=g.dgst;return g=V,S=Error(n(419)),g=kp(S,g,void 0),Yc(o,a,R,g)}if(V=(R&o.childLanes)!==0,Jn||V){if(g=jn,g!==null){switch(R&-R){case 4:v=2;break;case 16:v=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:v=32;break;case 536870912:v=268435456;break;default:v=0}v=(v&(g.suspendedLanes|R))!==0?0:v,v!==0&&v!==S.retryLane&&(S.retryLane=v,js(o,v),Vr(g,o,v,-1))}return Wp(),g=kp(Error(n(421))),Yc(o,a,R,g)}return v.data==="$?"?(a.flags|=128,a.child=o.child,a=cE.bind(null,o),v._reactRetry=a,null):(o=S.treeContext,dr=_s(v.nextSibling),ur=a,Ut=!0,Fr=null,o!==null&&(wr[jr++]=vs,wr[jr++]=ws,wr[jr++]=ko,vs=o.id,ws=o.overflow,ko=a),a=Pp(a,g.children),a.flags|=4096,a)}function cb(o,a,d){o.lanes|=a;var g=o.alternate;g!==null&&(g.lanes|=a),ip(o.return,a,d)}function Rp(o,a,d,g,v){var S=o.memoizedState;S===null?o.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:g,tail:d,tailMode:v}:(S.isBackwards=a,S.rendering=null,S.renderingStartTime=0,S.last=g,S.tail=d,S.tailMode=v)}function ub(o,a,d){var g=a.pendingProps,v=g.revealOrder,S=g.tail;if(Bn(o,a,g.children,d),g=qt.current,(g&2)!==0)g=g&1|2,a.flags|=128;else{if(o!==null&&(o.flags&128)!==0)e:for(o=a.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&cb(o,d,a);else if(o.tag===19)cb(o,d,a);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===a)break e;for(;o.sibling===null;){if(o.return===null||o.return===a)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}g&=1}if(Rt(qt,g),(a.mode&1)===0)a.memoizedState=null;else switch(v){case"forwards":for(d=a.child,v=null;d!==null;)o=d.alternate,o!==null&&Uc(o)===null&&(v=d),d=d.sibling;d=v,d===null?(v=a.child,a.child=null):(v=d.sibling,d.sibling=null),Rp(a,!1,v,d,S);break;case"backwards":for(d=null,v=a.child,a.child=null;v!==null;){if(o=v.alternate,o!==null&&Uc(o)===null){a.child=v;break}o=v.sibling,v.sibling=d,d=v,v=o}Rp(a,!0,d,null,S);break;case"together":Rp(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function Jc(o,a){(a.mode&1)===0&&o!==null&&(o.alternate=null,a.alternate=null,a.flags|=2)}function Ss(o,a,d){if(o!==null&&(a.dependencies=o.dependencies),To|=a.lanes,(d&a.childLanes)===0)return null;if(o!==null&&a.child!==o.child)throw Error(n(153));if(a.child!==null){for(o=a.child,d=Gs(o,o.pendingProps),a.child=d,d.return=a;o.sibling!==null;)o=o.sibling,d=d.sibling=Gs(o,o.pendingProps),d.return=a;d.sibling=null}return a.child}function XC(o,a,d){switch(a.tag){case 3:ib(a),hi();break;case 5:Sy(a);break;case 1:Yn(a.type)&&Dc(a);break;case 4:cp(a,a.stateNode.containerInfo);break;case 10:var g=a.type._context,v=a.memoizedProps.value;Rt(Mc,g._currentValue),g._currentValue=v;break;case 13:if(g=a.memoizedState,g!==null)return g.dehydrated!==null?(Rt(qt,qt.current&1),a.flags|=128,null):(d&a.child.childLanes)!==0?lb(o,a,d):(Rt(qt,qt.current&1),o=Ss(o,a,d),o!==null?o.sibling:null);Rt(qt,qt.current&1);break;case 19:if(g=(d&a.childLanes)!==0,(o.flags&128)!==0){if(g)return ub(o,a,d);a.flags|=128}if(v=a.memoizedState,v!==null&&(v.rendering=null,v.tail=null,v.lastEffect=null),Rt(qt,qt.current),g)break;return null;case 22:case 23:return a.lanes=0,rb(o,a,d)}return Ss(o,a,d)}var db,Ap,fb,pb;db=function(o,a){for(var d=a.child;d!==null;){if(d.tag===5||d.tag===6)o.appendChild(d.stateNode);else if(d.tag!==4&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===a)break;for(;d.sibling===null;){if(d.return===null||d.return===a)return;d=d.return}d.sibling.return=d.return,d=d.sibling}},Ap=function(){},fb=function(o,a,d,g){var v=o.memoizedProps;if(v!==g){o=a.stateNode,Co(Zr.current);var S=null;switch(d){case"input":v=Re(o,v),g=Re(o,g),S=[];break;case"select":v=A({},v,{value:void 0}),g=A({},g,{value:void 0}),S=[];break;case"textarea":v=He(o,v),g=He(o,g),S=[];break;default:typeof v.onClick!="function"&&typeof g.onClick=="function"&&(o.onclick=Pc)}yt(d,g);var R;d=null;for(ce in v)if(!g.hasOwnProperty(ce)&&v.hasOwnProperty(ce)&&v[ce]!=null)if(ce==="style"){var V=v[ce];for(R in V)V.hasOwnProperty(R)&&(d||(d={}),d[R]="")}else ce!=="dangerouslySetInnerHTML"&&ce!=="children"&&ce!=="suppressContentEditableWarning"&&ce!=="suppressHydrationWarning"&&ce!=="autoFocus"&&(i.hasOwnProperty(ce)?S||(S=[]):(S=S||[]).push(ce,null));for(ce in g){var q=g[ce];if(V=v!=null?v[ce]:void 0,g.hasOwnProperty(ce)&&q!==V&&(q!=null||V!=null))if(ce==="style")if(V){for(R in V)!V.hasOwnProperty(R)||q&&q.hasOwnProperty(R)||(d||(d={}),d[R]="");for(R in q)q.hasOwnProperty(R)&&V[R]!==q[R]&&(d||(d={}),d[R]=q[R])}else d||(S||(S=[]),S.push(ce,d)),d=q;else ce==="dangerouslySetInnerHTML"?(q=q?q.__html:void 0,V=V?V.__html:void 0,q!=null&&V!==q&&(S=S||[]).push(ce,q)):ce==="children"?typeof q!="string"&&typeof q!="number"||(S=S||[]).push(ce,""+q):ce!=="suppressContentEditableWarning"&&ce!=="suppressHydrationWarning"&&(i.hasOwnProperty(ce)?(q!=null&&ce==="onScroll"&&Ot("scroll",o),S||V===q||(S=[])):(S=S||[]).push(ce,q))}d&&(S=S||[]).push("style",d);var ce=S;(a.updateQueue=ce)&&(a.flags|=4)}},pb=function(o,a,d,g){d!==g&&(a.flags|=4)};function nl(o,a){if(!Ut)switch(o.tailMode){case"hidden":a=o.tail;for(var d=null;a!==null;)a.alternate!==null&&(d=a),a=a.sibling;d===null?o.tail=null:d.sibling=null;break;case"collapsed":d=o.tail;for(var g=null;d!==null;)d.alternate!==null&&(g=d),d=d.sibling;g===null?a||o.tail===null?o.tail=null:o.tail.sibling=null:g.sibling=null}}function Ln(o){var a=o.alternate!==null&&o.alternate.child===o.child,d=0,g=0;if(a)for(var v=o.child;v!==null;)d|=v.lanes|v.childLanes,g|=v.subtreeFlags&14680064,g|=v.flags&14680064,v.return=o,v=v.sibling;else for(v=o.child;v!==null;)d|=v.lanes|v.childLanes,g|=v.subtreeFlags,g|=v.flags,v.return=o,v=v.sibling;return o.subtreeFlags|=g,o.childLanes=d,a}function QC(o,a,d){var g=a.pendingProps;switch(Zf(a),a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ln(a),null;case 1:return Yn(a.type)&&Ac(),Ln(a),null;case 3:return g=a.stateNode,bi(),_t(Gn),_t(Dn),fp(),g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null),(o===null||o.child===null)&&(Oc(a)?a.flags|=4:o===null||o.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,Fr!==null&&(Up(Fr),Fr=null))),Ap(o,a),Ln(a),null;case 5:up(a);var v=Co(Xa.current);if(d=a.type,o!==null&&a.stateNode!=null)fb(o,a,d,g,v),o.ref!==a.ref&&(a.flags|=512,a.flags|=2097152);else{if(!g){if(a.stateNode===null)throw Error(n(166));return Ln(a),null}if(o=Co(Zr.current),Oc(a)){g=a.stateNode,d=a.type;var S=a.memoizedProps;switch(g[Qr]=a,g[Ka]=S,o=(a.mode&1)!==0,d){case"dialog":Ot("cancel",g),Ot("close",g);break;case"iframe":case"object":case"embed":Ot("load",g);break;case"video":case"audio":for(v=0;v<Va.length;v++)Ot(Va[v],g);break;case"source":Ot("error",g);break;case"img":case"image":case"link":Ot("error",g),Ot("load",g);break;case"details":Ot("toggle",g);break;case"input":O(g,S),Ot("invalid",g);break;case"select":g._wrapperState={wasMultiple:!!S.multiple},Ot("invalid",g);break;case"textarea":jt(g,S),Ot("invalid",g)}yt(d,S),v=null;for(var R in S)if(S.hasOwnProperty(R)){var V=S[R];R==="children"?typeof V=="string"?g.textContent!==V&&(S.suppressHydrationWarning!==!0&&Tc(g.textContent,V,o),v=["children",V]):typeof V=="number"&&g.textContent!==""+V&&(S.suppressHydrationWarning!==!0&&Tc(g.textContent,V,o),v=["children",""+V]):i.hasOwnProperty(R)&&V!=null&&R==="onScroll"&&Ot("scroll",g)}switch(d){case"input":fe(g),ge(g,S,!0);break;case"textarea":fe(g),st(g);break;case"select":case"option":break;default:typeof S.onClick=="function"&&(g.onclick=Pc)}g=v,a.updateQueue=g,g!==null&&(a.flags|=4)}else{R=v.nodeType===9?v:v.ownerDocument,o==="http://www.w3.org/1999/xhtml"&&(o=ae(d)),o==="http://www.w3.org/1999/xhtml"?d==="script"?(o=R.createElement("div"),o.innerHTML="<script><\/script>",o=o.removeChild(o.firstChild)):typeof g.is=="string"?o=R.createElement(d,{is:g.is}):(o=R.createElement(d),d==="select"&&(R=o,g.multiple?R.multiple=!0:g.size&&(R.size=g.size))):o=R.createElementNS(o,d),o[Qr]=a,o[Ka]=g,db(o,a,!1,!1),a.stateNode=o;e:{switch(R=kt(d,g),d){case"dialog":Ot("cancel",o),Ot("close",o),v=g;break;case"iframe":case"object":case"embed":Ot("load",o),v=g;break;case"video":case"audio":for(v=0;v<Va.length;v++)Ot(Va[v],o);v=g;break;case"source":Ot("error",o),v=g;break;case"img":case"image":case"link":Ot("error",o),Ot("load",o),v=g;break;case"details":Ot("toggle",o),v=g;break;case"input":O(o,g),v=Re(o,g),Ot("invalid",o);break;case"option":v=g;break;case"select":o._wrapperState={wasMultiple:!!g.multiple},v=A({},g,{value:void 0}),Ot("invalid",o);break;case"textarea":jt(o,g),v=He(o,g),Ot("invalid",o);break;default:v=g}yt(d,v),V=v;for(S in V)if(V.hasOwnProperty(S)){var q=V[S];S==="style"?tn(o,q):S==="dangerouslySetInnerHTML"?(q=q?q.__html:void 0,q!=null&&We(o,q)):S==="children"?typeof q=="string"?(d!=="textarea"||q!=="")&&Xe(o,q):typeof q=="number"&&Xe(o,""+q):S!=="suppressContentEditableWarning"&&S!=="suppressHydrationWarning"&&S!=="autoFocus"&&(i.hasOwnProperty(S)?q!=null&&S==="onScroll"&&Ot("scroll",o):q!=null&&N(o,S,q,R))}switch(d){case"input":fe(o),ge(o,g,!1);break;case"textarea":fe(o),st(o);break;case"option":g.value!=null&&o.setAttribute("value",""+de(g.value));break;case"select":o.multiple=!!g.multiple,S=g.value,S!=null?et(o,!!g.multiple,S,!1):g.defaultValue!=null&&et(o,!!g.multiple,g.defaultValue,!0);break;default:typeof v.onClick=="function"&&(o.onclick=Pc)}switch(d){case"button":case"input":case"select":case"textarea":g=!!g.autoFocus;break e;case"img":g=!0;break e;default:g=!1}}g&&(a.flags|=4)}a.ref!==null&&(a.flags|=512,a.flags|=2097152)}return Ln(a),null;case 6:if(o&&a.stateNode!=null)pb(o,a,o.memoizedProps,g);else{if(typeof g!="string"&&a.stateNode===null)throw Error(n(166));if(d=Co(Xa.current),Co(Zr.current),Oc(a)){if(g=a.stateNode,d=a.memoizedProps,g[Qr]=a,(S=g.nodeValue!==d)&&(o=ur,o!==null))switch(o.tag){case 3:Tc(g.nodeValue,d,(o.mode&1)!==0);break;case 5:o.memoizedProps.suppressHydrationWarning!==!0&&Tc(g.nodeValue,d,(o.mode&1)!==0)}S&&(a.flags|=4)}else g=(d.nodeType===9?d:d.ownerDocument).createTextNode(g),g[Qr]=a,a.stateNode=g}return Ln(a),null;case 13:if(_t(qt),g=a.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(Ut&&dr!==null&&(a.mode&1)!==0&&(a.flags&128)===0)gy(),hi(),a.flags|=98560,S=!1;else if(S=Oc(a),g!==null&&g.dehydrated!==null){if(o===null){if(!S)throw Error(n(318));if(S=a.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));S[Qr]=a}else hi(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;Ln(a),S=!1}else Fr!==null&&(Up(Fr),Fr=null),S=!0;if(!S)return a.flags&65536?a:null}return(a.flags&128)!==0?(a.lanes=d,a):(g=g!==null,g!==(o!==null&&o.memoizedState!==null)&&g&&(a.child.flags|=8192,(a.mode&1)!==0&&(o===null||(qt.current&1)!==0?mn===0&&(mn=3):Wp())),a.updateQueue!==null&&(a.flags|=4),Ln(a),null);case 4:return bi(),Ap(o,a),o===null&&Ha(a.stateNode.containerInfo),Ln(a),null;case 10:return op(a.type._context),Ln(a),null;case 17:return Yn(a.type)&&Ac(),Ln(a),null;case 19:if(_t(qt),S=a.memoizedState,S===null)return Ln(a),null;if(g=(a.flags&128)!==0,R=S.rendering,R===null)if(g)nl(S,!1);else{if(mn!==0||o!==null&&(o.flags&128)!==0)for(o=a.child;o!==null;){if(R=Uc(o),R!==null){for(a.flags|=128,nl(S,!1),g=R.updateQueue,g!==null&&(a.updateQueue=g,a.flags|=4),a.subtreeFlags=0,g=d,d=a.child;d!==null;)S=d,o=g,S.flags&=14680066,R=S.alternate,R===null?(S.childLanes=0,S.lanes=o,S.child=null,S.subtreeFlags=0,S.memoizedProps=null,S.memoizedState=null,S.updateQueue=null,S.dependencies=null,S.stateNode=null):(S.childLanes=R.childLanes,S.lanes=R.lanes,S.child=R.child,S.subtreeFlags=0,S.deletions=null,S.memoizedProps=R.memoizedProps,S.memoizedState=R.memoizedState,S.updateQueue=R.updateQueue,S.type=R.type,o=R.dependencies,S.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext}),d=d.sibling;return Rt(qt,qt.current&1|2),a.child}o=o.sibling}S.tail!==null&&Pt()>ki&&(a.flags|=128,g=!0,nl(S,!1),a.lanes=4194304)}else{if(!g)if(o=Uc(R),o!==null){if(a.flags|=128,g=!0,d=o.updateQueue,d!==null&&(a.updateQueue=d,a.flags|=4),nl(S,!0),S.tail===null&&S.tailMode==="hidden"&&!R.alternate&&!Ut)return Ln(a),null}else 2*Pt()-S.renderingStartTime>ki&&d!==1073741824&&(a.flags|=128,g=!0,nl(S,!1),a.lanes=4194304);S.isBackwards?(R.sibling=a.child,a.child=R):(d=S.last,d!==null?d.sibling=R:a.child=R,S.last=R)}return S.tail!==null?(a=S.tail,S.rendering=a,S.tail=a.sibling,S.renderingStartTime=Pt(),a.sibling=null,d=qt.current,Rt(qt,g?d&1|2:d&1),a):(Ln(a),null);case 22:case 23:return Hp(),g=a.memoizedState!==null,o!==null&&o.memoizedState!==null!==g&&(a.flags|=8192),g&&(a.mode&1)!==0?(fr&1073741824)!==0&&(Ln(a),a.subtreeFlags&6&&(a.flags|=8192)):Ln(a),null;case 24:return null;case 25:return null}throw Error(n(156,a.tag))}function ZC(o,a){switch(Zf(a),a.tag){case 1:return Yn(a.type)&&Ac(),o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 3:return bi(),_t(Gn),_t(Dn),fp(),o=a.flags,(o&65536)!==0&&(o&128)===0?(a.flags=o&-65537|128,a):null;case 5:return up(a),null;case 13:if(_t(qt),o=a.memoizedState,o!==null&&o.dehydrated!==null){if(a.alternate===null)throw Error(n(340));hi()}return o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 19:return _t(qt),null;case 4:return bi(),null;case 10:return op(a.type._context),null;case 22:case 23:return Hp(),null;case 24:return null;default:return null}}var Xc=!1,In=!1,eE=typeof WeakSet=="function"?WeakSet:Set,_e=null;function wi(o,a){var d=o.ref;if(d!==null)if(typeof d=="function")try{d(null)}catch(g){Xt(o,a,g)}else d.current=null}function Dp(o,a,d){try{d()}catch(g){Xt(o,a,g)}}var mb=!1;function tE(o,a){if(Hf=xc,o=Kx(),Of(o)){if("selectionStart"in o)var d={start:o.selectionStart,end:o.selectionEnd};else e:{d=(d=o.ownerDocument)&&d.defaultView||window;var g=d.getSelection&&d.getSelection();if(g&&g.rangeCount!==0){d=g.anchorNode;var v=g.anchorOffset,S=g.focusNode;g=g.focusOffset;try{d.nodeType,S.nodeType}catch{d=null;break e}var R=0,V=-1,q=-1,ce=0,we=0,ke=o,ve=null;t:for(;;){for(var Le;ke!==d||v!==0&&ke.nodeType!==3||(V=R+v),ke!==S||g!==0&&ke.nodeType!==3||(q=R+g),ke.nodeType===3&&(R+=ke.nodeValue.length),(Le=ke.firstChild)!==null;)ve=ke,ke=Le;for(;;){if(ke===o)break t;if(ve===d&&++ce===v&&(V=R),ve===S&&++we===g&&(q=R),(Le=ke.nextSibling)!==null)break;ke=ve,ve=ke.parentNode}ke=Le}d=V===-1||q===-1?null:{start:V,end:q}}else d=null}d=d||{start:0,end:0}}else d=null;for(Wf={focusedElem:o,selectionRange:d},xc=!1,_e=a;_e!==null;)if(a=_e,o=a.child,(a.subtreeFlags&1028)!==0&&o!==null)o.return=a,_e=o;else for(;_e!==null;){a=_e;try{var Me=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(Me!==null){var Be=Me.memoizedProps,sn=Me.memoizedState,re=a.stateNode,Y=re.getSnapshotBeforeUpdate(a.elementType===a.type?Be:zr(a.type,Be),sn);re.__reactInternalSnapshotBeforeUpdate=Y}break;case 3:var ie=a.stateNode.containerInfo;ie.nodeType===1?ie.textContent="":ie.nodeType===9&&ie.documentElement&&ie.removeChild(ie.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(Ne){Xt(a,a.return,Ne)}if(o=a.sibling,o!==null){o.return=a.return,_e=o;break}_e=a.return}return Me=mb,mb=!1,Me}function rl(o,a,d){var g=a.updateQueue;if(g=g!==null?g.lastEffect:null,g!==null){var v=g=g.next;do{if((v.tag&o)===o){var S=v.destroy;v.destroy=void 0,S!==void 0&&Dp(a,d,S)}v=v.next}while(v!==g)}}function Qc(o,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var d=a=a.next;do{if((d.tag&o)===o){var g=d.create;d.destroy=g()}d=d.next}while(d!==a)}}function $p(o){var a=o.ref;if(a!==null){var d=o.stateNode;switch(o.tag){case 5:o=d;break;default:o=d}typeof a=="function"?a(o):a.current=o}}function hb(o){var a=o.alternate;a!==null&&(o.alternate=null,hb(a)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(a=o.stateNode,a!==null&&(delete a[Qr],delete a[Ka],delete a[Yf],delete a[_C],delete a[MC])),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function gb(o){return o.tag===5||o.tag===3||o.tag===4}function xb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||gb(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Lp(o,a,d){var g=o.tag;if(g===5||g===6)o=o.stateNode,a?d.nodeType===8?d.parentNode.insertBefore(o,a):d.insertBefore(o,a):(d.nodeType===8?(a=d.parentNode,a.insertBefore(o,d)):(a=d,a.appendChild(o)),d=d._reactRootContainer,d!=null||a.onclick!==null||(a.onclick=Pc));else if(g!==4&&(o=o.child,o!==null))for(Lp(o,a,d),o=o.sibling;o!==null;)Lp(o,a,d),o=o.sibling}function Ip(o,a,d){var g=o.tag;if(g===5||g===6)o=o.stateNode,a?d.insertBefore(o,a):d.appendChild(o);else if(g!==4&&(o=o.child,o!==null))for(Ip(o,a,d),o=o.sibling;o!==null;)Ip(o,a,d),o=o.sibling}var Cn=null,Br=!1;function Vs(o,a,d){for(d=d.child;d!==null;)yb(o,a,d),d=d.sibling}function yb(o,a,d){if(br&&typeof br.onCommitFiberUnmount=="function")try{br.onCommitFiberUnmount(ti,d)}catch{}switch(d.tag){case 5:In||wi(d,a);case 6:var g=Cn,v=Br;Cn=null,Vs(o,a,d),Cn=g,Br=v,Cn!==null&&(Br?(o=Cn,d=d.stateNode,o.nodeType===8?o.parentNode.removeChild(d):o.removeChild(d)):Cn.removeChild(d.stateNode));break;case 18:Cn!==null&&(Br?(o=Cn,d=d.stateNode,o.nodeType===8?Gf(o.parentNode,d):o.nodeType===1&&Gf(o,d),Ia(o)):Gf(Cn,d.stateNode));break;case 4:g=Cn,v=Br,Cn=d.stateNode.containerInfo,Br=!0,Vs(o,a,d),Cn=g,Br=v;break;case 0:case 11:case 14:case 15:if(!In&&(g=d.updateQueue,g!==null&&(g=g.lastEffect,g!==null))){v=g=g.next;do{var S=v,R=S.destroy;S=S.tag,R!==void 0&&((S&2)!==0||(S&4)!==0)&&Dp(d,a,R),v=v.next}while(v!==g)}Vs(o,a,d);break;case 1:if(!In&&(wi(d,a),g=d.stateNode,typeof g.componentWillUnmount=="function"))try{g.props=d.memoizedProps,g.state=d.memoizedState,g.componentWillUnmount()}catch(V){Xt(d,a,V)}Vs(o,a,d);break;case 21:Vs(o,a,d);break;case 22:d.mode&1?(In=(g=In)||d.memoizedState!==null,Vs(o,a,d),In=g):Vs(o,a,d);break;default:Vs(o,a,d)}}function bb(o){var a=o.updateQueue;if(a!==null){o.updateQueue=null;var d=o.stateNode;d===null&&(d=o.stateNode=new eE),a.forEach(function(g){var v=uE.bind(null,o,g);d.has(g)||(d.add(g),g.then(v,v))})}}function Ur(o,a){var d=a.deletions;if(d!==null)for(var g=0;g<d.length;g++){var v=d[g];try{var S=o,R=a,V=R;e:for(;V!==null;){switch(V.tag){case 5:Cn=V.stateNode,Br=!1;break e;case 3:Cn=V.stateNode.containerInfo,Br=!0;break e;case 4:Cn=V.stateNode.containerInfo,Br=!0;break e}V=V.return}if(Cn===null)throw Error(n(160));yb(S,R,v),Cn=null,Br=!1;var q=v.alternate;q!==null&&(q.return=null),v.return=null}catch(ce){Xt(v,a,ce)}}if(a.subtreeFlags&12854)for(a=a.child;a!==null;)vb(a,o),a=a.sibling}function vb(o,a){var d=o.alternate,g=o.flags;switch(o.tag){case 0:case 11:case 14:case 15:if(Ur(a,o),ts(o),g&4){try{rl(3,o,o.return),Qc(3,o)}catch(Be){Xt(o,o.return,Be)}try{rl(5,o,o.return)}catch(Be){Xt(o,o.return,Be)}}break;case 1:Ur(a,o),ts(o),g&512&&d!==null&&wi(d,d.return);break;case 5:if(Ur(a,o),ts(o),g&512&&d!==null&&wi(d,d.return),o.flags&32){var v=o.stateNode;try{Xe(v,"")}catch(Be){Xt(o,o.return,Be)}}if(g&4&&(v=o.stateNode,v!=null)){var S=o.memoizedProps,R=d!==null?d.memoizedProps:S,V=o.type,q=o.updateQueue;if(o.updateQueue=null,q!==null)try{V==="input"&&S.type==="radio"&&S.name!=null&&H(v,S),kt(V,R);var ce=kt(V,S);for(R=0;R<q.length;R+=2){var we=q[R],ke=q[R+1];we==="style"?tn(v,ke):we==="dangerouslySetInnerHTML"?We(v,ke):we==="children"?Xe(v,ke):N(v,we,ke,ce)}switch(V){case"input":Q(v,S);break;case"textarea":Ht(v,S);break;case"select":var ve=v._wrapperState.wasMultiple;v._wrapperState.wasMultiple=!!S.multiple;var Le=S.value;Le!=null?et(v,!!S.multiple,Le,!1):ve!==!!S.multiple&&(S.defaultValue!=null?et(v,!!S.multiple,S.defaultValue,!0):et(v,!!S.multiple,S.multiple?[]:"",!1))}v[Ka]=S}catch(Be){Xt(o,o.return,Be)}}break;case 6:if(Ur(a,o),ts(o),g&4){if(o.stateNode===null)throw Error(n(162));v=o.stateNode,S=o.memoizedProps;try{v.nodeValue=S}catch(Be){Xt(o,o.return,Be)}}break;case 3:if(Ur(a,o),ts(o),g&4&&d!==null&&d.memoizedState.isDehydrated)try{Ia(a.containerInfo)}catch(Be){Xt(o,o.return,Be)}break;case 4:Ur(a,o),ts(o);break;case 13:Ur(a,o),ts(o),v=o.child,v.flags&8192&&(S=v.memoizedState!==null,v.stateNode.isHidden=S,!S||v.alternate!==null&&v.alternate.memoizedState!==null||(Mp=Pt())),g&4&&bb(o);break;case 22:if(we=d!==null&&d.memoizedState!==null,o.mode&1?(In=(ce=In)||we,Ur(a,o),In=ce):Ur(a,o),ts(o),g&8192){if(ce=o.memoizedState!==null,(o.stateNode.isHidden=ce)&&!we&&(o.mode&1)!==0)for(_e=o,we=o.child;we!==null;){for(ke=_e=we;_e!==null;){switch(ve=_e,Le=ve.child,ve.tag){case 0:case 11:case 14:case 15:rl(4,ve,ve.return);break;case 1:wi(ve,ve.return);var Me=ve.stateNode;if(typeof Me.componentWillUnmount=="function"){g=ve,d=ve.return;try{a=g,Me.props=a.memoizedProps,Me.state=a.memoizedState,Me.componentWillUnmount()}catch(Be){Xt(g,d,Be)}}break;case 5:wi(ve,ve.return);break;case 22:if(ve.memoizedState!==null){kb(ke);continue}}Le!==null?(Le.return=ve,_e=Le):kb(ke)}we=we.sibling}e:for(we=null,ke=o;;){if(ke.tag===5){if(we===null){we=ke;try{v=ke.stateNode,ce?(S=v.style,typeof S.setProperty=="function"?S.setProperty("display","none","important"):S.display="none"):(V=ke.stateNode,q=ke.memoizedProps.style,R=q!=null&&q.hasOwnProperty("display")?q.display:null,V.style.display=xt("display",R))}catch(Be){Xt(o,o.return,Be)}}}else if(ke.tag===6){if(we===null)try{ke.stateNode.nodeValue=ce?"":ke.memoizedProps}catch(Be){Xt(o,o.return,Be)}}else if((ke.tag!==22&&ke.tag!==23||ke.memoizedState===null||ke===o)&&ke.child!==null){ke.child.return=ke,ke=ke.child;continue}if(ke===o)break e;for(;ke.sibling===null;){if(ke.return===null||ke.return===o)break e;we===ke&&(we=null),ke=ke.return}we===ke&&(we=null),ke.sibling.return=ke.return,ke=ke.sibling}}break;case 19:Ur(a,o),ts(o),g&4&&bb(o);break;case 21:break;default:Ur(a,o),ts(o)}}function ts(o){var a=o.flags;if(a&2){try{e:{for(var d=o.return;d!==null;){if(gb(d)){var g=d;break e}d=d.return}throw Error(n(160))}switch(g.tag){case 5:var v=g.stateNode;g.flags&32&&(Xe(v,""),g.flags&=-33);var S=xb(o);Ip(o,S,v);break;case 3:case 4:var R=g.stateNode.containerInfo,V=xb(o);Lp(o,V,R);break;default:throw Error(n(161))}}catch(q){Xt(o,o.return,q)}o.flags&=-3}a&4096&&(o.flags&=-4097)}function nE(o,a,d){_e=o,wb(o)}function wb(o,a,d){for(var g=(o.mode&1)!==0;_e!==null;){var v=_e,S=v.child;if(v.tag===22&&g){var R=v.memoizedState!==null||Xc;if(!R){var V=v.alternate,q=V!==null&&V.memoizedState!==null||In;V=Xc;var ce=In;if(Xc=R,(In=q)&&!ce)for(_e=v;_e!==null;)R=_e,q=R.child,R.tag===22&&R.memoizedState!==null?Sb(v):q!==null?(q.return=R,_e=q):Sb(v);for(;S!==null;)_e=S,wb(S),S=S.sibling;_e=v,Xc=V,In=ce}jb(o)}else(v.subtreeFlags&8772)!==0&&S!==null?(S.return=v,_e=S):jb(o)}}function jb(o){for(;_e!==null;){var a=_e;if((a.flags&8772)!==0){var d=a.alternate;try{if((a.flags&8772)!==0)switch(a.tag){case 0:case 11:case 15:In||Qc(5,a);break;case 1:var g=a.stateNode;if(a.flags&4&&!In)if(d===null)g.componentDidMount();else{var v=a.elementType===a.type?d.memoizedProps:zr(a.type,d.memoizedProps);g.componentDidUpdate(v,d.memoizedState,g.__reactInternalSnapshotBeforeUpdate)}var S=a.updateQueue;S!==null&&ky(a,S,g);break;case 3:var R=a.updateQueue;if(R!==null){if(d=null,a.child!==null)switch(a.child.tag){case 5:d=a.child.stateNode;break;case 1:d=a.child.stateNode}ky(a,R,d)}break;case 5:var V=a.stateNode;if(d===null&&a.flags&4){d=V;var q=a.memoizedProps;switch(a.type){case"button":case"input":case"select":case"textarea":q.autoFocus&&d.focus();break;case"img":q.src&&(d.src=q.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(a.memoizedState===null){var ce=a.alternate;if(ce!==null){var we=ce.memoizedState;if(we!==null){var ke=we.dehydrated;ke!==null&&Ia(ke)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}In||a.flags&512&&$p(a)}catch(ve){Xt(a,a.return,ve)}}if(a===o){_e=null;break}if(d=a.sibling,d!==null){d.return=a.return,_e=d;break}_e=a.return}}function kb(o){for(;_e!==null;){var a=_e;if(a===o){_e=null;break}var d=a.sibling;if(d!==null){d.return=a.return,_e=d;break}_e=a.return}}function Sb(o){for(;_e!==null;){var a=_e;try{switch(a.tag){case 0:case 11:case 15:var d=a.return;try{Qc(4,a)}catch(q){Xt(a,d,q)}break;case 1:var g=a.stateNode;if(typeof g.componentDidMount=="function"){var v=a.return;try{g.componentDidMount()}catch(q){Xt(a,v,q)}}var S=a.return;try{$p(a)}catch(q){Xt(a,S,q)}break;case 5:var R=a.return;try{$p(a)}catch(q){Xt(a,R,q)}}}catch(q){Xt(a,a.return,q)}if(a===o){_e=null;break}var V=a.sibling;if(V!==null){V.return=a.return,_e=V;break}_e=a.return}}var rE=Math.ceil,Zc=T.ReactCurrentDispatcher,Op=T.ReactCurrentOwner,Nr=T.ReactCurrentBatchConfig,pt=0,jn=null,ln=null,En=0,fr=0,ji=Ms(0),mn=0,sl=null,To=0,eu=0,_p=0,ol=null,Xn=null,Mp=0,ki=1/0,Ns=null,tu=!1,Fp=null,Hs=null,nu=!1,Ws=null,ru=0,il=0,zp=null,su=-1,ou=0;function Un(){return(pt&6)!==0?Pt():su!==-1?su:su=Pt()}function Ks(o){return(o.mode&1)===0?1:(pt&2)!==0&&En!==0?En&-En:zC.transition!==null?(ou===0&&(ou=pc()),ou):(o=vt,o!==0||(o=window.event,o=o===void 0?16:Cx(o.type)),o)}function Vr(o,a,d,g){if(50<il)throw il=0,zp=null,Error(n(185));bo(o,d,g),((pt&2)===0||o!==jn)&&(o===jn&&((pt&2)===0&&(eu|=d),mn===4&&qs(o,En)),Qn(o,g),d===1&&pt===0&&(a.mode&1)===0&&(ki=Pt()+500,$c&&zs()))}function Qn(o,a){var d=o.callbackNode;Ra(o,a);var g=xo(o,o===jn?En:0);if(g===0)d!==null&&mo(d),o.callbackNode=null,o.callbackPriority=0;else if(a=g&-g,o.callbackPriority!==a){if(d!=null&&mo(d),a===1)o.tag===0?FC(Cb.bind(null,o)):dy(Cb.bind(null,o)),IC(function(){(pt&6)===0&&zs()}),d=null;else{switch(mc(g)){case 1:d=Ta;break;case 4:d=dc;break;case 16:d=Fn;break;case 536870912:d=fc;break;default:d=Fn}d=Lb(d,Nb.bind(null,o))}o.callbackPriority=a,o.callbackNode=d}}function Nb(o,a){if(su=-1,ou=0,(pt&6)!==0)throw Error(n(327));var d=o.callbackNode;if(Si()&&o.callbackNode!==d)return null;var g=xo(o,o===jn?En:0);if(g===0)return null;if((g&30)!==0||(g&o.expiredLanes)!==0||a)a=iu(o,g);else{a=g;var v=pt;pt|=2;var S=Tb();(jn!==o||En!==a)&&(Ns=null,ki=Pt()+500,Ro(o,a));do try{iE();break}catch(V){Eb(o,V)}while(!0);sp(),Zc.current=S,pt=v,ln!==null?a=0:(jn=null,En=0,a=mn)}if(a!==0){if(a===2&&(v=Aa(o),v!==0&&(g=v,a=Bp(o,v))),a===1)throw d=sl,Ro(o,0),qs(o,g),Qn(o,Pt()),d;if(a===6)qs(o,g);else{if(v=o.current.alternate,(g&30)===0&&!sE(v)&&(a=iu(o,g),a===2&&(S=Aa(o),S!==0&&(g=S,a=Bp(o,S))),a===1))throw d=sl,Ro(o,0),qs(o,g),Qn(o,Pt()),d;switch(o.finishedWork=v,o.finishedLanes=g,a){case 0:case 1:throw Error(n(345));case 2:Ao(o,Xn,Ns);break;case 3:if(qs(o,g),(g&130023424)===g&&(a=Mp+500-Pt(),10<a)){if(xo(o,0)!==0)break;if(v=o.suspendedLanes,(v&g)!==g){Un(),o.pingedLanes|=o.suspendedLanes&v;break}o.timeoutHandle=qf(Ao.bind(null,o,Xn,Ns),a);break}Ao(o,Xn,Ns);break;case 4:if(qs(o,g),(g&4194240)===g)break;for(a=o.eventTimes,v=-1;0<g;){var R=31-ht(g);S=1<<R,R=a[R],R>v&&(v=R),g&=~S}if(g=v,g=Pt()-g,g=(120>g?120:480>g?480:1080>g?1080:1920>g?1920:3e3>g?3e3:4320>g?4320:1960*rE(g/1960))-g,10<g){o.timeoutHandle=qf(Ao.bind(null,o,Xn,Ns),g);break}Ao(o,Xn,Ns);break;case 5:Ao(o,Xn,Ns);break;default:throw Error(n(329))}}}return Qn(o,Pt()),o.callbackNode===d?Nb.bind(null,o):null}function Bp(o,a){var d=ol;return o.current.memoizedState.isDehydrated&&(Ro(o,a).flags|=256),o=iu(o,a),o!==2&&(a=Xn,Xn=d,a!==null&&Up(a)),o}function Up(o){Xn===null?Xn=o:Xn.push.apply(Xn,o)}function sE(o){for(var a=o;;){if(a.flags&16384){var d=a.updateQueue;if(d!==null&&(d=d.stores,d!==null))for(var g=0;g<d.length;g++){var v=d[g],S=v.getSnapshot;v=v.value;try{if(!Mr(S(),v))return!1}catch{return!1}}}if(d=a.child,a.subtreeFlags&16384&&d!==null)d.return=a,a=d;else{if(a===o)break;for(;a.sibling===null;){if(a.return===null||a.return===o)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function qs(o,a){for(a&=~_p,a&=~eu,o.suspendedLanes|=a,o.pingedLanes&=~a,o=o.expirationTimes;0<a;){var d=31-ht(a),g=1<<d;o[d]=-1,a&=~g}}function Cb(o){if((pt&6)!==0)throw Error(n(327));Si();var a=xo(o,0);if((a&1)===0)return Qn(o,Pt()),null;var d=iu(o,a);if(o.tag!==0&&d===2){var g=Aa(o);g!==0&&(a=g,d=Bp(o,g))}if(d===1)throw d=sl,Ro(o,0),qs(o,a),Qn(o,Pt()),d;if(d===6)throw Error(n(345));return o.finishedWork=o.current.alternate,o.finishedLanes=a,Ao(o,Xn,Ns),Qn(o,Pt()),null}function Vp(o,a){var d=pt;pt|=1;try{return o(a)}finally{pt=d,pt===0&&(ki=Pt()+500,$c&&zs())}}function Po(o){Ws!==null&&Ws.tag===0&&(pt&6)===0&&Si();var a=pt;pt|=1;var d=Nr.transition,g=vt;try{if(Nr.transition=null,vt=1,o)return o()}finally{vt=g,Nr.transition=d,pt=a,(pt&6)===0&&zs()}}function Hp(){fr=ji.current,_t(ji)}function Ro(o,a){o.finishedWork=null,o.finishedLanes=0;var d=o.timeoutHandle;if(d!==-1&&(o.timeoutHandle=-1,LC(d)),ln!==null)for(d=ln.return;d!==null;){var g=d;switch(Zf(g),g.tag){case 1:g=g.type.childContextTypes,g!=null&&Ac();break;case 3:bi(),_t(Gn),_t(Dn),fp();break;case 5:up(g);break;case 4:bi();break;case 13:_t(qt);break;case 19:_t(qt);break;case 10:op(g.type._context);break;case 22:case 23:Hp()}d=d.return}if(jn=o,ln=o=Gs(o.current,null),En=fr=a,mn=0,sl=null,_p=eu=To=0,Xn=ol=null,No!==null){for(a=0;a<No.length;a++)if(d=No[a],g=d.interleaved,g!==null){d.interleaved=null;var v=g.next,S=d.pending;if(S!==null){var R=S.next;S.next=v,g.next=R}d.pending=g}No=null}return o}function Eb(o,a){do{var d=ln;try{if(sp(),Vc.current=qc,Hc){for(var g=Gt.memoizedState;g!==null;){var v=g.queue;v!==null&&(v.pending=null),g=g.next}Hc=!1}if(Eo=0,wn=pn=Gt=null,Qa=!1,Za=0,Op.current=null,d===null||d.return===null){mn=1,sl=a,ln=null;break}e:{var S=o,R=d.return,V=d,q=a;if(a=En,V.flags|=32768,q!==null&&typeof q=="object"&&typeof q.then=="function"){var ce=q,we=V,ke=we.tag;if((we.mode&1)===0&&(ke===0||ke===11||ke===15)){var ve=we.alternate;ve?(we.updateQueue=ve.updateQueue,we.memoizedState=ve.memoizedState,we.lanes=ve.lanes):(we.updateQueue=null,we.memoizedState=null)}var Le=Qy(R);if(Le!==null){Le.flags&=-257,Zy(Le,R,V,S,a),Le.mode&1&&Xy(S,ce,a),a=Le,q=ce;var Me=a.updateQueue;if(Me===null){var Be=new Set;Be.add(q),a.updateQueue=Be}else Me.add(q);break e}else{if((a&1)===0){Xy(S,ce,a),Wp();break e}q=Error(n(426))}}else if(Ut&&V.mode&1){var sn=Qy(R);if(sn!==null){(sn.flags&65536)===0&&(sn.flags|=256),Zy(sn,R,V,S,a),np(vi(q,V));break e}}S=q=vi(q,V),mn!==4&&(mn=2),ol===null?ol=[S]:ol.push(S),S=R;do{switch(S.tag){case 3:S.flags|=65536,a&=-a,S.lanes|=a;var re=Yy(S,q,a);jy(S,re);break e;case 1:V=q;var Y=S.type,ie=S.stateNode;if((S.flags&128)===0&&(typeof Y.getDerivedStateFromError=="function"||ie!==null&&typeof ie.componentDidCatch=="function"&&(Hs===null||!Hs.has(ie)))){S.flags|=65536,a&=-a,S.lanes|=a;var Ne=Jy(S,V,a);jy(S,Ne);break e}}S=S.return}while(S!==null)}Rb(d)}catch(Ke){a=Ke,ln===d&&d!==null&&(ln=d=d.return);continue}break}while(!0)}function Tb(){var o=Zc.current;return Zc.current=qc,o===null?qc:o}function Wp(){(mn===0||mn===3||mn===2)&&(mn=4),jn===null||(To&268435455)===0&&(eu&268435455)===0||qs(jn,En)}function iu(o,a){var d=pt;pt|=2;var g=Tb();(jn!==o||En!==a)&&(Ns=null,Ro(o,a));do try{oE();break}catch(v){Eb(o,v)}while(!0);if(sp(),pt=d,Zc.current=g,ln!==null)throw Error(n(261));return jn=null,En=0,mn}function oE(){for(;ln!==null;)Pb(ln)}function iE(){for(;ln!==null&&!vf();)Pb(ln)}function Pb(o){var a=$b(o.alternate,o,fr);o.memoizedProps=o.pendingProps,a===null?Rb(o):ln=a,Op.current=null}function Rb(o){var a=o;do{var d=a.alternate;if(o=a.return,(a.flags&32768)===0){if(d=QC(d,a,fr),d!==null){ln=d;return}}else{if(d=ZC(d,a),d!==null){d.flags&=32767,ln=d;return}if(o!==null)o.flags|=32768,o.subtreeFlags=0,o.deletions=null;else{mn=6,ln=null;return}}if(a=a.sibling,a!==null){ln=a;return}ln=a=o}while(a!==null);mn===0&&(mn=5)}function Ao(o,a,d){var g=vt,v=Nr.transition;try{Nr.transition=null,vt=1,aE(o,a,d,g)}finally{Nr.transition=v,vt=g}return null}function aE(o,a,d,g){do Si();while(Ws!==null);if((pt&6)!==0)throw Error(n(327));d=o.finishedWork;var v=o.finishedLanes;if(d===null)return null;if(o.finishedWork=null,o.finishedLanes=0,d===o.current)throw Error(n(177));o.callbackNode=null,o.callbackPriority=0;var S=d.lanes|d.childLanes;if(Da(o,S),o===jn&&(ln=jn=null,En=0),(d.subtreeFlags&2064)===0&&(d.flags&2064)===0||nu||(nu=!0,Lb(Fn,function(){return Si(),null})),S=(d.flags&15990)!==0,(d.subtreeFlags&15990)!==0||S){S=Nr.transition,Nr.transition=null;var R=vt;vt=1;var V=pt;pt|=4,Op.current=null,tE(o,d),vb(d,o),EC(Wf),xc=!!Hf,Wf=Hf=null,o.current=d,nE(d),ei(),pt=V,vt=R,Nr.transition=S}else o.current=d;if(nu&&(nu=!1,Ws=o,ru=v),S=o.pendingLanes,S===0&&(Hs=null),kf(d.stateNode),Qn(o,Pt()),a!==null)for(g=o.onRecoverableError,d=0;d<a.length;d++)v=a[d],g(v.value,{componentStack:v.stack,digest:v.digest});if(tu)throw tu=!1,o=Fp,Fp=null,o;return(ru&1)!==0&&o.tag!==0&&Si(),S=o.pendingLanes,(S&1)!==0?o===zp?il++:(il=0,zp=o):il=0,zs(),null}function Si(){if(Ws!==null){var o=mc(ru),a=Nr.transition,d=vt;try{if(Nr.transition=null,vt=16>o?16:o,Ws===null)var g=!1;else{if(o=Ws,Ws=null,ru=0,(pt&6)!==0)throw Error(n(331));var v=pt;for(pt|=4,_e=o.current;_e!==null;){var S=_e,R=S.child;if((_e.flags&16)!==0){var V=S.deletions;if(V!==null){for(var q=0;q<V.length;q++){var ce=V[q];for(_e=ce;_e!==null;){var we=_e;switch(we.tag){case 0:case 11:case 15:rl(8,we,S)}var ke=we.child;if(ke!==null)ke.return=we,_e=ke;else for(;_e!==null;){we=_e;var ve=we.sibling,Le=we.return;if(hb(we),we===ce){_e=null;break}if(ve!==null){ve.return=Le,_e=ve;break}_e=Le}}}var Me=S.alternate;if(Me!==null){var Be=Me.child;if(Be!==null){Me.child=null;do{var sn=Be.sibling;Be.sibling=null,Be=sn}while(Be!==null)}}_e=S}}if((S.subtreeFlags&2064)!==0&&R!==null)R.return=S,_e=R;else e:for(;_e!==null;){if(S=_e,(S.flags&2048)!==0)switch(S.tag){case 0:case 11:case 15:rl(9,S,S.return)}var re=S.sibling;if(re!==null){re.return=S.return,_e=re;break e}_e=S.return}}var Y=o.current;for(_e=Y;_e!==null;){R=_e;var ie=R.child;if((R.subtreeFlags&2064)!==0&&ie!==null)ie.return=R,_e=ie;else e:for(R=Y;_e!==null;){if(V=_e,(V.flags&2048)!==0)try{switch(V.tag){case 0:case 11:case 15:Qc(9,V)}}catch(Ke){Xt(V,V.return,Ke)}if(V===R){_e=null;break e}var Ne=V.sibling;if(Ne!==null){Ne.return=V.return,_e=Ne;break e}_e=V.return}}if(pt=v,zs(),br&&typeof br.onPostCommitFiberRoot=="function")try{br.onPostCommitFiberRoot(ti,o)}catch{}g=!0}return g}finally{vt=d,Nr.transition=a}}return!1}function Ab(o,a,d){a=vi(d,a),a=Yy(o,a,1),o=Us(o,a,1),a=Un(),o!==null&&(bo(o,1,a),Qn(o,a))}function Xt(o,a,d){if(o.tag===3)Ab(o,o,d);else for(;a!==null;){if(a.tag===3){Ab(a,o,d);break}else if(a.tag===1){var g=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof g.componentDidCatch=="function"&&(Hs===null||!Hs.has(g))){o=vi(d,o),o=Jy(a,o,1),a=Us(a,o,1),o=Un(),a!==null&&(bo(a,1,o),Qn(a,o));break}}a=a.return}}function lE(o,a,d){var g=o.pingCache;g!==null&&g.delete(a),a=Un(),o.pingedLanes|=o.suspendedLanes&d,jn===o&&(En&d)===d&&(mn===4||mn===3&&(En&130023424)===En&&500>Pt()-Mp?Ro(o,0):_p|=d),Qn(o,a)}function Db(o,a){a===0&&((o.mode&1)===0?a=1:(a=go,go<<=1,(go&130023424)===0&&(go=4194304)));var d=Un();o=js(o,a),o!==null&&(bo(o,a,d),Qn(o,d))}function cE(o){var a=o.memoizedState,d=0;a!==null&&(d=a.retryLane),Db(o,d)}function uE(o,a){var d=0;switch(o.tag){case 13:var g=o.stateNode,v=o.memoizedState;v!==null&&(d=v.retryLane);break;case 19:g=o.stateNode;break;default:throw Error(n(314))}g!==null&&g.delete(a),Db(o,d)}var $b;$b=function(o,a,d){if(o!==null)if(o.memoizedProps!==a.pendingProps||Gn.current)Jn=!0;else{if((o.lanes&d)===0&&(a.flags&128)===0)return Jn=!1,XC(o,a,d);Jn=(o.flags&131072)!==0}else Jn=!1,Ut&&(a.flags&1048576)!==0&&fy(a,Ic,a.index);switch(a.lanes=0,a.tag){case 2:var g=a.type;Jc(o,a),o=a.pendingProps;var v=fi(a,Dn.current);yi(a,d),v=hp(null,a,g,o,v,d);var S=gp();return a.flags|=1,typeof v=="object"&&v!==null&&typeof v.render=="function"&&v.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,Yn(g)?(S=!0,Dc(a)):S=!1,a.memoizedState=v.state!==null&&v.state!==void 0?v.state:null,lp(a),v.updater=Gc,a.stateNode=v,v._reactInternals=a,jp(a,g,o,d),a=Cp(null,a,g,!0,S,d)):(a.tag=0,Ut&&S&&Qf(a),Bn(null,a,v,d),a=a.child),a;case 16:g=a.elementType;e:{switch(Jc(o,a),o=a.pendingProps,v=g._init,g=v(g._payload),a.type=g,v=a.tag=fE(g),o=zr(g,o),v){case 0:a=Np(null,a,g,o,d);break e;case 1:a=ob(null,a,g,o,d);break e;case 11:a=eb(null,a,g,o,d);break e;case 14:a=tb(null,a,g,zr(g.type,o),d);break e}throw Error(n(306,g,""))}return a;case 0:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),Np(o,a,g,v,d);case 1:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),ob(o,a,g,v,d);case 3:e:{if(ib(a),o===null)throw Error(n(387));g=a.pendingProps,S=a.memoizedState,v=S.element,wy(o,a),Bc(a,g,null,d);var R=a.memoizedState;if(g=R.element,S.isDehydrated)if(S={element:g,isDehydrated:!1,cache:R.cache,pendingSuspenseBoundaries:R.pendingSuspenseBoundaries,transitions:R.transitions},a.updateQueue.baseState=S,a.memoizedState=S,a.flags&256){v=vi(Error(n(423)),a),a=ab(o,a,g,d,v);break e}else if(g!==v){v=vi(Error(n(424)),a),a=ab(o,a,g,d,v);break e}else for(dr=_s(a.stateNode.containerInfo.firstChild),ur=a,Ut=!0,Fr=null,d=by(a,null,g,d),a.child=d;d;)d.flags=d.flags&-3|4096,d=d.sibling;else{if(hi(),g===v){a=Ss(o,a,d);break e}Bn(o,a,g,d)}a=a.child}return a;case 5:return Sy(a),o===null&&tp(a),g=a.type,v=a.pendingProps,S=o!==null?o.memoizedProps:null,R=v.children,Kf(g,v)?R=null:S!==null&&Kf(g,S)&&(a.flags|=32),sb(o,a),Bn(o,a,R,d),a.child;case 6:return o===null&&tp(a),null;case 13:return lb(o,a,d);case 4:return cp(a,a.stateNode.containerInfo),g=a.pendingProps,o===null?a.child=gi(a,null,g,d):Bn(o,a,g,d),a.child;case 11:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),eb(o,a,g,v,d);case 7:return Bn(o,a,a.pendingProps,d),a.child;case 8:return Bn(o,a,a.pendingProps.children,d),a.child;case 12:return Bn(o,a,a.pendingProps.children,d),a.child;case 10:e:{if(g=a.type._context,v=a.pendingProps,S=a.memoizedProps,R=v.value,Rt(Mc,g._currentValue),g._currentValue=R,S!==null)if(Mr(S.value,R)){if(S.children===v.children&&!Gn.current){a=Ss(o,a,d);break e}}else for(S=a.child,S!==null&&(S.return=a);S!==null;){var V=S.dependencies;if(V!==null){R=S.child;for(var q=V.firstContext;q!==null;){if(q.context===g){if(S.tag===1){q=ks(-1,d&-d),q.tag=2;var ce=S.updateQueue;if(ce!==null){ce=ce.shared;var we=ce.pending;we===null?q.next=q:(q.next=we.next,we.next=q),ce.pending=q}}S.lanes|=d,q=S.alternate,q!==null&&(q.lanes|=d),ip(S.return,d,a),V.lanes|=d;break}q=q.next}}else if(S.tag===10)R=S.type===a.type?null:S.child;else if(S.tag===18){if(R=S.return,R===null)throw Error(n(341));R.lanes|=d,V=R.alternate,V!==null&&(V.lanes|=d),ip(R,d,a),R=S.sibling}else R=S.child;if(R!==null)R.return=S;else for(R=S;R!==null;){if(R===a){R=null;break}if(S=R.sibling,S!==null){S.return=R.return,R=S;break}R=R.return}S=R}Bn(o,a,v.children,d),a=a.child}return a;case 9:return v=a.type,g=a.pendingProps.children,yi(a,d),v=kr(v),g=g(v),a.flags|=1,Bn(o,a,g,d),a.child;case 14:return g=a.type,v=zr(g,a.pendingProps),v=zr(g.type,v),tb(o,a,g,v,d);case 15:return nb(o,a,a.type,a.pendingProps,d);case 17:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),Jc(o,a),a.tag=1,Yn(g)?(o=!0,Dc(a)):o=!1,yi(a,d),qy(a,g,v),jp(a,g,v,d),Cp(null,a,g,!0,o,d);case 19:return ub(o,a,d);case 22:return rb(o,a,d)}throw Error(n(156,a.tag))};function Lb(o,a){return Zo(o,a)}function dE(o,a,d,g){this.tag=o,this.key=d,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=g,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Cr(o,a,d,g){return new dE(o,a,d,g)}function Kp(o){return o=o.prototype,!(!o||!o.isReactComponent)}function fE(o){if(typeof o=="function")return Kp(o)?1:0;if(o!=null){if(o=o.$$typeof,o===W)return 11;if(o===K)return 14}return 2}function Gs(o,a){var d=o.alternate;return d===null?(d=Cr(o.tag,a,o.key,o.mode),d.elementType=o.elementType,d.type=o.type,d.stateNode=o.stateNode,d.alternate=o,o.alternate=d):(d.pendingProps=a,d.type=o.type,d.flags=0,d.subtreeFlags=0,d.deletions=null),d.flags=o.flags&14680064,d.childLanes=o.childLanes,d.lanes=o.lanes,d.child=o.child,d.memoizedProps=o.memoizedProps,d.memoizedState=o.memoizedState,d.updateQueue=o.updateQueue,a=o.dependencies,d.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},d.sibling=o.sibling,d.index=o.index,d.ref=o.ref,d}function au(o,a,d,g,v,S){var R=2;if(g=o,typeof o=="function")Kp(o)&&(R=1);else if(typeof o=="string")R=5;else e:switch(o){case $:return Do(d.children,v,S,a);case F:R=8,v|=8;break;case X:return o=Cr(12,d,a,v|2),o.elementType=X,o.lanes=S,o;case Z:return o=Cr(13,d,a,v),o.elementType=Z,o.lanes=S,o;case M:return o=Cr(19,d,a,v),o.elementType=M,o.lanes=S,o;case le:return lu(d,v,S,a);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case te:R=10;break e;case D:R=9;break e;case W:R=11;break e;case K:R=14;break e;case J:R=16,g=null;break e}throw Error(n(130,o==null?o:typeof o,""))}return a=Cr(R,d,a,v),a.elementType=o,a.type=g,a.lanes=S,a}function Do(o,a,d,g){return o=Cr(7,o,g,a),o.lanes=d,o}function lu(o,a,d,g){return o=Cr(22,o,g,a),o.elementType=le,o.lanes=d,o.stateNode={isHidden:!1},o}function qp(o,a,d){return o=Cr(6,o,null,a),o.lanes=d,o}function Gp(o,a,d){return a=Cr(4,o.children!==null?o.children:[],o.key,a),a.lanes=d,a.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},a}function pE(o,a,d,g,v){this.tag=a,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=An(0),this.expirationTimes=An(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=An(0),this.identifierPrefix=g,this.onRecoverableError=v,this.mutableSourceEagerHydrationData=null}function Yp(o,a,d,g,v,S,R,V,q){return o=new pE(o,a,d,V,q),a===1?(a=1,S===!0&&(a|=8)):a=0,S=Cr(3,null,null,a),o.current=S,S.stateNode=o,S.memoizedState={element:g,isDehydrated:d,cache:null,transitions:null,pendingSuspenseBoundaries:null},lp(S),o}function mE(o,a,d){var g=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:P,key:g==null?null:""+g,children:o,containerInfo:a,implementation:d}}function Ib(o){if(!o)return Fs;o=o._reactInternals;e:{if(Or(o)!==o||o.tag!==1)throw Error(n(170));var a=o;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(Yn(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(a!==null);throw Error(n(171))}if(o.tag===1){var d=o.type;if(Yn(d))return cy(o,d,a)}return a}function Ob(o,a,d,g,v,S,R,V,q){return o=Yp(d,g,!0,o,v,S,R,V,q),o.context=Ib(null),d=o.current,g=Un(),v=Ks(d),S=ks(g,v),S.callback=a??null,Us(d,S,v),o.current.lanes=v,bo(o,v,g),Qn(o,g),o}function cu(o,a,d,g){var v=a.current,S=Un(),R=Ks(v);return d=Ib(d),a.context===null?a.context=d:a.pendingContext=d,a=ks(S,R),a.payload={element:o},g=g===void 0?null:g,g!==null&&(a.callback=g),o=Us(v,a,R),o!==null&&(Vr(o,v,R,S),zc(o,v,R)),R}function uu(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return o.child.stateNode;default:return o.child.stateNode}}function _b(o,a){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var d=o.retryLane;o.retryLane=d!==0&&d<a?d:a}}function Jp(o,a){_b(o,a),(o=o.alternate)&&_b(o,a)}function hE(){return null}var Mb=typeof reportError=="function"?reportError:function(o){console.error(o)};function Xp(o){this._internalRoot=o}du.prototype.render=Xp.prototype.render=function(o){var a=this._internalRoot;if(a===null)throw Error(n(409));cu(o,a,null,null)},du.prototype.unmount=Xp.prototype.unmount=function(){var o=this._internalRoot;if(o!==null){this._internalRoot=null;var a=o.containerInfo;Po(function(){cu(null,o,null,null)}),a[ys]=null}};function du(o){this._internalRoot=o}du.prototype.unstable_scheduleHydration=function(o){if(o){var a=he();o={blockedOn:null,target:o,priority:a};for(var d=0;d<_r.length&&a!==0&&a<_r[d].priority;d++);_r.splice(d,0,o),d===0&&Sx(o)}};function Qp(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11)}function fu(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11&&(o.nodeType!==8||o.nodeValue!==" react-mount-point-unstable "))}function Fb(){}function gE(o,a,d,g,v){if(v){if(typeof g=="function"){var S=g;g=function(){var ce=uu(R);S.call(ce)}}var R=Ob(a,g,o,0,null,!1,!1,"",Fb);return o._reactRootContainer=R,o[ys]=R.current,Ha(o.nodeType===8?o.parentNode:o),Po(),R}for(;v=o.lastChild;)o.removeChild(v);if(typeof g=="function"){var V=g;g=function(){var ce=uu(q);V.call(ce)}}var q=Yp(o,0,!1,null,null,!1,!1,"",Fb);return o._reactRootContainer=q,o[ys]=q.current,Ha(o.nodeType===8?o.parentNode:o),Po(function(){cu(a,q,d,g)}),q}function pu(o,a,d,g,v){var S=d._reactRootContainer;if(S){var R=S;if(typeof v=="function"){var V=v;v=function(){var q=uu(R);V.call(q)}}cu(a,R,o,v)}else R=gE(d,a,o,v,g);return uu(R)}Xr=function(o){switch(o.tag){case 3:var a=o.stateNode;if(a.current.memoizedState.isDehydrated){var d=xs(a.pendingLanes);d!==0&&($a(a,d|1),Qn(a,Pt()),(pt&6)===0&&(ki=Pt()+500,zs()))}break;case 13:Po(function(){var g=js(o,1);if(g!==null){var v=Un();Vr(g,o,1,v)}}),Jp(o,1)}},z=function(o){if(o.tag===13){var a=js(o,134217728);if(a!==null){var d=Un();Vr(a,o,134217728,d)}Jp(o,134217728)}},oe=function(o){if(o.tag===13){var a=Ks(o),d=js(o,a);if(d!==null){var g=Un();Vr(d,o,a,g)}Jp(o,a)}},he=function(){return vt},Ae=function(o,a){var d=vt;try{return vt=o,a()}finally{vt=d}},lr=function(o,a,d){switch(a){case"input":if(Q(o,d),a=d.name,d.type==="radio"&&a!=null){for(d=o;d.parentNode;)d=d.parentNode;for(d=d.querySelectorAll("input[name="+JSON.stringify(""+a)+'][type="radio"]'),a=0;a<d.length;a++){var g=d[a];if(g!==o&&g.form===o.form){var v=Rc(g);if(!v)throw Error(n(90));Ve(g),Q(g,v)}}}break;case"textarea":Ht(o,d);break;case"select":a=d.value,a!=null&&et(o,!!d.multiple,a,!1)}},Kt=Vp,nn=Po;var xE={usingClientEntryPoint:!1,Events:[qa,ui,Rc,Nt,Rn,Vp]},al={findFiberByHostInstance:wo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},yE={bundleType:al.bundleType,version:al.version,rendererPackageName:al.rendererPackageName,rendererConfig:al.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:T.ReactCurrentDispatcher,findHostInstanceByFiber:function(o){return o=Xo(o),o===null?null:o.stateNode},findFiberByHostInstance:al.findFiberByHostInstance||hE,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 mu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!mu.isDisabled&&mu.supportsFiber)try{ti=mu.inject(yE),br=mu}catch{}}return Zn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=xE,Zn.createPortal=function(o,a){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Qp(a))throw Error(n(200));return mE(o,a,null,d)},Zn.createRoot=function(o,a){if(!Qp(o))throw Error(n(299));var d=!1,g="",v=Mb;return a!=null&&(a.unstable_strictMode===!0&&(d=!0),a.identifierPrefix!==void 0&&(g=a.identifierPrefix),a.onRecoverableError!==void 0&&(v=a.onRecoverableError)),a=Yp(o,1,!1,null,null,d,!1,g,v),o[ys]=a.current,Ha(o.nodeType===8?o.parentNode:o),new Xp(a)},Zn.findDOMNode=function(o){if(o==null)return null;if(o.nodeType===1)return o;var a=o._reactInternals;if(a===void 0)throw typeof o.render=="function"?Error(n(188)):(o=Object.keys(o).join(","),Error(n(268,o)));return o=Xo(a),o=o===null?null:o.stateNode,o},Zn.flushSync=function(o){return Po(o)},Zn.hydrate=function(o,a,d){if(!fu(a))throw Error(n(200));return pu(null,o,a,!0,d)},Zn.hydrateRoot=function(o,a,d){if(!Qp(o))throw Error(n(405));var g=d!=null&&d.hydratedSources||null,v=!1,S="",R=Mb;if(d!=null&&(d.unstable_strictMode===!0&&(v=!0),d.identifierPrefix!==void 0&&(S=d.identifierPrefix),d.onRecoverableError!==void 0&&(R=d.onRecoverableError)),a=Ob(a,null,o,1,d??null,v,!1,S,R),o[ys]=a.current,Ha(o),g)for(o=0;o<g.length;o++)d=g[o],v=d._getVersion,v=v(d._source),a.mutableSourceEagerHydrationData==null?a.mutableSourceEagerHydrationData=[d,v]:a.mutableSourceEagerHydrationData.push(d,v);return new du(a)},Zn.render=function(o,a,d){if(!fu(a))throw Error(n(200));return pu(null,o,a,!1,d)},Zn.unmountComponentAtNode=function(o){if(!fu(o))throw Error(n(40));return o._reactRootContainer?(Po(function(){pu(null,null,o,!1,function(){o._reactRootContainer=null,o[ys]=null})}),!0):!1},Zn.unstable_batchedUpdates=Vp,Zn.unstable_renderSubtreeIntoContainer=function(o,a,d,g){if(!fu(d))throw Error(n(200));if(o==null||o._reactInternals===void 0)throw Error(n(38));return pu(o,a,d,!1,g)},Zn.version="18.3.1-next-f1338f8080-20240426",Zn}var Gb;function Ej(){if(Gb)return tm.exports;Gb=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),tm.exports=TE(),tm.exports}var Yb;function PE(){if(Yb)return hu;Yb=1;var e=Ej();return hu.createRoot=e.createRoot,hu.hydrateRoot=e.hydrateRoot,hu}var RE=PE();/**
|
|
41
|
+
* react-router v7.13.1
|
|
42
|
+
*
|
|
43
|
+
* Copyright (c) Remix Software Inc.
|
|
44
|
+
*
|
|
45
|
+
* This source code is licensed under the MIT license found in the
|
|
46
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
47
|
+
*
|
|
48
|
+
* @license MIT
|
|
49
|
+
*/var Jb="popstate";function Xb(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function AE(e={}){function t(s,i){var m;let l=(m=i.state)==null?void 0:m.masked,{pathname:c,search:u,hash:p}=l||s.location;return th("",{pathname:c,search:u,hash:p},i.state&&i.state.usr||null,i.state&&i.state.key||"default",l?{pathname:s.location.pathname,search:s.location.search,hash:s.location.hash}:void 0)}function n(s,i){return typeof i=="string"?i:$l(i)}return $E(t,n,null,e)}function Yt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Hr(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function DE(){return Math.random().toString(36).substring(2,10)}function Qb(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.unstable_mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function th(e,t,n=null,s,i){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?oa(t):t,state:n,key:t&&t.key||s||DE(),unstable_mask:i}}function $l({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function oa(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let s=e.indexOf("?");s>=0&&(t.search=e.substring(s),e=e.substring(0,s)),e&&(t.pathname=e)}return t}function $E(e,t,n,s={}){let{window:i=document.defaultView,v5Compat:l=!1}=s,c=i.history,u="POP",p=null,m=h();m==null&&(m=0,c.replaceState({...c.state,idx:m},""));function h(){return(c.state||{idx:null}).idx}function x(){u="POP";let w=h(),j=w==null?null:w-m;m=w,p&&p({action:u,location:k.location,delta:j})}function y(w,j){u="PUSH";let C=Xb(w)?w:th(k.location,w,j);m=h()+1;let N=Qb(C,m),T=k.createHref(C.unstable_mask||C);try{c.pushState(N,"",T)}catch(L){if(L instanceof DOMException&&L.name==="DataCloneError")throw L;i.location.assign(T)}l&&p&&p({action:u,location:k.location,delta:1})}function b(w,j){u="REPLACE";let C=Xb(w)?w:th(k.location,w,j);m=h();let N=Qb(C,m),T=k.createHref(C.unstable_mask||C);c.replaceState(N,"",T),l&&p&&p({action:u,location:k.location,delta:0})}function E(w){return LE(w)}let k={get action(){return u},get location(){return e(i,c)},listen(w){if(p)throw new Error("A history only accepts one active listener");return i.addEventListener(Jb,x),p=w,()=>{i.removeEventListener(Jb,x),p=null}},createHref(w){return t(i,w)},createURL:E,encodeLocation(w){let j=E(w);return{pathname:j.pathname,search:j.search,hash:j.hash}},push:y,replace:b,go(w){return c.go(w)}};return k}function LE(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),Yt(n,"No window.location.(origin|href) available to create URL");let s=typeof e=="string"?e:$l(e);return s=s.replace(/ $/,"%20"),!t&&s.startsWith("//")&&(s=n+s),new URL(s,n)}function Tj(e,t,n="/"){return IE(e,t,n,!1)}function IE(e,t,n,s){let i=typeof t=="string"?oa(t):t,l=Ts(i.pathname||"/",n);if(l==null)return null;let c=Pj(e);OE(c);let u=null;for(let p=0;u==null&&p<c.length;++p){let m=qE(l);u=WE(c[p],m,s)}return u}function Pj(e,t=[],n=[],s="",i=!1){let l=(c,u,p=i,m)=>{let h={relativePath:m===void 0?c.path||"":m,caseSensitive:c.caseSensitive===!0,childrenIndex:u,route:c};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(s)&&p)return;Yt(h.relativePath.startsWith(s),`Absolute route path "${h.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(s.length)}let x=as([s,h.relativePath]),y=n.concat(h);c.children&&c.children.length>0&&(Yt(c.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${x}".`),Pj(c.children,t,y,x,p)),!(c.path==null&&!c.index)&&t.push({path:x,score:VE(x,c.index),routesMeta:y})};return e.forEach((c,u)=>{var p;if(c.path===""||!((p=c.path)!=null&&p.includes("?")))l(c,u);else for(let m of Rj(c.path))l(c,u,!0,m)}),t}function Rj(e){let t=e.split("/");if(t.length===0)return[];let[n,...s]=t,i=n.endsWith("?"),l=n.replace(/\?$/,"");if(s.length===0)return i?[l,""]:[l];let c=Rj(s.join("/")),u=[];return u.push(...c.map(p=>p===""?l:[l,p].join("/"))),i&&u.push(...c),u.map(p=>e.startsWith("/")&&p===""?"/":p)}function OE(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:HE(t.routesMeta.map(s=>s.childrenIndex),n.routesMeta.map(s=>s.childrenIndex)))}var _E=/^:[\w-]+$/,ME=3,FE=2,zE=1,BE=10,UE=-2,Zb=e=>e==="*";function VE(e,t){let n=e.split("/"),s=n.length;return n.some(Zb)&&(s+=UE),t&&(s+=FE),n.filter(i=>!Zb(i)).reduce((i,l)=>i+(_E.test(l)?ME:l===""?zE:BE),s)}function HE(e,t){return e.length===t.length&&e.slice(0,-1).every((s,i)=>s===t[i])?e[e.length-1]-t[t.length-1]:0}function WE(e,t,n=!1){let{routesMeta:s}=e,i={},l="/",c=[];for(let u=0;u<s.length;++u){let p=s[u],m=u===s.length-1,h=l==="/"?t:t.slice(l.length)||"/",x=qu({path:p.relativePath,caseSensitive:p.caseSensitive,end:m},h),y=p.route;if(!x&&m&&n&&!s[s.length-1].route.index&&(x=qu({path:p.relativePath,caseSensitive:p.caseSensitive,end:!1},h)),!x)return null;Object.assign(i,x.params),c.push({params:i,pathname:as([l,x.pathname]),pathnameBase:XE(as([l,x.pathnameBase])),route:y}),x.pathnameBase!=="/"&&(l=as([l,x.pathnameBase]))}return c}function qu(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,s]=KE(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let l=i[0],c=l.replace(/(.)\/+$/,"$1"),u=i.slice(1);return{params:s.reduce((m,{paramName:h,isOptional:x},y)=>{if(h==="*"){let E=u[y]||"";c=l.slice(0,l.length-E.length).replace(/(.)\/+$/,"$1")}const b=u[y];return x&&!b?m[h]=void 0:m[h]=(b||"").replace(/%2F/g,"/"),m},{}),pathname:l,pathnameBase:c,pattern:e}}function KE(e,t=!1,n=!0){Hr(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let s=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,u,p,m,h)=>{if(s.push({paramName:u,isOptional:p!=null}),p){let x=h.charAt(m+c.length);return x&&x!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(s.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),s]}function qE(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Hr(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Ts(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,s=e.charAt(n);return s&&s!=="/"?null:e.slice(n)||"/"}var GE=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function YE(e,t="/"){let{pathname:n,search:s="",hash:i=""}=typeof e=="string"?oa(e):e,l;return n?(n=n.replace(/\/\/+/g,"/"),n.startsWith("/")?l=ev(n.substring(1),"/"):l=ev(n,t)):l=t,{pathname:l,search:QE(s),hash:ZE(i)}}function ev(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function sm(e,t,n,s){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(s)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function JE(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Aj(e){let t=JE(e);return t.map((n,s)=>s===t.length-1?n.pathname:n.pathnameBase)}function Vh(e,t,n,s=!1){let i;typeof e=="string"?i=oa(e):(i={...e},Yt(!i.pathname||!i.pathname.includes("?"),sm("?","pathname","search",i)),Yt(!i.pathname||!i.pathname.includes("#"),sm("#","pathname","hash",i)),Yt(!i.search||!i.search.includes("#"),sm("#","search","hash",i)));let l=e===""||i.pathname==="",c=l?"/":i.pathname,u;if(c==null)u=n;else{let x=t.length-1;if(!s&&c.startsWith("..")){let y=c.split("/");for(;y[0]==="..";)y.shift(),x-=1;i.pathname=y.join("/")}u=x>=0?t[x]:"/"}let p=YE(i,u),m=c&&c!=="/"&&c.endsWith("/"),h=(l||c===".")&&n.endsWith("/");return!p.pathname.endsWith("/")&&(m||h)&&(p.pathname+="/"),p}var as=e=>e.join("/").replace(/\/\/+/g,"/"),XE=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),QE=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,ZE=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,e2=class{constructor(e,t,n,s=!1){this.status=e,this.statusText=t||"",this.internal=s,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function t2(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function n2(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Dj=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function $j(e,t){let n=e;if(typeof n!="string"||!GE.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let s=n,i=!1;if(Dj)try{let l=new URL(window.location.href),c=n.startsWith("//")?new URL(l.protocol+n):new URL(n),u=Ts(c.pathname,t);c.origin===l.origin&&u!=null?n=u+c.search+c.hash:i=!0}catch{Hr(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:s,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Lj=["POST","PUT","PATCH","DELETE"];new Set(Lj);var r2=["GET",...Lj];new Set(r2);var ia=f.createContext(null);ia.displayName="DataRouter";var kd=f.createContext(null);kd.displayName="DataRouterState";var s2=f.createContext(!1),Ij=f.createContext({isTransitioning:!1});Ij.displayName="ViewTransition";var o2=f.createContext(new Map);o2.displayName="Fetchers";var i2=f.createContext(null);i2.displayName="Await";var Lr=f.createContext(null);Lr.displayName="Navigation";var Yl=f.createContext(null);Yl.displayName="Location";var Gr=f.createContext({outlet:null,matches:[],isDataRoute:!1});Gr.displayName="Route";var Hh=f.createContext(null);Hh.displayName="RouteError";var Oj="REACT_ROUTER_ERROR",a2="REDIRECT",l2="ROUTE_ERROR_RESPONSE";function c2(e){if(e.startsWith(`${Oj}:${a2}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function u2(e){if(e.startsWith(`${Oj}:${l2}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new e2(t.status,t.statusText,t.data)}catch{}}function d2(e,{relative:t}={}){Yt(Jl(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:s}=f.useContext(Lr),{hash:i,pathname:l,search:c}=Xl(e,{relative:t}),u=l;return n!=="/"&&(u=l==="/"?n:as([n,l])),s.createHref({pathname:u,search:c,hash:i})}function Jl(){return f.useContext(Yl)!=null}function Vn(){return Yt(Jl(),"useLocation() may be used only in the context of a <Router> component."),f.useContext(Yl).location}var _j="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Mj(e){f.useContext(Lr).static||f.useLayoutEffect(e)}function $t(){let{isDataRoute:e}=f.useContext(Gr);return e?C2():f2()}function f2(){Yt(Jl(),"useNavigate() may be used only in the context of a <Router> component.");let e=f.useContext(ia),{basename:t,navigator:n}=f.useContext(Lr),{matches:s}=f.useContext(Gr),{pathname:i}=Vn(),l=JSON.stringify(Aj(s)),c=f.useRef(!1);return Mj(()=>{c.current=!0}),f.useCallback((p,m={})=>{if(Hr(c.current,_j),!c.current)return;if(typeof p=="number"){n.go(p);return}let h=Vh(p,JSON.parse(l),i,m.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:as([t,h.pathname])),(m.replace?n.replace:n.push)(h,m.state,m)},[t,n,l,i,e])}var p2=f.createContext(null);function m2(e){let t=f.useContext(Gr).outlet;return f.useMemo(()=>t&&f.createElement(p2.Provider,{value:e},t),[t,e])}function Lt(){let{matches:e}=f.useContext(Gr),t=e[e.length-1];return t?t.params:{}}function Xl(e,{relative:t}={}){let{matches:n}=f.useContext(Gr),{pathname:s}=Vn(),i=JSON.stringify(Aj(n));return f.useMemo(()=>Vh(e,JSON.parse(i),s,t==="path"),[e,i,s,t])}function h2(e,t){return Fj(e,t)}function Fj(e,t,n){var w;Yt(Jl(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=f.useContext(Lr),{matches:i}=f.useContext(Gr),l=i[i.length-1],c=l?l.params:{},u=l?l.pathname:"/",p=l?l.pathnameBase:"/",m=l&&l.route;{let j=m&&m.path||"";Bj(u,!m||j.endsWith("*")||j.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${j}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
50
|
+
|
|
51
|
+
Please change the parent <Route path="${j}"> to <Route path="${j==="/"?"*":`${j}/*`}">.`)}let h=Vn(),x;if(t){let j=typeof t=="string"?oa(t):t;Yt(p==="/"||((w=j.pathname)==null?void 0:w.startsWith(p)),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${p}" but pathname "${j.pathname}" was given in the \`location\` prop.`),x=j}else x=h;let y=x.pathname||"/",b=y;if(p!=="/"){let j=p.replace(/^\//,"").split("/");b="/"+y.replace(/^\//,"").split("/").slice(j.length).join("/")}let E=Tj(e,{pathname:b});Hr(m||E!=null,`No routes matched location "${x.pathname}${x.search}${x.hash}" `),Hr(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.length-1].route.lazy!==void 0,`Matched leaf route at location "${x.pathname}${x.search}${x.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let k=v2(E&&E.map(j=>Object.assign({},j,{params:Object.assign({},c,j.params),pathname:as([p,s.encodeLocation?s.encodeLocation(j.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:j.pathname]),pathnameBase:j.pathnameBase==="/"?p:as([p,s.encodeLocation?s.encodeLocation(j.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:j.pathnameBase])})),i,n);return t&&k?f.createElement(Yl.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...x},navigationType:"POP"}},k):k}function g2(){let e=N2(),t=t2(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:s},l={padding:"2px 4px",backgroundColor:s},c=null;return console.error("Error handled by React Router default ErrorBoundary:",e),c=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:l},"ErrorBoundary")," or"," ",f.createElement("code",{style:l},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),n?f.createElement("pre",{style:i},n):null,c)}var x2=f.createElement(g2,null),zj=class extends f.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=u2(e.digest);n&&(e=n)}let t=e!==void 0?f.createElement(Gr.Provider,{value:this.props.routeContext},f.createElement(Hh.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?f.createElement(y2,{error:e},t):t}};zj.contextType=s2;var om=new WeakMap;function y2({children:e,error:t}){let{basename:n}=f.useContext(Lr);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let s=c2(t.digest);if(s){let i=om.get(t);if(i)throw i;let l=$j(s.location,n);if(Dj&&!om.get(t))if(l.isExternal||s.reloadDocument)window.location.href=l.absoluteURL||l.to;else{const c=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(l.to,{replace:s.replace}));throw om.set(t,c),c}return f.createElement("meta",{httpEquiv:"refresh",content:`0;url=${l.absoluteURL||l.to}`})}}return e}function b2({routeContext:e,match:t,children:n}){let s=f.useContext(ia);return s&&s.static&&s.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=t.route.id),f.createElement(Gr.Provider,{value:e},n)}function v2(e,t=[],n){let s=n==null?void 0:n.state;if(e==null){if(!s)return null;if(s.errors)e=s.matches;else if(t.length===0&&!s.initialized&&s.matches.length>0)e=s.matches;else return null}let i=e,l=s==null?void 0:s.errors;if(l!=null){let h=i.findIndex(x=>x.route.id&&(l==null?void 0:l[x.route.id])!==void 0);Yt(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(l).join(",")}`),i=i.slice(0,Math.min(i.length,h+1))}let c=!1,u=-1;if(n&&s){c=s.renderFallback;for(let h=0;h<i.length;h++){let x=i[h];if((x.route.HydrateFallback||x.route.hydrateFallbackElement)&&(u=h),x.route.id){let{loaderData:y,errors:b}=s,E=x.route.loader&&!y.hasOwnProperty(x.route.id)&&(!b||b[x.route.id]===void 0);if(x.route.lazy||E){n.isStatic&&(c=!0),u>=0?i=i.slice(0,u+1):i=[i[0]];break}}}}let p=n==null?void 0:n.onError,m=s&&p?(h,x)=>{var y,b;p(h,{location:s.location,params:((b=(y=s.matches)==null?void 0:y[0])==null?void 0:b.params)??{},unstable_pattern:n2(s.matches),errorInfo:x})}:void 0;return i.reduceRight((h,x,y)=>{let b,E=!1,k=null,w=null;s&&(b=l&&x.route.id?l[x.route.id]:void 0,k=x.route.errorElement||x2,c&&(u<0&&y===0?(Bj("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,w=null):u===y&&(E=!0,w=x.route.hydrateFallbackElement||null)));let j=t.concat(i.slice(0,y+1)),C=()=>{let N;return b?N=k:E?N=w:x.route.Component?N=f.createElement(x.route.Component,null):x.route.element?N=x.route.element:N=h,f.createElement(b2,{match:x,routeContext:{outlet:h,matches:j,isDataRoute:s!=null},children:N})};return s&&(x.route.ErrorBoundary||x.route.errorElement||y===0)?f.createElement(zj,{location:s.location,revalidation:s.revalidation,component:k,error:b,children:C(),routeContext:{outlet:null,matches:j,isDataRoute:!0},onError:m}):C()},null)}function Wh(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function w2(e){let t=f.useContext(ia);return Yt(t,Wh(e)),t}function j2(e){let t=f.useContext(kd);return Yt(t,Wh(e)),t}function k2(e){let t=f.useContext(Gr);return Yt(t,Wh(e)),t}function Kh(e){let t=k2(e),n=t.matches[t.matches.length-1];return Yt(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function S2(){return Kh("useRouteId")}function N2(){var s;let e=f.useContext(Hh),t=j2("useRouteError"),n=Kh("useRouteError");return e!==void 0?e:(s=t.errors)==null?void 0:s[n]}function C2(){let{router:e}=w2("useNavigate"),t=Kh("useNavigate"),n=f.useRef(!1);return Mj(()=>{n.current=!0}),f.useCallback(async(i,l={})=>{Hr(n.current,_j),n.current&&(typeof i=="number"?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...l}))},[e,t])}var tv={};function Bj(e,t,n){!t&&!tv[e]&&(tv[e]=!0,Hr(!1,n))}f.memo(E2);function E2({routes:e,future:t,state:n,isStatic:s,onError:i}){return Fj(e,void 0,{state:n,isStatic:s,onError:i})}function T2(e){return m2(e.context)}function Ue(e){Yt(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function P2({basename:e="/",children:t=null,location:n,navigationType:s="POP",navigator:i,static:l=!1,unstable_useTransitions:c}){Yt(!Jl(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let u=e.replace(/^\/*/,"/"),p=f.useMemo(()=>({basename:u,navigator:i,static:l,unstable_useTransitions:c,future:{}}),[u,i,l,c]);typeof n=="string"&&(n=oa(n));let{pathname:m="/",search:h="",hash:x="",state:y=null,key:b="default",unstable_mask:E}=n,k=f.useMemo(()=>{let w=Ts(m,u);return w==null?null:{location:{pathname:w,search:h,hash:x,state:y,key:b,unstable_mask:E},navigationType:s}},[u,m,h,x,y,b,s,E]);return Hr(k!=null,`<Router basename="${u}"> is not able to match the URL "${m}${h}${x}" because it does not start with the basename, so the <Router> won't render anything.`),k==null?null:f.createElement(Lr.Provider,{value:p},f.createElement(Yl.Provider,{children:t,value:k}))}function R2({children:e,location:t}){return h2(nh(e),t)}function nh(e,t=[]){let n=[];return f.Children.forEach(e,(s,i)=>{if(!f.isValidElement(s))return;let l=[...t,i];if(s.type===f.Fragment){n.push.apply(n,nh(s.props.children,l));return}Yt(s.type===Ue,`[${typeof s.type=="string"?s.type:s.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),Yt(!s.props.index||!s.props.children,"An index route cannot have child routes.");let c={id:s.props.id||l.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(c.children=nh(s.props.children,l)),n.push(c)}),n}var Lu="get",Iu="application/x-www-form-urlencoded";function Sd(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function A2(e){return Sd(e)&&e.tagName.toLowerCase()==="button"}function D2(e){return Sd(e)&&e.tagName.toLowerCase()==="form"}function $2(e){return Sd(e)&&e.tagName.toLowerCase()==="input"}function L2(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function I2(e,t){return e.button===0&&(!t||t==="_self")&&!L2(e)}function rh(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let s=e[n];return t.concat(Array.isArray(s)?s.map(i=>[n,i]):[[n,s]])},[]))}function O2(e,t){let n=rh(e);return t&&t.forEach((s,i)=>{n.has(i)||t.getAll(i).forEach(l=>{n.append(i,l)})}),n}var gu=null;function _2(){if(gu===null)try{new FormData(document.createElement("form"),0),gu=!1}catch{gu=!0}return gu}var M2=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function im(e){return e!=null&&!M2.has(e)?(Hr(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Iu}"`),null):e}function F2(e,t){let n,s,i,l,c;if(D2(e)){let u=e.getAttribute("action");s=u?Ts(u,t):null,n=e.getAttribute("method")||Lu,i=im(e.getAttribute("enctype"))||Iu,l=new FormData(e)}else if(A2(e)||$2(e)&&(e.type==="submit"||e.type==="image")){let u=e.form;if(u==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let p=e.getAttribute("formaction")||u.getAttribute("action");if(s=p?Ts(p,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||Lu,i=im(e.getAttribute("formenctype"))||im(u.getAttribute("enctype"))||Iu,l=new FormData(u,e),!_2()){let{name:m,type:h,value:x}=e;if(h==="image"){let y=m?`${m}.`:"";l.append(`${y}x`,"0"),l.append(`${y}y`,"0")}else m&&l.append(m,x)}}else{if(Sd(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Lu,s=null,i=Iu,c=e}return l&&i==="text/plain"&&(c=l,l=void 0),{action:s,method:n.toLowerCase(),encType:i,formData:l,body:c}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function qh(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function z2(e,t,n,s){let i=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n?i.pathname.endsWith("/")?i.pathname=`${i.pathname}_.${s}`:i.pathname=`${i.pathname}.${s}`:i.pathname==="/"?i.pathname=`_root.${s}`:t&&Ts(i.pathname,t)==="/"?i.pathname=`${t.replace(/\/$/,"")}/_root.${s}`:i.pathname=`${i.pathname.replace(/\/$/,"")}.${s}`,i}async function B2(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(n){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function U2(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function V2(e,t,n){let s=await Promise.all(e.map(async i=>{let l=t.routes[i.route.id];if(l){let c=await B2(l,n);return c.links?c.links():[]}return[]}));return q2(s.flat(1).filter(U2).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function nv(e,t,n,s,i,l){let c=(p,m)=>n[m]?p.route.id!==n[m].route.id:!0,u=(p,m)=>{var h;return n[m].pathname!==p.pathname||((h=n[m].route.path)==null?void 0:h.endsWith("*"))&&n[m].params["*"]!==p.params["*"]};return l==="assets"?t.filter((p,m)=>c(p,m)||u(p,m)):l==="data"?t.filter((p,m)=>{var x;let h=s.routes[p.route.id];if(!h||!h.hasLoader)return!1;if(c(p,m)||u(p,m))return!0;if(p.route.shouldRevalidate){let y=p.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:((x=n[0])==null?void 0:x.params)||{},nextUrl:new URL(e,window.origin),nextParams:p.params,defaultShouldRevalidate:!0});if(typeof y=="boolean")return y}return!0}):[]}function H2(e,t,{includeHydrateFallback:n}={}){return W2(e.map(s=>{let i=t.routes[s.route.id];if(!i)return[];let l=[i.module];return i.clientActionModule&&(l=l.concat(i.clientActionModule)),i.clientLoaderModule&&(l=l.concat(i.clientLoaderModule)),n&&i.hydrateFallbackModule&&(l=l.concat(i.hydrateFallbackModule)),i.imports&&(l=l.concat(i.imports)),l}).flat(1))}function W2(e){return[...new Set(e)]}function K2(e){let t={},n=Object.keys(e).sort();for(let s of n)t[s]=e[s];return t}function q2(e,t){let n=new Set;return new Set(t),e.reduce((s,i)=>{let l=JSON.stringify(K2(i));return n.has(l)||(n.add(l),s.push({key:l,link:i})),s},[])}function Uj(){let e=f.useContext(ia);return qh(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function G2(){let e=f.useContext(kd);return qh(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Gh=f.createContext(void 0);Gh.displayName="FrameworkContext";function Vj(){let e=f.useContext(Gh);return qh(e,"You must render this element inside a <HydratedRouter> element"),e}function Y2(e,t){let n=f.useContext(Gh),[s,i]=f.useState(!1),[l,c]=f.useState(!1),{onFocus:u,onBlur:p,onMouseEnter:m,onMouseLeave:h,onTouchStart:x}=t,y=f.useRef(null);f.useEffect(()=>{if(e==="render"&&c(!0),e==="viewport"){let k=j=>{j.forEach(C=>{c(C.isIntersecting)})},w=new IntersectionObserver(k,{threshold:.5});return y.current&&w.observe(y.current),()=>{w.disconnect()}}},[e]),f.useEffect(()=>{if(s){let k=setTimeout(()=>{c(!0)},100);return()=>{clearTimeout(k)}}},[s]);let b=()=>{i(!0)},E=()=>{i(!1),c(!1)};return n?e!=="intent"?[l,y,{}]:[l,y,{onFocus:cl(u,b),onBlur:cl(p,E),onMouseEnter:cl(m,b),onMouseLeave:cl(h,E),onTouchStart:cl(x,b)}]:[!1,y,{}]}function cl(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function J2({page:e,...t}){let{router:n}=Uj(),s=f.useMemo(()=>Tj(n.routes,e,n.basename),[n.routes,e,n.basename]);return s?f.createElement(Q2,{page:e,matches:s,...t}):null}function X2(e){let{manifest:t,routeModules:n}=Vj(),[s,i]=f.useState([]);return f.useEffect(()=>{let l=!1;return V2(e,t,n).then(c=>{l||i(c)}),()=>{l=!0}},[e,t,n]),s}function Q2({page:e,matches:t,...n}){let s=Vn(),{future:i,manifest:l,routeModules:c}=Vj(),{basename:u}=Uj(),{loaderData:p,matches:m}=G2(),h=f.useMemo(()=>nv(e,t,m,l,s,"data"),[e,t,m,l,s]),x=f.useMemo(()=>nv(e,t,m,l,s,"assets"),[e,t,m,l,s]),y=f.useMemo(()=>{if(e===s.pathname+s.search+s.hash)return[];let k=new Set,w=!1;if(t.forEach(C=>{var T;let N=l.routes[C.route.id];!N||!N.hasLoader||(!h.some(L=>L.route.id===C.route.id)&&C.route.id in p&&((T=c[C.route.id])!=null&&T.shouldRevalidate)||N.hasClientLoader?w=!0:k.add(C.route.id))}),k.size===0)return[];let j=z2(e,u,i.unstable_trailingSlashAwareDataRequests,"data");return w&&k.size>0&&j.searchParams.set("_routes",t.filter(C=>k.has(C.route.id)).map(C=>C.route.id).join(",")),[j.pathname+j.search]},[u,i.unstable_trailingSlashAwareDataRequests,p,s,l,h,t,e,c]),b=f.useMemo(()=>H2(x,l),[x,l]),E=X2(x);return f.createElement(f.Fragment,null,y.map(k=>f.createElement("link",{key:k,rel:"prefetch",as:"fetch",href:k,...n})),b.map(k=>f.createElement("link",{key:k,rel:"modulepreload",href:k,...n})),E.map(({key:k,link:w})=>f.createElement("link",{key:k,nonce:n.nonce,...w,crossOrigin:w.crossOrigin??n.crossOrigin})))}function Z2(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var eT=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{eT&&(window.__reactRouterVersion="7.13.1")}catch{}function tT({basename:e,children:t,unstable_useTransitions:n,window:s}){let i=f.useRef();i.current==null&&(i.current=AE({window:s,v5Compat:!0}));let l=i.current,[c,u]=f.useState({action:l.action,location:l.location}),p=f.useCallback(m=>{n===!1?u(m):f.startTransition(()=>u(m))},[n]);return f.useLayoutEffect(()=>l.listen(p),[l,p]),f.createElement(P2,{basename:e,children:t,location:c.location,navigationType:c.action,navigator:l,unstable_useTransitions:n})}var Hj=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ce=f.forwardRef(function({onClick:t,discover:n="render",prefetch:s="none",relative:i,reloadDocument:l,replace:c,unstable_mask:u,state:p,target:m,to:h,preventScrollReset:x,viewTransition:y,unstable_defaultShouldRevalidate:b,...E},k){let{basename:w,navigator:j,unstable_useTransitions:C}=f.useContext(Lr),N=typeof h=="string"&&Hj.test(h),T=$j(h,w);h=T.to;let L=d2(h,{relative:i}),P=Vn(),$=null;if(u){let K=Vh(u,[],P.unstable_mask?P.unstable_mask.pathname:"/",!0);w!=="/"&&(K.pathname=K.pathname==="/"?w:as([w,K.pathname])),$=j.createHref(K)}let[F,X,te]=Y2(s,E),D=oT(h,{replace:c,unstable_mask:u,state:p,target:m,preventScrollReset:x,relative:i,viewTransition:y,unstable_defaultShouldRevalidate:b,unstable_useTransitions:C});function W(K){t&&t(K),K.defaultPrevented||D(K)}let Z=!(T.isExternal||l),M=f.createElement("a",{...E,...te,href:(Z?$:void 0)||T.absoluteURL||L,onClick:Z?W:t,ref:Z2(k,X),target:m,"data-discover":!N&&n==="render"?"true":void 0});return F&&!N?f.createElement(f.Fragment,null,M,f.createElement(J2,{page:L})):M});Ce.displayName="Link";var nT=f.forwardRef(function({"aria-current":t="page",caseSensitive:n=!1,className:s="",end:i=!1,style:l,to:c,viewTransition:u,children:p,...m},h){let x=Xl(c,{relative:m.relative}),y=Vn(),b=f.useContext(kd),{navigator:E,basename:k}=f.useContext(Lr),w=b!=null&&uT(x)&&u===!0,j=E.encodeLocation?E.encodeLocation(x).pathname:x.pathname,C=y.pathname,N=b&&b.navigation&&b.navigation.location?b.navigation.location.pathname:null;n||(C=C.toLowerCase(),N=N?N.toLowerCase():null,j=j.toLowerCase()),N&&k&&(N=Ts(N,k)||N);const T=j!=="/"&&j.endsWith("/")?j.length-1:j.length;let L=C===j||!i&&C.startsWith(j)&&C.charAt(T)==="/",P=N!=null&&(N===j||!i&&N.startsWith(j)&&N.charAt(j.length)==="/"),$={isActive:L,isPending:P,isTransitioning:w},F=L?t:void 0,X;typeof s=="function"?X=s($):X=[s,L?"active":null,P?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let te=typeof l=="function"?l($):l;return f.createElement(Ce,{...m,"aria-current":F,className:X,ref:h,style:te,to:c,viewTransition:u},typeof p=="function"?p($):p)});nT.displayName="NavLink";var rT=f.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:s,replace:i,state:l,method:c=Lu,action:u,onSubmit:p,relative:m,preventScrollReset:h,viewTransition:x,unstable_defaultShouldRevalidate:y,...b},E)=>{let{unstable_useTransitions:k}=f.useContext(Lr),w=lT(),j=cT(u,{relative:m}),C=c.toLowerCase()==="get"?"get":"post",N=typeof u=="string"&&Hj.test(u),T=L=>{if(p&&p(L),L.defaultPrevented)return;L.preventDefault();let P=L.nativeEvent.submitter,$=(P==null?void 0:P.getAttribute("formmethod"))||c,F=()=>w(P||L.currentTarget,{fetcherKey:t,method:$,navigate:n,replace:i,state:l,relative:m,preventScrollReset:h,viewTransition:x,unstable_defaultShouldRevalidate:y});k&&n!==!1?f.startTransition(()=>F()):F()};return f.createElement("form",{ref:E,method:C,action:j,onSubmit:s?p:T,...b,"data-discover":!N&&e==="render"?"true":void 0})});rT.displayName="Form";function sT(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Wj(e){let t=f.useContext(ia);return Yt(t,sT(e)),t}function oT(e,{target:t,replace:n,unstable_mask:s,state:i,preventScrollReset:l,relative:c,viewTransition:u,unstable_defaultShouldRevalidate:p,unstable_useTransitions:m}={}){let h=$t(),x=Vn(),y=Xl(e,{relative:c});return f.useCallback(b=>{if(I2(b,t)){b.preventDefault();let E=n!==void 0?n:$l(x)===$l(y),k=()=>h(e,{replace:E,unstable_mask:s,state:i,preventScrollReset:l,relative:c,viewTransition:u,unstable_defaultShouldRevalidate:p});m?f.startTransition(()=>k()):k()}},[x,h,y,n,s,i,t,e,l,c,u,p,m])}function ps(e){Hr(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=f.useRef(rh(e)),n=f.useRef(!1),s=Vn(),i=f.useMemo(()=>O2(s.search,n.current?null:t.current),[s.search]),l=$t(),c=f.useCallback((u,p)=>{const m=rh(typeof u=="function"?u(new URLSearchParams(i)):u);n.current=!0,l("?"+m,p)},[l,i]);return[i,c]}var iT=0,aT=()=>`__${String(++iT)}__`;function lT(){let{router:e}=Wj("useSubmit"),{basename:t}=f.useContext(Lr),n=S2(),s=e.fetch,i=e.navigate;return f.useCallback(async(l,c={})=>{let{action:u,method:p,encType:m,formData:h,body:x}=F2(l,t);if(c.navigate===!1){let y=c.fetcherKey||aT();await s(y,n,c.action||u,{unstable_defaultShouldRevalidate:c.unstable_defaultShouldRevalidate,preventScrollReset:c.preventScrollReset,formData:h,body:x,formMethod:c.method||p,formEncType:c.encType||m,flushSync:c.flushSync})}else await i(c.action||u,{unstable_defaultShouldRevalidate:c.unstable_defaultShouldRevalidate,preventScrollReset:c.preventScrollReset,formData:h,body:x,formMethod:c.method||p,formEncType:c.encType||m,replace:c.replace,state:c.state,fromRouteId:n,flushSync:c.flushSync,viewTransition:c.viewTransition})},[s,i,t,n])}function cT(e,{relative:t}={}){let{basename:n}=f.useContext(Lr),s=f.useContext(Gr);Yt(s,"useFormAction must be used inside a RouteContext");let[i]=s.matches.slice(-1),l={...Xl(e||".",{relative:t})},c=Vn();if(e==null){l.search=c.search;let u=new URLSearchParams(l.search),p=u.getAll("index");if(p.some(h=>h==="")){u.delete("index"),p.filter(x=>x).forEach(x=>u.append("index",x));let h=u.toString();l.search=h?`?${h}`:""}}return(!e||e===".")&&i.route.index&&(l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(l.pathname=l.pathname==="/"?n:as([n,l.pathname])),$l(l)}function uT(e,{relative:t}={}){let n=f.useContext(Ij);Yt(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:s}=Wj("useViewTransitionState"),i=Xl(e,{relative:t});if(!n.isTransitioning)return!1;let l=Ts(n.currentLocation.pathname,s)||n.currentLocation.pathname,c=Ts(n.nextLocation.pathname,s)||n.nextLocation.pathname;return qu(i.pathname,c)!=null||qu(i.pathname,l)!=null}var Es=Ej();const dT=jd(Es);/**
|
|
52
|
+
* @license lucide-react v0.460.0 - ISC
|
|
53
|
+
*
|
|
54
|
+
* This source code is licensed under the ISC license.
|
|
55
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
56
|
+
*/const fT=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Kj=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim();/**
|
|
57
|
+
* @license lucide-react v0.460.0 - ISC
|
|
58
|
+
*
|
|
59
|
+
* This source code is licensed under the ISC license.
|
|
60
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
61
|
+
*/var pT={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"};/**
|
|
62
|
+
* @license lucide-react v0.460.0 - ISC
|
|
63
|
+
*
|
|
64
|
+
* This source code is licensed under the ISC license.
|
|
65
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
66
|
+
*/const mT=f.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:i="",children:l,iconNode:c,...u},p)=>f.createElement("svg",{ref:p,...pT,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:Kj("lucide",i),...u},[...c.map(([m,h])=>f.createElement(m,h)),...Array.isArray(l)?l:[l]]));/**
|
|
67
|
+
* @license lucide-react v0.460.0 - ISC
|
|
68
|
+
*
|
|
69
|
+
* This source code is licensed under the ISC license.
|
|
70
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
71
|
+
*/const De=(e,t)=>{const n=f.forwardRef(({className:s,...i},l)=>f.createElement(mT,{ref:l,iconNode:t,className:Kj(`lucide-${fT(e)}`,s),...i}));return n.displayName=`${e}`,n};/**
|
|
72
|
+
* @license lucide-react v0.460.0 - ISC
|
|
73
|
+
*
|
|
74
|
+
* This source code is licensed under the ISC license.
|
|
75
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
76
|
+
*/const Nd=De("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/**
|
|
77
|
+
* @license lucide-react v0.460.0 - ISC
|
|
78
|
+
*
|
|
79
|
+
* This source code is licensed under the ISC license.
|
|
80
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
81
|
+
*/const Gu=De("ArchiveRestore",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h2",key:"tvwodi"}],["path",{d:"M20 8v11a2 2 0 0 1-2 2h-2",key:"1gkqxj"}],["path",{d:"m9 15 3-3 3 3",key:"1pd0qc"}],["path",{d:"M12 12v9",key:"192myk"}]]);/**
|
|
82
|
+
* @license lucide-react v0.460.0 - ISC
|
|
83
|
+
*
|
|
84
|
+
* This source code is licensed under the ISC license.
|
|
85
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
86
|
+
*/const Cd=De("Archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);/**
|
|
87
|
+
* @license lucide-react v0.460.0 - ISC
|
|
88
|
+
*
|
|
89
|
+
* This source code is licensed under the ISC license.
|
|
90
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
91
|
+
*/const qj=De("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
|
|
92
|
+
* @license lucide-react v0.460.0 - ISC
|
|
93
|
+
*
|
|
94
|
+
* This source code is licensed under the ISC license.
|
|
95
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
96
|
+
*/const Ql=De("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/**
|
|
97
|
+
* @license lucide-react v0.460.0 - ISC
|
|
98
|
+
*
|
|
99
|
+
* This source code is licensed under the ISC license.
|
|
100
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
101
|
+
*/const Gj=De("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
|
|
102
|
+
* @license lucide-react v0.460.0 - ISC
|
|
103
|
+
*
|
|
104
|
+
* This source code is licensed under the ISC license.
|
|
105
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
106
|
+
*/const Yu=De("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/**
|
|
107
|
+
* @license lucide-react v0.460.0 - ISC
|
|
108
|
+
*
|
|
109
|
+
* This source code is licensed under the ISC license.
|
|
110
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
111
|
+
*/const hT=De("BookOpenText",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M16 12h2",key:"7q9ll5"}],["path",{d:"M16 8h2",key:"msurwy"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}],["path",{d:"M6 12h2",key:"32wvfc"}],["path",{d:"M6 8h2",key:"30oboj"}]]);/**
|
|
112
|
+
* @license lucide-react v0.460.0 - ISC
|
|
113
|
+
*
|
|
114
|
+
* This source code is licensed under the ISC license.
|
|
115
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
116
|
+
*/const Yj=De("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/**
|
|
117
|
+
* @license lucide-react v0.460.0 - ISC
|
|
118
|
+
*
|
|
119
|
+
* This source code is licensed under the ISC license.
|
|
120
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
121
|
+
*/const Ed=De("Boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);/**
|
|
122
|
+
* @license lucide-react v0.460.0 - ISC
|
|
123
|
+
*
|
|
124
|
+
* This source code is licensed under the ISC license.
|
|
125
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
126
|
+
*/const gT=De("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/**
|
|
127
|
+
* @license lucide-react v0.460.0 - ISC
|
|
128
|
+
*
|
|
129
|
+
* This source code is licensed under the ISC license.
|
|
130
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
131
|
+
*/const As=De("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
|
|
132
|
+
* @license lucide-react v0.460.0 - ISC
|
|
133
|
+
*
|
|
134
|
+
* This source code is licensed under the ISC license.
|
|
135
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
136
|
+
*/const us=De("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
|
|
137
|
+
* @license lucide-react v0.460.0 - ISC
|
|
138
|
+
*
|
|
139
|
+
* This source code is licensed under the ISC license.
|
|
140
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
141
|
+
*/const xT=De("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/**
|
|
142
|
+
* @license lucide-react v0.460.0 - ISC
|
|
143
|
+
*
|
|
144
|
+
* This source code is licensed under the ISC license.
|
|
145
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
146
|
+
*/const yT=De("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
|
|
147
|
+
* @license lucide-react v0.460.0 - ISC
|
|
148
|
+
*
|
|
149
|
+
* This source code is licensed under the ISC license.
|
|
150
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
151
|
+
*/const Jj=De("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
|
|
152
|
+
* @license lucide-react v0.460.0 - ISC
|
|
153
|
+
*
|
|
154
|
+
* This source code is licensed under the ISC license.
|
|
155
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
156
|
+
*/const sh=De("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
|
|
157
|
+
* @license lucide-react v0.460.0 - ISC
|
|
158
|
+
*
|
|
159
|
+
* This source code is licensed under the ISC license.
|
|
160
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
161
|
+
*/const Yh=De("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
|
|
162
|
+
* @license lucide-react v0.460.0 - ISC
|
|
163
|
+
*
|
|
164
|
+
* This source code is licensed under the ISC license.
|
|
165
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
166
|
+
*/const oh=De("CircleDot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);/**
|
|
167
|
+
* @license lucide-react v0.460.0 - ISC
|
|
168
|
+
*
|
|
169
|
+
* This source code is licensed under the ISC license.
|
|
170
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
171
|
+
*/const bT=De("CircleStop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);/**
|
|
172
|
+
* @license lucide-react v0.460.0 - ISC
|
|
173
|
+
*
|
|
174
|
+
* This source code is licensed under the ISC license.
|
|
175
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
176
|
+
*/const vT=De("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
|
|
177
|
+
* @license lucide-react v0.460.0 - ISC
|
|
178
|
+
*
|
|
179
|
+
* This source code is licensed under the ISC license.
|
|
180
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
181
|
+
*/const wT=De("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/**
|
|
182
|
+
* @license lucide-react v0.460.0 - ISC
|
|
183
|
+
*
|
|
184
|
+
* This source code is licensed under the ISC license.
|
|
185
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
186
|
+
*/const jT=De("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
|
|
187
|
+
* @license lucide-react v0.460.0 - ISC
|
|
188
|
+
*
|
|
189
|
+
* This source code is licensed under the ISC license.
|
|
190
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
191
|
+
*/const kT=De("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/**
|
|
192
|
+
* @license lucide-react v0.460.0 - ISC
|
|
193
|
+
*
|
|
194
|
+
* This source code is licensed under the ISC license.
|
|
195
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
196
|
+
*/const Td=De("Coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]);/**
|
|
197
|
+
* @license lucide-react v0.460.0 - ISC
|
|
198
|
+
*
|
|
199
|
+
* This source code is licensed under the ISC license.
|
|
200
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
201
|
+
*/const ST=De("Columns3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);/**
|
|
202
|
+
* @license lucide-react v0.460.0 - ISC
|
|
203
|
+
*
|
|
204
|
+
* This source code is licensed under the ISC license.
|
|
205
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
206
|
+
*/const Xj=De("Compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
|
|
207
|
+
* @license lucide-react v0.460.0 - ISC
|
|
208
|
+
*
|
|
209
|
+
* This source code is licensed under the ISC license.
|
|
210
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
211
|
+
*/const Ll=De("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
|
|
212
|
+
* @license lucide-react v0.460.0 - ISC
|
|
213
|
+
*
|
|
214
|
+
* This source code is licensed under the ISC license.
|
|
215
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
216
|
+
*/const NT=De("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/**
|
|
217
|
+
* @license lucide-react v0.460.0 - ISC
|
|
218
|
+
*
|
|
219
|
+
* This source code is licensed under the ISC license.
|
|
220
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
221
|
+
*/const CT=De("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/**
|
|
222
|
+
* @license lucide-react v0.460.0 - ISC
|
|
223
|
+
*
|
|
224
|
+
* This source code is licensed under the ISC license.
|
|
225
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
226
|
+
*/const aa=De("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
|
|
227
|
+
* @license lucide-react v0.460.0 - ISC
|
|
228
|
+
*
|
|
229
|
+
* This source code is licensed under the ISC license.
|
|
230
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
231
|
+
*/const rv=De("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
|
|
232
|
+
* @license lucide-react v0.460.0 - ISC
|
|
233
|
+
*
|
|
234
|
+
* This source code is licensed under the ISC license.
|
|
235
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
236
|
+
*/const ET=De("FileCode2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);/**
|
|
237
|
+
* @license lucide-react v0.460.0 - ISC
|
|
238
|
+
*
|
|
239
|
+
* This source code is licensed under the ISC license.
|
|
240
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
241
|
+
*/const TT=De("FilePenLine",[["path",{d:"m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2",key:"142zxg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]]);/**
|
|
242
|
+
* @license lucide-react v0.460.0 - ISC
|
|
243
|
+
*
|
|
244
|
+
* This source code is licensed under the ISC license.
|
|
245
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
246
|
+
*/const Qj=De("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"}]]);/**
|
|
247
|
+
* @license lucide-react v0.460.0 - ISC
|
|
248
|
+
*
|
|
249
|
+
* This source code is licensed under the ISC license.
|
|
250
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
251
|
+
*/const Jh=De("FolderKanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);/**
|
|
252
|
+
* @license lucide-react v0.460.0 - ISC
|
|
253
|
+
*
|
|
254
|
+
* This source code is licensed under the ISC license.
|
|
255
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
256
|
+
*/const PT=De("GitBranchPlus",[["path",{d:"M6 3v12",key:"qpgusn"}],["path",{d:"M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"1d02ji"}],["path",{d:"M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",key:"chk6ph"}],["path",{d:"M15 6a9 9 0 0 0-9 9",key:"or332x"}],["path",{d:"M18 15v6",key:"9wciyi"}],["path",{d:"M21 18h-6",key:"139f0c"}]]);/**
|
|
257
|
+
* @license lucide-react v0.460.0 - ISC
|
|
258
|
+
*
|
|
259
|
+
* This source code is licensed under the ISC license.
|
|
260
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
261
|
+
*/const Xh=De("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
|
|
262
|
+
* @license lucide-react v0.460.0 - ISC
|
|
263
|
+
*
|
|
264
|
+
* This source code is licensed under the ISC license.
|
|
265
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
266
|
+
*/const RT=De("GitFork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);/**
|
|
267
|
+
* @license lucide-react v0.460.0 - ISC
|
|
268
|
+
*
|
|
269
|
+
* This source code is licensed under the ISC license.
|
|
270
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
271
|
+
*/const Pd=De("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/**
|
|
272
|
+
* @license lucide-react v0.460.0 - ISC
|
|
273
|
+
*
|
|
274
|
+
* This source code is licensed under the ISC license.
|
|
275
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
276
|
+
*/const AT=De("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]);/**
|
|
277
|
+
* @license lucide-react v0.460.0 - ISC
|
|
278
|
+
*
|
|
279
|
+
* This source code is licensed under the ISC license.
|
|
280
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
281
|
+
*/const Qh=De("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
|
|
282
|
+
* @license lucide-react v0.460.0 - ISC
|
|
283
|
+
*
|
|
284
|
+
* This source code is licensed under the ISC license.
|
|
285
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
286
|
+
*/const ih=De("Keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]);/**
|
|
287
|
+
* @license lucide-react v0.460.0 - ISC
|
|
288
|
+
*
|
|
289
|
+
* This source code is licensed under the ISC license.
|
|
290
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
291
|
+
*/const Zj=De("LayoutTemplate",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]);/**
|
|
292
|
+
* @license lucide-react v0.460.0 - ISC
|
|
293
|
+
*
|
|
294
|
+
* This source code is licensed under the ISC license.
|
|
295
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
296
|
+
*/const DT=De("Library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]]);/**
|
|
297
|
+
* @license lucide-react v0.460.0 - ISC
|
|
298
|
+
*
|
|
299
|
+
* This source code is licensed under the ISC license.
|
|
300
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
301
|
+
*/const $T=De("LifeBuoy",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]);/**
|
|
302
|
+
* @license lucide-react v0.460.0 - ISC
|
|
303
|
+
*
|
|
304
|
+
* This source code is licensed under the ISC license.
|
|
305
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
306
|
+
*/const LT=De("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);/**
|
|
307
|
+
* @license lucide-react v0.460.0 - ISC
|
|
308
|
+
*
|
|
309
|
+
* This source code is licensed under the ISC license.
|
|
310
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
311
|
+
*/const IT=De("ListTodo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/**
|
|
312
|
+
* @license lucide-react v0.460.0 - ISC
|
|
313
|
+
*
|
|
314
|
+
* This source code is licensed under the ISC license.
|
|
315
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
316
|
+
*/const Zh=De("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
|
|
317
|
+
* @license lucide-react v0.460.0 - ISC
|
|
318
|
+
*
|
|
319
|
+
* This source code is licensed under the ISC license.
|
|
320
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
321
|
+
*/const OT=De("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
|
|
322
|
+
* @license lucide-react v0.460.0 - ISC
|
|
323
|
+
*
|
|
324
|
+
* This source code is licensed under the ISC license.
|
|
325
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
326
|
+
*/const eg=De("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/**
|
|
327
|
+
* @license lucide-react v0.460.0 - ISC
|
|
328
|
+
*
|
|
329
|
+
* This source code is licensed under the ISC license.
|
|
330
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
331
|
+
*/const _T=De("MoonStar",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9",key:"4ay0iu"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}]]);/**
|
|
332
|
+
* @license lucide-react v0.460.0 - ISC
|
|
333
|
+
*
|
|
334
|
+
* This source code is licensed under the ISC license.
|
|
335
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
336
|
+
*/const am=De("NotebookPen",[["path",{d:"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4",key:"re6nr2"}],["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["path",{d:"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"pqwjuv"}]]);/**
|
|
337
|
+
* @license lucide-react v0.460.0 - ISC
|
|
338
|
+
*
|
|
339
|
+
* This source code is licensed under the ISC license.
|
|
340
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
341
|
+
*/const Vo=De("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/**
|
|
342
|
+
* @license lucide-react v0.460.0 - ISC
|
|
343
|
+
*
|
|
344
|
+
* This source code is licensed under the ISC license.
|
|
345
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
346
|
+
*/const MT=De("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
|
|
347
|
+
* @license lucide-react v0.460.0 - ISC
|
|
348
|
+
*
|
|
349
|
+
* This source code is licensed under the ISC license.
|
|
350
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
351
|
+
*/const en=De("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
|
|
352
|
+
* @license lucide-react v0.460.0 - ISC
|
|
353
|
+
*
|
|
354
|
+
* This source code is licensed under the ISC license.
|
|
355
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
356
|
+
*/const e0=De("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"}]]);/**
|
|
357
|
+
* @license lucide-react v0.460.0 - ISC
|
|
358
|
+
*
|
|
359
|
+
* This source code is licensed under the ISC license.
|
|
360
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
361
|
+
*/const FT=De("Replace",[["path",{d:"M14 4a2 2 0 0 1 2-2",key:"1w2hp7"}],["path",{d:"M16 10a2 2 0 0 1-2-2",key:"shjach"}],["path",{d:"M20 2a2 2 0 0 1 2 2",key:"188mtx"}],["path",{d:"M22 8a2 2 0 0 1-2 2",key:"ddf4tu"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a3 3 0 0 1 3-3h1",key:"3y3t5z"}],["rect",{x:"2",y:"14",width:"8",height:"8",rx:"2",key:"4rksxw"}]]);/**
|
|
362
|
+
* @license lucide-react v0.460.0 - ISC
|
|
363
|
+
*
|
|
364
|
+
* This source code is licensed under the ISC license.
|
|
365
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
366
|
+
*/const zT=De("Reply",[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]]);/**
|
|
367
|
+
* @license lucide-react v0.460.0 - ISC
|
|
368
|
+
*
|
|
369
|
+
* This source code is licensed under the ISC license.
|
|
370
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
371
|
+
*/const ea=De("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"}]]);/**
|
|
372
|
+
* @license lucide-react v0.460.0 - ISC
|
|
373
|
+
*
|
|
374
|
+
* This source code is licensed under the ISC license.
|
|
375
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
376
|
+
*/const Rd=De("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/**
|
|
377
|
+
* @license lucide-react v0.460.0 - ISC
|
|
378
|
+
*
|
|
379
|
+
* This source code is licensed under the ISC license.
|
|
380
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
381
|
+
*/const BT=De("SearchCheck",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
|
|
382
|
+
* @license lucide-react v0.460.0 - ISC
|
|
383
|
+
*
|
|
384
|
+
* This source code is licensed under the ISC license.
|
|
385
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
386
|
+
*/const co=De("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
|
|
387
|
+
* @license lucide-react v0.460.0 - ISC
|
|
388
|
+
*
|
|
389
|
+
* This source code is licensed under the ISC license.
|
|
390
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
391
|
+
*/const UT=De("SendToBack",[["rect",{x:"14",y:"14",width:"8",height:"8",rx:"2",key:"1b0bso"}],["rect",{x:"2",y:"2",width:"8",height:"8",rx:"2",key:"1x09vl"}],["path",{d:"M7 14v1a2 2 0 0 0 2 2h1",key:"pao6x6"}],["path",{d:"M14 7h1a2 2 0 0 1 2 2v1",key:"19tdru"}]]);/**
|
|
392
|
+
* @license lucide-react v0.460.0 - ISC
|
|
393
|
+
*
|
|
394
|
+
* This source code is licensed under the ISC license.
|
|
395
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
396
|
+
*/const VT=De("ServerOff",[["path",{d:"M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5",key:"bt2siv"}],["path",{d:"M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z",key:"1hjrv1"}],["path",{d:"M22 17v-1a2 2 0 0 0-2-2h-1",key:"1iynyr"}],["path",{d:"M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z",key:"161ggg"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/**
|
|
397
|
+
* @license lucide-react v0.460.0 - ISC
|
|
398
|
+
*
|
|
399
|
+
* This source code is licensed under the ISC license.
|
|
400
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
401
|
+
*/const HT=De("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
|
|
402
|
+
* @license lucide-react v0.460.0 - ISC
|
|
403
|
+
*
|
|
404
|
+
* This source code is licensed under the ISC license.
|
|
405
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
406
|
+
*/const WT=De("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/**
|
|
407
|
+
* @license lucide-react v0.460.0 - ISC
|
|
408
|
+
*
|
|
409
|
+
* This source code is licensed under the ISC license.
|
|
410
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
411
|
+
*/const Ar=De("SquareCheckBig",[["path",{d:"M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5",key:"1uzm8b"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
|
|
412
|
+
* @license lucide-react v0.460.0 - ISC
|
|
413
|
+
*
|
|
414
|
+
* This source code is licensed under the ISC license.
|
|
415
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
416
|
+
*/const sv=De("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);/**
|
|
417
|
+
* @license lucide-react v0.460.0 - ISC
|
|
418
|
+
*
|
|
419
|
+
* This source code is licensed under the ISC license.
|
|
420
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
421
|
+
*/const tg=De("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/**
|
|
422
|
+
* @license lucide-react v0.460.0 - ISC
|
|
423
|
+
*
|
|
424
|
+
* This source code is licensed under the ISC license.
|
|
425
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
426
|
+
*/const KT=De("SunMedium",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 3v1",key:"1asbbs"}],["path",{d:"M12 20v1",key:"1wcdkc"}],["path",{d:"M3 12h1",key:"lp3yf2"}],["path",{d:"M20 12h1",key:"1vloll"}],["path",{d:"m18.364 5.636-.707.707",key:"1hakh0"}],["path",{d:"m6.343 17.657-.707.707",key:"18m9nf"}],["path",{d:"m5.636 5.636.707.707",key:"1xv1c5"}],["path",{d:"m17.657 17.657.707.707",key:"vl76zb"}]]);/**
|
|
427
|
+
* @license lucide-react v0.460.0 - ISC
|
|
428
|
+
*
|
|
429
|
+
* This source code is licensed under the ISC license.
|
|
430
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
431
|
+
*/const t0=De("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);/**
|
|
432
|
+
* @license lucide-react v0.460.0 - ISC
|
|
433
|
+
*
|
|
434
|
+
* This source code is licensed under the ISC license.
|
|
435
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
436
|
+
*/const Bi=De("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/**
|
|
437
|
+
* @license lucide-react v0.460.0 - ISC
|
|
438
|
+
*
|
|
439
|
+
* This source code is licensed under the ISC license.
|
|
440
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
441
|
+
*/const Hn=De("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/**
|
|
442
|
+
* @license lucide-react v0.460.0 - ISC
|
|
443
|
+
*
|
|
444
|
+
* This source code is licensed under the ISC license.
|
|
445
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
446
|
+
*/const ng=De("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
|
|
447
|
+
* @license lucide-react v0.460.0 - ISC
|
|
448
|
+
*
|
|
449
|
+
* This source code is licensed under the ISC license.
|
|
450
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
451
|
+
*/const qT=De("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);/**
|
|
452
|
+
* @license lucide-react v0.460.0 - ISC
|
|
453
|
+
*
|
|
454
|
+
* This source code is licensed under the ISC license.
|
|
455
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
456
|
+
*/const GT=De("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"}]]);/**
|
|
457
|
+
* @license lucide-react v0.460.0 - ISC
|
|
458
|
+
*
|
|
459
|
+
* This source code is licensed under the ISC license.
|
|
460
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
461
|
+
*/const rg=De("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function n0(e){var t,n,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=n0(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function YT(){for(var e,t,n=0,s="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=n0(e))&&(s&&(s+=" "),s+=t);return s}const sg="-",JT=e=>{const t=QT(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:c=>{const u=c.split(sg);return u[0]===""&&u.length!==1&&u.shift(),r0(u,t)||XT(c)},getConflictingClassGroupIds:(c,u)=>{const p=n[c]||[];return u&&s[c]?[...p,...s[c]]:p}}},r0=(e,t)=>{var c;if(e.length===0)return t.classGroupId;const n=e[0],s=t.nextPart.get(n),i=s?r0(e.slice(1),s):void 0;if(i)return i;if(t.validators.length===0)return;const l=e.join(sg);return(c=t.validators.find(({validator:u})=>u(l)))==null?void 0:c.classGroupId},ov=/^\[(.+)\]$/,XT=e=>{if(ov.test(e)){const t=ov.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},QT=e=>{const{theme:t,prefix:n}=e,s={nextPart:new Map,validators:[]};return eP(Object.entries(e.classGroups),n).forEach(([l,c])=>{ah(c,s,l,t)}),s},ah=(e,t,n,s)=>{e.forEach(i=>{if(typeof i=="string"){const l=i===""?t:iv(t,i);l.classGroupId=n;return}if(typeof i=="function"){if(ZT(i)){ah(i(s),t,n,s);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([l,c])=>{ah(c,iv(t,l),n,s)})})},iv=(e,t)=>{let n=e;return t.split(sg).forEach(s=>{n.nextPart.has(s)||n.nextPart.set(s,{nextPart:new Map,validators:[]}),n=n.nextPart.get(s)}),n},ZT=e=>e.isThemeGetter,eP=(e,t)=>t?e.map(([n,s])=>{const i=s.map(l=>typeof l=="string"?t+l:typeof l=="object"?Object.fromEntries(Object.entries(l).map(([c,u])=>[t+c,u])):l);return[n,i]}):e,tP=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,s=new Map;const i=(l,c)=>{n.set(l,c),t++,t>e&&(t=0,s=n,n=new Map)};return{get(l){let c=n.get(l);if(c!==void 0)return c;if((c=s.get(l))!==void 0)return i(l,c),c},set(l,c){n.has(l)?n.set(l,c):i(l,c)}}},s0="!",nP=e=>{const{separator:t,experimentalParseClassName:n}=e,s=t.length===1,i=t[0],l=t.length,c=u=>{const p=[];let m=0,h=0,x;for(let w=0;w<u.length;w++){let j=u[w];if(m===0){if(j===i&&(s||u.slice(w,w+l)===t)){p.push(u.slice(h,w)),h=w+l;continue}if(j==="/"){x=w;continue}}j==="["?m++:j==="]"&&m--}const y=p.length===0?u:u.substring(h),b=y.startsWith(s0),E=b?y.substring(1):y,k=x&&x>h?x-h:void 0;return{modifiers:p,hasImportantModifier:b,baseClassName:E,maybePostfixModifierPosition:k}};return n?u=>n({className:u,parseClassName:c}):c},rP=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(s=>{s[0]==="["?(t.push(...n.sort(),s),n=[]):n.push(s)}),t.push(...n.sort()),t},sP=e=>({cache:tP(e.cacheSize),parseClassName:nP(e),...JT(e)}),oP=/\s+/,iP=(e,t)=>{const{parseClassName:n,getClassGroupId:s,getConflictingClassGroupIds:i}=t,l=[],c=e.trim().split(oP);let u="";for(let p=c.length-1;p>=0;p-=1){const m=c[p],{modifiers:h,hasImportantModifier:x,baseClassName:y,maybePostfixModifierPosition:b}=n(m);let E=!!b,k=s(E?y.substring(0,b):y);if(!k){if(!E){u=m+(u.length>0?" "+u:u);continue}if(k=s(y),!k){u=m+(u.length>0?" "+u:u);continue}E=!1}const w=rP(h).join(":"),j=x?w+s0:w,C=j+k;if(l.includes(C))continue;l.push(C);const N=i(k,E);for(let T=0;T<N.length;++T){const L=N[T];l.push(j+L)}u=m+(u.length>0?" "+u:u)}return u};function aP(){let e=0,t,n,s="";for(;e<arguments.length;)(t=arguments[e++])&&(n=o0(t))&&(s&&(s+=" "),s+=n);return s}const o0=e=>{if(typeof e=="string")return e;let t,n="";for(let s=0;s<e.length;s++)e[s]&&(t=o0(e[s]))&&(n&&(n+=" "),n+=t);return n};function lP(e,...t){let n,s,i,l=c;function c(p){const m=t.reduce((h,x)=>x(h),e());return n=sP(m),s=n.cache.get,i=n.cache.set,l=u,u(p)}function u(p){const m=s(p);if(m)return m;const h=iP(p,n);return i(p,h),h}return function(){return l(aP.apply(null,arguments))}}const Mt=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},i0=/^\[(?:([a-z-]+):)?(.+)\]$/i,cP=/^\d+\/\d+$/,uP=new Set(["px","full","screen"]),dP=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,fP=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,pP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,mP=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,hP=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Cs=e=>Ui(e)||uP.has(e)||cP.test(e),Js=e=>la(e,"length",kP),Ui=e=>!!e&&!Number.isNaN(Number(e)),lm=e=>la(e,"number",Ui),ul=e=>!!e&&Number.isInteger(Number(e)),gP=e=>e.endsWith("%")&&Ui(e.slice(0,-1)),nt=e=>i0.test(e),Xs=e=>dP.test(e),xP=new Set(["length","size","percentage"]),yP=e=>la(e,xP,a0),bP=e=>la(e,"position",a0),vP=new Set(["image","url"]),wP=e=>la(e,vP,NP),jP=e=>la(e,"",SP),dl=()=>!0,la=(e,t,n)=>{const s=i0.exec(e);return s?s[1]?typeof t=="string"?s[1]===t:t.has(s[1]):n(s[2]):!1},kP=e=>fP.test(e)&&!pP.test(e),a0=()=>!1,SP=e=>mP.test(e),NP=e=>hP.test(e),CP=()=>{const e=Mt("colors"),t=Mt("spacing"),n=Mt("blur"),s=Mt("brightness"),i=Mt("borderColor"),l=Mt("borderRadius"),c=Mt("borderSpacing"),u=Mt("borderWidth"),p=Mt("contrast"),m=Mt("grayscale"),h=Mt("hueRotate"),x=Mt("invert"),y=Mt("gap"),b=Mt("gradientColorStops"),E=Mt("gradientColorStopPositions"),k=Mt("inset"),w=Mt("margin"),j=Mt("opacity"),C=Mt("padding"),N=Mt("saturate"),T=Mt("scale"),L=Mt("sepia"),P=Mt("skew"),$=Mt("space"),F=Mt("translate"),X=()=>["auto","contain","none"],te=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",nt,t],W=()=>[nt,t],Z=()=>["",Cs,Js],M=()=>["auto",Ui,nt],K=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],J=()=>["solid","dashed","dotted","double","none"],le=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],_=()=>["start","end","center","between","around","evenly","stretch"],G=()=>["","0",nt],A=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>[Ui,nt];return{cacheSize:500,separator:":",theme:{colors:[dl],spacing:[Cs,Js],blur:["none","",Xs,nt],brightness:B(),borderColor:[e],borderRadius:["none","","full",Xs,nt],borderSpacing:W(),borderWidth:Z(),contrast:B(),grayscale:G(),hueRotate:B(),invert:G(),gap:W(),gradientColorStops:[e],gradientColorStopPositions:[gP,Js],inset:D(),margin:D(),opacity:B(),padding:W(),saturate:B(),scale:B(),sepia:G(),skew:B(),space:W(),translate:W()},classGroups:{aspect:[{aspect:["auto","square","video",nt]}],container:["container"],columns:[{columns:[Xs]}],"break-after":[{"break-after":A()}],"break-before":[{"break-before":A()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...K(),nt]}],overflow:[{overflow:te()}],"overflow-x":[{"overflow-x":te()}],"overflow-y":[{"overflow-y":te()}],overscroll:[{overscroll:X()}],"overscroll-x":[{"overscroll-x":X()}],"overscroll-y":[{"overscroll-y":X()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[k]}],"inset-x":[{"inset-x":[k]}],"inset-y":[{"inset-y":[k]}],start:[{start:[k]}],end:[{end:[k]}],top:[{top:[k]}],right:[{right:[k]}],bottom:[{bottom:[k]}],left:[{left:[k]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ul,nt]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",nt]}],grow:[{grow:G()}],shrink:[{shrink:G()}],order:[{order:["first","last","none",ul,nt]}],"grid-cols":[{"grid-cols":[dl]}],"col-start-end":[{col:["auto",{span:["full",ul,nt]},nt]}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":[dl]}],"row-start-end":[{row:["auto",{span:[ul,nt]},nt]}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",nt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",nt]}],gap:[{gap:[y]}],"gap-x":[{"gap-x":[y]}],"gap-y":[{"gap-y":[y]}],"justify-content":[{justify:["normal",..._()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",..._(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[..._(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[C]}],px:[{px:[C]}],py:[{py:[C]}],ps:[{ps:[C]}],pe:[{pe:[C]}],pt:[{pt:[C]}],pr:[{pr:[C]}],pb:[{pb:[C]}],pl:[{pl:[C]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[$]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[$]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",nt,t]}],"min-w":[{"min-w":[nt,t,"min","max","fit"]}],"max-w":[{"max-w":[nt,t,"none","full","min","max","fit","prose",{screen:[Xs]},Xs]}],h:[{h:[nt,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[nt,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[nt,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[nt,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Xs,Js]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",lm]}],"font-family":[{font:[dl]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",nt]}],"line-clamp":[{"line-clamp":["none",Ui,lm]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Cs,nt]}],"list-image":[{"list-image":["none",nt]}],"list-style-type":[{list:["none","disc","decimal",nt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[j]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[j]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...J(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Cs,Js]}],"underline-offset":[{"underline-offset":["auto",Cs,nt]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:W()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",nt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",nt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[j]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...K(),bP]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",yP]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},wP]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[E]}],"gradient-via-pos":[{via:[E]}],"gradient-to-pos":[{to:[E]}],"gradient-from":[{from:[b]}],"gradient-via":[{via:[b]}],"gradient-to":[{to:[b]}],rounded:[{rounded:[l]}],"rounded-s":[{"rounded-s":[l]}],"rounded-e":[{"rounded-e":[l]}],"rounded-t":[{"rounded-t":[l]}],"rounded-r":[{"rounded-r":[l]}],"rounded-b":[{"rounded-b":[l]}],"rounded-l":[{"rounded-l":[l]}],"rounded-ss":[{"rounded-ss":[l]}],"rounded-se":[{"rounded-se":[l]}],"rounded-ee":[{"rounded-ee":[l]}],"rounded-es":[{"rounded-es":[l]}],"rounded-tl":[{"rounded-tl":[l]}],"rounded-tr":[{"rounded-tr":[l]}],"rounded-br":[{"rounded-br":[l]}],"rounded-bl":[{"rounded-bl":[l]}],"border-w":[{border:[u]}],"border-w-x":[{"border-x":[u]}],"border-w-y":[{"border-y":[u]}],"border-w-s":[{"border-s":[u]}],"border-w-e":[{"border-e":[u]}],"border-w-t":[{"border-t":[u]}],"border-w-r":[{"border-r":[u]}],"border-w-b":[{"border-b":[u]}],"border-w-l":[{"border-l":[u]}],"border-opacity":[{"border-opacity":[j]}],"border-style":[{border:[...J(),"hidden"]}],"divide-x":[{"divide-x":[u]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[u]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[j]}],"divide-style":[{divide:J()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...J()]}],"outline-offset":[{"outline-offset":[Cs,nt]}],"outline-w":[{outline:[Cs,Js]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:Z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[j]}],"ring-offset-w":[{"ring-offset":[Cs,Js]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Xs,jP]}],"shadow-color":[{shadow:[dl]}],opacity:[{opacity:[j]}],"mix-blend":[{"mix-blend":[...le(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":le()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[s]}],contrast:[{contrast:[p]}],"drop-shadow":[{"drop-shadow":["","none",Xs,nt]}],grayscale:[{grayscale:[m]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[x]}],saturate:[{saturate:[N]}],sepia:[{sepia:[L]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[s]}],"backdrop-contrast":[{"backdrop-contrast":[p]}],"backdrop-grayscale":[{"backdrop-grayscale":[m]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[x]}],"backdrop-opacity":[{"backdrop-opacity":[j]}],"backdrop-saturate":[{"backdrop-saturate":[N]}],"backdrop-sepia":[{"backdrop-sepia":[L]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[c]}],"border-spacing-x":[{"border-spacing-x":[c]}],"border-spacing-y":[{"border-spacing-y":[c]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",nt]}],duration:[{duration:B()}],ease:[{ease:["linear","in","out","in-out",nt]}],delay:[{delay:B()}],animate:[{animate:["none","spin","ping","pulse","bounce",nt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[T]}],"scale-x":[{"scale-x":[T]}],"scale-y":[{"scale-y":[T]}],rotate:[{rotate:[ul,nt]}],"translate-x":[{"translate-x":[F]}],"translate-y":[{"translate-y":[F]}],"skew-x":[{"skew-x":[P]}],"skew-y":[{"skew-y":[P]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",nt]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",nt]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":W()}],"scroll-mx":[{"scroll-mx":W()}],"scroll-my":[{"scroll-my":W()}],"scroll-ms":[{"scroll-ms":W()}],"scroll-me":[{"scroll-me":W()}],"scroll-mt":[{"scroll-mt":W()}],"scroll-mr":[{"scroll-mr":W()}],"scroll-mb":[{"scroll-mb":W()}],"scroll-ml":[{"scroll-ml":W()}],"scroll-p":[{"scroll-p":W()}],"scroll-px":[{"scroll-px":W()}],"scroll-py":[{"scroll-py":W()}],"scroll-ps":[{"scroll-ps":W()}],"scroll-pe":[{"scroll-pe":W()}],"scroll-pt":[{"scroll-pt":W()}],"scroll-pr":[{"scroll-pr":W()}],"scroll-pb":[{"scroll-pb":W()}],"scroll-pl":[{"scroll-pl":W()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",nt]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Cs,Js,lm]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},EP=lP(CP);function Ee(...e){return EP(YT(e))}function On(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function $r(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}function l0(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function c0(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function u0(e){if(!e)return"—";const t=new Date(e);if(Number.isNaN(t.getTime()))return e;const n=Math.floor((Date.now()-t.getTime())/1e3);if(n<60)return"just now";const s=Math.floor(n/60);if(s<60)return`${s}m ago`;const i=Math.floor(s/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function Ju(e){return e.toLocaleString("en-US")}function Xu(e){return`$${e.toFixed(4)}`}function TP(e){if(!e)return"—";const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return e;const[,n,s,i]=t,l=new Date(Number(n),Number(s)-1,Number(i));return Number.isNaN(l.getTime())?e:l.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function Sn(e){return e.split(/[_\s-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function d0(e){return!e||e==="/"?"/":e.endsWith("/")?e.slice(0,-1):e}function PP(e){let t=d0(e);const n=t.match(/^\/w\/[^/]+(\/.*)?$/);return n&&(t=n[1]||"/"),t==="/"?"/":t.startsWith("/archive")?"/archive":t.startsWith("/projects")?/^\/projects\/[^/]+\/assignments\//.test(t)?"/assignments":"/projects":t.startsWith("/assignments")?"/assignments":t.startsWith("/servers")?"/servers":t.startsWith("/inventories")?"/inventories":t.startsWith("/usage")?"/usage":t.startsWith("/agent-sessions")?"/agent-sessions":t.startsWith("/playbooks")?"/playbooks":t.startsWith("/memories")?"/memories":t.startsWith("/resources")?"/resources":t.startsWith("/todos")?"/todos":t.startsWith("/views")?"/views":t.startsWith("/help")?"/help":t.startsWith("/settings")?"/settings":null}function f0(e,t){return PP(e)===t}function p0(e){let n=d0(e).split("/").filter(Boolean);const s=[];let i="Overview",l=null,c="";if(n[0]==="w"&&n[1]&&(c=`/w/${n[1]}`,s.push({label:Sn(n[1]),path:`${c}/projects`}),n=n.slice(2)),n.length===0)return{title:i,breadcrumbs:s,projectSlug:l};if(n[0]==="projects"){if(s.push({label:"Projects",path:`${c}/projects`}),i="Projects",n[1]&&(l=n[1],s.push({label:Sn(n[1]),path:`${c}/projects/${n[1]}`}),i=Sn(n[1])),n[2]==="edit")i="Edit Project";else if(n[2]==="create"&&n[3]==="assignment")i="Create Assignment";else if(n[2]==="assignments"&&n[3])s.push({label:Sn(n[3]),path:`${c}/projects/${n[1]}/assignments/${n[3]}`}),i=Sn(n[3]),n[4]==="edit"?i="Edit Assignment":n[4]==="plan"&&n[5]==="edit"?i="Edit Plan":n[4]==="scratchpad"&&n[5]==="edit"?i="Edit Scratchpad":n[4]==="handoff"&&n[5]==="edit"?i="Append Handoff":n[4]==="decision-record"&&n[5]==="edit"&&(i="Append Decision");else if((n[2]==="memories"||n[2]==="resources")&&n[3]){const u=n[2]==="memories"?"Memories":"Resources",p=n[2]==="memories"?"/memories":"/resources";s.push({label:u,path:p}),s.push({label:Sn(n[3]),path:`${c}/projects/${n[1]}/${n[2]}/${n[3]}`}),i=Sn(n[3]),n[4]==="edit"&&(i=n[2]==="memories"?"Edit Memory":"Edit Resource")}}else n[0]==="servers"?(i="Servers",s.push({label:"Servers",path:`${c}/servers`})):n[0]==="inventories"?(i="Inventories",s.push({label:"Inventories",path:`${c}/inventories`})):n[0]==="usage"?(i="Usage",s.push({label:"Usage",path:`${c}/usage`})):n[0]==="agent-sessions"?(i="Agent Sessions",s.push({label:"Agent Sessions",path:`${c}/agent-sessions`})):n[0]==="assignments"?(i="Assignments",s.push({label:"Assignments",path:`${c}/assignments`})):n[0]==="archive"?(i="Archive",s.push({label:"Archive",path:"/archive"})):n[0]==="playbooks"?(s.push({label:"Playbooks",path:"/playbooks"}),i="Playbooks",n[1]==="create"?i="Create Playbook":n[1]&&n[2]==="edit"?(s.push({label:Sn(n[1]),path:`/playbooks/${n[1]}`}),i="Edit Playbook"):n[1]&&(s.push({label:Sn(n[1]),path:`/playbooks/${n[1]}`}),i=Sn(n[1]))):n[0]==="memories"?(s.push({label:"Memories",path:"/memories"}),i="Memories",n[1]==="new"&&(i="New Memory")):n[0]==="resources"?(s.push({label:"Resources",path:"/resources"}),i="Resources",n[1]==="new"&&(i="New Resource")):n[0]==="todos"?(i="Todos",s.push({label:"Todos",path:`${c}/todos`})):n[0]==="views"?(i="Saved Views",s.push({label:"Saved Views",path:`${c}/views`})):n[0]==="help"?(i="Help",s.push({label:"Help",path:"/help"})):n[0]==="settings"?(i="Settings",s.push({label:"Settings",path:"/settings"})):n[0]==="create"&&n[1]==="project"&&(i="Create Project",s.push({label:"Create Project",path:`${c}/create/project`}));return{title:i,breadcrumbs:s,projectSlug:l}}function av({items:e,onNavigate:t}){const n=Vn();return r.jsx("nav",{className:"space-y-1",children:e.map(s=>{const i=s.icon,l=f0(n.pathname,s.to)&&!n.pathname.startsWith("/w/");return r.jsxs(Ce,{to:s.to,onClick:t,className:Ee("flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition",l?"bg-foreground text-background shadow-sm":"text-muted-foreground hover:bg-background/80 hover:text-foreground"),children:[r.jsx(i,{className:"h-4 w-4"}),r.jsx("span",{children:s.label})]},s.to)})})}const m0=[{slug:"default",label:"Syntaur",description:"Brand purple, warm yellow, coral & teal accents.",swatches:{primary:"oklch(70% 0.18 290)",secondary:"oklch(80% 0.14 75)",coral:"oklch(72% 0.17 15)",teal:"oklch(72% 0.14 185)",amber:"oklch(82% 0.16 75)"}},{slug:"ocean",label:"Midnight",description:"Deep indigo-blue with cyan accents. Inspired by One Dark Pro.",swatches:{primary:"oklch(70% 0.16 240)",secondary:"oklch(78% 0.13 200)",coral:"oklch(72% 0.18 350)",teal:"oklch(78% 0.14 195)",amber:"oklch(84% 0.15 90)"}},{slug:"forest",label:"Verdant",description:"Saturated emerald and pine on a dark olive base.",swatches:{primary:"oklch(72% 0.17 145)",secondary:"oklch(80% 0.13 110)",coral:"oklch(72% 0.17 25)",teal:"oklch(75% 0.13 175)",amber:"oklch(82% 0.16 95)"}},{slug:"sunset",label:"Ember",description:"Warm sepia surfaces with copper and amber accents.",swatches:{primary:"oklch(72% 0.18 35)",secondary:"oklch(80% 0.16 60)",coral:"oklch(72% 0.19 15)",teal:"oklch(72% 0.12 180)",amber:"oklch(86% 0.17 70)"}}],RP=m0.map(e=>e.slug),Qu="default";function h0(e){return typeof e=="string"&&RP.includes(e)}const g0={preset:Qu,custom:!1};let wl=null,Ni=null;function og(e){if(!e||typeof e!="object")return g0;const t=e;return{preset:h0(t.preset)?t.preset:Qu,custom:t.custom===!0}}function AP(){return wl?Promise.resolve(wl):Ni||(Ni=fetch("/api/config/theme").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=og(e);return wl=t,Ni=null,t}).catch(()=>(Ni=null,g0)),Ni)}async function DP(e){const t=await fetch("/api/config/theme",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({preset:e})});if(!t.ok){const s=await t.json().catch(()=>({error:`HTTP ${t.status}`}));throw new Error(s.error??"Failed to save theme")}const n=og(await t.json());return wl=n,n}async function $P(){const e=await fetch("/api/config/theme",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=og(await e.json());return wl=t,t}const lh="syntaur-theme",Ou="syntaur-preset",x0=f.createContext(null);function ch(){try{const e=window.localStorage.getItem(lh);return e==="light"||e==="dark"?e:null}catch{return null}}function y0(){try{const e=window.localStorage.getItem(Ou);return h0(e)?e:Qu}catch{return Qu}}function b0(){return typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function v0(e){document.documentElement.classList.toggle("dark",e==="dark")}function w0(e){document.documentElement.dataset.theme=e}function LP(){typeof document>"u"||(v0(ch()??b0()),w0(y0()))}function IP({children:e}){const[t,n]=f.useState(()=>ch()),[s,i]=f.useState(()=>ch()??b0()),[l,c]=f.useState(()=>y0());f.useEffect(()=>{v0(s)},[s]),f.useEffect(()=>{w0(l)},[l]),f.useEffect(()=>{let h=!1;return AP().then(x=>{if(!h&&x.preset!==l){c(x.preset);try{window.localStorage.setItem(Ou,x.preset)}catch{}}}),()=>{h=!0}},[]),f.useEffect(()=>{if(!window.matchMedia)return;const h=window.matchMedia("(prefers-color-scheme: dark)"),x=()=>{t||i(h.matches?"dark":"light")};return x(),h.addEventListener("change",x),()=>{h.removeEventListener("change",x)}},[t]);async function u(h){c(h);try{window.localStorage.setItem(Ou,h)}catch{}await DP(h)}async function p(){const h=await $P();c(h.preset);try{window.localStorage.setItem(Ou,h.preset)}catch{}}const m={resolvedTheme:s,explicitTheme:t,setTheme:h=>{window.localStorage.setItem(lh,h),n(h),i(h)},toggleTheme:()=>{const h=s==="dark"?"light":"dark";window.localStorage.setItem(lh,h),n(h),i(h)},preset:l,setPreset:u,resetPreset:p};return r.jsx(x0.Provider,{value:m,children:e})}function ig(){const e=f.useContext(x0);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const _u=new Set;let tr=null,Vi=null;function OP(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}function j0(){tr&&(tr.readyState===WebSocket.OPEN||tr.readyState===WebSocket.CONNECTING)||(tr=new WebSocket(OP()),tr.onmessage=e=>{try{const t=JSON.parse(e.data);for(const n of _u)n(t)}catch{}},tr.onclose=()=>{tr=null,Vi&&clearTimeout(Vi),Vi=setTimeout(j0,2e3)},tr.onerror=()=>{tr==null||tr.close()})}function Zl(e){const t=f.useRef(e);t.current=e,f.useEffect(()=>{const n=s=>t.current(s);return _u.add(n),j0(),()=>{_u.delete(n),_u.size===0&&tr&&(Vi&&clearTimeout(Vi),Vi=null,tr.close(),tr=null)}},[])}function Jt(e,t,n=!0,s=!1){const[i,l]=f.useState(null),[c,u]=f.useState(!0),[p,m]=f.useState(null),[h,x]=f.useState(0),y=n?e:null,b=f.useCallback(()=>{x(k=>k+1)},[]),E=f.useRef(y);return s&&E.current!==y&&(E.current=y,l(null),m(null)),f.useEffect(()=>{if(!y){u(!1),l(null);return}let k=!1;return u(!0),m(null),fetch(y).then(async w=>{if(!w.ok){const j=await w.json().catch(()=>null);throw new Error((j==null?void 0:j.error)||`HTTP ${w.status}`)}return w.json()}).then(w=>{k||(l(w),u(!1))}).catch(w=>{k||(m(w.message),u(!1))}),()=>{k=!0}},[y,h]),Zl(k=>{!t||!y||((k.type==="project-updated"||k.type==="assignment-updated")&&b(),k.type==="servers-updated"&&t==="servers"&&b(),k.type==="agent-sessions-updated"&&(t==="agent-sessions"||t==="overview")&&b(),k.type==="playbooks-updated"&&t==="playbooks"&&b(),k.type==="leases-updated"&&t==="inventories"&&b())}),{data:i,loading:c,error:p,refetch:b}}function Ho(e=!0){return Jt("/api/projects","projects",e)}function Ad(){return Jt("/api/workspaces","projects")}function on(){const{workspace:e}=Lt();return e?`/w/${e}`:""}function _P(e={}){const t=new URLSearchParams;typeof e.staleLimit=="number"&&Number.isFinite(e.staleLimit)&&t.set("staleLimit",String(e.staleLimit)),typeof e.staleOffset=="number"&&Number.isFinite(e.staleOffset)&&t.set("staleOffset",String(e.staleOffset));const n=t.toString(),s=n?`/api/overview?${n}`:"/api/overview";return Jt(s,"overview")}function Dd(e=!0){return Jt("/api/assignments","assignments",e)}function MP(e=!0){return Jt("/api/archived","assignments",e)}function k0(){return Jt("/api/help")}function S0(e){const t=e?`/api/projects/${e}`:null;return Jt(t,"project")}function FP(e,t){const n=e&&t?`/api/projects/${e}/assignments/${t}`:null;return Jt(n,"assignment")}function zP(e){const t=e?`/api/assignments/${e}`:null;return Jt(t,"assignment")}function N0(e){return Jt(e)}function ag(e=!0){return Jt("/api/servers","servers",e)}function C0(){return Jt("/api/leases","inventories")}function E0(){return Jt("/api/agent-sessions","agent-sessions")}function BP(e,t){const n=e&&t?`/api/agent-sessions/${e}?assignment=${t}`:null;return Jt(n,"agent-sessions")}function UP(e){const t=e?`/api/assignments/${e}/sessions`:null;return Jt(t,"agent-sessions")}function VP(e,t){const n=e&&t?`/api/usage/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}`:null;return Jt(n,void 0,!0,!0)}function HP(e){const t=e?`/api/usage/standalone/${encodeURIComponent(e)}`:null;return Jt(t,void 0,!0,!0)}function T0(e=!0){return Jt("/api/playbooks","playbooks",e)}function WP(e){const t=e?`/api/playbooks/${e}`:null;return Jt(t,"playbooks")}function KP(){return Jt("/api/memories","project")}function qP(e,t){const n=e&&t?`/api/projects/${e}/memories/${t}`:null;return Jt(n,"project")}function GP(){return Jt("/api/resources","project")}function YP(e,t){const n=e&&t?`/api/projects/${e}/resources/${t}`:null;return Jt(n,"project")}const $d=["new-workspace","new-project","new-todo","new-assignment"];function JP(e){return typeof e=="string"&&$d.includes(e)}const XP=["mod+k","mod+shift+k","?","escape","enter","shift+t","g","g o","g m","g a","g t","g s","g !","g ,","j","k","o","a","e","/","r","p","h","d","s","[","]"],QP=["mod","ctrl","alt","shift"];function nr(e){if(typeof e!="string")return"";const t=e.trim();if(!t)return"";if(/\s/.test(t)&&!t.includes("+"))return t.split(/\s+/).map(nr).filter(u=>u.length>0).join(" ");const n=t.split("+").map(u=>u.trim()).filter(u=>u.length>0);if(n.length===0)return"";if(n.length===1)return n[0].toLowerCase();const s=n[n.length-1].toLowerCase(),i=n.slice(0,-1).map(u=>u.toLowerCase()),l=new Set,c=[];for(const u of QP)i.includes(u)&&!l.has(u)&&(c.push(u),l.add(u));for(const u of i)l.has(u)||(c.push(u),l.add(u));return[...c,s].join("+")}function ZP(e){const t=nr(e);return t?XP.includes(t):!1}const eR={"new-workspace":nr("Mod+Shift+Alt+w"),"new-project":nr("Mod+Shift+Alt+p"),"new-todo":nr("Mod+Shift+Alt+t"),"new-assignment":nr("Mod+Shift+Alt+a")};function tR(e){const t={...eR};for(const n of $d){const s=e[n];typeof s=="string"&&s.length>0&&(t[n]=s)}return t}function _o(){if(typeof navigator>"u")return!1;const e=navigator.platform||"",t=navigator.userAgent||"";return/Mac|iPhone|iPad|iPod/.test(e)||/Mac OS X/.test(t)}function nR(e){const t=e.split("+").map(i=>i.trim()),n=t[t.length-1]??"",s=new Set(t.slice(0,-1).map(i=>i.toLowerCase()));return{key:n.toLowerCase(),mod:s.has("mod"),shift:s.has("shift"),alt:s.has("alt"),ctrl:s.has("ctrl")}}function xu(e,t){const n=nR(t);if(e.key.toLowerCase()!==n.key)return!1;const i=_o()?e.metaKey:e.ctrlKey;return!(n.mod&&!i||!n.mod&&!n.ctrl&&i||n.ctrl&&!e.ctrlKey||n.shift&&!e.shiftKey||!n.shift&&!(n.key.length===1&&!/^[a-z0-9]$/.test(n.key))&&e.shiftKey||n.alt&&!e.altKey||!n.alt&&e.altKey)}function P0(e){const t=[],n=_o()?e.metaKey:e.ctrlKey;n&&t.push("mod"),e.ctrlKey&&!n&&t.push("ctrl"),e.altKey&&t.push("alt");const s=e.key;let i;s===" "||s==="Spacebar"?i="space":(s.length,i=s.toLowerCase());const l=i.length===1&&/^[a-z0-9]$/.test(i);e.shiftKey&&l&&t.push("shift");const c=[...t,i].join("+");return nr(c)}function ls(e){return e.split("+").map(n=>{const s=n.toLowerCase();return s==="mod"?_o()?"⌘":"Ctrl":s==="shift"?_o()?"⇧":"Shift":s==="alt"?_o()?"⌥":"Alt":s==="ctrl"?_o()?"⌃":"Ctrl":s==="enter"?"↵":s==="escape"?"Esc":s==="arrowup"?"↑":s==="arrowdown"?"↓":n.length===1?n.toUpperCase():n}).join(_o()?"":"+")}function rR(e){const[t,n]=f.useState(null),[s,i]=f.useState(!0),[l,c]=f.useState(null),u=f.useCallback(async()=>{try{const p=await fetch(`/api/todos/${encodeURIComponent(e)}`);if(!p.ok)throw new Error(`HTTP ${p.status}`);n(await p.json()),c(null)}catch(p){c(p instanceof Error?p.message:"Failed to fetch todos")}finally{i(!1)}},[e]);return f.useEffect(()=>{u()},[u]),Zl(p=>{p.type==="todos-updated"&&!p.projectSlug&&u()}),{data:t,loading:s,error:l,refetch:u}}function R0(e=!0){const[t,n]=f.useState(null),[s,i]=f.useState(!0),[l,c]=f.useState(null),u=f.useCallback(async()=>{try{const p=await fetch("/api/todos");if(!p.ok)throw new Error(`HTTP ${p.status}`);n(await p.json()),c(null)}catch(p){c(p instanceof Error?p.message:"Failed to fetch todos")}finally{i(!1)}},[]);return f.useEffect(()=>{if(!e){i(!1);return}u()},[u,e]),Zl(p=>{e&&p.type==="todos-updated"&&!p.projectSlug&&u()}),{data:t,loading:s,error:l,refetch:u}}async function lg(e,t,n){await fetch(`/api/todos/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:t,tags:n})})}async function A0(e,t,n){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({summary:"Completed."})})}async function D0(e,t,n){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}/block`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:n})})}async function $0(e,t,n){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:n})})}async function L0(e,t){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}/reopen`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}async function sR(e,t){await fetch(`/api/todos/${encodeURIComponent(e)}/reorder`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:t})})}async function I0(e,t){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}`,{method:"DELETE"})}async function cg(e,t){const n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const s=await n.text().catch(()=>"");let i=null;try{i=s?JSON.parse(s):null}catch{}const l=(i==null?void 0:i.error)||s||`HTTP ${n.status}`,c=new Error(l);throw c.status=n.status,c}return n.json().catch(()=>({}))}async function oR(e,t){return await cg(`/api/todos/${encodeURIComponent(e)}/promote`,t)}async function iR(e){return await cg("/api/todos/promote-bulk",e)}async function aR(e,t,n){await cg(`/api/todos/${encodeURIComponent(e)}/${t}/move`,{to:n})}const lR=new Set(["/projects","/assignments","/servers","/todos"]);function Mu(e,t){return lR.has(e)?`${t}${e}`:e}const cR=[{id:"page-overview",title:"Overview",basePath:"/",keywords:["home","dashboard"]},{id:"page-projects",title:"Projects",basePath:"/projects",keywords:[]},{id:"page-assignments",title:"Assignments",basePath:"/assignments",keywords:[]},{id:"page-todos",title:"Todos",basePath:"/todos",keywords:["tasks"]},{id:"page-servers",title:"Servers",basePath:"/servers",keywords:["sessions"]},{id:"page-playbooks",title:"Playbooks",basePath:"/playbooks",keywords:[]},{id:"page-memories",title:"Memories",basePath:"/memories",keywords:["knowledge","learnings"]},{id:"page-resources",title:"Resources",basePath:"/resources",keywords:["knowledge","reference"]},{id:"page-settings",title:"Settings",basePath:"/settings",keywords:[]},{id:"page-help",title:"Help",basePath:"/help",keywords:["shortcuts"]}];function uR(e){const t=[];for(const n of cR)t.push({type:"page",id:n.id,title:n.title,keywords:[...n.keywords],route:Mu(n.basePath,e.wsPrefix)});for(const n of e.projects??[]){const s=n.workspace?`/w/${n.workspace}`:"";t.push({type:"project",id:`project-${n.slug}`,title:n.title,subtitle:n.slug,keywords:n.tags,route:`${s}/projects/${n.slug}`}),t.push({type:"todo",id:`project-todos-${n.slug}`,title:`${n.title} todos`,subtitle:`${n.slug} · project`,keywords:[...n.tags??[],"project","todos"],route:`${s}/projects/${n.slug}?tab=todos`})}for(const n of e.assignments??[]){const s=n.projectWorkspace?`/w/${n.projectWorkspace}`:"";t.push({type:"assignment",id:n.projectSlug===null?`assignment-standalone-${n.id}`:`assignment-${n.projectSlug}-${n.slug}`,title:n.title,subtitle:`${n.projectTitle} · ${n.status}`,keywords:[n.projectSlug??"standalone",n.assignee??""].filter(i=>!!i),route:n.projectSlug===null?`/assignments/${n.id}`:`${s}/projects/${n.projectSlug}/assignments/${n.slug}`})}for(const n of e.playbooks??[])t.push({type:"playbook",id:`playbook-${n.slug}`,title:n.name,subtitle:n.description,keywords:n.tags,route:`/playbooks/${n.slug}`});for(const n of e.servers??[])t.push({type:"server",id:`server-${n.name}`,title:n.name,subtitle:n.alive?"alive":"dead",route:`${Mu("/servers",e.wsPrefix)}#server-${encodeURIComponent(n.name)}`});for(const n of e.todos??[]){const s=n.workspace&&n.workspace!=="_ungrouped"?`/w/${n.workspace}`:e.wsPrefix,i=Mu("/todos",s);t.push({type:"todo",id:`todo-${n.id}`,title:n.description,subtitle:n.status,keywords:n.tags,route:`${i}?focus=${encodeURIComponent(n.id)}`})}return t}function mr(e){return e.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function Fu(e){return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}async function dR(e,t,n){const s=t?"disable":"enable",i=await fetch(`/api/playbooks/${encodeURIComponent(e)}/${s}`,{method:"POST"});if(!i.ok){const l=await i.json().catch(()=>({}));throw new Error(l.error||`Failed to ${s} playbook`)}n()}async function cm(e,t){const n=await fetch(`/api/todos/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:t})});if(!n.ok){const s=await n.json().catch(()=>({}));throw new Error(s.error||`Failed to create todo (HTTP ${n.status})`)}}async function lv(){const e=await fetch("/api/workspaces");if(!e.ok)throw new Error(`Failed to load workspaces (HTTP ${e.status})`);const t=await e.json();return{workspaces:Array.isArray(t.workspaces)?t.workspaces:[],hasUngrouped:t.hasUngrouped===!0}}async function cv(){const e=await fetch("/api/projects");if(!e.ok)throw new Error(`Failed to load projects (HTTP ${e.status})`);const t=await e.json();return Array.isArray(t)?t:[]}async function um(e){const t=await fetch(e);if(!t.ok)throw new Error(`Failed to load template (HTTP ${t.status})`);const n=await t.json();if(!n.content)throw new Error("Template returned no content");return n.content}function $o(e,t,n){const s=e.match(/^(---\n)([\s\S]*?)(\n---)/);if(!s)return`---
|
|
462
|
+
${t}: ${JSON.stringify(n)}
|
|
463
|
+
---
|
|
464
|
+
${e}`;const i=s[1],l=s[2],c=s[3],u=e.slice(s[0].length),p=JSON.stringify(n),m=new RegExp(`^${t}:\\s*.*$`,"m");let h;return m.test(l)?h=l.replace(m,`${t}: ${p}`):h=`${l}
|
|
465
|
+
${t}: ${p}`,`${i}${h}${c}${u}`}const fR=/^[a-z0-9][a-z0-9-]*$/;function pR(e){const{playbooks:t,projectSlug:n,currentProjectTitle:s,currentProjectWorkspace:i,wsPrefix:l,refetchPlaybooks:c,navigate:u,toggleTheme:p}=e,m=[];if(m.push({id:"new-workspace",title:"New Workspace",subtitle:"Create a Syntaur workspace",group:"Create",keywords:["new","create","workspace"],bindableKind:"new-workspace",flow:{steps:[{kind:"text",id:"name",label:"Workspace name",placeholder:"lowercase, hyphenated (e.g. acme-app)",required:!0,pattern:{regex:fR,message:"Use lowercase letters, digits, and hyphens (e.g. acme-app). Must start with a letter or digit."}}],submit:async(h,x)=>{const y=(h.name??"").trim();if(!y)throw new Error("Name is required");const b=await fetch("/api/workspaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:y})});if(!b.ok){const E=await b.json().catch(()=>({}));throw new Error(E.error||`Failed to create workspace (HTTP ${b.status})`)}x.navigate(`/w/${y}/projects`)}}}),m.push({id:"new-project",title:"New Project",subtitle:"Create a project (pick workspace)",group:"Create",keywords:["new","create","project"],bindableKind:"new-project",flow:{steps:[{kind:"picker",id:"workspace",label:"Workspace",emptyMessage:'No workspaces yet — create one with "New Workspace"',loadOptions:async()=>{const{workspaces:h,hasUngrouped:x}=await lv(),y=[{value:"_ungrouped",label:"Ungrouped",hint:"no workspace"}];for(const b of h)y.push({value:b,label:b,hint:"workspace"});return y}},{kind:"text",id:"title",label:"Project title",placeholder:"e.g. Marketing site rebuild",required:!0}],submit:async(h,x)=>{const y=(h.workspace??"").trim(),b=(h.title??"").trim();if(!b)throw new Error("Title is required");const E=mr(b);if(!E)throw new Error("Title must contain at least one alphanumeric character");let k=await um("/api/templates/project");k=$o(k,"slug",E),k=$o(k,"title",b),y&&y!=="_ungrouped"&&(k=$o(k,"workspace",y));const w=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:k})}),j=await w.json().catch(()=>({}));if(!w.ok)throw new Error(j.error||`Failed to create project (HTTP ${w.status})`);const C=y&&y!=="_ungrouped"?`/w/${y}/projects/${j.slug??E}`:`/projects/${j.slug??E}`;x.navigate(C)}}}),m.push({id:"new-todo",title:"New Todo",subtitle:"Pick scope (global / workspace / project)",group:"Create",keywords:["new","create","todo","task"],bindableKind:"new-todo",flow:{steps:[{kind:"picker",id:"scope",label:"Scope",loadOptions:async()=>{const[{workspaces:h},x]=await Promise.all([lv(),cv()]),y=[{value:"_ungrouped",label:"Global",hint:"no workspace"}];for(const b of h)y.push({value:b,label:b,hint:"workspace"});for(const b of x){const E=b.workspace??"_ungrouped";y.push({value:E,label:`${b.title}`,hint:`project · ${b.workspace??"ungrouped"}`})}return y}},{kind:"text",id:"description",label:"Description",placeholder:"Describe the todo…",required:!0}],submit:async h=>{const x=(h.scope??"_ungrouped").trim()||"_ungrouped",y=(h.description??"").trim();if(!y)throw new Error("Description is required");await lg(x,y)}}}),m.push({id:"new-assignment",title:"New Assignment",subtitle:"Pick standalone or a project",group:"Create",keywords:["new","create","assignment"],bindableKind:"new-assignment",flow:{steps:[{kind:"picker",id:"project",label:"Project",loadOptions:async()=>{const h=await cv(),x=[{value:"_standalone",label:"Standalone",hint:"one-off / not in a project"}];for(const y of h)x.push({value:y.slug,label:y.title,hint:y.workspace?`workspace · ${y.workspace}`:"ungrouped"});return x}},{kind:"text",id:"title",label:"Assignment title",placeholder:"What needs to get done?",required:!0}],submit:async(h,x)=>{var N;const y=(h.project??"_standalone").trim()||"_standalone",b=(h.title??"").trim();if(!b)throw new Error("Title is required");const E=mr(b);if(!E)throw new Error("Title must contain at least one alphanumeric character");if(y==="_standalone"){let T=await um("/api/templates/assignment?standalone=1");T=$o(T,"slug",E),T=$o(T,"title",b);const L=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:T})}),P=await L.json().catch(()=>({}));if(!L.ok)throw new Error(P.error||`Failed to create assignment (HTTP ${L.status})`);const $=((N=P==null?void 0:P.assignment)==null?void 0:N.id)??(P==null?void 0:P.id);$?x.navigate(`/assignments/${$}`):x.navigate("/assignments");return}let k=await um("/api/templates/assignment");k=$o(k,"slug",E),k=$o(k,"title",b);const w=await fetch(`/api/projects/${encodeURIComponent(y)}/assignments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:k})}),j=await w.json().catch(()=>({}));if(!w.ok)throw new Error(j.error||`Failed to create assignment (HTTP ${w.status})`);const C=j.slug??E;x.navigate(`/projects/${y}/assignments/${C}`)}}}),m.push({id:"create-project-route",title:"New Project (advanced editor)",subtitle:"Open the markdown editor",group:"Create",keywords:["new","create","project","advanced","editor"],run:()=>u(`${l}/create/project`)}),m.push({id:"create-standalone-assignment",title:"New Standalone Assignment (editor)",subtitle:"Open the markdown editor",group:"Create",keywords:["new","create","assignment","standalone","one-off","editor"],run:()=>u(`${l}/assignments/new`)}),n&&m.push({id:`create-assignment-in-${n}`,title:`New Assignment in ${s??n}`,subtitle:n,group:"Create",keywords:["new","create","assignment",n],run:()=>u(`${l}/projects/${n}/create/assignment`)}),m.push({id:"create-playbook",title:"New Playbook",group:"Create",keywords:["new","create","playbook"],run:()=>u("/playbooks/create")}),m.push({id:"create-todo-global",title:"New Todo (global, quick)",subtitle:"Ungrouped, single-step",group:"Create",keywords:["new","create","todo","global","ungrouped","quick"],requiresInput:{placeholder:"Describe the todo…",runWithInput:async h=>{const x=h.trim();x&&await cm("_ungrouped",x)}}}),l){const h=l.replace(/^\/w\//,"");m.push({id:`create-todo-workspace-${h}`,title:`New Todo in workspace ${h}`,subtitle:h,group:"Create",keywords:["new","create","todo","workspace",h],requiresInput:{placeholder:`Describe the todo for workspace ${h}…`,runWithInput:async x=>{const y=x.trim();y&&await cm(h,y)}}})}n&&i&&m.push({id:`create-todo-project-${n}`,title:`New Todo in project ${s??n}`,subtitle:`${n} · workspace ${i}`,group:"Create",keywords:["new","create","todo","project",n,i],requiresInput:{placeholder:`Describe the todo for project ${s??n}…`,runWithInput:async h=>{const x=h.trim();x&&await cm(i,x)}}});for(const h of t)m.push({id:`toggle-playbook-${h.slug}`,title:`Toggle Playbook: ${h.name}`,subtitle:h.enabled?"enabled":"disabled",group:"Toggle",keywords:["toggle","playbook",h.slug,...h.tags??[]],run:()=>dR(h.slug,h.enabled,c)});return m.push({id:"toggle-theme",title:"Toggle theme",subtitle:"Light / dark",group:"Theme",keywords:["theme","toggle","light","dark","appearance"],run:()=>p()}),m}function Vt(e,t,{checkForDefaultPrevented:n=!0}={}){return function(i){if(e==null||e(i),n===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function uv(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ld(...e){return t=>{let n=!1;const s=e.map(i=>{const l=uv(i,t);return!n&&typeof l=="function"&&(n=!0),l});if(n)return()=>{for(let i=0;i<s.length;i++){const l=s[i];typeof l=="function"?l():uv(e[i],null)}}}}function _n(...e){return f.useCallback(Ld(...e),e)}function mR(e,t){const n=f.createContext(t),s=l=>{const{children:c,...u}=l,p=f.useMemo(()=>u,Object.values(u));return r.jsx(n.Provider,{value:p,children:c})};s.displayName=e+"Provider";function i(l){const c=f.useContext(n);if(c)return c;if(t!==void 0)return t;throw new Error(`\`${l}\` must be used within \`${e}\``)}return[s,i]}function Wo(e,t=[]){let n=[];function s(l,c){const u=f.createContext(c),p=n.length;n=[...n,c];const m=x=>{var j;const{scope:y,children:b,...E}=x,k=((j=y==null?void 0:y[e])==null?void 0:j[p])||u,w=f.useMemo(()=>E,Object.values(E));return r.jsx(k.Provider,{value:w,children:b})};m.displayName=l+"Provider";function h(x,y){var k;const b=((k=y==null?void 0:y[e])==null?void 0:k[p])||u,E=f.useContext(b);if(E)return E;if(c!==void 0)return c;throw new Error(`\`${x}\` must be used within \`${l}\``)}return[m,h]}const i=()=>{const l=n.map(c=>f.createContext(c));return function(u){const p=(u==null?void 0:u[e])||l;return f.useMemo(()=>({[`__scope${e}`]:{...u,[e]:p}}),[u,p])}};return i.scopeName=e,[s,hR(i,...t)]}function hR(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const s=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(l){const c=s.reduce((u,{useScope:p,scopeName:m})=>{const x=p(l)[`__scope${m}`];return{...u,...x}},{});return f.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}var so=globalThis!=null&&globalThis.document?f.useLayoutEffect:()=>{},gR=Cj[" useId ".trim().toString()]||(()=>{}),xR=0;function Hi(e){const[t,n]=f.useState(gR());return so(()=>{n(s=>s??String(xR++))},[e]),e||(t?`radix-${t}`:"")}var yR=Cj[" useInsertionEffect ".trim().toString()]||so;function Id({prop:e,defaultProp:t,onChange:n=()=>{},caller:s}){const[i,l,c]=bR({defaultProp:t,onChange:n}),u=e!==void 0,p=u?e:i;{const h=f.useRef(e!==void 0);f.useEffect(()=>{const x=h.current;x!==u&&console.warn(`${s} is changing from ${x?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),h.current=u},[u,s])}const m=f.useCallback(h=>{var x;if(u){const y=vR(h)?h(e):h;y!==e&&((x=c.current)==null||x.call(c,y))}else l(h)},[u,e,l,c]);return[p,m]}function bR({defaultProp:e,onChange:t}){const[n,s]=f.useState(e),i=f.useRef(n),l=f.useRef(t);return yR(()=>{l.current=t},[t]),f.useEffect(()=>{var c;i.current!==n&&((c=l.current)==null||c.call(l,n),i.current=n)},[n,i]),[n,s,l]}function vR(e){return typeof e=="function"}function wR(e){const t=jR(e),n=f.forwardRef((s,i)=>{const{children:l,...c}=s,u=f.Children.toArray(l),p=u.find(SR);if(p){const m=p.props.children,h=u.map(x=>x===p?f.Children.count(m)>1?f.Children.only(null):f.isValidElement(m)?m.props.children:null:x);return r.jsx(t,{...c,ref:i,children:f.isValidElement(m)?f.cloneElement(m,void 0,h):null})}return r.jsx(t,{...c,ref:i,children:l})});return n.displayName=`${e}.Slot`,n}function jR(e){const t=f.forwardRef((n,s)=>{const{children:i,...l}=n;if(f.isValidElement(i)){const c=CR(i),u=NR(l,i.props);return i.type!==f.Fragment&&(u.ref=s?Ld(s,c):c),f.cloneElement(i,u)}return f.Children.count(i)>1?f.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var kR=Symbol("radix.slottable");function SR(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===kR}function NR(e,t){const n={...t};for(const s in t){const i=e[s],l=t[s];/^on[A-Z]/.test(s)?i&&l?n[s]=(...u)=>{const p=l(...u);return i(...u),p}:i&&(n[s]=i):s==="style"?n[s]={...i,...l}:s==="className"&&(n[s]=[i,l].filter(Boolean).join(" "))}return{...e,...n}}function CR(e){var s,i;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ER=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],dn=ER.reduce((e,t)=>{const n=wR(`Primitive.${t}`),s=f.forwardRef((i,l)=>{const{asChild:c,...u}=i,p=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(p,{...u,ref:l})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{});function TR(e,t){e&&Es.flushSync(()=>e.dispatchEvent(t))}function zo(e){const t=f.useRef(e);return f.useEffect(()=>{t.current=e}),f.useMemo(()=>(...n)=>{var s;return(s=t.current)==null?void 0:s.call(t,...n)},[])}function PR(e,t=globalThis==null?void 0:globalThis.document){const n=zo(e);f.useEffect(()=>{const s=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",s,{capture:!0}),()=>t.removeEventListener("keydown",s,{capture:!0})},[n,t])}var RR="DismissableLayer",uh="dismissableLayer.update",AR="dismissableLayer.pointerDownOutside",DR="dismissableLayer.focusOutside",dv,O0=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ug=f.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:l,onInteractOutside:c,onDismiss:u,...p}=e,m=f.useContext(O0),[h,x]=f.useState(null),y=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,b]=f.useState({}),E=_n(t,$=>x($)),k=Array.from(m.layers),[w]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),j=k.indexOf(w),C=h?k.indexOf(h):-1,N=m.layersWithOutsidePointerEventsDisabled.size>0,T=C>=j,L=IR($=>{const F=$.target,X=[...m.branches].some(te=>te.contains(F));!T||X||(i==null||i($),c==null||c($),$.defaultPrevented||u==null||u())},y),P=OR($=>{const F=$.target;[...m.branches].some(te=>te.contains(F))||(l==null||l($),c==null||c($),$.defaultPrevented||u==null||u())},y);return PR($=>{C===m.layers.size-1&&(s==null||s($),!$.defaultPrevented&&u&&($.preventDefault(),u()))},y),f.useEffect(()=>{if(h)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(dv=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(h)),m.layers.add(h),fv(),()=>{n&&m.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=dv)}},[h,y,n,m]),f.useEffect(()=>()=>{h&&(m.layers.delete(h),m.layersWithOutsidePointerEventsDisabled.delete(h),fv())},[h,m]),f.useEffect(()=>{const $=()=>b({});return document.addEventListener(uh,$),()=>document.removeEventListener(uh,$)},[]),r.jsx(dn.div,{...p,ref:E,style:{pointerEvents:N?T?"auto":"none":void 0,...e.style},onFocusCapture:Vt(e.onFocusCapture,P.onFocusCapture),onBlurCapture:Vt(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:Vt(e.onPointerDownCapture,L.onPointerDownCapture)})});ug.displayName=RR;var $R="DismissableLayerBranch",LR=f.forwardRef((e,t)=>{const n=f.useContext(O0),s=f.useRef(null),i=_n(t,s);return f.useEffect(()=>{const l=s.current;if(l)return n.branches.add(l),()=>{n.branches.delete(l)}},[n.branches]),r.jsx(dn.div,{...e,ref:i})});LR.displayName=$R;function IR(e,t=globalThis==null?void 0:globalThis.document){const n=zo(e),s=f.useRef(!1),i=f.useRef(()=>{});return f.useEffect(()=>{const l=u=>{if(u.target&&!s.current){let p=function(){_0(AR,n,m,{discrete:!0})};const m={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=p,t.addEventListener("click",i.current,{once:!0})):p()}else t.removeEventListener("click",i.current);s.current=!1},c=window.setTimeout(()=>{t.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(c),t.removeEventListener("pointerdown",l),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>s.current=!0}}function OR(e,t=globalThis==null?void 0:globalThis.document){const n=zo(e),s=f.useRef(!1);return f.useEffect(()=>{const i=l=>{l.target&&!s.current&&_0(DR,n,{originalEvent:l},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function fv(){const e=new CustomEvent(uh);document.dispatchEvent(e)}function _0(e,t,n,{discrete:s}){const i=n.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),s?TR(i,l):i.dispatchEvent(l)}var dm="focusScope.autoFocusOnMount",fm="focusScope.autoFocusOnUnmount",pv={bubbles:!1,cancelable:!0},_R="FocusScope",M0=f.forwardRef((e,t)=>{const{loop:n=!1,trapped:s=!1,onMountAutoFocus:i,onUnmountAutoFocus:l,...c}=e,[u,p]=f.useState(null),m=zo(i),h=zo(l),x=f.useRef(null),y=_n(t,k=>p(k)),b=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(s){let k=function(N){if(b.paused||!u)return;const T=N.target;u.contains(T)?x.current=T:to(x.current,{select:!0})},w=function(N){if(b.paused||!u)return;const T=N.relatedTarget;T!==null&&(u.contains(T)||to(x.current,{select:!0}))},j=function(N){if(document.activeElement===document.body)for(const L of N)L.removedNodes.length>0&&to(u)};document.addEventListener("focusin",k),document.addEventListener("focusout",w);const C=new MutationObserver(j);return u&&C.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",k),document.removeEventListener("focusout",w),C.disconnect()}}},[s,u,b.paused]),f.useEffect(()=>{if(u){hv.add(b);const k=document.activeElement;if(!u.contains(k)){const j=new CustomEvent(dm,pv);u.addEventListener(dm,m),u.dispatchEvent(j),j.defaultPrevented||(MR(VR(F0(u)),{select:!0}),document.activeElement===k&&to(u))}return()=>{u.removeEventListener(dm,m),setTimeout(()=>{const j=new CustomEvent(fm,pv);u.addEventListener(fm,h),u.dispatchEvent(j),j.defaultPrevented||to(k??document.body,{select:!0}),u.removeEventListener(fm,h),hv.remove(b)},0)}}},[u,m,h,b]);const E=f.useCallback(k=>{if(!n&&!s||b.paused)return;const w=k.key==="Tab"&&!k.altKey&&!k.ctrlKey&&!k.metaKey,j=document.activeElement;if(w&&j){const C=k.currentTarget,[N,T]=FR(C);N&&T?!k.shiftKey&&j===T?(k.preventDefault(),n&&to(N,{select:!0})):k.shiftKey&&j===N&&(k.preventDefault(),n&&to(T,{select:!0})):j===C&&k.preventDefault()}},[n,s,b.paused]);return r.jsx(dn.div,{tabIndex:-1,...c,ref:y,onKeyDown:E})});M0.displayName=_R;function MR(e,{select:t=!1}={}){const n=document.activeElement;for(const s of e)if(to(s,{select:t}),document.activeElement!==n)return}function FR(e){const t=F0(e),n=mv(t,e),s=mv(t.reverse(),e);return[n,s]}function F0(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const i=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||i?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function mv(e,t){for(const n of e)if(!zR(n,{upTo:t}))return n}function zR(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function BR(e){return e instanceof HTMLInputElement&&"select"in e}function to(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&BR(e)&&t&&e.select()}}var hv=UR();function UR(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=gv(e,t),e.unshift(t)},remove(t){var n;e=gv(e,t),(n=e[0])==null||n.resume()}}}function gv(e,t){const n=[...e],s=n.indexOf(t);return s!==-1&&n.splice(s,1),n}function VR(e){return e.filter(t=>t.tagName!=="A")}var HR="Portal",dg=f.forwardRef((e,t)=>{var u;const{container:n,...s}=e,[i,l]=f.useState(!1);so(()=>l(!0),[]);const c=n||i&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return c?dT.createPortal(r.jsx(dn.div,{...s,ref:t}),c):null});dg.displayName=HR;function WR(e,t){return f.useReducer((n,s)=>t[n][s]??n,e)}var Ko=e=>{const{present:t,children:n}=e,s=KR(t),i=typeof n=="function"?n({present:s.isPresent}):f.Children.only(n),l=_n(s.ref,qR(i));return typeof n=="function"||s.isPresent?f.cloneElement(i,{ref:l}):null};Ko.displayName="Presence";function KR(e){const[t,n]=f.useState(),s=f.useRef(null),i=f.useRef(e),l=f.useRef("none"),c=e?"mounted":"unmounted",[u,p]=WR(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return f.useEffect(()=>{const m=yu(s.current);l.current=u==="mounted"?m:"none"},[u]),so(()=>{const m=s.current,h=i.current;if(h!==e){const y=l.current,b=yu(m);e?p("MOUNT"):b==="none"||(m==null?void 0:m.display)==="none"?p("UNMOUNT"):p(h&&y!==b?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,p]),so(()=>{if(t){let m;const h=t.ownerDocument.defaultView??window,x=b=>{const k=yu(s.current).includes(CSS.escape(b.animationName));if(b.target===t&&k&&(p("ANIMATION_END"),!i.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",m=h.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},y=b=>{b.target===t&&(l.current=yu(s.current))};return t.addEventListener("animationstart",y),t.addEventListener("animationcancel",x),t.addEventListener("animationend",x),()=>{h.clearTimeout(m),t.removeEventListener("animationstart",y),t.removeEventListener("animationcancel",x),t.removeEventListener("animationend",x)}}else p("ANIMATION_END")},[t,p]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:f.useCallback(m=>{s.current=m?getComputedStyle(m):null,n(m)},[])}}function yu(e){return(e==null?void 0:e.animationName)||"none"}function qR(e){var s,i;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pm=0;function GR(){f.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??xv()),document.body.insertAdjacentElement("beforeend",e[1]??xv()),pm++,()=>{pm===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),pm--}},[])}function xv(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ss=function(){return ss=Object.assign||function(t){for(var n,s=1,i=arguments.length;s<i;s++){n=arguments[s];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(t[l]=n[l])}return t},ss.apply(this,arguments)};function z0(e,t){var n={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,s=Object.getOwnPropertySymbols(e);i<s.length;i++)t.indexOf(s[i])<0&&Object.prototype.propertyIsEnumerable.call(e,s[i])&&(n[s[i]]=e[s[i]]);return n}function YR(e,t,n){if(n||arguments.length===2)for(var s=0,i=t.length,l;s<i;s++)(l||!(s in t))&&(l||(l=Array.prototype.slice.call(t,0,s)),l[s]=t[s]);return e.concat(l||Array.prototype.slice.call(t))}var zu="right-scroll-bar-position",Bu="width-before-scroll-bar",JR="with-scroll-bars-hidden",XR="--removed-body-scroll-bar-size";function mm(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function QR(e,t){var n=f.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(s){var i=n.value;i!==s&&(n.value=s,n.callback(s,i))}}}})[0];return n.callback=t,n.facade}var ZR=typeof window<"u"?f.useLayoutEffect:f.useEffect,yv=new WeakMap;function eA(e,t){var n=QR(null,function(s){return e.forEach(function(i){return mm(i,s)})});return ZR(function(){var s=yv.get(n);if(s){var i=new Set(s),l=new Set(e),c=n.current;i.forEach(function(u){l.has(u)||mm(u,null)}),l.forEach(function(u){i.has(u)||mm(u,c)})}yv.set(n,e)},[e]),n}function tA(e){return e}function nA(e,t){t===void 0&&(t=tA);var n=[],s=!1,i={read:function(){if(s)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(l){var c=t(l,s);return n.push(c),function(){n=n.filter(function(u){return u!==c})}},assignSyncMedium:function(l){for(s=!0;n.length;){var c=n;n=[],c.forEach(l)}n={push:function(u){return l(u)},filter:function(){return n}}},assignMedium:function(l){s=!0;var c=[];if(n.length){var u=n;n=[],u.forEach(l),c=n}var p=function(){var h=c;c=[],h.forEach(l)},m=function(){return Promise.resolve().then(p)};m(),n={push:function(h){c.push(h),m()},filter:function(h){return c=c.filter(h),n}}}};return i}function rA(e){e===void 0&&(e={});var t=nA(null);return t.options=ss({async:!0,ssr:!1},e),t}var B0=function(e){var t=e.sideCar,n=z0(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var s=t.read();if(!s)throw new Error("Sidecar medium not found");return f.createElement(s,ss({},n))};B0.isSideCarExport=!0;function sA(e,t){return e.useMedium(t),B0}var U0=rA(),hm=function(){},Od=f.forwardRef(function(e,t){var n=f.useRef(null),s=f.useState({onScrollCapture:hm,onWheelCapture:hm,onTouchMoveCapture:hm}),i=s[0],l=s[1],c=e.forwardProps,u=e.children,p=e.className,m=e.removeScrollBar,h=e.enabled,x=e.shards,y=e.sideCar,b=e.noRelative,E=e.noIsolation,k=e.inert,w=e.allowPinchZoom,j=e.as,C=j===void 0?"div":j,N=e.gapMode,T=z0(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),L=y,P=eA([n,t]),$=ss(ss({},T),i);return f.createElement(f.Fragment,null,h&&f.createElement(L,{sideCar:U0,removeScrollBar:m,shards:x,noRelative:b,noIsolation:E,inert:k,setCallbacks:l,allowPinchZoom:!!w,lockRef:n,gapMode:N}),c?f.cloneElement(f.Children.only(u),ss(ss({},$),{ref:P})):f.createElement(C,ss({},$,{className:p,ref:P}),u))});Od.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Od.classNames={fullWidth:Bu,zeroRight:zu};var oA=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function iA(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=oA();return t&&e.setAttribute("nonce",t),e}function aA(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function lA(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var cA=function(){var e=0,t=null;return{add:function(n){e==0&&(t=iA())&&(aA(t,n),lA(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},uA=function(){var e=cA();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},V0=function(){var e=uA(),t=function(n){var s=n.styles,i=n.dynamic;return e(s,i),null};return t},dA={left:0,top:0,right:0,gap:0},gm=function(e){return parseInt(e||"",10)||0},fA=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],s=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[gm(n),gm(s),gm(i)]},pA=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return dA;var t=fA(e),n=document.documentElement.clientWidth,s=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,s-n+t[2]-t[0])}},mA=V0(),Wi="data-scroll-locked",hA=function(e,t,n,s){var i=e.left,l=e.top,c=e.right,u=e.gap;return n===void 0&&(n="margin"),`
|
|
466
|
+
.`.concat(JR,` {
|
|
467
|
+
overflow: hidden `).concat(s,`;
|
|
468
|
+
padding-right: `).concat(u,"px ").concat(s,`;
|
|
469
|
+
}
|
|
470
|
+
body[`).concat(Wi,`] {
|
|
471
|
+
overflow: hidden `).concat(s,`;
|
|
472
|
+
overscroll-behavior: contain;
|
|
473
|
+
`).concat([t&&"position: relative ".concat(s,";"),n==="margin"&&`
|
|
474
|
+
padding-left: `.concat(i,`px;
|
|
475
|
+
padding-top: `).concat(l,`px;
|
|
476
|
+
padding-right: `).concat(c,`px;
|
|
477
|
+
margin-left:0;
|
|
478
|
+
margin-top:0;
|
|
479
|
+
margin-right: `).concat(u,"px ").concat(s,`;
|
|
480
|
+
`),n==="padding"&&"padding-right: ".concat(u,"px ").concat(s,";")].filter(Boolean).join(""),`
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
.`).concat(zu,` {
|
|
484
|
+
right: `).concat(u,"px ").concat(s,`;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
.`).concat(Bu,` {
|
|
488
|
+
margin-right: `).concat(u,"px ").concat(s,`;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.`).concat(zu," .").concat(zu,` {
|
|
492
|
+
right: 0 `).concat(s,`;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.`).concat(Bu," .").concat(Bu,` {
|
|
496
|
+
margin-right: 0 `).concat(s,`;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
body[`).concat(Wi,`] {
|
|
500
|
+
`).concat(XR,": ").concat(u,`px;
|
|
501
|
+
}
|
|
502
|
+
`)},bv=function(){var e=parseInt(document.body.getAttribute(Wi)||"0",10);return isFinite(e)?e:0},gA=function(){f.useEffect(function(){return document.body.setAttribute(Wi,(bv()+1).toString()),function(){var e=bv()-1;e<=0?document.body.removeAttribute(Wi):document.body.setAttribute(Wi,e.toString())}},[])},xA=function(e){var t=e.noRelative,n=e.noImportant,s=e.gapMode,i=s===void 0?"margin":s;gA();var l=f.useMemo(function(){return pA(i)},[i]);return f.createElement(mA,{styles:hA(l,!t,i,n?"":"!important")})},dh=!1;if(typeof window<"u")try{var bu=Object.defineProperty({},"passive",{get:function(){return dh=!0,!0}});window.addEventListener("test",bu,bu),window.removeEventListener("test",bu,bu)}catch{dh=!1}var Ci=dh?{passive:!1}:!1,yA=function(e){return e.tagName==="TEXTAREA"},H0=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!yA(e)&&n[t]==="visible")},bA=function(e){return H0(e,"overflowY")},vA=function(e){return H0(e,"overflowX")},vv=function(e,t){var n=t.ownerDocument,s=t;do{typeof ShadowRoot<"u"&&s instanceof ShadowRoot&&(s=s.host);var i=W0(e,s);if(i){var l=K0(e,s),c=l[1],u=l[2];if(c>u)return!0}s=s.parentNode}while(s&&s!==n.body);return!1},wA=function(e){var t=e.scrollTop,n=e.scrollHeight,s=e.clientHeight;return[t,n,s]},jA=function(e){var t=e.scrollLeft,n=e.scrollWidth,s=e.clientWidth;return[t,n,s]},W0=function(e,t){return e==="v"?bA(t):vA(t)},K0=function(e,t){return e==="v"?wA(t):jA(t)},kA=function(e,t){return e==="h"&&t==="rtl"?-1:1},SA=function(e,t,n,s,i){var l=kA(e,window.getComputedStyle(t).direction),c=l*s,u=n.target,p=t.contains(u),m=!1,h=c>0,x=0,y=0;do{if(!u)break;var b=K0(e,u),E=b[0],k=b[1],w=b[2],j=k-w-l*E;(E||j)&&W0(e,u)&&(x+=j,y+=E);var C=u.parentNode;u=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!p&&u!==document.body||p&&(t.contains(u)||t===u));return(h&&Math.abs(x)<1||!h&&Math.abs(y)<1)&&(m=!0),m},vu=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},wv=function(e){return[e.deltaX,e.deltaY]},jv=function(e){return e&&"current"in e?e.current:e},NA=function(e,t){return e[0]===t[0]&&e[1]===t[1]},CA=function(e){return`
|
|
503
|
+
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
504
|
+
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
505
|
+
`)},EA=0,Ei=[];function TA(e){var t=f.useRef([]),n=f.useRef([0,0]),s=f.useRef(),i=f.useState(EA++)[0],l=f.useState(V0)[0],c=f.useRef(e);f.useEffect(function(){c.current=e},[e]),f.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var k=YR([e.lockRef.current],(e.shards||[]).map(jv),!0).filter(Boolean);return k.forEach(function(w){return w.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),k.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var u=f.useCallback(function(k,w){if("touches"in k&&k.touches.length===2||k.type==="wheel"&&k.ctrlKey)return!c.current.allowPinchZoom;var j=vu(k),C=n.current,N="deltaX"in k?k.deltaX:C[0]-j[0],T="deltaY"in k?k.deltaY:C[1]-j[1],L,P=k.target,$=Math.abs(N)>Math.abs(T)?"h":"v";if("touches"in k&&$==="h"&&P.type==="range")return!1;var F=window.getSelection(),X=F&&F.anchorNode,te=X?X===P||X.contains(P):!1;if(te)return!1;var D=vv($,P);if(!D)return!0;if(D?L=$:(L=$==="v"?"h":"v",D=vv($,P)),!D)return!1;if(!s.current&&"changedTouches"in k&&(N||T)&&(s.current=L),!L)return!0;var W=s.current||L;return SA(W,w,k,W==="h"?N:T)},[]),p=f.useCallback(function(k){var w=k;if(!(!Ei.length||Ei[Ei.length-1]!==l)){var j="deltaY"in w?wv(w):vu(w),C=t.current.filter(function(L){return L.name===w.type&&(L.target===w.target||w.target===L.shadowParent)&&NA(L.delta,j)})[0];if(C&&C.should){w.cancelable&&w.preventDefault();return}if(!C){var N=(c.current.shards||[]).map(jv).filter(Boolean).filter(function(L){return L.contains(w.target)}),T=N.length>0?u(w,N[0]):!c.current.noIsolation;T&&w.cancelable&&w.preventDefault()}}},[]),m=f.useCallback(function(k,w,j,C){var N={name:k,delta:w,target:j,should:C,shadowParent:PA(j)};t.current.push(N),setTimeout(function(){t.current=t.current.filter(function(T){return T!==N})},1)},[]),h=f.useCallback(function(k){n.current=vu(k),s.current=void 0},[]),x=f.useCallback(function(k){m(k.type,wv(k),k.target,u(k,e.lockRef.current))},[]),y=f.useCallback(function(k){m(k.type,vu(k),k.target,u(k,e.lockRef.current))},[]);f.useEffect(function(){return Ei.push(l),e.setCallbacks({onScrollCapture:x,onWheelCapture:x,onTouchMoveCapture:y}),document.addEventListener("wheel",p,Ci),document.addEventListener("touchmove",p,Ci),document.addEventListener("touchstart",h,Ci),function(){Ei=Ei.filter(function(k){return k!==l}),document.removeEventListener("wheel",p,Ci),document.removeEventListener("touchmove",p,Ci),document.removeEventListener("touchstart",h,Ci)}},[]);var b=e.removeScrollBar,E=e.inert;return f.createElement(f.Fragment,null,E?f.createElement(l,{styles:CA(i)}):null,b?f.createElement(xA,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function PA(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const RA=sA(U0,TA);var q0=f.forwardRef(function(e,t){return f.createElement(Od,ss({},e,{ref:t,sideCar:RA}))});q0.classNames=Od.classNames;var AA=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ti=new WeakMap,wu=new WeakMap,ju={},xm=0,G0=function(e){return e&&(e.host||G0(e.parentNode))},DA=function(e,t){return t.map(function(n){if(e.contains(n))return n;var s=G0(n);return s&&e.contains(s)?s:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},$A=function(e,t,n,s){var i=DA(t,Array.isArray(e)?e:[e]);ju[n]||(ju[n]=new WeakMap);var l=ju[n],c=[],u=new Set,p=new Set(i),m=function(x){!x||u.has(x)||(u.add(x),m(x.parentNode))};i.forEach(m);var h=function(x){!x||p.has(x)||Array.prototype.forEach.call(x.children,function(y){if(u.has(y))h(y);else try{var b=y.getAttribute(s),E=b!==null&&b!=="false",k=(Ti.get(y)||0)+1,w=(l.get(y)||0)+1;Ti.set(y,k),l.set(y,w),c.push(y),k===1&&E&&wu.set(y,!0),w===1&&y.setAttribute(n,"true"),E||y.setAttribute(s,"true")}catch(j){console.error("aria-hidden: cannot operate on ",y,j)}})};return h(t),u.clear(),xm++,function(){c.forEach(function(x){var y=Ti.get(x)-1,b=l.get(x)-1;Ti.set(x,y),l.set(x,b),y||(wu.has(x)||x.removeAttribute(s),wu.delete(x)),b||x.removeAttribute(n)}),xm--,xm||(Ti=new WeakMap,Ti=new WeakMap,wu=new WeakMap,ju={})}},LA=function(e,t,n){n===void 0&&(n="data-aria-hidden");var s=Array.from(Array.isArray(e)?e:[e]),i=AA(e);return i?(s.push.apply(s,Array.from(i.querySelectorAll("[aria-live], script"))),$A(s,i,n,"aria-hidden")):function(){return null}};function IA(e){const t=OA(e),n=f.forwardRef((s,i)=>{const{children:l,...c}=s,u=f.Children.toArray(l),p=u.find(MA);if(p){const m=p.props.children,h=u.map(x=>x===p?f.Children.count(m)>1?f.Children.only(null):f.isValidElement(m)?m.props.children:null:x);return r.jsx(t,{...c,ref:i,children:f.isValidElement(m)?f.cloneElement(m,void 0,h):null})}return r.jsx(t,{...c,ref:i,children:l})});return n.displayName=`${e}.Slot`,n}function OA(e){const t=f.forwardRef((n,s)=>{const{children:i,...l}=n;if(f.isValidElement(i)){const c=zA(i),u=FA(l,i.props);return i.type!==f.Fragment&&(u.ref=s?Ld(s,c):c),f.cloneElement(i,u)}return f.Children.count(i)>1?f.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var _A=Symbol("radix.slottable");function MA(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===_A}function FA(e,t){const n={...t};for(const s in t){const i=e[s],l=t[s];/^on[A-Z]/.test(s)?i&&l?n[s]=(...u)=>{const p=l(...u);return i(...u),p}:i&&(n[s]=i):s==="style"?n[s]={...i,...l}:s==="className"&&(n[s]=[i,l].filter(Boolean).join(" "))}return{...e,...n}}function zA(e){var s,i;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var _d="Dialog",[Y0,J0]=Wo(_d),[BA,Yr]=Y0(_d),X0=e=>{const{__scopeDialog:t,children:n,open:s,defaultOpen:i,onOpenChange:l,modal:c=!0}=e,u=f.useRef(null),p=f.useRef(null),[m,h]=Id({prop:s,defaultProp:i??!1,onChange:l,caller:_d});return r.jsx(BA,{scope:t,triggerRef:u,contentRef:p,contentId:Hi(),titleId:Hi(),descriptionId:Hi(),open:m,onOpenChange:h,onOpenToggle:f.useCallback(()=>h(x=>!x),[h]),modal:c,children:n})};X0.displayName=_d;var Q0="DialogTrigger",Z0=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Yr(Q0,n),l=_n(t,i.triggerRef);return r.jsx(dn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":mg(i.open),...s,ref:l,onClick:Vt(e.onClick,i.onOpenToggle)})});Z0.displayName=Q0;var fg="DialogPortal",[UA,ek]=Y0(fg,{forceMount:void 0}),tk=e=>{const{__scopeDialog:t,forceMount:n,children:s,container:i}=e,l=Yr(fg,t);return r.jsx(UA,{scope:t,forceMount:n,children:f.Children.map(s,c=>r.jsx(Ko,{present:n||l.open,children:r.jsx(dg,{asChild:!0,container:i,children:c})}))})};tk.displayName=fg;var Zu="DialogOverlay",nk=f.forwardRef((e,t)=>{const n=ek(Zu,e.__scopeDialog),{forceMount:s=n.forceMount,...i}=e,l=Yr(Zu,e.__scopeDialog);return l.modal?r.jsx(Ko,{present:s||l.open,children:r.jsx(HA,{...i,ref:t})}):null});nk.displayName=Zu;var VA=IA("DialogOverlay.RemoveScroll"),HA=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Yr(Zu,n);return r.jsx(q0,{as:VA,allowPinchZoom:!0,shards:[i.contentRef],children:r.jsx(dn.div,{"data-state":mg(i.open),...s,ref:t,style:{pointerEvents:"auto",...s.style}})})}),Bo="DialogContent",rk=f.forwardRef((e,t)=>{const n=ek(Bo,e.__scopeDialog),{forceMount:s=n.forceMount,...i}=e,l=Yr(Bo,e.__scopeDialog);return r.jsx(Ko,{present:s||l.open,children:l.modal?r.jsx(WA,{...i,ref:t}):r.jsx(KA,{...i,ref:t})})});rk.displayName=Bo;var WA=f.forwardRef((e,t)=>{const n=Yr(Bo,e.__scopeDialog),s=f.useRef(null),i=_n(t,n.contentRef,s);return f.useEffect(()=>{const l=s.current;if(l)return LA(l)},[]),r.jsx(sk,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Vt(e.onCloseAutoFocus,l=>{var c;l.preventDefault(),(c=n.triggerRef.current)==null||c.focus()}),onPointerDownOutside:Vt(e.onPointerDownOutside,l=>{const c=l.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0;(c.button===2||u)&&l.preventDefault()}),onFocusOutside:Vt(e.onFocusOutside,l=>l.preventDefault())})}),KA=f.forwardRef((e,t)=>{const n=Yr(Bo,e.__scopeDialog),s=f.useRef(!1),i=f.useRef(!1);return r.jsx(sk,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:l=>{var c,u;(c=e.onCloseAutoFocus)==null||c.call(e,l),l.defaultPrevented||(s.current||(u=n.triggerRef.current)==null||u.focus(),l.preventDefault()),s.current=!1,i.current=!1},onInteractOutside:l=>{var p,m;(p=e.onInteractOutside)==null||p.call(e,l),l.defaultPrevented||(s.current=!0,l.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const c=l.target;((m=n.triggerRef.current)==null?void 0:m.contains(c))&&l.preventDefault(),l.detail.originalEvent.type==="focusin"&&i.current&&l.preventDefault()}})}),sk=f.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:s,onOpenAutoFocus:i,onCloseAutoFocus:l,...c}=e,u=Yr(Bo,n),p=f.useRef(null),m=_n(t,p);return GR(),r.jsxs(r.Fragment,{children:[r.jsx(M0,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:i,onUnmountAutoFocus:l,children:r.jsx(ug,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":mg(u.open),...c,ref:m,onDismiss:()=>u.onOpenChange(!1)})}),r.jsxs(r.Fragment,{children:[r.jsx(GA,{titleId:u.titleId}),r.jsx(JA,{contentRef:p,descriptionId:u.descriptionId})]})]})}),pg="DialogTitle",ok=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Yr(pg,n);return r.jsx(dn.h2,{id:i.titleId,...s,ref:t})});ok.displayName=pg;var ik="DialogDescription",ak=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Yr(ik,n);return r.jsx(dn.p,{id:i.descriptionId,...s,ref:t})});ak.displayName=ik;var lk="DialogClose",ck=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Yr(lk,n);return r.jsx(dn.button,{type:"button",...s,ref:t,onClick:Vt(e.onClick,()=>i.onOpenChange(!1))})});ck.displayName=lk;function mg(e){return e?"open":"closed"}var uk="DialogTitleWarning",[qA,dk]=mR(uk,{contentName:Bo,titleName:pg,docsSlug:"dialog"}),GA=({titleId:e})=>{const t=dk(uk),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
506
|
+
|
|
507
|
+
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
508
|
+
|
|
509
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return f.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},YA="DialogDescriptionWarning",JA=({contentRef:e,descriptionId:t})=>{const s=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${dk(YA).contentName}}.`;return f.useEffect(()=>{var l;const i=(l=e.current)==null?void 0:l.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(s))},[s,e,t]),null},fk=X0,pk=Z0,mk=tk,hg=nk,gg=rk,xg=ok,yg=ak,bg=ck;const sr=fk,XA=pk,QA=mk,ZA=bg,hk=f.forwardRef(({className:e,...t},n)=>r.jsx(hg,{ref:n,className:Ee("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));hk.displayName=hg.displayName;const Wn=f.forwardRef(({className:e,children:t,...n},s)=>r.jsxs(QA,{children:[r.jsx(hk,{}),r.jsx(gg,{ref:s,className:Ee("chrome-card fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 !p-6 outline-none",e),...n,children:t})]}));Wn.displayName=gg.displayName;function Jr({className:e,...t}){return r.jsx("div",{className:Ee("flex flex-col space-y-2 text-left",e),...t})}function Ds({className:e,...t}){return r.jsx("div",{className:Ee("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const Kn=f.forwardRef(({className:e,...t},n)=>r.jsx(xg,{ref:n,className:Ee("text-lg font-semibold tracking-tight text-foreground",e),...t}));Kn.displayName=xg.displayName;const ms=f.forwardRef(({className:e,...t},n)=>r.jsx(yg,{ref:n,className:Ee("text-sm leading-6 text-muted-foreground",e),...t}));ms.displayName=yg.displayName;const e3=-1,t3=-40;function ym(e,t){if(e.length===0)return 0;if(t.length===0)return-1/0;let n=0,s=0,i=-2,l=0;for(let c=0;c<e.length;c++){const u=e[c];let p=!1;for(;s<t.length;)if(t[s]===u){if(n+=100,s===i+1&&(n+=20),s===0)n+=30;else{const m=t[s-1];(m===" "||m==="-"||m==="_"||m==="/")&&(n+=15)}l>0&&(n+=Math.max(t3,l*e3)),i=s,l=0,s++,p=!0;break}else l++,s++;if(!p)return-1/0}return n}const kv={page:0,project:1,assignment:2,playbook:3,server:4,todo:5};function vg(e,t,n=50){const s=e.toLowerCase();if(!s)return t.slice(0,n).map(c=>({...c,score:0}));const l=t.map(c=>{var x;const u=ym(s,c.title.toLowerCase())*1,p=c.subtitle?ym(s,c.subtitle.toLowerCase())*.5:-1/0,m=(x=c.keywords)!=null&&x.length?ym(s,c.keywords.join(" ").toLowerCase())*.3:-1/0,h=Math.max(u,p,m);return{...c,score:h}}).filter(c=>c.score>-1/0);return l.sort((c,u)=>u.score!==c.score?u.score-c.score:c.title.length!==u.title.length?c.title.length-u.title.length:c.title!==u.title?c.title<u.title?-1:1:(kv[c.type]??99)-(kv[u.type]??99)),l.slice(0,n)}const n3={page:"Page",project:"Project",assignment:"Assignment",playbook:"Playbook",server:"Server",todo:"Todo"};function r3({entries:e}){const{paletteOpen:t,closePalette:n}=uo(),s=$t(),[i,l]=f.useState(""),[c,u]=f.useState(0),p=f.useRef(null),m=f.useMemo(()=>vg(i,e,50),[i,e]);f.useEffect(()=>{u(0)},[i,t]),f.useEffect(()=>{t||l("")},[t]),f.useEffect(()=>{var b;const y=(b=p.current)==null?void 0:b.querySelector(`[data-palette-idx="${c}"]`);y==null||y.scrollIntoView({block:"nearest"})},[c]);function h(y){s(y.route),n()}function x(y){if(y.key==="ArrowDown")y.preventDefault(),u(b=>Math.min(m.length-1,b+1));else if(y.key==="ArrowUp")y.preventDefault(),u(b=>Math.max(0,b-1));else if(y.key==="Enter"){y.preventDefault();const b=m[c];b&&h(b)}}return r.jsx(sr,{open:t,onOpenChange:y=>y?null:n(),children:r.jsxs(Wn,{className:"max-w-xl p-0 gap-0",children:[r.jsx(Kn,{className:"sr-only",children:"Command palette"}),r.jsx("input",{autoFocus:!0,type:"text",value:i,onChange:y=>l(y.target.value),onKeyDown:x,placeholder:"Search projects, assignments, playbooks, servers, todos…",className:"w-full rounded-t-xl border-0 border-b border-border/70 bg-transparent px-4 py-3 text-sm text-foreground outline-none focus:ring-0"}),r.jsx("div",{ref:p,className:"max-h-[60vh] overflow-y-auto p-1",children:m.length===0?r.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:i?"No matches":"Start typing to search"}):m.map((y,b)=>{const E=b===c;return r.jsxs("button",{type:"button","data-palette-idx":b,onClick:()=>h(y),onMouseEnter:()=>u(b),className:`flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors ${E?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[r.jsx("span",{className:"shrink-0 rounded border border-border/70 bg-background/60 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:n3[y.type]??y.type}),r.jsx("span",{className:"min-w-0 flex-1 truncate",children:y.title}),y.subtitle?r.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:y.subtitle}):null]},y.id)})}),r.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[r.jsxs("span",{children:["↑↓"," navigate ","·"," ","↵"," open ","·"," Esc close"]}),r.jsxs("span",{children:[m.length," result",m.length===1?"":"s"]})]})]})})}function s3({label:e,onBack:t,disabled:n,stepCounter:s}){return r.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-3 py-2",children:[r.jsxs("button",{type:"button",onClick:t,disabled:n,className:"inline-flex h-7 items-center gap-1 rounded border border-border/70 bg-background/60 px-2 text-[11px] text-muted-foreground transition-colors hover:bg-accent/40 hover:text-foreground disabled:opacity-50","aria-label":"Back",children:[r.jsx(xT,{className:"h-3.5 w-3.5","aria-hidden":"true"}),r.jsx("span",{children:"Back"})]}),r.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:e}),s?r.jsxs("span",{className:"ml-auto text-[10px] text-muted-foreground/80",children:["step ",s.current," of ",s.total]}):null]})}function o3({step:e,initialValue:t,disabled:n,onSubmit:s}){const[i,l]=f.useState(t??""),[c,u]=f.useState(!1),p=f.useRef(null);f.useEffect(()=>{var E;(E=p.current)==null||E.focus()},[]);const m=i.trim(),h=e.required!==!1,x=e.pattern&&m.length>0&&!e.pattern.regex.test(m),y=!n&&(!h||m.length>0)&&!x;function b(E){if(E.key==="Enter"){if(E.preventDefault(),!y){u(!0);return}s(m)}}return r.jsxs(r.Fragment,{children:[r.jsx("input",{ref:p,type:"text",value:i,onChange:E=>{l(E.target.value),u(!1)},onKeyDown:b,placeholder:e.placeholder,disabled:n,className:"w-full border-0 border-b border-border/70 bg-transparent px-4 py-3 text-sm text-foreground outline-none focus:ring-0 disabled:opacity-60"}),c&&e.pattern&&x?r.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:e.pattern.message}):null]})}function i3({step:e,disabled:t,onSubmit:n}){const[s,i]=f.useState({phase:"loading"}),[l,c]=f.useState(""),[u,p]=f.useState(0),[m,h]=f.useState(0),x=f.useRef(null),y=f.useRef(null);f.useEffect(()=>{var k;(k=x.current)==null||k.focus()},[]),f.useEffect(()=>{let k=!1;return i({phase:"loading"}),Promise.resolve().then(()=>e.loadOptions()).then(w=>{k||i({phase:"loaded",options:w})}).catch(w=>{if(k)return;const j=w instanceof Error?w.message:"Failed to load options";i({phase:"error",message:j})}),()=>{k=!0}},[e,m]);const b=f.useMemo(()=>{if(s.phase!=="loaded")return[];const k=s.options.map(w=>({type:"option",title:w.label,subtitle:w.hint,keywords:[w.value],option:w}));return vg(l,k,100)},[s,l]);f.useEffect(()=>{p(0)},[b.length]),f.useEffect(()=>{var w;const k=(w=y.current)==null?void 0:w.querySelector(`[data-picker-idx="${u}"]`);k==null||k.scrollIntoView({block:"nearest"})},[u]);function E(k){if(s.phase==="loaded"){if(k.key==="ArrowDown")k.preventDefault(),p(w=>Math.min(b.length-1,w+1));else if(k.key==="ArrowUp")k.preventDefault(),p(w=>Math.max(0,w-1));else if(k.key==="Enter"){k.preventDefault();const w=b[u];w&&n(w.option.value)}}}return r.jsxs(r.Fragment,{children:[r.jsx("input",{ref:x,type:"text",value:l,onChange:k=>c(k.target.value),onKeyDown:E,placeholder:`Filter ${e.label.toLowerCase()}…`,disabled:t||s.phase==="loading",className:"w-full border-0 border-b border-border/70 bg-transparent px-4 py-3 text-sm text-foreground outline-none focus:ring-0 disabled:opacity-60"}),r.jsx("div",{ref:y,className:"max-h-[60vh] min-h-[120px] overflow-y-auto p-1",children:s.phase==="loading"?r.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:"Loading…"}):s.phase==="error"?r.jsxs("div",{className:"px-4 py-4 text-sm",children:[r.jsxs("div",{className:"mb-2 text-destructive",children:["Failed to load: ",s.message]}),r.jsx("button",{type:"button",onClick:()=>h(k=>k+1),className:"rounded border border-border/70 bg-background/60 px-2 py-1 text-xs text-foreground hover:bg-accent/40",children:"Retry"})]}):b.length===0?r.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:s.options.length===0?e.emptyMessage??"No options available":"No matches"}):b.map((k,w)=>{const j=w===u;return r.jsxs("button",{type:"button","data-picker-idx":w,onClick:()=>n(k.option.value),onMouseEnter:()=>p(w),disabled:t,className:`flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors disabled:opacity-60 ${j?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[r.jsx("span",{className:"min-w-0 flex-1 truncate",children:k.option.label}),k.option.hint?r.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:k.option.hint}):null]},k.option.value)})})]})}function a3({entries:e}){var ue,me;const t=$t(),{actionsPaletteOpen:n,closeActionsPalette:s,customBindings:i,bindAction:l,findConflict:c,pendingActionKind:u,consumePendingActionKind:p}=uo(),[m,h]=f.useState(""),[x,y]=f.useState(0),[b,E]=f.useState(null),[k,w]=f.useState(""),[j,C]=f.useState(null),[N,T]=f.useState(null),[L,P]=f.useState(!1),[$,F]=f.useState(null),X=f.useRef(null),te=f.useMemo(()=>e.map(U=>({type:U.group.toLowerCase(),title:U.title,subtitle:U.subtitle,keywords:U.keywords,action:U})),[e]),D=f.useMemo(()=>vg(m,te,50),[m,te]);f.useEffect(()=>{y(0)},[m,n]),f.useEffect(()=>{n||(h(""),E(null),w(""),C(null),T(null),P(!1),F(null))},[n]),f.useEffect(()=>{if(!n||!u)return;const U=p();if(!U)return;const se=e.find(de=>de.bindableKind===U);se&&W(se)},[n,u]),f.useEffect(()=>{var se;const U=(se=X.current)==null?void 0:se.querySelector(`[data-palette-idx="${x}"]`);U==null||U.scrollIntoView({block:"nearest"})},[x]);async function W(U){if(!L){if(U.flow&&U.flow.steps.length>0){C({action:U,stepIndex:0,values:{}}),F(null);return}if(U.requiresInput){E(U),w(""),F(null);return}if(U.run){P(!0),F(null);try{await U.run(),s()}catch(se){F(se instanceof Error?se.message:"Action failed")}finally{P(!1)}}}}async function Z(U){if(!j)return;const se=j.action.flow.steps[j.stepIndex],de={...j.values,[se.id]:U};if(j.stepIndex+1<j.action.flow.steps.length){C({action:j.action,stepIndex:j.stepIndex+1,values:de});return}P(!0),F(null);try{await j.action.flow.submit(de,{navigate:t}),s()}catch(ye){F(ye instanceof Error?ye.message:"Action failed")}finally{P(!1)}}function M(){if(j&&!L){if(j.stepIndex===0){C(null),F(null);return}C({action:j.action,stepIndex:j.stepIndex-1,values:j.values}),F(null)}}async function K(){if(L||!(b!=null&&b.requiresInput))return;const U=k.trim();if(U){P(!0),F(null);try{await b.requiresInput.runWithInput(U),s()}catch(se){F(se instanceof Error?se.message:"Action failed")}finally{P(!1)}}}function J(U){if(U.key==="ArrowDown")U.preventDefault(),y(se=>Math.min(D.length-1,se+1));else if(U.key==="ArrowUp")U.preventDefault(),y(se=>Math.max(0,se-1));else if(U.key==="Enter"&&(U.metaKey||U.ctrlKey)){U.preventDefault();const se=D[x];se!=null&&se.action.bindableKind&&T({action:se.action,combo:null,conflict:null,saving:!1,error:null})}else if(U.key==="Enter"){U.preventDefault();const se=D[x];se&&W(se.action)}}function le(U){U.key==="Enter"?(U.preventDefault(),K()):U.key==="Escape"&&(U.preventDefault(),E(null),w(""))}function _(U){if(!N||U.key==="Escape"||U.key==="Enter"&&!N.combo)return;U.preventDefault(),U.stopPropagation();const se=P0(U.nativeEvent);if(!se)return;const de=c(se,N.action.bindableKind);T({...N,combo:se,conflict:de,error:null})}async function G(){var U;if(!(!N||!N.combo||!N.action.bindableKind)){if((U=N.conflict)!=null&&U.description){T({...N,error:`Reserved: ${N.conflict.description}`});return}T({...N,saving:!0,error:null});try{await l(N.action.bindableKind,N.combo),T(null)}catch(se){T({...N,saving:!1,error:se instanceof Error?se.message:"Failed to save binding"})}}}const A=b!==null,B=j!==null,ee=N!==null,I=j?j.action.flow.steps[j.stepIndex]:null;return r.jsx(sr,{open:n,onOpenChange:U=>U?null:s(),children:r.jsxs(Wn,{className:"max-w-xl p-0 gap-0",onEscapeKeyDown:U=>{if(!L){if(ee){U.preventDefault(),T(null);return}if(B){U.preventDefault(),M();return}A&&(U.preventDefault(),E(null),w(""),F(null))}},children:[r.jsx(Kn,{className:"sr-only",children:"Actions palette"}),ee&&N?r.jsxs("div",{onKeyDown:_,tabIndex:-1,autoFocus:!0,children:[r.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-4 py-3",children:[r.jsx(ih,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),r.jsxs("span",{className:"text-sm text-foreground",children:["Bind hotkey for ",N.action.title]})]}),r.jsx("div",{className:"px-4 py-6 text-center",children:N.combo?r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"text-2xl font-semibold tracking-wide text-foreground",children:ls(N.combo)}),(ue=N.conflict)!=null&&ue.description?r.jsxs("div",{className:"text-sm text-destructive",children:["Reserved: ",N.conflict.description," (cannot bind)"]}):(me=N.conflict)!=null&&me.kind?r.jsxs("div",{className:"text-sm text-amber-500 dark:text-amber-400",children:['Already bound to "',N.conflict.kind,'". Press Enter to overwrite.']}):r.jsx("div",{className:"text-sm text-muted-foreground",children:"Press Enter to save, or another key to retry."}),N.error?r.jsx("div",{className:"text-sm text-destructive",children:N.error}):null]}):r.jsx("div",{className:"text-sm text-muted-foreground",children:"Press the key combination you want to bind…"})}),r.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[r.jsx("span",{children:"any key records · Enter saves · Esc cancels"}),r.jsx("span",{children:N.saving?"Saving…":""})]}),r.jsx("button",{type:"button",className:"sr-only",onClick:()=>void G(),"data-bind-confirm":!0}),r.jsx("input",{type:"hidden",onKeyDown:U=>{U.key==="Enter"&&G()}})]}):B&&I&&j?r.jsxs(r.Fragment,{children:[r.jsx(s3,{label:`${j.action.title} · ${I.label}`,onBack:M,disabled:L,stepCounter:{current:j.stepIndex+1,total:j.action.flow.steps.length}}),I.kind==="text"?r.jsx(o3,{step:I,initialValue:j.values[I.id],disabled:L,onSubmit:Z}):r.jsx(i3,{step:I,disabled:L,onSubmit:Z}),$?r.jsx("div",{className:"border-t border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:$}):null,r.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[r.jsx("span",{children:"↵ next · ← back · Esc back"}),r.jsx("span",{children:L?"Running…":""})]})]}):A?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-4 py-3",children:[r.jsx("span",{className:"shrink-0 rounded border border-border/70 bg-background/60 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:b.group}),r.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:b.title})]}),r.jsx("input",{autoFocus:!0,type:"text",value:k,onChange:U=>w(U.target.value),onKeyDown:le,placeholder:b.requiresInput.placeholder,disabled:L,className:"w-full border-0 border-b border-border/70 bg-transparent px-4 py-3 text-sm text-foreground outline-none focus:ring-0 disabled:opacity-60"}),$?r.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:$}):null,r.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[r.jsxs("span",{children:["↵"," submit ","·"," Esc back"]}),r.jsx("span",{children:L?"Running…":""})]})]}):r.jsxs(r.Fragment,{children:[r.jsx("input",{autoFocus:!0,type:"text",value:m,onChange:U=>h(U.target.value),onKeyDown:J,placeholder:"Run an action: new project, new todo, toggle…",disabled:L,className:"w-full rounded-t-xl border-0 border-b border-border/70 bg-transparent px-4 py-3 text-sm text-foreground outline-none focus:ring-0 disabled:opacity-60"}),$?r.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:$}):null,r.jsx("div",{ref:X,className:"max-h-[60vh] overflow-y-auto p-1",children:D.length===0?r.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:m?"No matches":"Start typing to search actions"}):D.map((U,se)=>{const de=se===x,ye=U.action.bindableKind,je=ye?i[ye]:void 0;return r.jsxs("button",{type:"button","data-palette-idx":se,onClick:()=>W(U.action),onMouseEnter:()=>y(se),disabled:L,className:`group flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors disabled:opacity-60 ${de?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[r.jsx("span",{className:"shrink-0 rounded border border-border/70 bg-background/60 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:U.action.group}),r.jsx("span",{className:"min-w-0 flex-1 truncate",children:U.action.title}),U.action.subtitle?r.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:U.action.subtitle}):null,je?r.jsx("span",{className:"shrink-0 rounded border border-border/70 bg-background/60 px-1.5 py-0.5 text-[10px] font-medium tracking-wide text-foreground",children:ls(je)}):null,ye?r.jsx("span",{role:"button",tabIndex:-1,"aria-label":"Bind hotkey",onClick:fe=>{fe.preventDefault(),fe.stopPropagation(),T({action:U.action,combo:null,conflict:null,saving:!1,error:null})},className:`shrink-0 inline-flex h-6 w-6 items-center justify-center rounded border border-border/70 bg-background/60 text-muted-foreground transition-opacity hover:text-foreground ${de?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:r.jsx(ih,{className:"h-3.5 w-3.5","aria-hidden":"true"})}):null]},U.action.id)})}),r.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[r.jsxs("span",{children:["↑↓"," navigate ","·"," ","↵"," run ","·"," ⌘↵ bind ","·"," Esc close"]}),r.jsx("span",{children:L?"Running…":`${D.length} action${D.length===1?"":"s"}`})]})]})]})})}const l3=[{combo:"mod+k",description:"Open command palette",scope:"global"},{combo:"mod+shift+k",description:"Open actions palette",scope:"global"},{combo:"?",description:"Show keyboard shortcuts",scope:"global"},{combo:"escape",description:"Close dialog or cancel",scope:"global"},{combo:"enter",description:"Activate selected item",scope:"global"},{combo:"shift+t",description:"Toggle light/dark theme",scope:"global"},{combo:"g",description:"Start navigation chord",scope:"global"},{combo:"g o",description:"Go to Overview",scope:"global"},{combo:"g m",description:"Go to Projects",scope:"global"},{combo:"g a",description:"Go to Assignments",scope:"global"},{combo:"g t",description:"Go to Todos",scope:"global"},{combo:"g s",description:"Go to Servers",scope:"global"},{combo:"g !",description:"Go to Attention",scope:"global"},{combo:"g ,",description:"Go to Settings",scope:"global"},{combo:"j",description:"Move selection down",scope:"list"},{combo:"k",description:"Move selection up",scope:"list"},{combo:"o",description:"Open selected item",scope:"list"},{combo:"a",description:"New assignment in project",scope:"project"},{combo:"e",description:"Edit project / assignment",scope:"project|assignment"},{combo:"/",description:"Focus search",scope:"assignments-board"},{combo:"r",description:"Refresh board",scope:"assignments-board"},{combo:"p",description:"Edit plan",scope:"assignment"},{combo:"h",description:"Append handoff",scope:"assignment"},{combo:"d",description:"Append decision record",scope:"assignment"},{combo:"s",description:"Edit scratchpad",scope:"assignment"},{combo:"[",description:"Previous assignment",scope:"assignment"},{combo:"]",description:"Next assignment",scope:"assignment"}];function c3(e){const t=nr(e);return t?l3.find(n=>n.combo===t)??null:null}const fl={"new-workspace":"New Workspace","new-project":"New Project","new-todo":"New Todo","new-assignment":"New Assignment"},u3={global:"Global","list:overview":"Overview","list:projects":"Projects list","list:assignments":"Assignments list","list:todos":"Todos list",assignment:"Assignment detail",project:"Project detail"},d3=["global","list:overview","list:projects","list:assignments","list:todos","project","assignment"];function Sv(e){if(e.includes(" ")){const[t,n]=e.split(" ");return`${ls(t)} then ${ls(n)}`}return ls(e)}function f3(){const{cheatsheetOpen:e,closeCheatsheet:t,listBindings:n,customBindings:s,actionEntries:i}=uo(),l=f.useMemo(()=>{const p=new Set;for(const m of Object.values(s))typeof m=="string"&&m&&p.add(nr(m));return p},[s]),c=f.useMemo(()=>{if(!e)return new Map;const p=n(),m=new Map;for(const h of p){if(l.has(nr(h.keys)))continue;const x=m.get(h.scope)??[];x.push({keys:h.keys,description:h.description}),m.set(h.scope,x)}return m},[e,n,l]),u=f.useMemo(()=>{const p=[];for(const[m,h]of Object.entries(s)){if(!h)continue;const x=i.find(y=>y.bindableKind===m);p.push({kind:m,combo:h,title:x?x.title:m})}return p},[s,i]);return r.jsx(sr,{open:e,onOpenChange:p=>p?null:t(),children:r.jsxs(Wn,{className:"max-w-2xl",children:[r.jsx(Kn,{children:"Keyboard shortcuts"}),r.jsxs(ms,{children:["Press Esc to close. ",ls("Mod+k")," opens the command palette. Press g twice to restart the chord timer."]}),r.jsxs("div",{className:"mt-2 max-h-[60vh] space-y-4 overflow-y-auto pr-1",children:[d3.map(p=>{const m=c.get(p);return!m||m.length===0?null:r.jsxs("section",{children:[r.jsx("h3",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:u3[p]}),r.jsx("ul",{className:"space-y-1",children:m.map((h,x)=>r.jsxs("li",{className:"flex items-center justify-between gap-3 rounded-md border border-border/40 bg-background/60 px-3 py-1.5 text-sm",children:[r.jsx("span",{className:"text-foreground",children:h.description}),r.jsx("kbd",{className:"shrink-0 rounded border border-border/70 bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground",children:Sv(h.keys)})]},`${p}-${h.keys}-${x}`))})]},p)}),u.length>0?r.jsxs("section",{children:[r.jsx("h3",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Custom bindings"}),r.jsx("ul",{className:"space-y-1",children:u.map(p=>r.jsxs("li",{className:"flex items-center justify-between gap-3 rounded-md border border-border/40 bg-background/60 px-3 py-1.5 text-sm",children:[r.jsx("span",{className:"text-foreground",children:p.title}),r.jsx("kbd",{className:"shrink-0 rounded border border-border/70 bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground",children:Sv(p.combo)})]},`custom-${p.kind}`))})]}):null]})]})})}const wg={bindings:{},custom:!1};let jl=null,Pi=null;const fh=new Set;function gk(e){jl=e;for(const t of fh)t(e)}function jg(e){if(!e||typeof e!="object")return wg;const t=e,n={};if(t.bindings&&typeof t.bindings=="object"&&!Array.isArray(t.bindings))for(const[s,i]of Object.entries(t.bindings)){if(!JP(s)||typeof i!="string"||i.trim()==="")continue;const l=nr(i);l&&(n[s]=l)}return{bindings:n,custom:t.custom===!0}}function p3(){return jl?Promise.resolve(jl):Pi||(Pi=fetch("/api/config/hotkeys").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=jg(e);return jl=t,Pi=null,t}).catch(()=>(Pi=null,wg)),Pi)}function m3(){const[e,t]=f.useState(()=>jl??wg);return f.useEffect(()=>{let n=!1;return p3().then(s=>{n||t(s)}),fh.add(t),()=>{n=!0,fh.delete(t)}},[]),e}async function Nv(e){const t={};for(const i of $d){const l=e[i];if(typeof l!="string")continue;const c=nr(l);c&&(t[i]=c)}const n=await fetch("/api/config/hotkeys",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({bindings:t})});if(!n.ok){const i=await n.json().catch(()=>({error:`HTTP ${n.status}`}));throw new Error(i.error??"Failed to save hotkey bindings")}const s=jg(await n.json());return gk(s),s}async function h3(){const e=await fetch("/api/config/hotkeys",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=jg(await e.json());return gk(t),t}const Cv=1500;function g3(e){const t=e.match(/^\/w\/([^/]+)(?:\/|$)/);return t?`/w/${t[1]}`:""}const xk=f.createContext(null);function x3({children:e}){const{toggleTheme:t}=ig(),n=Vn(),s=$t(),i=g3(n.pathname),[l,c]=f.useState(!1),u=Ho(l),p=Dd(l),m=T0(l),h=ag(l),x=R0(l),y=f.useMemo(()=>{var et,He,jt,Ht;const O=u.data??[],H=((et=p.data)==null?void 0:et.assignments)??[],Q=((He=m.data)==null?void 0:He.playbooks)??[],ge=((jt=h.data)==null?void 0:jt.sessions)??[],Te=(((Ht=x.data)==null?void 0:Ht.workspaces)??[]).flatMap(st=>st.items.map(ae=>({...ae,workspace:st.workspace})));return uR({projects:O,assignments:H,playbooks:Q,servers:ge,todos:Te,wsPrefix:i})},[u.data,p.data,m.data,h.data,x.data,i]),E=f.useMemo(()=>p0(n.pathname),[n.pathname]).projectSlug,k=f.useMemo(()=>{var O;return E?((O=u.data)==null?void 0:O.find(H=>H.slug===E))??null:null},[u.data,E]),w=(k==null?void 0:k.title)??null,j=(k==null?void 0:k.workspace)??null,C=f.useMemo(()=>{var O;return pR({playbooks:((O=m.data)==null?void 0:O.playbooks)??[],projectSlug:E,currentProjectTitle:w,currentProjectWorkspace:j,wsPrefix:i,refetchPlaybooks:m.refetch,navigate:s,toggleTheme:t})},[m.data,m.refetch,E,w,j,i,s,t]),N=f.useRef(new Map),T=f.useRef(["global"]),L=f.useRef({phase:"idle"}),P=f.useRef(null),$=f.useRef(1),[F,X]=f.useState(!1),[te,D]=f.useState(!1),[W,Z]=f.useState(!1),[M,K]=f.useState(null);f.useEffect(()=>{(F||W)&&c(!0)},[F,W]);const{bindings:J}=m3(),le=f.useMemo(()=>tR(J),[J]),_=f.useCallback(O=>{const H=$.current++;return N.current.set(H,{...O,id:H}),H},[]),G=f.useCallback(O=>{N.current.delete(O)},[]),A=f.useCallback(O=>{T.current.push(O)},[]),B=f.useCallback(O=>{const H=T.current;for(let Q=H.length-1;Q>=0;Q--)if(H[Q]===O){H.splice(Q,1);return}},[]),ee=f.useCallback(()=>X(!0),[]),I=f.useCallback(()=>X(!1),[]),ue=f.useCallback(()=>D(!0),[]),me=f.useCallback(()=>D(!1),[]),U=f.useCallback(()=>Z(!0),[]),se=f.useCallback(()=>{Z(!1),K(null)},[]),de=f.useCallback(()=>Array.from(N.current.values()),[]),ye=f.useCallback(()=>{let O=null;return K(H=>(O=H,null)),O},[]),je=f.useCallback(O=>{K(O),Z(!0)},[]),fe=f.useCallback((O,H)=>{const Q=nr(O);if(!Q)return null;if(ZP(Q)){const ge=c3(Q);return{description:(ge==null?void 0:ge.description)??"Reserved built-in shortcut"}}for(const[ge,Ie]of Object.entries(le))if(!(H&&ge===H)&&Ie===Q)return{kind:ge};return null},[le]),Ve=f.useCallback(async(O,H)=>{const Q=nr(H);if(!Q)throw new Error("Empty combo");const ge=fe(Q,O);if(ge){const Te=ge.description?`Reserved: ${ge.description}`:`Already bound to "${ge.kind}"`;throw new Error(Te)}const Ie={...J,[O]:Q};return await Nv(Ie),Q},[J,fe]),pe=f.useCallback(async O=>{if(!J[O])return;const H={...J};delete H[O],await Nv(H)},[J]);f.useEffect(()=>{L.current={phase:"idle"},P.current!==null&&(window.clearTimeout(P.current),P.current=null)},[n.pathname]),f.useEffect(()=>{function O(Te){if(!(Te instanceof HTMLElement))return!1;const et=Te.tagName;return!!(et==="INPUT"||et==="TEXTAREA"||et==="SELECT"||Te.isContentEditable||Te.closest('[role="combobox"], [role="textbox"]'))}function H(){return!!(document.querySelector('[role="dialog"][data-state="open"]')||document.querySelector('[role="alertdialog"][data-state="open"]'))}function Q(){const Te=T.current;return Te[Te.length-1]??"global"}function ge(Te){return Te.scope==="global"?!0:Te.scope===Q()}function Ie(Te){const et=xu(Te,"Mod+k"),He=xu(Te,"Mod+Shift+k"),jt=Te.key==="Escape",Ht=et||He||jt;if(H()&&!Ht||O(Te.target)&&!Ht)return;const st=L.current;if(st.phase==="awaiting-second")if(Date.now()-st.startedAt>Cv)L.current={phase:"idle"},P.current!==null&&(window.clearTimeout(P.current),P.current=null);else{const $e=Array.from(N.current.values());for(const We of $e){if(!ge(We))continue;const Xe=We.keys.split(" ");if(!(Xe.length!==2||Xe[0]!=="g")&&xu(Te,Xe[1])&&!(We.when&&!We.when())){Te.preventDefault(),L.current={phase:"idle"},P.current!==null&&(window.clearTimeout(P.current),P.current=null),We.handler(Te);return}}L.current={phase:"idle"},P.current!==null&&(window.clearTimeout(P.current),P.current=null)}const ae=Array.from(N.current.values());for(const be of ae){if(!ge(be))continue;const $e=be.keys.split(" ");if($e.length===1&&xu(Te,$e[0])&&!(be.when&&!be.when())){Te.preventDefault(),be.handler(Te);return}}Te.key==="g"&&!Te.metaKey&&!Te.ctrlKey&&!Te.altKey&&!Te.shiftKey&&Array.from(N.current.values()).some($e=>ge($e)&&$e.keys.startsWith("g "))&&(Te.preventDefault(),L.current={phase:"awaiting-second",startedAt:Date.now()},P.current!==null&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{L.current={phase:"idle"},P.current=null},Cv))}return window.addEventListener("keydown",Ie),()=>{window.removeEventListener("keydown",Ie),P.current!==null&&(window.clearTimeout(P.current),P.current=null)}},[]),f.useEffect(()=>{const O=_({keys:"Shift+t",handler:()=>t(),scope:"global",description:"Toggle light/dark theme"});return()=>G(O)},[_,G,t]),f.useEffect(()=>{const O=_({keys:"?",scope:"global",description:"Show keyboard shortcuts",handler:()=>ue()});return()=>G(O)},[_,G,ue]),f.useEffect(()=>{const O=_({keys:"Mod+k",scope:"global",description:"Open command palette",handler:()=>{if(F){I();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||ee()}});return()=>G(O)},[_,G,ee,I,F]),f.useEffect(()=>{const O=_({keys:"Mod+Shift+k",scope:"global",description:"Open actions palette",handler:()=>{if(W){se();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||U()}});return()=>G(O)},[_,G,U,se,W]),f.useEffect(()=>{const H=[{suffix:"o",basePath:"/",desc:"Go to Overview"},{suffix:"m",basePath:"/projects",desc:"Go to Projects"},{suffix:"a",basePath:"/assignments",desc:"Go to Assignments"},{suffix:"t",basePath:"/todos",desc:"Go to Todos"},{suffix:"s",basePath:"/servers",desc:"Go to Servers"},{suffix:",",basePath:"/settings",desc:"Go to Settings"}].map(Q=>_({keys:`g ${Q.suffix}`,scope:"global",description:Q.desc,handler:()=>s(Mu(Q.basePath,i))}));return()=>H.forEach(G)},[_,G,s,i]),f.useEffect(()=>{const O=[];for(const[H,Q]of Object.entries(le)){if(!Q)continue;const ge=C.find(Te=>Te.bindableKind===H),Ie=ge?`Custom: ${ge.title}`:`Custom: ${H}`;O.push(_({keys:Q,scope:"global",description:Ie,handler:()=>{K(H),Z(!0)}}))}return()=>O.forEach(G)},[_,G,le,C]);const Re=f.useMemo(()=>({register:_,unregister:G,pushScope:A,popScope:B,openPalette:ee,closePalette:I,paletteOpen:F,openCheatsheet:ue,closeCheatsheet:me,cheatsheetOpen:te,openActionsPalette:U,closeActionsPalette:se,actionsPaletteOpen:W,listBindings:de,wsPrefix:i,paletteEntries:y,actionEntries:C,userBindings:J,customBindings:le,bindAction:Ve,unbindAction:pe,findConflict:fe,openActionsPaletteWithAction:je,pendingActionKind:M,consumePendingActionKind:ye}),[_,G,A,B,ee,I,F,ue,me,te,U,se,W,de,i,y,C,J,le,Ve,pe,fe,je,M,ye]);return r.jsxs(xk.Provider,{value:Re,children:[e,r.jsx(r3,{entries:y}),r.jsx(a3,{entries:C}),r.jsx(f3,{})]})}function uo(){const e=f.useContext(xk);if(!e)throw new Error("useHotkeyContext must be used within HotkeyProvider");return e}function zt({keys:e,handler:t,scope:n="global",description:s,when:i,enabled:l=!0}){const{register:c,unregister:u}=uo(),p=f.useRef(t),m=f.useRef(i);f.useEffect(()=>{p.current=t,m.current=i},[t,i]),f.useEffect(()=>{if(!l)return;const h=c({keys:e,handler:x=>p.current(x),scope:n,description:s,when:m.current?()=>m.current():void 0});return()=>u(h)},[c,u,e,n,s,l])}function fo(e){const{pushScope:t,popScope:n}=uo();f.useEffect(()=>(t(e),()=>n(e)),[t,n,e])}function ec(e,t){const[n,s]=f.useState(e.length===0?-1:0),i=Vn();f.useEffect(()=>{s(e.length===0?-1:0)},[i.pathname]),f.useEffect(()=>{s(c=>e.length===0?-1:Math.min(Math.max(0,c),e.length-1))},[e.length]),f.useEffect(()=>{if(document.querySelectorAll("[data-hotkey-row-index]").forEach(u=>{const p=Number(u.getAttribute("data-hotkey-row-index"));u.setAttribute("data-hotkey-selected",p===n?"true":"false")}),n>=0){const u=document.querySelector(`[data-hotkey-row-index="${n}"]`);u==null||u.scrollIntoView({block:"nearest"})}},[n,e.length]),zt({keys:"j",scope:t.scope,description:"Select next row",handler:()=>s(c=>e.length===0?-1:Math.min(e.length-1,c<0?0:c+1))}),zt({keys:"k",scope:t.scope,description:"Select previous row",handler:()=>s(c=>e.length===0?-1:Math.max(0,c<0?0:c-1))}),zt({keys:"Enter",scope:t.scope,description:"Open selected row",handler:()=>{n>=0&&n<e.length&&t.onOpen(e[n],n)}}),zt({keys:"o",scope:t.scope,description:"Open selected row",enabled:t.bindO??!0,handler:()=>{n>=0&&n<e.length&&t.onOpen(e[n],n)}});const l=f.useCallback(c=>({"data-hotkey-row-index":c,"data-hotkey-selected":c===n?"true":"false"}),[n]);return{selectedIndex:n,hotkeyRowProps:l}}function y3({title:e,breadcrumbs:t,projectSlug:n,onOpenMobileNav:s}){const i=on(),{resolvedTheme:l,toggleTheme:c}=ig(),{openPalette:u}=uo();return r.jsx("header",{className:"sticky top-0 z-30 border-b border-border/70 bg-background/70 backdrop-blur",children:r.jsxs("div",{className:"flex flex-wrap items-center gap-2 px-4 py-2.5 lg:px-6",children:[r.jsx("button",{type:"button",onClick:s,className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-border/70 bg-card/80 text-foreground lg:hidden","aria-label":"Open navigation",children:r.jsx(OT,{className:"h-4 w-4"})}),r.jsx("div",{className:"min-w-0 flex-1",children:r.jsxs("div",{className:"flex items-center gap-2",children:[t.length>1?r.jsxs("nav",{className:"flex items-center gap-1.5 text-xs font-medium uppercase tracking-[0.1em] text-muted-foreground",children:[t.slice(0,-1).map((p,m)=>r.jsxs("span",{className:"flex items-center gap-1.5",children:[m>0?r.jsx("span",{children:"/"}):null,r.jsx(Ce,{to:p.path,className:"hover:text-foreground",children:p.label})]},p.path)),r.jsx("span",{children:"/"})]}):null,r.jsx("h1",{className:"min-w-0 truncate text-base font-semibold text-foreground",children:e})]})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("button",{type:"button",onClick:u,className:"shell-action","aria-label":"Open command palette",children:[r.jsx(co,{className:"h-4 w-4"}),r.jsx("span",{className:"hidden sm:inline font-mono text-xs",children:ls("Mod+k")})]}),r.jsx(Ce,{className:"shell-action",to:"/help",children:"Help"}),r.jsxs(Ce,{className:"shell-action",to:`${i}/create/project`,children:[r.jsx(en,{className:"h-4 w-4"}),r.jsx("span",{children:"New Project"})]}),n?r.jsxs(Ce,{className:"shell-action",to:`${i}/projects/${n}/create/assignment`,children:[r.jsx(en,{className:"h-4 w-4"}),r.jsx("span",{children:"New Assignment"})]}):null,r.jsxs("button",{type:"button",onClick:c,className:"shell-action","aria-label":"Toggle theme",children:[l==="dark"?r.jsx(KT,{className:"h-4 w-4"}):r.jsx(_T,{className:"h-4 w-4"}),r.jsx("span",{children:l==="dark"?"Light":"Dark"})]})]})]})})}var b3=Symbol("radix.slottable");function v3(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=b3,t}var yk="AlertDialog",[w3]=Wo(yk,[J0]),$s=J0(),bk=e=>{const{__scopeAlertDialog:t,...n}=e,s=$s(t);return r.jsx(fk,{...s,...n,modal:!0})};bk.displayName=yk;var j3="AlertDialogTrigger",k3=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=$s(n);return r.jsx(pk,{...i,...s,ref:t})});k3.displayName=j3;var S3="AlertDialogPortal",vk=e=>{const{__scopeAlertDialog:t,...n}=e,s=$s(t);return r.jsx(mk,{...s,...n})};vk.displayName=S3;var N3="AlertDialogOverlay",wk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=$s(n);return r.jsx(hg,{...i,...s,ref:t})});wk.displayName=N3;var Ki="AlertDialogContent",[C3,E3]=w3(Ki),T3=v3("AlertDialogContent"),jk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:s,...i}=e,l=$s(n),c=f.useRef(null),u=_n(t,c),p=f.useRef(null);return r.jsx(qA,{contentName:Ki,titleName:kk,docsSlug:"alert-dialog",children:r.jsx(C3,{scope:n,cancelRef:p,children:r.jsxs(gg,{role:"alertdialog",...l,...i,ref:u,onOpenAutoFocus:Vt(i.onOpenAutoFocus,m=>{var h;m.preventDefault(),(h=p.current)==null||h.focus({preventScroll:!0})}),onPointerDownOutside:m=>m.preventDefault(),onInteractOutside:m=>m.preventDefault(),children:[r.jsx(T3,{children:s}),r.jsx(R3,{contentRef:c})]})})})});jk.displayName=Ki;var kk="AlertDialogTitle",Sk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=$s(n);return r.jsx(xg,{...i,...s,ref:t})});Sk.displayName=kk;var Nk="AlertDialogDescription",Ck=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=$s(n);return r.jsx(yg,{...i,...s,ref:t})});Ck.displayName=Nk;var P3="AlertDialogAction",Ek=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=$s(n);return r.jsx(bg,{...i,...s,ref:t})});Ek.displayName=P3;var Tk="AlertDialogCancel",Pk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,{cancelRef:i}=E3(Tk,n),l=$s(n),c=_n(t,i);return r.jsx(bg,{...l,...s,ref:c})});Pk.displayName=Tk;var R3=({contentRef:e})=>{const t=`\`${Ki}\` requires a description for the component to be accessible for screen reader users.
|
|
510
|
+
|
|
511
|
+
You can add a description to the \`${Ki}\` by passing a \`${Nk}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
512
|
+
|
|
513
|
+
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Ki}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
514
|
+
|
|
515
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return f.useEffect(()=>{var s;document.getElementById((s=e.current)==null?void 0:s.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},A3=bk,D3=vk,Rk=wk,Ak=jk,Dk=Ek,$k=Pk,Lk=Sk,Ik=Ck;const ed=A3,$3=D3,Ok=f.forwardRef(({className:e,...t},n)=>r.jsx(Rk,{ref:n,className:Ee("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));Ok.displayName=Rk.displayName;const Il=f.forwardRef(({className:e,...t},n)=>r.jsxs($3,{children:[r.jsx(Ok,{}),r.jsx(Ak,{ref:n,className:Ee("chrome-card fixed left-1/2 top-1/2 z-50 grid w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 !p-6 outline-none",e),...t})]}));Il.displayName=Ak.displayName;function td({className:e,...t}){return r.jsx("div",{className:Ee("flex flex-col space-y-2 text-left",e),...t})}function nd({className:e,...t}){return r.jsx("div",{className:Ee("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const Ol=f.forwardRef(({className:e,...t},n)=>r.jsx(Lk,{ref:n,className:Ee("text-lg font-semibold tracking-tight text-foreground",e),...t}));Ol.displayName=Lk.displayName;const _l=f.forwardRef(({className:e,...t},n)=>r.jsx(Ik,{ref:n,className:Ee("text-sm leading-6 text-muted-foreground",e),...t}));_l.displayName=Ik.displayName;const ta=f.forwardRef(({className:e,...t},n)=>r.jsx(Dk,{ref:n,className:Ee(e),...t}));ta.displayName=Dk.displayName;const Md=f.forwardRef(({className:e,...t},n)=>r.jsx($k,{ref:n,className:Ee(e),...t}));Md.displayName=$k.displayName;const L3=[{to:"/",label:"Overview",icon:Xj},{to:"/playbooks",label:"Playbooks",icon:Yj},{to:"/memories",label:"Memories",icon:gT},{to:"/resources",label:"Resources",icon:DT},{to:"/inventories",label:"Inventories",icon:Ed},{to:"/usage",label:"Usage",icon:Td},{to:"/todos",label:"Todos",icon:Ar},{to:"/views",label:"Saved Views",icon:Zj},{to:"/archive",label:"Archive",icon:Cd}],I3=[{suffix:"/projects",label:"Projects",icon:Jh},{suffix:"/assignments",label:"Assignments",icon:IT},{suffix:"/servers",label:"Servers",icon:eg},{suffix:"/inventories",label:"Inventories",icon:Ed},{suffix:"/usage",label:"Usage",icon:Td},{suffix:"/agent-sessions",label:"Agent Sessions",icon:Nd},{suffix:"/todos",label:"Todos",icon:Ar}],O3=[{to:"/help",label:"Help",icon:$T},{to:"/settings",label:"Settings",icon:HT}],Ev="syntaur.dashboard.sourceFirstNoticeDismissed";function _3({title:e,breadcrumbs:t,projectSlug:n,workspace:s,children:i}){const[l,c]=f.useState(!1);zt({keys:"Escape",scope:"global",description:"Close mobile navigation",enabled:l,handler:()=>c(!1)});const[u,p]=f.useState(()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Ev)==="1"}catch{return!1}});function m(){if(p(!0),!(typeof window>"u"))try{window.localStorage.setItem(Ev,"1")}catch{}}return r.jsx("div",{className:"min-h-screen bg-background",children:r.jsxs("div",{className:"relative grid min-h-screen lg:grid-cols-[240px_minmax(0,1fr)]",children:[r.jsx("aside",{className:"hidden max-h-screen sticky top-0 overflow-y-auto border-r border-border/70 bg-sidebar px-4 py-4 lg:flex lg:flex-col",children:r.jsx(Tv,{sourceNoticeDismissed:u,onDismissSourceNotice:m,activeWorkspace:s})}),l?r.jsx("div",{className:"fixed inset-0 z-40 bg-overlay/40 lg:hidden",children:r.jsxs("div",{className:"h-full max-w-xs border-r border-border/70 bg-sidebar p-4 shadow-2xl",children:[r.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[r.jsx(Ce,{to:"/",className:"text-lg font-semibold text-foreground",onClick:()=>c(!1),children:"Syntaur"}),r.jsx("button",{type:"button",onClick:()=>c(!1),className:"inline-flex h-9 w-9 items-center justify-center rounded-md border border-border/70 bg-background/80",children:r.jsx(rg,{className:"h-4 w-4"})})]}),r.jsx(Tv,{sourceNoticeDismissed:u,onDismissSourceNotice:m,activeWorkspace:s,onNavigate:()=>c(!1)})]})}):null,r.jsxs("div",{className:"min-w-0",children:[r.jsx(y3,{title:e,breadcrumbs:t,projectSlug:n,onOpenMobileNav:()=>c(!0)}),r.jsx("main",{className:"mx-auto w-full max-w-[1480px] px-4 py-4 lg:px-6 lg:py-5",children:i})]})]})})}function Tv({sourceNoticeDismissed:e,onDismissSourceNotice:t,activeWorkspace:n,onNavigate:s}){const{data:i}=Ad(),l=(i==null?void 0:i.workspaces)??[],c=(i==null?void 0:i.hasUngrouped)??!1,u=Vn(),[p,m]=f.useState(new Set),[h,x]=f.useState(!1),[y,b]=f.useState(""),[E,k]=f.useState(null),[w,j]=f.useState(null),[C,N]=f.useState(null),[T,L]=f.useState(!1),P=$t();function $(D){m(W=>{const Z=new Set(W);return Z.has(D)?Z.delete(D):Z.add(D),Z})}const F=[...l,...c?["_ungrouped"]:[]];async function X(D){if(w){L(!0);try{const W=`/api/workspaces/${encodeURIComponent(w)}${D?"?cascade=true":""}`,Z=await fetch(W,{method:"DELETE"});if(Z.status===409){const M=await Z.json().catch(()=>({}));N((M==null?void 0:M.blockedBy)??{projects:[],standalones:[]});return}if(!Z.ok){const M=await Z.json().catch(()=>({}));throw new Error(M.error||"Failed to delete workspace")}j(null),N(null)}catch(W){console.error(W),alert(W instanceof Error?W.message:"Failed to delete workspace")}finally{L(!1)}}}async function te(D,W){try{if(D.type==="project"){const Z=await fetch(`/api/projects/${encodeURIComponent(D.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:W})});if(!Z.ok){const M=await Z.json().catch(()=>({}));throw new Error(M.error||"Failed to move project")}return}if(D.type==="standalone-assignment"){const Z=await fetch(`/api/assignments/${encodeURIComponent(D.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:W})});if(!Z.ok){const M=await Z.json().catch(()=>({}));throw new Error(M.error||"Failed to move assignment")}return}if(D.type==="project-assignment"){alert("Assignments inherit workspace from their project — drag the project (or move it) to change workspaces.");return}}catch(Z){console.error(Z),alert(Z instanceof Error?Z.message:"Failed to move item")}}return r.jsxs("div",{className:"flex h-full flex-col gap-3",children:[r.jsx("div",{className:"space-y-3",children:r.jsxs(Ce,{to:"/",className:"inline-flex items-center gap-3",onClick:s,children:[r.jsx("span",{className:"inline-flex h-8 w-8 items-center justify-center rounded-lg bg-card text-foreground shadow-sm ring-1 ring-border/60",children:r.jsxs("svg",{viewBox:"0 0 43 51","aria-label":"Syntaur",role:"img",className:"h-4 w-auto",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:[r.jsx("path",{d:"M13 2C13 0.89543 13.8954 0 15 0H41C42.1046 0 43 0.895431 43 2V12C43 13.1046 42.1046 14 41 14H13V2Z"}),r.jsx("path",{d:"M0 15C0 13.8954 0.895431 13 2 13H14V25C14 26.1046 13.1046 27 12 27H2C0.89543 27 0 26.1046 0 25V15Z"}),r.jsx("path",{d:"M30 49C30 50.1046 29.1046 51 28 51L2 51C0.89543 51 0 50.1046 0 49L0 39C0 37.8954 0.895431 37 2 37L30 37L30 49Z"}),r.jsx("path",{d:"M42.9646 36C42.9646 37.1046 42.0692 38 40.9646 38H28.9646V26C28.9646 24.8954 29.86 24 30.9646 24H40.9646C42.0692 24 42.9646 24.8954 42.9646 26V36Z"})]})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Syntaur"}),r.jsx("p",{className:"text-xs text-muted-foreground/60",children:"Local-first project control"})]})]})}),r.jsx(av,{items:L3,onNavigate:s}),r.jsx("div",{className:"border-t border-border/40"}),r.jsxs("div",{className:"flex-1 space-y-1 overflow-y-auto",children:[F.length===0&&!h&&r.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground/60",children:"No workspaces yet"}),F.map(D=>{const W=D==="_ungrouped",Z=W?"Ungrouped":Sn(D),M=W?"/w/_ungrouped":`/w/${D}`,K=p.has(D),J=n===D||n===null&&W&&u.pathname.startsWith("/w/_ungrouped"),le=E===D;return r.jsxs("div",{className:`rounded-md transition ${le?"bg-accent/40 ring-1 ring-ring/40":""}`,onDragOver:_=>{_.dataTransfer.types.includes("application/json")&&(_.preventDefault(),_.dataTransfer.dropEffect="move",k(D))},onDragLeave:_=>{_.currentTarget.contains(_.relatedTarget)||k(G=>G===D?null:G)},onDrop:async _=>{try{const G=_.dataTransfer.getData("application/json");if(!G)return;_.preventDefault();let A;try{A=JSON.parse(G)}catch{return}if(!(A!=null&&A.type)||!(A!=null&&A.id))return;await te(A,W?null:D)}finally{k(null)}},children:[r.jsxs("div",{className:"group flex items-center",children:[r.jsxs("button",{type:"button",onClick:()=>$(D),className:`flex flex-1 items-center gap-2 rounded-md px-3 py-1.5 text-xs font-semibold uppercase tracking-wider transition ${J?"text-foreground":"text-muted-foreground/70 hover:text-muted-foreground"}`,children:[r.jsx(us,{className:`h-3 w-3 transition-transform ${K?"-rotate-90":""}`}),Z]}),W?null:r.jsx("button",{type:"button",onClick:_=>{_.stopPropagation(),j(D),N(null)},title:`Delete workspace "${D}"`,"aria-label":`Delete workspace "${D}"`,className:"mr-1 flex h-6 w-6 items-center justify-center rounded text-muted-foreground/60 opacity-0 transition hover:bg-destructive/10 hover:text-destructive focus-visible:opacity-100 group-hover:opacity-100",children:r.jsx(Hn,{className:"h-3 w-3"})})]}),!K&&r.jsx("nav",{className:"ml-2 space-y-0.5",children:I3.map(_=>{const G=`${M}${_.suffix}`,A=f0(u.pathname,_.suffix)&&u.pathname.startsWith(M),B=_.icon;return r.jsxs(Ce,{to:G,onClick:s,className:`flex items-center gap-3 rounded-md px-3 py-1.5 text-sm font-medium transition ${A?"bg-foreground text-background shadow-sm":"text-muted-foreground hover:bg-background/80 hover:text-foreground"}`,children:[r.jsx(B,{className:"h-4 w-4"}),r.jsx("span",{children:_.label})]},G)})})]},D)}),h?r.jsx("form",{className:"px-3 py-1.5",onSubmit:D=>{D.preventDefault();const W=y.trim().toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");W&&(x(!1),b(""),fetch("/api/workspaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:W})}).then(()=>{s==null||s(),P(`/w/${W}/projects`)}))},children:r.jsx("input",{autoFocus:!0,type:"text",value:y,onChange:D=>b(D.target.value),onKeyDown:D=>{D.key==="Escape"&&(x(!1),b(""))},onBlur:()=>{y.trim()||(x(!1),b(""))},placeholder:"workspace-name",className:"w-full rounded-md border border-border/60 bg-background/80 px-2 py-1 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-foreground/40 focus:outline-none"})}):r.jsxs("button",{type:"button",onClick:()=>x(!0),className:"flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-xs font-medium text-muted-foreground/60 transition hover:text-muted-foreground",children:[r.jsx(en,{className:"h-3 w-3"}),"New Workspace"]})]}),r.jsx("div",{className:"border-t border-border/40"}),r.jsx(av,{items:O3,onNavigate:s}),e?null:r.jsx("div",{className:"chrome-card",children:r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Source-first dashboard"}),r.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:"Project and assignment markdown files stay authoritative. Derived files are read-only projections."})]}),r.jsx("button",{type:"button",onClick:t,className:"inline-flex h-7 w-7 items-center justify-center rounded-md border border-border/70 bg-background/80 text-muted-foreground transition hover:text-foreground","aria-label":"Dismiss source-first dashboard notice",children:r.jsx(rg,{className:"h-4 w-4"})})]})}),r.jsx(ed,{open:w!==null,onOpenChange:D=>{T||D||(j(null),N(null))},children:r.jsxs(Il,{children:[r.jsxs(td,{children:[r.jsx(Ol,{children:C?"Workspace has references":"Delete workspace?"}),r.jsx(_l,{children:C?r.jsxs(r.Fragment,{children:["The workspace ",r.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:w})," is still referenced by:"]}):r.jsxs(r.Fragment,{children:["Remove the workspace ",r.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:w})," from the registry. This does not affect projects or standalones unless you choose to cascade."]})})]}),C?r.jsxs("div",{className:"space-y-2 text-sm",children:[C.projects.length>0?r.jsxs("div",{children:[r.jsxs("p",{className:"font-medium text-foreground",children:["Projects (",C.projects.length,")"]}),r.jsx("ul",{className:"mt-1 list-disc pl-5 text-muted-foreground",children:C.projects.map(D=>r.jsx("li",{children:r.jsx(Ce,{to:`/projects/${D}`,className:"hover:underline",children:D})},D))})]}):null,C.standalones.length>0?r.jsxs("div",{children:[r.jsxs("p",{className:"font-medium text-foreground",children:["Standalones (",C.standalones.length,")"]}),r.jsx("ul",{className:"mt-1 list-disc pl-5 text-muted-foreground",children:C.standalones.map(D=>r.jsx("li",{children:r.jsx(Ce,{to:`/assignments/${D}`,className:"hover:underline",children:D})},D))})]}):null,r.jsxs("p",{className:"text-xs text-muted-foreground",children:['Choose "Clear references and delete" to set ',r.jsx("code",{children:"workspace:"})," / ",r.jsx("code",{children:"workspaceGroup:"})," to ",r.jsx("code",{children:"null"})," on each, then remove the workspace."]})]}):null,r.jsxs(nd,{children:[r.jsx(Md,{disabled:T,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),C?r.jsx(ta,{disabled:T,onClick:D=>{D.preventDefault(),X(!0)},className:"shell-action mt-0 border-destructive/80 bg-destructive text-destructive-foreground hover:bg-destructive/90 disabled:cursor-not-allowed disabled:opacity-50",children:T?"Working…":"Clear references and delete"}):r.jsx(ta,{disabled:T,onClick:D=>{D.preventDefault(),X(!1)},className:"shell-action mt-0 border-destructive/80 bg-destructive text-destructive-foreground hover:bg-destructive/90 disabled:cursor-not-allowed disabled:opacity-50",children:T?"Working…":"Delete"})]})]})})]})}function M3(){const e=Vn(),{workspace:t}=Lt(),{title:n,breadcrumbs:s,projectSlug:i}=p0(e.pathname);return r.jsx(_3,{title:n,breadcrumbs:s,projectSlug:i,workspace:t??null,children:r.jsx(T2,{})})}function ft({label:e="Loading dashboard data…"}){return r.jsx("div",{className:"flex min-h-[240px] items-center justify-center",children:r.jsx("div",{className:"chrome-card !px-4 !py-3",children:r.jsx("p",{className:"text-sm text-muted-foreground",children:e})})})}function mt({title:e="Something went wrong",error:t,action:n}){return r.jsx("div",{className:"rounded-lg border border-error-foreground/30 bg-error px-4 py-5",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("h3",{className:"text-lg font-semibold text-error-foreground",children:e}),r.jsx("p",{className:"text-sm leading-6 text-error-foreground/90",children:t}),n?r.jsx("div",{className:"pt-2",children:n}):null]})})}function Uu({command:e,description:t,example:n}){return r.jsxs("div",{className:"rounded-lg border border-border/70 bg-code px-3 py-3 text-code-foreground shadow-sm",children:[r.jsx("code",{className:"block overflow-x-auto font-mono text-sm",children:e}),t?r.jsx("p",{className:"mt-2 text-sm text-code-foreground/80",children:t}):null,n?r.jsx("p",{className:"mt-2 font-mono text-xs text-code-foreground/60",children:n}):null]})}function ze({title:e,description:t,children:n,className:s,actions:i}){return r.jsxs("section",{className:Ee("surface-panel space-y-3",s),children:[e||i?r.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[e?r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:e}):null,t?r.jsx("p",{className:"text-sm text-muted-foreground",children:t}):null]}),i]}):null,n]})}function F3({help:e,compact:t=!1}){const n=t?(e==null?void 0:e.firstProjectChecklist.slice(0,3))??[]:(e==null?void 0:e.firstProjectChecklist)??[];return r.jsx(ze,{title:t?"Getting Started Refresher":"Getting Started",description:t?"A fast reminder of the real flow for creating and running work in Syntaur.":"A first-run checklist that maps to the current CLI and dashboard flow.",actions:r.jsx(Ce,{className:"text-sm font-semibold text-primary hover:underline",to:"/help",children:"Open full help"}),children:r.jsx("div",{className:"space-y-3",children:n.map((s,i)=>r.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-foreground text-xs font-semibold text-background",children:i+1}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:s.title}),r.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:s.detail}),s.command?r.jsx(Uu,{command:s.command.command,example:s.command.example}):null]})]})},s.title))})})}const bm={review:"{total} items ready for your review","review.singular":"Review {title}",ready_to_implement:"{total} plans ready to implement — start with {title}","ready_to_implement.singular":"Start implementing {title}",ready_for_planning:"{total} assignments ready to plan — start with {title}","ready_for_planning.singular":"Plan {title}",in_progress:"Resume {title} ({total} in progress)","in_progress.singular":"Resume {title}",draft:"Shape your {total} drafts — start with {title}","draft.singular":"Shape {title}",blocked:"Unblock {title} ({total} blocked)","blocked.singular":"Unblock {title}",stale:"Triage {total} stale items","stale.singular":"Triage {title} — sitting stale",clean:"You’re all clear. Nothing needs you right now."},Mo={emptyStateCleanTitle:"You’re all clear",emptyStateCleanCTA:"Browse projects",recentSessionsEmptyTitle:"No recent sessions",recentSessionsEmptyHint:"Use /grab-assignment or `syntaur track-session` to register one.",recentSessionsCopyPathLabel:"Copy path",recentSessionsCopyPathDisabled:"Session has no path",recentSessionsCopyFallbackHint:"Press ⌘C to copy"};function z3(e,t){return e.replace(/\{(\w+)\}/g,(n,s)=>String(t[s]??`{${s}}`))}function B3({hero:e,itemsById:t}){const n=on();if(e.kind==="clean")return r.jsxs("section",{"aria-labelledby":"overview-hero-title",className:"rounded-xl border border-border/60 bg-background/60 p-6 shadow-sm",children:[r.jsx("p",{className:"eyebrow",children:Mo.emptyStateCleanTitle}),r.jsx("h2",{id:"overview-hero-title",className:"mt-2 text-2xl font-semibold tracking-tight text-foreground",children:bm.clean}),r.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:"When work shows up — a draft, a review, a stale row — it’ll surface here."}),r.jsx("div",{className:"mt-4",children:r.jsx(Ce,{to:`${n}/projects`,className:"shell-action bg-foreground text-background hover:opacity-90",children:Mo.emptyStateCleanCTA})})]});const s=e.itemId?t[e.itemId]:void 0,i=(s==null?void 0:s.assignmentTitle)??"",l=bm[e.copyKey]??bm[e.kind],c=z3(l,{total:e.total,title:i}),u=s?U3(s,n):`${n}/assignments`;return r.jsxs("section",{"aria-labelledby":"overview-hero-title",className:"rounded-xl border border-primary/20 bg-primary/5 p-6 shadow-sm",children:[r.jsx("p",{className:"eyebrow",children:"What needs you today"}),r.jsx("h2",{id:"overview-hero-title",className:"mt-2 text-2xl font-semibold tracking-tight text-foreground",children:c}),s?r.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["In ",r.jsx("span",{className:"font-medium text-foreground",children:s.projectTitle??"Standalone"})," ","· status ",r.jsx("span",{className:"font-medium text-foreground",children:s.status})]}):null,r.jsx("div",{className:"mt-4",children:r.jsxs(Ce,{to:u,className:"shell-action bg-foreground text-background hover:opacity-90",children:["Open ",i||"assignment"]})})]})}function U3(e,t){return e.projectSlug?`${t}${e.href}`:e.href}const kg=["kanban","list","table"],_k=["title","status","priority","assignee","dependencies","created","updated"],V3=["asc","desc"],H3=["comfortable","compact"],W3=["none","status","type","priority","assignee","project"],K3=["last_24h","last_7d","last_30d","last_90d","older_7d","older_30d"];function Je(e){const t=e===void 0?[]:Array.isArray(e)?e:[e],n=[];for(const s of t){if(typeof s!="string")continue;const i=s.trim();!i||i==="all"||n.includes(i)||n.push(i)}return n}function q3(e,t){const n=Je(e),s=Je(t);return n.length===s.length&&n.every(i=>s.includes(i))}const G3={defaultView:"kanban",sortField:"updated",sortDirection:"desc",density:"comfortable",grouping:"none",filters:{status:"all",type:"all",priority:"all",assignee:"all",project:"all",activity:"all"}},Ml={version:1,global:G3,projects:{}};function vm(e){return e==="table"?"table":"kanban"}function Y3(e,t){return t?{...e,...t}:{...e}}function Mk(e,t){const n=e.global;if(t===null)return n;const s=e.projects[t];return s?{defaultView:s.defaultView??n.defaultView,sortField:s.sortField??n.sortField,sortDirection:s.sortDirection??n.sortDirection,density:n.density,grouping:s.grouping??n.grouping,filters:Y3(n.filters,s.filters)}:n}const wm=["title","status","priority","assignee","dependencies","created","updated"],J3={status:"all",priority:"all",assignee:"all",project:"all",activity:"all"},Pv="2026-05-21T00:00:00Z";function jm(e,t,n){return{id:e,name:t,workspace:null,config:{viewMode:"list",filters:{...J3,...n},sortField:"updated",sortDirection:"desc",listSectionVisibility:{collapsed:[]},kanbanColumnVisibility:{hidden:[]},tableColumnVisibility:{hidden:[]}},createdAt:Pv,updatedAt:Pv}}const ro={version:1,views:[jm("default-recently-updated","Recently updated",{}),jm("default-high-priority","High priority",{priority:"high"}),jm("default-stale","Stale",{activity:"stale"})],dashboard:{version:1,slots:[{id:"slot-0",widget:{kind:"agent-sessions"}},{id:"slot-1",widget:{kind:"saved-view",viewId:"default-recently-updated"}},{id:"slot-2",widget:{kind:"saved-view",viewId:"default-high-priority"}},{id:"slot-3",widget:{kind:"saved-view",viewId:"default-stale"}},{id:"slot-4",widget:{kind:"inventories"}}]}};function Fk(e,t){const n=Je(e.filters.project),s=n.length===0||n.length===1&&n[0]===t,i=e.filters.activity,l=typeof e.filters.search=="string"&&e.filters.search.trim().length>0;return s&&(!i||i==="all")&&!l}function zk(e,t){switch(t.kind){case"global":return e.workspace===null;case"workspace":return e.workspace===t.workspace||e.workspace===null;case"project":return e.workspace===t.workspace||e.workspace===null?Fk(e.config,t.slug):!1}}const Bk=`syntaur.savedViews.cache.v${ro.version}`;let qi=X3(),Io=null,Sg=null;const ph=new Set,rd=new Set;let Uk=0;function Vk(){return++Uk}function mh(e){return e===Uk}function X3(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(Bk);if(!e)return null;const t=JSON.parse(e);return t.version!==ro.version?null:t}catch{return null}}function Q3(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(Bk,JSON.stringify(e))}catch{}}function Hk(e){qi=e,Sg=null,Q3(e);for(const t of ph)t(e);for(const t of rd)t(null)}function Z3(e){Sg=e;for(const t of rd)t(e)}function Wk(e){if(!e||typeof e!="object")return ro;const t=e;return t.version!==ro.version||!Array.isArray(t.views)||!t.dashboard?ro:t}function Rv(){if(Io)return Io;const e=Vk();return Io=fetch("/api/saved-views").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=Wk(t);return mh(e)&&Hk(n),Io=null,qi??n}).catch(t=>{const n=t instanceof Error?t:new Error(String(t));return mh(e)&&Z3(n),Io=null,qi??ro}),Io}function Ng(){const[e,t]=f.useState(()=>qi??ro),[n,s]=f.useState(()=>qi===null),[i,l]=f.useState(()=>Sg);return f.useEffect(()=>{let u=!1;qi===null&&s(!0),Rv().then(h=>{u||(t(h),s(!1))});const p=h=>{u||(t(h),s(!1),l(null))},m=h=>{u||(l(h),s(!1))};return ph.add(p),rd.add(m),()=>{u=!0,ph.delete(p),rd.delete(m)}},[]),{file:e,loading:n,error:i,refetch:()=>{Io=null,s(!0),l(null),Rv()}}}function Cg(){const{file:e,loading:t}=Ng();return{views:e.views,loading:t}}function eD(){const{file:e,loading:t}=Ng();return{layout:e.dashboard,loading:t}}function na(e){const{file:t,loading:n,error:s,refetch:i}=Ng();return e?{view:t.views.find(c=>c.id===e)??null,loading:n,error:s,refetch:i}:{view:null,loading:!1,error:null,refetch:i}}async function Fd(e,t,n){const s=Vk(),i=await fetch(t,{method:e,headers:n!==void 0?{"Content-Type":"application/json"}:void 0,body:n!==void 0?JSON.stringify(n):void 0});if(!i.ok){const c=await i.json().catch(()=>({error:`HTTP ${i.status}`}));throw new Error(c.error??`HTTP ${i.status}`)}const l=Wk(await i.json());return mh(s)&&Hk(l),l}function sd(e){return Fd("POST","/api/saved-views",e)}function zd(e,t){return Fd("PATCH",`/api/saved-views/${encodeURIComponent(e)}`,t)}function tD(e){return Fd("DELETE",`/api/saved-views/${encodeURIComponent(e)}`)}function nD(e){return Fd("PUT","/api/dashboard",{slots:e})}const rD=["top","right","bottom","left"],oo=Math.min,hr=Math.max,od=Math.round,ku=Math.floor,cs=e=>({x:e,y:e}),sD={left:"right",right:"left",bottom:"top",top:"bottom"};function hh(e,t,n){return hr(e,oo(t,n))}function Ps(e,t){return typeof e=="function"?e(t):e}function Rs(e){return e.split("-")[0]}function ca(e){return e.split("-")[1]}function Eg(e){return e==="x"?"y":"x"}function Tg(e){return e==="y"?"height":"width"}function is(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Pg(e){return Eg(is(e))}function oD(e,t,n){n===void 0&&(n=!1);const s=ca(e),i=Pg(e),l=Tg(i);let c=i==="x"?s===(n?"end":"start")?"right":"left":s==="start"?"bottom":"top";return t.reference[l]>t.floating[l]&&(c=id(c)),[c,id(c)]}function iD(e){const t=id(e);return[gh(e),t,gh(t)]}function gh(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Av=["left","right"],Dv=["right","left"],aD=["top","bottom"],lD=["bottom","top"];function cD(e,t,n){switch(e){case"top":case"bottom":return n?t?Dv:Av:t?Av:Dv;case"left":case"right":return t?aD:lD;default:return[]}}function uD(e,t,n,s){const i=ca(e);let l=cD(Rs(e),n==="start",s);return i&&(l=l.map(c=>c+"-"+i),t&&(l=l.concat(l.map(gh)))),l}function id(e){const t=Rs(e);return sD[t]+e.slice(t.length)}function dD(e){return{top:0,right:0,bottom:0,left:0,...e}}function Kk(e){return typeof e!="number"?dD(e):{top:e,right:e,bottom:e,left:e}}function ad(e){const{x:t,y:n,width:s,height:i}=e;return{width:s,height:i,top:n,left:t,right:t+s,bottom:n+i,x:t,y:n}}function $v(e,t,n){let{reference:s,floating:i}=e;const l=is(t),c=Pg(t),u=Tg(c),p=Rs(t),m=l==="y",h=s.x+s.width/2-i.width/2,x=s.y+s.height/2-i.height/2,y=s[u]/2-i[u]/2;let b;switch(p){case"top":b={x:h,y:s.y-i.height};break;case"bottom":b={x:h,y:s.y+s.height};break;case"right":b={x:s.x+s.width,y:x};break;case"left":b={x:s.x-i.width,y:x};break;default:b={x:s.x,y:s.y}}switch(ca(t)){case"start":b[c]-=y*(n&&m?-1:1);break;case"end":b[c]+=y*(n&&m?-1:1);break}return b}async function fD(e,t){var n;t===void 0&&(t={});const{x:s,y:i,platform:l,rects:c,elements:u,strategy:p}=e,{boundary:m="clippingAncestors",rootBoundary:h="viewport",elementContext:x="floating",altBoundary:y=!1,padding:b=0}=Ps(t,e),E=Kk(b),w=u[y?x==="floating"?"reference":"floating":x],j=ad(await l.getClippingRect({element:(n=await(l.isElement==null?void 0:l.isElement(w)))==null||n?w:w.contextElement||await(l.getDocumentElement==null?void 0:l.getDocumentElement(u.floating)),boundary:m,rootBoundary:h,strategy:p})),C=x==="floating"?{x:s,y:i,width:c.floating.width,height:c.floating.height}:c.reference,N=await(l.getOffsetParent==null?void 0:l.getOffsetParent(u.floating)),T=await(l.isElement==null?void 0:l.isElement(N))?await(l.getScale==null?void 0:l.getScale(N))||{x:1,y:1}:{x:1,y:1},L=ad(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:C,offsetParent:N,strategy:p}):C);return{top:(j.top-L.top+E.top)/T.y,bottom:(L.bottom-j.bottom+E.bottom)/T.y,left:(j.left-L.left+E.left)/T.x,right:(L.right-j.right+E.right)/T.x}}const pD=50,mD=async(e,t,n)=>{const{placement:s="bottom",strategy:i="absolute",middleware:l=[],platform:c}=n,u=c.detectOverflow?c:{...c,detectOverflow:fD},p=await(c.isRTL==null?void 0:c.isRTL(t));let m=await c.getElementRects({reference:e,floating:t,strategy:i}),{x:h,y:x}=$v(m,s,p),y=s,b=0;const E={};for(let k=0;k<l.length;k++){const w=l[k];if(!w)continue;const{name:j,fn:C}=w,{x:N,y:T,data:L,reset:P}=await C({x:h,y:x,initialPlacement:s,placement:y,strategy:i,middlewareData:E,rects:m,platform:u,elements:{reference:e,floating:t}});h=N??h,x=T??x,E[j]={...E[j],...L},P&&b<pD&&(b++,typeof P=="object"&&(P.placement&&(y=P.placement),P.rects&&(m=P.rects===!0?await c.getElementRects({reference:e,floating:t,strategy:i}):P.rects),{x:h,y:x}=$v(m,y,p)),k=-1)}return{x:h,y:x,placement:y,strategy:i,middlewareData:E}},hD=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:s,placement:i,rects:l,platform:c,elements:u,middlewareData:p}=t,{element:m,padding:h=0}=Ps(e,t)||{};if(m==null)return{};const x=Kk(h),y={x:n,y:s},b=Pg(i),E=Tg(b),k=await c.getDimensions(m),w=b==="y",j=w?"top":"left",C=w?"bottom":"right",N=w?"clientHeight":"clientWidth",T=l.reference[E]+l.reference[b]-y[b]-l.floating[E],L=y[b]-l.reference[b],P=await(c.getOffsetParent==null?void 0:c.getOffsetParent(m));let $=P?P[N]:0;(!$||!await(c.isElement==null?void 0:c.isElement(P)))&&($=u.floating[N]||l.floating[E]);const F=T/2-L/2,X=$/2-k[E]/2-1,te=oo(x[j],X),D=oo(x[C],X),W=te,Z=$-k[E]-D,M=$/2-k[E]/2+F,K=hh(W,M,Z),J=!p.arrow&&ca(i)!=null&&M!==K&&l.reference[E]/2-(M<W?te:D)-k[E]/2<0,le=J?M<W?M-W:M-Z:0;return{[b]:y[b]+le,data:{[b]:K,centerOffset:M-K-le,...J&&{alignmentOffset:le}},reset:J}}}),gD=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,s;const{placement:i,middlewareData:l,rects:c,initialPlacement:u,platform:p,elements:m}=t,{mainAxis:h=!0,crossAxis:x=!0,fallbackPlacements:y,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:k=!0,...w}=Ps(e,t);if((n=l.arrow)!=null&&n.alignmentOffset)return{};const j=Rs(i),C=is(u),N=Rs(u)===u,T=await(p.isRTL==null?void 0:p.isRTL(m.floating)),L=y||(N||!k?[id(u)]:iD(u)),P=E!=="none";!y&&P&&L.push(...uD(u,k,E,T));const $=[u,...L],F=await p.detectOverflow(t,w),X=[];let te=((s=l.flip)==null?void 0:s.overflows)||[];if(h&&X.push(F[j]),x){const M=oD(i,c,T);X.push(F[M[0]],F[M[1]])}if(te=[...te,{placement:i,overflows:X}],!X.every(M=>M<=0)){var D,W;const M=(((D=l.flip)==null?void 0:D.index)||0)+1,K=$[M];if(K&&(!(x==="alignment"?C!==is(K):!1)||te.every(_=>is(_.placement)===C?_.overflows[0]>0:!0)))return{data:{index:M,overflows:te},reset:{placement:K}};let J=(W=te.filter(le=>le.overflows[0]<=0).sort((le,_)=>le.overflows[1]-_.overflows[1])[0])==null?void 0:W.placement;if(!J)switch(b){case"bestFit":{var Z;const le=(Z=te.filter(_=>{if(P){const G=is(_.placement);return G===C||G==="y"}return!0}).map(_=>[_.placement,_.overflows.filter(G=>G>0).reduce((G,A)=>G+A,0)]).sort((_,G)=>_[1]-G[1])[0])==null?void 0:Z[0];le&&(J=le);break}case"initialPlacement":J=u;break}if(i!==J)return{reset:{placement:J}}}return{}}}};function Lv(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Iv(e){return rD.some(t=>e[t]>=0)}const xD=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:s}=t,{strategy:i="referenceHidden",...l}=Ps(e,t);switch(i){case"referenceHidden":{const c=await s.detectOverflow(t,{...l,elementContext:"reference"}),u=Lv(c,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:Iv(u)}}}case"escaped":{const c=await s.detectOverflow(t,{...l,altBoundary:!0}),u=Lv(c,n.floating);return{data:{escapedOffsets:u,escaped:Iv(u)}}}default:return{}}}}},qk=new Set(["left","top"]);async function yD(e,t){const{placement:n,platform:s,elements:i}=e,l=await(s.isRTL==null?void 0:s.isRTL(i.floating)),c=Rs(n),u=ca(n),p=is(n)==="y",m=qk.has(c)?-1:1,h=l&&p?-1:1,x=Ps(t,e);let{mainAxis:y,crossAxis:b,alignmentAxis:E}=typeof x=="number"?{mainAxis:x,crossAxis:0,alignmentAxis:null}:{mainAxis:x.mainAxis||0,crossAxis:x.crossAxis||0,alignmentAxis:x.alignmentAxis};return u&&typeof E=="number"&&(b=u==="end"?E*-1:E),p?{x:b*h,y:y*m}:{x:y*m,y:b*h}}const bD=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,s;const{x:i,y:l,placement:c,middlewareData:u}=t,p=await yD(t,e);return c===((n=u.offset)==null?void 0:n.placement)&&(s=u.arrow)!=null&&s.alignmentOffset?{}:{x:i+p.x,y:l+p.y,data:{...p,placement:c}}}}},vD=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:i,platform:l}=t,{mainAxis:c=!0,crossAxis:u=!1,limiter:p={fn:j=>{let{x:C,y:N}=j;return{x:C,y:N}}},...m}=Ps(e,t),h={x:n,y:s},x=await l.detectOverflow(t,m),y=is(Rs(i)),b=Eg(y);let E=h[b],k=h[y];if(c){const j=b==="y"?"top":"left",C=b==="y"?"bottom":"right",N=E+x[j],T=E-x[C];E=hh(N,E,T)}if(u){const j=y==="y"?"top":"left",C=y==="y"?"bottom":"right",N=k+x[j],T=k-x[C];k=hh(N,k,T)}const w=p.fn({...t,[b]:E,[y]:k});return{...w,data:{x:w.x-n,y:w.y-s,enabled:{[b]:c,[y]:u}}}}}},wD=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:s,placement:i,rects:l,middlewareData:c}=t,{offset:u=0,mainAxis:p=!0,crossAxis:m=!0}=Ps(e,t),h={x:n,y:s},x=is(i),y=Eg(x);let b=h[y],E=h[x];const k=Ps(u,t),w=typeof k=="number"?{mainAxis:k,crossAxis:0}:{mainAxis:0,crossAxis:0,...k};if(p){const N=y==="y"?"height":"width",T=l.reference[y]-l.floating[N]+w.mainAxis,L=l.reference[y]+l.reference[N]-w.mainAxis;b<T?b=T:b>L&&(b=L)}if(m){var j,C;const N=y==="y"?"width":"height",T=qk.has(Rs(i)),L=l.reference[x]-l.floating[N]+(T&&((j=c.offset)==null?void 0:j[x])||0)+(T?0:w.crossAxis),P=l.reference[x]+l.reference[N]+(T?0:((C=c.offset)==null?void 0:C[x])||0)-(T?w.crossAxis:0);E<L?E=L:E>P&&(E=P)}return{[y]:b,[x]:E}}}},jD=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,s;const{placement:i,rects:l,platform:c,elements:u}=t,{apply:p=()=>{},...m}=Ps(e,t),h=await c.detectOverflow(t,m),x=Rs(i),y=ca(i),b=is(i)==="y",{width:E,height:k}=l.floating;let w,j;x==="top"||x==="bottom"?(w=x,j=y===(await(c.isRTL==null?void 0:c.isRTL(u.floating))?"start":"end")?"left":"right"):(j=x,w=y==="end"?"top":"bottom");const C=k-h.top-h.bottom,N=E-h.left-h.right,T=oo(k-h[w],C),L=oo(E-h[j],N),P=!t.middlewareData.shift;let $=T,F=L;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(F=N),(s=t.middlewareData.shift)!=null&&s.enabled.y&&($=C),P&&!y){const te=hr(h.left,0),D=hr(h.right,0),W=hr(h.top,0),Z=hr(h.bottom,0);b?F=E-2*(te!==0||D!==0?te+D:hr(h.left,h.right)):$=k-2*(W!==0||Z!==0?W+Z:hr(h.top,h.bottom))}await p({...t,availableWidth:F,availableHeight:$});const X=await c.getDimensions(u.floating);return E!==X.width||k!==X.height?{reset:{rects:!0}}:{}}}};function Bd(){return typeof window<"u"}function ua(e){return Gk(e)?(e.nodeName||"").toLowerCase():"#document"}function yr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function hs(e){var t;return(t=(Gk(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Gk(e){return Bd()?e instanceof Node||e instanceof yr(e).Node:!1}function Wr(e){return Bd()?e instanceof Element||e instanceof yr(e).Element:!1}function Ls(e){return Bd()?e instanceof HTMLElement||e instanceof yr(e).HTMLElement:!1}function Ov(e){return!Bd()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof yr(e).ShadowRoot}function tc(e){const{overflow:t,overflowX:n,overflowY:s,display:i}=Kr(e);return/auto|scroll|overlay|hidden|clip/.test(t+s+n)&&i!=="inline"&&i!=="contents"}function kD(e){return/^(table|td|th)$/.test(ua(e))}function Ud(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const SD=/transform|translate|scale|rotate|perspective|filter/,ND=/paint|layout|strict|content/,Lo=e=>!!e&&e!=="none";let km;function Rg(e){const t=Wr(e)?Kr(e):e;return Lo(t.transform)||Lo(t.translate)||Lo(t.scale)||Lo(t.rotate)||Lo(t.perspective)||!Ag()&&(Lo(t.backdropFilter)||Lo(t.filter))||SD.test(t.willChange||"")||ND.test(t.contain||"")}function CD(e){let t=io(e);for(;Ls(t)&&!ra(t);){if(Rg(t))return t;if(Ud(t))return null;t=io(t)}return null}function Ag(){return km==null&&(km=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),km}function ra(e){return/^(html|body|#document)$/.test(ua(e))}function Kr(e){return yr(e).getComputedStyle(e)}function Vd(e){return Wr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function io(e){if(ua(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Ov(e)&&e.host||hs(e);return Ov(t)?t.host:t}function Yk(e){const t=io(e);return ra(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ls(t)&&tc(t)?t:Yk(t)}function Fl(e,t,n){var s;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=Yk(e),l=i===((s=e.ownerDocument)==null?void 0:s.body),c=yr(i);if(l){const u=xh(c);return t.concat(c,c.visualViewport||[],tc(i)?i:[],u&&n?Fl(u):[])}else return t.concat(i,Fl(i,[],n))}function xh(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Jk(e){const t=Kr(e);let n=parseFloat(t.width)||0,s=parseFloat(t.height)||0;const i=Ls(e),l=i?e.offsetWidth:n,c=i?e.offsetHeight:s,u=od(n)!==l||od(s)!==c;return u&&(n=l,s=c),{width:n,height:s,$:u}}function Dg(e){return Wr(e)?e:e.contextElement}function Gi(e){const t=Dg(e);if(!Ls(t))return cs(1);const n=t.getBoundingClientRect(),{width:s,height:i,$:l}=Jk(t);let c=(l?od(n.width):n.width)/s,u=(l?od(n.height):n.height)/i;return(!c||!Number.isFinite(c))&&(c=1),(!u||!Number.isFinite(u))&&(u=1),{x:c,y:u}}const ED=cs(0);function Xk(e){const t=yr(e);return!Ag()||!t.visualViewport?ED:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function TD(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==yr(e)?!1:t}function Uo(e,t,n,s){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),l=Dg(e);let c=cs(1);t&&(s?Wr(s)&&(c=Gi(s)):c=Gi(e));const u=TD(l,n,s)?Xk(l):cs(0);let p=(i.left+u.x)/c.x,m=(i.top+u.y)/c.y,h=i.width/c.x,x=i.height/c.y;if(l){const y=yr(l),b=s&&Wr(s)?yr(s):s;let E=y,k=xh(E);for(;k&&s&&b!==E;){const w=Gi(k),j=k.getBoundingClientRect(),C=Kr(k),N=j.left+(k.clientLeft+parseFloat(C.paddingLeft))*w.x,T=j.top+(k.clientTop+parseFloat(C.paddingTop))*w.y;p*=w.x,m*=w.y,h*=w.x,x*=w.y,p+=N,m+=T,E=yr(k),k=xh(E)}}return ad({width:h,height:x,x:p,y:m})}function Hd(e,t){const n=Vd(e).scrollLeft;return t?t.left+n:Uo(hs(e)).left+n}function Qk(e,t){const n=e.getBoundingClientRect(),s=n.left+t.scrollLeft-Hd(e,n),i=n.top+t.scrollTop;return{x:s,y:i}}function PD(e){let{elements:t,rect:n,offsetParent:s,strategy:i}=e;const l=i==="fixed",c=hs(s),u=t?Ud(t.floating):!1;if(s===c||u&&l)return n;let p={scrollLeft:0,scrollTop:0},m=cs(1);const h=cs(0),x=Ls(s);if((x||!x&&!l)&&((ua(s)!=="body"||tc(c))&&(p=Vd(s)),x)){const b=Uo(s);m=Gi(s),h.x=b.x+s.clientLeft,h.y=b.y+s.clientTop}const y=c&&!x&&!l?Qk(c,p):cs(0);return{width:n.width*m.x,height:n.height*m.y,x:n.x*m.x-p.scrollLeft*m.x+h.x+y.x,y:n.y*m.y-p.scrollTop*m.y+h.y+y.y}}function RD(e){return Array.from(e.getClientRects())}function AD(e){const t=hs(e),n=Vd(e),s=e.ownerDocument.body,i=hr(t.scrollWidth,t.clientWidth,s.scrollWidth,s.clientWidth),l=hr(t.scrollHeight,t.clientHeight,s.scrollHeight,s.clientHeight);let c=-n.scrollLeft+Hd(e);const u=-n.scrollTop;return Kr(s).direction==="rtl"&&(c+=hr(t.clientWidth,s.clientWidth)-i),{width:i,height:l,x:c,y:u}}const _v=25;function DD(e,t){const n=yr(e),s=hs(e),i=n.visualViewport;let l=s.clientWidth,c=s.clientHeight,u=0,p=0;if(i){l=i.width,c=i.height;const h=Ag();(!h||h&&t==="fixed")&&(u=i.offsetLeft,p=i.offsetTop)}const m=Hd(s);if(m<=0){const h=s.ownerDocument,x=h.body,y=getComputedStyle(x),b=h.compatMode==="CSS1Compat"&&parseFloat(y.marginLeft)+parseFloat(y.marginRight)||0,E=Math.abs(s.clientWidth-x.clientWidth-b);E<=_v&&(l-=E)}else m<=_v&&(l+=m);return{width:l,height:c,x:u,y:p}}function $D(e,t){const n=Uo(e,!0,t==="fixed"),s=n.top+e.clientTop,i=n.left+e.clientLeft,l=Ls(e)?Gi(e):cs(1),c=e.clientWidth*l.x,u=e.clientHeight*l.y,p=i*l.x,m=s*l.y;return{width:c,height:u,x:p,y:m}}function Mv(e,t,n){let s;if(t==="viewport")s=DD(e,n);else if(t==="document")s=AD(hs(e));else if(Wr(t))s=$D(t,n);else{const i=Xk(e);s={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return ad(s)}function Zk(e,t){const n=io(e);return n===t||!Wr(n)||ra(n)?!1:Kr(n).position==="fixed"||Zk(n,t)}function LD(e,t){const n=t.get(e);if(n)return n;let s=Fl(e,[],!1).filter(u=>Wr(u)&&ua(u)!=="body"),i=null;const l=Kr(e).position==="fixed";let c=l?io(e):e;for(;Wr(c)&&!ra(c);){const u=Kr(c),p=Rg(c);!p&&u.position==="fixed"&&(i=null),(l?!p&&!i:!p&&u.position==="static"&&!!i&&(i.position==="absolute"||i.position==="fixed")||tc(c)&&!p&&Zk(e,c))?s=s.filter(h=>h!==c):i=u,c=io(c)}return t.set(e,s),s}function ID(e){let{element:t,boundary:n,rootBoundary:s,strategy:i}=e;const c=[...n==="clippingAncestors"?Ud(t)?[]:LD(t,this._c):[].concat(n),s],u=Mv(t,c[0],i);let p=u.top,m=u.right,h=u.bottom,x=u.left;for(let y=1;y<c.length;y++){const b=Mv(t,c[y],i);p=hr(b.top,p),m=oo(b.right,m),h=oo(b.bottom,h),x=hr(b.left,x)}return{width:m-x,height:h-p,x,y:p}}function OD(e){const{width:t,height:n}=Jk(e);return{width:t,height:n}}function _D(e,t,n){const s=Ls(t),i=hs(t),l=n==="fixed",c=Uo(e,!0,l,t);let u={scrollLeft:0,scrollTop:0};const p=cs(0);function m(){p.x=Hd(i)}if(s||!s&&!l)if((ua(t)!=="body"||tc(i))&&(u=Vd(t)),s){const b=Uo(t,!0,l,t);p.x=b.x+t.clientLeft,p.y=b.y+t.clientTop}else i&&m();l&&!s&&i&&m();const h=i&&!s&&!l?Qk(i,u):cs(0),x=c.left+u.scrollLeft-p.x-h.x,y=c.top+u.scrollTop-p.y-h.y;return{x,y,width:c.width,height:c.height}}function Sm(e){return Kr(e).position==="static"}function Fv(e,t){if(!Ls(e)||Kr(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return hs(e)===n&&(n=n.ownerDocument.body),n}function e1(e,t){const n=yr(e);if(Ud(e))return n;if(!Ls(e)){let i=io(e);for(;i&&!ra(i);){if(Wr(i)&&!Sm(i))return i;i=io(i)}return n}let s=Fv(e,t);for(;s&&kD(s)&&Sm(s);)s=Fv(s,t);return s&&ra(s)&&Sm(s)&&!Rg(s)?n:s||CD(e)||n}const MD=async function(e){const t=this.getOffsetParent||e1,n=this.getDimensions,s=await n(e.floating);return{reference:_D(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function FD(e){return Kr(e).direction==="rtl"}const zD={convertOffsetParentRelativeRectToViewportRelativeRect:PD,getDocumentElement:hs,getClippingRect:ID,getOffsetParent:e1,getElementRects:MD,getClientRects:RD,getDimensions:OD,getScale:Gi,isElement:Wr,isRTL:FD};function t1(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function BD(e,t){let n=null,s;const i=hs(e);function l(){var u;clearTimeout(s),(u=n)==null||u.disconnect(),n=null}function c(u,p){u===void 0&&(u=!1),p===void 0&&(p=1),l();const m=e.getBoundingClientRect(),{left:h,top:x,width:y,height:b}=m;if(u||t(),!y||!b)return;const E=ku(x),k=ku(i.clientWidth-(h+y)),w=ku(i.clientHeight-(x+b)),j=ku(h),N={rootMargin:-E+"px "+-k+"px "+-w+"px "+-j+"px",threshold:hr(0,oo(1,p))||1};let T=!0;function L(P){const $=P[0].intersectionRatio;if($!==p){if(!T)return c();$?c(!1,$):s=setTimeout(()=>{c(!1,1e-7)},1e3)}$===1&&!t1(m,e.getBoundingClientRect())&&c(),T=!1}try{n=new IntersectionObserver(L,{...N,root:i.ownerDocument})}catch{n=new IntersectionObserver(L,N)}n.observe(e)}return c(!0),l}function UD(e,t,n,s){s===void 0&&(s={});const{ancestorScroll:i=!0,ancestorResize:l=!0,elementResize:c=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:p=!1}=s,m=Dg(e),h=i||l?[...m?Fl(m):[],...t?Fl(t):[]]:[];h.forEach(j=>{i&&j.addEventListener("scroll",n,{passive:!0}),l&&j.addEventListener("resize",n)});const x=m&&u?BD(m,n):null;let y=-1,b=null;c&&(b=new ResizeObserver(j=>{let[C]=j;C&&C.target===m&&b&&t&&(b.unobserve(t),cancelAnimationFrame(y),y=requestAnimationFrame(()=>{var N;(N=b)==null||N.observe(t)})),n()}),m&&!p&&b.observe(m),t&&b.observe(t));let E,k=p?Uo(e):null;p&&w();function w(){const j=Uo(e);k&&!t1(k,j)&&n(),k=j,E=requestAnimationFrame(w)}return n(),()=>{var j;h.forEach(C=>{i&&C.removeEventListener("scroll",n),l&&C.removeEventListener("resize",n)}),x==null||x(),(j=b)==null||j.disconnect(),b=null,p&&cancelAnimationFrame(E)}}const VD=bD,HD=vD,WD=gD,KD=jD,qD=xD,zv=hD,GD=wD,YD=(e,t,n)=>{const s=new Map,i={platform:zD,...n},l={...i.platform,_c:s};return mD(e,t,{...i,platform:l})};var JD=typeof document<"u",XD=function(){},Vu=JD?f.useLayoutEffect:XD;function ld(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,s,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(s=n;s--!==0;)if(!ld(e[s],t[s]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(s=n;s--!==0;)if(!{}.hasOwnProperty.call(t,i[s]))return!1;for(s=n;s--!==0;){const l=i[s];if(!(l==="_owner"&&e.$$typeof)&&!ld(e[l],t[l]))return!1}return!0}return e!==e&&t!==t}function n1(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Bv(e,t){const n=n1(e);return Math.round(t*n)/n}function Nm(e){const t=f.useRef(e);return Vu(()=>{t.current=e}),t}function QD(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:s=[],platform:i,elements:{reference:l,floating:c}={},transform:u=!0,whileElementsMounted:p,open:m}=e,[h,x]=f.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[y,b]=f.useState(s);ld(y,s)||b(s);const[E,k]=f.useState(null),[w,j]=f.useState(null),C=f.useCallback(_=>{_!==P.current&&(P.current=_,k(_))},[]),N=f.useCallback(_=>{_!==$.current&&($.current=_,j(_))},[]),T=l||E,L=c||w,P=f.useRef(null),$=f.useRef(null),F=f.useRef(h),X=p!=null,te=Nm(p),D=Nm(i),W=Nm(m),Z=f.useCallback(()=>{if(!P.current||!$.current)return;const _={placement:t,strategy:n,middleware:y};D.current&&(_.platform=D.current),YD(P.current,$.current,_).then(G=>{const A={...G,isPositioned:W.current!==!1};M.current&&!ld(F.current,A)&&(F.current=A,Es.flushSync(()=>{x(A)}))})},[y,t,n,D,W]);Vu(()=>{m===!1&&F.current.isPositioned&&(F.current.isPositioned=!1,x(_=>({..._,isPositioned:!1})))},[m]);const M=f.useRef(!1);Vu(()=>(M.current=!0,()=>{M.current=!1}),[]),Vu(()=>{if(T&&(P.current=T),L&&($.current=L),T&&L){if(te.current)return te.current(T,L,Z);Z()}},[T,L,Z,te,X]);const K=f.useMemo(()=>({reference:P,floating:$,setReference:C,setFloating:N}),[C,N]),J=f.useMemo(()=>({reference:T,floating:L}),[T,L]),le=f.useMemo(()=>{const _={position:n,left:0,top:0};if(!J.floating)return _;const G=Bv(J.floating,h.x),A=Bv(J.floating,h.y);return u?{..._,transform:"translate("+G+"px, "+A+"px)",...n1(J.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:G,top:A}},[n,u,J.floating,h.x,h.y]);return f.useMemo(()=>({...h,update:Z,refs:K,elements:J,floatingStyles:le}),[h,Z,K,J,le])}const ZD=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:s,padding:i}=typeof e=="function"?e(n):e;return s&&t(s)?s.current!=null?zv({element:s.current,padding:i}).fn(n):{}:s?zv({element:s,padding:i}).fn(n):{}}}},e4=(e,t)=>{const n=VD(e);return{name:n.name,fn:n.fn,options:[e,t]}},t4=(e,t)=>{const n=HD(e);return{name:n.name,fn:n.fn,options:[e,t]}},n4=(e,t)=>({fn:GD(e).fn,options:[e,t]}),r4=(e,t)=>{const n=WD(e);return{name:n.name,fn:n.fn,options:[e,t]}},s4=(e,t)=>{const n=KD(e);return{name:n.name,fn:n.fn,options:[e,t]}},o4=(e,t)=>{const n=qD(e);return{name:n.name,fn:n.fn,options:[e,t]}},i4=(e,t)=>{const n=ZD(e);return{name:n.name,fn:n.fn,options:[e,t]}};var a4="Arrow",r1=f.forwardRef((e,t)=>{const{children:n,width:s=10,height:i=5,...l}=e;return r.jsx(dn.svg,{...l,ref:t,width:s,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:r.jsx("polygon",{points:"0,0 30,0 15,10"})})});r1.displayName=a4;var l4=r1;function c4(e){const[t,n]=f.useState(void 0);return so(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const s=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const l=i[0];let c,u;if("borderBoxSize"in l){const p=l.borderBoxSize,m=Array.isArray(p)?p[0]:p;c=m.inlineSize,u=m.blockSize}else c=e.offsetWidth,u=e.offsetHeight;n({width:c,height:u})});return s.observe(e,{box:"border-box"}),()=>s.unobserve(e)}else n(void 0)},[e]),t}var $g="Popper",[s1,o1]=Wo($g),[u4,i1]=s1($g),a1=e=>{const{__scopePopper:t,children:n}=e,[s,i]=f.useState(null);return r.jsx(u4,{scope:t,anchor:s,onAnchorChange:i,children:n})};a1.displayName=$g;var l1="PopperAnchor",c1=f.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:s,...i}=e,l=i1(l1,n),c=f.useRef(null),u=_n(t,c),p=f.useRef(null);return f.useEffect(()=>{const m=p.current;p.current=(s==null?void 0:s.current)||c.current,m!==p.current&&l.onAnchorChange(p.current)}),s?null:r.jsx(dn.div,{...i,ref:u})});c1.displayName=l1;var Lg="PopperContent",[d4,f4]=s1(Lg),u1=f.forwardRef((e,t)=>{var se,de,ye,je,fe,Ve;const{__scopePopper:n,side:s="bottom",sideOffset:i=0,align:l="center",alignOffset:c=0,arrowPadding:u=0,avoidCollisions:p=!0,collisionBoundary:m=[],collisionPadding:h=0,sticky:x="partial",hideWhenDetached:y=!1,updatePositionStrategy:b="optimized",onPlaced:E,...k}=e,w=i1(Lg,n),[j,C]=f.useState(null),N=_n(t,pe=>C(pe)),[T,L]=f.useState(null),P=c4(T),$=(P==null?void 0:P.width)??0,F=(P==null?void 0:P.height)??0,X=s+(l!=="center"?"-"+l:""),te=typeof h=="number"?h:{top:0,right:0,bottom:0,left:0,...h},D=Array.isArray(m)?m:[m],W=D.length>0,Z={padding:te,boundary:D.filter(m4),altBoundary:W},{refs:M,floatingStyles:K,placement:J,isPositioned:le,middlewareData:_}=QD({strategy:"fixed",placement:X,whileElementsMounted:(...pe)=>UD(...pe,{animationFrame:b==="always"}),elements:{reference:w.anchor},middleware:[e4({mainAxis:i+F,alignmentAxis:c}),p&&t4({mainAxis:!0,crossAxis:!1,limiter:x==="partial"?n4():void 0,...Z}),p&&r4({...Z}),s4({...Z,apply:({elements:pe,rects:Re,availableWidth:O,availableHeight:H})=>{const{width:Q,height:ge}=Re.reference,Ie=pe.floating.style;Ie.setProperty("--radix-popper-available-width",`${O}px`),Ie.setProperty("--radix-popper-available-height",`${H}px`),Ie.setProperty("--radix-popper-anchor-width",`${Q}px`),Ie.setProperty("--radix-popper-anchor-height",`${ge}px`)}}),T&&i4({element:T,padding:u}),h4({arrowWidth:$,arrowHeight:F}),y&&o4({strategy:"referenceHidden",...Z})]}),[G,A]=p1(J),B=zo(E);so(()=>{le&&(B==null||B())},[le,B]);const ee=(se=_.arrow)==null?void 0:se.x,I=(de=_.arrow)==null?void 0:de.y,ue=((ye=_.arrow)==null?void 0:ye.centerOffset)!==0,[me,U]=f.useState();return so(()=>{j&&U(window.getComputedStyle(j).zIndex)},[j]),r.jsx("div",{ref:M.setFloating,"data-radix-popper-content-wrapper":"",style:{...K,transform:le?K.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(je=_.transformOrigin)==null?void 0:je.x,(fe=_.transformOrigin)==null?void 0:fe.y].join(" "),...((Ve=_.hide)==null?void 0:Ve.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:r.jsx(d4,{scope:n,placedSide:G,onArrowChange:L,arrowX:ee,arrowY:I,shouldHideArrow:ue,children:r.jsx(dn.div,{"data-side":G,"data-align":A,...k,ref:N,style:{...k.style,animation:le?void 0:"none"}})})})});u1.displayName=Lg;var d1="PopperArrow",p4={top:"bottom",right:"left",bottom:"top",left:"right"},f1=f.forwardRef(function(t,n){const{__scopePopper:s,...i}=t,l=f4(d1,s),c=p4[l.placedSide];return r.jsx("span",{ref:l.onArrowChange,style:{position:"absolute",left:l.arrowX,top:l.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[l.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[l.placedSide],visibility:l.shouldHideArrow?"hidden":void 0},children:r.jsx(l4,{...i,ref:n,style:{...i.style,display:"block"}})})});f1.displayName=d1;function m4(e){return e!==null}var h4=e=>({name:"transformOrigin",options:e,fn(t){var w,j,C;const{placement:n,rects:s,middlewareData:i}=t,c=((w=i.arrow)==null?void 0:w.centerOffset)!==0,u=c?0:e.arrowWidth,p=c?0:e.arrowHeight,[m,h]=p1(n),x={start:"0%",center:"50%",end:"100%"}[h],y=(((j=i.arrow)==null?void 0:j.x)??0)+u/2,b=(((C=i.arrow)==null?void 0:C.y)??0)+p/2;let E="",k="";return m==="bottom"?(E=c?x:`${y}px`,k=`${-p}px`):m==="top"?(E=c?x:`${y}px`,k=`${s.floating.height+p}px`):m==="right"?(E=`${-p}px`,k=c?x:`${b}px`):m==="left"&&(E=`${s.floating.width+p}px`,k=c?x:`${b}px`),{data:{x:E,y:k}}}});function p1(e){const[t,n="center"]=e.split("-");return[t,n]}var g4=a1,x4=c1,y4=u1,b4=f1,v4=Symbol("radix.slottable");function w4(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=v4,t}var j4=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),k4="VisuallyHidden",m1=f.forwardRef((e,t)=>r.jsx(dn.span,{...e,ref:t,style:{...j4,...e.style}}));m1.displayName=k4;var S4=m1,[Wd]=Wo("Tooltip",[o1]),Kd=o1(),h1="TooltipProvider",N4=700,yh="tooltip.open",[C4,Ig]=Wd(h1),g1=e=>{const{__scopeTooltip:t,delayDuration:n=N4,skipDelayDuration:s=300,disableHoverableContent:i=!1,children:l}=e,c=f.useRef(!0),u=f.useRef(!1),p=f.useRef(0);return f.useEffect(()=>{const m=p.current;return()=>window.clearTimeout(m)},[]),r.jsx(C4,{scope:t,isOpenDelayedRef:c,delayDuration:n,onOpen:f.useCallback(()=>{window.clearTimeout(p.current),c.current=!1},[]),onClose:f.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>c.current=!0,s)},[s]),isPointerInTransitRef:u,onPointerInTransitChange:f.useCallback(m=>{u.current=m},[]),disableHoverableContent:i,children:l})};g1.displayName=h1;var zl="Tooltip",[E4,nc]=Wd(zl),x1=e=>{const{__scopeTooltip:t,children:n,open:s,defaultOpen:i,onOpenChange:l,disableHoverableContent:c,delayDuration:u}=e,p=Ig(zl,e.__scopeTooltip),m=Kd(t),[h,x]=f.useState(null),y=Hi(),b=f.useRef(0),E=c??p.disableHoverableContent,k=u??p.delayDuration,w=f.useRef(!1),[j,C]=Id({prop:s,defaultProp:i??!1,onChange:$=>{$?(p.onOpen(),document.dispatchEvent(new CustomEvent(yh))):p.onClose(),l==null||l($)},caller:zl}),N=f.useMemo(()=>j?w.current?"delayed-open":"instant-open":"closed",[j]),T=f.useCallback(()=>{window.clearTimeout(b.current),b.current=0,w.current=!1,C(!0)},[C]),L=f.useCallback(()=>{window.clearTimeout(b.current),b.current=0,C(!1)},[C]),P=f.useCallback(()=>{window.clearTimeout(b.current),b.current=window.setTimeout(()=>{w.current=!0,C(!0),b.current=0},k)},[k,C]);return f.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=0)},[]),r.jsx(g4,{...m,children:r.jsx(E4,{scope:t,contentId:y,open:j,stateAttribute:N,trigger:h,onTriggerChange:x,onTriggerEnter:f.useCallback(()=>{p.isOpenDelayedRef.current?P():T()},[p.isOpenDelayedRef,P,T]),onTriggerLeave:f.useCallback(()=>{E?L():(window.clearTimeout(b.current),b.current=0)},[L,E]),onOpen:T,onClose:L,disableHoverableContent:E,children:n})})};x1.displayName=zl;var bh="TooltipTrigger",y1=f.forwardRef((e,t)=>{const{__scopeTooltip:n,...s}=e,i=nc(bh,n),l=Ig(bh,n),c=Kd(n),u=f.useRef(null),p=_n(t,u,i.onTriggerChange),m=f.useRef(!1),h=f.useRef(!1),x=f.useCallback(()=>m.current=!1,[]);return f.useEffect(()=>()=>document.removeEventListener("pointerup",x),[x]),r.jsx(x4,{asChild:!0,...c,children:r.jsx(dn.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...s,ref:p,onPointerMove:Vt(e.onPointerMove,y=>{y.pointerType!=="touch"&&!h.current&&!l.isPointerInTransitRef.current&&(i.onTriggerEnter(),h.current=!0)}),onPointerLeave:Vt(e.onPointerLeave,()=>{i.onTriggerLeave(),h.current=!1}),onPointerDown:Vt(e.onPointerDown,()=>{i.open&&i.onClose(),m.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:Vt(e.onFocus,()=>{m.current||i.onOpen()}),onBlur:Vt(e.onBlur,i.onClose),onClick:Vt(e.onClick,i.onClose)})})});y1.displayName=bh;var Og="TooltipPortal",[T4,P4]=Wd(Og,{forceMount:void 0}),b1=e=>{const{__scopeTooltip:t,forceMount:n,children:s,container:i}=e,l=nc(Og,t);return r.jsx(T4,{scope:t,forceMount:n,children:r.jsx(Ko,{present:n||l.open,children:r.jsx(dg,{asChild:!0,container:i,children:s})})})};b1.displayName=Og;var sa="TooltipContent",v1=f.forwardRef((e,t)=>{const n=P4(sa,e.__scopeTooltip),{forceMount:s=n.forceMount,side:i="top",...l}=e,c=nc(sa,e.__scopeTooltip);return r.jsx(Ko,{present:s||c.open,children:c.disableHoverableContent?r.jsx(w1,{side:i,...l,ref:t}):r.jsx(R4,{side:i,...l,ref:t})})}),R4=f.forwardRef((e,t)=>{const n=nc(sa,e.__scopeTooltip),s=Ig(sa,e.__scopeTooltip),i=f.useRef(null),l=_n(t,i),[c,u]=f.useState(null),{trigger:p,onClose:m}=n,h=i.current,{onPointerInTransitChange:x}=s,y=f.useCallback(()=>{u(null),x(!1)},[x]),b=f.useCallback((E,k)=>{const w=E.currentTarget,j={x:E.clientX,y:E.clientY},C=I4(j,w.getBoundingClientRect()),N=O4(j,C),T=_4(k.getBoundingClientRect()),L=F4([...N,...T]);u(L),x(!0)},[x]);return f.useEffect(()=>()=>y(),[y]),f.useEffect(()=>{if(p&&h){const E=w=>b(w,h),k=w=>b(w,p);return p.addEventListener("pointerleave",E),h.addEventListener("pointerleave",k),()=>{p.removeEventListener("pointerleave",E),h.removeEventListener("pointerleave",k)}}},[p,h,b,y]),f.useEffect(()=>{if(c){const E=k=>{const w=k.target,j={x:k.clientX,y:k.clientY},C=(p==null?void 0:p.contains(w))||(h==null?void 0:h.contains(w)),N=!M4(j,c);C?y():N&&(y(),m())};return document.addEventListener("pointermove",E),()=>document.removeEventListener("pointermove",E)}},[p,h,c,m,y]),r.jsx(w1,{...e,ref:l})}),[A4,D4]=Wd(zl,{isInside:!1}),$4=w4("TooltipContent"),w1=f.forwardRef((e,t)=>{const{__scopeTooltip:n,children:s,"aria-label":i,onEscapeKeyDown:l,onPointerDownOutside:c,...u}=e,p=nc(sa,n),m=Kd(n),{onClose:h}=p;return f.useEffect(()=>(document.addEventListener(yh,h),()=>document.removeEventListener(yh,h)),[h]),f.useEffect(()=>{if(p.trigger){const x=y=>{const b=y.target;b!=null&&b.contains(p.trigger)&&h()};return window.addEventListener("scroll",x,{capture:!0}),()=>window.removeEventListener("scroll",x,{capture:!0})}},[p.trigger,h]),r.jsx(ug,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:x=>x.preventDefault(),onDismiss:h,children:r.jsxs(y4,{"data-state":p.stateAttribute,...m,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[r.jsx($4,{children:s}),r.jsx(A4,{scope:n,isInside:!0,children:r.jsx(S4,{id:p.contentId,role:"tooltip",children:i||s})})]})})});v1.displayName=sa;var j1="TooltipArrow",L4=f.forwardRef((e,t)=>{const{__scopeTooltip:n,...s}=e,i=Kd(n);return D4(j1,n).isInside?null:r.jsx(b4,{...i,...s,ref:t})});L4.displayName=j1;function I4(e,t){const n=Math.abs(t.top-e.y),s=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),l=Math.abs(t.left-e.x);switch(Math.min(n,s,i,l)){case l:return"left";case i:return"right";case n:return"top";case s:return"bottom";default:throw new Error("unreachable")}}function O4(e,t,n=5){const s=[];switch(t){case"top":s.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":s.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":s.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":s.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return s}function _4(e){const{top:t,right:n,bottom:s,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:s},{x:i,y:s}]}function M4(e,t){const{x:n,y:s}=e;let i=!1;for(let l=0,c=t.length-1;l<t.length;c=l++){const u=t[l],p=t[c],m=u.x,h=u.y,x=p.x,y=p.y;h>s!=y>s&&n<(x-m)*(s-h)/(y-h)+m&&(i=!i)}return i}function F4(e){const t=e.slice();return t.sort((n,s)=>n.x<s.x?-1:n.x>s.x?1:n.y<s.y?-1:n.y>s.y?1:0),z4(t)}function z4(e){if(e.length<=1)return e.slice();const t=[];for(let s=0;s<e.length;s++){const i=e[s];for(;t.length>=2;){const l=t[t.length-1],c=t[t.length-2];if((l.x-c.x)*(i.y-c.y)>=(l.y-c.y)*(i.x-c.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let s=e.length-1;s>=0;s--){const i=e[s];for(;n.length>=2;){const l=n[n.length-1],c=n[n.length-2];if((l.x-c.x)*(i.y-c.y)>=(l.y-c.y)*(i.x-c.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var B4=g1,U4=x1,V4=y1,H4=b1,k1=v1;const Fo=B4,Pr=U4,Rr=V4,gr=f.forwardRef(({className:e,sideOffset:t=4,...n},s)=>r.jsx(H4,{children:r.jsx(k1,{ref:s,sideOffset:t,className:Ee("z-50 overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));gr.displayName=k1.displayName;function _g({items:e,align:t="end"}){const[n,s]=f.useState(!1),i=f.useRef(null);return f.useEffect(()=>{if(!n)return;function l(u){i.current&&!i.current.contains(u.target)&&s(!1)}function c(u){u.key==="Escape"&&s(!1)}return document.addEventListener("mousedown",l),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",l),document.removeEventListener("keydown",c)}},[n]),e.length===0?null:r.jsxs("div",{className:"relative",ref:i,children:[r.jsx("button",{type:"button",onClick:()=>s(l=>!l),className:"shell-action",title:"More actions","aria-haspopup":"true","aria-expanded":n,children:r.jsx(CT,{className:"h-4 w-4"})}),n&&r.jsx("div",{className:Ee("absolute top-full mt-1 z-30 min-w-[220px] rounded-md border border-border/70 bg-background shadow-lg py-1",t==="end"?"right-0":"left-0"),children:r.jsx(Fo,{delayDuration:200,children:e.map(l=>{const c=l.icon,u=Ee("flex w-full items-center gap-2 px-3 py-1.5 text-sm text-left transition",l.disabled?"opacity-50 cursor-not-allowed":l.destructive?"text-destructive hover:bg-destructive/10":"hover:bg-foreground/5"),p=r.jsxs(r.Fragment,{children:[c?r.jsx(c,{className:"h-4 w-4 shrink-0"}):null,r.jsx("span",{className:"block min-w-0 truncate",children:l.label})]});if(l.disabled){const m=r.jsx("span",{tabIndex:0,className:"inline-block w-full outline-none focus-visible:ring-1 focus-visible:ring-ring",children:r.jsx("button",{type:"button",disabled:!0,className:u,children:p})});return l.disabledReason?r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:m}),r.jsx(gr,{side:"left",children:l.disabledReason})]},l.key):r.jsx("div",{children:m},l.key)}return l.href?r.jsx(Ce,{to:l.href,className:u,onClick:()=>s(!1),children:p},l.key):r.jsx("button",{type:"button",className:u,onClick:()=>{var m;(m=l.onSelect)==null||m.call(l),s(!1)},children:p},l.key)})})})]})}function Uv(e){const t=Date.parse(e);return Number.isNaN(t)?!1:Date.now()-t>10080*60*1e3}const W4={last_24h:1440*60*1e3,last_7d:10080*60*1e3,last_30d:720*60*60*1e3,last_90d:2160*60*60*1e3,older_7d:10080*60*1e3,older_30d:720*60*60*1e3};function K4(e){const[t,n,s]=e.split("-").map(Number);return new Date(t,n-1,s,0,0,0,0).getTime()}function q4(e){const[t,n,s]=e.split("-").map(Number);return new Date(t,n-1,s,23,59,59,999).getTime()}function G4(e,t,n=Date.now()){if(!t)return!0;const s=t.field==="created"?e.created??e.updated:e.updated,i=Date.parse(s);if(Number.isNaN(i))return!1;if(t.preset){const u=W4[t.preset];return u===void 0?!0:t.preset.startsWith("older_")?n-i>u:i>=n-u&&i<=n}const l=t.from&&t.from.length>0?t.from:void 0,c=t.to&&t.to.length>0?t.to:void 0;return!l&&!c?!0:!(l&&i<K4(l)||c&&i>q4(c))}function Mg(e,t,n={}){const{workspace:s,search:i,includeArchived:l}=n;if(e.archived===!0&&!l)return!1;const c=Je(t.status),u=Je(t.priority),p=Je(t.type),m=Je(t.assignee),h=Je(t.project),x=Je(t.tags),{activity:y}=t;if(s){if(s==="_ungrouped"){if(e.projectWorkspace!=null)return!1}else if(e.projectWorkspace!==s)return!1}if(c.length&&!c.includes(e.status)||u.length&&!u.includes(e.priority)||p.length&&!p.includes(e.type??"")||y==="stale"&&!Uv(e.updated)||y==="fresh"&&Uv(e.updated))return!1;if(m.length){const b=e.assignee??"__unassigned__";if(!m.includes(b))return!1}if(h.length&&!h.some(E=>E==="__standalone__"?e.projectSlug==null:e.projectSlug===E))return!1;if(x.length){const b=e.tags??[];if(!x.some(E=>b.includes(E)))return!1}if(!G4(e,t.dateRange))return!1;if(i){const b=i.trim().toLowerCase();if(b&&!`${e.title??""} ${e.slug??""} ${e.projectTitle??"standalone"} ${e.projectSlug??""}`.toLowerCase().includes(b))return!1}return!0}function cd(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}const S1={statuses:[{id:"pending",label:"Pending"},{id:"in_progress",label:"In Progress"},{id:"blocked",label:"Blocked"},{id:"review",label:"Review"},{id:"completed",label:"Completed"},{id:"failed",label:"Failed"}],order:["pending","in_progress","blocked","review","completed","failed"],transitions:[],custom:!1};let kl=null,Oo=null;function Y4(){return kl?Promise.resolve(kl):Oo||(Oo=fetch("/api/config/statuses").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(kl=e,Oo=null,e)).catch(()=>(Oo=null,S1)),Oo)}function qo(){const[e,t]=f.useState(()=>kl??S1);return f.useEffect(()=>{Y4().then(t)},[]),e}function Vv(){kl=null,Oo=null}function rc(e,t){const n=e.statuses.find(s=>s.id===t);return(n==null?void 0:n.label)??t.replace(/_/g," ").replace(/\b\w/g,s=>s.toUpperCase())}const Hv={critical:0,high:1,medium:2,low:3};function Su(e){return Date.parse(e??"")||0}function sc(e,t,n){return[...e].sort((i,l)=>{let c=0;switch(t){case"title":c=i.title.localeCompare(l.title);break;case"status":c=i.status.localeCompare(l.status);break;case"priority":c=(Hv[i.priority]??99)-(Hv[l.priority]??99);break;case"assignee":c=(i.assignee??"").localeCompare(l.assignee??"");break;case"dependencies":c=i.dependsOn.length-l.dependsOn.length;break;case"created":c=Su(i.created)-Su(l.created);break;case"updated":c=Su(i.updated)-Su(l.updated);break}return n==="asc"?c:-c})}function ct({title:e,description:t,actions:n}){return r.jsx("div",{className:"rounded-lg border border-dashed border-border bg-muted/40 px-4 py-6 text-center",children:r.jsxs("div",{className:"mx-auto max-w-xl space-y-2",children:[r.jsx("h3",{className:"text-base font-semibold text-foreground",children:e}),r.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:t}),n?r.jsx("div",{className:"flex flex-wrap justify-center gap-3 pt-2",children:n}):null]})})}const vh='a, button, input, select, textarea, [contenteditable="true"], [role="button"], [data-no-drag]';function qd({columns:e,items:t,getItemId:n,getColumnId:s,renderCard:i,canDrop:l,onMove:c,getExternalDragData:u,onCardContextMenu:p,emptyMessage:m="No cards in this column.",hiddenColumnIds:h,onHideColumn:x,compact:y=!1,dragDisabled:b=!1}){const E=f.useMemo(()=>new Set(h??[]),[h]),k=f.useMemo(()=>e.filter(M=>!E.has(M.id)),[e,E]),w=f.useMemo(()=>e.filter(M=>E.has(M.id)),[e,E]),[j,C]=f.useState(null),[N,T]=f.useState(null),L=f.useRef(null),P=f.useMemo(()=>new Map(t.map(M=>[n(M),M])),[n,t]),$=f.useMemo(()=>k.map(M=>({column:M,items:t.filter(K=>s(K)===M.id)})),[k,s,t]),F=j?P.get(j)??null:null;function X(M){if(!F)return{allowed:!1};const K=s(F);return(l==null?void 0:l({item:F,fromColumnId:K,toColumnId:M}))??{allowed:!0}}function te(){C(null),T(null)}function D(M,K,J){if(b)return;const le=(u==null?void 0:u(K))??null;!c&&!le||(M.dataTransfer.effectAllowed="move",M.dataTransfer.setData("text/plain",J),le&&M.dataTransfer.setData("application/json",JSON.stringify(le)),c&&C(J))}function W(M,K,J){b||!c||!F||!X(K).allowed||(M.preventDefault(),M.dataTransfer.dropEffect="move",T(_=>(_==null?void 0:_.columnId)===K&&_.index===J?_:{columnId:K,index:J}))}async function Z(M,K,J){var B;if(M.preventDefault(),b||!c||!F){te();return}const le=s(F),G=(((B=$.find(ee=>ee.column.id===le))==null?void 0:B.items)??[]).findIndex(ee=>n(ee)===n(F));if(!X(K).allowed||G<0){te();return}if(le===K&&(J===G||J===G+1)){te();return}try{await c({item:F,fromColumnId:le,toColumnId:K,fromIndex:G,toIndex:J})}finally{te()}}return r.jsxs("div",{className:"relative overflow-x-auto pb-2",style:{scrollbarColor:"oklch(var(--border)) transparent",scrollbarWidth:"thin"},children:[w.length>0&&x?r.jsxs("div",{className:"mb-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[r.jsx("span",{children:"Hidden:"}),w.map(M=>r.jsxs("button",{type:"button",onClick:()=>x(M.id),className:"rounded-full border border-dashed border-border/60 px-2 py-0.5 hover:border-border hover:text-foreground",title:`Restore "${M.title}" column`,children:[M.title," ×"]},M.id))]}):null,r.jsx("div",{className:Ee("grid min-w-max grid-flow-col gap-4",y?"auto-cols-[minmax(200px,240px)]":"auto-cols-[minmax(260px,320px)]"),children:$.map(({column:M,items:K})=>{const J=X(M.id),le=(N==null?void 0:N.columnId)===M.id;return r.jsxs("section",{className:Ee("flex flex-col rounded-lg border border-border/60 bg-card/85 shadow-sm",y?"min-h-[200px] p-2":"min-h-[320px] p-3",F&&!J.allowed?"border-dashed opacity-65":"",F&&J.allowed?"border-primary/30 bg-accent/30":"",le?"ring-2 ring-ring/30":""),title:F&&!J.allowed?J.reason:void 0,children:[r.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h2",{className:Ee("font-semibold uppercase tracking-[0.16em] text-muted-foreground",y?"text-xs":"text-sm"),children:M.title}),M.description&&!y?r.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:M.description}):null]}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs font-semibold text-foreground",children:K.length}),x?r.jsx("button",{type:"button",onClick:()=>x(M.id),className:"rounded-full border border-transparent px-1.5 py-0.5 text-xs text-muted-foreground hover:border-border hover:text-foreground",title:`Hide "${M.title}" column`,"aria-label":`Hide column ${M.title}`,children:"×"}):null]})]}),r.jsxs("div",{className:"flex flex-1 flex-col gap-3",onDragOver:_=>W(_,M.id,K.length),onDrop:_=>Z(_,M.id,K.length),children:[K.length===0?b?r.jsx("div",{className:"flex min-h-[128px] items-center justify-center rounded-lg border border-border/60 bg-background/50 px-4 text-center text-sm text-muted-foreground",children:typeof m=="function"?m(M):m}):r.jsx(J4,{active:(N==null?void 0:N.columnId)===M.id&&N.index===0,disabled:!!F&&!J.allowed,children:typeof m=="function"?m(M):m}):null,K.map((_,G)=>{const A=n(_),B=j===A;return r.jsxs(f.Fragment,{children:[r.jsx("div",{className:Ee("h-2 rounded-full transition",(N==null?void 0:N.columnId)===M.id&&N.index===G?"bg-primary/70":"bg-transparent"),onDragOver:ee=>W(ee,M.id,G),onDrop:ee=>Z(ee,M.id,G)}),r.jsx("div",{draggable:!b&&!!(c||u),onMouseDown:ee=>{L.current=ee.target},onDragStart:ee=>{const I=L.current;if(I!=null&&I.closest(vh)){ee.preventDefault();return}D(ee,_,A)},onDragEnd:te,onContextMenu:ee=>{if(!p)return;const I=ee.target;I!=null&&I.closest(vh)||p(_,ee)},className:Ee("transition",!b&&(c||u)?"cursor-grab active:cursor-grabbing":"",B?"scale-[0.98] opacity-50":""),children:i(_,{dragging:B})})]},A)}),K.length>0&&!b?r.jsx("div",{className:Ee("mt-1 rounded-md border border-dashed px-3 py-2 text-center text-xs text-muted-foreground transition",(N==null?void 0:N.columnId)===M.id&&N.index===K.length?"border-primary/50 bg-primary/10 text-foreground":"border-border/60",F&&!J.allowed?"opacity-40":""),children:"Drop here to place at the end"}):null]})]},M.id)})})]})}function J4({active:e,disabled:t,children:n}){return r.jsx("div",{className:Ee("flex min-h-[128px] items-center justify-center rounded-lg border border-dashed px-4 text-center text-sm text-muted-foreground transition",e?"border-primary/60 bg-primary/10 text-foreground":"border-border/60 bg-background/50",t?"opacity-45":""),children:n})}const vl="border-status-pending-foreground/30 bg-status-pending text-status-pending-foreground",Cm="border-status-in-progress-foreground/30 bg-status-in-progress text-status-in-progress-foreground",X4="border-status-blocked-foreground/30 bg-status-blocked text-status-blocked-foreground",Q4="border-status-review-foreground/30 bg-status-review text-status-review-foreground",Z4="border-status-completed-foreground/30 bg-status-completed text-status-completed-foreground",e$="border-status-failed-foreground/30 bg-status-failed text-status-failed-foreground",t$="border-status-archived-foreground/30 bg-status-archived text-status-archived-foreground",ud={draft:{label:"Draft",description:"Just-created stub; not yet shaped.",className:vl,icon:Vo},pending:{label:"Pending",description:"Waiting to start or waiting on dependencies.",className:vl,icon:wT},ready_for_planning:{label:"Ready for Planning",description:"Objective and acceptance criteria written; awaiting a plan.",className:vl,icon:Xj},ready_to_implement:{label:"Ready to Implement",description:"Plan written and approved; ready to start coding.",className:Cm,icon:MT},in_progress:{label:"In Progress",description:"Actively being worked on.",className:Cm,icon:Zh},blocked:{label:"Blocked",description:"Blocked by an explicit obstacle that needs intervention.",className:X4,icon:sh},review:{label:"Review",description:"Ready for inspection or approval.",className:Q4,icon:BT},completed:{label:"Completed",description:"Finished successfully.",className:Z4,icon:Yh},failed:{label:"Failed",description:"Could not be completed as planned.",className:e$,icon:sh},active:{label:"Active",description:"The project has active or review work in flight.",className:Cm,icon:oh},stopped:{label:"Stopped",description:"Session ended without completing.",className:vl,icon:bT},archived:{label:"Archived",description:"Hidden from normal views; restorable from the Archive page.",className:t$,icon:oh}};function dd(e){const t=ud[e];return t||{className:vl,icon:oh,label:e.replace(/_/g," ").replace(/\b\w/g,n=>n.toUpperCase()),description:`Status: ${e}`}}function N1(e,t){return Ee("inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border px-2.5 py-0.5 text-xs font-medium tracking-normal","shadow-[inset_0_0_0_1px_oklch(100%_0_0_/_0)] dark:shadow-[inset_0_0_0_1px_oklch(100%_0_0_/_0.04)]",dd(e).className,t)}function yn({status:e,className:t,showIcon:n=!0,progress:s}){const i=dd(e),l=i.icon,c=s&&s.total>0,u=c?Math.min(1,Math.max(0,s.checked/s.total)):0,p=c?`${i.description} (${s.checked}/${s.total} criteria)`:i.description,m=n?c?r.jsxs("span",{className:"relative inline-flex h-3.5 w-3.5 items-center justify-center",children:[r.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 16 16",className:"absolute inset-0 h-full w-full -rotate-90",children:[r.jsx("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"1.5"}),r.jsx("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeDasharray:2*Math.PI*7,strokeDashoffset:2*Math.PI*7*(1-u)})]}),r.jsx(l,{className:"h-2.5 w-2.5"})]}):r.jsx(l,{className:"h-3.5 w-3.5"}):null;return r.jsxs("span",{title:p,className:N1(e,t),children:[m,r.jsx("span",{children:i.label})]})}function Gd(e){var t;return((t=ud[e])==null?void 0:t.description)??`Status: ${e}`}function Dr({value:e,label:t,disabled:n=!1,disabledReason:s,onError:i}){const[l,c]=f.useState(!1);async function u(){if(!n)try{if(!navigator.clipboard||typeof navigator.clipboard.writeText!="function")throw new Error("Clipboard API is unavailable in this context.");await navigator.clipboard.writeText(e),c(!0),setTimeout(()=>c(!1),1500)}catch(p){i==null||i(p instanceof Error?p:new Error(String(p)))}}return n?r.jsx("button",{type:"button",disabled:!0,"aria-disabled":"true",className:"cursor-not-allowed text-muted-foreground/50",title:s??"Copy unavailable","aria-label":t??"Copy",children:r.jsx(Ll,{className:"h-3 w-3","aria-hidden":"true"})}):r.jsx("button",{type:"button",onClick:u,className:"text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 rounded",title:l?"Copied!":t??`Copy: ${e}`,"aria-label":t??"Copy",children:l?r.jsx(As,{className:"h-3 w-3 text-status-completed-foreground","aria-hidden":"true"}):r.jsx(Ll,{className:"h-3 w-3","aria-hidden":"true"})})}function n$(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function r$({items:e,statusOrder:t,sortField:n,sortDirection:s,listSectionVisibility:i,compact:l=!1}){const c=qo(),[u,p]=f.useState(()=>new Set(i.collapsed));f.useEffect(()=>{p(new Set(i.collapsed))},[i]);const m=h=>{p(x=>{const y=new Set(x);return y.has(h)?y.delete(h):y.add(h),y})};return r.jsx("div",{className:Ee("space-y-2",l?"space-y-1.5":"space-y-3"),children:t.map(h=>{const x=sc(e.filter(E=>E.status===h),n,s);if(x.length===0)return null;const y=!u.has(h),b=rc(c,h);return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/90",children:[r.jsxs("button",{type:"button",onClick:()=>m(h),className:Ee("flex w-full items-center gap-2 text-left",l?"px-3 py-2 text-xs":"px-4 py-3 text-sm"),children:[r.jsx(us,{className:Ee("text-muted-foreground transition-transform",l?"h-3.5 w-3.5":"h-4 w-4",y?"":"-rotate-90")}),r.jsx("span",{className:"font-semibold text-foreground",children:b}),r.jsx("span",{className:Ee("rounded-full border border-border/60 text-muted-foreground",l?"px-1.5 py-0 text-[10px]":"px-2 py-0.5 text-xs"),children:x.length})]}),y&&r.jsx("ul",{className:Ee("divide-y divide-border/40 border-t border-border/40",l?"text-xs":"text-sm"),children:x.map(E=>{const k=n$(E);return r.jsx("li",{children:r.jsxs(Ce,{to:k,className:Ee("flex items-center gap-3 hover:bg-muted/40",l?"px-3 py-1.5":"px-4 py-2.5"),children:[r.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:E.title}),E.projectTitle?r.jsx("span",{className:"hidden truncate text-muted-foreground sm:inline",children:E.projectTitle}):null,r.jsx("span",{className:"shrink-0 text-muted-foreground",children:On(E.updated)})]})},`${E.projectSlug??"standalone"}:${E.id}`)})})]},h)})})}function s$(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function o$({items:e,sortField:t,sortDirection:n,tableColumnVisibility:s,compact:i=!1}){const l=new Set(s.hidden);l.delete("title");const c=h=>!l.has(h),u=sc(e,t,n),p=i?"py-2 pr-3":"py-3 pr-4",m=i?"text-xs":"text-sm";return r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:Ee("w-full text-left",m),children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[c("title")?r.jsx("th",{className:Ee("font-medium",p),children:"Assignment"}):null,c("status")?r.jsx("th",{className:Ee("font-medium",p),children:"Status"}):null,c("priority")?r.jsx("th",{className:Ee("font-medium",p),children:"Priority"}):null,c("assignee")?r.jsx("th",{className:Ee("font-medium",p),children:"Assignee"}):null,c("dependencies")?r.jsx("th",{className:Ee("font-medium",p),children:"Dependencies"}):null,c("created")?r.jsx("th",{className:Ee("font-medium",p),children:"Created"}):null,c("updated")?r.jsx("th",{className:Ee("font-medium",p),children:"Updated"}):null]})}),r.jsx("tbody",{children:u.map(h=>{const x=s$(h),y=`${h.projectSlug??"standalone"}:${h.id}`;return r.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[c("title")?r.jsxs("td",{className:p,children:[r.jsx(Ce,{to:x,className:"font-semibold text-foreground hover:text-primary",children:h.title}),h.projectTitle?r.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:h.projectTitle}):null]}):null,c("status")?r.jsx("td",{className:p,children:r.jsx(yn,{status:h.status})}):null,c("priority")?r.jsx("td",{className:Ee("capitalize text-muted-foreground",p),children:h.priority}):null,c("assignee")?r.jsx("td",{className:Ee("text-muted-foreground",p),children:h.assignee??"Unassigned"}):null,c("dependencies")?r.jsx("td",{className:Ee("text-muted-foreground",p),children:h.dependsOn.length}):null,c("created")?r.jsx("td",{className:Ee("text-muted-foreground",p),children:On(h.created)}):null,c("updated")?r.jsx("td",{className:Ee("text-muted-foreground",p),children:On(h.updated)}):null]},y)})})]})})}function i$(e,t,n){return e.filter(s=>Mg(s,t,{workspace:n,search:t.search}))}function a$({viewId:e,onPickAnother:t}){const{view:n,loading:s,error:i,refetch:l}=na(e),{data:c,loading:u,error:p}=Dd(),m=qo(),h=f.useMemo(()=>m.order.map(y=>({id:y,title:rc(m,y),description:Gd(y)})),[m]),x=f.useMemo(()=>{if(!n||!c)return[];const y=i$(c.assignments,n.config.filters,n.workspace);return sc(y,n.config.sortField,n.config.sortDirection)},[c,n]);if(s||u&&!c)return r.jsx(ft,{label:"Loading view…"});if(i)return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[r.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load view"}),r.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:i.message}),r.jsx("button",{type:"button",onClick:()=>l(),className:"shell-action mt-3",children:"Retry"})]});if(!n)return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[r.jsx("p",{className:"font-medium text-foreground",children:"View no longer exists"}),r.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"The saved view this slot was bound to has been deleted."}),r.jsx("button",{type:"button",onClick:t,className:"shell-action mt-3",children:"Pick another widget"})]});if(p)return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[r.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load assignments"}),r.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:p})]});if(x.length===0)return r.jsx(ct,{title:"No assignments match this view.",description:"Adjust the view's filters to surface different work, or pick another widget for this slot."});switch(n.config.viewMode){case"kanban":return r.jsx(qd,{compact:!0,columns:h,items:x,getItemId:y=>y.slug||y.id,getColumnId:y=>y.status,hiddenColumnIds:n.config.kanbanColumnVisibility.hidden,renderCard:y=>r.jsx(l$,{item:y})});case"list":return r.jsx(r$,{items:x,statusOrder:m.order,sortField:n.config.sortField,sortDirection:n.config.sortDirection,listSectionVisibility:n.config.listSectionVisibility,compact:!0});case"table":return r.jsx(o$,{items:x,sortField:n.config.sortField,sortDirection:n.config.sortDirection,tableColumnVisibility:n.config.tableColumnVisibility,compact:!0})}}function l$({item:e}){const t=cd(e);return r.jsxs("div",{className:Ee("rounded-md border border-border/60 bg-background/85 p-2 shadow-sm"),children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx(Ce,{to:t,className:"block truncate text-sm font-semibold text-foreground hover:text-primary",children:e.title}),r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:e.projectTitle??"Standalone"})]}),r.jsx(yn,{status:e.status})]}),r.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2 text-[10px] uppercase tracking-[0.08em] text-muted-foreground",children:[r.jsx("span",{className:"truncate",children:e.assignee??"Unassigned"}),r.jsx("span",{className:"shrink-0",children:On(e.updated)})]}),e.id?r.jsxs("p",{className:"mt-1 inline-flex items-center gap-1 font-mono text-[10px] text-muted-foreground/70",children:[e.id.slice(0,8),r.jsx(Dr,{value:e.id})]}):null]})}function c$({sessions:e}){return r.jsxs("aside",{"aria-labelledby":"overview-sessions-title",className:"rounded-xl border border-border/60 bg-background/60 shadow-sm",children:[r.jsx("header",{className:"border-b border-border/40 px-4 py-3",children:r.jsx("h3",{id:"overview-sessions-title",className:"text-sm font-semibold text-foreground",children:"Recent Sessions"})}),e.length===0?r.jsxs("div",{className:"px-4 py-6 text-sm",children:[r.jsx("p",{className:"font-medium text-foreground",children:Mo.recentSessionsEmptyTitle}),r.jsx("p",{className:"mt-1 text-muted-foreground",children:Mo.recentSessionsEmptyHint})]}):r.jsx("ul",{className:"divide-y divide-border/40",children:e.map(t=>r.jsx("li",{children:r.jsx(u$,{session:t})},t.sessionId))})]})}function u$({session:e}){const t=on(),[n,s]=f.useState(!1),i=d$(e,t),l=f$(e),c=!e.path;return r.jsxs("div",{className:"flex items-start gap-3 px-4 py-3",children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx(Ce,{to:i,className:"block text-sm font-medium text-foreground hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",children:e.agent}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l," · ",u0(e.started)]}),n&&e.path?r.jsxs("div",{className:"mt-1 space-y-0.5",children:[r.jsx("code",{className:"block w-full select-all rounded bg-muted/40 px-1.5 py-0.5 text-xs text-foreground",children:e.path}),r.jsx("p",{className:"text-[10px] text-muted-foreground",children:Mo.recentSessionsCopyFallbackHint})]}):null]}),r.jsx(Dr,{value:e.path,label:Mo.recentSessionsCopyPathLabel,disabled:c,disabledReason:Mo.recentSessionsCopyPathDisabled,onError:()=>s(!0)})]})}function d$(e,t){return e.projectSlug&&e.assignmentSlug?`${t}/projects/${e.projectSlug}/assignments/${e.assignmentSlug}`:(!e.projectSlug&&e.assignmentSlug,"/agent-sessions")}function f$(e){return e.assignmentSlug&&e.projectSlug?`${e.projectSlug}/${e.assignmentSlug}`:e.assignmentSlug?`standalone/${e.assignmentSlug}`:"standalone"}function p$(){const{data:e,loading:t,error:n}=E0();return t&&!e?r.jsx(ft,{label:"Loading sessions…"}):n?r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm text-muted-foreground",children:[r.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load sessions"}),r.jsx("p",{className:"mt-1 text-xs",children:n})]}):r.jsx(c$,{sessions:(e==null?void 0:e.sessions)??[]})}const m$=5;function h$(){const{data:e,loading:t,error:n}=C0();if(t&&!e)return r.jsx(ft,{label:"Loading inventories…"});if(n)return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm text-muted-foreground",children:[r.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load inventories"}),r.jsx("p",{className:"mt-1 text-xs",children:n})]});const i=((e==null?void 0:e.inventories)??[]).slice(0,m$);return r.jsxs("aside",{"aria-labelledby":"overview-inventories-title",className:"rounded-xl border border-border/60 bg-background/60 shadow-sm",children:[r.jsxs("header",{className:"flex items-center justify-between border-b border-border/40 px-4 py-3",children:[r.jsx("h3",{id:"overview-inventories-title",className:"text-sm font-semibold text-foreground",children:"Inventories"}),r.jsx(Ce,{to:"/inventories",className:"text-xs text-muted-foreground hover:text-foreground",children:"View all →"})]}),i.length===0?r.jsxs("div",{className:"px-4 py-6 text-sm",children:[r.jsx("p",{className:"font-medium text-foreground",children:"No inventories yet."}),r.jsx("p",{className:"mt-1 text-muted-foreground",children:"Create one to track leased resources across agents."})]}):r.jsx("ul",{className:"divide-y divide-border/40",children:i.map(l=>{const c=l.inventory,u=l.active_leases.length,p=l.members.length,m=c.display_name??c.slug;return r.jsx("li",{children:r.jsxs(Ce,{to:`/inventories/${encodeURIComponent(c.slug)}`,className:"flex items-center gap-3 px-4 py-2.5 text-sm hover:bg-muted/40",children:[r.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:m}),r.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[u,"/",p," leased"]})]})},c.slug)})})]})}const C1={"saved-view":{title:"Saved view",icon:Zj,render:(e,t)=>e.kind!=="saved-view"?null:f.createElement(a$,{viewId:e.viewId,onPickAnother:t.onPickAnother})},"agent-sessions":{title:"Agent sessions",icon:Nd,render:()=>f.createElement(p$)},inventories:{title:"Inventories",icon:Ed,render:()=>f.createElement(h$)}};function g$({slot:e,onReplace:t,onRemove:n}){if(e.widget===null)return r.jsx("div",{className:"flex min-h-[320px] items-center justify-center rounded-lg border border-dashed border-border/60 bg-card/40 p-3 shadow-sm",children:r.jsxs("button",{type:"button",onClick:t,className:"shell-action inline-flex items-center gap-2",children:[r.jsx(en,{className:"h-4 w-4"}),"Add widget"]})});const s=C1[e.widget.kind];if(!s)return r.jsx("div",{className:"min-h-[320px] overflow-auto rounded-lg border border-border/60 bg-card/85 p-3 shadow-sm",children:r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/60 px-3 py-2 text-sm text-muted-foreground",children:["Unknown widget kind: ",e.widget.kind]})});const i=s.icon;return r.jsxs("div",{className:"min-h-[320px] overflow-auto rounded-lg border border-border/60 bg-card/85 p-3 shadow-sm",children:[r.jsxs("header",{className:"mb-2 flex items-center justify-between gap-2",children:[r.jsxs("div",{className:"flex min-w-0 items-center gap-2 text-xs uppercase tracking-[0.12em] text-muted-foreground",children:[r.jsx(i,{className:"h-3.5 w-3.5","aria-hidden":"true"}),r.jsx("span",{className:"truncate",children:r.jsx(x$,{slot:e,fallback:s.title})})]}),r.jsx(_g,{items:[{key:"replace",label:"Replace…",icon:FT,onSelect:t},{key:"remove",label:"Remove",icon:Hn,destructive:!0,onSelect:n}]})]}),r.jsx("div",{children:s.render(e.widget,{slotId:e.id,onPickAnother:t})})]})}function x$({slot:e,fallback:t}){var i,l;const n=((i=e.widget)==null?void 0:i.kind)==="saved-view"?e.widget.viewId:null,{view:s}=na(n);return((l=e.widget)==null?void 0:l.kind)==="saved-view"&&s?r.jsx(r.Fragment,{children:s.name}):r.jsx(r.Fragment,{children:t})}const y$=["agent-sessions","inventories"];function b$({open:e,onOpenChange:t,onSelect:n}){const{views:s,loading:i}=Cg();function l(c){n(c),t(!1)}return r.jsx(sr,{open:e,onOpenChange:t,children:r.jsxs(Wn,{className:"max-w-xl",children:[r.jsxs(Jr,{children:[r.jsx(Kn,{children:"Add a widget"}),r.jsx(ms,{children:"Choose a built-in widget or one of your saved views."})]}),r.jsxs("section",{className:"space-y-2",children:[r.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"Built-in widgets"}),r.jsx("ul",{className:"divide-y divide-border/40 rounded-md border border-border/60",children:y$.map(c=>{const u=C1[c],p=u.icon;return r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:()=>l({kind:c}),className:"flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-muted/40",children:[r.jsx(p,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),r.jsx("span",{className:"font-medium text-foreground",children:u.title})]})},c)})})]}),r.jsxs("section",{className:"space-y-2",children:[r.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"Saved views"}),i?r.jsx("div",{className:"rounded-md border border-border/60 px-3 py-4 text-sm text-muted-foreground",children:"Loading saved views…"}):s.length===0?r.jsxs("div",{className:"rounded-md border border-border/60 px-3 py-4 text-sm",children:[r.jsx("p",{className:"font-medium text-foreground",children:"No saved views yet"}),r.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["Save a view from the assignments page first."," ",r.jsx(Ce,{to:"/views",className:"text-foreground underline hover:opacity-80",children:"Manage views →"})]})]}):r.jsx("ul",{className:"max-h-72 divide-y divide-border/40 overflow-auto rounded-md border border-border/60",children:s.map(c=>r.jsx("li",{children:r.jsxs("button",{type:"button",onClick:()=>l({kind:"saved-view",viewId:c.id}),className:"flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-muted/40",children:[r.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:c.name}),c.workspace!==null?r.jsx("span",{className:"shrink-0 rounded-full border border-border/60 px-2 py-0.5 text-[10px] text-muted-foreground",title:`Scoped to workspace: ${c.workspace}`,children:c.workspace}):null,r.jsx("span",{className:"shrink-0 rounded-full border border-border/60 px-2 py-0.5 text-[10px] capitalize text-muted-foreground",children:c.config.viewMode})]})},c.id))}),!i&&s.some(c=>c.workspace!==null)?r.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Workspace-scoped views on the global Overview will only show items from that workspace."}):null]})]})})}function v$(){const{data:e,error:t,refetch:n}=_P(),{data:s}=k0(),{layout:i}=eD(),[l,c]=f.useState(!1),[u,p]=f.useState(null),[m,h]=f.useState(null);fo("list:overview"),zt({keys:"r",description:"Refresh",scope:"list:overview",handler:()=>{n()}});const x=f.useCallback(w=>{p(w),c(!0)},[]),y=f.useCallback(async w=>{h(null);try{await nD(w)}catch(j){h(j instanceof Error?j.message:String(j))}},[]),b=f.useCallback(w=>{if(u===null)return;const j=i.slots.map((C,N)=>N===u?{...C,widget:w}:C);p(null),y(j)},[i.slots,u,y]),E=f.useCallback(w=>{const j=i.slots.map((C,N)=>N===w?{...C,widget:null}:C);y(j)},[i.slots,y]),k={};if(e)for(const w of Object.keys(e.segments))for(const j of e.segments[w].items)k[j.id]=j;return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("header",{className:"space-y-2",children:[r.jsx("p",{className:"eyebrow",children:"Workspace Overview"}),r.jsx("h1",{className:"text-4xl font-semibold tracking-display text-foreground md:text-5xl",children:"What needs you today"})]}),e?r.jsx(B3,{hero:e.hero,itemsById:k}):t?r.jsx(mt,{error:t}):r.jsx(ft,{label:"Loading overview…"}),e!=null&&e.firstRun?r.jsx(F3,{help:s}):null,m?r.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-sm text-destructive",children:["Couldn't save dashboard layout: ",m]}):null,r.jsx("div",{className:"grid grid-cols-1 gap-4 xl:grid-cols-2",children:i.slots.map((w,j)=>r.jsx(g$,{slot:w,index:j,onReplace:()=>x(j),onRemove:()=>E(j)},w.id))}),e!=null&&e.serverStats?r.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[r.jsx(eg,{className:"h-3 w-3","aria-hidden":"true"}),r.jsxs("span",{children:["● ",e.serverStats.totalPorts," ports ·"," ",e.serverStats.deadSessions>0?`${e.serverStats.deadSessions} dead`:"all healthy"]})]}):null,r.jsx(b$,{open:l,onOpenChange:w=>{c(w),w||p(null)},onSelect:b})]})}function w$({term:e,description:t}){return r.jsx("span",{title:t,className:"cursor-help rounded-full border border-border/70 bg-background/80 px-2.5 py-1 text-xs font-medium text-foreground underline decoration-dotted underline-offset-4",children:e})}function j$(){const{data:e,loading:t,error:n}=k0(),{openCheatsheet:s}=uo();return t?r.jsx(ft,{label:"Loading help…"}):n||!e?r.jsx(mt,{error:n||"Help content is unavailable."}):r.jsxs("div",{className:"space-y-5",children:[r.jsx(ze,{title:"Keyboard Shortcuts",description:"Navigate the dashboard without reaching for the mouse.",children:r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center gap-2 rounded-md border border-border/70 bg-background/80 px-3 py-1.5 text-sm font-medium text-foreground hover:bg-accent",children:"Open shortcuts cheatsheet"}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["or press ",r.jsx("kbd",{className:"rounded border border-border/70 bg-muted px-1.5 py-0.5 font-mono text-[11px]",children:"?"})," ","anywhere. ",ls("Mod+k")," opens the command palette."]})]})}),r.jsx(ze,{title:"What Syntaur Is",description:e.whatIsSyntaur.summary,children:r.jsx("div",{className:"grid gap-3 md:grid-cols-3",children:e.whatIsSyntaur.bullets.map(i=>r.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3 text-sm leading-6 text-muted-foreground",children:i},i))})}),r.jsx(ze,{title:"Getting Started",children:r.jsx("div",{className:"space-y-3",children:e.workflow.map((i,l)=>r.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-foreground text-xs font-semibold text-background",children:l+1}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:i.title}),r.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:i.detail}),i.command?r.jsx(Uu,{command:i.command.command,description:i.command.description,example:i.command.example}):null,i.href?r.jsx(Ce,{className:"inline-flex text-sm font-semibold text-primary hover:underline",to:i.href,children:"Open the related surface"}):null]})]})},i.title))})}),r.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[r.jsxs(ze,{title:"Core Concepts",children:[r.jsx("div",{className:"flex flex-wrap gap-2",children:e.coreConcepts.map(i=>r.jsx(w$,{term:i.term,description:i.description},i.term))}),r.jsx("div",{className:"grid gap-3 pt-2",children:e.coreConcepts.map(i=>r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:i.term}),r.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:i.description})]},i.term))})]}),r.jsx(ze,{title:"Status Guide",children:r.jsx("div",{className:"space-y-3",children:e.statusGuide.map(i=>r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx(yn,{status:i.status}),r.jsx("p",{className:"font-semibold text-foreground",children:i.meaning})]}),r.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:i.useWhen})]},i.status))})})]}),r.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[r.jsx(ze,{title:"Ownership And File Rules",children:r.jsx("div",{className:"space-y-3",children:e.ownershipRules.map(i=>r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:i.label}),r.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:i.description}),r.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:i.files.map(l=>r.jsx("span",{className:"rounded-full border border-border/60 bg-card/90 px-2.5 py-1 font-mono text-xs text-foreground",children:l},l))})]},i.label))})}),r.jsx(ze,{title:"How To Navigate The Dashboard",children:r.jsx("div",{className:"space-y-3",children:e.navigation.map(i=>r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:i.label}),r.jsx(Ce,{className:"text-sm font-semibold text-primary hover:underline",to:i.href,children:"Open"})]}),r.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:i.description})]},i.label))})})]}),r.jsx(ze,{title:"CLI Quick Reference",children:r.jsx("div",{className:"grid gap-3 xl:grid-cols-2",children:e.commands.map(i=>r.jsx(Uu,{command:i.command,description:i.description,example:i.example},i.command))})}),r.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[r.jsx(ze,{title:"FAQ",children:r.jsx("div",{className:"space-y-3",children:e.faq.map(i=>r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:i.question}),r.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:i.answer})]},i.question))})}),r.jsx(ze,{title:"First Project Checklist",children:r.jsx("div",{className:"space-y-3",children:e.firstProjectChecklist.map((i,l)=>r.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-foreground text-xs font-semibold text-background",children:l+1}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:i.title}),r.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:i.detail}),i.command?r.jsx(Uu,{command:i.command.command,example:i.command.example}):null,i.href?r.jsx(Ce,{className:"inline-flex text-sm font-semibold text-primary hover:underline",to:i.href,children:"Open the related surface"}):null]})]})},i.title))})})]})]})}function Fg({children:e}){return r.jsx("div",{className:"chrome-card flex flex-col gap-2 !p-2.5 md:flex-row md:flex-wrap md:items-center",children:e})}const Yd=f.forwardRef(({value:e,onChange:t,placeholder:n="Search"},s)=>r.jsxs("label",{className:"relative flex min-w-[220px] flex-1 items-center",children:[r.jsx(co,{className:"pointer-events-none absolute left-3 h-4 w-4 text-muted-foreground"}),r.jsx("input",{ref:s,value:e,onChange:i=>t(i.target.value),placeholder:n,className:"h-9 w-full rounded-md border border-border/60 bg-background/90 pl-9 pr-3 text-sm text-foreground outline-none transition focus:border-primary focus:ring-2 focus:ring-ring/30"})]}));Yd.displayName="SearchInput";function Jd({value:e,options:t,onChange:n}){return r.jsx("div",{className:"inline-flex rounded-md border border-border/60 bg-background/80 p-1",children:t.map(s=>r.jsx("button",{type:"button","aria-pressed":e===s.value,onClick:()=>n(s.value),className:Ee("rounded-sm px-2.5 py-1.5 text-sm font-medium transition",e===s.value?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:s.label},s.value))})}const k$={completed:"bg-status-completed-foreground",in_progress:"bg-status-in-progress-foreground",review:"bg-status-review-foreground",blocked:"bg-status-blocked-foreground",failed:"bg-status-failed-foreground",pending:"bg-status-pending-foreground"},Wv=["bg-primary","bg-secondary","bg-accent-coral","bg-accent-teal","bg-accent-amber"];function fd({progress:e,className:t,showLegend:n=!1}){const s=qo(),i=f.useMemo(()=>{let c=0;return(s.order.length>0?s.order:Object.keys(e).filter(p=>p!=="total")).map(p=>({key:p,className:k$[p]??Wv[c++%Wv.length]}))},[s.order,e]),l=i.filter(c=>(e[c.key]??0)>0);return r.jsxs("div",{className:Ee("space-y-2",t),children:[r.jsx("div",{className:"flex h-1.5 w-full overflow-hidden rounded-lg border border-border/70 bg-muted/60",children:e.total===0?r.jsx("div",{className:"h-full w-full bg-muted"}):l.map(c=>r.jsx("div",{className:c.className,style:{width:`${(e[c.key]??0)/e.total*100}%`},title:`${Sn(c.key)}: ${e[c.key]??0}`},c.key))}),n?r.jsx("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:i.map(c=>r.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-border/60 bg-background/80 px-2 py-1",children:[r.jsx("span",{className:Ee("h-2 w-2 rounded-full",c.className)}),r.jsx("span",{children:Sn(c.key)}),r.jsx("span",{className:"font-medium text-foreground",children:e[c.key]??0})]},c.key))}):null]})}const S$=["pending","active","blocked","failed","completed"],zg=S$,N$=["draft","pending","ready_for_planning","ready_to_implement","in_progress","blocked","review","completed","failed"];function E1(e){return e&&e.length>0?e:[...N$]}function C$(e,t,n){if(t<0||t>=e.length)return e;const s=[...e],[i]=s.splice(t,1),l=t<n?n-1:n;return s.splice(Math.max(0,Math.min(l,s.length)),0,i),s}const E$=220,Nu=8;function T1({anchor:e,items:t,onClose:n}){const s=f.useRef(null),[i,l]=f.useState(null);return f.useLayoutEffect(()=>{if(!e){l(null);return}const c=s.current,u=(c==null?void 0:c.offsetWidth)??E$,p=(c==null?void 0:c.offsetHeight)??0,m=Math.max(Nu,window.innerWidth-u-Nu),h=Math.max(Nu,window.innerHeight-p-Nu);l({left:Math.min(e.x,m),top:Math.min(e.y,h)})},[e]),f.useEffect(()=>{if(!e)return;function c(m){s.current&&!s.current.contains(m.target)&&n()}function u(m){m.key==="Escape"&&n()}function p(){n()}return document.addEventListener("mousedown",c),document.addEventListener("keydown",u),document.addEventListener("contextmenu",c),window.addEventListener("scroll",p,!0),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("keydown",u),document.removeEventListener("contextmenu",c),window.removeEventListener("scroll",p,!0)}},[e,n]),!e||t.length===0?null:r.jsx("div",{ref:s,role:"menu",className:"fixed z-50 min-w-[220px] rounded-md border border-border/70 bg-background py-1 shadow-lg",style:{left:(i==null?void 0:i.left)??e.x,top:(i==null?void 0:i.top)??e.y,visibility:i?"visible":"hidden"},children:r.jsx(Fo,{delayDuration:200,children:t.map(c=>{const u=c.icon,p=Ee("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition",c.disabled?"cursor-not-allowed opacity-50":c.destructive?"text-destructive hover:bg-destructive/10":"hover:bg-foreground/5"),m=r.jsxs(r.Fragment,{children:[u?r.jsx(u,{className:"h-4 w-4 shrink-0"}):null,r.jsx("span",{className:"block min-w-0 truncate",children:c.label})]});if(c.disabled){const h=r.jsx("span",{tabIndex:0,className:"inline-block w-full outline-none focus-visible:ring-1 focus-visible:ring-ring",children:r.jsx("button",{type:"button",disabled:!0,className:p,children:m})});return c.disabledReason?r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:h}),r.jsx(gr,{side:"left",children:c.disabledReason})]},c.key):r.jsx("div",{children:h},c.key)}return c.href?r.jsx(Ce,{to:c.href,className:p,onClick:()=>n(),children:m},c.key):r.jsx("button",{type:"button",className:p,onClick:()=>{var h;(h=c.onSelect)==null||h.call(c),n()},children:m},c.key)})})})}const T$="__ungrouped__";function Bg({open:e,onOpenChange:t,currentWorkspace:n,onSubmit:s,title:i="Move to workspace",description:l="Pick the workspace this item should belong to."}){const{data:c,loading:u}=Ad(),[p,m]=f.useState(n),[h,x]=f.useState(!1),[y,b]=f.useState(null);f.useEffect(()=>{e&&(m(n),b(null))},[e,n]);const E=f.useMemo(()=>[...((c==null?void 0:c.workspaces)??[]).map(C=>({key:C,label:C,value:C})),{key:T$,label:"Ungrouped",value:null}],[c]),k=!h&&p!==n;async function w(){if(k){x(!0),b(null);try{await s(p),t(!1)}catch(j){b(j instanceof Error?j.message:"Failed to move item")}finally{x(!1)}}}return r.jsx(sr,{open:e,onOpenChange:j=>h?void 0:t(j),children:r.jsxs(Wn,{children:[r.jsxs(Jr,{children:[r.jsx(Kn,{children:i}),r.jsx(ms,{children:l})]}),r.jsx("div",{className:"my-2 max-h-[320px] overflow-y-auto rounded-md border border-border/60",children:u&&E.length===0?r.jsxs("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-muted-foreground",children:[r.jsx(Zh,{className:"h-4 w-4 animate-spin"})," Loading workspaces…"]}):E.map(j=>{const C=j.value===n,N=j.value===p;return r.jsxs("button",{type:"button",disabled:C||h,onClick:()=>m(j.value),className:Ee("flex w-full items-center justify-between px-3 py-2 text-left text-sm transition",C?"cursor-not-allowed bg-foreground/5 text-muted-foreground":N?"bg-accent/40 text-foreground":"hover:bg-foreground/5"),children:[r.jsxs("span",{className:Ee("block min-w-0 truncate",j.value===null?"italic text-muted-foreground":""),children:[j.label,C?r.jsx("span",{className:"ml-2 text-xs",children:"(current)"}):null]}),N?r.jsx(As,{className:"h-4 w-4 text-foreground"}):null]},j.key)})}),y?r.jsx("p",{className:"text-sm text-destructive",role:"alert",children:y}):null,r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:()=>t(!1),disabled:h,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),r.jsx("button",{type:"button",onClick:w,disabled:!k,className:"shell-action mt-0 bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:h?"Moving…":"Move"})]})]})})}function Kv(){const{workspace:e}=Lt(),t=on(),n=$t(),{data:s,loading:i,error:l,refetch:c}=Ho(),u=f.useRef(null);fo("list:projects");const[p,m]=f.useState(""),[h,x]=f.useState("all"),[y,b]=f.useState("all"),[E,k]=f.useState("updated"),[w,j]=ps(),C=w.get("view"),N=C==="table"||C==="kanban"?C:"cards",T=_=>{j(G=>{const A=new URLSearchParams(G);return _==="cards"?A.delete("view"):A.set("view",_),A})},[L,P]=f.useState({}),[$,F]=f.useState(null),[X,te]=f.useState(null),D=f.useMemo(()=>s?s.filter(_=>{if(e){if(e==="_ungrouped"){if(_.workspace!==null)return!1}else if(_.workspace!==e)return!1}return h!=="all"&&_.status!==h||y!=="all"&&!_.tags.includes(y)?!1:p.trim()?`${_.title} ${_.tags.join(" ")} ${_.slug}`.toLowerCase().includes(p.toLowerCase()):!0}).sort((_,G)=>A$(_,G,E)):[],[s,p,h,y,E,e]),W=D.map(_=>`${_.slug}:${_.status}`).join("|");f.useEffect(()=>{P(D$(D))},[W,E]);const Z=f.useMemo(()=>{const _=new Map(D.map(G=>[G.slug,G]));return zg.flatMap(G=>(L[G]??D.filter(B=>B.status===G).map(B=>B.slug)).map(B=>_.get(B)).filter(B=>!!B))},[D,L]),{visibleItems:M,visibleIndexByKey:K}=f.useMemo(()=>{const _=N==="kanban"?Z:D,G=new Map;return _.forEach((A,B)=>G.set(A.slug,B)),{visibleItems:_,visibleIndexByKey:G}},[N,D,Z]),{hotkeyRowProps:J}=ec(M,{scope:"list:projects",onOpen:_=>n(`${t}/projects/${_.slug}`)});if(zt({keys:"/",scope:"list:projects",description:"Focus filter",handler:()=>{var _;return(_=u.current)==null?void 0:_.focus()}}),zt({keys:"r",scope:"list:projects",description:"Refresh",handler:()=>c()}),i)return r.jsx(ft,{label:"Loading projects…"});if(l||!s)return r.jsx(mt,{error:l||"Project list is unavailable."});const le=Array.from(new Set(s.flatMap(_=>_.tags))).sort();return r.jsxs("div",{className:"space-y-5",children:[r.jsxs(Fg,{children:[r.jsx(Yd,{ref:u,value:p,onChange:m,placeholder:"Search by project title or tag"}),r.jsxs("select",{value:h,onChange:_=>x(_.target.value),className:"editor-input max-w-[180px]",children:[r.jsx("option",{value:"all",children:"All statuses"}),r.jsx("option",{value:"pending",children:"Pending"}),r.jsx("option",{value:"active",children:"Active"}),r.jsx("option",{value:"blocked",children:"Blocked"}),r.jsx("option",{value:"failed",children:"Failed"}),r.jsx("option",{value:"completed",children:"Completed"})]}),r.jsxs("select",{value:y,onChange:_=>b(_.target.value),className:"editor-input max-w-[180px]",children:[r.jsx("option",{value:"all",children:"All tags"}),le.map(_=>r.jsx("option",{value:_,children:_},_))]}),r.jsxs("select",{value:E,onChange:_=>k(_.target.value),className:"editor-input max-w-[180px]",children:[r.jsx("option",{value:"updated",children:"Sort: Updated"}),r.jsx("option",{value:"created",children:"Sort: Created"}),r.jsx("option",{value:"title",children:"Sort: Title"}),r.jsx("option",{value:"attention",children:"Sort: Attention"})]}),r.jsx(Jd,{value:N,onChange:_=>T(_),options:[{value:"cards",label:"Cards"},{value:"table",label:"Table"},{value:"kanban",label:"Kanban"}]})]}),D.length===0?s.length===0?r.jsxs("div",{className:"rounded-frame border border-border/60 bg-card px-6 py-16 text-center",children:[r.jsx("p",{className:"eyebrow mx-auto justify-center",children:"Start here"}),r.jsx("h2",{className:"mx-auto mt-4 max-w-2xl text-3xl font-semibold tracking-display text-foreground md:text-4xl",children:"The task manager built for agents, by agents"}),r.jsx("p",{className:"mx-auto mt-3 max-w-xl text-sm leading-6 text-muted-foreground",children:"A project groups assignments, resources, and memories under one objective. Markdown stays authoritative — the dashboard is just a view."}),r.jsxs("div",{className:"mt-6 flex flex-wrap justify-center gap-3",children:[r.jsx(Ce,{className:"shell-action shell-action--solid",to:`${t}/create/project`,children:"Create your first project"}),r.jsx(Ce,{className:"shell-action",to:"/help",children:"Read the spec"})]})]}):r.jsx(ct,{title:"No projects match these filters",description:"Adjust the current search and filters or create a new project.",actions:r.jsx(Ce,{className:"shell-action shell-action--solid",to:`${t}/create/project`,children:"Create Project"})}):N==="cards"?r.jsx("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:D.map((_,G)=>r.jsxs(Ce,{to:`${t}/projects/${_.slug}`,className:"block rounded-lg border border-border/60 bg-card/90 p-3 shadow-sm transition hover:border-primary/40 hover:shadow-md",...J(G),children:[r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:_.title}),r.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",On(_.updated)]})]}),r.jsx(yn,{status:_.status})]}),r.jsxs("div",{className:"mt-4 space-y-3",children:[r.jsx(fd,{progress:_.progress,showLegend:!0}),r.jsx("div",{className:"flex flex-wrap gap-2",children:_.tags.map(A=>r.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs text-foreground",children:A},A))}),r.jsxs("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsx("p",{className:"text-muted-foreground",children:"Needs attention"}),r.jsx("p",{className:"mt-1 font-semibold text-foreground",children:_.needsAttention.blockedCount+_.needsAttention.failedCount})]}),r.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[r.jsx("p",{className:"text-muted-foreground",children:"Assignments"}),r.jsx("p",{className:"mt-1 font-semibold text-foreground",children:_.progress.total})]})]})]})]},_.slug))}):N==="table"?r.jsx(ze,{title:`${D.length} project${D.length===1?"":"s"}`,children:r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full min-w-[760px] text-left text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[r.jsx("th",{className:"pb-3 font-medium",children:"Project"}),r.jsx("th",{className:"pb-3 font-medium",children:"Status"}),r.jsx("th",{className:"pb-3 font-medium",children:"Progress"}),r.jsx("th",{className:"pb-3 font-medium",children:"Attention"}),r.jsx("th",{className:"pb-3 font-medium",children:"Updated"})]})}),r.jsx("tbody",{children:D.map((_,G)=>r.jsxs("tr",{className:"border-b border-border/50 last:border-0",...J(G),children:[r.jsxs("td",{className:"py-4 pr-4",children:[r.jsx(Ce,{to:`${t}/projects/${_.slug}`,className:"font-semibold text-foreground hover:text-primary",children:_.title}),r.jsx("div",{className:"mt-1 flex flex-wrap gap-2",children:_.tags.map(A=>r.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:A},A))})]}),r.jsx("td",{className:"py-4 pr-4",children:r.jsx(yn,{status:_.status})}),r.jsx("td",{className:"py-4 pr-4",children:r.jsx("div",{className:"min-w-[220px]",children:r.jsx(fd,{progress:_.progress})})}),r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:_.needsAttention.blockedCount+_.needsAttention.failedCount}),r.jsx("td",{className:"py-4 text-muted-foreground",children:On(_.updated)})]},_.slug))})]})})}):r.jsx(qd,{columns:R$,items:Z,getItemId:_=>_.slug,getColumnId:_=>_.status,canDrop:({fromColumnId:_,toColumnId:G})=>({allowed:!0,reason:_===G?void 0:"This will set a manual status override on the project."}),onMove:({item:_,fromColumnId:G,toColumnId:A,fromIndex:B,toIndex:ee})=>{if(G===A){const I=L[G]??D.filter(ue=>ue.status===G).map(ue=>ue.slug);P(ue=>({...ue,[G]:C$(I,B,ee)}));return}fetch(`/api/projects/${_.slug}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:A})}).then(()=>{window.location.reload()})},getExternalDragData:_=>({type:"project",id:_.slug}),onCardContextMenu:(_,G)=>{G.preventDefault(),F({project:_,anchor:{x:G.clientX,y:G.clientY}})},emptyMessage:_=>`No ${_.title.toLowerCase()} projects.`,renderCard:(_,{dragging:G})=>{const A=K.get(_.slug)??-1;return r.jsx("div",{...A>=0?J(A):{},children:r.jsx($$,{project:_,dragging:G})})}}),r.jsx(T1,{anchor:($==null?void 0:$.anchor)??null,items:$?[{key:"edit",label:"Edit",icon:Vo,onSelect:()=>n(`${t}/projects/${$.project.slug}`)},{key:"move",label:"Move to workspace…",icon:Ql,onSelect:()=>te($.project)}]:[],onClose:()=>F(null)}),r.jsx(Bg,{open:X!==null,onOpenChange:_=>{_||te(null)},currentWorkspace:(X==null?void 0:X.workspace)??null,title:"Move project to workspace",onSubmit:async _=>{if(!X)return;const G=await fetch(`/api/projects/${encodeURIComponent(X.slug)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:_})});if(!G.ok){const A=await G.json().catch(()=>({}));throw new Error(A.error||"Failed to move project")}c()}}),r.jsx("div",{className:"rounded-lg border border-border/60 bg-card/80 p-3 text-sm text-muted-foreground",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(Qh,{className:"mt-0.5 h-4 w-4"}),r.jsxs("p",{children:["Project status is derived from assignment state by default.",N==="kanban"?" Drag projects between columns or use":" Use"," the status override on the project detail page to set a manual status."]})]})})]})}const P$={pending:"Pending",active:"Active",blocked:"Blocked",failed:"Failed",completed:"Completed"},R$=zg.map(e=>({id:e,title:P$[e],description:Gd(e)}));function A$(e,t,n){switch(n){case"created":return t.created.localeCompare(e.created);case"title":return e.title.localeCompare(t.title);case"attention":return qv(t)-qv(e);case"updated":default:return t.updated.localeCompare(e.updated)}}function qv(e){return e.needsAttention.failedCount*10+e.needsAttention.blockedCount*5+e.needsAttention.openQuestions}function D$(e){return Object.fromEntries(zg.map(t=>[t,e.filter(n=>n.status===t).map(n=>n.slug)]))}function $$({project:e,dragging:t}){const n=on();return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-background/85 p-3 shadow-sm",children:[r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Ce,{to:`${n}/projects/${e.slug}`,className:"text-base font-semibold text-foreground hover:text-primary",children:e.title}),r.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",On(e.updated)]})]}),r.jsx(yn,{status:e.status})]}),r.jsx("div",{className:"mt-4",children:r.jsx(fd,{progress:e.progress})}),r.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[e.tags.map(s=>r.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs text-foreground",children:s},s)),r.jsxs("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:[e.progress.total," assignments"]}),r.jsxs("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:[e.needsAttention.blockedCount+e.needsAttention.failedCount," needs attention"]})]}),r.jsx("div",{className:"mt-4 text-xs uppercase tracking-[0.08em] text-muted-foreground",children:t?"Reordering within status":"Derived project lane"})]})}function P1({title:e,description:t,actions:n,className:s}){return r.jsxs("div",{className:Ee("flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between",s),children:[r.jsxs("div",{className:"space-y-1",children:[e?r.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground sm:text-2xl",children:e}):null,t?r.jsx("p",{className:"max-w-3xl text-sm leading-5 text-muted-foreground",children:t}):null]}),n?r.jsx("div",{className:"flex flex-wrap items-center gap-3",children:n}):null]})}const L$=4e3;function da(){const[e,t]=f.useState(null),n=f.useRef(null),s=f.useCallback(()=>{n.current!==null&&(clearTimeout(n.current),n.current=null),t(null)},[]),i=f.useCallback((l,c="error")=>{n.current!==null&&clearTimeout(n.current),t({id:Date.now()+Math.random(),message:l,kind:c}),n.current=setTimeout(()=>{t(null),n.current=null},L$)},[]);return f.useEffect(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{toast:e,showToast:i,dismissToast:s}}function fa({toast:e,onDismiss:t}){if(!e)return null;const n=e.kind==="error";return r.jsx("div",{className:"pointer-events-none fixed bottom-4 right-4 z-50 flex max-w-sm",role:"status","aria-live":"polite",children:r.jsx("button",{type:"button",onClick:t,className:Ee("syntaur-toast pointer-events-auto rounded-md border px-4 py-3 text-sm font-medium shadow-lg transition",n?"border-error-foreground/30 bg-error text-error-foreground hover:opacity-90":"border-success-foreground/30 bg-success text-success-foreground hover:opacity-90"),children:e.message},e.id)})}function I$(){return r.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-status-archived-foreground/30 bg-status-archived px-2 py-0.5 text-xs font-medium text-status-archived-foreground",children:[r.jsx(Cd,{className:"h-3 w-3"}),"Archived"]})}function Gv(e){return e.projectSlug?`/projects/${e.projectSlug}/assignments/${e.slug}`:`/assignments/${e.id}`}function O$(){const{data:e,loading:t,error:n,refetch:s}=MP(),[i,l]=f.useState(null),[c,u]=f.useState(null),[p,m]=f.useState({}),{toast:h,showToast:x,dismissToast:y}=da();async function b(N,T,L){l(T),u(null);try{const P=await fetch(N,{method:"POST",headers:{"Content-Type":"application/json"}});if(!P.ok){const $=await P.json().catch(()=>null);throw new Error(($==null?void 0:$.error)||`HTTP ${P.status}`)}s(),x(L,"success")}catch(P){u(P instanceof Error?P.message:"Restore failed")}finally{l(null)}}function E(N){return b(`/api/projects/${N.slug}/unarchive`,`project:${N.slug}`,"Project restored")}function k(N){const T=N.projectSlug?`/api/projects/${N.projectSlug}/assignments/${N.slug}/unarchive`:`/api/assignments/${N.id}/unarchive`;return b(T,`assignment:${N.id}`,"Assignment restored")}if(t)return r.jsx(ft,{label:"Loading archived content…"});if(n)return r.jsx(mt,{error:n});const w=(e==null?void 0:e.projects)??[],j=(e==null?void 0:e.assignments)??[],C=w.length===0&&j.length===0;return r.jsxs("div",{className:"space-y-6",children:[r.jsx(fa,{toast:h,onDismiss:y}),r.jsx(P1,{title:"Archive",description:"Archived projects and individually-archived assignments. Restoring a project also brings back its cascade-hidden assignments; assignments archived on their own stay archived until restored here."}),c?r.jsx("div",{className:"rounded border border-status-failed-foreground/30 bg-status-failed px-3 py-2 text-sm text-status-failed-foreground",children:c}):null,C?r.jsx(ct,{title:"Nothing archived",description:"Archived projects and assignments will appear here, ready to restore."}):r.jsxs(r.Fragment,{children:[w.length>0&&r.jsx(ze,{title:"Archived Projects",description:"Restoring a project unhides every cascade-hidden assignment; individually-archived children stay archived.",children:r.jsx("ul",{className:"divide-y divide-border",children:w.map(N=>{const T=p[N.slug]??!1;return r.jsxs("li",{className:"py-3",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsxs("button",{type:"button",onClick:()=>m(L=>({...L,[N.slug]:!T})),className:"inline-flex items-center gap-1.5 text-left text-sm font-medium text-foreground hover:text-foreground/80","aria-expanded":T,children:[T?r.jsx(us,{className:"h-4 w-4"}):r.jsx(yT,{className:"h-4 w-4"}),r.jsx(Jh,{className:"h-4 w-4 text-muted-foreground"}),N.title,r.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",N.assignments.length," assignment",N.assignments.length===1?"":"s",")"]})]}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Archived ",N.archivedAt?$r(N.archivedAt):"with no timestamp",N.archivedReason?` · ${N.archivedReason}`:""]}),r.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[r.jsx(Ce,{to:`/projects/${N.slug}`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Open"}),r.jsxs("button",{type:"button",onClick:()=>E(N),disabled:i===`project:${N.slug}`,className:"inline-flex items-center gap-1.5 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground disabled:opacity-50",children:[r.jsx(Gu,{className:"h-3 w-3"}),"Restore"]})]})]}),T&&N.assignments.length>0&&r.jsx("ul",{className:"mt-2 space-y-1 pl-9",children:N.assignments.map(L=>r.jsxs("li",{className:"flex flex-wrap items-center gap-2 text-sm",children:[r.jsx(Ce,{to:Gv(L),className:"text-foreground hover:text-foreground/80",children:L.title}),r.jsx(yn,{status:L.status,showIcon:!1}),r.jsx("span",{className:"text-xs text-muted-foreground",children:L.archived?"Archived individually — stays archived after restore":"Hidden via project — returns on restore"})]},L.id))})]},N.slug)})})}),j.length>0&&r.jsx(ze,{title:"Archived Assignments",description:"Individually-archived assignments whose project is still active.",children:r.jsx("ul",{className:"divide-y divide-border",children:j.map(N=>r.jsxs("li",{className:"flex flex-wrap items-center gap-3 py-3",children:[r.jsx(Ce,{to:Gv(N),className:"text-sm font-medium text-foreground hover:text-foreground/80",children:N.title}),r.jsx(yn,{status:N.status,showIcon:!1}),r.jsx(I$,{}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:[N.projectTitle??"Standalone"," · Archived"," ",N.archivedAt?$r(N.archivedAt):"with no timestamp",N.archivedReason?` · ${N.archivedReason}`:""]}),r.jsxs("button",{type:"button",onClick:()=>k(N),disabled:i===`assignment:${N.id}`,className:"ml-auto inline-flex items-center gap-1.5 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground disabled:opacity-50",children:[r.jsx(Gu,{className:"h-3 w-3"}),"Restore"]})]},N.id))})})]})]})}const R1={definitions:[{id:"feature",label:"Feature"},{id:"bug",label:"Bug"},{id:"refactor",label:"Refactor"},{id:"research",label:"Research"},{id:"chore",label:"Chore"}],default:"feature",custom:!1};let Hu=null,Ri=null;function _$(){return Hu?Promise.resolve(Hu):Ri||(Ri=fetch("/api/config/types").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(Hu=e,Ri=null,e)).catch(()=>(Ri=null,R1)),Ri)}function Xd(){const[e,t]=f.useState(()=>Hu??R1);return f.useEffect(()=>{_$().then(t)},[]),e}function Yi(e,t){if(!t)return"—";const n=e.definitions.find(s=>s.id===t);return(n==null?void 0:n.label)??t.replace(/_/g," ").replace(/\b\w/g,s=>s.toUpperCase())}function M$(e,t){return t?e.definitions.find(n=>n.id===t)??null:null}function pa({type:e,className:t,compact:n=!1}){const s=Xd();if(!e)return null;const i=M$(s,e),l=(i==null?void 0:i.label)??e.replace(/_/g," ").replace(/\b\w/g,u=>u.toUpperCase()),c=i!=null&&i.color?{backgroundColor:`color-mix(in oklch, ${i.color} 18%, transparent)`,borderColor:`color-mix(in oklch, ${i.color} 50%, transparent)`,color:i.color}:void 0;return r.jsx("span",{title:(i==null?void 0:i.description)??`Type: ${l}`,style:c,className:Ee("inline-flex items-center whitespace-nowrap rounded-full border text-xs capitalize",n?"px-2 py-0.5":"px-2.5 py-1",!c&&"border-border/60 text-muted-foreground",t),children:l})}const Yv="inline-flex max-w-[14rem] items-center gap-1 whitespace-nowrap rounded-full border px-2 py-0.5 text-[11px] font-semibold tracking-wide border-border/60 text-muted-foreground",Jv="block min-w-0 truncate";function Ug({externalIds:e,className:t}){return e.length===0?null:r.jsx("span",{className:Ee("flex flex-wrap items-center gap-1.5",t),children:e.map((n,s)=>{const i=`${n.system}:${n.id}`,l=`${n.system}:${n.id}:${s}`;return n.url!=null&&n.url.length>0?r.jsxs("a",{href:n.url??void 0,target:"_blank",rel:"noopener noreferrer",className:Ee(Yv,"transition-colors hover:text-foreground hover:border-foreground/40"),title:`Open ${i} in ${n.system}`,children:[r.jsx("span",{className:Jv,children:i}),r.jsx(aa,{className:"h-2.5 w-2.5 shrink-0"})]},l):r.jsx("span",{className:Yv,title:i,children:r.jsx("span",{className:Jv,children:i})},l)})})}const F$={default:"chrome-card",info:"rounded-lg border border-primary/30 bg-primary/5 p-3 dark:border-primary/40 dark:bg-primary/10",warn:"rounded-lg border border-warning-foreground/30 bg-warning p-3",danger:"rounded-lg border border-error-foreground/30 bg-error p-3",success:"rounded-lg border border-success-foreground/30 bg-success p-3"};function Pn({label:e,value:t,description:n,icon:s,tone:i="default",to:l}){const c=r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.1em] text-muted-foreground",children:e}),r.jsx("p",{className:"text-2xl font-semibold text-foreground",children:t})]}),s?r.jsx("span",{className:"rounded-md border border-border/60 bg-background/80 p-1.5 text-muted-foreground",children:r.jsx(s,{className:"h-5 w-5"})}):null]}),n?r.jsx("p",{className:"mt-2 text-sm leading-5 text-muted-foreground",children:n}):null]}),u=Ee(F$[i],l?"block transition hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40":"");return l?r.jsx(Ce,{to:l,className:u,children:c}):r.jsx("article",{className:u,children:c})}function Xv(e){const t=z$(e),n=f.forwardRef((s,i)=>{const{children:l,...c}=s,u=f.Children.toArray(l),p=u.find(U$);if(p){const m=p.props.children,h=u.map(x=>x===p?f.Children.count(m)>1?f.Children.only(null):f.isValidElement(m)?m.props.children:null:x);return r.jsx(t,{...c,ref:i,children:f.isValidElement(m)?f.cloneElement(m,void 0,h):null})}return r.jsx(t,{...c,ref:i,children:l})});return n.displayName=`${e}.Slot`,n}function z$(e){const t=f.forwardRef((n,s)=>{const{children:i,...l}=n;if(f.isValidElement(i)){const c=H$(i),u=V$(l,i.props);return i.type!==f.Fragment&&(u.ref=s?Ld(s,c):c),f.cloneElement(i,u)}return f.Children.count(i)>1?f.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var B$=Symbol("radix.slottable");function U$(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===B$}function V$(e,t){const n={...t};for(const s in t){const i=e[s],l=t[s];/^on[A-Z]/.test(s)?i&&l?n[s]=(...u)=>{const p=l(...u);return i(...u),p}:i&&(n[s]=i):s==="style"?n[s]={...i,...l}:s==="className"&&(n[s]=[i,l].filter(Boolean).join(" "))}return{...e,...n}}function H$(e){var s,i;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function W$(e){const t=e+"CollectionProvider",[n,s]=Wo(t),[i,l]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=k=>{const{scope:w,children:j}=k,C=Zt.useRef(null),N=Zt.useRef(new Map).current;return r.jsx(i,{scope:w,itemMap:N,collectionRef:C,children:j})};c.displayName=t;const u=e+"CollectionSlot",p=Xv(u),m=Zt.forwardRef((k,w)=>{const{scope:j,children:C}=k,N=l(u,j),T=_n(w,N.collectionRef);return r.jsx(p,{ref:T,children:C})});m.displayName=u;const h=e+"CollectionItemSlot",x="data-radix-collection-item",y=Xv(h),b=Zt.forwardRef((k,w)=>{const{scope:j,children:C,...N}=k,T=Zt.useRef(null),L=_n(w,T),P=l(h,j);return Zt.useEffect(()=>(P.itemMap.set(T,{ref:T,...N}),()=>void P.itemMap.delete(T))),r.jsx(y,{[x]:"",ref:L,children:C})});b.displayName=h;function E(k){const w=l(e+"CollectionConsumer",k);return Zt.useCallback(()=>{const C=w.collectionRef.current;if(!C)return[];const N=Array.from(C.querySelectorAll(`[${x}]`));return Array.from(w.itemMap.values()).sort((P,$)=>N.indexOf(P.ref.current)-N.indexOf($.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:c,Slot:m,ItemSlot:b},E,s]}var K$=f.createContext(void 0);function A1(e){const t=f.useContext(K$);return e||t||"ltr"}var Em="rovingFocusGroup.onEntryFocus",q$={bubbles:!1,cancelable:!0},oc="RovingFocusGroup",[wh,D1,G$]=W$(oc),[Y$,$1]=Wo(oc,[G$]),[J$,X$]=Y$(oc),L1=f.forwardRef((e,t)=>r.jsx(wh.Provider,{scope:e.__scopeRovingFocusGroup,children:r.jsx(wh.Slot,{scope:e.__scopeRovingFocusGroup,children:r.jsx(Q$,{...e,ref:t})})}));L1.displayName=oc;var Q$=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:s,loop:i=!1,dir:l,currentTabStopId:c,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:p,onEntryFocus:m,preventScrollOnEntryFocus:h=!1,...x}=e,y=f.useRef(null),b=_n(t,y),E=A1(l),[k,w]=Id({prop:c,defaultProp:u??null,onChange:p,caller:oc}),[j,C]=f.useState(!1),N=zo(m),T=D1(n),L=f.useRef(!1),[P,$]=f.useState(0);return f.useEffect(()=>{const F=y.current;if(F)return F.addEventListener(Em,N),()=>F.removeEventListener(Em,N)},[N]),r.jsx(J$,{scope:n,orientation:s,dir:E,loop:i,currentTabStopId:k,onItemFocus:f.useCallback(F=>w(F),[w]),onItemShiftTab:f.useCallback(()=>C(!0),[]),onFocusableItemAdd:f.useCallback(()=>$(F=>F+1),[]),onFocusableItemRemove:f.useCallback(()=>$(F=>F-1),[]),children:r.jsx(dn.div,{tabIndex:j||P===0?-1:0,"data-orientation":s,...x,ref:b,style:{outline:"none",...e.style},onMouseDown:Vt(e.onMouseDown,()=>{L.current=!0}),onFocus:Vt(e.onFocus,F=>{const X=!L.current;if(F.target===F.currentTarget&&X&&!j){const te=new CustomEvent(Em,q$);if(F.currentTarget.dispatchEvent(te),!te.defaultPrevented){const D=T().filter(J=>J.focusable),W=D.find(J=>J.active),Z=D.find(J=>J.id===k),K=[W,Z,...D].filter(Boolean).map(J=>J.ref.current);_1(K,h)}}L.current=!1}),onBlur:Vt(e.onBlur,()=>C(!1))})})}),I1="RovingFocusGroupItem",O1=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:s=!0,active:i=!1,tabStopId:l,children:c,...u}=e,p=Hi(),m=l||p,h=X$(I1,n),x=h.currentTabStopId===m,y=D1(n),{onFocusableItemAdd:b,onFocusableItemRemove:E,currentTabStopId:k}=h;return f.useEffect(()=>{if(s)return b(),()=>E()},[s,b,E]),r.jsx(wh.ItemSlot,{scope:n,id:m,focusable:s,active:i,children:r.jsx(dn.span,{tabIndex:x?0:-1,"data-orientation":h.orientation,...u,ref:t,onMouseDown:Vt(e.onMouseDown,w=>{s?h.onItemFocus(m):w.preventDefault()}),onFocus:Vt(e.onFocus,()=>h.onItemFocus(m)),onKeyDown:Vt(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){h.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const j=tL(w,h.orientation,h.dir);if(j!==void 0){if(w.metaKey||w.ctrlKey||w.altKey||w.shiftKey)return;w.preventDefault();let N=y().filter(T=>T.focusable).map(T=>T.ref.current);if(j==="last")N.reverse();else if(j==="prev"||j==="next"){j==="prev"&&N.reverse();const T=N.indexOf(w.currentTarget);N=h.loop?nL(N,T+1):N.slice(T+1)}setTimeout(()=>_1(N))}}),children:typeof c=="function"?c({isCurrentTabStop:x,hasTabStop:k!=null}):c})})});O1.displayName=I1;var Z$={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function eL(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function tL(e,t,n){const s=eL(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(s))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(s)))return Z$[s]}function _1(e,t=!1){const n=document.activeElement;for(const s of e)if(s===n||(s.focus({preventScroll:t}),document.activeElement!==n))return}function nL(e,t){return e.map((n,s)=>e[(t+s)%e.length])}var rL=L1,sL=O1,Qd="Tabs",[oL]=Wo(Qd,[$1]),M1=$1(),[iL,Vg]=oL(Qd),F1=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,onValueChange:i,defaultValue:l,orientation:c="horizontal",dir:u,activationMode:p="automatic",...m}=e,h=A1(u),[x,y]=Id({prop:s,onChange:i,defaultProp:l??"",caller:Qd});return r.jsx(iL,{scope:n,baseId:Hi(),value:x,onValueChange:y,orientation:c,dir:h,activationMode:p,children:r.jsx(dn.div,{dir:h,"data-orientation":c,...m,ref:t})})});F1.displayName=Qd;var z1="TabsList",B1=f.forwardRef((e,t)=>{const{__scopeTabs:n,loop:s=!0,...i}=e,l=Vg(z1,n),c=M1(n);return r.jsx(rL,{asChild:!0,...c,orientation:l.orientation,dir:l.dir,loop:s,children:r.jsx(dn.div,{role:"tablist","aria-orientation":l.orientation,...i,ref:t})})});B1.displayName=z1;var U1="TabsTrigger",V1=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,disabled:i=!1,...l}=e,c=Vg(U1,n),u=M1(n),p=K1(c.baseId,s),m=q1(c.baseId,s),h=s===c.value;return r.jsx(sL,{asChild:!0,...u,focusable:!i,active:h,children:r.jsx(dn.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":m,"data-state":h?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:p,...l,ref:t,onMouseDown:Vt(e.onMouseDown,x=>{!i&&x.button===0&&x.ctrlKey===!1?c.onValueChange(s):x.preventDefault()}),onKeyDown:Vt(e.onKeyDown,x=>{[" ","Enter"].includes(x.key)&&c.onValueChange(s)}),onFocus:Vt(e.onFocus,()=>{const x=c.activationMode!=="manual";!h&&!i&&x&&c.onValueChange(s)})})})});V1.displayName=U1;var H1="TabsContent",W1=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,forceMount:i,children:l,...c}=e,u=Vg(H1,n),p=K1(u.baseId,s),m=q1(u.baseId,s),h=s===u.value,x=f.useRef(h);return f.useEffect(()=>{const y=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(y)},[]),r.jsx(Ko,{present:i||h,children:({present:y})=>r.jsx(dn.div,{"data-state":h?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":p,hidden:!y,id:m,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:x.current?"0s":void 0},children:y&&l})})});W1.displayName=H1;function K1(e,t){return`${e}-trigger-${t}`}function q1(e,t){return`${e}-content-${t}`}var G1=F1,Y1=B1,jh=V1,kh=W1;function Hg({value:e,onValueChange:t,items:n,className:s}){return r.jsxs(G1,{value:e,onValueChange:t,className:s,children:[r.jsx(Y1,{className:"scrollbar-none flex gap-2 overflow-x-auto rounded-md border border-border/70 bg-card/80 p-1",children:n.map(i=>r.jsxs(jh,{value:i.value,className:Ee("inline-flex items-center gap-2 rounded-sm px-3 py-1.5 text-sm font-medium text-muted-foreground transition","data-[state=active]:bg-foreground data-[state=active]:text-background"),children:[r.jsx("span",{children:i.label}),typeof i.count=="number"?r.jsx("span",{className:"rounded-full bg-background/20 px-2 py-0.5 text-xs data-[state=active]:bg-background/20",children:i.count}):null]},i.value))}),n.map(i=>r.jsx(kh,{value:i.value,className:"pt-3",children:i.content},i.value))]})}const aL="modulepreload",lL=function(e){return"/"+e},Qv={},cL=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let c=function(m){return Promise.all(m.map(h=>Promise.resolve(h).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};document.getElementsByTagName("link");const u=document.querySelector("meta[property=csp-nonce]"),p=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));i=c(n.map(m=>{if(m=lL(m),m in Qv)return;Qv[m]=!0;const h=m.endsWith(".css"),x=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${x}`))return;const y=document.createElement("link");if(y.rel=h?"stylesheet":aL,h||(y.as="script"),y.crossOrigin="",y.href=m,p&&y.setAttribute("nonce",p),document.head.appendChild(y),h)return new Promise((b,E)=>{y.addEventListener("load",b),y.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${m}`)))})}))}function l(c){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=c,window.dispatchEvent(u),!u.defaultPrevented)throw c}return i.then(c=>{for(const u of c||[])u.status==="rejected"&&l(u.reason);return t().catch(l)})};function uL({definition:e,className:t,nodeRoutes:n={}}){const s=f.useRef(null),[i,l]=f.useState(null),[c,u]=f.useState(!0),p=$t(),m=document.documentElement.classList.contains("dark")?"dark":"default";return f.useEffect(()=>{let h=!1;async function x(){if(s.current)try{const y=(await cL(async()=>{const{default:k}=await import("./mermaid.core-C3eCFd8P.js").then(w=>w.bF);return{default:k}},[])).default;if(y.initialize({startOnLoad:!1,theme:"base",themeVariables:dL(m==="dark")}),h)return;const b=`mermaid-${Date.now()}`,{svg:E}=await y.render(b,e);if(h||!s.current)return;s.current.innerHTML=E,fL(s.current,n,p),u(!1)}catch(y){h||(l(y instanceof Error?y.message:"Failed to render graph"),u(!1))}}return u(!0),l(null),x(),()=>{h=!0}},[e,p,n,m]),i?r.jsxs("div",{className:Ee("rounded-lg border border-border bg-card p-4",t),children:[r.jsxs("p",{className:"text-sm text-error-foreground",children:["Failed to render dependency graph: ",i]}),r.jsx("pre",{className:"mt-2 text-xs text-muted-foreground overflow-auto",children:e})]}):r.jsxs("div",{className:Ee("rounded-lg border border-border bg-card p-4",t),children:[c&&r.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading graph..."}),r.jsx("div",{ref:s,className:"overflow-auto"})]})}function dL(e){const t=document.documentElement,n=x=>{const y=getComputedStyle(t).getPropertyValue(x).trim();return y?`oklch(${y})`:""},s=n("--card"),i=n("--card-foreground"),l=n("--border"),c=n("--primary"),u=n("--primary-foreground"),p=n("--muted"),m=n("--muted-foreground"),h=n("--secondary");return{background:s,primaryColor:s,primaryTextColor:i,primaryBorderColor:l,secondaryColor:p,secondaryTextColor:i,secondaryBorderColor:l,tertiaryColor:p,tertiaryTextColor:m,tertiaryBorderColor:l,lineColor:e?m:l,textColor:i,mainBkg:s,nodeBkg:s,nodeTextColor:i,nodeBorder:l,clusterBkg:p,clusterBorder:l,edgeLabelBackground:s,titleColor:i,activeTaskBkgColor:c,activeTaskBorderColor:c,altBackground:p,labelColor:i,errorBkgColor:h,errorTextColor:u}}function fL(e,t,n){var s;for(const i of e.querySelectorAll(".node")){const l=((s=i.textContent)==null?void 0:s.replace(/\s+/g," ").trim())??"",c=t[l];if(!c)continue;i.style.cursor="pointer",i.setAttribute("role","link"),i.setAttribute("tabindex","0"),i.setAttribute("aria-label",`Open ${l}`);const u=()=>n(c);i.addEventListener("click",u),i.addEventListener("keydown",p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),u())})}}function pL(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const mL=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,hL=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,gL={};function Zv(e,t){return(gL.jsx?hL:mL).test(e)}const xL=/[ \t\n\f\r]/g;function yL(e){return typeof e=="object"?e.type==="text"?ew(e.value):!1:ew(e)}function ew(e){return e.replace(xL,"")===""}class ic{constructor(t,n,s){this.normal=n,this.property=t,s&&(this.space=s)}}ic.prototype.normal={};ic.prototype.property={};ic.prototype.space=void 0;function J1(e,t){const n={},s={};for(const i of e)Object.assign(n,i.property),Object.assign(s,i.normal);return new ic(n,s,t)}function Sh(e){return e.toLowerCase()}class or{constructor(t,n){this.attribute=n,this.property=t}}or.prototype.attribute="";or.prototype.booleanish=!1;or.prototype.boolean=!1;or.prototype.commaOrSpaceSeparated=!1;or.prototype.commaSeparated=!1;or.prototype.defined=!1;or.prototype.mustUseProperty=!1;or.prototype.number=!1;or.prototype.overloadedBoolean=!1;or.prototype.property="";or.prototype.spaceSeparated=!1;or.prototype.space=void 0;let bL=0;const rt=Go(),cn=Go(),Nh=Go(),Se=Go(),At=Go(),Ji=Go(),pr=Go();function Go(){return 2**++bL}const Ch=Object.freeze(Object.defineProperty({__proto__:null,boolean:rt,booleanish:cn,commaOrSpaceSeparated:pr,commaSeparated:Ji,number:Se,overloadedBoolean:Nh,spaceSeparated:At},Symbol.toStringTag,{value:"Module"})),Tm=Object.keys(Ch);class Wg extends or{constructor(t,n,s,i){let l=-1;if(super(t,n),tw(this,"space",i),typeof s=="number")for(;++l<Tm.length;){const c=Tm[l];tw(this,Tm[l],(s&Ch[c])===Ch[c])}}}Wg.prototype.defined=!0;function tw(e,t,n){n&&(e[t]=n)}function ma(e){const t={},n={};for(const[s,i]of Object.entries(e.properties)){const l=new Wg(s,e.transform(e.attributes||{},s),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(s)&&(l.mustUseProperty=!0),t[s]=l,n[Sh(s)]=s,n[Sh(l.attribute)]=s}return new ic(t,n,e.space)}const X1=ma({properties:{ariaActiveDescendant:null,ariaAtomic:cn,ariaAutoComplete:null,ariaBusy:cn,ariaChecked:cn,ariaColCount:Se,ariaColIndex:Se,ariaColSpan:Se,ariaControls:At,ariaCurrent:null,ariaDescribedBy:At,ariaDetails:null,ariaDisabled:cn,ariaDropEffect:At,ariaErrorMessage:null,ariaExpanded:cn,ariaFlowTo:At,ariaGrabbed:cn,ariaHasPopup:null,ariaHidden:cn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:At,ariaLevel:Se,ariaLive:null,ariaModal:cn,ariaMultiLine:cn,ariaMultiSelectable:cn,ariaOrientation:null,ariaOwns:At,ariaPlaceholder:null,ariaPosInSet:Se,ariaPressed:cn,ariaReadOnly:cn,ariaRelevant:null,ariaRequired:cn,ariaRoleDescription:At,ariaRowCount:Se,ariaRowIndex:Se,ariaRowSpan:Se,ariaSelected:cn,ariaSetSize:Se,ariaSort:null,ariaValueMax:Se,ariaValueMin:Se,ariaValueNow:Se,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Q1(e,t){return t in e?e[t]:t}function Z1(e,t){return Q1(e,t.toLowerCase())}const vL=ma({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ji,acceptCharset:At,accessKey:At,action:null,allow:null,allowFullScreen:rt,allowPaymentRequest:rt,allowUserMedia:rt,alt:null,as:null,async:rt,autoCapitalize:null,autoComplete:At,autoFocus:rt,autoPlay:rt,blocking:At,capture:null,charSet:null,checked:rt,cite:null,className:At,cols:Se,colSpan:null,content:null,contentEditable:cn,controls:rt,controlsList:At,coords:Se|Ji,crossOrigin:null,data:null,dateTime:null,decoding:null,default:rt,defer:rt,dir:null,dirName:null,disabled:rt,download:Nh,draggable:cn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:rt,formTarget:null,headers:At,height:Se,hidden:Nh,high:Se,href:null,hrefLang:null,htmlFor:At,httpEquiv:At,id:null,imageSizes:null,imageSrcSet:null,inert:rt,inputMode:null,integrity:null,is:null,isMap:rt,itemId:null,itemProp:At,itemRef:At,itemScope:rt,itemType:At,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:rt,low:Se,manifest:null,max:null,maxLength:Se,media:null,method:null,min:null,minLength:Se,multiple:rt,muted:rt,name:null,nonce:null,noModule:rt,noValidate:rt,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:rt,optimum:Se,pattern:null,ping:At,placeholder:null,playsInline:rt,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:rt,referrerPolicy:null,rel:At,required:rt,reversed:rt,rows:Se,rowSpan:Se,sandbox:At,scope:null,scoped:rt,seamless:rt,selected:rt,shadowRootClonable:rt,shadowRootDelegatesFocus:rt,shadowRootMode:null,shape:null,size:Se,sizes:null,slot:null,span:Se,spellCheck:cn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Se,step:null,style:null,tabIndex:Se,target:null,title:null,translate:null,type:null,typeMustMatch:rt,useMap:null,value:cn,width:Se,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:At,axis:null,background:null,bgColor:null,border:Se,borderColor:null,bottomMargin:Se,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:rt,declare:rt,event:null,face:null,frame:null,frameBorder:null,hSpace:Se,leftMargin:Se,link:null,longDesc:null,lowSrc:null,marginHeight:Se,marginWidth:Se,noResize:rt,noHref:rt,noShade:rt,noWrap:rt,object:null,profile:null,prompt:null,rev:null,rightMargin:Se,rules:null,scheme:null,scrolling:cn,standby:null,summary:null,text:null,topMargin:Se,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Se,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:rt,disableRemotePlayback:rt,prefix:null,property:null,results:Se,security:null,unselectable:null},space:"html",transform:Z1}),wL=ma({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:pr,accentHeight:Se,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Se,amplitude:Se,arabicForm:null,ascent:Se,attributeName:null,attributeType:null,azimuth:Se,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Se,by:null,calcMode:null,capHeight:Se,className:At,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Se,diffuseConstant:Se,direction:null,display:null,dur:null,divisor:Se,dominantBaseline:null,download:rt,dx:null,dy:null,edgeMode:null,editable:null,elevation:Se,enableBackground:null,end:null,event:null,exponent:Se,externalResourcesRequired:null,fill:null,fillOpacity:Se,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Ji,g2:Ji,glyphName:Ji,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Se,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Se,horizOriginX:Se,horizOriginY:Se,id:null,ideographic:Se,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Se,k:Se,k1:Se,k2:Se,k3:Se,k4:Se,kernelMatrix:pr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Se,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Se,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Se,overlineThickness:Se,paintOrder:null,panose1:null,path:null,pathLength:Se,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:At,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Se,pointsAtY:Se,pointsAtZ:Se,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:pr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:pr,rev:pr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:pr,requiredFeatures:pr,requiredFonts:pr,requiredFormats:pr,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Se,specularExponent:Se,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Se,strikethroughThickness:Se,string:null,stroke:null,strokeDashArray:pr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Se,strokeOpacity:Se,strokeWidth:null,style:null,surfaceScale:Se,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:pr,tabIndex:Se,tableValues:null,target:null,targetX:Se,targetY:Se,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:pr,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Se,underlineThickness:Se,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Se,values:null,vAlphabetic:Se,vMathematical:Se,vectorEffect:null,vHanging:Se,vIdeographic:Se,version:null,vertAdvY:Se,vertOriginX:Se,vertOriginY:Se,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Se,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Q1}),eS=ma({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),tS=ma({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Z1}),nS=ma({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),jL={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},kL=/[A-Z]/g,nw=/-[a-z]/g,SL=/^data[-\w.:]+$/i;function NL(e,t){const n=Sh(t);let s=t,i=or;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&SL.test(t)){if(t.charAt(4)==="-"){const l=t.slice(5).replace(nw,EL);s="data"+l.charAt(0).toUpperCase()+l.slice(1)}else{const l=t.slice(4);if(!nw.test(l)){let c=l.replace(kL,CL);c.charAt(0)!=="-"&&(c="-"+c),t="data"+c}}i=Wg}return new i(s,t)}function CL(e){return"-"+e.toLowerCase()}function EL(e){return e.charAt(1).toUpperCase()}const TL=J1([X1,vL,eS,tS,nS],"html"),Kg=J1([X1,wL,eS,tS,nS],"svg");function PL(e){return e.join(" ").trim()}var Ai={},Pm,rw;function RL(){if(rw)return Pm;rw=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,s=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,l=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,u=/^\s+|\s+$/g,p=`
|
|
516
|
+
`,m="/",h="*",x="",y="comment",b="declaration";function E(w,j){if(typeof w!="string")throw new TypeError("First argument must be a string");if(!w)return[];j=j||{};var C=1,N=1;function T(M){var K=M.match(t);K&&(C+=K.length);var J=M.lastIndexOf(p);N=~J?M.length-J:N+M.length}function L(){var M={line:C,column:N};return function(K){return K.position=new P(M),X(),K}}function P(M){this.start=M,this.end={line:C,column:N},this.source=j.source}P.prototype.content=w;function $(M){var K=new Error(j.source+":"+C+":"+N+": "+M);if(K.reason=M,K.filename=j.source,K.line=C,K.column=N,K.source=w,!j.silent)throw K}function F(M){var K=M.exec(w);if(K){var J=K[0];return T(J),w=w.slice(J.length),K}}function X(){F(n)}function te(M){var K;for(M=M||[];K=D();)K!==!1&&M.push(K);return M}function D(){var M=L();if(!(m!=w.charAt(0)||h!=w.charAt(1))){for(var K=2;x!=w.charAt(K)&&(h!=w.charAt(K)||m!=w.charAt(K+1));)++K;if(K+=2,x===w.charAt(K-1))return $("End of comment missing");var J=w.slice(2,K-2);return N+=2,T(J),w=w.slice(K),N+=2,M({type:y,comment:J})}}function W(){var M=L(),K=F(s);if(K){if(D(),!F(i))return $("property missing ':'");var J=F(l),le=M({type:b,property:k(K[0].replace(e,x)),value:J?k(J[0].replace(e,x)):x});return F(c),le}}function Z(){var M=[];te(M);for(var K;K=W();)K!==!1&&(M.push(K),te(M));return M}return X(),Z()}function k(w){return w?w.replace(u,x):x}return Pm=E,Pm}var sw;function AL(){if(sw)return Ai;sw=1;var e=Ai&&Ai.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.default=n;const t=e(RL());function n(s,i){let l=null;if(!s||typeof s!="string")return l;const c=(0,t.default)(s),u=typeof i=="function";return c.forEach(p=>{if(p.type!=="declaration")return;const{property:m,value:h}=p;u?i(m,h,p):h&&(l=l||{},l[m]=h)}),l}return Ai}var pl={},ow;function DL(){if(ow)return pl;ow=1,Object.defineProperty(pl,"__esModule",{value:!0}),pl.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,s=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,l=function(m){return!m||n.test(m)||e.test(m)},c=function(m,h){return h.toUpperCase()},u=function(m,h){return"".concat(h,"-")},p=function(m,h){return h===void 0&&(h={}),l(m)?m:(m=m.toLowerCase(),h.reactCompat?m=m.replace(i,u):m=m.replace(s,u),m.replace(t,c))};return pl.camelCase=p,pl}var ml,iw;function $L(){if(iw)return ml;iw=1;var e=ml&&ml.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(AL()),n=DL();function s(i,l){var c={};return!i||typeof i!="string"||(0,t.default)(i,function(u,p){u&&p&&(c[(0,n.camelCase)(u,l)]=p)}),c}return s.default=s,ml=s,ml}var LL=$L();const IL=jd(LL),rS=sS("end"),qg=sS("start");function sS(e){return t;function t(n){const s=n&&n.position&&n.position[e]||{};if(typeof s.line=="number"&&s.line>0&&typeof s.column=="number"&&s.column>0)return{line:s.line,column:s.column,offset:typeof s.offset=="number"&&s.offset>-1?s.offset:void 0}}}function OL(e){const t=qg(e),n=rS(e);if(t&&n)return{start:t,end:n}}function Sl(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?aw(e.position):"start"in e||"end"in e?aw(e):"line"in e||"column"in e?Eh(e):""}function Eh(e){return lw(e&&e.line)+":"+lw(e&&e.column)}function aw(e){return Eh(e&&e.start)+"-"+Eh(e&&e.end)}function lw(e){return e&&typeof e=="number"?e:1}class Mn extends Error{constructor(t,n,s){super(),typeof n=="string"&&(s=n,n=void 0);let i="",l={},c=!1;if(n&&("line"in n&&"column"in n?l={place:n}:"start"in n&&"end"in n?l={place:n}:"type"in n?l={ancestors:[n],place:n.position}:l={...n}),typeof t=="string"?i=t:!l.cause&&t&&(c=!0,i=t.message,l.cause=t),!l.ruleId&&!l.source&&typeof s=="string"){const p=s.indexOf(":");p===-1?l.ruleId=s:(l.source=s.slice(0,p),l.ruleId=s.slice(p+1))}if(!l.place&&l.ancestors&&l.ancestors){const p=l.ancestors[l.ancestors.length-1];p&&(l.place=p.position)}const u=l.place&&"start"in l.place?l.place.start:l.place;this.ancestors=l.ancestors||void 0,this.cause=l.cause||void 0,this.column=u?u.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=u?u.line:void 0,this.name=Sl(l.place)||"1:1",this.place=l.place||void 0,this.reason=this.message,this.ruleId=l.ruleId||void 0,this.source=l.source||void 0,this.stack=c&&l.cause&&typeof l.cause.stack=="string"?l.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Mn.prototype.file="";Mn.prototype.name="";Mn.prototype.reason="";Mn.prototype.message="";Mn.prototype.stack="";Mn.prototype.column=void 0;Mn.prototype.line=void 0;Mn.prototype.ancestors=void 0;Mn.prototype.cause=void 0;Mn.prototype.fatal=void 0;Mn.prototype.place=void 0;Mn.prototype.ruleId=void 0;Mn.prototype.source=void 0;const Gg={}.hasOwnProperty,_L=new Map,ML=/[A-Z]/g,FL=new Set(["table","tbody","thead","tfoot","tr"]),zL=new Set(["td","th"]),oS="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function BL(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let s;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");s=YL(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");s=GL(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:s,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Kg:TL,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},l=iS(i,e,void 0);return l&&typeof l!="string"?l:i.create(e,i.Fragment,{children:l||void 0},void 0)}function iS(e,t,n){if(t.type==="element")return UL(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return VL(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return WL(e,t,n);if(t.type==="mdxjsEsm")return HL(e,t);if(t.type==="root")return KL(e,t,n);if(t.type==="text")return qL(e,t)}function UL(e,t,n){const s=e.schema;let i=s;t.tagName.toLowerCase()==="svg"&&s.space==="html"&&(i=Kg,e.schema=i),e.ancestors.push(t);const l=lS(e,t.tagName,!1),c=JL(e,t);let u=Jg(e,t);return FL.has(t.tagName)&&(u=u.filter(function(p){return typeof p=="string"?!yL(p):!0})),aS(e,c,l,t),Yg(c,u),e.ancestors.pop(),e.schema=s,e.create(t,l,c,n)}function VL(e,t){if(t.data&&t.data.estree&&e.evaluater){const s=t.data.estree.body[0];return s.type,e.evaluater.evaluateExpression(s.expression)}Bl(e,t.position)}function HL(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Bl(e,t.position)}function WL(e,t,n){const s=e.schema;let i=s;t.name==="svg"&&s.space==="html"&&(i=Kg,e.schema=i),e.ancestors.push(t);const l=t.name===null?e.Fragment:lS(e,t.name,!0),c=XL(e,t),u=Jg(e,t);return aS(e,c,l,t),Yg(c,u),e.ancestors.pop(),e.schema=s,e.create(t,l,c,n)}function KL(e,t,n){const s={};return Yg(s,Jg(e,t)),e.create(t,e.Fragment,s,n)}function qL(e,t){return t.value}function aS(e,t,n,s){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=s)}function Yg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function GL(e,t,n){return s;function s(i,l,c,u){const m=Array.isArray(c.children)?n:t;return u?m(l,c,u):m(l,c)}}function YL(e,t){return n;function n(s,i,l,c){const u=Array.isArray(l.children),p=qg(s);return t(i,l,c,u,{columnNumber:p?p.column-1:void 0,fileName:e,lineNumber:p?p.line:void 0},void 0)}}function JL(e,t){const n={};let s,i;for(i in t.properties)if(i!=="children"&&Gg.call(t.properties,i)){const l=QL(e,i,t.properties[i]);if(l){const[c,u]=l;e.tableCellAlignToStyle&&c==="align"&&typeof u=="string"&&zL.has(t.tagName)?s=u:n[c]=u}}if(s){const l=n.style||(n.style={});l[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=s}return n}function XL(e,t){const n={};for(const s of t.attributes)if(s.type==="mdxJsxExpressionAttribute")if(s.data&&s.data.estree&&e.evaluater){const l=s.data.estree.body[0];l.type;const c=l.expression;c.type;const u=c.properties[0];u.type,Object.assign(n,e.evaluater.evaluateExpression(u.argument))}else Bl(e,t.position);else{const i=s.name;let l;if(s.value&&typeof s.value=="object")if(s.value.data&&s.value.data.estree&&e.evaluater){const u=s.value.data.estree.body[0];u.type,l=e.evaluater.evaluateExpression(u.expression)}else Bl(e,t.position);else l=s.value===null?!0:s.value;n[i]=l}return n}function Jg(e,t){const n=[];let s=-1;const i=e.passKeys?new Map:_L;for(;++s<t.children.length;){const l=t.children[s];let c;if(e.passKeys){const p=l.type==="element"?l.tagName:l.type==="mdxJsxFlowElement"||l.type==="mdxJsxTextElement"?l.name:void 0;if(p){const m=i.get(p)||0;c=p+"-"+m,i.set(p,m+1)}}const u=iS(e,l,c);u!==void 0&&n.push(u)}return n}function QL(e,t,n){const s=NL(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=s.commaSeparated?pL(n):PL(n)),s.property==="style"){let i=typeof n=="object"?n:ZL(e,String(n));return e.stylePropertyNameCase==="css"&&(i=eI(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&s.space?jL[s.property]||s.property:s.attribute,n]}}function ZL(e,t){try{return IL(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const s=n,i=new Mn("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:s,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=oS+"#cannot-parse-style-attribute",i}}function lS(e,t,n){let s;if(!n)s={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let l=-1,c;for(;++l<i.length;){const u=Zv(i[l])?{type:"Identifier",name:i[l]}:{type:"Literal",value:i[l]};c=c?{type:"MemberExpression",object:c,property:u,computed:!!(l&&u.type==="Literal"),optional:!1}:u}s=c}else s=Zv(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(s.type==="Literal"){const i=s.value;return Gg.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(s);Bl(e)}function Bl(e,t){const n=new Mn("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=oS+"#cannot-handle-mdx-estrees-without-createevaluater",n}function eI(e){const t={};let n;for(n in e)Gg.call(e,n)&&(t[tI(n)]=e[n]);return t}function tI(e){let t=e.replace(ML,nI);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function nI(e){return"-"+e.toLowerCase()}const Rm={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},rI={};function sI(e,t){const n=rI,s=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return cS(e,s,i)}function cS(e,t,n){if(oI(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return cw(e.children,t,n)}return Array.isArray(e)?cw(e,t,n):""}function cw(e,t,n){const s=[];let i=-1;for(;++i<e.length;)s[i]=cS(e[i],t,n);return s.join("")}function oI(e){return!!(e&&typeof e=="object")}const uw=document.createElement("i");function Xg(e){const t="&"+e+";";uw.innerHTML=t;const n=uw.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function ds(e,t,n,s){const i=e.length;let l=0,c;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,s.length<1e4)c=Array.from(s),c.unshift(t,n),e.splice(...c);else for(n&&e.splice(t,n);l<s.length;)c=s.slice(l,l+1e4),c.unshift(t,0),e.splice(...c),l+=1e4,t+=1e4}function Tr(e,t){return e.length>0?(ds(e,e.length,0,t),e):t}const dw={}.hasOwnProperty;function iI(e){const t={};let n=-1;for(;++n<e.length;)aI(t,e[n]);return t}function aI(e,t){let n;for(n in t){const i=(dw.call(e,n)?e[n]:void 0)||(e[n]={}),l=t[n];let c;if(l)for(c in l){dw.call(i,c)||(i[c]=[]);const u=l[c];lI(i[c],Array.isArray(u)?u:u?[u]:[])}}}function lI(e,t){let n=-1;const s=[];for(;++n<t.length;)(t[n].add==="after"?e:s).push(t[n]);ds(e,0,0,s)}function uS(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Xi(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const os=po(/[A-Za-z]/),xr=po(/[\dA-Za-z]/),cI=po(/[#-'*+\--9=?A-Z^-~]/);function Th(e){return e!==null&&(e<32||e===127)}const Ph=po(/\d/),uI=po(/[\dA-Fa-f]/),dI=po(/[!-/:-@[-`{-~]/);function Ze(e){return e!==null&&e<-2}function rr(e){return e!==null&&(e<0||e===32)}function wt(e){return e===-2||e===-1||e===32}const fI=po(new RegExp("\\p{P}|\\p{S}","u")),pI=po(/\s/);function po(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function ha(e){const t=[];let n=-1,s=0,i=0;for(;++n<e.length;){const l=e.charCodeAt(n);let c="";if(l===37&&xr(e.charCodeAt(n+1))&&xr(e.charCodeAt(n+2)))i=2;else if(l<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l))||(c=String.fromCharCode(l));else if(l>55295&&l<57344){const u=e.charCodeAt(n+1);l<56320&&u>56319&&u<57344?(c=String.fromCharCode(l,u),i=1):c="�"}else c=String.fromCharCode(l);c&&(t.push(e.slice(s,n),encodeURIComponent(c)),s=n+i+1,c=""),i&&(n+=i,i=0)}return t.join("")+e.slice(s)}function Dt(e,t,n,s){const i=s?s-1:Number.POSITIVE_INFINITY;let l=0;return c;function c(p){return wt(p)?(e.enter(n),u(p)):t(p)}function u(p){return wt(p)&&l++<i?(e.consume(p),u):(e.exit(n),t(p))}}const mI={tokenize:hI};function hI(e){const t=e.attempt(this.parser.constructs.contentInitial,s,i);let n;return t;function s(u){if(u===null){e.consume(u);return}return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),Dt(e,t,"linePrefix")}function i(u){return e.enter("paragraph"),l(u)}function l(u){const p=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=p),n=p,c(u)}function c(u){if(u===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(u);return}return Ze(u)?(e.consume(u),e.exit("chunkText"),l):(e.consume(u),c)}}const gI={tokenize:xI},fw={tokenize:yI};function xI(e){const t=this,n=[];let s=0,i,l,c;return u;function u(N){if(s<n.length){const T=n[s];return t.containerState=T[1],e.attempt(T[0].continuation,p,m)(N)}return m(N)}function p(N){if(s++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&C();const T=t.events.length;let L=T,P;for(;L--;)if(t.events[L][0]==="exit"&&t.events[L][1].type==="chunkFlow"){P=t.events[L][1].end;break}j(s);let $=T;for(;$<t.events.length;)t.events[$][1].end={...P},$++;return ds(t.events,L+1,0,t.events.slice(T)),t.events.length=$,m(N)}return u(N)}function m(N){if(s===n.length){if(!i)return y(N);if(i.currentConstruct&&i.currentConstruct.concrete)return E(N);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(fw,h,x)(N)}function h(N){return i&&C(),j(s),y(N)}function x(N){return t.parser.lazy[t.now().line]=s!==n.length,c=t.now().offset,E(N)}function y(N){return t.containerState={},e.attempt(fw,b,E)(N)}function b(N){return s++,n.push([t.currentConstruct,t.containerState]),y(N)}function E(N){if(N===null){i&&C(),j(0),e.consume(N);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:l}),k(N)}function k(N){if(N===null){w(e.exit("chunkFlow"),!0),j(0),e.consume(N);return}return Ze(N)?(e.consume(N),w(e.exit("chunkFlow")),s=0,t.interrupt=void 0,u):(e.consume(N),k)}function w(N,T){const L=t.sliceStream(N);if(T&&L.push(null),N.previous=l,l&&(l.next=N),l=N,i.defineSkip(N.start),i.write(L),t.parser.lazy[N.start.line]){let P=i.events.length;for(;P--;)if(i.events[P][1].start.offset<c&&(!i.events[P][1].end||i.events[P][1].end.offset>c))return;const $=t.events.length;let F=$,X,te;for(;F--;)if(t.events[F][0]==="exit"&&t.events[F][1].type==="chunkFlow"){if(X){te=t.events[F][1].end;break}X=!0}for(j(s),P=$;P<t.events.length;)t.events[P][1].end={...te},P++;ds(t.events,F+1,0,t.events.slice($)),t.events.length=P}}function j(N){let T=n.length;for(;T-- >N;){const L=n[T];t.containerState=L[1],L[0].exit.call(t,e)}n.length=N}function C(){i.write([null]),l=void 0,i=void 0,t.containerState._closeFlow=void 0}}function yI(e,t,n){return Dt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function pw(e){if(e===null||rr(e)||pI(e))return 1;if(fI(e))return 2}function Qg(e,t,n){const s=[];let i=-1;for(;++i<e.length;){const l=e[i].resolveAll;l&&!s.includes(l)&&(t=l(t,n),s.push(l))}return t}const Rh={name:"attention",resolveAll:bI,tokenize:vI};function bI(e,t){let n=-1,s,i,l,c,u,p,m,h;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(s=n;s--;)if(e[s][0]==="exit"&&e[s][1].type==="attentionSequence"&&e[s][1]._open&&t.sliceSerialize(e[s][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[s][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[s][1].end.offset-e[s][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;p=e[s][1].end.offset-e[s][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const x={...e[s][1].end},y={...e[n][1].start};mw(x,-p),mw(y,p),c={type:p>1?"strongSequence":"emphasisSequence",start:x,end:{...e[s][1].end}},u={type:p>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:y},l={type:p>1?"strongText":"emphasisText",start:{...e[s][1].end},end:{...e[n][1].start}},i={type:p>1?"strong":"emphasis",start:{...c.start},end:{...u.end}},e[s][1].end={...c.start},e[n][1].start={...u.end},m=[],e[s][1].end.offset-e[s][1].start.offset&&(m=Tr(m,[["enter",e[s][1],t],["exit",e[s][1],t]])),m=Tr(m,[["enter",i,t],["enter",c,t],["exit",c,t],["enter",l,t]]),m=Tr(m,Qg(t.parser.constructs.insideSpan.null,e.slice(s+1,n),t)),m=Tr(m,[["exit",l,t],["enter",u,t],["exit",u,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(h=2,m=Tr(m,[["enter",e[n][1],t],["exit",e[n][1],t]])):h=0,ds(e,s-1,n-s+3,m),n=s+m.length-h-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function vI(e,t){const n=this.parser.constructs.attentionMarkers.null,s=this.previous,i=pw(s);let l;return c;function c(p){return l=p,e.enter("attentionSequence"),u(p)}function u(p){if(p===l)return e.consume(p),u;const m=e.exit("attentionSequence"),h=pw(p),x=!h||h===2&&i||n.includes(p),y=!i||i===2&&h||n.includes(s);return m._open=!!(l===42?x:x&&(i||!y)),m._close=!!(l===42?y:y&&(h||!x)),t(p)}}function mw(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const wI={name:"autolink",tokenize:jI};function jI(e,t,n){let s=0;return i;function i(b){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(b),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),l}function l(b){return os(b)?(e.consume(b),c):b===64?n(b):m(b)}function c(b){return b===43||b===45||b===46||xr(b)?(s=1,u(b)):m(b)}function u(b){return b===58?(e.consume(b),s=0,p):(b===43||b===45||b===46||xr(b))&&s++<32?(e.consume(b),u):(s=0,m(b))}function p(b){return b===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(b),e.exit("autolinkMarker"),e.exit("autolink"),t):b===null||b===32||b===60||Th(b)?n(b):(e.consume(b),p)}function m(b){return b===64?(e.consume(b),h):cI(b)?(e.consume(b),m):n(b)}function h(b){return xr(b)?x(b):n(b)}function x(b){return b===46?(e.consume(b),s=0,h):b===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(b),e.exit("autolinkMarker"),e.exit("autolink"),t):y(b)}function y(b){if((b===45||xr(b))&&s++<63){const E=b===45?y:x;return e.consume(b),E}return n(b)}}const Zd={partial:!0,tokenize:kI};function kI(e,t,n){return s;function s(l){return wt(l)?Dt(e,i,"linePrefix")(l):i(l)}function i(l){return l===null||Ze(l)?t(l):n(l)}}const dS={continuation:{tokenize:NI},exit:CI,name:"blockQuote",tokenize:SI};function SI(e,t,n){const s=this;return i;function i(c){if(c===62){const u=s.containerState;return u.open||(e.enter("blockQuote",{_container:!0}),u.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(c),e.exit("blockQuoteMarker"),l}return n(c)}function l(c){return wt(c)?(e.enter("blockQuotePrefixWhitespace"),e.consume(c),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(c))}}function NI(e,t,n){const s=this;return i;function i(c){return wt(c)?Dt(e,l,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c):l(c)}function l(c){return e.attempt(dS,t,n)(c)}}function CI(e){e.exit("blockQuote")}const fS={name:"characterEscape",tokenize:EI};function EI(e,t,n){return s;function s(l){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(l),e.exit("escapeMarker"),i}function i(l){return dI(l)?(e.enter("characterEscapeValue"),e.consume(l),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(l)}}const pS={name:"characterReference",tokenize:TI};function TI(e,t,n){const s=this;let i=0,l,c;return u;function u(x){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(x),e.exit("characterReferenceMarker"),p}function p(x){return x===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(x),e.exit("characterReferenceMarkerNumeric"),m):(e.enter("characterReferenceValue"),l=31,c=xr,h(x))}function m(x){return x===88||x===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(x),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),l=6,c=uI,h):(e.enter("characterReferenceValue"),l=7,c=Ph,h(x))}function h(x){if(x===59&&i){const y=e.exit("characterReferenceValue");return c===xr&&!Xg(s.sliceSerialize(y))?n(x):(e.enter("characterReferenceMarker"),e.consume(x),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return c(x)&&i++<l?(e.consume(x),h):n(x)}}const hw={partial:!0,tokenize:RI},gw={concrete:!0,name:"codeFenced",tokenize:PI};function PI(e,t,n){const s=this,i={partial:!0,tokenize:L};let l=0,c=0,u;return p;function p(P){return m(P)}function m(P){const $=s.events[s.events.length-1];return l=$&&$[1].type==="linePrefix"?$[2].sliceSerialize($[1],!0).length:0,u=P,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),h(P)}function h(P){return P===u?(c++,e.consume(P),h):c<3?n(P):(e.exit("codeFencedFenceSequence"),wt(P)?Dt(e,x,"whitespace")(P):x(P))}function x(P){return P===null||Ze(P)?(e.exit("codeFencedFence"),s.interrupt?t(P):e.check(hw,k,T)(P)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),y(P))}function y(P){return P===null||Ze(P)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),x(P)):wt(P)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Dt(e,b,"whitespace")(P)):P===96&&P===u?n(P):(e.consume(P),y)}function b(P){return P===null||Ze(P)?x(P):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),E(P))}function E(P){return P===null||Ze(P)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),x(P)):P===96&&P===u?n(P):(e.consume(P),E)}function k(P){return e.attempt(i,T,w)(P)}function w(P){return e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),j}function j(P){return l>0&&wt(P)?Dt(e,C,"linePrefix",l+1)(P):C(P)}function C(P){return P===null||Ze(P)?e.check(hw,k,T)(P):(e.enter("codeFlowValue"),N(P))}function N(P){return P===null||Ze(P)?(e.exit("codeFlowValue"),C(P)):(e.consume(P),N)}function T(P){return e.exit("codeFenced"),t(P)}function L(P,$,F){let X=0;return te;function te(K){return P.enter("lineEnding"),P.consume(K),P.exit("lineEnding"),D}function D(K){return P.enter("codeFencedFence"),wt(K)?Dt(P,W,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(K):W(K)}function W(K){return K===u?(P.enter("codeFencedFenceSequence"),Z(K)):F(K)}function Z(K){return K===u?(X++,P.consume(K),Z):X>=c?(P.exit("codeFencedFenceSequence"),wt(K)?Dt(P,M,"whitespace")(K):M(K)):F(K)}function M(K){return K===null||Ze(K)?(P.exit("codeFencedFence"),$(K)):F(K)}}}function RI(e,t,n){const s=this;return i;function i(c){return c===null?n(c):(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),l)}function l(c){return s.parser.lazy[s.now().line]?n(c):t(c)}}const Am={name:"codeIndented",tokenize:DI},AI={partial:!0,tokenize:$I};function DI(e,t,n){const s=this;return i;function i(m){return e.enter("codeIndented"),Dt(e,l,"linePrefix",5)(m)}function l(m){const h=s.events[s.events.length-1];return h&&h[1].type==="linePrefix"&&h[2].sliceSerialize(h[1],!0).length>=4?c(m):n(m)}function c(m){return m===null?p(m):Ze(m)?e.attempt(AI,c,p)(m):(e.enter("codeFlowValue"),u(m))}function u(m){return m===null||Ze(m)?(e.exit("codeFlowValue"),c(m)):(e.consume(m),u)}function p(m){return e.exit("codeIndented"),t(m)}}function $I(e,t,n){const s=this;return i;function i(c){return s.parser.lazy[s.now().line]?n(c):Ze(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i):Dt(e,l,"linePrefix",5)(c)}function l(c){const u=s.events[s.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?t(c):Ze(c)?i(c):n(c)}}const LI={name:"codeText",previous:OI,resolve:II,tokenize:_I};function II(e){let t=e.length-4,n=3,s,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(s=n;++s<t;)if(e[s][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(s=n-1,t++;++s<=t;)i===void 0?s!==t&&e[s][1].type!=="lineEnding"&&(i=s):(s===t||e[s][1].type==="lineEnding")&&(e[i][1].type="codeTextData",s!==i+2&&(e[i][1].end=e[s-1][1].end,e.splice(i+2,s-i-2),t-=s-i-2,s=i+2),i=void 0);return e}function OI(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function _I(e,t,n){let s=0,i,l;return c;function c(x){return e.enter("codeText"),e.enter("codeTextSequence"),u(x)}function u(x){return x===96?(e.consume(x),s++,u):(e.exit("codeTextSequence"),p(x))}function p(x){return x===null?n(x):x===32?(e.enter("space"),e.consume(x),e.exit("space"),p):x===96?(l=e.enter("codeTextSequence"),i=0,h(x)):Ze(x)?(e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),p):(e.enter("codeTextData"),m(x))}function m(x){return x===null||x===32||x===96||Ze(x)?(e.exit("codeTextData"),p(x)):(e.consume(x),m)}function h(x){return x===96?(e.consume(x),i++,h):i===s?(e.exit("codeTextSequence"),e.exit("codeText"),t(x)):(l.type="codeTextData",m(x))}}class MI{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const s=n??Number.POSITIVE_INFINITY;return s<this.left.length?this.left.slice(t,s):t>this.left.length?this.right.slice(this.right.length-s+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-s+this.left.length).reverse())}splice(t,n,s){const i=n||0;this.setCursor(Math.trunc(t));const l=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return s&&hl(this.left,s),l.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),hl(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),hl(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);hl(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);hl(this.left,n.reverse())}}}function hl(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function mS(e){const t={};let n=-1,s,i,l,c,u,p,m;const h=new MI(e);for(;++n<h.length;){for(;n in t;)n=t[n];if(s=h.get(n),n&&s[1].type==="chunkFlow"&&h.get(n-1)[1].type==="listItemPrefix"&&(p=s[1]._tokenizer.events,l=0,l<p.length&&p[l][1].type==="lineEndingBlank"&&(l+=2),l<p.length&&p[l][1].type==="content"))for(;++l<p.length&&p[l][1].type!=="content";)p[l][1].type==="chunkText"&&(p[l][1]._isInFirstContentOfListItem=!0,l++);if(s[0]==="enter")s[1].contentType&&(Object.assign(t,FI(h,n)),n=t[n],m=!0);else if(s[1]._container){for(l=n,i=void 0;l--;)if(c=h.get(l),c[1].type==="lineEnding"||c[1].type==="lineEndingBlank")c[0]==="enter"&&(i&&(h.get(i)[1].type="lineEndingBlank"),c[1].type="lineEnding",i=l);else if(!(c[1].type==="linePrefix"||c[1].type==="listItemIndent"))break;i&&(s[1].end={...h.get(i)[1].start},u=h.slice(i,n),u.unshift(s),h.splice(i,n-i+1,u))}}return ds(e,0,Number.POSITIVE_INFINITY,h.slice(0)),!m}function FI(e,t){const n=e.get(t)[1],s=e.get(t)[2];let i=t-1;const l=[];let c=n._tokenizer;c||(c=s.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(c._contentTypeTextTrailing=!0));const u=c.events,p=[],m={};let h,x,y=-1,b=n,E=0,k=0;const w=[k];for(;b;){for(;e.get(++i)[1]!==b;);l.push(i),b._tokenizer||(h=s.sliceStream(b),b.next||h.push(null),x&&c.defineSkip(b.start),b._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=!0),c.write(h),b._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=void 0)),x=b,b=b.next}for(b=n;++y<u.length;)u[y][0]==="exit"&&u[y-1][0]==="enter"&&u[y][1].type===u[y-1][1].type&&u[y][1].start.line!==u[y][1].end.line&&(k=y+1,w.push(k),b._tokenizer=void 0,b.previous=void 0,b=b.next);for(c.events=[],b?(b._tokenizer=void 0,b.previous=void 0):w.pop(),y=w.length;y--;){const j=u.slice(w[y],w[y+1]),C=l.pop();p.push([C,C+j.length-1]),e.splice(C,2,j)}for(p.reverse(),y=-1;++y<p.length;)m[E+p[y][0]]=E+p[y][1],E+=p[y][1]-p[y][0]-1;return m}const zI={resolve:UI,tokenize:VI},BI={partial:!0,tokenize:HI};function UI(e){return mS(e),e}function VI(e,t){let n;return s;function s(u){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(u)}function i(u){return u===null?l(u):Ze(u)?e.check(BI,c,l)(u):(e.consume(u),i)}function l(u){return e.exit("chunkContent"),e.exit("content"),t(u)}function c(u){return e.consume(u),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function HI(e,t,n){const s=this;return i;function i(c){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),Dt(e,l,"linePrefix")}function l(c){if(c===null||Ze(c))return n(c);const u=s.events[s.events.length-1];return!s.parser.constructs.disable.null.includes("codeIndented")&&u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?t(c):e.interrupt(s.parser.constructs.flow,n,t)(c)}}function hS(e,t,n,s,i,l,c,u,p){const m=p||Number.POSITIVE_INFINITY;let h=0;return x;function x(j){return j===60?(e.enter(s),e.enter(i),e.enter(l),e.consume(j),e.exit(l),y):j===null||j===32||j===41||Th(j)?n(j):(e.enter(s),e.enter(c),e.enter(u),e.enter("chunkString",{contentType:"string"}),k(j))}function y(j){return j===62?(e.enter(l),e.consume(j),e.exit(l),e.exit(i),e.exit(s),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),b(j))}function b(j){return j===62?(e.exit("chunkString"),e.exit(u),y(j)):j===null||j===60||Ze(j)?n(j):(e.consume(j),j===92?E:b)}function E(j){return j===60||j===62||j===92?(e.consume(j),b):b(j)}function k(j){return!h&&(j===null||j===41||rr(j))?(e.exit("chunkString"),e.exit(u),e.exit(c),e.exit(s),t(j)):h<m&&j===40?(e.consume(j),h++,k):j===41?(e.consume(j),h--,k):j===null||j===32||j===40||Th(j)?n(j):(e.consume(j),j===92?w:k)}function w(j){return j===40||j===41||j===92?(e.consume(j),k):k(j)}}function gS(e,t,n,s,i,l){const c=this;let u=0,p;return m;function m(b){return e.enter(s),e.enter(i),e.consume(b),e.exit(i),e.enter(l),h}function h(b){return u>999||b===null||b===91||b===93&&!p||b===94&&!u&&"_hiddenFootnoteSupport"in c.parser.constructs?n(b):b===93?(e.exit(l),e.enter(i),e.consume(b),e.exit(i),e.exit(s),t):Ze(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),h):(e.enter("chunkString",{contentType:"string"}),x(b))}function x(b){return b===null||b===91||b===93||Ze(b)||u++>999?(e.exit("chunkString"),h(b)):(e.consume(b),p||(p=!wt(b)),b===92?y:x)}function y(b){return b===91||b===92||b===93?(e.consume(b),u++,x):x(b)}}function xS(e,t,n,s,i,l){let c;return u;function u(y){return y===34||y===39||y===40?(e.enter(s),e.enter(i),e.consume(y),e.exit(i),c=y===40?41:y,p):n(y)}function p(y){return y===c?(e.enter(i),e.consume(y),e.exit(i),e.exit(s),t):(e.enter(l),m(y))}function m(y){return y===c?(e.exit(l),p(c)):y===null?n(y):Ze(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),Dt(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===c||y===null||Ze(y)?(e.exit("chunkString"),m(y)):(e.consume(y),y===92?x:h)}function x(y){return y===c||y===92?(e.consume(y),h):h(y)}}function Nl(e,t){let n;return s;function s(i){return Ze(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,s):wt(i)?Dt(e,s,n?"linePrefix":"lineSuffix")(i):t(i)}}const WI={name:"definition",tokenize:qI},KI={partial:!0,tokenize:GI};function qI(e,t,n){const s=this;let i;return l;function l(b){return e.enter("definition"),c(b)}function c(b){return gS.call(s,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(b)}function u(b){return i=Xi(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)),b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),p):n(b)}function p(b){return rr(b)?Nl(e,m)(b):m(b)}function m(b){return hS(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function h(b){return e.attempt(KI,x,x)(b)}function x(b){return wt(b)?Dt(e,y,"whitespace")(b):y(b)}function y(b){return b===null||Ze(b)?(e.exit("definition"),s.parser.defined.push(i),t(b)):n(b)}}function GI(e,t,n){return s;function s(u){return rr(u)?Nl(e,i)(u):n(u)}function i(u){return xS(e,l,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function l(u){return wt(u)?Dt(e,c,"whitespace")(u):c(u)}function c(u){return u===null||Ze(u)?t(u):n(u)}}const YI={name:"hardBreakEscape",tokenize:JI};function JI(e,t,n){return s;function s(l){return e.enter("hardBreakEscape"),e.consume(l),i}function i(l){return Ze(l)?(e.exit("hardBreakEscape"),t(l)):n(l)}}const XI={name:"headingAtx",resolve:QI,tokenize:ZI};function QI(e,t){let n=e.length-2,s=3,i,l;return e[s][1].type==="whitespace"&&(s+=2),n-2>s&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(s===n-1||n-4>s&&e[n-2][1].type==="whitespace")&&(n-=s+1===n?2:4),n>s&&(i={type:"atxHeadingText",start:e[s][1].start,end:e[n][1].end},l={type:"chunkText",start:e[s][1].start,end:e[n][1].end,contentType:"text"},ds(e,s,n-s+1,[["enter",i,t],["enter",l,t],["exit",l,t],["exit",i,t]])),e}function ZI(e,t,n){let s=0;return i;function i(h){return e.enter("atxHeading"),l(h)}function l(h){return e.enter("atxHeadingSequence"),c(h)}function c(h){return h===35&&s++<6?(e.consume(h),c):h===null||rr(h)?(e.exit("atxHeadingSequence"),u(h)):n(h)}function u(h){return h===35?(e.enter("atxHeadingSequence"),p(h)):h===null||Ze(h)?(e.exit("atxHeading"),t(h)):wt(h)?Dt(e,u,"whitespace")(h):(e.enter("atxHeadingText"),m(h))}function p(h){return h===35?(e.consume(h),p):(e.exit("atxHeadingSequence"),u(h))}function m(h){return h===null||h===35||rr(h)?(e.exit("atxHeadingText"),u(h)):(e.consume(h),m)}}const eO=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],xw=["pre","script","style","textarea"],tO={concrete:!0,name:"htmlFlow",resolveTo:sO,tokenize:oO},nO={partial:!0,tokenize:aO},rO={partial:!0,tokenize:iO};function sO(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function oO(e,t,n){const s=this;let i,l,c,u,p;return m;function m(I){return h(I)}function h(I){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(I),x}function x(I){return I===33?(e.consume(I),y):I===47?(e.consume(I),l=!0,k):I===63?(e.consume(I),i=3,s.interrupt?t:A):os(I)?(e.consume(I),c=String.fromCharCode(I),w):n(I)}function y(I){return I===45?(e.consume(I),i=2,b):I===91?(e.consume(I),i=5,u=0,E):os(I)?(e.consume(I),i=4,s.interrupt?t:A):n(I)}function b(I){return I===45?(e.consume(I),s.interrupt?t:A):n(I)}function E(I){const ue="CDATA[";return I===ue.charCodeAt(u++)?(e.consume(I),u===ue.length?s.interrupt?t:W:E):n(I)}function k(I){return os(I)?(e.consume(I),c=String.fromCharCode(I),w):n(I)}function w(I){if(I===null||I===47||I===62||rr(I)){const ue=I===47,me=c.toLowerCase();return!ue&&!l&&xw.includes(me)?(i=1,s.interrupt?t(I):W(I)):eO.includes(c.toLowerCase())?(i=6,ue?(e.consume(I),j):s.interrupt?t(I):W(I)):(i=7,s.interrupt&&!s.parser.lazy[s.now().line]?n(I):l?C(I):N(I))}return I===45||xr(I)?(e.consume(I),c+=String.fromCharCode(I),w):n(I)}function j(I){return I===62?(e.consume(I),s.interrupt?t:W):n(I)}function C(I){return wt(I)?(e.consume(I),C):te(I)}function N(I){return I===47?(e.consume(I),te):I===58||I===95||os(I)?(e.consume(I),T):wt(I)?(e.consume(I),N):te(I)}function T(I){return I===45||I===46||I===58||I===95||xr(I)?(e.consume(I),T):L(I)}function L(I){return I===61?(e.consume(I),P):wt(I)?(e.consume(I),L):N(I)}function P(I){return I===null||I===60||I===61||I===62||I===96?n(I):I===34||I===39?(e.consume(I),p=I,$):wt(I)?(e.consume(I),P):F(I)}function $(I){return I===p?(e.consume(I),p=null,X):I===null||Ze(I)?n(I):(e.consume(I),$)}function F(I){return I===null||I===34||I===39||I===47||I===60||I===61||I===62||I===96||rr(I)?L(I):(e.consume(I),F)}function X(I){return I===47||I===62||wt(I)?N(I):n(I)}function te(I){return I===62?(e.consume(I),D):n(I)}function D(I){return I===null||Ze(I)?W(I):wt(I)?(e.consume(I),D):n(I)}function W(I){return I===45&&i===2?(e.consume(I),J):I===60&&i===1?(e.consume(I),le):I===62&&i===4?(e.consume(I),B):I===63&&i===3?(e.consume(I),A):I===93&&i===5?(e.consume(I),G):Ze(I)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(nO,ee,Z)(I)):I===null||Ze(I)?(e.exit("htmlFlowData"),Z(I)):(e.consume(I),W)}function Z(I){return e.check(rO,M,ee)(I)}function M(I){return e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),K}function K(I){return I===null||Ze(I)?Z(I):(e.enter("htmlFlowData"),W(I))}function J(I){return I===45?(e.consume(I),A):W(I)}function le(I){return I===47?(e.consume(I),c="",_):W(I)}function _(I){if(I===62){const ue=c.toLowerCase();return xw.includes(ue)?(e.consume(I),B):W(I)}return os(I)&&c.length<8?(e.consume(I),c+=String.fromCharCode(I),_):W(I)}function G(I){return I===93?(e.consume(I),A):W(I)}function A(I){return I===62?(e.consume(I),B):I===45&&i===2?(e.consume(I),A):W(I)}function B(I){return I===null||Ze(I)?(e.exit("htmlFlowData"),ee(I)):(e.consume(I),B)}function ee(I){return e.exit("htmlFlow"),t(I)}}function iO(e,t,n){const s=this;return i;function i(c){return Ze(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),l):n(c)}function l(c){return s.parser.lazy[s.now().line]?n(c):t(c)}}function aO(e,t,n){return s;function s(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Zd,t,n)}}const lO={name:"htmlText",tokenize:cO};function cO(e,t,n){const s=this;let i,l,c;return u;function u(A){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(A),p}function p(A){return A===33?(e.consume(A),m):A===47?(e.consume(A),L):A===63?(e.consume(A),N):os(A)?(e.consume(A),F):n(A)}function m(A){return A===45?(e.consume(A),h):A===91?(e.consume(A),l=0,E):os(A)?(e.consume(A),C):n(A)}function h(A){return A===45?(e.consume(A),b):n(A)}function x(A){return A===null?n(A):A===45?(e.consume(A),y):Ze(A)?(c=x,le(A)):(e.consume(A),x)}function y(A){return A===45?(e.consume(A),b):x(A)}function b(A){return A===62?J(A):A===45?y(A):x(A)}function E(A){const B="CDATA[";return A===B.charCodeAt(l++)?(e.consume(A),l===B.length?k:E):n(A)}function k(A){return A===null?n(A):A===93?(e.consume(A),w):Ze(A)?(c=k,le(A)):(e.consume(A),k)}function w(A){return A===93?(e.consume(A),j):k(A)}function j(A){return A===62?J(A):A===93?(e.consume(A),j):k(A)}function C(A){return A===null||A===62?J(A):Ze(A)?(c=C,le(A)):(e.consume(A),C)}function N(A){return A===null?n(A):A===63?(e.consume(A),T):Ze(A)?(c=N,le(A)):(e.consume(A),N)}function T(A){return A===62?J(A):N(A)}function L(A){return os(A)?(e.consume(A),P):n(A)}function P(A){return A===45||xr(A)?(e.consume(A),P):$(A)}function $(A){return Ze(A)?(c=$,le(A)):wt(A)?(e.consume(A),$):J(A)}function F(A){return A===45||xr(A)?(e.consume(A),F):A===47||A===62||rr(A)?X(A):n(A)}function X(A){return A===47?(e.consume(A),J):A===58||A===95||os(A)?(e.consume(A),te):Ze(A)?(c=X,le(A)):wt(A)?(e.consume(A),X):J(A)}function te(A){return A===45||A===46||A===58||A===95||xr(A)?(e.consume(A),te):D(A)}function D(A){return A===61?(e.consume(A),W):Ze(A)?(c=D,le(A)):wt(A)?(e.consume(A),D):X(A)}function W(A){return A===null||A===60||A===61||A===62||A===96?n(A):A===34||A===39?(e.consume(A),i=A,Z):Ze(A)?(c=W,le(A)):wt(A)?(e.consume(A),W):(e.consume(A),M)}function Z(A){return A===i?(e.consume(A),i=void 0,K):A===null?n(A):Ze(A)?(c=Z,le(A)):(e.consume(A),Z)}function M(A){return A===null||A===34||A===39||A===60||A===61||A===96?n(A):A===47||A===62||rr(A)?X(A):(e.consume(A),M)}function K(A){return A===47||A===62||rr(A)?X(A):n(A)}function J(A){return A===62?(e.consume(A),e.exit("htmlTextData"),e.exit("htmlText"),t):n(A)}function le(A){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(A),e.exit("lineEnding"),_}function _(A){return wt(A)?Dt(e,G,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):G(A)}function G(A){return e.enter("htmlTextData"),c(A)}}const Zg={name:"labelEnd",resolveAll:pO,resolveTo:mO,tokenize:hO},uO={tokenize:gO},dO={tokenize:xO},fO={tokenize:yO};function pO(e){let t=-1;const n=[];for(;++t<e.length;){const s=e[t][1];if(n.push(e[t]),s.type==="labelImage"||s.type==="labelLink"||s.type==="labelEnd"){const i=s.type==="labelImage"?4:2;s.type="data",t+=i}}return e.length!==n.length&&ds(e,0,e.length,n),e}function mO(e,t){let n=e.length,s=0,i,l,c,u;for(;n--;)if(i=e[n][1],l){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(c){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(l=n,i.type!=="labelLink")){s=2;break}}else i.type==="labelEnd"&&(c=n);const p={type:e[l][1].type==="labelLink"?"link":"image",start:{...e[l][1].start},end:{...e[e.length-1][1].end}},m={type:"label",start:{...e[l][1].start},end:{...e[c][1].end}},h={type:"labelText",start:{...e[l+s+2][1].end},end:{...e[c-2][1].start}};return u=[["enter",p,t],["enter",m,t]],u=Tr(u,e.slice(l+1,l+s+3)),u=Tr(u,[["enter",h,t]]),u=Tr(u,Qg(t.parser.constructs.insideSpan.null,e.slice(l+s+4,c-3),t)),u=Tr(u,[["exit",h,t],e[c-2],e[c-1],["exit",m,t]]),u=Tr(u,e.slice(c+1)),u=Tr(u,[["exit",p,t]]),ds(e,l,e.length,u),e}function hO(e,t,n){const s=this;let i=s.events.length,l,c;for(;i--;)if((s.events[i][1].type==="labelImage"||s.events[i][1].type==="labelLink")&&!s.events[i][1]._balanced){l=s.events[i][1];break}return u;function u(y){return l?l._inactive?x(y):(c=s.parser.defined.includes(Xi(s.sliceSerialize({start:l.end,end:s.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(y),e.exit("labelMarker"),e.exit("labelEnd"),p):n(y)}function p(y){return y===40?e.attempt(uO,h,c?h:x)(y):y===91?e.attempt(dO,h,c?m:x)(y):c?h(y):x(y)}function m(y){return e.attempt(fO,h,x)(y)}function h(y){return t(y)}function x(y){return l._balanced=!0,n(y)}}function gO(e,t,n){return s;function s(x){return e.enter("resource"),e.enter("resourceMarker"),e.consume(x),e.exit("resourceMarker"),i}function i(x){return rr(x)?Nl(e,l)(x):l(x)}function l(x){return x===41?h(x):hS(e,c,u,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(x)}function c(x){return rr(x)?Nl(e,p)(x):h(x)}function u(x){return n(x)}function p(x){return x===34||x===39||x===40?xS(e,m,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(x):h(x)}function m(x){return rr(x)?Nl(e,h)(x):h(x)}function h(x){return x===41?(e.enter("resourceMarker"),e.consume(x),e.exit("resourceMarker"),e.exit("resource"),t):n(x)}}function xO(e,t,n){const s=this;return i;function i(u){return gS.call(s,e,l,c,"reference","referenceMarker","referenceString")(u)}function l(u){return s.parser.defined.includes(Xi(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)))?t(u):n(u)}function c(u){return n(u)}}function yO(e,t,n){return s;function s(l){return e.enter("reference"),e.enter("referenceMarker"),e.consume(l),e.exit("referenceMarker"),i}function i(l){return l===93?(e.enter("referenceMarker"),e.consume(l),e.exit("referenceMarker"),e.exit("reference"),t):n(l)}}const bO={name:"labelStartImage",resolveAll:Zg.resolveAll,tokenize:vO};function vO(e,t,n){const s=this;return i;function i(u){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(u),e.exit("labelImageMarker"),l}function l(u){return u===91?(e.enter("labelMarker"),e.consume(u),e.exit("labelMarker"),e.exit("labelImage"),c):n(u)}function c(u){return u===94&&"_hiddenFootnoteSupport"in s.parser.constructs?n(u):t(u)}}const wO={name:"labelStartLink",resolveAll:Zg.resolveAll,tokenize:jO};function jO(e,t,n){const s=this;return i;function i(c){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(c),e.exit("labelMarker"),e.exit("labelLink"),l}function l(c){return c===94&&"_hiddenFootnoteSupport"in s.parser.constructs?n(c):t(c)}}const Dm={name:"lineEnding",tokenize:kO};function kO(e,t){return n;function n(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Dt(e,t,"linePrefix")}}const Wu={name:"thematicBreak",tokenize:SO};function SO(e,t,n){let s=0,i;return l;function l(m){return e.enter("thematicBreak"),c(m)}function c(m){return i=m,u(m)}function u(m){return m===i?(e.enter("thematicBreakSequence"),p(m)):s>=3&&(m===null||Ze(m))?(e.exit("thematicBreak"),t(m)):n(m)}function p(m){return m===i?(e.consume(m),s++,p):(e.exit("thematicBreakSequence"),wt(m)?Dt(e,u,"whitespace")(m):u(m))}}const er={continuation:{tokenize:TO},exit:RO,name:"list",tokenize:EO},NO={partial:!0,tokenize:AO},CO={partial:!0,tokenize:PO};function EO(e,t,n){const s=this,i=s.events[s.events.length-1];let l=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,c=0;return u;function u(b){const E=s.containerState.type||(b===42||b===43||b===45?"listUnordered":"listOrdered");if(E==="listUnordered"?!s.containerState.marker||b===s.containerState.marker:Ph(b)){if(s.containerState.type||(s.containerState.type=E,e.enter(E,{_container:!0})),E==="listUnordered")return e.enter("listItemPrefix"),b===42||b===45?e.check(Wu,n,m)(b):m(b);if(!s.interrupt||b===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(b)}return n(b)}function p(b){return Ph(b)&&++c<10?(e.consume(b),p):(!s.interrupt||c<2)&&(s.containerState.marker?b===s.containerState.marker:b===41||b===46)?(e.exit("listItemValue"),m(b)):n(b)}function m(b){return e.enter("listItemMarker"),e.consume(b),e.exit("listItemMarker"),s.containerState.marker=s.containerState.marker||b,e.check(Zd,s.interrupt?n:h,e.attempt(NO,y,x))}function h(b){return s.containerState.initialBlankLine=!0,l++,y(b)}function x(b){return wt(b)?(e.enter("listItemPrefixWhitespace"),e.consume(b),e.exit("listItemPrefixWhitespace"),y):n(b)}function y(b){return s.containerState.size=l+s.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(b)}}function TO(e,t,n){const s=this;return s.containerState._closeFlow=void 0,e.check(Zd,i,l);function i(u){return s.containerState.furtherBlankLines=s.containerState.furtherBlankLines||s.containerState.initialBlankLine,Dt(e,t,"listItemIndent",s.containerState.size+1)(u)}function l(u){return s.containerState.furtherBlankLines||!wt(u)?(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,c(u)):(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,e.attempt(CO,t,c)(u))}function c(u){return s.containerState._closeFlow=!0,s.interrupt=void 0,Dt(e,e.attempt(er,t,n),"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u)}}function PO(e,t,n){const s=this;return Dt(e,i,"listItemIndent",s.containerState.size+1);function i(l){const c=s.events[s.events.length-1];return c&&c[1].type==="listItemIndent"&&c[2].sliceSerialize(c[1],!0).length===s.containerState.size?t(l):n(l)}}function RO(e){e.exit(this.containerState.type)}function AO(e,t,n){const s=this;return Dt(e,i,"listItemPrefixWhitespace",s.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(l){const c=s.events[s.events.length-1];return!wt(l)&&c&&c[1].type==="listItemPrefixWhitespace"?t(l):n(l)}}const yw={name:"setextUnderline",resolveTo:DO,tokenize:$O};function DO(e,t){let n=e.length,s,i,l;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){s=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!l&&e[n][1].type==="definition"&&(l=n);const c={type:"setextHeading",start:{...e[s][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",l?(e.splice(i,0,["enter",c,t]),e.splice(l+1,0,["exit",e[s][1],t]),e[s][1].end={...e[l][1].end}):e[s][1]=c,e.push(["exit",c,t]),e}function $O(e,t,n){const s=this;let i;return l;function l(m){let h=s.events.length,x;for(;h--;)if(s.events[h][1].type!=="lineEnding"&&s.events[h][1].type!=="linePrefix"&&s.events[h][1].type!=="content"){x=s.events[h][1].type==="paragraph";break}return!s.parser.lazy[s.now().line]&&(s.interrupt||x)?(e.enter("setextHeadingLine"),i=m,c(m)):n(m)}function c(m){return e.enter("setextHeadingLineSequence"),u(m)}function u(m){return m===i?(e.consume(m),u):(e.exit("setextHeadingLineSequence"),wt(m)?Dt(e,p,"lineSuffix")(m):p(m))}function p(m){return m===null||Ze(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const LO={tokenize:IO};function IO(e){const t=this,n=e.attempt(Zd,s,e.attempt(this.parser.constructs.flowInitial,i,Dt(e,e.attempt(this.parser.constructs.flow,i,e.attempt(zI,i)),"linePrefix")));return n;function s(l){if(l===null){e.consume(l);return}return e.enter("lineEndingBlank"),e.consume(l),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const OO={resolveAll:bS()},_O=yS("string"),MO=yS("text");function yS(e){return{resolveAll:bS(e==="text"?FO:void 0),tokenize:t};function t(n){const s=this,i=this.parser.constructs[e],l=n.attempt(i,c,u);return c;function c(h){return m(h)?l(h):u(h)}function u(h){if(h===null){n.consume(h);return}return n.enter("data"),n.consume(h),p}function p(h){return m(h)?(n.exit("data"),l(h)):(n.consume(h),p)}function m(h){if(h===null)return!0;const x=i[h];let y=-1;if(x)for(;++y<x.length;){const b=x[y];if(!b.previous||b.previous.call(s,s.previous))return!0}return!1}}}function bS(e){return t;function t(n,s){let i=-1,l;for(;++i<=n.length;)l===void 0?n[i]&&n[i][1].type==="data"&&(l=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==l+2&&(n[l][1].end=n[i-1][1].end,n.splice(l+2,i-l-2),i=l+2),l=void 0);return e?e(n,s):n}}function FO(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const s=e[n-1][1],i=t.sliceStream(s);let l=i.length,c=-1,u=0,p;for(;l--;){const m=i[l];if(typeof m=="string"){for(c=m.length;m.charCodeAt(c-1)===32;)u++,c--;if(c)break;c=-1}else if(m===-2)p=!0,u++;else if(m!==-1){l++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(u=0),u){const m={type:n===e.length||p||u<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:l?c:s.start._bufferIndex+c,_index:s.start._index+l,line:s.end.line,column:s.end.column-u,offset:s.end.offset-u},end:{...s.end}};s.end={...m.start},s.start.offset===s.end.offset?Object.assign(s,m):(e.splice(n,0,["enter",m,t],["exit",m,t]),n+=2)}n++}return e}const zO={42:er,43:er,45:er,48:er,49:er,50:er,51:er,52:er,53:er,54:er,55:er,56:er,57:er,62:dS},BO={91:WI},UO={[-2]:Am,[-1]:Am,32:Am},VO={35:XI,42:Wu,45:[yw,Wu],60:tO,61:yw,95:Wu,96:gw,126:gw},HO={38:pS,92:fS},WO={[-5]:Dm,[-4]:Dm,[-3]:Dm,33:bO,38:pS,42:Rh,60:[wI,lO],91:wO,92:[YI,fS],93:Zg,95:Rh,96:LI},KO={null:[Rh,OO]},qO={null:[42,95]},GO={null:[]},YO=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:qO,contentInitial:BO,disable:GO,document:zO,flow:VO,flowInitial:UO,insideSpan:KO,string:HO,text:WO},Symbol.toStringTag,{value:"Module"}));function JO(e,t,n){let s={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const i={},l=[];let c=[],u=[];const p={attempt:$(L),check:$(P),consume:C,enter:N,exit:T,interrupt:$(P,{interrupt:!0})},m={code:null,containerState:{},defineSkip:k,events:[],now:E,parser:e,previous:null,sliceSerialize:y,sliceStream:b,write:x};let h=t.tokenize.call(m,p);return t.resolveAll&&l.push(t),m;function x(D){return c=Tr(c,D),w(),c[c.length-1]!==null?[]:(F(t,0),m.events=Qg(l,m.events,m),m.events)}function y(D,W){return QO(b(D),W)}function b(D){return XO(c,D)}function E(){const{_bufferIndex:D,_index:W,line:Z,column:M,offset:K}=s;return{_bufferIndex:D,_index:W,line:Z,column:M,offset:K}}function k(D){i[D.line]=D.column,te()}function w(){let D;for(;s._index<c.length;){const W=c[s._index];if(typeof W=="string")for(D=s._index,s._bufferIndex<0&&(s._bufferIndex=0);s._index===D&&s._bufferIndex<W.length;)j(W.charCodeAt(s._bufferIndex));else j(W)}}function j(D){h=h(D)}function C(D){Ze(D)?(s.line++,s.column=1,s.offset+=D===-3?2:1,te()):D!==-1&&(s.column++,s.offset++),s._bufferIndex<0?s._index++:(s._bufferIndex++,s._bufferIndex===c[s._index].length&&(s._bufferIndex=-1,s._index++)),m.previous=D}function N(D,W){const Z=W||{};return Z.type=D,Z.start=E(),m.events.push(["enter",Z,m]),u.push(Z),Z}function T(D){const W=u.pop();return W.end=E(),m.events.push(["exit",W,m]),W}function L(D,W){F(D,W.from)}function P(D,W){W.restore()}function $(D,W){return Z;function Z(M,K,J){let le,_,G,A;return Array.isArray(M)?ee(M):"tokenize"in M?ee([M]):B(M);function B(U){return se;function se(de){const ye=de!==null&&U[de],je=de!==null&&U.null,fe=[...Array.isArray(ye)?ye:ye?[ye]:[],...Array.isArray(je)?je:je?[je]:[]];return ee(fe)(de)}}function ee(U){return le=U,_=0,U.length===0?J:I(U[_])}function I(U){return se;function se(de){return A=X(),G=U,U.partial||(m.currentConstruct=U),U.name&&m.parser.constructs.disable.null.includes(U.name)?me():U.tokenize.call(W?Object.assign(Object.create(m),W):m,p,ue,me)(de)}}function ue(U){return D(G,A),K}function me(U){return A.restore(),++_<le.length?I(le[_]):J}}}function F(D,W){D.resolveAll&&!l.includes(D)&&l.push(D),D.resolve&&ds(m.events,W,m.events.length-W,D.resolve(m.events.slice(W),m)),D.resolveTo&&(m.events=D.resolveTo(m.events,m))}function X(){const D=E(),W=m.previous,Z=m.currentConstruct,M=m.events.length,K=Array.from(u);return{from:M,restore:J};function J(){s=D,m.previous=W,m.currentConstruct=Z,m.events.length=M,u=K,te()}}function te(){s.line in i&&s.column<2&&(s.column=i[s.line],s.offset+=i[s.line]-1)}}function XO(e,t){const n=t.start._index,s=t.start._bufferIndex,i=t.end._index,l=t.end._bufferIndex;let c;if(n===i)c=[e[n].slice(s,l)];else{if(c=e.slice(n,i),s>-1){const u=c[0];typeof u=="string"?c[0]=u.slice(s):c.shift()}l>0&&c.push(e[i].slice(0,l))}return c}function QO(e,t){let n=-1;const s=[];let i;for(;++n<e.length;){const l=e[n];let c;if(typeof l=="string")c=l;else switch(l){case-5:{c="\r";break}case-4:{c=`
|
|
517
|
+
`;break}case-3:{c=`\r
|
|
518
|
+
`;break}case-2:{c=t?" ":" ";break}case-1:{if(!t&&i)continue;c=" ";break}default:c=String.fromCharCode(l)}i=l===-2,s.push(c)}return s.join("")}function ZO(e){const s={constructs:iI([YO,...(e||{}).extensions||[]]),content:i(mI),defined:[],document:i(gI),flow:i(LO),lazy:{},string:i(_O),text:i(MO)};return s;function i(l){return c;function c(u){return JO(s,l,u)}}}function e_(e){for(;!mS(e););return e}const bw=/[\0\t\n\r]/g;function t_(){let e=1,t="",n=!0,s;return i;function i(l,c,u){const p=[];let m,h,x,y,b;for(l=t+(typeof l=="string"?l.toString():new TextDecoder(c||void 0).decode(l)),x=0,t="",n&&(l.charCodeAt(0)===65279&&x++,n=void 0);x<l.length;){if(bw.lastIndex=x,m=bw.exec(l),y=m&&m.index!==void 0?m.index:l.length,b=l.charCodeAt(y),!m){t=l.slice(x);break}if(b===10&&x===y&&s)p.push(-3),s=void 0;else switch(s&&(p.push(-5),s=void 0),x<y&&(p.push(l.slice(x,y)),e+=y-x),b){case 0:{p.push(65533),e++;break}case 9:{for(h=Math.ceil(e/4)*4,p.push(-2);e++<h;)p.push(-1);break}case 10:{p.push(-4),e=1;break}default:s=!0,e=1}x=y+1}return u&&(s&&p.push(-5),t&&p.push(t),p.push(null)),p}}const n_=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function r_(e){return e.replace(n_,s_)}function s_(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),l=i===120||i===88;return uS(n.slice(l?2:1),l?16:10)}return Xg(n)||e}const vS={}.hasOwnProperty;function o_(e,t,n){return t&&typeof t=="object"&&(n=t,t=void 0),i_(n)(e_(ZO(n).document().write(t_()(e,t,!0))))}function i_(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(Ie),autolinkProtocol:X,autolinkEmail:X,atxHeading:l(O),blockQuote:l(je),characterEscape:X,characterReference:X,codeFenced:l(fe),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:l(fe,c),codeText:l(Ve,c),codeTextData:X,data:X,codeFlowValue:X,definition:l(pe),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:l(Re),hardBreakEscape:l(H),hardBreakTrailing:l(H),htmlFlow:l(Q,c),htmlFlowData:X,htmlText:l(Q,c),htmlTextData:X,image:l(ge),label:c,link:l(Ie),listItem:l(et),listItemValue:y,listOrdered:l(Te,x),listUnordered:l(Te),paragraph:l(He),reference:I,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:l(O),strong:l(jt),thematicBreak:l(st)},exit:{atxHeading:p(),atxHeadingSequence:L,autolink:p(),autolinkEmail:ye,autolinkProtocol:de,blockQuote:p(),characterEscapeValue:te,characterReferenceMarkerHexadecimal:me,characterReferenceMarkerNumeric:me,characterReferenceValue:U,characterReference:se,codeFenced:p(w),codeFencedFence:k,codeFencedFenceInfo:b,codeFencedFenceMeta:E,codeFlowValue:te,codeIndented:p(j),codeText:p(K),codeTextData:te,data:te,definition:p(),definitionDestinationString:T,definitionLabelString:C,definitionTitleString:N,emphasis:p(),hardBreakEscape:p(W),hardBreakTrailing:p(W),htmlFlow:p(Z),htmlFlowData:te,htmlText:p(M),htmlTextData:te,image:p(le),label:G,labelText:_,lineEnding:D,link:p(J),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:ue,resourceDestinationString:A,resourceTitleString:B,resource:ee,setextHeading:p(F),setextHeadingLineSequence:$,setextHeadingText:P,strong:p(),thematicBreak:p()}};wS(t,(e||{}).mdastExtensions||[]);const n={};return s;function s(ae){let be={type:"root",children:[]};const $e={stack:[be],tokenStack:[],config:t,enter:u,exit:m,buffer:c,resume:h,data:n},We=[];let Xe=-1;for(;++Xe<ae.length;)if(ae[Xe][1].type==="listOrdered"||ae[Xe][1].type==="listUnordered")if(ae[Xe][0]==="enter")We.push(Xe);else{const it=We.pop();Xe=i(ae,it,Xe)}for(Xe=-1;++Xe<ae.length;){const it=t[ae[Xe][0]];vS.call(it,ae[Xe][1].type)&&it[ae[Xe][1].type].call(Object.assign({sliceSerialize:ae[Xe][2].sliceSerialize},$e),ae[Xe][1])}if($e.tokenStack.length>0){const it=$e.tokenStack[$e.tokenStack.length-1];(it[1]||vw).call($e,void 0,it[0])}for(be.position={start:Qs(ae.length>0?ae[0][1].start:{line:1,column:1,offset:0}),end:Qs(ae.length>0?ae[ae.length-2][1].end:{line:1,column:1,offset:0})},Xe=-1;++Xe<t.transforms.length;)be=t.transforms[Xe](be)||be;return be}function i(ae,be,$e){let We=be-1,Xe=-1,it=!1,Wt,xt,tn,St;for(;++We<=$e;){const yt=ae[We];switch(yt[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{yt[0]==="enter"?Xe++:Xe--,St=void 0;break}case"lineEndingBlank":{yt[0]==="enter"&&(Wt&&!St&&!Xe&&!tn&&(tn=We),St=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:St=void 0}if(!Xe&&yt[0]==="enter"&&yt[1].type==="listItemPrefix"||Xe===-1&&yt[0]==="exit"&&(yt[1].type==="listUnordered"||yt[1].type==="listOrdered")){if(Wt){let kt=We;for(xt=void 0;kt--;){const Tt=ae[kt];if(Tt[1].type==="lineEnding"||Tt[1].type==="lineEndingBlank"){if(Tt[0]==="exit")continue;xt&&(ae[xt][1].type="lineEndingBlank",it=!0),Tt[1].type="lineEnding",xt=kt}else if(!(Tt[1].type==="linePrefix"||Tt[1].type==="blockQuotePrefix"||Tt[1].type==="blockQuotePrefixWhitespace"||Tt[1].type==="blockQuoteMarker"||Tt[1].type==="listItemIndent"))break}tn&&(!xt||tn<xt)&&(Wt._spread=!0),Wt.end=Object.assign({},xt?ae[xt][1].start:yt[1].end),ae.splice(xt||We,0,["exit",Wt,yt[2]]),We++,$e++}if(yt[1].type==="listItemPrefix"){const kt={type:"listItem",_spread:!1,start:Object.assign({},yt[1].start),end:void 0};Wt=kt,ae.splice(We,0,["enter",kt,yt[2]]),We++,$e++,tn=void 0,St=!0}}}return ae[be][1]._spread=it,$e}function l(ae,be){return $e;function $e(We){u.call(this,ae(We),We),be&&be.call(this,We)}}function c(){this.stack.push({type:"fragment",children:[]})}function u(ae,be,$e){this.stack[this.stack.length-1].children.push(ae),this.stack.push(ae),this.tokenStack.push([be,$e||void 0]),ae.position={start:Qs(be.start),end:void 0}}function p(ae){return be;function be($e){ae&&ae.call(this,$e),m.call(this,$e)}}function m(ae,be){const $e=this.stack.pop(),We=this.tokenStack.pop();if(We)We[0].type!==ae.type&&(be?be.call(this,ae,We[0]):(We[1]||vw).call(this,ae,We[0]));else throw new Error("Cannot close `"+ae.type+"` ("+Sl({start:ae.start,end:ae.end})+"): it’s not open");$e.position.end=Qs(ae.end)}function h(){return sI(this.stack.pop())}function x(){this.data.expectingFirstListItemValue=!0}function y(ae){if(this.data.expectingFirstListItemValue){const be=this.stack[this.stack.length-2];be.start=Number.parseInt(this.sliceSerialize(ae),10),this.data.expectingFirstListItemValue=void 0}}function b(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.lang=ae}function E(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.meta=ae}function k(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.value=ae.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function j(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.value=ae.replace(/(\r?\n|\r)$/g,"")}function C(ae){const be=this.resume(),$e=this.stack[this.stack.length-1];$e.label=be,$e.identifier=Xi(this.sliceSerialize(ae)).toLowerCase()}function N(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.title=ae}function T(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.url=ae}function L(ae){const be=this.stack[this.stack.length-1];if(!be.depth){const $e=this.sliceSerialize(ae).length;be.depth=$e}}function P(){this.data.setextHeadingSlurpLineEnding=!0}function $(ae){const be=this.stack[this.stack.length-1];be.depth=this.sliceSerialize(ae).codePointAt(0)===61?1:2}function F(){this.data.setextHeadingSlurpLineEnding=void 0}function X(ae){const $e=this.stack[this.stack.length-1].children;let We=$e[$e.length-1];(!We||We.type!=="text")&&(We=Ht(),We.position={start:Qs(ae.start),end:void 0},$e.push(We)),this.stack.push(We)}function te(ae){const be=this.stack.pop();be.value+=this.sliceSerialize(ae),be.position.end=Qs(ae.end)}function D(ae){const be=this.stack[this.stack.length-1];if(this.data.atHardBreak){const $e=be.children[be.children.length-1];$e.position.end=Qs(ae.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(be.type)&&(X.call(this,ae),te.call(this,ae))}function W(){this.data.atHardBreak=!0}function Z(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.value=ae}function M(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.value=ae}function K(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.value=ae}function J(){const ae=this.stack[this.stack.length-1];if(this.data.inReference){const be=this.data.referenceType||"shortcut";ae.type+="Reference",ae.referenceType=be,delete ae.url,delete ae.title}else delete ae.identifier,delete ae.label;this.data.referenceType=void 0}function le(){const ae=this.stack[this.stack.length-1];if(this.data.inReference){const be=this.data.referenceType||"shortcut";ae.type+="Reference",ae.referenceType=be,delete ae.url,delete ae.title}else delete ae.identifier,delete ae.label;this.data.referenceType=void 0}function _(ae){const be=this.sliceSerialize(ae),$e=this.stack[this.stack.length-2];$e.label=r_(be),$e.identifier=Xi(be).toLowerCase()}function G(){const ae=this.stack[this.stack.length-1],be=this.resume(),$e=this.stack[this.stack.length-1];if(this.data.inReference=!0,$e.type==="link"){const We=ae.children;$e.children=We}else $e.alt=be}function A(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.url=ae}function B(){const ae=this.resume(),be=this.stack[this.stack.length-1];be.title=ae}function ee(){this.data.inReference=void 0}function I(){this.data.referenceType="collapsed"}function ue(ae){const be=this.resume(),$e=this.stack[this.stack.length-1];$e.label=be,$e.identifier=Xi(this.sliceSerialize(ae)).toLowerCase(),this.data.referenceType="full"}function me(ae){this.data.characterReferenceType=ae.type}function U(ae){const be=this.sliceSerialize(ae),$e=this.data.characterReferenceType;let We;$e?(We=uS(be,$e==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):We=Xg(be);const Xe=this.stack[this.stack.length-1];Xe.value+=We}function se(ae){const be=this.stack.pop();be.position.end=Qs(ae.end)}function de(ae){te.call(this,ae);const be=this.stack[this.stack.length-1];be.url=this.sliceSerialize(ae)}function ye(ae){te.call(this,ae);const be=this.stack[this.stack.length-1];be.url="mailto:"+this.sliceSerialize(ae)}function je(){return{type:"blockquote",children:[]}}function fe(){return{type:"code",lang:null,meta:null,value:""}}function Ve(){return{type:"inlineCode",value:""}}function pe(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Re(){return{type:"emphasis",children:[]}}function O(){return{type:"heading",depth:0,children:[]}}function H(){return{type:"break"}}function Q(){return{type:"html",value:""}}function ge(){return{type:"image",title:null,url:"",alt:null}}function Ie(){return{type:"link",title:null,url:"",children:[]}}function Te(ae){return{type:"list",ordered:ae.type==="listOrdered",start:null,spread:ae._spread,children:[]}}function et(ae){return{type:"listItem",spread:ae._spread,checked:null,children:[]}}function He(){return{type:"paragraph",children:[]}}function jt(){return{type:"strong",children:[]}}function Ht(){return{type:"text",value:""}}function st(){return{type:"thematicBreak"}}}function Qs(e){return{line:e.line,column:e.column,offset:e.offset}}function wS(e,t){let n=-1;for(;++n<t.length;){const s=t[n];Array.isArray(s)?wS(e,s):a_(e,s)}}function a_(e,t){let n;for(n in t)if(vS.call(t,n))switch(n){case"canContainEols":{const s=t[n];s&&e[n].push(...s);break}case"transforms":{const s=t[n];s&&e[n].push(...s);break}case"enter":case"exit":{const s=t[n];s&&Object.assign(e[n],s);break}}}function vw(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Sl({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Sl({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Sl({start:t.start,end:t.end})+") is still open")}function l_(e){const t=this;t.parser=n;function n(s){return o_(s,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function c_(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function u_(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
|
|
519
|
+
`}]}function d_(e,t){const n=t.value?t.value+`
|
|
520
|
+
`:"",s={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(s.className=["language-"+i[0]]);let l={type:"element",tagName:"code",properties:s,children:[{type:"text",value:n}]};return t.meta&&(l.data={meta:t.meta}),e.patch(t,l),l=e.applyData(t,l),l={type:"element",tagName:"pre",properties:{},children:[l]},e.patch(t,l),l}function f_(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function p_(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function m_(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",s=String(t.identifier).toUpperCase(),i=ha(s.toLowerCase()),l=e.footnoteOrder.indexOf(s);let c,u=e.footnoteCounts.get(s);u===void 0?(u=0,e.footnoteOrder.push(s),c=e.footnoteOrder.length):c=l+1,u+=1,e.footnoteCounts.set(s,u);const p={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(c)}]};e.patch(t,p);const m={type:"element",tagName:"sup",properties:{},children:[p]};return e.patch(t,m),e.applyData(t,m)}function h_(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function g_(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function jS(e,t){const n=t.referenceType;let s="]";if(n==="collapsed"?s+="[]":n==="full"&&(s+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+s}];const i=e.all(t),l=i[0];l&&l.type==="text"?l.value="["+l.value:i.unshift({type:"text",value:"["});const c=i[i.length-1];return c&&c.type==="text"?c.value+=s:i.push({type:"text",value:s}),i}function x_(e,t){const n=String(t.identifier).toUpperCase(),s=e.definitionById.get(n);if(!s)return jS(e,t);const i={src:ha(s.url||""),alt:t.alt};s.title!==null&&s.title!==void 0&&(i.title=s.title);const l={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,l),e.applyData(t,l)}function y_(e,t){const n={src:ha(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const s={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,s),e.applyData(t,s)}function b_(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const s={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,s),e.applyData(t,s)}function v_(e,t){const n=String(t.identifier).toUpperCase(),s=e.definitionById.get(n);if(!s)return jS(e,t);const i={href:ha(s.url||"")};s.title!==null&&s.title!==void 0&&(i.title=s.title);const l={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,l),e.applyData(t,l)}function w_(e,t){const n={href:ha(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const s={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function j_(e,t,n){const s=e.all(t),i=n?k_(n):kS(t),l={},c=[];if(typeof t.checked=="boolean"){const h=s[0];let x;h&&h.type==="element"&&h.tagName==="p"?x=h:(x={type:"element",tagName:"p",properties:{},children:[]},s.unshift(x)),x.children.length>0&&x.children.unshift({type:"text",value:" "}),x.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let u=-1;for(;++u<s.length;){const h=s[u];(i||u!==0||h.type!=="element"||h.tagName!=="p")&&c.push({type:"text",value:`
|
|
521
|
+
`}),h.type==="element"&&h.tagName==="p"&&!i?c.push(...h.children):c.push(h)}const p=s[s.length-1];p&&(i||p.type!=="element"||p.tagName!=="p")&&c.push({type:"text",value:`
|
|
522
|
+
`});const m={type:"element",tagName:"li",properties:l,children:c};return e.patch(t,m),e.applyData(t,m)}function k_(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let s=-1;for(;!t&&++s<n.length;)t=kS(n[s])}return t}function kS(e){const t=e.spread;return t??e.children.length>1}function S_(e,t){const n={},s=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i<s.length;){const c=s[i];if(c.type==="element"&&c.tagName==="li"&&c.properties&&Array.isArray(c.properties.className)&&c.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const l={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(s,!0)};return e.patch(t,l),e.applyData(t,l)}function N_(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function C_(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function E_(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function T_(e,t){const n=e.all(t),s=n.shift(),i=[];if(s){const c={type:"element",tagName:"thead",properties:{},children:e.wrap([s],!0)};e.patch(t.children[0],c),i.push(c)}if(n.length>0){const c={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},u=qg(t.children[1]),p=rS(t.children[t.children.length-1]);u&&p&&(c.position={start:u,end:p}),i.push(c)}const l={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,l),e.applyData(t,l)}function P_(e,t,n){const s=n?n.children:void 0,l=(s?s.indexOf(t):1)===0?"th":"td",c=n&&n.type==="table"?n.align:void 0,u=c?c.length:t.children.length;let p=-1;const m=[];for(;++p<u;){const x=t.children[p],y={},b=c?c[p]:void 0;b&&(y.align=b);let E={type:"element",tagName:l,properties:y,children:[]};x&&(E.children=e.all(x),e.patch(x,E),E=e.applyData(x,E)),m.push(E)}const h={type:"element",tagName:"tr",properties:{},children:e.wrap(m,!0)};return e.patch(t,h),e.applyData(t,h)}function R_(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const ww=9,jw=32;function A_(e){const t=String(e),n=/\r?\n|\r/g;let s=n.exec(t),i=0;const l=[];for(;s;)l.push(kw(t.slice(i,s.index),i>0,!0),s[0]),i=s.index+s[0].length,s=n.exec(t);return l.push(kw(t.slice(i),i>0,!1)),l.join("")}function kw(e,t,n){let s=0,i=e.length;if(t){let l=e.codePointAt(s);for(;l===ww||l===jw;)s++,l=e.codePointAt(s)}if(n){let l=e.codePointAt(i-1);for(;l===ww||l===jw;)i--,l=e.codePointAt(i-1)}return i>s?e.slice(s,i):""}function D_(e,t){const n={type:"text",value:A_(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function $_(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const L_={blockquote:c_,break:u_,code:d_,delete:f_,emphasis:p_,footnoteReference:m_,heading:h_,html:g_,imageReference:x_,image:y_,inlineCode:b_,linkReference:v_,link:w_,listItem:j_,list:S_,paragraph:N_,root:C_,strong:E_,table:T_,tableCell:R_,tableRow:P_,text:D_,thematicBreak:$_,toml:Cu,yaml:Cu,definition:Cu,footnoteDefinition:Cu};function Cu(){}const SS=-1,ef=0,Cl=1,pd=2,ex=3,tx=4,nx=5,rx=6,NS=7,CS=8,Sw=typeof self=="object"?self:globalThis,I_=(e,t)=>{const n=(i,l)=>(e.set(l,i),i),s=i=>{if(e.has(i))return e.get(i);const[l,c]=t[i];switch(l){case ef:case SS:return n(c,i);case Cl:{const u=n([],i);for(const p of c)u.push(s(p));return u}case pd:{const u=n({},i);for(const[p,m]of c)u[s(p)]=s(m);return u}case ex:return n(new Date(c),i);case tx:{const{source:u,flags:p}=c;return n(new RegExp(u,p),i)}case nx:{const u=n(new Map,i);for(const[p,m]of c)u.set(s(p),s(m));return u}case rx:{const u=n(new Set,i);for(const p of c)u.add(s(p));return u}case NS:{const{name:u,message:p}=c;return n(new Sw[u](p),i)}case CS:return n(BigInt(c),i);case"BigInt":return n(Object(BigInt(c)),i);case"ArrayBuffer":return n(new Uint8Array(c).buffer,c);case"DataView":{const{buffer:u}=new Uint8Array(c);return n(new DataView(u),c)}}return n(new Sw[l](c),i)};return s},Nw=e=>I_(new Map,e)(0),Di="",{toString:O_}={},{keys:__}=Object,gl=e=>{const t=typeof e;if(t!=="object"||!e)return[ef,t];const n=O_.call(e).slice(8,-1);switch(n){case"Array":return[Cl,Di];case"Object":return[pd,Di];case"Date":return[ex,Di];case"RegExp":return[tx,Di];case"Map":return[nx,Di];case"Set":return[rx,Di];case"DataView":return[Cl,n]}return n.includes("Array")?[Cl,n]:n.includes("Error")?[NS,n]:[pd,n]},Eu=([e,t])=>e===ef&&(t==="function"||t==="symbol"),M_=(e,t,n,s)=>{const i=(c,u)=>{const p=s.push(c)-1;return n.set(u,p),p},l=c=>{if(n.has(c))return n.get(c);let[u,p]=gl(c);switch(u){case ef:{let h=c;switch(p){case"bigint":u=CS,h=c.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+p);h=null;break;case"undefined":return i([SS],c)}return i([u,h],c)}case Cl:{if(p){let y=c;return p==="DataView"?y=new Uint8Array(c.buffer):p==="ArrayBuffer"&&(y=new Uint8Array(c)),i([p,[...y]],c)}const h=[],x=i([u,h],c);for(const y of c)h.push(l(y));return x}case pd:{if(p)switch(p){case"BigInt":return i([p,c.toString()],c);case"Boolean":case"Number":case"String":return i([p,c.valueOf()],c)}if(t&&"toJSON"in c)return l(c.toJSON());const h=[],x=i([u,h],c);for(const y of __(c))(e||!Eu(gl(c[y])))&&h.push([l(y),l(c[y])]);return x}case ex:return i([u,c.toISOString()],c);case tx:{const{source:h,flags:x}=c;return i([u,{source:h,flags:x}],c)}case nx:{const h=[],x=i([u,h],c);for(const[y,b]of c)(e||!(Eu(gl(y))||Eu(gl(b))))&&h.push([l(y),l(b)]);return x}case rx:{const h=[],x=i([u,h],c);for(const y of c)(e||!Eu(gl(y)))&&h.push(l(y));return x}}const{message:m}=c;return i([u,{name:p,message:m}],c)};return l},Cw=(e,{json:t,lossy:n}={})=>{const s=[];return M_(!(t||n),!!t,new Map,s)(e),s},md=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Nw(Cw(e,t)):structuredClone(e):(e,t)=>Nw(Cw(e,t));function F_(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function z_(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function B_(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||F_,s=e.options.footnoteBackLabel||z_,i=e.options.footnoteLabel||"Footnotes",l=e.options.footnoteLabelTagName||"h2",c=e.options.footnoteLabelProperties||{className:["sr-only"]},u=[];let p=-1;for(;++p<e.footnoteOrder.length;){const m=e.footnoteById.get(e.footnoteOrder[p]);if(!m)continue;const h=e.all(m),x=String(m.identifier).toUpperCase(),y=ha(x.toLowerCase());let b=0;const E=[],k=e.footnoteCounts.get(x);for(;k!==void 0&&++b<=k;){E.length>0&&E.push({type:"text",value:" "});let C=typeof n=="string"?n:n(p,b);typeof C=="string"&&(C={type:"text",value:C}),E.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+y+(b>1?"-"+b:""),dataFootnoteBackref:"",ariaLabel:typeof s=="string"?s:s(p,b),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}const w=h[h.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const C=w.children[w.children.length-1];C&&C.type==="text"?C.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...E)}else h.push(...E);const j={type:"element",tagName:"li",properties:{id:t+"fn-"+y},children:e.wrap(h,!0)};e.patch(m,j),u.push(j)}if(u.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:l,properties:{...md(c),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:`
|
|
523
|
+
`},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:`
|
|
524
|
+
`}]}}const ES=(function(e){if(e==null)return W_;if(typeof e=="function")return tf(e);if(typeof e=="object")return Array.isArray(e)?U_(e):V_(e);if(typeof e=="string")return H_(e);throw new Error("Expected function, string, or object as test")});function U_(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=ES(e[n]);return tf(s);function s(...i){let l=-1;for(;++l<t.length;)if(t[l].apply(this,i))return!0;return!1}}function V_(e){const t=e;return tf(n);function n(s){const i=s;let l;for(l in e)if(i[l]!==t[l])return!1;return!0}}function H_(e){return tf(t);function t(n){return n&&n.type===e}}function tf(e){return t;function t(n,s,i){return!!(K_(n)&&e.call(this,n,typeof s=="number"?s:void 0,i||void 0))}}function W_(){return!0}function K_(e){return e!==null&&typeof e=="object"&&"type"in e}const TS=[],q_=!0,Ew=!1,G_="skip";function Y_(e,t,n,s){let i;typeof t=="function"&&typeof n!="function"?(s=n,n=t):i=t;const l=ES(i),c=s?-1:1;u(e,void 0,[])();function u(p,m,h){const x=p&&typeof p=="object"?p:{};if(typeof x.type=="string"){const b=typeof x.tagName=="string"?x.tagName:typeof x.name=="string"?x.name:void 0;Object.defineProperty(y,"name",{value:"node ("+(p.type+(b?"<"+b+">":""))+")"})}return y;function y(){let b=TS,E,k,w;if((!t||l(p,m,h[h.length-1]||void 0))&&(b=J_(n(p,h)),b[0]===Ew))return b;if("children"in p&&p.children){const j=p;if(j.children&&b[0]!==G_)for(k=(s?j.children.length:-1)+c,w=h.concat(j);k>-1&&k<j.children.length;){const C=j.children[k];if(E=u(C,k,w)(),E[0]===Ew)return E;k=typeof E[1]=="number"?E[1]:k+c}}return b}}}function J_(e){return Array.isArray(e)?e:typeof e=="number"?[q_,e]:e==null?TS:[e]}function PS(e,t,n,s){let i,l,c;typeof t=="function"&&typeof n!="function"?(l=void 0,c=t,i=n):(l=t,c=n,i=s),Y_(e,l,u,i);function u(p,m){const h=m[m.length-1],x=h?h.children.indexOf(p):void 0;return c(p,x,h)}}const Ah={}.hasOwnProperty,X_={};function Q_(e,t){const n=t||X_,s=new Map,i=new Map,l=new Map,c={...L_,...n.handlers},u={all:m,applyData:eM,definitionById:s,footnoteById:i,footnoteCounts:l,footnoteOrder:[],handlers:c,one:p,options:n,patch:Z_,wrap:nM};return PS(e,function(h){if(h.type==="definition"||h.type==="footnoteDefinition"){const x=h.type==="definition"?s:i,y=String(h.identifier).toUpperCase();x.has(y)||x.set(y,h)}}),u;function p(h,x){const y=h.type,b=u.handlers[y];if(Ah.call(u.handlers,y)&&b)return b(u,h,x);if(u.options.passThrough&&u.options.passThrough.includes(y)){if("children"in h){const{children:k,...w}=h,j=md(w);return j.children=u.all(h),j}return md(h)}return(u.options.unknownHandler||tM)(u,h,x)}function m(h){const x=[];if("children"in h){const y=h.children;let b=-1;for(;++b<y.length;){const E=u.one(y[b],h);if(E){if(b&&y[b-1].type==="break"&&(!Array.isArray(E)&&E.type==="text"&&(E.value=Tw(E.value)),!Array.isArray(E)&&E.type==="element")){const k=E.children[0];k&&k.type==="text"&&(k.value=Tw(k.value))}Array.isArray(E)?x.push(...E):x.push(E)}}}return x}}function Z_(e,t){e.position&&(t.position=OL(e))}function eM(e,t){let n=t;if(e&&e.data){const s=e.data.hName,i=e.data.hChildren,l=e.data.hProperties;if(typeof s=="string")if(n.type==="element")n.tagName=s;else{const c="children"in n?n.children:[n];n={type:"element",tagName:s,properties:{},children:c}}n.type==="element"&&l&&Object.assign(n.properties,md(l)),"children"in n&&n.children&&i!==null&&i!==void 0&&(n.children=i)}return n}function tM(e,t){const n=t.data||{},s="value"in t&&!(Ah.call(n,"hProperties")||Ah.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function nM(e,t){const n=[];let s=-1;for(t&&n.push({type:"text",value:`
|
|
525
|
+
`});++s<e.length;)s&&n.push({type:"text",value:`
|
|
526
|
+
`}),n.push(e[s]);return t&&e.length>0&&n.push({type:"text",value:`
|
|
527
|
+
`}),n}function Tw(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Pw(e,t){const n=Q_(e,t),s=n.one(e,void 0),i=B_(n),l=Array.isArray(s)?{type:"root",children:s}:s||{type:"root",children:[]};return i&&l.children.push({type:"text",value:`
|
|
528
|
+
`},i),l}function rM(e,t){return e&&"run"in e?async function(n,s){const i=Pw(n,{file:s,...t});await e.run(i,s)}:function(n,s){return Pw(n,{file:s,...e||t})}}function Rw(e){if(e)throw e}var $m,Aw;function sM(){if(Aw)return $m;Aw=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,i=function(m){return typeof Array.isArray=="function"?Array.isArray(m):t.call(m)==="[object Array]"},l=function(m){if(!m||t.call(m)!=="[object Object]")return!1;var h=e.call(m,"constructor"),x=m.constructor&&m.constructor.prototype&&e.call(m.constructor.prototype,"isPrototypeOf");if(m.constructor&&!h&&!x)return!1;var y;for(y in m);return typeof y>"u"||e.call(m,y)},c=function(m,h){n&&h.name==="__proto__"?n(m,h.name,{enumerable:!0,configurable:!0,value:h.newValue,writable:!0}):m[h.name]=h.newValue},u=function(m,h){if(h==="__proto__")if(e.call(m,h)){if(s)return s(m,h).value}else return;return m[h]};return $m=function p(){var m,h,x,y,b,E,k=arguments[0],w=1,j=arguments.length,C=!1;for(typeof k=="boolean"&&(C=k,k=arguments[1]||{},w=2),(k==null||typeof k!="object"&&typeof k!="function")&&(k={});w<j;++w)if(m=arguments[w],m!=null)for(h in m)x=u(k,h),y=u(m,h),k!==y&&(C&&y&&(l(y)||(b=i(y)))?(b?(b=!1,E=x&&i(x)?x:[]):E=x&&l(x)?x:{},c(k,{name:h,newValue:p(C,E,y)})):typeof y<"u"&&c(k,{name:h,newValue:y}));return k},$m}var oM=sM();const Lm=jd(oM);function Dh(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function iM(){const e=[],t={run:n,use:s};return t;function n(...i){let l=-1;const c=i.pop();if(typeof c!="function")throw new TypeError("Expected function as last argument, not "+c);u(null,...i);function u(p,...m){const h=e[++l];let x=-1;if(p){c(p);return}for(;++x<i.length;)(m[x]===null||m[x]===void 0)&&(m[x]=i[x]);i=m,h?aM(h,u)(...m):c(null,...m)}}function s(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return e.push(i),t}}function aM(e,t){let n;return s;function s(...c){const u=e.length>c.length;let p;u&&c.push(i);try{p=e.apply(this,c)}catch(m){const h=m;if(u&&n)throw h;return i(h)}u||(p&&p.then&&typeof p.then=="function"?p.then(l,i):p instanceof Error?i(p):l(p))}function i(c,...u){n||(n=!0,t(c,...u))}function l(c){i(null,c)}}const rs={basename:lM,dirname:cM,extname:uM,join:dM,sep:"/"};function lM(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');ac(e);let n=0,s=-1,i=e.length,l;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(l){n=i+1;break}}else s<0&&(l=!0,s=i+1);return s<0?"":e.slice(n,s)}if(t===e)return"";let c=-1,u=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(l){n=i+1;break}}else c<0&&(l=!0,c=i+1),u>-1&&(e.codePointAt(i)===t.codePointAt(u--)?u<0&&(s=i):(u=-1,s=c));return n===s?s=c:s<0&&(s=e.length),e.slice(n,s)}function cM(e){if(ac(e),e.length===0)return".";let t=-1,n=e.length,s;for(;--n;)if(e.codePointAt(n)===47){if(s){t=n;break}}else s||(s=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function uM(e){ac(e);let t=e.length,n=-1,s=0,i=-1,l=0,c;for(;t--;){const u=e.codePointAt(t);if(u===47){if(c){s=t+1;break}continue}n<0&&(c=!0,n=t+1),u===46?i<0?i=t:l!==1&&(l=1):i>-1&&(l=-1)}return i<0||n<0||l===0||l===1&&i===n-1&&i===s+1?"":e.slice(i,n)}function dM(...e){let t=-1,n;for(;++t<e.length;)ac(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":fM(n)}function fM(e){ac(e);const t=e.codePointAt(0)===47;let n=pM(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function pM(e,t){let n="",s=0,i=-1,l=0,c=-1,u,p;for(;++c<=e.length;){if(c<e.length)u=e.codePointAt(c);else{if(u===47)break;u=47}if(u===47){if(!(i===c-1||l===1))if(i!==c-1&&l===2){if(n.length<2||s!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(p=n.lastIndexOf("/"),p!==n.length-1){p<0?(n="",s=0):(n=n.slice(0,p),s=n.length-1-n.lastIndexOf("/")),i=c,l=0;continue}}else if(n.length>0){n="",s=0,i=c,l=0;continue}}t&&(n=n.length>0?n+"/..":"..",s=2)}else n.length>0?n+="/"+e.slice(i+1,c):n=e.slice(i+1,c),s=c-i-1;i=c,l=0}else u===46&&l>-1?l++:l=-1}return n}function ac(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const mM={cwd:hM};function hM(){return"/"}function $h(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gM(e){if(typeof e=="string")e=new URL(e);else if(!$h(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return xM(e)}function xM(e){if(e.hostname!==""){const s=new TypeError('File URL host must be "localhost" or empty on darwin');throw s.code="ERR_INVALID_FILE_URL_HOST",s}const t=e.pathname;let n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){const s=t.codePointAt(n+2);if(s===70||s===102){const i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(t)}const Im=["history","path","basename","stem","extname","dirname"];class RS{constructor(t){let n;t?$h(t)?n={path:t}:typeof t=="string"||yM(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":mM.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let s=-1;for(;++s<Im.length;){const l=Im[s];l in n&&n[l]!==void 0&&n[l]!==null&&(this[l]=l==="history"?[...n[l]]:n[l])}let i;for(i in n)Im.includes(i)||(this[i]=n[i])}get basename(){return typeof this.path=="string"?rs.basename(this.path):void 0}set basename(t){_m(t,"basename"),Om(t,"basename"),this.path=rs.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?rs.dirname(this.path):void 0}set dirname(t){Dw(this.basename,"dirname"),this.path=rs.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?rs.extname(this.path):void 0}set extname(t){if(Om(t,"extname"),Dw(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=rs.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){$h(t)&&(t=gM(t)),_m(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?rs.basename(this.path,this.extname):void 0}set stem(t){_m(t,"stem"),Om(t,"stem"),this.path=rs.join(this.dirname||"",t+(this.extname||""))}fail(t,n,s){const i=this.message(t,n,s);throw i.fatal=!0,i}info(t,n,s){const i=this.message(t,n,s);return i.fatal=void 0,i}message(t,n,s){const i=new Mn(t,n,s);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function Om(e,t){if(e&&e.includes(rs.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+rs.sep+"`")}function _m(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function Dw(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function yM(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const bM=(function(e){const s=this.constructor.prototype,i=s[e],l=function(){return i.apply(l,arguments)};return Object.setPrototypeOf(l,s),l}),vM={}.hasOwnProperty;class sx extends bM{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=iM()}copy(){const t=new sx;let n=-1;for(;++n<this.attachers.length;){const s=this.attachers[n];t.use(...s)}return t.data(Lm(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(zm("data",this.frozen),this.namespace[t]=n,this):vM.call(this.namespace,t)&&this.namespace[t]||void 0:t?(zm("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;const t=this;for(;++this.freezeIndex<this.attachers.length;){const[n,...s]=this.attachers[this.freezeIndex];if(s[0]===!1)continue;s[0]===!0&&(s[0]=void 0);const i=n.call(t,...s);typeof i=="function"&&this.transformers.use(i)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const n=Tu(t),s=this.parser||this.Parser;return Mm("parse",s),s(String(n),n)}process(t,n){const s=this;return this.freeze(),Mm("process",this.parser||this.Parser),Fm("process",this.compiler||this.Compiler),n?i(void 0,n):new Promise(i);function i(l,c){const u=Tu(t),p=s.parse(u);s.run(p,u,function(h,x,y){if(h||!x||!y)return m(h);const b=x,E=s.stringify(b,y);kM(E)?y.value=E:y.result=E,m(h,y)});function m(h,x){h||!x?c(h):l?l(x):n(void 0,x)}}}processSync(t){let n=!1,s;return this.freeze(),Mm("processSync",this.parser||this.Parser),Fm("processSync",this.compiler||this.Compiler),this.process(t,i),Lw("processSync","process",n),s;function i(l,c){n=!0,Rw(l),s=c}}run(t,n,s){$w(t),this.freeze();const i=this.transformers;return!s&&typeof n=="function"&&(s=n,n=void 0),s?l(void 0,s):new Promise(l);function l(c,u){const p=Tu(n);i.run(t,p,m);function m(h,x,y){const b=x||t;h?u(h):c?c(b):s(void 0,b,y)}}}runSync(t,n){let s=!1,i;return this.run(t,n,l),Lw("runSync","run",s),i;function l(c,u){Rw(c),i=u,s=!0}}stringify(t,n){this.freeze();const s=Tu(n),i=this.compiler||this.Compiler;return Fm("stringify",i),$w(t),i(t,s)}use(t,...n){const s=this.attachers,i=this.namespace;if(zm("use",this.frozen),t!=null)if(typeof t=="function")p(t,n);else if(typeof t=="object")Array.isArray(t)?u(t):c(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function l(m){if(typeof m=="function")p(m,[]);else if(typeof m=="object")if(Array.isArray(m)){const[h,...x]=m;p(h,x)}else c(m);else throw new TypeError("Expected usable value, not `"+m+"`")}function c(m){if(!("plugins"in m)&&!("settings"in m))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");u(m.plugins),m.settings&&(i.settings=Lm(!0,i.settings,m.settings))}function u(m){let h=-1;if(m!=null)if(Array.isArray(m))for(;++h<m.length;){const x=m[h];l(x)}else throw new TypeError("Expected a list of plugins, not `"+m+"`")}function p(m,h){let x=-1,y=-1;for(;++x<s.length;)if(s[x][0]===m){y=x;break}if(y===-1)s.push([m,...h]);else if(h.length>0){let[b,...E]=h;const k=s[y][1];Dh(k)&&Dh(b)&&(b=Lm(!0,k,b)),s[y]=[m,b,...E]}}}}const wM=new sx().freeze();function Mm(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Fm(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function zm(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function $w(e){if(!Dh(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Lw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Tu(e){return jM(e)?e:new RS(e)}function jM(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function kM(e){return typeof e=="string"||SM(e)}function SM(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const NM="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Iw=[],Ow={allowDangerousHtml:!0},CM=/^(https?|ircs?|mailto|xmpp)$/i,EM=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function TM(e){const t=PM(e),n=RM(e);return AM(t.runSync(t.parse(n),n),e)}function PM(e){const t=e.rehypePlugins||Iw,n=e.remarkPlugins||Iw,s=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Ow}:Ow;return wM().use(l_).use(n).use(rM,s).use(t)}function RM(e){const t=e.children||"",n=new RS;return typeof t=="string"&&(n.value=t),n}function AM(e,t){const n=t.allowedElements,s=t.allowElement,i=t.components,l=t.disallowedElements,c=t.skipHtml,u=t.unwrapDisallowed,p=t.urlTransform||DM;for(const h of EM)Object.hasOwn(t,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+NM+h.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),PS(e,m),BL(e,{Fragment:r.Fragment,components:i,ignoreInvalidStyle:!0,jsx:r.jsx,jsxs:r.jsxs,passKeys:!0,passNode:!0});function m(h,x,y){if(h.type==="raw"&&y&&typeof x=="number")return c?y.children.splice(x,1):y.children[x]={type:"text",value:h.value},x;if(h.type==="element"){let b;for(b in Rm)if(Object.hasOwn(Rm,b)&&Object.hasOwn(h.properties,b)){const E=h.properties[b],k=Rm[b];(k===null||k.includes(h.tagName))&&(h.properties[b]=p(String(E||""),b,h))}}if(h.type==="element"){let b=n?!n.includes(h.tagName):l?l.includes(h.tagName):!1;if(!b&&s&&typeof x=="number"&&(b=!s(h,x,y)),b&&y&&typeof x=="number")return u&&h.children?y.children.splice(x,1,...h.children):y.children.splice(x,1),x}}}function DM(e){const t=e.indexOf(":"),n=e.indexOf("?"),s=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||s!==-1&&t>s||CM.test(e.slice(0,t))?e:""}function un({content:e,className:t,emptyState:n="No markdown content yet."}){const s=e.replace(/<!--[\s\S]*?-->/g,"");return s.trim()?r.jsx("div",{className:Ee("prose-syntaur max-w-none",t),children:r.jsx(TM,{children:s})}):r.jsx("div",{className:"rounded-md border border-dashed border-border/80 bg-muted/30 px-3 py-4 text-sm text-muted-foreground",children:n})}function $M(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return f.useMemo(()=>s=>{t.forEach(i=>i(s))},t)}const nf=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function ga(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function ox(e){return"nodeType"in e}function ir(e){var t,n;return e?ga(e)?e:ox(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function ix(e){const{Document:t}=ir(e);return e instanceof t}function lc(e){return ga(e)?!1:e instanceof ir(e).HTMLElement}function AS(e){return e instanceof ir(e).SVGElement}function xa(e){return e?ga(e)?e.document:ox(e)?ix(e)?e:lc(e)||AS(e)?e.ownerDocument:document:document:document}const fs=nf?f.useLayoutEffect:f.useEffect;function ax(e){const t=f.useRef(e);return fs(()=>{t.current=e}),f.useCallback(function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++)s[i]=arguments[i];return t.current==null?void 0:t.current(...s)},[])}function LM(){const e=f.useRef(null),t=f.useCallback((s,i)=>{e.current=setInterval(s,i)},[]),n=f.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function Ul(e,t){t===void 0&&(t=[e]);const n=f.useRef(e);return fs(()=>{n.current!==e&&(n.current=e)},t),n}function cc(e,t){const n=f.useRef();return f.useMemo(()=>{const s=e(n.current);return n.current=s,s},[...t])}function hd(e){const t=ax(e),n=f.useRef(null),s=f.useCallback(i=>{i!==n.current&&(t==null||t(i,n.current)),n.current=i},[]);return[n,s]}function Lh(e){const t=f.useRef();return f.useEffect(()=>{t.current=e},[e]),t.current}let Bm={};function uc(e,t){return f.useMemo(()=>{if(t)return t;const n=Bm[e]==null?0:Bm[e]+1;return Bm[e]=n,e+"-"+n},[e,t])}function DS(e){return function(t){for(var n=arguments.length,s=new Array(n>1?n-1:0),i=1;i<n;i++)s[i-1]=arguments[i];return s.reduce((l,c)=>{const u=Object.entries(c);for(const[p,m]of u){const h=l[p];h!=null&&(l[p]=h+e*m)}return l},{...t})}}const Qi=DS(1),Vl=DS(-1);function IM(e){return"clientX"in e&&"clientY"in e}function lx(e){if(!e)return!1;const{KeyboardEvent:t}=ir(e.target);return t&&e instanceof t}function OM(e){if(!e)return!1;const{TouchEvent:t}=ir(e.target);return t&&e instanceof t}function Ih(e){if(OM(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return IM(e)?{x:e.clientX,y:e.clientY}:null}const ao=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[ao.Translate.toString(e),ao.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:s}=e;return t+" "+n+"ms "+s}}}),_w="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function _M(e){return e.matches(_w)?e:e.querySelector(_w)}const MM={display:"none"};function FM(e){let{id:t,value:n}=e;return Zt.createElement("div",{id:t,style:MM},n)}function zM(e){let{id:t,announcement:n,ariaLiveType:s="assertive"}=e;const i={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return Zt.createElement("div",{id:t,style:i,role:"status","aria-live":s,"aria-atomic":!0},n)}function BM(){const[e,t]=f.useState("");return{announce:f.useCallback(s=>{s!=null&&t(s)},[]),announcement:e}}const $S=f.createContext(null);function UM(e){const t=f.useContext($S);f.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function VM(){const[e]=f.useState(()=>new Set),t=f.useCallback(s=>(e.add(s),()=>e.delete(s)),[e]);return[f.useCallback(s=>{let{type:i,event:l}=s;e.forEach(c=>{var u;return(u=c[i])==null?void 0:u.call(c,l)})},[e]),t]}const HM={draggable:`
|
|
529
|
+
To pick up a draggable item, press the space bar.
|
|
530
|
+
While dragging, use the arrow keys to move the item.
|
|
531
|
+
Press space again to drop the item in its new position, or press escape to cancel.
|
|
532
|
+
`},WM={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function KM(e){let{announcements:t=WM,container:n,hiddenTextDescribedById:s,screenReaderInstructions:i=HM}=e;const{announce:l,announcement:c}=BM(),u=uc("DndLiveRegion"),[p,m]=f.useState(!1);if(f.useEffect(()=>{m(!0)},[]),UM(f.useMemo(()=>({onDragStart(x){let{active:y}=x;l(t.onDragStart({active:y}))},onDragMove(x){let{active:y,over:b}=x;t.onDragMove&&l(t.onDragMove({active:y,over:b}))},onDragOver(x){let{active:y,over:b}=x;l(t.onDragOver({active:y,over:b}))},onDragEnd(x){let{active:y,over:b}=x;l(t.onDragEnd({active:y,over:b}))},onDragCancel(x){let{active:y,over:b}=x;l(t.onDragCancel({active:y,over:b}))}}),[l,t])),!p)return null;const h=Zt.createElement(Zt.Fragment,null,Zt.createElement(FM,{id:s,value:i.draggable}),Zt.createElement(zM,{id:u,announcement:c}));return n?Es.createPortal(h,n):h}var hn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(hn||(hn={}));function gd(){}function lo(e,t){return f.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function rf(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return f.useMemo(()=>[...t].filter(s=>s!=null),[...t])}const qr=Object.freeze({x:0,y:0});function LS(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function IS(e,t){let{data:{value:n}}=e,{data:{value:s}}=t;return n-s}function qM(e,t){let{data:{value:n}}=e,{data:{value:s}}=t;return s-n}function Mw(e){let{left:t,top:n,height:s,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+s},{x:t+i,y:n+s}]}function OS(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function Fw(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const sf=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:s}=e;const i=Fw(t,t.left,t.top),l=[];for(const c of s){const{id:u}=c,p=n.get(u);if(p){const m=LS(Fw(p),i);l.push({id:u,data:{droppableContainer:c,value:m}})}}return l.sort(IS)},GM=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:s}=e;const i=Mw(t),l=[];for(const c of s){const{id:u}=c,p=n.get(u);if(p){const m=Mw(p),h=i.reduce((y,b,E)=>y+LS(m[E],b),0),x=Number((h/4).toFixed(4));l.push({id:u,data:{droppableContainer:c,value:x}})}}return l.sort(IS)};function YM(e,t){const n=Math.max(t.top,e.top),s=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height),c=i-s,u=l-n;if(s<i&&n<l){const p=t.width*t.height,m=e.width*e.height,h=c*u,x=h/(p+m-h);return Number(x.toFixed(4))}return 0}const JM=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:s}=e;const i=[];for(const l of s){const{id:c}=l,u=n.get(c);if(u){const p=YM(u,t);p>0&&i.push({id:c,data:{droppableContainer:l,value:p}})}}return i.sort(qM)};function XM(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function _S(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:qr}function QM(e){return function(n){for(var s=arguments.length,i=new Array(s>1?s-1:0),l=1;l<s;l++)i[l-1]=arguments[l];return i.reduce((c,u)=>({...c,top:c.top+e*u.y,bottom:c.bottom+e*u.y,left:c.left+e*u.x,right:c.right+e*u.x}),{...n})}}const ZM=QM(1);function e5(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function t5(e,t,n){const s=e5(t);if(!s)return e;const{scaleX:i,scaleY:l,x:c,y:u}=s,p=e.left-c-(1-i)*parseFloat(n),m=e.top-u-(1-l)*parseFloat(n.slice(n.indexOf(" ")+1)),h=i?e.width/i:e.width,x=l?e.height/l:e.height;return{width:h,height:x,top:m,right:p+h,bottom:m+x,left:p}}const n5={ignoreTransform:!1};function ya(e,t){t===void 0&&(t=n5);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:m,transformOrigin:h}=ir(e).getComputedStyle(e);m&&(n=t5(n,m,h))}const{top:s,left:i,width:l,height:c,bottom:u,right:p}=n;return{top:s,left:i,width:l,height:c,bottom:u,right:p}}function zw(e){return ya(e,{ignoreTransform:!0})}function r5(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function s5(e,t){return t===void 0&&(t=ir(e).getComputedStyle(e)),t.position==="fixed"}function o5(e,t){t===void 0&&(t=ir(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const l=t[i];return typeof l=="string"?n.test(l):!1})}function of(e,t){const n=[];function s(i){if(t!=null&&n.length>=t||!i)return n;if(ix(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!lc(i)||AS(i)||n.includes(i))return n;const l=ir(e).getComputedStyle(i);return i!==e&&o5(i,l)&&n.push(i),s5(i,l)?n:s(i.parentNode)}return e?s(e):n}function MS(e){const[t]=of(e,1);return t??null}function Um(e){return!nf||!e?null:ga(e)?e:ox(e)?ix(e)||e===xa(e).scrollingElement?window:lc(e)?e:null:null}function FS(e){return ga(e)?e.scrollX:e.scrollLeft}function zS(e){return ga(e)?e.scrollY:e.scrollTop}function Oh(e){return{x:FS(e),y:zS(e)}}var Nn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(Nn||(Nn={}));function BS(e){return!nf||!e?!1:e===document.scrollingElement}function US(e){const t={x:0,y:0},n=BS(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},s={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y,l=e.scrollLeft<=t.x,c=e.scrollTop>=s.y,u=e.scrollLeft>=s.x;return{isTop:i,isLeft:l,isBottom:c,isRight:u,maxScroll:s,minScroll:t}}const i5={x:.2,y:.2};function a5(e,t,n,s,i){let{top:l,left:c,right:u,bottom:p}=n;s===void 0&&(s=10),i===void 0&&(i=i5);const{isTop:m,isBottom:h,isLeft:x,isRight:y}=US(e),b={x:0,y:0},E={x:0,y:0},k={height:t.height*i.y,width:t.width*i.x};return!m&&l<=t.top+k.height?(b.y=Nn.Backward,E.y=s*Math.abs((t.top+k.height-l)/k.height)):!h&&p>=t.bottom-k.height&&(b.y=Nn.Forward,E.y=s*Math.abs((t.bottom-k.height-p)/k.height)),!y&&u>=t.right-k.width?(b.x=Nn.Forward,E.x=s*Math.abs((t.right-k.width-u)/k.width)):!x&&c<=t.left+k.width&&(b.x=Nn.Backward,E.x=s*Math.abs((t.left+k.width-c)/k.width)),{direction:b,speed:E}}function l5(e){if(e===document.scrollingElement){const{innerWidth:l,innerHeight:c}=window;return{top:0,left:0,right:l,bottom:c,width:l,height:c}}const{top:t,left:n,right:s,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:s,bottom:i,width:e.clientWidth,height:e.clientHeight}}function VS(e){return e.reduce((t,n)=>Qi(t,Oh(n)),qr)}function c5(e){return e.reduce((t,n)=>t+FS(n),0)}function u5(e){return e.reduce((t,n)=>t+zS(n),0)}function d5(e,t){if(t===void 0&&(t=ya),!e)return;const{top:n,left:s,bottom:i,right:l}=t(e);MS(e)&&(i<=0||l<=0||n>=window.innerHeight||s>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const f5=[["x",["left","right"],c5],["y",["top","bottom"],u5]];class cx{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const s=of(n),i=VS(s);this.rect={...t},this.width=t.width,this.height=t.height;for(const[l,c,u]of f5)for(const p of c)Object.defineProperty(this,p,{get:()=>{const m=u(s),h=i[l]-m;return this.rect[p]+h},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class El{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var s;return(s=this.target)==null?void 0:s.removeEventListener(...n)})},this.target=t}add(t,n,s){var i;(i=this.target)==null||i.addEventListener(t,n,s),this.listeners.push([t,n,s])}}function p5(e){const{EventTarget:t}=ir(e);return e instanceof t?e:xa(e)}function Vm(e,t){const n=Math.abs(e.x),s=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+s**2)>t:"x"in t&&"y"in t?n>t.x&&s>t.y:"x"in t?n>t.x:"y"in t?s>t.y:!1}var Er;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(Er||(Er={}));function Bw(e){e.preventDefault()}function m5(e){e.stopPropagation()}var lt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(lt||(lt={}));const HS={start:[lt.Space,lt.Enter],cancel:[lt.Esc],end:[lt.Space,lt.Enter,lt.Tab]},h5=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case lt.Right:return{...n,x:n.x+25};case lt.Left:return{...n,x:n.x-25};case lt.Down:return{...n,y:n.y+25};case lt.Up:return{...n,y:n.y-25}}};class ba{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new El(xa(n)),this.windowListeners=new El(ir(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Er.Resize,this.handleCancel),this.windowListeners.add(Er.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Er.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,s=t.node.current;s&&d5(s),n(qr)}handleKeyDown(t){if(lx(t)){const{active:n,context:s,options:i}=this.props,{keyboardCodes:l=HS,coordinateGetter:c=h5,scrollBehavior:u="smooth"}=i,{code:p}=t;if(l.end.includes(p)){this.handleEnd(t);return}if(l.cancel.includes(p)){this.handleCancel(t);return}const{collisionRect:m}=s.current,h=m?{x:m.left,y:m.top}:qr;this.referenceCoordinates||(this.referenceCoordinates=h);const x=c(t,{active:n,context:s.current,currentCoordinates:h});if(x){const y=Vl(x,h),b={x:0,y:0},{scrollableAncestors:E}=s.current;for(const k of E){const w=t.code,{isTop:j,isRight:C,isLeft:N,isBottom:T,maxScroll:L,minScroll:P}=US(k),$=l5(k),F={x:Math.min(w===lt.Right?$.right-$.width/2:$.right,Math.max(w===lt.Right?$.left:$.left+$.width/2,x.x)),y:Math.min(w===lt.Down?$.bottom-$.height/2:$.bottom,Math.max(w===lt.Down?$.top:$.top+$.height/2,x.y))},X=w===lt.Right&&!C||w===lt.Left&&!N,te=w===lt.Down&&!T||w===lt.Up&&!j;if(X&&F.x!==x.x){const D=k.scrollLeft+y.x,W=w===lt.Right&&D<=L.x||w===lt.Left&&D>=P.x;if(W&&!y.y){k.scrollTo({left:D,behavior:u});return}W?b.x=k.scrollLeft-D:b.x=w===lt.Right?k.scrollLeft-L.x:k.scrollLeft-P.x,b.x&&k.scrollBy({left:-b.x,behavior:u});break}else if(te&&F.y!==x.y){const D=k.scrollTop+y.y,W=w===lt.Down&&D<=L.y||w===lt.Up&&D>=P.y;if(W&&!y.x){k.scrollTo({top:D,behavior:u});return}W?b.y=k.scrollTop-D:b.y=w===lt.Down?k.scrollTop-L.y:k.scrollTop-P.y,b.y&&k.scrollBy({top:-b.y,behavior:u});break}}this.handleMove(t,Qi(Vl(x,this.referenceCoordinates),b))}}}handleMove(t,n){const{onMove:s}=this.props;t.preventDefault(),s(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}ba.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:s=HS,onActivation:i}=t,{active:l}=n;const{code:c}=e.nativeEvent;if(s.start.includes(c)){const u=l.activatorNode.current;return u&&e.target!==u?!1:(e.preventDefault(),i==null||i({event:e.nativeEvent}),!0)}return!1}}];function Uw(e){return!!(e&&"distance"in e)}function Vw(e){return!!(e&&"delay"in e)}class ux{constructor(t,n,s){var i;s===void 0&&(s=p5(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:l}=t,{target:c}=l;this.props=t,this.events=n,this.document=xa(c),this.documentListeners=new El(this.document),this.listeners=new El(s),this.windowListeners=new El(ir(c)),this.initialCoordinates=(i=Ih(l))!=null?i:qr,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:s}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(Er.Resize,this.handleCancel),this.windowListeners.add(Er.DragStart,Bw),this.windowListeners.add(Er.VisibilityChange,this.handleCancel),this.windowListeners.add(Er.ContextMenu,Bw),this.documentListeners.add(Er.Keydown,this.handleKeydown),n){if(s!=null&&s({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Vw(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(Uw(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:s,onPending:i}=this.props;i(s,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(Er.Click,m5,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Er.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:s,initialCoordinates:i,props:l}=this,{onMove:c,options:{activationConstraint:u}}=l;if(!i)return;const p=(n=Ih(t))!=null?n:qr,m=Vl(i,p);if(!s&&u){if(Uw(u)){if(u.tolerance!=null&&Vm(m,u.tolerance))return this.handleCancel();if(Vm(m,u.distance))return this.handleStart()}if(Vw(u)&&Vm(m,u.tolerance))return this.handleCancel();this.handlePending(u,m);return}t.cancelable&&t.preventDefault(),c(p)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===lt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const g5={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class va extends ux{constructor(t){const{event:n}=t,s=xa(n.target);super(t,g5,s)}}va.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:s}=t;return!n.isPrimary||n.button!==0?!1:(s==null||s({event:n}),!0)}}];const x5={move:{name:"mousemove"},end:{name:"mouseup"}};var _h;(function(e){e[e.RightClick=2]="RightClick"})(_h||(_h={}));class y5 extends ux{constructor(t){super(t,x5,xa(t.event.target))}}y5.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:s}=t;return n.button===_h.RightClick?!1:(s==null||s({event:n}),!0)}}];const Hm={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class b5 extends ux{constructor(t){super(t,Hm)}static setup(){return window.addEventListener(Hm.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Hm.move.name,t)};function t(){}}}b5.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:s}=t;const{touches:i}=n;return i.length>1?!1:(s==null||s({event:n}),!0)}}];var Tl;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Tl||(Tl={}));var xd;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(xd||(xd={}));function v5(e){let{acceleration:t,activator:n=Tl.Pointer,canScroll:s,draggingRect:i,enabled:l,interval:c=5,order:u=xd.TreeOrder,pointerCoordinates:p,scrollableAncestors:m,scrollableAncestorRects:h,delta:x,threshold:y}=e;const b=j5({delta:x,disabled:!l}),[E,k]=LM(),w=f.useRef({x:0,y:0}),j=f.useRef({x:0,y:0}),C=f.useMemo(()=>{switch(n){case Tl.Pointer:return p?{top:p.y,bottom:p.y,left:p.x,right:p.x}:null;case Tl.DraggableRect:return i}},[n,i,p]),N=f.useRef(null),T=f.useCallback(()=>{const P=N.current;if(!P)return;const $=w.current.x*j.current.x,F=w.current.y*j.current.y;P.scrollBy($,F)},[]),L=f.useMemo(()=>u===xd.TreeOrder?[...m].reverse():m,[u,m]);f.useEffect(()=>{if(!l||!m.length||!C){k();return}for(const P of L){if((s==null?void 0:s(P))===!1)continue;const $=m.indexOf(P),F=h[$];if(!F)continue;const{direction:X,speed:te}=a5(P,F,C,t,y);for(const D of["x","y"])b[D][X[D]]||(te[D]=0,X[D]=0);if(te.x>0||te.y>0){k(),N.current=P,E(T,c),w.current=te,j.current=X;return}}w.current={x:0,y:0},j.current={x:0,y:0},k()},[t,T,s,k,l,c,JSON.stringify(C),JSON.stringify(b),E,m,L,h,JSON.stringify(y)])}const w5={x:{[Nn.Backward]:!1,[Nn.Forward]:!1},y:{[Nn.Backward]:!1,[Nn.Forward]:!1}};function j5(e){let{delta:t,disabled:n}=e;const s=Lh(t);return cc(i=>{if(n||!s||!i)return w5;const l={x:Math.sign(t.x-s.x),y:Math.sign(t.y-s.y)};return{x:{[Nn.Backward]:i.x[Nn.Backward]||l.x===-1,[Nn.Forward]:i.x[Nn.Forward]||l.x===1},y:{[Nn.Backward]:i.y[Nn.Backward]||l.y===-1,[Nn.Forward]:i.y[Nn.Forward]||l.y===1}}},[n,t,s])}function k5(e,t){const n=t!=null?e.get(t):void 0,s=n?n.node.current:null;return cc(i=>{var l;return t==null?null:(l=s??i)!=null?l:null},[s,t])}function S5(e,t){return f.useMemo(()=>e.reduce((n,s)=>{const{sensor:i}=s,l=i.activators.map(c=>({eventName:c.eventName,handler:t(c.handler,s)}));return[...n,...l]},[]),[e,t])}var Hl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Hl||(Hl={}));var Mh;(function(e){e.Optimized="optimized"})(Mh||(Mh={}));const Hw=new Map;function N5(e,t){let{dragging:n,dependencies:s,config:i}=t;const[l,c]=f.useState(null),{frequency:u,measure:p,strategy:m}=i,h=f.useRef(e),x=w(),y=Ul(x),b=f.useCallback(function(j){j===void 0&&(j=[]),!y.current&&c(C=>C===null?j:C.concat(j.filter(N=>!C.includes(N))))},[y]),E=f.useRef(null),k=cc(j=>{if(x&&!n)return Hw;if(!j||j===Hw||h.current!==e||l!=null){const C=new Map;for(let N of e){if(!N)continue;if(l&&l.length>0&&!l.includes(N.id)&&N.rect.current){C.set(N.id,N.rect.current);continue}const T=N.node.current,L=T?new cx(p(T),T):null;N.rect.current=L,L&&C.set(N.id,L)}return C}return j},[e,l,n,x,p]);return f.useEffect(()=>{h.current=e},[e]),f.useEffect(()=>{x||b()},[n,x]),f.useEffect(()=>{l&&l.length>0&&c(null)},[JSON.stringify(l)]),f.useEffect(()=>{x||typeof u!="number"||E.current!==null||(E.current=setTimeout(()=>{b(),E.current=null},u))},[u,x,b,...s]),{droppableRects:k,measureDroppableContainers:b,measuringScheduled:l!=null};function w(){switch(m){case Hl.Always:return!1;case Hl.BeforeDragging:return n;default:return!n}}}function WS(e,t){return cc(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function C5(e,t){return WS(e,t)}function E5(e){let{callback:t,disabled:n}=e;const s=ax(t),i=f.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:l}=window;return new l(s)},[s,n]);return f.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function af(e){let{callback:t,disabled:n}=e;const s=ax(t),i=f.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:l}=window;return new l(s)},[n]);return f.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function T5(e){return new cx(ya(e),e)}function Ww(e,t,n){t===void 0&&(t=T5);const[s,i]=f.useState(null);function l(){i(p=>{if(!e)return null;if(e.isConnected===!1){var m;return(m=p??n)!=null?m:null}const h=t(e);return JSON.stringify(p)===JSON.stringify(h)?p:h})}const c=E5({callback(p){if(e)for(const m of p){const{type:h,target:x}=m;if(h==="childList"&&x instanceof HTMLElement&&x.contains(e)){l();break}}}}),u=af({callback:l});return fs(()=>{l(),e?(u==null||u.observe(e),c==null||c.observe(document.body,{childList:!0,subtree:!0})):(u==null||u.disconnect(),c==null||c.disconnect())},[e]),s}function P5(e){const t=WS(e);return _S(e,t)}const Kw=[];function R5(e){const t=f.useRef(e),n=cc(s=>e?s&&s!==Kw&&e&&t.current&&e.parentNode===t.current.parentNode?s:of(e):Kw,[e]);return f.useEffect(()=>{t.current=e},[e]),n}function A5(e){const[t,n]=f.useState(null),s=f.useRef(e),i=f.useCallback(l=>{const c=Um(l.target);c&&n(u=>u?(u.set(c,Oh(c)),new Map(u)):null)},[]);return f.useEffect(()=>{const l=s.current;if(e!==l){c(l);const u=e.map(p=>{const m=Um(p);return m?(m.addEventListener("scroll",i,{passive:!0}),[m,Oh(m)]):null}).filter(p=>p!=null);n(u.length?new Map(u):null),s.current=e}return()=>{c(e),c(l)};function c(u){u.forEach(p=>{const m=Um(p);m==null||m.removeEventListener("scroll",i)})}},[i,e]),f.useMemo(()=>e.length?t?Array.from(t.values()).reduce((l,c)=>Qi(l,c),qr):VS(e):qr,[e,t])}function qw(e,t){t===void 0&&(t=[]);const n=f.useRef(null);return f.useEffect(()=>{n.current=null},t),f.useEffect(()=>{const s=e!==qr;s&&!n.current&&(n.current=e),!s&&n.current&&(n.current=null)},[e]),n.current?Vl(e,n.current):qr}function D5(e){f.useEffect(()=>{if(!nf)return;const t=e.map(n=>{let{sensor:s}=n;return s.setup==null?void 0:s.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function $5(e,t){return f.useMemo(()=>e.reduce((n,s)=>{let{eventName:i,handler:l}=s;return n[i]=c=>{l(c,t)},n},{}),[e,t])}function KS(e){return f.useMemo(()=>e?r5(e):null,[e])}const Gw=[];function L5(e,t){t===void 0&&(t=ya);const[n]=e,s=KS(n?ir(n):null),[i,l]=f.useState(Gw);function c(){l(()=>e.length?e.map(p=>BS(p)?s:new cx(t(p),p)):Gw)}const u=af({callback:c});return fs(()=>{u==null||u.disconnect(),c(),e.forEach(p=>u==null?void 0:u.observe(p))},[e]),i}function I5(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return lc(t)?t:e}function O5(e){let{measure:t}=e;const[n,s]=f.useState(null),i=f.useCallback(m=>{for(const{target:h}of m)if(lc(h)){s(x=>{const y=t(h);return x?{...x,width:y.width,height:y.height}:y});break}},[t]),l=af({callback:i}),c=f.useCallback(m=>{const h=I5(m);l==null||l.disconnect(),h&&(l==null||l.observe(h)),s(h?t(h):null)},[t,l]),[u,p]=hd(c);return f.useMemo(()=>({nodeRef:u,rect:n,setRef:p}),[n,u,p])}const _5=[{sensor:va,options:{}},{sensor:ba,options:{}}],M5={current:{}},Ku={draggable:{measure:zw},droppable:{measure:zw,strategy:Hl.WhileDragging,frequency:Mh.Optimized},dragOverlay:{measure:ya}};class Pl extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,s;return(n=(s=this.get(t))==null?void 0:s.node.current)!=null?n:void 0}}const F5={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Pl,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:gd},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Ku,measureDroppableContainers:gd,windowRect:null,measuringScheduled:!1},z5={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:gd,draggableNodes:new Map,over:null,measureDroppableContainers:gd},lf=f.createContext(z5),qS=f.createContext(F5);function B5(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Pl}}}function U5(e,t){switch(t.type){case hn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case hn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case hn.DragEnd:case hn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case hn.RegisterDroppable:{const{element:n}=t,{id:s}=n,i=new Pl(e.droppable.containers);return i.set(s,n),{...e,droppable:{...e.droppable,containers:i}}}case hn.SetDroppableDisabled:{const{id:n,key:s,disabled:i}=t,l=e.droppable.containers.get(n);if(!l||s!==l.key)return e;const c=new Pl(e.droppable.containers);return c.set(n,{...l,disabled:i}),{...e,droppable:{...e.droppable,containers:c}}}case hn.UnregisterDroppable:{const{id:n,key:s}=t,i=e.droppable.containers.get(n);if(!i||s!==i.key)return e;const l=new Pl(e.droppable.containers);return l.delete(n),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function V5(e){let{disabled:t}=e;const{active:n,activatorEvent:s,draggableNodes:i}=f.useContext(lf),l=Lh(s),c=Lh(n==null?void 0:n.id);return f.useEffect(()=>{if(!t&&!s&&l&&c!=null){if(!lx(l)||document.activeElement===l.target)return;const u=i.get(c);if(!u)return;const{activatorNode:p,node:m}=u;if(!p.current&&!m.current)return;requestAnimationFrame(()=>{for(const h of[p.current,m.current]){if(!h)continue;const x=_M(h);if(x){x.focus();break}}})}},[s,t,i,c,l]),null}function H5(e,t){let{transform:n,...s}=t;return e!=null&&e.length?e.reduce((i,l)=>l({transform:i,...s}),n):n}function W5(e){return f.useMemo(()=>({draggable:{...Ku.draggable,...e==null?void 0:e.draggable},droppable:{...Ku.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Ku.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function K5(e){let{activeNode:t,measure:n,initialRect:s,config:i=!0}=e;const l=f.useRef(!1),{x:c,y:u}=typeof i=="boolean"?{x:i,y:i}:i;fs(()=>{if(!c&&!u||!t){l.current=!1;return}if(l.current||!s)return;const m=t==null?void 0:t.node.current;if(!m||m.isConnected===!1)return;const h=n(m),x=_S(h,s);if(c||(x.x=0),u||(x.y=0),l.current=!0,Math.abs(x.x)>0||Math.abs(x.y)>0){const y=MS(m);y&&y.scrollBy({top:x.y,left:x.x})}},[t,c,u,s,n])}const GS=f.createContext({...qr,scaleX:1,scaleY:1});var no;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(no||(no={}));const cf=f.memo(function(t){var n,s,i,l;let{id:c,accessibility:u,autoScroll:p=!0,children:m,sensors:h=_5,collisionDetection:x=JM,measuring:y,modifiers:b,...E}=t;const k=f.useReducer(U5,void 0,B5),[w,j]=k,[C,N]=VM(),[T,L]=f.useState(no.Uninitialized),P=T===no.Initialized,{draggable:{active:$,nodes:F,translate:X},droppable:{containers:te}}=w,D=$!=null?F.get($):null,W=f.useRef({initial:null,translated:null}),Z=f.useMemo(()=>{var Fe;return $!=null?{id:$,data:(Fe=D==null?void 0:D.data)!=null?Fe:M5,rect:W}:null},[$,D]),M=f.useRef(null),[K,J]=f.useState(null),[le,_]=f.useState(null),G=Ul(E,Object.values(E)),A=uc("DndDescribedBy",c),B=f.useMemo(()=>te.getEnabled(),[te]),ee=W5(y),{droppableRects:I,measureDroppableContainers:ue,measuringScheduled:me}=N5(B,{dragging:P,dependencies:[X.x,X.y],config:ee.droppable}),U=k5(F,$),se=f.useMemo(()=>le?Ih(le):null,[le]),de=xe(),ye=C5(U,ee.draggable.measure);K5({activeNode:$!=null?F.get($):null,config:de.layoutShiftCompensation,initialRect:ye,measure:ee.draggable.measure});const je=Ww(U,ee.draggable.measure,ye),fe=Ww(U?U.parentElement:null),Ve=f.useRef({activatorEvent:null,active:null,activeNode:U,collisionRect:null,collisions:null,droppableRects:I,draggableNodes:F,draggingNode:null,draggingNodeRect:null,droppableContainers:te,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),pe=te.getNodeFor((n=Ve.current.over)==null?void 0:n.id),Re=O5({measure:ee.dragOverlay.measure}),O=(s=Re.nodeRef.current)!=null?s:U,H=P?(i=Re.rect)!=null?i:je:null,Q=!!(Re.nodeRef.current&&Re.rect),ge=P5(Q?null:je),Ie=KS(O?ir(O):null),Te=R5(P?pe??U:null),et=L5(Te),He=H5(b,{transform:{x:X.x-ge.x,y:X.y-ge.y,scaleX:1,scaleY:1},activatorEvent:le,active:Z,activeNodeRect:je,containerNodeRect:fe,draggingNodeRect:H,over:Ve.current.over,overlayNodeRect:Re.rect,scrollableAncestors:Te,scrollableAncestorRects:et,windowRect:Ie}),jt=se?Qi(se,X):null,Ht=A5(Te),st=qw(Ht),ae=qw(Ht,[je]),be=Qi(He,st),$e=H?ZM(H,He):null,We=Z&&$e?x({active:Z,collisionRect:$e,droppableRects:I,droppableContainers:B,pointerCoordinates:jt}):null,Xe=OS(We,"id"),[it,Wt]=f.useState(null),xt=Q?He:Qi(He,ae),tn=XM(xt,(l=it==null?void 0:it.rect)!=null?l:null,je),St=f.useRef(null),yt=f.useCallback((Fe,Oe)=>{let{sensor:Nt,options:Rn}=Oe;if(M.current==null)return;const Kt=F.get(M.current);if(!Kt)return;const nn=Fe.nativeEvent,Bt=new Nt({active:M.current,activeNode:Kt,event:nn,options:Rn,context:Ve,onAbort(ut){if(!F.get(ut))return;const{onDragAbort:Ct}=G.current,ne={id:ut};Ct==null||Ct(ne),C({type:"onDragAbort",event:ne})},onPending(ut,bn,Ct,ne){if(!F.get(ut))return;const{onDragPending:qe}=G.current,It={id:ut,constraint:bn,initialCoordinates:Ct,offset:ne};qe==null||qe(It),C({type:"onDragPending",event:It})},onStart(ut){const bn=M.current;if(bn==null)return;const Ct=F.get(bn);if(!Ct)return;const{onDragStart:ne}=G.current,Pe={activatorEvent:nn,active:{id:bn,data:Ct.data,rect:W}};Es.unstable_batchedUpdates(()=>{ne==null||ne(Pe),L(no.Initializing),j({type:hn.DragStart,initialCoordinates:ut,active:bn}),C({type:"onDragStart",event:Pe}),J(St.current),_(nn)})},onMove(ut){j({type:hn.DragMove,coordinates:ut})},onEnd:qn(hn.DragEnd),onCancel:qn(hn.DragCancel)});St.current=Bt;function qn(ut){return async function(){const{active:Ct,collisions:ne,over:Pe,scrollAdjustedTranslate:qe}=Ve.current;let It=null;if(Ct&&qe){const{cancelDrop:fn}=G.current;It={activatorEvent:nn,active:Ct,collisions:ne,delta:qe,over:Pe},ut===hn.DragEnd&&typeof fn=="function"&&await Promise.resolve(fn(It))&&(ut=hn.DragCancel)}M.current=null,Es.unstable_batchedUpdates(()=>{j({type:ut}),L(no.Uninitialized),Wt(null),J(null),_(null),St.current=null;const fn=ut===hn.DragEnd?"onDragEnd":"onDragCancel";if(It){const bt=G.current[fn];bt==null||bt(It),C({type:fn,event:It})}})}}},[F]),kt=f.useCallback((Fe,Oe)=>(Nt,Rn)=>{const Kt=Nt.nativeEvent,nn=F.get(Rn);if(M.current!==null||!nn||Kt.dndKit||Kt.defaultPrevented)return;const Bt={active:nn};Fe(Nt,Oe.options,Bt)===!0&&(Kt.dndKit={capturedBy:Oe.sensor},M.current=Rn,yt(Nt,Oe))},[F,yt]),Tt=S5(h,kt);D5(h),fs(()=>{je&&T===no.Initializing&&L(no.Initialized)},[je,T]),f.useEffect(()=>{const{onDragMove:Fe}=G.current,{active:Oe,activatorEvent:Nt,collisions:Rn,over:Kt}=Ve.current;if(!Oe||!Nt)return;const nn={active:Oe,activatorEvent:Nt,collisions:Rn,delta:{x:be.x,y:be.y},over:Kt};Es.unstable_batchedUpdates(()=>{Fe==null||Fe(nn),C({type:"onDragMove",event:nn})})},[be.x,be.y]),f.useEffect(()=>{const{active:Fe,activatorEvent:Oe,collisions:Nt,droppableContainers:Rn,scrollAdjustedTranslate:Kt}=Ve.current;if(!Fe||M.current==null||!Oe||!Kt)return;const{onDragOver:nn}=G.current,Bt=Rn.get(Xe),qn=Bt&&Bt.rect.current?{id:Bt.id,rect:Bt.rect.current,data:Bt.data,disabled:Bt.disabled}:null,ut={active:Fe,activatorEvent:Oe,collisions:Nt,delta:{x:Kt.x,y:Kt.y},over:qn};Es.unstable_batchedUpdates(()=>{Wt(qn),nn==null||nn(ut),C({type:"onDragOver",event:ut})})},[Xe]),fs(()=>{Ve.current={activatorEvent:le,active:Z,activeNode:U,collisionRect:$e,collisions:We,droppableRects:I,draggableNodes:F,draggingNode:O,draggingNodeRect:H,droppableContainers:te,over:it,scrollableAncestors:Te,scrollAdjustedTranslate:be},W.current={initial:H,translated:$e}},[Z,U,We,$e,F,O,H,I,te,it,Te,be]),v5({...de,delta:X,draggingRect:$e,pointerCoordinates:jt,scrollableAncestors:Te,scrollableAncestorRects:et});const ar=f.useMemo(()=>({active:Z,activeNode:U,activeNodeRect:je,activatorEvent:le,collisions:We,containerNodeRect:fe,dragOverlay:Re,draggableNodes:F,droppableContainers:te,droppableRects:I,over:it,measureDroppableContainers:ue,scrollableAncestors:Te,scrollableAncestorRects:et,measuringConfiguration:ee,measuringScheduled:me,windowRect:Ie}),[Z,U,je,le,We,fe,Re,F,te,I,it,ue,Te,et,ee,me,Ie]),lr=f.useMemo(()=>({activatorEvent:le,activators:Tt,active:Z,activeNodeRect:je,ariaDescribedById:{draggable:A},dispatch:j,draggableNodes:F,over:it,measureDroppableContainers:ue}),[le,Tt,Z,je,j,A,F,it,ue]);return Zt.createElement($S.Provider,{value:N},Zt.createElement(lf.Provider,{value:lr},Zt.createElement(qS.Provider,{value:ar},Zt.createElement(GS.Provider,{value:tn},m)),Zt.createElement(V5,{disabled:(u==null?void 0:u.restoreFocus)===!1})),Zt.createElement(KM,{...u,hiddenTextDescribedById:A}));function xe(){const Fe=(K==null?void 0:K.autoScrollEnabled)===!1,Oe=typeof p=="object"?p.enabled===!1:p===!1,Nt=P&&!Fe&&!Oe;return typeof p=="object"?{...p,enabled:Nt}:{enabled:Nt}}}),q5=f.createContext(null),Yw="button",G5="Draggable";function Y5(e){let{id:t,data:n,disabled:s=!1,attributes:i}=e;const l=uc(G5),{activators:c,activatorEvent:u,active:p,activeNodeRect:m,ariaDescribedById:h,draggableNodes:x,over:y}=f.useContext(lf),{role:b=Yw,roleDescription:E="draggable",tabIndex:k=0}=i??{},w=(p==null?void 0:p.id)===t,j=f.useContext(w?GS:q5),[C,N]=hd(),[T,L]=hd(),P=$5(c,t),$=Ul(n);fs(()=>(x.set(t,{id:t,key:l,node:C,activatorNode:T,data:$}),()=>{const X=x.get(t);X&&X.key===l&&x.delete(t)}),[x,t]);const F=f.useMemo(()=>({role:b,tabIndex:k,"aria-disabled":s,"aria-pressed":w&&b===Yw?!0:void 0,"aria-roledescription":E,"aria-describedby":h.draggable}),[s,b,k,w,E,h.draggable]);return{active:p,activatorEvent:u,activeNodeRect:m,attributes:F,isDragging:w,listeners:s?void 0:P,node:C,over:y,setNodeRef:N,setActivatorNodeRef:L,transform:j}}function J5(){return f.useContext(qS)}const X5="Droppable",Q5={timeout:25};function Z5(e){let{data:t,disabled:n=!1,id:s,resizeObserverConfig:i}=e;const l=uc(X5),{active:c,dispatch:u,over:p,measureDroppableContainers:m}=f.useContext(lf),h=f.useRef({disabled:n}),x=f.useRef(!1),y=f.useRef(null),b=f.useRef(null),{disabled:E,updateMeasurementsFor:k,timeout:w}={...Q5,...i},j=Ul(k??s),C=f.useCallback(()=>{if(!x.current){x.current=!0;return}b.current!=null&&clearTimeout(b.current),b.current=setTimeout(()=>{m(Array.isArray(j.current)?j.current:[j.current]),b.current=null},w)},[w]),N=af({callback:C,disabled:E||!c}),T=f.useCallback((F,X)=>{N&&(X&&(N.unobserve(X),x.current=!1),F&&N.observe(F))},[N]),[L,P]=hd(T),$=Ul(t);return f.useEffect(()=>{!N||!L.current||(N.disconnect(),x.current=!1,N.observe(L.current))},[L,N]),f.useEffect(()=>(u({type:hn.RegisterDroppable,element:{id:s,key:l,disabled:n,node:L,rect:y,data:$}}),()=>u({type:hn.UnregisterDroppable,key:l,id:s})),[s]),f.useEffect(()=>{n!==h.current.disabled&&(u({type:hn.SetDroppableDisabled,id:s,key:l,disabled:n}),h.current.disabled=n)},[s,l,n,u]),{active:c,rect:y,isOver:(p==null?void 0:p.id)===s,node:L,over:p,setNodeRef:P}}function wa(e,t,n){const s=e.slice();return s.splice(n<0?s.length+n:n,0,s.splice(t,1)[0]),s}function eF(e,t){return e.reduce((n,s,i)=>{const l=t.get(s);return l&&(n[i]=l),n},Array(e.length))}function Pu(e){return e!==null&&e>=0}function tF(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function nF(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const YS=e=>{let{rects:t,activeIndex:n,overIndex:s,index:i}=e;const l=wa(t,s,n),c=t[i],u=l[i];return!u||!c?null:{x:u.left-c.left,y:u.top-c.top,scaleX:u.width/c.width,scaleY:u.height/c.height}},Ru={scaleX:1,scaleY:1},uf=e=>{var t;let{activeIndex:n,activeNodeRect:s,index:i,rects:l,overIndex:c}=e;const u=(t=l[n])!=null?t:s;if(!u)return null;if(i===n){const m=l[c];return m?{x:0,y:n<c?m.top+m.height-(u.top+u.height):m.top-u.top,...Ru}:null}const p=rF(l,i,n);return i>n&&i<=c?{x:0,y:-u.height-p,...Ru}:i<n&&i>=c?{x:0,y:u.height+p,...Ru}:{x:0,y:0,...Ru}};function rF(e,t,n){const s=e[t],i=e[t-1],l=e[t+1];return s?n<t?i?s.top-(i.top+i.height):l?l.top-(s.top+s.height):0:l?l.top-(s.top+s.height):i?s.top-(i.top+i.height):0:0}const JS="Sortable",XS=Zt.createContext({activeIndex:-1,containerId:JS,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:YS,disabled:{draggable:!1,droppable:!1}});function df(e){let{children:t,id:n,items:s,strategy:i=YS,disabled:l=!1}=e;const{active:c,dragOverlay:u,droppableRects:p,over:m,measureDroppableContainers:h}=J5(),x=uc(JS,n),y=u.rect!==null,b=f.useMemo(()=>s.map(P=>typeof P=="object"&&"id"in P?P.id:P),[s]),E=c!=null,k=c?b.indexOf(c.id):-1,w=m?b.indexOf(m.id):-1,j=f.useRef(b),C=!tF(b,j.current),N=w!==-1&&k===-1||C,T=nF(l);fs(()=>{C&&E&&h(b)},[C,b,E,h]),f.useEffect(()=>{j.current=b},[b]);const L=f.useMemo(()=>({activeIndex:k,containerId:x,disabled:T,disableTransforms:N,items:b,overIndex:w,useDragOverlay:y,sortedRects:eF(b,p),strategy:i}),[k,x,T.draggable,T.droppable,N,b,w,p,y,i]);return Zt.createElement(XS.Provider,{value:L},t)}const sF=e=>{let{id:t,items:n,activeIndex:s,overIndex:i}=e;return wa(n,s,i).indexOf(t)},oF=e=>{let{containerId:t,isSorting:n,wasDragging:s,index:i,items:l,newIndex:c,previousItems:u,previousContainerId:p,transition:m}=e;return!m||!s||u!==l&&i===c?!1:n?!0:c!==i&&t===p},iF={duration:200,easing:"ease"},QS="transform",aF=ao.Transition.toString({property:QS,duration:0,easing:"linear"}),lF={roleDescription:"sortable"};function cF(e){let{disabled:t,index:n,node:s,rect:i}=e;const[l,c]=f.useState(null),u=f.useRef(n);return fs(()=>{if(!t&&n!==u.current&&s.current){const p=i.current;if(p){const m=ya(s.current,{ignoreTransform:!0}),h={x:p.left-m.left,y:p.top-m.top,scaleX:p.width/m.width,scaleY:p.height/m.height};(h.x||h.y)&&c(h)}}n!==u.current&&(u.current=n)},[t,n,s,i]),f.useEffect(()=>{l&&c(null)},[l]),l}function ff(e){let{animateLayoutChanges:t=oF,attributes:n,disabled:s,data:i,getNewIndex:l=sF,id:c,strategy:u,resizeObserverConfig:p,transition:m=iF}=e;const{items:h,containerId:x,activeIndex:y,disabled:b,disableTransforms:E,sortedRects:k,overIndex:w,useDragOverlay:j,strategy:C}=f.useContext(XS),N=uF(s,b),T=h.indexOf(c),L=f.useMemo(()=>({sortable:{containerId:x,index:T,items:h},...i}),[x,i,T,h]),P=f.useMemo(()=>h.slice(h.indexOf(c)),[h,c]),{rect:$,node:F,isOver:X,setNodeRef:te}=Z5({id:c,data:L,disabled:N.droppable,resizeObserverConfig:{updateMeasurementsFor:P,...p}}),{active:D,activatorEvent:W,activeNodeRect:Z,attributes:M,setNodeRef:K,listeners:J,isDragging:le,over:_,setActivatorNodeRef:G,transform:A}=Y5({id:c,data:L,attributes:{...lF,...n},disabled:N.draggable}),B=$M(te,K),ee=!!D,I=ee&&!E&&Pu(y)&&Pu(w),ue=!j&&le,me=ue&&I?A:null,se=I?me??(u??C)({rects:k,activeNodeRect:Z,activeIndex:y,overIndex:w,index:T}):null,de=Pu(y)&&Pu(w)?l({id:c,items:h,activeIndex:y,overIndex:w}):T,ye=D==null?void 0:D.id,je=f.useRef({activeId:ye,items:h,newIndex:de,containerId:x}),fe=h!==je.current.items,Ve=t({active:D,containerId:x,isDragging:le,isSorting:ee,id:c,index:T,items:h,newIndex:je.current.newIndex,previousItems:je.current.items,previousContainerId:je.current.containerId,transition:m,wasDragging:je.current.activeId!=null}),pe=cF({disabled:!Ve,index:T,node:F,rect:$});return f.useEffect(()=>{ee&&je.current.newIndex!==de&&(je.current.newIndex=de),x!==je.current.containerId&&(je.current.containerId=x),h!==je.current.items&&(je.current.items=h)},[ee,de,x,h]),f.useEffect(()=>{if(ye===je.current.activeId)return;if(ye!=null&&je.current.activeId==null){je.current.activeId=ye;return}const O=setTimeout(()=>{je.current.activeId=ye},50);return()=>clearTimeout(O)},[ye]),{active:D,activeIndex:y,attributes:M,data:L,rect:$,index:T,newIndex:de,items:h,isOver:X,isSorting:ee,isDragging:le,listeners:J,node:F,overIndex:w,over:_,setNodeRef:B,setActivatorNodeRef:G,setDroppableNodeRef:te,setDraggableNodeRef:K,transform:pe??se,transition:Re()};function Re(){if(pe||fe&&je.current.newIndex===T)return aF;if(!(ue&&!lx(W)||!m)&&(ee||Ve))return ao.Transition.toString({...m,property:QS})}}function uF(e,t){var n,s;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(s=e==null?void 0:e.droppable)!=null?s:t.droppable}}function yd(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const dF=[lt.Down,lt.Right,lt.Up,lt.Left],fF=(e,t)=>{let{context:{active:n,collisionRect:s,droppableRects:i,droppableContainers:l,over:c,scrollableAncestors:u}}=t;if(dF.includes(e.code)){if(e.preventDefault(),!n||!s)return;const p=[];l.getEnabled().forEach(x=>{if(!x||x!=null&&x.disabled)return;const y=i.get(x.id);if(y)switch(e.code){case lt.Down:s.top<y.top&&p.push(x);break;case lt.Up:s.top>y.top&&p.push(x);break;case lt.Left:s.left>y.left&&p.push(x);break;case lt.Right:s.left<y.left&&p.push(x);break}});const m=GM({collisionRect:s,droppableRects:i,droppableContainers:p});let h=OS(m,"id");if(h===(c==null?void 0:c.id)&&m.length>1&&(h=m[1].id),h!=null){const x=l.get(n.id),y=l.get(h),b=y?i.get(y.id):null,E=y==null?void 0:y.node.current;if(E&&b&&x&&y){const w=of(E).some((P,$)=>u[$]!==P),j=ZS(x,y),C=pF(x,y),N=w||!j?{x:0,y:0}:{x:C?s.width-b.width:0,y:C?s.height-b.height:0},T={x:b.left,y:b.top};return N.x&&N.y?T:Vl(T,N)}}}};function ZS(e,t){return!yd(e)||!yd(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function pF(e,t){return!yd(e)||!yd(t)||!ZS(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}function gs(e){return`/api/projects/${encodeURIComponent(e)}/todos`}function mF(e){const[t,n]=f.useState(null),[s,i]=f.useState(!0),[l,c]=f.useState(null),u=f.useCallback(async()=>{if(e)try{const p=await fetch(gs(e));if(!p.ok)throw new Error(`HTTP ${p.status}`);n(await p.json()),c(null)}catch(p){c(p instanceof Error?p.message:"Failed to fetch todos")}finally{i(!1)}},[e]);return f.useEffect(()=>{u()},[u]),Zl(p=>{p.type==="todos-updated"&&p.projectSlug===e&&u()}),{data:t,loading:s,error:l,refetch:u}}async function hF(e,t,n){await fetch(gs(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:t,tags:n})})}async function gF(e,t,n){await fetch(`${gs(e)}/${t}/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({summary:"Completed."})})}async function xF(e,t,n){await fetch(`${gs(e)}/${t}/block`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:n})})}async function yF(e,t,n){await fetch(`${gs(e)}/${t}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:n})})}async function bF(e,t){await fetch(`${gs(e)}/${t}/reopen`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}async function vF(e,t){await fetch(`${gs(e)}/reorder`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:t})})}async function wF(e,t){await fetch(`${gs(e)}/${t}`,{method:"DELETE"})}async function eN(e,t){const n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const s=await n.text().catch(()=>"");let i=null;try{i=s?JSON.parse(s):null}catch{}const l=(i==null?void 0:i.error)||s||`HTTP ${n.status}`,c=new Error(l);throw c.status=n.status,c}return n.json().catch(()=>({}))}async function jF(e,t){return await eN(`${gs(e)}/promote`,t)}async function kF(e,t,n){await eN(`${gs(e)}/${t}/move`,{to:n})}const Jw=[{value:"open",icon:"○",label:"Open",color:"text-muted-foreground"},{value:"in_progress",icon:"◉",label:"In Progress",color:"text-status-in-progress-foreground"},{value:"completed",icon:"✓",label:"Completed",color:"text-status-completed-foreground"},{value:"blocked",icon:"✕",label:"Blocked",color:"text-status-blocked-foreground"}];function dx({status:e,onChange:t}){const[n,s]=f.useState(!1),i=f.useRef(null);f.useEffect(()=>{if(!n)return;function c(u){i.current&&!i.current.contains(u.target)&&s(!1)}return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[n]);const l=Jw.find(c=>c.value===e);return r.jsxs("div",{className:"relative",ref:i,onClick:c=>c.stopPropagation(),children:[r.jsx("button",{onClick:()=>s(!n),className:`text-lg leading-none ${l.color} hover:opacity-70 transition`,title:l.label,children:l.icon}),n&&r.jsx("div",{className:"absolute left-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border/70 bg-background shadow-lg py-1",children:Jw.filter(c=>c.value!==e).map(c=>r.jsxs("button",{onClick:()=>{t(c.value),s(!1)},className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-foreground/5 transition ${c.color}`,children:[r.jsx("span",{className:"text-base leading-none",children:c.icon}),r.jsx("span",{children:c.label})]},c.value))})]})}const tN="__one_off__";function fx({open:e,selectedIds:t,scope:n,onOpenChange:s,onDone:i,defaultProject:l,defaultTitle:c,allowOneOff:u=!0}){const[p,m]=f.useState("new"),[h,x]=f.useState(!1),[y,b]=f.useState(null),[E,k]=f.useState(null),[w,j]=f.useState(null),[C,N]=f.useState(""),[T,L]=f.useState(""),[P,$]=f.useState(""),[F,X]=f.useState(""),[te,D]=f.useState(""),[W,Z]=f.useState(""),[M,K]=f.useState(null),[J,le]=f.useState(!1),_=t.length>1;f.useEffect(()=>{if(!e){m("new"),b(null),N(""),L(""),$(""),X(""),D(""),Z(""),K(null);return}N(l??""),L(c??"");let ue=!1;return(async()=>{try{const me=await fetch("/api/projects");if(!me.ok)throw new Error(`HTTP ${me.status}`);const U=await me.json();ue||k(U.filter(se=>!se.archived))}catch(me){ue||j(me instanceof Error?me.message:String(me))}})(),()=>{ue=!0}},[e,l,c]),f.useEffect(()=>{if(!te){K(null);return}let ue=!1;return le(!0),(async()=>{try{const me=await fetch(`/api/projects/${encodeURIComponent(te)}/assignments`);if(!me.ok)throw new Error(`HTTP ${me.status}`);const U=await me.json();ue||K(U)}catch{ue||K([])}finally{ue||le(!1)}})(),()=>{ue=!0}},[te]);const G=f.useMemo(()=>E??[],[E]);async function A(ue){if(ue.preventDefault(),!C){b('Pick a target project (or "One-off").');return}if(_&&!T.trim()){b("Title is required when promoting multiple todos.");return}const me=C===tN?{oneOff:!0}:{project:C};if(n.kind==="aggregate"){const se={groups:n.groups,mode:"new-assignment",target:me,title:T.trim()||void 0,type:P.trim()||void 0,priority:F||void 0};await I(se);return}const U={todoIds:t,mode:"new-assignment",target:me,title:T.trim()||void 0,type:P.trim()||void 0,priority:F||void 0};await ee(U)}async function B(ue){if(ue.preventDefault(),n.kind==="aggregate"){b("Existing-assignment mode does not support cross-workspace selections yet.");return}if(!te||!W){b("Pick both project and assignment.");return}const me={todoIds:t,mode:"to-assignment",target:{assignment:`${te}/${W}`}};await ee(me)}async function ee(ue){x(!0),b(null);try{let me;if(n.kind==="workspace")me=await oR(n.workspace,ue);else if(n.kind==="project")me=await jF(n.projectId,ue);else throw new Error("Aggregate scope requires runBulkMutation.");i(me),s(!1)}catch(me){b(me instanceof Error?me.message:String(me))}finally{x(!1)}}async function I(ue){x(!0),b(null);try{const me=await iR(ue);i(me),s(!1)}catch(me){b(me instanceof Error?me.message:String(me))}finally{x(!1)}}return r.jsx(sr,{open:e,onOpenChange:ue=>h?void 0:s(ue),children:r.jsxs(Wn,{className:"max-w-xl",children:[r.jsxs(Jr,{children:[r.jsxs(Kn,{children:["Promote ",t.length," todo",t.length===1?"":"s"]}),r.jsxs(ms,{children:["Convert the selected todo",t.length===1?"":"s"," to a new or existing assignment. Source todo",t.length===1?"":"s"," will be marked ",r.jsx("strong",{children:"in progress"})," and linked to the new assignment (auto-completed when the assignment closes)."]})]}),r.jsxs(G1,{value:p,onValueChange:ue=>m(ue),children:[r.jsxs(Y1,{className:"flex gap-2 rounded-md border border-border/70 bg-card/80 p-1 mb-4",children:[r.jsx(jh,{value:"new",className:Ee("inline-flex items-center gap-2 rounded-sm px-3 py-1.5 text-sm font-medium text-muted-foreground transition","data-[state=active]:bg-foreground data-[state=active]:text-background"),children:"New assignment"}),r.jsx(jh,{value:"existing",className:Ee("inline-flex items-center gap-2 rounded-sm px-3 py-1.5 text-sm font-medium text-muted-foreground transition","data-[state=active]:bg-foreground data-[state=active]:text-background"),children:"Existing assignment"})]}),r.jsx(kh,{value:"new",children:r.jsxs("form",{onSubmit:A,className:"space-y-4",children:[r.jsx($i,{label:"Target project",children:r.jsx(Xw,{value:C,onChange:N,projects:G,error:w,disabled:h,allowOneOff:u})}),r.jsx($i,{label:_?"Title (required)":"Title (defaults to first todo)",children:r.jsx("input",{type:"text",value:T,onChange:ue=>L(ue.target.value),disabled:h,className:"editor-textarea w-full bg-background/95 font-sans"})}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx($i,{label:"Type",children:r.jsx("input",{type:"text",value:P,onChange:ue=>$(ue.target.value),placeholder:"feature",disabled:h,className:"editor-textarea w-full bg-background/95 font-sans"})}),r.jsx($i,{label:"Priority",children:r.jsxs("select",{value:F,onChange:ue=>X(ue.target.value),disabled:h,className:"editor-textarea w-full bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:"—"}),r.jsx("option",{value:"low",children:"low"}),r.jsx("option",{value:"medium",children:"medium"}),r.jsx("option",{value:"high",children:"high"}),r.jsx("option",{value:"critical",children:"critical"})]})})]}),y?r.jsx(Qw,{message:y}):null,r.jsx(Zw,{onCancel:()=>s(!1),submitting:h,submitLabel:"Promote"})]})}),r.jsx(kh,{value:"existing",children:r.jsxs("form",{onSubmit:B,className:"space-y-4",children:[r.jsx($i,{label:"Project",children:r.jsx(Xw,{value:te,onChange:ue=>{D(ue),Z("")},projects:G,error:w,disabled:h})}),r.jsx($i,{label:J?"Assignment (loading...)":"Assignment",children:r.jsxs("select",{value:W,onChange:ue=>Z(ue.target.value),disabled:h||!te||J,className:"editor-textarea w-full bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:te?"Select assignment...":"Pick a project first"}),(M??[]).map(ue=>r.jsxs("option",{value:ue.slug,children:[ue.title," (",ue.status,")"]},ue.slug))]})}),y?r.jsx(Qw,{message:y}):null,r.jsx(Zw,{onCancel:()=>s(!1),submitting:h,submitLabel:"Promote"})]})})]})]})})}function $i({label:e,children:t}){return r.jsxs("label",{className:"block space-y-1.5",children:[r.jsx("span",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:e}),t]})}function Xw({value:e,onChange:t,projects:n,error:s,disabled:i,allowOneOff:l}){return s?r.jsxs("div",{className:"text-sm text-destructive",children:["Failed to load projects: ",s]}):r.jsxs("select",{value:e,onChange:c=>t(c.target.value),disabled:i,className:"editor-textarea w-full bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:"Select project..."}),l?r.jsx("option",{value:tN,children:"One-off (no project)"}):null,n.map(c=>r.jsxs("option",{value:c.slug,children:[c.title," (",c.slug,")"]},c.slug))]})}function Qw({message:e}){return r.jsx("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e})}function Zw({onCancel:e,submitting:t,submitLabel:n}){return r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:e,disabled:t,className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),r.jsx("button",{type:"submit",disabled:t,className:"shell-action bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:t?"Submitting...":n})]})}function nN({open:e,selectedIds:t,scope:n,onOpenChange:s,onDone:i}){const[l,c]=f.useState("project"),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState(!1),[b,E]=f.useState(null),[k,w]=f.useState(null),[j,C]=f.useState(null);f.useEffect(()=>{if(!e){c("project"),p(""),h(""),E(null),w(null);return}let $=!1;return(async()=>{try{const F=await fetch("/api/projects");if(!F.ok)throw new Error(`HTTP ${F.status}`);const X=await F.json();$||C(X.filter(te=>!te.archived))}catch(F){$||w(F instanceof Error?F.message:String(F))}})(),()=>{$=!0}},[e]);const N=f.useMemo(()=>j?n.kind==="project"?j.filter($=>$.slug!==n.projectId):j:[],[j,n]);function T(){if(l==="global")return{global:!0};if(l==="workspace"){const $=u.trim();return $?{workspace:$}:"Workspace name is required."}return m?{project:m}:"Pick a target project."}async function L($,F){try{return n.kind==="workspace"?await aR(n.workspace,$,F):await kF(n.projectId,$,F),{ok:!0}}catch(X){return{ok:!1,error:X instanceof Error?X.message:String(X)}}}async function P($){$.preventDefault(),w(null);const F=T();if(typeof F=="string"){w(F);return}y(!0),E(null);const X=[],te=[];for(const D of t){const W=await L(D,F);W.ok?X.push(D):te.push({id:D,error:W.error})}y(!1),i(),te.length===0?s(!1):E({succeeded:X,failed:te})}return r.jsx(sr,{open:e,onOpenChange:$=>x?void 0:s($),children:r.jsx(Wn,{className:"max-w-xl",children:r.jsxs("form",{onSubmit:P,className:"space-y-4",children:[r.jsxs(Jr,{children:[r.jsxs(Kn,{children:["Move ",t.length," todo",t.length===1?"":"s"]}),r.jsxs(ms,{children:["Move the selected todo",t.length===1?"":"s"," to a different scope. id, tags, branch, timestamps, and plan dir are preserved."]})]}),r.jsxs("fieldset",{className:"space-y-2",disabled:x,children:[r.jsx("legend",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground mb-1",children:"Target scope"}),r.jsx(Wm,{kind:"project",checked:l==="project",onChange:()=>c("project"),label:"Project"}),r.jsx(Wm,{kind:"workspace",checked:l==="workspace",onChange:()=>c("workspace"),label:"Workspace"}),r.jsx(Wm,{kind:"global",checked:l==="global",onChange:()=>c("global"),label:"Global"})]}),l==="project"?r.jsx(ej,{label:"Target project",children:r.jsxs("select",{value:m,onChange:$=>h($.target.value),disabled:x,className:"editor-textarea w-full bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:"Select project..."}),N.map($=>r.jsxs("option",{value:$.slug,children:[$.title," (",$.slug,")"]},$.slug))]})}):null,l==="workspace"?r.jsx(ej,{label:"Target workspace name",children:r.jsx("input",{type:"text",value:u,onChange:$=>p($.target.value),disabled:x,placeholder:"e.g. syntaur",className:"editor-textarea w-full bg-background/95 font-sans"})}):null,k?r.jsx(SF,{message:k}):null,b?r.jsxs("div",{className:"rounded-md border border-warning-foreground/30 bg-warning px-3 py-2 text-sm text-warning-foreground space-y-1",children:[r.jsxs("div",{className:"font-medium",children:["Moved ",b.succeeded.length," of ",t.length,"; ",b.failed.length," failed."]}),r.jsx("ul",{className:"text-xs space-y-0.5",children:b.failed.map($=>r.jsxs("li",{children:["[t:",$.id,"] ",$.error]},$.id))})]}):null,r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:()=>s(!1),disabled:x,className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",children:b?"Close":"Cancel"}),b===null?r.jsx("button",{type:"submit",disabled:x,className:"shell-action bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:x?"Moving...":"Move"}):null]})]})})})}function ej({label:e,children:t}){return r.jsxs("label",{className:"block space-y-1.5",children:[r.jsx("span",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:e}),t]})}function Wm({kind:e,checked:t,onChange:n,label:s}){return r.jsxs("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[r.jsx("input",{type:"radio",name:"move-target-kind",value:e,checked:t,onChange:n}),r.jsx("span",{children:s})]})}function SF({message:e}){return r.jsx("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e})}const NF={open:{icon:"○",cls:"text-muted-foreground",label:"Open"},in_progress:{icon:"◉",cls:"text-status-in-progress-foreground",label:"In progress"},blocked:{icon:"✕",cls:"text-status-blocked-foreground",label:"Blocked"},completed:{icon:"✓",cls:"text-status-completed-foreground",label:"Completed"},mixed:{icon:"◐",cls:"text-muted-foreground",label:"Mixed"}};function CF({bundle:e}){const t=NF[e.derivedStatus.status],{counts:n}=e.derivedStatus;return r.jsxs("div",{className:"border rounded-md p-3 mb-2 bg-card",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("span",{className:`text-lg leading-none ${t.cls}`,title:t.label,children:t.icon}),r.jsxs("span",{className:"font-mono text-sm text-muted-foreground",children:["b:",e.id]}),e.slug&&r.jsx("span",{className:"font-medium",children:e.slug}),r.jsxs("span",{className:"ml-auto text-sm text-muted-foreground",children:[n.completed,"/",n.total," done"]})]}),r.jsxs("div",{className:"mt-2 grid gap-1 text-sm",children:[e.branch&&r.jsxs("div",{className:"text-muted-foreground",children:[r.jsx("span",{className:"font-medium",children:"Branch:"})," ",r.jsx("code",{className:"font-mono",children:e.branch})]}),e.worktreePath&&r.jsxs("div",{className:"text-muted-foreground truncate",children:[r.jsx("span",{className:"font-medium",children:"Worktree:"})," ",r.jsx("code",{className:"font-mono",children:e.worktreePath})]}),e.planDir&&r.jsxs("div",{className:"text-muted-foreground truncate",children:[r.jsx("span",{className:"font-medium",children:"Plan:"})," ",r.jsx("code",{className:"font-mono",children:e.planDir})]})]}),r.jsx("ul",{className:"mt-2 ml-6 text-sm list-disc",children:e.members.map(s=>r.jsxs("li",{className:s.status==="completed"?"line-through text-muted-foreground":"",children:[r.jsxs("span",{className:"font-mono text-xs text-muted-foreground mr-2",children:["t:",s.id]}),s.description]},s.id))})]})}function EF({bundles:e,title:t="Bundles"}){return e.length===0?null:r.jsxs("section",{className:"mb-6",children:[r.jsxs("h3",{className:"text-sm font-medium text-muted-foreground mb-2",children:[t," (",e.length,")"]}),e.map(n=>r.jsx(CF,{bundle:n},n.id))]})}function TF(e){const[t,n]=f.useState(null),[s,i]=f.useState(!0),[l,c]=f.useState(null),u=f.useCallback(async()=>{try{const p=await fetch(`/api/bundles/${encodeURIComponent(e)}`);if(!p.ok)throw new Error(`HTTP ${p.status}`);n(await p.json()),c(null)}catch(p){c(p instanceof Error?p.message:"Failed to fetch bundles")}finally{i(!1)}},[e]);return f.useEffect(()=>{u()},[u]),Zl(p=>{p.type==="todos-updated"&&!p.projectSlug&&u()}),{data:t,loading:s,error:l,refetch:u}}function PF({item:e,copiedId:t,selected:n,onToggleSelected:s,onMoveOne:i,onCycleStatus:l,onStatusChange:c,onCopyId:u,onDelete:p,disabled:m,hotkeyRowProps:h}){const{attributes:x,listeners:y,setNodeRef:b,setActivatorNodeRef:E,transform:k,transition:w,isDragging:j}=ff({id:e.id,disabled:m}),C={transform:ao.Transform.toString(k),transition:w,zIndex:j?50:void 0,position:j?"relative":void 0};return r.jsxs("div",{ref:b,style:C,"data-todo-id":e.id,...h??{},className:`surface-panel flex items-center gap-3 px-3 py-2 cursor-pointer hover:bg-foreground/[0.03] transition ${j?"opacity-50 shadow-lg":""}`,onClick:()=>l(e.id,e.status),children:[r.jsx("input",{type:"checkbox","aria-label":`Select todo ${e.id}`,checked:n,onChange:N=>s(e.id,N),onClick:N=>N.stopPropagation(),className:"h-4 w-4 cursor-pointer accent-foreground"}),!m&&r.jsx("button",{ref:E,...x,...y,className:"cursor-grab active:cursor-grabbing text-muted-foreground/40 hover:text-muted-foreground transition touch-none",onClick:N=>N.stopPropagation(),children:r.jsx(Pd,{className:"h-4 w-4"})}),r.jsx(dx,{status:e.status,onChange:N=>c(e.id,N)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("span",{className:`text-sm ${e.status==="completed"?"line-through text-muted-foreground":"text-foreground"}`,children:e.description}),e.tags.length>0&&r.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:e.tags.map(N=>`#${N}`).join(" ")}),e.session&&r.jsxs("span",{className:"ml-2 text-xs text-info-foreground/70 font-mono",children:["session:",e.session.slice(0,8)]}),r.jsx(rN,{item:e})]}),t===e.id?r.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[r.jsx(As,{className:"h-3 w-3"})," Copied to clipboard"]}):r.jsxs(r.Fragment,{children:[r.jsxs("button",{className:"text-xs text-muted-foreground/60 font-mono hover:text-foreground transition",onClick:N=>u(N,e.id),children:["t:",e.id]}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:N=>u(N,e.id),children:r.jsx(Ll,{className:"h-3 w-3"})}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Move to...",onClick:N=>i(e.id,N),children:r.jsx(Ql,{className:"h-3 w-3"})}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-destructive transition",title:"Delete todo",onClick:N=>p(N,e.id,e.description),children:r.jsx(Hn,{className:"h-3 w-3"})})]})]})}function rN({item:e}){return!(e.branch||e.planDir||e.worktreePath||e.createdAt||e.updatedAt)?null:r.jsxs("span",{className:"inline-flex items-center gap-1 ml-2 align-middle",children:[e.branch?r.jsx(Fo,{delayDuration:120,children:r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-info-foreground/30 bg-info/30 px-1.5 py-0.5 text-[10px] font-mono text-info-foreground",children:[r.jsx(Xh,{className:"h-2.5 w-2.5"}),r.jsx("span",{className:"block min-w-0 max-w-[120px] truncate",children:e.branch})]})}),r.jsx(gr,{children:e.branch})]})}):null,e.planDir?r.jsx(Fo,{delayDuration:120,children:r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),navigator.clipboard.writeText(e.planDir)},className:"inline-flex items-center rounded-full border border-status-completed-foreground/40 bg-status-completed/30 p-1 text-status-completed-foreground hover:bg-status-completed/50","aria-label":"Copy plan directory path",children:r.jsx(Qj,{className:"h-2.5 w-2.5"})})}),r.jsxs(gr,{children:["Plan: ",e.planDir]})]})}):null,e.worktreePath||e.createdAt||e.updatedAt?r.jsx(Fo,{delayDuration:120,children:r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsx("span",{className:"text-[10px] text-muted-foreground/60 cursor-default",children:"·"})}),r.jsx(gr,{children:r.jsxs("div",{className:"space-y-0.5 text-xs font-mono",children:[e.worktreePath?r.jsxs("div",{children:["worktree: ",e.worktreePath]}):null,e.createdAt?r.jsxs("div",{children:["created: ",e.createdAt]}):null,e.updatedAt?r.jsxs("div",{children:["updated: ",e.updatedAt]}):null]})})]})}):null]})}function RF(){const{workspace:e}=Lt(),t=e||"_global",{data:n,loading:s,error:i,refetch:l}=rR(t),{data:c}=TF(t),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState(""),[b,E]=f.useState(""),[k,w]=f.useState(null),[j,C]=f.useState(new Set),[N,T]=f.useState(!1),[L,P]=f.useState(!1),[$,F]=f.useState(null),X=f.useRef(null);fo("list:todos");const te=!!(u.trim()||m||x),D=rf(lo(va,{activationConstraint:{distance:8}}),lo(ba));function W(O,H){O.stopPropagation(),navigator.clipboard.writeText(H),w(H),setTimeout(()=>w(Q=>Q===H?null:Q),1500)}const Z=f.useMemo(()=>{if(!(n!=null&&n.items))return[];const O=new Set;for(const H of n.items)for(const Q of H.tags)O.add(Q);return Array.from(O).sort()},[n]),M=f.useMemo(()=>{if(!(n!=null&&n.items))return[];let O=n.items;if(u.trim()){const H=u.toLowerCase();O=O.filter(Q=>Q.description.toLowerCase().includes(H)||Q.tags.some(ge=>ge.toLowerCase().includes(H))||Q.id.includes(H))}return m&&(O=O.filter(H=>H.status===m)),x&&(O=O.filter(H=>H.tags.includes(x))),O},[n,u,m,x]);f.useEffect(()=>{C(new Set)},[u,m,x,t]);const K=f.useMemo(()=>M.filter(O=>j.has(O.id)).length,[M,j]),J=M.length>0&&K===M.length,le=K>0&&!J;function _(O){C(H=>{const Q=new Set(H);return Q.has(O)?Q.delete(O):Q.add(O),Q})}function G(){C(O=>{const H=new Set(O);if(J)for(const Q of M)H.delete(Q.id);else for(const Q of M)H.add(Q.id);return H})}function A(){C(new Set)}const B=$?[$]:Array.from(j);function ee(){C(new Set),F(null),l()}function I(){C(new Set),l()}async function ue(){b.trim()&&(await lg(t,b.trim()),E(""),l())}const me={open:"in_progress",in_progress:"completed",completed:"open",blocked:"open"};function U(O,H){de(O,me[H]||"open")}async function se(O,H,Q){O.stopPropagation(),window.confirm(`Delete "${Q}"? This can't be undone.`)&&(await I0(t,H),l())}async function de(O,H){switch(H){case"open":await L0(t,O);break;case"in_progress":await $0(t,O);break;case"completed":await A0(t,O);break;case"blocked":await D0(t,O);break}l()}const{hotkeyRowProps:ye}=ec(M,{scope:"list:todos",bindO:!1,onOpen:O=>U(O.id,O.status)});zt({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var O;return(O=X.current)==null?void 0:O.focus()}}),zt({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>l()});const[je,fe]=ps(),Ve=je.get("focus");f.useEffect(()=>{if(!Ve)return;const O=document.querySelector(`[data-todo-id="${window.CSS.escape(Ve)}"]`);if(!O)return;O.scrollIntoView({block:"nearest"}),O.classList.add("ring-2","ring-primary/60");const H=window.setTimeout(()=>{O.classList.remove("ring-2","ring-primary/60"),fe(Q=>{const ge=new URLSearchParams(Q);return ge.delete("focus"),ge})},1500);return()=>window.clearTimeout(H)},[Ve,M.length,fe]);async function pe(O){const{active:H,over:Q}=O;if(!Q||H.id===Q.id||!(n!=null&&n.items))return;const ge=n.items.findIndex(et=>et.id===H.id),Ie=n.items.findIndex(et=>et.id===Q.id);if(ge===-1||Ie===-1)return;const Te=wa(n.items,ge,Ie);await sR(t,Te.map(et=>et.id)),l()}if(s)return r.jsx(ft,{label:"Loading todos..."});if(i)return r.jsx(mt,{error:i});const Re=(n==null?void 0:n.counts)||{open:0,in_progress:0,blocked:0,total:0};return r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[r.jsx(Pn,{label:"Open",value:Re.open,icon:Ar}),r.jsx(Pn,{label:"In Progress",value:Re.in_progress,icon:Ar,tone:"info"}),r.jsx(Pn,{label:"Blocked",value:Re.blocked,icon:ng,tone:"warn"}),r.jsx(Pn,{label:"Total",value:Re.total,icon:Ar})]}),c&&r.jsx(EF,{bundles:c.bundles}),r.jsx("div",{className:"surface-panel p-3",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx("input",{type:"text",placeholder:"Add a todo...",value:b,onChange:O=>E(O.target.value),onKeyDown:O=>O.key==="Enter"&&ue(),className:"h-9 flex-1 rounded-md border border-border/70 bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"}),r.jsxs("button",{onClick:ue,disabled:!b.trim(),className:"inline-flex h-9 items-center gap-1.5 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90 disabled:opacity-40",children:[r.jsx(en,{className:"h-4 w-4"}),"Add"]})]})}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"relative flex-1 max-w-sm",children:[r.jsx(co,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{ref:X,type:"text",placeholder:"Search...",value:u,onChange:O=>p(O.target.value),className:"h-9 w-full rounded-md border border-border/70 bg-background pl-9 pr-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"})]}),r.jsxs("select",{value:m,onChange:O=>h(O.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"",children:"All statuses"}),r.jsx("option",{value:"open",children:"Open"}),r.jsx("option",{value:"in_progress",children:"In Progress"}),r.jsx("option",{value:"completed",children:"Completed"}),r.jsx("option",{value:"blocked",children:"Blocked"})]}),Z.length>0&&r.jsxs("select",{value:x,onChange:O=>y(O.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"",children:"All tags"}),Z.map(O=>r.jsxs("option",{value:O,children:["#",O]},O))]})]}),j.size>0?r.jsxs("div",{className:"surface-panel flex items-center justify-between gap-3 px-3 py-2",children:[r.jsxs("span",{className:"text-sm font-medium",children:[j.size," selected"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>T(!0),className:"shell-action bg-foreground text-background hover:opacity-90",children:"Promote selected"}),r.jsx("button",{type:"button",onClick:()=>{F(null),P(!0)},className:"shell-action",children:"Move to…"}),r.jsx("button",{type:"button",onClick:A,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,M.length===0?r.jsx(ct,{title:"No todos",description:"Add your first todo above."}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-3 px-3 py-1 text-xs text-muted-foreground",children:[r.jsx("input",{type:"checkbox","aria-label":"Select all visible todos",checked:J,ref:O=>{O&&(O.indeterminate=le)},onChange:G,className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsxs("span",{children:["Select all in current filter (",M.length,")"]})]}),r.jsx(cf,{sensors:D,collisionDetection:sf,onDragEnd:pe,children:r.jsx(df,{items:M.map(O=>O.id),strategy:uf,children:r.jsx("div",{className:"space-y-1",children:M.map((O,H)=>r.jsx(PF,{item:O,copiedId:k,selected:j.has(O.id),onToggleSelected:Q=>_(Q),onMoveOne:(Q,ge)=>{ge.stopPropagation(),F(Q),P(!0)},onCycleStatus:U,onStatusChange:de,onCopyId:W,onDelete:se,disabled:te,hotkeyRowProps:ye(H)},O.id))})})})]}),r.jsx(fx,{open:N,selectedIds:Array.from(j),scope:{kind:"workspace",workspace:t},onOpenChange:T,onDone:I}),r.jsx(nN,{open:L,selectedIds:B,scope:{kind:"workspace",workspace:t},onOpenChange:O=>{P(O),O||F(null)},onDone:ee})]})}function AF({item:e,copiedId:t,selected:n,onToggleSelected:s,onMoveOne:i,onCycleStatus:l,onStatusChange:c,onCopyId:u,onDelete:p,disabled:m,hotkeyRowProps:h}){const{attributes:x,listeners:y,setNodeRef:b,setActivatorNodeRef:E,transform:k,transition:w,isDragging:j}=ff({id:e.id,disabled:m}),C={transform:ao.Transform.toString(k),transition:w,zIndex:j?50:void 0,position:j?"relative":void 0};return r.jsxs("div",{ref:b,style:C,"data-todo-id":e.id,...h??{},className:`surface-panel flex items-center gap-3 px-3 py-2 cursor-pointer hover:bg-foreground/[0.03] transition ${j?"opacity-50 shadow-lg":""}`,onClick:()=>l(e.id,e.status),children:[r.jsx("input",{type:"checkbox","aria-label":`Select todo ${e.id}`,checked:n,onChange:N=>s(e.id,N),onClick:N=>N.stopPropagation(),className:"h-4 w-4 cursor-pointer accent-foreground"}),!m&&r.jsx("button",{ref:E,...x,...y,className:"cursor-grab active:cursor-grabbing text-muted-foreground/40 hover:text-muted-foreground transition touch-none",onClick:N=>N.stopPropagation(),children:r.jsx(Pd,{className:"h-4 w-4"})}),r.jsx(dx,{status:e.status,onChange:N=>c(e.id,N)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("span",{className:`text-sm ${e.status==="completed"?"line-through text-muted-foreground":"text-foreground"}`,children:e.description}),e.tags.length>0&&r.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:e.tags.map(N=>`#${N}`).join(" ")}),e.session&&r.jsxs("span",{className:"ml-2 text-xs text-info-foreground/70 font-mono",children:["session:",e.session.slice(0,8)]}),r.jsx(rN,{item:e})]}),t===e.id?r.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[r.jsx(As,{className:"h-3 w-3"})," Copied to clipboard"]}):r.jsxs(r.Fragment,{children:[r.jsxs("button",{className:"text-xs text-muted-foreground/60 font-mono hover:text-foreground transition",onClick:N=>u(N,e.id),children:["t:",e.id]}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:N=>u(N,e.id),children:r.jsx(Ll,{className:"h-3 w-3"})}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Move to...",onClick:N=>i(e.id,N),children:r.jsx(Ql,{className:"h-3 w-3"})}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-destructive transition",title:"Delete todo",onClick:N=>p(N,e.id,e.description),children:r.jsx(Hn,{className:"h-3 w-3"})})]})]})}function DF({projectId:e}){const{data:t,loading:n,error:s,refetch:i}=mF(e),[l,c]=f.useState(""),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState(""),[b,E]=f.useState(null),[k,w]=f.useState(new Set),[j,C]=f.useState(!1),[N,T]=f.useState(!1),[L,P]=f.useState(null),$=f.useRef(null);fo("list:todos");const F=!!(l.trim()||u||m),X=rf(lo(va,{activationConstraint:{distance:8}}),lo(ba));function te(pe,Re){pe.stopPropagation(),navigator.clipboard.writeText(Re),E(Re),setTimeout(()=>E(O=>O===Re?null:O),1500)}const D=f.useMemo(()=>{if(!(t!=null&&t.items))return[];const pe=new Set;for(const Re of t.items)for(const O of Re.tags)pe.add(O);return Array.from(pe).sort()},[t]),W=f.useMemo(()=>{if(!(t!=null&&t.items))return[];let pe=t.items;if(l.trim()){const Re=l.toLowerCase();pe=pe.filter(O=>O.description.toLowerCase().includes(Re)||O.tags.some(H=>H.toLowerCase().includes(Re))||O.id.includes(Re))}return u&&(pe=pe.filter(Re=>Re.status===u)),m&&(pe=pe.filter(Re=>Re.tags.includes(m))),pe},[t,l,u,m]);f.useEffect(()=>{w(new Set)},[l,u,m,e]);const Z=f.useMemo(()=>W.filter(pe=>k.has(pe.id)).length,[W,k]),M=W.length>0&&Z===W.length,K=Z>0&&!M;function J(pe){w(Re=>{const O=new Set(Re);return O.has(pe)?O.delete(pe):O.add(pe),O})}function le(){w(pe=>{const Re=new Set(pe);if(M)for(const O of W)Re.delete(O.id);else for(const O of W)Re.add(O.id);return Re})}function _(){w(new Set)}const G=L?[L]:Array.from(k);function A(){w(new Set),P(null),i()}function B(){w(new Set),i()}async function ee(){x.trim()&&(await hF(e,x.trim()),y(""),i())}const I={open:"in_progress",in_progress:"completed",completed:"open",blocked:"open"};function ue(pe,Re){U(pe,I[Re]||"open")}async function me(pe,Re,O){pe.stopPropagation(),window.confirm(`Delete "${O}"? This can't be undone.`)&&(await wF(e,Re),i())}async function U(pe,Re){switch(Re){case"open":await bF(e,pe);break;case"in_progress":await yF(e,pe);break;case"completed":await gF(e,pe);break;case"blocked":await xF(e,pe);break}i()}const{hotkeyRowProps:se}=ec(W,{scope:"list:todos",bindO:!1,onOpen:pe=>ue(pe.id,pe.status)});zt({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var pe;return(pe=$.current)==null?void 0:pe.focus()}}),zt({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>i()});const[de,ye]=ps(),je=de.get("focus");f.useEffect(()=>{if(!je)return;const pe=document.querySelector(`[data-todo-id="${window.CSS.escape(je)}"]`);if(!pe)return;pe.scrollIntoView({block:"nearest"}),pe.classList.add("ring-2","ring-primary/60");const Re=window.setTimeout(()=>{pe.classList.remove("ring-2","ring-primary/60"),ye(O=>{const H=new URLSearchParams(O);return H.delete("focus"),H},{replace:!0})},1500);return()=>window.clearTimeout(Re)},[je,W.length,ye]);async function fe(pe){const{active:Re,over:O}=pe;if(!O||Re.id===O.id||!(t!=null&&t.items))return;const H=t.items.findIndex(Ie=>Ie.id===Re.id),Q=t.items.findIndex(Ie=>Ie.id===O.id);if(H===-1||Q===-1)return;const ge=wa(t.items,H,Q);await vF(e,ge.map(Ie=>Ie.id)),i()}if(n)return r.jsx(ft,{label:"Loading todos..."});if(s)return r.jsx(mt,{error:s});const Ve=(t==null?void 0:t.counts)||{open:0,in_progress:0,blocked:0,total:0};return r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[r.jsx(Pn,{label:"Open",value:Ve.open,icon:Ar}),r.jsx(Pn,{label:"In Progress",value:Ve.in_progress,icon:Ar,tone:"info"}),r.jsx(Pn,{label:"Blocked",value:Ve.blocked,icon:ng,tone:"warn"}),r.jsx(Pn,{label:"Total",value:Ve.total,icon:Ar})]}),r.jsx("div",{className:"surface-panel p-3",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx("input",{type:"text",placeholder:"Add a todo...",value:x,onChange:pe=>y(pe.target.value),onKeyDown:pe=>pe.key==="Enter"&&ee(),className:"h-9 flex-1 rounded-md border border-border/70 bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"}),r.jsxs("button",{onClick:ee,disabled:!x.trim(),className:"inline-flex h-9 items-center gap-1.5 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90 disabled:opacity-40",children:[r.jsx(en,{className:"h-4 w-4"}),"Add"]})]})}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"relative flex-1 max-w-sm",children:[r.jsx(co,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{ref:$,type:"text",placeholder:"Search...",value:l,onChange:pe=>c(pe.target.value),className:"h-9 w-full rounded-md border border-border/70 bg-background pl-9 pr-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"})]}),r.jsxs("select",{value:u,onChange:pe=>p(pe.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"",children:"All statuses"}),r.jsx("option",{value:"open",children:"Open"}),r.jsx("option",{value:"in_progress",children:"In Progress"}),r.jsx("option",{value:"completed",children:"Completed"}),r.jsx("option",{value:"blocked",children:"Blocked"})]}),D.length>0&&r.jsxs("select",{value:m,onChange:pe=>h(pe.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"",children:"All tags"}),D.map(pe=>r.jsxs("option",{value:pe,children:["#",pe]},pe))]})]}),k.size>0?r.jsxs("div",{className:"surface-panel flex items-center justify-between gap-3 px-3 py-2",children:[r.jsxs("span",{className:"text-sm font-medium",children:[k.size," selected"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>C(!0),className:"shell-action bg-foreground text-background hover:opacity-90",children:"Promote selected"}),r.jsx("button",{type:"button",onClick:()=>{P(null),T(!0)},className:"shell-action",children:"Move to…"}),r.jsx("button",{type:"button",onClick:_,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,W.length===0?r.jsx(ct,{title:"No todos",description:"Add your first todo above."}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-3 px-3 py-1 text-xs text-muted-foreground",children:[r.jsx("input",{type:"checkbox","aria-label":"Select all visible todos",checked:M,ref:pe=>{pe&&(pe.indeterminate=K)},onChange:le,className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsxs("span",{children:["Select all in current filter (",W.length,")"]})]}),r.jsx(cf,{sensors:X,collisionDetection:sf,onDragEnd:fe,children:r.jsx(df,{items:W.map(pe=>pe.id),strategy:uf,children:r.jsx("div",{className:"space-y-1",children:W.map((pe,Re)=>r.jsx(AF,{item:pe,copiedId:b,selected:k.has(pe.id),onToggleSelected:O=>J(O),onMoveOne:(O,H)=>{H.stopPropagation(),P(O),T(!0)},onCycleStatus:ue,onStatusChange:U,onCopyId:te,onDelete:me,disabled:F,hotkeyRowProps:se(Re)},pe.id))})})})]}),r.jsx(fx,{open:j,selectedIds:Array.from(k),scope:{kind:"project",projectId:e},onOpenChange:C,onDone:B}),r.jsx(nN,{open:N,selectedIds:G,scope:{kind:"project",projectId:e},onOpenChange:pe=>{T(pe),pe||P(null)},onDone:A})]})}const $F={title:"Assignment",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},tj=new Set(["title"]);function sN({visibility:e,onChange:t}){const[n,s]=f.useState(!1);function i(c){if(tj.has(c))return;const p=e.hidden.includes(c)?e.hidden.filter(m=>m!==c):[...e.hidden,c];t({hidden:p})}const l=e.hidden.length;return r.jsxs(sr,{open:n,onOpenChange:s,children:[r.jsx(XA,{asChild:!0,children:r.jsxs("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-background",title:"Show or hide table columns",children:[r.jsx(ST,{className:"h-3.5 w-3.5","aria-hidden":"true"}),r.jsxs("span",{children:["Columns",l>0?` (${wm.length-l}/${wm.length})`:""]})]})}),r.jsxs(Wn,{className:"max-w-sm",children:[r.jsx(Jr,{children:r.jsx(Kn,{children:"Columns"})}),r.jsx("div",{className:"space-y-2",children:wm.map(c=>{const u=e.hidden.includes(c),p=tj.has(c);return r.jsxs("label",{className:`flex items-center gap-2 rounded-md px-2 py-1.5 text-sm ${p?"opacity-60":"cursor-pointer hover:bg-background/80"}`,children:[r.jsx("input",{type:"checkbox",checked:!u,onChange:()=>i(c),disabled:p,className:"h-4 w-4 rounded border-border accent-foreground"}),r.jsx("span",{children:$F[c]}),p?r.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"always shown"}):null]},c)})})]})]})}const Zi={...Ml,custom:!1},oN=`view-prefs.cache.v${Ml.version}`;let Wl=LF(),Li=null;const Kl=new Set;let iN=0;function px(){return++iN}function mx(e){return e===iN}function LF(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(oN);if(!e)return null;const t=JSON.parse(e);return t.version!==Ml.version?null:t}catch{return null}}function IF(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(oN,JSON.stringify(e))}catch{}}function hx(e){Wl=e,IF(e);for(const t of Kl)t(e)}function gx(e){if(!e||typeof e!="object")return Zi;const t=e;return t.version!==Ml.version||!t.global||!t.projects?Zi:{version:Ml.version,global:t.global,projects:t.projects,custom:t.custom===!0}}function xx(){if(Li)return Li;const e=px();return Li=fetch("/api/view-prefs").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=gx(t);return mx(e)&&hx(n),Li=null,Wl??n}).catch(()=>(Li=null,Wl??Zi)),Li}function aN(e){const[t,n]=f.useState(()=>Wl??Zi);return f.useEffect(()=>{let s=!1;return xx().then(i=>{s||n(i)}),Kl.add(n),()=>{s=!0,Kl.delete(n)}},[]),Mk(t,e??null)}function OF(){const[e,t]=f.useState(()=>Wl??Zi);return f.useEffect(()=>{let n=!1;return xx().then(s=>{n||t(s)}),Kl.add(t),()=>{n=!0,Kl.delete(t)}},[]),e}async function lN(e){const t=px(),n=await fetch("/api/view-prefs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){const i=await n.json().catch(()=>({error:`HTTP ${n.status}`}));throw new Error(i.error??"Failed to save view-prefs")}const s=gx(await n.json());return mx(t)&&hx(s),s}function cN(e){return lN({global:e})}function uN(e,t){return lN({projects:{[e]:t}})}async function _F(){const e=px(),t=await fetch("/api/view-prefs",{method:"DELETE"});if(!t.ok)throw new Error(`HTTP ${t.status}`);const n=gx(await t.json());return mx(e)&&hx(n),n}const nj=80;function dN({open:e,onOpenChange:t,initialName:n="",onSubmit:s,title:i="Save view"}){const[l,c]=f.useState(n),[u,p]=f.useState(!1),[m,h]=f.useState(null);f.useEffect(()=>{e&&(c(n),h(null),p(!1))},[e,n]);const x=l.trim(),y=x.length>0&&x.length<=nj;return r.jsx(sr,{open:e,onOpenChange:t,children:r.jsx(Wn,{className:"max-w-md",children:r.jsxs("form",{className:"space-y-4",onSubmit:async b=>{if(b.preventDefault(),!(!y||u)){p(!0),h(null);try{await s(x)}catch(E){h(E instanceof Error?E.message:String(E)),p(!1)}}},children:[r.jsx(Jr,{children:r.jsx(Kn,{children:i})}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{type:"text",value:l,autoFocus:!0,required:!0,maxLength:nj,onChange:b=>c(b.target.value),placeholder:"View name",className:"w-full rounded-md border border-border/70 bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"}),m?r.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:m}):null]}),r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:()=>t(!1),className:"shell-action",disabled:u,children:"Cancel"}),r.jsx("button",{type:"submit",disabled:!y||u,className:"shell-action bg-foreground text-background hover:opacity-90 disabled:opacity-50",children:u?"Saving…":"Save"})]})]})})})}function fN({scope:e,loadedViewId:t,onApply:n,onOpenSaveDialog:s}){const{views:i,loading:l}=Cg(),[c,u]=f.useState(!1),p=f.useRef(null);f.useEffect(()=>{if(!c)return;function y(E){p.current&&!p.current.contains(E.target)&&u(!1)}function b(E){E.key==="Escape"&&u(!1)}return document.addEventListener("mousedown",y),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",y),document.removeEventListener("keydown",b)}},[c]);const m=f.useMemo(()=>i.filter(y=>zk(y,e)),[i,e]),h=t?i.find(y=>y.id===t)??null:null,x=l?"Saved views…":h?h.name:"Saved views";return r.jsxs("div",{className:"relative",ref:p,children:[r.jsxs("button",{type:"button",disabled:l,onClick:()=>u(y=>!y),className:"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-background disabled:opacity-50","aria-haspopup":"true","aria-expanded":c,title:"Saved views",children:[r.jsx("span",{className:"max-w-[160px] truncate",children:x}),r.jsx(us,{className:"h-3.5 w-3.5","aria-hidden":"true"})]}),c&&r.jsx("div",{className:"absolute right-0 top-full z-30 mt-1 min-w-[240px] rounded-md border border-border/70 bg-background shadow-lg py-1",children:m.length===0?r.jsxs("div",{className:"px-3 py-3 text-sm text-muted-foreground",children:[r.jsx("p",{className:"mb-2",children:"No saved views yet — Save the current view to start."}),r.jsx("button",{type:"button",onClick:()=>{u(!1),s()},className:"shell-action w-full justify-center",children:"Save current view"})]}):m.map(y=>{const b=y.id===t;return r.jsxs("button",{type:"button",onClick:()=>{u(!1),n(y)},className:Ee("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",b&&"font-semibold text-foreground"),children:[r.jsx("span",{className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:b?r.jsx(As,{className:"h-3.5 w-3.5","aria-hidden":"true"}):null}),r.jsx("span",{className:"truncate",children:y.name})]},y.id)})})]})}const MF={__unassigned__:"Unassigned",__standalone__:"No project"};function Tn({options:e,value:t,onChange:n,allLabel:s="Any",className:i,disabled:l,ariaLabel:c}){const[u,p]=f.useState(!1),m=f.useRef(null),h=f.useRef(null),x=f.useRef([]),y=f.useMemo(()=>{const C=new Set(e.map(T=>T.value)),N=t.filter(T=>!C.has(T)).map(T=>({value:T,label:MF[T]??T}));return[...e,...N]},[e,t]),b=f.useMemo(()=>new Set(t),[t]);f.useEffect(()=>{if(!u)return;function C(N){m.current&&!m.current.contains(N.target)&&p(!1)}return document.addEventListener("mousedown",C),()=>document.removeEventListener("mousedown",C)},[u]),f.useEffect(()=>{var C;u&&((C=x.current[0])==null||C.focus())},[u]);const E=f.useMemo(()=>{if(t.length===0)return s;if(t.length===1){const C=y.find(N=>N.value===t[0]);return C?C.label:t[0]}return`${t.length} selected`},[t,y,s]);function k(C){n(b.has(C)?t.filter(N=>N!==C):[...t,C])}function w(C){var T;const N=Math.max(0,Math.min(C,y.length-1));(T=x.current[N])==null||T.focus()}function j(C){var P;const N=x.current,T=document.activeElement,L=N.findIndex($=>$===T);C.key==="ArrowDown"?(C.preventDefault(),w(L<0?0:L+1)):C.key==="ArrowUp"?(C.preventDefault(),w(L<0?y.length-1:L-1)):C.key==="Home"?(C.preventDefault(),w(0)):C.key==="End"?(C.preventDefault(),w(y.length-1)):C.key==="Escape"&&(C.preventDefault(),p(!1),(P=h.current)==null||P.focus())}return r.jsxs("div",{className:"relative",ref:m,children:[r.jsxs("button",{type:"button",ref:h,disabled:l,"aria-haspopup":"menu","aria-expanded":u,"aria-label":c,onClick:()=>p(C=>!C),onKeyDown:C=>{!u&&(C.key==="ArrowDown"||C.key==="ArrowUp")&&(C.preventDefault(),p(!0))},className:Ee("editor-input inline-flex items-center justify-between gap-1.5 text-left",t.length>0&&"border-foreground/40 text-foreground",i),children:[r.jsx("span",{className:"truncate",children:E}),r.jsx(us,{className:"h-3.5 w-3.5 shrink-0 opacity-60","aria-hidden":"true"})]}),u?r.jsxs("div",{role:"menu","aria-label":c,onKeyDown:j,className:"absolute left-0 top-full z-30 mt-1 max-h-72 min-w-[200px] overflow-auto rounded-md border border-border/70 bg-background py-1 shadow-lg",children:[r.jsxs("div",{className:"flex items-center justify-between gap-2 px-2 pb-1",children:[r.jsx("button",{type:"button",role:"menuitem",className:"text-xs text-muted-foreground hover:text-foreground disabled:opacity-40",disabled:t.length===y.length,onClick:()=>n(y.map(C=>C.value)),children:"Select all"}),r.jsx("button",{type:"button",role:"menuitem",className:"text-xs text-muted-foreground hover:text-foreground disabled:opacity-40",disabled:t.length===0,onClick:()=>n([]),children:"Clear"})]}),y.length===0?r.jsx("p",{className:"px-3 py-1.5 text-xs text-muted-foreground",children:"No options"}):y.map((C,N)=>{const T=b.has(C.value);return r.jsxs("button",{ref:L=>{x.current[N]=L},type:"button",role:"menuitemcheckbox","aria-checked":T,tabIndex:-1,onClick:()=>k(C.value),className:Ee("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",T?"text-foreground":"text-muted-foreground"),children:[r.jsx("span",{className:Ee("flex h-4 w-4 shrink-0 items-center justify-center rounded border",T?"border-foreground bg-foreground text-background":"border-border/70"),"aria-hidden":"true",children:T?r.jsx(As,{className:"h-3 w-3"}):null}),r.jsx("span",{className:"truncate",children:C.label})]},C.value)})]}):null]})}const rj={last_24h:"Last 24 hours",last_7d:"Last 7 days",last_30d:"Last 30 days",last_90d:"Last 90 days",older_7d:"Older than 7 days",older_30d:"Older than 30 days"},FF=["updated","created"];function yx({value:e,onChange:t,className:n,ariaLabel:s="Date range filter"}){const[i,l]=f.useState(!1),c=f.useRef(null),u=(e==null?void 0:e.field)??"updated",p=!!(e&&!e.preset&&(e.from||e.to)),[m,h]=f.useState(p);f.useEffect(()=>h(p),[p]),f.useEffect(()=>{if(!i)return;function j(N){c.current&&!c.current.contains(N.target)&&l(!1)}function C(N){N.key==="Escape"&&l(!1)}return document.addEventListener("mousedown",j),document.addEventListener("keydown",C),()=>{document.removeEventListener("mousedown",j),document.removeEventListener("keydown",C)}},[i]);const x=!!(e&&(e.preset||e.from||e.to)),y=f.useMemo(()=>!x||!e?"Any date":e.preset?`${u}: ${rj[e.preset]??e.preset}`:`${u}: ${e.from||"…"} → ${e.to||"…"}`,[x,e,u]);function b(j){t(e?{...e,field:j}:{field:j,preset:"",from:"",to:""})}function E(j){h(!1),t({field:u,preset:j,from:"",to:""})}function k(){h(!1),t(null)}function w(j,C){const N={field:u,preset:"",from:(e==null?void 0:e.from)??"",to:(e==null?void 0:e.to)??""};t({...N,[j]:C})}return r.jsxs("div",{className:"relative",ref:c,children:[r.jsxs("button",{type:"button","aria-haspopup":"dialog","aria-expanded":i,"aria-label":s,onClick:()=>l(j=>!j),className:Ee("editor-input inline-flex items-center justify-between gap-1.5 text-left",x&&"border-foreground/40 text-foreground",n),children:[r.jsx("span",{className:"truncate",children:y}),r.jsx(us,{className:"h-3.5 w-3.5 shrink-0 opacity-60","aria-hidden":"true"})]}),i?r.jsxs("div",{className:"absolute left-0 top-full z-30 mt-1 w-64 rounded-md border border-border/70 bg-background p-2 shadow-lg",children:[r.jsx("div",{className:"mb-2 inline-flex rounded-md border border-border/60 bg-background/80 p-0.5",children:FF.map(j=>r.jsx("button",{type:"button","aria-pressed":u===j,onClick:()=>b(j),className:Ee("rounded-sm px-2.5 py-1 text-xs font-medium capitalize transition",u===j?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:j},j))}),r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Km,{label:"Any date",selected:!x,onClick:k}),K3.map(j=>r.jsx(Km,{label:rj[j],selected:(e==null?void 0:e.preset)===j,onClick:()=>E(j)},j)),r.jsx(Km,{label:"Custom range…",selected:m,onClick:()=>{h(!0),t({field:u,preset:"",from:(e==null?void 0:e.from)??"",to:(e==null?void 0:e.to)??""})}})]}),m?r.jsxs("div",{className:"mt-2 space-y-1.5 border-t border-border/60 pt-2",children:[r.jsxs("label",{className:"flex items-center justify-between gap-2 text-xs text-muted-foreground",children:["From",r.jsx("input",{type:"date",value:(e==null?void 0:e.from)??"",max:(e==null?void 0:e.to)||void 0,onChange:j=>w("from",j.target.value),className:"editor-input w-40"})]}),r.jsxs("label",{className:"flex items-center justify-between gap-2 text-xs text-muted-foreground",children:["To",r.jsx("input",{type:"date",value:(e==null?void 0:e.to)??"",min:(e==null?void 0:e.from)||void 0,onChange:j=>w("to",j.target.value),className:"editor-input w-40"})]})]}):null]}):null]})}function Km({label:e,selected:t,onClick:n}){return r.jsxs("button",{type:"button",onClick:n,className:Ee("flex w-full items-center justify-between gap-2 rounded px-2 py-1.5 text-left text-sm transition hover:bg-foreground/5",t?"text-foreground":"text-muted-foreground"),children:[r.jsx("span",{children:e}),t?r.jsx(As,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}):null]})}function ql(e){if(!e)return;if(e.preset)return{field:e.field,preset:e.preset};const t=e.from&&e.from.length>0?e.from:void 0,n=e.to&&e.to.length>0?e.to:void 0;if(!t&&!n)return;const s={field:e.field};return t&&(s.from=t),n&&(s.to=n),s}function pN(e){return e?{field:e.field,preset:e.preset??"",from:e.from??"",to:e.to??""}:null}const zF=new Set(["status","type","priority","assignee","project","tags","activity","dateRange","search"]);function BF(e,t){const n={};for(const[s,i]of Object.entries(e))zF.has(s)||(n[s]=i);return{...n,...t}}function bx(e,t,n){return{...e,viewMode:t.viewMode,filters:BF(e.filters,t.filters),sortField:t.sortField,sortDirection:t.sortDirection,listSectionVisibility:{collapsed:[...n.listSectionVisibility.collapsed]},kanbanColumnVisibility:{hidden:[...n.kanbanColumnVisibility.hidden]},tableColumnVisibility:{hidden:[...n.tableColumnVisibility.hidden]}}}function UF(e,t){var m;const n={},s=Je(e.status);s.length&&(n.status=s);const i=Je(e.type);i.length&&(n.type=i);const l=Je(e.priority);l.length&&(n.priority=l);const c=Je(e.assignee);c.length&&(n.assignee=c);const u=Je(e.tags);if(u.length&&(n.tags=u),t&&t!=="all")n.project=[t];else{const h=Je(e.project);h.length&&(n.project=h)}e.activity&&e.activity!=="all"&&(n.activity=e.activity),e.dateRange&&(n.dateRange=e.dateRange);const p=(m=e.search)==null?void 0:m.trim();return p&&(n.search=p),n}function Gl(e){const t={viewMode:e.state.viewMode,filters:UF(e.state.filters,e.context.projectSlug),sortField:e.state.sortField,sortDirection:e.state.sortDirection,listSectionVisibility:{collapsed:[...e.state.listSectionVisibility.collapsed]},kanbanColumnVisibility:{hidden:[...e.state.kanbanColumnVisibility.hidden]},tableColumnVisibility:{hidden:[...e.state.tableColumnVisibility.hidden]}};return{name:e.name.trim(),workspace:e.context.workspace,config:t}}function mN(e,t){var s,i,l,c,u,p,m,h,x,y,b,E,k,w;const{config:n}=e;if((s=t.setViewMode)==null||s.call(t,n.viewMode),(i=t.setStatusFilter)==null||i.call(t,Je(n.filters.status)),(l=t.setTypeFilter)==null||l.call(t,Je(n.filters.type)),(c=t.setPriorityFilter)==null||c.call(t,Je(n.filters.priority)),(u=t.setAssigneeFilter)==null||u.call(t,Je(n.filters.assignee)),(p=t.setProjectFilter)==null||p.call(t,Je(n.filters.project)),(m=t.setTagsFilter)==null||m.call(t,Je(n.filters.tags)),(h=t.setDateRange)==null||h.call(t,pN(n.filters.dateRange)),(x=t.setSearch)==null||x.call(t,n.filters.search??""),t.setActivityFilter){const j=n.filters.activity??"all";t.setActivityFilter(j==="fresh"||j==="stale"?j:"all")}(y=t.setSortField)==null||y.call(t,n.sortField),(b=t.setSortDirection)==null||b.call(t,n.sortDirection),(E=t.setListSectionVisibility)==null||E.call(t,{collapsed:[...n.listSectionVisibility.collapsed]}),(k=t.setKanbanColumnVisibility)==null||k.call(t,{hidden:[...n.kanbanColumnVisibility.hidden]}),(w=t.setTableColumnVisibility)==null||w.call(t,{hidden:[...n.tableColumnVisibility.hidden]})}function hN(e){const t=e.workspace?`/w/${e.workspace}`:"",n=Je(e.config.filters.project);return n.length===1&&n[0]!=="__standalone__"&&Fk(e.config,n[0])?`${t}/projects/${n[0]}?tab=assignments&loadView=${encodeURIComponent(e.id)}`:`${t}/assignments?loadView=${encodeURIComponent(e.id)}`}const VF=["critical","high","medium","low"],Ii={viewMode:"kanban",sortField:"updated",sortDirection:"desc"};function sj(e,t){const{config:n}=Gl({name:"",context:{workspace:t,projectSlug:null},state:{viewMode:e.viewMode,filters:e.filters,sortField:e.sortField,sortDirection:e.sortDirection,listSectionVisibility:{collapsed:[]},kanbanColumnVisibility:{hidden:[]},tableColumnVisibility:{hidden:[]}}});return{workspace:t,config:n}}const HF={last_24h:"last 24 hours",last_7d:"last 7 days",last_30d:"last 30 days",last_90d:"last 90 days",older_7d:"older than 7 days",older_30d:"older than 30 days"};function WF(e){if(e.preset)return`${e.field} ${HF[e.preset]??e.preset}`;const t=e.from??"…",n=e.to??"…";return`${e.field} ${t}→${n}`}function KF(e){var s;const t=[];for(const i of["status","priority","type","assignee","project","tags"]){const l=Je(e[i]);l.length&&t.push(`${i}=${l.join(", ")}`)}e.activity&&e.activity!=="all"&&t.push(`activity=${e.activity}`),e.dateRange&&t.push(WF(e.dateRange));const n=(s=e.search)==null?void 0:s.trim();return n&&t.push(`search="${n}"`),t.join(" · ")||"no filters"}const qF=new Set(["overview","assignments","todos","dependencies","knowledge"]),oj="__unknown_type__";function ij(){const{slug:e,workspace:t}=Lt(),n=on(),s=$t();fo("project"),zt({keys:"a",scope:"project",description:"Create assignment",handler:()=>s(`${n}/projects/${e}/create/assignment`)}),zt({keys:"e",scope:"project",description:"Edit project",handler:()=>s(`${n}/projects/${e}/edit`)});const{data:i,loading:l,error:c,refetch:u}=S0(e),p=qo(),m=Xd(),{data:h}=Ad(),[x,y]=ps(),b=x.get("tab"),E=b&&qF.has(b)?b:"overview";function k(ne){y(Pe=>{const qe=new URLSearchParams(Pe);return ne==="overview"?qe.delete("tab"):qe.set("tab",ne),qe},{replace:!0})}const w=e?`p:${e}`:null,j=aN(w),[C,N]=f.useState(()=>vm(j.defaultView)),[T,L]=f.useState(()=>Je(j.filters.status)),[P,$]=f.useState(()=>Je(j.filters.assignee)),[F,X]=f.useState(()=>Je(j.filters.priority)),[te,D]=f.useState(()=>Je(j.filters.type)),[W,Z]=f.useState(()=>Je(j.filters.tags)),[M,K]=f.useState(null),[J,le]=f.useState(()=>j.grouping),[_,G]=f.useState(()=>j.sortField),[A,B]=f.useState(()=>j.sortDirection),[ee,I]=f.useState(()=>({collapsed:[]})),[ue,me]=f.useState(()=>({hidden:[]})),[U,se]=f.useState(()=>({hidden:[]})),[de,ye]=f.useState(null),[je,fe]=f.useState(!1),[Ve,pe]=f.useState(!1),{toast:Re,showToast:O,dismissToast:H}=da(),Q={kind:"project",slug:e??"",workspace:t??null},ge=x.get("loadView"),{view:Ie,loading:Te,error:et}=na(ge),{view:He,loading:jt,error:Ht}=na(de),st=f.useRef(null);f.useEffect(()=>{de&&!jt&&!Ht&&!He&&ye(null)},[He,Ht,de,jt]),f.useEffect(()=>{ye(null),st.current=null,K(null)},[e,t]),f.useEffect(()=>{N(vm(j.defaultView)),L(Je(j.filters.status)),$(Je(j.filters.assignee)),X(Je(j.filters.priority)),D(Je(j.filters.type)),Z(Je(j.filters.tags)),le(j.grouping),G(j.sortField),B(j.sortDirection)},[e,j.defaultView,j.filters.status,j.filters.assignee,j.filters.priority,j.filters.type,j.filters.tags,j.grouping,j.sortField,j.sortDirection]);const ae=f.useCallback(ne=>{w&&uN(w,ne).catch(Pe=>{console.warn("Failed to persist project view prefs:",Pe)})},[w]),be=f.useCallback(ne=>{N(ne),ae({defaultView:ne})},[ae]),$e=f.useCallback(ne=>{L(ne),ae({filters:{status:ne}})},[ae]),We=f.useCallback(ne=>{$(ne),ae({filters:{assignee:ne}})},[ae]),Xe=f.useCallback(ne=>{X(ne),ae({filters:{priority:ne}})},[ae]),it=f.useCallback(ne=>{D(ne),ae({filters:{type:ne}})},[ae]),Wt=f.useCallback(ne=>{Z(ne),ae({filters:{tags:ne}})},[ae]),xt=f.useCallback(ne=>{le(ne),ae({grouping:ne})},[ae]),tn=f.useCallback(ne=>{G(ne),ae({sortField:ne})},[ae]),St=f.useCallback(ne=>{B(ne),ae({sortDirection:ne})},[ae]),yt=f.useCallback(()=>({viewMode:C,filters:{status:T,priority:F,type:te,assignee:P,tags:W,project:"all",activity:"all",dateRange:ql(M)},sortField:_,sortDirection:A,listSectionVisibility:ee,kanbanColumnVisibility:ue,tableColumnVisibility:U}),[C,T,F,te,P,W,M,_,A,ee,ue,U]),kt=f.useCallback(ne=>{mN(ne,{setViewMode:Pe=>N(vm(Pe)),setStatusFilter:$e,setPriorityFilter:Xe,setTypeFilter:it,setAssigneeFilter:We,setTagsFilter:Wt,setDateRange:K,setSortField:tn,setSortDirection:St,setListSectionVisibility:I,setKanbanColumnVisibility:me,setTableColumnVisibility:se}),ye(ne.id)},[$e,Xe,it,We,Wt,tn,St]),Tt=f.useCallback(ne=>{kt(ne),st.current=ne.id,y(Pe=>{const qe=new URLSearchParams(Pe);return qe.set("loadView",ne.id),qe},{replace:!0})},[kt,y]),ar=f.useCallback(async ne=>{try{const Pe=Gl({name:ne,context:{workspace:t??null,projectSlug:e??null},state:yt()}),qe=await sd(Pe),It=qe.views[qe.views.length-1];ye((It==null?void 0:It.id)??null),It&&(st.current=It.id,y(fn=>{const bt=new URLSearchParams(fn);return bt.set("loadView",It.id),bt},{replace:!0})),fe(!1),pe(!1),O(`Saved view "${ne}"`,"success")}catch(Pe){throw O(Pe instanceof Error?Pe.message:"Failed to save view","error"),Pe}},[yt,y,O,e,t]),lr=f.useCallback(async()=>{if(!(!de||!He))try{const ne=Je(He.config.filters.project)[0]??null,Pe=Gl({name:He.name,context:{workspace:t??null,projectSlug:ne},state:yt()}),qe=bx(He.config,Pe.config,Pe.config);await zd(de,{config:qe}),O("View updated","success")}catch(ne){O(ne instanceof Error?ne.message:"Failed to update view","error")}},[yt,He,de,O,t]);f.useEffect(()=>{if(!ge){st.current=null;return}if(st.current!==ge&&(de&&de!==ge&&ye(null),!Te)){if(et){O("Couldn't load saved view — try again","error");return}if(Ie){if(st.current=ge,!zk(Ie,{kind:"project",slug:e??"",workspace:t??null})){s(hN(Ie),{replace:!0});return}kt(Ie),y(ne=>{const Pe=new URLSearchParams(ne);return Pe.delete("loadView"),Pe},{replace:!0});return}st.current=ge,O("Saved view no longer exists","error"),y(ne=>{const Pe=new URLSearchParams(ne);return Pe.delete("loadView"),Pe},{replace:!0})}},[ge,Ie,Te,et,de,kt,y,O,s,e,t]);function xe(ne){_===ne?St(A==="asc"?"desc":"asc"):(tn(ne),St("asc"))}const Fe=f.useMemo(()=>i?Object.fromEntries(i.assignments.flatMap(ne=>{const Pe=`${n}/projects/${i.slug}/assignments/${ne.slug}`;return[[ne.slug,Pe],[ne.title,Pe]]})):{},[i]);async function Oe(ne){await fetch(`/api/projects/${e}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:ne})}),u()}async function Nt(ne){try{const Pe=await fetch(`/api/projects/${e}/${ne?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!Pe.ok){const qe=await Pe.json().catch(()=>null);O((qe==null?void 0:qe.error)||`HTTP ${Pe.status}`,"error");return}u(),O(ne?"Project archived":"Project restored","success")}catch(Pe){O(Pe instanceof Error?Pe.message:"Failed to update archive state","error")}}async function Rn(ne){await fetch(`/api/projects/${e}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:ne})}),u()}if(l)return r.jsx(ft,{label:"Loading project workspace…"});if(c||!i)return r.jsx(mt,{error:c||"Project not found."});const Kt=(()=>{const ne=new Set;for(const qe of i.assignments)qe.assignee&&ne.add(qe.assignee);const Pe=[{value:"__unassigned__",label:"Unassigned"}];for(const qe of Array.from(ne).sort())Pe.push({value:qe,label:qe});return Pe})(),nn=Array.from(new Set(i.assignments.flatMap(ne=>ne.tags??[]))).sort().map(ne=>({value:ne,label:ne})),Bt=i.assignments.filter(ne=>Mg(ne,{status:T,priority:F,type:te,assignee:P,tags:W,dateRange:ql(M)})),qn=sc(Bt,_,A),ut=new Set(m.definitions.map(ne=>ne.id)),bn=J==="type"?[...m.definitions.map(ne=>({id:ne.id,title:Yi(m,ne.id),description:ne.description})),...Bt.some(ne=>!ne.type||!ut.has(ne.type))?[{id:oj,title:"Other",description:"Assignments with no recognized type."}]:[]]:E1(p.order).map(ne=>({id:ne,title:rc(p,ne),description:Gd(ne)}));function Ct({field:ne,children:Pe}){const qe=_===ne;return r.jsx("th",{className:"pb-3 font-medium",children:r.jsxs("button",{type:"button",onClick:()=>xe(ne),className:"inline-flex items-center gap-1 hover:text-foreground",children:[Pe,qe?A==="asc"?r.jsx(Jj,{className:"h-3 w-3"}):r.jsx(us,{className:"h-3 w-3"}):null]})})}return r.jsxs("div",{className:"space-y-5","data-density":j.density,children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx(yn,{status:i.status}),i.statusOverride&&r.jsx("button",{type:"button",className:"shell-action border-warning-foreground/40 text-warning-foreground",onClick:()=>Oe(null),title:"Clear manual status override and return to derived status",children:"Clear Override"}),r.jsxs("select",{className:"shell-action appearance-none bg-transparent text-sm",value:"",onChange:ne=>{ne.target.value&&Oe(ne.target.value)},title:"Override project status",children:[r.jsx("option",{value:"",children:"Set Status…"}),p.statuses.map(ne=>r.jsx("option",{value:ne.id,children:ne.label},ne.id)),r.jsx("option",{value:"active",children:"Active"})]}),r.jsx("button",{type:"button",className:"shell-action",onClick:()=>Nt(!i.archived),title:i.archived?"Restore this project and its cascade-hidden assignments":"Archive this project (hides it and its assignments from normal views)",children:i.archived?"Restore":"Archive"}),h&&h.workspaces.length>0&&r.jsxs("select",{className:"shell-action appearance-none bg-transparent text-sm",value:"",onChange:ne=>{ne.target.value==="_ungrouped"?Rn(null):ne.target.value&&Rn(ne.target.value)},title:"Move project to a different workspace",children:[r.jsx("option",{value:"",children:"Move to Workspace…"}),h.workspaces.filter(ne=>ne!==i.workspace).map(ne=>r.jsx("option",{value:ne,children:ne},ne)),i.workspace&&r.jsx("option",{value:"_ungrouped",children:"Ungrouped"})]}),r.jsxs(Ce,{className:"shell-action",to:`${n}/projects/${i.slug}/edit`,children:[r.jsx(sv,{className:"h-4 w-4"}),r.jsx("span",{children:"Edit Project"})]}),r.jsxs(Ce,{className:"shell-action bg-foreground text-background hover:opacity-90",to:`${n}/projects/${i.slug}/create/assignment`,children:[r.jsx(en,{className:"h-4 w-4"}),r.jsx("span",{children:"New Assignment"})]}),r.jsx(Ug,{externalIds:i.externalIds}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Created ",On(i.created),". Last source update ",$r(i.updated),"."]})]}),r.jsxs("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-5",children:[r.jsx(Pn,{label:"Assignments",value:i.progress.total}),r.jsx(Pn,{label:"In Progress",value:i.progress.in_progress??0,tone:"info"}),r.jsx(Pn,{label:"Review",value:i.progress.review??0,tone:"info"}),r.jsx(Pn,{label:"Blocked",value:i.progress.blocked??0,tone:"warn"}),r.jsx(Pn,{label:"Completed",value:i.progress.completed??0,tone:"success"})]}),r.jsxs("div",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]",children:[r.jsx("div",{className:"space-y-4",children:r.jsx(Hg,{value:E,onValueChange:k,items:[{value:"overview",label:"Overview",content:r.jsx("div",{className:"space-y-5",children:r.jsx(ze,{title:"Project Overview",children:r.jsx(un,{content:i.body,emptyState:"This project does not have overview content yet."})})})},{value:"assignments",label:"Assignments",count:i.assignments.filter(ne=>!ne.archived).length,content:r.jsx("div",{className:"space-y-5",children:r.jsx(ze,{title:"Assignment Queue",description:"Board and table views over the source assignment files.",actions:r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx(Tn,{ariaLabel:"Status filter",className:"max-w-[170px]",allLabel:"All statuses",options:p.statuses.map(ne=>({value:ne.id,label:ne.label})),value:T,onChange:$e}),r.jsx(Tn,{ariaLabel:"Assignee filter",className:"max-w-[170px]",allLabel:"All assignees",options:Kt,value:P,onChange:We}),r.jsx(Tn,{ariaLabel:"Priority filter",className:"max-w-[170px]",allLabel:"All priorities",options:[{value:"critical",label:"Critical"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}],value:F,onChange:Xe}),r.jsx(Tn,{ariaLabel:"Type filter",className:"max-w-[170px]",allLabel:"All types",options:m.definitions.map(ne=>({value:ne.id,label:Yi(m,ne.id)})),value:te,onChange:it}),r.jsx(Tn,{ariaLabel:"Tags filter",className:"max-w-[170px]",allLabel:"Any tags",options:nn,value:W,onChange:Wt}),r.jsx(yx,{className:"max-w-[190px]",value:M,onChange:K}),C==="kanban"&&r.jsxs("select",{value:J==="type"?"type":"status",onChange:ne=>xt(ne.target.value),className:"editor-input max-w-[170px]",title:"Group kanban by",children:[r.jsx("option",{value:"status",children:"Group: Status"}),r.jsx("option",{value:"type",children:"Group: Type"})]}),r.jsx(Jd,{value:C,onChange:ne=>be(ne),options:[{value:"kanban",label:"Kanban"},{value:"table",label:"Table"}]}),r.jsx(fN,{scope:Q,loadedViewId:de,onApply:Tt,onOpenSaveDialog:()=>{pe(!1),fe(!0)}}),r.jsx("button",{type:"button",onClick:()=>{He?lr():(pe(!1),fe(!0))},className:"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-background",title:He?`Update ${He.name}`:"Save current view",children:He?`Update '${He.name}'`:"Save view"}),He?r.jsx("button",{type:"button",onClick:()=>{pe(!0),fe(!0)},className:"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-background",title:"Save as new view",children:"Save as new…"}):null]}),children:Bt.length===0?r.jsx(ct,{title:"No assignments match these filters",description:"Clear the current filters or create a new assignment for this project.",actions:r.jsx(Ce,{className:"shell-action bg-foreground text-background hover:opacity-90",to:`${n}/projects/${i.slug}/create/assignment`,children:"Create Assignment"})}):C==="kanban"?r.jsx(qd,{columns:bn,items:qn,getItemId:ne=>ne.slug,getColumnId:ne=>J==="type"?ne.type&&ut.has(ne.type)?ne.type:oj:ne.status,dragDisabled:!0,renderCard:ne=>r.jsx(GF,{projectSlug:i.slug,assignment:ne}),emptyMessage:ne=>`No ${ne.title.toLowerCase()} assignments.`,hiddenColumnIds:ue.hidden,onHideColumn:ne=>me(Pe=>({hidden:Pe.hidden.includes(ne)?Pe.hidden.filter(It=>It!==ne):[...Pe.hidden,ne]}))}):(()=>{const ne=new Set(U.hidden),Pe=qe=>qe==="title"||!ne.has(qe);return r.jsxs("div",{className:"overflow-x-auto",children:[r.jsx("div",{className:"mb-3 flex items-center justify-end",children:r.jsx(sN,{visibility:U,onChange:se})}),r.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[Pe("title")?r.jsx(Ct,{field:"title",children:"Assignment"}):null,Pe("status")?r.jsx(Ct,{field:"status",children:"Status"}):null,r.jsx("th",{className:"pb-3 font-medium",children:"Type"}),Pe("priority")?r.jsx(Ct,{field:"priority",children:"Priority"}):null,Pe("assignee")?r.jsx(Ct,{field:"assignee",children:"Assignee"}):null,Pe("dependencies")?r.jsx(Ct,{field:"dependencies",children:"Dependencies"}):null,Pe("created")?r.jsx(Ct,{field:"created",children:"Created"}):null,Pe("updated")?r.jsx(Ct,{field:"updated",children:"Updated"}):null]})}),r.jsx("tbody",{children:qn.map(qe=>r.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[Pe("title")?r.jsx("td",{className:"py-4",children:r.jsx(Ce,{to:`${n}/projects/${i.slug}/assignments/${qe.slug}`,className:"font-semibold text-foreground hover:text-primary",children:qe.title})}):null,Pe("status")?r.jsx("td",{className:"py-4",children:r.jsx(yn,{status:qe.status})}):null,r.jsx("td",{className:"py-4",children:r.jsx(pa,{type:qe.type,compact:!0})}),Pe("priority")?r.jsx("td",{className:"py-4 capitalize text-muted-foreground",children:qe.priority}):null,Pe("assignee")?r.jsx("td",{className:"py-4 text-muted-foreground",children:qe.assignee??"—"}):null,Pe("dependencies")?r.jsx("td",{className:"py-4 text-muted-foreground",children:qe.dependsOn.length}):null,Pe("created")?r.jsx("td",{className:"py-4 text-muted-foreground",children:On(qe.created)}):null,Pe("updated")?r.jsx("td",{className:"py-4 text-muted-foreground",children:On(qe.updated)}):null]},qe.slug))})]})]})})()})})},{value:"todos",label:"Todos",content:r.jsx(DF,{projectId:i.slug})},{value:"dependencies",label:"Dependencies",content:i.dependencyGraph?r.jsx(ze,{title:"Dependency Graph",description:"Rendered from the derived graph when available, with a source-based fallback.",children:r.jsx(uL,{definition:i.dependencyGraph,nodeRoutes:Fe})}):r.jsx(ct,{title:"No dependency graph yet",description:"Dependencies appear here once assignments declare dependsOn relationships."})},{value:"knowledge",label:"Knowledge",content:r.jsxs("div",{className:"grid gap-3 lg:grid-cols-2",children:[r.jsx(ze,{title:"Resources",description:"Shared project references.",actions:r.jsxs(Ce,{className:"shell-action",to:`/resources/new?project=${i.slug}`,children:[r.jsx(en,{className:"h-4 w-4"}),r.jsx("span",{children:"New Resource"})]}),children:i.resources.length===0?r.jsx(ct,{title:"No resources yet",description:"Resources live at the project level and stay available to every assignment."}):r.jsx("div",{className:"space-y-3",children:i.resources.map(ne=>r.jsxs(Ce,{to:`/projects/${i.slug}/resources/${ne.slug}`,className:"block rounded-md border border-border/60 bg-background/80 p-3 transition hover:border-primary/40",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:ne.name}),r.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[ne.category," · ",ne.source]})]},ne.slug))})}),r.jsx(ze,{title:"Memories",description:"Learnings and patterns captured during the project.",actions:r.jsxs(Ce,{className:"shell-action",to:`/memories/new?project=${i.slug}`,children:[r.jsx(en,{className:"h-4 w-4"}),r.jsx("span",{children:"New Memory"})]}),children:i.memories.length===0?r.jsx(ct,{title:"No memories yet",description:"Memories capture patterns discovered during execution so later assignments can reuse them."}):r.jsx("div",{className:"space-y-3",children:i.memories.map(ne=>r.jsxs(Ce,{to:`/projects/${i.slug}/memories/${ne.slug}`,className:"block rounded-md border border-border/60 bg-background/80 p-3 transition hover:border-primary/40",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:ne.name}),r.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[ne.scope," · ",ne.source]})]},ne.slug))})})]})}]})}),r.jsxs("div",{className:"space-y-5",children:[r.jsx(ze,{title:"Progress Summary",children:r.jsx(fd,{progress:i.progress,showLegend:!0})}),r.jsx(ze,{title:"Attention",children:r.jsxs("dl",{className:"space-y-3 text-sm",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("dt",{className:"text-muted-foreground",children:"Blocked"}),r.jsx("dd",{className:"font-semibold text-foreground",children:i.needsAttention.blockedCount})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("dt",{className:"text-muted-foreground",children:"Failed"}),r.jsx("dd",{className:"font-semibold text-foreground",children:i.needsAttention.failedCount})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("dt",{className:"text-muted-foreground",children:"Unanswered questions"}),r.jsx("dd",{className:"font-semibold text-foreground",children:i.needsAttention.openQuestions})]})]})}),r.jsx(ze,{title:"Quick Links",children:r.jsxs("div",{className:"space-y-2 text-sm",children:[r.jsxs(Ce,{className:"flex items-center gap-2 text-primary hover:underline",to:`${n}/projects/${i.slug}/edit`,children:[r.jsx(sv,{className:"h-4 w-4"}),"Edit project source"]}),r.jsxs(Ce,{className:"flex items-center gap-2 text-primary hover:underline",to:`${n}/projects/${i.slug}/create/assignment`,children:[r.jsx(en,{className:"h-4 w-4"}),"Create assignment"]}),r.jsxs(Ce,{className:"flex items-center gap-2 text-primary hover:underline",to:"/help",children:[r.jsx(hT,{className:"h-4 w-4"}),"Review project rules"]}),r.jsxs("button",{type:"button",onClick:()=>k("dependencies"),className:"flex items-center gap-2 text-primary hover:underline",children:[r.jsx(Xh,{className:"h-4 w-4"}),"Jump to dependencies"]})]})}),i.archived?r.jsxs(ze,{title:"Archive Metadata",children:[r.jsxs("p",{className:"text-sm leading-6 text-muted-foreground",children:["Archived ",i.archivedAt?$r(i.archivedAt):"with no timestamp recorded","."]}),i.archivedReason?r.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:i.archivedReason}):null]}):null]})]}),r.jsx(fa,{toast:Re,onDismiss:H}),r.jsx(dN,{open:je,onOpenChange:ne=>{fe(ne),ne||pe(!1)},initialName:Ve&&He?`${He.name} (copy)`:"",title:Ve?"Save as new view":"Save view",onSubmit:ar})]})}function GF({projectSlug:e,assignment:t}){const n=on();return r.jsxs(Ce,{to:`${n}/projects/${e}/assignments/${t.slug}`,className:"vp-card block rounded-lg border border-border/60 bg-background/80 p-3 transition hover:border-primary/40",children:[r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h3",{className:"font-semibold text-foreground",children:t.title}),r.jsxs("p",{className:"inline-flex items-center gap-1.5 font-mono text-xs text-muted-foreground/70",title:t.id,children:[t.id.slice(0,8),r.jsx("span",{onClick:s=>{s.preventDefault(),s.stopPropagation()},children:r.jsx(Dr,{value:t.id})})]}),r.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",On(t.updated)]})]}),r.jsx(yn,{status:t.status})]}),r.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[r.jsx(pa,{type:t.type}),r.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs capitalize text-muted-foreground",children:t.priority}),r.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:t.assignee??"Unassigned"}),r.jsxs("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:[t.dependsOn.length," dependencies"]})]})]})}function gN({session:e,onMarkStopped:t}){const n=`syntaur://open?session=${encodeURIComponent(e.sessionId)}&mode=resume`,s=`syntaur://open?session=${encodeURIComponent(e.sessionId)}&mode=fork`,i="size-3.5",l=Ee("shell-action","inline-flex items-center justify-center px-2 py-1 text-xs","disabled:cursor-not-allowed disabled:opacity-50"),c="inline-flex outline-none focus-visible:ring-1 focus-visible:ring-ring rounded-sm",u=!e.resumeSupported&&!e.forkSupported;return r.jsx(Fo,{delayDuration:200,children:r.jsxs("div",{className:"inline-flex items-center gap-1",children:[u&&r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsx("span",{tabIndex:0,className:c,children:r.jsxs("button",{type:"button",disabled:!0,"aria-disabled":!0,className:l,children:[r.jsx(Bi,{className:i}),r.jsx("span",{children:"Reopen"})]})})}),r.jsx(gr,{side:"top",children:"Reopen unavailable — this agent has no resume/fork command configured"})]}),e.resumeSupported&&(e.isLive?r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsx("span",{tabIndex:0,className:c,children:r.jsxs("button",{type:"button",disabled:!0,"aria-disabled":!0,className:l,children:[r.jsx(Bi,{className:i}),r.jsx("span",{children:"Resume"})]})})}),r.jsx(gr,{side:"top",children:"Session appears active — fork instead to avoid transcript corruption"})]}):r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsxs("a",{href:n,className:l,children:[r.jsx(Bi,{className:i}),r.jsx("span",{children:"Resume"})]})}),r.jsx(gr,{side:"top",children:"Continue this session in its agent (same session id, same transcript)"})]})),e.forkSupported&&r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsxs("a",{href:s,className:l,children:[r.jsx(RT,{className:i}),r.jsx("span",{children:"Fork"})]})}),r.jsx(gr,{side:"top",children:"Branch a new session from this point — safe even when the original is still running"})]}),e.status==="active"&&r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsxs("button",{type:"button",className:l,onClick:()=>t(e.sessionId),children:[r.jsx(tg,{className:i}),r.jsx("span",{children:"Mark stopped"})]})}),r.jsx(gr,{side:"top",children:e.resumeSupported?"Tell the dashboard this session has ended so Resume re-enables":"Tell the dashboard this session has ended"})]})]})})}async function YF(e){await fetch(`/api/agent-sessions/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})})}function xN({sessions:e,loading:t,error:n}){return t&&!e?null:n&&!e?r.jsx(ze,{title:"Agent Sessions",children:r.jsx(ct,{title:"Couldn't load sessions",description:n})}):!e||e.length===0?r.jsx(ze,{title:"Agent Sessions",children:r.jsx(ct,{title:"No agent sessions yet",description:"Sessions appear here when an agent registers one via /grab-assignment or syntaur track-session."})}):r.jsx(ze,{title:"Agent Sessions",children:r.jsx("div",{className:"space-y-2",children:e.map(s=>r.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-sm",children:[r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx(Nd,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),r.jsx("span",{className:"font-medium text-foreground",children:s.agent}),r.jsxs("span",{className:"inline-flex items-center gap-1.5 font-mono text-xs text-muted-foreground",title:s.sessionId,children:[s.sessionId.slice(0,8),r.jsx(Dr,{value:s.sessionId})]})]}),r.jsxs("span",{className:"flex items-center gap-2",children:[r.jsx(yn,{status:s.status}),r.jsx("span",{className:"text-xs text-muted-foreground",children:$r(s.started)})]}),r.jsx(gN,{session:s,onMarkStopped:YF})]},s.sessionId))})})}const qm="Cost / Usage";function yN({summary:e,error:t}){return t&&!e?r.jsx(ze,{title:qm,children:r.jsx(ct,{title:"Couldn't load usage",description:t})}):e?e.lastEventDay===null?r.jsx(ze,{title:qm,children:r.jsx(ct,{title:"No usage recorded yet",description:"Cost and token totals appear here once the usage collector records activity for this assignment."})}):r.jsx(ze,{title:qm,children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(aj,{label:"Total cost",value:Xu(e.totalCost)}),r.jsx(aj,{label:"Total tokens",value:Ju(e.totalTokens)})]}),e.byModel.length>1?r.jsxs("div",{className:"space-y-1.5 border-t border-border pt-3",children:[r.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"By model"}),r.jsx("div",{className:"space-y-1",children:e.byModel.map(n=>r.jsxs("div",{className:"flex items-center justify-between gap-2 text-sm",children:[r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[r.jsx(Td,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),r.jsx("span",{className:"truncate font-mono text-xs text-foreground",title:n.model,children:n.model})]}),r.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[Ju(n.totalTokens)," · ",Xu(n.totalCost)]})]},n.model))})]}):null,r.jsxs("p",{className:"text-xs text-muted-foreground",children:["Last usage recorded ",TP(e.lastEventDay)]})]})}):null}function aj({label:e,value:t}){return r.jsxs("div",{className:"space-y-0.5",children:[r.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:e}),r.jsx("p",{className:"text-lg font-semibold tabular-nums text-foreground",children:t})]})}function bN({open:e,action:t,assignmentTitle:n,loading:s=!1,onConfirm:i,onOpenChange:l}){const[c,u]=f.useState("");f.useEffect(()=>{e||u("")},[e,t==null?void 0:t.command]);const p=f.useMemo(()=>t&&t.command==="block"?"Blocked Reason":"Reason",[t]);if(!t)return null;const m=`${t.label} "${n}"`,h=s?"Applying...":t.label,x=c.trim()||void 0;return r.jsx(sr,{open:e,onOpenChange:y=>s?void 0:l(y),children:r.jsx(Wn,{className:"max-w-xl",children:r.jsxs("form",{className:"space-y-5",onSubmit:y=>{y.preventDefault(),i(x)},children:[r.jsxs(Jr,{children:[r.jsx(Kn,{children:m}),r.jsx(ms,{children:t.description})]}),t.warning?r.jsx("div",{className:"rounded-lg border border-warning-foreground/30 bg-warning px-4 py-3 text-sm text-warning-foreground",children:t.warning}):null,r.jsxs("div",{className:"space-y-2",children:[r.jsx("label",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:p}),r.jsx("textarea",{value:c,onChange:y=>u(y.target.value),autoFocus:!0,rows:4,disabled:s,placeholder:"Optional context for why this assignment is blocked.",className:"editor-textarea min-h-[120px] bg-background/95 font-sans"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"Leave this blank to continue without a written reason."})]}),r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:()=>l(!1),disabled:s,className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),r.jsx("button",{type:"submit",disabled:s,className:"shell-action bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:h})]})]})})})}function ja({open:e,title:t,description:n,confirmLabel:s,cancelLabel:i="Cancel",loading:l=!1,destructive:c=!1,onConfirm:u,onOpenChange:p}){return r.jsx(ed,{open:e,onOpenChange:m=>l?void 0:p(m),children:r.jsxs(Il,{children:[r.jsxs(td,{children:[r.jsx(Ol,{children:t}),r.jsx(_l,{children:n})]}),r.jsxs(nd,{children:[r.jsx(Md,{disabled:l,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:i}),r.jsx(ta,{disabled:l,className:`shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50 ${c?"border-destructive/80 bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-foreground text-background hover:opacity-90"}`,onClick:m=>{m.preventDefault(),u()},children:l?"Working...":s})]})]})})}function Au(e,t){const n=`syntaur://open?${e.kind}=${encodeURIComponent(e.id)}`;return t?`${n}&terminal=${encodeURIComponent(t)}`:n}function vN({target:e,worktreePath:t=null,repository:n=null,size:s="default",title:i}){const l=e.kind==="assignment"&&!t&&!n,[c,u]=f.useState(null),[p,m]=f.useState(null),[h,x]=f.useState(!1),y=e.kind==="assignment"?"Open this assignment in your configured terminal + agent":"Resume this session in its agent",b="Set a workspace path first — see the Workspace Before Code playbook",E=Ee("shell-action",s==="compact"&&"inline-flex items-center justify-center px-2 py-1 text-xs","disabled:cursor-not-allowed disabled:opacity-50");if(l)return r.jsxs("button",{type:"button",disabled:!0,title:b,className:E,"aria-disabled":!0,children:[r.jsx(Bi,{className:"size-3.5"}),r.jsx("span",{children:"Open in agent"})]});async function k(){if(!h){x(!0);try{const j=await fetch("/api/launch/preflight",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e})});if(!j.ok){window.location.href=Au(e);return}const C=await j.json();if(C.ok){window.location.href=Au(e);return}if(C.reason==="workspace-path-invalid"){m(C.message);return}u(C)}catch(j){console.warn("preflight failed, firing without override:",j),window.location.href=Au(e)}finally{x(!1)}}}function w(){c&&(window.location.href=Au(e,c.suggestedFallback),u(null))}return r.jsxs(r.Fragment,{children:[r.jsxs("button",{type:"button",onClick:k,disabled:h,title:i??y,className:E,children:[r.jsx(Bi,{className:"size-3.5"}),r.jsx("span",{children:e.kind==="session"?"Open":"Open in agent"})]}),r.jsx(ed,{open:c!==null,onOpenChange:j=>!j&&u(null),children:r.jsxs(Il,{children:[r.jsxs(td,{children:[r.jsxs(Ol,{children:[c==null?void 0:c.terminal," is not installed"]}),r.jsxs(_l,{children:["Open in ",r.jsx("strong",{children:c==null?void 0:c.suggestedFallback})," instead? You can change the default in"," ",r.jsx(Ce,{to:"/settings",className:"underline hover:text-foreground",onClick:()=>u(null),children:"Settings"}),"."]})]}),r.jsxs(nd,{children:[r.jsx(Md,{className:"shell-action mt-0",children:"Cancel"}),r.jsxs(ta,{className:"shell-action mt-0 bg-foreground text-background hover:opacity-90",onClick:j=>{j.preventDefault(),w()},children:["Open in ",c==null?void 0:c.suggestedFallback]})]})]})}),r.jsx(ed,{open:p!==null,onOpenChange:j=>!j&&m(null),children:r.jsxs(Il,{children:[r.jsxs(td,{children:[r.jsx(Ol,{children:"Can't open in agent"}),r.jsxs(_l,{children:[p," Set a valid worktree or repository for this assignment, then try again."]})]}),r.jsx(nd,{children:r.jsx(ta,{className:"shell-action mt-0 bg-foreground text-background hover:opacity-90",onClick:()=>m(null),children:"OK"})})]})})]})}function JF(e){if(!e.trim())return"Branch name is required.";if(/\s/.test(e))return"Branch name cannot contain whitespace.";if(/[\x00-\x1F\x7F~^:?*[\\]/.test(e))return"Branch name cannot contain any of: ~ ^ : ? * [ \\ or control characters.";if(e.startsWith("-"))return'Branch name cannot start with "-".';if(e.startsWith("/")||e.endsWith("/"))return'Branch name cannot start or end with "/".';if(e.endsWith("."))return'Branch name cannot end with ".".';if(e.includes(".."))return'Branch name cannot contain "..".';if(e.includes("@{"))return'Branch name cannot contain "@{".';if(e==="@")return'Branch name cannot be "@".';for(const t of e.split("/")){if(!t)return'Branch name cannot contain empty path segments (e.g. "a//b").';if(t.startsWith("."))return'Branch name segments cannot start with ".".';if(t.endsWith(".lock"))return'Branch name segments cannot end with ".lock".'}return null}async function wN(e,t,n,s){const i=await fetch(`/api/projects/${e}/assignments/${t}/transitions/${n.command}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s?{reason:s}:{})}),l=await i.json().catch(()=>null);if(!i.ok)throw new Error((l==null?void 0:l.error)||`HTTP ${i.status}`);return l.assignment}async function jN(e,t,n){const s=await fetch(`/api/projects/${e}/assignments/${t}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:n})}),i=await s.json().catch(()=>null);if(!s.ok)throw new Error((i==null?void 0:i.error)||`HTTP ${s.status}`);return i.assignment}async function XF(e,t){const n=await fetch(`/api/projects/${e}/assignments/${t}`,{method:"DELETE"}),s=await n.json().catch(()=>null);if(!n.ok)throw new Error((s==null?void 0:s.error)||`HTTP ${n.status}`)}function kN(e){return e.requiresReason||e.command==="block"}async function QF(e){const t=await fetch(`/api/projects/${e.projectSlug}/assignments/${e.assignmentSlug}/title`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e.title})}),n=await t.json().catch(()=>null);if(!t.ok)throw new Error((n==null?void 0:n.error)||`HTTP ${t.status}`);return n.assignment}async function ZF(e){const t=await fetch(`/api/assignments/${e.id}/title`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e.title})}),n=await t.json().catch(()=>null);if(!t.ok)throw new Error((n==null?void 0:n.error)||`HTTP ${t.status}`);return n.assignment}class SN extends Error{constructor(t,n){super(t),this.stderr=n,this.name="CreateWorktreeError"}}async function NN(e){const t=await e.json().catch(()=>null);return new SN((t==null?void 0:t.error)||`HTTP ${e.status}`,t==null?void 0:t.stderr)}async function e6(e){const t=await fetch(`/api/projects/${e}/repository-candidates`),n=await t.json().catch(()=>null);if(!t.ok)throw new Error((n==null?void 0:n.error)||`HTTP ${t.status}`);return n.candidates}async function t6(e){const t=await fetch(`/api/assignments/${e}/repository-candidates`),n=await t.json().catch(()=>null);if(!t.ok)throw new Error((n==null?void 0:n.error)||`HTTP ${t.status}`);return n.candidates}async function n6(e,t,n){const s=await fetch(`/api/projects/${e}/assignments/${t}/worktree`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!s.ok)throw await NN(s);return(await s.json()).assignment}async function r6(e,t){const n=await fetch(`/api/assignments/${e}/worktree`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw await NN(n);return(await n.json()).assignment}async function pf(e){const t=await e.json().catch(()=>null);if(!e.ok)throw new Error((t==null?void 0:t.error)||`HTTP ${e.status}`);return t}async function s6(e,t,n){const s=await fetch(`/api/projects/${e}/assignments/${t}/repository-branches?repo=${encodeURIComponent(n)}`);return pf(s)}async function o6(e,t){const n=await fetch(`/api/assignments/${e}/repository-branches?repo=${encodeURIComponent(t)}`);return pf(n)}async function i6(e,t){const n=await fetch(`/api/projects/${e}/assignments/${t}/source-assignments`);return(await pf(n)).sourceAssignments}async function a6(e){const t=await fetch(`/api/assignments/${e}/source-assignments`);return(await pf(t)).sourceAssignments}const Gm="w-full rounded-md border border-border/70 bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";function CN({projectSlug:e,assignmentSlug:t,assignmentId:n,defaultBranch:s,defaultParentBranch:i="main",onCreated:l}){const c=e&&t?{kind:"project-nested",projectSlug:e,assignmentSlug:t}:{kind:"standalone",assignmentId:n},[u,p]=f.useState(!1),[m,h]=f.useState("new-branch"),[x,y]=f.useState(null),[b,E]=f.useState(null),[k,w]=f.useState(""),[j,C]=f.useState(!1),[N,T]=f.useState(""),[L,P]=f.useState([]),[$,F]=f.useState(!1),[X,te]=f.useState(null),[D,W]=f.useState(""),[Z,M]=f.useState(null),[K,J]=f.useState(null),[le,_]=f.useState(""),[G,A]=f.useState(s),[B,ee]=f.useState(!1),[I,ue]=f.useState(null);f.useEffect(()=>{if(!u)return;let O=!1;return h("new-branch"),y(null),E(null),w(""),C(!1),T(""),P([]),F(!1),te(null),W(""),M(null),J(null),_(""),A(s),ue(null),(c.kind==="project-nested"?e6(c.projectSlug):t6(c.assignmentId)).then(ge=>{if(!O)if(y(ge),ge.length===0)C(!0);else{const Ie=ge.find(et=>et.source==="project"),Te=ge.find(et=>et.source==="sibling");w((Ie==null?void 0:Ie.path)??(Te==null?void 0:Te.path)??ge[0].path)}}).catch(ge=>{O||(E(ge.message),y([]),C(!0))}),(c.kind==="project-nested"?i6(c.projectSlug,c.assignmentSlug):a6(c.assignmentId)).then(ge=>{O||M(ge)}).catch(ge=>{O||(J(ge.message),M([]))}),()=>{O=!0}},[u,s,i,e,t,n]);const me=m==="branch-off"?(Z??[]).find(O=>O.id===le)??null:null,U=m==="branch-off"?(me==null?void 0:me.repository)??"":j?N.trim():k;f.useEffect(()=>{if(!u||m!=="new-branch")return;if(!U){P([]),te(null),F(!1),W("");return}let O=!1;return F(!0),te(null),W(""),(c.kind==="project-nested"?s6(c.projectSlug,c.assignmentSlug,U):o6(c.assignmentId,U)).then(Q=>{if(O)return;P(Q.branches);const ge=(Q.defaultBranch&&Q.branches.includes(Q.defaultBranch)?Q.defaultBranch:Q.branches.includes(i)?i:Q.branches[0])??"";W(ge),F(!1)}).catch(Q=>{O||(P([]),te(Q.message),F(!1))}),()=>{O=!0}},[u,m,U,i,e,t,n]);const se=JF(G.trim()),de=f.useMemo(()=>!U||!G.trim()?"":`${U.replace(/\/+$/,"")}/.worktrees/${G.trim()}`,[U,G]),ye=x!==null&&x.length===0,je=Z!==null&&Z.length===0,fe=O=>{O!==m&&(h(O),_(""),ue(null),O==="branch-off"&&(W(""),P([]),te(null),F(!1)))},Ve=O=>{_(O);const H=(Z??[]).find(Q=>Q.id===O);W((H==null?void 0:H.branch)??"")},pe=B||se!==null||!U||!D.trim()||(m==="new-branch"?x===null||$:Z===null||!le),Re=async()=>{ee(!0),ue(null);try{const O={repository:U,branch:G.trim(),parentBranch:D.trim()};c.kind==="project-nested"?await n6(c.projectSlug,c.assignmentSlug,O):await r6(c.assignmentId,O),p(!1),l()}catch(O){O instanceof SN?ue({message:O.message,stderr:O.stderr}):O instanceof Error?ue({message:O.message}):ue({message:String(O)})}finally{ee(!1)}};return r.jsxs(sr,{open:u,onOpenChange:O=>B?void 0:p(O),children:[r.jsxs("button",{type:"button",className:"shell-action inline-flex items-center gap-1.5",onClick:()=>p(!0),children:[r.jsx(PT,{className:"h-3.5 w-3.5","aria-hidden":"true"}),r.jsx("span",{children:"Create worktree"})]}),r.jsxs(Wn,{children:[r.jsxs(Jr,{children:[r.jsx(Kn,{children:"Create worktree"}),r.jsxs(ms,{children:["Creates a git worktree at ",r.jsx("code",{children:"<repo>/.worktrees/<branch>"})," and records the workspace fields on this assignment's frontmatter."]})]}),r.jsxs("div",{className:"grid gap-4 text-sm",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-1 rounded-md border border-border/70 p-1",children:[r.jsx("button",{type:"button",disabled:B,onClick:()=>fe("new-branch"),className:`rounded px-2 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed ${m==="new-branch"?"bg-foreground text-background":"text-muted-foreground hover:bg-muted"}`,children:"New branch from repo"}),r.jsx("button",{type:"button",disabled:B,onClick:()=>fe("branch-off"),className:`rounded px-2 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed ${m==="branch-off"?"bg-foreground text-background":"text-muted-foreground hover:bg-muted"}`,children:"Branch off another assignment"})]}),m==="new-branch"?r.jsxs(r.Fragment,{children:[ye?r.jsxs("div",{className:"rounded-md border border-warning-foreground/30 bg-warning px-3 py-2 text-xs text-warning-foreground",children:["No repositories configured for this project. Enter a repo path below, or add a"," ",r.jsx("code",{children:"repositories:"})," list to ",r.jsx("code",{children:"project.md"}),"."]}):null,b?r.jsxs("div",{className:"rounded-md border border-error-foreground/30 bg-error px-3 py-2 text-xs text-error-foreground",children:["Could not load repository candidates: ",b]}):null,r.jsxs("label",{className:"grid gap-1",children:[r.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Repository"}),r.jsx("select",{className:Gm,value:k,onChange:O=>w(O.target.value),disabled:B||x===null||j,children:(x??[]).map(O=>r.jsxs("option",{value:O.path,children:[O.path,O.source==="project"?" (project)":O.sourceAssignmentSlug?` (sibling — ${O.sourceAssignmentSlug})`:" (sibling)"]},`${O.source}:${O.path}`))}),ye?null:r.jsx("button",{type:"button",className:"justify-self-start text-[11px] text-muted-foreground underline underline-offset-2 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:B,onClick:()=>C(O=>!O),children:j?"Use a listed repository":"Enter a custom repository path (advanced)"}),j?r.jsx("input",{className:"mt-1 w-full rounded-md border border-border/70 bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",type:"text",placeholder:"/absolute/path/to/repo",value:N,onChange:O=>T(O.target.value),disabled:B}):null]}),r.jsxs("label",{className:"grid gap-1",children:[r.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Parent branch"}),r.jsx("select",{className:Gm,value:D,onChange:O=>W(O.target.value),disabled:B||$||L.length===0,children:$?r.jsx("option",{value:"",children:"Loading branches…"}):L.length===0?r.jsx("option",{value:"",children:X?"Could not load branches":U?"No branches found":"— pick a repository —"}):L.map(O=>r.jsx("option",{value:O,children:O},O))}),X?r.jsxs("span",{className:"text-[11px] text-error-foreground",children:["Could not load branches: ",X]}):null]})]}):r.jsxs(r.Fragment,{children:[K?r.jsxs("div",{className:"rounded-md border border-error-foreground/30 bg-error px-3 py-2 text-xs text-error-foreground",children:["Could not load assignments: ",K]}):null,je?r.jsx("div",{className:"rounded-md border border-warning-foreground/30 bg-warning px-3 py-2 text-xs text-warning-foreground",children:"No other assignments with a configured workspace to branch off. Create a worktree for one first, or use “New branch from repo”."}):r.jsxs("label",{className:"grid gap-1",children:[r.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Source assignment"}),r.jsxs("select",{className:Gm,value:le,onChange:O=>Ve(O.target.value),disabled:B||Z===null,children:[r.jsx("option",{value:"",children:"— select an assignment —"}),(Z??[]).map(O=>r.jsxs("option",{value:O.id,children:[O.title," (",O.branch,")"]},O.id))]})]}),me?r.jsxs("div",{className:"grid gap-2 rounded-md border border-border/70 bg-muted/40 px-3 py-2 text-xs",children:[r.jsxs("div",{className:"grid gap-0.5",children:[r.jsx("span",{className:"font-medium text-muted-foreground",children:"Repository (from source)"}),r.jsx("code",{className:"break-all",children:me.repository})]}),r.jsxs("div",{className:"grid gap-0.5",children:[r.jsx("span",{className:"font-medium text-muted-foreground",children:"Parent branch (from source)"}),r.jsx("code",{children:me.branch})]})]}):null]}),r.jsxs("label",{className:"grid gap-1",children:[r.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"New branch name"}),r.jsx("input",{className:"w-full rounded-md border border-border/70 bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",type:"text",value:G,onChange:O=>A(O.target.value),disabled:B}),se?r.jsx("span",{className:"text-[11px] text-error-foreground",children:se}):null]}),r.jsxs("div",{className:"grid gap-1",children:[r.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Worktree path"}),r.jsx("code",{className:"rounded-md border border-border bg-muted px-2 py-1 text-xs break-all",children:de||r.jsx("span",{className:"opacity-60",children:"— pick a repo & branch —"})})]}),I?r.jsxs("div",{className:"rounded-md border border-error-foreground/30 bg-error px-3 py-2 text-xs text-error-foreground",children:[r.jsx("div",{className:"font-medium",children:I.message}),I.stderr?r.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-[11px] opacity-90",children:I.stderr}):null]}):null]}),r.jsxs(Ds,{children:[r.jsx(ZA,{disabled:B,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),r.jsx("button",{type:"button",disabled:pe,onClick:()=>void Re(),className:"shell-action mt-0 bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:B?"Working…":"Create worktree"})]})]})]})}function l6(e){const t=e.split(`
|
|
533
|
+
`),n=t.findIndex(c=>/^##\s+Acceptance Criteria\s*$/i.test(c.trim()));if(n===-1)return{acceptanceCriteria:[],summaryBody:e};let s=t.length;for(let c=n+1;c<t.length;c+=1)if(/^#{1,2}\s+\S/.test(t[c].trim())){s=c;break}const i=t.slice(n+1,s).map(c=>c.match(/^\s*[-*]\s+\[( |x|X)\]\s+(.*)$/)).filter(c=>!!c).map(c=>({checked:c[1].toLowerCase()==="x",text:c[2].trim()})),l=[...t.slice(0,n),...t.slice(s)].join(`
|
|
534
|
+
`).replace(/\n{3,}/g,`
|
|
535
|
+
|
|
536
|
+
`).trim();return{acceptanceCriteria:i,summaryBody:l}}function c6(e){const t=e.split(`
|
|
537
|
+
`),n=t.findIndex(c=>/^##\s+Todos\s*$/i.test(c.trim()));if(n===-1)return{hasSection:!1,todosMarkdown:"",remaining:e};let s=t.length;for(let c=n+1;c<t.length;c+=1)if(/^#{1,2}\s+\S/.test(t[c].trim())){s=c;break}const i=t.slice(n+1,s).join(`
|
|
538
|
+
`).replace(/<!--[\s\S]*?-->/g,"").replace(/\n{3,}/g,`
|
|
539
|
+
|
|
540
|
+
`).trim(),l=[...t.slice(0,n),...t.slice(s)].join(`
|
|
541
|
+
`).replace(/\n{3,}/g,`
|
|
542
|
+
|
|
543
|
+
`).trim();return{hasSection:!0,todosMarkdown:i,remaining:l}}function u6({projectSlug:e,dependencies:t,blockedReason:n}){const[s,i]=f.useState(!1);if(t.length===0)return null;const l=t.filter(u=>u.status!=="completed"&&u.status!=="review"),c=l.length===0;return c&&!s?r.jsxs("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center gap-2 rounded-lg border border-success-foreground/30 bg-success/70 px-4 py-2.5 text-left transition hover:bg-success",children:[r.jsx(Yh,{className:"h-4 w-4 shrink-0 text-success-foreground"}),r.jsxs("span",{className:"text-sm font-medium text-success-foreground",children:["All ",t.length," ",t.length===1?"dependency":"dependencies"," resolved"]}),r.jsx(us,{className:"ml-auto h-4 w-4 text-success-foreground"})]}):r.jsxs("div",{className:"space-y-3",children:[l.length>0&&r.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-warning-foreground/30 bg-warning px-4 py-3",children:[r.jsx(sh,{className:"mt-0.5 h-4 w-4 shrink-0 text-warning-foreground"}),r.jsxs("div",{className:"text-sm text-warning-foreground",children:[r.jsxs("strong",{children:[l.length," ",l.length===1?"dependency is":"dependencies are"," not yet completed."]}),n&&r.jsxs("p",{className:"mt-1 text-warning-foreground/80",children:["Blocked reason: ",n]})]})]}),r.jsx(ze,{title:"Dependencies",description:`${t.length-l.length} of ${t.length} resolved`,actions:c?r.jsx("button",{type:"button",onClick:()=>i(!1),className:"text-xs text-muted-foreground hover:text-foreground",children:"Collapse"}):void 0,children:r.jsx("div",{className:"divide-y divide-border/40",children:t.map(u=>r.jsxs(Ce,{to:`/projects/${e}/assignments/${u.slug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[r.jsx(yn,{status:u.status}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:u.title}),r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:u.slug})]}),u.assignee&&r.jsx("span",{className:"hidden text-xs text-muted-foreground sm:inline",children:u.assignee}),r.jsx(Yu,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},u.slug))})})]})}function d6({links:e}){const t=on();if(e.length===0)return null;const n=e.filter(i=>!i.isReverse),s=e.filter(i=>i.isReverse);return r.jsx(ze,{title:"Linked Assignments",description:`${e.length} ${e.length===1?"link":"links"}`,children:r.jsxs("div",{className:"divide-y divide-border/40",children:[n.map(i=>r.jsxs(Ce,{to:`${t}/projects/${i.projectSlug}/assignments/${i.assignmentSlug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[r.jsx(Gj,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),r.jsx(yn,{status:i.status}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:i.title}),r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:i.slug})]}),r.jsx(Yu,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},`fwd-${i.slug}`)),s.map(i=>r.jsxs(Ce,{to:`${t}/projects/${i.projectSlug}/assignments/${i.assignmentSlug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[r.jsx(qj,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),r.jsx(yn,{status:i.status}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:i.title}),r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:i.slug})]}),r.jsx(Yu,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},`rev-${i.slug}`))]})})}function f6(e){const t=new Map;for(const s of e)t.set(s.id,{entry:s,replies:[]});const n=[];for(const s of e){const i=t.get(s.id);s.replyTo&&t.has(s.replyTo)?t.get(s.replyTo).replies.push(i):n.push(i)}return n}function p6(e,t){return e===null?`/api/assignments/${encodeURIComponent(t)}/comments`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments`}function EN({projectSlug:e,assignmentSlug:t,entries:n}){const[s,i]=f.useState(n);f.useEffect(()=>{i(n)},[n]);const l=f.useMemo(()=>f6(s),[s]),[c,u]=f.useState(""),[p,m]=f.useState("note"),[h,x]=f.useState(!1),[y,b]=f.useState(null);async function E(w){var N;if(w.preventDefault(),!c.trim())return;x(!0),b(null);const j=`tmp-${Date.now()}`,C={id:j,timestamp:new Date().toISOString(),author:"human",type:p,body:c,resolved:p==="question"?!1:void 0};i(T=>[...T,C]);try{const T=await fetch(p6(e,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:c,type:p})});if(!T.ok){const $=await T.text();throw new Error($||`HTTP ${T.status}`)}const L=await T.json().catch(()=>null),P=(N=L==null?void 0:L.comment)==null?void 0:N.id;i($=>$.map(F=>F.id===j?{...F,id:P??F.id}:F)),u(""),window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(T){b(T instanceof Error?T.message:String(T)),i(L=>L.filter(P=>P.id!==j))}finally{x(!1)}}async function k(w,j){i(C=>C.map(N=>N.id===w?{...N,resolved:j}:N));try{const C=e===null?`/api/assignments/${encodeURIComponent(t)}/comments/${encodeURIComponent(w)}/resolved`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments/${encodeURIComponent(w)}/resolved`,N=await fetch(C,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({resolved:j})});if(!N.ok)throw new Error(`HTTP ${N.status}`);window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(C){b(C instanceof Error?C.message:String(C)),i(N=>N.map(T=>T.id===w?{...T,resolved:!j}:T))}}return r.jsx(ze,{title:"Comments",description:"Threaded questions, notes, and feedback. Questions can be resolved once answered.",children:r.jsxs("div",{className:"space-y-4",children:[l.map(w=>r.jsx(TN,{node:w,onToggleResolved:k,depth:0},w.entry.id)),r.jsxs("form",{onSubmit:E,className:"mt-6 space-y-2 border-t border-border pt-4",children:[r.jsx("label",{className:"block text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Add comment"}),r.jsx("textarea",{value:c,onChange:w=>u(w.target.value),className:"w-full rounded border border-border bg-background p-2 text-sm",rows:3,placeholder:"Ask a question, leave a note, or give feedback…"}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("select",{value:p,onChange:w=>m(w.target.value),className:"rounded border border-border bg-background px-2 py-1 text-xs",children:[r.jsx("option",{value:"note",children:"note"}),r.jsx("option",{value:"question",children:"question"}),r.jsx("option",{value:"feedback",children:"feedback"})]}),r.jsx("button",{type:"submit",disabled:h||!c.trim(),className:"shell-action",children:h?"Posting…":"Post comment"}),y?r.jsx("span",{className:"text-xs text-error-foreground",children:y}):null]})]})]})})}function TN({node:e,depth:t,onToggleResolved:n}){const{entry:s,replies:i}=e,l=s.type==="question";return r.jsxs("div",{className:Ee("space-y-2",t>0&&"ml-4 border-l border-border pl-4"),children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[r.jsx("span",{className:"font-mono",children:s.id}),r.jsx("span",{children:"·"}),r.jsx("span",{children:s.timestamp}),r.jsx("span",{children:"·"}),r.jsx("span",{className:"font-medium text-foreground",children:s.author}),r.jsx("span",{children:"·"}),r.jsx("span",{className:Ee("rounded px-1.5 py-0.5 font-mono text-[10px] uppercase",l&&"bg-warning text-warning-foreground",s.type==="feedback"&&"bg-info text-info-foreground",s.type==="note"&&"bg-muted text-muted-foreground"),children:s.type}),l?r.jsxs("button",{type:"button",onClick:()=>n(s.id,!s.resolved),className:Ee("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium",s.resolved?"bg-success text-success-foreground hover:bg-success/80":"bg-muted text-muted-foreground hover:bg-muted/80"),title:s.resolved?"Mark unresolved":"Mark resolved",children:[s.resolved?r.jsx(Yh,{className:"h-3 w-3"}):r.jsx(vT,{className:"h-3 w-3"}),s.resolved?"resolved":"open"]}):null,s.replyTo?r.jsxs("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[r.jsx(zT,{className:"h-3 w-3"}),s.replyTo]}):null]}),r.jsx(un,{content:s.body}),i.length>0?r.jsx("div",{className:"space-y-2",children:i.map(c=>r.jsx(TN,{node:c,depth:t+1,onToggleResolved:n},c.entry.id))}):null]})}const m6=["review","complete","shape","plan-ready","implement","unblock","start","block","fail","reopen"];function lj(){var Wt,xt,tn,St,yt,kt,Tt,ar,lr;const{slug:e,aslug:t}=Lt(),n=$t(),s=on(),[i,l]=ps(),[c,u]=f.useState(null),{toast:p,showToast:m,dismissToast:h}=da(),[x,y]=f.useState(null),[b,E]=f.useState(null),[k,w]=f.useState(null),[j,C]=f.useState(null),[N,T]=f.useState(!1),[L,P]=f.useState(!1),[$,F]=f.useState(0),X=i.get("tab")??"summary",te=qo(),{data:D,loading:W,error:Z,refetch:M}=FP(e,t),{data:K}=S0(e),{data:J}=ag(),{data:le,loading:_,error:G}=BP(e,t),{data:A,loading:B,error:ee}=VP(e,t),I=f.useMemo(()=>{if(!D||!K)return[];const xe=new Map(K.assignments.map(Fe=>[Fe.slug,Fe]));return D.dependsOn.map(Fe=>{const Oe=xe.get(Fe);return{slug:Fe,title:(Oe==null?void 0:Oe.title)??Fe,status:(Oe==null?void 0:Oe.status)??"pending",priority:(Oe==null?void 0:Oe.priority)??"medium",assignee:(Oe==null?void 0:Oe.assignee)??null}})},[D,K]),ue=I.filter(xe=>xe.status!=="completed"&&xe.status!=="review");fo("assignment");const me=f.useMemo(()=>((K==null?void 0:K.assignments)??[]).map(xe=>xe.slug),[K]),U=t?me.indexOf(t):-1,se=U>0?me[U-1]:null,de=U>=0&&U<me.length-1?me[U+1]:null,ye=`${s}/projects/${e}/assignments/${t}`;zt({keys:"e",scope:"assignment",description:"Edit assignment",handler:()=>n(`${ye}/edit`)}),zt({keys:"p",scope:"assignment",description:"Edit plan",handler:()=>n(`${ye}/plan/edit`)}),zt({keys:"h",scope:"assignment",description:"Append handoff",handler:()=>n(`${ye}/handoff/edit`)}),zt({keys:"d",scope:"assignment",description:"Append decision record",handler:()=>n(`${ye}/decision-record/edit`)}),zt({keys:"s",scope:"assignment",description:"Edit scratchpad",handler:()=>n(`${ye}/scratchpad/edit`)}),zt({keys:"[",scope:"assignment",description:"Previous assignment in project",enabled:!!se,handler:()=>se&&n(`${s}/projects/${e}/assignments/${se}`)}),zt({keys:"]",scope:"assignment",description:"Next assignment in project",enabled:!!de,handler:()=>de&&n(`${s}/projects/${e}/assignments/${de}`)});const je=f.useMemo(()=>D?l6(D.body):{acceptanceCriteria:[],summaryBody:""},[D]),fe=f.useMemo(()=>c6(je.summaryBody),[je.summaryBody]),Ve=je.acceptanceCriteria,pe=Ve.filter(xe=>xe.checked).length,Re=Ve.length>0&&pe===Ve.length,O=f.useRef(Re),H=f.useRef(!1);if(f.useEffect(()=>{if(D){if(!H.current){O.current=Re,H.current=!0;return}Re&&!O.current&&F(xe=>xe+1),O.current=Re}},[Re,D]),W)return r.jsx(ft,{label:"Loading assignment workspace…"});if(Z||!D||!e||!t)return r.jsx(mt,{error:Z||"Assignment not found."});const Q=e,ge=t,Ie=Ve.length>0?{checked:pe,total:Ve.length}:void 0,Te=D.availableTransitions??[],et=Te.filter(xe=>!xe.disabled&&xe.targetStatus!==D.status),He=m6.map(xe=>et.find(Fe=>Fe.command===xe)).find(Boolean)??et[0]??null,jt=[];if(J!=null&&J.sessions)for(const xe of J.sessions)for(const Fe of xe.windows)for(const Oe of Fe.panes)((Wt=Oe.assignment)==null?void 0:Wt.project)===e&&((xt=Oe.assignment)==null?void 0:xt.slug)===t&&jt.push({sessionName:xe.name,command:Oe.command,urls:Oe.urls});async function Ht(xe){u(null);try{await jN(Q,ge,xe),M()}catch(Fe){u(Fe.message)}}async function st(xe){u(null);try{const Fe=await fetch(`/api/projects/${Q}/assignments/${ge}/${xe?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!Fe.ok){const Oe=await Fe.json().catch(()=>null);throw new Error((Oe==null?void 0:Oe.error)||`HTTP ${Fe.status}`)}M(),m(xe?"Assignment archived":"Assignment restored","success")}catch(Fe){u(Fe.message)}}async function ae(){P(!0);try{await XF(Q,ge),n(`${s}/projects/${Q}`)}catch(xe){u(xe.message),P(!1),T(!1)}}async function be(xe,Fe){u(null),y(xe.command);try{return await wN(Q,ge,xe,Fe),M(),!0}catch(Oe){return u(Oe.message),!1}finally{y(null)}}function $e(xe){if(kN(xe)){E(xe);return}be(xe)}async function We(xe,Fe){w(null),C(xe);try{const Oe=await fetch(`/api/projects/${Q}/assignments/${ge}/acceptance-criteria/${xe}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({checked:Fe})}),Nt=await Oe.json();if(!Oe.ok)throw new Error(Nt.error||`HTTP ${Oe.status}`);M()}catch(Oe){w(Oe.message)}finally{C(null)}}const Xe=[...et.filter(xe=>xe!==He).map(xe=>({key:`transition-${xe.command}`,label:xe.label,onSelect:()=>$e(xe),disabled:x===xe.command})),...Te.filter(xe=>xe.disabled||xe.targetStatus===D.status).map(xe=>({key:`transition-${xe.command}`,label:xe.label,disabled:!0,disabledReason:xe.targetStatus===D.status?`Already ${D.status.replace(/_/g," ")}`:xe.disabledReason??xe.warning??xe.description})),...te.statuses.map(xe=>({key:`override-${xe.id}`,label:`Override → ${xe.label}`,onSelect:()=>Ht(xe.id),disabled:xe.id===D.status,disabledReason:xe.id===D.status?"Already in this status":void 0})),{key:"edit-assignment",label:"Edit assignment source",icon:TT,href:`${s}/projects/${e}/assignments/${t}/edit`},{key:"edit-plan",label:"Edit plan",icon:UT,href:`${s}/projects/${e}/assignments/${t}/plan/edit`},{key:"edit-scratchpad",label:"Edit scratchpad",icon:am,href:`${s}/projects/${e}/assignments/${t}/scratchpad/edit`},{key:"append-handoff",label:"Append handoff",icon:Yu,href:`${s}/projects/${e}/assignments/${t}/handoff/edit`},{key:"append-decision",label:"Append decision",icon:AT,href:`${s}/projects/${e}/assignments/${t}/decision-record/edit`},{key:D.archived?"unarchive":"archive",label:D.archived?"Restore assignment":"Archive assignment",icon:D.archived?Gu:Cd,onSelect:()=>st(!D.archived)},{key:"delete",label:"Delete assignment",icon:Hn,destructive:!0,onSelect:()=>T(!0)}],it=(He==null?void 0:He.command)==="review";return r.jsxs("div",{className:"space-y-5",children:[r.jsx(fa,{toast:p,onDismiss:h}),r.jsxs("div",{className:"sticky top-12 z-20 rounded-lg border border-border/60 bg-card/90 p-3 shadow-sm backdrop-blur",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx(yn,{status:D.status,progress:Ie}),r.jsx(pa,{type:D.type}),r.jsx("h1",{className:"text-lg font-semibold text-foreground",children:D.title}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Updated ",u0(D.updated)]}),ue.length>0&&r.jsxs("span",{className:"text-xs text-warning-foreground",children:["⚠ ",ue.length," unmet dep",ue.length===1?"":"s"]}),r.jsx(Ug,{externalIds:D.externalIds}),r.jsxs("span",{className:"ml-auto flex items-center gap-2",children:[r.jsx(vN,{target:{kind:"assignment",id:D.id},worktreePath:((tn=D.workspace)==null?void 0:tn.worktreePath)??null,repository:((St=D.workspace)==null?void 0:St.repository)??null}),!((yt=D.workspace)!=null&&yt.worktreePath)&&e&&t&&r.jsx(CN,{projectSlug:e,assignmentSlug:t,defaultBranch:`syntaur/${e}/${t}`,onCreated:()=>M()}),He&&r.jsx("button",{type:"button",title:He.warning||He.description,disabled:x===He.command,onClick:()=>$e(He),className:Ee("shell-action disabled:cursor-not-allowed disabled:opacity-50",He.warning&&"border-warning-foreground/40",it&&$>0&&"send-to-review-glow"),children:r.jsx("span",{children:x===He.command?"Working…":He.label})},it?`review-${$}`:He.command),r.jsx(_g,{items:Xe,align:"end"})]})]}),c?r.jsx("p",{className:"mt-4 rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:c}):null,D.blockedReason?r.jsxs("div",{className:"mt-4 rounded-md border border-warning-foreground/30 bg-warning px-4 py-3 text-sm text-warning-foreground",children:[r.jsx("strong",{children:"Blocked reason:"})," ",D.blockedReason]}):null]}),I.length>0&&r.jsx(u6,{projectSlug:e,dependencies:I,blockedReason:D.blockedReason}),D.enrichedLinks&&D.enrichedLinks.length>0&&r.jsx(d6,{links:D.enrichedLinks}),D.referencedBy&&D.referencedBy.length>0&&r.jsx(ze,{title:"Referenced by",description:"Other assignments whose Todos, progress, comments, or handoffs link to this one.",children:r.jsx("ul",{className:"space-y-2",children:D.referencedBy.map(xe=>{const Fe=xe.sourceProjectSlug===null?`/assignments/${xe.sourceId}`:`${s}/projects/${xe.sourceProjectSlug}/assignments/${xe.sourceSlug}`;return r.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[r.jsx(Ce,{to:Fe,className:"text-foreground hover:text-primary",children:xe.sourceTitle}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",xe.mentions," mention",xe.mentions===1?"":"s",")"]}),xe.sourceProjectSlug===null?r.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase text-muted-foreground",children:"Standalone"}):null]},xe.sourceId)})})}),r.jsxs("div",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_280px]",children:[r.jsx("div",{className:"space-y-4",children:r.jsx(Hg,{value:X,onValueChange:xe=>l({tab:xe}),items:[{value:"summary",label:"Summary",content:r.jsxs("div",{className:"space-y-5",children:[je.acceptanceCriteria.length>0?r.jsx(ze,{title:"Acceptance Criteria",description:"These checkboxes update the source assignment markdown.",children:r.jsxs("div",{className:"space-y-3",children:[k?r.jsx("p",{className:"rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:k}):null,je.acceptanceCriteria.map((xe,Fe)=>{const Oe=j!==null;return r.jsxs("label",{className:"flex items-start gap-3 rounded-md border border-border/60 bg-background/80 px-3 py-3",children:[r.jsx("input",{type:"checkbox",checked:xe.checked,disabled:Oe,onChange:Nt=>We(Fe,Nt.target.checked),className:"mt-1 h-4 w-4 rounded border-border text-primary"}),r.jsx("span",{className:"criterion-label text-sm leading-6","data-checked":xe.checked,children:xe.text})]},`${Fe}-${xe.text}`)})]})}):null,fe.hasSection?r.jsx(ze,{title:"Todos",description:"Checklist of work items from assignment.md. Links point to plan files.",children:r.jsx(un,{content:fe.todosMarkdown,emptyState:"No todos yet."})}):null,r.jsx(ze,{title:"Assignment Summary",children:r.jsx(un,{content:fe.remaining,emptyState:je.acceptanceCriteria.length>0||fe.hasSection?"No additional summary markdown beyond the acceptance criteria and todos.":"This assignment does not have summary markdown yet."})})]})},{value:"plan",label:"Plan",count:D.plan?1:0,content:D.plan?r.jsx("div",{className:"space-y-5",children:r.jsxs(ze,{title:"Plan",description:"Shows plan.md only. Versioned plans (plan-v2.md, ...) linked from the Todos section are not yet rendered here — open them from the filesystem.",actions:r.jsxs(Ce,{className:"shell-action",to:`${s}/projects/${e}/assignments/${t}/plan/edit`,children:[r.jsx(am,{className:"h-4 w-4"}),r.jsx("span",{children:"Edit Plan"})]}),children:[r.jsx("div",{className:"mb-4",children:r.jsx(yn,{status:D.plan.status})}),r.jsx(un,{content:D.plan.body,emptyState:"No plan content yet."})]})}):r.jsx(ct,{title:"No plan yet",description:"Plan files are optional and versioned. Run /plan-assignment to create plan.md (or plan-v2.md, ...) and link it from the Todos section."})},{value:"scratchpad",label:"Scratchpad",count:D.scratchpad?1:0,content:D.scratchpad?r.jsx(ze,{title:"Scratchpad",actions:r.jsxs(Ce,{className:"shell-action",to:`${s}/projects/${e}/assignments/${t}/scratchpad/edit`,children:[r.jsx(am,{className:"h-4 w-4"}),r.jsx("span",{children:"Edit Scratchpad"})]}),children:r.jsx(un,{content:D.scratchpad.body,emptyState:"Scratchpad is empty."})}):r.jsx(ct,{title:"No scratchpad yet",description:"Scratchpad notes appear here when you use the Edit Scratchpad action."})},{value:"handoff",label:"Handoff",count:((kt=D.handoff)==null?void 0:kt.handoffCount)??0,content:r.jsx("div",{className:"space-y-5",children:D.handoff?r.jsx(ze,{children:r.jsx(un,{content:D.handoff.body,emptyState:"No handoff history yet."})}):r.jsx(ct,{title:"No handoff log yet",description:"Handoffs appear here when an agent runs /complete-assignment or you append one manually."})})},{value:"progress",label:"Progress",count:((Tt=D.progress)==null?void 0:Tt.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:D.progress&&D.progress.entries.length>0?r.jsx(ze,{title:"Progress",description:"Reverse-chronological log of work done on this assignment. Agents append entries via progress.md.",children:r.jsx("ol",{className:"space-y-4",children:D.progress.entries.map((xe,Fe)=>r.jsxs("li",{className:"border-l-2 border-border pl-3",children:[r.jsx("div",{className:"text-xs font-mono text-muted-foreground",children:xe.timestamp}),r.jsx(un,{content:xe.body})]},`${xe.timestamp}-${Fe}`))})}):r.jsx(ct,{title:"No progress entries yet",description:"Progress entries appear here as the agent appends them to progress.md."})})},{value:"comments",label:"Comments",count:((ar=D.comments)==null?void 0:ar.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:D.comments&&D.comments.entries.length>0?r.jsx(EN,{projectSlug:e,assignmentSlug:t,entries:D.comments.entries}):r.jsx(ct,{title:"No comments yet",description:"Comments appear here when agents or humans post via `syntaur comment` or the dashboard."})})},{value:"decisions",label:"Decisions",count:((lr=D.decisionRecord)==null?void 0:lr.decisionCount)??0,content:r.jsx("div",{className:"space-y-5",children:D.decisionRecord?r.jsx(ze,{children:r.jsx(un,{content:D.decisionRecord.body,emptyState:"No decision history yet."})}):r.jsx(ct,{title:"No decision record yet",description:"Decision records appear here when you append one via the Append Decision action."})})}]})}),r.jsxs("div",{className:"space-y-5",children:[r.jsx(ze,{title:"Details",children:r.jsxs("dl",{className:"space-y-3 text-sm",children:[r.jsx(Zs,{label:"ID",value:D.id,copyable:!0}),r.jsx(Zs,{label:"Priority",value:D.priority}),D.assignee&&r.jsx(Zs,{label:"Assignee",value:D.assignee}),r.jsx(Zs,{label:"Updated",value:`${c0(D.updated)} · Created ${l0(D.created)}`}),D.workspace.repository&&r.jsx(Zs,{label:"Repository",value:D.workspace.repository,copyable:!0}),D.workspace.worktreePath&&r.jsx(Zs,{label:"Worktree",value:D.workspace.worktreePath,copyable:!0}),D.workspace.branch&&r.jsx(Zs,{label:"Branch",value:D.workspace.branch,copyable:!0}),D.workspace.parentBranch&&r.jsx(Zs,{label:"Parent branch",value:D.workspace.parentBranch,copyable:!0}),D.externalIds.map((xe,Fe)=>r.jsx(h6,{entry:xe},`${xe.system}:${xe.id}:${Fe}`))]})}),jt.length>0&&r.jsx(ze,{title:"Servers",children:r.jsx("div",{className:"space-y-2",children:jt.map((xe,Fe)=>r.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[r.jsx("span",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono text-xs",children:xe.command}),r.jsx("span",{className:"text-xs text-muted-foreground",children:xe.sessionName}),xe.urls.map(Oe=>r.jsxs("a",{href:Oe,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs text-primary hover:underline",children:[Oe.replace("http://localhost:",":"),r.jsx(aa,{className:"h-2.5 w-2.5"})]},Oe))]},Fe))})}),r.jsx(xN,{sessions:le==null?void 0:le.sessions,loading:_,error:G}),r.jsx(yN,{summary:A==null?void 0:A.summary,loading:B,error:ee})]})]}),r.jsx(bN,{open:b!==null,action:b,assignmentTitle:D.title,loading:x===(b==null?void 0:b.command),onOpenChange:xe=>{xe||E(null)},onConfirm:async xe=>{if(!b)return;await be(b,xe)&&E(null)}}),r.jsx(ja,{open:N,title:"Delete assignment?",description:`This will permanently delete "${D.title}" and all its files (plan, scratchpad, handoff, decision record). This cannot be undone.`,confirmLabel:"Delete Assignment",destructive:!0,loading:L,onOpenChange:xe=>{xe||T(!1)},onConfirm:ae})]})}function Zs({label:e,value:t,copyable:n}){return r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsx("dt",{className:"text-muted-foreground",children:e}),r.jsxs("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:[r.jsx("span",{className:"block min-w-0 truncate",title:t,children:t}),n&&t!=="—"&&r.jsx(Dr,{value:t})]})]})}function h6({entry:e}){const t=e.url!=null&&e.url.length>0;return r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsx("dt",{className:"text-muted-foreground",children:e.system}),r.jsx("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:t?r.jsxs("a",{href:e.url??void 0,target:"_blank",rel:"noopener noreferrer","aria-label":`Open ${e.system}:${e.id} in ${e.system}`,className:"flex items-center gap-1.5 min-w-0 text-primary hover:underline",children:[r.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id}),r.jsx(aa,{className:"h-2.5 w-2.5 shrink-0"})]}):r.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function g6(){var P,$,F,X,te,D,W,Z;const{id:e}=Lt(),[t,n]=ps(),s=t.get("tab")??"summary",{data:i,loading:l,error:c,refetch:u}=zP(e),{data:p,loading:m,error:h}=UP(e),{data:x,loading:y,error:b}=HP(i==null?void 0:i.slug),[E,k]=f.useState(!1),[w,j]=f.useState(null),{toast:C,showToast:N,dismissToast:T}=da();async function L(M){if(e){j(null);try{const K=await fetch(`/api/assignments/${e}/${M?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!K.ok){const J=await K.json().catch(()=>null);throw new Error((J==null?void 0:J.error)||`HTTP ${K.status}`)}u(),N(M?"Assignment archived":"Assignment restored","success")}catch(K){j(K instanceof Error?K.message:"Archive failed")}}}return l?r.jsx(ft,{}):c?r.jsx(mt,{error:c}):i?r.jsxs("div",{className:"space-y-6",children:[r.jsx(fa,{toast:C,onDismiss:T}),r.jsxs("header",{className:"space-y-2",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx(yn,{status:i.status}),r.jsx(pa,{type:i.type}),r.jsx("span",{className:"text-xs font-mono text-muted-foreground",children:i.id}),r.jsx(Ug,{externalIds:i.externalIds}),r.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[r.jsx(vN,{target:{kind:"assignment",id:i.id},worktreePath:((P=i.workspace)==null?void 0:P.worktreePath)??null,repository:(($=i.workspace)==null?void 0:$.repository)??null,size:"compact"}),!((F=i.workspace)!=null&&F.worktreePath)&&r.jsx(CN,{assignmentId:i.id,defaultBranch:`syntaur/${i.slug}`,onCreated:()=>u()}),r.jsxs("button",{type:"button",onClick:()=>k(!0),className:"inline-flex items-center gap-1.5 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:[r.jsx(Ql,{className:"h-3 w-3"}),"Move to workspace…"]}),r.jsx(Ce,{to:`/assignments/${i.id}/edit`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Edit"}),r.jsxs("button",{type:"button",onClick:()=>L(!i.archived),className:"inline-flex items-center gap-1.5 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",title:i.archived?"Restore this assignment":"Archive this assignment",children:[i.archived?r.jsx(Gu,{className:"h-3 w-3"}):r.jsx(Cd,{className:"h-3 w-3"}),i.archived?"Restore":"Archive"]})]})]}),r.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:i.title}),i.blockedReason?r.jsxs("p",{className:"text-sm text-warning-foreground",children:["Blocked: ",i.blockedReason]}):null,w?r.jsx("p",{className:"text-sm text-status-failed-foreground",children:w}):null]}),r.jsx(ze,{title:"Details",children:r.jsxs("dl",{className:"space-y-3 text-sm",children:[r.jsx(eo,{label:"ID",value:i.id,copyable:!0}),r.jsx(eo,{label:"Priority",value:i.priority}),i.assignee&&r.jsx(eo,{label:"Assignee",value:i.assignee}),r.jsx(eo,{label:"Updated",value:`${c0(i.updated)} · Created ${l0(i.created)}`}),i.workspace.repository&&r.jsx(eo,{label:"Repository",value:i.workspace.repository,copyable:!0}),i.workspace.worktreePath&&r.jsx(eo,{label:"Worktree",value:i.workspace.worktreePath,copyable:!0}),i.workspace.branch&&r.jsx(eo,{label:"Branch",value:i.workspace.branch,copyable:!0}),i.workspace.parentBranch&&r.jsx(eo,{label:"Parent branch",value:i.workspace.parentBranch,copyable:!0}),i.externalIds.map((M,K)=>r.jsx(x6,{entry:M},`${M.system}:${M.id}:${K}`))]})}),i.referencedBy&&i.referencedBy.length>0?r.jsx(ze,{title:"Referenced by",description:"Other assignments whose bodies link to this one.",children:r.jsx("ul",{className:"space-y-2",children:i.referencedBy.map(M=>r.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[r.jsx(Ce,{to:M.sourceProjectSlug===null?`/assignments/${M.sourceId}`:`/projects/${M.sourceProjectSlug}/assignments/${M.sourceSlug}`,className:"text-foreground hover:text-primary",children:M.sourceTitle}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",M.mentions," mention",M.mentions===1?"":"s",")"]})]},M.sourceId))})}):null,r.jsx(xN,{sessions:p==null?void 0:p.sessions,loading:m,error:h}),r.jsx(yN,{summary:x==null?void 0:x.summary,loading:y,error:b}),r.jsx(Hg,{value:s,onValueChange:M=>n({tab:M}),items:[{value:"summary",label:"Summary",content:r.jsx("div",{className:"space-y-5",children:r.jsx(ze,{title:"Assignment",children:r.jsx(un,{content:i.body,emptyState:"This assignment does not have summary markdown yet."})})})},{value:"progress",label:"Progress",count:((X=i.progress)==null?void 0:X.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:i.progress&&i.progress.entries.length>0?r.jsx(ze,{title:"Progress",description:"Reverse-chronological log of work done on this assignment.",children:r.jsx("ol",{className:"space-y-4",children:i.progress.entries.map((M,K)=>r.jsxs("li",{className:"border-l-2 border-border pl-3",children:[r.jsx("div",{className:"text-xs font-mono text-muted-foreground",children:M.timestamp}),r.jsx(un,{content:M.body})]},`${M.timestamp}-${K}`))})}):r.jsx(ct,{title:"No progress entries yet",description:"Progress entries appear here as the agent appends them to progress.md."})})},{value:"comments",label:"Comments",count:((te=i.comments)==null?void 0:te.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:r.jsx(EN,{projectSlug:null,assignmentSlug:i.id,entries:((D=i.comments)==null?void 0:D.entries)??[]})})},{value:"plan",label:"Plan",content:r.jsx("div",{className:"space-y-5",children:i.plan?r.jsxs(ze,{children:[r.jsx(un,{content:i.plan.body,emptyState:"Plan file exists but is empty."}),r.jsx("div",{className:"mt-3 flex justify-end",children:r.jsx(Ce,{to:`/assignments/${i.id}/plan/edit`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Edit plan"})})]}):r.jsx(ct,{title:"No plan file yet",description:"Create one via the CLI or `/plan-assignment`."})})},{value:"scratchpad",label:"Scratchpad",content:r.jsx("div",{className:"space-y-5",children:i.scratchpad?r.jsxs(ze,{children:[r.jsx(un,{content:i.scratchpad.body,emptyState:"Scratchpad is empty."}),r.jsx("div",{className:"mt-3 flex justify-end",children:r.jsx(Ce,{to:`/assignments/${i.id}/scratchpad/edit`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Edit scratchpad"})})]}):r.jsx(ct,{title:"No scratchpad yet",description:"Scratchpad is scaffolded at assignment creation time."})})},{value:"handoff",label:"Handoff",count:((W=i.handoff)==null?void 0:W.handoffCount)??0,content:r.jsx("div",{className:"space-y-5",children:i.handoff?r.jsxs(ze,{children:[r.jsx(un,{content:i.handoff.body,emptyState:"No handoff history yet."}),r.jsx("div",{className:"mt-3 flex justify-end",children:r.jsx(Ce,{to:`/assignments/${i.id}/handoff/edit`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Append handoff"})})]}):r.jsx(ct,{title:"No handoff log yet",description:"Handoffs appear here when an agent appends one."})})},{value:"decisions",label:"Decisions",count:((Z=i.decisionRecord)==null?void 0:Z.decisionCount)??0,content:r.jsx("div",{className:"space-y-5",children:i.decisionRecord?r.jsxs(ze,{children:[r.jsx(un,{content:i.decisionRecord.body,emptyState:"No decision history yet."}),r.jsx("div",{className:"mt-3 flex justify-end",children:r.jsx(Ce,{to:`/assignments/${i.id}/decision-record/edit`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Append decision"})})]}):r.jsx(ct,{title:"No decision record yet",description:"Decision records appear here once appended."})})}]}),r.jsx(Bg,{open:E,onOpenChange:k,currentWorkspace:i.projectWorkspace,title:"Move assignment to workspace",description:"Standalone assignments belong to a project-workspace via the workspaceGroup frontmatter field.",onSubmit:async M=>{const K=await fetch(`/api/assignments/${encodeURIComponent(i.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:M})});if(!K.ok){const J=await K.json().catch(()=>({}));throw new Error(J.error||"Failed to move assignment")}u()}})]}):r.jsx(mt,{error:"Assignment not found"})}function eo({label:e,value:t,copyable:n}){return r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsx("dt",{className:"text-muted-foreground",children:e}),r.jsxs("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:[r.jsx("span",{className:"truncate",title:t,children:t}),n&&t!=="—"&&r.jsx(Dr,{value:t})]})]})}function x6({entry:e}){const t=e.url!=null&&e.url.length>0;return r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsx("dt",{className:"text-muted-foreground",children:e.system}),r.jsx("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:t?r.jsxs("a",{href:e.url??void 0,target:"_blank",rel:"noopener noreferrer","aria-label":`Open ${e.system}:${e.id} in ${e.system}`,className:"flex items-center gap-1.5 min-w-0 text-primary hover:underline",children:[r.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id}),r.jsx(aa,{className:"h-2.5 w-2.5 shrink-0"})]}):r.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function y6({currentStatus:e,availableTransitions:t,onSelect:n,disabled:s=!1}){const[i,l]=f.useState(!1),[c,u]=f.useState(null),[p,m]=f.useState(0),h=f.useRef(null),x=f.useRef(null),y=f.useId(),b=dd(e),E=b.icon,k=f.useCallback(T=>{l(!1),T&&requestAnimationFrame(()=>{var L;(L=h.current)==null||L.focus()})},[]),w=f.useCallback(()=>{var L;const T=(L=h.current)==null?void 0:L.getBoundingClientRect();T&&u({top:T.top,left:T.left,width:T.width,bottom:T.bottom})},[]);f.useLayoutEffect(()=>{i&&w()},[i,w]),f.useEffect(()=>{if(!i)return;const T=()=>w();return window.addEventListener("scroll",T,!0),window.addEventListener("resize",T),()=>{window.removeEventListener("scroll",T,!0),window.removeEventListener("resize",T)}},[i,w]),f.useEffect(()=>{if(!i)return;const T=L=>{var $,F;const P=L.target;P&&(($=x.current)!=null&&$.contains(P)||(F=h.current)!=null&&F.contains(P)||k(!1))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[i,k]),f.useEffect(()=>{i&&m(0)},[i,t.length]);function j(T){(T.key==="Enter"||T.key===" "||T.key==="ArrowDown")&&(T.preventDefault(),l(!0))}function C(T){if(t.length===0){T.key==="Escape"&&(T.preventDefault(),k(!0));return}if(T.key==="ArrowDown")T.preventDefault(),m(L=>(L+1)%t.length);else if(T.key==="ArrowUp")T.preventDefault(),m(L=>(L-1+t.length)%t.length);else if(T.key==="Home")T.preventDefault(),m(0);else if(T.key==="End")T.preventDefault(),m(t.length-1);else if(T.key==="Enter"){T.preventDefault();const L=t[p];L&&(n(L),k(!0))}else T.key==="Escape"&&(T.preventDefault(),k(!0))}function N(T){n(T),k(!1)}return r.jsxs(r.Fragment,{children:[r.jsxs("button",{ref:h,type:"button","data-no-drag":!0,disabled:s,"aria-haspopup":"menu","aria-expanded":i,"aria-controls":i?y:void 0,onClick:()=>{s||l(T=>!T)},onKeyDown:j,title:`Status: ${b.label}. Click to change.`,className:Ee(N1(e),"cursor-pointer transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",s&&"cursor-not-allowed opacity-60"),children:[r.jsx(E,{className:"h-3.5 w-3.5"}),r.jsx("span",{children:b.label})]}),i&&c&&typeof document<"u"?Es.createPortal(r.jsx("div",{ref:x,id:y,role:"menu",tabIndex:-1,autoFocus:!0,onKeyDown:C,style:{position:"fixed",top:c.bottom+6,left:c.left,minWidth:Math.max(c.width,180),zIndex:60},className:"rounded-md border border-border/70 bg-popover py-1 text-sm text-popover-foreground shadow-lg",children:t.length===0?r.jsx("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No transitions available from this status."}):t.map((T,L)=>{const P=dd(T.targetStatus),$=P.icon,F=L===p;return r.jsxs("button",{type:"button",role:"menuitem","data-no-drag":!0,onMouseEnter:()=>m(L),onClick:()=>N(T),title:T.warning||T.description,className:Ee("flex w-full flex-col items-stretch gap-0.5 px-3 py-1.5 text-left text-sm transition",F?"bg-foreground/5":"hover:bg-foreground/5"),children:[r.jsxs("span",{className:"flex items-center justify-between gap-2",children:[r.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[r.jsx($,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),r.jsx("span",{className:"truncate",children:T.label})]}),r.jsx("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:P.label})]}),T.warning?r.jsx("span",{className:"text-[11px] leading-snug text-warning-foreground",children:T.warning}):null]},`${T.command}:${T.targetStatus}`)})}),document.body):null]})}function PN({title:e,detailHref:t,onSave:n,disabled:s=!1}){const[i,l]=f.useState(!1);return i?r.jsx(b6,{initialTitle:e,disabled:s,onSave:n,onExit:()=>l(!1)}):r.jsxs("div",{className:"group flex items-baseline gap-1.5",children:[r.jsx("button",{type:"button","data-no-drag":!0,disabled:s,onClick:()=>{s||l(!0)},className:Ee("text-left text-base font-semibold text-foreground transition hover:text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 rounded-sm",s&&"cursor-not-allowed opacity-60"),title:"Click to rename",children:e}),r.jsx(Ce,{to:t,"data-no-drag":!0,"aria-label":"Open detail page",title:"Open detail page",onClick:c=>c.stopPropagation(),className:"text-muted-foreground opacity-0 transition group-hover:opacity-100 focus:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 rounded-sm",children:r.jsx(aa,{className:"h-3.5 w-3.5"})})]})}function b6({initialTitle:e,disabled:t,onSave:n,onExit:s}){const i=f.useRef(e),[l,c]=f.useState(e),[u,p]=f.useState(!1),[m,h]=f.useState(!1),x=f.useRef(null),y=f.useRef(!1);f.useEffect(()=>{const w=x.current;w&&(w.focus(),w.select())},[]);const b=f.useCallback(()=>{var w;h(!0),window.setTimeout(()=>h(!1),260),(w=x.current)==null||w.focus()},[]),E=f.useCallback(async()=>{if(y.current)return;const w=l.trim();if(w.length===0){b();return}if(w===i.current){s();return}y.current=!0,p(!0);try{await n(w)}catch{}finally{p(!1),s()}},[l,s,n,b]);function k(w){w.key==="Enter"?(w.preventDefault(),E()):w.key==="Escape"&&(w.preventDefault(),y.current=!0,s())}return r.jsx("input",{ref:x,type:"text","data-no-drag":!0,disabled:t||u,value:l,onChange:w=>c(w.target.value),onKeyDown:k,onBlur:()=>void E(),className:Ee("w-full rounded-sm border border-border bg-background px-1.5 py-0.5 text-base font-semibold text-foreground outline-none transition focus:border-ring focus:ring-1 focus:ring-ring",m&&"syntaur-input-shake",u&&"opacity-70")})}function RN(e){const t=$t(),n=f.useRef(null),s=f.useRef(!1),i=f.useCallback(()=>{const c=n.current,u=!!(c!=null&&c.querySelector('[aria-expanded="true"]')),p=!!document.querySelector('[role="menu"]'),m=document.activeElement,h=!!(m&&(c!=null&&c.contains(m))&&(m.tagName==="INPUT"||m.tagName==="TEXTAREA"));s.current=u||p||h},[]),l=f.useCallback(c=>{if(s.current)return;const u=c.target;!u||u.closest(vh)||t(e)},[t,e]);return{containerRef:n,onMouseDown:i,onClick:l}}const cj=kg;function uj(e){return e==="1"?"stale":e==="0"?"fresh":"all"}function v6(e,t){return e.toString()===t.toString()}function dj(){const{workspace:e}=Lt(),t=on(),n=$t(),s=f.useRef(null);fo("list:assignments");const{data:i,loading:l,error:c,refetch:u}=Dd(),p=qo(),m=Xd(),[h,x]=ps(),y=e?`w:${e}`:null,b=aN(y),E=f.useRef(void 0),k=f.useMemo(()=>E1(p.order),[p]),w=f.useMemo(()=>{const z={};for(const oe of k)z[oe]=rc(p,oe);return z},[k,p]),j=f.useMemo(()=>k.map(z=>({id:z,title:w[z]??z,description:Gd(z)})),[k,w]),C=f.useMemo(()=>m.definitions.map(z=>({id:z.id,title:Yi(m,z.id),description:z.description})),[m]),N="__unknown_type__",T=f.useMemo(()=>new Set(["all",...k]),[k]),L=h.get("view"),P=h.get("status"),$=h.get("stale"),F=L&&cj.includes(L)?L:"kanban";function X(z){if(!z)return[];const oe=[];for(const he of z.split(",")){const Ae=he.trim();!Ae||Ae==="all"||!T.has(Ae)||oe.includes(Ae)||oe.push(Ae)}return oe}const te=f.useCallback(z=>{x(oe=>{const he=new URLSearchParams(oe);return z==="kanban"?he.delete("view"):he.set("view",z),he})},[x]),[D,W]=f.useState(""),[Z,M]=f.useState(()=>X(P)),[K,J]=f.useState(()=>Je(b.filters.priority)),[le,_]=f.useState(()=>Je(b.filters.type)),[G,A]=f.useState(()=>Je(b.filters.assignee)),[B,ee]=f.useState(()=>Je(b.filters.project)),[I,ue]=f.useState(()=>Je(b.filters.tags)),[me,U]=f.useState(null),[se,de]=f.useState(()=>uj($)),[ye,je]=f.useState(()=>b.sortField),[fe,Ve]=f.useState(()=>b.sortDirection),[pe,Re]=f.useState(()=>({hidden:[]})),[O,H]=f.useState(()=>({hidden:[]})),[Q,ge]=f.useState(()=>b.grouping),Ie=Q==="type"?"type":"status",[Te,et]=f.useState(()=>new Set),[He,jt]=f.useState([]),{toast:Ht,showToast:st,dismissToast:ae}=da(),[be,$e]=f.useState(null),[We,Xe]=f.useState(null),[it,Wt]=f.useState(null),[xt,tn]=f.useState(null),[St,yt]=f.useState(null),[kt,Tt]=f.useState(null),[ar,lr]=f.useState(null),[xe,Fe]=f.useState(null),[Oe,Nt]=f.useState(null),[Rn,Kt]=f.useState(!1),[nn,Bt]=f.useState(!1),qn=e?{kind:"workspace",workspace:e}:{kind:"global"},ut=h.get("loadView"),{view:bn,loading:Ct,error:ne}=na(ut),{view:Pe,loading:qe,error:It}=na(Oe),fn=f.useRef(null);f.useEffect(()=>{jt((i==null?void 0:i.assignments)??[])},[i]),f.useEffect(()=>{Oe&&!qe&&!It&&!Pe&&Nt(null)},[Pe,It,Oe,qe]),f.useEffect(()=>{Nt(null),fn.current=null,U(null),W("")},[e]),f.useEffect(()=>{const z=X(P);q3(z,Z)||M(z);const oe=uj($);oe!==se&&de(oe)},[se,$,Z,P]),f.useEffect(()=>{E.current===y&&x(z=>{const oe=new URLSearchParams(z);return Z.length===0?oe.delete("status"):oe.set("status",Z.join(",")),se==="all"?oe.delete("stale"):se==="stale"?oe.set("stale","1"):oe.set("stale","0"),v6(z,oe)?z:oe})},[se,y,x,Z]),f.useEffect(()=>{J(Je(b.filters.priority)),_(Je(b.filters.type)),A(Je(b.filters.assignee)),ee(Je(b.filters.project)),ue(Je(b.filters.tags)),je(b.sortField),Ve(b.sortDirection),ge(b.grouping)},[b.filters.priority,b.filters.type,b.filters.assignee,b.filters.project,b.filters.tags,b.sortField,b.sortDirection,b.grouping]),f.useEffect(()=>{if(E.current===y)return;let z=!1;return xx().then(oe=>{if(z||E.current===y)return;const he=Mk(oe,y),Ae=he.defaultView,tt=Je(he.filters.status),at=he.filters.activity??"all",dt=new URLSearchParams(window.location.search);let an=!1;const rn=new URLSearchParams(dt);dt.get("view")===null&&Ae!=="kanban"&&cj.includes(Ae)&&(rn.set("view",Ae),an=!0),dt.get("status")===null&&tt.length>0&&(rn.set("status",tt.join(",")),M(tt),an=!0),dt.get("stale")===null&&at!=="all"&&(rn.set("stale",at==="stale"?"1":"0"),de(at),an=!0),an&&x(rn,{replace:!0}),queueMicrotask(()=>{E.current=y})}),()=>{z=!0}},[y]);const bt=f.useCallback(z=>{(y===null?cN(z):uN(y,z)).catch(he=>{console.warn("Failed to persist view prefs:",he)})},[y]),bf=f.useCallback(z=>{te(z),bt({defaultView:z})},[te,bt]),Ca=f.useCallback(z=>{M(z),bt({filters:{status:z}})},[bt]),Or=f.useCallback(z=>{J(z),bt({filters:{priority:z}})},[bt]),Yo=f.useCallback(z=>{_(z),bt({filters:{type:z}})},[bt]),Jo=f.useCallback(z=>{A(z),bt({filters:{assignee:z}})},[bt]),Ea=f.useCallback(z=>{ee(z),bt({filters:{project:z}})},[bt]),Xo=f.useCallback(z=>{ue(z),bt({filters:{tags:z}})},[bt]),Qo=f.useCallback(z=>{de(z),bt({filters:{activity:z}})},[bt]),Zo=f.useCallback(z=>{je(z),bt({sortField:z})},[bt]),mo=f.useCallback(z=>{Ve(z),bt({sortDirection:z})},[bt]),vf=f.useCallback(z=>{ge(z),bt({grouping:z})},[bt]),ei=f.useCallback(()=>({viewMode:F,filters:{status:Z,priority:K,type:le,assignee:G,project:B,tags:I,activity:se,dateRange:ql(me),search:D},sortField:ye,sortDirection:fe,listSectionVisibility:{collapsed:[...Te]},kanbanColumnVisibility:pe,tableColumnVisibility:O}),[F,Z,K,le,G,B,I,se,me,D,ye,fe,Te,pe,O]),Pt=f.useCallback(z=>{mN(z,{setViewMode:te,setStatusFilter:Ca,setPriorityFilter:Or,setTypeFilter:Yo,setAssigneeFilter:Jo,setProjectFilter:Ea,setTagsFilter:Xo,setActivityFilter:Qo,setDateRange:U,setSearch:W,setSortField:Zo,setSortDirection:mo,setListSectionVisibility:oe=>et(new Set(oe.collapsed)),setKanbanColumnVisibility:Re,setTableColumnVisibility:H}),Nt(z.id)},[te,Ca,Or,Yo,Jo,Ea,Xo,Qo,Zo,mo]),wf=f.useCallback(z=>{Pt(z),fn.current=z.id,x(oe=>{const he=new URLSearchParams(oe);return he.set("loadView",z.id),he},{replace:!0})},[Pt,x]),Ta=f.useCallback(async z=>{try{const oe=Gl({name:z,context:{workspace:e??null,projectSlug:null},state:ei()}),he=await sd(oe),Ae=he.views[he.views.length-1];Nt((Ae==null?void 0:Ae.id)??null),Ae&&(fn.current=Ae.id,x(tt=>{const at=new URLSearchParams(tt);return at.set("loadView",Ae.id),at},{replace:!0})),Kt(!1),Bt(!1),st(`Saved view "${z}"`,"success")}catch(oe){throw st(oe instanceof Error?oe.message:"Failed to save view","error"),oe}},[ei,x,st,e]),dc=f.useCallback(async()=>{if(!(!Oe||!Pe))try{const z=Gl({name:Pe.name,context:{workspace:e??null,projectSlug:null},state:ei()}),oe=bx(Pe.config,z.config,z.config);await zd(Oe,{config:oe}),st("View updated","success")}catch(z){st(z instanceof Error?z.message:"Failed to update view","error")}},[ei,Pe,Oe,st,e]);f.useEffect(()=>{if(!ut){fn.current=null;return}if(fn.current!==ut&&(Oe&&Oe!==ut&&Nt(null),!Ct)){if(ne){st("Couldn't load saved view — try again","error");return}if(bn){fn.current=ut,Pt(bn),x(z=>{const oe=new URLSearchParams(z);return oe.delete("loadView"),oe},{replace:!0});return}fn.current=ut,st("Saved view no longer exists","error"),x(z=>{const oe=new URLSearchParams(z);return oe.delete("loadView"),oe},{replace:!0})}},[ut,bn,Ct,ne,Oe,Pt,x,st]);const Fn=f.useMemo(()=>He.filter(z=>e?e==="_ungrouped"?z.projectWorkspace===null:z.projectWorkspace===e:!0),[He,e]),jf=f.useMemo(()=>Array.from(new Set(Fn.map(z=>z.status))).sort(),[Fn]),fc=f.useMemo(()=>Array.from(new Set(Fn.map(z=>z.priority))).sort(),[Fn]),ti=f.useMemo(()=>Array.from(new Set(Fn.map(z=>z.assignee??"__unassigned__"))).sort(),[Fn]),br=f.useMemo(()=>Array.from(new Map(Fn.filter(z=>z.projectSlug!==null).map(z=>[z.projectSlug,z.projectTitle]))).sort(([,z],[,oe])=>z.localeCompare(oe)),[Fn]),kf=f.useMemo(()=>Array.from(new Set(Fn.flatMap(z=>z.tags??[]))).sort(),[Fn]),ht=f.useMemo(()=>He.filter(z=>Mg(z,{status:Z,priority:K,type:le,assignee:G,project:B,tags:I,activity:se,dateRange:ql(me)},{workspace:e,search:D})),[se,He,D,Z,K,le,G,B,I,me,e]),ho=f.useMemo(()=>sc(ht,ye,fe),[ht,ye,fe]),Pa=f.useMemo(()=>{if(Q==="none")return[{id:"__all__",label:"All assignments",items:ht}];if(Q==="type"){const z=m.definitions.map(Ae=>({id:Ae.id,label:Yi(m,Ae.id),items:ht.filter(tt=>tt.type===Ae.id)})),oe=new Set(m.definitions.map(Ae=>Ae.id)),he=ht.filter(Ae=>!Ae.type||!oe.has(Ae.type));return he.length>0&&z.push({id:N,label:"Other",items:he}),z}if(Q==="priority")return["critical","high","medium","low"].map(oe=>({id:oe,label:oe.charAt(0).toUpperCase()+oe.slice(1),items:ht.filter(he=>he.priority===oe)}));if(Q==="assignee")return Array.from(new Set(ht.map(oe=>oe.assignee??"__unassigned__"))).sort().map(oe=>({id:oe,label:oe==="__unassigned__"?"Unassigned":oe,items:ht.filter(he=>(he.assignee??"__unassigned__")===oe)}));if(Q==="project"){const z=new Map;for(const oe of ht){const he=oe.projectSlug??"__standalone__",Ae=oe.projectTitle??"Standalone";z.has(he)||z.set(he,Ae)}return Array.from(z.entries()).sort(([,oe],[,he])=>oe.localeCompare(he)).map(([oe,he])=>({id:oe,label:he,items:ht.filter(Ae=>(Ae.projectSlug??"__standalone__")===oe)}))}return k.map(z=>({id:z,label:w[z]??z,items:ht.filter(oe=>oe.status===z)}))},[Q,ht,m,k,w]),Sf=f.useMemo(()=>{const z=new Set(m.definitions.map(he=>he.id));return ht.some(he=>!he.type||!z.has(he.type))?[...C,{id:N,title:"Other",description:"Assignments with no recognized type."}]:C},[C,m,ht]),{visibleItems:ni,visibleIndexByKey:go}=f.useMemo(()=>{let z;if(F==="table")z=ho;else if(F==="kanban"){const he=new Set(m.definitions.map(Ae=>Ae.id));Ie==="type"?z=[...m.definitions.flatMap(Ae=>ht.filter(tt=>tt.type===Ae.id)),...ht.filter(Ae=>!Ae.type||!he.has(Ae.type))]:z=k.flatMap(Ae=>ht.filter(tt=>tt.status===Ae))}else z=Pa.flatMap(he=>he.items);const oe=new Map;return z.forEach((he,Ae)=>oe.set(Qt(he),Ae)),{visibleItems:z,visibleIndexByKey:oe}},[F,ho,Pa,Ie,m,ht,k]),{hotkeyRowProps:xs}=ec(ni,{scope:"list:assignments",onOpen:z=>{if(z.projectSlug===null){n(`/assignments/${z.id}`);return}const oe=z.projectWorkspace?`/w/${z.projectWorkspace}`:t;n(`${oe}/projects/${z.projectSlug}/assignments/${z.slug}`)}});if(zt({keys:"/",scope:"list:assignments",description:"Focus filter",handler:()=>{var z;return(z=s.current)==null?void 0:z.focus()}}),zt({keys:"r",scope:"list:assignments",description:"Refresh",handler:()=>u()}),l)return r.jsx(ft,{label:"Loading assignments board…"});if(c||!i)return r.jsx(mt,{error:c||"Assignments board is unavailable."});async function xo({item:z,toColumnId:oe,action:he,reason:Ae}){$e(Qt(z));const tt=He;jt(at=>at.map(dt=>Qt(dt)===Qt(z)?{...dt,status:oe,blockedReason:oe==="blocked"?Ae??dt.blockedReason:null}:dt));try{if(z.projectSlug===null){if(!he)throw new Error("Standalone assignments require a transition action, not status override.");const dt=await fetch(`/api/assignments/${encodeURIComponent(z.id)}/transitions/${encodeURIComponent(he.command)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ae?{reason:Ae}:{})});if(!dt.ok)throw new Error((await dt.json()).error??`HTTP ${dt.status}`);const rn=(await dt.json()).assignment;jt(vn=>vn.map(zn=>Qt(zn)===Qt(z)?{...zn,status:rn.status,blockedReason:rn.blockedReason,availableTransitions:rn.availableTransitions,updated:rn.updated}:zn));return}const at=he?await wN(z.projectSlug,z.slug,he,Ae):await jN(z.projectSlug,z.slug,oe);return jt(dt=>dt.map(an=>Qt(an)===Qt(z)?{...an,status:at.status,blockedReason:at.blockedReason,availableTransitions:at.availableTransitions,updated:at.updated}:an)),u(),!0}catch(at){return jt(tt),st(at.message,"error"),!1}finally{$e(null)}}async function yo({item:z,toColumnId:oe,action:he}){if(z.status===oe)return;const Ae=he??xl(z,oe);if(Ae!=null&&Ae.disabled){st(Ae.disabledReason||`Cannot move this assignment to ${oe}.`,"error");return}if(Ae&&kN(Ae)){tn({item:z,toColumnId:oe,action:Ae});return}await xo({item:z,toColumnId:oe,action:Ae})}async function Ra(z,oe){if(oe===z.title)return;const he=Qt(z),Ae=He;jt(tt=>tt.map(at=>Qt(at)===he?{...at,title:oe}:at)),$e(he);try{const tt=z.projectSlug===null?await ZF({id:z.id,title:oe}):await QF({projectSlug:z.projectSlug,assignmentSlug:z.slug,title:oe});jt(at=>at.map(dt=>Qt(dt)===he?{...dt,title:tt.title,updated:tt.updated}:dt)),u()}catch(tt){throw jt(Ae),st(tt.message,"error"),tt}finally{$e(null)}}function Aa(z){et(oe=>{const he=new Set(oe);return he.has(z)?he.delete(z):he.add(z),he})}function pc(z){ye===z?mo(fe==="asc"?"desc":"asc"):(Zo(z),mo("asc"))}const An=We?He.find(z=>Qt(z)===We)??null:null;function bo(z,oe){z.dataTransfer.effectAllowed="move",z.dataTransfer.setData("text/plain",oe),Xe(oe)}function Da(){Xe(null),Wt(null)}function $a(z,oe){if(!An)return;const he=xl(An,oe);An.status===oe||he!=null&&he.disabled||(z.preventDefault(),z.dataTransfer.dropEffect="move",Wt(oe))}function vt(z,oe){it===oe&&!z.currentTarget.contains(z.relatedTarget)&&Wt(null)}function mc(z,oe){if(z.preventDefault(),!An||An.status===oe){Da();return}Da(),yo({item:An,toColumnId:oe})}function Xr({field:z,children:oe}){const he=ye===z;return r.jsx("th",{className:"pb-3 font-medium",children:r.jsxs("button",{type:"button",onClick:()=>pc(z),className:"inline-flex items-center gap-1 hover:text-foreground",children:[oe,he?fe==="asc"?r.jsx(Jj,{className:"h-3 w-3"}):r.jsx(us,{className:"h-3 w-3"}):null]})})}return r.jsxs("div",{className:"space-y-5","data-density":b.density,children:[r.jsx("div",{className:"flex items-center justify-end",children:r.jsxs(Ce,{to:`${t}/assignments/new`,className:"inline-flex h-9 items-center gap-2 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"New Assignment"]})}),r.jsxs(Fg,{children:[r.jsx(Yd,{ref:s,value:D,onChange:W,placeholder:"Search assignments or projects"}),r.jsx(Tn,{ariaLabel:"Status filter",className:"max-w-[180px]",allLabel:"All statuses",options:jf.map(z=>({value:z,label:w[z]??z})),value:Z,onChange:Ca}),r.jsx(Tn,{ariaLabel:"Priority filter",className:"max-w-[180px]",allLabel:"All priorities",options:fc.map(z=>({value:z,label:z[0].toUpperCase()+z.slice(1)})),value:K,onChange:Or}),r.jsx(Tn,{ariaLabel:"Type filter",className:"max-w-[180px]",allLabel:"All types",options:m.definitions.map(z=>({value:z.id,label:Yi(m,z.id)})),value:le,onChange:Yo}),r.jsx(Tn,{ariaLabel:"Assignee filter",className:"max-w-[180px]",allLabel:"All assignees",options:[{value:"__unassigned__",label:"Unassigned"},...ti.filter(z=>z!=="__unassigned__").map(z=>({value:z,label:z}))],value:G,onChange:Jo}),r.jsx(Tn,{ariaLabel:"Project filter",className:"max-w-[180px]",allLabel:"All projects",options:[{value:"__standalone__",label:"Standalone"},...br.map(([z,oe])=>({value:z,label:oe}))],value:B,onChange:Ea}),r.jsx(Tn,{ariaLabel:"Tags filter",className:"max-w-[180px]",allLabel:"Any tags",options:kf.map(z=>({value:z,label:z})),value:I,onChange:Xo}),r.jsx(yx,{className:"max-w-[200px]",value:me,onChange:U}),r.jsxs("select",{value:se,onChange:z=>Qo(z.target.value),className:"editor-input max-w-[180px]",children:[r.jsx("option",{value:"all",children:"All activity"}),r.jsx("option",{value:"stale",children:"Stale only"}),r.jsx("option",{value:"fresh",children:"Fresh only"})]}),r.jsx("select",{value:F==="kanban"?Ie:Q,onChange:z=>vf(z.target.value),className:"editor-input max-w-[180px]",title:"Group by",children:W3.map(z=>{const oe=F==="kanban"&&z!=="status"&&z!=="type",he=z==="none"?"No grouping":`Group: ${z.charAt(0).toUpperCase()+z.slice(1)}`;return r.jsx("option",{value:z,disabled:oe,children:oe?`${he} (list only)`:he},z)})}),r.jsx(Jd,{value:F,onChange:z=>bf(z),options:[{value:"table",label:"Table"},{value:"list",label:"List"},{value:"kanban",label:"Kanban"}]}),F==="table"?r.jsx(sN,{visibility:O,onChange:H}):null,r.jsx(fN,{scope:qn,loadedViewId:Oe,onApply:wf,onOpenSaveDialog:()=>{Bt(!1),Kt(!0)}}),r.jsx("button",{type:"button",onClick:()=>{Pe?dc():(Bt(!1),Kt(!0))},className:"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-background",title:Pe?`Update ${Pe.name}`:"Save current view",children:Pe?`Update '${Pe.name}'`:"Save view"}),Pe?r.jsx("button",{type:"button",onClick:()=>{Bt(!0),Kt(!0)},className:"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-foreground hover:bg-background",title:"Save as new view",children:"Save as new…"}):null]}),i.assignments.length===0?r.jsx(ct,{title:"No assignments yet",description:"Assignments appear here once projects contain concrete work items.",actions:r.jsxs(Ce,{className:"shell-action bg-foreground text-background hover:opacity-90",to:`${t}/projects`,children:[r.jsx(Jh,{className:"h-4 w-4"}),r.jsx("span",{children:"Browse Projects"})]})}):ht.length===0?r.jsx(ct,{title:"No assignments match these filters",description:"Adjust the search term or filters to show assignments across all projects again."}):F==="table"?(()=>{const z=new Set(O.hidden),oe=he=>he==="title"||!z.has(he);return r.jsx(ze,{title:`${ho.length} assignment${ho.length===1?"":"s"}`,children:r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full min-w-[760px] text-left text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[oe("title")?r.jsx(Xr,{field:"title",children:"Assignment"}):null,oe("status")?r.jsx(Xr,{field:"status",children:"Status"}):null,r.jsx("th",{className:"py-2 pr-4 text-xs font-medium uppercase tracking-wider",children:"Type"}),oe("priority")?r.jsx(Xr,{field:"priority",children:"Priority"}):null,oe("assignee")?r.jsx(Xr,{field:"assignee",children:"Assignee"}):null,oe("dependencies")?r.jsx(Xr,{field:"dependencies",children:"Dependencies"}):null,oe("created")?r.jsx(Xr,{field:"created",children:"Created"}):null,oe("updated")?r.jsx(Xr,{field:"updated",children:"Updated"}):null]})}),r.jsx("tbody",{children:ho.map((he,Ae)=>r.jsxs(j6,{detailHref:cd(he),className:"cursor-pointer border-b border-border/50 transition hover:bg-muted/40 last:border-0",...xs(Ae),children:[oe("title")?r.jsxs("td",{className:"py-4 pr-4",children:[r.jsx(PN,{title:he.title,detailHref:cd(he),onSave:tt=>Ra(he,tt),disabled:be===Qt(he)}),r.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:he.projectTitle??r.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase text-muted-foreground",children:"Standalone"})}),r.jsxs("p",{className:"mt-0.5 inline-flex items-center gap-1.5 font-mono text-xs text-muted-foreground/70",title:he.id,children:[he.id.slice(0,8),r.jsx(Dr,{value:he.id})]})]}):null,oe("status")?r.jsx("td",{className:"py-4 pr-4",children:r.jsx("select",{value:he.status,disabled:be===Qt(he),onChange:tt=>yo({item:he,toColumnId:tt.target.value}),className:Ee("appearance-none rounded-full border px-2.5 py-0.5 text-xs font-semibold tracking-wide outline-none","cursor-pointer bg-[length:12px] bg-[right_6px_center] bg-no-repeat pr-6",`bg-[url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E")]`,(ud[he.status]??ud.pending).className,be===Qt(he)&&"animate-pulse opacity-60"),children:k.map(tt=>{const at=he.status===tt?void 0:xl(he,tt),dt=(at==null?void 0:at.disabled)??!1;return r.jsx("option",{value:tt,disabled:dt,title:dt?(at==null?void 0:at.disabledReason)??void 0:void 0,children:w[tt]},tt)})})}):null,r.jsx("td",{className:"py-4 pr-4",children:r.jsx(pa,{type:he.type,compact:!0})}),oe("priority")?r.jsx("td",{className:"py-4 pr-4 capitalize text-muted-foreground",children:he.priority}):null,oe("assignee")?r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:he.assignee??"Unassigned"}):null,oe("dependencies")?r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:he.dependsOn.length}):null,oe("created")?r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:On(he.created)}):null,oe("updated")?r.jsx("td",{className:"py-4 text-muted-foreground",children:On(he.updated)}):null]},Qt(he)))})]})})})})():F==="list"?r.jsx("div",{className:"space-y-3",children:Pa.map(({id:z,label:oe,items:he})=>{var rn;if(he.length===0&&!(An&&Q==="status"))return null;const Ae=!Te.has(z),tt=Q==="status",at=tt&&An?An.status!==z&&!((rn=xl(An,z))!=null&&rn.disabled):!1,dt=tt&&An?An.status!==z&&!at:!1,an=tt&&it===z;return r.jsxs("div",{className:Ee("rounded-lg border border-border/60 bg-card/90 transition",an&&at&&"ring-2 ring-ring/30",dt&&"border-dashed opacity-65"),onDragOver:tt?vn=>$a(vn,z):void 0,onDragLeave:tt?vn=>vt(vn,z):void 0,onDrop:tt?vn=>mc(vn,z):void 0,children:[r.jsxs("button",{type:"button",onClick:()=>Aa(z),className:"flex w-full items-center gap-2 px-4 py-3 text-left",children:[r.jsx(us,{className:`h-4 w-4 text-muted-foreground transition-transform ${Ae?"":"-rotate-90"}`}),r.jsx("span",{className:"font-semibold text-foreground",children:oe}),r.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:he.length})]}),Ae&&he.length>0&&r.jsx("div",{className:"space-y-3 px-4 pb-4",children:he.map(vn=>{const zn=Qt(vn),_r=We===zn,hc=go.get(zn)??-1,vo=tt;return r.jsx("div",{draggable:vo,onDragStart:vo?vr=>bo(vr,zn):void 0,onDragEnd:vo?Da:void 0,...hc>=0?xs(hc):{},className:Ee("transition",vo&&"cursor-grab active:cursor-grabbing",_r&&"scale-[0.98] opacity-50"),children:r.jsx(fj,{assignment:vn,dragging:_r,transitioning:be===zn,onPillSelect:vr=>void yo({item:vn,toColumnId:vr.targetStatus,action:vr}),onRenameTitle:vr=>Ra(vn,vr)})},zn)})})]},z)})}):r.jsx(qd,{columns:Ie==="type"?Sf:j,items:ht,getItemId:Qt,getColumnId:z=>Ie==="type"?z.type&&m.definitions.some(oe=>oe.id===z.type)?z.type:N:z.status,canDrop:({item:z,fromColumnId:oe,toColumnId:he})=>{if(oe===he)return{allowed:!0};const Ae=xl(z,he);return Ae!=null&&Ae.disabled?{allowed:!1,reason:Ae.disabledReason||Ae.description}:{allowed:!0,reason:Ae?Ae.warning||Ae.description:`Move to ${he} (direct status change).`}},onMove:Ie==="type"?void 0:({item:z,toColumnId:oe})=>yo({item:z,toColumnId:oe}),dragDisabled:Ie==="type",getExternalDragData:z=>z.projectSlug===null?{type:"standalone-assignment",id:z.id}:{type:"project-assignment",id:z.id},onCardContextMenu:(z,oe)=>{oe.preventDefault(),yt({item:z,anchor:{x:oe.clientX,y:oe.clientY}})},emptyMessage:z=>`No ${z.title.toLowerCase()} assignments.`,hiddenColumnIds:pe.hidden,onHideColumn:z=>Re(oe=>({hidden:oe.hidden.includes(z)?oe.hidden.filter(Ae=>Ae!==z):[...oe.hidden,z]})),renderCard:(z,{dragging:oe})=>{const he=go.get(Qt(z))??-1;return r.jsx("div",{...he>=0?xs(he):{},children:r.jsx(fj,{assignment:z,dragging:oe,transitioning:be===Qt(z),onPillSelect:Ae=>void yo({item:z,toColumnId:Ae.targetStatus,action:Ae}),onRenameTitle:Ae=>Ra(z,Ae)})})}}),r.jsx(fa,{toast:Ht,onDismiss:ae}),r.jsx(dN,{open:Rn,onOpenChange:z=>{Kt(z),z||Bt(!1)},initialName:nn&&Pe?`${Pe.name} (copy)`:"",title:nn?"Save as new view":"Save view",onSubmit:Ta}),r.jsx(bN,{open:xt!==null,action:(xt==null?void 0:xt.action)??null,assignmentTitle:(xt==null?void 0:xt.item.title)??"Assignment",loading:be===(xt?Qt(xt.item):null),onOpenChange:z=>{z||tn(null)},onConfirm:async z=>{if(!xt)return;const oe=xt;await xo({item:oe.item,toColumnId:oe.toColumnId,action:oe.action,reason:z})&&tn(null)}}),r.jsx(T1,{anchor:(St==null?void 0:St.anchor)??null,items:St?w6(St.item,{onEdit:()=>{const z=St.item,oe=z.projectSlug===null?`/assignments/${z.id}`:`${z.projectWorkspace?`/w/${z.projectWorkspace}`:t}/projects/${z.projectSlug}/assignments/${z.slug}`;n(oe)},onDelete:()=>Tt(St.item),onMove:()=>Fe(St.item)}):[],onClose:()=>yt(null)}),r.jsx(ja,{open:kt!==null,title:"Delete assignment?",description:kt?`"${kt.title}" will be permanently removed. This cannot be undone.`:"",confirmLabel:"Delete",destructive:!0,loading:ar!==null,onOpenChange:z=>{!z&&ar===null&&Tt(null)},onConfirm:async()=>{if(!kt||kt.projectSlug===null){Tt(null);return}const z=Qt(kt);lr(z);try{const oe=await fetch(`/api/projects/${encodeURIComponent(kt.projectSlug)}/assignments/${encodeURIComponent(kt.slug)}`,{method:"DELETE"});if(!oe.ok){const he=await oe.json().catch(()=>({}));throw new Error(he.error||"Failed to delete assignment")}Tt(null),u()}catch(oe){alert(oe instanceof Error?oe.message:"Failed to delete assignment")}finally{lr(null)}}}),r.jsx(Bg,{open:xe!==null,onOpenChange:z=>{z||Fe(null)},currentWorkspace:(xe==null?void 0:xe.projectWorkspace)??null,title:"Move assignment to workspace",description:"Standalone assignments belong to a project-workspace via the workspaceGroup frontmatter field.",onSubmit:async z=>{if(!xe)return;const oe=await fetch(`/api/assignments/${encodeURIComponent(xe.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:z})});if(!oe.ok){const he=await oe.json().catch(()=>({}));throw new Error(he.error||"Failed to move assignment")}u()}})]})}function w6(e,t){const n=[{key:"edit",label:"Edit",icon:Vo,onSelect:t.onEdit}];return e.projectSlug!==null?n.push({key:"delete",label:"Delete",icon:Hn,destructive:!0,onSelect:t.onDelete}):n.push({key:"move",label:"Move to workspace…",icon:Ql,onSelect:t.onMove}),n}function j6({detailHref:e,children:t,className:n,...s}){const i=RN(e);return r.jsx("tr",{...s,ref:i.containerRef,className:n,onMouseDown:i.onMouseDown,onClick:i.onClick,children:t})}function fj({assignment:e,dragging:t,transitioning:n,onPillSelect:s,onRenameTitle:i}){var p;const l=cd(e),c=!!(s&&i),u=RN(l);return r.jsxs("div",{ref:c?u.containerRef:void 0,className:Ee("vp-card rounded-lg border border-border/60 bg-background/85 p-3 shadow-sm",c&&"cursor-pointer"),onMouseDown:c?u.onMouseDown:void 0,onClick:c?u.onClick:void 0,children:[r.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[c?r.jsx(PN,{title:e.title,detailHref:l,onSave:i,disabled:n}):r.jsx(Ce,{to:l,className:"text-base font-semibold text-foreground hover:text-primary",children:e.title}),r.jsx("p",{className:"text-sm text-muted-foreground",children:e.projectTitle??r.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase text-muted-foreground",children:"Standalone"})}),r.jsxs("p",{className:"inline-flex items-center gap-1.5 font-mono text-xs text-muted-foreground/70",title:e.id??"",children:[(p=e.id)==null?void 0:p.slice(0,8),e.id&&r.jsx(Dr,{value:e.id})]})]}),c?r.jsx(y6,{currentStatus:e.status,availableTransitions:e.availableTransitions,onSelect:s,disabled:n}):r.jsx(yn,{status:e.status})]}),e.blockedReason?r.jsx("p",{className:"mt-3 rounded-md border border-warning-foreground/30 bg-warning px-3 py-2 text-sm text-warning-foreground",children:e.blockedReason}):null,r.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[r.jsx(pa,{type:e.type}),r.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs capitalize text-muted-foreground",children:e.priority}),r.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:e.assignee??"Unassigned"}),r.jsxs("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:[e.dependsOn.length," dependencies"]})]}),r.jsxs("div",{className:"mt-4 flex items-center justify-between gap-3 text-xs uppercase tracking-[0.08em] text-muted-foreground",children:[r.jsx("span",{children:n?"Updating":t?"Dragging":"Source-first"}),r.jsx("span",{children:On(e.updated)})]})]})}function xl(e,t){return e.availableTransitions.find(n=>n.targetStatus===t)}function Qt(e){return e.id||e.slug||"unknown"}function Ir(e){const t=e.match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return{order:[],blocks:new Map,body:e};const n=t[1],s=e.slice(t[0].length),i=n.split(`
|
|
544
|
+
`),l=[],c=new Map;let u=null,p=[];const m=()=>{u&&(l.push(u),c.set(u,p))};for(const h of i){const x=h.match(/^([A-Za-z_][A-Za-z0-9_-]*):/);if(x&&!h.startsWith(" ")){m(),u=x[1],p=[h];continue}u&&p.push(h)}return m(),{order:l,blocks:c,body:s}}function ka(e){return`---
|
|
545
|
+
${e.order.map(n=>e.blocks.get(n)).filter(n=>!!n).flat().join(`
|
|
546
|
+
`)}
|
|
547
|
+
---
|
|
548
|
+
|
|
549
|
+
${e.body.replace(/^\n+/,"")}`}function gn(e,t){const n=e.blocks.get(t);if(!(n!=null&&n[0]))return"";const s=n[0].match(/^[^:]+:\s*(.*)$/);if(!s)return"";const i=s[1].trim();return i==="null"?"":i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'")?i.slice(1,-1):i}function k6(e,t){return gn(e,t)==="true"}function Rl(e,t){const n=e.blocks.get(t);return n!=null&&n.length?n[0].trim().endsWith("[]")?[]:n.slice(1).map(s=>s.trim()).filter(s=>s.startsWith("- ")).map(s=>s.slice(2).trim()):[]}function S6(e){return typeof e=="boolean"?e?"true":"false":e===null||e===""?"null":/^\d{4}-\d{2}-\d{2}T/.test(e)?`"${e}"`:/[:#{}[\],&*?|>!%@`]/.test(e)||/^\s|\s$/.test(e)?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:e}function xn(e,t,n){e.blocks.has(t)||e.order.push(t),e.blocks.set(t,[`${t}: ${S6(n)}`])}function Al(e,t,n){if(e.blocks.has(t)||e.order.push(t),n.length===0){e.blocks.set(t,[`${t}: []`]);return}e.blocks.set(t,[`${t}:`,...n.map(s=>` - ${s}`)])}function Dl(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function mf(e){const t=Ir(e);return{title:gn(t,"title"),slug:gn(t,"slug"),workspace:gn(t,"workspace"),archived:k6(t,"archived"),archivedAt:gn(t,"archivedAt"),archivedReason:gn(t,"archivedReason"),tags:Rl(t,"tags").join(", "),body:t.body}}function N6(e,t){const n=Ir(e),s={...mf(e),...t};return xn(n,"title",s.title),xn(n,"slug",s.slug),xn(n,"workspace",s.workspace||null),xn(n,"archived",s.archived),xn(n,"archivedAt",s.archivedAt||null),xn(n,"archivedReason",s.archivedReason||null),Al(n,"tags",Dl(s.tags)),n.body=s.body,ka(n)}function hf(e){const t=Ir(e);return{title:gn(t,"title"),slug:gn(t,"slug"),status:gn(t,"status"),priority:gn(t,"priority")||"medium",assignee:gn(t,"assignee"),dependsOn:Rl(t,"dependsOn").join(", "),links:Rl(t,"links").join(", "),blockedReason:gn(t,"blockedReason"),tags:Rl(t,"tags").join(", "),body:t.body}}function C6(e,t){const n=Ir(e),s={...hf(e),...t};return xn(n,"title",s.title),xn(n,"slug",s.slug),xn(n,"status",s.status),xn(n,"priority",s.priority),xn(n,"assignee",s.assignee||null),Al(n,"dependsOn",Dl(s.dependsOn)),Al(n,"links",Dl(s.links)),xn(n,"blockedReason",s.blockedReason||null),Al(n,"tags",Dl(s.tags)),n.body=s.body,ka(n)}function gf(e){const t=Ir(e);return{assignment:gn(t,"assignment"),status:gn(t,"status"),body:t.body}}function E6(e,t){const n=Ir(e),s={...gf(e),...t};return xn(n,"assignment",s.assignment),xn(n,"status",s.status),n.body=s.body,ka(n)}function xf(e){const t=Ir(e);return{assignment:gn(t,"assignment"),body:t.body}}function T6(e,t){const n=Ir(e),s={...xf(e),...t};return xn(n,"assignment",s.assignment),n.body=s.body,ka(n)}function yf(e){const t=Ir(e);return{name:gn(t,"name"),slug:gn(t,"slug"),description:gn(t,"description"),whenToUse:gn(t,"when_to_use"),tags:Rl(t,"tags").join(", "),body:t.body}}function P6(e,t){const n=Ir(e),s={...yf(e),...t};return xn(n,"name",s.name),xn(n,"slug",s.slug),xn(n,"description",s.description||null),xn(n,"when_to_use",s.whenToUse||null),Al(n,"tags",Dl(s.tags)),n.body=s.body,ka(n)}function vx(e){return{body:Ir(e).body}}function AN(e){return vx(e)}function DN(e,t){const n=Ir(e);return t.body!==void 0&&(n.body=t.body),ka(n)}function R6(e,t){return DN(e,t)}function Ft(e,t,n){switch(e){case"project":return N6(t,n);case"assignment":return C6(t,n);case"plan":return E6(t,n);case"scratchpad":return T6(t,n);case"playbook":return P6(t,n);case"memory":return DN(t,n);case"resource":return R6(t,n);default:return t}}function Sa({initialContent:e,documentType:t,mode:n="edit",onSave:s,saving:i,error:l,title:c,description:u,onCancel:p,helpTitle:m,helpBody:h,allowSlugEdit:x=!1}){const[y,b]=f.useState(e),[E,k]=f.useState(!1),[w,j]=f.useState("edit");f.useEffect(()=>{b(e)},[e]);const C=L6(t,y),N=y!==e,T=$6(t,y),L=N?"Unsaved changes":n==="create"?"Draft":"Saved",P=t!=="memory"&&t!=="resource";return r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"rounded-lg border border-border/70 bg-card/90 p-3 shadow-sm",children:[r.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("h1",{className:"text-lg font-semibold text-foreground",children:c}),r.jsx("span",{className:"rounded-full border border-border/70 bg-background/80 px-2.5 py-1 text-xs font-medium text-muted-foreground",children:L})]}),u?r.jsx("p",{className:"max-w-3xl text-sm leading-6 text-muted-foreground",children:u}):null]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsxs("button",{type:"button",onClick:p,className:"shell-action",children:[r.jsx(qj,{className:"h-4 w-4"}),r.jsx("span",{children:"Back"})]}),P?r.jsxs("button",{type:"button",onClick:()=>k($=>!$),className:"shell-action",children:[r.jsx(ET,{className:"h-4 w-4"}),r.jsx("span",{children:E?"Structured":"Raw Markdown"})]}):null,r.jsxs("button",{type:"button",onClick:()=>s(y),disabled:i||C.length>0,className:"inline-flex items-center gap-2 rounded-md bg-foreground px-4 py-2 text-sm font-semibold text-background transition hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:[r.jsx(Rd,{className:"h-4 w-4"}),r.jsx("span",{children:i?"Saving…":"Save"})]})]})]}),l?r.jsx("p",{className:"mt-4 rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:l}):null,C.length>0?r.jsx("div",{className:"mt-4 rounded-md border border-warning-foreground/30 bg-warning px-4 py-3 text-sm text-warning-foreground",children:r.jsx("ul",{className:"space-y-1",children:C.map($=>r.jsx("li",{children:$},$))})}):null]}),r.jsxs("div",{className:"flex items-center gap-2 md:hidden",children:[r.jsx("button",{type:"button",onClick:()=>j("edit"),className:`shell-action ${w==="edit"?"bg-foreground text-background":""}`,children:"Edit"}),r.jsxs("button",{type:"button",onClick:()=>j("preview"),className:`shell-action ${w==="preview"?"bg-foreground text-background":""}`,children:[r.jsx(rv,{className:"h-4 w-4"}),"Preview"]})]}),r.jsxs("div",{className:"grid gap-3 xl:grid-cols-[minmax(0,1.2fr)_minmax(320px,0.8fr)]",children:[r.jsx("div",{className:w==="preview"?"hidden md:block":"",children:r.jsx("div",{className:"surface-panel space-y-3",children:E?r.jsx("textarea",{value:y,onChange:$=>b($.target.value),className:"min-h-[720px] w-full rounded-md border border-border/70 bg-background/90 p-4 font-mono text-sm text-foreground outline-none transition focus:border-primary focus:ring-2 focus:ring-ring/30",spellCheck:!1}):r.jsx(A6,{documentType:t,content:y,onChange:b,allowSlugEdit:x})})}),r.jsx("div",{className:w==="edit"?"hidden md:block":"",children:r.jsxs("div",{className:"surface-panel sticky top-16 space-y-4",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(rv,{className:"h-4 w-4 text-muted-foreground"}),r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"Preview"})]}),r.jsx(un,{content:T,emptyState:"Write markdown body content to preview it here."})]})})]})]})}function A6({documentType:e,content:t,onChange:n,allowSlugEdit:s}){if(e==="project"){const l=mf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(yl,{children:[r.jsx(Et,{label:"Project title",children:r.jsx("input",{value:l.title,onChange:c=>{const u=c.target.value,p={title:u};s&&(l.slug===mr(l.title)||!l.slug.trim())&&(p.slug=mr(u)),n(Ft(e,t,p))},className:"editor-input"})}),r.jsx(Et,{label:"Slug",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{value:l.slug,disabled:!s,onChange:c=>n(Ft(e,t,{slug:mr(c.target.value)})),className:`editor-input ${s?"":"editor-input-disabled"}`}),r.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:s?"The slug becomes the folder name and URL. It is auto-generated from the title until you change it, and it cannot be renamed after creation.":"The slug is the folder name and URL-safe identifier. It is locked after creation so links and file paths stay stable."})]})}),r.jsx(Et,{label:"Tags",children:r.jsx("input",{value:l.tags,onChange:c=>n(Ft(e,t,{tags:c.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})}),r.jsx(D6,{value:l.workspace,onChange:c=>n(Ft(e,t,{workspace:c}))})]}),r.jsx(Et,{label:"Project body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ft(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="assignment"){const l=hf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(yl,{children:[r.jsx(Et,{label:"Assignment title",children:r.jsx("input",{value:l.title,onChange:c=>{const u=c.target.value,p={title:u};s&&(l.slug===mr(l.title)||!l.slug.trim())&&(p.slug=mr(u)),n(Ft(e,t,p))},className:"editor-input"})}),r.jsx(Et,{label:"Slug",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{value:l.slug,disabled:!s,onChange:c=>n(Ft(e,t,{slug:mr(c.target.value)})),className:`editor-input ${s?"":"editor-input-disabled"}`}),r.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:s?"The slug becomes the assignment folder name and URL. It is auto-generated from the title until you change it, and it cannot be renamed after creation.":"The slug is locked after creation because assignment paths and dependency references use it as a stable identifier."})]})}),r.jsx(Et,{label:"Status",children:r.jsxs("select",{value:l.status,onChange:c=>n(Ft(e,t,{status:c.target.value})),className:"editor-input",children:[r.jsx("option",{value:"pending",children:"Pending"}),r.jsx("option",{value:"in_progress",children:"In Progress"}),r.jsx("option",{value:"blocked",children:"Blocked"}),r.jsx("option",{value:"review",children:"Review"}),r.jsx("option",{value:"completed",children:"Completed"}),r.jsx("option",{value:"failed",children:"Failed"})]})}),r.jsx(Et,{label:"Priority",children:r.jsxs("select",{value:l.priority,onChange:c=>n(Ft(e,t,{priority:c.target.value})),className:"editor-input",children:[r.jsx("option",{value:"low",children:"Low"}),r.jsx("option",{value:"medium",children:"Medium"}),r.jsx("option",{value:"high",children:"High"}),r.jsx("option",{value:"critical",children:"Critical"})]})}),r.jsx(Et,{label:"Assignee",children:r.jsx("input",{value:l.assignee,onChange:c=>n(Ft(e,t,{assignee:c.target.value})),placeholder:"Agent name",className:"editor-input"})}),r.jsx(Et,{label:"Depends on",className:"md:col-span-2",children:r.jsx("input",{value:l.dependsOn,onChange:c=>n(Ft(e,t,{dependsOn:c.target.value})),placeholder:"Comma-separated assignment slugs",className:"editor-input"})}),r.jsx(Et,{label:"Links",className:"md:col-span-2",children:r.jsx("input",{value:l.links,onChange:c=>n(Ft(e,t,{links:c.target.value})),placeholder:"Comma-separated: projectSlug/assignmentSlug",className:"editor-input"})}),r.jsx(Et,{label:"Blocked reason",className:"md:col-span-2",children:r.jsx("input",{value:l.blockedReason,onChange:c=>n(Ft(e,t,{blockedReason:c.target.value})),placeholder:"Read-only unless the assignment is actually blocked",className:"editor-input"})}),r.jsx(Et,{label:"Tags",className:"md:col-span-2",children:r.jsx("input",{value:l.tags,onChange:c=>n(Ft(e,t,{tags:c.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})})]}),r.jsx(Et,{label:"Assignment body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ft(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="plan"){const l=gf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(yl,{children:[r.jsx(Et,{label:"Assignment",children:r.jsx("input",{value:l.assignment,disabled:!0,className:"editor-input editor-input-disabled"})}),r.jsx(Et,{label:"Plan status",children:r.jsxs("select",{value:l.status,onChange:c=>n(Ft(e,t,{status:c.target.value})),className:"editor-input",children:[r.jsx("option",{value:"draft",children:"Draft"}),r.jsx("option",{value:"approved",children:"Approved"}),r.jsx("option",{value:"in_progress",children:"In Progress"}),r.jsx("option",{value:"completed",children:"Completed"})]})})]}),r.jsx(Et,{label:"Plan body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ft(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="scratchpad"){const l=xf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsx(yl,{children:r.jsx(Et,{label:"Assignment",children:r.jsx("input",{value:l.assignment,disabled:!0,className:"editor-input editor-input-disabled"})})}),r.jsx(Et,{label:"Scratchpad body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ft(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="memory"||e==="resource"){const l=e==="memory"?vx(t):AN(t),c=e==="memory"?"Memory body":"Resource body";return r.jsxs("div",{className:"space-y-3",children:[r.jsx(Et,{label:c,children:r.jsx("textarea",{value:l.body,onChange:u=>n(Ft(e,t,{body:u.target.value})),className:"editor-textarea",spellCheck:!1})}),r.jsx("p",{className:"text-xs text-muted-foreground/80",children:"Frontmatter (name, scope/category, source, related assignments, tags) is preserved server-side on save."})]})}const i=yf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(yl,{children:[r.jsx(Et,{label:"Playbook name",children:r.jsx("input",{value:i.name,onChange:l=>{const c=l.target.value,u={name:c};s&&(i.slug===mr(i.name)||!i.slug.trim())&&(u.slug=mr(c)),n(Ft(e,t,u))},className:"editor-input"})}),r.jsx(Et,{label:"Slug",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{value:i.slug,disabled:!s,onChange:l=>n(Ft(e,t,{slug:mr(l.target.value)})),className:`editor-input ${s?"":"editor-input-disabled"}`}),r.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:s?"The slug becomes the filename. It is auto-generated from the name until you change it.":"The slug is locked after creation because it is the filename."})]})}),r.jsx(Et,{label:"Description",className:"md:col-span-2",children:r.jsx("input",{value:i.description,onChange:l=>n(Ft(e,t,{description:l.target.value})),placeholder:"One-line description of what this playbook does",className:"editor-input"})}),r.jsx(Et,{label:"Tags",className:"md:col-span-2",children:r.jsx("input",{value:i.tags,onChange:l=>n(Ft(e,t,{tags:l.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})}),r.jsx(Et,{label:"When to use",className:"md:col-span-2",children:r.jsx("input",{value:i.whenToUse,onChange:l=>n(Ft(e,t,{whenToUse:l.target.value})),placeholder:"Describe when agents should apply this playbook",className:"editor-input"})})]}),r.jsx(Et,{label:"Playbook rules",children:r.jsx("textarea",{value:i.body,onChange:l=>n(Ft(e,t,{body:l.target.value})),className:"editor-textarea",spellCheck:!1})})]})}function yl({children:e}){return r.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:e})}function Et({label:e,children:t,className:n}){return r.jsxs("label",{className:`block space-y-2 ${n??""}`,children:[r.jsx("span",{className:"text-sm font-medium text-foreground",children:e}),t]})}function D6({value:e,onChange:t}){const{data:n}=Ad(),s=(n==null?void 0:n.workspaces)??[];return r.jsx(Et,{label:"Workspace",children:r.jsxs("select",{value:e,onChange:i=>t(i.target.value),className:"editor-input",children:[r.jsx("option",{value:"",children:"Ungrouped"}),s.map(i=>r.jsx("option",{value:i,children:i},i))]})})}function $6(e,t){switch(e){case"project":return mf(t).body;case"assignment":return hf(t).body;case"plan":return gf(t).body;case"scratchpad":return xf(t).body;case"playbook":return yf(t).body;case"memory":return vx(t).body;case"resource":return AN(t).body}}function L6(e,t){switch(e){case"project":{const n=mf(t);return[n.title.trim()?null:"Project title is required.",n.slug.trim()?null:"Project slug is required.",n.slug.trim()&&!Fu(n.slug)?"Project slug must be lowercase letters, numbers, and hyphens only.":null].filter(s=>!!s)}case"assignment":{const n=hf(t);return[n.title.trim()?null:"Assignment title is required.",n.slug.trim()?null:"Assignment slug is required.",n.slug.trim()&&!Fu(n.slug)?"Assignment slug must be lowercase letters, numbers, and hyphens only.":null].filter(s=>!!s)}case"plan":return gf(t).assignment.trim()?[]:["Plan assignment is required."];case"scratchpad":return xf(t).assignment.trim()?[]:["Scratchpad assignment is required."];case"playbook":{const n=yf(t);return[n.name.trim()?null:"Playbook name is required.",n.slug.trim()?null:"Playbook slug is required.",n.slug.trim()&&!Fu(n.slug)?"Playbook slug must be lowercase letters, numbers, and hyphens only.":null].filter(s=>!!s)}case"memory":case"resource":return[]}}function pj(){const e=$t(),{workspace:t}=Lt(),n=on(),[s,i]=f.useState(null),[l,c]=f.useState(!0),[u,p]=f.useState(!1),[m,h]=f.useState(null);f.useEffect(()=>{fetch("/api/templates/project").then(y=>y.json()).then(y=>{let b=y.content;t&&t!=="_ungrouped"&&(b=b.replace(/^(tags: \[\])$/m,`$1
|
|
550
|
+
workspace: ${t}`)),i(b),c(!1)}).catch(y=>{h(y.message),c(!1)})},[t]);async function x(y){p(!0),h(null);try{const b=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:y})}),E=await b.json();if(!b.ok){h(E.error||`HTTP ${b.status}`),p(!1);return}e(`${n}/projects/${E.slug}`)}catch(b){h(b.message),p(!1);return}p(!1)}return l?r.jsx(ft,{label:"Loading project template…"}):m&&!s?r.jsx(mt,{error:m}):r.jsx(Sa,{initialContent:s||"",documentType:"project",mode:"create",onSave:x,saving:u,error:m,title:"Create Project",description:"Projects hold the high-level objective, shared context, and human-authored overview. Put execution details in assignments instead of overloading project.md.",onCancel:()=>e(`${n}/projects`),helpTitle:"Project editing rules",helpBody:"Use this form for project intent, slug, tags, and overview content. If you ever need less common metadata, raw markdown mode still exposes the full file.",allowSlugEdit:!0})}function mj(){const{slug:e}=Lt(),t=on(),n=$t(),[s,i]=f.useState(null),[l,c]=f.useState(!0),[u,p]=f.useState(!1),[m,h]=f.useState(null);f.useEffect(()=>{fetch("/api/templates/assignment").then(y=>y.json()).then(y=>{i(y.content),c(!1)}).catch(y=>{h(y.message),c(!1)})},[]);async function x(y){if(!e){h("Project slug is required.");return}p(!0),h(null);try{const b=await fetch(`/api/projects/${e}/assignments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:y})}),E=await b.json();if(!b.ok){h(E.error||`HTTP ${b.status}`),p(!1);return}n(`${t}/projects/${e}/assignments/${E.slug}`)}catch(b){h(b.message),p(!1);return}p(!1)}return l?r.jsx(ft,{label:"Loading assignment template…"}):m&&!s?r.jsx(mt,{error:m}):r.jsx(Sa,{initialContent:s||"",documentType:"assignment",mode:"create",onSave:x,saving:u,error:m,title:"Create Assignment",description:"Assignments are the execution unit. Declare dependencies here, keep status pending until work starts, and use blocked later only for runtime obstacles.",onCancel:()=>n(e?`${t}/projects/${e}`:`${t}/projects`),helpTitle:"Assignment editing rules",helpBody:"Use structured fields for priority, assignee, dependencies, and tags. Status can be changed through lifecycle actions, kanban drag, or the status override.",allowSlugEdit:!0})}function hj(){const{workspace:e}=Lt(),t=on(),n=$t(),[s,i]=f.useState(null),[l,c]=f.useState(!0),[u,p]=f.useState(!1),[m,h]=f.useState(null);f.useEffect(()=>{const y=new URLSearchParams({standalone:"1"});e&&y.set("workspace",e),fetch(`/api/templates/assignment?${y.toString()}`).then(b=>b.json()).then(b=>{i(b.content),c(!1)}).catch(b=>{h(b.message),c(!1)})},[e]);async function x(y){var b;p(!0),h(null);try{const E=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:y})}),k=await E.json();if(!E.ok){h(k.error||`HTTP ${E.status}`),p(!1);return}const w=(b=k==null?void 0:k.assignment)==null?void 0:b.id;if(!w){h("Server did not return the new assignment id."),p(!1);return}n(`/assignments/${w}`)}catch(E){h(E.message),p(!1);return}p(!1)}return l?r.jsx(ft,{label:"Loading assignment template…"}):m&&!s?r.jsx(mt,{error:m}):r.jsx(Sa,{initialContent:s||"",documentType:"assignment",mode:"create",onSave:x,saving:u,error:m,title:"Create Standalone Assignment",description:e?`Standalone assignments live outside any project. This one will be tagged with workspaceGroup: ${e} so it appears in this workspace's views.`:"Standalone assignments live outside any project. Add a workspaceGroup to make them appear in workspace-filtered views.",onCancel:()=>n(`${t}/assignments`),helpTitle:"Standalone assignment editing rules",helpBody:"No project field is needed (it must remain null). Use workspaceGroup to group with other workspace work. Status, priority, and tags work the same as project-nested assignments.",allowSlugEdit:!0})}function Na({loadUrl:e,saveUrl:t,redirectTo:n,title:s,description:i,documentType:l,helpTitle:c,helpBody:u}){const p=$t(),{data:m,loading:h,error:x}=N0(e),[y,b]=f.useState(!1),[E,k]=f.useState(null);async function w(j){b(!0),k(null);try{const C=await fetch(t,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:j})}),N=await C.json();if(!C.ok){k(N.error||`HTTP ${C.status}`),b(!1);return}p(n)}catch(C){k(C.message),b(!1);return}b(!1)}return h?r.jsx(ft,{label:`Loading ${s.toLowerCase()}…`}):x||!m?r.jsx(mt,{error:x||`${s} is unavailable.`}):r.jsx(Sa,{initialContent:m.content,documentType:l,onSave:w,saving:y,error:E,title:s,description:i,onCancel:()=>p(n),helpTitle:c,helpBody:u})}function gj(){const{slug:e}=Lt(),t=on(),n=e??"";return r.jsx(Na,{loadUrl:`/api/projects/${n}/edit`,saveUrl:`/api/projects/${n}`,redirectTo:`${t}/projects/${n}`,title:"Edit Project",description:"Project edits change the human-authored source document. The structured form stays focused on title, slug, tags, and overview content.",documentType:"project",helpTitle:"Editable vs derived project fields",helpBody:"Project status remains derived from assignment state. If you need less common frontmatter fields, switch to raw markdown mode instead of expanding the structured form."})}function Ym(){const{slug:e,aslug:t,id:n}=Lt(),s=on(),i=!!n,l=i?`/api/assignments/${n}/edit`:`/api/projects/${e}/assignments/${t}/edit`,c=i?`/api/assignments/${n}`:`/api/projects/${e}/assignments/${t}`,u=i?`/assignments/${n}`:`${s}/projects/${e}/assignments/${t}`;return r.jsx(Na,{loadUrl:l,saveUrl:c,redirectTo:u,title:"Edit Assignment",description:"Edit assignment fields including status, priority, assignee, dependencies, and body.",documentType:"assignment",helpTitle:"Assignment editing",helpBody:"All fields are editable. Status can also be changed through lifecycle actions or kanban drag."})}function Jm(){const{slug:e,aslug:t,id:n}=Lt(),s=on(),i=!!n,l=i?`/api/assignments/${n}/plan/edit`:`/api/projects/${e}/assignments/${t}/plan/edit`,c=i?`/api/assignments/${n}/plan`:`/api/projects/${e}/assignments/${t}/plan`,u=i?`/assignments/${n}?tab=plan`:`${s}/projects/${e}/assignments/${t}?tab=plan`;return r.jsx(Na,{loadUrl:l,saveUrl:c,redirectTo:u,title:"Edit Plan",description:"Plans are separate from assignment status, so keep implementation steps here instead of overloading the assignment body.",documentType:"plan",helpTitle:"Plan status is separate",helpBody:"Plan status tracks the plan document itself. It does not replace the assignment lifecycle state."})}function Xm(){const{slug:e,aslug:t,id:n}=Lt(),s=on(),i=!!n,l=i?`/api/assignments/${n}/scratchpad/edit`:`/api/projects/${e}/assignments/${t}/scratchpad/edit`,c=i?`/api/assignments/${n}/scratchpad`:`/api/projects/${e}/assignments/${t}/scratchpad`,u=i?`/assignments/${n}?tab=scratchpad`:`${s}/projects/${e}/assignments/${t}?tab=scratchpad`;return r.jsx(Na,{loadUrl:l,saveUrl:c,redirectTo:u,title:"Edit Scratchpad",description:"Scratchpad is the assignment’s working memory surface for notes, experiments, and temporary context.",documentType:"scratchpad",helpTitle:"Scratchpad usage",helpBody:"Scratchpad is for transient notes. Keep canonical objective and lifecycle data in assignment.md and any active plan files (plan.md, plan-v2.md, ...)."})}function $N({loadUrl:e,saveUrl:t,redirectTo:n,title:s,description:i,helpTitle:l,helpBody:c}){const u=$t(),{data:p,loading:m,error:h}=N0(e),[x,y]=f.useState(""),[b,E]=f.useState(""),[k,w]=f.useState(!1),[j,C]=f.useState(null);async function N(){w(!0),C(null);try{const T=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:x,body:b})}),L=await T.json();if(!T.ok){C(L.error||`HTTP ${T.status}`),w(!1);return}u(n)}catch(T){C(T.message),w(!1);return}w(!1)}return m?r.jsx(ft,{label:`Loading ${s.toLowerCase()}…`}):h||!p?r.jsx(mt,{error:h||`${s} is unavailable.`}):r.jsxs("div",{className:"space-y-4",children:[r.jsx(ze,{title:s,description:i,children:r.jsxs("div",{className:"space-y-4",children:[r.jsxs("label",{className:"block space-y-2",children:[r.jsx("span",{className:"text-sm font-medium text-foreground",children:"Entry title"}),r.jsx("input",{value:x,onChange:T=>y(T.target.value),placeholder:"Optional title",className:"editor-input"})]}),r.jsxs("label",{className:"block space-y-2",children:[r.jsx("span",{className:"text-sm font-medium text-foreground",children:"Entry body"}),r.jsx("textarea",{value:b,onChange:T=>E(T.target.value),className:"editor-textarea",spellCheck:!1})]}),j?r.jsx("p",{className:"rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:j}):null,r.jsxs("div",{className:"flex flex-wrap gap-2",children:[r.jsx("button",{type:"button",onClick:()=>u(n),className:"shell-action",children:"Cancel"}),r.jsx("button",{type:"button",onClick:N,disabled:k||!b.trim(),className:"shell-action bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:k?"Appending…":"Append Entry"})]})]})}),r.jsx(ze,{title:"Current Document",children:r.jsx(un,{content:p.content.replace(/^---[\s\S]*?---\n?/,""),emptyState:"No existing content."})})]})}function Qm(){const{slug:e,aslug:t,id:n}=Lt(),s=on(),i=!!n,l=i?`/api/assignments/${n}/handoff/edit`:`/api/projects/${e}/assignments/${t}/handoff/edit`,c=i?`/api/assignments/${n}/handoff/entries`:`/api/projects/${e}/assignments/${t}/handoff/entries`,u=i?`/assignments/${n}?tab=handoff`:`${s}/projects/${e}/assignments/${t}?tab=handoff`;return r.jsx($N,{loadUrl:l,saveUrl:c,redirectTo:u,title:"Append Handoff Entry",description:"Add a new handoff without rewriting previous history.",helpTitle:"Append-only handoff history",helpBody:"Handoff log entries preserve the baton-passing trail between sessions and agents. Add a new entry instead of editing older ones."})}function Zm(){const{slug:e,aslug:t,id:n}=Lt(),s=on(),i=!!n,l=i?`/api/assignments/${n}/decision-record/edit`:`/api/projects/${e}/assignments/${t}/decision-record/edit`,c=i?`/api/assignments/${n}/decision-record/entries`:`/api/projects/${e}/assignments/${t}/decision-record/entries`,u=i?`/assignments/${n}?tab=decisions`:`${s}/projects/${e}/assignments/${t}?tab=decisions`;return r.jsx($N,{loadUrl:l,saveUrl:c,redirectTo:u,title:"Append Decision Entry",description:"Record a new decision and rationale without editing prior entries.",helpTitle:"Append-only decision history",helpBody:"Decision records should accumulate over time so the implementation rationale remains auditable and reviewable."})}function xj(){const{workspace:e}=Lt(),{data:t}=Ho(),{data:n,loading:s,error:i,refetch:l}=ag(),[c,u]=f.useState(!1),[p,m]=f.useState(""),[h,x]=f.useState(!1),y=Vn();f.useEffect(()=>{const C=y.hash.match(/^#server-(.+)/);if(!C)return;const N=decodeURIComponent(C[1]),T=document.querySelector(`[data-server-name="${window.CSS.escape(N)}"]`);if(!T)return;T.scrollIntoView({block:"nearest"}),T.classList.add("ring-2","ring-primary/60");const L=window.setTimeout(()=>T.classList.remove("ring-2","ring-primary/60"),1500);return()=>window.clearTimeout(L)},[y.hash,n]);const b=(()=>{if(!e||!n)return(n==null?void 0:n.sessions)??[];if(!t)return[];const C=new Set(t.filter(N=>e==="_ungrouped"?N.workspace===null:N.workspace===e).map(N=>N.slug));return n.sessions.filter(N=>N.windows.some(T=>T.panes.some(L=>L.assignment&&L.assignment.project!==null&&C.has(L.assignment.project))))})();async function E(C){if(C.preventDefault(),!!p.trim())try{await fetch("/api/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim()})}),m(""),u(!1),l()}catch{}}async function k(){x(!0);try{await fetch("/api/servers/refresh",{method:"POST"}),l()}finally{x(!1)}}async function w(C){await fetch(`/api/servers/${encodeURIComponent(C)}`,{method:"DELETE"}),l()}async function j(C){await fetch(`/api/servers/${encodeURIComponent(C)}/refresh`,{method:"POST"}),l()}return s?r.jsx(ft,{label:"Loading servers…"}):i?r.jsx(mt,{error:i}):n?n.tmuxAvailable?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[c?r.jsxs("form",{onSubmit:E,className:"flex items-center gap-2",children:[r.jsx("input",{type:"text",value:p,onChange:C=>m(C.target.value),placeholder:"tmux session name",className:"editor-input text-sm",autoFocus:!0}),r.jsx("button",{type:"submit",className:"shell-action",children:"Add"}),r.jsx("button",{type:"button",className:"shell-action",onClick:()=>u(!1),children:"Cancel"})]}):r.jsxs("button",{className:"shell-action",onClick:()=>u(!0),children:[r.jsx(en,{className:"h-3.5 w-3.5"}),"Track Session"]}),r.jsxs("button",{className:"shell-action",onClick:k,disabled:h,children:[r.jsx(e0,{className:`h-3.5 w-3.5 ${h?"animate-spin":""}`}),"Refresh All"]})]}),b.length===0?r.jsx(ct,{title:"No sessions tracked",description:"Register a tmux session to start tracking your dev servers."}):r.jsx("div",{className:"mt-4 space-y-4",children:b.map(C=>r.jsx(I6,{session:C,onRefresh:()=>j(C.name),onRemove:()=>w(C.name),onRefetch:l},C.name))})]}):r.jsx(r.Fragment,{children:r.jsxs("div",{className:"surface-panel mt-4 flex flex-col items-center gap-3 py-12 text-center",children:[r.jsx(Bi,{className:"h-10 w-10 text-muted-foreground/40"}),r.jsx("p",{className:"text-sm font-medium text-foreground",children:"tmux is not installed"}),r.jsxs("p",{className:"max-w-md text-sm text-muted-foreground",children:["Server tracking requires tmux. Install it with ",r.jsx("code",{className:"rounded bg-muted px-1.5 py-0.5 text-xs",children:"brew install tmux"})," to get started."]})]})}):null}function I6({session:e,onRefresh:t,onRemove:n,onRefetch:s}){return r.jsxs("div",{className:"surface-panel","data-server-name":e.name,children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(eg,{className:"h-4 w-4 text-muted-foreground"}),r.jsx("span",{className:"text-sm font-semibold text-foreground",children:e.name}),r.jsx("span",{className:`inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${e.alive?"border border-success-foreground/30 bg-success text-success-foreground":"border border-error-foreground/30 bg-error text-error-foreground"}`,children:e.alive?"alive":"dead"}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Last refreshed: ",new Date(e.lastRefreshed).toLocaleString()]})]}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx("button",{className:"shell-action",onClick:t,title:"Refresh",children:r.jsx(e0,{className:"h-3.5 w-3.5"})}),r.jsx("button",{className:"shell-action",onClick:n,title:"Remove",children:r.jsx(Hn,{className:"h-3.5 w-3.5"})})]})]}),e.alive&&e.windows.length>0&&r.jsx("div",{className:"mt-3 space-y-3",children:e.windows.map(i=>r.jsxs("div",{children:[r.jsxs("p",{className:"mb-1.5 text-xs font-medium uppercase tracking-wider text-muted-foreground",children:["Window ",i.index,": ",i.name]}),r.jsx("div",{className:"space-y-1.5",children:i.panes.map(l=>r.jsx(O6,{pane:l,sessionName:e.name,windowIndex:i.index,onRefetch:s},`${i.index}:${l.index}`))})]},i.index))}),!e.alive&&r.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:[r.jsx(VT,{className:"h-4 w-4"}),r.jsx("span",{children:e.kind==="process"?"Process no longer running":"Session no longer exists"})]})]})}function O6({pane:e,sessionName:t,windowIndex:n,onRefetch:s}){const i=on(),l=e.cwd.replace(/^\/Users\/[^/]+/,"~");return r.jsxs("div",{className:"flex items-center gap-3 rounded-md border border-border/40 bg-background/60 px-3 py-2 text-sm",children:[r.jsxs("span",{className:"shrink-0 font-mono text-xs text-muted-foreground/60",children:[":",e.index]}),r.jsx("span",{className:"shrink-0 rounded bg-muted/60 px-1.5 py-0.5 font-mono text-xs",children:e.command}),r.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground",children:[r.jsx("span",{className:"block min-w-0 truncate",title:e.cwd,children:l}),r.jsx(Dr,{value:e.cwd})]}),e.branch&&r.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[r.jsx(Xh,{className:"h-3 w-3"}),e.branch,e.worktree&&r.jsx("span",{className:"rounded bg-status-in-progress px-1 py-0.5 text-[10px] font-medium text-status-in-progress-foreground",children:"worktree"})]}),e.ports.length>0&&r.jsx("div",{className:"flex shrink-0 items-center gap-1.5",children:e.urls.map(c=>r.jsxs("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 rounded border border-primary/30 bg-primary/5 px-1.5 py-0.5 text-xs font-medium text-primary hover:bg-primary/10 dark:border-primary/40 dark:bg-primary/10 dark:hover:bg-primary/20",children:[c.replace("http://localhost:",":"),r.jsx(aa,{className:"h-2.5 w-2.5"})]},c))}),r.jsx("div",{className:"ml-auto shrink-0",children:e.assignment?r.jsxs(Ce,{to:e.assignment.project===null?`/assignments/${e.assignment.slug}`:`${i}/projects/${e.assignment.project}/assignments/${e.assignment.slug}`,className:"inline-flex items-center gap-1 rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-xs font-medium text-primary hover:bg-primary/20",children:[r.jsx(LT,{className:"h-2.5 w-2.5"}),e.assignment.title,e.assignment.project===null?r.jsx("span",{className:"ml-1 rounded bg-muted px-1 py-0.5 text-[9px] uppercase tracking-wide text-muted-foreground",children:"Standalone"}):null]}):r.jsx("span",{className:"text-xs text-muted-foreground/40",children:"unlinked"})})]})}function LN(e){return e<60?`${e}s`:e<3600?`${Math.round(e/60)}m`:e<86400?`${Math.round(e/3600)}h`:`${Math.round(e/86400)}d`}function _6(e,t){const n=Date.parse(e),s=Math.floor((n-t)/1e3);return Number.isNaN(s)?"–":s<=0?"expired":LN(s)}function M6(e){switch(e){case"idle":return"bg-green-500/15 text-green-400 border-green-500/30";case"leased":return"bg-amber-500/15 text-amber-400 border-amber-500/30";case"retired":return"bg-zinc-500/15 text-zinc-400 border-zinc-500/30"}}function F6(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function yj(){const{data:e,loading:t,error:n,refetch:s}=C0(),[i,l]=f.useState(()=>Date.now()),[c,u]=f.useState(null),[p,m]=f.useState(!1);if(f.useEffect(()=>{const x=window.setInterval(()=>l(Date.now()),1e3);return()=>window.clearInterval(x)},[]),t)return r.jsx(ft,{label:"Loading inventories…"});if(n)return r.jsx(mt,{title:"Could not load inventories",error:n,action:r.jsx("button",{type:"button",onClick:s,className:"rounded border px-3 py-1 text-sm",children:"Retry"})});if(!e||e.inventories.length===0)return r.jsx(ct,{title:"No inventories yet",description:"Create one with `syntaur lease create-inventory <slug> --kind <kind>`, then add members with `syntaur lease member add <slug> <id>`."});async function h(){if(c){m(!0);try{const x=await fetch(`/api/leases/${encodeURIComponent(c.slug)}/force-release/${encodeURIComponent(c.lease.lease_id)}`,{method:"POST"});if(!x.ok){const y=await x.json().catch(()=>null);throw new Error((y==null?void 0:y.error)??`HTTP ${x.status}`)}s(),u(null)}catch(x){window.alert(x instanceof Error?`Force release failed: ${x.message}`:"Force release failed")}finally{m(!1)}}}return r.jsxs("div",{className:"space-y-6",children:[r.jsx("div",{className:"flex items-start justify-between",children:r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl font-semibold",children:"Inventories"}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Claimable shared resources (dev envs, test DBs, named locks, …). Global in v1 — the same set appears on every workspace."})]})}),r.jsx("div",{className:"grid gap-4",children:e.inventories.map(x=>r.jsx(z6,{detail:x,now:i,onForceRelease:y=>u({slug:x.inventory.slug,lease:y})},x.inventory.slug))}),r.jsx(ja,{open:c!==null,title:"Force release this lease?",description:c?`This will revoke lease ${c.lease.lease_id} and (if it's still the current holder) free member ${c.lease.member_id}. Any agent still using this lease will see a stale-lease error on its next CLI call.`:"",confirmLabel:"Force release",destructive:!0,loading:p,onConfirm:h,onOpenChange:x=>{x||u(null)}})]})}function z6({detail:e,now:t,onForceRelease:n}){const{inventory:s,members:i,active_leases:l}=e,c=i.filter(p=>p.status==="idle").length,u=i.filter(p=>p.status==="leased").length;return r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsxs("div",{className:"flex items-start justify-between",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-lg font-semibold",children:[r.jsx(Ed,{className:"mr-2 inline h-4 w-4 text-muted-foreground"}),s.display_name??s.slug]}),r.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:[r.jsx("code",{className:"font-mono",children:s.slug})," · kind=",s.kind," · default TTL=",LN(s.default_ttl_s)]})]}),r.jsx("div",{className:"text-right text-xs text-muted-foreground",children:r.jsxs("div",{children:[c," idle · ",u," leased · ",i.length," total"]})})]}),r.jsx("div",{className:"mt-4 grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:i.map(p=>r.jsx(B6,{member:p},p.member_id))}),l.length>0&&r.jsxs("div",{className:"mt-4",children:[r.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Active leases"}),r.jsx("div",{className:"mt-2 space-y-2",children:l.map(p=>r.jsx(U6,{lease:p,now:t,onForceRelease:()=>n(p)},p.lease_id))})]})]})}function B6({member:e}){const t=F6(e.metadata_json);return r.jsxs("div",{className:"rounded-md border bg-muted/40 px-3 py-2 text-sm",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"font-mono",children:e.member_id}),r.jsx("span",{className:`rounded border px-1.5 py-0.5 text-xs ${M6(e.status)}`,children:e.status})]}),t&&r.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:Object.entries(t).map(([n,s])=>r.jsxs("div",{className:"truncate",children:[r.jsx("span",{className:"font-mono",children:n}),"=",r.jsx("span",{className:"font-mono",children:String(s)})]},n))})]})}function U6({lease:e,now:t,onForceRelease:n}){return r.jsxs("div",{className:"flex items-center justify-between rounded border bg-muted/20 px-3 py-2 text-sm",children:[r.jsx("div",{className:"min-w-0 flex-1",children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[e.lease_id.slice(0,8),"…"]}),r.jsx("span",{className:"font-mono",children:e.member_id}),e.requested_for&&r.jsxs("span",{className:"text-xs text-muted-foreground",children:["for ",e.requested_for]})]})}),r.jsxs("div",{className:"ml-3 flex items-center gap-3",children:[r.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[r.jsx(jT,{className:"h-3 w-3"}),_6(e.expires_at,t)]}),r.jsxs("button",{type:"button",onClick:n,className:"flex items-center gap-1 rounded border border-destructive/40 px-2 py-1 text-xs text-destructive hover:bg-destructive/10",children:[r.jsx(WT,{className:"h-3 w-3"}),"Force release"]})]})]})}function V6(){return new Date(Date.now()-720*60*60*1e3).toISOString().slice(0,10)}function H6(){return new Date().toISOString().slice(0,10)}function bj(){const[e,t]=f.useState(V6()),[n,s]=f.useState(H6()),[i,l]=f.useState(""),[c,u]=f.useState("project"),[p,m]=f.useState(null),[h,x]=f.useState(!0),[y,b]=f.useState(null),[E,k]=f.useState([]);return f.useEffect(()=>{const w=new AbortController;x(!0),b(null);const j=new URLSearchParams({since:e,until:n,groupBy:c});return i&&j.set("project",i),fetch(`/api/usage?${j.toString()}`,{signal:w.signal}).then(C=>{if(!C.ok)throw new Error(`HTTP ${C.status}`);return C.json()}).then(C=>{if(m(C),!i){const N=new Set;for(const T of C.daily)T.project_slug&&N.add(T.project_slug);k([...N].sort())}x(!1)}).catch(C=>{C instanceof Error&&C.name==="AbortError"||(b(C instanceof Error?C.message:String(C)),x(!1))}),()=>{w.abort()}},[e,n,i,c]),r.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[r.jsxs("header",{className:"flex items-center gap-3 mb-6",children:[r.jsx(Td,{className:"w-6 h-6 text-amber-400"}),r.jsx("h1",{className:"text-2xl font-semibold",children:"Token usage"})]}),r.jsxs("div",{className:"flex flex-wrap gap-4 items-end mb-6 p-4 rounded-lg bg-zinc-900/50 border border-zinc-800",children:[r.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[r.jsx("span",{className:"text-zinc-400",children:"Since"}),r.jsx("input",{type:"date",value:e,onChange:w=>t(w.target.value),className:"bg-zinc-950 border border-zinc-700 rounded px-2 py-1 text-sm"})]}),r.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[r.jsx("span",{className:"text-zinc-400",children:"Until"}),r.jsx("input",{type:"date",value:n,onChange:w=>s(w.target.value),className:"bg-zinc-950 border border-zinc-700 rounded px-2 py-1 text-sm"})]}),r.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[r.jsx("span",{className:"text-zinc-400",children:"Project"}),r.jsxs("select",{value:i,onChange:w=>l(w.target.value),className:"bg-zinc-950 border border-zinc-700 rounded px-2 py-1 text-sm",children:[r.jsx("option",{value:"",children:"All"}),E.map(w=>r.jsx("option",{value:w,children:w},w))]})]}),r.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[r.jsx("span",{className:"text-zinc-400",children:"Group by"}),r.jsxs("select",{value:c,onChange:w=>u(w.target.value),className:"bg-zinc-950 border border-zinc-700 rounded px-2 py-1 text-sm",children:[r.jsx("option",{value:"project",children:"Project"}),r.jsx("option",{value:"assignment",children:"Assignment"})]})]})]}),h&&r.jsx("p",{className:"text-zinc-400",children:"Loading…"}),y&&r.jsxs("p",{className:"text-red-400",children:["Error: ",y]}),p&&!h&&!y&&r.jsxs(r.Fragment,{children:[r.jsxs("section",{className:"mb-8",children:[r.jsx("h2",{className:"text-lg font-medium mb-2",children:"Summary"}),p.summary.length===0?r.jsxs("p",{className:"text-zinc-500 text-sm",children:["No usage data in this window. Run"," ",r.jsx("code",{className:"bg-zinc-800 px-1 py-0.5 rounded text-amber-300",children:"syntaur usage"})," ","to ingest the latest ccusage data."]}):r.jsxs("table",{className:"w-full text-sm border border-zinc-800 rounded overflow-hidden",children:[r.jsx("thead",{className:"bg-zinc-900 text-zinc-400",children:r.jsxs("tr",{children:[r.jsx("th",{className:"text-left px-3 py-2",children:"Project"}),c==="assignment"&&r.jsx("th",{className:"text-left px-3 py-2",children:"Assignment"}),r.jsx("th",{className:"text-right px-3 py-2",children:"Tokens"}),r.jsx("th",{className:"text-right px-3 py-2",children:"Cost"}),r.jsx("th",{className:"text-left px-3 py-2",children:"Last event"})]})}),r.jsx("tbody",{children:p.summary.map((w,j)=>r.jsxs("tr",{className:"border-t border-zinc-800",children:[r.jsx("td",{className:"px-3 py-2",children:w.projectSlug||"(unattributed)"}),c==="assignment"&&r.jsx("td",{className:"px-3 py-2",children:w.assignmentSlug||"(unattributed)"}),r.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Ju(w.totalTokens)}),r.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Xu(w.totalCost)}),r.jsx("td",{className:"px-3 py-2 text-zinc-400",children:w.lastEventDay})]},j))})]})]}),r.jsxs("section",{children:[r.jsx("h2",{className:"text-lg font-medium mb-2",children:"Daily breakdown"}),p.daily.length===0?r.jsx("p",{className:"text-zinc-500 text-sm",children:"No daily rows."}):r.jsxs("table",{className:"w-full text-sm border border-zinc-800 rounded overflow-hidden",children:[r.jsx("thead",{className:"bg-zinc-900 text-zinc-400",children:r.jsxs("tr",{children:[r.jsx("th",{className:"text-left px-3 py-2",children:"Day"}),r.jsx("th",{className:"text-left px-3 py-2",children:"Tool"}),r.jsx("th",{className:"text-left px-3 py-2",children:"Model"}),r.jsx("th",{className:"text-left px-3 py-2",children:"Project"}),r.jsx("th",{className:"text-left px-3 py-2",children:"Assignment"}),r.jsx("th",{className:"text-right px-3 py-2",children:"Tokens"}),r.jsx("th",{className:"text-right px-3 py-2",children:"Cost"})]})}),r.jsx("tbody",{children:p.daily.map((w,j)=>r.jsxs("tr",{className:"border-t border-zinc-800",children:[r.jsx("td",{className:"px-3 py-2 tabular-nums",children:w.day}),r.jsx("td",{className:"px-3 py-2 text-zinc-400",children:w.tool}),r.jsx("td",{className:"px-3 py-2 text-zinc-400",children:w.model}),r.jsx("td",{className:"px-3 py-2",children:w.project_slug||"–"}),r.jsx("td",{className:"px-3 py-2",children:w.assignment_slug||"–"}),r.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Ju(w.total_tokens)}),r.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Xu(w.total_cost)})]},j))})]})]})]})]})}function vj(){const{workspace:e}=Lt(),{data:t}=Ho(),{data:n,loading:s,error:i}=E0(),[l,c]=f.useState(""),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState("started_desc"),[b,E]=f.useState(0),[k,w]=f.useState(new Set),[j,C]=f.useState(!1),[N,T]=f.useState(null),[L,P]=f.useState(null),$=(n==null?void 0:n.sessions.some(M=>M.status==="active"))??!1;f.useEffect(()=>{if(!$)return;const M=window.setInterval(()=>E(K=>K+1),3e4);return()=>window.clearInterval(M)},[$]),f.useEffect(()=>{w(M=>{if(M.size===0)return M;const K=new Set((n==null?void 0:n.sessions.map(le=>le.sessionId))??[]),J=new Set([...M].filter(le=>K.has(le)));return J.size===M.size?M:J})},[n]);const F=f.useMemo(()=>{if(!n)return[];if(e&&!t)return[];const M=l.trim().toLowerCase();return[...n.sessions.filter(J=>{var G;if(e&&t){const A=((G=t.find(B=>B.slug===J.projectSlug))==null?void 0:G.workspace)??null;if(e==="_ungrouped"){if(A!==null)return!1}else if(A!==e)return!1}const le=K6(J.started);return u&&(!le||le<u)||m&&(!le||le>m)?!1:M?[J.projectSlug??"",J.assignmentSlug??"",J.agent,J.sessionId,J.path,J.description??"",J.transcriptPath??""].join(" ").toLowerCase().includes(M):!0})].sort((J,le)=>q6(J,le,x))},[n,l,x,u,m,b,e,t]);function X(M){w(K=>{const J=new Set(K);return J.has(M)?J.delete(M):J.add(M),J})}function te(){k.size===F.length&&F.length>0?w(new Set):w(new Set(F.map(M=>M.sessionId)))}async function D(M){T(null),C(!0);try{const K=await fetch("/api/agent-sessions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionIds:M})}),J=await K.json().catch(()=>null);if(!K.ok)throw new Error((J==null?void 0:J.error)||`HTTP ${K.status}`);w(le=>new Set([...le].filter(_=>!M.includes(_)))),P(null)}catch(K){T(K.message)}finally{C(!1)}}async function W(M){try{const K=await fetch(`/api/agent-sessions/${encodeURIComponent(M)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})});if(!K.ok){const J=await K.json().catch(()=>null);T((J==null?void 0:J.error)||`Failed to mark session stopped: HTTP ${K.status}`)}}catch(K){T(K.message)}}if(s)return r.jsx(ft,{label:"Loading agent sessions..."});if(i)return r.jsx(mt,{error:i});if(!n)return null;const Z=n.sessions.length>0;return r.jsxs(r.Fragment,{children:[r.jsxs(Fg,{children:[r.jsx(Yd,{value:l,onChange:c,placeholder:"Search project, assignment, agent, session ID, path, or description"}),r.jsxs("label",{className:"flex min-w-[150px] flex-col gap-1 text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:["Started From",r.jsx("input",{type:"date",value:u,onChange:M=>p(M.target.value),className:"editor-input min-w-[150px]"})]}),r.jsxs("label",{className:"flex min-w-[150px] flex-col gap-1 text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:["Started To",r.jsx("input",{type:"date",value:m,onChange:M=>h(M.target.value),className:"editor-input min-w-[150px]"})]}),r.jsxs("select",{value:x,onChange:M=>y(M.target.value),className:"editor-input max-w-[200px]",children:[r.jsx("option",{value:"started_desc",children:"Newest first"}),r.jsx("option",{value:"started_asc",children:"Oldest first"}),r.jsx("option",{value:"assignment_asc",children:"Assignment A-Z"}),r.jsx("option",{value:"agent_asc",children:"Agent A-Z"})]})]}),N?r.jsx("div",{className:"mt-4 rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:N}):null,k.size>0&&r.jsxs("div",{className:"mt-4 flex items-center gap-3 rounded border border-border/40 bg-muted/30 px-4 py-2 text-sm",children:[r.jsxs("span",{className:"text-muted-foreground",children:[k.size," session",k.size!==1?"s":""," selected"]}),r.jsxs("button",{className:"shell-action text-destructive",onClick:()=>P({sessionIds:[...k],title:`Delete ${k.size} selected session${k.size===1?"":"s"}?`,description:"This removes the selected agent session records from the dashboard. This cannot be undone.",confirmLabel:k.size===1?"Delete Session":"Delete Sessions"}),disabled:j,children:[r.jsx(Hn,{className:"mr-1 inline h-3.5 w-3.5"}),"Delete Selected"]}),r.jsx("button",{className:"shell-action",onClick:()=>w(new Set),children:"Clear Selection"})]}),Z?F.length===0?r.jsx(ct,{title:"No agent sessions match these filters",description:"Adjust the status, search term, date range, or sorting controls to show sessions again."}):r.jsx("div",{className:"surface-panel mt-4 overflow-x-auto",children:r.jsxs("table",{className:"w-full min-w-[1280px] table-fixed text-sm",children:[r.jsxs("colgroup",{children:[r.jsx("col",{style:{width:"32px"}}),r.jsx("col",{style:{width:"140px"}}),r.jsx("col",{style:{width:"160px"}}),r.jsx("col",{style:{width:"200px"}}),r.jsx("col",{style:{width:"110px"}}),r.jsx("col",{style:{width:"130px"}}),r.jsx("col",{style:{width:"140px"}}),r.jsx("col",{style:{width:"200px"}}),r.jsx("col",{style:{width:"200px"}}),r.jsx("col",{style:{width:"40px"}})]}),r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/40 text-left text-xs uppercase tracking-wider text-muted-foreground",children:[r.jsx("th",{className:"pb-2 pr-3",children:r.jsx("button",{onClick:te,className:"text-muted-foreground hover:text-foreground",children:k.size===F.length&&F.length>0?r.jsx(Ar,{className:"h-4 w-4"}):r.jsx(tg,{className:"h-4 w-4"})})}),r.jsx("th",{className:"pb-2 pr-3",children:"Project"}),r.jsx("th",{className:"pb-2 pr-3",children:"Assignment"}),r.jsx("th",{className:"pb-2 pr-3",children:"Description"}),r.jsx("th",{className:"pb-2 pr-3",children:"Agent"}),r.jsx("th",{className:"pb-2 pr-3",children:"Session ID"}),r.jsx("th",{className:"pb-2 pr-3",children:"Started"}),r.jsx("th",{className:"pb-2 pr-3",children:"Path"}),r.jsx("th",{className:"pb-2 pr-3",children:"Transcript"}),r.jsx("th",{className:"pb-2"})]})}),r.jsx("tbody",{children:F.map(M=>r.jsx(W6,{session:M,selected:k.has(M.sessionId),onToggle:()=>X(M.sessionId),onDelete:()=>P({sessionIds:[M.sessionId],title:`Delete session ${M.sessionId.slice(0,8)}...?`,description:`Remove this ${M.agent} session record${M.assignmentSlug?` for ${M.assignmentSlug}`:""}. This cannot be undone.`,confirmLabel:"Delete Session"}),onMarkStopped:W},M.sessionId))})]})}):r.jsx(ct,{title:"No agent sessions",description:"No agent sessions have been registered yet. Use /grab-assignment or syntaur track-session to register one."}),r.jsx(ja,{open:L!==null,title:(L==null?void 0:L.title)??"Delete session?",description:(L==null?void 0:L.description)??"",confirmLabel:(L==null?void 0:L.confirmLabel)??"Delete",destructive:!0,loading:j,onOpenChange:M=>{M||P(null)},onConfirm:async()=>{L&&await D(L.sessionIds)}})]})}function W6({session:e,selected:t,onToggle:n,onDelete:s,onMarkStopped:i}){const l=on(),c=e.sessionId.length>12?e.sessionId.slice(0,8)+"...":e.sessionId,u=e.path?e.path.replace(/^\/Users\/[^/]+/,"~"):"—",p=e.transcriptPath?e.transcriptPath.replace(/^\/Users\/[^/]+/,"~"):"—";return r.jsxs("tr",{className:"border-b border-border/20 last:border-0",children:[r.jsx("td",{className:"py-2 pr-3",children:r.jsx("button",{onClick:n,className:"text-muted-foreground hover:text-foreground",children:t?r.jsx(Ar,{className:"h-4 w-4"}):r.jsx(tg,{className:"h-4 w-4"})})}),r.jsx("td",{className:"py-2 pr-3",children:e.projectSlug?r.jsx(Ce,{to:`${l}/projects/${e.projectSlug}`,className:"block truncate text-primary hover:underline",title:Sn(e.projectSlug),children:Sn(e.projectSlug)}):e.assignmentSlug?r.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-[10px] font-mono uppercase tracking-wide text-muted-foreground",children:"Standalone"}):r.jsx("span",{className:"text-muted-foreground",children:"—"})}),r.jsx("td",{className:"py-2 pr-3",children:e.projectSlug&&e.assignmentSlug?r.jsx(Ce,{to:`${l}/projects/${e.projectSlug}/assignments/${e.assignmentSlug}`,className:"block truncate text-primary hover:underline",title:Sn(e.assignmentSlug),children:Sn(e.assignmentSlug)}):e.assignmentSlug?r.jsx(Ce,{to:`/assignments/${e.assignmentSlug}`,className:"block truncate font-mono text-primary hover:underline",title:e.assignmentSlug,children:e.assignmentSlug}):r.jsx("span",{className:"text-muted-foreground",children:"—"})}),r.jsx("td",{className:"py-2 pr-3",children:e.description?r.jsx("div",{className:"truncate text-xs text-muted-foreground",title:e.description,children:e.description}):r.jsx("span",{className:"text-muted-foreground",children:"—"})}),r.jsx("td",{className:"py-2 pr-3",children:r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[r.jsx(Nd,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),r.jsx("span",{className:"block min-w-0 truncate",children:e.agent})]})}),r.jsx("td",{className:"py-2 pr-3",children:r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[r.jsx("span",{className:"block min-w-0 truncate font-mono text-xs text-muted-foreground",title:e.sessionId,children:c}),r.jsx(Dr,{value:e.sessionId})]})}),r.jsx("td",{className:"py-2 pr-3 text-xs text-muted-foreground",children:r.jsx("span",{className:"truncate block",children:$r(e.started)})}),r.jsx("td",{className:"py-2 pr-3",children:r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[r.jsx("span",{className:"block min-w-0 truncate text-xs text-muted-foreground",title:e.path,children:u}),e.path&&r.jsx(Dr,{value:e.path})]})}),r.jsx("td",{className:"py-2 pr-3",children:e.transcriptPath?r.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[r.jsx("span",{className:"block min-w-0 truncate font-mono text-xs text-muted-foreground",title:e.transcriptPath,children:p}),r.jsx(Dr,{value:e.transcriptPath})]}):r.jsx("span",{className:"text-muted-foreground",children:"—"})}),r.jsx("td",{className:"py-2",children:r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx(gN,{session:e,onMarkStopped:i}),r.jsx("button",{onClick:s,className:"text-muted-foreground hover:text-destructive",title:"Delete session",children:r.jsx(Hn,{className:"h-3.5 w-3.5"})})]})})]})}function K6(e){const t=new Date(e);if(Number.isNaN(t.getTime()))return null;const n=t.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${s}-${i}`}function Du(e){const t=Date.parse(e.started),n=e.ended?Date.parse(e.ended):Date.now();return Number.isNaN(t)||Number.isNaN(n)?0:Math.max(0,Math.floor((n-t)/6e4))}function q6(e,t,n){switch(n){case"started_asc":return e.started.localeCompare(t.started);case"started_desc":return t.started.localeCompare(e.started);case"duration_asc":return Du(e)-Du(t);case"duration_desc":return Du(t)-Du(e);case"assignment_asc":return(e.assignmentSlug??"").localeCompare(t.assignmentSlug??"")||(e.projectSlug??"").localeCompare(t.projectSlug??"");case"agent_asc":return e.agent.localeCompare(t.agent)||(e.assignmentSlug??"").localeCompare(t.assignmentSlug??"");default:return 0}}function G6(){const{data:e,loading:t,error:n,refetch:s}=T0(),[i,l]=f.useState(""),[c,u]=f.useState(null),[p,m]=f.useState(null),[h,x]=f.useState(null),y=f.useMemo(()=>{if(!(e!=null&&e.playbooks))return[];if(!i.trim())return e.playbooks;const k=i.toLowerCase();return e.playbooks.filter(w=>w.name.toLowerCase().includes(k)||w.description.toLowerCase().includes(k)||w.slug.toLowerCase().includes(k)||w.tags.some(j=>j.toLowerCase().includes(k)))},[e,i]);async function b(k,w,j){if(k.preventDefault(),k.stopPropagation(),!c){u(w);try{const C=j?"disable":"enable",N=await fetch(`/api/playbooks/${encodeURIComponent(w)}/${C}`,{method:"POST"});if(!N.ok){const T=await N.json().catch(()=>({}));throw new Error(T.error||`Failed to ${C} playbook`)}s()}catch(C){console.error(C),alert(C instanceof Error?C.message:"Failed to update playbook")}finally{u(null)}}}async function E(){if(p){x(p.slug);try{const k=await fetch(`/api/playbooks/${encodeURIComponent(p.slug)}`,{method:"DELETE"});if(!k.ok){const w=await k.json().catch(()=>({}));throw new Error(w.error||"Failed to delete playbook")}m(null),s()}catch(k){console.error(k),alert(k instanceof Error?k.message:"Failed to delete playbook")}finally{x(null)}}}return t?r.jsx(ft,{label:"Loading playbooks..."}):n?r.jsx(mt,{error:n}):r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between gap-4",children:[r.jsxs("div",{className:"relative flex-1 max-w-sm",children:[r.jsx(co,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{type:"text",placeholder:"Search playbooks...",value:i,onChange:k=>l(k.target.value),className:"h-9 w-full rounded-md border border-border/70 bg-background pl-9 pr-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"})]}),r.jsxs(Ce,{to:"/playbooks/create",className:"inline-flex h-9 items-center gap-2 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"Create Playbook"]})]}),r.jsxs(Ce,{to:"/playbooks/manifest",className:"surface-panel group flex items-center gap-3 p-3 transition hover:border-foreground/20",children:[r.jsx(Qj,{className:"h-5 w-5 shrink-0 text-muted-foreground"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("h3",{className:"text-sm font-semibold text-foreground group-hover:underline",children:"Playbook Manifest"}),r.jsx("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-[10px] text-muted-foreground",children:"auto-generated"})]}),r.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["Index of all playbooks with descriptions. Include ",r.jsx("code",{className:"rounded bg-muted px-1 py-0.5 text-[11px]",children:"~/.syntaur/playbooks/manifest.md"})," in your CLAUDE.md for agent context."]})]})]}),y.length===0?r.jsx(ct,{title:"No playbooks found",description:(e==null?void 0:e.playbooks.length)===0?"Playbooks define rules and workflows for how agents should operate. Create your first one to get started.":"No playbooks match your search.",actions:(e==null?void 0:e.playbooks.length)===0?r.jsxs(Ce,{to:"/playbooks/create",className:"inline-flex items-center gap-2 rounded-md bg-foreground px-3 py-2 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"Create Playbook"]}):void 0}):r.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:y.map(k=>{const w=c===k.slug,j=[{key:"delete",label:"Delete",icon:Hn,destructive:!0,onSelect:()=>m({slug:k.slug,name:k.name})}];return r.jsxs("div",{className:`surface-panel relative flex flex-col gap-2 p-4 transition hover:border-foreground/20 ${k.enabled?"":"opacity-75"}`,children:[r.jsx("div",{className:"absolute right-3 top-3 z-10",children:r.jsx(_g,{items:j})}),r.jsxs(Ce,{to:`/playbooks/${k.slug}`,className:"group flex flex-col gap-2",children:[r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(Yj,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("h3",{className:"text-sm font-semibold text-foreground group-hover:underline",children:k.name}),k.description?r.jsx("p",{className:"mt-1 text-xs leading-5 text-muted-foreground line-clamp-2",children:k.description}):null]})]}),r.jsx("div",{className:"flex items-center gap-2 pt-1 pr-20",children:r.jsxs("div",{className:"flex flex-wrap gap-1",children:[k.tags.slice(0,3).map(C=>r.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-[10px] text-muted-foreground",children:[r.jsx(t0,{className:"h-2.5 w-2.5"}),C]},C)),k.tags.length>3?r.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["+",k.tags.length-3]}):null]})})]}),r.jsx("button",{type:"button",role:"switch","aria-checked":k.enabled,"aria-label":k.enabled?"Disable playbook":"Enable playbook",onClick:C=>b(C,k.slug,k.enabled),disabled:w,className:`absolute bottom-3 right-3 z-10 inline-flex h-5 w-9 items-center rounded-full border opacity-100 transition disabled:opacity-50 ${k.enabled?"border-status-completed-foreground/60 bg-status-completed-foreground/80":"border-foreground/40 bg-foreground/15"}`,children:r.jsx("span",{className:`block h-4 w-4 rounded-full shadow-sm transition-transform ${k.enabled?"translate-x-[18px] bg-background":"translate-x-[2px] bg-foreground/70"}`})})]},k.slug)})}),r.jsx(ja,{open:p!==null,title:"Delete playbook?",description:p?`"${p.name}" will be removed from disk and the playbook manifest will be regenerated. This cannot be undone.`:"",confirmLabel:"Delete",destructive:!0,loading:h!==null,onConfirm:E,onOpenChange:k=>{k||m(null)}})]})}function Y6(){const{slug:e}=Lt(),t=$t(),{data:n,loading:s,error:i,refetch:l}=WP(e),[c,u]=f.useState(!1),[p,m]=f.useState(!1),[h,x]=f.useState(!1),[y,b]=f.useState(!1),[E,k]=f.useState(""),[w,j]=f.useState(!1),[C,N]=f.useState(null),T=e==="manifest";f.useEffect(()=>{y&&(k(e??""),N(null))},[y,e]);const L=mr(E),P=L.length>0&&Fu(L)&&L!=="manifest",$=L!==e;async function F(){if(!(!e||!P||!$)){j(!0),N(null);try{const D=await fetch(`/api/playbooks/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({newSlug:L})});if(!D.ok){const W=await D.json().catch(()=>({}));throw new Error(W.error||"Failed to rename playbook")}b(!1),t(`/playbooks/${L}`)}catch(D){N(D instanceof Error?D.message:"Failed to rename playbook")}finally{j(!1)}}}async function X(){if(e){m(!0);try{(await fetch(`/api/playbooks/${e}`,{method:"DELETE"})).ok&&t("/playbooks")}finally{m(!1)}}}async function te(){if(!(!e||!n)){x(!0);try{const D=n.enabled?"disable":"enable",W=await fetch(`/api/playbooks/${encodeURIComponent(e)}/${D}`,{method:"POST"});if(!W.ok){const Z=await W.json().catch(()=>({}));throw new Error(Z.error||`Failed to ${D} playbook`)}l()}catch(D){console.error(D),alert(D instanceof Error?D.message:"Failed to update playbook")}finally{x(!1)}}}return s?r.jsx(ft,{label:"Loading playbook..."}):i?r.jsx(mt,{error:i}):n?r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:T?"Playbook Manifest":n.name}),T?r.jsx("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-xs text-muted-foreground",children:"auto-generated"}):null]}),!T&&n.description?r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.description}):null,T?r.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:["This file is rebuilt automatically when playbooks are added or removed. Include"," ",r.jsx("code",{className:"rounded bg-muted px-1 py-0.5 text-xs",children:"~/.syntaur/playbooks/manifest.md"})," ","in your CLAUDE.md for agent context."]}):null,!T&&n.whenToUse?r.jsxs("p",{className:"mt-2 text-sm text-muted-foreground italic",children:["When to use: ",n.whenToUse]}):null,r.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[r.jsxs("span",{children:["Created ",$r(n.created)]}),r.jsxs("span",{children:["Updated ",$r(n.updated)]})]}),n.tags.length>0?r.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:n.tags.map(D=>r.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-xs text-muted-foreground",children:[r.jsx(t0,{className:"h-3 w-3"}),D]},D))}):null]}),T?null:r.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n.enabled?"Enabled":"Disabled"}),r.jsx("button",{type:"button",role:"switch","aria-checked":n.enabled,"aria-label":n.enabled?"Disable playbook":"Enable playbook",onClick:te,disabled:h,className:`inline-flex h-5 w-9 items-center rounded-full border transition disabled:opacity-50 ${n.enabled?"border-status-completed-foreground/60 bg-status-completed-foreground/80":"border-foreground/40 bg-foreground/15"}`,children:r.jsx("span",{className:`block h-4 w-4 rounded-full shadow-sm transition-transform ${n.enabled?"translate-x-[18px] bg-background":"translate-x-[2px] bg-foreground/70"}`})})]}),r.jsxs(Ce,{to:`/playbooks/${e}/edit`,className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:[r.jsx(Vo,{className:"h-3 w-3"}),"Edit"]}),r.jsxs("button",{type:"button",onClick:()=>b(!0),className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:[r.jsx(qT,{className:"h-3 w-3"}),"Rename"]}),c?r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:X,disabled:p,className:"inline-flex h-8 items-center gap-1.5 rounded-md bg-destructive px-3 text-xs font-medium text-destructive-foreground transition hover:bg-destructive/90 disabled:opacity-50",children:p?"Deleting...":"Confirm"}),r.jsx("button",{type:"button",onClick:()=>u(!1),className:"inline-flex h-8 items-center rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:"Cancel"})]}):r.jsxs("button",{type:"button",onClick:()=>u(!0),className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-destructive transition hover:bg-destructive/10",children:[r.jsx(Hn,{className:"h-3 w-3"}),"Delete"]})]})]}),r.jsx("div",{className:"surface-panel p-4",children:r.jsx(un,{content:n.body})}),r.jsx(sr,{open:y,onOpenChange:D=>w?void 0:b(D),children:r.jsxs(Wn,{children:[r.jsxs(Jr,{children:[r.jsx(Kn,{children:"Rename playbook"}),r.jsx(ms,{children:"The slug changes both the file name and the canonical slug stored in frontmatter. The URL will update on save."})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("label",{htmlFor:"rename-slug-input",className:"block text-xs font-medium text-muted-foreground",children:"New slug"}),r.jsx("input",{id:"rename-slug-input",type:"text",autoFocus:!0,value:E,onChange:D=>k(D.target.value),disabled:w,className:"h-9 w-full rounded-md border border-border/70 bg-background px-3 text-sm text-foreground focus:border-foreground/40 focus:outline-none",placeholder:"my-new-slug"}),E&&L!==E?r.jsxs("p",{className:"text-xs text-muted-foreground",children:["Will be normalized to ",r.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:L||"—"})]}):null,E&&!P?r.jsx("p",{className:"text-xs text-destructive",children:'Slugs must be lowercase, hyphen-separated, with no special characters, and cannot be "manifest".'}):null]}),C?r.jsx("p",{className:"text-sm text-destructive",role:"alert",children:C}):null,r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:()=>b(!1),disabled:w,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),r.jsx("button",{type:"button",onClick:F,disabled:w||!P||!$,className:"shell-action mt-0 bg-foreground text-background hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:w?"Renaming…":"Rename"})]})]})})]}):null}function J6(){const e=$t(),[t,n]=f.useState(null),[s,i]=f.useState(!0),[l,c]=f.useState(!1),[u,p]=f.useState(null);f.useEffect(()=>{fetch("/api/playbooks/template/new").then(h=>h.json()).then(h=>{n(h.content),i(!1)}).catch(h=>{p(h.message),i(!1)})},[]);async function m(h){c(!0),p(null);try{const x=await fetch("/api/playbooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:h})}),y=await x.json();if(!x.ok){p(y.error||`HTTP ${x.status}`),c(!1);return}e(`/playbooks/${y.slug}`)}catch(x){p(x.message),c(!1);return}c(!1)}return s?r.jsx(ft,{label:"Loading playbook template..."}):u&&!t?r.jsx(mt,{error:u}):r.jsx(Sa,{initialContent:t||"",documentType:"playbook",mode:"create",onSave:m,saving:l,error:u,title:"Create Playbook",description:"Playbooks define rules and workflows for how agents should operate. Keep them short, imperative, and focused on a single concern.",onCancel:()=>e("/playbooks"),allowSlugEdit:!0})}function X6(){const{slug:e}=Lt(),t=$t(),[n,s]=f.useState(null),[i,l]=f.useState(!0),[c,u]=f.useState(!1),[p,m]=f.useState(null);f.useEffect(()=>{e&&fetch(`/api/playbooks/${e}/edit`).then(x=>x.json()).then(x=>{s(x.content),l(!1)}).catch(x=>{m(x.message),l(!1)})},[e]);async function h(x){if(e){u(!0),m(null);try{const y=await fetch(`/api/playbooks/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:x})}),b=await y.json();if(!y.ok){m(b.error||`HTTP ${y.status}`),u(!1);return}t(`/playbooks/${e}`)}catch(y){m(y.message),u(!1);return}u(!1)}}return i?r.jsx(ft,{label:"Loading playbook..."}):p&&!n?r.jsx(mt,{error:p}):r.jsx(Sa,{initialContent:n||"",documentType:"playbook",mode:"edit",onSave:h,saving:c,error:p,title:"Edit Playbook",onCancel:()=>t(`/playbooks/${e}`)})}function Q6(){const{data:e,loading:t,error:n}=KP(),[s,i]=f.useState(""),[l,c]=f.useState("all"),[u,p]=f.useState("all"),[m,h]=f.useState("all"),x=(e==null?void 0:e.memories)??[],y=f.useMemo(()=>Array.from(new Set(x.map(w=>w.projectSlug))).sort(),[x]),b=f.useMemo(()=>Array.from(new Set(x.map(w=>w.scope).filter(Boolean))).sort(),[x]),E=f.useMemo(()=>Array.from(new Set(x.map(w=>w.source).filter(Boolean))).sort(),[x]),k=f.useMemo(()=>x.filter(w=>{if(l!=="all"&&w.projectSlug!==l||u!=="all"&&w.scope!==u||m!=="all"&&w.source!==m)return!1;if(s.trim()){const j=s.toLowerCase();if(!w.name.toLowerCase().includes(j)&&!w.slug.toLowerCase().includes(j)&&!w.projectTitle.toLowerCase().includes(j))return!1}return!0}),[x,s,l,u,m]);return t?r.jsx(ft,{label:"Loading memories…"}):n?r.jsx(mt,{error:n}):r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsxs("div",{className:"relative",children:[r.jsx(co,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{type:"text",placeholder:"Search memories…",value:s,onChange:w=>i(w.target.value),className:"h-9 w-64 rounded-md border border-border/70 bg-background pl-9 pr-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"})]}),r.jsxs("select",{value:l,onChange:w=>c(w.target.value),className:"editor-input max-w-[170px]",children:[r.jsx("option",{value:"all",children:"All projects"}),y.map(w=>r.jsx("option",{value:w,children:w},w))]}),r.jsxs("select",{value:u,onChange:w=>p(w.target.value),className:"editor-input max-w-[140px]",children:[r.jsx("option",{value:"all",children:"All scopes"}),b.map(w=>r.jsx("option",{value:w,children:w},w))]}),r.jsxs("select",{value:m,onChange:w=>h(w.target.value),className:"editor-input max-w-[140px]",children:[r.jsx("option",{value:"all",children:"All sources"}),E.map(w=>r.jsx("option",{value:w,children:w},w))]})]}),r.jsxs(Ce,{to:"/memories/new",className:"inline-flex h-9 items-center gap-2 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"New Memory"]})]}),k.length===0?r.jsx(ct,{title:x.length===0?"No memories yet":"No memories match these filters",description:x.length===0?"Memories capture patterns and learnings discovered while working in a project. Agents create them via /create-memory or you can add one manually.":"Clear the current filters or create a new memory.",actions:x.length===0?r.jsxs(Ce,{to:"/memories/new",className:"inline-flex items-center gap-2 rounded-md bg-foreground px-3 py-2 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"New Memory"]}):void 0}):r.jsx("div",{className:"surface-panel overflow-x-auto",children:r.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Name"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Project"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Scope"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Source"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"# Related"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Updated"})]})}),r.jsx("tbody",{children:k.map(w=>r.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[r.jsx("td",{className:"px-3 py-3",children:r.jsx(Ce,{to:`/projects/${w.projectSlug}/memories/${w.slug}`,className:"font-semibold text-foreground hover:text-primary",children:w.name||w.slug})}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:r.jsx(Ce,{to:`/projects/${w.projectSlug}`,className:"hover:text-foreground hover:underline",children:w.projectTitle})}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:w.scope||"—"}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:w.source||"—"}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:w.relatedAssignments.length}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:On(w.updated)})]},`${w.projectSlug}/${w.slug}`))})]})})]})}function Z6(){const{slug:e,itemSlug:t}=Lt(),n=$t(),{data:s,loading:i,error:l}=qP(e,t),[c,u]=f.useState(!1),[p,m]=f.useState(!1);async function h(){if(!(!e||!t)){m(!0);try{(await fetch(`/api/projects/${e}/memories/${t}`,{method:"DELETE"})).ok&&n("/memories")}finally{m(!1)}}}return i?r.jsx(ft,{label:"Loading memory…"}):l?r.jsx(mt,{error:l}):s?r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:s.name||s.slug}),r.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[r.jsx(Ce,{to:`/projects/${s.projectSlug}`,className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 hover:text-foreground",children:s.projectTitle}),s.scope?r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Scope: ",s.scope]}):null,s.source?r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Source: ",s.source]}):null,s.sourceAssignment?r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["From: ",s.sourceAssignment]}):null,r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:[s.relatedAssignments.length," related"]})]}),r.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[r.jsxs("span",{children:["Created ",$r(s.created)]}),r.jsxs("span",{children:["Updated ",$r(s.updated)]})]}),s.tags&&s.tags.length>0?r.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:s.tags.map(x=>r.jsx("span",{className:"inline-flex items-center rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-xs text-muted-foreground",children:x},x))}):null]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[r.jsxs(Ce,{to:`/projects/${e}/memories/${t}/edit`,className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:[r.jsx(Vo,{className:"h-3 w-3"}),"Edit"]}),c?r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:h,disabled:p,className:"inline-flex h-8 items-center gap-1.5 rounded-md bg-destructive px-3 text-xs font-medium text-destructive-foreground transition hover:bg-destructive/90 disabled:opacity-50",children:p?"Deleting…":"Confirm"}),r.jsx("button",{type:"button",onClick:()=>u(!1),className:"inline-flex h-8 items-center rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:"Cancel"})]}):r.jsxs("button",{type:"button",onClick:()=>u(!0),className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-destructive transition hover:bg-destructive/10",children:[r.jsx(Hn,{className:"h-3 w-3"}),"Delete"]})]})]}),r.jsx("div",{className:"surface-panel p-4",children:r.jsx(un,{content:s.body})})]}):null}function ez(){const e=$t(),[t]=ps(),n=t.get("project"),{data:s,loading:i,error:l}=Ho(),[c,u]=f.useState(n??""),[p,m]=f.useState(""),[h,x]=f.useState(""),[y,b]=f.useState(!1),[E,k]=f.useState(null);f.useEffect(()=>{!c&&s&&s.length>0&&u(n??s[0].slug)},[s,n,c]);async function w(j){if(j.preventDefault(),!(!c||!p.trim())){b(!0),k(null);try{const C=await fetch(`/api/projects/${c}/memories`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),body:h||void 0})}),N=await C.json();if(!C.ok){k(N.error||`HTTP ${C.status}`),b(!1);return}e(`/projects/${N.projectSlug}/memories/${N.slug}`)}catch(C){k(C.message),b(!1)}}}return i?r.jsx(ft,{label:"Loading projects…"}):l?r.jsx(mt,{error:l}):!s||s.length===0?r.jsx(mt,{error:"You need at least one project before you can create a memory. Create a project from the sidebar."}):r.jsxs("form",{onSubmit:w,className:"space-y-5",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"New Memory"}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Memories capture patterns and learnings discovered during work in a project. They are available to every assignment in that project."})]}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("label",{htmlFor:"project",className:"block text-sm font-medium text-foreground",children:"Project"}),r.jsx("select",{id:"project",value:c,onChange:j=>u(j.target.value),className:"editor-input",required:!0,children:s.map(j=>r.jsx("option",{value:j.slug,children:j.title},j.slug))})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground",children:"Name"}),r.jsx("input",{id:"name",type:"text",value:p,onChange:j=>m(j.target.value),placeholder:"e.g. PostgreSQL connection pooling",className:"editor-input",required:!0,autoFocus:!0}),r.jsx("p",{className:"text-xs text-muted-foreground/80",children:"The slug is auto-derived from the name. Letters, digits, and hyphens."})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("label",{htmlFor:"body",className:"block text-sm font-medium text-foreground",children:"Body"}),r.jsx("textarea",{id:"body",value:h,onChange:j=>x(j.target.value),rows:14,placeholder:"Write the memory body in markdown. Leave blank to start from a template.",className:"editor-input font-mono text-sm"})]}),E?r.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:E}):null,r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"submit",disabled:y||!p.trim()||!c,className:"inline-flex h-9 items-center rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90 disabled:opacity-50",children:y?"Creating…":"Create Memory"}),r.jsx("button",{type:"button",onClick:()=>e("/memories"),className:"inline-flex h-9 items-center rounded-md border border-border/70 bg-background px-3 text-sm font-medium text-foreground transition hover:bg-muted",children:"Cancel"})]})]})}function tz(){const{slug:e,itemSlug:t}=Lt();return r.jsx(Na,{loadUrl:`/api/projects/${e}/memories/${t}/edit`,saveUrl:`/api/projects/${e}/memories/${t}`,redirectTo:`/projects/${e}/memories/${t}`,title:"Edit Memory",description:"Edit the body. The frontmatter (name, scope, source, related assignments) is preserved unchanged on save.",documentType:"memory",helpTitle:"Memory editing",helpBody:"Memory edits are body-only. Frontmatter changes from the editor are ignored server-side; the file's existing frontmatter is preserved and `updated` is bumped automatically."})}function nz(){const{data:e,loading:t,error:n}=GP(),[s,i]=f.useState(""),[l,c]=f.useState("all"),[u,p]=f.useState("all"),[m,h]=f.useState("all"),x=(e==null?void 0:e.resources)??[],y=f.useMemo(()=>Array.from(new Set(x.map(w=>w.projectSlug))).sort(),[x]),b=f.useMemo(()=>Array.from(new Set(x.map(w=>w.category).filter(Boolean))).sort(),[x]),E=f.useMemo(()=>Array.from(new Set(x.map(w=>w.source).filter(Boolean))).sort(),[x]),k=f.useMemo(()=>x.filter(w=>{if(l!=="all"&&w.projectSlug!==l||u!=="all"&&w.category!==u||m!=="all"&&w.source!==m)return!1;if(s.trim()){const j=s.toLowerCase();if(!w.name.toLowerCase().includes(j)&&!w.slug.toLowerCase().includes(j)&&!w.projectTitle.toLowerCase().includes(j))return!1}return!0}),[x,s,l,u,m]);return t?r.jsx(ft,{label:"Loading resources…"}):n?r.jsx(mt,{error:n}):r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsxs("div",{className:"relative",children:[r.jsx(co,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{type:"text",placeholder:"Search resources…",value:s,onChange:w=>i(w.target.value),className:"h-9 w-64 rounded-md border border-border/70 bg-background pl-9 pr-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"})]}),r.jsxs("select",{value:l,onChange:w=>c(w.target.value),className:"editor-input max-w-[170px]",children:[r.jsx("option",{value:"all",children:"All projects"}),y.map(w=>r.jsx("option",{value:w,children:w},w))]}),r.jsxs("select",{value:u,onChange:w=>p(w.target.value),className:"editor-input max-w-[160px]",children:[r.jsx("option",{value:"all",children:"All categories"}),b.map(w=>r.jsx("option",{value:w,children:w},w))]}),r.jsxs("select",{value:m,onChange:w=>h(w.target.value),className:"editor-input max-w-[140px]",children:[r.jsx("option",{value:"all",children:"All sources"}),E.map(w=>r.jsx("option",{value:w,children:w},w))]})]}),r.jsxs(Ce,{to:"/resources/new",className:"inline-flex h-9 items-center gap-2 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"New Resource"]})]}),k.length===0?r.jsx(ct,{title:x.length===0?"No resources yet":"No resources match these filters",description:x.length===0?"Resources are reference materials shared across a project — specs, requirements, links, or any reference content.":"Clear the current filters or create a new resource.",actions:x.length===0?r.jsxs(Ce,{to:"/resources/new",className:"inline-flex items-center gap-2 rounded-md bg-foreground px-3 py-2 text-sm font-medium text-background transition hover:bg-foreground/90",children:[r.jsx(en,{className:"h-4 w-4"}),"New Resource"]}):void 0}):r.jsx("div",{className:"surface-panel overflow-x-auto",children:r.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Name"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Project"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Category"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Source"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"# Related"}),r.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Updated"})]})}),r.jsx("tbody",{children:k.map(w=>r.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[r.jsx("td",{className:"px-3 py-3",children:r.jsx(Ce,{to:`/projects/${w.projectSlug}/resources/${w.slug}`,className:"font-semibold text-foreground hover:text-primary",children:w.name||w.slug})}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:r.jsx(Ce,{to:`/projects/${w.projectSlug}`,className:"hover:text-foreground hover:underline",children:w.projectTitle})}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:w.category||"—"}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:w.source||"—"}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:w.relatedAssignments.length}),r.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:On(w.updated)})]},`${w.projectSlug}/${w.slug}`))})]})})]})}function rz(){const{slug:e,itemSlug:t}=Lt(),n=$t(),{data:s,loading:i,error:l}=YP(e,t),[c,u]=f.useState(!1),[p,m]=f.useState(!1);async function h(){if(!(!e||!t)){m(!0);try{(await fetch(`/api/projects/${e}/resources/${t}`,{method:"DELETE"})).ok&&n("/resources")}finally{m(!1)}}}return i?r.jsx(ft,{label:"Loading resource…"}):l?r.jsx(mt,{error:l}):s?r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"min-w-0",children:[r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:s.name||s.slug}),r.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[r.jsx(Ce,{to:`/projects/${s.projectSlug}`,className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 hover:text-foreground",children:s.projectTitle}),s.category?r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Category: ",s.category]}):null,s.source?r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Source: ",s.source]}):null,r.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:[s.relatedAssignments.length," related"]})]}),r.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[r.jsxs("span",{children:["Created ",$r(s.created)]}),r.jsxs("span",{children:["Updated ",$r(s.updated)]})]})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[r.jsxs(Ce,{to:`/projects/${e}/resources/${t}/edit`,className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:[r.jsx(Vo,{className:"h-3 w-3"}),"Edit"]}),c?r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:h,disabled:p,className:"inline-flex h-8 items-center gap-1.5 rounded-md bg-destructive px-3 text-xs font-medium text-destructive-foreground transition hover:bg-destructive/90 disabled:opacity-50",children:p?"Deleting…":"Confirm"}),r.jsx("button",{type:"button",onClick:()=>u(!1),className:"inline-flex h-8 items-center rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-foreground transition hover:bg-muted",children:"Cancel"})]}):r.jsxs("button",{type:"button",onClick:()=>u(!0),className:"inline-flex h-8 items-center gap-1.5 rounded-md border border-border/70 bg-background px-3 text-xs font-medium text-destructive transition hover:bg-destructive/10",children:[r.jsx(Hn,{className:"h-3 w-3"}),"Delete"]})]})]}),r.jsx("div",{className:"surface-panel p-4",children:r.jsx(un,{content:s.body})})]}):null}function sz(){const e=$t(),[t]=ps(),n=t.get("project"),{data:s,loading:i,error:l}=Ho(),[c,u]=f.useState(n??""),[p,m]=f.useState(""),[h,x]=f.useState(""),[y,b]=f.useState(!1),[E,k]=f.useState(null);f.useEffect(()=>{!c&&s&&s.length>0&&u(n??s[0].slug)},[s,n,c]);async function w(j){if(j.preventDefault(),!(!c||!p.trim())){b(!0),k(null);try{const C=await fetch(`/api/projects/${c}/resources`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),body:h||void 0})}),N=await C.json();if(!C.ok){k(N.error||`HTTP ${C.status}`),b(!1);return}e(`/projects/${N.projectSlug}/resources/${N.slug}`)}catch(C){k(C.message),b(!1)}}}return i?r.jsx(ft,{label:"Loading projects…"}):l?r.jsx(mt,{error:l}):!s||s.length===0?r.jsx(mt,{error:"You need at least one project before you can create a resource. Create a project from the sidebar."}):r.jsxs("form",{onSubmit:w,className:"space-y-5",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"New Resource"}),r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Resources are reference material — specs, requirements, links — shared across every assignment in a project."})]}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("label",{htmlFor:"project",className:"block text-sm font-medium text-foreground",children:"Project"}),r.jsx("select",{id:"project",value:c,onChange:j=>u(j.target.value),className:"editor-input",required:!0,children:s.map(j=>r.jsx("option",{value:j.slug,children:j.title},j.slug))})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground",children:"Name"}),r.jsx("input",{id:"name",type:"text",value:p,onChange:j=>m(j.target.value),placeholder:"e.g. Auth Requirements",className:"editor-input",required:!0,autoFocus:!0}),r.jsx("p",{className:"text-xs text-muted-foreground/80",children:"The slug is auto-derived from the name. Letters, digits, and hyphens."})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("label",{htmlFor:"body",className:"block text-sm font-medium text-foreground",children:"Body"}),r.jsx("textarea",{id:"body",value:h,onChange:j=>x(j.target.value),rows:14,placeholder:"Write the resource body in markdown. Leave blank to start from a template.",className:"editor-input font-mono text-sm"})]}),E?r.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:E}):null,r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"submit",disabled:y||!p.trim()||!c,className:"inline-flex h-9 items-center rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90 disabled:opacity-50",children:y?"Creating…":"Create Resource"}),r.jsx("button",{type:"button",onClick:()=>e("/resources"),className:"inline-flex h-9 items-center rounded-md border border-border/70 bg-background px-3 text-sm font-medium text-foreground transition hover:bg-muted",children:"Cancel"})]})]})}function oz(){const{slug:e,itemSlug:t}=Lt();return r.jsx(Na,{loadUrl:`/api/projects/${e}/resources/${t}/edit`,saveUrl:`/api/projects/${e}/resources/${t}`,redirectTo:`/projects/${e}/resources/${t}`,title:"Edit Resource",description:"Edit the body. The frontmatter (name, category, source, related assignments) is preserved unchanged on save.",documentType:"resource",helpTitle:"Resource editing",helpBody:"Resource edits are body-only. Frontmatter changes from the editor are ignored server-side; the file's existing frontmatter is preserved and `updated` is bumped automatically."})}function iz({value:e,onChange:t,ariaLabel:n}){const s=n??"Pick a color",i=n?`${n} (hex)`:"Color hex value";return r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("input",{type:"color",value:e||"#64748b",onChange:l=>t(l.target.value),className:"h-7 w-7 shrink-0 cursor-pointer rounded-md border border-border/60 bg-transparent p-0.5",title:"Pick a color","aria-label":s}),r.jsx("input",{type:"text",value:e,onChange:l=>t(l.target.value),placeholder:"#64748b",className:"editor-input w-[5.5rem] font-mono text-xs","aria-label":i})]})}const Fh=["projects","playbooks","todos","servers","config"];function az(e){const t=new Set;for(const n of e.split(",").map(s=>s.trim()))Fh.includes(n)&&t.add(n);return t}function wj(e){if(!e)return"never";try{return new Date(e).toLocaleString()}catch{return e}}function lz(){const[e,t]=f.useState(!0),[n,s]=f.useState(null),[i,l]=f.useState(""),[c,u]=f.useState(new Set(Fh)),[p,m]=f.useState(!1),[h,x]=f.useState(!1),[y,b]=f.useState(null),[E,k]=f.useState(null),w=f.useCallback(async()=>{try{const P=await fetch("/api/backup");if(!P.ok)throw new Error(`HTTP ${P.status}`);const $=await P.json();s($),l($.repo??""),u(az($.categories)),m(!1)}catch(P){k({type:"error",message:`Failed to load backup config: ${P instanceof Error?P.message:String(P)}`})}finally{t(!1)}},[]);f.useEffect(()=>{w()},[w]);function j(P){u($=>{const F=new Set($);return F.has(P)?F.delete(P):F.add(P),F}),m(!0)}async function C(){x(!0),k(null);try{const P=Array.from(c),$=await fetch("/api/backup/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:i.trim()||null,categories:P})}),F=await $.json();if(!$.ok)throw new Error(F.error||`HTTP ${$.status}`);s(F),m(!1),k({type:"success",message:"Backup configuration saved."})}catch(P){k({type:"error",message:`Save failed: ${P instanceof Error?P.message:String(P)}`})}finally{x(!1)}}async function N(){b("push"),k(null);try{const P=await fetch("/api/backup/push",{method:"POST"}),$=await P.json();if(!P.ok||$.success===!1)throw new Error($.error||$.message||`HTTP ${P.status}`);k({type:"success",message:$.message||"Backup complete."}),await w()}catch(P){k({type:"error",message:`Backup failed: ${P instanceof Error?P.message:String(P)}`})}finally{b(null)}}async function T(){if(window.confirm("Restore will overwrite local files for the selected categories with the contents of the GitHub repo. This cannot be undone. Continue?")){b("pull"),k(null);try{const $=await fetch("/api/backup/pull",{method:"POST"}),F=await $.json();if(!$.ok||F.success===!1)throw new Error(F.error||F.message||`HTTP ${$.status}`);k({type:"success",message:F.message||"Restore complete."}),await w()}catch($){k({type:"error",message:`Restore failed: ${$ instanceof Error?$.message:String($)}`})}finally{b(null)}}}if(e)return r.jsx(ze,{title:"GitHub Backup",description:"Back up Syntaur files to a GitHub repository",children:r.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading..."})});const L=!!i.trim()&&c.size>0&&!y&&!p;return r.jsx(ze,{title:"GitHub Backup",description:"Back up Syntaur files to a GitHub repository and restore from it",children:r.jsxs("div",{className:"space-y-4",children:[E&&r.jsx("div",{className:`rounded-lg border px-4 py-2 text-sm ${E.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:E.message}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("label",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Repository URL"}),r.jsx("input",{type:"text",value:i,onChange:P=>{l(P.target.value),m(!0)},placeholder:"git@github.com:you/syntaur-backup.git",className:"editor-input w-full text-sm"}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:["SSH or HTTPS URL. Requires ",r.jsx("code",{className:"rounded bg-muted px-1",children:"git"})," installed and credentials configured locally."]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("label",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Categories to back up"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:Fh.map(P=>{const $=c.has(P);return r.jsxs("button",{type:"button",onClick:()=>j(P),className:`shell-action text-xs ${$?"bg-primary/10 text-primary hover:bg-primary/20":"bg-muted/30 text-muted-foreground hover:bg-muted/60"}`,children:[r.jsx("span",{className:`mr-1 inline-block h-2 w-2 rounded-full ${$?"bg-primary":"bg-muted-foreground/40"}`}),P]},P)})})]}),r.jsxs("div",{className:"grid grid-cols-1 gap-2 text-xs text-muted-foreground sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx("span",{className:"font-medium text-foreground",children:"Last backup: "}),wj((n==null?void 0:n.lastBackup)??null)]}),r.jsxs("div",{children:[r.jsx("span",{className:"font-medium text-foreground",children:"Last restore: "}),wj((n==null?void 0:n.lastRestore)??null)]}),(n==null?void 0:n.locked)&&r.jsx("div",{className:"sm:col-span-2 text-warning-foreground",children:"⚠ A backup operation is in progress or the lock file is stale."})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-2",children:[r.jsxs("button",{className:"shell-action bg-primary/10 text-primary hover:bg-primary/20",onClick:C,disabled:h||!p,children:[r.jsx(Rd,{className:"h-3.5 w-3.5"}),h?"Saving...":"Save Config"]}),r.jsxs("button",{className:"shell-action",onClick:N,disabled:!L,title:L?"Back up now":p?"Save config first":"Set repo and pick categories",children:[r.jsx(GT,{className:"h-3.5 w-3.5"}),y==="push"?"Backing up...":"Back Up Now"]}),r.jsxs("button",{className:"shell-action",onClick:T,disabled:!L,title:L?"Restore from backup":p?"Save config first":"Set repo and pick categories",children:[r.jsx(NT,{className:"h-3.5 w-3.5"}),y==="pull"?"Restoring...":"Restore"]}),p&&r.jsx("span",{className:"text-xs text-muted-foreground",children:"Unsaved changes"})]}),r.jsxs("p",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-muted/20 p-3 text-xs text-muted-foreground",children:[r.jsx(kT,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),r.jsxs("span",{children:["Restore never overwrites ",r.jsx("code",{className:"rounded bg-muted px-1",children:"config.md"})," (would clobber backup settings). The agent sessions database is not backed up — only markdown files."]})]})]})})}function cz({open:e,affected:t,remaining:n,onResolve:s,onCancel:i}){var k;const[l,c]=f.useState(n.length>0?"remap":"delete"),[u,p]=f.useState(((k=n[0])==null?void 0:k.id)??""),[m,h]=f.useState(!1);f.useEffect(()=>{var w;e&&(c(n.length>0?"remap":"delete"),p(((w=n[0])==null?void 0:w.id)??""),h(!1))},[e,n]);const x=l==="remap"&&n.length>0&&u!==""&&u!==t.id||l==="delete"&&m;function y(){x&&s(l==="remap"?{id:t.id,mode:"remap",target:u}:{id:t.id,mode:"delete"})}const b=t.assignments.slice(0,10),E=t.count-b.length;return r.jsx(sr,{open:e,onOpenChange:w=>w?void 0:i(),children:r.jsxs(Wn,{className:"max-w-xl",children:[r.jsxs(Jr,{children:[r.jsxs(Kn,{children:['Delete status "',t.label,'" — ',t.count," assignment",t.count===1?"":"s"," reference it"]}),r.jsx(ms,{children:"Choose how to resolve the affected assignments before this status is removed from the workflow."})]}),r.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:r.jsxs("ul",{className:"space-y-1 text-sm",children:[b.map(w=>r.jsx("li",{children:r.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:w.display})},`${w.projectSlug??"standalone"}/${w.assignmentSlug}`)),E>0&&r.jsxs("li",{className:"text-xs italic text-muted-foreground",children:["+",E," more not shown"]})]})}),r.jsxs("div",{className:"space-y-3",children:[r.jsxs("label",{className:"flex items-start gap-2 cursor-pointer",children:[r.jsx("input",{type:"radio",name:"status-delete-mode",checked:l==="remap",onChange:()=>c("remap"),disabled:n.length===0,className:"mt-1"}),r.jsxs("span",{className:"flex-1",children:[r.jsx("span",{className:"block text-sm font-medium",children:"Remap to another status"}),r.jsxs("select",{value:u,onChange:w=>p(w.target.value),onClick:()=>c("remap"),disabled:l!=="remap"||n.length===0,className:"mt-2 block w-full rounded-md border border-border/60 bg-background px-2 py-1 text-sm",children:[n.length===0&&r.jsx("option",{value:"",children:"(no other statuses)"}),n.map(w=>r.jsxs("option",{value:w.id,children:[w.label," (",w.id,")"]},w.id))]}),n.length===0&&r.jsx("span",{className:"block text-xs text-muted-foreground mt-1",children:"No other saved statuses to remap to. Add another status first, or use Delete."})]})]}),r.jsxs("label",{className:"flex items-start gap-2 cursor-pointer",children:[r.jsx("input",{type:"radio",name:"status-delete-mode",checked:l==="delete",onChange:()=>c("delete"),className:"mt-1"}),r.jsxs("span",{className:"flex-1",children:[r.jsx("span",{className:"block text-sm font-medium text-error-foreground",children:"Delete these assignments"}),r.jsxs("span",{className:"block text-xs text-muted-foreground mt-1",children:["Permanently removes ",t.count," assignment",t.count===1?"":"s"," from disk. This cannot be undone."]}),l==="delete"&&r.jsxs("label",{className:"mt-2 flex items-center gap-2 cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:m,onChange:w=>h(w.target.checked)}),r.jsxs("span",{className:"text-xs",children:["I understand this will permanently delete ",t.count," assignment",t.count===1?"":"s","."]})]})]})]})]}),r.jsxs(Ds,{children:[r.jsx("button",{type:"button",onClick:i,className:"shell-action",children:"Cancel"}),r.jsx("button",{type:"button",onClick:y,disabled:!x,className:`shell-action ${l==="delete"?"bg-error text-error-foreground hover:opacity-90":"bg-foreground text-background hover:opacity-90"} disabled:cursor-not-allowed disabled:opacity-50`,children:l==="remap"?`Remap ${t.count} → ${u||"..."}`:`Delete ${t.count}`})]})]})})}function uz(e){const t=Array.from(e.pendingResolutions.values());return{body:{statuses:e.statuses.map(s=>({id:s.id,label:s.label,...s.description?{description:s.description}:{},...s.color?{color:s.color}:{},...s.terminal?{terminal:!0}:{}})),order:e.order,transitions:[],resolutions:t},resolutions:t}}function dz(e,t){const n=new Map;t.forEach((i,l)=>{n.has(i)||n.set(i,l)});const s=t.length;return e.map((i,l)=>({s:i,originalIndex:l,r:n.get(i.id)??s})).sort((i,l)=>i.r-l.r||i.originalIndex-l.originalIndex).map(i=>i.s)}function jj(e,t){const n=new Map;for(const[s,i]of e.entries())t.has(i.id)||i.mode==="remap"&&!t.has(i.target)||n.set(s,i);return n}function fz(){const{customBindings:e,userBindings:t,actionEntries:n,findConflict:s,bindAction:i,unbindAction:l}=uo(),[c,u]=f.useState(null),[p,m]=f.useState(null),[h,x]=f.useState(!1),y=Object.values(t).some(N=>typeof N=="string"&&N.length>0);function b(N,T){m({type:N,message:T}),setTimeout(()=>m(null),2500)}function E(N){u({kind:N,combo:null,conflict:null,saving:!1,error:null})}function k(N){if(!c||N.key==="Escape")return;if(N.key==="Enter"&&c.combo){N.preventDefault(),w();return}if(N.key==="Enter")return;N.preventDefault(),N.stopPropagation();const T=P0(N.nativeEvent);if(!T)return;const L=s(T,c.kind);u({...c,combo:T,conflict:L,error:null})}async function w(){var N;if(c!=null&&c.combo){if((N=c.conflict)!=null&&N.description){u({...c,error:`Reserved: ${c.conflict.description}`});return}u({...c,saving:!0,error:null});try{await i(c.kind,c.combo),u(null),b("success",`Bound ${fl[c.kind]}`)}catch(T){u({...c,saving:!1,error:T instanceof Error?T.message:"Failed to save"})}}}async function j(N){try{await l(N),b("success",`Cleared ${fl[N]} binding`)}catch(T){b("error",T instanceof Error?T.message:"Failed to clear binding")}}async function C(){if(!h){x(!0);try{await h3(),b("success","All hotkey bindings cleared")}catch(N){b("error",N instanceof Error?N.message:"Failed to reset bindings")}finally{x(!1)}}}return r.jsxs(ze,{title:"Hotkey Bindings",description:"Each canonical create action ships with a default hotkey that fires the action without opening the palette. Override any of them below — Clear restores the default.",actions:y?r.jsxs("button",{className:"shell-action text-xs",onClick:()=>void C(),disabled:h,children:[r.jsx(ea,{className:"h-3 w-3"}),"Restore defaults"]}):void 0,children:[p?r.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${p.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:p.message}):null,r.jsx("ul",{className:"space-y-2",children:$d.map(N=>{var F,X;const T=n.find(te=>te.bindableKind===N),L=e[N],P=typeof t[N]=="string"&&!!t[N],$=(c==null?void 0:c.kind)===N;return r.jsxs("li",{className:"flex flex-wrap items-center gap-3 rounded-md border border-border/40 bg-background/60 px-3 py-2",children:[r.jsx(ih,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"text-sm text-foreground",children:(T==null?void 0:T.title)??fl[N]}),T!=null&&T.subtitle?r.jsx("div",{className:"text-xs text-muted-foreground",children:T.subtitle}):null]}),L?r.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[r.jsx("kbd",{className:"rounded border border-border/70 bg-muted px-2 py-0.5 font-mono text-xs text-foreground",children:ls(L)}),r.jsx("span",{className:`text-[10px] uppercase tracking-wide ${P?"text-primary":"text-muted-foreground"}`,children:P?"custom":"default"})]}):r.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:"unbound"}),r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("button",{type:"button",className:"shell-action text-xs",onClick:()=>E(N),children:L?"Rebind":"Bind"}),P?r.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:()=>void j(N),"aria-label":`Restore default ${fl[N]} binding`,children:[r.jsx(rg,{className:"h-3 w-3"}),"Restore default"]}):null]}),$?r.jsx("div",{className:"mt-2 w-full rounded-md border border-primary/40 bg-primary/5 px-3 py-3 text-center outline-none",tabIndex:0,autoFocus:!0,onKeyDown:k,onBlur:()=>{(c==null?void 0:c.kind)===N&&!c.saving&&u(null)},children:c!=null&&c.combo?r.jsxs("div",{className:"space-y-2",children:[r.jsx("div",{className:"text-base font-semibold tracking-wide text-foreground",children:ls(c.combo)}),(F=c.conflict)!=null&&F.description?r.jsxs("div",{className:"text-xs text-destructive",children:["Reserved: ",c.conflict.description]}):(X=c.conflict)!=null&&X.kind?r.jsxs("div",{className:"text-xs text-amber-500 dark:text-amber-400",children:['Already bound to "',fl[c.conflict.kind],'". Press Enter to overwrite.']}):r.jsx("div",{className:"text-xs text-muted-foreground",children:"Press Enter to save, Esc to cancel, any other key to retry."}),c.error?r.jsx("div",{className:"text-xs text-destructive",children:c.error}):null]}):r.jsx("div",{className:"text-xs text-muted-foreground",children:"Press the key combination you want to bind…"})}):null]},N)})})]})}const pz={kanban:"Kanban",list:"List",table:"Table"},mz={comfortable:"Comfortable",compact:"Compact"},hz={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},gz={asc:"Ascending",desc:"Descending"};function xz(){const e=OF(),t=e.global,[n,s]=f.useState(!1),[i,l]=f.useState(null);function c(m,h){l({type:m,message:h}),setTimeout(()=>l(null),2e3)}async function u(m,h){if(t[m]!==h){s(!0);try{await cN({[m]:h}),c("success","Saved")}catch(x){c("error",x instanceof Error?x.message:"Failed to save")}finally{s(!1)}}}async function p(){if(e.custom){s(!0);try{await _F(),c("success","Reset to defaults")}catch(m){c("error",m instanceof Error?m.message:"Failed to reset")}finally{s(!1)}}}return r.jsxs(ze,{title:"View defaults",description:"Defaults for the assignments board, list, and table views. Per-project overrides are saved automatically as you use them.",actions:e.custom?r.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:p,disabled:n,children:[r.jsx(ea,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[i&&r.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${i.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:i.message}),r.jsxs("dl",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Default view"}),r.jsx("dd",{className:"mt-1.5 inline-flex rounded-md border border-border/60 p-0.5",children:kg.map(m=>r.jsx("button",{type:"button",onClick:()=>u("defaultView",m),disabled:n,"aria-pressed":t.defaultView===m,className:`px-3 py-1 text-xs ${t.defaultView===m?"rounded bg-foreground text-background":"text-muted-foreground hover:text-foreground"}`,children:pz[m]},m))})]}),r.jsxs("div",{children:[r.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Density"}),r.jsx("dd",{className:"mt-1.5 inline-flex rounded-md border border-border/60 p-0.5",children:H3.map(m=>r.jsx("button",{type:"button",onClick:()=>u("density",m),disabled:n,"aria-pressed":t.density===m,className:`px-3 py-1 text-xs ${t.density===m?"rounded bg-foreground text-background":"text-muted-foreground hover:text-foreground"}`,children:mz[m]},m))})]}),r.jsxs("div",{children:[r.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Sort by"}),r.jsx("dd",{className:"mt-1.5",children:r.jsx("select",{value:t.sortField,onChange:m=>u("sortField",m.target.value),disabled:n,className:"editor-input max-w-[220px]",children:_k.map(m=>r.jsx("option",{value:m,children:hz[m]},m))})})]}),r.jsxs("div",{children:[r.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Direction"}),r.jsx("dd",{className:"mt-1.5 inline-flex rounded-md border border-border/60 p-0.5",children:V3.map(m=>r.jsx("button",{type:"button",onClick:()=>u("sortDirection",m),disabled:n,"aria-pressed":t.sortDirection===m,className:`px-3 py-1 text-xs ${t.sortDirection===m?"rounded bg-foreground text-background":"text-muted-foreground hover:text-foreground"}`,children:gz[m]},m))})]})]})]})}const yz=/^[a-z0-9][a-z0-9_-]*$/,IN=["first","last","none"];class ON extends Error{constructor(n,s){super(n);zb(this,"fieldErrors");this.name="AgentsConfigError",this.fieldErrors=s}}const wx={agents:[],custom:!1};let Fi=null,Oi=null,bd=0;const zh=new Set;function _N(e){Fi=e;for(const t of zh)t(e)}function bz(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e;if(typeof t.id!="string"||t.id.length===0||typeof t.label!="string"||typeof t.command!="string")return null;const n={id:t.id,label:t.label,command:t.command};return Array.isArray(t.args)&&t.args.every(s=>typeof s=="string")&&(n.args=t.args),typeof t.promptArgPosition=="string"&&IN.includes(t.promptArgPosition)&&(n.promptArgPosition=t.promptArgPosition),typeof t.resolveFromShellAliases=="boolean"&&(n.resolveFromShellAliases=t.resolveFromShellAliases),typeof t.default=="boolean"&&(n.default=t.default),n}function jx(e){if(!e||typeof e!="object")return wx;const t=e,n=Array.isArray(t.agents)?t.agents:[],s=[];for(const i of n){const l=bz(i);l&&s.push(l)}return{agents:s,custom:t.custom===!0}}function vz(){if(Fi)return Promise.resolve(Fi);if(Oi)return Oi;const e=++bd;return Oi=fetch("/api/config/agents").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{Oi=null;const n=jx(t);return e!==bd?Fi??n:(Fi=n,n)}).catch(()=>(Oi=null,wx)),Oi}function wz(){const[e,t]=f.useState(()=>Fi??wx);return f.useEffect(()=>{let n=!1;return vz().then(s=>{n||t(s)}),zh.add(t),()=>{n=!0,zh.delete(t)}},[]),e}async function MN(e){const t=await e.json().catch(()=>null),n=(t==null?void 0:t.error)??`HTTP ${e.status}`;return new ON(n,t==null?void 0:t.fieldErrors)}async function jz(e){++bd;const t=await fetch("/api/config/agents",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:e})});if(!t.ok)throw await MN(t);const n=jx(await t.json());return _N(n),n}async function kz(){++bd;const e=await fetch("/api/config/agents",{method:"DELETE"});if(!e.ok)throw await MN(e);const t=jx(await e.json());return _N(t),t}const Sz={first:"first",last:"last",none:"none"};function FN(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function bl(e){return e.map(t=>({rowKey:FN(),id:t.id,originalId:t.id,isNew:!1,idEditable:!1,autoSlugFromLabel:!1,label:t.label,command:t.command,argsText:t.args?t.args.join(" "):"",promptArgPosition:t.promptArgPosition??"first",resolveFromShellAliases:t.resolveFromShellAliases??!1,default:t.default??!1,fieldErrors:{}}))}function Nz(e){return e.map(t=>{const n={id:t.id,label:t.label,command:t.command},s=t.argsText.split(/[,\s]+/).filter(Boolean);return s.length>0&&(n.args=s),t.promptArgPosition!=="first"&&(n.promptArgPosition=t.promptArgPosition),t.resolveFromShellAliases&&(n.resolveFromShellAliases=!0),t.default&&(n.default=!0),n})}function Cz(e){if(e.length===0)return e;let t=-1;for(let n=0;n<e.length;n++)if(e[n].default){t=n;break}return e.map((n,s)=>({...n,default:t===-1?s===0:s===t}))}function Ez(e,t){return!t||t.length===0?e:e.map((n,s)=>{const i={};for(const l of t){if(l.index!==void 0){l.index===s&&(i[l.field]=l.message);continue}if(l.id!==void 0){l.id===n.id&&(i[l.field]=l.message);continue}i[l.field]=l.message}return{...n,fieldErrors:i}})}function Tz(e){return e.map(t=>Object.keys(t.fieldErrors).length===0?t:{...t,fieldErrors:{}})}function Pz(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){const s=e[n],i=t[n];if(s.id!==i.id||s.label!==i.label||s.command!==i.command||s.argsText!==i.argsText||s.promptArgPosition!==i.promptArgPosition||s.resolveFromShellAliases!==i.resolveFromShellAliases||s.default!==i.default)return!1}return!0}function Rz({row:e,index:t,canRemove:n,onPatch:s,onSetDefault:i,onRemove:l}){const{attributes:c,listeners:u,setNodeRef:p,setActivatorNodeRef:m,transform:h,transition:x,isDragging:y}=ff({id:e.rowKey}),b={transform:ao.Transform.toString(h),transition:x,zIndex:y?50:void 0,position:y?"relative":void 0};function E(j){const C={label:j};if(e.autoSlugFromLabel){const N=mr(j);N&&yz.test(N)?C.id=N:C.id=`agent-${t+1}`}s(C)}function k(j){s({id:j,autoSlugFromLabel:!1})}const w=j=>e.fieldErrors[j]?"border-error-foreground/60":"";return r.jsxs("div",{ref:p,style:b,className:`surface-panel space-y-2 px-3 py-2 ${y?"opacity-60 shadow-lg":""}`,children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{ref:m,...c,...u,type:"button","aria-label":"Drag to reorder",className:"cursor-grab active:cursor-grabbing text-muted-foreground/40 hover:text-muted-foreground transition touch-none",children:r.jsx(Pd,{className:"h-4 w-4"})}),r.jsxs("label",{className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[r.jsx("input",{type:"radio",name:"agents-default",checked:e.default,onChange:i,className:"h-3 w-3 cursor-pointer accent-foreground"}),"Default"]}),r.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[r.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-muted-foreground/70",children:"id"}),e.idEditable?r.jsx("input",{type:"text",value:e.id,onChange:j=>k(j.target.value),className:`editor-input w-32 font-mono text-xs ${w("id")}`,"aria-label":"Agent id"}):r.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:e.id}),r.jsx("button",{type:"button",onClick:l,disabled:!n,"aria-label":"Remove agent",className:"rounded p-1 text-muted-foreground/60 transition hover:bg-foreground/[0.04] hover:text-foreground disabled:cursor-not-allowed disabled:opacity-30",children:r.jsx(Hn,{className:"h-3.5 w-3.5"})})]})]}),e.fieldErrors.id&&r.jsx("p",{className:"ml-7 text-[11px] text-error-foreground",children:e.fieldErrors.id}),r.jsxs("div",{className:"ml-7 grid grid-cols-1 gap-2 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Label"}),r.jsx("input",{type:"text",value:e.label,onChange:j=>E(j.target.value),className:`editor-input mt-0.5 w-full ${w("label")}`}),e.fieldErrors.label&&r.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.label})]}),r.jsxs("div",{children:[r.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Command"}),r.jsx("input",{type:"text",value:e.command,placeholder:"claude or /usr/local/bin/claude",onChange:j=>s({command:j.target.value}),className:`editor-input mt-0.5 w-full font-mono ${w("command")}`}),e.fieldErrors.command&&r.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.command})]}),r.jsxs("div",{children:[r.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Args (comma- or space-separated)"}),r.jsx("input",{type:"text",value:e.argsText,placeholder:"--dangerously-skip-permissions",onChange:j=>s({argsText:j.target.value}),className:`editor-input mt-0.5 w-full font-mono ${w("args")}`}),e.fieldErrors.args&&r.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.args})]}),r.jsxs("div",{children:[r.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Prompt arg position"}),r.jsx("select",{value:e.promptArgPosition,onChange:j=>s({promptArgPosition:j.target.value}),className:`editor-input mt-0.5 w-full ${w("promptArgPosition")}`,children:IN.map(j=>r.jsx("option",{value:j,children:Sz[j]},j))}),e.fieldErrors.promptArgPosition&&r.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.promptArgPosition})]}),r.jsxs("label",{className:"col-span-full inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[r.jsx("input",{type:"checkbox",checked:e.resolveFromShellAliases,onChange:j=>s({resolveFromShellAliases:j.target.checked}),className:"h-3.5 w-3.5 cursor-pointer accent-foreground"}),"Resolve from shell aliases (look up ",r.jsx("code",{className:"font-mono",children:"command"})," in your interactive shell before launching)"]})]})]})}function Az(){const e=wz(),[t,n]=f.useState(()=>bl(e.agents)),[s,i]=f.useState(()=>bl(e.agents)),[l,c]=f.useState(!1),[u,p]=f.useState(null),[m,h]=f.useState(null);f.useEffect(()=>{const P=bl(e.agents);n(P),i(P),p(null)},[e.agents]);const x=f.useMemo(()=>!Pz(t,s),[t,s]),y=rf(lo(va,{activationConstraint:{distance:8}}),lo(ba));function b(P,$){h({type:P,message:$}),setTimeout(()=>h(null),2500)}function E(P,$){n(F=>F.map(X=>X.rowKey===P?{...X,...$,fieldErrors:Dz(X.fieldErrors,$)}:X))}function k(P){n($=>$.map(F=>({...F,default:F.rowKey===P})))}function w(){n(P=>{const $=new Set(P.map(Z=>Z.id)),F="new-agent";let X=F,te=1;for(;$.has(X);)te+=1,X=`${F}-${te}`;const D=te===1?"New Agent":`New Agent ${te}`,W={rowKey:FN(),id:X,originalId:null,isNew:!0,idEditable:!0,autoSlugFromLabel:!0,label:D,command:"",argsText:"",promptArgPosition:"first",resolveFromShellAliases:!0,default:!1,fieldErrors:{}};return[...P,W]})}function j(P){n($=>$.filter(F=>F.rowKey!==P))}async function C(){c(!0),p(null);try{const P=Cz(t),$=Nz(P),F=await jz($),X=bl(F.agents);n(X),i(X),b("success","Agents saved")}catch(P){if(P instanceof ON)p(P.message),n($=>Ez(Tz($),P.fieldErrors)),b("error",P.message);else{const $=P instanceof Error?P.message:"Failed to save";p($),b("error",$)}}finally{c(!1)}}function N(){n(s),p(null)}async function T(){if(e.custom&&window.confirm("Reset agents to built-in defaults? Any custom agents will be deleted from your config.")){c(!0),p(null);try{const P=await kz(),$=bl(P.agents);n($),i($),b("success","Reset to defaults")}catch(P){const $=P instanceof Error?P.message:"Failed to reset";p($),b("error",$)}finally{c(!1)}}}function L(P){const{active:$,over:F}=P;!F||$.id===F.id||n(X=>{const te=X.findIndex(W=>W.rowKey===$.id),D=X.findIndex(W=>W.rowKey===F.id);return te===-1||D===-1?X:wa(X,te,D)})}return r.jsxs(ze,{title:"Agents",description:"Configure which agents the dashboard and 'Open in agent' actions can launch. The default agent is used when no other one is specified.",actions:e.custom?r.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:T,disabled:l,children:[r.jsx(ea,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[!e.custom&&r.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/60 bg-foreground/[0.02] px-3 py-2 text-xs text-muted-foreground",children:[r.jsx(Qh,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),r.jsxs("span",{children:["Using built-in defaults — first save will write your own list to"," ",r.jsx("code",{className:"font-mono",children:"~/.syntaur/config.md"}),"."]})]}),m&&r.jsx("div",{className:`rounded-md border px-3 py-1.5 text-xs ${m.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:m.message}),u&&(!m||m.type!=="error")&&r.jsx("div",{className:"rounded-md border border-error-foreground/30 bg-error px-3 py-1.5 text-xs text-error-foreground",children:u}),r.jsx(cf,{sensors:y,collisionDetection:sf,onDragEnd:L,children:r.jsx(df,{items:t.map(P=>P.rowKey),strategy:uf,children:r.jsx("div",{className:"space-y-2",children:t.map((P,$)=>r.jsx(Rz,{row:P,index:$,canRemove:t.length>1,onPatch:F=>E(P.rowKey,F),onSetDefault:()=>k(P.rowKey),onRemove:()=>j(P.rowKey)},P.rowKey))})})}),r.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[r.jsxs("button",{type:"button",onClick:w,disabled:l,className:"shell-action text-xs",children:[r.jsx(en,{className:"h-3 w-3"}),"Add agent"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:N,disabled:!x||l,className:"shell-action text-xs",children:"Discard"}),r.jsxs("button",{type:"button",onClick:C,disabled:!x||l,className:"shell-action text-xs",children:[r.jsx(Rd,{className:"h-3 w-3"}),"Save"]})]})]})]})}function Dz(e,t){if(Object.keys(e).length===0)return e;const n={...e};return"id"in t&&delete n.id,"label"in t&&delete n.label,"command"in t&&delete n.command,"argsText"in t&&delete n.args,"promptArgPosition"in t&&delete n.promptArgPosition,"resolveFromShellAliases"in t&&delete n.resolveFromShellAliases,"default"in t&&delete n.default,n}const zN=["terminal-app","iterm","ghostty","alacritty","warp","kitty"],vd={terminal:"terminal-app",custom:!1};let zi=null,_i=null,wd=0;const Bh=new Set;function BN(e){zi=e;for(const t of Bh)t(e)}function kx(e){if(!e||typeof e!="object")return vd;const t=e;return{terminal:typeof t.terminal=="string"&&zN.includes(t.terminal)?t.terminal:vd.terminal,custom:t.custom===!0}}function $z(){if(zi)return Promise.resolve(zi);if(_i)return _i;const e=++wd;return _i=fetch("/api/config/terminal").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{_i=null;const n=kx(t);return e!==wd?zi??n:(zi=n,n)}).catch(()=>(_i=null,vd)),_i}function Lz(){const[e,t]=f.useState(()=>zi??vd);return f.useEffect(()=>{let n=!1;return $z().then(s=>{n||t(s)}),Bh.add(t),()=>{n=!0,Bh.delete(t)}},[]),e}async function Iz(e){++wd;const t=await fetch("/api/config/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({terminal:e})});if(!t.ok){const s=await t.json().catch(()=>null);throw new Error((s==null?void 0:s.error)??`HTTP ${t.status}`)}const n=kx(await t.json());return BN(n),n}async function Oz(){++wd;const e=await fetch("/api/config/terminal",{method:"DELETE"});if(!e.ok){const n=await e.json().catch(()=>null);throw new Error((n==null?void 0:n.error)??`HTTP ${e.status}`)}const t=kx(await e.json());return BN(t),t}const $u={"terminal-app":"Terminal (macOS built-in)",iterm:"iTerm2",ghostty:"Ghostty",alacritty:"Alacritty",warp:"Warp",kitty:"kitty"};function _z(){const{terminal:e,custom:t}=Lz(),[n,s]=f.useState(!1),[i,l]=f.useState(null);function c(m){l(m),setTimeout(()=>l(null),2500)}async function u(m){if(!(m===e&&t)){s(!0);try{await Iz(m),c({type:"success",message:`Terminal set to ${$u[m]}.`})}catch(h){c({type:"error",message:h instanceof Error?h.message:"Save failed."})}finally{s(!1)}}}async function p(){s(!0);try{const m=await Oz();c({type:"success",message:`Reset to OS default (${$u[m.terminal]}).`})}catch(m){c({type:"error",message:m instanceof Error?m.message:"Reset failed."})}finally{s(!1)}}return r.jsxs(ze,{title:"Terminal",description:`Which terminal "Open in agent" launches. Defaults to the OS choice (currently ${$u[e]}) when unset.`,actions:t?r.jsxs("button",{className:"shell-action text-xs",onClick:p,disabled:n,type:"button",children:[r.jsx(ea,{className:"h-3 w-3"}),"Reset to OS default"]}):void 0,children:[i&&r.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${i.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:i.message}),r.jsxs("label",{className:"block text-sm",children:[r.jsx("span",{className:"mb-1.5 block text-xs font-medium text-muted-foreground",children:"Launch in"}),r.jsx("select",{value:e,onChange:m=>u(m.target.value),disabled:n,className:"w-full max-w-sm rounded-md border border-border/60 bg-background px-3 py-1.5 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60",children:zN.map(m=>r.jsx("option",{value:m,children:$u[m]},m))})]})]})}function UN(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function eh(e){const t=e.statuses.map(n=>({rowKey:UN(),id:n.id,label:n.label,description:n.description??"",color:n.color??"",terminal:n.terminal??!1}));return dz(t,e.order)}function Mz({row:e,isSaved:t,onUpdate:n,onRemove:s}){const{attributes:i,listeners:l,setNodeRef:c,setActivatorNodeRef:u,transform:p,transition:m,isDragging:h}=ff({id:e.rowKey}),x={transform:ao.Transform.toString(p),transition:m,zIndex:h?50:void 0,position:h?"relative":void 0};return r.jsxs("div",{ref:c,style:x,className:`surface-panel flex flex-wrap items-center gap-3 px-3 py-2 ${h?"opacity-60 shadow-lg":""}`,children:[r.jsx("button",{ref:u,...i,...l,type:"button","aria-label":"Drag to reorder",className:"cursor-grab active:cursor-grabbing text-muted-foreground/40 hover:text-muted-foreground transition touch-none",children:r.jsx(Pd,{className:"h-4 w-4"})}),r.jsx("div",{className:"min-w-[8rem] flex-1",children:t?r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsx("input",{type:"text",value:e.id,readOnly:!0,"aria-label":"Status ID",className:"editor-input w-full text-sm cursor-not-allowed opacity-60"})}),r.jsx(gr,{className:"max-w-xs text-xs font-normal normal-case tracking-normal",children:"To rename a saved status, delete the row and create a new one (this triggers the orphan-resolution flow if assignments still reference it)."})]}):r.jsx("input",{type:"text",value:e.id,onChange:y=>n("id",y.target.value),"aria-label":"Status ID",className:"editor-input w-full text-sm"})}),r.jsx("div",{className:"min-w-[8rem] flex-1",children:r.jsx("input",{type:"text",value:e.label,onChange:y=>n("label",y.target.value),"aria-label":"Status label",className:"editor-input w-full text-sm"})}),r.jsx(iz,{value:e.color,onChange:y=>n("color",y),ariaLabel:`Color for ${e.label||e.id}`}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs(Pr,{children:[r.jsx(Rr,{asChild:!0,children:r.jsx("span",{className:"cursor-help text-xs text-muted-foreground underline decoration-dotted underline-offset-4",children:"Done"})}),r.jsx(gr,{className:"max-w-xs text-xs font-normal normal-case tracking-normal",children:'When enabled, assignments in this status count as finished — they fill the "done" portion of progress bars and satisfy dependency requirements.'})]}),r.jsx("button",{type:"button",role:"switch","aria-checked":e.terminal,"aria-label":`Done state for ${e.label||e.id}`,onClick:()=>n("terminal",!e.terminal),className:`relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background ${e.terminal?"bg-primary":"bg-muted"}`,children:r.jsx("span",{className:`pointer-events-none inline-block h-4 w-4 rounded-full bg-background shadow-sm ring-0 transition-transform ${e.terminal?"translate-x-4":"translate-x-0"}`})})]}),r.jsx("button",{type:"button",className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground",onClick:s,title:"Remove status","aria-label":`Remove status ${e.id}`,children:r.jsx(Hn,{className:"h-3.5 w-3.5"})})]})}function Fz(){var me;const[e,t]=f.useState(!0),[n,s]=f.useState(null),[i,l]=f.useState(!1),[c,u]=f.useState([]),[p,m]=f.useState(!1),[h,x]=f.useState(null),[y,b]=f.useState(!1),[E,k]=f.useState(new Set),[w,j]=f.useState(new Map),[C,N]=f.useState({open:!1}),T=rf(lo(va,{activationConstraint:{distance:8}}),lo(ba,{coordinateGetter:fF})),{preset:L,setPreset:P,resetPreset:$}=ig(),[F,X]=f.useState(!1),[te,D]=f.useState(null);async function W(U){if(!(U===L||F)){X(!0),D(null);try{await P(U),D({type:"success",message:"Theme updated"}),setTimeout(()=>D(null),2e3)}catch(se){D({type:"error",message:se instanceof Error?se.message:"Failed to save theme"})}finally{X(!1)}}}async function Z(){X(!0),D(null);try{await $(),D({type:"success",message:"Theme reset to default"}),setTimeout(()=>D(null),2e3)}catch(U){D({type:"error",message:U instanceof Error?U.message:"Failed to reset theme"})}finally{X(!1)}}const M=f.useCallback(async()=>{try{const U=await fetch("/api/config/statuses");if(!U.ok)throw new Error(`HTTP ${U.status}`);const se=await U.json(),de=eh(se);u(de),l(se.custom),k(new Set(de.map(ye=>ye.id))),j(new Map),b(!1),s(null)}catch(U){s(U instanceof Error?U.message:"Failed to load config")}finally{t(!1)}},[]);f.useEffect(()=>{M()},[M]);function K(){setTimeout(()=>x(null),3e3)}async function J(){m(!0),x(null);try{const{body:U}=uz({statuses:c,order:c.map(fe=>fe.id),pendingResolutions:w}),se=await fetch("/api/config/statuses",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(U)});if(!se.ok){const fe=await se.json().catch(()=>null);if(se.status===409&&(fe==null?void 0:fe.error)==="unresolved-orphans"){const Ve=Array.isArray(fe.unresolved)?fe.unresolved.map(pe=>pe.id).join(", "):"";throw new Error(`Cannot save — these statuses have assignments that need a resolution: ${Ve}. Click the trash icon on each row to choose remap or delete.`)}if(se.status===409&&(fe==null?void 0:fe.error)==="concurrent-edit"){const Ve=fe.applied?` (${fe.applied.remapped} remapped, ${fe.applied.deleted} deleted before the conflict)`:"";x({type:"error",message:`Concurrent edit detected${Ve}: ${fe.cause??"an assignment moved to a still-dropped status during save"}. Refreshing — please re-resolve.`}),await M();return}if(se.status===500&&(fe==null?void 0:fe.error)==="config-write-failed"&&(fe!=null&&fe.applied)){const{remapped:Ve,deleted:pe}=fe.applied,Re=fe.message?`: ${fe.message}`:"";x({type:"error",message:`Resolutions applied (${Ve} remapped, ${pe} deleted) but the status config write failed${Re}. Click Save again to retry.`}),await M();return}throw(fe==null?void 0:fe.error)==="invalid-remap-target"?new Error(`Invalid remap target (${fe.reason}): ${fe.id} → ${fe.target}.`):(fe==null?void 0:fe.error)==="duplicate-resolution-ids"?new Error(`Duplicate resolution ids: ${(fe.ids??[]).join(", ")}`):(fe==null?void 0:fe.error)==="stale-resolution"?new Error(`Stale resolution for id "${fe.id??"?"}".`):(fe==null?void 0:fe.error)==="malformed-resolutions"?new Error(`Malformed resolutions: ${fe.message??"unknown"}`):(fe==null?void 0:fe.error)==="remap-write-failed"||(fe==null?void 0:fe.error)==="delete-failed"||(fe==null?void 0:fe.error)==="scan-failed"?new Error(`${fe.error}: ${fe.cause??"unknown"}`):new Error((fe==null?void 0:fe.error)??`Save failed (HTTP ${se.status})`)}const de=await se.json(),ye=eh(de);u(ye),l(de.custom),k(new Set(ye.map(fe=>fe.id))),j(new Map),b(!1),Vv();const je=de.applied?` (${de.applied.remapped} remapped, ${de.applied.deleted} deleted)`:"";x({type:"success",message:`Status config saved${je}`}),K()}catch(U){x({type:"error",message:U instanceof Error?U.message:"Save failed"})}finally{m(!1)}}async function le(){m(!0),x(null);try{const U=await fetch("/api/config/statuses",{method:"DELETE"});if(!U.ok)throw new Error("Reset failed");const se=await U.json(),de=eh(se);u(de),l(se.custom),k(new Set(de.map(ye=>ye.id))),j(new Map),b(!1),Vv(),x({type:"success",message:"Reset to defaults"}),K()}catch(U){x({type:"error",message:U instanceof Error?U.message:"Reset failed"})}finally{m(!1)}}function _(U,se,de){u(ye=>{const je=[...ye];return je[U]={...je[U],[se]:de},je}),b(!0)}function G(){const U=`status_${c.length+1}`;u(se=>[...se,{rowKey:UN(),id:U,label:"New Status",description:"",color:"",terminal:!1}]),b(!0)}function A(U){u(se=>{const de=se.filter(je=>je.id!==U),ye=new Set(de.map(je=>je.id));return j(je=>jj(je,ye)),de}),b(!0)}async function B(U){const se=c[U].id;if(!E.has(se)){A(se);return}try{const de=await fetch(`/api/config/statuses/affected/${encodeURIComponent(se)}`);if(!de.ok)throw new Error(`HTTP ${de.status}`);const ye=await de.json();if(ye.count===0){A(se);return}N({open:!0,affected:ye,pendingId:se})}catch(de){x({type:"error",message:`Could not check affected assignments for "${se}": ${de instanceof Error?de.message:String(de)}`})}}function ee(U){if(!C.open)return;const{pendingId:se}=C;if(se!==U.id){N({open:!1});return}if(!c.some(de=>de.id===se)){x({type:"error",message:`Row for "${se}" was already removed — modal action ignored.`}),N({open:!1});return}u(de=>{const ye=de.filter(fe=>fe.id!==se),je=new Set(ye.map(fe=>fe.id));return j(fe=>{const Ve=jj(fe,je),pe=new Map(Ve);return pe.set(se,U),pe}),ye}),b(!0),N({open:!1})}function I(){N({open:!1})}function ue(U){const{active:se,over:de}=U;!de||se.id===de.id||(u(ye=>{const je=ye.findIndex(Ve=>Ve.rowKey===se.id),fe=ye.findIndex(Ve=>Ve.rowKey===de.id);return je===-1||fe===-1?ye:wa(ye,je,fe)}),b(!0))}return e?r.jsx(ft,{label:"Loading settings..."}):n?r.jsx(mt,{error:n}):r.jsx(Fo,{children:r.jsxs("div",{className:"space-y-6",children:[r.jsxs(ze,{title:"Theme",description:"Pick a color theme for the dashboard. The default is the Syntaur brand.",actions:L!=="default"?r.jsxs("button",{className:"shell-action text-xs",onClick:Z,disabled:F,children:[r.jsx(ea,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[te&&r.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${te.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:te.message}),r.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",children:m0.map(U=>{const se=U.slug===L;return r.jsxs("button",{type:"button",onClick:()=>W(U.slug),disabled:F,"aria-pressed":se,className:`group relative flex flex-col gap-2 rounded-lg border bg-card/95 p-3 text-left transition disabled:opacity-60 ${se?"border-primary ring-2 ring-primary/40":"border-border/60 hover:border-primary/40"}`,children:[r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:U.swatches.primary}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:U.swatches.secondary}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:U.swatches.coral}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:U.swatches.teal}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:U.swatches.amber}}),se&&r.jsx("span",{className:"ml-auto inline-flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground",children:r.jsx(As,{className:"h-3 w-3"})})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium text-foreground",children:U.label}),r.jsx("div",{className:"text-xs text-muted-foreground",children:U.description})]})]},U.slug)})})]}),r.jsx(fz,{}),r.jsx(_z,{}),r.jsx(Az,{}),r.jsx(xz,{}),r.jsxs("div",{className:`flex items-center justify-between rounded-lg border px-4 py-3 text-sm ${i?"border-primary/30 bg-primary/5 text-primary":"border-border/60 bg-muted/30 text-muted-foreground"}`,children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Qh,{className:"h-4 w-4"}),i?"Using custom status configuration from ~/.syntaur/config.md":"Using default status configuration"]}),r.jsxs("button",{className:"shell-action text-xs",onClick:le,disabled:p||!i&&!y,children:[r.jsx(ea,{className:"h-3 w-3"}),"Reset to Defaults"]})]}),h&&r.jsx("div",{className:`rounded-lg border px-4 py-2 text-sm ${h.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:h.message}),r.jsx(ze,{title:"Status Definitions",description:"Define the statuses assignments can have. Drag rows to set the display order used by Kanban columns, progress bars, and dropdowns.",actions:r.jsxs("button",{className:"shell-action text-xs",onClick:G,children:[r.jsx(en,{className:"h-3 w-3"}),"Add Status"]}),children:r.jsx(cf,{sensors:T,collisionDetection:sf,onDragEnd:ue,children:r.jsx(df,{items:c.map(U=>U.rowKey),strategy:uf,children:r.jsx("div",{className:"space-y-2",children:c.map((U,se)=>r.jsx(Mz,{row:U,isSaved:E.has(U.id),onUpdate:(de,ye)=>_(se,de,ye),onRemove:()=>B(se)},U.rowKey))})})})}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("button",{className:"shell-action bg-primary/10 text-primary hover:bg-primary/20",onClick:J,disabled:p||!y,children:[r.jsx(Rd,{className:"h-3.5 w-3.5"}),p?"Saving...":"Save Configuration"]}),y&&r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"shell-action text-xs",onClick:()=>{t(!0),M()},disabled:p,children:"Discard Changes"}),r.jsx("span",{className:"text-xs text-muted-foreground",children:"Unsaved changes"})]})]}),r.jsx(lz,{}),C.open&&r.jsx(cz,{open:C.open,affected:{...C.affected,label:((me=c.find(U=>U.id===C.affected.id))==null?void 0:me.label)??C.affected.id},remaining:c.filter(U=>U.id!==C.affected.id&&E.has(U.id)).map(U=>({id:U.id,label:U.label})),onResolve:ee,onCancel:I})]})})}const Mi=e=>`${e.workspace}::${e.id}`;function kj(e){if(e.includes("/")){const[t,n]=e.split("/");return`/projects/${t}/assignments/${n}`}return`/assignments/${e}`}function zz(){var O;const{data:e,loading:t,error:n,refetch:s}=R0(),i=$t(),[l,c]=f.useState(""),u=f.useRef(null);fo("list:todos");const[p,m]=f.useState(""),[h,x]=f.useState(""),[y,b]=f.useState(""),[E,k]=f.useState("_global"),[w,j]=f.useState(null),[C,N]=f.useState(new Set),[T,L]=f.useState(!1),P=f.useRef(null),[$,F]=f.useState(null);f.useEffect(()=>{let H=!1;return(async()=>{try{const Q=await fetch("/api/projects");if(!Q.ok)return;const ge=await Q.json();H||F(ge.filter(Ie=>!Ie.archived))}catch{}})(),()=>{H=!0}},[]);function X(H,Q){H.stopPropagation(),navigator.clipboard.writeText(Q),j(Q),setTimeout(()=>j(ge=>ge===Q?null:ge),1500)}const te=f.useMemo(()=>{if(!(e!=null&&e.workspaces))return[];const H=[];for(const Q of e.workspaces)for(const ge of Q.items)H.push({...ge,workspace:Q.workspace});return H},[e]),D=f.useMemo(()=>{const H=new Set;for(const Q of te)for(const ge of Q.tags)H.add(ge);return Array.from(H).sort()},[te]),W=f.useMemo(()=>{let H=te;if(l.trim()){const Q=l.toLowerCase();H=H.filter(ge=>ge.description.toLowerCase().includes(Q)||ge.tags.some(Ie=>Ie.toLowerCase().includes(Q))||ge.id.includes(Q))}return p&&(H=H.filter(Q=>Q.status===p)),h&&(H=H.filter(Q=>Q.tags.includes(h))),H},[te,l,p,h]);f.useEffect(()=>{N(new Set),P.current=null},[l,p,h]);const Z=f.useMemo(()=>W.filter(H=>C.has(Mi(H))),[W,C]),M=W.length>0&&Z.length===W.length,K=Z.length>0&&!M,J=f.useMemo(()=>{if(Z.length===0)return null;const H=new Set(Z.map(Q=>Q.workspace));return H.size===1?[...H][0]:null},[Z]),le=f.useMemo(()=>{if(!J||!$)return;const H=$.filter(Q=>Q.workspace===J);return H.length===1?H[0].slug:void 0},[J,$]),_=((O=Z[0])==null?void 0:O.description)??"",G=f.useMemo(()=>{if(J)return null;const H=new Map;for(const Q of Z)H.has(Q.workspace)||H.set(Q.workspace,[]),H.get(Q.workspace).push(Q.id);return Array.from(H,([Q,ge])=>({workspace:Q,todoIds:ge}))},[Z,J]),A=J?{kind:"workspace",workspace:J}:{kind:"aggregate",groups:G??[]};function B(H,Q,ge){const Ie=Mi(H);if(!!(ge&&"shiftKey"in ge&&ge.shiftKey)&&P.current!=null){const et=Math.min(P.current,Q),He=Math.max(P.current,Q);N(jt=>{const Ht=new Set(jt);for(let st=et;st<=He;st++){const ae=W[st];ae&&Ht.add(Mi(ae))}return Ht})}else N(et=>{const He=new Set(et);return He.has(Ie)?He.delete(Ie):He.add(Ie),He});P.current=Q}function ee(){N(H=>{const Q=new Set(H);if(M)for(const ge of W)Q.delete(Mi(ge));else for(const ge of W)Q.add(Mi(ge));return Q})}function I(){N(new Set),P.current=null}function ue(H){I(),s(),H!=null&&H.assignmentRef&&i(kj(H.assignmentRef))}const me=f.useMemo(()=>{if(!(e!=null&&e.workspaces))return{open:0,in_progress:0,completed:0,blocked:0,total:0};const H={open:0,in_progress:0,completed:0,blocked:0,total:0};for(const Q of e.workspaces)H.open+=Q.counts.open,H.in_progress+=Q.counts.in_progress,H.completed+=Q.counts.completed,H.blocked+=Q.counts.blocked,H.total+=Q.counts.total;return H},[e]);async function U(){y.trim()&&(await lg(E,y.trim()),b(""),s())}const se={open:"in_progress",in_progress:"completed",completed:"open",blocked:"open"};function de(H,Q,ge){ye(H,Q,se[ge]||"open")}async function ye(H,Q,ge){switch(ge){case"open":await L0(H,Q);break;case"in_progress":await $0(H,Q);break;case"completed":await A0(H,Q);break;case"blocked":await D0(H,Q);break}s()}async function je(H,Q){await I0(H,Q),s()}const{hotkeyRowProps:fe}=ec(W,{scope:"list:todos",bindO:!1,onOpen:H=>de(H.workspace,H.id,H.status)});zt({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var H;return(H=u.current)==null?void 0:H.focus()}}),zt({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>s()});const[Ve,pe]=ps(),Re=Ve.get("focus");return f.useEffect(()=>{if(!Re)return;const H=document.querySelector(`[data-todo-id="${CSS.escape(Re)}"]`);if(!H)return;H.scrollIntoView({block:"nearest"}),H.classList.add("ring-2","ring-primary/60");const Q=window.setTimeout(()=>{H.classList.remove("ring-2","ring-primary/60"),pe(ge=>{const Ie=new URLSearchParams(ge);return Ie.delete("focus"),Ie})},1500);return()=>window.clearTimeout(Q)},[Re,W.length,pe]),t?r.jsx(ft,{label:"Loading todos..."}):n?r.jsx(mt,{error:n}):r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[r.jsx(Pn,{label:"Open",value:me.open,icon:Ar}),r.jsx(Pn,{label:"In Progress",value:me.in_progress,icon:Zh,tone:"info"}),r.jsx(Pn,{label:"Blocked",value:me.blocked,icon:ng,tone:"warn"}),r.jsx(Pn,{label:"Completed",value:me.completed,icon:Ar,tone:"default"})]}),r.jsx("div",{className:"surface-panel p-3",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsxs("select",{value:E,onChange:H=>k(H.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"_global",children:"Global"}),e==null?void 0:e.workspaces.filter(H=>H.workspace!=="_global").map(H=>r.jsx("option",{value:H.workspace,children:H.workspace},H.workspace))]}),r.jsx("input",{type:"text",placeholder:"Add a todo...",value:y,onChange:H=>b(H.target.value),onKeyDown:H=>H.key==="Enter"&&U(),className:"h-9 flex-1 rounded-md border border-border/70 bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"}),r.jsxs("button",{onClick:U,disabled:!y.trim(),className:"inline-flex h-9 items-center gap-1.5 rounded-md bg-foreground px-3 text-sm font-medium text-background transition hover:bg-foreground/90 disabled:opacity-40",children:[r.jsx(en,{className:"h-4 w-4"}),"Add"]})]})}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsxs("div",{className:"relative flex-1 max-w-sm",children:[r.jsx(co,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{ref:u,type:"text",placeholder:"Search todos...",value:l,onChange:H=>c(H.target.value),className:"h-9 w-full rounded-md border border-border/70 bg-background pl-9 pr-3 text-sm text-foreground placeholder:text-muted-foreground/60 focus:border-foreground/30 focus:outline-none"})]}),r.jsxs("select",{value:p,onChange:H=>m(H.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"",children:"All statuses"}),r.jsx("option",{value:"open",children:"Open"}),r.jsx("option",{value:"in_progress",children:"In Progress"}),r.jsx("option",{value:"completed",children:"Completed"}),r.jsx("option",{value:"blocked",children:"Blocked"})]}),D.length>0&&r.jsxs("select",{value:h,onChange:H=>x(H.target.value),className:"h-9 rounded-md border border-border/70 bg-background px-2 text-sm text-foreground focus:border-foreground/30 focus:outline-none",children:[r.jsx("option",{value:"",children:"All tags"}),D.map(H=>r.jsxs("option",{value:H,children:["#",H]},H))]})]}),Z.length>0?r.jsxs("div",{className:"surface-panel flex items-center justify-between gap-3 px-3 py-2",children:[r.jsxs("span",{className:"text-sm font-medium",children:[Z.length," selected",J?r.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["(from ",r.jsx("strong",{children:J}),")"]}):r.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["across ",new Set(Z.map(H=>H.workspace)).size," workspaces"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>L(!0),className:"shell-action bg-foreground text-background hover:opacity-90",children:"Promote to assignment"}),r.jsx("button",{type:"button",onClick:I,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,W.length===0?r.jsx(ct,{title:"No todos",description:"Add your first todo above or use the CLI: syntaur todo add"}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"flex items-center gap-3 px-3 py-1 text-xs text-muted-foreground",children:[r.jsx("input",{type:"checkbox","aria-label":"Select all visible todos",checked:M,ref:H=>{H&&(H.indeterminate=K)},onChange:ee,className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsxs("span",{children:["Select all in current filter (",W.length,")"]}),r.jsx("span",{className:"text-muted-foreground/60",children:"— shift-click for range select"})]}),r.jsx("div",{className:"space-y-1",children:W.map((H,Q)=>{const ge=Mi(H),Ie=C.has(ge);return r.jsxs("div",{"data-todo-id":H.id,...fe(Q),className:`surface-panel flex items-center gap-3 px-3 py-2 group cursor-pointer hover:bg-foreground/[0.03] transition ${Ie?"ring-1 ring-foreground/20":""}`,onClick:()=>de(H.workspace,H.id,H.status),children:[r.jsx("input",{type:"checkbox","aria-label":`Select todo ${H.id}`,checked:Ie,onChange:()=>{},onClick:Te=>{Te.stopPropagation(),B(H,Q,Te)},className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsx(dx,{status:H.status,onChange:Te=>ye(H.workspace,H.id,Te)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("span",{className:`text-sm ${H.status==="completed"?"line-through text-muted-foreground":"text-foreground"}`,children:H.description}),H.tags.length>0&&r.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:H.tags.map(Te=>`#${Te}`).join(" ")}),H.linkedAssignmentRef?r.jsxs(Ce,{to:kj(H.linkedAssignmentRef),className:"ml-2 inline-flex items-center gap-0.5 rounded-full border border-status-completed-foreground/40 bg-status-completed/30 px-1.5 py-0.5 text-[10px] font-mono text-status-completed-foreground hover:bg-status-completed/50",onClick:Te=>Te.stopPropagation(),children:[r.jsx(Gj,{className:"h-2.5 w-2.5"}),H.linkedAssignmentRef.includes("/")?H.linkedAssignmentRef:`oneoff:${H.linkedAssignmentRef.slice(0,8)}`]}):null]}),r.jsx("span",{className:"text-xs text-muted-foreground/60 font-mono",children:H.workspace!=="_global"&&r.jsx(Ce,{to:`/w/${H.workspace}/todos`,className:"hover:text-foreground transition mr-2",onClick:Te=>Te.stopPropagation(),children:H.workspace})}),w===H.id?r.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[r.jsx(As,{className:"h-3 w-3"})," Copied to clipboard"]}):r.jsxs(r.Fragment,{children:[r.jsxs("button",{className:"text-xs text-muted-foreground/60 font-mono hover:text-foreground transition",onClick:Te=>X(Te,H.id),children:["t:",H.id]}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:Te=>X(Te,H.id),children:r.jsx(Ll,{className:"h-3 w-3"})})]}),r.jsx("button",{onClick:Te=>{Te.stopPropagation(),je(H.workspace,H.id)},className:"text-xs text-muted-foreground/40 hover:text-destructive transition opacity-0 group-hover:opacity-100",children:"delete"})]},`${H.workspace}-${H.id}`)})})]}),r.jsx(fx,{open:T,selectedIds:Z.map(H=>H.id),scope:A,onOpenChange:L,onDone:ue,defaultProject:le,defaultTitle:_,allowOneOff:!0})]})}const Sj=80,Bz={kanban:"Kanban",list:"List",table:"Table"},Uz={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"};function Vz({open:e,onOpenChange:t,workspace:n,initialView:s,onSubmit:i}){const l=!!s,c=qo(),u=Xd(),{data:p}=Ho(),{data:m}=Dd(),[h,x]=f.useState(""),[y,b]=f.useState(Ii.viewMode),[E,k]=f.useState([]),[w,j]=f.useState([]),[C,N]=f.useState([]),[T,L]=f.useState([]),[P,$]=f.useState([]),[F,X]=f.useState([]),[te,D]=f.useState("all"),[W,Z]=f.useState(null),[M,K]=f.useState(""),[J,le]=f.useState(Ii.sortField),[_,G]=f.useState(Ii.sortDirection),[A,B]=f.useState(!1),[ee,I]=f.useState(null);function ue(){b(Ii.viewMode),k([]),j([]),N([]),L([]),$([]),X([]),D("all"),Z(null),K(""),le(Ii.sortField),G(Ii.sortDirection)}f.useEffect(()=>{if(e)if(I(null),B(!1),s){const O=s.config.filters;x(s.name),b(s.config.viewMode),k(Je(O.status)),j(Je(O.priority)),N(Je(O.type)),L(Je(O.project)),$(Je(O.assignee)),X(Je(O.tags)),D(O.activity??"all"),Z(pN(O.dateRange)),K(O.search??""),le(s.config.sortField),G(s.config.sortDirection)}else x(""),ue()},[e,s]);const me=O=>H=>O?O==="_ungrouped"?H.projectWorkspace===null:H.projectWorkspace===O:!0,U=f.useMemo(()=>{const O=Q=>n?n==="_ungrouped"?Q.workspace===null:Q.workspace===n:!0,H=(p??[]).filter(O);return[{value:"__standalone__",label:"No project"},...H.map(Q=>({value:Q.slug,label:Q.title}))]},[p,n]),se=f.useMemo(()=>{const O=new Set,H=me(n);for(const ge of(m==null?void 0:m.assignments)??[])H(ge)&&ge.assignee&&O.add(ge.assignee);const Q=[{value:"__unassigned__",label:"Unassigned"}];for(const ge of Array.from(O).sort())Q.push({value:ge,label:ge});return Q},[m,n]),de=f.useMemo(()=>{const O=new Set,H=me(n);for(const Q of(m==null?void 0:m.assignments)??[])if(H(Q))for(const ge of Q.tags??[])O.add(ge);return Array.from(O).sort().map(Q=>({value:Q,label:Q}))},[m,n]),ye=f.useMemo(()=>c.order.map(O=>({value:O,label:rc(c,O)})),[c]),je=f.useMemo(()=>VF.map(O=>({value:O,label:O[0].toUpperCase()+O.slice(1)})),[]),fe=f.useMemo(()=>u.definitions.map(O=>({value:O.id,label:Yi(u,O.id)})),[u]),Ve=kg.map(O=>({value:O,label:Bz[O]})),pe=h.trim(),Re=pe.length>0&&pe.length<=Sj;return r.jsx(sr,{open:e,onOpenChange:t,children:r.jsx(Wn,{className:"max-w-lg",children:r.jsxs("form",{className:"space-y-4",onSubmit:async O=>{if(O.preventDefault(),!Re||A)return;B(!0),I(null);const H={viewMode:y,filters:{status:E,priority:w,type:C,project:T,assignee:P,tags:F,activity:te,dateRange:ql(W),search:M},sortField:J,sortDirection:_};try{await i(pe,H)}catch(Q){I(Q instanceof Error?Q.message:String(Q)),B(!1)}},children:[r.jsx(Jr,{children:r.jsx(Kn,{children:l?"Edit view":"Create view"})}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("label",{className:"block text-xs font-medium text-muted-foreground",htmlFor:"create-view-name",children:"Name"}),r.jsx("input",{id:"create-view-name",type:"text",value:h,autoFocus:!0,required:!0,maxLength:Sj,onChange:O=>x(O.target.value),placeholder:"View name",className:"w-full rounded-md border border-border/70 bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("span",{className:"block text-xs font-medium text-muted-foreground",children:"View mode"}),r.jsx(Jd,{value:y,onChange:O=>b(O),options:Ve})]}),r.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[r.jsx(ns,{label:"Status",children:r.jsx(Tn,{ariaLabel:"Status filter",className:"w-full",allLabel:"All statuses",options:ye,value:E,onChange:k})}),r.jsx(ns,{label:"Priority",children:r.jsx(Tn,{ariaLabel:"Priority filter",className:"w-full",allLabel:"All priorities",options:je,value:w,onChange:j})}),r.jsx(ns,{label:"Type",children:r.jsx(Tn,{ariaLabel:"Type filter",className:"w-full",allLabel:"All types",options:fe,value:C,onChange:N})}),r.jsx(ns,{label:"Project",children:r.jsx(Tn,{ariaLabel:"Project filter",className:"w-full",allLabel:"All projects",options:U,value:T,onChange:L})}),r.jsx(ns,{label:"Assignee",children:r.jsx(Tn,{ariaLabel:"Assignee filter",className:"w-full",allLabel:"All assignees",options:se,value:P,onChange:$})}),r.jsx(ns,{label:"Tags",children:r.jsx(Tn,{ariaLabel:"Tags filter",className:"w-full",allLabel:"Any tags",options:de,value:F,onChange:X})}),r.jsx(ns,{label:"Activity",children:r.jsxs("select",{value:te,onChange:O=>D(O.target.value),className:"editor-input w-full",children:[r.jsx("option",{value:"all",children:"All activity"}),r.jsx("option",{value:"stale",children:"Stale only"}),r.jsx("option",{value:"fresh",children:"Fresh only"})]})}),r.jsx(ns,{label:"Date range",children:r.jsx(yx,{className:"w-full",value:W,onChange:Z})}),r.jsx(ns,{label:"Search",className:"sm:col-span-2",children:r.jsx("input",{type:"text",value:M,onChange:O=>K(O.target.value),placeholder:"Title / slug / project contains…",className:"editor-input w-full"})}),r.jsx(ns,{label:"Sort by",className:"sm:col-span-2",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx("select",{value:J,onChange:O=>le(O.target.value),className:"editor-input w-full",children:_k.map(O=>r.jsx("option",{value:O,children:Uz[O]},O))}),r.jsx("button",{type:"button",onClick:()=>G(O=>O==="asc"?"desc":"asc"),className:"shell-action shrink-0",title:_==="asc"?"Ascending":"Descending",children:_==="asc"?"Asc":"Desc"})]})})]}),ee?r.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:ee}):null,r.jsxs(Ds,{className:"sm:justify-between",children:[r.jsx("button",{type:"button",onClick:ue,className:"shell-action",disabled:A,children:"Clear all"}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>t(!1),className:"shell-action",disabled:A,children:"Cancel"}),r.jsx("button",{type:"submit",disabled:!Re||A,className:"shell-action bg-foreground text-background hover:opacity-90 disabled:opacity-50",children:A?"Saving…":l?"Save changes":"Create view"})]})]})]})})})}function ns({label:e,className:t,children:n}){return r.jsxs("label",{className:`space-y-1 ${t??""}`,children:[r.jsx("span",{className:"block text-xs font-medium text-muted-foreground",children:e}),n]})}const Hz={kanban:"Kanban",list:"List",table:"Table"};function Nj(){const{workspace:e}=Lt(),{views:t,loading:n}=Cg(),{toast:s,showToast:i,dismissToast:l}=da(),[c,u]=f.useState(null),[p,m]=f.useState(!1),[h,x]=f.useState(!1),[y,b]=f.useState(null);async function E(){if(c){m(!0);try{await tD(c.id),u(null)}catch(N){i(N instanceof Error?N.message:"Failed to delete saved view")}finally{m(!1)}}}async function k(N,T){const{workspace:L,config:P}=sj(T,e??null);try{await sd({name:N,workspace:L,config:P}),x(!1),i(`Created view "${N}"`)}catch($){throw i($ instanceof Error?$.message:"Failed to create saved view"),$}}async function w(N,T,L){const P=t.find(X=>X.id===N.id)??N,$=sj(L,P.workspace).config,F=bx(P.config,$,P.config);try{await zd(N.id,{name:T,config:F}),b(null),i(`Updated view "${T}"`)}catch(X){throw i(X instanceof Error?X.message:"Failed to update saved view"),X}}async function j(N){try{await sd({name:`${N.name} (copy)`,workspace:N.workspace,config:N.config}),i(`Duplicated "${N.name}"`)}catch(T){i(T instanceof Error?T.message:"Failed to duplicate saved view")}}const C=r.jsxs("button",{type:"button",onClick:()=>x(!0),className:"shell-action inline-flex items-center gap-1.5 bg-foreground text-background hover:opacity-90",children:[r.jsx(en,{className:"h-4 w-4"}),"Create view"]});return r.jsxs("div",{className:"space-y-4",children:[r.jsx(P1,{title:"Saved Views",description:"Create a view here, or browse, rename, and apply views captured from any board.",actions:C}),n?r.jsx(ft,{label:"Loading saved views…"}):t.length===0?r.jsx(ct,{title:"No saved views yet",description:"Create your first view here, or capture one from any assignments board.",actions:C}):r.jsx(ze,{children:r.jsx("ul",{className:"divide-y divide-border/60",children:t.map(N=>r.jsx(Wz,{view:N,onRenameError:T=>i(T),onRequestDelete:()=>u(N),onRequestEdit:()=>b(N),onRequestDuplicate:()=>void j(N)},N.id))})}),r.jsx(Vz,{open:h||y!==null,onOpenChange:N=>{N||(x(!1),b(null))},workspace:y?y.workspace:e??null,initialView:y,onSubmit:y?(N,T)=>w(y,N,T):k}),r.jsx(ja,{open:c!==null,title:"Delete saved view?",description:c?`Delete '${c.name}'? Any Overview widgets referencing this view will become empty.`:"",confirmLabel:"Delete",loading:p,destructive:!0,onConfirm:E,onOpenChange:N=>{!N&&!p&&u(null)}}),r.jsx(fa,{toast:s,onDismiss:l})]})}function Wz({view:e,onRenameError:t,onRequestDelete:n,onRequestEdit:s,onRequestDuplicate:i}){const l=$t(),[c,u]=f.useState(!1),[p,m]=f.useState(e.name),[h,x]=f.useState(!1),y=f.useRef(null);f.useEffect(()=>{var j,C;c&&((j=y.current)==null||j.focus(),(C=y.current)==null||C.select())},[c]),f.useEffect(()=>{c||m(e.name)},[e.name,c]);async function b(){const j=p.trim();if(!j||j===e.name){m(e.name),u(!1);return}x(!0);try{await zd(e.id,{name:j}),u(!1)}catch(C){t(C instanceof Error?C.message:"Failed to rename saved view")}finally{x(!1)}}function E(){m(e.name),u(!1)}const k=KF(e.config.filters),w=e.workspace?Sn(e.workspace):null;return r.jsxs("li",{className:"flex flex-wrap items-center gap-3 py-3",children:[r.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[c?r.jsx("input",{ref:y,type:"text",value:p,onChange:j=>m(j.target.value),onBlur:()=>{h||b()},onKeyDown:j=>{j.key==="Enter"?(j.preventDefault(),b()):j.key==="Escape"&&(j.preventDefault(),E())},disabled:h,className:"editor-input max-w-xs text-sm font-semibold","aria-label":"Rename saved view"}):r.jsxs("button",{type:"button",onClick:()=>u(!0),className:"group inline-flex items-center gap-1.5 rounded-md text-left text-sm font-semibold text-foreground hover:text-foreground/80",title:"Click to rename",children:[r.jsx("span",{className:"truncate",children:e.name}),r.jsx(Vo,{className:"h-3 w-3 text-muted-foreground/50 opacity-0 transition group-hover:opacity-100"})]}),r.jsx("span",{className:"inline-flex shrink-0 items-center rounded-full border border-border/70 bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground",children:Hz[e.config.viewMode]}),w?r.jsx("span",{className:"inline-flex shrink-0 items-center rounded-full border border-border/70 bg-muted/60 px-2 py-0.5 text-xs text-muted-foreground",children:w}):null]}),r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:k})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>l(hN(e)),className:"shell-action",children:"Apply"}),r.jsx("button",{type:"button",onClick:s,className:"shell-action",children:"Edit"}),r.jsx("button",{type:"button",onClick:i,className:"shell-action",children:"Duplicate"}),r.jsx("button",{type:"button",onClick:n,className:"shell-action border-destructive/40 text-destructive hover:bg-destructive/10",children:"Delete"})]})]})}function Kz(){return r.jsx(tT,{children:r.jsx(x3,{children:r.jsx(R2,{children:r.jsxs(Ue,{element:r.jsx(M3,{}),children:[r.jsx(Ue,{path:"/",element:r.jsx(v$,{})}),r.jsx(Ue,{path:"/projects",element:r.jsx(Kv,{})}),r.jsx(Ue,{path:"/archive",element:r.jsx(O$,{})}),r.jsx(Ue,{path:"/assignments",element:r.jsx(dj,{})}),r.jsx(Ue,{path:"/assignments/new",element:r.jsx(hj,{})}),r.jsx(Ue,{path:"/assignments/:id",element:r.jsx(g6,{})}),r.jsx(Ue,{path:"/assignments/:id/edit",element:r.jsx(Ym,{})}),r.jsx(Ue,{path:"/assignments/:id/plan/edit",element:r.jsx(Jm,{})}),r.jsx(Ue,{path:"/assignments/:id/scratchpad/edit",element:r.jsx(Xm,{})}),r.jsx(Ue,{path:"/assignments/:id/handoff/edit",element:r.jsx(Qm,{})}),r.jsx(Ue,{path:"/assignments/:id/decision-record/edit",element:r.jsx(Zm,{})}),r.jsx(Ue,{path:"/servers",element:r.jsx(xj,{})}),r.jsx(Ue,{path:"/inventories",element:r.jsx(yj,{})}),r.jsx(Ue,{path:"/usage",element:r.jsx(bj,{})}),r.jsx(Ue,{path:"/agent-sessions",element:r.jsx(vj,{})}),r.jsx(Ue,{path:"/playbooks",element:r.jsx(G6,{})}),r.jsx(Ue,{path:"/playbooks/create",element:r.jsx(J6,{})}),r.jsx(Ue,{path:"/playbooks/:slug",element:r.jsx(Y6,{})}),r.jsx(Ue,{path:"/playbooks/:slug/edit",element:r.jsx(X6,{})}),r.jsx(Ue,{path:"/memories",element:r.jsx(Q6,{})}),r.jsx(Ue,{path:"/memories/new",element:r.jsx(ez,{})}),r.jsx(Ue,{path:"/projects/:slug/memories/:itemSlug",element:r.jsx(Z6,{})}),r.jsx(Ue,{path:"/projects/:slug/memories/:itemSlug/edit",element:r.jsx(tz,{})}),r.jsx(Ue,{path:"/resources",element:r.jsx(nz,{})}),r.jsx(Ue,{path:"/resources/new",element:r.jsx(sz,{})}),r.jsx(Ue,{path:"/projects/:slug/resources/:itemSlug",element:r.jsx(rz,{})}),r.jsx(Ue,{path:"/projects/:slug/resources/:itemSlug/edit",element:r.jsx(oz,{})}),r.jsx(Ue,{path:"/todos",element:r.jsx(zz,{})}),r.jsx(Ue,{path:"/views",element:r.jsx(Nj,{})}),r.jsx(Ue,{path:"/help",element:r.jsx(j$,{})}),r.jsx(Ue,{path:"/settings",element:r.jsx(Fz,{})}),r.jsx(Ue,{path:"/create/project",element:r.jsx(pj,{})}),r.jsx(Ue,{path:"/projects/:slug",element:r.jsx(ij,{})}),r.jsx(Ue,{path:"/projects/:slug/edit",element:r.jsx(gj,{})}),r.jsx(Ue,{path:"/projects/:slug/create/assignment",element:r.jsx(mj,{})}),r.jsx(Ue,{path:"/projects/:slug/assignments/:aslug",element:r.jsx(lj,{})}),r.jsx(Ue,{path:"/projects/:slug/assignments/:aslug/edit",element:r.jsx(Ym,{})}),r.jsx(Ue,{path:"/projects/:slug/assignments/:aslug/plan/edit",element:r.jsx(Jm,{})}),r.jsx(Ue,{path:"/projects/:slug/assignments/:aslug/scratchpad/edit",element:r.jsx(Xm,{})}),r.jsx(Ue,{path:"/projects/:slug/assignments/:aslug/handoff/edit",element:r.jsx(Qm,{})}),r.jsx(Ue,{path:"/projects/:slug/assignments/:aslug/decision-record/edit",element:r.jsx(Zm,{})}),r.jsx(Ue,{path:"/w/:workspace/projects",element:r.jsx(Kv,{})}),r.jsx(Ue,{path:"/w/:workspace/assignments",element:r.jsx(dj,{})}),r.jsx(Ue,{path:"/w/:workspace/assignments/new",element:r.jsx(hj,{})}),r.jsx(Ue,{path:"/w/:workspace/servers",element:r.jsx(xj,{})}),r.jsx(Ue,{path:"/w/:workspace/inventories",element:r.jsx(yj,{})}),r.jsx(Ue,{path:"/w/:workspace/usage",element:r.jsx(bj,{})}),r.jsx(Ue,{path:"/w/:workspace/agent-sessions",element:r.jsx(vj,{})}),r.jsx(Ue,{path:"/w/:workspace/todos",element:r.jsx(RF,{})}),r.jsx(Ue,{path:"/w/:workspace/views",element:r.jsx(Nj,{})}),r.jsx(Ue,{path:"/w/:workspace/create/project",element:r.jsx(pj,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug",element:r.jsx(ij,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/edit",element:r.jsx(gj,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/create/assignment",element:r.jsx(mj,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/assignments/:aslug",element:r.jsx(lj,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/assignments/:aslug/edit",element:r.jsx(Ym,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/assignments/:aslug/plan/edit",element:r.jsx(Jm,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/assignments/:aslug/scratchpad/edit",element:r.jsx(Xm,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/assignments/:aslug/handoff/edit",element:r.jsx(Qm,{})}),r.jsx(Ue,{path:"/w/:workspace/projects/:slug/assignments/:aslug/decision-record/edit",element:r.jsx(Zm,{})})]})})})})}LP();RE.createRoot(document.getElementById("root")).render(r.jsx(f.StrictMode,{children:r.jsx(IP,{children:r.jsx(Kz,{})})}));export{cL as _,Gz as a,jd as g};
|