syntaur 0.20.0 → 0.23.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/.claude-plugin/plugin.json +2 -1
- package/dashboard/dist/assets/{_basePickBy-CFyquBjL.js → _basePickBy-CN0iXrRl.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-S9hlXGZI.js → _baseUniq-f5KgmPS-.js} +1 -1
- package/dashboard/dist/assets/{arc-DNRWeoWH.js → arc-Is_GQHDi.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-BujnKgOd.js → architectureDiagram-2XIMDMQ5-GnMoIbkq.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-DOaDmG_o.js → blockDiagram-WCTKOSBZ-C6FJCqER.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-BeBwVhQx.js → c4Diagram-IC4MRINW-CbzB6xiI.js} +1 -1
- package/dashboard/dist/assets/channel-I1qzkKSE.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-CtzM4Epf.js → chunk-4BX2VUAB-DfVhtiVZ.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-D2cd1TFn.js → chunk-55IACEB6-yDuI8WJG.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-DAqRATzJ.js → chunk-FMBD7UC4-ClMCd4y0.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-CIEi981s.js → chunk-JSJVCQXG-x0Ds2VxI.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-BMv4Xwdm.js → chunk-KX2RTZJC-BtLBfEbM.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-BKTm5ctg.js → chunk-NQ4KR5QH-BR_YJ2O0.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-DjmLZcpF.js → chunk-QZHKN3VN-CpJrMBfa.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-CphX8dKS.js → chunk-WL4C6EOR-COlZCEcU.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-Br3zoueH.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-Br3zoueH.js +1 -0
- package/dashboard/dist/assets/clone-BNiIx-eM.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-BZ-8TY36.js → cose-bilkent-S5V4N54A-Be49cOHu.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-Bx5whsTp.js → dagre-KLK3FWXG-kMJYOzRh.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-BVOQiv2e.js → diagram-E7M64L7V-16A5Ru0f.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-D7bQBDL_.js → diagram-IFDJBPK2-BcnW30go.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-CwO6aafO.js → diagram-P4PSJMXO-H00u_5yZ.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-DCNz82wG.js → erDiagram-INFDFZHY-DLJRqyow.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-Dq6yNscM.js → flowDiagram-PKNHOUZH-CMNpPp6k.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-B2xtuK0X.js → ganttDiagram-A5KZAMGK-CM1TPA1M.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-D8mNkQd3.js → gitGraphDiagram-K3NZZRJ6-CaZU57JT.js} +1 -1
- package/dashboard/dist/assets/{graph-DMbUUtaR.js → graph-E2a2RZr0.js} +1 -1
- package/dashboard/dist/assets/index-3X9xvPGn.css +1 -0
- package/dashboard/dist/assets/index-87em5uVQ.js +550 -0
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-BsrDYNxL.js → infoDiagram-LFFYTUFH-DNNTGL3j.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-DlUJjWQM.js → ishikawaDiagram-PHBUUO56-CDOwhxyG.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-DBbVdCE_.js → journeyDiagram-4ABVD52K-DfktCUGL.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-Cuv3IHJ_.js → kanban-definition-K7BYSVSG-Cef-JH0v.js} +1 -1
- package/dashboard/dist/assets/{layout-CgL4rycu.js → layout-DX6aMfnc.js} +1 -1
- package/dashboard/dist/assets/{linear-CgnhFMi4.js → linear-VHsqclP8.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-C3eCFd8P.js → mermaid.core-SHnQ4DTm.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-Bsm6cGkL.js → mindmap-definition-YRQLILUH-B6rPgI2_.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-DBRLfMtc.js → pieDiagram-SKSYHLDU-FeFYwJd1.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-CES4NNws.js → quadrantDiagram-337W2JSQ-C8ToaX6X.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-B0cUyFW2.js → requirementDiagram-Z7DCOOCP-DcQFgBUh.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-LVaVg6wF.js → sankeyDiagram-WA2Y5GQK-tg-fe8h0.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-BISSySYI.js → sequenceDiagram-2WXFIKYE-DvK0Qr3p.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-rdMNHAXE.js → stateDiagram-RAJIS63D-CA0uNmJC.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-CiCui2CK.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-fVRyntnZ.js → timeline-definition-YZTLITO2-BvSG2mgT.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-ECgEamZF.js → treemap-KZPCXAKY-DKSXIxeb.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-DkL5XCcJ.js → vennDiagram-LZ73GAT5-DbftUvFP.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-DSQCD2gS.js → xychartDiagram-JWTSCODW-DewVggKf.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/index.js +350 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/platforms/claude-code/.claude-plugin/plugin.json +2 -1
- package/platforms/claude-code/skills/views/SKILL.md +140 -0
- package/platforms/codex/skills/views/SKILL.md +140 -0
- package/skills/views/SKILL.md +140 -0
- package/dashboard/dist/assets/channel-yUe8n53Y.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-C0f25bKl.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-C0f25bKl.js +0 -1
- package/dashboard/dist/assets/clone-D-aj2eAK.js +0 -1
- package/dashboard/dist/assets/index-BlikGvSd.js +0 -550
- package/dashboard/dist/assets/index-CsyJIOqR.css +0 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-ti7j33kD.js +0 -1
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
var OE=Object.defineProperty;var IE=(e,t,n)=>t in e?OE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Bb=(e,t,n)=>IE(e,typeof t!="symbol"?t+"":t,n);function _E(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 lB(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 Xp={exports:{}},ol={},Qp={exports:{}},mt={};/**
|
|
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 Ub;function ME(){if(Ub)return mt;Ub=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(){}},N=Object.assign,j={};function w(B,Z,I){this.props=B,this.context=Z,this.refs=j,this.updater=I||b}w.prototype.isReactComponent={},w.prototype.setState=function(B,Z){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,Z,"setState")},w.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function k(){}k.prototype=w.prototype;function E(B,Z,I){this.props=B,this.context=Z,this.refs=j,this.updater=I||b}var C=E.prototype=new k;C.constructor=E,N(C,w.prototype),C.isPureReactComponent=!0;var P=Array.isArray,$=Object.prototype.hasOwnProperty,T={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function _(B,Z,I){var ue,he={},V=null,oe=null;if(Z!=null)for(ue in Z.ref!==void 0&&(oe=Z.ref),Z.key!==void 0&&(V=""+Z.key),Z)$.call(Z,ue)&&!D.hasOwnProperty(ue)&&(he[ue]=Z[ue]);var de=arguments.length-2;if(de===1)he.children=I;else if(1<de){for(var ye=Array(de),je=0;je<de;je++)ye[je]=arguments[je+2];he.children=ye}if(B&&B.defaultProps)for(ue in de=B.defaultProps,de)he[ue]===void 0&&(he[ue]=de[ue]);return{$$typeof:e,type:B,key:V,ref:oe,props:he,_owner:T.current}}function Y(B,Z){return{$$typeof:e,type:B.type,key:Z,ref:B.ref,props:B.props,_owner:B._owner}}function Q(B){return typeof B=="object"&&B!==null&&B.$$typeof===e}function L(B){var Z={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(I){return Z[I]})}var W=/\/+/g;function te(B,Z){return typeof B=="object"&&B!==null&&B.key!=null?L(""+B.key):Z.toString(36)}function F(B,Z,I,ue,he){var V=typeof B;(V==="undefined"||V==="boolean")&&(B=null);var oe=!1;if(B===null)oe=!0;else switch(V){case"string":case"number":oe=!0;break;case"object":switch(B.$$typeof){case e:case t:oe=!0}}if(oe)return oe=B,he=he(oe),B=ue===""?"."+te(oe,0):ue,P(he)?(I="",B!=null&&(I=B.replace(W,"$&/")+"/"),F(he,Z,I,"",function(je){return je})):he!=null&&(Q(he)&&(he=Y(he,I+(!he.key||oe&&oe.key===he.key?"":(""+he.key).replace(W,"$&/")+"/")+B)),Z.push(he)),1;if(oe=0,ue=ue===""?".":ue+":",P(B))for(var de=0;de<B.length;de++){V=B[de];var ye=ue+te(V,de);oe+=F(V,Z,I,ye,he)}else if(ye=y(B),typeof ye=="function")for(B=ye.call(B),de=0;!(V=B.next()).done;)V=V.value,ye=ue+te(V,de++),oe+=F(V,Z,I,ye,he);else if(V==="object")throw Z=String(B),Error("Objects are not valid as a React child (found: "+(Z==="[object Object]"?"object with keys {"+Object.keys(B).join(", ")+"}":Z)+"). If you meant to render a collection of children, use an array instead.");return oe}function H(B,Z,I){if(B==null)return B;var ue=[],he=0;return F(B,ue,"","",function(V){return Z.call(I,V,he++)}),ue}function X(B){if(B._status===-1){var Z=B._result;Z=Z(),Z.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=Z)}if(B._status===1)return B._result.default;throw B._result}var le={current:null},O={transition:null},K={ReactCurrentDispatcher:le,ReactCurrentBatchConfig:O,ReactCurrentOwner:T};function A(){throw Error("act(...) is not supported in production builds of React.")}return mt.Children={map:H,forEach:function(B,Z,I){H(B,function(){Z.apply(this,arguments)},I)},count:function(B){var Z=0;return H(B,function(){Z++}),Z},toArray:function(B){return H(B,function(Z){return Z})||[]},only:function(B){if(!Q(B))throw Error("React.Children.only expected to receive a single React element child.");return B}},mt.Component=w,mt.Fragment=n,mt.Profiler=i,mt.PureComponent=E,mt.StrictMode=s,mt.Suspense=p,mt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=K,mt.act=A,mt.cloneElement=function(B,Z,I){if(B==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+B+".");var ue=N({},B.props),he=B.key,V=B.ref,oe=B._owner;if(Z!=null){if(Z.ref!==void 0&&(V=Z.ref,oe=T.current),Z.key!==void 0&&(he=""+Z.key),B.type&&B.type.defaultProps)var de=B.type.defaultProps;for(ye in Z)$.call(Z,ye)&&!D.hasOwnProperty(ye)&&(ue[ye]=Z[ye]===void 0&&de!==void 0?de[ye]:Z[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:he,ref:V,props:ue,_owner:oe}},mt.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},mt.createElement=_,mt.createFactory=function(B){var Z=_.bind(null,B);return Z.type=B,Z},mt.createRef=function(){return{current:null}},mt.forwardRef=function(B){return{$$typeof:u,render:B}},mt.isValidElement=Q,mt.lazy=function(B){return{$$typeof:h,_payload:{_status:-1,_result:B},_init:X}},mt.memo=function(B,Z){return{$$typeof:m,type:B,compare:Z===void 0?null:Z}},mt.startTransition=function(B){var Z=O.transition;O.transition={};try{B()}finally{O.transition=Z}},mt.unstable_act=A,mt.useCallback=function(B,Z){return le.current.useCallback(B,Z)},mt.useContext=function(B){return le.current.useContext(B)},mt.useDebugValue=function(){},mt.useDeferredValue=function(B){return le.current.useDeferredValue(B)},mt.useEffect=function(B,Z){return le.current.useEffect(B,Z)},mt.useId=function(){return le.current.useId()},mt.useImperativeHandle=function(B,Z,I){return le.current.useImperativeHandle(B,Z,I)},mt.useInsertionEffect=function(B,Z){return le.current.useInsertionEffect(B,Z)},mt.useLayoutEffect=function(B,Z){return le.current.useLayoutEffect(B,Z)},mt.useMemo=function(B,Z){return le.current.useMemo(B,Z)},mt.useReducer=function(B,Z,I){return le.current.useReducer(B,Z,I)},mt.useRef=function(B){return le.current.useRef(B)},mt.useState=function(B){return le.current.useState(B)},mt.useSyncExternalStore=function(B,Z,I){return le.current.useSyncExternalStore(B,Z,I)},mt.useTransition=function(){return le.current.useTransition()},mt.version="18.3.1",mt}var Vb;function zh(){return Vb||(Vb=1,Qp.exports=ME()),Qp.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 Hb;function FE(){if(Hb)return ol;Hb=1;var e=zh(),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 ol.Fragment=n,ol.jsx=c,ol.jsxs=c,ol}var Wb;function zE(){return Wb||(Wb=1,Xp.exports=FE()),Xp.exports}var r=zE(),f=zh();const en=jd(f),Tj=_E({__proto__:null,default:en},[f]);var pu={},Zp={exports:{}},tr={},em={exports:{}},tm={};/**
|
|
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 Kb;function BE(){return Kb||(Kb=1,(function(e){function t(O,K){var A=O.length;O.push(K);e:for(;0<A;){var B=A-1>>>1,Z=O[B];if(0<i(Z,K))O[B]=K,O[A]=Z,A=B;else break e}}function n(O){return O.length===0?null:O[0]}function s(O){if(O.length===0)return null;var K=O[0],A=O.pop();if(A!==K){O[0]=A;e:for(var B=0,Z=O.length,I=Z>>>1;B<I;){var ue=2*(B+1)-1,he=O[ue],V=ue+1,oe=O[V];if(0>i(he,A))V<Z&&0>i(oe,he)?(O[B]=oe,O[V]=A,B=V):(O[B]=he,O[ue]=A,B=ue);else if(V<Z&&0>i(oe,A))O[B]=oe,O[V]=A,B=V;else break e}}return K}function i(O,K){var A=O.sortIndex-K.sortIndex;return A!==0?A:O.id-K.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,N=!1,j=!1,w=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(O){for(var K=n(m);K!==null;){if(K.callback===null)s(m);else if(K.startTime<=O)s(m),K.sortIndex=K.expirationTime,t(p,K);else break;K=n(m)}}function P(O){if(j=!1,C(O),!N)if(n(p)!==null)N=!0,X($);else{var K=n(m);K!==null&&le(P,K.startTime-O)}}function $(O,K){N=!1,j&&(j=!1,k(_),_=-1),b=!0;var A=y;try{for(C(K),x=n(p);x!==null&&(!(x.expirationTime>K)||O&&!L());){var B=x.callback;if(typeof B=="function"){x.callback=null,y=x.priorityLevel;var Z=B(x.expirationTime<=K);K=e.unstable_now(),typeof Z=="function"?x.callback=Z:x===n(p)&&s(p),C(K)}else s(p);x=n(p)}if(x!==null)var I=!0;else{var ue=n(m);ue!==null&&le(P,ue.startTime-K),I=!1}return I}finally{x=null,y=A,b=!1}}var T=!1,D=null,_=-1,Y=5,Q=-1;function L(){return!(e.unstable_now()-Q<Y)}function W(){if(D!==null){var O=e.unstable_now();Q=O;var K=!0;try{K=D(!0,O)}finally{K?te():(T=!1,D=null)}}else T=!1}var te;if(typeof E=="function")te=function(){E(W)};else if(typeof MessageChannel<"u"){var F=new MessageChannel,H=F.port2;F.port1.onmessage=W,te=function(){H.postMessage(null)}}else te=function(){w(W,0)};function X(O){D=O,T||(T=!0,te())}function le(O,K){_=w(function(){O(e.unstable_now())},K)}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(O){O.callback=null},e.unstable_continueExecution=function(){N||b||(N=!0,X($))},e.unstable_forceFrameRate=function(O){0>O||125<O?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Y=0<O?Math.floor(1e3/O):5},e.unstable_getCurrentPriorityLevel=function(){return y},e.unstable_getFirstCallbackNode=function(){return n(p)},e.unstable_next=function(O){switch(y){case 1:case 2:case 3:var K=3;break;default:K=y}var A=y;y=K;try{return O()}finally{y=A}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(O,K){switch(O){case 1:case 2:case 3:case 4:case 5:break;default:O=3}var A=y;y=O;try{return K()}finally{y=A}},e.unstable_scheduleCallback=function(O,K,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,O){case 1:var Z=-1;break;case 2:Z=250;break;case 5:Z=1073741823;break;case 4:Z=1e4;break;default:Z=5e3}return Z=A+Z,O={id:h++,callback:K,priorityLevel:O,startTime:A,expirationTime:Z,sortIndex:-1},A>B?(O.sortIndex=A,t(m,O),n(p)===null&&O===n(m)&&(j?(k(_),_=-1):j=!0,le(P,A-B))):(O.sortIndex=Z,t(p,O),N||b||(N=!0,X($))),O},e.unstable_shouldYield=L,e.unstable_wrapCallback=function(O){var K=y;return function(){var A=y;y=K;try{return O.apply(this,arguments)}finally{y=A}}}})(tm)),tm}var qb;function UE(){return qb||(qb=1,em.exports=BE()),em.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 Gb;function VE(){if(Gb)return tr;Gb=1;var e=zh(),t=UE();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 N(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 j(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 j(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 j(a,1,!1,o[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(o){w[o]=new j(o,2,!1,o.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){w[o]=new j(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 j(o,3,!1,o.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(o){w[o]=new j(o,3,!0,o,null,!1,!1)}),["capture","download"].forEach(function(o){w[o]=new j(o,4,!1,o,null,!1,!1)}),["cols","rows","size","span"].forEach(function(o){w[o]=new j(o,6,!1,o,null,!1,!1)}),["rowSpan","start"].forEach(function(o){w[o]=new j(o,5,!1,o.toLowerCase(),null,!1,!1)});var k=/[\-:]([a-z])/g;function E(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(k,E);w[a]=new j(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(k,E);w[a]=new j(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(k,E);w[a]=new j(a,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(o){w[o]=new j(o,1,!1,o.toLowerCase(),null,!1,!1)}),w.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(o){w[o]=new j(o,1,!1,o.toLowerCase(),null,!0,!0)});function C(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")&&(N(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 P=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,$=Symbol.for("react.element"),T=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),Y=Symbol.for("react.profiler"),Q=Symbol.for("react.provider"),L=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),te=Symbol.for("react.suspense"),F=Symbol.for("react.suspense_list"),H=Symbol.for("react.memo"),X=Symbol.for("react.lazy"),le=Symbol.for("react.offscreen"),O=Symbol.iterator;function K(o){return o===null||typeof o!="object"?null:(o=O&&o[O]||o["@@iterator"],typeof o=="function"?o:null)}var A=Object.assign,B;function Z(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,U=S.length-1;1<=R&&0<=U&&v[R]!==S[U];)U--;for(;1<=R&&0<=U;R--,U--)if(v[R]!==S[U]){if(R!==1||U!==1)do if(R--,U--,0>U||v[R]!==S[U]){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<=U);break}}}finally{I=!1,Error.prepareStackTrace=d}return(o=o?o.displayName||o.name:"")?Z(o):""}function he(o){switch(o.tag){case 5:return Z(o.type);case 16:return Z("Lazy");case 13:return Z("Suspense");case 19:return Z("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 V(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 D:return"Fragment";case T:return"Portal";case Y:return"Profiler";case _:return"StrictMode";case te:return"Suspense";case F:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case L:return(o.displayName||"Context")+".Consumer";case Q: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 H:return a=o.displayName||null,a!==null?a:V(o.type)||"Memo";case X:a=o._payload,o=o._init;try{return V(o(a))}catch{}}return null}function oe(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 V(a);case 8:return a===_?"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 Ye(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 Je(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 ot(o,a){var d=a.checked;return A({},a,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:d??o._wrapperState.initialChecked})}function G(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 De(o,a){a=a.checked,a!=null&&C(o,"checked",a,!1)}function ke(o,a){De(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")?Xe(o,a.type,d):a.hasOwnProperty("defaultValue")&&Xe(o,a.type,de(a.defaultValue)),a.checked==null&&a.defaultChecked!=null&&(o.defaultChecked=!!a.defaultChecked)}function Re(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 Xe(o,a,d){(a!=="number"||Je(o.ownerDocument)!==o)&&(d==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+d&&(o.defaultValue=""+d))}var Ie=Array.isArray;function at(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 Be(o,a){if(a.dangerouslySetInnerHTML!=null)throw Error(n(91));return A({},a,{value:void 0,defaultValue:void 0,children:""+o._wrapperState.initialValue})}function ft(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(Ie(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 be(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 Ne(o){var a=o.textContent;a===o._wrapperState.initialValue&&a!==""&&a!==null&&(o.value=a)}function z(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 ne(o,a){return o==null||o==="http://www.w3.org/1999/xhtml"?z(a):o==="http://www.w3.org/2000/svg"&&a==="foreignObject"?"http://www.w3.org/1999/xhtml":o}var pe,Oe=(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(pe=pe||document.createElement("div"),pe.innerHTML="<svg>"+a.valueOf().toString()+"</svg>",a=pe.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;a.firstChild;)o.appendChild(a.firstChild)}});function ee(o,a){if(a){var d=o.firstChild;if(d&&d===o.lastChild&&d.nodeType===3){d.nodeValue=a;return}}o.textContent=a}var me={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},Me=["Webkit","ms","Moz","O"];Object.keys(me).forEach(function(o){Me.forEach(function(a){a=a+o.charAt(0).toUpperCase()+o.substring(1),me[a]=me[o]})});function it(o,a,d){return a==null||typeof a=="boolean"||a===""?"":d||typeof a!="number"||a===0||me.hasOwnProperty(o)&&me[o]?(""+a).trim():a+"px"}function qe(o,a){o=o.style;for(var d in a)if(a.hasOwnProperty(d)){var g=d.indexOf("--")===0,v=it(d,a[d],g);d==="float"&&(d="cssFloat"),g?o.setProperty(d,v):o[d]=v}}var xt=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 ct(o,a){if(a){if(xt[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 pt(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 nt=null;function Dn(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var Cn=null,xe=null,He=null;function Fe(o){if(o=Ha(o)){if(typeof Cn!="function")throw Error(n(280));var a=o.stateNode;a&&(a=Tc(a),Cn(o.stateNode,o.type,a))}}function Pt(o){xe?He?He.push(o):He=[o]:xe=o}function Ln(){if(xe){var o=xe,a=He;if(He=xe=null,Fe(o),a)for(o=0;o<a.length;o++)Fe(a[o])}}function qt(o,a){return o(a)}function nn(){}var Ht=!1;function Yn(o,a,d){if(Ht)return o(a,d);Ht=!0;try{return qt(o,a,d)}finally{Ht=!1,(xe!==null||He!==null)&&(nn(),Ln())}}function bt(o,a){var d=o.stateNode;if(d===null)return null;var g=Tc(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 vn=!1;if(u)try{var Rt={};Object.defineProperty(Rt,"passive",{get:function(){vn=!0}}),window.addEventListener("test",Rt,Rt),window.removeEventListener("test",Rt,Rt)}catch{vn=!1}function re(o,a,d,g,v,S,R,U,q){var ce=Array.prototype.slice.call(arguments,3);try{a.apply(d,ce)}catch(we){this.onError(we)}}var Ae=!1,Qe=null,Mt=!1,pn=null,Ct={onError:function(o){Ae=!0,Qe=o}};function xf(o,a,d,g,v,S,R,U,q){Ae=!1,Qe=null,re.apply(Ct,arguments)}function ka(o,a,d,g,v,S,R,U,q){if(xf.apply(this,arguments),Ae){if(Ae){var ce=Qe;Ae=!1,Qe=null}else throw Error(n(198));Mt||(Mt=!0,pn=ce)}}function Ir(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 Qo(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 Zo(o){if(Ir(o)!==o)throw Error(n(188))}function Sa(o){var a=o.alternate;if(!a){if(a=Ir(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 Zo(v),o;if(S===g)return Zo(v),a;S=S.sibling}throw Error(n(188))}if(d.return!==g.return)d=v,g=S;else{for(var R=!1,U=v.child;U;){if(U===d){R=!0,d=v,g=S;break}if(U===g){R=!0,g=v,d=S;break}U=U.sibling}if(!R){for(U=S.child;U;){if(U===d){R=!0,d=S,g=v;break}if(U===g){R=!0,g=S,d=v;break}U=U.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 ei(o){return o=Sa(o),o!==null?ti(o):null}function ti(o){if(o.tag===5||o.tag===6)return o;for(o=o.child;o!==null;){var a=ti(o);if(a!==null)return a;o=o.sibling}return null}var ni=t.unstable_scheduleCallback,po=t.unstable_cancelCallback,yf=t.unstable_shouldYield,ri=t.unstable_requestPaint,$t=t.unstable_now,bf=t.unstable_getCurrentPriorityLevel,Na=t.unstable_ImmediatePriority,cc=t.unstable_UserBlockingPriority,Bn=t.unstable_NormalPriority,vf=t.unstable_LowPriority,uc=t.unstable_IdlePriority,si=null,br=null;function wf(o){if(br&&typeof br.onCommitFiberRoot=="function")try{br.onCommitFiberRoot(si,o,void 0,(o.current.flags&128)===128)}catch{}}var kt=Math.clz32?Math.clz32:jf,mo=Math.log,Ca=Math.LN2;function jf(o){return o>>>=0,o===0?32:31-(mo(o)/Ca|0)|0}var oi=64,ho=4194304;function gs(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 go(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 U=R&~v;U!==0?g=gs(U):(S&=R,S!==0&&(g=gs(S)))}else R=d&~v,R!==0?g=gs(R):S!==0&&(g=gs(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-kt(a),v=1<<d,g|=o[d],a&=~v;return g}function xo(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 Ea(o,a){for(var d=o.suspendedLanes,g=o.pingedLanes,v=o.expirationTimes,S=o.pendingLanes;0<S;){var R=31-kt(S),U=1<<R,q=v[R];q===-1?((U&d)===0||(U&g)!==0)&&(v[R]=xo(U,a)):q<=a&&(o.expiredLanes|=U),S&=~U}}function Ta(o){return o=o.pendingLanes&-1073741825,o!==0?o:o&1073741824?1073741824:0}function dc(){var o=oi;return oi<<=1,(oi&4194240)===0&&(oi=64),o}function $n(o){for(var a=[],d=0;31>d;d++)a.push(o);return a}function yo(o,a,d){o.pendingLanes|=a,a!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,a=31-kt(a),o[a]=d}function Pa(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-kt(d),S=1<<v;a[v]=0,g[v]=-1,o[v]=-1,d&=~S}}function Ra(o,a){var d=o.entangledLanes|=a;for(o=o.entanglements;d;){var g=31-kt(d),v=1<<g;v&a|o[g]&a&&(o[g]|=a),d&=~v}}var Et=0;function fc(o){return o&=-o,1<o?4<o?(o&268435455)!==0?16:536870912:4:1}var Qr,M,ie,ge,Le,lt=!1,ht=[],vt=null,an=null,rn=null,wn=new Map,Un=new Map,_r=[],pc="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 bo(o,a){switch(o){case"focusin":case"focusout":vt=null;break;case"dragenter":case"dragleave":an=null;break;case"mouseover":case"mouseout":rn=null;break;case"pointerover":case"pointerout":wn.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":Un.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=Ha(a),a!==null&&M(a)),o):(o.eventSystemFlags|=g,a=o.targetContainers,v!==null&&a.indexOf(v)===-1&&a.push(v),o)}function sC(o,a,d,g,v){switch(a){case"focusin":return vt=vr(vt,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 wn.set(S,vr(wn.get(S)||null,o,a,d,g,v)),!0;case"gotpointercapture":return S=v.pointerId,Un.set(S,vr(Un.get(S)||null,o,a,d,g,v)),!0}return!1}function Nx(o){var a=vo(o.target);if(a!==null){var d=Ir(a);if(d!==null){if(a=d.tag,a===13){if(a=Qo(d),a!==null){o.blockedOn=a,Le(o.priority,function(){ie(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 mc(o){if(o.blockedOn!==null)return!1;for(var a=o.targetContainers;0<a.length;){var d=Sf(o.domEventName,o.eventSystemFlags,a[0],o.nativeEvent);if(d===null){d=o.nativeEvent;var g=new d.constructor(d.type,d);nt=g,d.target.dispatchEvent(g),nt=null}else return a=Ha(d),a!==null&&M(a),o.blockedOn=d,!1;a.shift()}return!0}function Cx(o,a,d){mc(o)&&d.delete(a)}function oC(){lt=!1,vt!==null&&mc(vt)&&(vt=null),an!==null&&mc(an)&&(an=null),rn!==null&&mc(rn)&&(rn=null),wn.forEach(Cx),Un.forEach(Cx)}function Aa(o,a){o.blockedOn===a&&(o.blockedOn=null,lt||(lt=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,oC)))}function Da(o){function a(v){return Aa(v,o)}if(0<ht.length){Aa(ht[0],o);for(var d=1;d<ht.length;d++){var g=ht[d];g.blockedOn===o&&(g.blockedOn=null)}}for(vt!==null&&Aa(vt,o),an!==null&&Aa(an,o),rn!==null&&Aa(rn,o),wn.forEach(a),Un.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);)Nx(d),d.blockedOn===null&&_r.shift()}var ii=P.ReactCurrentBatchConfig,hc=!0;function iC(o,a,d,g){var v=Et,S=ii.transition;ii.transition=null;try{Et=1,kf(o,a,d,g)}finally{Et=v,ii.transition=S}}function aC(o,a,d,g){var v=Et,S=ii.transition;ii.transition=null;try{Et=4,kf(o,a,d,g)}finally{Et=v,ii.transition=S}}function kf(o,a,d,g){if(hc){var v=Sf(o,a,d,g);if(v===null)Bf(o,a,g,gc,d),bo(o,g);else if(sC(v,o,a,d,g))g.stopPropagation();else if(bo(o,g),a&4&&-1<pc.indexOf(o)){for(;v!==null;){var S=Ha(v);if(S!==null&&Qr(S),S=Sf(o,a,d,g),S===null&&Bf(o,a,g,gc,d),S===v)break;v=S}v!==null&&g.stopPropagation()}else Bf(o,a,g,null,d)}}var gc=null;function Sf(o,a,d,g){if(gc=null,o=Dn(g),o=vo(o),o!==null)if(a=Ir(o),a===null)o=null;else if(d=a.tag,d===13){if(o=Qo(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 gc=o,null}function Ex(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(bf()){case Na:return 1;case cc:return 4;case Bn:case vf:return 16;case uc:return 536870912;default:return 16}default:return 16}}var Os=null,Nf=null,xc=null;function Tx(){if(xc)return xc;var o,a=Nf,d=a.length,g,v="value"in Os?Os.value:Os.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 xc=v.slice(o,1<g?1-g:void 0)}function yc(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 bc(){return!0}function Px(){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 U in o)o.hasOwnProperty(U)&&(d=o[U],this[U]=d?d(S):S[U]);return this.isDefaultPrevented=(S.defaultPrevented!=null?S.defaultPrevented:S.returnValue===!1)?bc:Px,this.isPropagationStopped=Px,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=bc)},stopPropagation:function(){var d=this.nativeEvent;d&&(d.stopPropagation?d.stopPropagation():typeof d.cancelBubble!="unknown"&&(d.cancelBubble=!0),this.isPropagationStopped=bc)},persist:function(){},isPersistent:bc}),a}var ai={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(o){return o.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Cf=cr(ai),La=A({},ai,{view:0,detail:0}),lC=cr(La),Ef,Tf,$a,vc=A({},La,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Rf,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"?(Ef=o.screenX-$a.screenX,Tf=o.screenY-$a.screenY):Tf=Ef=0,$a=o),Ef)},movementY:function(o){return"movementY"in o?o.movementY:Tf}}),Rx=cr(vc),cC=A({},vc,{dataTransfer:0}),uC=cr(cC),dC=A({},La,{relatedTarget:0}),Pf=cr(dC),fC=A({},ai,{animationName:0,elapsedTime:0,pseudoElement:0}),pC=cr(fC),mC=A({},ai,{clipboardData:function(o){return"clipboardData"in o?o.clipboardData:window.clipboardData}}),hC=cr(mC),gC=A({},ai,{data:0}),Ax=cr(gC),xC={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},yC={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"},bC={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function vC(o){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(o):(o=bC[o])?!!a[o]:!1}function Rf(){return vC}var wC=A({},La,{key:function(o){if(o.key){var a=xC[o.key]||o.key;if(a!=="Unidentified")return a}return o.type==="keypress"?(o=yc(o),o===13?"Enter":String.fromCharCode(o)):o.type==="keydown"||o.type==="keyup"?yC[o.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Rf,charCode:function(o){return o.type==="keypress"?yc(o):0},keyCode:function(o){return o.type==="keydown"||o.type==="keyup"?o.keyCode:0},which:function(o){return o.type==="keypress"?yc(o):o.type==="keydown"||o.type==="keyup"?o.keyCode:0}}),jC=cr(wC),kC=A({},vc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Dx=cr(kC),SC=A({},La,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Rf}),NC=cr(SC),CC=A({},ai,{propertyName:0,elapsedTime:0,pseudoElement:0}),EC=cr(CC),TC=A({},vc,{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}),PC=cr(TC),RC=[9,13,27,32],Af=u&&"CompositionEvent"in window,Oa=null;u&&"documentMode"in document&&(Oa=document.documentMode);var AC=u&&"TextEvent"in window&&!Oa,Lx=u&&(!Af||Oa&&8<Oa&&11>=Oa),$x=" ",Ox=!1;function Ix(o,a){switch(o){case"keyup":return RC.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _x(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var li=!1;function DC(o,a){switch(o){case"compositionend":return _x(a);case"keypress":return a.which!==32?null:(Ox=!0,$x);case"textInput":return o=a.data,o===$x&&Ox?null:o;default:return null}}function LC(o,a){if(li)return o==="compositionend"||!Af&&Ix(o,a)?(o=Tx(),xc=Nf=Os=null,li=!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 Lx&&a.locale!=="ko"?null:a.data;default:return null}}var $C={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 Mx(o){var a=o&&o.nodeName&&o.nodeName.toLowerCase();return a==="input"?!!$C[o.type]:a==="textarea"}function Fx(o,a,d,g){Pt(g),a=Nc(a,"onChange"),0<a.length&&(d=new Cf("onChange","change",null,d,g),o.push({event:d,listeners:a}))}var Ia=null,_a=null;function OC(o){ry(o,0)}function wc(o){var a=pi(o);if(Ye(a))return o}function IC(o,a){if(o==="change")return a}var zx=!1;if(u){var Df;if(u){var Lf="oninput"in document;if(!Lf){var Bx=document.createElement("div");Bx.setAttribute("oninput","return;"),Lf=typeof Bx.oninput=="function"}Df=Lf}else Df=!1;zx=Df&&(!document.documentMode||9<document.documentMode)}function Ux(){Ia&&(Ia.detachEvent("onpropertychange",Vx),_a=Ia=null)}function Vx(o){if(o.propertyName==="value"&&wc(_a)){var a=[];Fx(a,_a,o,Dn(o)),Yn(OC,a)}}function _C(o,a,d){o==="focusin"?(Ux(),Ia=a,_a=d,Ia.attachEvent("onpropertychange",Vx)):o==="focusout"&&Ux()}function MC(o){if(o==="selectionchange"||o==="keyup"||o==="keydown")return wc(_a)}function FC(o,a){if(o==="click")return wc(a)}function zC(o,a){if(o==="input"||o==="change")return wc(a)}function BC(o,a){return o===a&&(o!==0||1/o===1/a)||o!==o&&a!==a}var Mr=typeof Object.is=="function"?Object.is:BC;function Ma(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 Hx(o){for(;o&&o.firstChild;)o=o.firstChild;return o}function Wx(o,a){var d=Hx(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=Hx(d)}}function Kx(o,a){return o&&a?o===a?!0:o&&o.nodeType===3?!1:a&&a.nodeType===3?Kx(o,a.parentNode):"contains"in o?o.contains(a):o.compareDocumentPosition?!!(o.compareDocumentPosition(a)&16):!1:!1}function qx(){for(var o=window,a=Je();a instanceof o.HTMLIFrameElement;){try{var d=typeof a.contentWindow.location.href=="string"}catch{d=!1}if(d)o=a.contentWindow;else break;a=Je(o.document)}return a}function $f(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 UC(o){var a=qx(),d=o.focusedElem,g=o.selectionRange;if(a!==d&&d&&d.ownerDocument&&Kx(d.ownerDocument.documentElement,d)){if(g!==null&&$f(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=Wx(d,S);var R=Wx(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 VC=u&&"documentMode"in document&&11>=document.documentMode,ci=null,Of=null,Fa=null,If=!1;function Gx(o,a,d){var g=d.window===d?d.document:d.nodeType===9?d:d.ownerDocument;If||ci==null||ci!==Je(g)||(g=ci,"selectionStart"in g&&$f(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}),Fa&&Ma(Fa,g)||(Fa=g,g=Nc(Of,"onSelect"),0<g.length&&(a=new Cf("onSelect","select",null,a,d),o.push({event:a,listeners:g}),a.target=ci)))}function jc(o,a){var d={};return d[o.toLowerCase()]=a.toLowerCase(),d["Webkit"+o]="webkit"+a,d["Moz"+o]="moz"+a,d}var ui={animationend:jc("Animation","AnimationEnd"),animationiteration:jc("Animation","AnimationIteration"),animationstart:jc("Animation","AnimationStart"),transitionend:jc("Transition","TransitionEnd")},_f={},Yx={};u&&(Yx=document.createElement("div").style,"AnimationEvent"in window||(delete ui.animationend.animation,delete ui.animationiteration.animation,delete ui.animationstart.animation),"TransitionEvent"in window||delete ui.transitionend.transition);function kc(o){if(_f[o])return _f[o];if(!ui[o])return o;var a=ui[o],d;for(d in a)if(a.hasOwnProperty(d)&&d in Yx)return _f[o]=a[d];return o}var Jx=kc("animationend"),Xx=kc("animationiteration"),Qx=kc("animationstart"),Zx=kc("transitionend"),ey=new Map,ty="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 Is(o,a){ey.set(o,a),l(a,[o])}for(var Mf=0;Mf<ty.length;Mf++){var Ff=ty[Mf],HC=Ff.toLowerCase(),WC=Ff[0].toUpperCase()+Ff.slice(1);Is(HC,"on"+WC)}Is(Jx,"onAnimationEnd"),Is(Xx,"onAnimationIteration"),Is(Qx,"onAnimationStart"),Is("dblclick","onDoubleClick"),Is("focusin","onFocus"),Is("focusout","onBlur"),Is(Zx,"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 za="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(" "),KC=new Set("cancel close invalid load scroll toggle".split(" ").concat(za));function ny(o,a,d){var g=o.type||"unknown-event";o.currentTarget=d,ka(g,a,void 0,o),o.currentTarget=null}function ry(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 U=g[R],q=U.instance,ce=U.currentTarget;if(U=U.listener,q!==S&&v.isPropagationStopped())break e;ny(v,U,ce),S=q}else for(R=0;R<g.length;R++){if(U=g[R],q=U.instance,ce=U.currentTarget,U=U.listener,q!==S&&v.isPropagationStopped())break e;ny(v,U,ce),S=q}}}if(Mt)throw o=pn,Mt=!1,pn=null,o}function Ft(o,a){var d=a[qf];d===void 0&&(d=a[qf]=new Set);var g=o+"__bubble";d.has(g)||(sy(a,o,2,!1),d.add(g))}function zf(o,a,d){var g=0;a&&(g|=4),sy(d,o,g,a)}var Sc="_reactListening"+Math.random().toString(36).slice(2);function Ba(o){if(!o[Sc]){o[Sc]=!0,s.forEach(function(d){d!=="selectionchange"&&(KC.has(d)||zf(d,!1,o),zf(d,!0,o))});var a=o.nodeType===9?o:o.ownerDocument;a===null||a[Sc]||(a[Sc]=!0,zf("selectionchange",!1,a))}}function sy(o,a,d,g){switch(Ex(a)){case 1:var v=iC;break;case 4:v=aC;break;default:v=kf}d=v.bind(null,a,d,o),v=void 0,!vn||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 Bf(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 U=g.stateNode.containerInfo;if(U===v||U.nodeType===8&&U.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(;U!==null;){if(R=vo(U),R===null)return;if(q=R.tag,q===5||q===6){g=S=R;continue e}U=U.parentNode}}g=g.return}Yn(function(){var ce=S,we=Dn(d),Se=[];e:{var ve=ey.get(o);if(ve!==void 0){var _e=Cf,Ue=o;switch(o){case"keypress":if(yc(d)===0)break e;case"keydown":case"keyup":_e=jC;break;case"focusin":Ue="focus",_e=Pf;break;case"focusout":Ue="blur",_e=Pf;break;case"beforeblur":case"afterblur":_e=Pf;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":_e=Rx;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":_e=uC;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":_e=NC;break;case Jx:case Xx:case Qx:_e=pC;break;case Zx:_e=EC;break;case"scroll":_e=lC;break;case"wheel":_e=PC;break;case"copy":case"cut":case"paste":_e=hC;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":_e=Dx}var Ke=(a&4)!==0,sn=!Ke&&o==="scroll",se=Ke?ve!==null?ve+"Capture":null:ve;Ke=[];for(var J=ce,ae;J!==null;){ae=J;var Te=ae.stateNode;if(ae.tag===5&&Te!==null&&(ae=Te,se!==null&&(Te=bt(J,se),Te!=null&&Ke.push(Ua(J,Te,ae)))),sn)break;J=J.return}0<Ke.length&&(ve=new _e(ve,Ue,null,d,we),Se.push({event:ve,listeners:Ke}))}}if((a&7)===0){e:{if(ve=o==="mouseover"||o==="pointerover",_e=o==="mouseout"||o==="pointerout",ve&&d!==nt&&(Ue=d.relatedTarget||d.fromElement)&&(vo(Ue)||Ue[xs]))break e;if((_e||ve)&&(ve=we.window===we?we:(ve=we.ownerDocument)?ve.defaultView||ve.parentWindow:window,_e?(Ue=d.relatedTarget||d.toElement,_e=ce,Ue=Ue?vo(Ue):null,Ue!==null&&(sn=Ir(Ue),Ue!==sn||Ue.tag!==5&&Ue.tag!==6)&&(Ue=null)):(_e=null,Ue=ce),_e!==Ue)){if(Ke=Rx,Te="onMouseLeave",se="onMouseEnter",J="mouse",(o==="pointerout"||o==="pointerover")&&(Ke=Dx,Te="onPointerLeave",se="onPointerEnter",J="pointer"),sn=_e==null?ve:pi(_e),ae=Ue==null?ve:pi(Ue),ve=new Ke(Te,J+"leave",_e,d,we),ve.target=sn,ve.relatedTarget=ae,Te=null,vo(we)===ce&&(Ke=new Ke(se,J+"enter",Ue,d,we),Ke.target=ae,Ke.relatedTarget=sn,Te=Ke),sn=Te,_e&&Ue)t:{for(Ke=_e,se=Ue,J=0,ae=Ke;ae;ae=di(ae))J++;for(ae=0,Te=se;Te;Te=di(Te))ae++;for(;0<J-ae;)Ke=di(Ke),J--;for(;0<ae-J;)se=di(se),ae--;for(;J--;){if(Ke===se||se!==null&&Ke===se.alternate)break t;Ke=di(Ke),se=di(se)}Ke=null}else Ke=null;_e!==null&&oy(Se,ve,_e,Ke,!1),Ue!==null&&sn!==null&&oy(Se,sn,Ue,Ke,!0)}}e:{if(ve=ce?pi(ce):window,_e=ve.nodeName&&ve.nodeName.toLowerCase(),_e==="select"||_e==="input"&&ve.type==="file")var Ge=IC;else if(Mx(ve))if(zx)Ge=zC;else{Ge=MC;var Ze=_C}else(_e=ve.nodeName)&&_e.toLowerCase()==="input"&&(ve.type==="checkbox"||ve.type==="radio")&&(Ge=FC);if(Ge&&(Ge=Ge(o,ce))){Fx(Se,Ge,d,we);break e}Ze&&Ze(o,ve,ce),o==="focusout"&&(Ze=ve._wrapperState)&&Ze.controlled&&ve.type==="number"&&Xe(ve,"number",ve.value)}switch(Ze=ce?pi(ce):window,o){case"focusin":(Mx(Ze)||Ze.contentEditable==="true")&&(ci=Ze,Of=ce,Fa=null);break;case"focusout":Fa=Of=ci=null;break;case"mousedown":If=!0;break;case"contextmenu":case"mouseup":case"dragend":If=!1,Gx(Se,d,we);break;case"selectionchange":if(VC)break;case"keydown":case"keyup":Gx(Se,d,we)}var et;if(Af)e:{switch(o){case"compositionstart":var rt="onCompositionStart";break e;case"compositionend":rt="onCompositionEnd";break e;case"compositionupdate":rt="onCompositionUpdate";break e}rt=void 0}else li?Ix(o,d)&&(rt="onCompositionEnd"):o==="keydown"&&d.keyCode===229&&(rt="onCompositionStart");rt&&(Lx&&d.locale!=="ko"&&(li||rt!=="onCompositionStart"?rt==="onCompositionEnd"&&li&&(et=Tx()):(Os=we,Nf="value"in Os?Os.value:Os.textContent,li=!0)),Ze=Nc(ce,rt),0<Ze.length&&(rt=new Ax(rt,o,null,d,we),Se.push({event:rt,listeners:Ze}),et?rt.data=et:(et=_x(d),et!==null&&(rt.data=et)))),(et=AC?DC(o,d):LC(o,d))&&(ce=Nc(ce,"onBeforeInput"),0<ce.length&&(we=new Ax("onBeforeInput","beforeinput",null,d,we),Se.push({event:we,listeners:ce}),we.data=et))}ry(Se,a)})}function Ua(o,a,d){return{instance:o,listener:a,currentTarget:d}}function Nc(o,a){for(var d=a+"Capture",g=[];o!==null;){var v=o,S=v.stateNode;v.tag===5&&S!==null&&(v=S,S=bt(o,d),S!=null&&g.unshift(Ua(o,S,v)),S=bt(o,a),S!=null&&g.push(Ua(o,S,v))),o=o.return}return g}function di(o){if(o===null)return null;do o=o.return;while(o&&o.tag!==5);return o||null}function oy(o,a,d,g,v){for(var S=a._reactName,R=[];d!==null&&d!==g;){var U=d,q=U.alternate,ce=U.stateNode;if(q!==null&&q===g)break;U.tag===5&&ce!==null&&(U=ce,v?(q=bt(d,S),q!=null&&R.unshift(Ua(d,q,U))):v||(q=bt(d,S),q!=null&&R.push(Ua(d,q,U)))),d=d.return}R.length!==0&&o.push({event:a,listeners:R})}var qC=/\r\n?/g,GC=/\u0000|\uFFFD/g;function iy(o){return(typeof o=="string"?o:""+o).replace(qC,`
|
|
38
|
+
`).replace(GC,"")}function Cc(o,a,d){if(a=iy(a),iy(o)!==a&&d)throw Error(n(425))}function Ec(){}var Uf=null,Vf=null;function Hf(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 Wf=typeof setTimeout=="function"?setTimeout:void 0,YC=typeof clearTimeout=="function"?clearTimeout:void 0,ay=typeof Promise=="function"?Promise:void 0,JC=typeof queueMicrotask=="function"?queueMicrotask:typeof ay<"u"?function(o){return ay.resolve(null).then(o).catch(XC)}:Wf;function XC(o){setTimeout(function(){throw o})}function Kf(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),Da(a);return}g--}else d!=="$"&&d!=="$?"&&d!=="$!"||g++;d=v}while(d);Da(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 ly(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 fi=Math.random().toString(36).slice(2),Zr="__reactFiber$"+fi,Va="__reactProps$"+fi,xs="__reactContainer$"+fi,qf="__reactEvents$"+fi,QC="__reactListeners$"+fi,ZC="__reactHandles$"+fi;function vo(o){var a=o[Zr];if(a)return a;for(var d=o.parentNode;d;){if(a=d[xs]||d[Zr]){if(d=a.alternate,a.child!==null||d!==null&&d.child!==null)for(o=ly(o);o!==null;){if(d=o[Zr])return d;o=ly(o)}return a}o=d,d=o.parentNode}return null}function Ha(o){return o=o[Zr]||o[xs],!o||o.tag!==5&&o.tag!==6&&o.tag!==13&&o.tag!==3?null:o}function pi(o){if(o.tag===5||o.tag===6)return o.stateNode;throw Error(n(33))}function Tc(o){return o[Va]||null}var Gf=[],mi=-1;function Ms(o){return{current:o}}function zt(o){0>mi||(o.current=Gf[mi],Gf[mi]=null,mi--)}function Ot(o,a){mi++,Gf[mi]=o.current,o.current=a}var Fs={},On=Ms(Fs),Jn=Ms(!1),wo=Fs;function hi(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 Xn(o){return o=o.childContextTypes,o!=null}function Pc(){zt(Jn),zt(On)}function cy(o,a,d){if(On.current!==Fs)throw Error(n(168));Ot(On,a),Ot(Jn,d)}function uy(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,oe(o)||"Unknown",v));return A({},d,g)}function Rc(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Fs,wo=On.current,Ot(On,o),Ot(Jn,Jn.current),!0}function dy(o,a,d){var g=o.stateNode;if(!g)throw Error(n(169));d?(o=uy(o,a,wo),g.__reactInternalMemoizedMergedChildContext=o,zt(Jn),zt(On),Ot(On,o)):zt(Jn),Ot(Jn,d)}var ys=null,Ac=!1,Yf=!1;function fy(o){ys===null?ys=[o]:ys.push(o)}function eE(o){Ac=!0,fy(o)}function zs(){if(!Yf&&ys!==null){Yf=!0;var o=0,a=Et;try{var d=ys;for(Et=1;o<d.length;o++){var g=d[o];do g=g(!0);while(g!==null)}ys=null,Ac=!1}catch(v){throw ys!==null&&(ys=ys.slice(o+1)),ni(Na,zs),v}finally{Et=a,Yf=!1}}return null}var gi=[],xi=0,Dc=null,Lc=0,wr=[],jr=0,jo=null,bs=1,vs="";function ko(o,a){gi[xi++]=Lc,gi[xi++]=Dc,Dc=o,Lc=a}function py(o,a,d){wr[jr++]=bs,wr[jr++]=vs,wr[jr++]=jo,jo=o;var g=bs;o=vs;var v=32-kt(g)-1;g&=~(1<<v),d+=1;var S=32-kt(a)+v;if(30<S){var R=v-v%5;S=(g&(1<<R)-1).toString(32),g>>=R,v-=R,bs=1<<32-kt(a)+v|d<<v|g,vs=S+o}else bs=1<<S|d<<v|g,vs=o}function Jf(o){o.return!==null&&(ko(o,1),py(o,1,0))}function Xf(o){for(;o===Dc;)Dc=gi[--xi],gi[xi]=null,Lc=gi[--xi],gi[xi]=null;for(;o===jo;)jo=wr[--jr],wr[jr]=null,vs=wr[--jr],wr[jr]=null,bs=wr[--jr],wr[jr]=null}var ur=null,dr=null,Wt=!1,Fr=null;function my(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 hy(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=jo!==null?{id:bs,overflow:vs}: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 Qf(o){return(o.mode&1)!==0&&(o.flags&128)===0}function Zf(o){if(Wt){var a=dr;if(a){var d=a;if(!hy(o,a)){if(Qf(o))throw Error(n(418));a=_s(d.nextSibling);var g=ur;a&&hy(o,a)?my(g,d):(o.flags=o.flags&-4097|2,Wt=!1,ur=o)}}else{if(Qf(o))throw Error(n(418));o.flags=o.flags&-4097|2,Wt=!1,ur=o}}}function gy(o){for(o=o.return;o!==null&&o.tag!==5&&o.tag!==3&&o.tag!==13;)o=o.return;ur=o}function $c(o){if(o!==ur)return!1;if(!Wt)return gy(o),Wt=!0,!1;var a;if((a=o.tag!==3)&&!(a=o.tag!==5)&&(a=o.type,a=a!=="head"&&a!=="body"&&!Hf(o.type,o.memoizedProps)),a&&(a=dr)){if(Qf(o))throw xy(),Error(n(418));for(;a;)my(o,a),a=_s(a.nextSibling)}if(gy(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 xy(){for(var o=dr;o;)o=_s(o.nextSibling)}function yi(){dr=ur=null,Wt=!1}function ep(o){Fr===null?Fr=[o]:Fr.push(o)}var tE=P.ReactCurrentBatchConfig;function Wa(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 U=v.refs;R===null?delete U[S]:U[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 Oc(o,a){throw o=Object.prototype.toString.call(a),Error(n(31,o==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":o))}function yy(o){var a=o._init;return a(o._payload)}function by(o){function a(se,J){if(o){var ae=se.deletions;ae===null?(se.deletions=[J],se.flags|=16):ae.push(J)}}function d(se,J){if(!o)return null;for(;J!==null;)a(se,J),J=J.sibling;return null}function g(se,J){for(se=new Map;J!==null;)J.key!==null?se.set(J.key,J):se.set(J.index,J),J=J.sibling;return se}function v(se,J){return se=Gs(se,J),se.index=0,se.sibling=null,se}function S(se,J,ae){return se.index=ae,o?(ae=se.alternate,ae!==null?(ae=ae.index,ae<J?(se.flags|=2,J):ae):(se.flags|=2,J)):(se.flags|=1048576,J)}function R(se){return o&&se.alternate===null&&(se.flags|=2),se}function U(se,J,ae,Te){return J===null||J.tag!==6?(J=Wp(ae,se.mode,Te),J.return=se,J):(J=v(J,ae),J.return=se,J)}function q(se,J,ae,Te){var Ge=ae.type;return Ge===D?we(se,J,ae.props.children,Te,ae.key):J!==null&&(J.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===X&&yy(Ge)===J.type)?(Te=v(J,ae.props),Te.ref=Wa(se,J,ae),Te.return=se,Te):(Te=ou(ae.type,ae.key,ae.props,null,se.mode,Te),Te.ref=Wa(se,J,ae),Te.return=se,Te)}function ce(se,J,ae,Te){return J===null||J.tag!==4||J.stateNode.containerInfo!==ae.containerInfo||J.stateNode.implementation!==ae.implementation?(J=Kp(ae,se.mode,Te),J.return=se,J):(J=v(J,ae.children||[]),J.return=se,J)}function we(se,J,ae,Te,Ge){return J===null||J.tag!==7?(J=Ao(ae,se.mode,Te,Ge),J.return=se,J):(J=v(J,ae),J.return=se,J)}function Se(se,J,ae){if(typeof J=="string"&&J!==""||typeof J=="number")return J=Wp(""+J,se.mode,ae),J.return=se,J;if(typeof J=="object"&&J!==null){switch(J.$$typeof){case $:return ae=ou(J.type,J.key,J.props,null,se.mode,ae),ae.ref=Wa(se,null,J),ae.return=se,ae;case T:return J=Kp(J,se.mode,ae),J.return=se,J;case X:var Te=J._init;return Se(se,Te(J._payload),ae)}if(Ie(J)||K(J))return J=Ao(J,se.mode,ae,null),J.return=se,J;Oc(se,J)}return null}function ve(se,J,ae,Te){var Ge=J!==null?J.key:null;if(typeof ae=="string"&&ae!==""||typeof ae=="number")return Ge!==null?null:U(se,J,""+ae,Te);if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case $:return ae.key===Ge?q(se,J,ae,Te):null;case T:return ae.key===Ge?ce(se,J,ae,Te):null;case X:return Ge=ae._init,ve(se,J,Ge(ae._payload),Te)}if(Ie(ae)||K(ae))return Ge!==null?null:we(se,J,ae,Te,null);Oc(se,ae)}return null}function _e(se,J,ae,Te,Ge){if(typeof Te=="string"&&Te!==""||typeof Te=="number")return se=se.get(ae)||null,U(J,se,""+Te,Ge);if(typeof Te=="object"&&Te!==null){switch(Te.$$typeof){case $:return se=se.get(Te.key===null?ae:Te.key)||null,q(J,se,Te,Ge);case T:return se=se.get(Te.key===null?ae:Te.key)||null,ce(J,se,Te,Ge);case X:var Ze=Te._init;return _e(se,J,ae,Ze(Te._payload),Ge)}if(Ie(Te)||K(Te))return se=se.get(ae)||null,we(J,se,Te,Ge,null);Oc(J,Te)}return null}function Ue(se,J,ae,Te){for(var Ge=null,Ze=null,et=J,rt=J=0,Sn=null;et!==null&&rt<ae.length;rt++){et.index>rt?(Sn=et,et=null):Sn=et.sibling;var St=ve(se,et,ae[rt],Te);if(St===null){et===null&&(et=Sn);break}o&&et&&St.alternate===null&&a(se,et),J=S(St,J,rt),Ze===null?Ge=St:Ze.sibling=St,Ze=St,et=Sn}if(rt===ae.length)return d(se,et),Wt&&ko(se,rt),Ge;if(et===null){for(;rt<ae.length;rt++)et=Se(se,ae[rt],Te),et!==null&&(J=S(et,J,rt),Ze===null?Ge=et:Ze.sibling=et,Ze=et);return Wt&&ko(se,rt),Ge}for(et=g(se,et);rt<ae.length;rt++)Sn=_e(et,se,rt,ae[rt],Te),Sn!==null&&(o&&Sn.alternate!==null&&et.delete(Sn.key===null?rt:Sn.key),J=S(Sn,J,rt),Ze===null?Ge=Sn:Ze.sibling=Sn,Ze=Sn);return o&&et.forEach(function(Ys){return a(se,Ys)}),Wt&&ko(se,rt),Ge}function Ke(se,J,ae,Te){var Ge=K(ae);if(typeof Ge!="function")throw Error(n(150));if(ae=Ge.call(ae),ae==null)throw Error(n(151));for(var Ze=Ge=null,et=J,rt=J=0,Sn=null,St=ae.next();et!==null&&!St.done;rt++,St=ae.next()){et.index>rt?(Sn=et,et=null):Sn=et.sibling;var Ys=ve(se,et,St.value,Te);if(Ys===null){et===null&&(et=Sn);break}o&&et&&Ys.alternate===null&&a(se,et),J=S(Ys,J,rt),Ze===null?Ge=Ys:Ze.sibling=Ys,Ze=Ys,et=Sn}if(St.done)return d(se,et),Wt&&ko(se,rt),Ge;if(et===null){for(;!St.done;rt++,St=ae.next())St=Se(se,St.value,Te),St!==null&&(J=S(St,J,rt),Ze===null?Ge=St:Ze.sibling=St,Ze=St);return Wt&&ko(se,rt),Ge}for(et=g(se,et);!St.done;rt++,St=ae.next())St=_e(et,se,rt,St.value,Te),St!==null&&(o&&St.alternate!==null&&et.delete(St.key===null?rt:St.key),J=S(St,J,rt),Ze===null?Ge=St:Ze.sibling=St,Ze=St);return o&&et.forEach(function($E){return a(se,$E)}),Wt&&ko(se,rt),Ge}function sn(se,J,ae,Te){if(typeof ae=="object"&&ae!==null&&ae.type===D&&ae.key===null&&(ae=ae.props.children),typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case $:e:{for(var Ge=ae.key,Ze=J;Ze!==null;){if(Ze.key===Ge){if(Ge=ae.type,Ge===D){if(Ze.tag===7){d(se,Ze.sibling),J=v(Ze,ae.props.children),J.return=se,se=J;break e}}else if(Ze.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===X&&yy(Ge)===Ze.type){d(se,Ze.sibling),J=v(Ze,ae.props),J.ref=Wa(se,Ze,ae),J.return=se,se=J;break e}d(se,Ze);break}else a(se,Ze);Ze=Ze.sibling}ae.type===D?(J=Ao(ae.props.children,se.mode,Te,ae.key),J.return=se,se=J):(Te=ou(ae.type,ae.key,ae.props,null,se.mode,Te),Te.ref=Wa(se,J,ae),Te.return=se,se=Te)}return R(se);case T:e:{for(Ze=ae.key;J!==null;){if(J.key===Ze)if(J.tag===4&&J.stateNode.containerInfo===ae.containerInfo&&J.stateNode.implementation===ae.implementation){d(se,J.sibling),J=v(J,ae.children||[]),J.return=se,se=J;break e}else{d(se,J);break}else a(se,J);J=J.sibling}J=Kp(ae,se.mode,Te),J.return=se,se=J}return R(se);case X:return Ze=ae._init,sn(se,J,Ze(ae._payload),Te)}if(Ie(ae))return Ue(se,J,ae,Te);if(K(ae))return Ke(se,J,ae,Te);Oc(se,ae)}return typeof ae=="string"&&ae!==""||typeof ae=="number"?(ae=""+ae,J!==null&&J.tag===6?(d(se,J.sibling),J=v(J,ae),J.return=se,se=J):(d(se,J),J=Wp(ae,se.mode,Te),J.return=se,se=J),R(se)):d(se,J)}return sn}var bi=by(!0),vy=by(!1),Ic=Ms(null),_c=null,vi=null,tp=null;function np(){tp=vi=_c=null}function rp(o){var a=Ic.current;zt(Ic),o._currentValue=a}function sp(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 wi(o,a){_c=o,tp=vi=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&a)!==0&&(Qn=!0),o.firstContext=null)}function kr(o){var a=o._currentValue;if(tp!==o)if(o={context:o,memoizedValue:a,next:null},vi===null){if(_c===null)throw Error(n(308));vi=o,_c.dependencies={lanes:0,firstContext:o}}else vi=vi.next=o;return a}var So=null;function op(o){So===null?So=[o]:So.push(o)}function wy(o,a,d,g){var v=a.interleaved;return v===null?(d.next=d,op(a)):(d.next=v.next,v.next=d),a.interleaved=d,ws(o,g)}function ws(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 ip(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jy(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 js(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,(wt&2)!==0){var v=g.pending;return v===null?a.next=a:(a.next=v.next,v.next=a),g.pending=a,ws(o,d)}return v=g.interleaved,v===null?(a.next=a,op(g)):(a.next=v.next,v.next=a),g.interleaved=a,ws(o,d)}function Mc(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,Ra(o,d)}}function ky(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 Fc(o,a,d,g){var v=o.updateQueue;Bs=!1;var S=v.firstBaseUpdate,R=v.lastBaseUpdate,U=v.shared.pending;if(U!==null){v.shared.pending=null;var q=U,ce=q.next;q.next=null,R===null?S=ce:R.next=ce,R=q;var we=o.alternate;we!==null&&(we=we.updateQueue,U=we.lastBaseUpdate,U!==R&&(U===null?we.firstBaseUpdate=ce:U.next=ce,we.lastBaseUpdate=q))}if(S!==null){var Se=v.baseState;R=0,we=ce=q=null,U=S;do{var ve=U.lane,_e=U.eventTime;if((g&ve)===ve){we!==null&&(we=we.next={eventTime:_e,lane:0,tag:U.tag,payload:U.payload,callback:U.callback,next:null});e:{var Ue=o,Ke=U;switch(ve=a,_e=d,Ke.tag){case 1:if(Ue=Ke.payload,typeof Ue=="function"){Se=Ue.call(_e,Se,ve);break e}Se=Ue;break e;case 3:Ue.flags=Ue.flags&-65537|128;case 0:if(Ue=Ke.payload,ve=typeof Ue=="function"?Ue.call(_e,Se,ve):Ue,ve==null)break e;Se=A({},Se,ve);break e;case 2:Bs=!0}}U.callback!==null&&U.lane!==0&&(o.flags|=64,ve=v.effects,ve===null?v.effects=[U]:ve.push(U))}else _e={eventTime:_e,lane:ve,tag:U.tag,payload:U.payload,callback:U.callback,next:null},we===null?(ce=we=_e,q=Se):we=we.next=_e,R|=ve;if(U=U.next,U===null){if(U=v.shared.pending,U===null)break;ve=U,U=ve.next,ve.next=null,v.lastBaseUpdate=ve,v.shared.pending=null}}while(!0);if(we===null&&(q=Se),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);Eo|=R,o.lanes=R,o.memoizedState=Se}}function Sy(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 Ka={},es=Ms(Ka),qa=Ms(Ka),Ga=Ms(Ka);function No(o){if(o===Ka)throw Error(n(174));return o}function ap(o,a){switch(Ot(Ga,a),Ot(qa,o),Ot(es,Ka),o=a.nodeType,o){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:ne(null,"");break;default:o=o===8?a.parentNode:a,a=o.namespaceURI||null,o=o.tagName,a=ne(a,o)}zt(es),Ot(es,a)}function ji(){zt(es),zt(qa),zt(Ga)}function Ny(o){No(Ga.current);var a=No(es.current),d=ne(a,o.type);a!==d&&(Ot(qa,o),Ot(es,d))}function lp(o){qa.current===o&&(zt(es),zt(qa))}var Gt=Ms(0);function zc(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 cp=[];function up(){for(var o=0;o<cp.length;o++)cp[o]._workInProgressVersionPrimary=null;cp.length=0}var Bc=P.ReactCurrentDispatcher,dp=P.ReactCurrentBatchConfig,Co=0,Yt=null,mn=null,jn=null,Uc=!1,Ya=!1,Ja=0,nE=0;function In(){throw Error(n(321))}function fp(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 pp(o,a,d,g,v,S){if(Co=S,Yt=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,Bc.current=o===null||o.memoizedState===null?iE:aE,o=d(g,v),Ya){S=0;do{if(Ya=!1,Ja=0,25<=S)throw Error(n(301));S+=1,jn=mn=null,a.updateQueue=null,Bc.current=lE,o=d(g,v)}while(Ya)}if(Bc.current=Wc,a=mn!==null&&mn.next!==null,Co=0,jn=mn=Yt=null,Uc=!1,a)throw Error(n(300));return o}function mp(){var o=Ja!==0;return Ja=0,o}function ts(){var o={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return jn===null?Yt.memoizedState=jn=o:jn=jn.next=o,jn}function Sr(){if(mn===null){var o=Yt.alternate;o=o!==null?o.memoizedState:null}else o=mn.next;var a=jn===null?Yt.memoizedState:jn.next;if(a!==null)jn=a,mn=o;else{if(o===null)throw Error(n(310));mn=o,o={memoizedState:mn.memoizedState,baseState:mn.baseState,baseQueue:mn.baseQueue,queue:mn.queue,next:null},jn===null?Yt.memoizedState=jn=o:jn=jn.next=o}return jn}function Xa(o,a){return typeof a=="function"?a(o):a}function hp(o){var a=Sr(),d=a.queue;if(d===null)throw Error(n(311));d.lastRenderedReducer=o;var g=mn,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 U=R=null,q=null,ce=S;do{var we=ce.lane;if((Co&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 Se={lane:we,action:ce.action,hasEagerState:ce.hasEagerState,eagerState:ce.eagerState,next:null};q===null?(U=q=Se,R=g):q=q.next=Se,Yt.lanes|=we,Eo|=we}ce=ce.next}while(ce!==null&&ce!==S);q===null?R=g:q.next=U,Mr(g,a.memoizedState)||(Qn=!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,Yt.lanes|=S,Eo|=S,v=v.next;while(v!==o)}else v===null&&(d.lanes=0);return[a.memoizedState,d.dispatch]}function gp(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)||(Qn=!0),a.memoizedState=S,a.baseQueue===null&&(a.baseState=S),d.lastRenderedState=S}return[S,g]}function Cy(){}function Ey(o,a){var d=Yt,g=Sr(),v=a(),S=!Mr(g.memoizedState,v);if(S&&(g.memoizedState=v,Qn=!0),g=g.queue,xp(Ry.bind(null,d,g,o),[o]),g.getSnapshot!==a||S||jn!==null&&jn.memoizedState.tag&1){if(d.flags|=2048,Qa(9,Py.bind(null,d,g,v,a),void 0,null),kn===null)throw Error(n(349));(Co&30)!==0||Ty(d,a,v)}return v}function Ty(o,a,d){o.flags|=16384,o={getSnapshot:a,value:d},a=Yt.updateQueue,a===null?(a={lastEffect:null,stores:null},Yt.updateQueue=a,a.stores=[o]):(d=a.stores,d===null?a.stores=[o]:d.push(o))}function Py(o,a,d,g){a.value=d,a.getSnapshot=g,Ay(a)&&Dy(o)}function Ry(o,a,d){return d(function(){Ay(a)&&Dy(o)})}function Ay(o){var a=o.getSnapshot;o=o.value;try{var d=a();return!Mr(o,d)}catch{return!0}}function Dy(o){var a=ws(o,1);a!==null&&Vr(a,o,1,-1)}function Ly(o){var a=ts();return typeof o=="function"&&(o=o()),a.memoizedState=a.baseState=o,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Xa,lastRenderedState:o},a.queue=o,o=o.dispatch=oE.bind(null,Yt,o),[a.memoizedState,o]}function Qa(o,a,d,g){return o={tag:o,create:a,destroy:d,deps:g,next:null},a=Yt.updateQueue,a===null?(a={lastEffect:null,stores:null},Yt.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 Vc(o,a,d,g){var v=ts();Yt.flags|=o,v.memoizedState=Qa(1|a,d,void 0,g===void 0?null:g)}function Hc(o,a,d,g){var v=Sr();g=g===void 0?null:g;var S=void 0;if(mn!==null){var R=mn.memoizedState;if(S=R.destroy,g!==null&&fp(g,R.deps)){v.memoizedState=Qa(a,d,S,g);return}}Yt.flags|=o,v.memoizedState=Qa(1|a,d,S,g)}function Oy(o,a){return Vc(8390656,8,o,a)}function xp(o,a){return Hc(2048,8,o,a)}function Iy(o,a){return Hc(4,2,o,a)}function _y(o,a){return Hc(4,4,o,a)}function My(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 Fy(o,a,d){return d=d!=null?d.concat([o]):null,Hc(4,4,My.bind(null,a,o),d)}function yp(){}function zy(o,a){var d=Sr();a=a===void 0?null:a;var g=d.memoizedState;return g!==null&&a!==null&&fp(a,g[1])?g[0]:(d.memoizedState=[o,a],o)}function By(o,a){var d=Sr();a=a===void 0?null:a;var g=d.memoizedState;return g!==null&&a!==null&&fp(a,g[1])?g[0]:(o=o(),d.memoizedState=[o,a],o)}function Uy(o,a,d){return(Co&21)===0?(o.baseState&&(o.baseState=!1,Qn=!0),o.memoizedState=d):(Mr(d,a)||(d=dc(),Yt.lanes|=d,Eo|=d,o.baseState=!0),a)}function rE(o,a){var d=Et;Et=d!==0&&4>d?d:4,o(!0);var g=dp.transition;dp.transition={};try{o(!1),a()}finally{Et=d,dp.transition=g}}function Vy(){return Sr().memoizedState}function sE(o,a,d){var g=Ks(o);if(d={lane:g,action:d,hasEagerState:!1,eagerState:null,next:null},Hy(o))Wy(a,d);else if(d=wy(o,a,d,g),d!==null){var v=Hn();Vr(d,o,g,v),Ky(d,a,g)}}function oE(o,a,d){var g=Ks(o),v={lane:g,action:d,hasEagerState:!1,eagerState:null,next:null};if(Hy(o))Wy(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,U=S(R,d);if(v.hasEagerState=!0,v.eagerState=U,Mr(U,R)){var q=a.interleaved;q===null?(v.next=v,op(a)):(v.next=q.next,q.next=v),a.interleaved=v;return}}catch{}finally{}d=wy(o,a,v,g),d!==null&&(v=Hn(),Vr(d,o,g,v),Ky(d,a,g))}}function Hy(o){var a=o.alternate;return o===Yt||a!==null&&a===Yt}function Wy(o,a){Ya=Uc=!0;var d=o.pending;d===null?a.next=a:(a.next=d.next,d.next=a),o.pending=a}function Ky(o,a,d){if((d&4194240)!==0){var g=a.lanes;g&=o.pendingLanes,d|=g,a.lanes=d,Ra(o,d)}}var Wc={readContext:kr,useCallback:In,useContext:In,useEffect:In,useImperativeHandle:In,useInsertionEffect:In,useLayoutEffect:In,useMemo:In,useReducer:In,useRef:In,useState:In,useDebugValue:In,useDeferredValue:In,useTransition:In,useMutableSource:In,useSyncExternalStore:In,useId:In,unstable_isNewReconciler:!1},iE={readContext:kr,useCallback:function(o,a){return ts().memoizedState=[o,a===void 0?null:a],o},useContext:kr,useEffect:Oy,useImperativeHandle:function(o,a,d){return d=d!=null?d.concat([o]):null,Vc(4194308,4,My.bind(null,a,o),d)},useLayoutEffect:function(o,a){return Vc(4194308,4,o,a)},useInsertionEffect:function(o,a){return Vc(4,2,o,a)},useMemo:function(o,a){var d=ts();return a=a===void 0?null:a,o=o(),d.memoizedState=[o,a],o},useReducer:function(o,a,d){var g=ts();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=sE.bind(null,Yt,o),[g.memoizedState,o]},useRef:function(o){var a=ts();return o={current:o},a.memoizedState=o},useState:Ly,useDebugValue:yp,useDeferredValue:function(o){return ts().memoizedState=o},useTransition:function(){var o=Ly(!1),a=o[0];return o=rE.bind(null,o[1]),ts().memoizedState=o,[a,o]},useMutableSource:function(){},useSyncExternalStore:function(o,a,d){var g=Yt,v=ts();if(Wt){if(d===void 0)throw Error(n(407));d=d()}else{if(d=a(),kn===null)throw Error(n(349));(Co&30)!==0||Ty(g,a,d)}v.memoizedState=d;var S={value:d,getSnapshot:a};return v.queue=S,Oy(Ry.bind(null,g,S,o),[o]),g.flags|=2048,Qa(9,Py.bind(null,g,S,d,a),void 0,null),d},useId:function(){var o=ts(),a=kn.identifierPrefix;if(Wt){var d=vs,g=bs;d=(g&~(1<<32-kt(g)-1)).toString(32)+d,a=":"+a+"R"+d,d=Ja++,0<d&&(a+="H"+d.toString(32)),a+=":"}else d=nE++,a=":"+a+"r"+d.toString(32)+":";return o.memoizedState=a},unstable_isNewReconciler:!1},aE={readContext:kr,useCallback:zy,useContext:kr,useEffect:xp,useImperativeHandle:Fy,useInsertionEffect:Iy,useLayoutEffect:_y,useMemo:By,useReducer:hp,useRef:$y,useState:function(){return hp(Xa)},useDebugValue:yp,useDeferredValue:function(o){var a=Sr();return Uy(a,mn.memoizedState,o)},useTransition:function(){var o=hp(Xa)[0],a=Sr().memoizedState;return[o,a]},useMutableSource:Cy,useSyncExternalStore:Ey,useId:Vy,unstable_isNewReconciler:!1},lE={readContext:kr,useCallback:zy,useContext:kr,useEffect:xp,useImperativeHandle:Fy,useInsertionEffect:Iy,useLayoutEffect:_y,useMemo:By,useReducer:gp,useRef:$y,useState:function(){return gp(Xa)},useDebugValue:yp,useDeferredValue:function(o){var a=Sr();return mn===null?a.memoizedState=o:Uy(a,mn.memoizedState,o)},useTransition:function(){var o=gp(Xa)[0],a=Sr().memoizedState;return[o,a]},useMutableSource:Cy,useSyncExternalStore:Ey,useId:Vy,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 bp(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 Kc={isMounted:function(o){return(o=o._reactInternals)?Ir(o)===o:!1},enqueueSetState:function(o,a,d){o=o._reactInternals;var g=Hn(),v=Ks(o),S=js(g,v);S.payload=a,d!=null&&(S.callback=d),a=Us(o,S,v),a!==null&&(Vr(a,o,v,g),Mc(a,o,v))},enqueueReplaceState:function(o,a,d){o=o._reactInternals;var g=Hn(),v=Ks(o),S=js(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),Mc(a,o,v))},enqueueForceUpdate:function(o,a){o=o._reactInternals;var d=Hn(),g=Ks(o),v=js(d,g);v.tag=2,a!=null&&(v.callback=a),a=Us(o,v,g),a!==null&&(Vr(a,o,g,d),Mc(a,o,g))}};function qy(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?!Ma(d,g)||!Ma(v,S):!0}function Gy(o,a,d){var g=!1,v=Fs,S=a.contextType;return typeof S=="object"&&S!==null?S=kr(S):(v=Xn(a)?wo:On.current,g=a.contextTypes,S=(g=g!=null)?hi(o,v):Fs),a=new a(d,S),o.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Kc,o.stateNode=a,a._reactInternals=o,g&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=v,o.__reactInternalMemoizedMaskedChildContext=S),a}function Yy(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&&Kc.enqueueReplaceState(a,a.state,null)}function vp(o,a,d,g){var v=o.stateNode;v.props=d,v.state=o.memoizedState,v.refs={},ip(o);var S=a.contextType;typeof S=="object"&&S!==null?v.context=kr(S):(S=Xn(a)?wo:On.current,v.context=hi(o,S)),v.state=o.memoizedState,S=a.getDerivedStateFromProps,typeof S=="function"&&(bp(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&&Kc.enqueueReplaceState(v,v.state,null),Fc(o,d,v,g),v.state=o.memoizedState),typeof v.componentDidMount=="function"&&(o.flags|=4194308)}function ki(o,a){try{var d="",g=a;do d+=he(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 wp(o,a,d){return{value:o,source:null,stack:d??null,digest:a??null}}function jp(o,a){try{console.error(a.value)}catch(d){setTimeout(function(){throw d})}}var cE=typeof WeakMap=="function"?WeakMap:Map;function Jy(o,a,d){d=js(-1,d),d.tag=3,d.payload={element:null};var g=a.value;return d.callback=function(){Zc||(Zc=!0,_p=g),jp(o,a)},d}function Xy(o,a,d){d=js(-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(){jp(o,a)}}var S=o.stateNode;return S!==null&&typeof S.componentDidCatch=="function"&&(d.callback=function(){jp(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 Qy(o,a,d){var g=o.pingCache;if(g===null){g=o.pingCache=new cE;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=kE.bind(null,o,a,d),a.then(o,o))}function Zy(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 eb(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=js(-1,1),a.tag=2,Us(d,a,1))),d.lanes|=1),o):(o.flags|=65536,o.lanes=v,o)}var uE=P.ReactCurrentOwner,Qn=!1;function Vn(o,a,d,g){a.child=o===null?vy(a,null,d,g):bi(a,o.child,d,g)}function tb(o,a,d,g,v){d=d.render;var S=a.ref;return wi(a,v),g=pp(o,a,d,g,S,v),d=mp(),o!==null&&!Qn?(a.updateQueue=o.updateQueue,a.flags&=-2053,o.lanes&=~v,ks(o,a,v)):(Wt&&d&&Jf(a),a.flags|=1,Vn(o,a,g,v),a.child)}function nb(o,a,d,g,v){if(o===null){var S=d.type;return typeof S=="function"&&!Hp(S)&&S.defaultProps===void 0&&d.compare===null&&d.defaultProps===void 0?(a.tag=15,a.type=S,rb(o,a,S,g,v)):(o=ou(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:Ma,d(R,g)&&o.ref===a.ref)return ks(o,a,v)}return a.flags|=1,o=Gs(S,g),o.ref=a.ref,o.return=a,a.child=o}function rb(o,a,d,g,v){if(o!==null){var S=o.memoizedProps;if(Ma(S,g)&&o.ref===a.ref)if(Qn=!1,a.pendingProps=g=S,(o.lanes&v)!==0)(o.flags&131072)!==0&&(Qn=!0);else return a.lanes=o.lanes,ks(o,a,v)}return kp(o,a,d,g,v)}function sb(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},Ot(Ni,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,Ot(Ni,fr),fr|=o,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null},g=S!==null?S.baseLanes:d,Ot(Ni,fr),fr|=g}else S!==null?(g=S.baseLanes|d,a.memoizedState=null):g=d,Ot(Ni,fr),fr|=g;return Vn(o,a,v,d),a.child}function ob(o,a){var d=a.ref;(o===null&&d!==null||o!==null&&o.ref!==d)&&(a.flags|=512,a.flags|=2097152)}function kp(o,a,d,g,v){var S=Xn(d)?wo:On.current;return S=hi(a,S),wi(a,v),d=pp(o,a,d,g,S,v),g=mp(),o!==null&&!Qn?(a.updateQueue=o.updateQueue,a.flags&=-2053,o.lanes&=~v,ks(o,a,v)):(Wt&&g&&Jf(a),a.flags|=1,Vn(o,a,d,v),a.child)}function ib(o,a,d,g,v){if(Xn(d)){var S=!0;Rc(a)}else S=!1;if(wi(a,v),a.stateNode===null)Gc(o,a),Gy(a,d,g),vp(a,d,g,v),g=!0;else if(o===null){var R=a.stateNode,U=a.memoizedProps;R.props=U;var q=R.context,ce=d.contextType;typeof ce=="object"&&ce!==null?ce=kr(ce):(ce=Xn(d)?wo:On.current,ce=hi(a,ce));var we=d.getDerivedStateFromProps,Se=typeof we=="function"||typeof R.getSnapshotBeforeUpdate=="function";Se||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||(U!==g||q!==ce)&&Yy(a,R,g,ce),Bs=!1;var ve=a.memoizedState;R.state=ve,Fc(a,g,R,v),q=a.memoizedState,U!==g||ve!==q||Jn.current||Bs?(typeof we=="function"&&(bp(a,d,we,g),q=a.memoizedState),(U=Bs||qy(a,d,U,g,ve,q,ce))?(Se||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=U):(typeof R.componentDidMount=="function"&&(a.flags|=4194308),g=!1)}else{R=a.stateNode,jy(o,a),U=a.memoizedProps,ce=a.type===a.elementType?U:zr(a.type,U),R.props=ce,Se=a.pendingProps,ve=R.context,q=d.contextType,typeof q=="object"&&q!==null?q=kr(q):(q=Xn(d)?wo:On.current,q=hi(a,q));var _e=d.getDerivedStateFromProps;(we=typeof _e=="function"||typeof R.getSnapshotBeforeUpdate=="function")||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||(U!==Se||ve!==q)&&Yy(a,R,g,q),Bs=!1,ve=a.memoizedState,R.state=ve,Fc(a,g,R,v);var Ue=a.memoizedState;U!==Se||ve!==Ue||Jn.current||Bs?(typeof _e=="function"&&(bp(a,d,_e,g),Ue=a.memoizedState),(ce=Bs||qy(a,d,ce,g,ve,Ue,q)||!1)?(we||typeof R.UNSAFE_componentWillUpdate!="function"&&typeof R.componentWillUpdate!="function"||(typeof R.componentWillUpdate=="function"&&R.componentWillUpdate(g,Ue,q),typeof R.UNSAFE_componentWillUpdate=="function"&&R.UNSAFE_componentWillUpdate(g,Ue,q)),typeof R.componentDidUpdate=="function"&&(a.flags|=4),typeof R.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof R.componentDidUpdate!="function"||U===o.memoizedProps&&ve===o.memoizedState||(a.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||U===o.memoizedProps&&ve===o.memoizedState||(a.flags|=1024),a.memoizedProps=g,a.memoizedState=Ue),R.props=g,R.state=Ue,R.context=q,g=ce):(typeof R.componentDidUpdate!="function"||U===o.memoizedProps&&ve===o.memoizedState||(a.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||U===o.memoizedProps&&ve===o.memoizedState||(a.flags|=1024),g=!1)}return Sp(o,a,d,g,S,v)}function Sp(o,a,d,g,v,S){ob(o,a);var R=(a.flags&128)!==0;if(!g&&!R)return v&&dy(a,d,!1),ks(o,a,S);g=a.stateNode,uE.current=a;var U=R&&typeof d.getDerivedStateFromError!="function"?null:g.render();return a.flags|=1,o!==null&&R?(a.child=bi(a,o.child,null,S),a.child=bi(a,null,U,S)):Vn(o,a,U,S),a.memoizedState=g.state,v&&dy(a,d,!0),a.child}function ab(o){var a=o.stateNode;a.pendingContext?cy(o,a.pendingContext,a.pendingContext!==a.context):a.context&&cy(o,a.context,!1),ap(o,a.containerInfo)}function lb(o,a,d,g,v){return yi(),ep(v),a.flags|=256,Vn(o,a,d,g),a.child}var Np={dehydrated:null,treeContext:null,retryLane:0};function Cp(o){return{baseLanes:o,cachePool:null,transitions:null}}function cb(o,a,d){var g=a.pendingProps,v=Gt.current,S=!1,R=(a.flags&128)!==0,U;if((U=R)||(U=o!==null&&o.memoizedState===null?!1:(v&2)!==0),U?(S=!0,a.flags&=-129):(o===null||o.memoizedState!==null)&&(v|=1),Ot(Gt,v&1),o===null)return Zf(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=iu(R,g,0,null),o=Ao(o,g,d,null),S.return=a,o.return=a,S.sibling=o,a.child=S,a.child.memoizedState=Cp(d),a.memoizedState=Np,o):Ep(a,R));if(v=o.memoizedState,v!==null&&(U=v.dehydrated,U!==null))return dE(o,a,R,g,U,v,d);if(S){S=g.fallback,R=a.mode,v=o.child,U=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),U!==null?S=Gs(U,S):(S=Ao(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?Cp(d):{baseLanes:R.baseLanes|d,cachePool:null,transitions:R.transitions},S.memoizedState=R,S.childLanes=o.childLanes&~d,a.memoizedState=Np,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 Ep(o,a){return a=iu({mode:"visible",children:a},o.mode,0,null),a.return=o,o.child=a}function qc(o,a,d,g){return g!==null&&ep(g),bi(a,o.child,null,d),o=Ep(a,a.pendingProps.children),o.flags|=2,a.memoizedState=null,o}function dE(o,a,d,g,v,S,R){if(d)return a.flags&256?(a.flags&=-257,g=wp(Error(n(422))),qc(o,a,R,g)):a.memoizedState!==null?(a.child=o.child,a.flags|=128,null):(S=g.fallback,v=a.mode,g=iu({mode:"visible",children:g.children},v,0,null),S=Ao(S,v,R,null),S.flags|=2,g.return=a,S.return=a,g.sibling=S,a.child=g,(a.mode&1)!==0&&bi(a,o.child,null,R),a.child.memoizedState=Cp(R),a.memoizedState=Np,S);if((a.mode&1)===0)return qc(o,a,R,null);if(v.data==="$!"){if(g=v.nextSibling&&v.nextSibling.dataset,g)var U=g.dgst;return g=U,S=Error(n(419)),g=wp(S,g,void 0),qc(o,a,R,g)}if(U=(R&o.childLanes)!==0,Qn||U){if(g=kn,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,ws(o,v),Vr(g,o,v,-1))}return Vp(),g=wp(Error(n(421))),qc(o,a,R,g)}return v.data==="$?"?(a.flags|=128,a.child=o.child,a=SE.bind(null,o),v._reactRetry=a,null):(o=S.treeContext,dr=_s(v.nextSibling),ur=a,Wt=!0,Fr=null,o!==null&&(wr[jr++]=bs,wr[jr++]=vs,wr[jr++]=jo,bs=o.id,vs=o.overflow,jo=a),a=Ep(a,g.children),a.flags|=4096,a)}function ub(o,a,d){o.lanes|=a;var g=o.alternate;g!==null&&(g.lanes|=a),sp(o.return,a,d)}function Tp(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 db(o,a,d){var g=a.pendingProps,v=g.revealOrder,S=g.tail;if(Vn(o,a,g.children,d),g=Gt.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&&ub(o,d,a);else if(o.tag===19)ub(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(Ot(Gt,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&&zc(o)===null&&(v=d),d=d.sibling;d=v,d===null?(v=a.child,a.child=null):(v=d.sibling,d.sibling=null),Tp(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&&zc(o)===null){a.child=v;break}o=v.sibling,v.sibling=d,d=v,v=o}Tp(a,!0,d,null,S);break;case"together":Tp(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function Gc(o,a){(a.mode&1)===0&&o!==null&&(o.alternate=null,a.alternate=null,a.flags|=2)}function ks(o,a,d){if(o!==null&&(a.dependencies=o.dependencies),Eo|=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 fE(o,a,d){switch(a.tag){case 3:ab(a),yi();break;case 5:Ny(a);break;case 1:Xn(a.type)&&Rc(a);break;case 4:ap(a,a.stateNode.containerInfo);break;case 10:var g=a.type._context,v=a.memoizedProps.value;Ot(Ic,g._currentValue),g._currentValue=v;break;case 13:if(g=a.memoizedState,g!==null)return g.dehydrated!==null?(Ot(Gt,Gt.current&1),a.flags|=128,null):(d&a.child.childLanes)!==0?cb(o,a,d):(Ot(Gt,Gt.current&1),o=ks(o,a,d),o!==null?o.sibling:null);Ot(Gt,Gt.current&1);break;case 19:if(g=(d&a.childLanes)!==0,(o.flags&128)!==0){if(g)return db(o,a,d);a.flags|=128}if(v=a.memoizedState,v!==null&&(v.rendering=null,v.tail=null,v.lastEffect=null),Ot(Gt,Gt.current),g)break;return null;case 22:case 23:return a.lanes=0,sb(o,a,d)}return ks(o,a,d)}var fb,Pp,pb,mb;fb=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}},Pp=function(){},pb=function(o,a,d,g){var v=o.memoizedProps;if(v!==g){o=a.stateNode,No(es.current);var S=null;switch(d){case"input":v=ot(o,v),g=ot(o,g),S=[];break;case"select":v=A({},v,{value:void 0}),g=A({},g,{value:void 0}),S=[];break;case"textarea":v=Be(o,v),g=Be(o,g),S=[];break;default:typeof v.onClick!="function"&&typeof g.onClick=="function"&&(o.onclick=Ec)}ct(d,g);var R;d=null;for(ce in v)if(!g.hasOwnProperty(ce)&&v.hasOwnProperty(ce)&&v[ce]!=null)if(ce==="style"){var U=v[ce];for(R in U)U.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(U=v!=null?v[ce]:void 0,g.hasOwnProperty(ce)&&q!==U&&(q!=null||U!=null))if(ce==="style")if(U){for(R in U)!U.hasOwnProperty(R)||q&&q.hasOwnProperty(R)||(d||(d={}),d[R]="");for(R in q)q.hasOwnProperty(R)&&U[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,U=U?U.__html:void 0,q!=null&&U!==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"&&Ft("scroll",o),S||U===q||(S=[])):(S=S||[]).push(ce,q))}d&&(S=S||[]).push("style",d);var ce=S;(a.updateQueue=ce)&&(a.flags|=4)}},mb=function(o,a,d,g){d!==g&&(a.flags|=4)};function Za(o,a){if(!Wt)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 _n(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 pE(o,a,d){var g=a.pendingProps;switch(Xf(a),a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return _n(a),null;case 1:return Xn(a.type)&&Pc(),_n(a),null;case 3:return g=a.stateNode,ji(),zt(Jn),zt(On),up(),g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null),(o===null||o.child===null)&&($c(a)?a.flags|=4:o===null||o.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,Fr!==null&&(zp(Fr),Fr=null))),Pp(o,a),_n(a),null;case 5:lp(a);var v=No(Ga.current);if(d=a.type,o!==null&&a.stateNode!=null)pb(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 _n(a),null}if(o=No(es.current),$c(a)){g=a.stateNode,d=a.type;var S=a.memoizedProps;switch(g[Zr]=a,g[Va]=S,o=(a.mode&1)!==0,d){case"dialog":Ft("cancel",g),Ft("close",g);break;case"iframe":case"object":case"embed":Ft("load",g);break;case"video":case"audio":for(v=0;v<za.length;v++)Ft(za[v],g);break;case"source":Ft("error",g);break;case"img":case"image":case"link":Ft("error",g),Ft("load",g);break;case"details":Ft("toggle",g);break;case"input":G(g,S),Ft("invalid",g);break;case"select":g._wrapperState={wasMultiple:!!S.multiple},Ft("invalid",g);break;case"textarea":ft(g,S),Ft("invalid",g)}ct(d,S),v=null;for(var R in S)if(S.hasOwnProperty(R)){var U=S[R];R==="children"?typeof U=="string"?g.textContent!==U&&(S.suppressHydrationWarning!==!0&&Cc(g.textContent,U,o),v=["children",U]):typeof U=="number"&&g.textContent!==""+U&&(S.suppressHydrationWarning!==!0&&Cc(g.textContent,U,o),v=["children",""+U]):i.hasOwnProperty(R)&&U!=null&&R==="onScroll"&&Ft("scroll",g)}switch(d){case"input":fe(g),Re(g,S,!0);break;case"textarea":fe(g),Ne(g);break;case"select":case"option":break;default:typeof S.onClick=="function"&&(g.onclick=Ec)}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=z(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[Zr]=a,o[Va]=g,fb(o,a,!1,!1),a.stateNode=o;e:{switch(R=pt(d,g),d){case"dialog":Ft("cancel",o),Ft("close",o),v=g;break;case"iframe":case"object":case"embed":Ft("load",o),v=g;break;case"video":case"audio":for(v=0;v<za.length;v++)Ft(za[v],o);v=g;break;case"source":Ft("error",o),v=g;break;case"img":case"image":case"link":Ft("error",o),Ft("load",o),v=g;break;case"details":Ft("toggle",o),v=g;break;case"input":G(o,g),v=ot(o,g),Ft("invalid",o);break;case"option":v=g;break;case"select":o._wrapperState={wasMultiple:!!g.multiple},v=A({},g,{value:void 0}),Ft("invalid",o);break;case"textarea":ft(o,g),v=Be(o,g),Ft("invalid",o);break;default:v=g}ct(d,v),U=v;for(S in U)if(U.hasOwnProperty(S)){var q=U[S];S==="style"?qe(o,q):S==="dangerouslySetInnerHTML"?(q=q?q.__html:void 0,q!=null&&Oe(o,q)):S==="children"?typeof q=="string"?(d!=="textarea"||q!=="")&&ee(o,q):typeof q=="number"&&ee(o,""+q):S!=="suppressContentEditableWarning"&&S!=="suppressHydrationWarning"&&S!=="autoFocus"&&(i.hasOwnProperty(S)?q!=null&&S==="onScroll"&&Ft("scroll",o):q!=null&&C(o,S,q,R))}switch(d){case"input":fe(o),Re(o,g,!1);break;case"textarea":fe(o),Ne(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?at(o,!!g.multiple,S,!1):g.defaultValue!=null&&at(o,!!g.multiple,g.defaultValue,!0);break;default:typeof v.onClick=="function"&&(o.onclick=Ec)}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 _n(a),null;case 6:if(o&&a.stateNode!=null)mb(o,a,o.memoizedProps,g);else{if(typeof g!="string"&&a.stateNode===null)throw Error(n(166));if(d=No(Ga.current),No(es.current),$c(a)){if(g=a.stateNode,d=a.memoizedProps,g[Zr]=a,(S=g.nodeValue!==d)&&(o=ur,o!==null))switch(o.tag){case 3:Cc(g.nodeValue,d,(o.mode&1)!==0);break;case 5:o.memoizedProps.suppressHydrationWarning!==!0&&Cc(g.nodeValue,d,(o.mode&1)!==0)}S&&(a.flags|=4)}else g=(d.nodeType===9?d:d.ownerDocument).createTextNode(g),g[Zr]=a,a.stateNode=g}return _n(a),null;case 13:if(zt(Gt),g=a.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(Wt&&dr!==null&&(a.mode&1)!==0&&(a.flags&128)===0)xy(),yi(),a.flags|=98560,S=!1;else if(S=$c(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[Zr]=a}else yi(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;_n(a),S=!1}else Fr!==null&&(zp(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||(Gt.current&1)!==0?hn===0&&(hn=3):Vp())),a.updateQueue!==null&&(a.flags|=4),_n(a),null);case 4:return ji(),Pp(o,a),o===null&&Ba(a.stateNode.containerInfo),_n(a),null;case 10:return rp(a.type._context),_n(a),null;case 17:return Xn(a.type)&&Pc(),_n(a),null;case 19:if(zt(Gt),S=a.memoizedState,S===null)return _n(a),null;if(g=(a.flags&128)!==0,R=S.rendering,R===null)if(g)Za(S,!1);else{if(hn!==0||o!==null&&(o.flags&128)!==0)for(o=a.child;o!==null;){if(R=zc(o),R!==null){for(a.flags|=128,Za(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 Ot(Gt,Gt.current&1|2),a.child}o=o.sibling}S.tail!==null&&$t()>Ci&&(a.flags|=128,g=!0,Za(S,!1),a.lanes=4194304)}else{if(!g)if(o=zc(R),o!==null){if(a.flags|=128,g=!0,d=o.updateQueue,d!==null&&(a.updateQueue=d,a.flags|=4),Za(S,!0),S.tail===null&&S.tailMode==="hidden"&&!R.alternate&&!Wt)return _n(a),null}else 2*$t()-S.renderingStartTime>Ci&&d!==1073741824&&(a.flags|=128,g=!0,Za(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=$t(),a.sibling=null,d=Gt.current,Ot(Gt,g?d&1|2:d&1),a):(_n(a),null);case 22:case 23:return Up(),g=a.memoizedState!==null,o!==null&&o.memoizedState!==null!==g&&(a.flags|=8192),g&&(a.mode&1)!==0?(fr&1073741824)!==0&&(_n(a),a.subtreeFlags&6&&(a.flags|=8192)):_n(a),null;case 24:return null;case 25:return null}throw Error(n(156,a.tag))}function mE(o,a){switch(Xf(a),a.tag){case 1:return Xn(a.type)&&Pc(),o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 3:return ji(),zt(Jn),zt(On),up(),o=a.flags,(o&65536)!==0&&(o&128)===0?(a.flags=o&-65537|128,a):null;case 5:return lp(a),null;case 13:if(zt(Gt),o=a.memoizedState,o!==null&&o.dehydrated!==null){if(a.alternate===null)throw Error(n(340));yi()}return o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 19:return zt(Gt),null;case 4:return ji(),null;case 10:return rp(a.type._context),null;case 22:case 23:return Up(),null;case 24:return null;default:return null}}var Yc=!1,Mn=!1,hE=typeof WeakSet=="function"?WeakSet:Set,ze=null;function Si(o,a){var d=o.ref;if(d!==null)if(typeof d=="function")try{d(null)}catch(g){Qt(o,a,g)}else d.current=null}function Rp(o,a,d){try{d()}catch(g){Qt(o,a,g)}}var hb=!1;function gE(o,a){if(Uf=hc,o=qx(),$f(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,U=-1,q=-1,ce=0,we=0,Se=o,ve=null;t:for(;;){for(var _e;Se!==d||v!==0&&Se.nodeType!==3||(U=R+v),Se!==S||g!==0&&Se.nodeType!==3||(q=R+g),Se.nodeType===3&&(R+=Se.nodeValue.length),(_e=Se.firstChild)!==null;)ve=Se,Se=_e;for(;;){if(Se===o)break t;if(ve===d&&++ce===v&&(U=R),ve===S&&++we===g&&(q=R),(_e=Se.nextSibling)!==null)break;Se=ve,ve=Se.parentNode}Se=_e}d=U===-1||q===-1?null:{start:U,end:q}}else d=null}d=d||{start:0,end:0}}else d=null;for(Vf={focusedElem:o,selectionRange:d},hc=!1,ze=a;ze!==null;)if(a=ze,o=a.child,(a.subtreeFlags&1028)!==0&&o!==null)o.return=a,ze=o;else for(;ze!==null;){a=ze;try{var Ue=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(Ue!==null){var Ke=Ue.memoizedProps,sn=Ue.memoizedState,se=a.stateNode,J=se.getSnapshotBeforeUpdate(a.elementType===a.type?Ke:zr(a.type,Ke),sn);se.__reactInternalSnapshotBeforeUpdate=J}break;case 3:var ae=a.stateNode.containerInfo;ae.nodeType===1?ae.textContent="":ae.nodeType===9&&ae.documentElement&&ae.removeChild(ae.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(Te){Qt(a,a.return,Te)}if(o=a.sibling,o!==null){o.return=a.return,ze=o;break}ze=a.return}return Ue=hb,hb=!1,Ue}function el(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&&Rp(a,d,S)}v=v.next}while(v!==g)}}function Jc(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 Ap(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 gb(o){var a=o.alternate;a!==null&&(o.alternate=null,gb(a)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(a=o.stateNode,a!==null&&(delete a[Zr],delete a[Va],delete a[qf],delete a[QC],delete a[ZC])),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 xb(o){return o.tag===5||o.tag===3||o.tag===4}function yb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||xb(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 Dp(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=Ec));else if(g!==4&&(o=o.child,o!==null))for(Dp(o,a,d),o=o.sibling;o!==null;)Dp(o,a,d),o=o.sibling}function Lp(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(Lp(o,a,d),o=o.sibling;o!==null;)Lp(o,a,d),o=o.sibling}var En=null,Br=!1;function Vs(o,a,d){for(d=d.child;d!==null;)bb(o,a,d),d=d.sibling}function bb(o,a,d){if(br&&typeof br.onCommitFiberUnmount=="function")try{br.onCommitFiberUnmount(si,d)}catch{}switch(d.tag){case 5:Mn||Si(d,a);case 6:var g=En,v=Br;En=null,Vs(o,a,d),En=g,Br=v,En!==null&&(Br?(o=En,d=d.stateNode,o.nodeType===8?o.parentNode.removeChild(d):o.removeChild(d)):En.removeChild(d.stateNode));break;case 18:En!==null&&(Br?(o=En,d=d.stateNode,o.nodeType===8?Kf(o.parentNode,d):o.nodeType===1&&Kf(o,d),Da(o)):Kf(En,d.stateNode));break;case 4:g=En,v=Br,En=d.stateNode.containerInfo,Br=!0,Vs(o,a,d),En=g,Br=v;break;case 0:case 11:case 14:case 15:if(!Mn&&(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)&&Rp(d,a,R),v=v.next}while(v!==g)}Vs(o,a,d);break;case 1:if(!Mn&&(Si(d,a),g=d.stateNode,typeof g.componentWillUnmount=="function"))try{g.props=d.memoizedProps,g.state=d.memoizedState,g.componentWillUnmount()}catch(U){Qt(d,a,U)}Vs(o,a,d);break;case 21:Vs(o,a,d);break;case 22:d.mode&1?(Mn=(g=Mn)||d.memoizedState!==null,Vs(o,a,d),Mn=g):Vs(o,a,d);break;default:Vs(o,a,d)}}function vb(o){var a=o.updateQueue;if(a!==null){o.updateQueue=null;var d=o.stateNode;d===null&&(d=o.stateNode=new hE),a.forEach(function(g){var v=NE.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,U=R;e:for(;U!==null;){switch(U.tag){case 5:En=U.stateNode,Br=!1;break e;case 3:En=U.stateNode.containerInfo,Br=!0;break e;case 4:En=U.stateNode.containerInfo,Br=!0;break e}U=U.return}if(En===null)throw Error(n(160));bb(S,R,v),En=null,Br=!1;var q=v.alternate;q!==null&&(q.return=null),v.return=null}catch(ce){Qt(v,a,ce)}}if(a.subtreeFlags&12854)for(a=a.child;a!==null;)wb(a,o),a=a.sibling}function wb(o,a){var d=o.alternate,g=o.flags;switch(o.tag){case 0:case 11:case 14:case 15:if(Ur(a,o),ns(o),g&4){try{el(3,o,o.return),Jc(3,o)}catch(Ke){Qt(o,o.return,Ke)}try{el(5,o,o.return)}catch(Ke){Qt(o,o.return,Ke)}}break;case 1:Ur(a,o),ns(o),g&512&&d!==null&&Si(d,d.return);break;case 5:if(Ur(a,o),ns(o),g&512&&d!==null&&Si(d,d.return),o.flags&32){var v=o.stateNode;try{ee(v,"")}catch(Ke){Qt(o,o.return,Ke)}}if(g&4&&(v=o.stateNode,v!=null)){var S=o.memoizedProps,R=d!==null?d.memoizedProps:S,U=o.type,q=o.updateQueue;if(o.updateQueue=null,q!==null)try{U==="input"&&S.type==="radio"&&S.name!=null&&De(v,S),pt(U,R);var ce=pt(U,S);for(R=0;R<q.length;R+=2){var we=q[R],Se=q[R+1];we==="style"?qe(v,Se):we==="dangerouslySetInnerHTML"?Oe(v,Se):we==="children"?ee(v,Se):C(v,we,Se,ce)}switch(U){case"input":ke(v,S);break;case"textarea":be(v,S);break;case"select":var ve=v._wrapperState.wasMultiple;v._wrapperState.wasMultiple=!!S.multiple;var _e=S.value;_e!=null?at(v,!!S.multiple,_e,!1):ve!==!!S.multiple&&(S.defaultValue!=null?at(v,!!S.multiple,S.defaultValue,!0):at(v,!!S.multiple,S.multiple?[]:"",!1))}v[Va]=S}catch(Ke){Qt(o,o.return,Ke)}}break;case 6:if(Ur(a,o),ns(o),g&4){if(o.stateNode===null)throw Error(n(162));v=o.stateNode,S=o.memoizedProps;try{v.nodeValue=S}catch(Ke){Qt(o,o.return,Ke)}}break;case 3:if(Ur(a,o),ns(o),g&4&&d!==null&&d.memoizedState.isDehydrated)try{Da(a.containerInfo)}catch(Ke){Qt(o,o.return,Ke)}break;case 4:Ur(a,o),ns(o);break;case 13:Ur(a,o),ns(o),v=o.child,v.flags&8192&&(S=v.memoizedState!==null,v.stateNode.isHidden=S,!S||v.alternate!==null&&v.alternate.memoizedState!==null||(Ip=$t())),g&4&&vb(o);break;case 22:if(we=d!==null&&d.memoizedState!==null,o.mode&1?(Mn=(ce=Mn)||we,Ur(a,o),Mn=ce):Ur(a,o),ns(o),g&8192){if(ce=o.memoizedState!==null,(o.stateNode.isHidden=ce)&&!we&&(o.mode&1)!==0)for(ze=o,we=o.child;we!==null;){for(Se=ze=we;ze!==null;){switch(ve=ze,_e=ve.child,ve.tag){case 0:case 11:case 14:case 15:el(4,ve,ve.return);break;case 1:Si(ve,ve.return);var Ue=ve.stateNode;if(typeof Ue.componentWillUnmount=="function"){g=ve,d=ve.return;try{a=g,Ue.props=a.memoizedProps,Ue.state=a.memoizedState,Ue.componentWillUnmount()}catch(Ke){Qt(g,d,Ke)}}break;case 5:Si(ve,ve.return);break;case 22:if(ve.memoizedState!==null){Sb(Se);continue}}_e!==null?(_e.return=ve,ze=_e):Sb(Se)}we=we.sibling}e:for(we=null,Se=o;;){if(Se.tag===5){if(we===null){we=Se;try{v=Se.stateNode,ce?(S=v.style,typeof S.setProperty=="function"?S.setProperty("display","none","important"):S.display="none"):(U=Se.stateNode,q=Se.memoizedProps.style,R=q!=null&&q.hasOwnProperty("display")?q.display:null,U.style.display=it("display",R))}catch(Ke){Qt(o,o.return,Ke)}}}else if(Se.tag===6){if(we===null)try{Se.stateNode.nodeValue=ce?"":Se.memoizedProps}catch(Ke){Qt(o,o.return,Ke)}}else if((Se.tag!==22&&Se.tag!==23||Se.memoizedState===null||Se===o)&&Se.child!==null){Se.child.return=Se,Se=Se.child;continue}if(Se===o)break e;for(;Se.sibling===null;){if(Se.return===null||Se.return===o)break e;we===Se&&(we=null),Se=Se.return}we===Se&&(we=null),Se.sibling.return=Se.return,Se=Se.sibling}}break;case 19:Ur(a,o),ns(o),g&4&&vb(o);break;case 21:break;default:Ur(a,o),ns(o)}}function ns(o){var a=o.flags;if(a&2){try{e:{for(var d=o.return;d!==null;){if(xb(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&&(ee(v,""),g.flags&=-33);var S=yb(o);Lp(o,S,v);break;case 3:case 4:var R=g.stateNode.containerInfo,U=yb(o);Dp(o,U,R);break;default:throw Error(n(161))}}catch(q){Qt(o,o.return,q)}o.flags&=-3}a&4096&&(o.flags&=-4097)}function xE(o,a,d){ze=o,jb(o)}function jb(o,a,d){for(var g=(o.mode&1)!==0;ze!==null;){var v=ze,S=v.child;if(v.tag===22&&g){var R=v.memoizedState!==null||Yc;if(!R){var U=v.alternate,q=U!==null&&U.memoizedState!==null||Mn;U=Yc;var ce=Mn;if(Yc=R,(Mn=q)&&!ce)for(ze=v;ze!==null;)R=ze,q=R.child,R.tag===22&&R.memoizedState!==null?Nb(v):q!==null?(q.return=R,ze=q):Nb(v);for(;S!==null;)ze=S,jb(S),S=S.sibling;ze=v,Yc=U,Mn=ce}kb(o)}else(v.subtreeFlags&8772)!==0&&S!==null?(S.return=v,ze=S):kb(o)}}function kb(o){for(;ze!==null;){var a=ze;if((a.flags&8772)!==0){var d=a.alternate;try{if((a.flags&8772)!==0)switch(a.tag){case 0:case 11:case 15:Mn||Jc(5,a);break;case 1:var g=a.stateNode;if(a.flags&4&&!Mn)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&&Sy(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}Sy(a,R,d)}break;case 5:var U=a.stateNode;if(d===null&&a.flags&4){d=U;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 Se=we.dehydrated;Se!==null&&Da(Se)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}Mn||a.flags&512&&Ap(a)}catch(ve){Qt(a,a.return,ve)}}if(a===o){ze=null;break}if(d=a.sibling,d!==null){d.return=a.return,ze=d;break}ze=a.return}}function Sb(o){for(;ze!==null;){var a=ze;if(a===o){ze=null;break}var d=a.sibling;if(d!==null){d.return=a.return,ze=d;break}ze=a.return}}function Nb(o){for(;ze!==null;){var a=ze;try{switch(a.tag){case 0:case 11:case 15:var d=a.return;try{Jc(4,a)}catch(q){Qt(a,d,q)}break;case 1:var g=a.stateNode;if(typeof g.componentDidMount=="function"){var v=a.return;try{g.componentDidMount()}catch(q){Qt(a,v,q)}}var S=a.return;try{Ap(a)}catch(q){Qt(a,S,q)}break;case 5:var R=a.return;try{Ap(a)}catch(q){Qt(a,R,q)}}}catch(q){Qt(a,a.return,q)}if(a===o){ze=null;break}var U=a.sibling;if(U!==null){U.return=a.return,ze=U;break}ze=a.return}}var yE=Math.ceil,Xc=P.ReactCurrentDispatcher,$p=P.ReactCurrentOwner,Nr=P.ReactCurrentBatchConfig,wt=0,kn=null,ln=null,Tn=0,fr=0,Ni=Ms(0),hn=0,tl=null,Eo=0,Qc=0,Op=0,nl=null,Zn=null,Ip=0,Ci=1/0,Ss=null,Zc=!1,_p=null,Hs=null,eu=!1,Ws=null,tu=0,rl=0,Mp=null,nu=-1,ru=0;function Hn(){return(wt&6)!==0?$t():nu!==-1?nu:nu=$t()}function Ks(o){return(o.mode&1)===0?1:(wt&2)!==0&&Tn!==0?Tn&-Tn:tE.transition!==null?(ru===0&&(ru=dc()),ru):(o=Et,o!==0||(o=window.event,o=o===void 0?16:Ex(o.type)),o)}function Vr(o,a,d,g){if(50<rl)throw rl=0,Mp=null,Error(n(185));yo(o,d,g),((wt&2)===0||o!==kn)&&(o===kn&&((wt&2)===0&&(Qc|=d),hn===4&&qs(o,Tn)),er(o,g),d===1&&wt===0&&(a.mode&1)===0&&(Ci=$t()+500,Ac&&zs()))}function er(o,a){var d=o.callbackNode;Ea(o,a);var g=go(o,o===kn?Tn:0);if(g===0)d!==null&&po(d),o.callbackNode=null,o.callbackPriority=0;else if(a=g&-g,o.callbackPriority!==a){if(d!=null&&po(d),a===1)o.tag===0?eE(Eb.bind(null,o)):fy(Eb.bind(null,o)),JC(function(){(wt&6)===0&&zs()}),d=null;else{switch(fc(g)){case 1:d=Na;break;case 4:d=cc;break;case 16:d=Bn;break;case 536870912:d=uc;break;default:d=Bn}d=Ob(d,Cb.bind(null,o))}o.callbackPriority=a,o.callbackNode=d}}function Cb(o,a){if(nu=-1,ru=0,(wt&6)!==0)throw Error(n(327));var d=o.callbackNode;if(Ei()&&o.callbackNode!==d)return null;var g=go(o,o===kn?Tn:0);if(g===0)return null;if((g&30)!==0||(g&o.expiredLanes)!==0||a)a=su(o,g);else{a=g;var v=wt;wt|=2;var S=Pb();(kn!==o||Tn!==a)&&(Ss=null,Ci=$t()+500,Po(o,a));do try{wE();break}catch(U){Tb(o,U)}while(!0);np(),Xc.current=S,wt=v,ln!==null?a=0:(kn=null,Tn=0,a=hn)}if(a!==0){if(a===2&&(v=Ta(o),v!==0&&(g=v,a=Fp(o,v))),a===1)throw d=tl,Po(o,0),qs(o,g),er(o,$t()),d;if(a===6)qs(o,g);else{if(v=o.current.alternate,(g&30)===0&&!bE(v)&&(a=su(o,g),a===2&&(S=Ta(o),S!==0&&(g=S,a=Fp(o,S))),a===1))throw d=tl,Po(o,0),qs(o,g),er(o,$t()),d;switch(o.finishedWork=v,o.finishedLanes=g,a){case 0:case 1:throw Error(n(345));case 2:Ro(o,Zn,Ss);break;case 3:if(qs(o,g),(g&130023424)===g&&(a=Ip+500-$t(),10<a)){if(go(o,0)!==0)break;if(v=o.suspendedLanes,(v&g)!==g){Hn(),o.pingedLanes|=o.suspendedLanes&v;break}o.timeoutHandle=Wf(Ro.bind(null,o,Zn,Ss),a);break}Ro(o,Zn,Ss);break;case 4:if(qs(o,g),(g&4194240)===g)break;for(a=o.eventTimes,v=-1;0<g;){var R=31-kt(g);S=1<<R,R=a[R],R>v&&(v=R),g&=~S}if(g=v,g=$t()-g,g=(120>g?120:480>g?480:1080>g?1080:1920>g?1920:3e3>g?3e3:4320>g?4320:1960*yE(g/1960))-g,10<g){o.timeoutHandle=Wf(Ro.bind(null,o,Zn,Ss),g);break}Ro(o,Zn,Ss);break;case 5:Ro(o,Zn,Ss);break;default:throw Error(n(329))}}}return er(o,$t()),o.callbackNode===d?Cb.bind(null,o):null}function Fp(o,a){var d=nl;return o.current.memoizedState.isDehydrated&&(Po(o,a).flags|=256),o=su(o,a),o!==2&&(a=Zn,Zn=d,a!==null&&zp(a)),o}function zp(o){Zn===null?Zn=o:Zn.push.apply(Zn,o)}function bE(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&=~Op,a&=~Qc,o.suspendedLanes|=a,o.pingedLanes&=~a,o=o.expirationTimes;0<a;){var d=31-kt(a),g=1<<d;o[d]=-1,a&=~g}}function Eb(o){if((wt&6)!==0)throw Error(n(327));Ei();var a=go(o,0);if((a&1)===0)return er(o,$t()),null;var d=su(o,a);if(o.tag!==0&&d===2){var g=Ta(o);g!==0&&(a=g,d=Fp(o,g))}if(d===1)throw d=tl,Po(o,0),qs(o,a),er(o,$t()),d;if(d===6)throw Error(n(345));return o.finishedWork=o.current.alternate,o.finishedLanes=a,Ro(o,Zn,Ss),er(o,$t()),null}function Bp(o,a){var d=wt;wt|=1;try{return o(a)}finally{wt=d,wt===0&&(Ci=$t()+500,Ac&&zs())}}function To(o){Ws!==null&&Ws.tag===0&&(wt&6)===0&&Ei();var a=wt;wt|=1;var d=Nr.transition,g=Et;try{if(Nr.transition=null,Et=1,o)return o()}finally{Et=g,Nr.transition=d,wt=a,(wt&6)===0&&zs()}}function Up(){fr=Ni.current,zt(Ni)}function Po(o,a){o.finishedWork=null,o.finishedLanes=0;var d=o.timeoutHandle;if(d!==-1&&(o.timeoutHandle=-1,YC(d)),ln!==null)for(d=ln.return;d!==null;){var g=d;switch(Xf(g),g.tag){case 1:g=g.type.childContextTypes,g!=null&&Pc();break;case 3:ji(),zt(Jn),zt(On),up();break;case 5:lp(g);break;case 4:ji();break;case 13:zt(Gt);break;case 19:zt(Gt);break;case 10:rp(g.type._context);break;case 22:case 23:Up()}d=d.return}if(kn=o,ln=o=Gs(o.current,null),Tn=fr=a,hn=0,tl=null,Op=Qc=Eo=0,Zn=nl=null,So!==null){for(a=0;a<So.length;a++)if(d=So[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}So=null}return o}function Tb(o,a){do{var d=ln;try{if(np(),Bc.current=Wc,Uc){for(var g=Yt.memoizedState;g!==null;){var v=g.queue;v!==null&&(v.pending=null),g=g.next}Uc=!1}if(Co=0,jn=mn=Yt=null,Ya=!1,Ja=0,$p.current=null,d===null||d.return===null){hn=1,tl=a,ln=null;break}e:{var S=o,R=d.return,U=d,q=a;if(a=Tn,U.flags|=32768,q!==null&&typeof q=="object"&&typeof q.then=="function"){var ce=q,we=U,Se=we.tag;if((we.mode&1)===0&&(Se===0||Se===11||Se===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 _e=Zy(R);if(_e!==null){_e.flags&=-257,eb(_e,R,U,S,a),_e.mode&1&&Qy(S,ce,a),a=_e,q=ce;var Ue=a.updateQueue;if(Ue===null){var Ke=new Set;Ke.add(q),a.updateQueue=Ke}else Ue.add(q);break e}else{if((a&1)===0){Qy(S,ce,a),Vp();break e}q=Error(n(426))}}else if(Wt&&U.mode&1){var sn=Zy(R);if(sn!==null){(sn.flags&65536)===0&&(sn.flags|=256),eb(sn,R,U,S,a),ep(ki(q,U));break e}}S=q=ki(q,U),hn!==4&&(hn=2),nl===null?nl=[S]:nl.push(S),S=R;do{switch(S.tag){case 3:S.flags|=65536,a&=-a,S.lanes|=a;var se=Jy(S,q,a);ky(S,se);break e;case 1:U=q;var J=S.type,ae=S.stateNode;if((S.flags&128)===0&&(typeof J.getDerivedStateFromError=="function"||ae!==null&&typeof ae.componentDidCatch=="function"&&(Hs===null||!Hs.has(ae)))){S.flags|=65536,a&=-a,S.lanes|=a;var Te=Xy(S,U,a);ky(S,Te);break e}}S=S.return}while(S!==null)}Ab(d)}catch(Ge){a=Ge,ln===d&&d!==null&&(ln=d=d.return);continue}break}while(!0)}function Pb(){var o=Xc.current;return Xc.current=Wc,o===null?Wc:o}function Vp(){(hn===0||hn===3||hn===2)&&(hn=4),kn===null||(Eo&268435455)===0&&(Qc&268435455)===0||qs(kn,Tn)}function su(o,a){var d=wt;wt|=2;var g=Pb();(kn!==o||Tn!==a)&&(Ss=null,Po(o,a));do try{vE();break}catch(v){Tb(o,v)}while(!0);if(np(),wt=d,Xc.current=g,ln!==null)throw Error(n(261));return kn=null,Tn=0,hn}function vE(){for(;ln!==null;)Rb(ln)}function wE(){for(;ln!==null&&!yf();)Rb(ln)}function Rb(o){var a=$b(o.alternate,o,fr);o.memoizedProps=o.pendingProps,a===null?Ab(o):ln=a,$p.current=null}function Ab(o){var a=o;do{var d=a.alternate;if(o=a.return,(a.flags&32768)===0){if(d=pE(d,a,fr),d!==null){ln=d;return}}else{if(d=mE(d,a),d!==null){d.flags&=32767,ln=d;return}if(o!==null)o.flags|=32768,o.subtreeFlags=0,o.deletions=null;else{hn=6,ln=null;return}}if(a=a.sibling,a!==null){ln=a;return}ln=a=o}while(a!==null);hn===0&&(hn=5)}function Ro(o,a,d){var g=Et,v=Nr.transition;try{Nr.transition=null,Et=1,jE(o,a,d,g)}finally{Nr.transition=v,Et=g}return null}function jE(o,a,d,g){do Ei();while(Ws!==null);if((wt&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(Pa(o,S),o===kn&&(ln=kn=null,Tn=0),(d.subtreeFlags&2064)===0&&(d.flags&2064)===0||eu||(eu=!0,Ob(Bn,function(){return Ei(),null})),S=(d.flags&15990)!==0,(d.subtreeFlags&15990)!==0||S){S=Nr.transition,Nr.transition=null;var R=Et;Et=1;var U=wt;wt|=4,$p.current=null,gE(o,d),wb(d,o),UC(Vf),hc=!!Uf,Vf=Uf=null,o.current=d,xE(d),ri(),wt=U,Et=R,Nr.transition=S}else o.current=d;if(eu&&(eu=!1,Ws=o,tu=v),S=o.pendingLanes,S===0&&(Hs=null),wf(d.stateNode),er(o,$t()),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(Zc)throw Zc=!1,o=_p,_p=null,o;return(tu&1)!==0&&o.tag!==0&&Ei(),S=o.pendingLanes,(S&1)!==0?o===Mp?rl++:(rl=0,Mp=o):rl=0,zs(),null}function Ei(){if(Ws!==null){var o=fc(tu),a=Nr.transition,d=Et;try{if(Nr.transition=null,Et=16>o?16:o,Ws===null)var g=!1;else{if(o=Ws,Ws=null,tu=0,(wt&6)!==0)throw Error(n(331));var v=wt;for(wt|=4,ze=o.current;ze!==null;){var S=ze,R=S.child;if((ze.flags&16)!==0){var U=S.deletions;if(U!==null){for(var q=0;q<U.length;q++){var ce=U[q];for(ze=ce;ze!==null;){var we=ze;switch(we.tag){case 0:case 11:case 15:el(8,we,S)}var Se=we.child;if(Se!==null)Se.return=we,ze=Se;else for(;ze!==null;){we=ze;var ve=we.sibling,_e=we.return;if(gb(we),we===ce){ze=null;break}if(ve!==null){ve.return=_e,ze=ve;break}ze=_e}}}var Ue=S.alternate;if(Ue!==null){var Ke=Ue.child;if(Ke!==null){Ue.child=null;do{var sn=Ke.sibling;Ke.sibling=null,Ke=sn}while(Ke!==null)}}ze=S}}if((S.subtreeFlags&2064)!==0&&R!==null)R.return=S,ze=R;else e:for(;ze!==null;){if(S=ze,(S.flags&2048)!==0)switch(S.tag){case 0:case 11:case 15:el(9,S,S.return)}var se=S.sibling;if(se!==null){se.return=S.return,ze=se;break e}ze=S.return}}var J=o.current;for(ze=J;ze!==null;){R=ze;var ae=R.child;if((R.subtreeFlags&2064)!==0&&ae!==null)ae.return=R,ze=ae;else e:for(R=J;ze!==null;){if(U=ze,(U.flags&2048)!==0)try{switch(U.tag){case 0:case 11:case 15:Jc(9,U)}}catch(Ge){Qt(U,U.return,Ge)}if(U===R){ze=null;break e}var Te=U.sibling;if(Te!==null){Te.return=U.return,ze=Te;break e}ze=U.return}}if(wt=v,zs(),br&&typeof br.onPostCommitFiberRoot=="function")try{br.onPostCommitFiberRoot(si,o)}catch{}g=!0}return g}finally{Et=d,Nr.transition=a}}return!1}function Db(o,a,d){a=ki(d,a),a=Jy(o,a,1),o=Us(o,a,1),a=Hn(),o!==null&&(yo(o,1,a),er(o,a))}function Qt(o,a,d){if(o.tag===3)Db(o,o,d);else for(;a!==null;){if(a.tag===3){Db(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=ki(d,o),o=Xy(a,o,1),a=Us(a,o,1),o=Hn(),a!==null&&(yo(a,1,o),er(a,o));break}}a=a.return}}function kE(o,a,d){var g=o.pingCache;g!==null&&g.delete(a),a=Hn(),o.pingedLanes|=o.suspendedLanes&d,kn===o&&(Tn&d)===d&&(hn===4||hn===3&&(Tn&130023424)===Tn&&500>$t()-Ip?Po(o,0):Op|=d),er(o,a)}function Lb(o,a){a===0&&((o.mode&1)===0?a=1:(a=ho,ho<<=1,(ho&130023424)===0&&(ho=4194304)));var d=Hn();o=ws(o,a),o!==null&&(yo(o,a,d),er(o,d))}function SE(o){var a=o.memoizedState,d=0;a!==null&&(d=a.retryLane),Lb(o,d)}function NE(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),Lb(o,d)}var $b;$b=function(o,a,d){if(o!==null)if(o.memoizedProps!==a.pendingProps||Jn.current)Qn=!0;else{if((o.lanes&d)===0&&(a.flags&128)===0)return Qn=!1,fE(o,a,d);Qn=(o.flags&131072)!==0}else Qn=!1,Wt&&(a.flags&1048576)!==0&&py(a,Lc,a.index);switch(a.lanes=0,a.tag){case 2:var g=a.type;Gc(o,a),o=a.pendingProps;var v=hi(a,On.current);wi(a,d),v=pp(null,a,g,o,v,d);var S=mp();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,Xn(g)?(S=!0,Rc(a)):S=!1,a.memoizedState=v.state!==null&&v.state!==void 0?v.state:null,ip(a),v.updater=Kc,a.stateNode=v,v._reactInternals=a,vp(a,g,o,d),a=Sp(null,a,g,!0,S,d)):(a.tag=0,Wt&&S&&Jf(a),Vn(null,a,v,d),a=a.child),a;case 16:g=a.elementType;e:{switch(Gc(o,a),o=a.pendingProps,v=g._init,g=v(g._payload),a.type=g,v=a.tag=EE(g),o=zr(g,o),v){case 0:a=kp(null,a,g,o,d);break e;case 1:a=ib(null,a,g,o,d);break e;case 11:a=tb(null,a,g,o,d);break e;case 14:a=nb(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),kp(o,a,g,v,d);case 1:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),ib(o,a,g,v,d);case 3:e:{if(ab(a),o===null)throw Error(n(387));g=a.pendingProps,S=a.memoizedState,v=S.element,jy(o,a),Fc(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=ki(Error(n(423)),a),a=lb(o,a,g,d,v);break e}else if(g!==v){v=ki(Error(n(424)),a),a=lb(o,a,g,d,v);break e}else for(dr=_s(a.stateNode.containerInfo.firstChild),ur=a,Wt=!0,Fr=null,d=vy(a,null,g,d),a.child=d;d;)d.flags=d.flags&-3|4096,d=d.sibling;else{if(yi(),g===v){a=ks(o,a,d);break e}Vn(o,a,g,d)}a=a.child}return a;case 5:return Ny(a),o===null&&Zf(a),g=a.type,v=a.pendingProps,S=o!==null?o.memoizedProps:null,R=v.children,Hf(g,v)?R=null:S!==null&&Hf(g,S)&&(a.flags|=32),ob(o,a),Vn(o,a,R,d),a.child;case 6:return o===null&&Zf(a),null;case 13:return cb(o,a,d);case 4:return ap(a,a.stateNode.containerInfo),g=a.pendingProps,o===null?a.child=bi(a,null,g,d):Vn(o,a,g,d),a.child;case 11:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),tb(o,a,g,v,d);case 7:return Vn(o,a,a.pendingProps,d),a.child;case 8:return Vn(o,a,a.pendingProps.children,d),a.child;case 12:return Vn(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,Ot(Ic,g._currentValue),g._currentValue=R,S!==null)if(Mr(S.value,R)){if(S.children===v.children&&!Jn.current){a=ks(o,a,d);break e}}else for(S=a.child,S!==null&&(S.return=a);S!==null;){var U=S.dependencies;if(U!==null){R=S.child;for(var q=U.firstContext;q!==null;){if(q.context===g){if(S.tag===1){q=js(-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),sp(S.return,d,a),U.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,U=R.alternate,U!==null&&(U.lanes|=d),sp(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}Vn(o,a,v.children,d),a=a.child}return a;case 9:return v=a.type,g=a.pendingProps.children,wi(a,d),v=kr(v),g=g(v),a.flags|=1,Vn(o,a,g,d),a.child;case 14:return g=a.type,v=zr(g,a.pendingProps),v=zr(g.type,v),nb(o,a,g,v,d);case 15:return rb(o,a,a.type,a.pendingProps,d);case 17:return g=a.type,v=a.pendingProps,v=a.elementType===g?v:zr(g,v),Gc(o,a),a.tag=1,Xn(g)?(o=!0,Rc(a)):o=!1,wi(a,d),Gy(a,g,v),vp(a,g,v,d),Sp(null,a,g,!0,o,d);case 19:return db(o,a,d);case 22:return sb(o,a,d)}throw Error(n(156,a.tag))};function Ob(o,a){return ni(o,a)}function CE(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 CE(o,a,d,g)}function Hp(o){return o=o.prototype,!(!o||!o.isReactComponent)}function EE(o){if(typeof o=="function")return Hp(o)?1:0;if(o!=null){if(o=o.$$typeof,o===W)return 11;if(o===H)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 ou(o,a,d,g,v,S){var R=2;if(g=o,typeof o=="function")Hp(o)&&(R=1);else if(typeof o=="string")R=5;else e:switch(o){case D:return Ao(d.children,v,S,a);case _:R=8,v|=8;break;case Y:return o=Cr(12,d,a,v|2),o.elementType=Y,o.lanes=S,o;case te:return o=Cr(13,d,a,v),o.elementType=te,o.lanes=S,o;case F:return o=Cr(19,d,a,v),o.elementType=F,o.lanes=S,o;case le:return iu(d,v,S,a);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case Q:R=10;break e;case L:R=9;break e;case W:R=11;break e;case H:R=14;break e;case X: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 Ao(o,a,d,g){return o=Cr(7,o,g,a),o.lanes=d,o}function iu(o,a,d,g){return o=Cr(22,o,g,a),o.elementType=le,o.lanes=d,o.stateNode={isHidden:!1},o}function Wp(o,a,d){return o=Cr(6,o,null,a),o.lanes=d,o}function Kp(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 TE(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=$n(0),this.expirationTimes=$n(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$n(0),this.identifierPrefix=g,this.onRecoverableError=v,this.mutableSourceEagerHydrationData=null}function qp(o,a,d,g,v,S,R,U,q){return o=new TE(o,a,d,U,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},ip(S),o}function PE(o,a,d){var g=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:g==null?null:""+g,children:o,containerInfo:a,implementation:d}}function Ib(o){if(!o)return Fs;o=o._reactInternals;e:{if(Ir(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(Xn(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(Xn(d))return uy(o,d,a)}return a}function _b(o,a,d,g,v,S,R,U,q){return o=qp(d,g,!0,o,v,S,R,U,q),o.context=Ib(null),d=o.current,g=Hn(),v=Ks(d),S=js(g,v),S.callback=a??null,Us(d,S,v),o.current.lanes=v,yo(o,v,g),er(o,g),o}function au(o,a,d,g){var v=a.current,S=Hn(),R=Ks(v);return d=Ib(d),a.context===null?a.context=d:a.pendingContext=d,a=js(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),Mc(o,v,R)),R}function lu(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 Mb(o,a){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var d=o.retryLane;o.retryLane=d!==0&&d<a?d:a}}function Gp(o,a){Mb(o,a),(o=o.alternate)&&Mb(o,a)}function RE(){return null}var Fb=typeof reportError=="function"?reportError:function(o){console.error(o)};function Yp(o){this._internalRoot=o}cu.prototype.render=Yp.prototype.render=function(o){var a=this._internalRoot;if(a===null)throw Error(n(409));au(o,a,null,null)},cu.prototype.unmount=Yp.prototype.unmount=function(){var o=this._internalRoot;if(o!==null){this._internalRoot=null;var a=o.containerInfo;To(function(){au(null,o,null,null)}),a[xs]=null}};function cu(o){this._internalRoot=o}cu.prototype.unstable_scheduleHydration=function(o){if(o){var a=ge();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&&Nx(o)}};function Jp(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11)}function uu(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11&&(o.nodeType!==8||o.nodeValue!==" react-mount-point-unstable "))}function zb(){}function AE(o,a,d,g,v){if(v){if(typeof g=="function"){var S=g;g=function(){var ce=lu(R);S.call(ce)}}var R=_b(a,g,o,0,null,!1,!1,"",zb);return o._reactRootContainer=R,o[xs]=R.current,Ba(o.nodeType===8?o.parentNode:o),To(),R}for(;v=o.lastChild;)o.removeChild(v);if(typeof g=="function"){var U=g;g=function(){var ce=lu(q);U.call(ce)}}var q=qp(o,0,!1,null,null,!1,!1,"",zb);return o._reactRootContainer=q,o[xs]=q.current,Ba(o.nodeType===8?o.parentNode:o),To(function(){au(a,q,d,g)}),q}function du(o,a,d,g,v){var S=d._reactRootContainer;if(S){var R=S;if(typeof v=="function"){var U=v;v=function(){var q=lu(R);U.call(q)}}au(a,R,o,v)}else R=AE(d,a,o,v,g);return lu(R)}Qr=function(o){switch(o.tag){case 3:var a=o.stateNode;if(a.current.memoizedState.isDehydrated){var d=gs(a.pendingLanes);d!==0&&(Ra(a,d|1),er(a,$t()),(wt&6)===0&&(Ci=$t()+500,zs()))}break;case 13:To(function(){var g=ws(o,1);if(g!==null){var v=Hn();Vr(g,o,1,v)}}),Gp(o,1)}},M=function(o){if(o.tag===13){var a=ws(o,134217728);if(a!==null){var d=Hn();Vr(a,o,134217728,d)}Gp(o,134217728)}},ie=function(o){if(o.tag===13){var a=Ks(o),d=ws(o,a);if(d!==null){var g=Hn();Vr(d,o,a,g)}Gp(o,a)}},ge=function(){return Et},Le=function(o,a){var d=Et;try{return Et=o,a()}finally{Et=d}},Cn=function(o,a,d){switch(a){case"input":if(ke(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=Tc(g);if(!v)throw Error(n(90));Ye(g),ke(g,v)}}}break;case"textarea":be(o,d);break;case"select":a=d.value,a!=null&&at(o,!!d.multiple,a,!1)}},qt=Bp,nn=To;var DE={usingClientEntryPoint:!1,Events:[Ha,pi,Tc,Pt,Ln,Bp]},sl={findFiberByHostInstance:vo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},LE={bundleType:sl.bundleType,version:sl.version,rendererPackageName:sl.rendererPackageName,rendererConfig:sl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:P.ReactCurrentDispatcher,findHostInstanceByFiber:function(o){return o=ei(o),o===null?null:o.stateNode},findFiberByHostInstance:sl.findFiberByHostInstance||RE,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 fu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fu.isDisabled&&fu.supportsFiber)try{si=fu.inject(LE),br=fu}catch{}}return tr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=DE,tr.createPortal=function(o,a){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Jp(a))throw Error(n(200));return PE(o,a,null,d)},tr.createRoot=function(o,a){if(!Jp(o))throw Error(n(299));var d=!1,g="",v=Fb;return a!=null&&(a.unstable_strictMode===!0&&(d=!0),a.identifierPrefix!==void 0&&(g=a.identifierPrefix),a.onRecoverableError!==void 0&&(v=a.onRecoverableError)),a=qp(o,1,!1,null,null,d,!1,g,v),o[xs]=a.current,Ba(o.nodeType===8?o.parentNode:o),new Yp(a)},tr.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=ei(a),o=o===null?null:o.stateNode,o},tr.flushSync=function(o){return To(o)},tr.hydrate=function(o,a,d){if(!uu(a))throw Error(n(200));return du(null,o,a,!0,d)},tr.hydrateRoot=function(o,a,d){if(!Jp(o))throw Error(n(405));var g=d!=null&&d.hydratedSources||null,v=!1,S="",R=Fb;if(d!=null&&(d.unstable_strictMode===!0&&(v=!0),d.identifierPrefix!==void 0&&(S=d.identifierPrefix),d.onRecoverableError!==void 0&&(R=d.onRecoverableError)),a=_b(a,null,o,1,d??null,v,!1,S,R),o[xs]=a.current,Ba(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 cu(a)},tr.render=function(o,a,d){if(!uu(a))throw Error(n(200));return du(null,o,a,!1,d)},tr.unmountComponentAtNode=function(o){if(!uu(o))throw Error(n(40));return o._reactRootContainer?(To(function(){du(null,null,o,!1,function(){o._reactRootContainer=null,o[xs]=null})}),!0):!1},tr.unstable_batchedUpdates=Bp,tr.unstable_renderSubtreeIntoContainer=function(o,a,d,g){if(!uu(d))throw Error(n(200));if(o==null||o._reactInternals===void 0)throw Error(n(38));return du(o,a,d,!1,g)},tr.version="18.3.1-next-f1338f8080-20240426",tr}var Yb;function Pj(){if(Yb)return Zp.exports;Yb=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(),Zp.exports=VE(),Zp.exports}var Jb;function HE(){if(Jb)return pu;Jb=1;var e=Pj();return pu.createRoot=e.createRoot,pu.hydrateRoot=e.hydrateRoot,pu}var WE=HE();/**
|
|
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 Xb="popstate";function Qb(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function KE(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 eh("",{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:Rl(i)}return GE(t,n,null,e)}function Jt(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 qE(){return Math.random().toString(36).substring(2,10)}function Zb(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 eh(e,t,n=null,s,i){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?la(t):t,state:n,key:t&&t.key||s||qE(),unstable_mask:i}}function Rl({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 la(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 GE(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(),k=w==null?null:w-m;m=w,p&&p({action:u,location:j.location,delta:k})}function y(w,k){u="PUSH";let E=Qb(w)?w:eh(j.location,w,k);m=h()+1;let C=Zb(E,m),P=j.createHref(E.unstable_mask||E);try{c.pushState(C,"",P)}catch($){if($ instanceof DOMException&&$.name==="DataCloneError")throw $;i.location.assign(P)}l&&p&&p({action:u,location:j.location,delta:1})}function b(w,k){u="REPLACE";let E=Qb(w)?w:eh(j.location,w,k);m=h();let C=Zb(E,m),P=j.createHref(E.unstable_mask||E);c.replaceState(C,"",P),l&&p&&p({action:u,location:j.location,delta:0})}function N(w){return YE(w)}let j={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(Xb,x),p=w,()=>{i.removeEventListener(Xb,x),p=null}},createHref(w){return t(i,w)},createURL:N,encodeLocation(w){let k=N(w);return{pathname:k.pathname,search:k.search,hash:k.hash}},push:y,replace:b,go(w){return c.go(w)}};return j}function YE(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),Jt(n,"No window.location.(origin|href) available to create URL");let s=typeof e=="string"?e:Rl(e);return s=s.replace(/ $/,"%20"),!t&&s.startsWith("//")&&(s=n+s),new URL(s,n)}function Rj(e,t,n="/"){return JE(e,t,n,!1)}function JE(e,t,n,s){let i=typeof t=="string"?la(t):t,l=Es(i.pathname||"/",n);if(l==null)return null;let c=Aj(e);XE(c);let u=null;for(let p=0;u==null&&p<c.length;++p){let m=l2(l);u=i2(c[p],m,s)}return u}function Aj(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;Jt(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=ls([s,h.relativePath]),y=n.concat(h);c.children&&c.children.length>0&&(Jt(c.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${x}".`),Aj(c.children,t,y,x,p)),!(c.path==null&&!c.index)&&t.push({path:x,score:s2(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 Dj(c.path))l(c,u,!0,m)}),t}function Dj(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=Dj(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 XE(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:o2(t.routesMeta.map(s=>s.childrenIndex),n.routesMeta.map(s=>s.childrenIndex)))}var QE=/^:[\w-]+$/,ZE=3,e2=2,t2=1,n2=10,r2=-2,ev=e=>e==="*";function s2(e,t){let n=e.split("/"),s=n.length;return n.some(ev)&&(s+=r2),t&&(s+=e2),n.filter(i=>!ev(i)).reduce((i,l)=>i+(QE.test(l)?ZE:l===""?t2:n2),s)}function o2(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 i2(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=Ku({path:p.relativePath,caseSensitive:p.caseSensitive,end:m},h),y=p.route;if(!x&&m&&n&&!s[s.length-1].route.index&&(x=Ku({path:p.relativePath,caseSensitive:p.caseSensitive,end:!1},h)),!x)return null;Object.assign(i,x.params),c.push({params:i,pathname:ls([l,x.pathname]),pathnameBase:f2(ls([l,x.pathnameBase])),route:y}),x.pathnameBase!=="/"&&(l=ls([l,x.pathnameBase]))}return c}function Ku(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,s]=a2(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 N=u[y]||"";c=l.slice(0,l.length-N.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 a2(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 l2(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 Es(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 c2=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function u2(e,t="/"){let{pathname:n,search:s="",hash:i=""}=typeof e=="string"?la(e):e,l;return n?(n=n.replace(/\/\/+/g,"/"),n.startsWith("/")?l=tv(n.substring(1),"/"):l=tv(n,t)):l=t,{pathname:l,search:p2(s),hash:m2(i)}}function tv(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 nm(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 d2(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Lj(e){let t=d2(e);return t.map((n,s)=>s===t.length-1?n.pathname:n.pathnameBase)}function Bh(e,t,n,s=!1){let i;typeof e=="string"?i=la(e):(i={...e},Jt(!i.pathname||!i.pathname.includes("?"),nm("?","pathname","search",i)),Jt(!i.pathname||!i.pathname.includes("#"),nm("#","pathname","hash",i)),Jt(!i.search||!i.search.includes("#"),nm("#","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=u2(i,u),m=c&&c!=="/"&&c.endsWith("/"),h=(l||c===".")&&n.endsWith("/");return!p.pathname.endsWith("/")&&(m||h)&&(p.pathname+="/"),p}var ls=e=>e.join("/").replace(/\/\/+/g,"/"),f2=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),p2=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,m2=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,h2=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 g2(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function x2(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var $j=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Oj(e,t){let n=e;if(typeof n!="string"||!c2.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let s=n,i=!1;if($j)try{let l=new URL(window.location.href),c=n.startsWith("//")?new URL(l.protocol+n):new URL(n),u=Es(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 Ij=["POST","PUT","PATCH","DELETE"];new Set(Ij);var y2=["GET",...Ij];new Set(y2);var ca=f.createContext(null);ca.displayName="DataRouter";var kd=f.createContext(null);kd.displayName="DataRouterState";var b2=f.createContext(!1),_j=f.createContext({isTransitioning:!1});_j.displayName="ViewTransition";var v2=f.createContext(new Map);v2.displayName="Fetchers";var w2=f.createContext(null);w2.displayName="Await";var $r=f.createContext(null);$r.displayName="Navigation";var ql=f.createContext(null);ql.displayName="Location";var Yr=f.createContext({outlet:null,matches:[],isDataRoute:!1});Yr.displayName="Route";var Uh=f.createContext(null);Uh.displayName="RouteError";var Mj="REACT_ROUTER_ERROR",j2="REDIRECT",k2="ROUTE_ERROR_RESPONSE";function S2(e){if(e.startsWith(`${Mj}:${j2}:{`))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 N2(e){if(e.startsWith(`${Mj}:${k2}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new h2(t.status,t.statusText,t.data)}catch{}}function C2(e,{relative:t}={}){Jt(Gl(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:s}=f.useContext($r),{hash:i,pathname:l,search:c}=Yl(e,{relative:t}),u=l;return n!=="/"&&(u=l==="/"?n:ls([n,l])),s.createHref({pathname:u,search:c,hash:i})}function Gl(){return f.useContext(ql)!=null}function Wn(){return Jt(Gl(),"useLocation() may be used only in the context of a <Router> component."),f.useContext(ql).location}var Fj="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function zj(e){f.useContext($r).static||f.useLayoutEffect(e)}function Dt(){let{isDataRoute:e}=f.useContext(Yr);return e?B2():E2()}function E2(){Jt(Gl(),"useNavigate() may be used only in the context of a <Router> component.");let e=f.useContext(ca),{basename:t,navigator:n}=f.useContext($r),{matches:s}=f.useContext(Yr),{pathname:i}=Wn(),l=JSON.stringify(Lj(s)),c=f.useRef(!1);return zj(()=>{c.current=!0}),f.useCallback((p,m={})=>{if(Hr(c.current,Fj),!c.current)return;if(typeof p=="number"){n.go(p);return}let h=Bh(p,JSON.parse(l),i,m.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:ls([t,h.pathname])),(m.replace?n.replace:n.push)(h,m.state,m)},[t,n,l,i,e])}var T2=f.createContext(null);function P2(e){let t=f.useContext(Yr).outlet;return f.useMemo(()=>t&&f.createElement(T2.Provider,{value:e},t),[t,e])}function Lt(){let{matches:e}=f.useContext(Yr),t=e[e.length-1];return t?t.params:{}}function Yl(e,{relative:t}={}){let{matches:n}=f.useContext(Yr),{pathname:s}=Wn(),i=JSON.stringify(Lj(n));return f.useMemo(()=>Bh(e,JSON.parse(i),s,t==="path"),[e,i,s,t])}function R2(e,t){return Bj(e,t)}function Bj(e,t,n){var w;Jt(Gl(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=f.useContext($r),{matches:i}=f.useContext(Yr),l=i[i.length-1],c=l?l.params:{},u=l?l.pathname:"/",p=l?l.pathnameBase:"/",m=l&&l.route;{let k=m&&m.path||"";Vj(u,!m||k.endsWith("*")||k.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${k}">) 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="${k}"> to <Route path="${k==="/"?"*":`${k}/*`}">.`)}let h=Wn(),x;if(t){let k=typeof t=="string"?la(t):t;Jt(p==="/"||((w=k.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 "${k.pathname}" was given in the \`location\` prop.`),x=k}else x=h;let y=x.pathname||"/",b=y;if(p!=="/"){let k=p.replace(/^\//,"").split("/");b="/"+y.replace(/^\//,"").split("/").slice(k.length).join("/")}let N=Rj(e,{pathname:b});Hr(m||N!=null,`No routes matched location "${x.pathname}${x.search}${x.hash}" `),Hr(N==null||N[N.length-1].route.element!==void 0||N[N.length-1].route.Component!==void 0||N[N.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 j=O2(N&&N.map(k=>Object.assign({},k,{params:Object.assign({},c,k.params),pathname:ls([p,s.encodeLocation?s.encodeLocation(k.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:k.pathname]),pathnameBase:k.pathnameBase==="/"?p:ls([p,s.encodeLocation?s.encodeLocation(k.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:k.pathnameBase])})),i,n);return t&&j?f.createElement(ql.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...x},navigationType:"POP"}},j):j}function A2(){let e=z2(),t=g2(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 D2=f.createElement(A2,null),Uj=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=N2(e.digest);n&&(e=n)}let t=e!==void 0?f.createElement(Yr.Provider,{value:this.props.routeContext},f.createElement(Uh.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?f.createElement(L2,{error:e},t):t}};Uj.contextType=b2;var rm=new WeakMap;function L2({children:e,error:t}){let{basename:n}=f.useContext($r);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let s=S2(t.digest);if(s){let i=rm.get(t);if(i)throw i;let l=Oj(s.location,n);if($j&&!rm.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 rm.set(t,c),c}return f.createElement("meta",{httpEquiv:"refresh",content:`0;url=${l.absoluteURL||l.to}`})}}return e}function $2({routeContext:e,match:t,children:n}){let s=f.useContext(ca);return s&&s.static&&s.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=t.route.id),f.createElement(Yr.Provider,{value:e},n)}function O2(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);Jt(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,N=x.route.loader&&!y.hasOwnProperty(x.route.id)&&(!b||b[x.route.id]===void 0);if(x.route.lazy||N){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:x2(s.matches),errorInfo:x})}:void 0;return i.reduceRight((h,x,y)=>{let b,N=!1,j=null,w=null;s&&(b=l&&x.route.id?l[x.route.id]:void 0,j=x.route.errorElement||D2,c&&(u<0&&y===0?(Vj("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),N=!0,w=null):u===y&&(N=!0,w=x.route.hydrateFallbackElement||null)));let k=t.concat(i.slice(0,y+1)),E=()=>{let C;return b?C=j:N?C=w:x.route.Component?C=f.createElement(x.route.Component,null):x.route.element?C=x.route.element:C=h,f.createElement($2,{match:x,routeContext:{outlet:h,matches:k,isDataRoute:s!=null},children:C})};return s&&(x.route.ErrorBoundary||x.route.errorElement||y===0)?f.createElement(Uj,{location:s.location,revalidation:s.revalidation,component:j,error:b,children:E(),routeContext:{outlet:null,matches:k,isDataRoute:!0},onError:m}):E()},null)}function Vh(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function I2(e){let t=f.useContext(ca);return Jt(t,Vh(e)),t}function _2(e){let t=f.useContext(kd);return Jt(t,Vh(e)),t}function M2(e){let t=f.useContext(Yr);return Jt(t,Vh(e)),t}function Hh(e){let t=M2(e),n=t.matches[t.matches.length-1];return Jt(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function F2(){return Hh("useRouteId")}function z2(){var s;let e=f.useContext(Uh),t=_2("useRouteError"),n=Hh("useRouteError");return e!==void 0?e:(s=t.errors)==null?void 0:s[n]}function B2(){let{router:e}=I2("useNavigate"),t=Hh("useNavigate"),n=f.useRef(!1);return zj(()=>{n.current=!0}),f.useCallback(async(i,l={})=>{Hr(n.current,Fj),n.current&&(typeof i=="number"?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...l}))},[e,t])}var nv={};function Vj(e,t,n){!t&&!nv[e]&&(nv[e]=!0,Hr(!1,n))}f.memo(U2);function U2({routes:e,future:t,state:n,isStatic:s,onError:i}){return Bj(e,void 0,{state:n,isStatic:s,onError:i})}function V2(e){return P2(e.context)}function Ve(e){Jt(!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 H2({basename:e="/",children:t=null,location:n,navigationType:s="POP",navigator:i,static:l=!1,unstable_useTransitions:c}){Jt(!Gl(),"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=la(n));let{pathname:m="/",search:h="",hash:x="",state:y=null,key:b="default",unstable_mask:N}=n,j=f.useMemo(()=>{let w=Es(m,u);return w==null?null:{location:{pathname:w,search:h,hash:x,state:y,key:b,unstable_mask:N},navigationType:s}},[u,m,h,x,y,b,s,N]);return Hr(j!=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.`),j==null?null:f.createElement($r.Provider,{value:p},f.createElement(ql.Provider,{children:t,value:j}))}function W2({children:e,location:t}){return R2(th(e),t)}function th(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,th(s.props.children,l));return}Jt(s.type===Ve,`[${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>`),Jt(!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=th(s.props.children,l)),n.push(c)}),n}var Du="get",Lu="application/x-www-form-urlencoded";function Sd(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function K2(e){return Sd(e)&&e.tagName.toLowerCase()==="button"}function q2(e){return Sd(e)&&e.tagName.toLowerCase()==="form"}function G2(e){return Sd(e)&&e.tagName.toLowerCase()==="input"}function Y2(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function J2(e,t){return e.button===0&&(!t||t==="_self")&&!Y2(e)}function nh(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 X2(e,t){let n=nh(e);return t&&t.forEach((s,i)=>{n.has(i)||t.getAll(i).forEach(l=>{n.append(i,l)})}),n}var mu=null;function Q2(){if(mu===null)try{new FormData(document.createElement("form"),0),mu=!1}catch{mu=!0}return mu}var Z2=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function sm(e){return e!=null&&!Z2.has(e)?(Hr(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Lu}"`),null):e}function eT(e,t){let n,s,i,l,c;if(q2(e)){let u=e.getAttribute("action");s=u?Es(u,t):null,n=e.getAttribute("method")||Du,i=sm(e.getAttribute("enctype"))||Lu,l=new FormData(e)}else if(K2(e)||G2(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?Es(p,t):null,n=e.getAttribute("formmethod")||u.getAttribute("method")||Du,i=sm(e.getAttribute("formenctype"))||sm(u.getAttribute("enctype"))||Lu,l=new FormData(u,e),!Q2()){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=Du,s=null,i=Lu,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 Wh(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function tT(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&&Es(i.pathname,t)==="/"?i.pathname=`${t.replace(/\/$/,"")}/_root.${s}`:i.pathname=`${i.pathname.replace(/\/$/,"")}.${s}`,i}async function nT(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 rT(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 sT(e,t,n){let s=await Promise.all(e.map(async i=>{let l=t.routes[i.route.id];if(l){let c=await nT(l,n);return c.links?c.links():[]}return[]}));return lT(s.flat(1).filter(rT).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function rv(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 oT(e,t,{includeHydrateFallback:n}={}){return iT(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 iT(e){return[...new Set(e)]}function aT(e){let t={},n=Object.keys(e).sort();for(let s of n)t[s]=e[s];return t}function lT(e,t){let n=new Set;return new Set(t),e.reduce((s,i)=>{let l=JSON.stringify(aT(i));return n.has(l)||(n.add(l),s.push({key:l,link:i})),s},[])}function Hj(){let e=f.useContext(ca);return Wh(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function cT(){let e=f.useContext(kd);return Wh(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Kh=f.createContext(void 0);Kh.displayName="FrameworkContext";function Wj(){let e=f.useContext(Kh);return Wh(e,"You must render this element inside a <HydratedRouter> element"),e}function uT(e,t){let n=f.useContext(Kh),[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 j=k=>{k.forEach(E=>{c(E.isIntersecting)})},w=new IntersectionObserver(j,{threshold:.5});return y.current&&w.observe(y.current),()=>{w.disconnect()}}},[e]),f.useEffect(()=>{if(s){let j=setTimeout(()=>{c(!0)},100);return()=>{clearTimeout(j)}}},[s]);let b=()=>{i(!0)},N=()=>{i(!1),c(!1)};return n?e!=="intent"?[l,y,{}]:[l,y,{onFocus:il(u,b),onBlur:il(p,N),onMouseEnter:il(m,b),onMouseLeave:il(h,N),onTouchStart:il(x,b)}]:[!1,y,{}]}function il(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function dT({page:e,...t}){let{router:n}=Hj(),s=f.useMemo(()=>Rj(n.routes,e,n.basename),[n.routes,e,n.basename]);return s?f.createElement(pT,{page:e,matches:s,...t}):null}function fT(e){let{manifest:t,routeModules:n}=Wj(),[s,i]=f.useState([]);return f.useEffect(()=>{let l=!1;return sT(e,t,n).then(c=>{l||i(c)}),()=>{l=!0}},[e,t,n]),s}function pT({page:e,matches:t,...n}){let s=Wn(),{future:i,manifest:l,routeModules:c}=Wj(),{basename:u}=Hj(),{loaderData:p,matches:m}=cT(),h=f.useMemo(()=>rv(e,t,m,l,s,"data"),[e,t,m,l,s]),x=f.useMemo(()=>rv(e,t,m,l,s,"assets"),[e,t,m,l,s]),y=f.useMemo(()=>{if(e===s.pathname+s.search+s.hash)return[];let j=new Set,w=!1;if(t.forEach(E=>{var P;let C=l.routes[E.route.id];!C||!C.hasLoader||(!h.some($=>$.route.id===E.route.id)&&E.route.id in p&&((P=c[E.route.id])!=null&&P.shouldRevalidate)||C.hasClientLoader?w=!0:j.add(E.route.id))}),j.size===0)return[];let k=tT(e,u,i.unstable_trailingSlashAwareDataRequests,"data");return w&&j.size>0&&k.searchParams.set("_routes",t.filter(E=>j.has(E.route.id)).map(E=>E.route.id).join(",")),[k.pathname+k.search]},[u,i.unstable_trailingSlashAwareDataRequests,p,s,l,h,t,e,c]),b=f.useMemo(()=>oT(x,l),[x,l]),N=fT(x);return f.createElement(f.Fragment,null,y.map(j=>f.createElement("link",{key:j,rel:"prefetch",as:"fetch",href:j,...n})),b.map(j=>f.createElement("link",{key:j,rel:"modulepreload",href:j,...n})),N.map(({key:j,link:w})=>f.createElement("link",{key:j,nonce:n.nonce,...w,crossOrigin:w.crossOrigin??n.crossOrigin})))}function mT(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var hT=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{hT&&(window.__reactRouterVersion="7.13.1")}catch{}function gT({basename:e,children:t,unstable_useTransitions:n,window:s}){let i=f.useRef();i.current==null&&(i.current=KE({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(H2,{basename:e,children:t,location:c.location,navigationType:c.action,navigator:l,unstable_useTransitions:n})}var Kj=/^(?:[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,...N},j){let{basename:w,navigator:k,unstable_useTransitions:E}=f.useContext($r),C=typeof h=="string"&&Kj.test(h),P=Oj(h,w);h=P.to;let $=C2(h,{relative:i}),T=Wn(),D=null;if(u){let H=Bh(u,[],T.unstable_mask?T.unstable_mask.pathname:"/",!0);w!=="/"&&(H.pathname=H.pathname==="/"?w:ls([w,H.pathname])),D=k.createHref(H)}let[_,Y,Q]=uT(s,N),L=vT(h,{replace:c,unstable_mask:u,state:p,target:m,preventScrollReset:x,relative:i,viewTransition:y,unstable_defaultShouldRevalidate:b,unstable_useTransitions:E});function W(H){t&&t(H),H.defaultPrevented||L(H)}let te=!(P.isExternal||l),F=f.createElement("a",{...N,...Q,href:(te?D:void 0)||P.absoluteURL||$,onClick:te?W:t,ref:mT(j,Y),target:m,"data-discover":!C&&n==="render"?"true":void 0});return _&&!C?f.createElement(f.Fragment,null,F,f.createElement(dT,{page:$})):F});Ce.displayName="Link";var xT=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=Yl(c,{relative:m.relative}),y=Wn(),b=f.useContext(kd),{navigator:N,basename:j}=f.useContext($r),w=b!=null&&NT(x)&&u===!0,k=N.encodeLocation?N.encodeLocation(x).pathname:x.pathname,E=y.pathname,C=b&&b.navigation&&b.navigation.location?b.navigation.location.pathname:null;n||(E=E.toLowerCase(),C=C?C.toLowerCase():null,k=k.toLowerCase()),C&&j&&(C=Es(C,j)||C);const P=k!=="/"&&k.endsWith("/")?k.length-1:k.length;let $=E===k||!i&&E.startsWith(k)&&E.charAt(P)==="/",T=C!=null&&(C===k||!i&&C.startsWith(k)&&C.charAt(k.length)==="/"),D={isActive:$,isPending:T,isTransitioning:w},_=$?t:void 0,Y;typeof s=="function"?Y=s(D):Y=[s,$?"active":null,T?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let Q=typeof l=="function"?l(D):l;return f.createElement(Ce,{...m,"aria-current":_,className:Y,ref:h,style:Q,to:c,viewTransition:u},typeof p=="function"?p(D):p)});xT.displayName="NavLink";var yT=f.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:s,replace:i,state:l,method:c=Du,action:u,onSubmit:p,relative:m,preventScrollReset:h,viewTransition:x,unstable_defaultShouldRevalidate:y,...b},N)=>{let{unstable_useTransitions:j}=f.useContext($r),w=kT(),k=ST(u,{relative:m}),E=c.toLowerCase()==="get"?"get":"post",C=typeof u=="string"&&Kj.test(u),P=$=>{if(p&&p($),$.defaultPrevented)return;$.preventDefault();let T=$.nativeEvent.submitter,D=(T==null?void 0:T.getAttribute("formmethod"))||c,_=()=>w(T||$.currentTarget,{fetcherKey:t,method:D,navigate:n,replace:i,state:l,relative:m,preventScrollReset:h,viewTransition:x,unstable_defaultShouldRevalidate:y});j&&n!==!1?f.startTransition(()=>_()):_()};return f.createElement("form",{ref:N,method:E,action:k,onSubmit:s?p:P,...b,"data-discover":!C&&e==="render"?"true":void 0})});yT.displayName="Form";function bT(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function qj(e){let t=f.useContext(ca);return Jt(t,bT(e)),t}function vT(e,{target:t,replace:n,unstable_mask:s,state:i,preventScrollReset:l,relative:c,viewTransition:u,unstable_defaultShouldRevalidate:p,unstable_useTransitions:m}={}){let h=Dt(),x=Wn(),y=Yl(e,{relative:c});return f.useCallback(b=>{if(J2(b,t)){b.preventDefault();let N=n!==void 0?n:Rl(x)===Rl(y),j=()=>h(e,{replace:N,unstable_mask:s,state:i,preventScrollReset:l,relative:c,viewTransition:u,unstable_defaultShouldRevalidate:p});m?f.startTransition(()=>j()):j()}},[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(nh(e)),n=f.useRef(!1),s=Wn(),i=f.useMemo(()=>X2(s.search,n.current?null:t.current),[s.search]),l=Dt(),c=f.useCallback((u,p)=>{const m=nh(typeof u=="function"?u(new URLSearchParams(i)):u);n.current=!0,l("?"+m,p)},[l,i]);return[i,c]}var wT=0,jT=()=>`__${String(++wT)}__`;function kT(){let{router:e}=qj("useSubmit"),{basename:t}=f.useContext($r),n=F2(),s=e.fetch,i=e.navigate;return f.useCallback(async(l,c={})=>{let{action:u,method:p,encType:m,formData:h,body:x}=eT(l,t);if(c.navigate===!1){let y=c.fetcherKey||jT();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 ST(e,{relative:t}={}){let{basename:n}=f.useContext($r),s=f.useContext(Yr);Jt(s,"useFormAction must be used inside a RouteContext");let[i]=s.matches.slice(-1),l={...Yl(e||".",{relative:t})},c=Wn();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:ls([n,l.pathname])),Rl(l)}function NT(e,{relative:t}={}){let n=f.useContext(_j);Jt(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:s}=qj("useViewTransitionState"),i=Yl(e,{relative:t});if(!n.isTransitioning)return!1;let l=Es(n.currentLocation.pathname,s)||n.currentLocation.pathname,c=Es(n.nextLocation.pathname,s)||n.nextLocation.pathname;return Ku(i.pathname,c)!=null||Ku(i.pathname,l)!=null}var Cs=Pj();const CT=jd(Cs);/**
|
|
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 ET=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Gj=(...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 TT={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 PT=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,...TT,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:Gj("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 $e=(e,t)=>{const n=f.forwardRef(({className:s,...i},l)=>f.createElement(PT,{ref:l,iconNode:t,className:Gj(`lucide-${ET(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=$e("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 qu=$e("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=$e("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 Gu=$e("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 Jl=$e("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 Yj=$e("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=$e("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 RT=$e("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 Jj=$e("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=$e("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 AT=$e("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 Rs=$e("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 Wr=$e("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 DT=$e("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 LT=$e("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 Xj=$e("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 rh=$e("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 qh=$e("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 sh=$e("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 $T=$e("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 OT=$e("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 IT=$e("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 _T=$e("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 MT=$e("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=$e("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 FT=$e("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 Qj=$e("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 Al=$e("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 zT=$e("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 BT=$e("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 ua=$e("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 sv=$e("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 UT=$e("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 VT=$e("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 Zj=$e("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 Gh=$e("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 HT=$e("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 Yh=$e("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 WT=$e("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 e0=$e("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 KT=$e("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 Jh=$e("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 oh=$e("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 t0=$e("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 qT=$e("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 GT=$e("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 YT=$e("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 JT=$e("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 Xh=$e("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 XT=$e("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 Qh=$e("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 QT=$e("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 om=$e("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 da=$e("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 ZT=$e("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 tn=$e("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 n0=$e("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 eP=$e("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 tP=$e("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 na=$e("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 Pd=$e("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 nP=$e("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 lo=$e("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 rP=$e("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 sP=$e("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 oP=$e("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 iP=$e("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=$e("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 ov=$e("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 Zh=$e("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 aP=$e("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 r0=$e("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 Vi=$e("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 Kn=$e("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 eg=$e("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 lP=$e("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 cP=$e("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 tg=$e("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function s0(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=s0(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function uP(){for(var e,t,n=0,s="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=s0(e))&&(s&&(s+=" "),s+=t);return s}const ng="-",dP=e=>{const t=pP(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:c=>{const u=c.split(ng);return u[0]===""&&u.length!==1&&u.shift(),o0(u,t)||fP(c)},getConflictingClassGroupIds:(c,u)=>{const p=n[c]||[];return u&&s[c]?[...p,...s[c]]:p}}},o0=(e,t)=>{var c;if(e.length===0)return t.classGroupId;const n=e[0],s=t.nextPart.get(n),i=s?o0(e.slice(1),s):void 0;if(i)return i;if(t.validators.length===0)return;const l=e.join(ng);return(c=t.validators.find(({validator:u})=>u(l)))==null?void 0:c.classGroupId},iv=/^\[(.+)\]$/,fP=e=>{if(iv.test(e)){const t=iv.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},pP=e=>{const{theme:t,prefix:n}=e,s={nextPart:new Map,validators:[]};return hP(Object.entries(e.classGroups),n).forEach(([l,c])=>{ih(c,s,l,t)}),s},ih=(e,t,n,s)=>{e.forEach(i=>{if(typeof i=="string"){const l=i===""?t:av(t,i);l.classGroupId=n;return}if(typeof i=="function"){if(mP(i)){ih(i(s),t,n,s);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([l,c])=>{ih(c,av(t,l),n,s)})})},av=(e,t)=>{let n=e;return t.split(ng).forEach(s=>{n.nextPart.has(s)||n.nextPart.set(s,{nextPart:new Map,validators:[]}),n=n.nextPart.get(s)}),n},mP=e=>e.isThemeGetter,hP=(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,gP=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)}}},i0="!",xP=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 k=u[w];if(m===0){if(k===i&&(s||u.slice(w,w+l)===t)){p.push(u.slice(h,w)),h=w+l;continue}if(k==="/"){x=w;continue}}k==="["?m++:k==="]"&&m--}const y=p.length===0?u:u.substring(h),b=y.startsWith(i0),N=b?y.substring(1):y,j=x&&x>h?x-h:void 0;return{modifiers:p,hasImportantModifier:b,baseClassName:N,maybePostfixModifierPosition:j}};return n?u=>n({className:u,parseClassName:c}):c},yP=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},bP=e=>({cache:gP(e.cacheSize),parseClassName:xP(e),...dP(e)}),vP=/\s+/,wP=(e,t)=>{const{parseClassName:n,getClassGroupId:s,getConflictingClassGroupIds:i}=t,l=[],c=e.trim().split(vP);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 N=!!b,j=s(N?y.substring(0,b):y);if(!j){if(!N){u=m+(u.length>0?" "+u:u);continue}if(j=s(y),!j){u=m+(u.length>0?" "+u:u);continue}N=!1}const w=yP(h).join(":"),k=x?w+i0:w,E=k+j;if(l.includes(E))continue;l.push(E);const C=i(j,N);for(let P=0;P<C.length;++P){const $=C[P];l.push(k+$)}u=m+(u.length>0?" "+u:u)}return u};function jP(){let e=0,t,n,s="";for(;e<arguments.length;)(t=arguments[e++])&&(n=a0(t))&&(s&&(s+=" "),s+=n);return s}const a0=e=>{if(typeof e=="string")return e;let t,n="";for(let s=0;s<e.length;s++)e[s]&&(t=a0(e[s]))&&(n&&(n+=" "),n+=t);return n};function kP(e,...t){let n,s,i,l=c;function c(p){const m=t.reduce((h,x)=>x(h),e());return n=bP(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=wP(p,n);return i(p,h),h}return function(){return l(jP.apply(null,arguments))}}const Bt=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},l0=/^\[(?:([a-z-]+):)?(.+)\]$/i,SP=/^\d+\/\d+$/,NP=new Set(["px","full","screen"]),CP=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,EP=/\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$/,TP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,PP=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,RP=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ns=e=>Hi(e)||NP.has(e)||SP.test(e),Js=e=>fa(e,"length",MP),Hi=e=>!!e&&!Number.isNaN(Number(e)),im=e=>fa(e,"number",Hi),al=e=>!!e&&Number.isInteger(Number(e)),AP=e=>e.endsWith("%")&&Hi(e.slice(0,-1)),ut=e=>l0.test(e),Xs=e=>CP.test(e),DP=new Set(["length","size","percentage"]),LP=e=>fa(e,DP,c0),$P=e=>fa(e,"position",c0),OP=new Set(["image","url"]),IP=e=>fa(e,OP,zP),_P=e=>fa(e,"",FP),ll=()=>!0,fa=(e,t,n)=>{const s=l0.exec(e);return s?s[1]?typeof t=="string"?s[1]===t:t.has(s[1]):n(s[2]):!1},MP=e=>EP.test(e)&&!TP.test(e),c0=()=>!1,FP=e=>PP.test(e),zP=e=>RP.test(e),BP=()=>{const e=Bt("colors"),t=Bt("spacing"),n=Bt("blur"),s=Bt("brightness"),i=Bt("borderColor"),l=Bt("borderRadius"),c=Bt("borderSpacing"),u=Bt("borderWidth"),p=Bt("contrast"),m=Bt("grayscale"),h=Bt("hueRotate"),x=Bt("invert"),y=Bt("gap"),b=Bt("gradientColorStops"),N=Bt("gradientColorStopPositions"),j=Bt("inset"),w=Bt("margin"),k=Bt("opacity"),E=Bt("padding"),C=Bt("saturate"),P=Bt("scale"),$=Bt("sepia"),T=Bt("skew"),D=Bt("space"),_=Bt("translate"),Y=()=>["auto","contain","none"],Q=()=>["auto","hidden","clip","visible","scroll"],L=()=>["auto",ut,t],W=()=>[ut,t],te=()=>["",Ns,Js],F=()=>["auto",Hi,ut],H=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],X=()=>["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"],O=()=>["start","end","center","between","around","evenly","stretch"],K=()=>["","0",ut],A=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>[Hi,ut];return{cacheSize:500,separator:":",theme:{colors:[ll],spacing:[Ns,Js],blur:["none","",Xs,ut],brightness:B(),borderColor:[e],borderRadius:["none","","full",Xs,ut],borderSpacing:W(),borderWidth:te(),contrast:B(),grayscale:K(),hueRotate:B(),invert:K(),gap:W(),gradientColorStops:[e],gradientColorStopPositions:[AP,Js],inset:L(),margin:L(),opacity:B(),padding:W(),saturate:B(),scale:B(),sepia:K(),skew:B(),space:W(),translate:W()},classGroups:{aspect:[{aspect:["auto","square","video",ut]}],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:[...H(),ut]}],overflow:[{overflow:Q()}],"overflow-x":[{"overflow-x":Q()}],"overflow-y":[{"overflow-y":Q()}],overscroll:[{overscroll:Y()}],"overscroll-x":[{"overscroll-x":Y()}],"overscroll-y":[{"overscroll-y":Y()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[j]}],"inset-x":[{"inset-x":[j]}],"inset-y":[{"inset-y":[j]}],start:[{start:[j]}],end:[{end:[j]}],top:[{top:[j]}],right:[{right:[j]}],bottom:[{bottom:[j]}],left:[{left:[j]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",al,ut]}],basis:[{basis:L()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",ut]}],grow:[{grow:K()}],shrink:[{shrink:K()}],order:[{order:["first","last","none",al,ut]}],"grid-cols":[{"grid-cols":[ll]}],"col-start-end":[{col:["auto",{span:["full",al,ut]},ut]}],"col-start":[{"col-start":F()}],"col-end":[{"col-end":F()}],"grid-rows":[{"grid-rows":[ll]}],"row-start-end":[{row:["auto",{span:[al,ut]},ut]}],"row-start":[{"row-start":F()}],"row-end":[{"row-end":F()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",ut]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",ut]}],gap:[{gap:[y]}],"gap-x":[{"gap-x":[y]}],"gap-y":[{"gap-y":[y]}],"justify-content":[{justify:["normal",...O()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...O(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...O(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[E]}],px:[{px:[E]}],py:[{py:[E]}],ps:[{ps:[E]}],pe:[{pe:[E]}],pt:[{pt:[E]}],pr:[{pr:[E]}],pb:[{pb:[E]}],pl:[{pl:[E]}],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":[D]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[D]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",ut,t]}],"min-w":[{"min-w":[ut,t,"min","max","fit"]}],"max-w":[{"max-w":[ut,t,"none","full","min","max","fit","prose",{screen:[Xs]},Xs]}],h:[{h:[ut,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[ut,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[ut,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[ut,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",im]}],"font-family":[{font:[ll]}],"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",ut]}],"line-clamp":[{"line-clamp":["none",Hi,im]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ns,ut]}],"list-image":[{"list-image":["none",ut]}],"list-style-type":[{list:["none","disc","decimal",ut]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[k]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[k]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...X(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ns,Js]}],"underline-offset":[{"underline-offset":["auto",Ns,ut]}],"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",ut]}],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",ut]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[k]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...H(),$P]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",LP]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},IP]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[N]}],"gradient-via-pos":[{via:[N]}],"gradient-to-pos":[{to:[N]}],"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":[k]}],"border-style":[{border:[...X(),"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":[k]}],"divide-style":[{divide:X()}],"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:["",...X()]}],"outline-offset":[{"outline-offset":[Ns,ut]}],"outline-w":[{outline:[Ns,Js]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[k]}],"ring-offset-w":[{"ring-offset":[Ns,Js]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Xs,_P]}],"shadow-color":[{shadow:[ll]}],opacity:[{opacity:[k]}],"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,ut]}],grayscale:[{grayscale:[m]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[x]}],saturate:[{saturate:[C]}],sepia:[{sepia:[$]}],"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":[k]}],"backdrop-saturate":[{"backdrop-saturate":[C]}],"backdrop-sepia":[{"backdrop-sepia":[$]}],"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",ut]}],duration:[{duration:B()}],ease:[{ease:["linear","in","out","in-out",ut]}],delay:[{delay:B()}],animate:[{animate:["none","spin","ping","pulse","bounce",ut]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[P]}],"scale-x":[{"scale-x":[P]}],"scale-y":[{"scale-y":[P]}],rotate:[{rotate:[al,ut]}],"translate-x":[{"translate-x":[_]}],"translate-y":[{"translate-y":[_]}],"skew-x":[{"skew-x":[T]}],"skew-y":[{"skew-y":[T]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",ut]}],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",ut]}],"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",ut]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Ns,Js,im]}],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"]}}},UP=kP(BP);function Pe(...e){return UP(uP(e))}function An(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 Lr(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 u0(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function d0(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 f0(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 VP(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 gn(e){return e.split(/[_\s-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function p0(e){return!e||e==="/"?"/":e.endsWith("/")?e.slice(0,-1):e}function HP(e){let t=p0(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 m0(e,t){return HP(e)===t}function h0(e){let n=p0(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:gn(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:gn(n[1]),path:`${c}/projects/${n[1]}`}),i=gn(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:gn(n[3]),path:`${c}/projects/${n[1]}/assignments/${n[3]}`}),i=gn(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:gn(n[3]),path:`${c}/projects/${n[1]}/${n[2]}/${n[3]}`}),i=gn(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:gn(n[1]),path:`/playbooks/${n[1]}`}),i="Edit Playbook"):n[1]&&(s.push({label:gn(n[1]),path:`/playbooks/${n[1]}`}),i=gn(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[1]&&(i="View")):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 lv({items:e,onNavigate:t}){const n=Wn();return r.jsx("nav",{className:"space-y-1",children:e.map(s=>{const i=s.icon,l=m0(n.pathname,s.to)&&!n.pathname.startsWith("/w/");return r.jsxs(Ce,{to:s.to,onClick:t,className:Pe("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 g0=[{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)"}}],WP=g0.map(e=>e.slug),Qu="default";function x0(e){return typeof e=="string"&&WP.includes(e)}const y0={preset:Qu,custom:!1};let yl=null,Ti=null;function rg(e){if(!e||typeof e!="object")return y0;const t=e;return{preset:x0(t.preset)?t.preset:Qu,custom:t.custom===!0}}function KP(){return yl?Promise.resolve(yl):Ti||(Ti=fetch("/api/config/theme").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=rg(e);return yl=t,Ti=null,t}).catch(()=>(Ti=null,y0)),Ti)}async function qP(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=rg(await t.json());return yl=n,n}async function GP(){const e=await fetch("/api/config/theme",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=rg(await e.json());return yl=t,t}const ah="syntaur-theme",$u="syntaur-preset",b0=f.createContext(null);function lh(){try{const e=window.localStorage.getItem(ah);return e==="light"||e==="dark"?e:null}catch{return null}}function v0(){try{const e=window.localStorage.getItem($u);return x0(e)?e:Qu}catch{return Qu}}function w0(){return typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function j0(e){document.documentElement.classList.toggle("dark",e==="dark")}function k0(e){document.documentElement.dataset.theme=e}function YP(){typeof document>"u"||(j0(lh()??w0()),k0(v0()))}function JP({children:e}){const[t,n]=f.useState(()=>lh()),[s,i]=f.useState(()=>lh()??w0()),[l,c]=f.useState(()=>v0());f.useEffect(()=>{j0(s)},[s]),f.useEffect(()=>{k0(l)},[l]),f.useEffect(()=>{let h=!1;return KP().then(x=>{if(!h&&x.preset!==l){c(x.preset);try{window.localStorage.setItem($u,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($u,h)}catch{}await qP(h)}async function p(){const h=await GP();c(h.preset);try{window.localStorage.setItem($u,h.preset)}catch{}}const m={resolvedTheme:s,explicitTheme:t,setTheme:h=>{window.localStorage.setItem(ah,h),n(h),i(h)},toggleTheme:()=>{const h=s==="dark"?"light":"dark";window.localStorage.setItem(ah,h),n(h),i(h)},preset:l,setPreset:u,resetPreset:p};return r.jsx(b0.Provider,{value:m,children:e})}function sg(){const e=f.useContext(b0);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const Ou=new Set;let rr=null,Wi=null;function XP(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}function S0(){rr&&(rr.readyState===WebSocket.OPEN||rr.readyState===WebSocket.CONNECTING)||(rr=new WebSocket(XP()),rr.onmessage=e=>{try{const t=JSON.parse(e.data);for(const n of Ou)n(t)}catch{}},rr.onclose=()=>{rr=null,Wi&&clearTimeout(Wi),Wi=setTimeout(S0,2e3)},rr.onerror=()=>{rr==null||rr.close()})}function Xl(e){const t=f.useRef(e);t.current=e,f.useEffect(()=>{const n=s=>t.current(s);return Ou.add(n),S0(),()=>{Ou.delete(n),Ou.size===0&&rr&&(Wi&&clearTimeout(Wi),Wi=null,rr.close(),rr=null)}},[])}function Xt(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(j=>j+1)},[]),N=f.useRef(y);return s&&N.current!==y&&(N.current=y,l(null),m(null)),f.useEffect(()=>{if(!y){u(!1),l(null);return}let j=!1;return u(!0),m(null),fetch(y).then(async w=>{if(!w.ok){const k=await w.json().catch(()=>null);throw new Error((k==null?void 0:k.error)||`HTTP ${w.status}`)}return w.json()}).then(w=>{j||(l(w),u(!1))}).catch(w=>{j||(m(w.message),u(!1))}),()=>{j=!0}},[y,h]),Xl(j=>{!t||!y||((j.type==="project-updated"||j.type==="assignment-updated")&&b(),j.type==="servers-updated"&&t==="servers"&&b(),j.type==="agent-sessions-updated"&&(t==="agent-sessions"||t==="overview")&&b(),j.type==="playbooks-updated"&&t==="playbooks"&&b(),j.type==="leases-updated"&&t==="inventories"&&b())}),{data:i,loading:c,error:p,refetch:b}}function Vo(e=!0){return Xt("/api/projects","projects",e)}function Rd(){return Xt("/api/workspaces","projects")}function on(){const{workspace:e}=Lt();return e?`/w/${e}`:""}function QP(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 Xt(s,"overview")}function Ad(e=!0){return Xt("/api/assignments","assignments",e)}function ZP(e=!0){return Xt("/api/archived","assignments",e)}function N0(){return Xt("/api/help")}function C0(e){const t=e?`/api/projects/${e}`:null;return Xt(t,"project")}function eR(e,t){const n=e&&t?`/api/projects/${e}/assignments/${t}`:null;return Xt(n,"assignment")}function tR(e){const t=e?`/api/assignments/${e}`:null;return Xt(t,"assignment")}function E0(e){return Xt(e)}function og(e=!0){return Xt("/api/servers","servers",e)}function T0(){return Xt("/api/leases","inventories")}function P0(){return Xt("/api/agent-sessions","agent-sessions")}function nR(e,t){const n=e&&t?`/api/agent-sessions/${e}?assignment=${t}`:null;return Xt(n,"agent-sessions")}function rR(e){const t=e?`/api/assignments/${e}/sessions`:null;return Xt(t,"agent-sessions")}function sR(e,t){const n=e&&t?`/api/usage/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}`:null;return Xt(n,void 0,!0,!0)}function oR(e){const t=e?`/api/usage/standalone/${encodeURIComponent(e)}`:null;return Xt(t,void 0,!0,!0)}function R0(e=!0){return Xt("/api/playbooks","playbooks",e)}function iR(e){const t=e?`/api/playbooks/${e}`:null;return Xt(t,"playbooks")}function aR(){return Xt("/api/memories","project")}function lR(e,t){const n=e&&t?`/api/projects/${e}/memories/${t}`:null;return Xt(n,"project")}function cR(){return Xt("/api/resources","project")}function uR(e,t){const n=e&&t?`/api/projects/${e}/resources/${t}`:null;return Xt(n,"project")}const Dd=["new-workspace","new-project","new-todo","new-assignment"];function dR(e){return typeof e=="string"&&Dd.includes(e)}const fR=["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","[","]"],pR=["mod","ctrl","alt","shift"];function sr(e){if(typeof e!="string")return"";const t=e.trim();if(!t)return"";if(/\s/.test(t)&&!t.includes("+"))return t.split(/\s+/).map(sr).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 pR)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 mR(e){const t=sr(e);return t?fR.includes(t):!1}const hR={"new-workspace":sr("Mod+Shift+Alt+w"),"new-project":sr("Mod+Shift+Alt+p"),"new-todo":sr("Mod+Shift+Alt+t"),"new-assignment":sr("Mod+Shift+Alt+a")};function gR(e){const t={...hR};for(const n of Dd){const s=e[n];typeof s=="string"&&s.length>0&&(t[n]=s)}return t}function Io(){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 xR(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 hu(e,t){const n=xR(t);if(e.key.toLowerCase()!==n.key)return!1;const i=Io()?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 A0(e){const t=[],n=Io()?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 sr(c)}function cs(e){return e.split("+").map(n=>{const s=n.toLowerCase();return s==="mod"?Io()?"⌘":"Ctrl":s==="shift"?Io()?"⇧":"Shift":s==="alt"?Io()?"⌥":"Alt":s==="ctrl"?Io()?"⌃":"Ctrl":s==="enter"?"↵":s==="escape"?"Esc":s==="arrowup"?"↑":s==="arrowdown"?"↓":n.length===1?n.toUpperCase():n}).join(Io()?"":"+")}function yR(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]),Xl(p=>{p.type==="todos-updated"&&!p.projectSlug&&u()}),{data:t,loading:s,error:l,refetch:u}}function D0(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]),Xl(p=>{e&&p.type==="todos-updated"&&!p.projectSlug&&u()}),{data:t,loading:s,error:l,refetch:u}}async function ig(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 L0(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 $0(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 O0(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 I0(e,t){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}/reopen`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}async function _0(e,t){await fetch(`/api/todos/${encodeURIComponent(e)}/${t}`,{method:"DELETE"})}async function ag(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 bR(e,t){return await ag(`/api/todos/${encodeURIComponent(e)}/promote`,t)}async function vR(e){return await ag("/api/todos/promote-bulk",e)}async function wR(e,t,n){await ag(`/api/todos/${encodeURIComponent(e)}/${t}/move`,{to:n})}const jR=new Set(["/projects","/assignments","/servers","/todos"]);function Iu(e,t){return jR.has(e)?`${t}${e}`:e}const kR=[{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 SR(e){const t=[];for(const n of kR)t.push({type:"page",id:n.id,title:n.title,keywords:[...n.keywords],route:Iu(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:`${Iu("/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=Iu("/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 _u(e){return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}async function NR(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 am(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 cv(){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 uv(){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 lm(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 Do(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 CR=/^[a-z0-9][a-z0-9-]*$/;function ER(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:CR,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 N=await b.json().catch(()=>({}));throw new Error(N.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 cv(),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 N=mr(b);if(!N)throw new Error("Title must contain at least one alphanumeric character");let j=await lm("/api/templates/project");j=Do(j,"slug",N),j=Do(j,"title",b),y&&y!=="_ungrouped"&&(j=Do(j,"workspace",y));const w=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:j})}),k=await w.json().catch(()=>({}));if(!w.ok)throw new Error(k.error||`Failed to create project (HTTP ${w.status})`);const E=y&&y!=="_ungrouped"?`/w/${y}/projects/${k.slug??N}`:`/projects/${k.slug??N}`;x.navigate(E)}}}),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([cv(),uv()]),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 N=b.workspace??"_ungrouped";y.push({value:N,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 ig(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 uv(),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 C;const y=(h.project??"_standalone").trim()||"_standalone",b=(h.title??"").trim();if(!b)throw new Error("Title is required");const N=mr(b);if(!N)throw new Error("Title must contain at least one alphanumeric character");if(y==="_standalone"){let P=await lm("/api/templates/assignment?standalone=1");P=Do(P,"slug",N),P=Do(P,"title",b);const $=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:P})}),T=await $.json().catch(()=>({}));if(!$.ok)throw new Error(T.error||`Failed to create assignment (HTTP ${$.status})`);const D=((C=T==null?void 0:T.assignment)==null?void 0:C.id)??(T==null?void 0:T.id);D?x.navigate(`/assignments/${D}`):x.navigate("/assignments");return}let j=await lm("/api/templates/assignment");j=Do(j,"slug",N),j=Do(j,"title",b);const w=await fetch(`/api/projects/${encodeURIComponent(y)}/assignments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:j})}),k=await w.json().catch(()=>({}));if(!w.ok)throw new Error(k.error||`Failed to create assignment (HTTP ${w.status})`);const E=k.slug??N;x.navigate(`/projects/${y}/assignments/${E}`)}}}),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 am("_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 am(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 am(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:()=>NR(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 Kt(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 dv(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=dv(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():dv(e[i],null)}}}}function Fn(...e){return f.useCallback(Ld(...e),e)}function TR(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 Ho(e,t=[]){let n=[];function s(l,c){const u=f.createContext(c),p=n.length;n=[...n,c];const m=x=>{var k;const{scope:y,children:b,...N}=x,j=((k=y==null?void 0:y[e])==null?void 0:k[p])||u,w=f.useMemo(()=>N,Object.values(N));return r.jsx(j.Provider,{value:w,children:b})};m.displayName=l+"Provider";function h(x,y){var j;const b=((j=y==null?void 0:y[e])==null?void 0:j[p])||u,N=f.useContext(b);if(N)return N;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,PR(i,...t)]}function PR(...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 oo=globalThis!=null&&globalThis.document?f.useLayoutEffect:()=>{},RR=Tj[" useId ".trim().toString()]||(()=>{}),AR=0;function Ki(e){const[t,n]=f.useState(RR());return oo(()=>{n(s=>s??String(AR++))},[e]),e||(t?`radix-${t}`:"")}var DR=Tj[" useInsertionEffect ".trim().toString()]||oo;function $d({prop:e,defaultProp:t,onChange:n=()=>{},caller:s}){const[i,l,c]=LR({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=$R(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 LR({defaultProp:e,onChange:t}){const[n,s]=f.useState(e),i=f.useRef(n),l=f.useRef(t);return DR(()=>{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 $R(e){return typeof e=="function"}function OR(e){const t=IR(e),n=f.forwardRef((s,i)=>{const{children:l,...c}=s,u=f.Children.toArray(l),p=u.find(MR);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 IR(e){const t=f.forwardRef((n,s)=>{const{children:i,...l}=n;if(f.isValidElement(i)){const c=zR(i),u=FR(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 _R=Symbol("radix.slottable");function MR(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===_R}function FR(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 zR(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 BR=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],fn=BR.reduce((e,t)=>{const n=OR(`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 UR(e,t){e&&Cs.flushSync(()=>e.dispatchEvent(t))}function Fo(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 VR(e,t=globalThis==null?void 0:globalThis.document){const n=Fo(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 HR="DismissableLayer",ch="dismissableLayer.update",WR="dismissableLayer.pointerDownOutside",KR="dismissableLayer.focusOutside",fv,M0=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),lg=f.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:l,onInteractOutside:c,onDismiss:u,...p}=e,m=f.useContext(M0),[h,x]=f.useState(null),y=(h==null?void 0:h.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,b]=f.useState({}),N=Fn(t,D=>x(D)),j=Array.from(m.layers),[w]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),k=j.indexOf(w),E=h?j.indexOf(h):-1,C=m.layersWithOutsidePointerEventsDisabled.size>0,P=E>=k,$=YR(D=>{const _=D.target,Y=[...m.branches].some(Q=>Q.contains(_));!P||Y||(i==null||i(D),c==null||c(D),D.defaultPrevented||u==null||u())},y),T=JR(D=>{const _=D.target;[...m.branches].some(Q=>Q.contains(_))||(l==null||l(D),c==null||c(D),D.defaultPrevented||u==null||u())},y);return VR(D=>{E===m.layers.size-1&&(s==null||s(D),!D.defaultPrevented&&u&&(D.preventDefault(),u()))},y),f.useEffect(()=>{if(h)return n&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(fv=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(h)),m.layers.add(h),pv(),()=>{n&&m.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=fv)}},[h,y,n,m]),f.useEffect(()=>()=>{h&&(m.layers.delete(h),m.layersWithOutsidePointerEventsDisabled.delete(h),pv())},[h,m]),f.useEffect(()=>{const D=()=>b({});return document.addEventListener(ch,D),()=>document.removeEventListener(ch,D)},[]),r.jsx(fn.div,{...p,ref:N,style:{pointerEvents:C?P?"auto":"none":void 0,...e.style},onFocusCapture:Kt(e.onFocusCapture,T.onFocusCapture),onBlurCapture:Kt(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:Kt(e.onPointerDownCapture,$.onPointerDownCapture)})});lg.displayName=HR;var qR="DismissableLayerBranch",GR=f.forwardRef((e,t)=>{const n=f.useContext(M0),s=f.useRef(null),i=Fn(t,s);return f.useEffect(()=>{const l=s.current;if(l)return n.branches.add(l),()=>{n.branches.delete(l)}},[n.branches]),r.jsx(fn.div,{...e,ref:i})});GR.displayName=qR;function YR(e,t=globalThis==null?void 0:globalThis.document){const n=Fo(e),s=f.useRef(!1),i=f.useRef(()=>{});return f.useEffect(()=>{const l=u=>{if(u.target&&!s.current){let p=function(){F0(WR,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 JR(e,t=globalThis==null?void 0:globalThis.document){const n=Fo(e),s=f.useRef(!1);return f.useEffect(()=>{const i=l=>{l.target&&!s.current&&F0(KR,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 pv(){const e=new CustomEvent(ch);document.dispatchEvent(e)}function F0(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?UR(i,l):i.dispatchEvent(l)}var cm="focusScope.autoFocusOnMount",um="focusScope.autoFocusOnUnmount",mv={bubbles:!1,cancelable:!0},XR="FocusScope",z0=f.forwardRef((e,t)=>{const{loop:n=!1,trapped:s=!1,onMountAutoFocus:i,onUnmountAutoFocus:l,...c}=e,[u,p]=f.useState(null),m=Fo(i),h=Fo(l),x=f.useRef(null),y=Fn(t,j=>p(j)),b=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(s){let j=function(C){if(b.paused||!u)return;const P=C.target;u.contains(P)?x.current=P:no(x.current,{select:!0})},w=function(C){if(b.paused||!u)return;const P=C.relatedTarget;P!==null&&(u.contains(P)||no(x.current,{select:!0}))},k=function(C){if(document.activeElement===document.body)for(const $ of C)$.removedNodes.length>0&&no(u)};document.addEventListener("focusin",j),document.addEventListener("focusout",w);const E=new MutationObserver(k);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",j),document.removeEventListener("focusout",w),E.disconnect()}}},[s,u,b.paused]),f.useEffect(()=>{if(u){gv.add(b);const j=document.activeElement;if(!u.contains(j)){const k=new CustomEvent(cm,mv);u.addEventListener(cm,m),u.dispatchEvent(k),k.defaultPrevented||(QR(rA(B0(u)),{select:!0}),document.activeElement===j&&no(u))}return()=>{u.removeEventListener(cm,m),setTimeout(()=>{const k=new CustomEvent(um,mv);u.addEventListener(um,h),u.dispatchEvent(k),k.defaultPrevented||no(j??document.body,{select:!0}),u.removeEventListener(um,h),gv.remove(b)},0)}}},[u,m,h,b]);const N=f.useCallback(j=>{if(!n&&!s||b.paused)return;const w=j.key==="Tab"&&!j.altKey&&!j.ctrlKey&&!j.metaKey,k=document.activeElement;if(w&&k){const E=j.currentTarget,[C,P]=ZR(E);C&&P?!j.shiftKey&&k===P?(j.preventDefault(),n&&no(C,{select:!0})):j.shiftKey&&k===C&&(j.preventDefault(),n&&no(P,{select:!0})):k===E&&j.preventDefault()}},[n,s,b.paused]);return r.jsx(fn.div,{tabIndex:-1,...c,ref:y,onKeyDown:N})});z0.displayName=XR;function QR(e,{select:t=!1}={}){const n=document.activeElement;for(const s of e)if(no(s,{select:t}),document.activeElement!==n)return}function ZR(e){const t=B0(e),n=hv(t,e),s=hv(t.reverse(),e);return[n,s]}function B0(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 hv(e,t){for(const n of e)if(!eA(n,{upTo:t}))return n}function eA(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 tA(e){return e instanceof HTMLInputElement&&"select"in e}function no(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&tA(e)&&t&&e.select()}}var gv=nA();function nA(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=xv(e,t),e.unshift(t)},remove(t){var n;e=xv(e,t),(n=e[0])==null||n.resume()}}}function xv(e,t){const n=[...e],s=n.indexOf(t);return s!==-1&&n.splice(s,1),n}function rA(e){return e.filter(t=>t.tagName!=="A")}var sA="Portal",cg=f.forwardRef((e,t)=>{var u;const{container:n,...s}=e,[i,l]=f.useState(!1);oo(()=>l(!0),[]);const c=n||i&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return c?CT.createPortal(r.jsx(fn.div,{...s,ref:t}),c):null});cg.displayName=sA;function oA(e,t){return f.useReducer((n,s)=>t[n][s]??n,e)}var Wo=e=>{const{present:t,children:n}=e,s=iA(t),i=typeof n=="function"?n({present:s.isPresent}):f.Children.only(n),l=Fn(s.ref,aA(i));return typeof n=="function"||s.isPresent?f.cloneElement(i,{ref:l}):null};Wo.displayName="Presence";function iA(e){const[t,n]=f.useState(),s=f.useRef(null),i=f.useRef(e),l=f.useRef("none"),c=e?"mounted":"unmounted",[u,p]=oA(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return f.useEffect(()=>{const m=gu(s.current);l.current=u==="mounted"?m:"none"},[u]),oo(()=>{const m=s.current,h=i.current;if(h!==e){const y=l.current,b=gu(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]),oo(()=>{if(t){let m;const h=t.ownerDocument.defaultView??window,x=b=>{const j=gu(s.current).includes(CSS.escape(b.animationName));if(b.target===t&&j&&(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=gu(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 gu(e){return(e==null?void 0:e.animationName)||"none"}function aA(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 dm=0;function lA(){f.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??yv()),document.body.insertAdjacentElement("beforeend",e[1]??yv()),dm++,()=>{dm===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),dm--}},[])}function yv(){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 os=function(){return os=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},os.apply(this,arguments)};function U0(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 cA(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 Mu="right-scroll-bar-position",Fu="width-before-scroll-bar",uA="with-scroll-bars-hidden",dA="--removed-body-scroll-bar-size";function fm(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function fA(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 pA=typeof window<"u"?f.useLayoutEffect:f.useEffect,bv=new WeakMap;function mA(e,t){var n=fA(null,function(s){return e.forEach(function(i){return fm(i,s)})});return pA(function(){var s=bv.get(n);if(s){var i=new Set(s),l=new Set(e),c=n.current;i.forEach(function(u){l.has(u)||fm(u,null)}),l.forEach(function(u){i.has(u)||fm(u,c)})}bv.set(n,e)},[e]),n}function hA(e){return e}function gA(e,t){t===void 0&&(t=hA);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 xA(e){e===void 0&&(e={});var t=gA(null);return t.options=os({async:!0,ssr:!1},e),t}var V0=function(e){var t=e.sideCar,n=U0(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,os({},n))};V0.isSideCarExport=!0;function yA(e,t){return e.useMedium(t),V0}var H0=xA(),pm=function(){},Od=f.forwardRef(function(e,t){var n=f.useRef(null),s=f.useState({onScrollCapture:pm,onWheelCapture:pm,onTouchMoveCapture:pm}),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,N=e.noIsolation,j=e.inert,w=e.allowPinchZoom,k=e.as,E=k===void 0?"div":k,C=e.gapMode,P=U0(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),$=y,T=mA([n,t]),D=os(os({},P),i);return f.createElement(f.Fragment,null,h&&f.createElement($,{sideCar:H0,removeScrollBar:m,shards:x,noRelative:b,noIsolation:N,inert:j,setCallbacks:l,allowPinchZoom:!!w,lockRef:n,gapMode:C}),c?f.cloneElement(f.Children.only(u),os(os({},D),{ref:T})):f.createElement(E,os({},D,{className:p,ref:T}),u))});Od.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Od.classNames={fullWidth:Fu,zeroRight:Mu};var bA=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function vA(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=bA();return t&&e.setAttribute("nonce",t),e}function wA(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function jA(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var kA=function(){var e=0,t=null;return{add:function(n){e==0&&(t=vA())&&(wA(t,n),jA(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},SA=function(){var e=kA();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},W0=function(){var e=SA(),t=function(n){var s=n.styles,i=n.dynamic;return e(s,i),null};return t},NA={left:0,top:0,right:0,gap:0},mm=function(e){return parseInt(e||"",10)||0},CA=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[mm(n),mm(s),mm(i)]},EA=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return NA;var t=CA(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])}},TA=W0(),qi="data-scroll-locked",PA=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(uA,` {
|
|
467
|
+
overflow: hidden `).concat(s,`;
|
|
468
|
+
padding-right: `).concat(u,"px ").concat(s,`;
|
|
469
|
+
}
|
|
470
|
+
body[`).concat(qi,`] {
|
|
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(Mu,` {
|
|
484
|
+
right: `).concat(u,"px ").concat(s,`;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
.`).concat(Fu,` {
|
|
488
|
+
margin-right: `).concat(u,"px ").concat(s,`;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.`).concat(Mu," .").concat(Mu,` {
|
|
492
|
+
right: 0 `).concat(s,`;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.`).concat(Fu," .").concat(Fu,` {
|
|
496
|
+
margin-right: 0 `).concat(s,`;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
body[`).concat(qi,`] {
|
|
500
|
+
`).concat(dA,": ").concat(u,`px;
|
|
501
|
+
}
|
|
502
|
+
`)},vv=function(){var e=parseInt(document.body.getAttribute(qi)||"0",10);return isFinite(e)?e:0},RA=function(){f.useEffect(function(){return document.body.setAttribute(qi,(vv()+1).toString()),function(){var e=vv()-1;e<=0?document.body.removeAttribute(qi):document.body.setAttribute(qi,e.toString())}},[])},AA=function(e){var t=e.noRelative,n=e.noImportant,s=e.gapMode,i=s===void 0?"margin":s;RA();var l=f.useMemo(function(){return EA(i)},[i]);return f.createElement(TA,{styles:PA(l,!t,i,n?"":"!important")})},uh=!1;if(typeof window<"u")try{var xu=Object.defineProperty({},"passive",{get:function(){return uh=!0,!0}});window.addEventListener("test",xu,xu),window.removeEventListener("test",xu,xu)}catch{uh=!1}var Pi=uh?{passive:!1}:!1,DA=function(e){return e.tagName==="TEXTAREA"},K0=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!DA(e)&&n[t]==="visible")},LA=function(e){return K0(e,"overflowY")},$A=function(e){return K0(e,"overflowX")},wv=function(e,t){var n=t.ownerDocument,s=t;do{typeof ShadowRoot<"u"&&s instanceof ShadowRoot&&(s=s.host);var i=q0(e,s);if(i){var l=G0(e,s),c=l[1],u=l[2];if(c>u)return!0}s=s.parentNode}while(s&&s!==n.body);return!1},OA=function(e){var t=e.scrollTop,n=e.scrollHeight,s=e.clientHeight;return[t,n,s]},IA=function(e){var t=e.scrollLeft,n=e.scrollWidth,s=e.clientWidth;return[t,n,s]},q0=function(e,t){return e==="v"?LA(t):$A(t)},G0=function(e,t){return e==="v"?OA(t):IA(t)},_A=function(e,t){return e==="h"&&t==="rtl"?-1:1},MA=function(e,t,n,s,i){var l=_A(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=G0(e,u),N=b[0],j=b[1],w=b[2],k=j-w-l*N;(N||k)&&q0(e,u)&&(x+=k,y+=N);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}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},yu=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},jv=function(e){return[e.deltaX,e.deltaY]},kv=function(e){return e&&"current"in e?e.current:e},FA=function(e,t){return e[0]===t[0]&&e[1]===t[1]},zA=function(e){return`
|
|
503
|
+
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
504
|
+
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
505
|
+
`)},BA=0,Ri=[];function UA(e){var t=f.useRef([]),n=f.useRef([0,0]),s=f.useRef(),i=f.useState(BA++)[0],l=f.useState(W0)[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 j=cA([e.lockRef.current],(e.shards||[]).map(kv),!0).filter(Boolean);return j.forEach(function(w){return w.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),j.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var u=f.useCallback(function(j,w){if("touches"in j&&j.touches.length===2||j.type==="wheel"&&j.ctrlKey)return!c.current.allowPinchZoom;var k=yu(j),E=n.current,C="deltaX"in j?j.deltaX:E[0]-k[0],P="deltaY"in j?j.deltaY:E[1]-k[1],$,T=j.target,D=Math.abs(C)>Math.abs(P)?"h":"v";if("touches"in j&&D==="h"&&T.type==="range")return!1;var _=window.getSelection(),Y=_&&_.anchorNode,Q=Y?Y===T||Y.contains(T):!1;if(Q)return!1;var L=wv(D,T);if(!L)return!0;if(L?$=D:($=D==="v"?"h":"v",L=wv(D,T)),!L)return!1;if(!s.current&&"changedTouches"in j&&(C||P)&&(s.current=$),!$)return!0;var W=s.current||$;return MA(W,w,j,W==="h"?C:P)},[]),p=f.useCallback(function(j){var w=j;if(!(!Ri.length||Ri[Ri.length-1]!==l)){var k="deltaY"in w?jv(w):yu(w),E=t.current.filter(function($){return $.name===w.type&&($.target===w.target||w.target===$.shadowParent)&&FA($.delta,k)})[0];if(E&&E.should){w.cancelable&&w.preventDefault();return}if(!E){var C=(c.current.shards||[]).map(kv).filter(Boolean).filter(function($){return $.contains(w.target)}),P=C.length>0?u(w,C[0]):!c.current.noIsolation;P&&w.cancelable&&w.preventDefault()}}},[]),m=f.useCallback(function(j,w,k,E){var C={name:j,delta:w,target:k,should:E,shadowParent:VA(k)};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(P){return P!==C})},1)},[]),h=f.useCallback(function(j){n.current=yu(j),s.current=void 0},[]),x=f.useCallback(function(j){m(j.type,jv(j),j.target,u(j,e.lockRef.current))},[]),y=f.useCallback(function(j){m(j.type,yu(j),j.target,u(j,e.lockRef.current))},[]);f.useEffect(function(){return Ri.push(l),e.setCallbacks({onScrollCapture:x,onWheelCapture:x,onTouchMoveCapture:y}),document.addEventListener("wheel",p,Pi),document.addEventListener("touchmove",p,Pi),document.addEventListener("touchstart",h,Pi),function(){Ri=Ri.filter(function(j){return j!==l}),document.removeEventListener("wheel",p,Pi),document.removeEventListener("touchmove",p,Pi),document.removeEventListener("touchstart",h,Pi)}},[]);var b=e.removeScrollBar,N=e.inert;return f.createElement(f.Fragment,null,N?f.createElement(l,{styles:zA(i)}):null,b?f.createElement(AA,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function VA(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const HA=yA(H0,UA);var Y0=f.forwardRef(function(e,t){return f.createElement(Od,os({},e,{ref:t,sideCar:HA}))});Y0.classNames=Od.classNames;var WA=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ai=new WeakMap,bu=new WeakMap,vu={},hm=0,J0=function(e){return e&&(e.host||J0(e.parentNode))},KA=function(e,t){return t.map(function(n){if(e.contains(n))return n;var s=J0(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})},qA=function(e,t,n,s){var i=KA(t,Array.isArray(e)?e:[e]);vu[n]||(vu[n]=new WeakMap);var l=vu[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),N=b!==null&&b!=="false",j=(Ai.get(y)||0)+1,w=(l.get(y)||0)+1;Ai.set(y,j),l.set(y,w),c.push(y),j===1&&N&&bu.set(y,!0),w===1&&y.setAttribute(n,"true"),N||y.setAttribute(s,"true")}catch(k){console.error("aria-hidden: cannot operate on ",y,k)}})};return h(t),u.clear(),hm++,function(){c.forEach(function(x){var y=Ai.get(x)-1,b=l.get(x)-1;Ai.set(x,y),l.set(x,b),y||(bu.has(x)||x.removeAttribute(s),bu.delete(x)),b||x.removeAttribute(n)}),hm--,hm||(Ai=new WeakMap,Ai=new WeakMap,bu=new WeakMap,vu={})}},GA=function(e,t,n){n===void 0&&(n="data-aria-hidden");var s=Array.from(Array.isArray(e)?e:[e]),i=WA(e);return i?(s.push.apply(s,Array.from(i.querySelectorAll("[aria-live], script"))),qA(s,i,n,"aria-hidden")):function(){return null}};function YA(e){const t=JA(e),n=f.forwardRef((s,i)=>{const{children:l,...c}=s,u=f.Children.toArray(l),p=u.find(QA);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 JA(e){const t=f.forwardRef((n,s)=>{const{children:i,...l}=n;if(f.isValidElement(i)){const c=e3(i),u=ZA(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 XA=Symbol("radix.slottable");function QA(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===XA}function ZA(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 e3(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 Id="Dialog",[X0,Q0]=Ho(Id),[t3,Jr]=X0(Id),Z0=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]=$d({prop:s,defaultProp:i??!1,onChange:l,caller:Id});return r.jsx(t3,{scope:t,triggerRef:u,contentRef:p,contentId:Ki(),titleId:Ki(),descriptionId:Ki(),open:m,onOpenChange:h,onOpenToggle:f.useCallback(()=>h(x=>!x),[h]),modal:c,children:n})};Z0.displayName=Id;var ek="DialogTrigger",tk=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Jr(ek,n),l=Fn(t,i.triggerRef);return r.jsx(fn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":fg(i.open),...s,ref:l,onClick:Kt(e.onClick,i.onOpenToggle)})});tk.displayName=ek;var ug="DialogPortal",[n3,nk]=X0(ug,{forceMount:void 0}),rk=e=>{const{__scopeDialog:t,forceMount:n,children:s,container:i}=e,l=Jr(ug,t);return r.jsx(n3,{scope:t,forceMount:n,children:f.Children.map(s,c=>r.jsx(Wo,{present:n||l.open,children:r.jsx(cg,{asChild:!0,container:i,children:c})}))})};rk.displayName=ug;var Zu="DialogOverlay",sk=f.forwardRef((e,t)=>{const n=nk(Zu,e.__scopeDialog),{forceMount:s=n.forceMount,...i}=e,l=Jr(Zu,e.__scopeDialog);return l.modal?r.jsx(Wo,{present:s||l.open,children:r.jsx(s3,{...i,ref:t})}):null});sk.displayName=Zu;var r3=YA("DialogOverlay.RemoveScroll"),s3=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Jr(Zu,n);return r.jsx(Y0,{as:r3,allowPinchZoom:!0,shards:[i.contentRef],children:r.jsx(fn.div,{"data-state":fg(i.open),...s,ref:t,style:{pointerEvents:"auto",...s.style}})})}),zo="DialogContent",ok=f.forwardRef((e,t)=>{const n=nk(zo,e.__scopeDialog),{forceMount:s=n.forceMount,...i}=e,l=Jr(zo,e.__scopeDialog);return r.jsx(Wo,{present:s||l.open,children:l.modal?r.jsx(o3,{...i,ref:t}):r.jsx(i3,{...i,ref:t})})});ok.displayName=zo;var o3=f.forwardRef((e,t)=>{const n=Jr(zo,e.__scopeDialog),s=f.useRef(null),i=Fn(t,n.contentRef,s);return f.useEffect(()=>{const l=s.current;if(l)return GA(l)},[]),r.jsx(ik,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Kt(e.onCloseAutoFocus,l=>{var c;l.preventDefault(),(c=n.triggerRef.current)==null||c.focus()}),onPointerDownOutside:Kt(e.onPointerDownOutside,l=>{const c=l.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0;(c.button===2||u)&&l.preventDefault()}),onFocusOutside:Kt(e.onFocusOutside,l=>l.preventDefault())})}),i3=f.forwardRef((e,t)=>{const n=Jr(zo,e.__scopeDialog),s=f.useRef(!1),i=f.useRef(!1);return r.jsx(ik,{...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()}})}),ik=f.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:s,onOpenAutoFocus:i,onCloseAutoFocus:l,...c}=e,u=Jr(zo,n),p=f.useRef(null),m=Fn(t,p);return lA(),r.jsxs(r.Fragment,{children:[r.jsx(z0,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:i,onUnmountAutoFocus:l,children:r.jsx(lg,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":fg(u.open),...c,ref:m,onDismiss:()=>u.onOpenChange(!1)})}),r.jsxs(r.Fragment,{children:[r.jsx(l3,{titleId:u.titleId}),r.jsx(u3,{contentRef:p,descriptionId:u.descriptionId})]})]})}),dg="DialogTitle",ak=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Jr(dg,n);return r.jsx(fn.h2,{id:i.titleId,...s,ref:t})});ak.displayName=dg;var lk="DialogDescription",ck=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Jr(lk,n);return r.jsx(fn.p,{id:i.descriptionId,...s,ref:t})});ck.displayName=lk;var uk="DialogClose",dk=f.forwardRef((e,t)=>{const{__scopeDialog:n,...s}=e,i=Jr(uk,n);return r.jsx(fn.button,{type:"button",...s,ref:t,onClick:Kt(e.onClick,()=>i.onOpenChange(!1))})});dk.displayName=uk;function fg(e){return e?"open":"closed"}var fk="DialogTitleWarning",[a3,pk]=TR(fk,{contentName:zo,titleName:dg,docsSlug:"dialog"}),l3=({titleId:e})=>{const t=pk(fk),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},c3="DialogDescriptionWarning",u3=({contentRef:e,descriptionId:t})=>{const s=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${pk(c3).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},mk=Z0,hk=tk,gk=rk,pg=sk,mg=ok,hg=ak,gg=ck,xg=dk;const ir=mk,d3=hk,f3=gk,p3=xg,xk=f.forwardRef(({className:e,...t},n)=>r.jsx(pg,{ref:n,className:Pe("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));xk.displayName=pg.displayName;const qn=f.forwardRef(({className:e,children:t,...n},s)=>r.jsxs(f3,{children:[r.jsx(xk,{}),r.jsx(mg,{ref:s,className:Pe("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})]}));qn.displayName=mg.displayName;function Xr({className:e,...t}){return r.jsx("div",{className:Pe("flex flex-col space-y-2 text-left",e),...t})}function As({className:e,...t}){return r.jsx("div",{className:Pe("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const Gn=f.forwardRef(({className:e,...t},n)=>r.jsx(hg,{ref:n,className:Pe("text-lg font-semibold tracking-tight text-foreground",e),...t}));Gn.displayName=hg.displayName;const ms=f.forwardRef(({className:e,...t},n)=>r.jsx(gg,{ref:n,className:Pe("text-sm leading-6 text-muted-foreground",e),...t}));ms.displayName=gg.displayName;const m3=-1,h3=-40;function gm(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(h3,l*m3)),i=s,l=0,s++,p=!0;break}else l++,s++;if(!p)return-1/0}return n}const Sv={page:0,project:1,assignment:2,playbook:3,server:4,todo:5};function yg(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=gm(s,c.title.toLowerCase())*1,p=c.subtitle?gm(s,c.subtitle.toLowerCase())*.5:-1/0,m=(x=c.keywords)!=null&&x.length?gm(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:(Sv[c.type]??99)-(Sv[u.type]??99)),l.slice(0,n)}const g3={page:"Page",project:"Project",assignment:"Assignment",playbook:"Playbook",server:"Server",todo:"Todo"};function x3({entries:e}){const{paletteOpen:t,closePalette:n}=co(),s=Dt(),[i,l]=f.useState(""),[c,u]=f.useState(0),p=f.useRef(null),m=f.useMemo(()=>yg(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(ir,{open:t,onOpenChange:y=>y?null:n(),children:r.jsxs(qn,{className:"max-w-xl p-0 gap-0",children:[r.jsx(Gn,{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 N=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 ${N?"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:g3[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 y3({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(DT,{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 b3({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 N;(N=p.current)==null||N.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(N){if(N.key==="Enter"){if(N.preventDefault(),!y){u(!0);return}s(m)}}return r.jsxs(r.Fragment,{children:[r.jsx("input",{ref:p,type:"text",value:i,onChange:N=>{l(N.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 v3({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 j;(j=x.current)==null||j.focus()},[]),f.useEffect(()=>{let j=!1;return i({phase:"loading"}),Promise.resolve().then(()=>e.loadOptions()).then(w=>{j||i({phase:"loaded",options:w})}).catch(w=>{if(j)return;const k=w instanceof Error?w.message:"Failed to load options";i({phase:"error",message:k})}),()=>{j=!0}},[e,m]);const b=f.useMemo(()=>{if(s.phase!=="loaded")return[];const j=s.options.map(w=>({type:"option",title:w.label,subtitle:w.hint,keywords:[w.value],option:w}));return yg(l,j,100)},[s,l]);f.useEffect(()=>{p(0)},[b.length]),f.useEffect(()=>{var w;const j=(w=y.current)==null?void 0:w.querySelector(`[data-picker-idx="${u}"]`);j==null||j.scrollIntoView({block:"nearest"})},[u]);function N(j){if(s.phase==="loaded"){if(j.key==="ArrowDown")j.preventDefault(),p(w=>Math.min(b.length-1,w+1));else if(j.key==="ArrowUp")j.preventDefault(),p(w=>Math.max(0,w-1));else if(j.key==="Enter"){j.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:j=>c(j.target.value),onKeyDown:N,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(j=>j+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((j,w)=>{const k=w===u;return r.jsxs("button",{type:"button","data-picker-idx":w,onClick:()=>n(j.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 ${k?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[r.jsx("span",{className:"min-w-0 flex-1 truncate",children:j.option.label}),j.option.hint?r.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:j.option.hint}):null]},j.option.value)})})]})}function w3({entries:e}){var ue,he;const t=Dt(),{actionsPaletteOpen:n,closeActionsPalette:s,customBindings:i,bindAction:l,findConflict:c,pendingActionKind:u,consumePendingActionKind:p}=co(),[m,h]=f.useState(""),[x,y]=f.useState(0),[b,N]=f.useState(null),[j,w]=f.useState(""),[k,E]=f.useState(null),[C,P]=f.useState(null),[$,T]=f.useState(!1),[D,_]=f.useState(null),Y=f.useRef(null),Q=f.useMemo(()=>e.map(V=>({type:V.group.toLowerCase(),title:V.title,subtitle:V.subtitle,keywords:V.keywords,action:V})),[e]),L=f.useMemo(()=>yg(m,Q,50),[m,Q]);f.useEffect(()=>{y(0)},[m,n]),f.useEffect(()=>{n||(h(""),N(null),w(""),E(null),P(null),T(!1),_(null))},[n]),f.useEffect(()=>{if(!n||!u)return;const V=p();if(!V)return;const oe=e.find(de=>de.bindableKind===V);oe&&W(oe)},[n,u]),f.useEffect(()=>{var oe;const V=(oe=Y.current)==null?void 0:oe.querySelector(`[data-palette-idx="${x}"]`);V==null||V.scrollIntoView({block:"nearest"})},[x]);async function W(V){if(!$){if(V.flow&&V.flow.steps.length>0){E({action:V,stepIndex:0,values:{}}),_(null);return}if(V.requiresInput){N(V),w(""),_(null);return}if(V.run){T(!0),_(null);try{await V.run(),s()}catch(oe){_(oe instanceof Error?oe.message:"Action failed")}finally{T(!1)}}}}async function te(V){if(!k)return;const oe=k.action.flow.steps[k.stepIndex],de={...k.values,[oe.id]:V};if(k.stepIndex+1<k.action.flow.steps.length){E({action:k.action,stepIndex:k.stepIndex+1,values:de});return}T(!0),_(null);try{await k.action.flow.submit(de,{navigate:t}),s()}catch(ye){_(ye instanceof Error?ye.message:"Action failed")}finally{T(!1)}}function F(){if(k&&!$){if(k.stepIndex===0){E(null),_(null);return}E({action:k.action,stepIndex:k.stepIndex-1,values:k.values}),_(null)}}async function H(){if($||!(b!=null&&b.requiresInput))return;const V=j.trim();if(V){T(!0),_(null);try{await b.requiresInput.runWithInput(V),s()}catch(oe){_(oe instanceof Error?oe.message:"Action failed")}finally{T(!1)}}}function X(V){if(V.key==="ArrowDown")V.preventDefault(),y(oe=>Math.min(L.length-1,oe+1));else if(V.key==="ArrowUp")V.preventDefault(),y(oe=>Math.max(0,oe-1));else if(V.key==="Enter"&&(V.metaKey||V.ctrlKey)){V.preventDefault();const oe=L[x];oe!=null&&oe.action.bindableKind&&P({action:oe.action,combo:null,conflict:null,saving:!1,error:null})}else if(V.key==="Enter"){V.preventDefault();const oe=L[x];oe&&W(oe.action)}}function le(V){V.key==="Enter"?(V.preventDefault(),H()):V.key==="Escape"&&(V.preventDefault(),N(null),w(""))}function O(V){if(!C||V.key==="Escape"||V.key==="Enter"&&!C.combo)return;V.preventDefault(),V.stopPropagation();const oe=A0(V.nativeEvent);if(!oe)return;const de=c(oe,C.action.bindableKind);P({...C,combo:oe,conflict:de,error:null})}async function K(){var V;if(!(!C||!C.combo||!C.action.bindableKind)){if((V=C.conflict)!=null&&V.description){P({...C,error:`Reserved: ${C.conflict.description}`});return}P({...C,saving:!0,error:null});try{await l(C.action.bindableKind,C.combo),P(null)}catch(oe){P({...C,saving:!1,error:oe instanceof Error?oe.message:"Failed to save binding"})}}}const A=b!==null,B=k!==null,Z=C!==null,I=k?k.action.flow.steps[k.stepIndex]:null;return r.jsx(ir,{open:n,onOpenChange:V=>V?null:s(),children:r.jsxs(qn,{className:"max-w-xl p-0 gap-0",onEscapeKeyDown:V=>{if(!$){if(Z){V.preventDefault(),P(null);return}if(B){V.preventDefault(),F();return}A&&(V.preventDefault(),N(null),w(""),_(null))}},children:[r.jsx(Gn,{className:"sr-only",children:"Actions palette"}),Z&&C?r.jsxs("div",{onKeyDown:O,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(oh,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),r.jsxs("span",{className:"text-sm text-foreground",children:["Bind hotkey for ",C.action.title]})]}),r.jsx("div",{className:"px-4 py-6 text-center",children:C.combo?r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"text-2xl font-semibold tracking-wide text-foreground",children:cs(C.combo)}),(ue=C.conflict)!=null&&ue.description?r.jsxs("div",{className:"text-sm text-destructive",children:["Reserved: ",C.conflict.description," (cannot bind)"]}):(he=C.conflict)!=null&&he.kind?r.jsxs("div",{className:"text-sm text-amber-500 dark:text-amber-400",children:['Already bound to "',C.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."}),C.error?r.jsx("div",{className:"text-sm text-destructive",children:C.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:C.saving?"Saving…":""})]}),r.jsx("button",{type:"button",className:"sr-only",onClick:()=>void K(),"data-bind-confirm":!0}),r.jsx("input",{type:"hidden",onKeyDown:V=>{V.key==="Enter"&&K()}})]}):B&&I&&k?r.jsxs(r.Fragment,{children:[r.jsx(y3,{label:`${k.action.title} · ${I.label}`,onBack:F,disabled:$,stepCounter:{current:k.stepIndex+1,total:k.action.flow.steps.length}}),I.kind==="text"?r.jsx(b3,{step:I,initialValue:k.values[I.id],disabled:$,onSubmit:te}):r.jsx(v3,{step:I,disabled:$,onSubmit:te}),D?r.jsx("div",{className:"border-t border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:D}):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:$?"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:j,onChange:V=>w(V.target.value),onKeyDown:le,placeholder:b.requiresInput.placeholder,disabled:$,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"}),D?r.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:D}):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:$?"Running…":""})]})]}):r.jsxs(r.Fragment,{children:[r.jsx("input",{autoFocus:!0,type:"text",value:m,onChange:V=>h(V.target.value),onKeyDown:X,placeholder:"Run an action: new project, new todo, toggle…",disabled:$,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"}),D?r.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:D}):null,r.jsx("div",{ref:Y,className:"max-h-[60vh] overflow-y-auto p-1",children:L.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"}):L.map((V,oe)=>{const de=oe===x,ye=V.action.bindableKind,je=ye?i[ye]:void 0;return r.jsxs("button",{type:"button","data-palette-idx":oe,onClick:()=>W(V.action),onMouseEnter:()=>y(oe),disabled:$,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:V.action.group}),r.jsx("span",{className:"min-w-0 flex-1 truncate",children:V.action.title}),V.action.subtitle?r.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:V.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:cs(je)}):null,ye?r.jsx("span",{role:"button",tabIndex:-1,"aria-label":"Bind hotkey",onClick:fe=>{fe.preventDefault(),fe.stopPropagation(),P({action:V.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(oh,{className:"h-3.5 w-3.5","aria-hidden":"true"})}):null]},V.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:$?"Running…":`${L.length} action${L.length===1?"":"s"}`})]})]})]})})}const j3=[{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 k3(e){const t=sr(e);return t?j3.find(n=>n.combo===t)??null:null}const cl={"new-workspace":"New Workspace","new-project":"New Project","new-todo":"New Todo","new-assignment":"New Assignment"},S3={global:"Global","list:overview":"Overview","list:projects":"Projects list","list:assignments":"Assignments list","list:todos":"Todos list",assignment:"Assignment detail",project:"Project detail"},N3=["global","list:overview","list:projects","list:assignments","list:todos","project","assignment"];function Nv(e){if(e.includes(" ")){const[t,n]=e.split(" ");return`${cs(t)} then ${cs(n)}`}return cs(e)}function C3(){const{cheatsheetOpen:e,closeCheatsheet:t,listBindings:n,customBindings:s,actionEntries:i}=co(),l=f.useMemo(()=>{const p=new Set;for(const m of Object.values(s))typeof m=="string"&&m&&p.add(sr(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(sr(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(ir,{open:e,onOpenChange:p=>p?null:t(),children:r.jsxs(qn,{className:"max-w-2xl",children:[r.jsx(Gn,{children:"Keyboard shortcuts"}),r.jsxs(ms,{children:["Press Esc to close. ",cs("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:[N3.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:S3[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:Nv(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:Nv(p.combo)})]},`custom-${p.kind}`))})]}):null]})]})})}const bg={bindings:{},custom:!1};let bl=null,Di=null;const dh=new Set;function yk(e){bl=e;for(const t of dh)t(e)}function vg(e){if(!e||typeof e!="object")return bg;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(!dR(s)||typeof i!="string"||i.trim()==="")continue;const l=sr(i);l&&(n[s]=l)}return{bindings:n,custom:t.custom===!0}}function E3(){return bl?Promise.resolve(bl):Di||(Di=fetch("/api/config/hotkeys").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=vg(e);return bl=t,Di=null,t}).catch(()=>(Di=null,bg)),Di)}function T3(){const[e,t]=f.useState(()=>bl??bg);return f.useEffect(()=>{let n=!1;return E3().then(s=>{n||t(s)}),dh.add(t),()=>{n=!0,dh.delete(t)}},[]),e}async function Cv(e){const t={};for(const i of Dd){const l=e[i];if(typeof l!="string")continue;const c=sr(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=vg(await n.json());return yk(s),s}async function P3(){const e=await fetch("/api/config/hotkeys",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=vg(await e.json());return yk(t),t}const Ev=1500;function R3(e){const t=e.match(/^\/w\/([^/]+)(?:\/|$)/);return t?`/w/${t[1]}`:""}const bk=f.createContext(null);function A3({children:e}){const{toggleTheme:t}=sg(),n=Wn(),s=Dt(),i=R3(n.pathname),[l,c]=f.useState(!1),u=Vo(l),p=Ad(l),m=R0(l),h=og(l),x=D0(l),y=f.useMemo(()=>{var at,Be,ft,be;const G=u.data??[],De=((at=p.data)==null?void 0:at.assignments)??[],ke=((Be=m.data)==null?void 0:Be.playbooks)??[],Re=((ft=h.data)==null?void 0:ft.sessions)??[],Ie=(((be=x.data)==null?void 0:be.workspaces)??[]).flatMap(Ne=>Ne.items.map(z=>({...z,workspace:Ne.workspace})));return SR({projects:G,assignments:De,playbooks:ke,servers:Re,todos:Ie,wsPrefix:i})},[u.data,p.data,m.data,h.data,x.data,i]),N=f.useMemo(()=>h0(n.pathname),[n.pathname]).projectSlug,j=f.useMemo(()=>{var G;return N?((G=u.data)==null?void 0:G.find(De=>De.slug===N))??null:null},[u.data,N]),w=(j==null?void 0:j.title)??null,k=(j==null?void 0:j.workspace)??null,E=f.useMemo(()=>{var G;return ER({playbooks:((G=m.data)==null?void 0:G.playbooks)??[],projectSlug:N,currentProjectTitle:w,currentProjectWorkspace:k,wsPrefix:i,refetchPlaybooks:m.refetch,navigate:s,toggleTheme:t})},[m.data,m.refetch,N,w,k,i,s,t]),C=f.useRef(new Map),P=f.useRef(["global"]),$=f.useRef({phase:"idle"}),T=f.useRef(null),D=f.useRef(1),[_,Y]=f.useState(!1),[Q,L]=f.useState(!1),[W,te]=f.useState(!1),[F,H]=f.useState(null);f.useEffect(()=>{(_||W)&&c(!0)},[_,W]);const{bindings:X}=T3(),le=f.useMemo(()=>gR(X),[X]),O=f.useCallback(G=>{const De=D.current++;return C.current.set(De,{...G,id:De}),De},[]),K=f.useCallback(G=>{C.current.delete(G)},[]),A=f.useCallback(G=>{P.current.push(G)},[]),B=f.useCallback(G=>{const De=P.current;for(let ke=De.length-1;ke>=0;ke--)if(De[ke]===G){De.splice(ke,1);return}},[]),Z=f.useCallback(()=>Y(!0),[]),I=f.useCallback(()=>Y(!1),[]),ue=f.useCallback(()=>L(!0),[]),he=f.useCallback(()=>L(!1),[]),V=f.useCallback(()=>te(!0),[]),oe=f.useCallback(()=>{te(!1),H(null)},[]),de=f.useCallback(()=>Array.from(C.current.values()),[]),ye=f.useCallback(()=>{let G=null;return H(De=>(G=De,null)),G},[]),je=f.useCallback(G=>{H(G),te(!0)},[]),fe=f.useCallback((G,De)=>{const ke=sr(G);if(!ke)return null;if(mR(ke)){const Re=k3(ke);return{description:(Re==null?void 0:Re.description)??"Reserved built-in shortcut"}}for(const[Re,Xe]of Object.entries(le))if(!(De&&Re===De)&&Xe===ke)return{kind:Re};return null},[le]),Ye=f.useCallback(async(G,De)=>{const ke=sr(De);if(!ke)throw new Error("Empty combo");const Re=fe(ke,G);if(Re){const Ie=Re.description?`Reserved: ${Re.description}`:`Already bound to "${Re.kind}"`;throw new Error(Ie)}const Xe={...X,[G]:ke};return await Cv(Xe),ke},[X,fe]),Je=f.useCallback(async G=>{if(!X[G])return;const De={...X};delete De[G],await Cv(De)},[X]);f.useEffect(()=>{$.current={phase:"idle"},T.current!==null&&(window.clearTimeout(T.current),T.current=null)},[n.pathname]),f.useEffect(()=>{function G(Ie){if(!(Ie instanceof HTMLElement))return!1;const at=Ie.tagName;return!!(at==="INPUT"||at==="TEXTAREA"||at==="SELECT"||Ie.isContentEditable||Ie.closest('[role="combobox"], [role="textbox"]'))}function De(){return!!(document.querySelector('[role="dialog"][data-state="open"]')||document.querySelector('[role="alertdialog"][data-state="open"]'))}function ke(){const Ie=P.current;return Ie[Ie.length-1]??"global"}function Re(Ie){return Ie.scope==="global"?!0:Ie.scope===ke()}function Xe(Ie){const at=hu(Ie,"Mod+k"),Be=hu(Ie,"Mod+Shift+k"),ft=Ie.key==="Escape",be=at||Be||ft;if(De()&&!be||G(Ie.target)&&!be)return;const Ne=$.current;if(Ne.phase==="awaiting-second")if(Date.now()-Ne.startedAt>Ev)$.current={phase:"idle"},T.current!==null&&(window.clearTimeout(T.current),T.current=null);else{const pe=Array.from(C.current.values());for(const Oe of pe){if(!Re(Oe))continue;const ee=Oe.keys.split(" ");if(!(ee.length!==2||ee[0]!=="g")&&hu(Ie,ee[1])&&!(Oe.when&&!Oe.when())){Ie.preventDefault(),$.current={phase:"idle"},T.current!==null&&(window.clearTimeout(T.current),T.current=null),Oe.handler(Ie);return}}$.current={phase:"idle"},T.current!==null&&(window.clearTimeout(T.current),T.current=null)}const z=Array.from(C.current.values());for(const ne of z){if(!Re(ne))continue;const pe=ne.keys.split(" ");if(pe.length===1&&hu(Ie,pe[0])&&!(ne.when&&!ne.when())){Ie.preventDefault(),ne.handler(Ie);return}}Ie.key==="g"&&!Ie.metaKey&&!Ie.ctrlKey&&!Ie.altKey&&!Ie.shiftKey&&Array.from(C.current.values()).some(pe=>Re(pe)&&pe.keys.startsWith("g "))&&(Ie.preventDefault(),$.current={phase:"awaiting-second",startedAt:Date.now()},T.current!==null&&window.clearTimeout(T.current),T.current=window.setTimeout(()=>{$.current={phase:"idle"},T.current=null},Ev))}return window.addEventListener("keydown",Xe),()=>{window.removeEventListener("keydown",Xe),T.current!==null&&(window.clearTimeout(T.current),T.current=null)}},[]),f.useEffect(()=>{const G=O({keys:"Shift+t",handler:()=>t(),scope:"global",description:"Toggle light/dark theme"});return()=>K(G)},[O,K,t]),f.useEffect(()=>{const G=O({keys:"?",scope:"global",description:"Show keyboard shortcuts",handler:()=>ue()});return()=>K(G)},[O,K,ue]),f.useEffect(()=>{const G=O({keys:"Mod+k",scope:"global",description:"Open command palette",handler:()=>{if(_){I();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||Z()}});return()=>K(G)},[O,K,Z,I,_]),f.useEffect(()=>{const G=O({keys:"Mod+Shift+k",scope:"global",description:"Open actions palette",handler:()=>{if(W){oe();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||V()}});return()=>K(G)},[O,K,V,oe,W]),f.useEffect(()=>{const De=[{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(ke=>O({keys:`g ${ke.suffix}`,scope:"global",description:ke.desc,handler:()=>s(Iu(ke.basePath,i))}));return()=>De.forEach(K)},[O,K,s,i]),f.useEffect(()=>{const G=[];for(const[De,ke]of Object.entries(le)){if(!ke)continue;const Re=E.find(Ie=>Ie.bindableKind===De),Xe=Re?`Custom: ${Re.title}`:`Custom: ${De}`;G.push(O({keys:ke,scope:"global",description:Xe,handler:()=>{H(De),te(!0)}}))}return()=>G.forEach(K)},[O,K,le,E]);const ot=f.useMemo(()=>({register:O,unregister:K,pushScope:A,popScope:B,openPalette:Z,closePalette:I,paletteOpen:_,openCheatsheet:ue,closeCheatsheet:he,cheatsheetOpen:Q,openActionsPalette:V,closeActionsPalette:oe,actionsPaletteOpen:W,listBindings:de,wsPrefix:i,paletteEntries:y,actionEntries:E,userBindings:X,customBindings:le,bindAction:Ye,unbindAction:Je,findConflict:fe,openActionsPaletteWithAction:je,pendingActionKind:F,consumePendingActionKind:ye}),[O,K,A,B,Z,I,_,ue,he,Q,V,oe,W,de,i,y,E,X,le,Ye,Je,fe,je,F,ye]);return r.jsxs(bk.Provider,{value:ot,children:[e,r.jsx(x3,{entries:y}),r.jsx(w3,{entries:E}),r.jsx(C3,{})]})}function co(){const e=f.useContext(bk);if(!e)throw new Error("useHotkeyContext must be used within HotkeyProvider");return e}function Vt({keys:e,handler:t,scope:n="global",description:s,when:i,enabled:l=!0}){const{register:c,unregister:u}=co(),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 uo(e){const{pushScope:t,popScope:n}=co();f.useEffect(()=>(t(e),()=>n(e)),[t,n,e])}function Ql(e,t){const[n,s]=f.useState(e.length===0?-1:0),i=Wn();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]),Vt({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))}),Vt({keys:"k",scope:t.scope,description:"Select previous row",handler:()=>s(c=>e.length===0?-1:Math.max(0,c<0?0:c-1))}),Vt({keys:"Enter",scope:t.scope,description:"Open selected row",handler:()=>{n>=0&&n<e.length&&t.onOpen(e[n],n)}}),Vt({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 D3({title:e,breadcrumbs:t,projectSlug:n,onOpenMobileNav:s}){const i=on(),{resolvedTheme:l,toggleTheme:c}=sg(),{openPalette:u}=co();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(XT,{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(lo,{className:"h-4 w-4"}),r.jsx("span",{className:"hidden sm:inline font-mono text-xs",children:cs("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(tn,{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(tn,{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(aP,{className:"h-4 w-4"}):r.jsx(QT,{className:"h-4 w-4"}),r.jsx("span",{children:l==="dark"?"Light":"Dark"})]})]})]})})}var L3=Symbol("radix.slottable");function $3(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=L3,t}var vk="AlertDialog",[O3]=Ho(vk,[Q0]),Ds=Q0(),wk=e=>{const{__scopeAlertDialog:t,...n}=e,s=Ds(t);return r.jsx(mk,{...s,...n,modal:!0})};wk.displayName=vk;var I3="AlertDialogTrigger",_3=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=Ds(n);return r.jsx(hk,{...i,...s,ref:t})});_3.displayName=I3;var M3="AlertDialogPortal",jk=e=>{const{__scopeAlertDialog:t,...n}=e,s=Ds(t);return r.jsx(gk,{...s,...n})};jk.displayName=M3;var F3="AlertDialogOverlay",kk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=Ds(n);return r.jsx(pg,{...i,...s,ref:t})});kk.displayName=F3;var Gi="AlertDialogContent",[z3,B3]=O3(Gi),U3=$3("AlertDialogContent"),Sk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:s,...i}=e,l=Ds(n),c=f.useRef(null),u=Fn(t,c),p=f.useRef(null);return r.jsx(a3,{contentName:Gi,titleName:Nk,docsSlug:"alert-dialog",children:r.jsx(z3,{scope:n,cancelRef:p,children:r.jsxs(mg,{role:"alertdialog",...l,...i,ref:u,onOpenAutoFocus:Kt(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(U3,{children:s}),r.jsx(H3,{contentRef:c})]})})})});Sk.displayName=Gi;var Nk="AlertDialogTitle",Ck=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=Ds(n);return r.jsx(hg,{...i,...s,ref:t})});Ck.displayName=Nk;var Ek="AlertDialogDescription",Tk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=Ds(n);return r.jsx(gg,{...i,...s,ref:t})});Tk.displayName=Ek;var V3="AlertDialogAction",Pk=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,i=Ds(n);return r.jsx(xg,{...i,...s,ref:t})});Pk.displayName=V3;var Rk="AlertDialogCancel",Ak=f.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...s}=e,{cancelRef:i}=B3(Rk,n),l=Ds(n),c=Fn(t,i);return r.jsx(xg,{...l,...s,ref:c})});Ak.displayName=Rk;var H3=({contentRef:e})=>{const t=`\`${Gi}\` requires a description for the component to be accessible for screen reader users.
|
|
510
|
+
|
|
511
|
+
You can add a description to the \`${Gi}\` by passing a \`${Ek}\` 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 \`${Gi}\`. 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},W3=wk,K3=jk,Dk=kk,Lk=Sk,$k=Pk,Ok=Ak,Ik=Ck,_k=Tk;const ed=W3,q3=K3,Mk=f.forwardRef(({className:e,...t},n)=>r.jsx(Dk,{ref:n,className:Pe("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));Mk.displayName=Dk.displayName;const Dl=f.forwardRef(({className:e,...t},n)=>r.jsxs(q3,{children:[r.jsx(Mk,{}),r.jsx(Lk,{ref:n,className:Pe("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})]}));Dl.displayName=Lk.displayName;function td({className:e,...t}){return r.jsx("div",{className:Pe("flex flex-col space-y-2 text-left",e),...t})}function nd({className:e,...t}){return r.jsx("div",{className:Pe("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const Ll=f.forwardRef(({className:e,...t},n)=>r.jsx(Ik,{ref:n,className:Pe("text-lg font-semibold tracking-tight text-foreground",e),...t}));Ll.displayName=Ik.displayName;const $l=f.forwardRef(({className:e,...t},n)=>r.jsx(_k,{ref:n,className:Pe("text-sm leading-6 text-muted-foreground",e),...t}));$l.displayName=_k.displayName;const ra=f.forwardRef(({className:e,...t},n)=>r.jsx($k,{ref:n,className:Pe(e),...t}));ra.displayName=$k.displayName;const _d=f.forwardRef(({className:e,...t},n)=>r.jsx(Ok,{ref:n,className:Pe(e),...t}));_d.displayName=Ok.displayName;const G3=[{to:"/",label:"Overview",icon:Qj},{to:"/playbooks",label:"Playbooks",icon:Jj},{to:"/memories",label:"Memories",icon:AT},{to:"/resources",label:"Resources",icon:qT},{to:"/inventories",label:"Inventories",icon:Ed},{to:"/usage",label:"Usage",icon:Td},{to:"/todos",label:"Todos",icon:Ar},{to:"/views",label:"Saved Views",icon:t0},{to:"/archive",label:"Archive",icon:Cd}],Y3=[{suffix:"/projects",label:"Projects",icon:Gh},{suffix:"/assignments",label:"Assignments",icon:JT},{suffix:"/servers",label:"Servers",icon:Qh},{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}],J3=[{to:"/help",label:"Help",icon:GT},{to:"/settings",label:"Settings",icon:oP}],Tv="syntaur.dashboard.sourceFirstNoticeDismissed";function X3({title:e,breadcrumbs:t,projectSlug:n,workspace:s,children:i}){const[l,c]=f.useState(!1);Vt({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(Tv)==="1"}catch{return!1}});function m(){if(p(!0),!(typeof window>"u"))try{window.localStorage.setItem(Tv,"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(Pv,{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(tg,{className:"h-4 w-4"})})]}),r.jsx(Pv,{sourceNoticeDismissed:u,onDismissSourceNotice:m,activeWorkspace:s,onNavigate:()=>c(!1)})]})}):null,r.jsxs("div",{className:"min-w-0",children:[r.jsx(D3,{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 Pv({sourceNoticeDismissed:e,onDismissSourceNotice:t,activeWorkspace:n,onNavigate:s}){const{data:i}=Rd(),l=(i==null?void 0:i.workspaces)??[],c=(i==null?void 0:i.hasUngrouped)??!1,u=Wn(),[p,m]=f.useState(new Set),[h,x]=f.useState(!1),[y,b]=f.useState(""),[N,j]=f.useState(null),[w,k]=f.useState(null),[E,C]=f.useState(null),[P,$]=f.useState(!1),T=Dt();function D(L){m(W=>{const te=new Set(W);return te.has(L)?te.delete(L):te.add(L),te})}const _=[...l,...c?["_ungrouped"]:[]];async function Y(L){if(w){$(!0);try{const W=`/api/workspaces/${encodeURIComponent(w)}${L?"?cascade=true":""}`,te=await fetch(W,{method:"DELETE"});if(te.status===409){const F=await te.json().catch(()=>({}));C((F==null?void 0:F.blockedBy)??{projects:[],standalones:[]});return}if(!te.ok){const F=await te.json().catch(()=>({}));throw new Error(F.error||"Failed to delete workspace")}k(null),C(null)}catch(W){console.error(W),alert(W instanceof Error?W.message:"Failed to delete workspace")}finally{$(!1)}}}async function Q(L,W){try{if(L.type==="project"){const te=await fetch(`/api/projects/${encodeURIComponent(L.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:W})});if(!te.ok){const F=await te.json().catch(()=>({}));throw new Error(F.error||"Failed to move project")}return}if(L.type==="standalone-assignment"){const te=await fetch(`/api/assignments/${encodeURIComponent(L.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:W})});if(!te.ok){const F=await te.json().catch(()=>({}));throw new Error(F.error||"Failed to move assignment")}return}if(L.type==="project-assignment"){alert("Assignments inherit workspace from their project — drag the project (or move it) to change workspaces.");return}}catch(te){console.error(te),alert(te instanceof Error?te.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(lv,{items:G3,onNavigate:s}),r.jsx("div",{className:"border-t border-border/40"}),r.jsxs("div",{className:"flex-1 space-y-1 overflow-y-auto",children:[_.length===0&&!h&&r.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground/60",children:"No workspaces yet"}),_.map(L=>{const W=L==="_ungrouped",te=W?"Ungrouped":gn(L),F=W?"/w/_ungrouped":`/w/${L}`,H=p.has(L),X=n===L||n===null&&W&&u.pathname.startsWith("/w/_ungrouped"),le=N===L;return r.jsxs("div",{className:`rounded-md transition ${le?"bg-accent/40 ring-1 ring-ring/40":""}`,onDragOver:O=>{O.dataTransfer.types.includes("application/json")&&(O.preventDefault(),O.dataTransfer.dropEffect="move",j(L))},onDragLeave:O=>{O.currentTarget.contains(O.relatedTarget)||j(K=>K===L?null:K)},onDrop:async O=>{try{const K=O.dataTransfer.getData("application/json");if(!K)return;O.preventDefault();let A;try{A=JSON.parse(K)}catch{return}if(!(A!=null&&A.type)||!(A!=null&&A.id))return;await Q(A,W?null:L)}finally{j(null)}},children:[r.jsxs("div",{className:"group flex items-center",children:[r.jsxs("button",{type:"button",onClick:()=>D(L),className:`flex flex-1 items-center gap-2 rounded-md px-3 py-1.5 text-xs font-semibold uppercase tracking-wider transition ${X?"text-foreground":"text-muted-foreground/70 hover:text-muted-foreground"}`,children:[r.jsx(Wr,{className:`h-3 w-3 transition-transform ${H?"-rotate-90":""}`}),te]}),W?null:r.jsx("button",{type:"button",onClick:O=>{O.stopPropagation(),k(L),C(null)},title:`Delete workspace "${L}"`,"aria-label":`Delete workspace "${L}"`,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(Kn,{className:"h-3 w-3"})})]}),!H&&r.jsx("nav",{className:"ml-2 space-y-0.5",children:Y3.map(O=>{const K=`${F}${O.suffix}`,A=m0(u.pathname,O.suffix)&&u.pathname.startsWith(F),B=O.icon;return r.jsxs(Ce,{to:K,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:O.label})]},K)})})]},L)}),h?r.jsx("form",{className:"px-3 py-1.5",onSubmit:L=>{L.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(),T(`/w/${W}/projects`)}))},children:r.jsx("input",{autoFocus:!0,type:"text",value:y,onChange:L=>b(L.target.value),onKeyDown:L=>{L.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(tn,{className:"h-3 w-3"}),"New Workspace"]})]}),r.jsx("div",{className:"border-t border-border/40"}),r.jsx(lv,{items:J3,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(tg,{className:"h-4 w-4"})})]})}),r.jsx(ed,{open:w!==null,onOpenChange:L=>{P||L||(k(null),C(null))},children:r.jsxs(Dl,{children:[r.jsxs(td,{children:[r.jsx(Ll,{children:E?"Workspace has references":"Delete workspace?"}),r.jsx($l,{children:E?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."]})})]}),E?r.jsxs("div",{className:"space-y-2 text-sm",children:[E.projects.length>0?r.jsxs("div",{children:[r.jsxs("p",{className:"font-medium text-foreground",children:["Projects (",E.projects.length,")"]}),r.jsx("ul",{className:"mt-1 list-disc pl-5 text-muted-foreground",children:E.projects.map(L=>r.jsx("li",{children:r.jsx(Ce,{to:`/projects/${L}`,className:"hover:underline",children:L})},L))})]}):null,E.standalones.length>0?r.jsxs("div",{children:[r.jsxs("p",{className:"font-medium text-foreground",children:["Standalones (",E.standalones.length,")"]}),r.jsx("ul",{className:"mt-1 list-disc pl-5 text-muted-foreground",children:E.standalones.map(L=>r.jsx("li",{children:r.jsx(Ce,{to:`/assignments/${L}`,className:"hover:underline",children:L})},L))})]}):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(_d,{disabled:P,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),E?r.jsx(ra,{disabled:P,onClick:L=>{L.preventDefault(),Y(!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:P?"Working…":"Clear references and delete"}):r.jsx(ra,{disabled:P,onClick:L=>{L.preventDefault(),Y(!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:P?"Working…":"Delete"})]})]})})]})}function Q3(){const e=Wn(),{workspace:t}=Lt(),{title:n,breadcrumbs:s,projectSlug:i}=h0(e.pathname);return r.jsx(X3,{title:n,breadcrumbs:s,projectSlug:i,workspace:t??null,children:r.jsx(V2,{})})}function gt({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 jt({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 zu({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 We({title:e,description:t,children:n,className:s,actions:i}){return r.jsxs("section",{className:Pe("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 Z3({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(We,{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(zu,{command:s.command.command,example:s.command.example}):null]})]})},s.title))})})}const xm={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."},_o={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 eD(e,t){return e.replace(/\{(\w+)\}/g,(n,s)=>String(t[s]??`{${s}}`))}function tD({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:_o.emptyStateCleanTitle}),r.jsx("h2",{id:"overview-hero-title",className:"mt-2 text-2xl font-semibold tracking-tight text-foreground",children:xm.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 shell-action--cta",children:_o.emptyStateCleanCTA})})]});const s=e.itemId?t[e.itemId]:void 0,i=(s==null?void 0:s.assignmentTitle)??"",l=xm[e.copyKey]??xm[e.kind],c=eD(l,{total:e.total,title:i}),u=s?nD(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 shell-action--cta",children:["Open ",i||"assignment"]})})]})}function nD(e,t){return e.projectSlug?`${t}${e.href}`:e.href}const wg=["kanban","list","table"],Fk=["title","status","priority","assignee","dependencies","created","updated"],rD=["asc","desc"],sD=["comfortable","compact"],oD=["none","status","type","priority","assignee","project"],iD=["last_24h","last_7d","last_30d","last_90d","older_7d","older_30d"];function tt(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 aD(e,t){const n=tt(e),s=tt(t);return n.length===s.length&&n.every(i=>s.includes(i))}const lD={defaultView:"kanban",sortField:"updated",sortDirection:"desc",density:"comfortable",grouping:"none",filters:{status:"all",type:"all",priority:"all",assignee:"all",project:"all",activity:"all"}},Ol={version:1,global:lD,projects:{}};function ym(e){return e==="table"?"table":"kanban"}function cD(e,t){return t?{...e,...t}:{...e}}function zk(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:cD(n.filters,s.filters)}:n}const bm=["title","status","priority","assignee","dependencies","created","updated"],uD={status:"all",priority:"all",assignee:"all",project:"all",activity:"all"},Rv="2026-05-21T00:00:00Z";function vm(e,t,n){return{id:e,name:t,workspace:null,config:{viewMode:"list",filters:{...uD,...n},sortField:"updated",sortDirection:"desc",listSectionVisibility:{collapsed:[]},kanbanColumnVisibility:{hidden:[]},tableColumnVisibility:{hidden:[]}},createdAt:Rv,updatedAt:Rv}}const so={version:1,views:[vm("default-recently-updated","Recently updated",{}),vm("default-high-priority","High priority",{priority:"high"}),vm("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 Bk(e,t){const n=tt(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 Uk(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?Bk(e.config,t.slug):!1}}const Vk=`syntaur.savedViews.cache.v${so.version}`;let Yi=dD(),$o=null,jg=null;const fh=new Set,rd=new Set;let Hk=0;function Wk(){return++Hk}function ph(e){return e===Hk}function dD(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(Vk);if(!e)return null;const t=JSON.parse(e);return t.version!==so.version?null:t}catch{return null}}function fD(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(Vk,JSON.stringify(e))}catch{}}function Kk(e){Yi=e,jg=null,fD(e);for(const t of fh)t(e);for(const t of rd)t(null)}function pD(e){jg=e;for(const t of rd)t(e)}function qk(e){if(!e||typeof e!="object")return so;const t=e;return t.version!==so.version||!Array.isArray(t.views)||!t.dashboard?so:t}function Av(){if($o)return $o;const e=Wk();return $o=fetch("/api/saved-views").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=qk(t);return ph(e)&&Kk(n),$o=null,Yi??n}).catch(t=>{const n=t instanceof Error?t:new Error(String(t));return ph(e)&&pD(n),$o=null,Yi??so}),$o}function kg(){const[e,t]=f.useState(()=>Yi??so),[n,s]=f.useState(()=>Yi===null),[i,l]=f.useState(!1),[c,u]=f.useState(()=>jg);return f.useEffect(()=>{let m=!1;Yi===null&&s(!0),Av().then(y=>{m||(t(y),s(!1),l(!0))});const h=y=>{m||(t(y),s(!1),l(!0),u(null))},x=y=>{m||(u(y),s(!1),l(!0))};return fh.add(h),rd.add(x),()=>{m=!0,fh.delete(h),rd.delete(x)}},[]),{file:e,loading:n,ready:i,error:c,refetch:()=>{$o=null,s(!0),u(null),l(!1),Av()}}}function Md(){const{file:e,loading:t}=kg();return{views:e.views,loading:t}}function mD(){const{file:e,loading:t}=kg();return{layout:e.dashboard,loading:t}}function Bo(e){const{file:t,loading:n,ready:s,error:i,refetch:l}=kg();return e?{view:t.views.find(u=>u.id===e)??null,loading:n,ready:s,error:i,refetch:l}:{view:null,loading:!1,ready:!0,error:null,refetch:l}}async function Fd(e,t,n){const s=Wk(),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=qk(await i.json());return ph(s)&&Kk(l),l}function zd(e){return Fd("POST","/api/saved-views",e)}function Sg(e,t){return Fd("PATCH",`/api/saved-views/${encodeURIComponent(e)}`,t)}function hD(e){return Fd("DELETE",`/api/saved-views/${encodeURIComponent(e)}`)}function gD(e){return Fd("PUT","/api/dashboard",{slots:e})}const xD=["top","right","bottom","left"],io=Math.min,hr=Math.max,sd=Math.round,wu=Math.floor,us=e=>({x:e,y:e}),yD={left:"right",right:"left",bottom:"top",top:"bottom"};function mh(e,t,n){return hr(e,io(t,n))}function Ts(e,t){return typeof e=="function"?e(t):e}function Ps(e){return e.split("-")[0]}function pa(e){return e.split("-")[1]}function Ng(e){return e==="x"?"y":"x"}function Cg(e){return e==="y"?"height":"width"}function as(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Eg(e){return Ng(as(e))}function bD(e,t,n){n===void 0&&(n=!1);const s=pa(e),i=Eg(e),l=Cg(i);let c=i==="x"?s===(n?"end":"start")?"right":"left":s==="start"?"bottom":"top";return t.reference[l]>t.floating[l]&&(c=od(c)),[c,od(c)]}function vD(e){const t=od(e);return[hh(e),t,hh(t)]}function hh(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Dv=["left","right"],Lv=["right","left"],wD=["top","bottom"],jD=["bottom","top"];function kD(e,t,n){switch(e){case"top":case"bottom":return n?t?Lv:Dv:t?Dv:Lv;case"left":case"right":return t?wD:jD;default:return[]}}function SD(e,t,n,s){const i=pa(e);let l=kD(Ps(e),n==="start",s);return i&&(l=l.map(c=>c+"-"+i),t&&(l=l.concat(l.map(hh)))),l}function od(e){const t=Ps(e);return yD[t]+e.slice(t.length)}function ND(e){return{top:0,right:0,bottom:0,left:0,...e}}function Gk(e){return typeof e!="number"?ND(e):{top:e,right:e,bottom:e,left:e}}function id(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=as(t),c=Eg(t),u=Cg(c),p=Ps(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(pa(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 CD(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}=Ts(t,e),N=Gk(b),w=u[y?x==="floating"?"reference":"floating":x],k=id(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})),E=x==="floating"?{x:s,y:i,width:c.floating.width,height:c.floating.height}:c.reference,C=await(l.getOffsetParent==null?void 0:l.getOffsetParent(u.floating)),P=await(l.isElement==null?void 0:l.isElement(C))?await(l.getScale==null?void 0:l.getScale(C))||{x:1,y:1}:{x:1,y:1},$=id(l.convertOffsetParentRelativeRectToViewportRelativeRect?await l.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:E,offsetParent:C,strategy:p}):E);return{top:(k.top-$.top+N.top)/P.y,bottom:($.bottom-k.bottom+N.bottom)/P.y,left:(k.left-$.left+N.left)/P.x,right:($.right-k.right+N.right)/P.x}}const ED=50,TD=async(e,t,n)=>{const{placement:s="bottom",strategy:i="absolute",middleware:l=[],platform:c}=n,u=c.detectOverflow?c:{...c,detectOverflow:CD},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 N={};for(let j=0;j<l.length;j++){const w=l[j];if(!w)continue;const{name:k,fn:E}=w,{x:C,y:P,data:$,reset:T}=await E({x:h,y:x,initialPlacement:s,placement:y,strategy:i,middlewareData:N,rects:m,platform:u,elements:{reference:e,floating:t}});h=C??h,x=P??x,N[k]={...N[k],...$},T&&b<ED&&(b++,typeof T=="object"&&(T.placement&&(y=T.placement),T.rects&&(m=T.rects===!0?await c.getElementRects({reference:e,floating:t,strategy:i}):T.rects),{x:h,y:x}=$v(m,y,p)),j=-1)}return{x:h,y:x,placement:y,strategy:i,middlewareData:N}},PD=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}=Ts(e,t)||{};if(m==null)return{};const x=Gk(h),y={x:n,y:s},b=Eg(i),N=Cg(b),j=await c.getDimensions(m),w=b==="y",k=w?"top":"left",E=w?"bottom":"right",C=w?"clientHeight":"clientWidth",P=l.reference[N]+l.reference[b]-y[b]-l.floating[N],$=y[b]-l.reference[b],T=await(c.getOffsetParent==null?void 0:c.getOffsetParent(m));let D=T?T[C]:0;(!D||!await(c.isElement==null?void 0:c.isElement(T)))&&(D=u.floating[C]||l.floating[N]);const _=P/2-$/2,Y=D/2-j[N]/2-1,Q=io(x[k],Y),L=io(x[E],Y),W=Q,te=D-j[N]-L,F=D/2-j[N]/2+_,H=mh(W,F,te),X=!p.arrow&&pa(i)!=null&&F!==H&&l.reference[N]/2-(F<W?Q:L)-j[N]/2<0,le=X?F<W?F-W:F-te:0;return{[b]:y[b]+le,data:{[b]:H,centerOffset:F-H-le,...X&&{alignmentOffset:le}},reset:X}}}),RD=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:N="none",flipAlignment:j=!0,...w}=Ts(e,t);if((n=l.arrow)!=null&&n.alignmentOffset)return{};const k=Ps(i),E=as(u),C=Ps(u)===u,P=await(p.isRTL==null?void 0:p.isRTL(m.floating)),$=y||(C||!j?[od(u)]:vD(u)),T=N!=="none";!y&&T&&$.push(...SD(u,j,N,P));const D=[u,...$],_=await p.detectOverflow(t,w),Y=[];let Q=((s=l.flip)==null?void 0:s.overflows)||[];if(h&&Y.push(_[k]),x){const F=bD(i,c,P);Y.push(_[F[0]],_[F[1]])}if(Q=[...Q,{placement:i,overflows:Y}],!Y.every(F=>F<=0)){var L,W;const F=(((L=l.flip)==null?void 0:L.index)||0)+1,H=D[F];if(H&&(!(x==="alignment"?E!==as(H):!1)||Q.every(O=>as(O.placement)===E?O.overflows[0]>0:!0)))return{data:{index:F,overflows:Q},reset:{placement:H}};let X=(W=Q.filter(le=>le.overflows[0]<=0).sort((le,O)=>le.overflows[1]-O.overflows[1])[0])==null?void 0:W.placement;if(!X)switch(b){case"bestFit":{var te;const le=(te=Q.filter(O=>{if(T){const K=as(O.placement);return K===E||K==="y"}return!0}).map(O=>[O.placement,O.overflows.filter(K=>K>0).reduce((K,A)=>K+A,0)]).sort((O,K)=>O[1]-K[1])[0])==null?void 0:te[0];le&&(X=le);break}case"initialPlacement":X=u;break}if(i!==X)return{reset:{placement:X}}}return{}}}};function Ov(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 xD.some(t=>e[t]>=0)}const AD=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:s}=t,{strategy:i="referenceHidden",...l}=Ts(e,t);switch(i){case"referenceHidden":{const c=await s.detectOverflow(t,{...l,elementContext:"reference"}),u=Ov(c,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:Iv(u)}}}case"escaped":{const c=await s.detectOverflow(t,{...l,altBoundary:!0}),u=Ov(c,n.floating);return{data:{escapedOffsets:u,escaped:Iv(u)}}}default:return{}}}}},Yk=new Set(["left","top"]);async function DD(e,t){const{placement:n,platform:s,elements:i}=e,l=await(s.isRTL==null?void 0:s.isRTL(i.floating)),c=Ps(n),u=pa(n),p=as(n)==="y",m=Yk.has(c)?-1:1,h=l&&p?-1:1,x=Ts(t,e);let{mainAxis:y,crossAxis:b,alignmentAxis:N}=typeof x=="number"?{mainAxis:x,crossAxis:0,alignmentAxis:null}:{mainAxis:x.mainAxis||0,crossAxis:x.crossAxis||0,alignmentAxis:x.alignmentAxis};return u&&typeof N=="number"&&(b=u==="end"?N*-1:N),p?{x:b*h,y:y*m}:{x:y*m,y:b*h}}const LD=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 DD(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}}}}},$D=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:k=>{let{x:E,y:C}=k;return{x:E,y:C}}},...m}=Ts(e,t),h={x:n,y:s},x=await l.detectOverflow(t,m),y=as(Ps(i)),b=Ng(y);let N=h[b],j=h[y];if(c){const k=b==="y"?"top":"left",E=b==="y"?"bottom":"right",C=N+x[k],P=N-x[E];N=mh(C,N,P)}if(u){const k=y==="y"?"top":"left",E=y==="y"?"bottom":"right",C=j+x[k],P=j-x[E];j=mh(C,j,P)}const w=p.fn({...t,[b]:N,[y]:j});return{...w,data:{x:w.x-n,y:w.y-s,enabled:{[b]:c,[y]:u}}}}}},OD=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}=Ts(e,t),h={x:n,y:s},x=as(i),y=Ng(x);let b=h[y],N=h[x];const j=Ts(u,t),w=typeof j=="number"?{mainAxis:j,crossAxis:0}:{mainAxis:0,crossAxis:0,...j};if(p){const C=y==="y"?"height":"width",P=l.reference[y]-l.floating[C]+w.mainAxis,$=l.reference[y]+l.reference[C]-w.mainAxis;b<P?b=P:b>$&&(b=$)}if(m){var k,E;const C=y==="y"?"width":"height",P=Yk.has(Ps(i)),$=l.reference[x]-l.floating[C]+(P&&((k=c.offset)==null?void 0:k[x])||0)+(P?0:w.crossAxis),T=l.reference[x]+l.reference[C]+(P?0:((E=c.offset)==null?void 0:E[x])||0)-(P?w.crossAxis:0);N<$?N=$:N>T&&(N=T)}return{[y]:b,[x]:N}}}},ID=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}=Ts(e,t),h=await c.detectOverflow(t,m),x=Ps(i),y=pa(i),b=as(i)==="y",{width:N,height:j}=l.floating;let w,k;x==="top"||x==="bottom"?(w=x,k=y===(await(c.isRTL==null?void 0:c.isRTL(u.floating))?"start":"end")?"left":"right"):(k=x,w=y==="end"?"top":"bottom");const E=j-h.top-h.bottom,C=N-h.left-h.right,P=io(j-h[w],E),$=io(N-h[k],C),T=!t.middlewareData.shift;let D=P,_=$;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(_=C),(s=t.middlewareData.shift)!=null&&s.enabled.y&&(D=E),T&&!y){const Q=hr(h.left,0),L=hr(h.right,0),W=hr(h.top,0),te=hr(h.bottom,0);b?_=N-2*(Q!==0||L!==0?Q+L:hr(h.left,h.right)):D=j-2*(W!==0||te!==0?W+te:hr(h.top,h.bottom))}await p({...t,availableWidth:_,availableHeight:D});const Y=await c.getDimensions(u.floating);return N!==Y.width||j!==Y.height?{reset:{rects:!0}}:{}}}};function Bd(){return typeof window<"u"}function ma(e){return Jk(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=(Jk(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Jk(e){return Bd()?e instanceof Node||e instanceof yr(e).Node:!1}function Kr(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 _v(e){return!Bd()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof yr(e).ShadowRoot}function Zl(e){const{overflow:t,overflowX:n,overflowY:s,display:i}=qr(e);return/auto|scroll|overlay|hidden|clip/.test(t+s+n)&&i!=="inline"&&i!=="contents"}function _D(e){return/^(table|td|th)$/.test(ma(e))}function Ud(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const MD=/transform|translate|scale|rotate|perspective|filter/,FD=/paint|layout|strict|content/,Lo=e=>!!e&&e!=="none";let wm;function Tg(e){const t=Kr(e)?qr(e):e;return Lo(t.transform)||Lo(t.translate)||Lo(t.scale)||Lo(t.rotate)||Lo(t.perspective)||!Pg()&&(Lo(t.backdropFilter)||Lo(t.filter))||MD.test(t.willChange||"")||FD.test(t.contain||"")}function zD(e){let t=ao(e);for(;Ls(t)&&!sa(t);){if(Tg(t))return t;if(Ud(t))return null;t=ao(t)}return null}function Pg(){return wm==null&&(wm=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),wm}function sa(e){return/^(html|body|#document)$/.test(ma(e))}function qr(e){return yr(e).getComputedStyle(e)}function Vd(e){return Kr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ao(e){if(ma(e)==="html")return e;const t=e.assignedSlot||e.parentNode||_v(e)&&e.host||hs(e);return _v(t)?t.host:t}function Xk(e){const t=ao(e);return sa(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ls(t)&&Zl(t)?t:Xk(t)}function Il(e,t,n){var s;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=Xk(e),l=i===((s=e.ownerDocument)==null?void 0:s.body),c=yr(i);if(l){const u=gh(c);return t.concat(c,c.visualViewport||[],Zl(i)?i:[],u&&n?Il(u):[])}else return t.concat(i,Il(i,[],n))}function gh(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Qk(e){const t=qr(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=sd(n)!==l||sd(s)!==c;return u&&(n=l,s=c),{width:n,height:s,$:u}}function Rg(e){return Kr(e)?e:e.contextElement}function Ji(e){const t=Rg(e);if(!Ls(t))return us(1);const n=t.getBoundingClientRect(),{width:s,height:i,$:l}=Qk(t);let c=(l?sd(n.width):n.width)/s,u=(l?sd(n.height):n.height)/i;return(!c||!Number.isFinite(c))&&(c=1),(!u||!Number.isFinite(u))&&(u=1),{x:c,y:u}}const BD=us(0);function Zk(e){const t=yr(e);return!Pg()||!t.visualViewport?BD:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function UD(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=Rg(e);let c=us(1);t&&(s?Kr(s)&&(c=Ji(s)):c=Ji(e));const u=UD(l,n,s)?Zk(l):us(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&&Kr(s)?yr(s):s;let N=y,j=gh(N);for(;j&&s&&b!==N;){const w=Ji(j),k=j.getBoundingClientRect(),E=qr(j),C=k.left+(j.clientLeft+parseFloat(E.paddingLeft))*w.x,P=k.top+(j.clientTop+parseFloat(E.paddingTop))*w.y;p*=w.x,m*=w.y,h*=w.x,x*=w.y,p+=C,m+=P,N=yr(j),j=gh(N)}}return id({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 eS(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 VD(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=us(1);const h=us(0),x=Ls(s);if((x||!x&&!l)&&((ma(s)!=="body"||Zl(c))&&(p=Vd(s)),x)){const b=Uo(s);m=Ji(s),h.x=b.x+s.clientLeft,h.y=b.y+s.clientTop}const y=c&&!x&&!l?eS(c,p):us(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 HD(e){return Array.from(e.getClientRects())}function WD(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 qr(s).direction==="rtl"&&(c+=hr(t.clientWidth,s.clientWidth)-i),{width:i,height:l,x:c,y:u}}const Mv=25;function KD(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=Pg();(!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,N=Math.abs(s.clientWidth-x.clientWidth-b);N<=Mv&&(l-=N)}else m<=Mv&&(l+=m);return{width:l,height:c,x:u,y:p}}function qD(e,t){const n=Uo(e,!0,t==="fixed"),s=n.top+e.clientTop,i=n.left+e.clientLeft,l=Ls(e)?Ji(e):us(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 Fv(e,t,n){let s;if(t==="viewport")s=KD(e,n);else if(t==="document")s=WD(hs(e));else if(Kr(t))s=qD(t,n);else{const i=Zk(e);s={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return id(s)}function tS(e,t){const n=ao(e);return n===t||!Kr(n)||sa(n)?!1:qr(n).position==="fixed"||tS(n,t)}function GD(e,t){const n=t.get(e);if(n)return n;let s=Il(e,[],!1).filter(u=>Kr(u)&&ma(u)!=="body"),i=null;const l=qr(e).position==="fixed";let c=l?ao(e):e;for(;Kr(c)&&!sa(c);){const u=qr(c),p=Tg(c);!p&&u.position==="fixed"&&(i=null),(l?!p&&!i:!p&&u.position==="static"&&!!i&&(i.position==="absolute"||i.position==="fixed")||Zl(c)&&!p&&tS(e,c))?s=s.filter(h=>h!==c):i=u,c=ao(c)}return t.set(e,s),s}function YD(e){let{element:t,boundary:n,rootBoundary:s,strategy:i}=e;const c=[...n==="clippingAncestors"?Ud(t)?[]:GD(t,this._c):[].concat(n),s],u=Fv(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=Fv(t,c[y],i);p=hr(b.top,p),m=io(b.right,m),h=io(b.bottom,h),x=hr(b.left,x)}return{width:m-x,height:h-p,x,y:p}}function JD(e){const{width:t,height:n}=Qk(e);return{width:t,height:n}}function XD(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=us(0);function m(){p.x=Hd(i)}if(s||!s&&!l)if((ma(t)!=="body"||Zl(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?eS(i,u):us(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 jm(e){return qr(e).position==="static"}function zv(e,t){if(!Ls(e)||qr(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return hs(e)===n&&(n=n.ownerDocument.body),n}function nS(e,t){const n=yr(e);if(Ud(e))return n;if(!Ls(e)){let i=ao(e);for(;i&&!sa(i);){if(Kr(i)&&!jm(i))return i;i=ao(i)}return n}let s=zv(e,t);for(;s&&_D(s)&&jm(s);)s=zv(s,t);return s&&sa(s)&&jm(s)&&!Tg(s)?n:s||zD(e)||n}const QD=async function(e){const t=this.getOffsetParent||nS,n=this.getDimensions,s=await n(e.floating);return{reference:XD(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function ZD(e){return qr(e).direction==="rtl"}const e4={convertOffsetParentRelativeRectToViewportRelativeRect:VD,getDocumentElement:hs,getClippingRect:YD,getOffsetParent:nS,getElementRects:QD,getClientRects:HD,getDimensions:JD,getScale:Ji,isElement:Kr,isRTL:ZD};function rS(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function t4(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 N=wu(x),j=wu(i.clientWidth-(h+y)),w=wu(i.clientHeight-(x+b)),k=wu(h),C={rootMargin:-N+"px "+-j+"px "+-w+"px "+-k+"px",threshold:hr(0,io(1,p))||1};let P=!0;function $(T){const D=T[0].intersectionRatio;if(D!==p){if(!P)return c();D?c(!1,D):s=setTimeout(()=>{c(!1,1e-7)},1e3)}D===1&&!rS(m,e.getBoundingClientRect())&&c(),P=!1}try{n=new IntersectionObserver($,{...C,root:i.ownerDocument})}catch{n=new IntersectionObserver($,C)}n.observe(e)}return c(!0),l}function n4(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=Rg(e),h=i||l?[...m?Il(m):[],...t?Il(t):[]]:[];h.forEach(k=>{i&&k.addEventListener("scroll",n,{passive:!0}),l&&k.addEventListener("resize",n)});const x=m&&u?t4(m,n):null;let y=-1,b=null;c&&(b=new ResizeObserver(k=>{let[E]=k;E&&E.target===m&&b&&t&&(b.unobserve(t),cancelAnimationFrame(y),y=requestAnimationFrame(()=>{var C;(C=b)==null||C.observe(t)})),n()}),m&&!p&&b.observe(m),t&&b.observe(t));let N,j=p?Uo(e):null;p&&w();function w(){const k=Uo(e);j&&!rS(j,k)&&n(),j=k,N=requestAnimationFrame(w)}return n(),()=>{var k;h.forEach(E=>{i&&E.removeEventListener("scroll",n),l&&E.removeEventListener("resize",n)}),x==null||x(),(k=b)==null||k.disconnect(),b=null,p&&cancelAnimationFrame(N)}}const r4=LD,s4=$D,o4=RD,i4=ID,a4=AD,Bv=PD,l4=OD,c4=(e,t,n)=>{const s=new Map,i={platform:e4,...n},l={...i.platform,_c:s};return TD(e,t,{...i,platform:l})};var u4=typeof document<"u",d4=function(){},Bu=u4?f.useLayoutEffect:d4;function ad(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(!ad(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)&&!ad(e[l],t[l]))return!1}return!0}return e!==e&&t!==t}function sS(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Uv(e,t){const n=sS(e);return Math.round(t*n)/n}function km(e){const t=f.useRef(e);return Bu(()=>{t.current=e}),t}function f4(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);ad(y,s)||b(s);const[N,j]=f.useState(null),[w,k]=f.useState(null),E=f.useCallback(O=>{O!==T.current&&(T.current=O,j(O))},[]),C=f.useCallback(O=>{O!==D.current&&(D.current=O,k(O))},[]),P=l||N,$=c||w,T=f.useRef(null),D=f.useRef(null),_=f.useRef(h),Y=p!=null,Q=km(p),L=km(i),W=km(m),te=f.useCallback(()=>{if(!T.current||!D.current)return;const O={placement:t,strategy:n,middleware:y};L.current&&(O.platform=L.current),c4(T.current,D.current,O).then(K=>{const A={...K,isPositioned:W.current!==!1};F.current&&!ad(_.current,A)&&(_.current=A,Cs.flushSync(()=>{x(A)}))})},[y,t,n,L,W]);Bu(()=>{m===!1&&_.current.isPositioned&&(_.current.isPositioned=!1,x(O=>({...O,isPositioned:!1})))},[m]);const F=f.useRef(!1);Bu(()=>(F.current=!0,()=>{F.current=!1}),[]),Bu(()=>{if(P&&(T.current=P),$&&(D.current=$),P&&$){if(Q.current)return Q.current(P,$,te);te()}},[P,$,te,Q,Y]);const H=f.useMemo(()=>({reference:T,floating:D,setReference:E,setFloating:C}),[E,C]),X=f.useMemo(()=>({reference:P,floating:$}),[P,$]),le=f.useMemo(()=>{const O={position:n,left:0,top:0};if(!X.floating)return O;const K=Uv(X.floating,h.x),A=Uv(X.floating,h.y);return u?{...O,transform:"translate("+K+"px, "+A+"px)",...sS(X.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:A}},[n,u,X.floating,h.x,h.y]);return f.useMemo(()=>({...h,update:te,refs:H,elements:X,floatingStyles:le}),[h,te,H,X,le])}const p4=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?Bv({element:s.current,padding:i}).fn(n):{}:s?Bv({element:s,padding:i}).fn(n):{}}}},m4=(e,t)=>{const n=r4(e);return{name:n.name,fn:n.fn,options:[e,t]}},h4=(e,t)=>{const n=s4(e);return{name:n.name,fn:n.fn,options:[e,t]}},g4=(e,t)=>({fn:l4(e).fn,options:[e,t]}),x4=(e,t)=>{const n=o4(e);return{name:n.name,fn:n.fn,options:[e,t]}},y4=(e,t)=>{const n=i4(e);return{name:n.name,fn:n.fn,options:[e,t]}},b4=(e,t)=>{const n=a4(e);return{name:n.name,fn:n.fn,options:[e,t]}},v4=(e,t)=>{const n=p4(e);return{name:n.name,fn:n.fn,options:[e,t]}};var w4="Arrow",oS=f.forwardRef((e,t)=>{const{children:n,width:s=10,height:i=5,...l}=e;return r.jsx(fn.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"})})});oS.displayName=w4;var j4=oS;function k4(e){const[t,n]=f.useState(void 0);return oo(()=>{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 Ag="Popper",[iS,aS]=Ho(Ag),[S4,lS]=iS(Ag),cS=e=>{const{__scopePopper:t,children:n}=e,[s,i]=f.useState(null);return r.jsx(S4,{scope:t,anchor:s,onAnchorChange:i,children:n})};cS.displayName=Ag;var uS="PopperAnchor",dS=f.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:s,...i}=e,l=lS(uS,n),c=f.useRef(null),u=Fn(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(fn.div,{...i,ref:u})});dS.displayName=uS;var Dg="PopperContent",[N4,C4]=iS(Dg),fS=f.forwardRef((e,t)=>{var oe,de,ye,je,fe,Ye;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:N,...j}=e,w=lS(Dg,n),[k,E]=f.useState(null),C=Fn(t,Je=>E(Je)),[P,$]=f.useState(null),T=k4(P),D=(T==null?void 0:T.width)??0,_=(T==null?void 0:T.height)??0,Y=s+(l!=="center"?"-"+l:""),Q=typeof h=="number"?h:{top:0,right:0,bottom:0,left:0,...h},L=Array.isArray(m)?m:[m],W=L.length>0,te={padding:Q,boundary:L.filter(T4),altBoundary:W},{refs:F,floatingStyles:H,placement:X,isPositioned:le,middlewareData:O}=f4({strategy:"fixed",placement:Y,whileElementsMounted:(...Je)=>n4(...Je,{animationFrame:b==="always"}),elements:{reference:w.anchor},middleware:[m4({mainAxis:i+_,alignmentAxis:c}),p&&h4({mainAxis:!0,crossAxis:!1,limiter:x==="partial"?g4():void 0,...te}),p&&x4({...te}),y4({...te,apply:({elements:Je,rects:ot,availableWidth:G,availableHeight:De})=>{const{width:ke,height:Re}=ot.reference,Xe=Je.floating.style;Xe.setProperty("--radix-popper-available-width",`${G}px`),Xe.setProperty("--radix-popper-available-height",`${De}px`),Xe.setProperty("--radix-popper-anchor-width",`${ke}px`),Xe.setProperty("--radix-popper-anchor-height",`${Re}px`)}}),P&&v4({element:P,padding:u}),P4({arrowWidth:D,arrowHeight:_}),y&&b4({strategy:"referenceHidden",...te})]}),[K,A]=hS(X),B=Fo(N);oo(()=>{le&&(B==null||B())},[le,B]);const Z=(oe=O.arrow)==null?void 0:oe.x,I=(de=O.arrow)==null?void 0:de.y,ue=((ye=O.arrow)==null?void 0:ye.centerOffset)!==0,[he,V]=f.useState();return oo(()=>{k&&V(window.getComputedStyle(k).zIndex)},[k]),r.jsx("div",{ref:F.setFloating,"data-radix-popper-content-wrapper":"",style:{...H,transform:le?H.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:he,"--radix-popper-transform-origin":[(je=O.transformOrigin)==null?void 0:je.x,(fe=O.transformOrigin)==null?void 0:fe.y].join(" "),...((Ye=O.hide)==null?void 0:Ye.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:r.jsx(N4,{scope:n,placedSide:K,onArrowChange:$,arrowX:Z,arrowY:I,shouldHideArrow:ue,children:r.jsx(fn.div,{"data-side":K,"data-align":A,...j,ref:C,style:{...j.style,animation:le?void 0:"none"}})})})});fS.displayName=Dg;var pS="PopperArrow",E4={top:"bottom",right:"left",bottom:"top",left:"right"},mS=f.forwardRef(function(t,n){const{__scopePopper:s,...i}=t,l=C4(pS,s),c=E4[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(j4,{...i,ref:n,style:{...i.style,display:"block"}})})});mS.displayName=pS;function T4(e){return e!==null}var P4=e=>({name:"transformOrigin",options:e,fn(t){var w,k,E;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]=hS(n),x={start:"0%",center:"50%",end:"100%"}[h],y=(((k=i.arrow)==null?void 0:k.x)??0)+u/2,b=(((E=i.arrow)==null?void 0:E.y)??0)+p/2;let N="",j="";return m==="bottom"?(N=c?x:`${y}px`,j=`${-p}px`):m==="top"?(N=c?x:`${y}px`,j=`${s.floating.height+p}px`):m==="right"?(N=`${-p}px`,j=c?x:`${b}px`):m==="left"&&(N=`${s.floating.width+p}px`,j=c?x:`${b}px`),{data:{x:N,y:j}}}});function hS(e){const[t,n="center"]=e.split("-");return[t,n]}var R4=cS,A4=dS,D4=fS,L4=mS,$4=Symbol("radix.slottable");function O4(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=$4,t}var I4=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"}),_4="VisuallyHidden",gS=f.forwardRef((e,t)=>r.jsx(fn.span,{...e,ref:t,style:{...I4,...e.style}}));gS.displayName=_4;var M4=gS,[Wd]=Ho("Tooltip",[aS]),Kd=aS(),xS="TooltipProvider",F4=700,xh="tooltip.open",[z4,Lg]=Wd(xS),yS=e=>{const{__scopeTooltip:t,delayDuration:n=F4,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(z4,{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})};yS.displayName=xS;var _l="Tooltip",[B4,ec]=Wd(_l),bS=e=>{const{__scopeTooltip:t,children:n,open:s,defaultOpen:i,onOpenChange:l,disableHoverableContent:c,delayDuration:u}=e,p=Lg(_l,e.__scopeTooltip),m=Kd(t),[h,x]=f.useState(null),y=Ki(),b=f.useRef(0),N=c??p.disableHoverableContent,j=u??p.delayDuration,w=f.useRef(!1),[k,E]=$d({prop:s,defaultProp:i??!1,onChange:D=>{D?(p.onOpen(),document.dispatchEvent(new CustomEvent(xh))):p.onClose(),l==null||l(D)},caller:_l}),C=f.useMemo(()=>k?w.current?"delayed-open":"instant-open":"closed",[k]),P=f.useCallback(()=>{window.clearTimeout(b.current),b.current=0,w.current=!1,E(!0)},[E]),$=f.useCallback(()=>{window.clearTimeout(b.current),b.current=0,E(!1)},[E]),T=f.useCallback(()=>{window.clearTimeout(b.current),b.current=window.setTimeout(()=>{w.current=!0,E(!0),b.current=0},j)},[j,E]);return f.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=0)},[]),r.jsx(R4,{...m,children:r.jsx(B4,{scope:t,contentId:y,open:k,stateAttribute:C,trigger:h,onTriggerChange:x,onTriggerEnter:f.useCallback(()=>{p.isOpenDelayedRef.current?T():P()},[p.isOpenDelayedRef,T,P]),onTriggerLeave:f.useCallback(()=>{N?$():(window.clearTimeout(b.current),b.current=0)},[$,N]),onOpen:P,onClose:$,disableHoverableContent:N,children:n})})};bS.displayName=_l;var yh="TooltipTrigger",vS=f.forwardRef((e,t)=>{const{__scopeTooltip:n,...s}=e,i=ec(yh,n),l=Lg(yh,n),c=Kd(n),u=f.useRef(null),p=Fn(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(A4,{asChild:!0,...c,children:r.jsx(fn.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...s,ref:p,onPointerMove:Kt(e.onPointerMove,y=>{y.pointerType!=="touch"&&!h.current&&!l.isPointerInTransitRef.current&&(i.onTriggerEnter(),h.current=!0)}),onPointerLeave:Kt(e.onPointerLeave,()=>{i.onTriggerLeave(),h.current=!1}),onPointerDown:Kt(e.onPointerDown,()=>{i.open&&i.onClose(),m.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:Kt(e.onFocus,()=>{m.current||i.onOpen()}),onBlur:Kt(e.onBlur,i.onClose),onClick:Kt(e.onClick,i.onClose)})})});vS.displayName=yh;var $g="TooltipPortal",[U4,V4]=Wd($g,{forceMount:void 0}),wS=e=>{const{__scopeTooltip:t,forceMount:n,children:s,container:i}=e,l=ec($g,t);return r.jsx(U4,{scope:t,forceMount:n,children:r.jsx(Wo,{present:n||l.open,children:r.jsx(cg,{asChild:!0,container:i,children:s})})})};wS.displayName=$g;var oa="TooltipContent",jS=f.forwardRef((e,t)=>{const n=V4(oa,e.__scopeTooltip),{forceMount:s=n.forceMount,side:i="top",...l}=e,c=ec(oa,e.__scopeTooltip);return r.jsx(Wo,{present:s||c.open,children:c.disableHoverableContent?r.jsx(kS,{side:i,...l,ref:t}):r.jsx(H4,{side:i,...l,ref:t})})}),H4=f.forwardRef((e,t)=>{const n=ec(oa,e.__scopeTooltip),s=Lg(oa,e.__scopeTooltip),i=f.useRef(null),l=Fn(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((N,j)=>{const w=N.currentTarget,k={x:N.clientX,y:N.clientY},E=Y4(k,w.getBoundingClientRect()),C=J4(k,E),P=X4(j.getBoundingClientRect()),$=Z4([...C,...P]);u($),x(!0)},[x]);return f.useEffect(()=>()=>y(),[y]),f.useEffect(()=>{if(p&&h){const N=w=>b(w,h),j=w=>b(w,p);return p.addEventListener("pointerleave",N),h.addEventListener("pointerleave",j),()=>{p.removeEventListener("pointerleave",N),h.removeEventListener("pointerleave",j)}}},[p,h,b,y]),f.useEffect(()=>{if(c){const N=j=>{const w=j.target,k={x:j.clientX,y:j.clientY},E=(p==null?void 0:p.contains(w))||(h==null?void 0:h.contains(w)),C=!Q4(k,c);E?y():C&&(y(),m())};return document.addEventListener("pointermove",N),()=>document.removeEventListener("pointermove",N)}},[p,h,c,m,y]),r.jsx(kS,{...e,ref:l})}),[W4,K4]=Wd(_l,{isInside:!1}),q4=O4("TooltipContent"),kS=f.forwardRef((e,t)=>{const{__scopeTooltip:n,children:s,"aria-label":i,onEscapeKeyDown:l,onPointerDownOutside:c,...u}=e,p=ec(oa,n),m=Kd(n),{onClose:h}=p;return f.useEffect(()=>(document.addEventListener(xh,h),()=>document.removeEventListener(xh,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(lg,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:x=>x.preventDefault(),onDismiss:h,children:r.jsxs(D4,{"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(q4,{children:s}),r.jsx(W4,{scope:n,isInside:!0,children:r.jsx(M4,{id:p.contentId,role:"tooltip",children:i||s})})]})})});jS.displayName=oa;var SS="TooltipArrow",G4=f.forwardRef((e,t)=>{const{__scopeTooltip:n,...s}=e,i=Kd(n);return K4(SS,n).isInside?null:r.jsx(L4,{...i,...s,ref:t})});G4.displayName=SS;function Y4(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 J4(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 X4(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 Q4(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 Z4(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),eL(t)}function eL(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 tL=yS,nL=bS,rL=vS,sL=wS,NS=jS;const Mo=tL,Pr=nL,Rr=rL,gr=f.forwardRef(({className:e,sideOffset:t=4,...n},s)=>r.jsx(sL,{children:r.jsx(NS,{ref:s,sideOffset:t,className:Pe("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=NS.displayName;function Og({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(BT,{className:"h-4 w-4"})}),n&&r.jsx("div",{className:Pe("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(Mo,{delayDuration:200,children:e.map(l=>{const c=l.icon,u=Pe("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 Vv(e){const t=Date.parse(e);return Number.isNaN(t)?!1:Date.now()-t>10080*60*1e3}const oL={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 iL(e){const[t,n,s]=e.split("-").map(Number);return new Date(t,n-1,s,0,0,0,0).getTime()}function aL(e){const[t,n,s]=e.split("-").map(Number);return new Date(t,n-1,s,23,59,59,999).getTime()}function lL(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=oL[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<iL(l)||c&&i>aL(c))}function Ig(e,t,n={}){const{workspace:s,search:i,includeArchived:l}=n;if(e.archived===!0&&!l)return!1;const c=tt(t.status),u=tt(t.priority),p=tt(t.type),m=tt(t.assignee),h=tt(t.project),x=tt(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"&&!Vv(e.updated)||y==="fresh"&&Vv(e.updated))return!1;if(m.length){const b=e.assignee??"__unassigned__";if(!m.includes(b))return!1}if(h.length&&!h.some(N=>N==="__standalone__"?e.projectSlug==null:e.projectSlug===N))return!1;if(x.length){const b=e.tags??[];if(!x.some(N=>b.includes(N)))return!1}if(!lL(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 Ml(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}const CS={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 vl=null,Oo=null;function cL(){return vl?Promise.resolve(vl):Oo||(Oo=fetch("/api/config/statuses").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(vl=e,Oo=null,e)).catch(()=>(Oo=null,CS)),Oo)}function Ko(){const[e,t]=f.useState(()=>vl??CS);return f.useEffect(()=>{cL().then(t)},[]),e}function Hv(){vl=null,Oo=null}function tc(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 Wv={critical:0,high:1,medium:2,low:3};function ju(e){return Date.parse(e??"")||0}function nc(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=(Wv[i.priority]??99)-(Wv[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=ju(i.created)-ju(l.created);break;case"updated":c=ju(i.updated)-ju(l.updated);break}return n==="asc"?c:-c})}function Nt({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 ia='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 N=f.useMemo(()=>new Set(h??[]),[h]),j=f.useMemo(()=>e.filter(F=>!N.has(F.id)),[e,N]),w=f.useMemo(()=>e.filter(F=>N.has(F.id)),[e,N]),[k,E]=f.useState(null),[C,P]=f.useState(null),$=f.useRef(null),T=f.useMemo(()=>new Map(t.map(F=>[n(F),F])),[n,t]),D=f.useMemo(()=>j.map(F=>({column:F,items:t.filter(H=>s(H)===F.id)})),[j,s,t]),_=k?T.get(k)??null:null;function Y(F){if(!_)return{allowed:!1};const H=s(_);return(l==null?void 0:l({item:_,fromColumnId:H,toColumnId:F}))??{allowed:!0}}function Q(){E(null),P(null)}function L(F,H,X){if(b)return;const le=(u==null?void 0:u(H))??null;!c&&!le||(F.dataTransfer.effectAllowed="move",F.dataTransfer.setData("text/plain",X),le&&F.dataTransfer.setData("application/json",JSON.stringify(le)),c&&E(X))}function W(F,H,X){b||!c||!_||!Y(H).allowed||(F.preventDefault(),F.dataTransfer.dropEffect="move",P(O=>(O==null?void 0:O.columnId)===H&&O.index===X?O:{columnId:H,index:X}))}async function te(F,H,X){var B;if(F.preventDefault(),b||!c||!_){Q();return}const le=s(_),K=(((B=D.find(Z=>Z.column.id===le))==null?void 0:B.items)??[]).findIndex(Z=>n(Z)===n(_));if(!Y(H).allowed||K<0){Q();return}if(le===H&&(X===K||X===K+1)){Q();return}try{await c({item:_,fromColumnId:le,toColumnId:H,fromIndex:K,toIndex:X})}finally{Q()}}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(F=>r.jsxs("button",{type:"button",onClick:()=>x(F.id),className:"rounded-full border border-dashed border-border/60 px-2 py-0.5 hover:border-border hover:text-foreground",title:`Restore "${F.title}" column`,children:[F.title," ×"]},F.id))]}):null,r.jsx("div",{className:Pe("grid min-w-max grid-flow-col gap-4",y?"auto-cols-[minmax(200px,240px)]":"auto-cols-[minmax(260px,320px)]"),children:D.map(({column:F,items:H})=>{const X=Y(F.id),le=(C==null?void 0:C.columnId)===F.id;return r.jsxs("section",{className:Pe("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",_&&!X.allowed?"border-dashed opacity-65":"",_&&X.allowed?"border-primary/30 bg-accent/30":"",le?"ring-2 ring-ring/30":""),title:_&&!X.allowed?X.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:Pe("font-semibold uppercase tracking-[0.16em] text-muted-foreground",y?"text-xs":"text-sm"),children:F.title}),F.description&&!y?r.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:F.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:H.length}),x?r.jsx("button",{type:"button",onClick:()=>x(F.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 "${F.title}" column`,"aria-label":`Hide column ${F.title}`,children:"×"}):null]})]}),r.jsxs("div",{className:"flex flex-1 flex-col gap-3",onDragOver:O=>W(O,F.id,H.length),onDrop:O=>te(O,F.id,H.length),children:[H.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(F):m}):r.jsx(uL,{active:(C==null?void 0:C.columnId)===F.id&&C.index===0,disabled:!!_&&!X.allowed,children:typeof m=="function"?m(F):m}):null,H.map((O,K)=>{const A=n(O),B=k===A;return r.jsxs(f.Fragment,{children:[r.jsx("div",{className:Pe("h-2 rounded-full transition",(C==null?void 0:C.columnId)===F.id&&C.index===K?"bg-primary/70":"bg-transparent"),onDragOver:Z=>W(Z,F.id,K),onDrop:Z=>te(Z,F.id,K)}),r.jsx("div",{draggable:!b&&!!(c||u),onMouseDown:Z=>{$.current=Z.target},onDragStart:Z=>{const I=$.current;if(I!=null&&I.closest(ia)){Z.preventDefault();return}L(Z,O,A)},onDragEnd:Q,onContextMenu:Z=>{if(!p)return;const I=Z.target;I!=null&&I.closest(ia)||p(O,Z)},className:Pe("transition",!b&&(c||u)?"cursor-grab active:cursor-grabbing":"",B?"scale-[0.98] opacity-50":""),children:i(O,{dragging:B})})]},A)}),H.length>0&&!b?r.jsx("div",{className:Pe("mt-1 rounded-md border border-dashed px-3 py-2 text-center text-xs text-muted-foreground transition",(C==null?void 0:C.columnId)===F.id&&C.index===H.length?"border-primary/50 bg-primary/10 text-foreground":"border-border/60",_&&!X.allowed?"opacity-40":""),children:"Drop here to place at the end"}):null]})]},F.id)})})]})}function uL({active:e,disabled:t,children:n}){return r.jsx("div",{className:Pe("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 xl="border-status-pending-foreground/30 bg-status-pending text-status-pending-foreground",Sm="border-status-in-progress-foreground/30 bg-status-in-progress text-status-in-progress-foreground",dL="border-status-blocked-foreground/30 bg-status-blocked text-status-blocked-foreground",fL="border-status-review-foreground/30 bg-status-review text-status-review-foreground",pL="border-status-completed-foreground/30 bg-status-completed text-status-completed-foreground",mL="border-status-failed-foreground/30 bg-status-failed text-status-failed-foreground",hL="border-status-archived-foreground/30 bg-status-archived text-status-archived-foreground",ld={draft:{label:"Draft",description:"Just-created stub; not yet shaped.",className:xl,icon:da},pending:{label:"Pending",description:"Waiting to start or waiting on dependencies.",className:xl,icon:IT},ready_for_planning:{label:"Ready for Planning",description:"Objective and acceptance criteria written; awaiting a plan.",className:xl,icon:Qj},ready_to_implement:{label:"Ready to Implement",description:"Plan written and approved; ready to start coding.",className:Sm,icon:ZT},in_progress:{label:"In Progress",description:"Actively being worked on.",className:Sm,icon:Xh},blocked:{label:"Blocked",description:"Blocked by an explicit obstacle that needs intervention.",className:dL,icon:rh},review:{label:"Review",description:"Ready for inspection or approval.",className:fL,icon:nP},completed:{label:"Completed",description:"Finished successfully.",className:pL,icon:qh},failed:{label:"Failed",description:"Could not be completed as planned.",className:mL,icon:rh},active:{label:"Active",description:"The project has active or review work in flight.",className:Sm,icon:sh},stopped:{label:"Stopped",description:"Session ended without completing.",className:xl,icon:$T},archived:{label:"Archived",description:"Hidden from normal views; restorable from the Archive page.",className:hL,icon:sh}};function cd(e){const t=ld[e];return t||{className:xl,icon:sh,label:e.replace(/_/g," ").replace(/\b\w/g,n=>n.toUpperCase()),description:`Status: ${e}`}}function ES(e,t){return Pe("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)]",cd(e).className,t)}function dn({status:e,className:t,showIcon:n=!0,progress:s}){const i=cd(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:ES(e,t),children:[m,r.jsx("span",{children:i.label})]})}function Gd(e){var t;return((t=ld[e])==null?void 0:t.description)??`Status: ${e}`}const TS={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 Uu=null,Li=null;function gL(){return Uu?Promise.resolve(Uu):Li||(Li=fetch("/api/config/types").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(Uu=e,Li=null,e)).catch(()=>(Li=null,TS)),Li)}function Yd(){const[e,t]=f.useState(()=>Uu??TS);return f.useEffect(()=>{gL().then(t)},[]),e}function Xi(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 xL(e,t){return t?e.definitions.find(n=>n.id===t)??null:null}function qo({type:e,className:t,compact:n=!1}){const s=Yd();if(!e)return null;const i=xL(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:Pe("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})}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(Al,{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(Rs,{className:"h-3 w-3 text-status-completed-foreground","aria-hidden":"true"}):r.jsx(Al,{className:"h-3 w-3","aria-hidden":"true"})})}function yL(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function bL({items:e,statusOrder:t,sortField:n,sortDirection:s,listSectionVisibility:i,compact:l=!1}){const c=Ko(),[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:Pe("space-y-2",l?"space-y-1.5":"space-y-3"),children:t.map(h=>{const x=nc(e.filter(N=>N.status===h),n,s);if(x.length===0)return null;const y=!u.has(h),b=tc(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:Pe("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(Wr,{className:Pe("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:Pe("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:Pe("divide-y divide-border/40 border-t border-border/40",l?"text-xs":"text-sm"),children:x.map(N=>{const j=yL(N);return r.jsx("li",{children:r.jsxs(Ce,{to:j,className:Pe("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:N.title}),N.projectTitle?r.jsx("span",{className:"hidden truncate text-muted-foreground sm:inline",children:N.projectTitle}):null,r.jsx("span",{className:"shrink-0 text-muted-foreground",children:An(N.updated)})]})},`${N.projectSlug??"standalone"}:${N.id}`)})})]},h)})})}function vL(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function wL({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=nc(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:Pe("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:Pe("font-medium",p),children:"Assignment"}):null,c("status")?r.jsx("th",{className:Pe("font-medium",p),children:"Status"}):null,c("priority")?r.jsx("th",{className:Pe("font-medium",p),children:"Priority"}):null,c("assignee")?r.jsx("th",{className:Pe("font-medium",p),children:"Assignee"}):null,c("dependencies")?r.jsx("th",{className:Pe("font-medium",p),children:"Dependencies"}):null,c("created")?r.jsx("th",{className:Pe("font-medium",p),children:"Created"}):null,c("updated")?r.jsx("th",{className:Pe("font-medium",p),children:"Updated"}):null]})}),r.jsx("tbody",{children:u.map(h=>{const x=vL(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(dn,{status:h.status})}):null,c("priority")?r.jsx("td",{className:Pe("capitalize text-muted-foreground",p),children:h.priority}):null,c("assignee")?r.jsx("td",{className:Pe("text-muted-foreground",p),children:h.assignee??"Unassigned"}):null,c("dependencies")?r.jsx("td",{className:Pe("text-muted-foreground",p),children:h.dependsOn.length}):null,c("created")?r.jsx("td",{className:Pe("text-muted-foreground",p),children:An(h.created)}):null,c("updated")?r.jsx("td",{className:Pe("text-muted-foreground",p),children:An(h.updated)}):null]},y)})})]})})}function jL(e,t,n){return e.filter(s=>Ig(s,t,{workspace:n,search:t.search}))}function PS({view:e,compact:t,emptyDescription:n}){const{data:s,loading:i,error:l}=Ad(),c=Ko(),u=f.useMemo(()=>c.order.map(m=>({id:m,title:tc(c,m),description:Gd(m)})),[c]),p=f.useMemo(()=>{if(!s)return[];const m=jL(s.assignments,e.config.filters,e.workspace);return nc(m,e.config.sortField,e.config.sortDirection)},[s,e]);if(i&&!s)return r.jsx(gt,{label:"Loading assignments…"});if(l)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:l})]});if(p.length===0)return r.jsx(Nt,{title:"No assignments match this view.",description:n??"Adjust the view's filters to surface different work."});switch(e.config.viewMode){case"kanban":return r.jsx(qd,{compact:t,dragDisabled:!0,columns:u,items:p,getItemId:m=>m.slug||m.id,getColumnId:m=>m.status,hiddenColumnIds:e.config.kanbanColumnVisibility.hidden,renderCard:m=>t?r.jsx(kL,{item:m}):r.jsx(SL,{item:m})});case"list":return r.jsx(bL,{items:p,statusOrder:c.order,sortField:e.config.sortField,sortDirection:e.config.sortDirection,listSectionVisibility:e.config.listSectionVisibility,compact:t});case"table":return r.jsx(wL,{items:p,sortField:e.config.sortField,sortDirection:e.config.sortDirection,tableColumnVisibility:e.config.tableColumnVisibility,compact:t})}}function kL({item:e}){const t=Ml(e);return r.jsxs("div",{className:Pe("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(dn,{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:An(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 SL({item:e}){const t=Ml(e);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-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(dn,{status:e.status})]}),r.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2",children:[r.jsx(qo,{type:e.type,compact:!0}),r.jsx("span",{className:"text-xs capitalize text-muted-foreground",children:e.priority})]}),r.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2 text-[11px] text-muted-foreground",children:[r.jsx("span",{className:"truncate",children:e.assignee??"Unassigned"}),r.jsx("span",{className:"shrink-0",children:An(e.updated)})]})]})}function NL({viewId:e,onPickAnother:t}){const{view:n,loading:s,error:i,refetch:l}=Bo(e);return s?r.jsx(gt,{label:"Loading view…"}):i?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"})]}):n?r.jsx(PS,{view:n,compact:!0,emptyDescription:"Adjust the view's filters to surface different work, or pick another widget for this slot."}):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"})]})}function CL({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:_o.recentSessionsEmptyTitle}),r.jsx("p",{className:"mt-1 text-muted-foreground",children:_o.recentSessionsEmptyHint})]}):r.jsx("ul",{className:"divide-y divide-border/40",children:e.map(t=>r.jsx("li",{children:r.jsx(EL,{session:t})},t.sessionId))})]})}function EL({session:e}){const t=on(),[n,s]=f.useState(!1),i=TL(e,t),l=PL(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," · ",f0(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:_o.recentSessionsCopyFallbackHint})]}):null]}),r.jsx(Dr,{value:e.path,label:_o.recentSessionsCopyPathLabel,disabled:c,disabledReason:_o.recentSessionsCopyPathDisabled,onError:()=>s(!0)})]})}function TL(e,t){return e.projectSlug&&e.assignmentSlug?`${t}/projects/${e.projectSlug}/assignments/${e.assignmentSlug}`:(!e.projectSlug&&e.assignmentSlug,"/agent-sessions")}function PL(e){return e.assignmentSlug&&e.projectSlug?`${e.projectSlug}/${e.assignmentSlug}`:e.assignmentSlug?`standalone/${e.assignmentSlug}`:"standalone"}function RL(){const{data:e,loading:t,error:n}=P0();return t&&!e?r.jsx(gt,{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(CL,{sessions:(e==null?void 0:e.sessions)??[]})}const AL=5;function DL(){const{data:e,loading:t,error:n}=T0();if(t&&!e)return r.jsx(gt,{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,AL);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 RS={"saved-view":{title:"Saved view",icon:t0,render:(e,t)=>e.kind!=="saved-view"?null:f.createElement(NL,{viewId:e.viewId,onPickAnother:t.onPickAnother})},"agent-sessions":{title:"Agent sessions",icon:Nd,render:()=>f.createElement(RL)},inventories:{title:"Inventories",icon:Ed,render:()=>f.createElement(DL)}};function LL({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(tn,{className:"h-4 w-4"}),"Add widget"]})});const s=RS[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($L,{slot:e,fallback:s.title})})]}),r.jsx(Og,{items:[{key:"replace",label:"Replace…",icon:eP,onSelect:t},{key:"remove",label:"Remove",icon:Kn,destructive:!0,onSelect:n}]})]}),r.jsx("div",{children:s.render(e.widget,{slotId:e.id,onPickAnother:t})})]})}function $L({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}=Bo(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 OL=["agent-sessions","inventories"];function IL({open:e,onOpenChange:t,onSelect:n}){const{views:s,loading:i}=Md();function l(c){n(c),t(!1)}return r.jsx(ir,{open:e,onOpenChange:t,children:r.jsxs(qn,{className:"max-w-xl",children:[r.jsxs(Xr,{children:[r.jsx(Gn,{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:OL.map(c=>{const u=RS[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 _L(){const{data:e,error:t,refetch:n}=QP(),{data:s}=N0(),{layout:i}=mD(),[l,c]=f.useState(!1),[u,p]=f.useState(null),[m,h]=f.useState(null);uo("list:overview"),Vt({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 gD(w)}catch(k){h(k instanceof Error?k.message:String(k))}},[]),b=f.useCallback(w=>{if(u===null)return;const k=i.slots.map((E,C)=>C===u?{...E,widget:w}:E);p(null),y(k)},[i.slots,u,y]),N=f.useCallback(w=>{const k=i.slots.map((E,C)=>C===w?{...E,widget:null}:E);y(k)},[i.slots,y]),j={};if(e)for(const w of Object.keys(e.segments))for(const k of e.segments[w].items)j[k.id]=k;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(tD,{hero:e.hero,itemsById:j}):t?r.jsx(jt,{error:t}):r.jsx(gt,{label:"Loading overview…"}),e!=null&&e.firstRun?r.jsx(Z3,{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,k)=>r.jsx(LL,{slot:w,index:k,onReplace:()=>x(k),onRemove:()=>N(k)},w.id))}),e!=null&&e.serverStats?r.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[r.jsx(Qh,{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(IL,{open:l,onOpenChange:w=>{c(w),w||p(null)},onSelect:b})]})}function ML({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 FL(){const{data:e,loading:t,error:n}=N0(),{openCheatsheet:s}=co();return t?r.jsx(gt,{label:"Loading help…"}):n||!e?r.jsx(jt,{error:n||"Help content is unavailable."}):r.jsxs("div",{className:"space-y-5",children:[r.jsx(We,{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. ",cs("Mod+k")," opens the command palette."]})]})}),r.jsx(We,{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(We,{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(zu,{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(We,{title:"Core Concepts",children:[r.jsx("div",{className:"flex flex-wrap gap-2",children:e.coreConcepts.map(i=>r.jsx(ML,{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(We,{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(dn,{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(We,{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(We,{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(We,{title:"CLI Quick Reference",children:r.jsx("div",{className:"grid gap-3 xl:grid-cols-2",children:e.commands.map(i=>r.jsx(zu,{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(We,{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(We,{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(zu,{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 _g({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 Jd=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(lo,{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"})]}));Jd.displayName="SearchInput";function Xd({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:Pe("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 zL={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"},Kv=["bg-primary","bg-secondary","bg-accent-coral","bg-accent-teal","bg-accent-amber"];function ud({progress:e,className:t,showLegend:n=!1}){const s=Ko(),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:zL[p]??Kv[c++%Kv.length]}))},[s.order,e]),l=i.filter(c=>(e[c.key]??0)>0);return r.jsxs("div",{className:Pe("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:`${gn(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:Pe("h-2 w-2 rounded-full",c.className)}),r.jsx("span",{children:gn(c.key)}),r.jsx("span",{className:"font-medium text-foreground",children:e[c.key]??0})]},c.key))}):null]})}const BL=["pending","active","blocked","failed","completed"],Mg=BL,UL=["draft","pending","ready_for_planning","ready_to_implement","in_progress","blocked","review","completed","failed"];function AS(e){return e&&e.length>0?e:[...UL]}function VL(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 HL=220,ku=8;function DS({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)??HL,p=(c==null?void 0:c.offsetHeight)??0,m=Math.max(ku,window.innerWidth-u-ku),h=Math.max(ku,window.innerHeight-p-ku);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(Mo,{delayDuration:200,children:t.map(c=>{const u=c.icon,p=Pe("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 WL="__ungrouped__";function Fg({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}=Rd(),[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 N=f.useMemo(()=>[...((c==null?void 0:c.workspaces)??[]).map(E=>({key:E,label:E,value:E})),{key:WL,label:"Ungrouped",value:null}],[c]),j=!h&&p!==n;async function w(){if(j){x(!0),b(null);try{await s(p),t(!1)}catch(k){b(k instanceof Error?k.message:"Failed to move item")}finally{x(!1)}}}return r.jsx(ir,{open:e,onOpenChange:k=>h?void 0:t(k),children:r.jsxs(qn,{children:[r.jsxs(Xr,{children:[r.jsx(Gn,{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&&N.length===0?r.jsxs("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-muted-foreground",children:[r.jsx(Xh,{className:"h-4 w-4 animate-spin"})," Loading workspaces…"]}):N.map(k=>{const E=k.value===n,C=k.value===p;return r.jsxs("button",{type:"button",disabled:E||h,onClick:()=>m(k.value),className:Pe("flex w-full items-center justify-between px-3 py-2 text-left text-sm transition",E?"cursor-not-allowed bg-foreground/5 text-muted-foreground":C?"bg-accent/40 text-foreground":"hover:bg-foreground/5"),children:[r.jsxs("span",{className:Pe("block min-w-0 truncate",k.value===null?"italic text-muted-foreground":""),children:[k.label,E?r.jsx("span",{className:"ml-2 text-xs",children:"(current)"}):null]}),C?r.jsx(Rs,{className:"h-4 w-4 text-foreground"}):null]},k.key)})}),y?r.jsx("p",{className:"text-sm text-destructive",role:"alert",children:y}):null,r.jsxs(As,{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:!j,className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:h?"Moving…":"Move"})]})]})})}function qv(){const{workspace:e}=Lt(),t=on(),n=Dt(),{data:s,loading:i,error:l,refetch:c}=Vo(),u=f.useRef(null);uo("list:projects");const[p,m]=f.useState(""),[h,x]=f.useState("all"),[y,b]=f.useState("all"),[N,j]=f.useState("updated"),[w,k]=ps(),E=w.get("view"),C=E==="table"||E==="kanban"?E:"cards",P=O=>{k(K=>{const A=new URLSearchParams(K);return O==="cards"?A.delete("view"):A.set("view",O),A})},[$,T]=f.useState({}),[D,_]=f.useState(null),[Y,Q]=f.useState(null),L=f.useMemo(()=>s?s.filter(O=>{if(e){if(e==="_ungrouped"){if(O.workspace!==null)return!1}else if(O.workspace!==e)return!1}return h!=="all"&&O.status!==h||y!=="all"&&!O.tags.includes(y)?!1:p.trim()?`${O.title} ${O.tags.join(" ")} ${O.slug}`.toLowerCase().includes(p.toLowerCase()):!0}).sort((O,K)=>GL(O,K,N)):[],[s,p,h,y,N,e]),W=L.map(O=>`${O.slug}:${O.status}`).join("|");f.useEffect(()=>{T(YL(L))},[W,N]);const te=f.useMemo(()=>{const O=new Map(L.map(K=>[K.slug,K]));return Mg.flatMap(K=>($[K]??L.filter(B=>B.status===K).map(B=>B.slug)).map(B=>O.get(B)).filter(B=>!!B))},[L,$]),{visibleItems:F,visibleIndexByKey:H}=f.useMemo(()=>{const O=C==="kanban"?te:L,K=new Map;return O.forEach((A,B)=>K.set(A.slug,B)),{visibleItems:O,visibleIndexByKey:K}},[C,L,te]),{hotkeyRowProps:X}=Ql(F,{scope:"list:projects",onOpen:O=>n(`${t}/projects/${O.slug}`)});if(Vt({keys:"/",scope:"list:projects",description:"Focus filter",handler:()=>{var O;return(O=u.current)==null?void 0:O.focus()}}),Vt({keys:"r",scope:"list:projects",description:"Refresh",handler:()=>c()}),i)return r.jsx(gt,{label:"Loading projects…"});if(l||!s)return r.jsx(jt,{error:l||"Project list is unavailable."});const le=Array.from(new Set(s.flatMap(O=>O.tags))).sort();return r.jsxs("div",{className:"space-y-5",children:[r.jsxs(_g,{children:[r.jsx(Jd,{ref:u,value:p,onChange:m,placeholder:"Search by project title or tag"}),r.jsxs("select",{value:h,onChange:O=>x(O.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:O=>b(O.target.value),className:"editor-input max-w-[180px]",children:[r.jsx("option",{value:"all",children:"All tags"}),le.map(O=>r.jsx("option",{value:O,children:O},O))]}),r.jsxs("select",{value:N,onChange:O=>j(O.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(Xd,{value:C,onChange:O=>P(O),options:[{value:"cards",label:"Cards"},{value:"table",label:"Table"},{value:"kanban",label:"Kanban"}]})]}),L.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(Nt,{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"})}):C==="cards"?r.jsx("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:L.map((O,K)=>r.jsxs(Ce,{to:`${t}/projects/${O.slug}`,className:"block rounded-lg border border-border/60 bg-card/90 p-3 shadow-sm transition hover:border-primary/40 hover:shadow-md",...X(K),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:O.title}),r.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",An(O.updated)]})]}),r.jsx(dn,{status:O.status})]}),r.jsxs("div",{className:"mt-4 space-y-3",children:[r.jsx(ud,{progress:O.progress,showLegend:!0}),r.jsx("div",{className:"flex flex-wrap gap-2",children:O.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:O.needsAttention.blockedCount+O.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:O.progress.total})]})]})]})]},O.slug))}):C==="table"?r.jsx(We,{title:`${L.length} project${L.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:L.map((O,K)=>r.jsxs("tr",{className:"border-b border-border/50 last:border-0",...X(K),children:[r.jsxs("td",{className:"py-4 pr-4",children:[r.jsx(Ce,{to:`${t}/projects/${O.slug}`,className:"font-semibold text-foreground hover:text-primary",children:O.title}),r.jsx("div",{className:"mt-1 flex flex-wrap gap-2",children:O.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(dn,{status:O.status})}),r.jsx("td",{className:"py-4 pr-4",children:r.jsx("div",{className:"min-w-[220px]",children:r.jsx(ud,{progress:O.progress})})}),r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:O.needsAttention.blockedCount+O.needsAttention.failedCount}),r.jsx("td",{className:"py-4 text-muted-foreground",children:An(O.updated)})]},O.slug))})]})})}):r.jsx(qd,{columns:qL,items:te,getItemId:O=>O.slug,getColumnId:O=>O.status,canDrop:({fromColumnId:O,toColumnId:K})=>({allowed:!0,reason:O===K?void 0:"This will set a manual status override on the project."}),onMove:({item:O,fromColumnId:K,toColumnId:A,fromIndex:B,toIndex:Z})=>{if(K===A){const I=$[K]??L.filter(ue=>ue.status===K).map(ue=>ue.slug);T(ue=>({...ue,[K]:VL(I,B,Z)}));return}fetch(`/api/projects/${O.slug}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:A})}).then(()=>{window.location.reload()})},getExternalDragData:O=>({type:"project",id:O.slug}),onCardContextMenu:(O,K)=>{K.preventDefault(),_({project:O,anchor:{x:K.clientX,y:K.clientY}})},emptyMessage:O=>`No ${O.title.toLowerCase()} projects.`,renderCard:(O,{dragging:K})=>{const A=H.get(O.slug)??-1;return r.jsx("div",{...A>=0?X(A):{},children:r.jsx(JL,{project:O,dragging:K})})}}),r.jsx(DS,{anchor:(D==null?void 0:D.anchor)??null,items:D?[{key:"edit",label:"Edit",icon:da,onSelect:()=>n(`${t}/projects/${D.project.slug}`)},{key:"move",label:"Move to workspace…",icon:Jl,onSelect:()=>Q(D.project)}]:[],onClose:()=>_(null)}),r.jsx(Fg,{open:Y!==null,onOpenChange:O=>{O||Q(null)},currentWorkspace:(Y==null?void 0:Y.workspace)??null,title:"Move project to workspace",onSubmit:async O=>{if(!Y)return;const K=await fetch(`/api/projects/${encodeURIComponent(Y.slug)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:O})});if(!K.ok){const A=await K.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(Jh,{className:"mt-0.5 h-4 w-4"}),r.jsxs("p",{children:["Project status is derived from assignment state by default.",C==="kanban"?" Drag projects between columns or use":" Use"," the status override on the project detail page to set a manual status."]})]})})]})}const KL={pending:"Pending",active:"Active",blocked:"Blocked",failed:"Failed",completed:"Completed"},qL=Mg.map(e=>({id:e,title:KL[e],description:Gd(e)}));function GL(e,t,n){switch(n){case"created":return t.created.localeCompare(e.created);case"title":return e.title.localeCompare(t.title);case"attention":return Gv(t)-Gv(e);case"updated":default:return t.updated.localeCompare(e.updated)}}function Gv(e){return e.needsAttention.failedCount*10+e.needsAttention.blockedCount*5+e.needsAttention.openQuestions}function YL(e){return Object.fromEntries(Mg.map(t=>[t,e.filter(n=>n.status===t).map(n=>n.slug)]))}function JL({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 ",An(e.updated)]})]}),r.jsx(dn,{status:e.status})]}),r.jsx("div",{className:"mt-4",children:r.jsx(ud,{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 dd({title:e,description:t,actions:n,className:s}){return r.jsxs("div",{className:Pe("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 XL=4e3;function Go(){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},XL)},[]);return f.useEffect(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{toast:e,showToast:i,dismissToast:s}}function Yo({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:Pe("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 QL(){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 Yv(e){return e.projectSlug?`/projects/${e.projectSlug}/assignments/${e.slug}`:`/assignments/${e.id}`}function ZL(){const{data:e,loading:t,error:n,refetch:s}=ZP(),[i,l]=f.useState(null),[c,u]=f.useState(null),[p,m]=f.useState({}),{toast:h,showToast:x,dismissToast:y}=Go();async function b(C,P,$){l(P),u(null);try{const T=await fetch(C,{method:"POST",headers:{"Content-Type":"application/json"}});if(!T.ok){const D=await T.json().catch(()=>null);throw new Error((D==null?void 0:D.error)||`HTTP ${T.status}`)}s(),x($,"success")}catch(T){u(T instanceof Error?T.message:"Restore failed")}finally{l(null)}}function N(C){return b(`/api/projects/${C.slug}/unarchive`,`project:${C.slug}`,"Project restored")}function j(C){const P=C.projectSlug?`/api/projects/${C.projectSlug}/assignments/${C.slug}/unarchive`:`/api/assignments/${C.id}/unarchive`;return b(P,`assignment:${C.id}`,"Assignment restored")}if(t)return r.jsx(gt,{label:"Loading archived content…"});if(n)return r.jsx(jt,{error:n});const w=(e==null?void 0:e.projects)??[],k=(e==null?void 0:e.assignments)??[],E=w.length===0&&k.length===0;return r.jsxs("div",{className:"space-y-6",children:[r.jsx(Yo,{toast:h,onDismiss:y}),r.jsx(dd,{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,E?r.jsx(Nt,{title:"Nothing archived",description:"Archived projects and assignments will appear here, ready to restore."}):r.jsxs(r.Fragment,{children:[w.length>0&&r.jsx(We,{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(C=>{const P=p[C.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($=>({...$,[C.slug]:!P})),className:"inline-flex items-center gap-1.5 text-left text-sm font-medium text-foreground hover:text-foreground/80","aria-expanded":P,children:[P?r.jsx(Wr,{className:"h-4 w-4"}):r.jsx(LT,{className:"h-4 w-4"}),r.jsx(Gh,{className:"h-4 w-4 text-muted-foreground"}),C.title,r.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",C.assignments.length," assignment",C.assignments.length===1?"":"s",")"]})]}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Archived ",C.archivedAt?Lr(C.archivedAt):"with no timestamp",C.archivedReason?` · ${C.archivedReason}`:""]}),r.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[r.jsx(Ce,{to:`/projects/${C.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:()=>N(C),disabled:i===`project:${C.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(qu,{className:"h-3 w-3"}),"Restore"]})]})]}),P&&C.assignments.length>0&&r.jsx("ul",{className:"mt-2 space-y-1 pl-9",children:C.assignments.map($=>r.jsxs("li",{className:"flex flex-wrap items-center gap-2 text-sm",children:[r.jsx(Ce,{to:Yv($),className:"text-foreground hover:text-foreground/80",children:$.title}),r.jsx(dn,{status:$.status,showIcon:!1}),r.jsx("span",{className:"text-xs text-muted-foreground",children:$.archived?"Archived individually — stays archived after restore":"Hidden via project — returns on restore"})]},$.id))})]},C.slug)})})}),k.length>0&&r.jsx(We,{title:"Archived Assignments",description:"Individually-archived assignments whose project is still active.",children:r.jsx("ul",{className:"divide-y divide-border",children:k.map(C=>r.jsxs("li",{className:"flex flex-wrap items-center gap-3 py-3",children:[r.jsx(Ce,{to:Yv(C),className:"text-sm font-medium text-foreground hover:text-foreground/80",children:C.title}),r.jsx(dn,{status:C.status,showIcon:!1}),r.jsx(QL,{}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:[C.projectTitle??"Standalone"," · Archived"," ",C.archivedAt?Lr(C.archivedAt):"with no timestamp",C.archivedReason?` · ${C.archivedReason}`:""]}),r.jsxs("button",{type:"button",onClick:()=>j(C),disabled:i===`assignment:${C.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(qu,{className:"h-3 w-3"}),"Restore"]})]},C.id))})})]})]})}const Jv="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",Xv="block min-w-0 truncate";function zg({externalIds:e,className:t}){return e.length===0?null:r.jsx("span",{className:Pe("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:Pe(Jv,"transition-colors hover:text-foreground hover:border-foreground/40"),title:`Open ${i} in ${n.system}`,children:[r.jsx("span",{className:Xv,children:i}),r.jsx(ua,{className:"h-2.5 w-2.5 shrink-0"})]},l):r.jsx("span",{className:Jv,title:i,children:r.jsx("span",{className:Xv,children:i})},l)})})}const e$={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 Rn({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=Pe(e$[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 Qv(e){const t=t$(e),n=f.forwardRef((s,i)=>{const{children:l,...c}=s,u=f.Children.toArray(l),p=u.find(r$);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 t$(e){const t=f.forwardRef((n,s)=>{const{children:i,...l}=n;if(f.isValidElement(i)){const c=o$(i),u=s$(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 n$=Symbol("radix.slottable");function r$(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===n$}function s$(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 o$(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 i$(e){const t=e+"CollectionProvider",[n,s]=Ho(t),[i,l]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=j=>{const{scope:w,children:k}=j,E=en.useRef(null),C=en.useRef(new Map).current;return r.jsx(i,{scope:w,itemMap:C,collectionRef:E,children:k})};c.displayName=t;const u=e+"CollectionSlot",p=Qv(u),m=en.forwardRef((j,w)=>{const{scope:k,children:E}=j,C=l(u,k),P=Fn(w,C.collectionRef);return r.jsx(p,{ref:P,children:E})});m.displayName=u;const h=e+"CollectionItemSlot",x="data-radix-collection-item",y=Qv(h),b=en.forwardRef((j,w)=>{const{scope:k,children:E,...C}=j,P=en.useRef(null),$=Fn(w,P),T=l(h,k);return en.useEffect(()=>(T.itemMap.set(P,{ref:P,...C}),()=>void T.itemMap.delete(P))),r.jsx(y,{[x]:"",ref:$,children:E})});b.displayName=h;function N(j){const w=l(e+"CollectionConsumer",j);return en.useCallback(()=>{const E=w.collectionRef.current;if(!E)return[];const C=Array.from(E.querySelectorAll(`[${x}]`));return Array.from(w.itemMap.values()).sort((T,D)=>C.indexOf(T.ref.current)-C.indexOf(D.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:c,Slot:m,ItemSlot:b},N,s]}var a$=f.createContext(void 0);function LS(e){const t=f.useContext(a$);return e||t||"ltr"}var Nm="rovingFocusGroup.onEntryFocus",l$={bubbles:!1,cancelable:!0},rc="RovingFocusGroup",[bh,$S,c$]=i$(rc),[u$,OS]=Ho(rc,[c$]),[d$,f$]=u$(rc),IS=f.forwardRef((e,t)=>r.jsx(bh.Provider,{scope:e.__scopeRovingFocusGroup,children:r.jsx(bh.Slot,{scope:e.__scopeRovingFocusGroup,children:r.jsx(p$,{...e,ref:t})})}));IS.displayName=rc;var p$=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=Fn(t,y),N=LS(l),[j,w]=$d({prop:c,defaultProp:u??null,onChange:p,caller:rc}),[k,E]=f.useState(!1),C=Fo(m),P=$S(n),$=f.useRef(!1),[T,D]=f.useState(0);return f.useEffect(()=>{const _=y.current;if(_)return _.addEventListener(Nm,C),()=>_.removeEventListener(Nm,C)},[C]),r.jsx(d$,{scope:n,orientation:s,dir:N,loop:i,currentTabStopId:j,onItemFocus:f.useCallback(_=>w(_),[w]),onItemShiftTab:f.useCallback(()=>E(!0),[]),onFocusableItemAdd:f.useCallback(()=>D(_=>_+1),[]),onFocusableItemRemove:f.useCallback(()=>D(_=>_-1),[]),children:r.jsx(fn.div,{tabIndex:k||T===0?-1:0,"data-orientation":s,...x,ref:b,style:{outline:"none",...e.style},onMouseDown:Kt(e.onMouseDown,()=>{$.current=!0}),onFocus:Kt(e.onFocus,_=>{const Y=!$.current;if(_.target===_.currentTarget&&Y&&!k){const Q=new CustomEvent(Nm,l$);if(_.currentTarget.dispatchEvent(Q),!Q.defaultPrevented){const L=P().filter(X=>X.focusable),W=L.find(X=>X.active),te=L.find(X=>X.id===j),H=[W,te,...L].filter(Boolean).map(X=>X.ref.current);FS(H,h)}}$.current=!1}),onBlur:Kt(e.onBlur,()=>E(!1))})})}),_S="RovingFocusGroupItem",MS=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:s=!0,active:i=!1,tabStopId:l,children:c,...u}=e,p=Ki(),m=l||p,h=f$(_S,n),x=h.currentTabStopId===m,y=$S(n),{onFocusableItemAdd:b,onFocusableItemRemove:N,currentTabStopId:j}=h;return f.useEffect(()=>{if(s)return b(),()=>N()},[s,b,N]),r.jsx(bh.ItemSlot,{scope:n,id:m,focusable:s,active:i,children:r.jsx(fn.span,{tabIndex:x?0:-1,"data-orientation":h.orientation,...u,ref:t,onMouseDown:Kt(e.onMouseDown,w=>{s?h.onItemFocus(m):w.preventDefault()}),onFocus:Kt(e.onFocus,()=>h.onItemFocus(m)),onKeyDown:Kt(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){h.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const k=g$(w,h.orientation,h.dir);if(k!==void 0){if(w.metaKey||w.ctrlKey||w.altKey||w.shiftKey)return;w.preventDefault();let C=y().filter(P=>P.focusable).map(P=>P.ref.current);if(k==="last")C.reverse();else if(k==="prev"||k==="next"){k==="prev"&&C.reverse();const P=C.indexOf(w.currentTarget);C=h.loop?x$(C,P+1):C.slice(P+1)}setTimeout(()=>FS(C))}}),children:typeof c=="function"?c({isCurrentTabStop:x,hasTabStop:j!=null}):c})})});MS.displayName=_S;var m$={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function h$(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function g$(e,t,n){const s=h$(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(s))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(s)))return m$[s]}function FS(e,t=!1){const n=document.activeElement;for(const s of e)if(s===n||(s.focus({preventScroll:t}),document.activeElement!==n))return}function x$(e,t){return e.map((n,s)=>e[(t+s)%e.length])}var y$=IS,b$=MS,Qd="Tabs",[v$]=Ho(Qd,[OS]),zS=OS(),[w$,Bg]=v$(Qd),BS=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,onValueChange:i,defaultValue:l,orientation:c="horizontal",dir:u,activationMode:p="automatic",...m}=e,h=LS(u),[x,y]=$d({prop:s,onChange:i,defaultProp:l??"",caller:Qd});return r.jsx(w$,{scope:n,baseId:Ki(),value:x,onValueChange:y,orientation:c,dir:h,activationMode:p,children:r.jsx(fn.div,{dir:h,"data-orientation":c,...m,ref:t})})});BS.displayName=Qd;var US="TabsList",VS=f.forwardRef((e,t)=>{const{__scopeTabs:n,loop:s=!0,...i}=e,l=Bg(US,n),c=zS(n);return r.jsx(y$,{asChild:!0,...c,orientation:l.orientation,dir:l.dir,loop:s,children:r.jsx(fn.div,{role:"tablist","aria-orientation":l.orientation,...i,ref:t})})});VS.displayName=US;var HS="TabsTrigger",WS=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,disabled:i=!1,...l}=e,c=Bg(HS,n),u=zS(n),p=GS(c.baseId,s),m=YS(c.baseId,s),h=s===c.value;return r.jsx(b$,{asChild:!0,...u,focusable:!i,active:h,children:r.jsx(fn.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:Kt(e.onMouseDown,x=>{!i&&x.button===0&&x.ctrlKey===!1?c.onValueChange(s):x.preventDefault()}),onKeyDown:Kt(e.onKeyDown,x=>{[" ","Enter"].includes(x.key)&&c.onValueChange(s)}),onFocus:Kt(e.onFocus,()=>{const x=c.activationMode!=="manual";!h&&!i&&x&&c.onValueChange(s)})})})});WS.displayName=HS;var KS="TabsContent",qS=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:s,forceMount:i,children:l,...c}=e,u=Bg(KS,n),p=GS(u.baseId,s),m=YS(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(Wo,{present:i||h,children:({present:y})=>r.jsx(fn.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})})});qS.displayName=KS;function GS(e,t){return`${e}-trigger-${t}`}function YS(e,t){return`${e}-content-${t}`}var JS=BS,XS=VS,vh=WS,wh=qS;function Ug({value:e,onValueChange:t,items:n,className:s}){return r.jsxs(JS,{value:e,onValueChange:t,className:s,children:[r.jsx(XS,{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(vh,{value:i.value,className:Pe("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(wh,{value:i.value,className:"pt-3",children:i.content},i.value))]})}const j$="modulepreload",k$=function(e){return"/"+e},Zv={},S$=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=k$(m),m in Zv)return;Zv[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":j$,h||(y.as="script"),y.crossOrigin="",y.href=m,p&&y.setAttribute("nonce",p),document.head.appendChild(y),h)return new Promise((b,N)=>{y.addEventListener("load",b),y.addEventListener("error",()=>N(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 N$({definition:e,className:t,nodeRoutes:n={}}){const s=f.useRef(null),[i,l]=f.useState(null),[c,u]=f.useState(!0),p=Dt(),m=document.documentElement.classList.contains("dark")?"dark":"default";return f.useEffect(()=>{let h=!1;async function x(){if(s.current)try{const y=(await S$(async()=>{const{default:j}=await import("./mermaid.core-SHnQ4DTm.js").then(w=>w.bF);return{default:j}},[])).default;if(y.initialize({startOnLoad:!1,theme:"base",themeVariables:C$(m==="dark")}),h)return;const b=`mermaid-${Date.now()}`,{svg:N}=await y.render(b,e);if(h||!s.current)return;s.current.innerHTML=N,E$(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:Pe("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:Pe("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 C$(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 E$(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 T$(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const P$=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,R$=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,A$={};function ew(e,t){return(A$.jsx?R$:P$).test(e)}const D$=/[ \t\n\f\r]/g;function L$(e){return typeof e=="object"?e.type==="text"?tw(e.value):!1:tw(e)}function tw(e){return e.replace(D$,"")===""}class sc{constructor(t,n,s){this.normal=n,this.property=t,s&&(this.space=s)}}sc.prototype.normal={};sc.prototype.property={};sc.prototype.space=void 0;function QS(e,t){const n={},s={};for(const i of e)Object.assign(n,i.property),Object.assign(s,i.normal);return new sc(n,s,t)}function jh(e){return e.toLowerCase()}class ar{constructor(t,n){this.attribute=n,this.property=t}}ar.prototype.attribute="";ar.prototype.booleanish=!1;ar.prototype.boolean=!1;ar.prototype.commaOrSpaceSeparated=!1;ar.prototype.commaSeparated=!1;ar.prototype.defined=!1;ar.prototype.mustUseProperty=!1;ar.prototype.number=!1;ar.prototype.overloadedBoolean=!1;ar.prototype.property="";ar.prototype.spaceSeparated=!1;ar.prototype.space=void 0;let $$=0;const dt=Jo(),cn=Jo(),kh=Jo(),Ee=Jo(),It=Jo(),Qi=Jo(),pr=Jo();function Jo(){return 2**++$$}const Sh=Object.freeze(Object.defineProperty({__proto__:null,boolean:dt,booleanish:cn,commaOrSpaceSeparated:pr,commaSeparated:Qi,number:Ee,overloadedBoolean:kh,spaceSeparated:It},Symbol.toStringTag,{value:"Module"})),Cm=Object.keys(Sh);class Vg extends ar{constructor(t,n,s,i){let l=-1;if(super(t,n),nw(this,"space",i),typeof s=="number")for(;++l<Cm.length;){const c=Cm[l];nw(this,Cm[l],(s&Sh[c])===Sh[c])}}}Vg.prototype.defined=!0;function nw(e,t,n){n&&(e[t]=n)}function ha(e){const t={},n={};for(const[s,i]of Object.entries(e.properties)){const l=new Vg(s,e.transform(e.attributes||{},s),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(s)&&(l.mustUseProperty=!0),t[s]=l,n[jh(s)]=s,n[jh(l.attribute)]=s}return new sc(t,n,e.space)}const ZS=ha({properties:{ariaActiveDescendant:null,ariaAtomic:cn,ariaAutoComplete:null,ariaBusy:cn,ariaChecked:cn,ariaColCount:Ee,ariaColIndex:Ee,ariaColSpan:Ee,ariaControls:It,ariaCurrent:null,ariaDescribedBy:It,ariaDetails:null,ariaDisabled:cn,ariaDropEffect:It,ariaErrorMessage:null,ariaExpanded:cn,ariaFlowTo:It,ariaGrabbed:cn,ariaHasPopup:null,ariaHidden:cn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:It,ariaLevel:Ee,ariaLive:null,ariaModal:cn,ariaMultiLine:cn,ariaMultiSelectable:cn,ariaOrientation:null,ariaOwns:It,ariaPlaceholder:null,ariaPosInSet:Ee,ariaPressed:cn,ariaReadOnly:cn,ariaRelevant:null,ariaRequired:cn,ariaRoleDescription:It,ariaRowCount:Ee,ariaRowIndex:Ee,ariaRowSpan:Ee,ariaSelected:cn,ariaSetSize:Ee,ariaSort:null,ariaValueMax:Ee,ariaValueMin:Ee,ariaValueNow:Ee,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function e1(e,t){return t in e?e[t]:t}function t1(e,t){return e1(e,t.toLowerCase())}const O$=ha({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Qi,acceptCharset:It,accessKey:It,action:null,allow:null,allowFullScreen:dt,allowPaymentRequest:dt,allowUserMedia:dt,alt:null,as:null,async:dt,autoCapitalize:null,autoComplete:It,autoFocus:dt,autoPlay:dt,blocking:It,capture:null,charSet:null,checked:dt,cite:null,className:It,cols:Ee,colSpan:null,content:null,contentEditable:cn,controls:dt,controlsList:It,coords:Ee|Qi,crossOrigin:null,data:null,dateTime:null,decoding:null,default:dt,defer:dt,dir:null,dirName:null,disabled:dt,download:kh,draggable:cn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:dt,formTarget:null,headers:It,height:Ee,hidden:kh,high:Ee,href:null,hrefLang:null,htmlFor:It,httpEquiv:It,id:null,imageSizes:null,imageSrcSet:null,inert:dt,inputMode:null,integrity:null,is:null,isMap:dt,itemId:null,itemProp:It,itemRef:It,itemScope:dt,itemType:It,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:dt,low:Ee,manifest:null,max:null,maxLength:Ee,media:null,method:null,min:null,minLength:Ee,multiple:dt,muted:dt,name:null,nonce:null,noModule:dt,noValidate:dt,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:dt,optimum:Ee,pattern:null,ping:It,placeholder:null,playsInline:dt,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:dt,referrerPolicy:null,rel:It,required:dt,reversed:dt,rows:Ee,rowSpan:Ee,sandbox:It,scope:null,scoped:dt,seamless:dt,selected:dt,shadowRootClonable:dt,shadowRootDelegatesFocus:dt,shadowRootMode:null,shape:null,size:Ee,sizes:null,slot:null,span:Ee,spellCheck:cn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Ee,step:null,style:null,tabIndex:Ee,target:null,title:null,translate:null,type:null,typeMustMatch:dt,useMap:null,value:cn,width:Ee,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:It,axis:null,background:null,bgColor:null,border:Ee,borderColor:null,bottomMargin:Ee,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:dt,declare:dt,event:null,face:null,frame:null,frameBorder:null,hSpace:Ee,leftMargin:Ee,link:null,longDesc:null,lowSrc:null,marginHeight:Ee,marginWidth:Ee,noResize:dt,noHref:dt,noShade:dt,noWrap:dt,object:null,profile:null,prompt:null,rev:null,rightMargin:Ee,rules:null,scheme:null,scrolling:cn,standby:null,summary:null,text:null,topMargin:Ee,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Ee,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:dt,disableRemotePlayback:dt,prefix:null,property:null,results:Ee,security:null,unselectable:null},space:"html",transform:t1}),I$=ha({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:Ee,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Ee,amplitude:Ee,arabicForm:null,ascent:Ee,attributeName:null,attributeType:null,azimuth:Ee,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Ee,by:null,calcMode:null,capHeight:Ee,className:It,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:Ee,diffuseConstant:Ee,direction:null,display:null,dur:null,divisor:Ee,dominantBaseline:null,download:dt,dx:null,dy:null,edgeMode:null,editable:null,elevation:Ee,enableBackground:null,end:null,event:null,exponent:Ee,externalResourcesRequired:null,fill:null,fillOpacity:Ee,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:Qi,g2:Qi,glyphName:Qi,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Ee,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Ee,horizOriginX:Ee,horizOriginY:Ee,id:null,ideographic:Ee,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Ee,k:Ee,k1:Ee,k2:Ee,k3:Ee,k4:Ee,kernelMatrix:pr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Ee,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:Ee,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:Ee,overlineThickness:Ee,paintOrder:null,panose1:null,path:null,pathLength:Ee,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:It,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Ee,pointsAtY:Ee,pointsAtZ:Ee,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:Ee,specularExponent:Ee,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Ee,strikethroughThickness:Ee,string:null,stroke:null,strokeDashArray:pr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Ee,strokeOpacity:Ee,strokeWidth:null,style:null,surfaceScale:Ee,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:pr,tabIndex:Ee,tableValues:null,target:null,targetX:Ee,targetY:Ee,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:Ee,underlineThickness:Ee,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Ee,values:null,vAlphabetic:Ee,vMathematical:Ee,vectorEffect:null,vHanging:Ee,vIdeographic:Ee,version:null,vertAdvY:Ee,vertOriginX:Ee,vertOriginY:Ee,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Ee,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:e1}),n1=ha({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()}}),r1=ha({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:t1}),s1=ha({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),_$={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"},M$=/[A-Z]/g,rw=/-[a-z]/g,F$=/^data[-\w.:]+$/i;function z$(e,t){const n=jh(t);let s=t,i=ar;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&F$.test(t)){if(t.charAt(4)==="-"){const l=t.slice(5).replace(rw,U$);s="data"+l.charAt(0).toUpperCase()+l.slice(1)}else{const l=t.slice(4);if(!rw.test(l)){let c=l.replace(M$,B$);c.charAt(0)!=="-"&&(c="-"+c),t="data"+c}}i=Vg}return new i(s,t)}function B$(e){return"-"+e.toLowerCase()}function U$(e){return e.charAt(1).toUpperCase()}const V$=QS([ZS,O$,n1,r1,s1],"html"),Hg=QS([ZS,I$,n1,r1,s1],"svg");function H$(e){return e.join(" ").trim()}var $i={},Em,sw;function W$(){if(sw)return Em;sw=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 N(w,k){if(typeof w!="string")throw new TypeError("First argument must be a string");if(!w)return[];k=k||{};var E=1,C=1;function P(F){var H=F.match(t);H&&(E+=H.length);var X=F.lastIndexOf(p);C=~X?F.length-X:C+F.length}function $(){var F={line:E,column:C};return function(H){return H.position=new T(F),Y(),H}}function T(F){this.start=F,this.end={line:E,column:C},this.source=k.source}T.prototype.content=w;function D(F){var H=new Error(k.source+":"+E+":"+C+": "+F);if(H.reason=F,H.filename=k.source,H.line=E,H.column=C,H.source=w,!k.silent)throw H}function _(F){var H=F.exec(w);if(H){var X=H[0];return P(X),w=w.slice(X.length),H}}function Y(){_(n)}function Q(F){var H;for(F=F||[];H=L();)H!==!1&&F.push(H);return F}function L(){var F=$();if(!(m!=w.charAt(0)||h!=w.charAt(1))){for(var H=2;x!=w.charAt(H)&&(h!=w.charAt(H)||m!=w.charAt(H+1));)++H;if(H+=2,x===w.charAt(H-1))return D("End of comment missing");var X=w.slice(2,H-2);return C+=2,P(X),w=w.slice(H),C+=2,F({type:y,comment:X})}}function W(){var F=$(),H=_(s);if(H){if(L(),!_(i))return D("property missing ':'");var X=_(l),le=F({type:b,property:j(H[0].replace(e,x)),value:X?j(X[0].replace(e,x)):x});return _(c),le}}function te(){var F=[];Q(F);for(var H;H=W();)H!==!1&&(F.push(H),Q(F));return F}return Y(),te()}function j(w){return w?w.replace(u,x):x}return Em=N,Em}var ow;function K$(){if(ow)return $i;ow=1;var e=$i&&$i.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty($i,"__esModule",{value:!0}),$i.default=n;const t=e(W$());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 $i}var ul={},iw;function q$(){if(iw)return ul;iw=1,Object.defineProperty(ul,"__esModule",{value:!0}),ul.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 ul.camelCase=p,ul}var dl,aw;function G$(){if(aw)return dl;aw=1;var e=dl&&dl.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(K$()),n=q$();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,dl=s,dl}var Y$=G$();const J$=jd(Y$),o1=i1("end"),Wg=i1("start");function i1(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 X$(e){const t=Wg(e),n=o1(e);if(t&&n)return{start:t,end:n}}function wl(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?lw(e.position):"start"in e||"end"in e?lw(e):"line"in e||"column"in e?Nh(e):""}function Nh(e){return cw(e&&e.line)+":"+cw(e&&e.column)}function lw(e){return Nh(e&&e.start)+"-"+Nh(e&&e.end)}function cw(e){return e&&typeof e=="number"?e:1}class zn 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=wl(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}}zn.prototype.file="";zn.prototype.name="";zn.prototype.reason="";zn.prototype.message="";zn.prototype.stack="";zn.prototype.column=void 0;zn.prototype.line=void 0;zn.prototype.ancestors=void 0;zn.prototype.cause=void 0;zn.prototype.fatal=void 0;zn.prototype.place=void 0;zn.prototype.ruleId=void 0;zn.prototype.source=void 0;const Kg={}.hasOwnProperty,Q$=new Map,Z$=/[A-Z]/g,eO=new Set(["table","tbody","thead","tfoot","tr"]),tO=new Set(["td","th"]),a1="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function nO(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=uO(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=cO(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"?Hg:V$,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},l=l1(i,e,void 0);return l&&typeof l!="string"?l:i.create(e,i.Fragment,{children:l||void 0},void 0)}function l1(e,t,n){if(t.type==="element")return rO(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return sO(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return iO(e,t,n);if(t.type==="mdxjsEsm")return oO(e,t);if(t.type==="root")return aO(e,t,n);if(t.type==="text")return lO(e,t)}function rO(e,t,n){const s=e.schema;let i=s;t.tagName.toLowerCase()==="svg"&&s.space==="html"&&(i=Hg,e.schema=i),e.ancestors.push(t);const l=u1(e,t.tagName,!1),c=dO(e,t);let u=Gg(e,t);return eO.has(t.tagName)&&(u=u.filter(function(p){return typeof p=="string"?!L$(p):!0})),c1(e,c,l,t),qg(c,u),e.ancestors.pop(),e.schema=s,e.create(t,l,c,n)}function sO(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)}Fl(e,t.position)}function oO(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Fl(e,t.position)}function iO(e,t,n){const s=e.schema;let i=s;t.name==="svg"&&s.space==="html"&&(i=Hg,e.schema=i),e.ancestors.push(t);const l=t.name===null?e.Fragment:u1(e,t.name,!0),c=fO(e,t),u=Gg(e,t);return c1(e,c,l,t),qg(c,u),e.ancestors.pop(),e.schema=s,e.create(t,l,c,n)}function aO(e,t,n){const s={};return qg(s,Gg(e,t)),e.create(t,e.Fragment,s,n)}function lO(e,t){return t.value}function c1(e,t,n,s){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=s)}function qg(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function cO(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 uO(e,t){return n;function n(s,i,l,c){const u=Array.isArray(l.children),p=Wg(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 dO(e,t){const n={};let s,i;for(i in t.properties)if(i!=="children"&&Kg.call(t.properties,i)){const l=pO(e,i,t.properties[i]);if(l){const[c,u]=l;e.tableCellAlignToStyle&&c==="align"&&typeof u=="string"&&tO.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 fO(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 Fl(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 Fl(e,t.position);else l=s.value===null?!0:s.value;n[i]=l}return n}function Gg(e,t){const n=[];let s=-1;const i=e.passKeys?new Map:Q$;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=l1(e,l,c);u!==void 0&&n.push(u)}return n}function pO(e,t,n){const s=z$(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=s.commaSeparated?T$(n):H$(n)),s.property==="style"){let i=typeof n=="object"?n:mO(e,String(n));return e.stylePropertyNameCase==="css"&&(i=hO(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&s.space?_$[s.property]||s.property:s.attribute,n]}}function mO(e,t){try{return J$(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const s=n,i=new zn("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=a1+"#cannot-parse-style-attribute",i}}function u1(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=ew(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=ew(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(s.type==="Literal"){const i=s.value;return Kg.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(s);Fl(e)}function Fl(e,t){const n=new zn("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=a1+"#cannot-handle-mdx-estrees-without-createevaluater",n}function hO(e){const t={};let n;for(n in e)Kg.call(e,n)&&(t[gO(n)]=e[n]);return t}function gO(e){let t=e.replace(Z$,xO);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function xO(e){return"-"+e.toLowerCase()}const Tm={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"]},yO={};function bO(e,t){const n=yO,s=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return d1(e,s,i)}function d1(e,t,n){if(vO(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 uw(e.children,t,n)}return Array.isArray(e)?uw(e,t,n):""}function uw(e,t,n){const s=[];let i=-1;for(;++i<e.length;)s[i]=d1(e[i],t,n);return s.join("")}function vO(e){return!!(e&&typeof e=="object")}const dw=document.createElement("i");function Yg(e){const t="&"+e+";";dw.innerHTML=t;const n=dw.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 fw={}.hasOwnProperty;function wO(e){const t={};let n=-1;for(;++n<e.length;)jO(t,e[n]);return t}function jO(e,t){let n;for(n in t){const i=(fw.call(e,n)?e[n]:void 0)||(e[n]={}),l=t[n];let c;if(l)for(c in l){fw.call(i,c)||(i[c]=[]);const u=l[c];kO(i[c],Array.isArray(u)?u:u?[u]:[])}}}function kO(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 f1(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 Zi(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const is=fo(/[A-Za-z]/),xr=fo(/[\dA-Za-z]/),SO=fo(/[#-'*+\--9=?A-Z^-~]/);function Ch(e){return e!==null&&(e<32||e===127)}const Eh=fo(/\d/),NO=fo(/[\dA-Fa-f]/),CO=fo(/[!-/:-@[-`{-~]/);function st(e){return e!==null&&e<-2}function or(e){return e!==null&&(e<0||e===32)}function Tt(e){return e===-2||e===-1||e===32}const EO=fo(new RegExp("\\p{P}|\\p{S}","u")),TO=fo(/\s/);function fo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function ga(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 _t(e,t,n,s){const i=s?s-1:Number.POSITIVE_INFINITY;let l=0;return c;function c(p){return Tt(p)?(e.enter(n),u(p)):t(p)}function u(p){return Tt(p)&&l++<i?(e.consume(p),u):(e.exit(n),t(p))}}const PO={tokenize:RO};function RO(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"),_t(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 st(u)?(e.consume(u),e.exit("chunkText"),l):(e.consume(u),c)}}const AO={tokenize:DO},pw={tokenize:LO};function DO(e){const t=this,n=[];let s=0,i,l,c;return u;function u(C){if(s<n.length){const P=n[s];return t.containerState=P[1],e.attempt(P[0].continuation,p,m)(C)}return m(C)}function p(C){if(s++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&E();const P=t.events.length;let $=P,T;for(;$--;)if(t.events[$][0]==="exit"&&t.events[$][1].type==="chunkFlow"){T=t.events[$][1].end;break}k(s);let D=P;for(;D<t.events.length;)t.events[D][1].end={...T},D++;return ds(t.events,$+1,0,t.events.slice(P)),t.events.length=D,m(C)}return u(C)}function m(C){if(s===n.length){if(!i)return y(C);if(i.currentConstruct&&i.currentConstruct.concrete)return N(C);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(pw,h,x)(C)}function h(C){return i&&E(),k(s),y(C)}function x(C){return t.parser.lazy[t.now().line]=s!==n.length,c=t.now().offset,N(C)}function y(C){return t.containerState={},e.attempt(pw,b,N)(C)}function b(C){return s++,n.push([t.currentConstruct,t.containerState]),y(C)}function N(C){if(C===null){i&&E(),k(0),e.consume(C);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:l}),j(C)}function j(C){if(C===null){w(e.exit("chunkFlow"),!0),k(0),e.consume(C);return}return st(C)?(e.consume(C),w(e.exit("chunkFlow")),s=0,t.interrupt=void 0,u):(e.consume(C),j)}function w(C,P){const $=t.sliceStream(C);if(P&&$.push(null),C.previous=l,l&&(l.next=C),l=C,i.defineSkip(C.start),i.write($),t.parser.lazy[C.start.line]){let T=i.events.length;for(;T--;)if(i.events[T][1].start.offset<c&&(!i.events[T][1].end||i.events[T][1].end.offset>c))return;const D=t.events.length;let _=D,Y,Q;for(;_--;)if(t.events[_][0]==="exit"&&t.events[_][1].type==="chunkFlow"){if(Y){Q=t.events[_][1].end;break}Y=!0}for(k(s),T=D;T<t.events.length;)t.events[T][1].end={...Q},T++;ds(t.events,_+1,0,t.events.slice(D)),t.events.length=T}}function k(C){let P=n.length;for(;P-- >C;){const $=n[P];t.containerState=$[1],$[0].exit.call(t,e)}n.length=C}function E(){i.write([null]),l=void 0,i=void 0,t.containerState._closeFlow=void 0}}function LO(e,t,n){return _t(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function mw(e){if(e===null||or(e)||TO(e))return 1;if(EO(e))return 2}function Jg(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 Th={name:"attention",resolveAll:$O,tokenize:OO};function $O(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};hw(x,-p),hw(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,Jg(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 OO(e,t){const n=this.parser.constructs.attentionMarkers.null,s=this.previous,i=mw(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=mw(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 hw(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const IO={name:"autolink",tokenize:_O};function _O(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 is(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||Ch(b)?n(b):(e.consume(b),p)}function m(b){return b===64?(e.consume(b),h):SO(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 N=b===45?y:x;return e.consume(b),N}return n(b)}}const Zd={partial:!0,tokenize:MO};function MO(e,t,n){return s;function s(l){return Tt(l)?_t(e,i,"linePrefix")(l):i(l)}function i(l){return l===null||st(l)?t(l):n(l)}}const p1={continuation:{tokenize:zO},exit:BO,name:"blockQuote",tokenize:FO};function FO(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 Tt(c)?(e.enter("blockQuotePrefixWhitespace"),e.consume(c),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(c))}}function zO(e,t,n){const s=this;return i;function i(c){return Tt(c)?_t(e,l,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c):l(c)}function l(c){return e.attempt(p1,t,n)(c)}}function BO(e){e.exit("blockQuote")}const m1={name:"characterEscape",tokenize:UO};function UO(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 CO(l)?(e.enter("characterEscapeValue"),e.consume(l),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(l)}}const h1={name:"characterReference",tokenize:VO};function VO(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=NO,h):(e.enter("characterReferenceValue"),l=7,c=Eh,h(x))}function h(x){if(x===59&&i){const y=e.exit("characterReferenceValue");return c===xr&&!Yg(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 gw={partial:!0,tokenize:WO},xw={concrete:!0,name:"codeFenced",tokenize:HO};function HO(e,t,n){const s=this,i={partial:!0,tokenize:$};let l=0,c=0,u;return p;function p(T){return m(T)}function m(T){const D=s.events[s.events.length-1];return l=D&&D[1].type==="linePrefix"?D[2].sliceSerialize(D[1],!0).length:0,u=T,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),h(T)}function h(T){return T===u?(c++,e.consume(T),h):c<3?n(T):(e.exit("codeFencedFenceSequence"),Tt(T)?_t(e,x,"whitespace")(T):x(T))}function x(T){return T===null||st(T)?(e.exit("codeFencedFence"),s.interrupt?t(T):e.check(gw,j,P)(T)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),y(T))}function y(T){return T===null||st(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),x(T)):Tt(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),_t(e,b,"whitespace")(T)):T===96&&T===u?n(T):(e.consume(T),y)}function b(T){return T===null||st(T)?x(T):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),N(T))}function N(T){return T===null||st(T)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),x(T)):T===96&&T===u?n(T):(e.consume(T),N)}function j(T){return e.attempt(i,P,w)(T)}function w(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),k}function k(T){return l>0&&Tt(T)?_t(e,E,"linePrefix",l+1)(T):E(T)}function E(T){return T===null||st(T)?e.check(gw,j,P)(T):(e.enter("codeFlowValue"),C(T))}function C(T){return T===null||st(T)?(e.exit("codeFlowValue"),E(T)):(e.consume(T),C)}function P(T){return e.exit("codeFenced"),t(T)}function $(T,D,_){let Y=0;return Q;function Q(H){return T.enter("lineEnding"),T.consume(H),T.exit("lineEnding"),L}function L(H){return T.enter("codeFencedFence"),Tt(H)?_t(T,W,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(H):W(H)}function W(H){return H===u?(T.enter("codeFencedFenceSequence"),te(H)):_(H)}function te(H){return H===u?(Y++,T.consume(H),te):Y>=c?(T.exit("codeFencedFenceSequence"),Tt(H)?_t(T,F,"whitespace")(H):F(H)):_(H)}function F(H){return H===null||st(H)?(T.exit("codeFencedFence"),D(H)):_(H)}}}function WO(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 Pm={name:"codeIndented",tokenize:qO},KO={partial:!0,tokenize:GO};function qO(e,t,n){const s=this;return i;function i(m){return e.enter("codeIndented"),_t(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):st(m)?e.attempt(KO,c,p)(m):(e.enter("codeFlowValue"),u(m))}function u(m){return m===null||st(m)?(e.exit("codeFlowValue"),c(m)):(e.consume(m),u)}function p(m){return e.exit("codeIndented"),t(m)}}function GO(e,t,n){const s=this;return i;function i(c){return s.parser.lazy[s.now().line]?n(c):st(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i):_t(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):st(c)?i(c):n(c)}}const YO={name:"codeText",previous:XO,resolve:JO,tokenize:QO};function JO(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 XO(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function QO(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)):st(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||st(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 ZO{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&&fl(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),fl(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),fl(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);fl(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);fl(this.left,n.reverse())}}}function fl(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 g1(e){const t={};let n=-1,s,i,l,c,u,p,m;const h=new ZO(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,eI(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 eI(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,N=0,j=0;const w=[j];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&&(j=y+1,w.push(j),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 k=u.slice(w[y],w[y+1]),E=l.pop();p.push([E,E+k.length-1]),e.splice(E,2,k)}for(p.reverse(),y=-1;++y<p.length;)m[N+p[y][0]]=N+p[y][1],N+=p[y][1]-p[y][0]-1;return m}const tI={resolve:rI,tokenize:sI},nI={partial:!0,tokenize:oI};function rI(e){return g1(e),e}function sI(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):st(u)?e.check(nI,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 oI(e,t,n){const s=this;return i;function i(c){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),_t(e,l,"linePrefix")}function l(c){if(c===null||st(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 x1(e,t,n,s,i,l,c,u,p){const m=p||Number.POSITIVE_INFINITY;let h=0;return x;function x(k){return k===60?(e.enter(s),e.enter(i),e.enter(l),e.consume(k),e.exit(l),y):k===null||k===32||k===41||Ch(k)?n(k):(e.enter(s),e.enter(c),e.enter(u),e.enter("chunkString",{contentType:"string"}),j(k))}function y(k){return k===62?(e.enter(l),e.consume(k),e.exit(l),e.exit(i),e.exit(s),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),b(k))}function b(k){return k===62?(e.exit("chunkString"),e.exit(u),y(k)):k===null||k===60||st(k)?n(k):(e.consume(k),k===92?N:b)}function N(k){return k===60||k===62||k===92?(e.consume(k),b):b(k)}function j(k){return!h&&(k===null||k===41||or(k))?(e.exit("chunkString"),e.exit(u),e.exit(c),e.exit(s),t(k)):h<m&&k===40?(e.consume(k),h++,j):k===41?(e.consume(k),h--,j):k===null||k===32||k===40||Ch(k)?n(k):(e.consume(k),k===92?w:j)}function w(k){return k===40||k===41||k===92?(e.consume(k),j):j(k)}}function y1(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):st(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||st(b)||u++>999?(e.exit("chunkString"),h(b)):(e.consume(b),p||(p=!Tt(b)),b===92?y:x)}function y(b){return b===91||b===92||b===93?(e.consume(b),u++,x):x(b)}}function b1(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):st(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),_t(e,m,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===c||y===null||st(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 jl(e,t){let n;return s;function s(i){return st(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,s):Tt(i)?_t(e,s,n?"linePrefix":"lineSuffix")(i):t(i)}}const iI={name:"definition",tokenize:lI},aI={partial:!0,tokenize:cI};function lI(e,t,n){const s=this;let i;return l;function l(b){return e.enter("definition"),c(b)}function c(b){return y1.call(s,e,u,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(b)}function u(b){return i=Zi(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 or(b)?jl(e,m)(b):m(b)}function m(b){return x1(e,h,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function h(b){return e.attempt(aI,x,x)(b)}function x(b){return Tt(b)?_t(e,y,"whitespace")(b):y(b)}function y(b){return b===null||st(b)?(e.exit("definition"),s.parser.defined.push(i),t(b)):n(b)}}function cI(e,t,n){return s;function s(u){return or(u)?jl(e,i)(u):n(u)}function i(u){return b1(e,l,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(u)}function l(u){return Tt(u)?_t(e,c,"whitespace")(u):c(u)}function c(u){return u===null||st(u)?t(u):n(u)}}const uI={name:"hardBreakEscape",tokenize:dI};function dI(e,t,n){return s;function s(l){return e.enter("hardBreakEscape"),e.consume(l),i}function i(l){return st(l)?(e.exit("hardBreakEscape"),t(l)):n(l)}}const fI={name:"headingAtx",resolve:pI,tokenize:mI};function pI(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 mI(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||or(h)?(e.exit("atxHeadingSequence"),u(h)):n(h)}function u(h){return h===35?(e.enter("atxHeadingSequence"),p(h)):h===null||st(h)?(e.exit("atxHeading"),t(h)):Tt(h)?_t(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||or(h)?(e.exit("atxHeadingText"),u(h)):(e.consume(h),m)}}const hI=["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"],yw=["pre","script","style","textarea"],gI={concrete:!0,name:"htmlFlow",resolveTo:bI,tokenize:vI},xI={partial:!0,tokenize:jI},yI={partial:!0,tokenize:wI};function bI(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 vI(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,j):I===63?(e.consume(I),i=3,s.interrupt?t:A):is(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,N):is(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 N(I){const ue="CDATA[";return I===ue.charCodeAt(u++)?(e.consume(I),u===ue.length?s.interrupt?t:W:N):n(I)}function j(I){return is(I)?(e.consume(I),c=String.fromCharCode(I),w):n(I)}function w(I){if(I===null||I===47||I===62||or(I)){const ue=I===47,he=c.toLowerCase();return!ue&&!l&&yw.includes(he)?(i=1,s.interrupt?t(I):W(I)):hI.includes(c.toLowerCase())?(i=6,ue?(e.consume(I),k):s.interrupt?t(I):W(I)):(i=7,s.interrupt&&!s.parser.lazy[s.now().line]?n(I):l?E(I):C(I))}return I===45||xr(I)?(e.consume(I),c+=String.fromCharCode(I),w):n(I)}function k(I){return I===62?(e.consume(I),s.interrupt?t:W):n(I)}function E(I){return Tt(I)?(e.consume(I),E):Q(I)}function C(I){return I===47?(e.consume(I),Q):I===58||I===95||is(I)?(e.consume(I),P):Tt(I)?(e.consume(I),C):Q(I)}function P(I){return I===45||I===46||I===58||I===95||xr(I)?(e.consume(I),P):$(I)}function $(I){return I===61?(e.consume(I),T):Tt(I)?(e.consume(I),$):C(I)}function T(I){return I===null||I===60||I===61||I===62||I===96?n(I):I===34||I===39?(e.consume(I),p=I,D):Tt(I)?(e.consume(I),T):_(I)}function D(I){return I===p?(e.consume(I),p=null,Y):I===null||st(I)?n(I):(e.consume(I),D)}function _(I){return I===null||I===34||I===39||I===47||I===60||I===61||I===62||I===96||or(I)?$(I):(e.consume(I),_)}function Y(I){return I===47||I===62||Tt(I)?C(I):n(I)}function Q(I){return I===62?(e.consume(I),L):n(I)}function L(I){return I===null||st(I)?W(I):Tt(I)?(e.consume(I),L):n(I)}function W(I){return I===45&&i===2?(e.consume(I),X):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),K):st(I)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(xI,Z,te)(I)):I===null||st(I)?(e.exit("htmlFlowData"),te(I)):(e.consume(I),W)}function te(I){return e.check(yI,F,Z)(I)}function F(I){return e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),H}function H(I){return I===null||st(I)?te(I):(e.enter("htmlFlowData"),W(I))}function X(I){return I===45?(e.consume(I),A):W(I)}function le(I){return I===47?(e.consume(I),c="",O):W(I)}function O(I){if(I===62){const ue=c.toLowerCase();return yw.includes(ue)?(e.consume(I),B):W(I)}return is(I)&&c.length<8?(e.consume(I),c+=String.fromCharCode(I),O):W(I)}function K(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||st(I)?(e.exit("htmlFlowData"),Z(I)):(e.consume(I),B)}function Z(I){return e.exit("htmlFlow"),t(I)}}function wI(e,t,n){const s=this;return i;function i(c){return st(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 jI(e,t,n){return s;function s(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Zd,t,n)}}const kI={name:"htmlText",tokenize:SI};function SI(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),$):A===63?(e.consume(A),C):is(A)?(e.consume(A),_):n(A)}function m(A){return A===45?(e.consume(A),h):A===91?(e.consume(A),l=0,N):is(A)?(e.consume(A),E):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):st(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?X(A):A===45?y(A):x(A)}function N(A){const B="CDATA[";return A===B.charCodeAt(l++)?(e.consume(A),l===B.length?j:N):n(A)}function j(A){return A===null?n(A):A===93?(e.consume(A),w):st(A)?(c=j,le(A)):(e.consume(A),j)}function w(A){return A===93?(e.consume(A),k):j(A)}function k(A){return A===62?X(A):A===93?(e.consume(A),k):j(A)}function E(A){return A===null||A===62?X(A):st(A)?(c=E,le(A)):(e.consume(A),E)}function C(A){return A===null?n(A):A===63?(e.consume(A),P):st(A)?(c=C,le(A)):(e.consume(A),C)}function P(A){return A===62?X(A):C(A)}function $(A){return is(A)?(e.consume(A),T):n(A)}function T(A){return A===45||xr(A)?(e.consume(A),T):D(A)}function D(A){return st(A)?(c=D,le(A)):Tt(A)?(e.consume(A),D):X(A)}function _(A){return A===45||xr(A)?(e.consume(A),_):A===47||A===62||or(A)?Y(A):n(A)}function Y(A){return A===47?(e.consume(A),X):A===58||A===95||is(A)?(e.consume(A),Q):st(A)?(c=Y,le(A)):Tt(A)?(e.consume(A),Y):X(A)}function Q(A){return A===45||A===46||A===58||A===95||xr(A)?(e.consume(A),Q):L(A)}function L(A){return A===61?(e.consume(A),W):st(A)?(c=L,le(A)):Tt(A)?(e.consume(A),L):Y(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,te):st(A)?(c=W,le(A)):Tt(A)?(e.consume(A),W):(e.consume(A),F)}function te(A){return A===i?(e.consume(A),i=void 0,H):A===null?n(A):st(A)?(c=te,le(A)):(e.consume(A),te)}function F(A){return A===null||A===34||A===39||A===60||A===61||A===96?n(A):A===47||A===62||or(A)?Y(A):(e.consume(A),F)}function H(A){return A===47||A===62||or(A)?Y(A):n(A)}function X(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"),O}function O(A){return Tt(A)?_t(e,K,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):K(A)}function K(A){return e.enter("htmlTextData"),c(A)}}const Xg={name:"labelEnd",resolveAll:TI,resolveTo:PI,tokenize:RI},NI={tokenize:AI},CI={tokenize:DI},EI={tokenize:LI};function TI(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 PI(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,Jg(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 RI(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(Zi(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(NI,h,c?h:x)(y):y===91?e.attempt(CI,h,c?m:x)(y):c?h(y):x(y)}function m(y){return e.attempt(EI,h,x)(y)}function h(y){return t(y)}function x(y){return l._balanced=!0,n(y)}}function AI(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 or(x)?jl(e,l)(x):l(x)}function l(x){return x===41?h(x):x1(e,c,u,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(x)}function c(x){return or(x)?jl(e,p)(x):h(x)}function u(x){return n(x)}function p(x){return x===34||x===39||x===40?b1(e,m,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(x):h(x)}function m(x){return or(x)?jl(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 DI(e,t,n){const s=this;return i;function i(u){return y1.call(s,e,l,c,"reference","referenceMarker","referenceString")(u)}function l(u){return s.parser.defined.includes(Zi(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)))?t(u):n(u)}function c(u){return n(u)}}function LI(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 $I={name:"labelStartImage",resolveAll:Xg.resolveAll,tokenize:OI};function OI(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 II={name:"labelStartLink",resolveAll:Xg.resolveAll,tokenize:_I};function _I(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 Rm={name:"lineEnding",tokenize:MI};function MI(e,t){return n;function n(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),_t(e,t,"linePrefix")}}const Vu={name:"thematicBreak",tokenize:FI};function FI(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||st(m))?(e.exit("thematicBreak"),t(m)):n(m)}function p(m){return m===i?(e.consume(m),s++,p):(e.exit("thematicBreakSequence"),Tt(m)?_t(e,u,"whitespace")(m):u(m))}}const nr={continuation:{tokenize:VI},exit:WI,name:"list",tokenize:UI},zI={partial:!0,tokenize:KI},BI={partial:!0,tokenize:HI};function UI(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 N=s.containerState.type||(b===42||b===43||b===45?"listUnordered":"listOrdered");if(N==="listUnordered"?!s.containerState.marker||b===s.containerState.marker:Eh(b)){if(s.containerState.type||(s.containerState.type=N,e.enter(N,{_container:!0})),N==="listUnordered")return e.enter("listItemPrefix"),b===42||b===45?e.check(Vu,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 Eh(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(zI,y,x))}function h(b){return s.containerState.initialBlankLine=!0,l++,y(b)}function x(b){return Tt(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 VI(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,_t(e,t,"listItemIndent",s.containerState.size+1)(u)}function l(u){return s.containerState.furtherBlankLines||!Tt(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(BI,t,c)(u))}function c(u){return s.containerState._closeFlow=!0,s.interrupt=void 0,_t(e,e.attempt(nr,t,n),"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(u)}}function HI(e,t,n){const s=this;return _t(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 WI(e){e.exit(this.containerState.type)}function KI(e,t,n){const s=this;return _t(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!Tt(l)&&c&&c[1].type==="listItemPrefixWhitespace"?t(l):n(l)}}const bw={name:"setextUnderline",resolveTo:qI,tokenize:GI};function qI(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 GI(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"),Tt(m)?_t(e,p,"lineSuffix")(m):p(m))}function p(m){return m===null||st(m)?(e.exit("setextHeadingLine"),t(m)):n(m)}}const YI={tokenize:JI};function JI(e){const t=this,n=e.attempt(Zd,s,e.attempt(this.parser.constructs.flowInitial,i,_t(e,e.attempt(this.parser.constructs.flow,i,e.attempt(tI,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 XI={resolveAll:w1()},QI=v1("string"),ZI=v1("text");function v1(e){return{resolveAll:w1(e==="text"?e_: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 w1(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 e_(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 t_={42:nr,43:nr,45:nr,48:nr,49:nr,50:nr,51:nr,52:nr,53:nr,54:nr,55:nr,56:nr,57:nr,62:p1},n_={91:iI},r_={[-2]:Pm,[-1]:Pm,32:Pm},s_={35:fI,42:Vu,45:[bw,Vu],60:gI,61:bw,95:Vu,96:xw,126:xw},o_={38:h1,92:m1},i_={[-5]:Rm,[-4]:Rm,[-3]:Rm,33:$I,38:h1,42:Th,60:[IO,kI],91:II,92:[uI,m1],93:Xg,95:Th,96:YO},a_={null:[Th,XI]},l_={null:[42,95]},c_={null:[]},u_=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:l_,contentInitial:n_,disable:c_,document:t_,flow:s_,flowInitial:r_,insideSpan:a_,string:o_,text:i_},Symbol.toStringTag,{value:"Module"}));function d_(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:D($),check:D(T),consume:E,enter:C,exit:P,interrupt:D(T,{interrupt:!0})},m={code:null,containerState:{},defineSkip:j,events:[],now:N,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(L){return c=Tr(c,L),w(),c[c.length-1]!==null?[]:(_(t,0),m.events=Jg(l,m.events,m),m.events)}function y(L,W){return p_(b(L),W)}function b(L){return f_(c,L)}function N(){const{_bufferIndex:L,_index:W,line:te,column:F,offset:H}=s;return{_bufferIndex:L,_index:W,line:te,column:F,offset:H}}function j(L){i[L.line]=L.column,Q()}function w(){let L;for(;s._index<c.length;){const W=c[s._index];if(typeof W=="string")for(L=s._index,s._bufferIndex<0&&(s._bufferIndex=0);s._index===L&&s._bufferIndex<W.length;)k(W.charCodeAt(s._bufferIndex));else k(W)}}function k(L){h=h(L)}function E(L){st(L)?(s.line++,s.column=1,s.offset+=L===-3?2:1,Q()):L!==-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=L}function C(L,W){const te=W||{};return te.type=L,te.start=N(),m.events.push(["enter",te,m]),u.push(te),te}function P(L){const W=u.pop();return W.end=N(),m.events.push(["exit",W,m]),W}function $(L,W){_(L,W.from)}function T(L,W){W.restore()}function D(L,W){return te;function te(F,H,X){let le,O,K,A;return Array.isArray(F)?Z(F):"tokenize"in F?Z([F]):B(F);function B(V){return oe;function oe(de){const ye=de!==null&&V[de],je=de!==null&&V.null,fe=[...Array.isArray(ye)?ye:ye?[ye]:[],...Array.isArray(je)?je:je?[je]:[]];return Z(fe)(de)}}function Z(V){return le=V,O=0,V.length===0?X:I(V[O])}function I(V){return oe;function oe(de){return A=Y(),K=V,V.partial||(m.currentConstruct=V),V.name&&m.parser.constructs.disable.null.includes(V.name)?he():V.tokenize.call(W?Object.assign(Object.create(m),W):m,p,ue,he)(de)}}function ue(V){return L(K,A),H}function he(V){return A.restore(),++O<le.length?I(le[O]):X}}}function _(L,W){L.resolveAll&&!l.includes(L)&&l.push(L),L.resolve&&ds(m.events,W,m.events.length-W,L.resolve(m.events.slice(W),m)),L.resolveTo&&(m.events=L.resolveTo(m.events,m))}function Y(){const L=N(),W=m.previous,te=m.currentConstruct,F=m.events.length,H=Array.from(u);return{from:F,restore:X};function X(){s=L,m.previous=W,m.currentConstruct=te,m.events.length=F,u=H,Q()}}function Q(){s.line in i&&s.column<2&&(s.column=i[s.line],s.offset+=i[s.line]-1)}}function f_(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 p_(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 m_(e){const s={constructs:wO([u_,...(e||{}).extensions||[]]),content:i(PO),defined:[],document:i(AO),flow:i(YI),lazy:{},string:i(QI),text:i(ZI)};return s;function i(l){return c;function c(u){return d_(s,l,u)}}}function h_(e){for(;!g1(e););return e}const vw=/[\0\t\n\r]/g;function g_(){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(vw.lastIndex=x,m=vw.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 x_=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function y_(e){return e.replace(x_,b_)}function b_(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),l=i===120||i===88;return f1(n.slice(l?2:1),l?16:10)}return Yg(n)||e}const j1={}.hasOwnProperty;function v_(e,t,n){return t&&typeof t=="object"&&(n=t,t=void 0),w_(n)(h_(m_(n).document().write(g_()(e,t,!0))))}function w_(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(Xe),autolinkProtocol:Y,autolinkEmail:Y,atxHeading:l(G),blockQuote:l(je),characterEscape:Y,characterReference:Y,codeFenced:l(fe),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:l(fe,c),codeText:l(Ye,c),codeTextData:Y,data:Y,codeFlowValue:Y,definition:l(Je),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:l(ot),hardBreakEscape:l(De),hardBreakTrailing:l(De),htmlFlow:l(ke,c),htmlFlowData:Y,htmlText:l(ke,c),htmlTextData:Y,image:l(Re),label:c,link:l(Xe),listItem:l(at),listItemValue:y,listOrdered:l(Ie,x),listUnordered:l(Ie),paragraph:l(Be),reference:I,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:l(G),strong:l(ft),thematicBreak:l(Ne)},exit:{atxHeading:p(),atxHeadingSequence:$,autolink:p(),autolinkEmail:ye,autolinkProtocol:de,blockQuote:p(),characterEscapeValue:Q,characterReferenceMarkerHexadecimal:he,characterReferenceMarkerNumeric:he,characterReferenceValue:V,characterReference:oe,codeFenced:p(w),codeFencedFence:j,codeFencedFenceInfo:b,codeFencedFenceMeta:N,codeFlowValue:Q,codeIndented:p(k),codeText:p(H),codeTextData:Q,data:Q,definition:p(),definitionDestinationString:P,definitionLabelString:E,definitionTitleString:C,emphasis:p(),hardBreakEscape:p(W),hardBreakTrailing:p(W),htmlFlow:p(te),htmlFlowData:Q,htmlText:p(F),htmlTextData:Q,image:p(le),label:K,labelText:O,lineEnding:L,link:p(X),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:ue,resourceDestinationString:A,resourceTitleString:B,resource:Z,setextHeading:p(_),setextHeadingLineSequence:D,setextHeadingText:T,strong:p(),thematicBreak:p()}};k1(t,(e||{}).mdastExtensions||[]);const n={};return s;function s(z){let ne={type:"root",children:[]};const pe={stack:[ne],tokenStack:[],config:t,enter:u,exit:m,buffer:c,resume:h,data:n},Oe=[];let ee=-1;for(;++ee<z.length;)if(z[ee][1].type==="listOrdered"||z[ee][1].type==="listUnordered")if(z[ee][0]==="enter")Oe.push(ee);else{const me=Oe.pop();ee=i(z,me,ee)}for(ee=-1;++ee<z.length;){const me=t[z[ee][0]];j1.call(me,z[ee][1].type)&&me[z[ee][1].type].call(Object.assign({sliceSerialize:z[ee][2].sliceSerialize},pe),z[ee][1])}if(pe.tokenStack.length>0){const me=pe.tokenStack[pe.tokenStack.length-1];(me[1]||ww).call(pe,void 0,me[0])}for(ne.position={start:Qs(z.length>0?z[0][1].start:{line:1,column:1,offset:0}),end:Qs(z.length>0?z[z.length-2][1].end:{line:1,column:1,offset:0})},ee=-1;++ee<t.transforms.length;)ne=t.transforms[ee](ne)||ne;return ne}function i(z,ne,pe){let Oe=ne-1,ee=-1,me=!1,Me,it,qe,xt;for(;++Oe<=pe;){const ct=z[Oe];switch(ct[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{ct[0]==="enter"?ee++:ee--,xt=void 0;break}case"lineEndingBlank":{ct[0]==="enter"&&(Me&&!xt&&!ee&&!qe&&(qe=Oe),xt=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:xt=void 0}if(!ee&&ct[0]==="enter"&&ct[1].type==="listItemPrefix"||ee===-1&&ct[0]==="exit"&&(ct[1].type==="listUnordered"||ct[1].type==="listOrdered")){if(Me){let pt=Oe;for(it=void 0;pt--;){const nt=z[pt];if(nt[1].type==="lineEnding"||nt[1].type==="lineEndingBlank"){if(nt[0]==="exit")continue;it&&(z[it][1].type="lineEndingBlank",me=!0),nt[1].type="lineEnding",it=pt}else if(!(nt[1].type==="linePrefix"||nt[1].type==="blockQuotePrefix"||nt[1].type==="blockQuotePrefixWhitespace"||nt[1].type==="blockQuoteMarker"||nt[1].type==="listItemIndent"))break}qe&&(!it||qe<it)&&(Me._spread=!0),Me.end=Object.assign({},it?z[it][1].start:ct[1].end),z.splice(it||Oe,0,["exit",Me,ct[2]]),Oe++,pe++}if(ct[1].type==="listItemPrefix"){const pt={type:"listItem",_spread:!1,start:Object.assign({},ct[1].start),end:void 0};Me=pt,z.splice(Oe,0,["enter",pt,ct[2]]),Oe++,pe++,qe=void 0,xt=!0}}}return z[ne][1]._spread=me,pe}function l(z,ne){return pe;function pe(Oe){u.call(this,z(Oe),Oe),ne&&ne.call(this,Oe)}}function c(){this.stack.push({type:"fragment",children:[]})}function u(z,ne,pe){this.stack[this.stack.length-1].children.push(z),this.stack.push(z),this.tokenStack.push([ne,pe||void 0]),z.position={start:Qs(ne.start),end:void 0}}function p(z){return ne;function ne(pe){z&&z.call(this,pe),m.call(this,pe)}}function m(z,ne){const pe=this.stack.pop(),Oe=this.tokenStack.pop();if(Oe)Oe[0].type!==z.type&&(ne?ne.call(this,z,Oe[0]):(Oe[1]||ww).call(this,z,Oe[0]));else throw new Error("Cannot close `"+z.type+"` ("+wl({start:z.start,end:z.end})+"): it’s not open");pe.position.end=Qs(z.end)}function h(){return bO(this.stack.pop())}function x(){this.data.expectingFirstListItemValue=!0}function y(z){if(this.data.expectingFirstListItemValue){const ne=this.stack[this.stack.length-2];ne.start=Number.parseInt(this.sliceSerialize(z),10),this.data.expectingFirstListItemValue=void 0}}function b(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.lang=z}function N(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.meta=z}function j(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.value=z.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function k(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.value=z.replace(/(\r?\n|\r)$/g,"")}function E(z){const ne=this.resume(),pe=this.stack[this.stack.length-1];pe.label=ne,pe.identifier=Zi(this.sliceSerialize(z)).toLowerCase()}function C(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.title=z}function P(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.url=z}function $(z){const ne=this.stack[this.stack.length-1];if(!ne.depth){const pe=this.sliceSerialize(z).length;ne.depth=pe}}function T(){this.data.setextHeadingSlurpLineEnding=!0}function D(z){const ne=this.stack[this.stack.length-1];ne.depth=this.sliceSerialize(z).codePointAt(0)===61?1:2}function _(){this.data.setextHeadingSlurpLineEnding=void 0}function Y(z){const pe=this.stack[this.stack.length-1].children;let Oe=pe[pe.length-1];(!Oe||Oe.type!=="text")&&(Oe=be(),Oe.position={start:Qs(z.start),end:void 0},pe.push(Oe)),this.stack.push(Oe)}function Q(z){const ne=this.stack.pop();ne.value+=this.sliceSerialize(z),ne.position.end=Qs(z.end)}function L(z){const ne=this.stack[this.stack.length-1];if(this.data.atHardBreak){const pe=ne.children[ne.children.length-1];pe.position.end=Qs(z.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(ne.type)&&(Y.call(this,z),Q.call(this,z))}function W(){this.data.atHardBreak=!0}function te(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.value=z}function F(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.value=z}function H(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.value=z}function X(){const z=this.stack[this.stack.length-1];if(this.data.inReference){const ne=this.data.referenceType||"shortcut";z.type+="Reference",z.referenceType=ne,delete z.url,delete z.title}else delete z.identifier,delete z.label;this.data.referenceType=void 0}function le(){const z=this.stack[this.stack.length-1];if(this.data.inReference){const ne=this.data.referenceType||"shortcut";z.type+="Reference",z.referenceType=ne,delete z.url,delete z.title}else delete z.identifier,delete z.label;this.data.referenceType=void 0}function O(z){const ne=this.sliceSerialize(z),pe=this.stack[this.stack.length-2];pe.label=y_(ne),pe.identifier=Zi(ne).toLowerCase()}function K(){const z=this.stack[this.stack.length-1],ne=this.resume(),pe=this.stack[this.stack.length-1];if(this.data.inReference=!0,pe.type==="link"){const Oe=z.children;pe.children=Oe}else pe.alt=ne}function A(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.url=z}function B(){const z=this.resume(),ne=this.stack[this.stack.length-1];ne.title=z}function Z(){this.data.inReference=void 0}function I(){this.data.referenceType="collapsed"}function ue(z){const ne=this.resume(),pe=this.stack[this.stack.length-1];pe.label=ne,pe.identifier=Zi(this.sliceSerialize(z)).toLowerCase(),this.data.referenceType="full"}function he(z){this.data.characterReferenceType=z.type}function V(z){const ne=this.sliceSerialize(z),pe=this.data.characterReferenceType;let Oe;pe?(Oe=f1(ne,pe==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Oe=Yg(ne);const ee=this.stack[this.stack.length-1];ee.value+=Oe}function oe(z){const ne=this.stack.pop();ne.position.end=Qs(z.end)}function de(z){Q.call(this,z);const ne=this.stack[this.stack.length-1];ne.url=this.sliceSerialize(z)}function ye(z){Q.call(this,z);const ne=this.stack[this.stack.length-1];ne.url="mailto:"+this.sliceSerialize(z)}function je(){return{type:"blockquote",children:[]}}function fe(){return{type:"code",lang:null,meta:null,value:""}}function Ye(){return{type:"inlineCode",value:""}}function Je(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ot(){return{type:"emphasis",children:[]}}function G(){return{type:"heading",depth:0,children:[]}}function De(){return{type:"break"}}function ke(){return{type:"html",value:""}}function Re(){return{type:"image",title:null,url:"",alt:null}}function Xe(){return{type:"link",title:null,url:"",children:[]}}function Ie(z){return{type:"list",ordered:z.type==="listOrdered",start:null,spread:z._spread,children:[]}}function at(z){return{type:"listItem",spread:z._spread,checked:null,children:[]}}function Be(){return{type:"paragraph",children:[]}}function ft(){return{type:"strong",children:[]}}function be(){return{type:"text",value:""}}function Ne(){return{type:"thematicBreak"}}}function Qs(e){return{line:e.line,column:e.column,offset:e.offset}}function k1(e,t){let n=-1;for(;++n<t.length;){const s=t[n];Array.isArray(s)?k1(e,s):j_(e,s)}}function j_(e,t){let n;for(n in t)if(j1.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 ww(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+wl({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+wl({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+wl({start:t.start,end:t.end})+") is still open")}function k_(e){const t=this;t.parser=n;function n(s){return v_(s,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function S_(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 N_(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
|
|
519
|
+
`}]}function C_(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 E_(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function T_(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function P_(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",s=String(t.identifier).toUpperCase(),i=ga(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 R_(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 A_(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function S1(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 D_(e,t){const n=String(t.identifier).toUpperCase(),s=e.definitionById.get(n);if(!s)return S1(e,t);const i={src:ga(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 L_(e,t){const n={src:ga(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 $_(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 O_(e,t){const n=String(t.identifier).toUpperCase(),s=e.definitionById.get(n);if(!s)return S1(e,t);const i={href:ga(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 I_(e,t){const n={href:ga(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 __(e,t,n){const s=e.all(t),i=n?M_(n):N1(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 M_(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=N1(n[s])}return t}function N1(e){const t=e.spread;return t??e.children.length>1}function F_(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 z_(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function B_(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function U_(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function V_(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=Wg(t.children[1]),p=o1(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 H_(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 N={type:"element",tagName:l,properties:y,children:[]};x&&(N.children=e.all(x),e.patch(x,N),N=e.applyData(x,N)),m.push(N)}const h={type:"element",tagName:"tr",properties:{},children:e.wrap(m,!0)};return e.patch(t,h),e.applyData(t,h)}function W_(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const jw=9,kw=32;function K_(e){const t=String(e),n=/\r?\n|\r/g;let s=n.exec(t),i=0;const l=[];for(;s;)l.push(Sw(t.slice(i,s.index),i>0,!0),s[0]),i=s.index+s[0].length,s=n.exec(t);return l.push(Sw(t.slice(i),i>0,!1)),l.join("")}function Sw(e,t,n){let s=0,i=e.length;if(t){let l=e.codePointAt(s);for(;l===jw||l===kw;)s++,l=e.codePointAt(s)}if(n){let l=e.codePointAt(i-1);for(;l===jw||l===kw;)i--,l=e.codePointAt(i-1)}return i>s?e.slice(s,i):""}function q_(e,t){const n={type:"text",value:K_(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function G_(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Y_={blockquote:S_,break:N_,code:C_,delete:E_,emphasis:T_,footnoteReference:P_,heading:R_,html:A_,imageReference:D_,image:L_,inlineCode:$_,linkReference:O_,link:I_,listItem:__,list:F_,paragraph:z_,root:B_,strong:U_,table:V_,tableCell:W_,tableRow:H_,text:q_,thematicBreak:G_,toml:Su,yaml:Su,definition:Su,footnoteDefinition:Su};function Su(){}const C1=-1,ef=0,kl=1,fd=2,Qg=3,Zg=4,ex=5,tx=6,E1=7,T1=8,Nw=typeof self=="object"?self:globalThis,J_=(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 C1:return n(c,i);case kl:{const u=n([],i);for(const p of c)u.push(s(p));return u}case fd:{const u=n({},i);for(const[p,m]of c)u[s(p)]=s(m);return u}case Qg:return n(new Date(c),i);case Zg:{const{source:u,flags:p}=c;return n(new RegExp(u,p),i)}case ex:{const u=n(new Map,i);for(const[p,m]of c)u.set(s(p),s(m));return u}case tx:{const u=n(new Set,i);for(const p of c)u.add(s(p));return u}case E1:{const{name:u,message:p}=c;return n(new Nw[u](p),i)}case T1: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 Nw[l](c),i)};return s},Cw=e=>J_(new Map,e)(0),Oi="",{toString:X_}={},{keys:Q_}=Object,pl=e=>{const t=typeof e;if(t!=="object"||!e)return[ef,t];const n=X_.call(e).slice(8,-1);switch(n){case"Array":return[kl,Oi];case"Object":return[fd,Oi];case"Date":return[Qg,Oi];case"RegExp":return[Zg,Oi];case"Map":return[ex,Oi];case"Set":return[tx,Oi];case"DataView":return[kl,n]}return n.includes("Array")?[kl,n]:n.includes("Error")?[E1,n]:[fd,n]},Nu=([e,t])=>e===ef&&(t==="function"||t==="symbol"),Z_=(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]=pl(c);switch(u){case ef:{let h=c;switch(p){case"bigint":u=T1,h=c.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+p);h=null;break;case"undefined":return i([C1],c)}return i([u,h],c)}case kl:{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 fd:{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 Q_(c))(e||!Nu(pl(c[y])))&&h.push([l(y),l(c[y])]);return x}case Qg:return i([u,c.toISOString()],c);case Zg:{const{source:h,flags:x}=c;return i([u,{source:h,flags:x}],c)}case ex:{const h=[],x=i([u,h],c);for(const[y,b]of c)(e||!(Nu(pl(y))||Nu(pl(b))))&&h.push([l(y),l(b)]);return x}case tx:{const h=[],x=i([u,h],c);for(const y of c)(e||!Nu(pl(y)))&&h.push(l(y));return x}}const{message:m}=c;return i([u,{name:p,message:m}],c)};return l},Ew=(e,{json:t,lossy:n}={})=>{const s=[];return Z_(!(t||n),!!t,new Map,s)(e),s},pd=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Cw(Ew(e,t)):structuredClone(e):(e,t)=>Cw(Ew(e,t));function eM(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 tM(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function nM(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||eM,s=e.options.footnoteBackLabel||tM,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=ga(x.toLowerCase());let b=0;const N=[],j=e.footnoteCounts.get(x);for(;j!==void 0&&++b<=j;){N.length>0&&N.push({type:"text",value:" "});let E=typeof n=="string"?n:n(p,b);typeof E=="string"&&(E={type:"text",value:E}),N.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(E)?E:[E]})}const w=h[h.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const E=w.children[w.children.length-1];E&&E.type==="text"?E.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...N)}else h.push(...N);const k={type:"element",tagName:"li",properties:{id:t+"fn-"+y},children:e.wrap(h,!0)};e.patch(m,k),u.push(k)}if(u.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:l,properties:{...pd(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 P1=(function(e){if(e==null)return iM;if(typeof e=="function")return tf(e);if(typeof e=="object")return Array.isArray(e)?rM(e):sM(e);if(typeof e=="string")return oM(e);throw new Error("Expected function, string, or object as test")});function rM(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=P1(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 sM(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 oM(e){return tf(t);function t(n){return n&&n.type===e}}function tf(e){return t;function t(n,s,i){return!!(aM(n)&&e.call(this,n,typeof s=="number"?s:void 0,i||void 0))}}function iM(){return!0}function aM(e){return e!==null&&typeof e=="object"&&"type"in e}const R1=[],lM=!0,Tw=!1,cM="skip";function uM(e,t,n,s){let i;typeof t=="function"&&typeof n!="function"?(s=n,n=t):i=t;const l=P1(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=R1,N,j,w;if((!t||l(p,m,h[h.length-1]||void 0))&&(b=dM(n(p,h)),b[0]===Tw))return b;if("children"in p&&p.children){const k=p;if(k.children&&b[0]!==cM)for(j=(s?k.children.length:-1)+c,w=h.concat(k);j>-1&&j<k.children.length;){const E=k.children[j];if(N=u(E,j,w)(),N[0]===Tw)return N;j=typeof N[1]=="number"?N[1]:j+c}}return b}}}function dM(e){return Array.isArray(e)?e:typeof e=="number"?[lM,e]:e==null?R1:[e]}function A1(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),uM(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 Ph={}.hasOwnProperty,fM={};function pM(e,t){const n=t||fM,s=new Map,i=new Map,l=new Map,c={...Y_,...n.handlers},u={all:m,applyData:hM,definitionById:s,footnoteById:i,footnoteCounts:l,footnoteOrder:[],handlers:c,one:p,options:n,patch:mM,wrap:xM};return A1(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(Ph.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:j,...w}=h,k=pd(w);return k.children=u.all(h),k}return pd(h)}return(u.options.unknownHandler||gM)(u,h,x)}function m(h){const x=[];if("children"in h){const y=h.children;let b=-1;for(;++b<y.length;){const N=u.one(y[b],h);if(N){if(b&&y[b-1].type==="break"&&(!Array.isArray(N)&&N.type==="text"&&(N.value=Pw(N.value)),!Array.isArray(N)&&N.type==="element")){const j=N.children[0];j&&j.type==="text"&&(j.value=Pw(j.value))}Array.isArray(N)?x.push(...N):x.push(N)}}}return x}}function mM(e,t){e.position&&(t.position=X$(e))}function hM(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,pd(l)),"children"in n&&n.children&&i!==null&&i!==void 0&&(n.children=i)}return n}function gM(e,t){const n=t.data||{},s="value"in t&&!(Ph.call(n,"hProperties")||Ph.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 xM(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 Pw(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Rw(e,t){const n=pM(e,t),s=n.one(e,void 0),i=nM(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 yM(e,t){return e&&"run"in e?async function(n,s){const i=Rw(n,{file:s,...t});await e.run(i,s)}:function(n,s){return Rw(n,{file:s,...e||t})}}function Aw(e){if(e)throw e}var Am,Dw;function bM(){if(Dw)return Am;Dw=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 Am=function p(){var m,h,x,y,b,N,j=arguments[0],w=1,k=arguments.length,E=!1;for(typeof j=="boolean"&&(E=j,j=arguments[1]||{},w=2),(j==null||typeof j!="object"&&typeof j!="function")&&(j={});w<k;++w)if(m=arguments[w],m!=null)for(h in m)x=u(j,h),y=u(m,h),j!==y&&(E&&y&&(l(y)||(b=i(y)))?(b?(b=!1,N=x&&i(x)?x:[]):N=x&&l(x)?x:{},c(j,{name:h,newValue:p(E,N,y)})):typeof y<"u"&&c(j,{name:h,newValue:y}));return j},Am}var vM=bM();const Dm=jd(vM);function Rh(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 wM(){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?jM(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 jM(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 ss={basename:kM,dirname:SM,extname:NM,join:CM,sep:"/"};function kM(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');oc(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 SM(e){if(oc(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 NM(e){oc(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 CM(...e){let t=-1,n;for(;++t<e.length;)oc(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":EM(n)}function EM(e){oc(e);const t=e.codePointAt(0)===47;let n=TM(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function TM(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 oc(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const PM={cwd:RM};function RM(){return"/"}function Ah(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function AM(e){if(typeof e=="string")e=new URL(e);else if(!Ah(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 DM(e)}function DM(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 Lm=["history","path","basename","stem","extname","dirname"];class D1{constructor(t){let n;t?Ah(t)?n={path:t}:typeof t=="string"||LM(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":PM.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let s=-1;for(;++s<Lm.length;){const l=Lm[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)Lm.includes(i)||(this[i]=n[i])}get basename(){return typeof this.path=="string"?ss.basename(this.path):void 0}set basename(t){Om(t,"basename"),$m(t,"basename"),this.path=ss.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?ss.dirname(this.path):void 0}set dirname(t){Lw(this.basename,"dirname"),this.path=ss.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?ss.extname(this.path):void 0}set extname(t){if($m(t,"extname"),Lw(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=ss.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){Ah(t)&&(t=AM(t)),Om(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?ss.basename(this.path,this.extname):void 0}set stem(t){Om(t,"stem"),$m(t,"stem"),this.path=ss.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 zn(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 $m(e,t){if(e&&e.includes(ss.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+ss.sep+"`")}function Om(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function Lw(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function LM(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const $M=(function(e){const s=this.constructor.prototype,i=s[e],l=function(){return i.apply(l,arguments)};return Object.setPrototypeOf(l,s),l}),OM={}.hasOwnProperty;class nx extends $M{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=wM()}copy(){const t=new nx;let n=-1;for(;++n<this.attachers.length;){const s=this.attachers[n];t.use(...s)}return t.data(Dm(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(Mm("data",this.frozen),this.namespace[t]=n,this):OM.call(this.namespace,t)&&this.namespace[t]||void 0:t?(Mm("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=Cu(t),s=this.parser||this.Parser;return Im("parse",s),s(String(n),n)}process(t,n){const s=this;return this.freeze(),Im("process",this.parser||this.Parser),_m("process",this.compiler||this.Compiler),n?i(void 0,n):new Promise(i);function i(l,c){const u=Cu(t),p=s.parse(u);s.run(p,u,function(h,x,y){if(h||!x||!y)return m(h);const b=x,N=s.stringify(b,y);MM(N)?y.value=N:y.result=N,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(),Im("processSync",this.parser||this.Parser),_m("processSync",this.compiler||this.Compiler),this.process(t,i),Ow("processSync","process",n),s;function i(l,c){n=!0,Aw(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=Cu(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),Ow("runSync","run",s),i;function l(c,u){Aw(c),i=u,s=!0}}stringify(t,n){this.freeze();const s=Cu(n),i=this.compiler||this.Compiler;return _m("stringify",i),$w(t),i(t,s)}use(t,...n){const s=this.attachers,i=this.namespace;if(Mm("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=Dm(!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,...N]=h;const j=s[y][1];Rh(j)&&Rh(b)&&(b=Dm(!0,j,b)),s[y]=[m,b,...N]}}}}const IM=new nx().freeze();function Im(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function _m(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Mm(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(!Rh(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Ow(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Cu(e){return _M(e)?e:new D1(e)}function _M(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function MM(e){return typeof e=="string"||FM(e)}function FM(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const zM="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Iw=[],_w={allowDangerousHtml:!0},BM=/^(https?|ircs?|mailto|xmpp)$/i,UM=[{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 VM(e){const t=HM(e),n=WM(e);return KM(t.runSync(t.parse(n),n),e)}function HM(e){const t=e.rehypePlugins||Iw,n=e.remarkPlugins||Iw,s=e.remarkRehypeOptions?{...e.remarkRehypeOptions,..._w}:_w;return IM().use(k_).use(n).use(yM,s).use(t)}function WM(e){const t=e.children||"",n=new D1;return typeof t=="string"&&(n.value=t),n}function KM(e,t){const n=t.allowedElements,s=t.allowElement,i=t.components,l=t.disallowedElements,c=t.skipHtml,u=t.unwrapDisallowed,p=t.urlTransform||qM;for(const h of UM)Object.hasOwn(t,h.from)&&(""+h.from+(h.to?"use `"+h.to+"` instead":"remove it")+zM+h.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),A1(e,m),nO(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 Tm)if(Object.hasOwn(Tm,b)&&Object.hasOwn(h.properties,b)){const N=h.properties[b],j=Tm[b];(j===null||j.includes(h.tagName))&&(h.properties[b]=p(String(N||""),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 qM(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||BM.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:Pe("prose-syntaur max-w-none",t),children:r.jsx(VM,{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 $s(e){return`/api/projects/${encodeURIComponent(e)}/todos`}function GM(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($s(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]),Xl(p=>{p.type==="todos-updated"&&p.projectSlug===e&&u()}),{data:t,loading:s,error:l,refetch:u}}async function YM(e,t,n){await fetch($s(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:t,tags:n})})}async function JM(e,t,n){await fetch(`${$s(e)}/${t}/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({summary:"Completed."})})}async function XM(e,t,n){await fetch(`${$s(e)}/${t}/block`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:n})})}async function QM(e,t,n){await fetch(`${$s(e)}/${t}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session:n})})}async function ZM(e,t){await fetch(`${$s(e)}/${t}/reopen`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}async function e5(e,t){await fetch(`${$s(e)}/${t}`,{method:"DELETE"})}async function L1(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 t5(e,t){return await L1(`${$s(e)}/promote`,t)}async function n5(e,t,n){await L1(`${$s(e)}/${t}/move`,{to:n})}const Mw=[{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 rx({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=Mw.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:Mw.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 $1="__one_off__";function sx({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),[N,j]=f.useState(null),[w,k]=f.useState(null),[E,C]=f.useState(""),[P,$]=f.useState(""),[T,D]=f.useState(""),[_,Y]=f.useState(""),[Q,L]=f.useState(""),[W,te]=f.useState(""),[F,H]=f.useState(null),[X,le]=f.useState(!1),O=t.length>1;f.useEffect(()=>{if(!e){m("new"),b(null),C(""),$(""),D(""),Y(""),L(""),te(""),H(null);return}C(l??""),$(c??"");let ue=!1;return(async()=>{try{const he=await fetch("/api/projects");if(!he.ok)throw new Error(`HTTP ${he.status}`);const V=await he.json();ue||j(V.filter(oe=>!oe.archived))}catch(he){ue||k(he instanceof Error?he.message:String(he))}})(),()=>{ue=!0}},[e,l,c]),f.useEffect(()=>{if(!Q){H(null);return}let ue=!1;return le(!0),(async()=>{try{const he=await fetch(`/api/projects/${encodeURIComponent(Q)}/assignments`);if(!he.ok)throw new Error(`HTTP ${he.status}`);const V=await he.json();ue||H(V)}catch{ue||H([])}finally{ue||le(!1)}})(),()=>{ue=!0}},[Q]);const K=f.useMemo(()=>N??[],[N]);async function A(ue){if(ue.preventDefault(),!E){b('Pick a target project (or "One-off").');return}if(O&&!P.trim()){b("Title is required when promoting multiple todos.");return}const he=E===$1?{oneOff:!0}:{project:E};if(n.kind==="aggregate"){const oe={groups:n.groups,mode:"new-assignment",target:he,title:P.trim()||void 0,type:T.trim()||void 0,priority:_||void 0};await I(oe);return}const V={todoIds:t,mode:"new-assignment",target:he,title:P.trim()||void 0,type:T.trim()||void 0,priority:_||void 0};await Z(V)}async function B(ue){if(ue.preventDefault(),n.kind==="aggregate"){b("Existing-assignment mode does not support cross-workspace selections yet.");return}if(!Q||!W){b("Pick both project and assignment.");return}const he={todoIds:t,mode:"to-assignment",target:{assignment:`${Q}/${W}`}};await Z(he)}async function Z(ue){x(!0),b(null);try{let he;if(n.kind==="workspace")he=await bR(n.workspace,ue);else if(n.kind==="project")he=await t5(n.projectId,ue);else throw new Error("Aggregate scope requires runBulkMutation.");i(he),s(!1)}catch(he){b(he instanceof Error?he.message:String(he))}finally{x(!1)}}async function I(ue){x(!0),b(null);try{const he=await vR(ue);i(he),s(!1)}catch(he){b(he instanceof Error?he.message:String(he))}finally{x(!1)}}return r.jsx(ir,{open:e,onOpenChange:ue=>h?void 0:s(ue),children:r.jsxs(qn,{className:"max-w-xl",children:[r.jsxs(Xr,{children:[r.jsxs(Gn,{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(JS,{value:p,onValueChange:ue=>m(ue),children:[r.jsxs(XS,{className:"flex gap-2 rounded-md border border-border/70 bg-card/80 p-1 mb-4",children:[r.jsx(vh,{value:"new",className:Pe("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(vh,{value:"existing",className:Pe("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(wh,{value:"new",children:r.jsxs("form",{onSubmit:A,className:"space-y-4",children:[r.jsx(Ii,{label:"Target project",children:r.jsx(Fw,{value:E,onChange:C,projects:K,error:w,disabled:h,allowOneOff:u})}),r.jsx(Ii,{label:O?"Title (required)":"Title (defaults to first todo)",children:r.jsx("input",{type:"text",value:P,onChange:ue=>$(ue.target.value),disabled:h,className:"editor-input bg-background/95 font-sans"})}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(Ii,{label:"Type",children:r.jsx("input",{type:"text",value:T,onChange:ue=>D(ue.target.value),placeholder:"feature",disabled:h,className:"editor-input bg-background/95 font-sans"})}),r.jsx(Ii,{label:"Priority",children:r.jsxs("select",{value:_,onChange:ue=>Y(ue.target.value),disabled:h,className:"editor-input 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(zw,{message:y}):null,r.jsx(Bw,{onCancel:()=>s(!1),submitting:h,submitLabel:"Promote"})]})}),r.jsx(wh,{value:"existing",children:r.jsxs("form",{onSubmit:B,className:"space-y-4",children:[r.jsx(Ii,{label:"Project",children:r.jsx(Fw,{value:Q,onChange:ue=>{L(ue),te("")},projects:K,error:w,disabled:h})}),r.jsx(Ii,{label:X?"Assignment (loading...)":"Assignment",children:r.jsxs("select",{value:W,onChange:ue=>te(ue.target.value),disabled:h||!Q||X,className:"editor-input bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:Q?"Select assignment...":"Pick a project first"}),(F??[]).map(ue=>r.jsxs("option",{value:ue.slug,children:[ue.title," (",ue.status,")"]},ue.slug))]})}),y?r.jsx(zw,{message:y}):null,r.jsx(Bw,{onCancel:()=>s(!1),submitting:h,submitLabel:"Promote"})]})})]})]})})}function Ii({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 Fw({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-input bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:"Select project..."}),l?r.jsx("option",{value:$1,children:"One-off (no project)"}):null,n.map(c=>r.jsxs("option",{value:c.slug,children:[c.title," (",c.slug,")"]},c.slug))]})}function zw({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 Bw({onCancel:e,submitting:t,submitLabel:n}){return r.jsxs(As,{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 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:t?"Submitting...":n})]})}function O1({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,N]=f.useState(null),[j,w]=f.useState(null),[k,E]=f.useState(null);f.useEffect(()=>{if(!e){c("project"),p(""),h(""),N(null),w(null);return}let D=!1;return(async()=>{try{const _=await fetch("/api/projects");if(!_.ok)throw new Error(`HTTP ${_.status}`);const Y=await _.json();D||E(Y.filter(Q=>!Q.archived))}catch(_){D||w(_ instanceof Error?_.message:String(_))}})(),()=>{D=!0}},[e]);const C=f.useMemo(()=>k?n.kind==="project"?k.filter(D=>D.slug!==n.projectId):k:[],[k,n]);function P(){if(l==="global")return{global:!0};if(l==="workspace"){const D=u.trim();return D?{workspace:D}:"Workspace name is required."}return m?{project:m}:"Pick a target project."}async function $(D,_){try{return n.kind==="workspace"?await wR(n.workspace,D,_):await n5(n.projectId,D,_),{ok:!0}}catch(Y){return{ok:!1,error:Y instanceof Error?Y.message:String(Y)}}}async function T(D){D.preventDefault(),w(null);const _=P();if(typeof _=="string"){w(_);return}y(!0),N(null);const Y=[],Q=[];for(const L of t){const W=await $(L,_);W.ok?Y.push(L):Q.push({id:L,error:W.error})}y(!1),i(),Q.length===0?s(!1):N({succeeded:Y,failed:Q})}return r.jsx(ir,{open:e,onOpenChange:D=>x?void 0:s(D),children:r.jsx(qn,{className:"max-w-xl",children:r.jsxs("form",{onSubmit:T,className:"space-y-4",children:[r.jsxs(Xr,{children:[r.jsxs(Gn,{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(Fm,{kind:"project",checked:l==="project",onChange:()=>c("project"),label:"Project"}),r.jsx(Fm,{kind:"workspace",checked:l==="workspace",onChange:()=>c("workspace"),label:"Workspace"}),r.jsx(Fm,{kind:"global",checked:l==="global",onChange:()=>c("global"),label:"Global"})]}),l==="project"?r.jsx(Uw,{label:"Target project",children:r.jsxs("select",{value:m,onChange:D=>h(D.target.value),disabled:x,className:"editor-textarea w-full bg-background/95 font-sans",children:[r.jsx("option",{value:"",children:"Select project..."}),C.map(D=>r.jsxs("option",{value:D.slug,children:[D.title," (",D.slug,")"]},D.slug))]})}):null,l==="workspace"?r.jsx(Uw,{label:"Target workspace name",children:r.jsx("input",{type:"text",value:u,onChange:D=>p(D.target.value),disabled:x,placeholder:"e.g. syntaur",className:"editor-textarea w-full bg-background/95 font-sans"})}):null,j?r.jsx(r5,{message:j}):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(D=>r.jsxs("li",{children:["[t:",D.id,"] ",D.error]},D.id))})]}):null,r.jsxs(As,{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 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:x?"Moving...":"Move"}):null]})]})})})}function Uw({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 Fm({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 r5({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 s5={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 o5({bundle:e}){const t=s5[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 i5({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(o5,{bundle:n},n.id))]})}function a5(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]),Xl(p=>{p.type==="todos-updated"&&!p.projectSlug&&u()}),{data:t,loading:s,error:l,refetch:u}}function ox({label:e,count:t,expanded:n,onToggle:s,isDropTarget:i=!1,onDragOver:l,onDragLeave:c,onDrop:u,children:p}){return r.jsxs("div",{className:Pe("rounded-lg border border-border/60 bg-card/40 transition",i&&"ring-2 ring-ring/30"),onDragOver:l,onDragLeave:c,onDrop:u,children:[r.jsxs("button",{type:"button",onClick:s,"aria-expanded":n,className:"flex w-full items-center gap-2 px-3 py-2.5 text-left",children:[r.jsx(Wr,{className:Pe("h-4 w-4 text-muted-foreground transition-transform",!n&&"-rotate-90")}),r.jsx("span",{className:"font-semibold text-foreground",children:e}),r.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:t})]}),n&&r.jsx("div",{className:"space-y-1 px-2 pb-2",children:p})]})}const I1=[{id:"open-blocked",label:"Open / Blocked",statuses:["open","blocked"],dropStatus:"open",defaultCollapsed:!1},{id:"in-progress",label:"In Progress",statuses:["in_progress"],dropStatus:"in_progress",defaultCollapsed:!1},{id:"done",label:"Done",statuses:["completed"],dropStatus:"completed",defaultCollapsed:!0}];function nf(e){switch(e){case"in_progress":return"in-progress";case"completed":return"done";case"open":case"blocked":default:return"open-blocked"}}function ix(e){const t={"open-blocked":[],"in-progress":[],done:[]};for(const n of e)t[nf(n.status)].push(n);return I1.map(n=>({config:n,items:t[n.id]}))}const _1="syntaur.todos.sections.collapsed.v1",Vw=Object.fromEntries(I1.map(e=>[e.id,e.defaultCollapsed]));function zm(){if(typeof window>"u"||!window.localStorage)return{};try{const e=window.localStorage.getItem(_1);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function l5(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(_1,JSON.stringify(e))}catch{}}function ax(e){const[t,n]=f.useState(()=>zm()[e]??{});f.useEffect(()=>{n(zm()[e]??{})},[e]);const s=f.useCallback(l=>t[l]??Vw[l],[t]),i=f.useCallback(l=>{const c=zm(),u=c[e]??{},p=u[l]??Vw[l],m={...u,[l]:!p};c[e]=m,l5(c),n(m)},[e]);return{isCollapsed:s,toggle:i}}function c5({item:e,copiedId:t,selected:n,onToggleSelected:s,onMoveOne:i,onCycleStatus:l,onStatusChange:c,onCopyId:u,onDelete:p,hotkeyRowProps:m,onDragOrigin:h,onDragStart:x,onDragEnd:y,isDragging:b}){return r.jsxs("div",{draggable:!0,"data-todo-id":e.id,...m??{},onMouseDown:h,onDragStart:N=>x(N,e.id),onDragEnd:y,className:`surface-panel flex items-center gap-3 px-3 py-2 cursor-grab active:cursor-grabbing hover:bg-foreground/[0.03] transition ${b?"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"}),r.jsx(rx,{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(M1,{item:e})]}),t===e.id?r.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[r.jsx(Rs,{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(Al,{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(Jl,{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(Kn,{className:"h-3 w-3"})})]})]})}function M1({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(Mo,{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(Yh,{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(Mo,{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(Zj,{className:"h-2.5 w-2.5"})})}),r.jsxs(gr,{children:["Plan: ",e.planDir]})]})}):null,e.worktreePath||e.createdAt||e.updatedAt?r.jsx(Mo,{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 u5(){const{workspace:e}=Lt(),t=e||"_global",{data:n,loading:s,error:i,refetch:l}=yR(t),{data:c}=a5(t),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState(""),[b,N]=f.useState(""),[j,w]=f.useState(null),[k,E]=f.useState(new Set),[C,P]=f.useState(!1),[$,T]=f.useState(!1),[D,_]=f.useState(null),Y=f.useRef(null);uo("list:todos");const Q=ax("workspace:"+t),[L,W]=f.useState(null),[te,F]=f.useState(null),H=f.useRef(null);function X(z,ne){z.stopPropagation(),navigator.clipboard.writeText(ne),w(ne),setTimeout(()=>w(pe=>pe===ne?null:pe),1500)}const le=f.useMemo(()=>{if(!(n!=null&&n.items))return[];const z=new Set;for(const ne of n.items)for(const pe of ne.tags)z.add(pe);return Array.from(z).sort()},[n]),O=f.useMemo(()=>{if(!(n!=null&&n.items))return[];let z=n.items;if(u.trim()){const ne=u.toLowerCase();z=z.filter(pe=>pe.description.toLowerCase().includes(ne)||pe.tags.some(Oe=>Oe.toLowerCase().includes(ne))||pe.id.includes(ne))}return m&&(z=z.filter(ne=>ne.status===m)),x&&(z=z.filter(ne=>ne.tags.includes(x))),z},[n,u,m,x]);f.useEffect(()=>{E(new Set)},[u,m,x,t]);const K=f.useMemo(()=>O.filter(z=>k.has(z.id)).length,[O,k]),A=O.length>0&&K===O.length,B=K>0&&!A;function Z(z){E(ne=>{const pe=new Set(ne);return pe.has(z)?pe.delete(z):pe.add(z),pe})}function I(){E(z=>{const ne=new Set(z);if(A)for(const pe of O)ne.delete(pe.id);else for(const pe of O)ne.add(pe.id);return ne})}function ue(){E(new Set)}const he=D?[D]:Array.from(k);function V(){E(new Set),_(null),l()}function oe(){E(new Set),l()}async function de(){b.trim()&&(await ig(t,b.trim()),N(""),l())}const ye={open:"in_progress",in_progress:"completed",completed:"open",blocked:"open"};function je(z,ne){Ye(z,ye[ne]||"open")}async function fe(z,ne,pe){z.stopPropagation(),window.confirm(`Delete "${pe}"? This can't be undone.`)&&(await _0(t,ne),l())}async function Ye(z,ne){switch(ne){case"open":await I0(t,z);break;case"in_progress":await O0(t,z);break;case"completed":await L0(t,z);break;case"blocked":await $0(t,z);break}l()}const Je=ix(O),ot=Je.filter(z=>!Q.isCollapsed(z.config.id)).flatMap(z=>z.items),{hotkeyRowProps:G}=Ql(ot,{scope:"list:todos",bindO:!1,onOpen:z=>je(z.id,z.status)});Vt({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var z;return(z=Y.current)==null?void 0:z.focus()}}),Vt({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>l()});const[De,ke]=ps(),Re=De.get("focus");f.useEffect(()=>{if(!Re||!(n!=null&&n.items))return;const z=n.items.find(pe=>pe.id===Re);if(!z)return;const ne=nf(z.status);Q.isCollapsed(ne)&&Q.toggle(ne)},[Re,n==null?void 0:n.items]),f.useEffect(()=>{if(!Re)return;const z=document.querySelector(`[data-todo-id="${window.CSS.escape(Re)}"]`);if(!z)return;z.scrollIntoView({block:"nearest"}),z.classList.add("ring-2","ring-primary/60");const ne=window.setTimeout(()=>{z.classList.remove("ring-2","ring-primary/60"),ke(pe=>{const Oe=new URLSearchParams(pe);return Oe.delete("focus"),Oe})},1500);return()=>window.clearTimeout(ne)},[Re,ot.length,ke]);const Xe=L?(n==null?void 0:n.items.find(z=>z.id===L))??null:null;function Ie(z,ne){const pe=H.current;if(pe!=null&&pe.closest(ia)){z.preventDefault();return}z.dataTransfer.effectAllowed="move",z.dataTransfer.setData("text/plain",ne),W(ne)}function at(){W(null),F(null)}function Be(z,ne){!Xe||ne.statuses.includes(Xe.status)||(z.preventDefault(),z.dataTransfer.dropEffect="move",F(ne.id))}function ft(z,ne){te===ne.id&&!z.currentTarget.contains(z.relatedTarget)&&F(null)}function be(z,ne){z.preventDefault();const pe=Xe;at(),!(!pe||ne.statuses.includes(pe.status))&&Ye(pe.id,ne.dropStatus)}if(s)return r.jsx(gt,{label:"Loading todos..."});if(i)return r.jsx(jt,{error:i});const Ne=(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(Rn,{label:"Open",value:Ne.open,icon:Ar}),r.jsx(Rn,{label:"In Progress",value:Ne.in_progress,icon:Ar,tone:"info"}),r.jsx(Rn,{label:"Blocked",value:Ne.blocked,icon:eg,tone:"warn"}),r.jsx(Rn,{label:"Total",value:Ne.total,icon:Ar})]}),c&&r.jsx(i5,{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:z=>N(z.target.value),onKeyDown:z=>z.key==="Enter"&&de(),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:de,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(tn,{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(lo,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{ref:Y,type:"text",placeholder:"Search...",value:u,onChange:z=>p(z.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:z=>h(z.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"})]}),le.length>0&&r.jsxs("select",{value:x,onChange:z=>y(z.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"}),le.map(z=>r.jsxs("option",{value:z,children:["#",z]},z))]})]}),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:()=>P(!0),className:"shell-action shell-action--cta",children:"Promote selected"}),r.jsx("button",{type:"button",onClick:()=>{_(null),T(!0)},className:"shell-action",children:"Move to…"}),r.jsx("button",{type:"button",onClick:ue,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,O.length>0&&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:A,ref:z=>{z&&(z.indeterminate=B)},onChange:I,className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsxs("span",{children:["Select all in current filter (",O.length,")"]})]}),r.jsx("div",{className:"space-y-3",children:(()=>{let z=-1;return Je.map(({config:ne,items:pe})=>{const Oe=!Q.isCollapsed(ne.id);return r.jsx(ox,{label:ne.label,count:pe.length,expanded:Oe,onToggle:()=>Q.toggle(ne.id),isDropTarget:te===ne.id,onDragOver:ee=>Be(ee,ne),onDragLeave:ee=>ft(ee,ne),onDrop:ee=>be(ee,ne),children:Oe&&pe.map(ee=>(z+=1,r.jsx(c5,{item:ee,copiedId:j,selected:k.has(ee.id),onToggleSelected:me=>Z(me),onMoveOne:(me,Me)=>{Me.stopPropagation(),_(me),T(!0)},onCycleStatus:je,onStatusChange:Ye,onCopyId:X,onDelete:fe,hotkeyRowProps:G(z),onDragOrigin:me=>{H.current=me.target},onDragStart:Ie,onDragEnd:at,isDragging:L===ee.id},ee.id)))},ne.id)})})()}),r.jsx(sx,{open:C,selectedIds:Array.from(k),scope:{kind:"workspace",workspace:t},onOpenChange:P,onDone:oe}),r.jsx(O1,{open:$,selectedIds:he,scope:{kind:"workspace",workspace:t},onOpenChange:z=>{T(z),z||_(null)},onDone:V})]})}function d5({item:e,copiedId:t,selected:n,onToggleSelected:s,onMoveOne:i,onCycleStatus:l,onStatusChange:c,onCopyId:u,onDelete:p,hotkeyRowProps:m,onDragOrigin:h,onDragStart:x,onDragEnd:y,isDragging:b}){return r.jsxs("div",{draggable:!0,"data-todo-id":e.id,...m??{},onMouseDown:h,onDragStart:N=>x(N,e.id),onDragEnd:y,className:`surface-panel flex items-center gap-3 px-3 py-2 cursor-grab active:cursor-grabbing hover:bg-foreground/[0.03] transition ${b?"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"}),r.jsx(rx,{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(M1,{item:e})]}),t===e.id?r.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[r.jsx(Rs,{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(Al,{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(Jl,{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(Kn,{className:"h-3 w-3"})})]})]})}function f5({projectId:e}){const{data:t,loading:n,error:s,refetch:i}=GM(e),[l,c]=f.useState(""),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState(""),[b,N]=f.useState(null),[j,w]=f.useState(new Set),[k,E]=f.useState(!1),[C,P]=f.useState(!1),[$,T]=f.useState(null),D=f.useRef(null);uo("list:todos");const _=ax("project:"+e),[Y,Q]=f.useState(null),[L,W]=f.useState(null),te=f.useRef(null);function F(be,Ne){be.stopPropagation(),navigator.clipboard.writeText(Ne),N(Ne),setTimeout(()=>N(z=>z===Ne?null:z),1500)}const H=f.useMemo(()=>{if(!(t!=null&&t.items))return[];const be=new Set;for(const Ne of t.items)for(const z of Ne.tags)be.add(z);return Array.from(be).sort()},[t]),X=f.useMemo(()=>{if(!(t!=null&&t.items))return[];let be=t.items;if(l.trim()){const Ne=l.toLowerCase();be=be.filter(z=>z.description.toLowerCase().includes(Ne)||z.tags.some(ne=>ne.toLowerCase().includes(Ne))||z.id.includes(Ne))}return u&&(be=be.filter(Ne=>Ne.status===u)),m&&(be=be.filter(Ne=>Ne.tags.includes(m))),be},[t,l,u,m]);f.useEffect(()=>{w(new Set)},[l,u,m,e]);const le=f.useMemo(()=>X.filter(be=>j.has(be.id)).length,[X,j]),O=X.length>0&&le===X.length,K=le>0&&!O;function A(be){w(Ne=>{const z=new Set(Ne);return z.has(be)?z.delete(be):z.add(be),z})}function B(){w(be=>{const Ne=new Set(be);if(O)for(const z of X)Ne.delete(z.id);else for(const z of X)Ne.add(z.id);return Ne})}function Z(){w(new Set)}const I=$?[$]:Array.from(j);function ue(){w(new Set),T(null),i()}function he(){w(new Set),i()}async function V(){x.trim()&&(await YM(e,x.trim()),y(""),i())}const oe={open:"in_progress",in_progress:"completed",completed:"open",blocked:"open"};function de(be,Ne){je(be,oe[Ne]||"open")}async function ye(be,Ne,z){be.stopPropagation(),window.confirm(`Delete "${z}"? This can't be undone.`)&&(await e5(e,Ne),i())}async function je(be,Ne){switch(Ne){case"open":await ZM(e,be);break;case"in_progress":await QM(e,be);break;case"completed":await JM(e,be);break;case"blocked":await XM(e,be);break}i()}const fe=ix(X),Ye=fe.filter(be=>!_.isCollapsed(be.config.id)).flatMap(be=>be.items),{hotkeyRowProps:Je}=Ql(Ye,{scope:"list:todos",bindO:!1,onOpen:be=>de(be.id,be.status)});Vt({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var be;return(be=D.current)==null?void 0:be.focus()}}),Vt({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>i()});const[ot,G]=ps(),De=ot.get("focus");f.useEffect(()=>{if(!De||!(t!=null&&t.items))return;const be=t.items.find(z=>z.id===De);if(!be)return;const Ne=nf(be.status);_.isCollapsed(Ne)&&_.toggle(Ne)},[De,t==null?void 0:t.items]),f.useEffect(()=>{if(!De)return;const be=document.querySelector(`[data-todo-id="${window.CSS.escape(De)}"]`);if(!be)return;be.scrollIntoView({block:"nearest"}),be.classList.add("ring-2","ring-primary/60");const Ne=window.setTimeout(()=>{be.classList.remove("ring-2","ring-primary/60"),G(z=>{const ne=new URLSearchParams(z);return ne.delete("focus"),ne},{replace:!0})},1500);return()=>window.clearTimeout(Ne)},[De,Ye.length,G]);const ke=Y?(t==null?void 0:t.items.find(be=>be.id===Y))??null:null;function Re(be,Ne){const z=te.current;if(z!=null&&z.closest(ia)){be.preventDefault();return}be.dataTransfer.effectAllowed="move",be.dataTransfer.setData("text/plain",Ne),Q(Ne)}function Xe(){Q(null),W(null)}function Ie(be,Ne){!ke||Ne.statuses.includes(ke.status)||(be.preventDefault(),be.dataTransfer.dropEffect="move",W(Ne.id))}function at(be,Ne){L===Ne.id&&!be.currentTarget.contains(be.relatedTarget)&&W(null)}function Be(be,Ne){be.preventDefault();const z=ke;Xe(),!(!z||Ne.statuses.includes(z.status))&&je(z.id,Ne.dropStatus)}if(n)return r.jsx(gt,{label:"Loading todos..."});if(s)return r.jsx(jt,{error:s});const ft=(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(Rn,{label:"Open",value:ft.open,icon:Ar}),r.jsx(Rn,{label:"In Progress",value:ft.in_progress,icon:Ar,tone:"info"}),r.jsx(Rn,{label:"Blocked",value:ft.blocked,icon:eg,tone:"warn"}),r.jsx(Rn,{label:"Total",value:ft.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:be=>y(be.target.value),onKeyDown:be=>be.key==="Enter"&&V(),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:V,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(tn,{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(lo,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("input",{ref:D,type:"text",placeholder:"Search...",value:l,onChange:be=>c(be.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:be=>p(be.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"})]}),H.length>0&&r.jsxs("select",{value:m,onChange:be=>h(be.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"}),H.map(be=>r.jsxs("option",{value:be,children:["#",be]},be))]})]}),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:()=>E(!0),className:"shell-action shell-action--cta",children:"Promote selected"}),r.jsx("button",{type:"button",onClick:()=>{T(null),P(!0)},className:"shell-action",children:"Move to…"}),r.jsx("button",{type:"button",onClick:Z,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,X.length>0&&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:O,ref:be=>{be&&(be.indeterminate=K)},onChange:B,className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsxs("span",{children:["Select all in current filter (",X.length,")"]})]}),r.jsx("div",{className:"space-y-3",children:(()=>{let be=-1;return fe.map(({config:Ne,items:z})=>{const ne=!_.isCollapsed(Ne.id);return r.jsx(ox,{label:Ne.label,count:z.length,expanded:ne,onToggle:()=>_.toggle(Ne.id),isDropTarget:L===Ne.id,onDragOver:pe=>Ie(pe,Ne),onDragLeave:pe=>at(pe,Ne),onDrop:pe=>Be(pe,Ne),children:ne&&z.map(pe=>(be+=1,r.jsx(d5,{item:pe,copiedId:b,selected:j.has(pe.id),onToggleSelected:Oe=>A(Oe),onMoveOne:(Oe,ee)=>{ee.stopPropagation(),T(Oe),P(!0)},onCycleStatus:de,onStatusChange:je,onCopyId:F,onDelete:ye,hotkeyRowProps:Je(be),onDragOrigin:Oe=>{te.current=Oe.target},onDragStart:Re,onDragEnd:Xe,isDragging:Y===pe.id},pe.id)))},Ne.id)})})()}),r.jsx(sx,{open:k,selectedIds:Array.from(j),scope:{kind:"project",projectId:e},onOpenChange:E,onDone:he}),r.jsx(O1,{open:C,selectedIds:I,scope:{kind:"project",projectId:e},onOpenChange:be=>{P(be),be||T(null)},onDone:ue})]})}const p5={title:"Assignment",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},Hw=new Set(["title"]);function F1({visibility:e,onChange:t}){const[n,s]=f.useState(!1);function i(c){if(Hw.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(ir,{open:n,onOpenChange:s,children:[r.jsx(d3,{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(FT,{className:"h-3.5 w-3.5","aria-hidden":"true"}),r.jsxs("span",{children:["Columns",l>0?` (${bm.length-l}/${bm.length})`:""]})]})}),r.jsxs(qn,{className:"max-w-sm",children:[r.jsx(Xr,{children:r.jsx(Gn,{children:"Columns"})}),r.jsx("div",{className:"space-y-2",children:bm.map(c=>{const u=e.hidden.includes(c),p=Hw.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:p5[c]}),p?r.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"always shown"}):null]},c)})})]})]})}const ea={...Ol,custom:!1},z1=`view-prefs.cache.v${Ol.version}`;let zl=m5(),_i=null;const Bl=new Set;let B1=0;function lx(){return++B1}function cx(e){return e===B1}function m5(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(z1);if(!e)return null;const t=JSON.parse(e);return t.version!==Ol.version?null:t}catch{return null}}function h5(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(z1,JSON.stringify(e))}catch{}}function ux(e){zl=e,h5(e);for(const t of Bl)t(e)}function dx(e){if(!e||typeof e!="object")return ea;const t=e;return t.version!==Ol.version||!t.global||!t.projects?ea:{version:Ol.version,global:t.global,projects:t.projects,custom:t.custom===!0}}function fx(){if(_i)return _i;const e=lx();return _i=fetch("/api/view-prefs").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=dx(t);return cx(e)&&ux(n),_i=null,zl??n}).catch(()=>(_i=null,zl??ea)),_i}function U1(e){const[t,n]=f.useState(()=>zl??ea);return f.useEffect(()=>{let s=!1;return fx().then(i=>{s||n(i)}),Bl.add(n),()=>{s=!0,Bl.delete(n)}},[]),zk(t,e??null)}function g5(){const[e,t]=f.useState(()=>zl??ea);return f.useEffect(()=>{let n=!1;return fx().then(s=>{n||t(s)}),Bl.add(t),()=>{n=!0,Bl.delete(t)}},[]),e}async function V1(e){const t=lx(),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=dx(await n.json());return cx(t)&&ux(s),s}function H1(e){return V1({global:e})}function W1(e,t){return V1({projects:{[e]:t}})}async function x5(){const e=lx(),t=await fetch("/api/view-prefs",{method:"DELETE"});if(!t.ok)throw new Error(`HTTP ${t.status}`);const n=dx(await t.json());return cx(e)&&ux(n),n}const Ww=80;function K1({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<=Ww;return r.jsx(ir,{open:e,onOpenChange:t,children:r.jsx(qn,{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(N){h(N instanceof Error?N.message:String(N)),p(!1)}}},children:[r.jsx(Xr,{children:r.jsx(Gn,{children:i})}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{type:"text",value:l,autoFocus:!0,required:!0,maxLength:Ww,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(As,{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 shell-action--cta disabled:opacity-50",children:u?"Saving…":"Save"})]})]})})})}function q1({scope:e,loadedViewId:t,onApply:n,onOpenSaveDialog:s}){const{views:i,loading:l}=Md(),[c,u]=f.useState(!1),p=f.useRef(null);f.useEffect(()=>{if(!c)return;function y(N){p.current&&!p.current.contains(N.target)&&u(!1)}function b(N){N.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=>Uk(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(Wr,{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:Pe("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(Rs,{className:"h-3.5 w-3.5","aria-hidden":"true"}):null}),r.jsx("span",{className:"truncate",children:y.name})]},y.id)})})]})}const y5={__unassigned__:"Unassigned",__standalone__:"No project"};function Pn({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 E=new Set(e.map(P=>P.value)),C=t.filter(P=>!E.has(P)).map(P=>({value:P,label:y5[P]??P}));return[...e,...C]},[e,t]),b=f.useMemo(()=>new Set(t),[t]);f.useEffect(()=>{if(!u)return;function E(C){m.current&&!m.current.contains(C.target)&&p(!1)}return document.addEventListener("mousedown",E),()=>document.removeEventListener("mousedown",E)},[u]),f.useEffect(()=>{var E;u&&((E=x.current[0])==null||E.focus())},[u]);const N=f.useMemo(()=>{if(t.length===0)return s;if(t.length===1){const E=y.find(C=>C.value===t[0]);return E?E.label:t[0]}return`${t.length} selected`},[t,y,s]);function j(E){n(b.has(E)?t.filter(C=>C!==E):[...t,E])}function w(E){var P;const C=Math.max(0,Math.min(E,y.length-1));(P=x.current[C])==null||P.focus()}function k(E){var T;const C=x.current,P=document.activeElement,$=C.findIndex(D=>D===P);E.key==="ArrowDown"?(E.preventDefault(),w($<0?0:$+1)):E.key==="ArrowUp"?(E.preventDefault(),w($<0?y.length-1:$-1)):E.key==="Home"?(E.preventDefault(),w(0)):E.key==="End"?(E.preventDefault(),w(y.length-1)):E.key==="Escape"&&(E.preventDefault(),p(!1),(T=h.current)==null||T.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(E=>!E),onKeyDown:E=>{!u&&(E.key==="ArrowDown"||E.key==="ArrowUp")&&(E.preventDefault(),p(!0))},className:Pe("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:N}),r.jsx(Wr,{className:"h-3.5 w-3.5 shrink-0 opacity-60","aria-hidden":"true"})]}),u?r.jsxs("div",{role:"menu","aria-label":c,onKeyDown:k,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(E=>E.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((E,C)=>{const P=b.has(E.value);return r.jsxs("button",{ref:$=>{x.current[C]=$},type:"button",role:"menuitemcheckbox","aria-checked":P,tabIndex:-1,onClick:()=>j(E.value),className:Pe("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",P?"text-foreground":"text-muted-foreground"),children:[r.jsx("span",{className:Pe("flex h-4 w-4 shrink-0 items-center justify-center rounded border",P?"border-foreground bg-foreground text-background":"border-border/70"),"aria-hidden":"true",children:P?r.jsx(Rs,{className:"h-3 w-3"}):null}),r.jsx("span",{className:"truncate",children:E.label})]},E.value)})]}):null]})}const Kw={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"},b5=["updated","created"];function px({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 k(C){c.current&&!c.current.contains(C.target)&&l(!1)}function E(C){C.key==="Escape"&&l(!1)}return document.addEventListener("mousedown",k),document.addEventListener("keydown",E),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("keydown",E)}},[i]);const x=!!(e&&(e.preset||e.from||e.to)),y=f.useMemo(()=>!x||!e?"Any date":e.preset?`${u}: ${Kw[e.preset]??e.preset}`:`${u}: ${e.from||"…"} → ${e.to||"…"}`,[x,e,u]);function b(k){t(e?{...e,field:k}:{field:k,preset:"",from:"",to:""})}function N(k){h(!1),t({field:u,preset:k,from:"",to:""})}function j(){h(!1),t(null)}function w(k,E){const C={field:u,preset:"",from:(e==null?void 0:e.from)??"",to:(e==null?void 0:e.to)??""};t({...C,[k]:E})}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(k=>!k),className:Pe("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(Wr,{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:b5.map(k=>r.jsx("button",{type:"button","aria-pressed":u===k,onClick:()=>b(k),className:Pe("rounded-sm px-2.5 py-1 text-xs font-medium capitalize transition",u===k?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:k},k))}),r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Bm,{label:"Any date",selected:!x,onClick:j}),iD.map(k=>r.jsx(Bm,{label:Kw[k],selected:(e==null?void 0:e.preset)===k,onClick:()=>N(k)},k)),r.jsx(Bm,{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:k=>w("from",k.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:k=>w("to",k.target.value),className:"editor-input w-40"})]})]}):null]}):null]})}function Bm({label:e,selected:t,onClick:n}){return r.jsxs("button",{type:"button",onClick:n,className:Pe("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(Rs,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}):null]})}const v5=new Set(["status","type","priority","assignee","project","tags","activity","dateRange","search"]);function w5(e,t){const n={};for(const[s,i]of Object.entries(e))v5.has(s)||(n[s]=i);return{...n,...t}}function mx(e,t,n){return{...e,viewMode:t.viewMode,filters:w5(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 j5(e,t){var m;const n={},s=tt(e.status);s.length&&(n.status=s);const i=tt(e.type);i.length&&(n.type=i);const l=tt(e.priority);l.length&&(n.priority=l);const c=tt(e.assignee);c.length&&(n.assignee=c);const u=tt(e.tags);if(u.length&&(n.tags=u),t&&t!=="all")n.project=[t];else{const h=tt(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 Ul(e){const t={viewMode:e.state.viewMode,filters:j5(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}}const Mi={viewMode:"kanban",sortField:"updated",sortDirection:"desc"};function G1(e,t){const{config:n}=Ul({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}}function Vl(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 Y1(e){return e?{field:e.field,preset:e.preset??"",from:e.from??"",to:e.to??""}:null}function J1(e,t){var s,i,l,c,u,p,m,h,x,y,b,N,j,w;const{config:n}=e;if((s=t.setViewMode)==null||s.call(t,n.viewMode),(i=t.setStatusFilter)==null||i.call(t,tt(n.filters.status)),(l=t.setTypeFilter)==null||l.call(t,tt(n.filters.type)),(c=t.setPriorityFilter)==null||c.call(t,tt(n.filters.priority)),(u=t.setAssigneeFilter)==null||u.call(t,tt(n.filters.assignee)),(p=t.setProjectFilter)==null||p.call(t,tt(n.filters.project)),(m=t.setTagsFilter)==null||m.call(t,tt(n.filters.tags)),(h=t.setDateRange)==null||h.call(t,Y1(n.filters.dateRange)),(x=t.setSearch)==null||x.call(t,n.filters.search??""),t.setActivityFilter){const k=n.filters.activity??"all";t.setActivityFilter(k==="fresh"||k==="stale"?k:"all")}(y=t.setSortField)==null||y.call(t,n.sortField),(b=t.setSortDirection)==null||b.call(t,n.sortDirection),(N=t.setListSectionVisibility)==null||N.call(t,{collapsed:[...n.listSectionVisibility.collapsed]}),(j=t.setKanbanColumnVisibility)==null||j.call(t,{hidden:[...n.kanbanColumnVisibility.hidden]}),(w=t.setTableColumnVisibility)==null||w.call(t,{hidden:[...n.tableColumnVisibility.hidden]})}function Hu(e){return e?`/w/${e}/views`:"/views"}function X1(e){return`${Hu(e.workspace)}/${encodeURIComponent(e.id)}`}function Q1(e){const t=e.workspace?`/w/${e.workspace}`:"",n=tt(e.config.filters.project);return n.length===1&&n[0]!=="__standalone__"&&Bk(e.config,n[0])?`${t}/projects/${n[0]}?tab=assignments&loadView=${encodeURIComponent(e.id)}`:`${t}/assignments?loadView=${encodeURIComponent(e.id)}`}const k5=["critical","high","medium","low"],S5={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 N5(e){if(e.preset)return`${e.field} ${S5[e.preset]??e.preset}`;const t=e.from??"…",n=e.to??"…";return`${e.field} ${t}→${n}`}function Z1(e){var s;const t=[];for(const i of["status","priority","type","assignee","project","tags"]){const l=tt(e[i]);l.length&&t.push(`${i}=${l.join(", ")}`)}e.activity&&e.activity!=="all"&&t.push(`activity=${e.activity}`),e.dateRange&&t.push(N5(e.dateRange));const n=(s=e.search)==null?void 0:s.trim();return n&&t.push(`search="${n}"`),t.join(" · ")||"no filters"}const C5=new Set(["overview","assignments","todos","dependencies","knowledge"]),qw="__unknown_type__";function Gw(){const{slug:e,workspace:t}=Lt(),n=on(),s=Dt();uo("project"),Vt({keys:"a",scope:"project",description:"Create assignment",handler:()=>s(`${n}/projects/${e}/create/assignment`)}),Vt({keys:"e",scope:"project",description:"Edit project",handler:()=>s(`${n}/projects/${e}/edit`)});const{data:i,loading:l,error:c,refetch:u}=C0(e),p=Ko(),m=Yd(),{data:h}=Rd(),[x,y]=ps(),b=x.get("tab"),N=b&&C5.has(b)?b:"overview";function j(re){y(Ae=>{const Qe=new URLSearchParams(Ae);return re==="overview"?Qe.delete("tab"):Qe.set("tab",re),Qe},{replace:!0})}const w=e?`p:${e}`:null,k=U1(w),[E,C]=f.useState(()=>ym(k.defaultView)),[P,$]=f.useState(()=>tt(k.filters.status)),[T,D]=f.useState(()=>tt(k.filters.assignee)),[_,Y]=f.useState(()=>tt(k.filters.priority)),[Q,L]=f.useState(()=>tt(k.filters.type)),[W,te]=f.useState(()=>tt(k.filters.tags)),[F,H]=f.useState(null),[X,le]=f.useState(()=>k.grouping),[O,K]=f.useState(()=>k.sortField),[A,B]=f.useState(()=>k.sortDirection),[Z,I]=f.useState(()=>({collapsed:[]})),[ue,he]=f.useState(()=>({hidden:[]})),[V,oe]=f.useState(()=>({hidden:[]})),[de,ye]=f.useState(null),[je,fe]=f.useState(!1),[Ye,Je]=f.useState(!1),{toast:ot,showToast:G,dismissToast:De}=Go(),ke={kind:"project",slug:e??"",workspace:t??null},Re=x.get("loadView"),{view:Xe,loading:Ie,error:at}=Bo(Re),{view:Be,loading:ft,error:be}=Bo(de),Ne=f.useRef(null);f.useEffect(()=>{de&&!ft&&!be&&!Be&&ye(null)},[Be,be,de,ft]),f.useEffect(()=>{ye(null),Ne.current=null,H(null)},[e,t]),f.useEffect(()=>{C(ym(k.defaultView)),$(tt(k.filters.status)),D(tt(k.filters.assignee)),Y(tt(k.filters.priority)),L(tt(k.filters.type)),te(tt(k.filters.tags)),le(k.grouping),K(k.sortField),B(k.sortDirection)},[e,k.defaultView,k.filters.status,k.filters.assignee,k.filters.priority,k.filters.type,k.filters.tags,k.grouping,k.sortField,k.sortDirection]);const z=f.useCallback(re=>{w&&W1(w,re).catch(Ae=>{console.warn("Failed to persist project view prefs:",Ae)})},[w]),ne=f.useCallback(re=>{C(re),z({defaultView:re})},[z]),pe=f.useCallback(re=>{$(re),z({filters:{status:re}})},[z]),Oe=f.useCallback(re=>{D(re),z({filters:{assignee:re}})},[z]),ee=f.useCallback(re=>{Y(re),z({filters:{priority:re}})},[z]),me=f.useCallback(re=>{L(re),z({filters:{type:re}})},[z]),Me=f.useCallback(re=>{te(re),z({filters:{tags:re}})},[z]),it=f.useCallback(re=>{le(re),z({grouping:re})},[z]),qe=f.useCallback(re=>{K(re),z({sortField:re})},[z]),xt=f.useCallback(re=>{B(re),z({sortDirection:re})},[z]),ct=f.useCallback(()=>({viewMode:E,filters:{status:P,priority:_,type:Q,assignee:T,tags:W,project:"all",activity:"all",dateRange:Vl(F)},sortField:O,sortDirection:A,listSectionVisibility:Z,kanbanColumnVisibility:ue,tableColumnVisibility:V}),[E,P,_,Q,T,W,F,O,A,Z,ue,V]),pt=f.useCallback(re=>{J1(re,{setViewMode:Ae=>C(ym(Ae)),setStatusFilter:pe,setPriorityFilter:ee,setTypeFilter:me,setAssigneeFilter:Oe,setTagsFilter:Me,setDateRange:H,setSortField:qe,setSortDirection:xt,setListSectionVisibility:I,setKanbanColumnVisibility:he,setTableColumnVisibility:oe}),ye(re.id)},[pe,ee,me,Oe,Me,qe,xt]),nt=f.useCallback(re=>{pt(re),Ne.current=re.id,y(Ae=>{const Qe=new URLSearchParams(Ae);return Qe.set("loadView",re.id),Qe},{replace:!0})},[pt,y]),Dn=f.useCallback(async re=>{try{const Ae=Ul({name:re,context:{workspace:t??null,projectSlug:e??null},state:ct()}),Qe=await zd(Ae),Mt=Qe.views[Qe.views.length-1];ye((Mt==null?void 0:Mt.id)??null),Mt&&(Ne.current=Mt.id,y(pn=>{const Ct=new URLSearchParams(pn);return Ct.set("loadView",Mt.id),Ct},{replace:!0})),fe(!1),Je(!1),G(`Saved view "${re}"`,"success")}catch(Ae){throw G(Ae instanceof Error?Ae.message:"Failed to save view","error"),Ae}},[ct,y,G,e,t]),Cn=f.useCallback(async()=>{if(!(!de||!Be))try{const re=tt(Be.config.filters.project)[0]??null,Ae=Ul({name:Be.name,context:{workspace:t??null,projectSlug:re},state:ct()}),Qe=mx(Be.config,Ae.config,Ae.config);await Sg(de,{config:Qe}),G("View updated","success")}catch(re){G(re instanceof Error?re.message:"Failed to update view","error")}},[ct,Be,de,G,t]);f.useEffect(()=>{if(!Re){Ne.current=null;return}if(Ne.current!==Re&&(de&&de!==Re&&ye(null),!Ie)){if(at){G("Couldn't load saved view — try again","error");return}if(Xe){if(Ne.current=Re,!Uk(Xe,{kind:"project",slug:e??"",workspace:t??null})){s(Q1(Xe),{replace:!0});return}pt(Xe),y(re=>{const Ae=new URLSearchParams(re);return Ae.delete("loadView"),Ae},{replace:!0});return}Ne.current=Re,G("Saved view no longer exists","error"),y(re=>{const Ae=new URLSearchParams(re);return Ae.delete("loadView"),Ae},{replace:!0})}},[Re,Xe,Ie,at,de,pt,y,G,s,e,t]);function xe(re){O===re?xt(A==="asc"?"desc":"asc"):(qe(re),xt("asc"))}const He=f.useMemo(()=>i?Object.fromEntries(i.assignments.flatMap(re=>{const Ae=`${n}/projects/${i.slug}/assignments/${re.slug}`;return[[re.slug,Ae],[re.title,Ae]]})):{},[i]);async function Fe(re){await fetch(`/api/projects/${e}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:re})}),u()}async function Pt(re){try{const Ae=await fetch(`/api/projects/${e}/${re?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!Ae.ok){const Qe=await Ae.json().catch(()=>null);G((Qe==null?void 0:Qe.error)||`HTTP ${Ae.status}`,"error");return}u(),G(re?"Project archived":"Project restored","success")}catch(Ae){G(Ae instanceof Error?Ae.message:"Failed to update archive state","error")}}async function Ln(re){await fetch(`/api/projects/${e}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:re})}),u()}if(l)return r.jsx(gt,{label:"Loading project workspace…"});if(c||!i)return r.jsx(jt,{error:c||"Project not found."});const qt=(()=>{const re=new Set;for(const Qe of i.assignments)Qe.assignee&&re.add(Qe.assignee);const Ae=[{value:"__unassigned__",label:"Unassigned"}];for(const Qe of Array.from(re).sort())Ae.push({value:Qe,label:Qe});return Ae})(),nn=Array.from(new Set(i.assignments.flatMap(re=>re.tags??[]))).sort().map(re=>({value:re,label:re})),Ht=i.assignments.filter(re=>Ig(re,{status:P,priority:_,type:Q,assignee:T,tags:W,dateRange:Vl(F)})),Yn=nc(Ht,O,A),bt=new Set(m.definitions.map(re=>re.id)),vn=X==="type"?[...m.definitions.map(re=>({id:re.id,title:Xi(m,re.id),description:re.description})),...Ht.some(re=>!re.type||!bt.has(re.type))?[{id:qw,title:"Other",description:"Assignments with no recognized type."}]:[]]:AS(p.order).map(re=>({id:re,title:tc(p,re),description:Gd(re)}));function Rt({field:re,children:Ae}){const Qe=O===re;return r.jsx("th",{className:"pb-3 font-medium",children:r.jsxs("button",{type:"button",onClick:()=>xe(re),className:"inline-flex items-center gap-1 hover:text-foreground",children:[Ae,Qe?A==="asc"?r.jsx(Xj,{className:"h-3 w-3"}):r.jsx(Wr,{className:"h-3 w-3"}):null]})})}return r.jsxs("div",{className:"space-y-5","data-density":k.density,children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx(dn,{status:i.status}),i.statusOverride&&r.jsx("button",{type:"button",className:"shell-action border-warning-foreground/40 text-warning-foreground",onClick:()=>Fe(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:re=>{re.target.value&&Fe(re.target.value)},title:"Override project status",children:[r.jsx("option",{value:"",children:"Set Status…"}),p.statuses.map(re=>r.jsx("option",{value:re.id,children:re.label},re.id)),r.jsx("option",{value:"active",children:"Active"})]}),r.jsx("button",{type:"button",className:"shell-action",onClick:()=>Pt(!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:re=>{re.target.value==="_ungrouped"?Ln(null):re.target.value&&Ln(re.target.value)},title:"Move project to a different workspace",children:[r.jsx("option",{value:"",children:"Move to Workspace…"}),h.workspaces.filter(re=>re!==i.workspace).map(re=>r.jsx("option",{value:re,children:re},re)),i.workspace&&r.jsx("option",{value:"_ungrouped",children:"Ungrouped"})]}),r.jsxs(Ce,{className:"shell-action",to:`${n}/projects/${i.slug}/edit`,children:[r.jsx(ov,{className:"h-4 w-4"}),r.jsx("span",{children:"Edit Project"})]}),r.jsxs(Ce,{className:"shell-action shell-action--cta",to:`${n}/projects/${i.slug}/create/assignment`,children:[r.jsx(tn,{className:"h-4 w-4"}),r.jsx("span",{children:"New Assignment"})]}),r.jsx(zg,{externalIds:i.externalIds}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Created ",An(i.created),". Last source update ",Lr(i.updated),"."]})]}),r.jsxs("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-5",children:[r.jsx(Rn,{label:"Assignments",value:i.progress.total}),r.jsx(Rn,{label:"In Progress",value:i.progress.in_progress??0,tone:"info"}),r.jsx(Rn,{label:"Review",value:i.progress.review??0,tone:"info"}),r.jsx(Rn,{label:"Blocked",value:i.progress.blocked??0,tone:"warn"}),r.jsx(Rn,{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(Ug,{value:N,onValueChange:j,items:[{value:"overview",label:"Overview",content:r.jsx("div",{className:"space-y-5",children:r.jsx(We,{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(re=>!re.archived).length,content:r.jsx("div",{className:"space-y-5",children:r.jsx(We,{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(Pn,{ariaLabel:"Status filter",className:"max-w-[170px]",allLabel:"All statuses",options:p.statuses.map(re=>({value:re.id,label:re.label})),value:P,onChange:pe}),r.jsx(Pn,{ariaLabel:"Assignee filter",className:"max-w-[170px]",allLabel:"All assignees",options:qt,value:T,onChange:Oe}),r.jsx(Pn,{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:_,onChange:ee}),r.jsx(Pn,{ariaLabel:"Type filter",className:"max-w-[170px]",allLabel:"All types",options:m.definitions.map(re=>({value:re.id,label:Xi(m,re.id)})),value:Q,onChange:me}),r.jsx(Pn,{ariaLabel:"Tags filter",className:"max-w-[170px]",allLabel:"Any tags",options:nn,value:W,onChange:Me}),r.jsx(px,{className:"max-w-[190px]",value:F,onChange:H}),E==="kanban"&&r.jsxs("select",{value:X==="type"?"type":"status",onChange:re=>it(re.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(Xd,{value:E,onChange:re=>ne(re),options:[{value:"kanban",label:"Kanban"},{value:"table",label:"Table"}]}),r.jsx(q1,{scope:ke,loadedViewId:de,onApply:nt,onOpenSaveDialog:()=>{Je(!1),fe(!0)}}),r.jsx("button",{type:"button",onClick:()=>{Be?Cn():(Je(!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:Be?`Update ${Be.name}`:"Save current view",children:Be?`Update '${Be.name}'`:"Save view"}),Be?r.jsx("button",{type:"button",onClick:()=>{Je(!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:Ht.length===0?r.jsx(Nt,{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 shell-action--cta",to:`${n}/projects/${i.slug}/create/assignment`,children:"Create Assignment"})}):E==="kanban"?r.jsx(qd,{columns:vn,items:Yn,getItemId:re=>re.slug,getColumnId:re=>X==="type"?re.type&&bt.has(re.type)?re.type:qw:re.status,dragDisabled:!0,renderCard:re=>r.jsx(E5,{projectSlug:i.slug,assignment:re}),emptyMessage:re=>`No ${re.title.toLowerCase()} assignments.`,hiddenColumnIds:ue.hidden,onHideColumn:re=>he(Ae=>({hidden:Ae.hidden.includes(re)?Ae.hidden.filter(Mt=>Mt!==re):[...Ae.hidden,re]}))}):(()=>{const re=new Set(V.hidden),Ae=Qe=>Qe==="title"||!re.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(F1,{visibility:V,onChange:oe})}),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:[Ae("title")?r.jsx(Rt,{field:"title",children:"Assignment"}):null,Ae("status")?r.jsx(Rt,{field:"status",children:"Status"}):null,r.jsx("th",{className:"pb-3 font-medium",children:"Type"}),Ae("priority")?r.jsx(Rt,{field:"priority",children:"Priority"}):null,Ae("assignee")?r.jsx(Rt,{field:"assignee",children:"Assignee"}):null,Ae("dependencies")?r.jsx(Rt,{field:"dependencies",children:"Dependencies"}):null,Ae("created")?r.jsx(Rt,{field:"created",children:"Created"}):null,Ae("updated")?r.jsx(Rt,{field:"updated",children:"Updated"}):null]})}),r.jsx("tbody",{children:Yn.map(Qe=>r.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[Ae("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,Ae("status")?r.jsx("td",{className:"py-4",children:r.jsx(dn,{status:Qe.status})}):null,r.jsx("td",{className:"py-4",children:r.jsx(qo,{type:Qe.type,compact:!0})}),Ae("priority")?r.jsx("td",{className:"py-4 capitalize text-muted-foreground",children:Qe.priority}):null,Ae("assignee")?r.jsx("td",{className:"py-4 text-muted-foreground",children:Qe.assignee??"—"}):null,Ae("dependencies")?r.jsx("td",{className:"py-4 text-muted-foreground",children:Qe.dependsOn.length}):null,Ae("created")?r.jsx("td",{className:"py-4 text-muted-foreground",children:An(Qe.created)}):null,Ae("updated")?r.jsx("td",{className:"py-4 text-muted-foreground",children:An(Qe.updated)}):null]},Qe.slug))})]})]})})()})})},{value:"todos",label:"Todos",content:r.jsx(f5,{projectId:i.slug})},{value:"dependencies",label:"Dependencies",content:i.dependencyGraph?r.jsx(We,{title:"Dependency Graph",description:"Rendered from the derived graph when available, with a source-based fallback.",children:r.jsx(N$,{definition:i.dependencyGraph,nodeRoutes:He})}):r.jsx(Nt,{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(We,{title:"Resources",description:"Shared project references.",actions:r.jsxs(Ce,{className:"shell-action",to:`/resources/new?project=${i.slug}`,children:[r.jsx(tn,{className:"h-4 w-4"}),r.jsx("span",{children:"New Resource"})]}),children:i.resources.length===0?r.jsx(Nt,{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(re=>r.jsxs(Ce,{to:`/projects/${i.slug}/resources/${re.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:re.name}),r.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[re.category," · ",re.source]})]},re.slug))})}),r.jsx(We,{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(tn,{className:"h-4 w-4"}),r.jsx("span",{children:"New Memory"})]}),children:i.memories.length===0?r.jsx(Nt,{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(re=>r.jsxs(Ce,{to:`/projects/${i.slug}/memories/${re.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:re.name}),r.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[re.scope," · ",re.source]})]},re.slug))})})]})}]})}),r.jsxs("div",{className:"space-y-5",children:[r.jsx(We,{title:"Progress Summary",children:r.jsx(ud,{progress:i.progress,showLegend:!0})}),r.jsx(We,{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(We,{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(ov,{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(tn,{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(RT,{className:"h-4 w-4"}),"Review project rules"]}),r.jsxs("button",{type:"button",onClick:()=>j("dependencies"),className:"flex items-center gap-2 text-primary hover:underline",children:[r.jsx(Yh,{className:"h-4 w-4"}),"Jump to dependencies"]})]})}),i.archived?r.jsxs(We,{title:"Archive Metadata",children:[r.jsxs("p",{className:"text-sm leading-6 text-muted-foreground",children:["Archived ",i.archivedAt?Lr(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(Yo,{toast:ot,onDismiss:De}),r.jsx(K1,{open:je,onOpenChange:re=>{fe(re),re||Je(!1)},initialName:Ye&&Be?`${Be.name} (copy)`:"",title:Ye?"Save as new view":"Save view",onSubmit:Dn})]})}function E5({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 ",An(t.updated)]})]}),r.jsx(dn,{status:t.status})]}),r.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[r.jsx(qo,{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 eN({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=Pe("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(Mo,{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(Vi,{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(Vi,{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(Vi,{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(WT,{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(Zh,{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 T5(e){await fetch(`/api/agent-sessions/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})})}function tN({sessions:e,loading:t,error:n}){return t&&!e?null:n&&!e?r.jsx(We,{title:"Agent Sessions",children:r.jsx(Nt,{title:"Couldn't load sessions",description:n})}):!e||e.length===0?r.jsx(We,{title:"Agent Sessions",children:r.jsx(Nt,{title:"No agent sessions yet",description:"Sessions appear here when an agent registers one via /grab-assignment or syntaur track-session."})}):r.jsx(We,{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(dn,{status:s.status}),r.jsx("span",{className:"text-xs text-muted-foreground",children:Lr(s.started)})]}),r.jsx(eN,{session:s,onMarkStopped:T5})]},s.sessionId))})})}const Um="Cost / Usage";function nN({summary:e,error:t}){return t&&!e?r.jsx(We,{title:Um,children:r.jsx(Nt,{title:"Couldn't load usage",description:t})}):e?e.lastEventDay===null?r.jsx(We,{title:Um,children:r.jsx(Nt,{title:"No usage recorded yet",description:"Cost and token totals appear here once the usage collector records activity for this assignment."})}):r.jsx(We,{title:Um,children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsx(Yw,{label:"Total cost",value:Xu(e.totalCost)}),r.jsx(Yw,{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 ",VP(e.lastEventDay)]})]})}):null}function Yw({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 rN({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(ir,{open:e,onOpenChange:y=>s?void 0:l(y),children:r.jsx(qn,{className:"max-w-xl",children:r.jsxs("form",{className:"space-y-5",onSubmit:y=>{y.preventDefault(),i(x)},children:[r.jsxs(Xr,{children:[r.jsx(Gn,{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(As,{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 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:h})]})]})})})}function Xo({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(Dl,{children:[r.jsxs(td,{children:[r.jsx(Ll,{children:t}),r.jsx($l,{children:n})]}),r.jsxs(nd,{children:[r.jsx(_d,{disabled:l,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:i}),r.jsx(ra,{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":"shell-action--cta"}`,onClick:m=>{m.preventDefault(),u()},children:l?"Working...":s})]})]})})}function Eu(e,t){const n=`syntaur://open?${e.kind}=${encodeURIComponent(e.id)}`;return t?`${n}&terminal=${encodeURIComponent(t)}`:n}function sN({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",N=Pe("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:N,"aria-disabled":!0,children:[r.jsx(Vi,{className:"size-3.5"}),r.jsx("span",{children:"Open in agent"})]});async function j(){if(!h){x(!0);try{const k=await fetch("/api/launch/preflight",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e})});if(!k.ok){window.location.href=Eu(e);return}const E=await k.json();if(E.ok){window.location.href=Eu(e);return}if(E.reason==="workspace-path-invalid"){m(E.message);return}u(E)}catch(k){console.warn("preflight failed, firing without override:",k),window.location.href=Eu(e)}finally{x(!1)}}}function w(){c&&(window.location.href=Eu(e,c.suggestedFallback),u(null))}return r.jsxs(r.Fragment,{children:[r.jsxs("button",{type:"button",onClick:j,disabled:h,title:i??y,className:N,children:[r.jsx(Vi,{className:"size-3.5"}),r.jsx("span",{children:e.kind==="session"?"Open":"Open in agent"})]}),r.jsx(ed,{open:c!==null,onOpenChange:k=>!k&&u(null),children:r.jsxs(Dl,{children:[r.jsxs(td,{children:[r.jsxs(Ll,{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(_d,{className:"shell-action mt-0",children:"Cancel"}),r.jsxs(ra,{className:"shell-action mt-0 shell-action--cta",onClick:k=>{k.preventDefault(),w()},children:["Open in ",c==null?void 0:c.suggestedFallback]})]})]})}),r.jsx(ed,{open:p!==null,onOpenChange:k=>!k&&m(null),children:r.jsxs(Dl,{children:[r.jsxs(td,{children:[r.jsx(Ll,{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(ra,{className:"shell-action mt-0 shell-action--cta",onClick:()=>m(null),children:"OK"})})]})})]})}function P5(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 oN(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 iN(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 R5(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 aN(e){return e.requiresReason||e.command==="block"}async function A5(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 D5(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 lN extends Error{constructor(t,n){super(t),this.stderr=n,this.name="CreateWorktreeError"}}async function cN(e){const t=await e.json().catch(()=>null);return new lN((t==null?void 0:t.error)||`HTTP ${e.status}`,t==null?void 0:t.stderr)}async function L5(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 $5(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 O5(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 cN(s);return(await s.json()).assignment}async function I5(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 cN(n);return(await n.json()).assignment}async function rf(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 _5(e,t,n){const s=await fetch(`/api/projects/${e}/assignments/${t}/repository-branches?repo=${encodeURIComponent(n)}`);return rf(s)}async function M5(e,t){const n=await fetch(`/api/assignments/${e}/repository-branches?repo=${encodeURIComponent(t)}`);return rf(n)}async function F5(e,t){const n=await fetch(`/api/projects/${e}/assignments/${t}/source-assignments`);return(await rf(n)).sourceAssignments}async function z5(e){const t=await fetch(`/api/assignments/${e}/source-assignments`);return(await rf(t)).sourceAssignments}const Vm="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 uN({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,N]=f.useState(null),[j,w]=f.useState(""),[k,E]=f.useState(!1),[C,P]=f.useState(""),[$,T]=f.useState([]),[D,_]=f.useState(!1),[Y,Q]=f.useState(null),[L,W]=f.useState(""),[te,F]=f.useState(null),[H,X]=f.useState(null),[le,O]=f.useState(""),[K,A]=f.useState(s),[B,Z]=f.useState(!1),[I,ue]=f.useState(null);f.useEffect(()=>{if(!u)return;let G=!1;return h("new-branch"),y(null),N(null),w(""),E(!1),P(""),T([]),_(!1),Q(null),W(""),F(null),X(null),O(""),A(s),ue(null),(c.kind==="project-nested"?L5(c.projectSlug):$5(c.assignmentId)).then(Re=>{if(!G)if(y(Re),Re.length===0)E(!0);else{const Xe=Re.find(at=>at.source==="project"),Ie=Re.find(at=>at.source==="sibling");w((Xe==null?void 0:Xe.path)??(Ie==null?void 0:Ie.path)??Re[0].path)}}).catch(Re=>{G||(N(Re.message),y([]),E(!0))}),(c.kind==="project-nested"?F5(c.projectSlug,c.assignmentSlug):z5(c.assignmentId)).then(Re=>{G||F(Re)}).catch(Re=>{G||(X(Re.message),F([]))}),()=>{G=!0}},[u,s,i,e,t,n]);const he=m==="branch-off"?(te??[]).find(G=>G.id===le)??null:null,V=m==="branch-off"?(he==null?void 0:he.repository)??"":k?C.trim():j;f.useEffect(()=>{if(!u||m!=="new-branch")return;if(!V){T([]),Q(null),_(!1),W("");return}let G=!1;return _(!0),Q(null),W(""),(c.kind==="project-nested"?_5(c.projectSlug,c.assignmentSlug,V):M5(c.assignmentId,V)).then(ke=>{if(G)return;T(ke.branches);const Re=(ke.defaultBranch&&ke.branches.includes(ke.defaultBranch)?ke.defaultBranch:ke.branches.includes(i)?i:ke.branches[0])??"";W(Re),_(!1)}).catch(ke=>{G||(T([]),Q(ke.message),_(!1))}),()=>{G=!0}},[u,m,V,i,e,t,n]);const oe=P5(K.trim()),de=f.useMemo(()=>!V||!K.trim()?"":`${V.replace(/\/+$/,"")}/.worktrees/${K.trim()}`,[V,K]),ye=x!==null&&x.length===0,je=te!==null&&te.length===0,fe=G=>{G!==m&&(h(G),O(""),ue(null),G==="branch-off"&&(W(""),T([]),Q(null),_(!1)))},Ye=G=>{O(G);const De=(te??[]).find(ke=>ke.id===G);W((De==null?void 0:De.branch)??"")},Je=B||oe!==null||!V||!L.trim()||(m==="new-branch"?x===null||D:te===null||!le),ot=async()=>{Z(!0),ue(null);try{const G={repository:V,branch:K.trim(),parentBranch:L.trim()};c.kind==="project-nested"?await O5(c.projectSlug,c.assignmentSlug,G):await I5(c.assignmentId,G),p(!1),l()}catch(G){G instanceof lN?ue({message:G.message,stderr:G.stderr}):G instanceof Error?ue({message:G.message}):ue({message:String(G)})}finally{Z(!1)}};return r.jsxs(ir,{open:u,onOpenChange:G=>B?void 0:p(G),children:[r.jsxs("button",{type:"button",className:"shell-action inline-flex items-center gap-1.5",onClick:()=>p(!0),children:[r.jsx(HT,{className:"h-3.5 w-3.5","aria-hidden":"true"}),r.jsx("span",{children:"Create worktree"})]}),r.jsxs(qn,{children:[r.jsxs(Xr,{children:[r.jsx(Gn,{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:Vm,value:j,onChange:G=>w(G.target.value),disabled:B||x===null||k,children:(x??[]).map(G=>r.jsxs("option",{value:G.path,children:[G.path,G.source==="project"?" (project)":G.sourceAssignmentSlug?` (sibling — ${G.sourceAssignmentSlug})`:" (sibling)"]},`${G.source}:${G.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:()=>E(G=>!G),children:k?"Use a listed repository":"Enter a custom repository path (advanced)"}),k?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:C,onChange:G=>P(G.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:Vm,value:L,onChange:G=>W(G.target.value),disabled:B||D||$.length===0,children:D?r.jsx("option",{value:"",children:"Loading branches…"}):$.length===0?r.jsx("option",{value:"",children:Y?"Could not load branches":V?"No branches found":"— pick a repository —"}):$.map(G=>r.jsx("option",{value:G,children:G},G))}),Y?r.jsxs("span",{className:"text-[11px] text-error-foreground",children:["Could not load branches: ",Y]}):null]})]}):r.jsxs(r.Fragment,{children:[H?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: ",H]}):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:Vm,value:le,onChange:G=>Ye(G.target.value),disabled:B||te===null,children:[r.jsx("option",{value:"",children:"— select an assignment —"}),(te??[]).map(G=>r.jsxs("option",{value:G.id,children:[G.title," (",G.branch,")"]},G.id))]})]}),he?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:he.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:he.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:K,onChange:G=>A(G.target.value),disabled:B}),oe?r.jsx("span",{className:"text-[11px] text-error-foreground",children:oe}):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(As,{children:[r.jsx(p3,{disabled:B,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),r.jsx("button",{type:"button",disabled:Je,onClick:()=>void ot(),className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:B?"Working…":"Create worktree"})]})]})]})}function B5(e){const t=e.split(`
|
|
529
|
+
`),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(`
|
|
530
|
+
`).replace(/\n{3,}/g,`
|
|
531
|
+
|
|
532
|
+
`).trim();return{acceptanceCriteria:i,summaryBody:l}}function U5(e){const t=e.split(`
|
|
533
|
+
`),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(`
|
|
534
|
+
`).replace(/<!--[\s\S]*?-->/g,"").replace(/\n{3,}/g,`
|
|
535
|
+
|
|
536
|
+
`).trim(),l=[...t.slice(0,n),...t.slice(s)].join(`
|
|
537
|
+
`).replace(/\n{3,}/g,`
|
|
538
|
+
|
|
539
|
+
`).trim();return{hasSection:!0,todosMarkdown:i,remaining:l}}function V5({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(qh,{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(Wr,{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(rh,{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(We,{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(dn,{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 H5({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(We,{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(Yj,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),r.jsx(dn,{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(Gu,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),r.jsx(dn,{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 W5(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 K5(e,t){return e===null?`/api/assignments/${encodeURIComponent(t)}/comments`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments`}function dN({projectSlug:e,assignmentSlug:t,entries:n}){const[s,i]=f.useState(n);f.useEffect(()=>{i(n)},[n]);const l=f.useMemo(()=>W5(s),[s]),[c,u]=f.useState(""),[p,m]=f.useState("note"),[h,x]=f.useState(!1),[y,b]=f.useState(null);async function N(w){var C;if(w.preventDefault(),!c.trim())return;x(!0),b(null);const k=`tmp-${Date.now()}`,E={id:k,timestamp:new Date().toISOString(),author:"human",type:p,body:c,resolved:p==="question"?!1:void 0};i(P=>[...P,E]);try{const P=await fetch(K5(e,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:c,type:p})});if(!P.ok){const D=await P.text();throw new Error(D||`HTTP ${P.status}`)}const $=await P.json().catch(()=>null),T=(C=$==null?void 0:$.comment)==null?void 0:C.id;i(D=>D.map(_=>_.id===k?{..._,id:T??_.id}:_)),u(""),window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(P){b(P instanceof Error?P.message:String(P)),i($=>$.filter(T=>T.id!==k))}finally{x(!1)}}async function j(w,k){i(E=>E.map(C=>C.id===w?{...C,resolved:k}:C));try{const E=e===null?`/api/assignments/${encodeURIComponent(t)}/comments/${encodeURIComponent(w)}/resolved`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments/${encodeURIComponent(w)}/resolved`,C=await fetch(E,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({resolved:k})});if(!C.ok)throw new Error(`HTTP ${C.status}`);window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(E){b(E instanceof Error?E.message:String(E)),i(C=>C.map(P=>P.id===w?{...P,resolved:!k}:P))}}return r.jsx(We,{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(fN,{node:w,onToggleResolved:j,depth:0},w.entry.id)),r.jsxs("form",{onSubmit:N,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 fN({node:e,depth:t,onToggleResolved:n}){const{entry:s,replies:i}=e,l=s.type==="question";return r.jsxs("div",{className:Pe("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:Pe("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:Pe("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(qh,{className:"h-3 w-3"}):r.jsx(OT,{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(tP,{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(fN,{node:c,depth:t+1,onToggleResolved:n},c.entry.id))}):null]})}const q5=["review","complete","shape","plan-ready","implement","unblock","start","block","fail","reopen"];function Jw(){var Me,it,qe,xt,ct,pt,nt,Dn,Cn;const{slug:e,aslug:t}=Lt(),n=Dt(),s=on(),[i,l]=ps(),[c,u]=f.useState(null),{toast:p,showToast:m,dismissToast:h}=Go(),[x,y]=f.useState(null),[b,N]=f.useState(null),[j,w]=f.useState(null),[k,E]=f.useState(null),[C,P]=f.useState(!1),[$,T]=f.useState(!1),[D,_]=f.useState(0),Y=i.get("tab")??"summary",Q=Ko(),{data:L,loading:W,error:te,refetch:F}=eR(e,t),{data:H}=C0(e),{data:X}=og(),{data:le,loading:O,error:K}=nR(e,t),{data:A,loading:B,error:Z}=sR(e,t),I=f.useMemo(()=>{if(!L||!H)return[];const xe=new Map(H.assignments.map(He=>[He.slug,He]));return L.dependsOn.map(He=>{const Fe=xe.get(He);return{slug:He,title:(Fe==null?void 0:Fe.title)??He,status:(Fe==null?void 0:Fe.status)??"pending",priority:(Fe==null?void 0:Fe.priority)??"medium",assignee:(Fe==null?void 0:Fe.assignee)??null}})},[L,H]),ue=I.filter(xe=>xe.status!=="completed"&&xe.status!=="review");uo("assignment");const he=f.useMemo(()=>((H==null?void 0:H.assignments)??[]).map(xe=>xe.slug),[H]),V=t?he.indexOf(t):-1,oe=V>0?he[V-1]:null,de=V>=0&&V<he.length-1?he[V+1]:null,ye=`${s}/projects/${e}/assignments/${t}`;Vt({keys:"e",scope:"assignment",description:"Edit assignment",handler:()=>n(`${ye}/edit`)}),Vt({keys:"p",scope:"assignment",description:"Edit plan",handler:()=>n(`${ye}/plan/edit`)}),Vt({keys:"h",scope:"assignment",description:"Append handoff",handler:()=>n(`${ye}/handoff/edit`)}),Vt({keys:"d",scope:"assignment",description:"Append decision record",handler:()=>n(`${ye}/decision-record/edit`)}),Vt({keys:"s",scope:"assignment",description:"Edit scratchpad",handler:()=>n(`${ye}/scratchpad/edit`)}),Vt({keys:"[",scope:"assignment",description:"Previous assignment in project",enabled:!!oe,handler:()=>oe&&n(`${s}/projects/${e}/assignments/${oe}`)}),Vt({keys:"]",scope:"assignment",description:"Next assignment in project",enabled:!!de,handler:()=>de&&n(`${s}/projects/${e}/assignments/${de}`)});const je=f.useMemo(()=>L?B5(L.body):{acceptanceCriteria:[],summaryBody:""},[L]),fe=f.useMemo(()=>U5(je.summaryBody),[je.summaryBody]),Ye=je.acceptanceCriteria,Je=Ye.filter(xe=>xe.checked).length,ot=Ye.length>0&&Je===Ye.length,G=f.useRef(ot),De=f.useRef(!1);if(f.useEffect(()=>{if(L){if(!De.current){G.current=ot,De.current=!0;return}ot&&!G.current&&_(xe=>xe+1),G.current=ot}},[ot,L]),W)return r.jsx(gt,{label:"Loading assignment workspace…"});if(te||!L||!e||!t)return r.jsx(jt,{error:te||"Assignment not found."});const ke=e,Re=t,Xe=Ye.length>0?{checked:Je,total:Ye.length}:void 0,Ie=L.availableTransitions??[],at=Ie.filter(xe=>!xe.disabled&&xe.targetStatus!==L.status),Be=q5.map(xe=>at.find(He=>He.command===xe)).find(Boolean)??at[0]??null,ft=[];if(X!=null&&X.sessions)for(const xe of X.sessions)for(const He of xe.windows)for(const Fe of He.panes)((Me=Fe.assignment)==null?void 0:Me.project)===e&&((it=Fe.assignment)==null?void 0:it.slug)===t&&ft.push({sessionName:xe.name,command:Fe.command,urls:Fe.urls});async function be(xe){u(null);try{await iN(ke,Re,xe),F()}catch(He){u(He.message)}}async function Ne(xe){u(null);try{const He=await fetch(`/api/projects/${ke}/assignments/${Re}/${xe?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!He.ok){const Fe=await He.json().catch(()=>null);throw new Error((Fe==null?void 0:Fe.error)||`HTTP ${He.status}`)}F(),m(xe?"Assignment archived":"Assignment restored","success")}catch(He){u(He.message)}}async function z(){T(!0);try{await R5(ke,Re),n(`${s}/projects/${ke}`)}catch(xe){u(xe.message),T(!1),P(!1)}}async function ne(xe,He){u(null),y(xe.command);try{return await oN(ke,Re,xe,He),F(),!0}catch(Fe){return u(Fe.message),!1}finally{y(null)}}function pe(xe){if(aN(xe)){N(xe);return}ne(xe)}async function Oe(xe,He){w(null),E(xe);try{const Fe=await fetch(`/api/projects/${ke}/assignments/${Re}/acceptance-criteria/${xe}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({checked:He})}),Pt=await Fe.json();if(!Fe.ok)throw new Error(Pt.error||`HTTP ${Fe.status}`);F()}catch(Fe){w(Fe.message)}finally{E(null)}}const ee=[...at.filter(xe=>xe!==Be).map(xe=>({key:`transition-${xe.command}`,label:xe.label,onSelect:()=>pe(xe),disabled:x===xe.command})),...Ie.filter(xe=>xe.disabled||xe.targetStatus===L.status).map(xe=>({key:`transition-${xe.command}`,label:xe.label,disabled:!0,disabledReason:xe.targetStatus===L.status?`Already ${L.status.replace(/_/g," ")}`:xe.disabledReason??xe.warning??xe.description})),...Q.statuses.map(xe=>({key:`override-${xe.id}`,label:`Override → ${xe.label}`,onSelect:()=>be(xe.id),disabled:xe.id===L.status,disabledReason:xe.id===L.status?"Already in this status":void 0})),{key:"edit-assignment",label:"Edit assignment source",icon:VT,href:`${s}/projects/${e}/assignments/${t}/edit`},{key:"edit-plan",label:"Edit plan",icon:rP,href:`${s}/projects/${e}/assignments/${t}/plan/edit`},{key:"edit-scratchpad",label:"Edit scratchpad",icon:om,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:KT,href:`${s}/projects/${e}/assignments/${t}/decision-record/edit`},{key:L.archived?"unarchive":"archive",label:L.archived?"Restore assignment":"Archive assignment",icon:L.archived?qu:Cd,onSelect:()=>Ne(!L.archived)},{key:"delete",label:"Delete assignment",icon:Kn,destructive:!0,onSelect:()=>P(!0)}],me=(Be==null?void 0:Be.command)==="review";return r.jsxs("div",{className:"space-y-5",children:[r.jsx(Yo,{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(dn,{status:L.status,progress:Xe}),r.jsx(qo,{type:L.type}),r.jsx("h1",{className:"text-lg font-semibold text-foreground",children:L.title}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["Updated ",f0(L.updated)]}),ue.length>0&&r.jsxs("span",{className:"text-xs text-warning-foreground",children:["⚠ ",ue.length," unmet dep",ue.length===1?"":"s"]}),r.jsx(zg,{externalIds:L.externalIds}),r.jsxs("span",{className:"ml-auto flex items-center gap-2",children:[r.jsx(sN,{target:{kind:"assignment",id:L.id},worktreePath:((qe=L.workspace)==null?void 0:qe.worktreePath)??null,repository:((xt=L.workspace)==null?void 0:xt.repository)??null}),!((ct=L.workspace)!=null&&ct.worktreePath)&&e&&t&&r.jsx(uN,{projectSlug:e,assignmentSlug:t,defaultBranch:`syntaur/${e}/${t}`,onCreated:()=>F()}),Be&&r.jsx("button",{type:"button",title:Be.warning||Be.description,disabled:x===Be.command,onClick:()=>pe(Be),className:Pe("shell-action disabled:cursor-not-allowed disabled:opacity-50",Be.warning&&"border-warning-foreground/40",me&&D>0&&"send-to-review-glow"),children:r.jsx("span",{children:x===Be.command?"Working…":Be.label})},me?`review-${D}`:Be.command),r.jsx(Og,{items:ee,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,L.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:"})," ",L.blockedReason]}):null]}),I.length>0&&r.jsx(V5,{projectSlug:e,dependencies:I,blockedReason:L.blockedReason}),L.enrichedLinks&&L.enrichedLinks.length>0&&r.jsx(H5,{links:L.enrichedLinks}),L.referencedBy&&L.referencedBy.length>0&&r.jsx(We,{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:L.referencedBy.map(xe=>{const He=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:He,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(Ug,{value:Y,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(We,{title:"Acceptance Criteria",description:"These checkboxes update the source assignment markdown.",children:r.jsxs("div",{className:"space-y-3",children:[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,je.acceptanceCriteria.map((xe,He)=>{const Fe=k!==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:Fe,onChange:Pt=>Oe(He,Pt.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})]},`${He}-${xe.text}`)})]})}):null,fe.hasSection?r.jsx(We,{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(We,{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:L.plan?1:0,content:L.plan?r.jsx("div",{className:"space-y-5",children:r.jsxs(We,{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(om,{className:"h-4 w-4"}),r.jsx("span",{children:"Edit Plan"})]}),children:[r.jsx("div",{className:"mb-4",children:r.jsx(dn,{status:L.plan.status})}),r.jsx(un,{content:L.plan.body,emptyState:"No plan content yet."})]})}):r.jsx(Nt,{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:L.scratchpad?1:0,content:L.scratchpad?r.jsx(We,{title:"Scratchpad",actions:r.jsxs(Ce,{className:"shell-action",to:`${s}/projects/${e}/assignments/${t}/scratchpad/edit`,children:[r.jsx(om,{className:"h-4 w-4"}),r.jsx("span",{children:"Edit Scratchpad"})]}),children:r.jsx(un,{content:L.scratchpad.body,emptyState:"Scratchpad is empty."})}):r.jsx(Nt,{title:"No scratchpad yet",description:"Scratchpad notes appear here when you use the Edit Scratchpad action."})},{value:"handoff",label:"Handoff",count:((pt=L.handoff)==null?void 0:pt.handoffCount)??0,content:r.jsx("div",{className:"space-y-5",children:L.handoff?r.jsx(We,{children:r.jsx(un,{content:L.handoff.body,emptyState:"No handoff history yet."})}):r.jsx(Nt,{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:((nt=L.progress)==null?void 0:nt.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:L.progress&&L.progress.entries.length>0?r.jsx(We,{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:L.progress.entries.map((xe,He)=>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}-${He}`))})}):r.jsx(Nt,{title:"No progress entries yet",description:"Progress entries appear here as the agent appends them to progress.md."})})},{value:"comments",label:"Comments",count:((Dn=L.comments)==null?void 0:Dn.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:L.comments&&L.comments.entries.length>0?r.jsx(dN,{projectSlug:e,assignmentSlug:t,entries:L.comments.entries}):r.jsx(Nt,{title:"No comments yet",description:"Comments appear here when agents or humans post via `syntaur comment` or the dashboard."})})},{value:"decisions",label:"Decisions",count:((Cn=L.decisionRecord)==null?void 0:Cn.decisionCount)??0,content:r.jsx("div",{className:"space-y-5",children:L.decisionRecord?r.jsx(We,{children:r.jsx(un,{content:L.decisionRecord.body,emptyState:"No decision history yet."})}):r.jsx(Nt,{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(We,{title:"Details",children:r.jsxs("dl",{className:"space-y-3 text-sm",children:[r.jsx(Zs,{label:"ID",value:L.id,copyable:!0}),r.jsx(Zs,{label:"Priority",value:L.priority}),L.assignee&&r.jsx(Zs,{label:"Assignee",value:L.assignee}),r.jsx(Zs,{label:"Updated",value:`${d0(L.updated)} · Created ${u0(L.created)}`}),L.workspace.repository&&r.jsx(Zs,{label:"Repository",value:L.workspace.repository,copyable:!0}),L.workspace.worktreePath&&r.jsx(Zs,{label:"Worktree",value:L.workspace.worktreePath,copyable:!0}),L.workspace.branch&&r.jsx(Zs,{label:"Branch",value:L.workspace.branch,copyable:!0}),L.workspace.parentBranch&&r.jsx(Zs,{label:"Parent branch",value:L.workspace.parentBranch,copyable:!0}),L.externalIds.map((xe,He)=>r.jsx(G5,{entry:xe},`${xe.system}:${xe.id}:${He}`))]})}),ft.length>0&&r.jsx(We,{title:"Servers",children:r.jsx("div",{className:"space-y-2",children:ft.map((xe,He)=>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(Fe=>r.jsxs("a",{href:Fe,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs text-primary hover:underline",children:[Fe.replace("http://localhost:",":"),r.jsx(ua,{className:"h-2.5 w-2.5"})]},Fe))]},He))})}),r.jsx(tN,{sessions:le==null?void 0:le.sessions,loading:O,error:K}),r.jsx(nN,{summary:A==null?void 0:A.summary,loading:B,error:Z})]})]}),r.jsx(rN,{open:b!==null,action:b,assignmentTitle:L.title,loading:x===(b==null?void 0:b.command),onOpenChange:xe=>{xe||N(null)},onConfirm:async xe=>{if(!b)return;await ne(b,xe)&&N(null)}}),r.jsx(Xo,{open:C,title:"Delete assignment?",description:`This will permanently delete "${L.title}" and all its files (plan, scratchpad, handoff, decision record). This cannot be undone.`,confirmLabel:"Delete Assignment",destructive:!0,loading:$,onOpenChange:xe=>{xe||P(!1)},onConfirm:z})]})}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 G5({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(ua,{className:"h-2.5 w-2.5 shrink-0"})]}):r.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function Y5(){var T,D,_,Y,Q,L,W,te;const{id:e}=Lt(),[t,n]=ps(),s=t.get("tab")??"summary",{data:i,loading:l,error:c,refetch:u}=tR(e),{data:p,loading:m,error:h}=rR(e),{data:x,loading:y,error:b}=oR(i==null?void 0:i.slug),[N,j]=f.useState(!1),[w,k]=f.useState(null),{toast:E,showToast:C,dismissToast:P}=Go();async function $(F){if(e){k(null);try{const H=await fetch(`/api/assignments/${e}/${F?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!H.ok){const X=await H.json().catch(()=>null);throw new Error((X==null?void 0:X.error)||`HTTP ${H.status}`)}u(),C(F?"Assignment archived":"Assignment restored","success")}catch(H){k(H instanceof Error?H.message:"Archive failed")}}}return l?r.jsx(gt,{}):c?r.jsx(jt,{error:c}):i?r.jsxs("div",{className:"space-y-6",children:[r.jsx(Yo,{toast:E,onDismiss:P}),r.jsxs("header",{className:"space-y-2",children:[r.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[r.jsx(dn,{status:i.status}),r.jsx(qo,{type:i.type}),r.jsx("span",{className:"text-xs font-mono text-muted-foreground",children:i.id}),r.jsx(zg,{externalIds:i.externalIds}),r.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[r.jsx(sN,{target:{kind:"assignment",id:i.id},worktreePath:((T=i.workspace)==null?void 0:T.worktreePath)??null,repository:((D=i.workspace)==null?void 0:D.repository)??null,size:"compact"}),!((_=i.workspace)!=null&&_.worktreePath)&&r.jsx(uN,{assignmentId:i.id,defaultBranch:`syntaur/${i.slug}`,onCreated:()=>u()}),r.jsxs("button",{type:"button",onClick:()=>j(!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(Jl,{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:()=>$(!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(qu,{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(We,{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:`${d0(i.updated)} · Created ${u0(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((F,H)=>r.jsx(J5,{entry:F},`${F.system}:${F.id}:${H}`))]})}),i.referencedBy&&i.referencedBy.length>0?r.jsx(We,{title:"Referenced by",description:"Other assignments whose bodies link to this one.",children:r.jsx("ul",{className:"space-y-2",children:i.referencedBy.map(F=>r.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[r.jsx(Ce,{to:F.sourceProjectSlug===null?`/assignments/${F.sourceId}`:`/projects/${F.sourceProjectSlug}/assignments/${F.sourceSlug}`,className:"text-foreground hover:text-primary",children:F.sourceTitle}),r.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",F.mentions," mention",F.mentions===1?"":"s",")"]})]},F.sourceId))})}):null,r.jsx(tN,{sessions:p==null?void 0:p.sessions,loading:m,error:h}),r.jsx(nN,{summary:x==null?void 0:x.summary,loading:y,error:b}),r.jsx(Ug,{value:s,onValueChange:F=>n({tab:F}),items:[{value:"summary",label:"Summary",content:r.jsx("div",{className:"space-y-5",children:r.jsx(We,{title:"Assignment",children:r.jsx(un,{content:i.body,emptyState:"This assignment does not have summary markdown yet."})})})},{value:"progress",label:"Progress",count:((Y=i.progress)==null?void 0:Y.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:i.progress&&i.progress.entries.length>0?r.jsx(We,{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((F,H)=>r.jsxs("li",{className:"border-l-2 border-border pl-3",children:[r.jsx("div",{className:"text-xs font-mono text-muted-foreground",children:F.timestamp}),r.jsx(un,{content:F.body})]},`${F.timestamp}-${H}`))})}):r.jsx(Nt,{title:"No progress entries yet",description:"Progress entries appear here as the agent appends them to progress.md."})})},{value:"comments",label:"Comments",count:((Q=i.comments)==null?void 0:Q.entryCount)??0,content:r.jsx("div",{className:"space-y-5",children:r.jsx(dN,{projectSlug:null,assignmentSlug:i.id,entries:((L=i.comments)==null?void 0:L.entries)??[]})})},{value:"plan",label:"Plan",content:r.jsx("div",{className:"space-y-5",children:i.plan?r.jsxs(We,{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(Nt,{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(We,{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(Nt,{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(We,{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(Nt,{title:"No handoff log yet",description:"Handoffs appear here when an agent appends one."})})},{value:"decisions",label:"Decisions",count:((te=i.decisionRecord)==null?void 0:te.decisionCount)??0,content:r.jsx("div",{className:"space-y-5",children:i.decisionRecord?r.jsxs(We,{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(Nt,{title:"No decision record yet",description:"Decision records appear here once appended."})})}]}),r.jsx(Fg,{open:N,onOpenChange:j,currentWorkspace:i.projectWorkspace,title:"Move assignment to workspace",description:"Standalone assignments belong to a project-workspace via the workspaceGroup frontmatter field.",onSubmit:async F=>{const H=await fetch(`/api/assignments/${encodeURIComponent(i.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:F})});if(!H.ok){const X=await H.json().catch(()=>({}));throw new Error(X.error||"Failed to move assignment")}u()}})]}):r.jsx(jt,{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 J5({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(ua,{className:"h-2.5 w-2.5 shrink-0"})]}):r.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function X5({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=cd(e),N=b.icon,j=f.useCallback(P=>{l(!1),P&&requestAnimationFrame(()=>{var $;($=h.current)==null||$.focus()})},[]),w=f.useCallback(()=>{var $;const P=($=h.current)==null?void 0:$.getBoundingClientRect();P&&u({top:P.top,left:P.left,width:P.width,bottom:P.bottom})},[]);f.useLayoutEffect(()=>{i&&w()},[i,w]),f.useEffect(()=>{if(!i)return;const P=()=>w();return window.addEventListener("scroll",P,!0),window.addEventListener("resize",P),()=>{window.removeEventListener("scroll",P,!0),window.removeEventListener("resize",P)}},[i,w]),f.useEffect(()=>{if(!i)return;const P=$=>{var D,_;const T=$.target;T&&((D=x.current)!=null&&D.contains(T)||(_=h.current)!=null&&_.contains(T)||j(!1))};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[i,j]),f.useEffect(()=>{i&&m(0)},[i,t.length]);function k(P){(P.key==="Enter"||P.key===" "||P.key==="ArrowDown")&&(P.preventDefault(),l(!0))}function E(P){if(t.length===0){P.key==="Escape"&&(P.preventDefault(),j(!0));return}if(P.key==="ArrowDown")P.preventDefault(),m($=>($+1)%t.length);else if(P.key==="ArrowUp")P.preventDefault(),m($=>($-1+t.length)%t.length);else if(P.key==="Home")P.preventDefault(),m(0);else if(P.key==="End")P.preventDefault(),m(t.length-1);else if(P.key==="Enter"){P.preventDefault();const $=t[p];$&&(n($),j(!0))}else P.key==="Escape"&&(P.preventDefault(),j(!0))}function C(P){n(P),j(!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(P=>!P)},onKeyDown:k,title:`Status: ${b.label}. Click to change.`,className:Pe(ES(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(N,{className:"h-3.5 w-3.5"}),r.jsx("span",{children:b.label})]}),i&&c&&typeof document<"u"?Cs.createPortal(r.jsx("div",{ref:x,id:y,role:"menu",tabIndex:-1,autoFocus:!0,onKeyDown:E,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((P,$)=>{const T=cd(P.targetStatus),D=T.icon,_=$===p;return r.jsxs("button",{type:"button",role:"menuitem","data-no-drag":!0,onMouseEnter:()=>m($),onClick:()=>C(P),title:P.warning||P.description,className:Pe("flex w-full flex-col items-stretch gap-0.5 px-3 py-1.5 text-left text-sm transition",_?"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(D,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),r.jsx("span",{className:"truncate",children:P.label})]}),r.jsx("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:T.label})]}),P.warning?r.jsx("span",{className:"text-[11px] leading-snug text-warning-foreground",children:P.warning}):null]},`${P.command}:${P.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(Q5,{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:Pe("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(ua,{className:"h-3.5 w-3.5"})})]})}function Q5({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()},[]),N=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 j(w){w.key==="Enter"?(w.preventDefault(),N()):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:j,onBlur:()=>void N(),className:Pe("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 mN(e){const t=Dt(),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(ia)||t(e)},[t,e]);return{containerRef:n,onMouseDown:i,onClick:l}}const Xw=wg;function Qw(e){return e==="1"?"stale":e==="0"?"fresh":"all"}function Z5(e,t){return e.toString()===t.toString()}function Zw(){const{workspace:e}=Lt(),t=on(),n=Dt(),s=f.useRef(null);uo("list:assignments");const{data:i,loading:l,error:c,refetch:u}=Ad(),p=Ko(),m=Yd(),[h,x]=ps(),y=e?`w:${e}`:null,b=U1(y),N=f.useRef(void 0),j=f.useMemo(()=>AS(p.order),[p]),w=f.useMemo(()=>{const M={};for(const ie of j)M[ie]=tc(p,ie);return M},[j,p]),k=f.useMemo(()=>j.map(M=>({id:M,title:w[M]??M,description:Gd(M)})),[j,w]),E=f.useMemo(()=>m.definitions.map(M=>({id:M.id,title:Xi(m,M.id),description:M.description})),[m]),C="__unknown_type__",P=f.useMemo(()=>new Set(["all",...j]),[j]),$=h.get("view"),T=h.get("status"),D=h.get("stale"),_=$&&Xw.includes($)?$:"kanban";function Y(M){if(!M)return[];const ie=[];for(const ge of M.split(",")){const Le=ge.trim();!Le||Le==="all"||!P.has(Le)||ie.includes(Le)||ie.push(Le)}return ie}const Q=f.useCallback(M=>{x(ie=>{const ge=new URLSearchParams(ie);return M==="kanban"?ge.delete("view"):ge.set("view",M),ge})},[x]),[L,W]=f.useState(""),[te,F]=f.useState(()=>Y(T)),[H,X]=f.useState(()=>tt(b.filters.priority)),[le,O]=f.useState(()=>tt(b.filters.type)),[K,A]=f.useState(()=>tt(b.filters.assignee)),[B,Z]=f.useState(()=>tt(b.filters.project)),[I,ue]=f.useState(()=>tt(b.filters.tags)),[he,V]=f.useState(null),[oe,de]=f.useState(()=>Qw(D)),[ye,je]=f.useState(()=>b.sortField),[fe,Ye]=f.useState(()=>b.sortDirection),[Je,ot]=f.useState(()=>({hidden:[]})),[G,De]=f.useState(()=>({hidden:[]})),[ke,Re]=f.useState(()=>b.grouping),Xe=ke==="type"?"type":"status",[Ie,at]=f.useState(()=>new Set),[Be,ft]=f.useState([]),{toast:be,showToast:Ne,dismissToast:z}=Go(),[ne,pe]=f.useState(null),[Oe,ee]=f.useState(null),[me,Me]=f.useState(null),[it,qe]=f.useState(null),[xt,ct]=f.useState(null),[pt,nt]=f.useState(null),[Dn,Cn]=f.useState(null),[xe,He]=f.useState(null),[Fe,Pt]=f.useState(null),[Ln,qt]=f.useState(!1),[nn,Ht]=f.useState(!1),Yn=e?{kind:"workspace",workspace:e}:{kind:"global"},bt=h.get("loadView"),{view:vn,loading:Rt,error:re}=Bo(bt),{view:Ae,loading:Qe,error:Mt}=Bo(Fe),pn=f.useRef(null);f.useEffect(()=>{ft((i==null?void 0:i.assignments)??[])},[i]),f.useEffect(()=>{Fe&&!Qe&&!Mt&&!Ae&&Pt(null)},[Ae,Mt,Fe,Qe]),f.useEffect(()=>{Pt(null),pn.current=null,V(null),W("")},[e]),f.useEffect(()=>{const M=Y(T);aD(M,te)||F(M);const ie=Qw(D);ie!==oe&&de(ie)},[oe,D,te,T]),f.useEffect(()=>{N.current===y&&x(M=>{const ie=new URLSearchParams(M);return te.length===0?ie.delete("status"):ie.set("status",te.join(",")),oe==="all"?ie.delete("stale"):oe==="stale"?ie.set("stale","1"):ie.set("stale","0"),Z5(M,ie)?M:ie})},[oe,y,x,te]),f.useEffect(()=>{X(tt(b.filters.priority)),O(tt(b.filters.type)),A(tt(b.filters.assignee)),Z(tt(b.filters.project)),ue(tt(b.filters.tags)),je(b.sortField),Ye(b.sortDirection),Re(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(N.current===y)return;let M=!1;return fx().then(ie=>{if(M||N.current===y)return;const ge=zk(ie,y),Le=ge.defaultView,lt=tt(ge.filters.status),ht=ge.filters.activity??"all",vt=new URLSearchParams(window.location.search);let an=!1;const rn=new URLSearchParams(vt);vt.get("view")===null&&Le!=="kanban"&&Xw.includes(Le)&&(rn.set("view",Le),an=!0),vt.get("status")===null&<.length>0&&(rn.set("status",lt.join(",")),F(lt),an=!0),vt.get("stale")===null&&ht!=="all"&&(rn.set("stale",ht==="stale"?"1":"0"),de(ht),an=!0),an&&x(rn,{replace:!0}),queueMicrotask(()=>{N.current=y})}),()=>{M=!0}},[y]);const Ct=f.useCallback(M=>{(y===null?H1(M):W1(y,M)).catch(ge=>{console.warn("Failed to persist view prefs:",ge)})},[y]),xf=f.useCallback(M=>{Q(M),Ct({defaultView:M})},[Q,Ct]),ka=f.useCallback(M=>{F(M),Ct({filters:{status:M}})},[Ct]),Ir=f.useCallback(M=>{X(M),Ct({filters:{priority:M}})},[Ct]),Qo=f.useCallback(M=>{O(M),Ct({filters:{type:M}})},[Ct]),Zo=f.useCallback(M=>{A(M),Ct({filters:{assignee:M}})},[Ct]),Sa=f.useCallback(M=>{Z(M),Ct({filters:{project:M}})},[Ct]),ei=f.useCallback(M=>{ue(M),Ct({filters:{tags:M}})},[Ct]),ti=f.useCallback(M=>{de(M),Ct({filters:{activity:M}})},[Ct]),ni=f.useCallback(M=>{je(M),Ct({sortField:M})},[Ct]),po=f.useCallback(M=>{Ye(M),Ct({sortDirection:M})},[Ct]),yf=f.useCallback(M=>{Re(M),Ct({grouping:M})},[Ct]),ri=f.useCallback(()=>({viewMode:_,filters:{status:te,priority:H,type:le,assignee:K,project:B,tags:I,activity:oe,dateRange:Vl(he),search:L},sortField:ye,sortDirection:fe,listSectionVisibility:{collapsed:[...Ie]},kanbanColumnVisibility:Je,tableColumnVisibility:G}),[_,te,H,le,K,B,I,oe,he,L,ye,fe,Ie,Je,G]),$t=f.useCallback(M=>{J1(M,{setViewMode:Q,setStatusFilter:ka,setPriorityFilter:Ir,setTypeFilter:Qo,setAssigneeFilter:Zo,setProjectFilter:Sa,setTagsFilter:ei,setActivityFilter:ti,setDateRange:V,setSearch:W,setSortField:ni,setSortDirection:po,setListSectionVisibility:ie=>at(new Set(ie.collapsed)),setKanbanColumnVisibility:ot,setTableColumnVisibility:De}),Pt(M.id)},[Q,ka,Ir,Qo,Zo,Sa,ei,ti,ni,po]),bf=f.useCallback(M=>{$t(M),pn.current=M.id,x(ie=>{const ge=new URLSearchParams(ie);return ge.set("loadView",M.id),ge},{replace:!0})},[$t,x]),Na=f.useCallback(async M=>{try{const ie=Ul({name:M,context:{workspace:e??null,projectSlug:null},state:ri()}),ge=await zd(ie),Le=ge.views[ge.views.length-1];Pt((Le==null?void 0:Le.id)??null),Le&&(pn.current=Le.id,x(lt=>{const ht=new URLSearchParams(lt);return ht.set("loadView",Le.id),ht},{replace:!0})),qt(!1),Ht(!1),Ne(`Saved view "${M}"`,"success")}catch(ie){throw Ne(ie instanceof Error?ie.message:"Failed to save view","error"),ie}},[ri,x,Ne,e]),cc=f.useCallback(async()=>{if(!(!Fe||!Ae))try{const M=Ul({name:Ae.name,context:{workspace:e??null,projectSlug:null},state:ri()}),ie=mx(Ae.config,M.config,M.config);await Sg(Fe,{config:ie}),Ne("View updated","success")}catch(M){Ne(M instanceof Error?M.message:"Failed to update view","error")}},[ri,Ae,Fe,Ne,e]);f.useEffect(()=>{if(!bt){pn.current=null;return}if(pn.current!==bt&&(Fe&&Fe!==bt&&Pt(null),!Rt)){if(re){Ne("Couldn't load saved view — try again","error");return}if(vn){pn.current=bt,$t(vn),x(M=>{const ie=new URLSearchParams(M);return ie.delete("loadView"),ie},{replace:!0});return}pn.current=bt,Ne("Saved view no longer exists","error"),x(M=>{const ie=new URLSearchParams(M);return ie.delete("loadView"),ie},{replace:!0})}},[bt,vn,Rt,re,Fe,$t,x,Ne]);const Bn=f.useMemo(()=>Be.filter(M=>e?e==="_ungrouped"?M.projectWorkspace===null:M.projectWorkspace===e:!0),[Be,e]),vf=f.useMemo(()=>Array.from(new Set(Bn.map(M=>M.status))).sort(),[Bn]),uc=f.useMemo(()=>Array.from(new Set(Bn.map(M=>M.priority))).sort(),[Bn]),si=f.useMemo(()=>Array.from(new Set(Bn.map(M=>M.assignee??"__unassigned__"))).sort(),[Bn]),br=f.useMemo(()=>Array.from(new Map(Bn.filter(M=>M.projectSlug!==null).map(M=>[M.projectSlug,M.projectTitle]))).sort(([,M],[,ie])=>M.localeCompare(ie)),[Bn]),wf=f.useMemo(()=>Array.from(new Set(Bn.flatMap(M=>M.tags??[]))).sort(),[Bn]),kt=f.useMemo(()=>Be.filter(M=>Ig(M,{status:te,priority:H,type:le,assignee:K,project:B,tags:I,activity:oe,dateRange:Vl(he)},{workspace:e,search:L})),[oe,Be,L,te,H,le,K,B,I,he,e]),mo=f.useMemo(()=>nc(kt,ye,fe),[kt,ye,fe]),Ca=f.useMemo(()=>{if(ke==="none")return[{id:"__all__",label:"All assignments",items:kt}];if(ke==="type"){const M=m.definitions.map(Le=>({id:Le.id,label:Xi(m,Le.id),items:kt.filter(lt=>lt.type===Le.id)})),ie=new Set(m.definitions.map(Le=>Le.id)),ge=kt.filter(Le=>!Le.type||!ie.has(Le.type));return ge.length>0&&M.push({id:C,label:"Other",items:ge}),M}if(ke==="priority")return["critical","high","medium","low"].map(ie=>({id:ie,label:ie.charAt(0).toUpperCase()+ie.slice(1),items:kt.filter(ge=>ge.priority===ie)}));if(ke==="assignee")return Array.from(new Set(kt.map(ie=>ie.assignee??"__unassigned__"))).sort().map(ie=>({id:ie,label:ie==="__unassigned__"?"Unassigned":ie,items:kt.filter(ge=>(ge.assignee??"__unassigned__")===ie)}));if(ke==="project"){const M=new Map;for(const ie of kt){const ge=ie.projectSlug??"__standalone__",Le=ie.projectTitle??"Standalone";M.has(ge)||M.set(ge,Le)}return Array.from(M.entries()).sort(([,ie],[,ge])=>ie.localeCompare(ge)).map(([ie,ge])=>({id:ie,label:ge,items:kt.filter(Le=>(Le.projectSlug??"__standalone__")===ie)}))}return j.map(M=>({id:M,label:w[M]??M,items:kt.filter(ie=>ie.status===M)}))},[ke,kt,m,j,w]),jf=f.useMemo(()=>{const M=new Set(m.definitions.map(ge=>ge.id));return kt.some(ge=>!ge.type||!M.has(ge.type))?[...E,{id:C,title:"Other",description:"Assignments with no recognized type."}]:E},[E,m,kt]),{visibleItems:oi,visibleIndexByKey:ho}=f.useMemo(()=>{let M;if(_==="table")M=mo;else if(_==="kanban"){const ge=new Set(m.definitions.map(Le=>Le.id));Xe==="type"?M=[...m.definitions.flatMap(Le=>kt.filter(lt=>lt.type===Le.id)),...kt.filter(Le=>!Le.type||!ge.has(Le.type))]:M=j.flatMap(Le=>kt.filter(lt=>lt.status===Le))}else M=Ca.flatMap(ge=>ge.items);const ie=new Map;return M.forEach((ge,Le)=>ie.set(Zt(ge),Le)),{visibleItems:M,visibleIndexByKey:ie}},[_,mo,Ca,Xe,m,kt,j]),{hotkeyRowProps:gs}=Ql(oi,{scope:"list:assignments",onOpen:M=>{if(M.projectSlug===null){n(`/assignments/${M.id}`);return}const ie=M.projectWorkspace?`/w/${M.projectWorkspace}`:t;n(`${ie}/projects/${M.projectSlug}/assignments/${M.slug}`)}});if(Vt({keys:"/",scope:"list:assignments",description:"Focus filter",handler:()=>{var M;return(M=s.current)==null?void 0:M.focus()}}),Vt({keys:"r",scope:"list:assignments",description:"Refresh",handler:()=>u()}),l)return r.jsx(gt,{label:"Loading assignments board…"});if(c||!i)return r.jsx(jt,{error:c||"Assignments board is unavailable."});async function go({item:M,toColumnId:ie,action:ge,reason:Le}){pe(Zt(M));const lt=Be;ft(ht=>ht.map(vt=>Zt(vt)===Zt(M)?{...vt,status:ie,blockedReason:ie==="blocked"?Le??vt.blockedReason:null}:vt));try{if(M.projectSlug===null){if(!ge)throw new Error("Standalone assignments require a transition action, not status override.");const vt=await fetch(`/api/assignments/${encodeURIComponent(M.id)}/transitions/${encodeURIComponent(ge.command)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Le?{reason:Le}:{})});if(!vt.ok)throw new Error((await vt.json()).error??`HTTP ${vt.status}`);const rn=(await vt.json()).assignment;ft(wn=>wn.map(Un=>Zt(Un)===Zt(M)?{...Un,status:rn.status,blockedReason:rn.blockedReason,availableTransitions:rn.availableTransitions,updated:rn.updated}:Un));return}const ht=ge?await oN(M.projectSlug,M.slug,ge,Le):await iN(M.projectSlug,M.slug,ie);return ft(vt=>vt.map(an=>Zt(an)===Zt(M)?{...an,status:ht.status,blockedReason:ht.blockedReason,availableTransitions:ht.availableTransitions,updated:ht.updated}:an)),u(),!0}catch(ht){return ft(lt),Ne(ht.message,"error"),!1}finally{pe(null)}}async function xo({item:M,toColumnId:ie,action:ge}){if(M.status===ie)return;const Le=ge??ml(M,ie);if(Le!=null&&Le.disabled){Ne(Le.disabledReason||`Cannot move this assignment to ${ie}.`,"error");return}if(Le&&aN(Le)){qe({item:M,toColumnId:ie,action:Le});return}await go({item:M,toColumnId:ie,action:Le})}async function Ea(M,ie){if(ie===M.title)return;const ge=Zt(M),Le=Be;ft(lt=>lt.map(ht=>Zt(ht)===ge?{...ht,title:ie}:ht)),pe(ge);try{const lt=M.projectSlug===null?await D5({id:M.id,title:ie}):await A5({projectSlug:M.projectSlug,assignmentSlug:M.slug,title:ie});ft(ht=>ht.map(vt=>Zt(vt)===ge?{...vt,title:lt.title,updated:lt.updated}:vt)),u()}catch(lt){throw ft(Le),Ne(lt.message,"error"),lt}finally{pe(null)}}function Ta(M){at(ie=>{const ge=new Set(ie);return ge.has(M)?ge.delete(M):ge.add(M),ge})}function dc(M){ye===M?po(fe==="asc"?"desc":"asc"):(ni(M),po("asc"))}const $n=Oe?Be.find(M=>Zt(M)===Oe)??null:null;function yo(M,ie){M.dataTransfer.effectAllowed="move",M.dataTransfer.setData("text/plain",ie),ee(ie)}function Pa(){ee(null),Me(null)}function Ra(M,ie){if(!$n)return;const ge=ml($n,ie);$n.status===ie||ge!=null&&ge.disabled||(M.preventDefault(),M.dataTransfer.dropEffect="move",Me(ie))}function Et(M,ie){me===ie&&!M.currentTarget.contains(M.relatedTarget)&&Me(null)}function fc(M,ie){if(M.preventDefault(),!$n||$n.status===ie){Pa();return}Pa(),xo({item:$n,toColumnId:ie})}function Qr({field:M,children:ie}){const ge=ye===M;return r.jsx("th",{className:"pb-3 font-medium",children:r.jsxs("button",{type:"button",onClick:()=>dc(M),className:"inline-flex items-center gap-1 hover:text-foreground",children:[ie,ge?fe==="asc"?r.jsx(Xj,{className:"h-3 w-3"}):r.jsx(Wr,{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(tn,{className:"h-4 w-4"}),"New Assignment"]})}),r.jsxs(_g,{children:[r.jsx(Jd,{ref:s,value:L,onChange:W,placeholder:"Search assignments or projects"}),r.jsx(Pn,{ariaLabel:"Status filter",className:"max-w-[180px]",allLabel:"All statuses",options:vf.map(M=>({value:M,label:w[M]??M})),value:te,onChange:ka}),r.jsx(Pn,{ariaLabel:"Priority filter",className:"max-w-[180px]",allLabel:"All priorities",options:uc.map(M=>({value:M,label:M[0].toUpperCase()+M.slice(1)})),value:H,onChange:Ir}),r.jsx(Pn,{ariaLabel:"Type filter",className:"max-w-[180px]",allLabel:"All types",options:m.definitions.map(M=>({value:M.id,label:Xi(m,M.id)})),value:le,onChange:Qo}),r.jsx(Pn,{ariaLabel:"Assignee filter",className:"max-w-[180px]",allLabel:"All assignees",options:[{value:"__unassigned__",label:"Unassigned"},...si.filter(M=>M!=="__unassigned__").map(M=>({value:M,label:M}))],value:K,onChange:Zo}),r.jsx(Pn,{ariaLabel:"Project filter",className:"max-w-[180px]",allLabel:"All projects",options:[{value:"__standalone__",label:"Standalone"},...br.map(([M,ie])=>({value:M,label:ie}))],value:B,onChange:Sa}),r.jsx(Pn,{ariaLabel:"Tags filter",className:"max-w-[180px]",allLabel:"Any tags",options:wf.map(M=>({value:M,label:M})),value:I,onChange:ei}),r.jsx(px,{className:"max-w-[200px]",value:he,onChange:V}),r.jsxs("select",{value:oe,onChange:M=>ti(M.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:_==="kanban"?Xe:ke,onChange:M=>yf(M.target.value),className:"editor-input max-w-[180px]",title:"Group by",children:oD.map(M=>{const ie=_==="kanban"&&M!=="status"&&M!=="type",ge=M==="none"?"No grouping":`Group: ${M.charAt(0).toUpperCase()+M.slice(1)}`;return r.jsx("option",{value:M,disabled:ie,children:ie?`${ge} (list only)`:ge},M)})}),r.jsx(Xd,{value:_,onChange:M=>xf(M),options:[{value:"table",label:"Table"},{value:"list",label:"List"},{value:"kanban",label:"Kanban"}]}),_==="table"?r.jsx(F1,{visibility:G,onChange:De}):null,r.jsx(q1,{scope:Yn,loadedViewId:Fe,onApply:bf,onOpenSaveDialog:()=>{Ht(!1),qt(!0)}}),r.jsx("button",{type:"button",onClick:()=>{Ae?cc():(Ht(!1),qt(!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:Ae?`Update ${Ae.name}`:"Save current view",children:Ae?`Update '${Ae.name}'`:"Save view"}),Ae?r.jsx("button",{type:"button",onClick:()=>{Ht(!0),qt(!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(Nt,{title:"No assignments yet",description:"Assignments appear here once projects contain concrete work items.",actions:r.jsxs(Ce,{className:"shell-action shell-action--cta",to:`${t}/projects`,children:[r.jsx(Gh,{className:"h-4 w-4"}),r.jsx("span",{children:"Browse Projects"})]})}):kt.length===0?r.jsx(Nt,{title:"No assignments match these filters",description:"Adjust the search term or filters to show assignments across all projects again."}):_==="table"?(()=>{const M=new Set(G.hidden),ie=ge=>ge==="title"||!M.has(ge);return r.jsx(We,{title:`${mo.length} assignment${mo.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:[ie("title")?r.jsx(Qr,{field:"title",children:"Assignment"}):null,ie("status")?r.jsx(Qr,{field:"status",children:"Status"}):null,r.jsx("th",{className:"py-2 pr-4 text-xs font-medium uppercase tracking-wider",children:"Type"}),ie("priority")?r.jsx(Qr,{field:"priority",children:"Priority"}):null,ie("assignee")?r.jsx(Qr,{field:"assignee",children:"Assignee"}):null,ie("dependencies")?r.jsx(Qr,{field:"dependencies",children:"Dependencies"}):null,ie("created")?r.jsx(Qr,{field:"created",children:"Created"}):null,ie("updated")?r.jsx(Qr,{field:"updated",children:"Updated"}):null]})}),r.jsx("tbody",{children:mo.map((ge,Le)=>r.jsxs(tF,{detailHref:Ml(ge),className:"cursor-pointer border-b border-border/50 transition hover:bg-muted/40 last:border-0",...gs(Le),children:[ie("title")?r.jsxs("td",{className:"py-4 pr-4",children:[r.jsx(pN,{title:ge.title,detailHref:Ml(ge),onSave:lt=>Ea(ge,lt),disabled:ne===Zt(ge)}),r.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:ge.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:ge.id,children:[ge.id.slice(0,8),r.jsx(Dr,{value:ge.id})]})]}):null,ie("status")?r.jsx("td",{className:"py-4 pr-4",children:r.jsx("select",{value:ge.status,disabled:ne===Zt(ge),onChange:lt=>xo({item:ge,toColumnId:lt.target.value}),className:Pe("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")]`,(ld[ge.status]??ld.pending).className,ne===Zt(ge)&&"animate-pulse opacity-60"),children:j.map(lt=>{const ht=ge.status===lt?void 0:ml(ge,lt),vt=(ht==null?void 0:ht.disabled)??!1;return r.jsx("option",{value:lt,disabled:vt,title:vt?(ht==null?void 0:ht.disabledReason)??void 0:void 0,children:w[lt]},lt)})})}):null,r.jsx("td",{className:"py-4 pr-4",children:r.jsx(qo,{type:ge.type,compact:!0})}),ie("priority")?r.jsx("td",{className:"py-4 pr-4 capitalize text-muted-foreground",children:ge.priority}):null,ie("assignee")?r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:ge.assignee??"Unassigned"}):null,ie("dependencies")?r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:ge.dependsOn.length}):null,ie("created")?r.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:An(ge.created)}):null,ie("updated")?r.jsx("td",{className:"py-4 text-muted-foreground",children:An(ge.updated)}):null]},Zt(ge)))})]})})})})():_==="list"?r.jsx("div",{className:"space-y-3",children:Ca.map(({id:M,label:ie,items:ge})=>{var rn;if(ge.length===0&&!($n&&ke==="status"))return null;const Le=!Ie.has(M),lt=ke==="status",ht=lt&&$n?$n.status!==M&&!((rn=ml($n,M))!=null&&rn.disabled):!1,vt=lt&&$n?$n.status!==M&&!ht:!1,an=lt&&me===M;return r.jsxs("div",{className:Pe("rounded-lg border border-border/60 bg-card/90 transition",an&&ht&&"ring-2 ring-ring/30",vt&&"border-dashed opacity-65"),onDragOver:lt?wn=>Ra(wn,M):void 0,onDragLeave:lt?wn=>Et(wn,M):void 0,onDrop:lt?wn=>fc(wn,M):void 0,children:[r.jsxs("button",{type:"button",onClick:()=>Ta(M),className:"flex w-full items-center gap-2 px-4 py-3 text-left",children:[r.jsx(Wr,{className:`h-4 w-4 text-muted-foreground transition-transform ${Le?"":"-rotate-90"}`}),r.jsx("span",{className:"font-semibold text-foreground",children:ie}),r.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:ge.length})]}),Le&&ge.length>0&&r.jsx("div",{className:"space-y-3 px-4 pb-4",children:ge.map(wn=>{const Un=Zt(wn),_r=Oe===Un,pc=ho.get(Un)??-1,bo=lt;return r.jsx("div",{draggable:bo,onDragStart:bo?vr=>yo(vr,Un):void 0,onDragEnd:bo?Pa:void 0,...pc>=0?gs(pc):{},className:Pe("transition",bo&&"cursor-grab active:cursor-grabbing",_r&&"scale-[0.98] opacity-50"),children:r.jsx(ej,{assignment:wn,dragging:_r,transitioning:ne===Un,onPillSelect:vr=>void xo({item:wn,toColumnId:vr.targetStatus,action:vr}),onRenameTitle:vr=>Ea(wn,vr)})},Un)})})]},M)})}):r.jsx(qd,{columns:Xe==="type"?jf:k,items:kt,getItemId:Zt,getColumnId:M=>Xe==="type"?M.type&&m.definitions.some(ie=>ie.id===M.type)?M.type:C:M.status,canDrop:({item:M,fromColumnId:ie,toColumnId:ge})=>{if(ie===ge)return{allowed:!0};const Le=ml(M,ge);return Le!=null&&Le.disabled?{allowed:!1,reason:Le.disabledReason||Le.description}:{allowed:!0,reason:Le?Le.warning||Le.description:`Move to ${ge} (direct status change).`}},onMove:Xe==="type"?void 0:({item:M,toColumnId:ie})=>xo({item:M,toColumnId:ie}),dragDisabled:Xe==="type",getExternalDragData:M=>M.projectSlug===null?{type:"standalone-assignment",id:M.id}:{type:"project-assignment",id:M.id},onCardContextMenu:(M,ie)=>{ie.preventDefault(),ct({item:M,anchor:{x:ie.clientX,y:ie.clientY}})},emptyMessage:M=>`No ${M.title.toLowerCase()} assignments.`,hiddenColumnIds:Je.hidden,onHideColumn:M=>ot(ie=>({hidden:ie.hidden.includes(M)?ie.hidden.filter(Le=>Le!==M):[...ie.hidden,M]})),renderCard:(M,{dragging:ie})=>{const ge=ho.get(Zt(M))??-1;return r.jsx("div",{...ge>=0?gs(ge):{},children:r.jsx(ej,{assignment:M,dragging:ie,transitioning:ne===Zt(M),onPillSelect:Le=>void xo({item:M,toColumnId:Le.targetStatus,action:Le}),onRenameTitle:Le=>Ea(M,Le)})})}}),r.jsx(Yo,{toast:be,onDismiss:z}),r.jsx(K1,{open:Ln,onOpenChange:M=>{qt(M),M||Ht(!1)},initialName:nn&&Ae?`${Ae.name} (copy)`:"",title:nn?"Save as new view":"Save view",onSubmit:Na}),r.jsx(rN,{open:it!==null,action:(it==null?void 0:it.action)??null,assignmentTitle:(it==null?void 0:it.item.title)??"Assignment",loading:ne===(it?Zt(it.item):null),onOpenChange:M=>{M||qe(null)},onConfirm:async M=>{if(!it)return;const ie=it;await go({item:ie.item,toColumnId:ie.toColumnId,action:ie.action,reason:M})&&qe(null)}}),r.jsx(DS,{anchor:(xt==null?void 0:xt.anchor)??null,items:xt?eF(xt.item,{onEdit:()=>{const M=xt.item,ie=M.projectSlug===null?`/assignments/${M.id}`:`${M.projectWorkspace?`/w/${M.projectWorkspace}`:t}/projects/${M.projectSlug}/assignments/${M.slug}`;n(ie)},onDelete:()=>nt(xt.item),onMove:()=>He(xt.item)}):[],onClose:()=>ct(null)}),r.jsx(Xo,{open:pt!==null,title:"Delete assignment?",description:pt?`"${pt.title}" will be permanently removed. This cannot be undone.`:"",confirmLabel:"Delete",destructive:!0,loading:Dn!==null,onOpenChange:M=>{!M&&Dn===null&&nt(null)},onConfirm:async()=>{if(!pt||pt.projectSlug===null){nt(null);return}const M=Zt(pt);Cn(M);try{const ie=await fetch(`/api/projects/${encodeURIComponent(pt.projectSlug)}/assignments/${encodeURIComponent(pt.slug)}`,{method:"DELETE"});if(!ie.ok){const ge=await ie.json().catch(()=>({}));throw new Error(ge.error||"Failed to delete assignment")}nt(null),u()}catch(ie){alert(ie instanceof Error?ie.message:"Failed to delete assignment")}finally{Cn(null)}}}),r.jsx(Fg,{open:xe!==null,onOpenChange:M=>{M||He(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 M=>{if(!xe)return;const ie=await fetch(`/api/assignments/${encodeURIComponent(xe.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:M})});if(!ie.ok){const ge=await ie.json().catch(()=>({}));throw new Error(ge.error||"Failed to move assignment")}u()}})]})}function eF(e,t){const n=[{key:"edit",label:"Edit",icon:da,onSelect:t.onEdit}];return e.projectSlug!==null?n.push({key:"delete",label:"Delete",icon:Kn,destructive:!0,onSelect:t.onDelete}):n.push({key:"move",label:"Move to workspace…",icon:Jl,onSelect:t.onMove}),n}function tF({detailHref:e,children:t,className:n,...s}){const i=mN(e);return r.jsx("tr",{...s,ref:i.containerRef,className:n,onMouseDown:i.onMouseDown,onClick:i.onClick,children:t})}function ej({assignment:e,dragging:t,transitioning:n,onPillSelect:s,onRenameTitle:i}){var p;const l=Ml(e),c=!!(s&&i),u=mN(l);return r.jsxs("div",{ref:c?u.containerRef:void 0,className:Pe("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(X5,{currentStatus:e.status,availableTransitions:e.availableTransitions,onSelect:s,disabled:n}):r.jsx(dn,{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(qo,{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:An(e.updated)})]})]})}function ml(e,t){return e.availableTransitions.find(n=>n.targetStatus===t)}function Zt(e){return e.id||e.slug||"unknown"}function Or(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(`
|
|
540
|
+
`),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 xa(e){return`---
|
|
541
|
+
${e.order.map(n=>e.blocks.get(n)).filter(n=>!!n).flat().join(`
|
|
542
|
+
`)}
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
${e.body.replace(/^\n+/,"")}`}function yn(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 nF(e,t){return yn(e,t)==="true"}function Sl(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 rF(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 bn(e,t,n){e.blocks.has(t)||e.order.push(t),e.blocks.set(t,[`${t}: ${rF(n)}`])}function Nl(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 Cl(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function sf(e){const t=Or(e);return{title:yn(t,"title"),slug:yn(t,"slug"),workspace:yn(t,"workspace"),archived:nF(t,"archived"),archivedAt:yn(t,"archivedAt"),archivedReason:yn(t,"archivedReason"),tags:Sl(t,"tags").join(", "),body:t.body}}function sF(e,t){const n=Or(e),s={...sf(e),...t};return bn(n,"title",s.title),bn(n,"slug",s.slug),bn(n,"workspace",s.workspace||null),bn(n,"archived",s.archived),bn(n,"archivedAt",s.archivedAt||null),bn(n,"archivedReason",s.archivedReason||null),Nl(n,"tags",Cl(s.tags)),n.body=s.body,xa(n)}function of(e){const t=Or(e);return{title:yn(t,"title"),slug:yn(t,"slug"),status:yn(t,"status"),priority:yn(t,"priority")||"medium",assignee:yn(t,"assignee"),dependsOn:Sl(t,"dependsOn").join(", "),links:Sl(t,"links").join(", "),blockedReason:yn(t,"blockedReason"),tags:Sl(t,"tags").join(", "),body:t.body}}function oF(e,t){const n=Or(e),s={...of(e),...t};return bn(n,"title",s.title),bn(n,"slug",s.slug),bn(n,"status",s.status),bn(n,"priority",s.priority),bn(n,"assignee",s.assignee||null),Nl(n,"dependsOn",Cl(s.dependsOn)),Nl(n,"links",Cl(s.links)),bn(n,"blockedReason",s.blockedReason||null),Nl(n,"tags",Cl(s.tags)),n.body=s.body,xa(n)}function af(e){const t=Or(e);return{assignment:yn(t,"assignment"),status:yn(t,"status"),body:t.body}}function iF(e,t){const n=Or(e),s={...af(e),...t};return bn(n,"assignment",s.assignment),bn(n,"status",s.status),n.body=s.body,xa(n)}function lf(e){const t=Or(e);return{assignment:yn(t,"assignment"),body:t.body}}function aF(e,t){const n=Or(e),s={...lf(e),...t};return bn(n,"assignment",s.assignment),n.body=s.body,xa(n)}function cf(e){const t=Or(e);return{name:yn(t,"name"),slug:yn(t,"slug"),description:yn(t,"description"),whenToUse:yn(t,"when_to_use"),tags:Sl(t,"tags").join(", "),body:t.body}}function lF(e,t){const n=Or(e),s={...cf(e),...t};return bn(n,"name",s.name),bn(n,"slug",s.slug),bn(n,"description",s.description||null),bn(n,"when_to_use",s.whenToUse||null),Nl(n,"tags",Cl(s.tags)),n.body=s.body,xa(n)}function hx(e){return{body:Or(e).body}}function hN(e){return hx(e)}function gN(e,t){const n=Or(e);return t.body!==void 0&&(n.body=t.body),xa(n)}function cF(e,t){return gN(e,t)}function Ut(e,t,n){switch(e){case"project":return sF(t,n);case"assignment":return oF(t,n);case"plan":return iF(t,n);case"scratchpad":return aF(t,n);case"playbook":return lF(t,n);case"memory":return gN(t,n);case"resource":return cF(t,n);default:return t}}function ya({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),[N,j]=f.useState(!1),[w,k]=f.useState("edit");f.useEffect(()=>{b(e)},[e]);const E=pF(t,y),C=y!==e,P=fF(t,y),$=C?"Unsaved changes":n==="create"?"Draft":"Saved",T=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:$})]}),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(Gu,{className:"h-4 w-4"}),r.jsx("span",{children:"Back"})]}),T?r.jsxs("button",{type:"button",onClick:()=>j(D=>!D),className:"shell-action",children:[r.jsx(UT,{className:"h-4 w-4"}),r.jsx("span",{children:N?"Structured":"Raw Markdown"})]}):null,r.jsxs("button",{type:"button",onClick:()=>s(y),disabled:i||E.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(Pd,{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,E.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:E.map(D=>r.jsx("li",{children:D},D))})}):null]}),r.jsxs("div",{className:"flex items-center gap-2 md:hidden",children:[r.jsx("button",{type:"button",onClick:()=>k("edit"),className:`shell-action ${w==="edit"?"shell-action--cta":""}`,children:"Edit"}),r.jsxs("button",{type:"button",onClick:()=>k("preview"),className:`shell-action ${w==="preview"?"shell-action--cta":""}`,children:[r.jsx(sv,{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:N?r.jsx("textarea",{value:y,onChange:D=>b(D.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(uF,{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(sv,{className:"h-4 w-4 text-muted-foreground"}),r.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"Preview"})]}),r.jsx(un,{content:P,emptyState:"Write markdown body content to preview it here."})]})})]})]})}function uF({documentType:e,content:t,onChange:n,allowSlugEdit:s}){if(e==="project"){const l=sf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(hl,{children:[r.jsx(At,{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(Ut(e,t,p))},className:"editor-input"})}),r.jsx(At,{label:"Slug",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{value:l.slug,disabled:!s,onChange:c=>n(Ut(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(At,{label:"Tags",children:r.jsx("input",{value:l.tags,onChange:c=>n(Ut(e,t,{tags:c.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})}),r.jsx(dF,{value:l.workspace,onChange:c=>n(Ut(e,t,{workspace:c}))})]}),r.jsx(At,{label:"Project body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ut(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="assignment"){const l=of(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(hl,{children:[r.jsx(At,{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(Ut(e,t,p))},className:"editor-input"})}),r.jsx(At,{label:"Slug",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{value:l.slug,disabled:!s,onChange:c=>n(Ut(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(At,{label:"Status",children:r.jsxs("select",{value:l.status,onChange:c=>n(Ut(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(At,{label:"Priority",children:r.jsxs("select",{value:l.priority,onChange:c=>n(Ut(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(At,{label:"Assignee",children:r.jsx("input",{value:l.assignee,onChange:c=>n(Ut(e,t,{assignee:c.target.value})),placeholder:"Agent name",className:"editor-input"})}),r.jsx(At,{label:"Depends on",className:"md:col-span-2",children:r.jsx("input",{value:l.dependsOn,onChange:c=>n(Ut(e,t,{dependsOn:c.target.value})),placeholder:"Comma-separated assignment slugs",className:"editor-input"})}),r.jsx(At,{label:"Links",className:"md:col-span-2",children:r.jsx("input",{value:l.links,onChange:c=>n(Ut(e,t,{links:c.target.value})),placeholder:"Comma-separated: projectSlug/assignmentSlug",className:"editor-input"})}),r.jsx(At,{label:"Blocked reason",className:"md:col-span-2",children:r.jsx("input",{value:l.blockedReason,onChange:c=>n(Ut(e,t,{blockedReason:c.target.value})),placeholder:"Read-only unless the assignment is actually blocked",className:"editor-input"})}),r.jsx(At,{label:"Tags",className:"md:col-span-2",children:r.jsx("input",{value:l.tags,onChange:c=>n(Ut(e,t,{tags:c.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})})]}),r.jsx(At,{label:"Assignment body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ut(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="plan"){const l=af(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(hl,{children:[r.jsx(At,{label:"Assignment",children:r.jsx("input",{value:l.assignment,disabled:!0,className:"editor-input editor-input-disabled"})}),r.jsx(At,{label:"Plan status",children:r.jsxs("select",{value:l.status,onChange:c=>n(Ut(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(At,{label:"Plan body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ut(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="scratchpad"){const l=lf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsx(hl,{children:r.jsx(At,{label:"Assignment",children:r.jsx("input",{value:l.assignment,disabled:!0,className:"editor-input editor-input-disabled"})})}),r.jsx(At,{label:"Scratchpad body",children:r.jsx("textarea",{value:l.body,onChange:c=>n(Ut(e,t,{body:c.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="memory"||e==="resource"){const l=e==="memory"?hx(t):hN(t),c=e==="memory"?"Memory body":"Resource body";return r.jsxs("div",{className:"space-y-3",children:[r.jsx(At,{label:c,children:r.jsx("textarea",{value:l.body,onChange:u=>n(Ut(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=cf(t);return r.jsxs("div",{className:"space-y-3",children:[r.jsxs(hl,{children:[r.jsx(At,{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(Ut(e,t,u))},className:"editor-input"})}),r.jsx(At,{label:"Slug",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("input",{value:i.slug,disabled:!s,onChange:l=>n(Ut(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(At,{label:"Description",className:"md:col-span-2",children:r.jsx("input",{value:i.description,onChange:l=>n(Ut(e,t,{description:l.target.value})),placeholder:"One-line description of what this playbook does",className:"editor-input"})}),r.jsx(At,{label:"Tags",className:"md:col-span-2",children:r.jsx("input",{value:i.tags,onChange:l=>n(Ut(e,t,{tags:l.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})}),r.jsx(At,{label:"When to use",className:"md:col-span-2",children:r.jsx("input",{value:i.whenToUse,onChange:l=>n(Ut(e,t,{whenToUse:l.target.value})),placeholder:"Describe when agents should apply this playbook",className:"editor-input"})})]}),r.jsx(At,{label:"Playbook rules",children:r.jsx("textarea",{value:i.body,onChange:l=>n(Ut(e,t,{body:l.target.value})),className:"editor-textarea",spellCheck:!1})})]})}function hl({children:e}){return r.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:e})}function At({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 dF({value:e,onChange:t}){const{data:n}=Rd(),s=(n==null?void 0:n.workspaces)??[];return r.jsx(At,{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 fF(e,t){switch(e){case"project":return sf(t).body;case"assignment":return of(t).body;case"plan":return af(t).body;case"scratchpad":return lf(t).body;case"playbook":return cf(t).body;case"memory":return hx(t).body;case"resource":return hN(t).body}}function pF(e,t){switch(e){case"project":{const n=sf(t);return[n.title.trim()?null:"Project title is required.",n.slug.trim()?null:"Project slug is required.",n.slug.trim()&&!_u(n.slug)?"Project slug must be lowercase letters, numbers, and hyphens only.":null].filter(s=>!!s)}case"assignment":{const n=of(t);return[n.title.trim()?null:"Assignment title is required.",n.slug.trim()?null:"Assignment slug is required.",n.slug.trim()&&!_u(n.slug)?"Assignment slug must be lowercase letters, numbers, and hyphens only.":null].filter(s=>!!s)}case"plan":return af(t).assignment.trim()?[]:["Plan assignment is required."];case"scratchpad":return lf(t).assignment.trim()?[]:["Scratchpad assignment is required."];case"playbook":{const n=cf(t);return[n.name.trim()?null:"Playbook name is required.",n.slug.trim()?null:"Playbook slug is required.",n.slug.trim()&&!_u(n.slug)?"Playbook slug must be lowercase letters, numbers, and hyphens only.":null].filter(s=>!!s)}case"memory":case"resource":return[]}}function tj(){const e=Dt(),{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
|
|
546
|
+
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})}),N=await b.json();if(!b.ok){h(N.error||`HTTP ${b.status}`),p(!1);return}e(`${n}/projects/${N.slug}`)}catch(b){h(b.message),p(!1);return}p(!1)}return l?r.jsx(gt,{label:"Loading project template…"}):m&&!s?r.jsx(jt,{error:m}):r.jsx(ya,{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 nj(){const{slug:e}=Lt(),t=on(),n=Dt(),[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})}),N=await b.json();if(!b.ok){h(N.error||`HTTP ${b.status}`),p(!1);return}n(`${t}/projects/${e}/assignments/${N.slug}`)}catch(b){h(b.message),p(!1);return}p(!1)}return l?r.jsx(gt,{label:"Loading assignment template…"}):m&&!s?r.jsx(jt,{error:m}):r.jsx(ya,{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 rj(){const{workspace:e}=Lt(),t=on(),n=Dt(),[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 N=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:y})}),j=await N.json();if(!N.ok){h(j.error||`HTTP ${N.status}`),p(!1);return}const w=(b=j==null?void 0:j.assignment)==null?void 0:b.id;if(!w){h("Server did not return the new assignment id."),p(!1);return}n(`/assignments/${w}`)}catch(N){h(N.message),p(!1);return}p(!1)}return l?r.jsx(gt,{label:"Loading assignment template…"}):m&&!s?r.jsx(jt,{error:m}):r.jsx(ya,{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 ba({loadUrl:e,saveUrl:t,redirectTo:n,title:s,description:i,documentType:l,helpTitle:c,helpBody:u}){const p=Dt(),{data:m,loading:h,error:x}=E0(e),[y,b]=f.useState(!1),[N,j]=f.useState(null);async function w(k){b(!0),j(null);try{const E=await fetch(t,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:k})}),C=await E.json();if(!E.ok){j(C.error||`HTTP ${E.status}`),b(!1);return}p(n)}catch(E){j(E.message),b(!1);return}b(!1)}return h?r.jsx(gt,{label:`Loading ${s.toLowerCase()}…`}):x||!m?r.jsx(jt,{error:x||`${s} is unavailable.`}):r.jsx(ya,{initialContent:m.content,documentType:l,onSave:w,saving:y,error:N,title:s,description:i,onCancel:()=>p(n),helpTitle:c,helpBody:u})}function sj(){const{slug:e}=Lt(),t=on(),n=e??"";return r.jsx(ba,{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 Hm(){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(ba,{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 Wm(){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(ba,{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 Km(){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(ba,{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 xN({loadUrl:e,saveUrl:t,redirectTo:n,title:s,description:i,helpTitle:l,helpBody:c}){const u=Dt(),{data:p,loading:m,error:h}=E0(e),[x,y]=f.useState(""),[b,N]=f.useState(""),[j,w]=f.useState(!1),[k,E]=f.useState(null);async function C(){w(!0),E(null);try{const P=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:x,body:b})}),$=await P.json();if(!P.ok){E($.error||`HTTP ${P.status}`),w(!1);return}u(n)}catch(P){E(P.message),w(!1);return}w(!1)}return m?r.jsx(gt,{label:`Loading ${s.toLowerCase()}…`}):h||!p?r.jsx(jt,{error:h||`${s} is unavailable.`}):r.jsxs("div",{className:"space-y-4",children:[r.jsx(We,{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:P=>y(P.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:P=>N(P.target.value),className:"editor-textarea",spellCheck:!1})]}),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,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:C,disabled:j||!b.trim(),className:"shell-action shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:j?"Appending…":"Append Entry"})]})]})}),r.jsx(We,{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(xN,{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 Gm(){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(xN,{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 oj(){const{workspace:e}=Lt(),{data:t}=Vo(),{data:n,loading:s,error:i,refetch:l}=og(),[c,u]=f.useState(!1),[p,m]=f.useState(""),[h,x]=f.useState(!1),y=Wn();f.useEffect(()=>{const E=y.hash.match(/^#server-(.+)/);if(!E)return;const C=decodeURIComponent(E[1]),P=document.querySelector(`[data-server-name="${window.CSS.escape(C)}"]`);if(!P)return;P.scrollIntoView({block:"nearest"}),P.classList.add("ring-2","ring-primary/60");const $=window.setTimeout(()=>P.classList.remove("ring-2","ring-primary/60"),1500);return()=>window.clearTimeout($)},[y.hash,n]);const b=(()=>{if(!e||!n)return(n==null?void 0:n.sessions)??[];if(!t)return[];const E=new Set(t.filter(C=>e==="_ungrouped"?C.workspace===null:C.workspace===e).map(C=>C.slug));return n.sessions.filter(C=>C.windows.some(P=>P.panes.some($=>$.assignment&&$.assignment.project!==null&&E.has($.assignment.project))))})();async function N(E){if(E.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 j(){x(!0);try{await fetch("/api/servers/refresh",{method:"POST"}),l()}finally{x(!1)}}async function w(E){await fetch(`/api/servers/${encodeURIComponent(E)}`,{method:"DELETE"}),l()}async function k(E){await fetch(`/api/servers/${encodeURIComponent(E)}/refresh`,{method:"POST"}),l()}return s?r.jsx(gt,{label:"Loading servers…"}):i?r.jsx(jt,{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:N,className:"flex items-center gap-2",children:[r.jsx("input",{type:"text",value:p,onChange:E=>m(E.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(tn,{className:"h-3.5 w-3.5"}),"Track Session"]}),r.jsxs("button",{className:"shell-action",onClick:j,disabled:h,children:[r.jsx(n0,{className:`h-3.5 w-3.5 ${h?"animate-spin":""}`}),"Refresh All"]})]}),b.length===0?r.jsx(Nt,{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(E=>r.jsx(mF,{session:E,onRefresh:()=>k(E.name),onRemove:()=>w(E.name),onRefetch:l},E.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(Vi,{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 mF({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(Qh,{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(n0,{className:"h-3.5 w-3.5"})}),r.jsx("button",{className:"shell-action",onClick:n,title:"Remove",children:r.jsx(Kn,{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(hF,{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(sP,{className:"h-4 w-4"}),r.jsx("span",{children:e.kind==="process"?"Process no longer running":"Session no longer exists"})]})]})}function hF({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(Yh,{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(ua,{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(YT,{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 yN(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 gF(e,t){const n=Date.parse(e),s=Math.floor((n-t)/1e3);return Number.isNaN(s)?"–":s<=0?"expired":yN(s)}function xF(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 yF(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function ij(){const{data:e,loading:t,error:n,refetch:s}=T0(),[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(gt,{label:"Loading inventories…"});if(n)return r.jsx(jt,{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(Nt,{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(bF,{detail:x,now:i,onForceRelease:y=>u({slug:x.inventory.slug,lease:y})},x.inventory.slug))}),r.jsx(Xo,{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 bF({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=",yN(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(vF,{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(wF,{lease:p,now:t,onForceRelease:()=>n(p)},p.lease_id))})]})]})}function vF({member:e}){const t=yF(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 ${xF(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 wF({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(_T,{className:"h-3 w-3"}),gF(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(iP,{className:"h-3 w-3"}),"Force release"]})]})]})}function jF(){return new Date(Date.now()-720*60*60*1e3).toISOString().slice(0,10)}function kF(){return new Date().toISOString().slice(0,10)}function aj(){const[e,t]=f.useState(jF()),[n,s]=f.useState(kF()),[i,l]=f.useState(""),[c,u]=f.useState("project"),[p,m]=f.useState(null),[h,x]=f.useState(!0),[y,b]=f.useState(null),[N,j]=f.useState([]);return f.useEffect(()=>{const w=new AbortController;x(!0),b(null);const k=new URLSearchParams({since:e,until:n,groupBy:c});return i&&k.set("project",i),fetch(`/api/usage?${k.toString()}`,{signal:w.signal}).then(E=>{if(!E.ok)throw new Error(`HTTP ${E.status}`);return E.json()}).then(E=>{if(m(E),!i){const C=new Set;for(const P of E.daily)P.project_slug&&C.add(P.project_slug);j([...C].sort())}x(!1)}).catch(E=>{E instanceof Error&&E.name==="AbortError"||(b(E instanceof Error?E.message:String(E)),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"}),N.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,k)=>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})]},k))})]})]}),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,k)=>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)})]},k))})]})]})]})]})}function lj(){const{workspace:e}=Lt(),{data:t}=Vo(),{data:n,loading:s,error:i}=P0(),[l,c]=f.useState(""),[u,p]=f.useState(""),[m,h]=f.useState(""),[x,y]=f.useState("started_desc"),[b,N]=f.useState(0),[j,w]=f.useState(new Set),[k,E]=f.useState(!1),[C,P]=f.useState(null),[$,T]=f.useState(null),D=(n==null?void 0:n.sessions.some(F=>F.status==="active"))??!1;f.useEffect(()=>{if(!D)return;const F=window.setInterval(()=>N(H=>H+1),3e4);return()=>window.clearInterval(F)},[D]),f.useEffect(()=>{w(F=>{if(F.size===0)return F;const H=new Set((n==null?void 0:n.sessions.map(le=>le.sessionId))??[]),X=new Set([...F].filter(le=>H.has(le)));return X.size===F.size?F:X})},[n]);const _=f.useMemo(()=>{if(!n)return[];if(e&&!t)return[];const F=l.trim().toLowerCase();return[...n.sessions.filter(X=>{var K;if(e&&t){const A=((K=t.find(B=>B.slug===X.projectSlug))==null?void 0:K.workspace)??null;if(e==="_ungrouped"){if(A!==null)return!1}else if(A!==e)return!1}const le=NF(X.started);return u&&(!le||le<u)||m&&(!le||le>m)?!1:F?[X.projectSlug??"",X.assignmentSlug??"",X.agent,X.sessionId,X.path,X.description??"",X.transcriptPath??""].join(" ").toLowerCase().includes(F):!0})].sort((X,le)=>CF(X,le,x))},[n,l,x,u,m,b,e,t]);function Y(F){w(H=>{const X=new Set(H);return X.has(F)?X.delete(F):X.add(F),X})}function Q(){j.size===_.length&&_.length>0?w(new Set):w(new Set(_.map(F=>F.sessionId)))}async function L(F){P(null),E(!0);try{const H=await fetch("/api/agent-sessions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionIds:F})}),X=await H.json().catch(()=>null);if(!H.ok)throw new Error((X==null?void 0:X.error)||`HTTP ${H.status}`);w(le=>new Set([...le].filter(O=>!F.includes(O)))),T(null)}catch(H){P(H.message)}finally{E(!1)}}async function W(F){try{const H=await fetch(`/api/agent-sessions/${encodeURIComponent(F)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})});if(!H.ok){const X=await H.json().catch(()=>null);P((X==null?void 0:X.error)||`Failed to mark session stopped: HTTP ${H.status}`)}}catch(H){P(H.message)}}if(s)return r.jsx(gt,{label:"Loading agent sessions..."});if(i)return r.jsx(jt,{error:i});if(!n)return null;const te=n.sessions.length>0;return r.jsxs(r.Fragment,{children:[r.jsxs(_g,{children:[r.jsx(Jd,{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:F=>p(F.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:F=>h(F.target.value),className:"editor-input min-w-[150px]"})]}),r.jsxs("select",{value:x,onChange:F=>y(F.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"})]})]}),C?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:C}):null,j.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:[j.size," session",j.size!==1?"s":""," selected"]}),r.jsxs("button",{className:"shell-action text-destructive",onClick:()=>T({sessionIds:[...j],title:`Delete ${j.size} selected session${j.size===1?"":"s"}?`,description:"This removes the selected agent session records from the dashboard. This cannot be undone.",confirmLabel:j.size===1?"Delete Session":"Delete Sessions"}),disabled:k,children:[r.jsx(Kn,{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"})]}),te?_.length===0?r.jsx(Nt,{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:Q,className:"text-muted-foreground hover:text-foreground",children:j.size===_.length&&_.length>0?r.jsx(Ar,{className:"h-4 w-4"}):r.jsx(Zh,{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:_.map(F=>r.jsx(SF,{session:F,selected:j.has(F.sessionId),onToggle:()=>Y(F.sessionId),onDelete:()=>T({sessionIds:[F.sessionId],title:`Delete session ${F.sessionId.slice(0,8)}...?`,description:`Remove this ${F.agent} session record${F.assignmentSlug?` for ${F.assignmentSlug}`:""}. This cannot be undone.`,confirmLabel:"Delete Session"}),onMarkStopped:W},F.sessionId))})]})}):r.jsx(Nt,{title:"No agent sessions",description:"No agent sessions have been registered yet. Use /grab-assignment or syntaur track-session to register one."}),r.jsx(Xo,{open:$!==null,title:($==null?void 0:$.title)??"Delete session?",description:($==null?void 0:$.description)??"",confirmLabel:($==null?void 0:$.confirmLabel)??"Delete",destructive:!0,loading:k,onOpenChange:F=>{F||T(null)},onConfirm:async()=>{$&&await L($.sessionIds)}})]})}function SF({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(Zh,{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:gn(e.projectSlug),children:gn(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:gn(e.assignmentSlug),children:gn(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:Lr(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(eN,{session:e,onMarkStopped:i}),r.jsx("button",{onClick:s,className:"text-muted-foreground hover:text-destructive",title:"Delete session",children:r.jsx(Kn,{className:"h-3.5 w-3.5"})})]})})]})}function NF(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 Tu(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 CF(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 Tu(e)-Tu(t);case"duration_desc":return Tu(t)-Tu(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 EF(){const{data:e,loading:t,error:n,refetch:s}=R0(),[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 j=i.toLowerCase();return e.playbooks.filter(w=>w.name.toLowerCase().includes(j)||w.description.toLowerCase().includes(j)||w.slug.toLowerCase().includes(j)||w.tags.some(k=>k.toLowerCase().includes(j)))},[e,i]);async function b(j,w,k){if(j.preventDefault(),j.stopPropagation(),!c){u(w);try{const E=k?"disable":"enable",C=await fetch(`/api/playbooks/${encodeURIComponent(w)}/${E}`,{method:"POST"});if(!C.ok){const P=await C.json().catch(()=>({}));throw new Error(P.error||`Failed to ${E} playbook`)}s()}catch(E){console.error(E),alert(E instanceof Error?E.message:"Failed to update playbook")}finally{u(null)}}}async function N(){if(p){x(p.slug);try{const j=await fetch(`/api/playbooks/${encodeURIComponent(p.slug)}`,{method:"DELETE"});if(!j.ok){const w=await j.json().catch(()=>({}));throw new Error(w.error||"Failed to delete playbook")}m(null),s()}catch(j){console.error(j),alert(j instanceof Error?j.message:"Failed to delete playbook")}finally{x(null)}}}return t?r.jsx(gt,{label:"Loading playbooks..."}):n?r.jsx(jt,{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(lo,{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:j=>l(j.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(tn,{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(Zj,{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(Nt,{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(tn,{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(j=>{const w=c===j.slug,k=[{key:"delete",label:"Delete",icon:Kn,destructive:!0,onSelect:()=>m({slug:j.slug,name:j.name})}];return r.jsxs("div",{className:`surface-panel relative flex flex-col gap-2 p-4 transition hover:border-foreground/20 ${j.enabled?"":"opacity-75"}`,children:[r.jsx("div",{className:"absolute right-3 top-3 z-10",children:r.jsx(Og,{items:k})}),r.jsxs(Ce,{to:`/playbooks/${j.slug}`,className:"group flex flex-col gap-2",children:[r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(Jj,{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:j.name}),j.description?r.jsx("p",{className:"mt-1 text-xs leading-5 text-muted-foreground line-clamp-2",children:j.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:[j.tags.slice(0,3).map(E=>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(r0,{className:"h-2.5 w-2.5"}),E]},E)),j.tags.length>3?r.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["+",j.tags.length-3]}):null]})})]}),r.jsx("button",{type:"button",role:"switch","aria-checked":j.enabled,"aria-label":j.enabled?"Disable playbook":"Enable playbook",onClick:E=>b(E,j.slug,j.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 ${j.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 ${j.enabled?"translate-x-[18px] bg-background":"translate-x-[2px] bg-foreground/70"}`})})]},j.slug)})}),r.jsx(Xo,{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:N,onOpenChange:j=>{j||m(null)}})]})}function TF(){const{slug:e}=Lt(),t=Dt(),{data:n,loading:s,error:i,refetch:l}=iR(e),[c,u]=f.useState(!1),[p,m]=f.useState(!1),[h,x]=f.useState(!1),[y,b]=f.useState(!1),[N,j]=f.useState(""),[w,k]=f.useState(!1),[E,C]=f.useState(null),P=e==="manifest";f.useEffect(()=>{y&&(j(e??""),C(null))},[y,e]);const $=mr(N),T=$.length>0&&_u($)&&$!=="manifest",D=$!==e;async function _(){if(!(!e||!T||!D)){k(!0),C(null);try{const L=await fetch(`/api/playbooks/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({newSlug:$})});if(!L.ok){const W=await L.json().catch(()=>({}));throw new Error(W.error||"Failed to rename playbook")}b(!1),t(`/playbooks/${$}`)}catch(L){C(L instanceof Error?L.message:"Failed to rename playbook")}finally{k(!1)}}}async function Y(){if(e){m(!0);try{(await fetch(`/api/playbooks/${e}`,{method:"DELETE"})).ok&&t("/playbooks")}finally{m(!1)}}}async function Q(){if(!(!e||!n)){x(!0);try{const L=n.enabled?"disable":"enable",W=await fetch(`/api/playbooks/${encodeURIComponent(e)}/${L}`,{method:"POST"});if(!W.ok){const te=await W.json().catch(()=>({}));throw new Error(te.error||`Failed to ${L} playbook`)}l()}catch(L){console.error(L),alert(L instanceof Error?L.message:"Failed to update playbook")}finally{x(!1)}}}return s?r.jsx(gt,{label:"Loading playbook..."}):i?r.jsx(jt,{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:P?"Playbook Manifest":n.name}),P?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]}),!P&&n.description?r.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.description}):null,P?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,!P&&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 ",Lr(n.created)]}),r.jsxs("span",{children:["Updated ",Lr(n.updated)]})]}),n.tags.length>0?r.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:n.tags.map(L=>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(r0,{className:"h-3 w-3"}),L]},L))}):null]}),P?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:Q,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(da,{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(lP,{className:"h-3 w-3"}),"Rename"]}),c?r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:Y,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(Kn,{className:"h-3 w-3"}),"Delete"]})]})]}),r.jsx("div",{className:"surface-panel p-4",children:r.jsx(un,{content:n.body})}),r.jsx(ir,{open:y,onOpenChange:L=>w?void 0:b(L),children:r.jsxs(qn,{children:[r.jsxs(Xr,{children:[r.jsx(Gn,{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:N,onChange:L=>j(L.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"}),N&&$!==N?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:$||"—"})]}):null,N&&!T?r.jsx("p",{className:"text-xs text-destructive",children:'Slugs must be lowercase, hyphen-separated, with no special characters, and cannot be "manifest".'}):null]}),E?r.jsx("p",{className:"text-sm text-destructive",role:"alert",children:E}):null,r.jsxs(As,{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:_,disabled:w||!T||!D,className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:w?"Renaming…":"Rename"})]})]})})]}):null}function PF(){const e=Dt(),[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(gt,{label:"Loading playbook template..."}):u&&!t?r.jsx(jt,{error:u}):r.jsx(ya,{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 RF(){const{slug:e}=Lt(),t=Dt(),[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(gt,{label:"Loading playbook..."}):p&&!n?r.jsx(jt,{error:p}):r.jsx(ya,{initialContent:n||"",documentType:"playbook",mode:"edit",onSave:h,saving:c,error:p,title:"Edit Playbook",onCancel:()=>t(`/playbooks/${e}`)})}function AF(){const{data:e,loading:t,error:n}=aR(),[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]),N=f.useMemo(()=>Array.from(new Set(x.map(w=>w.source).filter(Boolean))).sort(),[x]),j=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 k=s.toLowerCase();if(!w.name.toLowerCase().includes(k)&&!w.slug.toLowerCase().includes(k)&&!w.projectTitle.toLowerCase().includes(k))return!1}return!0}),[x,s,l,u,m]);return t?r.jsx(gt,{label:"Loading memories…"}):n?r.jsx(jt,{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(lo,{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"}),N.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(tn,{className:"h-4 w-4"}),"New Memory"]})]}),j.length===0?r.jsx(Nt,{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(tn,{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:j.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:An(w.updated)})]},`${w.projectSlug}/${w.slug}`))})]})})]})}function DF(){const{slug:e,itemSlug:t}=Lt(),n=Dt(),{data:s,loading:i,error:l}=lR(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(gt,{label:"Loading memory…"}):l?r.jsx(jt,{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 ",Lr(s.created)]}),r.jsxs("span",{children:["Updated ",Lr(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(da,{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(Kn,{className:"h-3 w-3"}),"Delete"]})]})]}),r.jsx("div",{className:"surface-panel p-4",children:r.jsx(un,{content:s.body})})]}):null}function LF(){const e=Dt(),[t]=ps(),n=t.get("project"),{data:s,loading:i,error:l}=Vo(),[c,u]=f.useState(n??""),[p,m]=f.useState(""),[h,x]=f.useState(""),[y,b]=f.useState(!1),[N,j]=f.useState(null);f.useEffect(()=>{!c&&s&&s.length>0&&u(n??s[0].slug)},[s,n,c]);async function w(k){if(k.preventDefault(),!(!c||!p.trim())){b(!0),j(null);try{const E=await fetch(`/api/projects/${c}/memories`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),body:h||void 0})}),C=await E.json();if(!E.ok){j(C.error||`HTTP ${E.status}`),b(!1);return}e(`/projects/${C.projectSlug}/memories/${C.slug}`)}catch(E){j(E.message),b(!1)}}}return i?r.jsx(gt,{label:"Loading projects…"}):l?r.jsx(jt,{error:l}):!s||s.length===0?r.jsx(jt,{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:k=>u(k.target.value),className:"editor-input",required:!0,children:s.map(k=>r.jsx("option",{value:k.slug,children:k.title},k.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:k=>m(k.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:k=>x(k.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"})]}),N?r.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:N}):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 $F(){const{slug:e,itemSlug:t}=Lt();return r.jsx(ba,{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 OF(){const{data:e,loading:t,error:n}=cR(),[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]),N=f.useMemo(()=>Array.from(new Set(x.map(w=>w.source).filter(Boolean))).sort(),[x]),j=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 k=s.toLowerCase();if(!w.name.toLowerCase().includes(k)&&!w.slug.toLowerCase().includes(k)&&!w.projectTitle.toLowerCase().includes(k))return!1}return!0}),[x,s,l,u,m]);return t?r.jsx(gt,{label:"Loading resources…"}):n?r.jsx(jt,{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(lo,{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"}),N.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(tn,{className:"h-4 w-4"}),"New Resource"]})]}),j.length===0?r.jsx(Nt,{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(tn,{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:j.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:An(w.updated)})]},`${w.projectSlug}/${w.slug}`))})]})})]})}function IF(){const{slug:e,itemSlug:t}=Lt(),n=Dt(),{data:s,loading:i,error:l}=uR(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(gt,{label:"Loading resource…"}):l?r.jsx(jt,{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 ",Lr(s.created)]}),r.jsxs("span",{children:["Updated ",Lr(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(da,{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(Kn,{className:"h-3 w-3"}),"Delete"]})]})]}),r.jsx("div",{className:"surface-panel p-4",children:r.jsx(un,{content:s.body})})]}):null}function _F(){const e=Dt(),[t]=ps(),n=t.get("project"),{data:s,loading:i,error:l}=Vo(),[c,u]=f.useState(n??""),[p,m]=f.useState(""),[h,x]=f.useState(""),[y,b]=f.useState(!1),[N,j]=f.useState(null);f.useEffect(()=>{!c&&s&&s.length>0&&u(n??s[0].slug)},[s,n,c]);async function w(k){if(k.preventDefault(),!(!c||!p.trim())){b(!0),j(null);try{const E=await fetch(`/api/projects/${c}/resources`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),body:h||void 0})}),C=await E.json();if(!E.ok){j(C.error||`HTTP ${E.status}`),b(!1);return}e(`/projects/${C.projectSlug}/resources/${C.slug}`)}catch(E){j(E.message),b(!1)}}}return i?r.jsx(gt,{label:"Loading projects…"}):l?r.jsx(jt,{error:l}):!s||s.length===0?r.jsx(jt,{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:k=>u(k.target.value),className:"editor-input",required:!0,children:s.map(k=>r.jsx("option",{value:k.slug,children:k.title},k.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:k=>m(k.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:k=>x(k.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"})]}),N?r.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:N}):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 MF(){const{slug:e,itemSlug:t}=Lt();return r.jsx(ba,{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 FF(){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 uf=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function va(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function gx(e){return"nodeType"in e}function lr(e){var t,n;return e?va(e)?e:gx(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function xx(e){const{Document:t}=lr(e);return e instanceof t}function ic(e){return va(e)?!1:e instanceof lr(e).HTMLElement}function bN(e){return e instanceof lr(e).SVGElement}function wa(e){return e?va(e)?e.document:gx(e)?xx(e)?e:ic(e)||bN(e)?e.ownerDocument:document:document:document}const fs=uf?f.useLayoutEffect:f.useEffect;function yx(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 zF(){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 Hl(e,t){t===void 0&&(t=[e]);const n=f.useRef(e);return fs(()=>{n.current!==e&&(n.current=e)},t),n}function ac(e,t){const n=f.useRef();return f.useMemo(()=>{const s=e(n.current);return n.current=s,s},[...t])}function md(e){const t=yx(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 Dh(e){const t=f.useRef();return f.useEffect(()=>{t.current=e},[e]),t.current}let Ym={};function lc(e,t){return f.useMemo(()=>{if(t)return t;const n=Ym[e]==null?0:Ym[e]+1;return Ym[e]=n,e+"-"+n},[e,t])}function vN(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 ta=vN(1),Wl=vN(-1);function BF(e){return"clientX"in e&&"clientY"in e}function bx(e){if(!e)return!1;const{KeyboardEvent:t}=lr(e.target);return t&&e instanceof t}function UF(e){if(!e)return!1;const{TouchEvent:t}=lr(e.target);return t&&e instanceof t}function Lh(e){if(UF(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 BF(e)?{x:e.clientX,y:e.clientY}:null}const aa=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[aa.Translate.toString(e),aa.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:s}=e;return t+" "+n+"ms "+s}}}),cj="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function VF(e){return e.matches(cj)?e:e.querySelector(cj)}const HF={display:"none"};function WF(e){let{id:t,value:n}=e;return en.createElement("div",{id:t,style:HF},n)}function KF(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 en.createElement("div",{id:t,style:i,role:"status","aria-live":s,"aria-atomic":!0},n)}function qF(){const[e,t]=f.useState("");return{announce:f.useCallback(s=>{s!=null&&t(s)},[]),announcement:e}}const wN=f.createContext(null);function GF(e){const t=f.useContext(wN);f.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function YF(){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 JF={draggable:`
|
|
547
|
+
To pick up a draggable item, press the space bar.
|
|
548
|
+
While dragging, use the arrow keys to move the item.
|
|
549
|
+
Press space again to drop the item in its new position, or press escape to cancel.
|
|
550
|
+
`},XF={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 QF(e){let{announcements:t=XF,container:n,hiddenTextDescribedById:s,screenReaderInstructions:i=JF}=e;const{announce:l,announcement:c}=qF(),u=lc("DndLiveRegion"),[p,m]=f.useState(!1);if(f.useEffect(()=>{m(!0)},[]),GF(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=en.createElement(en.Fragment,null,en.createElement(WF,{id:s,value:i.draggable}),en.createElement(KF,{id:u,announcement:c}));return n?Cs.createPortal(h,n):h}var xn;(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"})(xn||(xn={}));function hd(){}function gd(e,t){return f.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function jN(){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 Gr=Object.freeze({x:0,y:0});function kN(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function SN(e,t){let{data:{value:n}}=e,{data:{value:s}}=t;return n-s}function ZF(e,t){let{data:{value:n}}=e,{data:{value:s}}=t;return s-n}function uj(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 NN(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function dj(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 CN=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:s}=e;const i=dj(t,t.left,t.top),l=[];for(const c of s){const{id:u}=c,p=n.get(u);if(p){const m=kN(dj(p),i);l.push({id:u,data:{droppableContainer:c,value:m}})}}return l.sort(SN)},e6=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:s}=e;const i=uj(t),l=[];for(const c of s){const{id:u}=c,p=n.get(u);if(p){const m=uj(p),h=i.reduce((y,b,N)=>y+kN(m[N],b),0),x=Number((h/4).toFixed(4));l.push({id:u,data:{droppableContainer:c,value:x}})}}return l.sort(SN)};function t6(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 n6=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=t6(u,t);p>0&&i.push({id:c,data:{droppableContainer:l,value:p}})}}return i.sort(ZF)};function r6(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function EN(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Gr}function s6(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 o6=s6(1);function i6(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 a6(e,t,n){const s=i6(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 l6={ignoreTransform:!1};function ja(e,t){t===void 0&&(t=l6);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:m,transformOrigin:h}=lr(e).getComputedStyle(e);m&&(n=a6(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 fj(e){return ja(e,{ignoreTransform:!0})}function c6(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function u6(e,t){return t===void 0&&(t=lr(e).getComputedStyle(e)),t.position==="fixed"}function d6(e,t){t===void 0&&(t=lr(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 df(e,t){const n=[];function s(i){if(t!=null&&n.length>=t||!i)return n;if(xx(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!ic(i)||bN(i)||n.includes(i))return n;const l=lr(e).getComputedStyle(i);return i!==e&&d6(i,l)&&n.push(i),u6(i,l)?n:s(i.parentNode)}return e?s(e):n}function TN(e){const[t]=df(e,1);return t??null}function Jm(e){return!uf||!e?null:va(e)?e:gx(e)?xx(e)||e===wa(e).scrollingElement?window:ic(e)?e:null:null}function PN(e){return va(e)?e.scrollX:e.scrollLeft}function RN(e){return va(e)?e.scrollY:e.scrollTop}function $h(e){return{x:PN(e),y:RN(e)}}var Nn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(Nn||(Nn={}));function AN(e){return!uf||!e?!1:e===document.scrollingElement}function DN(e){const t={x:0,y:0},n=AN(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 f6={x:.2,y:.2};function p6(e,t,n,s,i){let{top:l,left:c,right:u,bottom:p}=n;s===void 0&&(s=10),i===void 0&&(i=f6);const{isTop:m,isBottom:h,isLeft:x,isRight:y}=DN(e),b={x:0,y:0},N={x:0,y:0},j={height:t.height*i.y,width:t.width*i.x};return!m&&l<=t.top+j.height?(b.y=Nn.Backward,N.y=s*Math.abs((t.top+j.height-l)/j.height)):!h&&p>=t.bottom-j.height&&(b.y=Nn.Forward,N.y=s*Math.abs((t.bottom-j.height-p)/j.height)),!y&&u>=t.right-j.width?(b.x=Nn.Forward,N.x=s*Math.abs((t.right-j.width-u)/j.width)):!x&&c<=t.left+j.width&&(b.x=Nn.Backward,N.x=s*Math.abs((t.left+j.width-c)/j.width)),{direction:b,speed:N}}function m6(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 LN(e){return e.reduce((t,n)=>ta(t,$h(n)),Gr)}function h6(e){return e.reduce((t,n)=>t+PN(n),0)}function g6(e){return e.reduce((t,n)=>t+RN(n),0)}function x6(e,t){if(t===void 0&&(t=ja),!e)return;const{top:n,left:s,bottom:i,right:l}=t(e);TN(e)&&(i<=0||l<=0||n>=window.innerHeight||s>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const y6=[["x",["left","right"],h6],["y",["top","bottom"],g6]];class vx{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=df(n),i=LN(s);this.rect={...t},this.width=t.width,this.height=t.height;for(const[l,c,u]of y6)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 b6(e){const{EventTarget:t}=lr(e);return e instanceof t?e:wa(e)}function Xm(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 pj(e){e.preventDefault()}function v6(e){e.stopPropagation()}var yt;(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"})(yt||(yt={}));const $N={start:[yt.Space,yt.Enter],cancel:[yt.Esc],end:[yt.Space,yt.Enter,yt.Tab]},w6=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case yt.Right:return{...n,x:n.x+25};case yt.Left:return{...n,x:n.x-25};case yt.Down:return{...n,y:n.y+25};case yt.Up:return{...n,y:n.y-25}}};class ff{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(wa(n)),this.windowListeners=new El(lr(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&&x6(s),n(Gr)}handleKeyDown(t){if(bx(t)){const{active:n,context:s,options:i}=this.props,{keyboardCodes:l=$N,coordinateGetter:c=w6,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}:Gr;this.referenceCoordinates||(this.referenceCoordinates=h);const x=c(t,{active:n,context:s.current,currentCoordinates:h});if(x){const y=Wl(x,h),b={x:0,y:0},{scrollableAncestors:N}=s.current;for(const j of N){const w=t.code,{isTop:k,isRight:E,isLeft:C,isBottom:P,maxScroll:$,minScroll:T}=DN(j),D=m6(j),_={x:Math.min(w===yt.Right?D.right-D.width/2:D.right,Math.max(w===yt.Right?D.left:D.left+D.width/2,x.x)),y:Math.min(w===yt.Down?D.bottom-D.height/2:D.bottom,Math.max(w===yt.Down?D.top:D.top+D.height/2,x.y))},Y=w===yt.Right&&!E||w===yt.Left&&!C,Q=w===yt.Down&&!P||w===yt.Up&&!k;if(Y&&_.x!==x.x){const L=j.scrollLeft+y.x,W=w===yt.Right&&L<=$.x||w===yt.Left&&L>=T.x;if(W&&!y.y){j.scrollTo({left:L,behavior:u});return}W?b.x=j.scrollLeft-L:b.x=w===yt.Right?j.scrollLeft-$.x:j.scrollLeft-T.x,b.x&&j.scrollBy({left:-b.x,behavior:u});break}else if(Q&&_.y!==x.y){const L=j.scrollTop+y.y,W=w===yt.Down&&L<=$.y||w===yt.Up&&L>=T.y;if(W&&!y.x){j.scrollTo({top:L,behavior:u});return}W?b.y=j.scrollTop-L:b.y=w===yt.Down?j.scrollTop-$.y:j.scrollTop-T.y,b.y&&j.scrollBy({top:-b.y,behavior:u});break}}this.handleMove(t,ta(Wl(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()}}ff.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:s=$N,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 mj(e){return!!(e&&"distance"in e)}function hj(e){return!!(e&&"delay"in e)}class wx{constructor(t,n,s){var i;s===void 0&&(s=b6(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=wa(c),this.documentListeners=new El(this.document),this.listeners=new El(s),this.windowListeners=new El(lr(c)),this.initialCoordinates=(i=Lh(l))!=null?i:Gr,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,pj),this.windowListeners.add(Er.VisibilityChange,this.handleCancel),this.windowListeners.add(Er.ContextMenu,pj),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(hj(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(mj(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,v6,{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=Lh(t))!=null?n:Gr,m=Wl(i,p);if(!s&&u){if(mj(u)){if(u.tolerance!=null&&Xm(m,u.tolerance))return this.handleCancel();if(Xm(m,u.distance))return this.handleStart()}if(hj(u)&&Xm(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===yt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const j6={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class pf extends wx{constructor(t){const{event:n}=t,s=wa(n.target);super(t,j6,s)}}pf.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 k6={move:{name:"mousemove"},end:{name:"mouseup"}};var Oh;(function(e){e[e.RightClick=2]="RightClick"})(Oh||(Oh={}));class S6 extends wx{constructor(t){super(t,k6,wa(t.event.target))}}S6.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:s}=t;return n.button===Oh.RightClick?!1:(s==null||s({event:n}),!0)}}];const Qm={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class N6 extends wx{constructor(t){super(t,Qm)}static setup(){return window.addEventListener(Qm.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Qm.move.name,t)};function t(){}}}N6.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 C6(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=T6({delta:x,disabled:!l}),[N,j]=zF(),w=f.useRef({x:0,y:0}),k=f.useRef({x:0,y:0}),E=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]),C=f.useRef(null),P=f.useCallback(()=>{const T=C.current;if(!T)return;const D=w.current.x*k.current.x,_=w.current.y*k.current.y;T.scrollBy(D,_)},[]),$=f.useMemo(()=>u===xd.TreeOrder?[...m].reverse():m,[u,m]);f.useEffect(()=>{if(!l||!m.length||!E){j();return}for(const T of $){if((s==null?void 0:s(T))===!1)continue;const D=m.indexOf(T),_=h[D];if(!_)continue;const{direction:Y,speed:Q}=p6(T,_,E,t,y);for(const L of["x","y"])b[L][Y[L]]||(Q[L]=0,Y[L]=0);if(Q.x>0||Q.y>0){j(),C.current=T,N(P,c),w.current=Q,k.current=Y;return}}w.current={x:0,y:0},k.current={x:0,y:0},j()},[t,P,s,j,l,c,JSON.stringify(E),JSON.stringify(b),N,m,$,h,JSON.stringify(y)])}const E6={x:{[Nn.Backward]:!1,[Nn.Forward]:!1},y:{[Nn.Backward]:!1,[Nn.Forward]:!1}};function T6(e){let{delta:t,disabled:n}=e;const s=Dh(t);return ac(i=>{if(n||!s||!i)return E6;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 P6(e,t){const n=t!=null?e.get(t):void 0,s=n?n.node.current:null;return ac(i=>{var l;return t==null?null:(l=s??i)!=null?l:null},[s,t])}function R6(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 Kl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Kl||(Kl={}));var Ih;(function(e){e.Optimized="optimized"})(Ih||(Ih={}));const gj=new Map;function A6(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=Hl(x),b=f.useCallback(function(k){k===void 0&&(k=[]),!y.current&&c(E=>E===null?k:E.concat(k.filter(C=>!E.includes(C))))},[y]),N=f.useRef(null),j=ac(k=>{if(x&&!n)return gj;if(!k||k===gj||h.current!==e||l!=null){const E=new Map;for(let C of e){if(!C)continue;if(l&&l.length>0&&!l.includes(C.id)&&C.rect.current){E.set(C.id,C.rect.current);continue}const P=C.node.current,$=P?new vx(p(P),P):null;C.rect.current=$,$&&E.set(C.id,$)}return E}return k},[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"||N.current!==null||(N.current=setTimeout(()=>{b(),N.current=null},u))},[u,x,b,...s]),{droppableRects:j,measureDroppableContainers:b,measuringScheduled:l!=null};function w(){switch(m){case Kl.Always:return!1;case Kl.BeforeDragging:return n;default:return!n}}}function ON(e,t){return ac(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function D6(e,t){return ON(e,t)}function L6(e){let{callback:t,disabled:n}=e;const s=yx(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 mf(e){let{callback:t,disabled:n}=e;const s=yx(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 $6(e){return new vx(ja(e),e)}function xj(e,t,n){t===void 0&&(t=$6);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=L6({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=mf({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 O6(e){const t=ON(e);return EN(e,t)}const yj=[];function I6(e){const t=f.useRef(e),n=ac(s=>e?s&&s!==yj&&e&&t.current&&e.parentNode===t.current.parentNode?s:df(e):yj,[e]);return f.useEffect(()=>{t.current=e},[e]),n}function _6(e){const[t,n]=f.useState(null),s=f.useRef(e),i=f.useCallback(l=>{const c=Jm(l.target);c&&n(u=>u?(u.set(c,$h(c)),new Map(u)):null)},[]);return f.useEffect(()=>{const l=s.current;if(e!==l){c(l);const u=e.map(p=>{const m=Jm(p);return m?(m.addEventListener("scroll",i,{passive:!0}),[m,$h(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=Jm(p);m==null||m.removeEventListener("scroll",i)})}},[i,e]),f.useMemo(()=>e.length?t?Array.from(t.values()).reduce((l,c)=>ta(l,c),Gr):LN(e):Gr,[e,t])}function bj(e,t){t===void 0&&(t=[]);const n=f.useRef(null);return f.useEffect(()=>{n.current=null},t),f.useEffect(()=>{const s=e!==Gr;s&&!n.current&&(n.current=e),!s&&n.current&&(n.current=null)},[e]),n.current?Wl(e,n.current):Gr}function M6(e){f.useEffect(()=>{if(!uf)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 F6(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 IN(e){return f.useMemo(()=>e?c6(e):null,[e])}const vj=[];function z6(e,t){t===void 0&&(t=ja);const[n]=e,s=IN(n?lr(n):null),[i,l]=f.useState(vj);function c(){l(()=>e.length?e.map(p=>AN(p)?s:new vx(t(p),p)):vj)}const u=mf({callback:c});return fs(()=>{u==null||u.disconnect(),c(),e.forEach(p=>u==null?void 0:u.observe(p))},[e]),i}function B6(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return ic(t)?t:e}function U6(e){let{measure:t}=e;const[n,s]=f.useState(null),i=f.useCallback(m=>{for(const{target:h}of m)if(ic(h)){s(x=>{const y=t(h);return x?{...x,width:y.width,height:y.height}:y});break}},[t]),l=mf({callback:i}),c=f.useCallback(m=>{const h=B6(m);l==null||l.disconnect(),h&&(l==null||l.observe(h)),s(h?t(h):null)},[t,l]),[u,p]=md(c);return f.useMemo(()=>({nodeRef:u,rect:n,setRef:p}),[n,u,p])}const V6=[{sensor:pf,options:{}},{sensor:ff,options:{}}],H6={current:{}},Wu={draggable:{measure:fj},droppable:{measure:fj,strategy:Kl.WhileDragging,frequency:Ih.Optimized},dragOverlay:{measure:ja}};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 W6={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:hd},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Wu,measureDroppableContainers:hd,windowRect:null,measuringScheduled:!1},K6={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:hd,draggableNodes:new Map,over:null,measureDroppableContainers:hd},hf=f.createContext(K6),_N=f.createContext(W6);function q6(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Pl}}}function G6(e,t){switch(t.type){case xn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case xn.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 xn.DragEnd:case xn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case xn.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 xn.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 xn.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 Y6(e){let{disabled:t}=e;const{active:n,activatorEvent:s,draggableNodes:i}=f.useContext(hf),l=Dh(s),c=Dh(n==null?void 0:n.id);return f.useEffect(()=>{if(!t&&!s&&l&&c!=null){if(!bx(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=VF(h);if(x){x.focus();break}}})}},[s,t,i,c,l]),null}function J6(e,t){let{transform:n,...s}=t;return e!=null&&e.length?e.reduce((i,l)=>l({transform:i,...s}),n):n}function X6(e){return f.useMemo(()=>({draggable:{...Wu.draggable,...e==null?void 0:e.draggable},droppable:{...Wu.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Wu.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 Q6(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=EN(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=TN(m);y&&y.scrollBy({top:x.y,left:x.x})}},[t,c,u,s,n])}const MN=f.createContext({...Gr,scaleX:1,scaleY:1});var ro;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(ro||(ro={}));const FN=f.memo(function(t){var n,s,i,l;let{id:c,accessibility:u,autoScroll:p=!0,children:m,sensors:h=V6,collisionDetection:x=n6,measuring:y,modifiers:b,...N}=t;const j=f.useReducer(G6,void 0,q6),[w,k]=j,[E,C]=YF(),[P,$]=f.useState(ro.Uninitialized),T=P===ro.Initialized,{draggable:{active:D,nodes:_,translate:Y},droppable:{containers:Q}}=w,L=D!=null?_.get(D):null,W=f.useRef({initial:null,translated:null}),te=f.useMemo(()=>{var He;return D!=null?{id:D,data:(He=L==null?void 0:L.data)!=null?He:H6,rect:W}:null},[D,L]),F=f.useRef(null),[H,X]=f.useState(null),[le,O]=f.useState(null),K=Hl(N,Object.values(N)),A=lc("DndDescribedBy",c),B=f.useMemo(()=>Q.getEnabled(),[Q]),Z=X6(y),{droppableRects:I,measureDroppableContainers:ue,measuringScheduled:he}=A6(B,{dragging:T,dependencies:[Y.x,Y.y],config:Z.droppable}),V=P6(_,D),oe=f.useMemo(()=>le?Lh(le):null,[le]),de=xe(),ye=D6(V,Z.draggable.measure);Q6({activeNode:D!=null?_.get(D):null,config:de.layoutShiftCompensation,initialRect:ye,measure:Z.draggable.measure});const je=xj(V,Z.draggable.measure,ye),fe=xj(V?V.parentElement:null),Ye=f.useRef({activatorEvent:null,active:null,activeNode:V,collisionRect:null,collisions:null,droppableRects:I,draggableNodes:_,draggingNode:null,draggingNodeRect:null,droppableContainers:Q,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Je=Q.getNodeFor((n=Ye.current.over)==null?void 0:n.id),ot=U6({measure:Z.dragOverlay.measure}),G=(s=ot.nodeRef.current)!=null?s:V,De=T?(i=ot.rect)!=null?i:je:null,ke=!!(ot.nodeRef.current&&ot.rect),Re=O6(ke?null:je),Xe=IN(G?lr(G):null),Ie=I6(T?Je??V:null),at=z6(Ie),Be=J6(b,{transform:{x:Y.x-Re.x,y:Y.y-Re.y,scaleX:1,scaleY:1},activatorEvent:le,active:te,activeNodeRect:je,containerNodeRect:fe,draggingNodeRect:De,over:Ye.current.over,overlayNodeRect:ot.rect,scrollableAncestors:Ie,scrollableAncestorRects:at,windowRect:Xe}),ft=oe?ta(oe,Y):null,be=_6(Ie),Ne=bj(be),z=bj(be,[je]),ne=ta(Be,Ne),pe=De?o6(De,Be):null,Oe=te&&pe?x({active:te,collisionRect:pe,droppableRects:I,droppableContainers:B,pointerCoordinates:ft}):null,ee=NN(Oe,"id"),[me,Me]=f.useState(null),it=ke?Be:ta(Be,z),qe=r6(it,(l=me==null?void 0:me.rect)!=null?l:null,je),xt=f.useRef(null),ct=f.useCallback((He,Fe)=>{let{sensor:Pt,options:Ln}=Fe;if(F.current==null)return;const qt=_.get(F.current);if(!qt)return;const nn=He.nativeEvent,Ht=new Pt({active:F.current,activeNode:qt,event:nn,options:Ln,context:Ye,onAbort(bt){if(!_.get(bt))return;const{onDragAbort:Rt}=K.current,re={id:bt};Rt==null||Rt(re),E({type:"onDragAbort",event:re})},onPending(bt,vn,Rt,re){if(!_.get(bt))return;const{onDragPending:Qe}=K.current,Mt={id:bt,constraint:vn,initialCoordinates:Rt,offset:re};Qe==null||Qe(Mt),E({type:"onDragPending",event:Mt})},onStart(bt){const vn=F.current;if(vn==null)return;const Rt=_.get(vn);if(!Rt)return;const{onDragStart:re}=K.current,Ae={activatorEvent:nn,active:{id:vn,data:Rt.data,rect:W}};Cs.unstable_batchedUpdates(()=>{re==null||re(Ae),$(ro.Initializing),k({type:xn.DragStart,initialCoordinates:bt,active:vn}),E({type:"onDragStart",event:Ae}),X(xt.current),O(nn)})},onMove(bt){k({type:xn.DragMove,coordinates:bt})},onEnd:Yn(xn.DragEnd),onCancel:Yn(xn.DragCancel)});xt.current=Ht;function Yn(bt){return async function(){const{active:Rt,collisions:re,over:Ae,scrollAdjustedTranslate:Qe}=Ye.current;let Mt=null;if(Rt&&Qe){const{cancelDrop:pn}=K.current;Mt={activatorEvent:nn,active:Rt,collisions:re,delta:Qe,over:Ae},bt===xn.DragEnd&&typeof pn=="function"&&await Promise.resolve(pn(Mt))&&(bt=xn.DragCancel)}F.current=null,Cs.unstable_batchedUpdates(()=>{k({type:bt}),$(ro.Uninitialized),Me(null),X(null),O(null),xt.current=null;const pn=bt===xn.DragEnd?"onDragEnd":"onDragCancel";if(Mt){const Ct=K.current[pn];Ct==null||Ct(Mt),E({type:pn,event:Mt})}})}}},[_]),pt=f.useCallback((He,Fe)=>(Pt,Ln)=>{const qt=Pt.nativeEvent,nn=_.get(Ln);if(F.current!==null||!nn||qt.dndKit||qt.defaultPrevented)return;const Ht={active:nn};He(Pt,Fe.options,Ht)===!0&&(qt.dndKit={capturedBy:Fe.sensor},F.current=Ln,ct(Pt,Fe))},[_,ct]),nt=R6(h,pt);M6(h),fs(()=>{je&&P===ro.Initializing&&$(ro.Initialized)},[je,P]),f.useEffect(()=>{const{onDragMove:He}=K.current,{active:Fe,activatorEvent:Pt,collisions:Ln,over:qt}=Ye.current;if(!Fe||!Pt)return;const nn={active:Fe,activatorEvent:Pt,collisions:Ln,delta:{x:ne.x,y:ne.y},over:qt};Cs.unstable_batchedUpdates(()=>{He==null||He(nn),E({type:"onDragMove",event:nn})})},[ne.x,ne.y]),f.useEffect(()=>{const{active:He,activatorEvent:Fe,collisions:Pt,droppableContainers:Ln,scrollAdjustedTranslate:qt}=Ye.current;if(!He||F.current==null||!Fe||!qt)return;const{onDragOver:nn}=K.current,Ht=Ln.get(ee),Yn=Ht&&Ht.rect.current?{id:Ht.id,rect:Ht.rect.current,data:Ht.data,disabled:Ht.disabled}:null,bt={active:He,activatorEvent:Fe,collisions:Pt,delta:{x:qt.x,y:qt.y},over:Yn};Cs.unstable_batchedUpdates(()=>{Me(Yn),nn==null||nn(bt),E({type:"onDragOver",event:bt})})},[ee]),fs(()=>{Ye.current={activatorEvent:le,active:te,activeNode:V,collisionRect:pe,collisions:Oe,droppableRects:I,draggableNodes:_,draggingNode:G,draggingNodeRect:De,droppableContainers:Q,over:me,scrollableAncestors:Ie,scrollAdjustedTranslate:ne},W.current={initial:De,translated:pe}},[te,V,Oe,pe,_,G,De,I,Q,me,Ie,ne]),C6({...de,delta:Y,draggingRect:pe,pointerCoordinates:ft,scrollableAncestors:Ie,scrollableAncestorRects:at});const Dn=f.useMemo(()=>({active:te,activeNode:V,activeNodeRect:je,activatorEvent:le,collisions:Oe,containerNodeRect:fe,dragOverlay:ot,draggableNodes:_,droppableContainers:Q,droppableRects:I,over:me,measureDroppableContainers:ue,scrollableAncestors:Ie,scrollableAncestorRects:at,measuringConfiguration:Z,measuringScheduled:he,windowRect:Xe}),[te,V,je,le,Oe,fe,ot,_,Q,I,me,ue,Ie,at,Z,he,Xe]),Cn=f.useMemo(()=>({activatorEvent:le,activators:nt,active:te,activeNodeRect:je,ariaDescribedById:{draggable:A},dispatch:k,draggableNodes:_,over:me,measureDroppableContainers:ue}),[le,nt,te,je,k,A,_,me,ue]);return en.createElement(wN.Provider,{value:C},en.createElement(hf.Provider,{value:Cn},en.createElement(_N.Provider,{value:Dn},en.createElement(MN.Provider,{value:qe},m)),en.createElement(Y6,{disabled:(u==null?void 0:u.restoreFocus)===!1})),en.createElement(QF,{...u,hiddenTextDescribedById:A}));function xe(){const He=(H==null?void 0:H.autoScrollEnabled)===!1,Fe=typeof p=="object"?p.enabled===!1:p===!1,Pt=T&&!He&&!Fe;return typeof p=="object"?{...p,enabled:Pt}:{enabled:Pt}}}),Z6=f.createContext(null),wj="button",ez="Draggable";function tz(e){let{id:t,data:n,disabled:s=!1,attributes:i}=e;const l=lc(ez),{activators:c,activatorEvent:u,active:p,activeNodeRect:m,ariaDescribedById:h,draggableNodes:x,over:y}=f.useContext(hf),{role:b=wj,roleDescription:N="draggable",tabIndex:j=0}=i??{},w=(p==null?void 0:p.id)===t,k=f.useContext(w?MN:Z6),[E,C]=md(),[P,$]=md(),T=F6(c,t),D=Hl(n);fs(()=>(x.set(t,{id:t,key:l,node:E,activatorNode:P,data:D}),()=>{const Y=x.get(t);Y&&Y.key===l&&x.delete(t)}),[x,t]);const _=f.useMemo(()=>({role:b,tabIndex:j,"aria-disabled":s,"aria-pressed":w&&b===wj?!0:void 0,"aria-roledescription":N,"aria-describedby":h.draggable}),[s,b,j,w,N,h.draggable]);return{active:p,activatorEvent:u,activeNodeRect:m,attributes:_,isDragging:w,listeners:s?void 0:T,node:E,over:y,setNodeRef:C,setActivatorNodeRef:$,transform:k}}function nz(){return f.useContext(_N)}const rz="Droppable",sz={timeout:25};function oz(e){let{data:t,disabled:n=!1,id:s,resizeObserverConfig:i}=e;const l=lc(rz),{active:c,dispatch:u,over:p,measureDroppableContainers:m}=f.useContext(hf),h=f.useRef({disabled:n}),x=f.useRef(!1),y=f.useRef(null),b=f.useRef(null),{disabled:N,updateMeasurementsFor:j,timeout:w}={...sz,...i},k=Hl(j??s),E=f.useCallback(()=>{if(!x.current){x.current=!0;return}b.current!=null&&clearTimeout(b.current),b.current=setTimeout(()=>{m(Array.isArray(k.current)?k.current:[k.current]),b.current=null},w)},[w]),C=mf({callback:E,disabled:N||!c}),P=f.useCallback((_,Y)=>{C&&(Y&&(C.unobserve(Y),x.current=!1),_&&C.observe(_))},[C]),[$,T]=md(P),D=Hl(t);return f.useEffect(()=>{!C||!$.current||(C.disconnect(),x.current=!1,C.observe($.current))},[$,C]),f.useEffect(()=>(u({type:xn.RegisterDroppable,element:{id:s,key:l,disabled:n,node:$,rect:y,data:D}}),()=>u({type:xn.UnregisterDroppable,key:l,id:s})),[s]),f.useEffect(()=>{n!==h.current.disabled&&(u({type:xn.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:$,over:p,setNodeRef:T}}function gf(e,t,n){const s=e.slice();return s.splice(n<0?s.length+n:n,0,s.splice(t,1)[0]),s}function iz(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 az(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 lz(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const zN=e=>{let{rects:t,activeIndex:n,overIndex:s,index:i}=e;const l=gf(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},BN=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=cz(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 cz(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 UN="Sortable",VN=en.createContext({activeIndex:-1,containerId:UN,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:zN,disabled:{draggable:!1,droppable:!1}});function HN(e){let{children:t,id:n,items:s,strategy:i=zN,disabled:l=!1}=e;const{active:c,dragOverlay:u,droppableRects:p,over:m,measureDroppableContainers:h}=nz(),x=lc(UN,n),y=u.rect!==null,b=f.useMemo(()=>s.map(T=>typeof T=="object"&&"id"in T?T.id:T),[s]),N=c!=null,j=c?b.indexOf(c.id):-1,w=m?b.indexOf(m.id):-1,k=f.useRef(b),E=!az(b,k.current),C=w!==-1&&j===-1||E,P=lz(l);fs(()=>{E&&N&&h(b)},[E,b,N,h]),f.useEffect(()=>{k.current=b},[b]);const $=f.useMemo(()=>({activeIndex:j,containerId:x,disabled:P,disableTransforms:C,items:b,overIndex:w,useDragOverlay:y,sortedRects:iz(b,p),strategy:i}),[j,x,P.draggable,P.droppable,C,b,w,p,y,i]);return en.createElement(VN.Provider,{value:$},t)}const uz=e=>{let{id:t,items:n,activeIndex:s,overIndex:i}=e;return gf(n,s,i).indexOf(t)},dz=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},fz={duration:200,easing:"ease"},WN="transform",pz=aa.Transition.toString({property:WN,duration:0,easing:"linear"}),mz={roleDescription:"sortable"};function hz(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=ja(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 KN(e){let{animateLayoutChanges:t=dz,attributes:n,disabled:s,data:i,getNewIndex:l=uz,id:c,strategy:u,resizeObserverConfig:p,transition:m=fz}=e;const{items:h,containerId:x,activeIndex:y,disabled:b,disableTransforms:N,sortedRects:j,overIndex:w,useDragOverlay:k,strategy:E}=f.useContext(VN),C=gz(s,b),P=h.indexOf(c),$=f.useMemo(()=>({sortable:{containerId:x,index:P,items:h},...i}),[x,i,P,h]),T=f.useMemo(()=>h.slice(h.indexOf(c)),[h,c]),{rect:D,node:_,isOver:Y,setNodeRef:Q}=oz({id:c,data:$,disabled:C.droppable,resizeObserverConfig:{updateMeasurementsFor:T,...p}}),{active:L,activatorEvent:W,activeNodeRect:te,attributes:F,setNodeRef:H,listeners:X,isDragging:le,over:O,setActivatorNodeRef:K,transform:A}=tz({id:c,data:$,attributes:{...mz,...n},disabled:C.draggable}),B=FF(Q,H),Z=!!L,I=Z&&!N&&Pu(y)&&Pu(w),ue=!k&&le,he=ue&&I?A:null,oe=I?he??(u??E)({rects:j,activeNodeRect:te,activeIndex:y,overIndex:w,index:P}):null,de=Pu(y)&&Pu(w)?l({id:c,items:h,activeIndex:y,overIndex:w}):P,ye=L==null?void 0:L.id,je=f.useRef({activeId:ye,items:h,newIndex:de,containerId:x}),fe=h!==je.current.items,Ye=t({active:L,containerId:x,isDragging:le,isSorting:Z,id:c,index:P,items:h,newIndex:je.current.newIndex,previousItems:je.current.items,previousContainerId:je.current.containerId,transition:m,wasDragging:je.current.activeId!=null}),Je=hz({disabled:!Ye,index:P,node:_,rect:D});return f.useEffect(()=>{Z&&je.current.newIndex!==de&&(je.current.newIndex=de),x!==je.current.containerId&&(je.current.containerId=x),h!==je.current.items&&(je.current.items=h)},[Z,de,x,h]),f.useEffect(()=>{if(ye===je.current.activeId)return;if(ye!=null&&je.current.activeId==null){je.current.activeId=ye;return}const G=setTimeout(()=>{je.current.activeId=ye},50);return()=>clearTimeout(G)},[ye]),{active:L,activeIndex:y,attributes:F,data:$,rect:D,index:P,newIndex:de,items:h,isOver:Y,isSorting:Z,isDragging:le,listeners:X,node:_,overIndex:w,over:O,setNodeRef:B,setActivatorNodeRef:K,setDroppableNodeRef:Q,setDraggableNodeRef:H,transform:Je??oe,transition:ot()};function ot(){if(Je||fe&&je.current.newIndex===P)return pz;if(!(ue&&!bx(W)||!m)&&(Z||Ye))return aa.Transition.toString({...m,property:WN})}}function gz(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 xz=[yt.Down,yt.Right,yt.Up,yt.Left],yz=(e,t)=>{let{context:{active:n,collisionRect:s,droppableRects:i,droppableContainers:l,over:c,scrollableAncestors:u}}=t;if(xz.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 yt.Down:s.top<y.top&&p.push(x);break;case yt.Up:s.top>y.top&&p.push(x);break;case yt.Left:s.left>y.left&&p.push(x);break;case yt.Right:s.left<y.left&&p.push(x);break}});const m=e6({collisionRect:s,droppableRects:i,droppableContainers:p});let h=NN(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,N=y==null?void 0:y.node.current;if(N&&b&&x&&y){const w=df(N).some((T,D)=>u[D]!==T),k=qN(x,y),E=bz(x,y),C=w||!k?{x:0,y:0}:{x:E?s.width-b.width:0,y:E?s.height-b.height:0},P={x:b.left,y:b.top};return C.x&&C.y?P:Wl(P,C)}}}};function qN(e,t){return!yd(e)||!yd(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function bz(e,t){return!yd(e)||!yd(t)||!qN(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}function vz({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 _h=["projects","playbooks","todos","servers","config"];function wz(e){const t=new Set;for(const n of e.split(",").map(s=>s.trim()))_h.includes(n)&&t.add(n);return t}function jj(e){if(!e)return"never";try{return new Date(e).toLocaleString()}catch{return e}}function jz(){const[e,t]=f.useState(!0),[n,s]=f.useState(null),[i,l]=f.useState(""),[c,u]=f.useState(new Set(_h)),[p,m]=f.useState(!1),[h,x]=f.useState(!1),[y,b]=f.useState(null),[N,j]=f.useState(null),w=f.useCallback(async()=>{try{const T=await fetch("/api/backup");if(!T.ok)throw new Error(`HTTP ${T.status}`);const D=await T.json();s(D),l(D.repo??""),u(wz(D.categories)),m(!1)}catch(T){j({type:"error",message:`Failed to load backup config: ${T instanceof Error?T.message:String(T)}`})}finally{t(!1)}},[]);f.useEffect(()=>{w()},[w]);function k(T){u(D=>{const _=new Set(D);return _.has(T)?_.delete(T):_.add(T),_}),m(!0)}async function E(){x(!0),j(null);try{const T=Array.from(c),D=await fetch("/api/backup/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:i.trim()||null,categories:T})}),_=await D.json();if(!D.ok)throw new Error(_.error||`HTTP ${D.status}`);s(_),m(!1),j({type:"success",message:"Backup configuration saved."})}catch(T){j({type:"error",message:`Save failed: ${T instanceof Error?T.message:String(T)}`})}finally{x(!1)}}async function C(){b("push"),j(null);try{const T=await fetch("/api/backup/push",{method:"POST"}),D=await T.json();if(!T.ok||D.success===!1)throw new Error(D.error||D.message||`HTTP ${T.status}`);j({type:"success",message:D.message||"Backup complete."}),await w()}catch(T){j({type:"error",message:`Backup failed: ${T instanceof Error?T.message:String(T)}`})}finally{b(null)}}async function P(){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"),j(null);try{const D=await fetch("/api/backup/pull",{method:"POST"}),_=await D.json();if(!D.ok||_.success===!1)throw new Error(_.error||_.message||`HTTP ${D.status}`);j({type:"success",message:_.message||"Restore complete."}),await w()}catch(D){j({type:"error",message:`Restore failed: ${D instanceof Error?D.message:String(D)}`})}finally{b(null)}}}if(e)return r.jsx(We,{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 $=!!i.trim()&&c.size>0&&!y&&!p;return r.jsx(We,{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:[N&&r.jsx("div",{className:`rounded-lg border px-4 py-2 text-sm ${N.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:N.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:T=>{l(T.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:_h.map(T=>{const D=c.has(T);return r.jsxs("button",{type:"button",onClick:()=>k(T),className:`shell-action text-xs ${D?"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 ${D?"bg-primary":"bg-muted-foreground/40"}`}),T]},T)})})]}),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: "}),jj((n==null?void 0:n.lastBackup)??null)]}),r.jsxs("div",{children:[r.jsx("span",{className:"font-medium text-foreground",children:"Last restore: "}),jj((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:E,disabled:h||!p,children:[r.jsx(Pd,{className:"h-3.5 w-3.5"}),h?"Saving...":"Save Config"]}),r.jsxs("button",{className:"shell-action",onClick:C,disabled:!$,title:$?"Back up now":p?"Save config first":"Set repo and pick categories",children:[r.jsx(cP,{className:"h-3.5 w-3.5"}),y==="push"?"Backing up...":"Back Up Now"]}),r.jsxs("button",{className:"shell-action",onClick:P,disabled:!$,title:$?"Restore from backup":p?"Save config first":"Set repo and pick categories",children:[r.jsx(zT,{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(MT,{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 kz({open:e,affected:t,remaining:n,onResolve:s,onCancel:i}){var j;const[l,c]=f.useState(n.length>0?"remap":"delete"),[u,p]=f.useState(((j=n[0])==null?void 0:j.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),N=t.count-b.length;return r.jsx(ir,{open:e,onOpenChange:w=>w?void 0:i(),children:r.jsxs(qn,{className:"max-w-xl",children:[r.jsxs(Xr,{children:[r.jsxs(Gn,{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}`)),N>0&&r.jsxs("li",{className:"text-xs italic text-muted-foreground",children:["+",N," 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(As,{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":"shell-action--cta"} disabled:cursor-not-allowed disabled:opacity-50`,children:l==="remap"?`Remap ${t.count} → ${u||"..."}`:`Delete ${t.count}`})]})]})})}function Sz(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 Nz(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 kj(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 Cz(){const{customBindings:e,userBindings:t,actionEntries:n,findConflict:s,bindAction:i,unbindAction:l}=co(),[c,u]=f.useState(null),[p,m]=f.useState(null),[h,x]=f.useState(!1),y=Object.values(t).some(C=>typeof C=="string"&&C.length>0);function b(C,P){m({type:C,message:P}),setTimeout(()=>m(null),2500)}function N(C){u({kind:C,combo:null,conflict:null,saving:!1,error:null})}function j(C){if(!c||C.key==="Escape")return;if(C.key==="Enter"&&c.combo){C.preventDefault(),w();return}if(C.key==="Enter")return;C.preventDefault(),C.stopPropagation();const P=A0(C.nativeEvent);if(!P)return;const $=s(P,c.kind);u({...c,combo:P,conflict:$,error:null})}async function w(){var C;if(c!=null&&c.combo){if((C=c.conflict)!=null&&C.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 ${cl[c.kind]}`)}catch(P){u({...c,saving:!1,error:P instanceof Error?P.message:"Failed to save"})}}}async function k(C){try{await l(C),b("success",`Cleared ${cl[C]} binding`)}catch(P){b("error",P instanceof Error?P.message:"Failed to clear binding")}}async function E(){if(!h){x(!0);try{await P3(),b("success","All hotkey bindings cleared")}catch(C){b("error",C instanceof Error?C.message:"Failed to reset bindings")}finally{x(!1)}}}return r.jsxs(We,{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 E(),disabled:h,children:[r.jsx(na,{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:Dd.map(C=>{var _,Y;const P=n.find(Q=>Q.bindableKind===C),$=e[C],T=typeof t[C]=="string"&&!!t[C],D=(c==null?void 0:c.kind)===C;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(oh,{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:(P==null?void 0:P.title)??cl[C]}),P!=null&&P.subtitle?r.jsx("div",{className:"text-xs text-muted-foreground",children:P.subtitle}):null]}),$?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:cs($)}),r.jsx("span",{className:`text-[10px] uppercase tracking-wide ${T?"text-primary":"text-muted-foreground"}`,children:T?"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:()=>N(C),children:$?"Rebind":"Bind"}),T?r.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:()=>void k(C),"aria-label":`Restore default ${cl[C]} binding`,children:[r.jsx(tg,{className:"h-3 w-3"}),"Restore default"]}):null]}),D?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:j,onBlur:()=>{(c==null?void 0:c.kind)===C&&!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:cs(c.combo)}),(_=c.conflict)!=null&&_.description?r.jsxs("div",{className:"text-xs text-destructive",children:["Reserved: ",c.conflict.description]}):(Y=c.conflict)!=null&&Y.kind?r.jsxs("div",{className:"text-xs text-amber-500 dark:text-amber-400",children:['Already bound to "',cl[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]},C)})})]})}const Ez={kanban:"Kanban",list:"List",table:"Table"},Tz={comfortable:"Comfortable",compact:"Compact"},Pz={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},Rz={asc:"Ascending",desc:"Descending"};function Az(){const e=g5(),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 H1({[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 x5(),c("success","Reset to defaults")}catch(m){c("error",m instanceof Error?m.message:"Failed to reset")}finally{s(!1)}}}return r.jsxs(We,{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(na,{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:wg.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:Ez[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:sD.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:Tz[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:Fk.map(m=>r.jsx("option",{value:m,children:Pz[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:rD.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:Rz[m]},m))})]})]})]})}const Dz=/^[a-z0-9][a-z0-9_-]*$/,GN=["first","last","none"];class YN extends Error{constructor(n,s){super(n);Bb(this,"fieldErrors");this.name="AgentsConfigError",this.fieldErrors=s}}const jx={agents:[],custom:!1};let Bi=null,Fi=null,bd=0;const Mh=new Set;function JN(e){Bi=e;for(const t of Mh)t(e)}function Lz(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"&&GN.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 kx(e){if(!e||typeof e!="object")return jx;const t=e,n=Array.isArray(t.agents)?t.agents:[],s=[];for(const i of n){const l=Lz(i);l&&s.push(l)}return{agents:s,custom:t.custom===!0}}function $z(){if(Bi)return Promise.resolve(Bi);if(Fi)return Fi;const e=++bd;return Fi=fetch("/api/config/agents").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{Fi=null;const n=kx(t);return e!==bd?Bi??n:(Bi=n,n)}).catch(()=>(Fi=null,jx)),Fi}function Oz(){const[e,t]=f.useState(()=>Bi??jx);return f.useEffect(()=>{let n=!1;return $z().then(s=>{n||t(s)}),Mh.add(t),()=>{n=!0,Mh.delete(t)}},[]),e}async function XN(e){const t=await e.json().catch(()=>null),n=(t==null?void 0:t.error)??`HTTP ${e.status}`;return new YN(n,t==null?void 0:t.fieldErrors)}async function Iz(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 XN(t);const n=kx(await t.json());return JN(n),n}async function _z(){++bd;const e=await fetch("/api/config/agents",{method:"DELETE"});if(!e.ok)throw await XN(e);const t=kx(await e.json());return JN(t),t}const Mz={first:"first",last:"last",none:"none"};function QN(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function gl(e){return e.map(t=>({rowKey:QN(),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 Fz(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 zz(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 Bz(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 Uz(e){return e.map(t=>Object.keys(t.fieldErrors).length===0?t:{...t,fieldErrors:{}})}function Vz(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 Hz({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}=KN({id:e.rowKey}),b={transform:aa.Transform.toString(h),transition:x,zIndex:y?50:void 0,position:y?"relative":void 0};function N(k){const E={label:k};if(e.autoSlugFromLabel){const C=mr(k);C&&Dz.test(C)?E.id=C:E.id=`agent-${t+1}`}s(E)}function j(k){s({id:k,autoSlugFromLabel:!1})}const w=k=>e.fieldErrors[k]?"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(e0,{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:k=>j(k.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(Kn,{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:k=>N(k.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:k=>s({command:k.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:k=>s({argsText:k.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:k=>s({promptArgPosition:k.target.value}),className:`editor-input mt-0.5 w-full ${w("promptArgPosition")}`,children:GN.map(k=>r.jsx("option",{value:k,children:Mz[k]},k))}),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:k=>s({resolveFromShellAliases:k.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 Wz(){const e=Oz(),[t,n]=f.useState(()=>gl(e.agents)),[s,i]=f.useState(()=>gl(e.agents)),[l,c]=f.useState(!1),[u,p]=f.useState(null),[m,h]=f.useState(null);f.useEffect(()=>{const T=gl(e.agents);n(T),i(T),p(null)},[e.agents]);const x=f.useMemo(()=>!Vz(t,s),[t,s]),y=jN(gd(pf,{activationConstraint:{distance:8}}),gd(ff));function b(T,D){h({type:T,message:D}),setTimeout(()=>h(null),2500)}function N(T,D){n(_=>_.map(Y=>Y.rowKey===T?{...Y,...D,fieldErrors:Kz(Y.fieldErrors,D)}:Y))}function j(T){n(D=>D.map(_=>({..._,default:_.rowKey===T})))}function w(){n(T=>{const D=new Set(T.map(te=>te.id)),_="new-agent";let Y=_,Q=1;for(;D.has(Y);)Q+=1,Y=`${_}-${Q}`;const L=Q===1?"New Agent":`New Agent ${Q}`,W={rowKey:QN(),id:Y,originalId:null,isNew:!0,idEditable:!0,autoSlugFromLabel:!0,label:L,command:"",argsText:"",promptArgPosition:"first",resolveFromShellAliases:!0,default:!1,fieldErrors:{}};return[...T,W]})}function k(T){n(D=>D.filter(_=>_.rowKey!==T))}async function E(){c(!0),p(null);try{const T=zz(t),D=Fz(T),_=await Iz(D),Y=gl(_.agents);n(Y),i(Y),b("success","Agents saved")}catch(T){if(T instanceof YN)p(T.message),n(D=>Bz(Uz(D),T.fieldErrors)),b("error",T.message);else{const D=T instanceof Error?T.message:"Failed to save";p(D),b("error",D)}}finally{c(!1)}}function C(){n(s),p(null)}async function P(){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 T=await _z(),D=gl(T.agents);n(D),i(D),b("success","Reset to defaults")}catch(T){const D=T instanceof Error?T.message:"Failed to reset";p(D),b("error",D)}finally{c(!1)}}}function $(T){const{active:D,over:_}=T;!_||D.id===_.id||n(Y=>{const Q=Y.findIndex(W=>W.rowKey===D.id),L=Y.findIndex(W=>W.rowKey===_.id);return Q===-1||L===-1?Y:gf(Y,Q,L)})}return r.jsxs(We,{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:P,disabled:l,children:[r.jsx(na,{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(Jh,{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(FN,{sensors:y,collisionDetection:CN,onDragEnd:$,children:r.jsx(HN,{items:t.map(T=>T.rowKey),strategy:BN,children:r.jsx("div",{className:"space-y-2",children:t.map((T,D)=>r.jsx(Hz,{row:T,index:D,canRemove:t.length>1,onPatch:_=>N(T.rowKey,_),onSetDefault:()=>j(T.rowKey),onRemove:()=>k(T.rowKey)},T.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(tn,{className:"h-3 w-3"}),"Add agent"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:C,disabled:!x||l,className:"shell-action text-xs",children:"Discard"}),r.jsxs("button",{type:"button",onClick:E,disabled:!x||l,className:"shell-action text-xs",children:[r.jsx(Pd,{className:"h-3 w-3"}),"Save"]})]})]})]})}function Kz(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 Ui=null,zi=null,wd=0;const Fh=new Set;function eC(e){Ui=e;for(const t of Fh)t(e)}function Sx(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 qz(){if(Ui)return Promise.resolve(Ui);if(zi)return zi;const e=++wd;return zi=fetch("/api/config/terminal").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{zi=null;const n=Sx(t);return e!==wd?Ui??n:(Ui=n,n)}).catch(()=>(zi=null,vd)),zi}function Gz(){const[e,t]=f.useState(()=>Ui??vd);return f.useEffect(()=>{let n=!1;return qz().then(s=>{n||t(s)}),Fh.add(t),()=>{n=!0,Fh.delete(t)}},[]),e}async function Yz(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=Sx(await t.json());return eC(n),n}async function Jz(){++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=Sx(await e.json());return eC(t),t}const Au={"terminal-app":"Terminal (macOS built-in)",iterm:"iTerm2",ghostty:"Ghostty",alacritty:"Alacritty",warp:"Warp",kitty:"kitty"};function Xz(){const{terminal:e,custom:t}=Gz(),[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 Yz(m),c({type:"success",message:`Terminal set to ${Au[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 Jz();c({type:"success",message:`Reset to OS default (${Au[m.terminal]}).`})}catch(m){c({type:"error",message:m instanceof Error?m.message:"Reset failed."})}finally{s(!1)}}return r.jsxs(We,{title:"Terminal",description:`Which terminal "Open in agent" launches. Defaults to the OS choice (currently ${Au[e]}) when unset.`,actions:t?r.jsxs("button",{className:"shell-action text-xs",onClick:p,disabled:n,type:"button",children:[r.jsx(na,{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:Au[m]},m))})]})]})}function tC(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function Zm(e){const t=e.statuses.map(n=>({rowKey:tC(),id:n.id,label:n.label,description:n.description??"",color:n.color??"",terminal:n.terminal??!1}));return Nz(t,e.order)}function Qz({row:e,isSaved:t,onUpdate:n,onRemove:s}){const{attributes:i,listeners:l,setNodeRef:c,setActivatorNodeRef:u,transform:p,transition:m,isDragging:h}=KN({id:e.rowKey}),x={transform:aa.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(e0,{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(vz,{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(Kn,{className:"h-3.5 w-3.5"})})]})}function Zz(){var he;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),[N,j]=f.useState(new Set),[w,k]=f.useState(new Map),[E,C]=f.useState({open:!1}),P=jN(gd(pf,{activationConstraint:{distance:8}}),gd(ff,{coordinateGetter:yz})),{preset:$,setPreset:T,resetPreset:D}=sg(),[_,Y]=f.useState(!1),[Q,L]=f.useState(null);async function W(V){if(!(V===$||_)){Y(!0),L(null);try{await T(V),L({type:"success",message:"Theme updated"}),setTimeout(()=>L(null),2e3)}catch(oe){L({type:"error",message:oe instanceof Error?oe.message:"Failed to save theme"})}finally{Y(!1)}}}async function te(){Y(!0),L(null);try{await D(),L({type:"success",message:"Theme reset to default"}),setTimeout(()=>L(null),2e3)}catch(V){L({type:"error",message:V instanceof Error?V.message:"Failed to reset theme"})}finally{Y(!1)}}const F=f.useCallback(async()=>{try{const V=await fetch("/api/config/statuses");if(!V.ok)throw new Error(`HTTP ${V.status}`);const oe=await V.json(),de=Zm(oe);u(de),l(oe.custom),j(new Set(de.map(ye=>ye.id))),k(new Map),b(!1),s(null)}catch(V){s(V instanceof Error?V.message:"Failed to load config")}finally{t(!1)}},[]);f.useEffect(()=>{F()},[F]);function H(){setTimeout(()=>x(null),3e3)}async function X(){m(!0),x(null);try{const{body:V}=Sz({statuses:c,order:c.map(fe=>fe.id),pendingResolutions:w}),oe=await fetch("/api/config/statuses",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(V)});if(!oe.ok){const fe=await oe.json().catch(()=>null);if(oe.status===409&&(fe==null?void 0:fe.error)==="unresolved-orphans"){const Ye=Array.isArray(fe.unresolved)?fe.unresolved.map(Je=>Je.id).join(", "):"";throw new Error(`Cannot save — these statuses have assignments that need a resolution: ${Ye}. Click the trash icon on each row to choose remap or delete.`)}if(oe.status===409&&(fe==null?void 0:fe.error)==="concurrent-edit"){const Ye=fe.applied?` (${fe.applied.remapped} remapped, ${fe.applied.deleted} deleted before the conflict)`:"";x({type:"error",message:`Concurrent edit detected${Ye}: ${fe.cause??"an assignment moved to a still-dropped status during save"}. Refreshing — please re-resolve.`}),await F();return}if(oe.status===500&&(fe==null?void 0:fe.error)==="config-write-failed"&&(fe!=null&&fe.applied)){const{remapped:Ye,deleted:Je}=fe.applied,ot=fe.message?`: ${fe.message}`:"";x({type:"error",message:`Resolutions applied (${Ye} remapped, ${Je} deleted) but the status config write failed${ot}. Click Save again to retry.`}),await F();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 ${oe.status})`)}const de=await oe.json(),ye=Zm(de);u(ye),l(de.custom),j(new Set(ye.map(fe=>fe.id))),k(new Map),b(!1),Hv();const je=de.applied?` (${de.applied.remapped} remapped, ${de.applied.deleted} deleted)`:"";x({type:"success",message:`Status config saved${je}`}),H()}catch(V){x({type:"error",message:V instanceof Error?V.message:"Save failed"})}finally{m(!1)}}async function le(){m(!0),x(null);try{const V=await fetch("/api/config/statuses",{method:"DELETE"});if(!V.ok)throw new Error("Reset failed");const oe=await V.json(),de=Zm(oe);u(de),l(oe.custom),j(new Set(de.map(ye=>ye.id))),k(new Map),b(!1),Hv(),x({type:"success",message:"Reset to defaults"}),H()}catch(V){x({type:"error",message:V instanceof Error?V.message:"Reset failed"})}finally{m(!1)}}function O(V,oe,de){u(ye=>{const je=[...ye];return je[V]={...je[V],[oe]:de},je}),b(!0)}function K(){const V=`status_${c.length+1}`;u(oe=>[...oe,{rowKey:tC(),id:V,label:"New Status",description:"",color:"",terminal:!1}]),b(!0)}function A(V){u(oe=>{const de=oe.filter(je=>je.id!==V),ye=new Set(de.map(je=>je.id));return k(je=>kj(je,ye)),de}),b(!0)}async function B(V){const oe=c[V].id;if(!N.has(oe)){A(oe);return}try{const de=await fetch(`/api/config/statuses/affected/${encodeURIComponent(oe)}`);if(!de.ok)throw new Error(`HTTP ${de.status}`);const ye=await de.json();if(ye.count===0){A(oe);return}C({open:!0,affected:ye,pendingId:oe})}catch(de){x({type:"error",message:`Could not check affected assignments for "${oe}": ${de instanceof Error?de.message:String(de)}`})}}function Z(V){if(!E.open)return;const{pendingId:oe}=E;if(oe!==V.id){C({open:!1});return}if(!c.some(de=>de.id===oe)){x({type:"error",message:`Row for "${oe}" was already removed — modal action ignored.`}),C({open:!1});return}u(de=>{const ye=de.filter(fe=>fe.id!==oe),je=new Set(ye.map(fe=>fe.id));return k(fe=>{const Ye=kj(fe,je),Je=new Map(Ye);return Je.set(oe,V),Je}),ye}),b(!0),C({open:!1})}function I(){C({open:!1})}function ue(V){const{active:oe,over:de}=V;!de||oe.id===de.id||(u(ye=>{const je=ye.findIndex(Ye=>Ye.rowKey===oe.id),fe=ye.findIndex(Ye=>Ye.rowKey===de.id);return je===-1||fe===-1?ye:gf(ye,je,fe)}),b(!0))}return e?r.jsx(gt,{label:"Loading settings..."}):n?r.jsx(jt,{error:n}):r.jsx(Mo,{children:r.jsxs("div",{className:"space-y-6",children:[r.jsxs(We,{title:"Theme",description:"Pick a color theme for the dashboard. The default is the Syntaur brand.",actions:$!=="default"?r.jsxs("button",{className:"shell-action text-xs",onClick:te,disabled:_,children:[r.jsx(na,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[Q&&r.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${Q.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:Q.message}),r.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",children:g0.map(V=>{const oe=V.slug===$;return r.jsxs("button",{type:"button",onClick:()=>W(V.slug),disabled:_,"aria-pressed":oe,className:`group relative flex flex-col gap-2 rounded-lg border bg-card/95 p-3 text-left transition disabled:opacity-60 ${oe?"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:V.swatches.primary}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:V.swatches.secondary}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:V.swatches.coral}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:V.swatches.teal}}),r.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:V.swatches.amber}}),oe&&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(Rs,{className:"h-3 w-3"})})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-sm font-medium text-foreground",children:V.label}),r.jsx("div",{className:"text-xs text-muted-foreground",children:V.description})]})]},V.slug)})})]}),r.jsx(Cz,{}),r.jsx(Xz,{}),r.jsx(Wz,{}),r.jsx(Az,{}),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(Jh,{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(na,{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(We,{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:K,children:[r.jsx(tn,{className:"h-3 w-3"}),"Add Status"]}),children:r.jsx(FN,{sensors:P,collisionDetection:CN,onDragEnd:ue,children:r.jsx(HN,{items:c.map(V=>V.rowKey),strategy:BN,children:r.jsx("div",{className:"space-y-2",children:c.map((V,oe)=>r.jsx(Qz,{row:V,isSaved:N.has(V.id),onUpdate:(de,ye)=>O(oe,de,ye),onRemove:()=>B(oe)},V.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:X,disabled:p||!y,children:[r.jsx(Pd,{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),F()},disabled:p,children:"Discard Changes"}),r.jsx("span",{className:"text-xs text-muted-foreground",children:"Unsaved changes"})]})]}),r.jsx(jz,{}),E.open&&r.jsx(kz,{open:E.open,affected:{...E.affected,label:((he=c.find(V=>V.id===E.affected.id))==null?void 0:he.label)??E.affected.id},remaining:c.filter(V=>V.id!==E.affected.id&&N.has(V.id)).map(V=>({id:V.id,label:V.label})),onResolve:Z,onCancel:I})]})})}const to=e=>`${e.workspace}::${e.id}`;function Sj(e){if(e.includes("/")){const[t,n]=e.split("/");return`/projects/${t}/assignments/${n}`}return`/assignments/${e}`}function eB(){var Oe;const{data:e,loading:t,error:n,refetch:s}=D0(),i=Dt(),[l,c]=f.useState(""),u=f.useRef(null);uo("list:todos");const[p,m]=f.useState(""),[h,x]=f.useState(""),[y,b]=f.useState(""),[N,j]=f.useState("_global"),[w,k]=f.useState(null),[E,C]=f.useState(new Set),[P,$]=f.useState(!1),T=f.useRef(null),[D,_]=f.useState(null),Y=ax("all"),[Q,L]=f.useState(null),[W,te]=f.useState(null),F=f.useRef(null);f.useEffect(()=>{let ee=!1;return(async()=>{try{const me=await fetch("/api/projects");if(!me.ok)return;const Me=await me.json();ee||_(Me.filter(it=>!it.archived))}catch{}})(),()=>{ee=!0}},[]);function H(ee,me){ee.stopPropagation(),navigator.clipboard.writeText(me),k(me),setTimeout(()=>k(Me=>Me===me?null:Me),1500)}const X=f.useMemo(()=>{if(!(e!=null&&e.workspaces))return[];const ee=[];for(const me of e.workspaces)for(const Me of me.items)ee.push({...Me,workspace:me.workspace});return ee},[e]),le=f.useMemo(()=>{const ee=new Set;for(const me of X)for(const Me of me.tags)ee.add(Me);return Array.from(ee).sort()},[X]),O=f.useMemo(()=>{let ee=X;if(l.trim()){const me=l.toLowerCase();ee=ee.filter(Me=>Me.description.toLowerCase().includes(me)||Me.tags.some(it=>it.toLowerCase().includes(me))||Me.id.includes(me))}return p&&(ee=ee.filter(me=>me.status===p)),h&&(ee=ee.filter(me=>me.tags.includes(h))),ee},[X,l,p,h]);f.useEffect(()=>{C(new Set),T.current=null},[l,p,h]);const K=f.useMemo(()=>O.filter(ee=>E.has(to(ee))),[O,E]),A=O.length>0&&K.length===O.length,B=K.length>0&&!A,Z=f.useMemo(()=>{if(K.length===0)return null;const ee=new Set(K.map(me=>me.workspace));return ee.size===1?[...ee][0]:null},[K]),I=f.useMemo(()=>{if(!Z||!D)return;const ee=D.filter(me=>me.workspace===Z);return ee.length===1?ee[0].slug:void 0},[Z,D]),ue=((Oe=K[0])==null?void 0:Oe.description)??"",he=f.useMemo(()=>{if(Z)return null;const ee=new Map;for(const me of K)ee.has(me.workspace)||ee.set(me.workspace,[]),ee.get(me.workspace).push(me.id);return Array.from(ee,([me,Me])=>({workspace:me,todoIds:Me}))},[K,Z]),V=Z?{kind:"workspace",workspace:Z}:{kind:"aggregate",groups:he??[]};function oe(ee,me,Me){const it=to(ee),qe=!!(Me&&"shiftKey"in Me&&Me.shiftKey),xt=T.current?Re.findIndex(ct=>to(ct)===T.current):-1;if(qe&&xt!==-1){const ct=Math.min(xt,me),pt=Math.max(xt,me);C(nt=>{const Dn=new Set(nt);for(let Cn=ct;Cn<=pt;Cn++){const xe=Re[Cn];xe&&Dn.add(to(xe))}return Dn})}else C(ct=>{const pt=new Set(ct);return pt.has(it)?pt.delete(it):pt.add(it),pt});T.current=it}function de(){C(ee=>{const me=new Set(ee);if(A)for(const Me of O)me.delete(to(Me));else for(const Me of O)me.add(to(Me));return me})}function ye(){C(new Set),T.current=null}function je(ee){ye(),s(),ee!=null&&ee.assignmentRef&&i(Sj(ee.assignmentRef))}const fe=f.useMemo(()=>{if(!(e!=null&&e.workspaces))return{open:0,in_progress:0,completed:0,blocked:0,total:0};const ee={open:0,in_progress:0,completed:0,blocked:0,total:0};for(const me of e.workspaces)ee.open+=me.counts.open,ee.in_progress+=me.counts.in_progress,ee.completed+=me.counts.completed,ee.blocked+=me.counts.blocked,ee.total+=me.counts.total;return ee},[e]);async function Ye(){y.trim()&&(await ig(N,y.trim()),b(""),s())}const Je={open:"in_progress",in_progress:"completed",completed:"open",blocked:"open"};function ot(ee,me,Me){G(ee,me,Je[Me]||"open")}async function G(ee,me,Me){switch(Me){case"open":await I0(ee,me);break;case"in_progress":await O0(ee,me);break;case"completed":await L0(ee,me);break;case"blocked":await $0(ee,me);break}s()}async function De(ee,me){await _0(ee,me),s()}const ke=ix(O),Re=ke.filter(ee=>!Y.isCollapsed(ee.config.id)).flatMap(ee=>ee.items),{hotkeyRowProps:Xe}=Ql(Re,{scope:"list:todos",bindO:!1,onOpen:ee=>ot(ee.workspace,ee.id,ee.status)});Vt({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var ee;return(ee=u.current)==null?void 0:ee.focus()}}),Vt({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>s()});const[Ie,at]=ps(),Be=Ie.get("focus");f.useEffect(()=>{if(!Be)return;const ee=X.find(Me=>Me.id===Be);if(!ee)return;const me=nf(ee.status);Y.isCollapsed(me)&&Y.toggle(me)},[Be,X]),f.useEffect(()=>{if(!Be)return;const ee=document.querySelector(`[data-todo-id="${CSS.escape(Be)}"]`);if(!ee)return;ee.scrollIntoView({block:"nearest"}),ee.classList.add("ring-2","ring-primary/60");const me=window.setTimeout(()=>{ee.classList.remove("ring-2","ring-primary/60"),at(Me=>{const it=new URLSearchParams(Me);return it.delete("focus"),it})},1500);return()=>window.clearTimeout(me)},[Be,Re.length,at]);const ft=Q?O.find(ee=>to(ee)===Q)??null:null;function be(ee,me){const Me=F.current;if(Me!=null&&Me.closest(ia)){ee.preventDefault();return}ee.dataTransfer.effectAllowed="move",ee.dataTransfer.setData("text/plain",me),L(me)}function Ne(){L(null),te(null)}function z(ee,me){!ft||me.statuses.includes(ft.status)||(ee.preventDefault(),ee.dataTransfer.dropEffect="move",te(me.id))}function ne(ee,me){W===me.id&&!ee.currentTarget.contains(ee.relatedTarget)&&te(null)}function pe(ee,me){ee.preventDefault();const Me=ft;Ne(),!(!Me||me.statuses.includes(Me.status))&&G(Me.workspace,Me.id,me.dropStatus)}return t?r.jsx(gt,{label:"Loading todos..."}):n?r.jsx(jt,{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(Rn,{label:"Open",value:fe.open,icon:Ar}),r.jsx(Rn,{label:"In Progress",value:fe.in_progress,icon:Xh,tone:"info"}),r.jsx(Rn,{label:"Blocked",value:fe.blocked,icon:eg,tone:"warn"}),r.jsx(Rn,{label:"Completed",value:fe.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:N,onChange:ee=>j(ee.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(ee=>ee.workspace!=="_global").map(ee=>r.jsx("option",{value:ee.workspace,children:ee.workspace},ee.workspace))]}),r.jsx("input",{type:"text",placeholder:"Add a todo...",value:y,onChange:ee=>b(ee.target.value),onKeyDown:ee=>ee.key==="Enter"&&Ye(),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:Ye,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(tn,{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(lo,{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:ee=>c(ee.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:ee=>m(ee.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"})]}),le.length>0&&r.jsxs("select",{value:h,onChange:ee=>x(ee.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"}),le.map(ee=>r.jsxs("option",{value:ee,children:["#",ee]},ee))]})]}),K.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:[K.length," selected",Z?r.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["(from ",r.jsx("strong",{children:Z}),")"]}):r.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["across ",new Set(K.map(ee=>ee.workspace)).size," workspaces"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("button",{type:"button",onClick:()=>$(!0),className:"shell-action shell-action--cta",children:"Promote to assignment"}),r.jsx("button",{type:"button",onClick:ye,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,O.length>0&&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:A,ref:ee=>{ee&&(ee.indeterminate=B)},onChange:de,className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsxs("span",{children:["Select all in current filter (",O.length,")"]}),r.jsx("span",{className:"text-muted-foreground/60",children:"— shift-click for range select"})]}),r.jsx("div",{className:"space-y-3",children:(()=>{let ee=-1;return ke.map(({config:me,items:Me})=>{const it=!Y.isCollapsed(me.id);return r.jsx(ox,{label:me.label,count:Me.length,expanded:it,onToggle:()=>Y.toggle(me.id),isDropTarget:W===me.id,onDragOver:qe=>z(qe,me),onDragLeave:qe=>ne(qe,me),onDrop:qe=>pe(qe,me),children:it&&Me.map(qe=>{ee+=1;const xt=ee,ct=to(qe),pt=E.has(ct);return r.jsxs("div",{draggable:!0,"data-todo-id":qe.id,...Xe(xt),onMouseDown:nt=>{F.current=nt.target},onDragStart:nt=>be(nt,ct),onDragEnd:Ne,className:`surface-panel flex items-center gap-3 px-3 py-2 group cursor-grab active:cursor-grabbing hover:bg-foreground/[0.03] transition ${pt?"ring-1 ring-foreground/20":""} ${Q===ct?"opacity-50 shadow-lg":""}`,onClick:()=>ot(qe.workspace,qe.id,qe.status),children:[r.jsx("input",{type:"checkbox","aria-label":`Select todo ${qe.id}`,checked:pt,onChange:()=>{},onClick:nt=>{nt.stopPropagation(),oe(qe,xt,nt)},className:"h-4 w-4 cursor-pointer accent-foreground"}),r.jsx(rx,{status:qe.status,onChange:nt=>G(qe.workspace,qe.id,nt)}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("span",{className:`text-sm ${qe.status==="completed"?"line-through text-muted-foreground":"text-foreground"}`,children:qe.description}),qe.tags.length>0&&r.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:qe.tags.map(nt=>`#${nt}`).join(" ")}),qe.linkedAssignmentRef?r.jsxs(Ce,{to:Sj(qe.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:nt=>nt.stopPropagation(),children:[r.jsx(Yj,{className:"h-2.5 w-2.5"}),qe.linkedAssignmentRef.includes("/")?qe.linkedAssignmentRef:`oneoff:${qe.linkedAssignmentRef.slice(0,8)}`]}):null]}),r.jsx("span",{className:"text-xs text-muted-foreground/60 font-mono",children:qe.workspace!=="_global"&&r.jsx(Ce,{to:`/w/${qe.workspace}/todos`,className:"hover:text-foreground transition mr-2",onClick:nt=>nt.stopPropagation(),children:qe.workspace})}),w===qe.id?r.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[r.jsx(Rs,{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:nt=>H(nt,qe.id),children:["t:",qe.id]}),r.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:nt=>H(nt,qe.id),children:r.jsx(Al,{className:"h-3 w-3"})})]}),r.jsx("button",{onClick:nt=>{nt.stopPropagation(),De(qe.workspace,qe.id)},className:"text-xs text-muted-foreground/40 hover:text-destructive transition opacity-0 group-hover:opacity-100",children:"delete"})]},`${qe.workspace}-${qe.id}`)})},me.id)})})()}),r.jsx(sx,{open:P,selectedIds:K.map(ee=>ee.id),scope:V,onOpenChange:$,onDone:je,defaultProject:I,defaultTitle:ue,allowOneOff:!0})]})}function nC(){const{views:e}=Md();async function t(i,l,c){const u=e.find(h=>h.id===i.id)??i,p=G1(c,u.workspace).config,m=mx(u.config,p,u.config);await Sg(i.id,{name:l,config:m})}async function n(i){await zd({name:`${i.name} (copy)`,workspace:i.workspace,config:i.config})}async function s(i){await hD(i.id)}return{submitEdit:t,duplicate:n,remove:s}}const Nj=80,tB={kanban:"Kanban",list:"List",table:"Table"},nB={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"};function rC({open:e,onOpenChange:t,workspace:n,initialView:s,onSubmit:i}){const l=!!s,c=Ko(),u=Yd(),{data:p}=Vo(),{data:m}=Ad(),[h,x]=f.useState(""),[y,b]=f.useState(Mi.viewMode),[N,j]=f.useState([]),[w,k]=f.useState([]),[E,C]=f.useState([]),[P,$]=f.useState([]),[T,D]=f.useState([]),[_,Y]=f.useState([]),[Q,L]=f.useState("all"),[W,te]=f.useState(null),[F,H]=f.useState(""),[X,le]=f.useState(Mi.sortField),[O,K]=f.useState(Mi.sortDirection),[A,B]=f.useState(!1),[Z,I]=f.useState(null);function ue(){b(Mi.viewMode),j([]),k([]),C([]),$([]),D([]),Y([]),L("all"),te(null),H(""),le(Mi.sortField),K(Mi.sortDirection)}f.useEffect(()=>{if(e)if(I(null),B(!1),s){const G=s.config.filters;x(s.name),b(s.config.viewMode),j(tt(G.status)),k(tt(G.priority)),C(tt(G.type)),$(tt(G.project)),D(tt(G.assignee)),Y(tt(G.tags)),L(G.activity??"all"),te(Y1(G.dateRange)),H(G.search??""),le(s.config.sortField),K(s.config.sortDirection)}else x(""),ue()},[e,s]);const he=G=>De=>G?G==="_ungrouped"?De.projectWorkspace===null:De.projectWorkspace===G:!0,V=f.useMemo(()=>{const G=ke=>n?n==="_ungrouped"?ke.workspace===null:ke.workspace===n:!0,De=(p??[]).filter(G);return[{value:"__standalone__",label:"No project"},...De.map(ke=>({value:ke.slug,label:ke.title}))]},[p,n]),oe=f.useMemo(()=>{const G=new Set,De=he(n);for(const Re of(m==null?void 0:m.assignments)??[])De(Re)&&Re.assignee&&G.add(Re.assignee);const ke=[{value:"__unassigned__",label:"Unassigned"}];for(const Re of Array.from(G).sort())ke.push({value:Re,label:Re});return ke},[m,n]),de=f.useMemo(()=>{const G=new Set,De=he(n);for(const ke of(m==null?void 0:m.assignments)??[])if(De(ke))for(const Re of ke.tags??[])G.add(Re);return Array.from(G).sort().map(ke=>({value:ke,label:ke}))},[m,n]),ye=f.useMemo(()=>c.order.map(G=>({value:G,label:tc(c,G)})),[c]),je=f.useMemo(()=>k5.map(G=>({value:G,label:G[0].toUpperCase()+G.slice(1)})),[]),fe=f.useMemo(()=>u.definitions.map(G=>({value:G.id,label:Xi(u,G.id)})),[u]),Ye=wg.map(G=>({value:G,label:tB[G]})),Je=h.trim(),ot=Je.length>0&&Je.length<=Nj;return r.jsx(ir,{open:e,onOpenChange:t,children:r.jsx(qn,{className:"max-w-lg",children:r.jsxs("form",{className:"space-y-4",onSubmit:async G=>{if(G.preventDefault(),!ot||A)return;B(!0),I(null);const De={viewMode:y,filters:{status:N,priority:w,type:E,project:P,assignee:T,tags:_,activity:Q,dateRange:Vl(W),search:F},sortField:X,sortDirection:O};try{await i(Je,De)}catch(ke){I(ke instanceof Error?ke.message:String(ke)),B(!1)}},children:[r.jsx(Xr,{children:r.jsx(Gn,{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:Nj,onChange:G=>x(G.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(Xd,{value:y,onChange:G=>b(G),options:Ye})]}),r.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[r.jsx(rs,{label:"Status",children:r.jsx(Pn,{ariaLabel:"Status filter",className:"w-full",allLabel:"All statuses",options:ye,value:N,onChange:j})}),r.jsx(rs,{label:"Priority",children:r.jsx(Pn,{ariaLabel:"Priority filter",className:"w-full",allLabel:"All priorities",options:je,value:w,onChange:k})}),r.jsx(rs,{label:"Type",children:r.jsx(Pn,{ariaLabel:"Type filter",className:"w-full",allLabel:"All types",options:fe,value:E,onChange:C})}),r.jsx(rs,{label:"Project",children:r.jsx(Pn,{ariaLabel:"Project filter",className:"w-full",allLabel:"All projects",options:V,value:P,onChange:$})}),r.jsx(rs,{label:"Assignee",children:r.jsx(Pn,{ariaLabel:"Assignee filter",className:"w-full",allLabel:"All assignees",options:oe,value:T,onChange:D})}),r.jsx(rs,{label:"Tags",children:r.jsx(Pn,{ariaLabel:"Tags filter",className:"w-full",allLabel:"Any tags",options:de,value:_,onChange:Y})}),r.jsx(rs,{label:"Activity",children:r.jsxs("select",{value:Q,onChange:G=>L(G.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(rs,{label:"Date range",children:r.jsx(px,{className:"w-full",value:W,onChange:te})}),r.jsx(rs,{label:"Search",className:"sm:col-span-2",children:r.jsx("input",{type:"text",value:F,onChange:G=>H(G.target.value),placeholder:"Title / slug / project contains…",className:"editor-input w-full"})}),r.jsx(rs,{label:"Sort by",className:"sm:col-span-2",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx("select",{value:X,onChange:G=>le(G.target.value),className:"editor-input w-full",children:Fk.map(G=>r.jsx("option",{value:G,children:nB[G]},G))}),r.jsx("button",{type:"button",onClick:()=>K(G=>G==="asc"?"desc":"asc"),className:"shell-action shrink-0",title:O==="asc"?"Ascending":"Descending",children:O==="asc"?"Asc":"Desc"})]})})]}),Z?r.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:Z}):null,r.jsxs(As,{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:!ot||A,className:"shell-action shell-action--cta disabled:opacity-50",children:A?"Saving…":l?"Save changes":"Create view"})]})]})]})})})}function rs({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 rB={kanban:"Kanban",list:"List",table:"Table"};function Cj(){const{workspace:e}=Lt(),{views:t,loading:n}=Md(),{submitEdit:s,duplicate:i,remove:l}=nC(),{toast:c,showToast:u,dismissToast:p}=Go(),[m,h]=f.useState(null),[x,y]=f.useState(!1),[b,N]=f.useState(!1),[j,w]=f.useState(null);async function k(T,D){const{workspace:_,config:Y}=G1(D,e??null);try{await zd({name:T,workspace:_,config:Y}),N(!1),u(`Created view "${T}"`)}catch(Q){throw u(Q instanceof Error?Q.message:"Failed to create saved view"),Q}}async function E(T,D,_){try{await s(T,D,_),w(null),u(`Updated view "${D}"`)}catch(Y){throw u(Y instanceof Error?Y.message:"Failed to update saved view"),Y}}async function C(T){try{await i(T),u(`Duplicated "${T.name}"`)}catch(D){u(D instanceof Error?D.message:"Failed to duplicate saved view")}}async function P(){if(m){y(!0);try{await l(m),h(null)}catch(T){u(T instanceof Error?T.message:"Failed to delete saved view")}finally{y(!1)}}}const $=r.jsxs("button",{type:"button",onClick:()=>N(!0),className:"shell-action inline-flex items-center gap-1.5 shell-action--cta",children:[r.jsx(tn,{className:"h-4 w-4"}),"Create view"]});return r.jsxs("div",{className:"space-y-4",children:[r.jsx(dd,{title:"Saved Views",description:"Create a view here, or open, edit, and reuse views captured from any board.",actions:$}),n?r.jsx(gt,{label:"Loading saved views…"}):t.length===0?r.jsx(Nt,{title:"No saved views yet",description:"Create your first view here, or capture one from any assignments board.",actions:$}):r.jsx(We,{children:r.jsx("ul",{className:"divide-y divide-border/60",children:t.map(T=>r.jsx(sB,{view:T,onRequestDelete:()=>h(T),onRequestEdit:()=>w(T),onRequestDuplicate:()=>void C(T)},T.id))})}),r.jsx(rC,{open:b||j!==null,onOpenChange:T=>{T||(N(!1),w(null))},workspace:j?j.workspace:e??null,initialView:j,onSubmit:j?(T,D)=>E(j,T,D):k}),r.jsx(Xo,{open:m!==null,title:"Delete saved view?",description:m?`Delete '${m.name}'? Any Overview widgets referencing this view will become empty.`:"",confirmLabel:"Delete",loading:x,destructive:!0,onConfirm:P,onOpenChange:T=>{!T&&!x&&h(null)}}),r.jsx(Yo,{toast:c,onDismiss:p})]})}function sB({view:e,onRequestDelete:t,onRequestEdit:n,onRequestDuplicate:s}){const i=Dt(),l=()=>i(X1(e)),c=Z1(e.config.filters),u=e.workspace?gn(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:[r.jsx("button",{type:"button",onClick:l,className:"truncate text-left text-sm font-semibold text-foreground hover:text-primary",title:"Open view",children:e.name}),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:rB[e.config.viewMode]}),u?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:u}):null]}),r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:c})]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[r.jsx("button",{type:"button",onClick:l,className:"shell-action",children:"Open"}),r.jsx("button",{type:"button",onClick:n,className:"shell-action",children:"Edit"}),r.jsx("button",{type:"button",onClick:s,className:"shell-action",children:"Duplicate"}),r.jsx("button",{type:"button",onClick:t,className:"shell-action border-destructive/40 text-destructive hover:bg-destructive/10",children:"Delete"})]})]})}const oB={kanban:"Kanban",list:"List",table:"Table"};function Ej(){const{id:e,workspace:t}=Lt(),n=Dt(),{view:s,ready:i,error:l,refetch:c}=Bo(e),{submitEdit:u,duplicate:p,remove:m}=nC(),{toast:h,showToast:x,dismissToast:y}=Go(),[b,N]=f.useState(!1),[j,w]=f.useState(!1),[k,E]=f.useState(!1);if(f.useEffect(()=>{!i||!s||(t??null)!==(s.workspace??null)&&n(X1(s),{replace:!0})},[i,s,t,n]),!i)return r.jsx(gt,{label:"Loading view…"});if(l)return r.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-6 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:l.message}),r.jsx("button",{type:"button",onClick:()=>c(),className:"shell-action mt-3",children:"Retry"})]});if(!s)return r.jsxs("div",{className:"space-y-3",children:[r.jsx(dd,{title:"View not found",description:"This saved view no longer exists."}),r.jsxs(Ce,{to:Hu(t??null),className:"shell-action inline-flex items-center gap-1.5",children:[r.jsx(Gu,{className:"h-4 w-4"})," Back to Saved Views"]})]});const C=s.workspace?gn(s.workspace):null;async function P(D,_){const Y=s;try{await u(Y,D,_),N(!1),x(`Updated view "${D}"`)}catch(Q){throw x(Q instanceof Error?Q.message:"Failed to update saved view"),Q}}async function $(){const D=s;try{await p(D),x(`Duplicated "${D.name}"`)}catch(_){x(_ instanceof Error?_.message:"Failed to duplicate saved view")}}async function T(){const D=s;E(!0);try{await m(D),w(!1),n(Hu(D.workspace))}catch(_){x(_ instanceof Error?_.message:"Failed to delete saved view")}finally{E(!1)}}return r.jsxs("div",{className:"space-y-4",children:[r.jsxs(Ce,{to:Hu(s.workspace),className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground",children:[r.jsx(Gu,{className:"h-4 w-4"})," Saved Views"]}),r.jsx(dd,{title:s.name,description:Z1(s.config.filters),actions:r.jsxs(r.Fragment,{children:[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:oB[s.config.viewMode]}),C?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:C}):null,r.jsx("button",{type:"button",onClick:()=>N(!0),className:"shell-action",children:"Edit"}),r.jsx("button",{type:"button",onClick:()=>void $(),className:"shell-action",children:"Duplicate"}),r.jsx("button",{type:"button",onClick:()=>n(Q1(s)),className:"shell-action",children:"Open on board"}),r.jsx("button",{type:"button",onClick:()=>w(!0),className:"shell-action border-destructive/40 text-destructive hover:bg-destructive/10",children:"Delete"})]})}),r.jsx(PS,{view:s}),b?r.jsx(rC,{open:b,onOpenChange:N,workspace:s.workspace,initialView:s,onSubmit:P}):null,r.jsx(Xo,{open:j,title:"Delete saved view?",description:`Delete '${s.name}'? Any Overview widgets referencing this view will become empty.`,confirmLabel:"Delete",loading:k,destructive:!0,onConfirm:T,onOpenChange:D=>{!D&&!k&&w(!1)}}),r.jsx(Yo,{toast:h,onDismiss:y})]})}function iB(){return r.jsx(gT,{children:r.jsx(A3,{children:r.jsx(W2,{children:r.jsxs(Ve,{element:r.jsx(Q3,{}),children:[r.jsx(Ve,{path:"/",element:r.jsx(_L,{})}),r.jsx(Ve,{path:"/projects",element:r.jsx(qv,{})}),r.jsx(Ve,{path:"/archive",element:r.jsx(ZL,{})}),r.jsx(Ve,{path:"/assignments",element:r.jsx(Zw,{})}),r.jsx(Ve,{path:"/assignments/new",element:r.jsx(rj,{})}),r.jsx(Ve,{path:"/assignments/:id",element:r.jsx(Y5,{})}),r.jsx(Ve,{path:"/assignments/:id/edit",element:r.jsx(Hm,{})}),r.jsx(Ve,{path:"/assignments/:id/plan/edit",element:r.jsx(Wm,{})}),r.jsx(Ve,{path:"/assignments/:id/scratchpad/edit",element:r.jsx(Km,{})}),r.jsx(Ve,{path:"/assignments/:id/handoff/edit",element:r.jsx(qm,{})}),r.jsx(Ve,{path:"/assignments/:id/decision-record/edit",element:r.jsx(Gm,{})}),r.jsx(Ve,{path:"/servers",element:r.jsx(oj,{})}),r.jsx(Ve,{path:"/inventories",element:r.jsx(ij,{})}),r.jsx(Ve,{path:"/usage",element:r.jsx(aj,{})}),r.jsx(Ve,{path:"/agent-sessions",element:r.jsx(lj,{})}),r.jsx(Ve,{path:"/playbooks",element:r.jsx(EF,{})}),r.jsx(Ve,{path:"/playbooks/create",element:r.jsx(PF,{})}),r.jsx(Ve,{path:"/playbooks/:slug",element:r.jsx(TF,{})}),r.jsx(Ve,{path:"/playbooks/:slug/edit",element:r.jsx(RF,{})}),r.jsx(Ve,{path:"/memories",element:r.jsx(AF,{})}),r.jsx(Ve,{path:"/memories/new",element:r.jsx(LF,{})}),r.jsx(Ve,{path:"/projects/:slug/memories/:itemSlug",element:r.jsx(DF,{})}),r.jsx(Ve,{path:"/projects/:slug/memories/:itemSlug/edit",element:r.jsx($F,{})}),r.jsx(Ve,{path:"/resources",element:r.jsx(OF,{})}),r.jsx(Ve,{path:"/resources/new",element:r.jsx(_F,{})}),r.jsx(Ve,{path:"/projects/:slug/resources/:itemSlug",element:r.jsx(IF,{})}),r.jsx(Ve,{path:"/projects/:slug/resources/:itemSlug/edit",element:r.jsx(MF,{})}),r.jsx(Ve,{path:"/todos",element:r.jsx(eB,{})}),r.jsx(Ve,{path:"/views",element:r.jsx(Cj,{})}),r.jsx(Ve,{path:"/views/:id",element:r.jsx(Ej,{})}),r.jsx(Ve,{path:"/help",element:r.jsx(FL,{})}),r.jsx(Ve,{path:"/settings",element:r.jsx(Zz,{})}),r.jsx(Ve,{path:"/create/project",element:r.jsx(tj,{})}),r.jsx(Ve,{path:"/projects/:slug",element:r.jsx(Gw,{})}),r.jsx(Ve,{path:"/projects/:slug/edit",element:r.jsx(sj,{})}),r.jsx(Ve,{path:"/projects/:slug/create/assignment",element:r.jsx(nj,{})}),r.jsx(Ve,{path:"/projects/:slug/assignments/:aslug",element:r.jsx(Jw,{})}),r.jsx(Ve,{path:"/projects/:slug/assignments/:aslug/edit",element:r.jsx(Hm,{})}),r.jsx(Ve,{path:"/projects/:slug/assignments/:aslug/plan/edit",element:r.jsx(Wm,{})}),r.jsx(Ve,{path:"/projects/:slug/assignments/:aslug/scratchpad/edit",element:r.jsx(Km,{})}),r.jsx(Ve,{path:"/projects/:slug/assignments/:aslug/handoff/edit",element:r.jsx(qm,{})}),r.jsx(Ve,{path:"/projects/:slug/assignments/:aslug/decision-record/edit",element:r.jsx(Gm,{})}),r.jsx(Ve,{path:"/w/:workspace/projects",element:r.jsx(qv,{})}),r.jsx(Ve,{path:"/w/:workspace/assignments",element:r.jsx(Zw,{})}),r.jsx(Ve,{path:"/w/:workspace/assignments/new",element:r.jsx(rj,{})}),r.jsx(Ve,{path:"/w/:workspace/servers",element:r.jsx(oj,{})}),r.jsx(Ve,{path:"/w/:workspace/inventories",element:r.jsx(ij,{})}),r.jsx(Ve,{path:"/w/:workspace/usage",element:r.jsx(aj,{})}),r.jsx(Ve,{path:"/w/:workspace/agent-sessions",element:r.jsx(lj,{})}),r.jsx(Ve,{path:"/w/:workspace/todos",element:r.jsx(u5,{})}),r.jsx(Ve,{path:"/w/:workspace/views",element:r.jsx(Cj,{})}),r.jsx(Ve,{path:"/w/:workspace/views/:id",element:r.jsx(Ej,{})}),r.jsx(Ve,{path:"/w/:workspace/create/project",element:r.jsx(tj,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug",element:r.jsx(Gw,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/edit",element:r.jsx(sj,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/create/assignment",element:r.jsx(nj,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/assignments/:aslug",element:r.jsx(Jw,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/assignments/:aslug/edit",element:r.jsx(Hm,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/assignments/:aslug/plan/edit",element:r.jsx(Wm,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/assignments/:aslug/scratchpad/edit",element:r.jsx(Km,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/assignments/:aslug/handoff/edit",element:r.jsx(qm,{})}),r.jsx(Ve,{path:"/w/:workspace/projects/:slug/assignments/:aslug/decision-record/edit",element:r.jsx(Gm,{})})]})})})})}YP();WE.createRoot(document.getElementById("root")).render(r.jsx(f.StrictMode,{children:r.jsx(JP,{children:r.jsx(iB,{})})}));export{S$ as _,lB as a,jd as g};
|